Ceph
每个Ceph集群必定具备两种角色的组件,一个是Monitor(监视器),另一个是OSD
Monitor:主要负责集群内的结点生命周期管理,数据分布策略计算并维护集群的成员和状态等工作,Monitor通过实现Paxos算法来提供强一致性的选举策略。
OSD:主要负责存储盘的生命周期管理,每一个DISK、SSD或者RAID
Group,任何一个物理存储设备都应成为一个OSD,其实现了对象数据的存储和查找,并且负责向该对象的复制结点分发和恢复,也是客户端IO的服务者,保证数据的完整性、高可靠性和回复一致性。
若干个Monitor和OSD通过部署在服务器互联形成一个RADOS集群。
Reliable Autonomous Distributed Objectstore
LibRADOS:封装了面向RADOS集群的操作,通过Ceph原生协议使得任意客户端可以直接访问数据存储结点。值得一提的是RADOS支持插件式架构,每个OSD允许支持动态链接库的加载,这些动态链接库通过注册操作接口可用作为OSD提供给LibRADOS操作的一部分
RBD(RADOS BlockDevice):块设备作为最通用的存储方式,可以提供给操作系统或者大型系统软件作为存储介质,Ceph通过将多个对象聚合来提供简单的块接口访问,同时利用数据切片能力使得对象分布在不同的OSD中,客户端可以并发地从不同的OSD获得数据来得到高性能存储体验。与企业级块存储累死,RBD同样提供了快照、克隆、精简配置、增量备份等高级存储服务。
RADOS Object Storage:指通过AWS S3/Openstack Swift这类HTTP RESTful对象存储协议提供块存储服务。是目前Ceph用来支撑大规模文件存储服务、备份归档场景的主要接口,其通过配合ErauseCode能够获得较高的可用存储空间和更高的数据可靠性。