4.4. 存储使用架构
4.4.1. 存储使用架构类型
云存储模型将数据存储在物理存储设备上的逻辑池中。这种架构通常被称为集成存储云。
云存储通常是指托管的对象存储服务。但是,术语也可以包括作为服务可用的其他类型的数据存储。OpenStack 提供 Block Storage (cinder)和 Object Storage (swift)。云存储通常在虚拟基础架构上运行,类似于接口可访问性、弹性、可扩展性、多租户和量表资源方面的更广泛的云计算。
您可以在内部或内部使用云存储服务。云存储对冗余和数据分布具有高度容错性,具有版本控制副本,可以执行一致的数据复制。
云存储应用程序示例包括:
- 活跃的归档、备份和分层存储管理
- 常规内容存储和同步,如私有 DropBox 服务
- 带有并行文件系统的数据分析
- 用于社交媒体后端存储等服务的非结构化数据存储
- 持久性块存储
- 操作系统和应用程序镜像存储
- 介质流
- 数据库
- 内容发布
- 云存储对等
有关 OpenStack 存储服务的更多信息,请参阅 第 1.2.2 节 “OpenStack Object Storage (swift)” 和 第 1.2.1 节 “OpenStack Block Storage (cinder)”。
4.4.2. 数据分析架构
对大型数据集的分析高度依赖于存储系统的性能。并行文件系统可以提供高性能数据处理,并推荐用于大规模以性能为导向的系统。
有关安装和部署文档,请参阅 第 5 章 部署信息。
4.4.2.1. 关于设计
OpenStack Data Processing (sahara)与 Hadoop 集成,以管理云内的 Hadoop 集群。下图显示了具有高性能要求的 OpenStack 存储。
硬件要求和配置与 第 4.4.3 节 “高性能数据库架构” 中描述的高性能架构类似。在本例中,架构使用 Ceph Swift 兼容的 REST 接口来连接缓存池,并启用可用池的加速。
4.4.2.2. 架构组件
组件 | 描述 |
---|---|
Compute | 在控制器上运行计算管理和调度服务。计算服务也会在每个计算节点上运行。 |
Dashboard | 用于 OpenStack 管理的 Web 控制台。 |
身份 | 基本身份验证和授权功能。 |
Image | 存储用于引导实例和管理快照的镜像。此服务在控制器上运行,并提供一组镜像。 |
网络 | 网络服务。有关 OpenStack 网络的更多信息,请参阅 第 2 章 Network In-Depth。 |
Telemetry | 监控和报告其他 OpenStack 服务。使用此服务监控实例使用情况并调整项目配额。 |
对象存储 | 使用 Hadoop 后端存储数据。 |
块存储 | 通过 Hadoop 后端存储卷。 |
编配 | 管理实例和块存储卷的模板。使用此服务启动额外的实例,以进行存储密集型处理,使用 Telemetry 进行自动扩展。 |
4.4.2.3. 云要求
要求 | 描述 |
---|---|
性能 | 要提高性能,您可以选择特殊的解决方案来缓存磁盘活动。 |
安全性 | 您必须保护传输和静态数据中的数据。 |
存储相似性 | 为了提供高性能或大量存储空间,您可能需要将存储附加到每个虚拟机监控程序或从中央存储设备提供服务。 |
4.4.2.4. 设计注意事项
除了 第 3 章 设计 中描述的基本设计注意事项外,您还需要遵循 第 4.4.4 节 “存储使用架构注意事项” 中描述的注意事项。
4.4.3. 高性能数据库架构
数据库架构从高性能存储后端中受益。虽然企业存储不是必需的,但许多环境包括 OpenStack 云可以用作后端的存储。
您可以创建一个存储池来为实例和对象接口为块设备提供 OpenStack Block Storage。在这种架构中,数据库 I/O 要求很高,需要来自快速 SSD 池的存储。
4.4.3.1. 关于设计
存储系统使用支持传统存储阵列中的一组 SSD 的 LUN,并使用 OpenStack Block Storage 集成或 Ceph 等存储平台。
这个系统可以提供额外的性能功能。在数据库示例中,部分 SSD 池可以充当数据库服务器的块设备。在高性能分析示例中,内联 SSD 缓存层可加快 REST 接口。
在本例中,Ceph 提供 Swift 兼容的 REST 接口,以及分布式存储群集中的块存储。它高度灵活,通过自我修复和自动平衡等功能降低了操作成本。建议纠删代码池最大化可用空间量。
纠删代码池需要特殊考虑,如计算要求和对象上允许哪些操作的限制。纠删代码池不支持部分写入。
4.4.3.2. 架构组件
组件 | 描述 |
---|---|
Compute | 在控制器上运行计算管理和调度服务。计算服务也会在每个计算节点上运行。 |
Dashboard | 用于 OpenStack 管理的 Web 控制台。 |
身份 | 基本身份验证和授权功能。 |
Image | 存储用于引导实例和管理快照的镜像。此服务在控制器上运行,并提供一组镜像。 |
网络 | 网络服务。有关 OpenStack 网络的更多信息,请参阅 第 2 章 Network In-Depth。 |
Telemetry | 监控和报告其他 OpenStack 服务。使用此服务监控实例使用情况并调整项目配额。 |
监控 | 使用 Telemetry 服务执行 metering,用于调整项目配额。 |
对象存储 | 使用 Ceph 后端存储数据。 |
块存储 | 使用 Ceph 后端存储卷。 |
编配 | 管理实例和块存储卷的模板。使用此服务启动额外的实例,以进行存储密集型处理,使用 Telemetry 进行自动扩展。 |
4.4.3.3. 硬件要求
您可以使用 SSD 缓存层将块设备直接链接到虚拟机监控程序或实例。REST 接口也可以使用 SSD 缓存系统作为内联缓存。
组件 | 要求 | 网络 |
---|---|---|
10 GbE 可横向扩展的 spine-leaf backend storage 和前端网络 | 存储硬件 | 适用于缓存层 24x1 TB SSD 的 5 个存储服务器 每个服务器有 12x4 TB 磁盘的 10 个存储服务器,它等于在 3 个副本后有大约 160 TB 的可用空间 |
4.4.3.4. 设计注意事项
除了 第 3 章 设计 中描述的基本设计注意事项外,您还需要遵循 第 4.4.4 节 “存储使用架构注意事项” 中描述的注意事项。
4.4.4. 存储使用架构注意事项
除了 第 3 章 设计 和存储节点设计 第 3.3 节 “存储资源” 中描述的基本设计注意事项外,还应该考虑以下项目用于存储密集型架构。
- 连接性
- 确保连接与存储解决方案要求匹配。如果您选择了集中存储阵列,请确定如何将虚拟机监控程序连接到阵列。连接可能会影响延迟和性能。确认网络特征最小化延迟,以提高设计的整体性能。
- 密度
- 实例密度。在以存储为中心的架构中,实例密度和 CPU/RAM 超额订阅较低。您需要更多的主机来支持预期的规模,特别是在设计使用双插槽硬件设计时。
- 主机密度。您可以使用四插槽平台处理更高的主机数。这个平台减少了主机密度并增加机架数量。此配置会影响电源连接的数量,也会影响网络和冷却要求。
- 电源和冷却.电源和冷却密度要求可能会降低 2U、3U 或 4U 服务器,而刀片服务器、上机或 1U 服务器设计可能会降低。建议对具有较旧的基础架构的数据中心进行此配置。
- 灵活性
- 组织需要具有在外部和内部云存储选项之间进行选择的灵活性。例如,操作、灾难恢复、安全性和记录保留法律、法规和策略的连续性可能会影响存储提供商的经济性。
- latency
- 固态驱动器(SSD)可以最小化实例存储的延迟,并减少存储延迟可能会导致的 CPU 延迟。评估计算主机上使用 RAID 控制器卡,以提高底层磁盘子系统的性能。
- 监控和警报
监控和警报服务在云环境中对存储资源具有高要求的关键。这些服务提供存储系统健康和性能的实时视图。视觉化 SNMP 数据的其他仪表板的集成的管理控制台或其他仪表板有助于发现和解决存储集群的问题。
以存储为导向的云设计应包括:
- 监视物理硬件和环境资源,如温度和高效率。
- 监控存储资源,如可用存储、内存和 CPU。
- 监控高级存储性能数据,以确保存储系统按预期运行。
- 监控网络资源,以获取影响存储访问的服务中断。
- 集中日志收集和日志分析功能。
- 票务系统或与票据系统集成以跟踪问题。
- 负责团队或自动化系统的警报和通知,这些系统在出现存储时可以解决问题。
- 网络运营中心(NOC)员工,始终可用于解决问题。
- 扩展
- 以存储为导向型 OpenStack 架构应专注于扩展而不是横向扩展。您应该根据成本、电源、冷却、物理机架和自治区空间、支持保证和易管理性等因素来确定更大的主机还是更多的较小主机。