ceph是一个开源的,用c++语言编写的分布式的存储系统,存储文件数据。
lvm 逻辑卷 可以扩容
raid 磁盘阵列 高可用 基于物理意义上的存储系统
分布式就是多台物理磁盘组成的一个集群,在这个基础之后实现高可用,扩展
特点:1、远程访问
2、多个服务器组成的虚拟硬盘
3、分布式存储
4、负载均衡
ceph是一个同一的存储系统,同时提供块设备存储,文件系统存储和对象存储的三种存储。
对象存储(RGW):
就是键值存储,通过接口指令,get,put ,del 和其他命令向对象存储上传或者下载数据。
把数据作为对象,按照一定的逻辑和算法,存储到不同的硬盘上(可以是不同机器上的硬盘,依靠网络来进行互相通信)
优点:1、使用的是硬盘组,不受目录系统的影响,读写效率高
2、集群的扩展性很强,支持多副本存储
3、可以直接通过URL访问数据
缺点:1、内容变动比较大的文件,不适合作为对象存储
2、主要是静态图片等等不需要变动的数据
文件系统存储 ceph-fs
ceph 集群的存储看做一个大的分区或者共享文件挂载到客户端的本机。
客户端可以在本地直接进行操作。速度快,可以存储的数据类型也没有限制
内核态和用户态
mount 内核态 速度快 读写也快
ceph-fuse 用户态 速度慢 读写稍慢
优点:成本低,随便的一台服务器都可以做。
公司内部都会使用这种方式。内网云盘
缺点:读写速度和传输速度相对比较慢(本地使用除外)。
块存储RDB
RDB为kvm虚拟化和云服务(OpenStack)提供高性能和无线可扩展的存储后端。
磁盘映射,RAID和lvm提供磁盘空间,多个主机上的raid或者lvm组成逻辑上的RAID和lvm
多快磁盘组成这种逻辑空间,可以并行的执行读写操作。
**缺点:**对网络传输的要求比较高,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进程。
服务器的数据必须是奇数台。
管理节点 mon osd
3、MDS也是一个守护进程,保存ceph文件系统的元数据。(文件的权限,所有者,所在组,创建/修改时间等等,在ceph集群中的inode号)
4、manages也是作为守护进程运行,跟踪集群的运行时间的指标和ceph集群的状态:存储的利用率,性能指标和系统的负载。
5、RADOS:分布式存储系统,所有的存储功能都是基于RADOS实现的,高可用,高性能也是基于RADOS实现的
RADOS是所有一切的底层,也是ceph集群的核心。
RADOS组成部分:OSD,Monitor
6、LIBRADOS:这是一个动态库,用来允许应用程序和RADOS系统进行交互。
通过端口进行通信。
存储的概念:
存储数据和object的关系:
对象,块,文件系统挂载,都需要object,存储的数据会被分成多个object,分成之后每一个数据都会有一个object id 。
每个数据的object的大小可以调整的,默认是4M
ceph的最小存储单位
object和pg的关系:
object的数量太多了,在一个集群当中,object的数量太多,遍历和寻址速度慢
PG,就是归属组,placcment group 管理object。
object通过CRUSH算法映射到PG当中,一个PG里面可以包含多个object
有组遍历和寻址会变快
pg与osd之间的关系:
pg也是通过CRUSH算法映射到OSD当中去存储,如果有3个副本,每个pg会映射到三个OSD当中。
三个OSD A B C
PG会同步到 A B C
pg和pgd的关系
8M的数据分为两个4M 分别为1 2
副本数3 pg2
副本数算主的数量
pg2 不算主机的数量
存储池 pool
ceph集群进行逻辑划分,设置ceph存储集群的权限,副本数 pg的数量和算法的规则
pool是由管理员自定义,相当于一个独立的空间,没有pool之间是独立的,数据也是隔离的
先创建pool存储池,然后划分object(4M一个)之后按照pg组的数量划分object到pg组,之后根据副本数复制到其他的OSD上。
192.168.11.144 admin osd mon mgr
192.168.11.145 osd mds mon mgr
192.168.11.146 osd mds mon mgr
192.168.11.153 client
mount
ceph-fuse
rdb
192.168.11.144 配置
192.168.11.145 配置
192.168.11.146 配置
第一个存储数据的pool
第二个存储元数据的pool
ceph osd pool create cephfs_date pg_num
少于5个osd的情况下,pg的数量等于128
5-10个osd 512
10-50个osd 4096个
Pg总数:750个,不能超过750个
1283= 384个
750-384=366
存储元数据也要pg
128 * 2= 256
存储数据:
osd * pg 值
元数据
2pg值
osd * pg值 + 2 * pg 值 < 750
pg_num =(osd*100)/副本数(计算pg的值)
设定pg值的目的,通过管理较少的pg,ceph获取数据,分配,管理数据的效率越高。
pg值越多,数据分布的的越多,管理的就越复杂
[root@mysql1 ceph]# ceph osd pool create cephfs_test11 3
pool ‘cephfs_date’ created
#创建存储数据的数据池
[root@mysql1 ceph]# ceph osd pool create ceph_metatest11 4
pool ‘ceph_metadata’ created
#创建保存元数据的数据池
[root@mysql1 ceph]# ceph fs new cephfs_test11 ceph_metatest11 cephfs_test11
new fs with metadata pool 2 and data pool 1
#创建文件系统
挂载:mount -t ceph 192.168.118.61:6789:/ /data2 -o name=admin,secret=AQBa/LJmAn2OMxAA7EEZTaurchJ+K4uPyQNhfQ==,mds_namespace=cephfs_test11
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/35745.html