简述
1、架构哲学
所有组件可扩展
不存在单点故障
解决方案是软件定义,开源可适配
运行于通用硬件之上
尽可能自我管理
2、CRUSH算法
controlled replication under scalable hashing
在后台计算数据存储和读取的位置
基础设施感知,CRUSH以多副本的方式保存数据,以保证在失效区域中有些组件失效的情况下数据依旧可用
3、块存储
数据被以块的形式存储在卷里,卷会被挂接到节点上
rbd协议(ceph块设备):
RBD块被带状分布在多个Ceph对象之上,而这些对象本身又是分布在整个Ceph存储集群中;
RBD支持全内存式缓存,大大提高其性能;
支持最大的image的大小为16EB,这些image可以被映射成磁盘给物理裸机、虚拟机或其它主机使用
完全支持云平台;在openstack中,可通过cinder(块)和glance(image)组件来使用ceph块设备,这样可使用其copy-on-write特性在很短的时间内创建上千个VM
4、文件系统:
CephFS,一个兼容POSIX的文件系统
Ceph文件系统库(libcephfs)运行在RADOS库(librados)之上,
要使用CephFS,集群节点上最少要配置一个Ceph元数据服务器(MDS)
5、对象存储
Ceph是通过其object gateway,即RADOS gateway(radosgw)提供对象存储接口。RADOS gateway利用librgw(RADOS gateway library)和librados这些库,允许应用程序跟Ceph对象存储建立连接
RADOS gateway提供RESTful接口让用户的应用程序存储数据到Ceph存储集群中。RADOS gateway接口是:
• Swift compatibility Swift 兼容: This is an object storage functionality for the OpenStack Swift API
• Swift 兼容: 这是为OpenStack Swift API提供的对象存储功能。
• S3 compatibility S3兼容: This is an object storage functionality for the Amazon S3 API
• S3兼容: 这是为Amazon S3 API提供的对象存储功能。
• Admin API: This is also known as the management API or native API, which can be used directly in the application to gain access to the storage system for management purposes
• Admin API: 这也被称为管理API或者native API,应用程序可以直接使用它来获取访问存储系统的权限以管理存储系统。