上QQ阅读APP看书,第一时间看更新
3.2.2 存储池定义的内容
存储池是Ceph的逻辑单元,可以实现不同数据的逻辑隔离,给数据管控带来更多好处。存储池包含的概念介绍如下。
1)池类型:在早期的Ceph版本中,存储池仅维护对象的多个深层副本。如今,Ceph可以维护一个对象的多个副本,也可以使用纠删码来确保数据可靠。存储池类型定义了创建池时的数据持久化方法(副本或纠删码)。存储池类型对客户端完全透明。
2)放置组:在EB级存储集群中,存储池可能存储了数百万个数据对象。Ceph可通过副本或纠删码实现数据持久性,通过清洗或循环冗余校验保证数据完整,实现复制、重新平衡和故障恢复。Ceph通过将存储池划分为放置组来解决性能瓶颈问题。CRUSH算法用于在Ceph中定位存储数据的位置,并计算放置组中的OSD目标集。CRUSH算法将每个对象放入一个放置组,然后将每个放置组存储在一组OSD中。系统管理员在创建或修改存储池时设置放置组数。
3)CRUSH规则集:CRUSH扮演着另一个重要角色,可用于检测故障域和性能域。CRUSH可以按存储介质类型识别OSD。CRUSH使OSD能够跨故障域存储对象副本。例如,对象副本可能会存储在不同的服务器机房、机架和节点中。如果集群的很大一部分节点发生故障(例如机架),集群仍可以降级状态运行,直到集群恢复正常为止。此外,CRUSH能够使客户端将数据写入特定类型的硬件,例如SSD。