ceph应用情况分析
1、概述
ceph是分布式的开源存储系统,同时支持块存储、对象存储和文件系统,ceph可以满足高性能、高可靠性和高扩展等特性。
目前ceph作为开源分布式存储已经被大量使用,尤其是在云环境下的应用,下面总结一下当前ceph的块存储、对象存储和文件系统的应用情况。
2、ceph块(RBD)存储应用
块存储本质就是将裸磁盘或类似裸磁盘(lvm)设备映射给主机使用,主机可以对其进行格式化并存储和读取数据,块设备读取速度快但是不支持共享。
ceph可以通过内核模块和librbd库提供块设备支持:
客户端可以通过内核模块挂在rbd使用,客户端使用rbd块设备就像使用普通硬盘一样,可以对其就行格式化然后使用;客户应用也可以通过librbd使用ceph块,典型的是云平台的块存储服务(如下图),云平台可以使用rbd作为云的存储后端提供镜像存储、volume块或者客户的系统引导盘等。
目前ceph rbd在云平台使用比较广泛而且也很稳定,社区的支持力度也非常大。
3、ceph对象存储(radosgw)
对象存储是提供restful接口并数据组织形式扁平化的存储方法,对象存储同兼具块存储高速直接访问磁盘及文件存储的分布式共享特点。
Ceph 对象网关是一个构建在librados之上的对象存储接口,它为应用程序访问Ceph 存储集群提供了一个 RESTful 风格的网关,ceph兼容s3和swift两种接口。
对象存储的应用场景:
1)资源分发下载
网站或者app需要上传、下载和分发视频图片等
分发和下载app安装包等
2)网盘
可以对用户提供网盘服务,用户可以通过网盘存储自己任何格式的文件
ceph对象存储目前已经有厂商在使用,但是大多会基于网关等做些优化以适应自己的使用场景。
4、cephfs 文件存储
文件存储就是基于文件系统上的存储,文件存储不仅限于本地的文件系统,还可以连接基于局域网的共享文件系统。
ceph fs 是支持POSIX接口的文件系统存储,ceph fs文件系统存储继承了rados的容错和扩展性,相比NFS和CIFS来说CEPHFS可以提供副本冗余。
cephfs 支持两种挂载方式,内核驱动挂载和用户控件挂载fuse。
cephfs目前发展比较慢,之前一直没有稳定版本,2016年4月21日官方发布的jewel V10.2.0才公布第一个稳定版本,当前在生产环节中使用很少,所以还是建议谨慎使用,如果要使用需要进行严格的测试后才能上线。