IBM Storage Ceph部署的基本注意事项
存储策略是一种用于存储为特定用例提供服务的数据的方法。 如果您需要为 OpenStack, 您可以选择在速度更快的串行连接 SCSI (SAS) 驱动器上存储数据,并使用固态硬盘 (SSD) 来存储日志。 相反,如果需要为符合 S3- 或 Swift 的网关存储对象数据,那么可以选择使用更经济的功能,例如传统串行高级技术连接 (SATA) 驱动器。
成功的 Ceph 部署中最重要的步骤之一是确定适合存储集群用例和工作负载的性价比概要文件。 请务必为用例选择正确的硬件。 例如,为冷存储应用程序选择 IOPS 优化的硬件会增加不必要的硬件成本。 而在 IOPS 密集型工作负载中为其更有吸引力的价位选择容量优化的硬件可能会导致不满意的用户抱怨性能缓慢。
用例,成本与效益性能权衡以及数据耐久性是帮助制定合理存储策略的主要考虑因素。
用例
- Ceph Block Device 客户机是面向云平台的领先存储后端,为具有高性能功能 (如写时复制) 的卷和映像提供无限存储。
- Ceph Object Gateway 客户机是面向云平台的领先存储后端,为对象 (例如音频,位图,视频和其他数据) 提供符合 RESTful S3-compliant 和符合 Swift 的对象存储。
- 传统文件存储器的 Ceph File System 。
成本与绩效效益
更快更好。 再大一点就好了 高耐久性更好。 但是,每个超级质量都有一个价格,以及相应的成本与收益权衡。 从性能角度考虑以下用例: SSD 可以为相对少量的数据和日志记录提供非常快的存储。 存储数据库或对象索引可以从非常快的 SSD 池中获益,但对于其他数据而言,这证明成本太高。 带有 SSD 日志记录的 SAS 驱动器以经济实惠的价格为卷和映像提供快速性能。 没有 SSD 日志记录的 SATA 驱动器提供廉价的存储器,整体性能较低。 创建 OSD 的 CRUSH 层次结构时,需要考虑用例和可接受的成本与性能权衡。
数据耐久性
在大型存储集群中,硬件故障是一种期望,而不是例外。 但是,数据丢失和服务中断仍然是不可接受的。 因此,数据耐久性非常重要。 Ceph 通过对象的多个副本副本或使用擦除编码和多个编码块来解决数据耐久性问题。 多个副本或多个编码块会带来额外的成本与收益权衡: 存储更少的副本或编码块会更便宜,但会导致无法在降级状态下为写请求提供服务。 通常,一个具有两个额外副本或两个编码块的对象可以允许存储集群在存储集群恢复时以降级状态为写操作提供服务。
复制会在发生硬件故障时跨故障域存储数据的一个或多个冗余副本。 但是,数据的冗余副本在规模上可能会变得昂贵。 例如,要存储具有三重复制的 1 PB 数据,需要至少具有 3 PB 存储容量的集群。
纠删码将数据存储为数据块和编码块。 在丢失数据块的情况下,擦除编码可以使用剩余的数据块和编码块来恢复丢失的数据块。 擦除编码比复制要经济得多。 例如,将纠删码与 8 数据块和 3 编码块配合使用可提供与 3 数据副本相同的冗余。 但是,此类编码方案使用的初始数据大约是存储的初始数据的 1.5 倍,而使用复制的数据大约是 3 倍。
CRUSH 算法通过确保 Ceph 在存储集群中的不同位置存储其他副本或编码块来帮助此过程。 这可确保单个存储设备或主机的故障不会导致为防止数据丢失而必需的所有副本或编码块丢失。 您可以在规划存储策略时考虑成本与收益权衡,以及数据耐久性,然后将其作为存储池提供给 Ceph 客户。
- 只有数据存储池可以使用擦除编码。 存储服务数据和存储区索引的池使用复制。
- Ceph 的对象副本或编码块会使 RAID 解决方案过时。 请勿使用 RAID ,因为 Ceph 已处理数据耐久性,已降级的 RAID 会对性能产生负面影响,并且使用 RAID 恢复数据的速度远远慢于使用深度拷贝或擦除编码块。