ceph是一个开源的,用c++语言编写的分布式的存储系统。存储文件数据。
/dev/sdb
fdisk /dev/sdb
gdisk /dev/sdb
lvm 逻辑卷 可以扩容
raid 磁盘 高可用
基于物理意义上的单机的存储系统。
分布式由多台物理磁盘组成一个集群,在这个基础之上实现高可用,扩展。
ceph是一个统一的存储系统,同时提供块设备存储,文件系统存储和对象存储三种存储
对象存储RGW oss:
对象存储也就是键值对存储,通过接口指令,get put del和其他的命令向对象存储上或者下载数据。
把数据作为对象,按照一定的逻辑和算法,存储到不同的硬盘上(可以是不同机器上的硬盘,依靠网络来进行互相通信)
优点:
使用的是硬盘组,不受目录系统的影响,读写效率高
集群的扩展性很强,支持多副本存储。
可以直接通过URL访问文件。简单好管理
缺点
内容变动较大的文件不适合作为存储对象,每一次变动都要重新上传。
文件系统存储 ceph-fs
ceph集群的存储看做是一个大的分区或者共享文件挂载到客户端的本地
客户端可以在本地直接进行操作。速度快,可以存储的数据类型也没有限制。
内核态和用户态:
mount 内核态 速度快 读写也快
ceph-fuse 用户态 速度慢 读写稍慢
优点
成本低,随便的一台服务器都可以做。
公司内部都使用这种方式。内网云盘就是这种方式
缺点
读写速度和传输速度相对比较慢(本地使用不再此列)
块存储RBD
rbd可以为kvm虚拟化和云服务(openstack)可以提供高性能和无线可扩展的存储后端。
磁盘映射, RAID和lvm提供磁盘空间,多个主机上的raid或者Ivm组成一个逻辑上的RAID和lvm。
优点
多块磁盘组成这种逻辑空间 可以并行的执行读写操作,IO效率比较高
缺点
对网络传输的要求比较高,windows无法访问linux的RDB操作。
ceph的主要特点
1、统一存储:对象 块 文件系统
2、Crush算法,算法来实现数据的寻址。数据完整性的校验和一致性。
3、高扩展性,扩容方便,可靠性比较强。创建数据的时候可以对数据进行副本操作,副本数由管理定义的副本可以跨主机保存,跨架构,跨机房,跨数据中心进行保存。
4、高性能,因为是多副本,读写的时候可以做到并行化处理。
ceph的组件和作用
1、OSD: ceph当中的OSD的守护进程,是集群的基础
主要功能:存储数据,保存副本数据,数据恢复,平衡数据分布
冗余和高可用至少要有3个OSD(三个机器上的三个物理硬盘)
2、Monitors: mon monitors守护进程,监视ceph集群的状态,维护ceph集群的健康
OSD的状态也属于MON的监控范围。
ceph存储集群必须要有一个Monitors进程,和两个OSD进程。
服务器的数量必须是奇数台。2-5
管理节点 mon osd osd
3、MDS:也是一个守护进程,保存ceph文件系统的元数据。(文件的权限,所有者,所在组,修改时间等等,在ceph集群当中的inode号)
4、managers:也是作为守护进程运行,跟踪集群的运行时间的指标和ceph集群的状态:主要是存储的利用率,性能指标和系统的负载。
5、RADOS:分布式存储系统,所有的存储功能都是基于RADOS实现的。高可用可性能也是基于RADOS实现的,他是所有一切的底层,也是整个ceph集群的核心
RADOS由两个部分组成:OSD Monitors
6、LIBRADOS:这是一个动态库,用来允许应用程序和RADO5