云计算专业企业实践(二)-ceph存储

今天参加云计算第二次企业实践,阳光明媚,春天来了。午餐后和一起过来的老同事在附近的公园散了会步,感受到了久违的温暖阳光,公园的树木一动不动,水平如镜,温暖而安静。

今天学习的技术主要是ceph存储,ceph存储是云计算中比较流行的存储技术,实现了分布式的大容量高可靠性和伸缩性存储功能。可以支持上千个存储节点,容量达到TB到PB级别。下面简要说说ceph的技术概要,欢迎补充和批评指正。

ceph的技术架构大体是这样的:(1)、底层是RADOS分布式存储系统,RADOS即为Reliable Autonomic Distributed Object Store,也就是可信赖的自动分布式对象存储,RADOS中的pool,PG(placement group)和OSD(object storage device)以及hash,crush等算法实现了具有数据冗余副本的分布式存储系统,如果有数据盘损坏,该系统设计的crush算法能够比较方便实现自愈。(2)librados库,支持访问底层的rados对象库,支持多种高级语言,是中间层的一个开发库,向上层提供服务。(3)最上层的开发库有radosgw,类比于公有云里边的对象存储,块存储rbd(虚拟机中申请的磁盘)和cephfs(类比于共享文件)等机制。

上层应用接口:Ceph上层应用接口包括对象存储RADOSGW、块存储RBD和文件系统存储CephFS。RADOSGW提供与Amazon S3和Swift兼容的RESTful API网关,供相应的对象存储应用开发使用;RBD提供标准的块设备接口,常用于虚拟化场景下为虚拟机创建volume。

其中虽然对上层提供了不同的存储服务,如块存储,在申请虚机时可以作为虚拟机的块磁盘使用,还有rados gateway提供了类似于基于bucket和file的两层结构的对象存储,和cephfs文件存储系统(类似于nfs和windows共享文件),但是这些不同的存储方式的底层都是基于rados的高效分布式存储的,由于在ceph中一般都是采用object这个单位进行的分片存储,分布式存储的文件读写就可能采用并行的机制,实现高吞吐量的IO读写。

细节还有很多,如要理解crush算法,理解不同的管理工具和配置文件的使用等等,还有和openstack云计算平台的集成等等,具体到后面的实践环节再补充更新。