0.原理介绍
-元数据(Metadata):
任何文件系统中的数据分为数据和元数据
数据是指普通文件中的实际数据
元数据指用来描述一个文件的特征的系统数据(比如:访问权限,文件拥有者,以及文件数据块的分片信息)
-一个文件系统是由inode和block两部分组成,效果如图所示。
inode存储文件的描述信息(metadata元数据),block中存储真正的数据。
-ceph MDS
ceph MDS 是元数据服务器,只有ceph 文件系统(cephFS)才会需要。
-cephFS
cephFS在RADOS 层之上 提供一个兼容POSIX 的文件系统。他是用MDS 作为守护进程,负责管理其元素数据并将它和其他数据分开。
cephFS 需要用到两个pool : fs_data 和fs_metadata。 在初次使用ceph 就能之前需要首先规划,集群一共承载多少存储业务,创建多少个 pool,最后得到每个存储应该分配多少个pg。
-pg 数量计算
集群PG总数:
PG 总数= (OSD 总数* 100 )/最大副本数 (结果舍入到最接近的2的N次方幂的值)
结合本人搭建集群、例: PG总数 = (3*100)/2=150 ≈ 128 个PG。
集群中 每个pool 的pg 总数:
PG 总数= ((OSD总数*100)/ 最大副本数 )/ 池数
本人 规划 共有两种业务存储,平均分 128个PG ,每个业务存储使用 64个。 cephfs 两个pool :fs_data 使用 96个PG 、fs_metadata 使用 32个PG。
创建池:
#ceph osd pool create pool_name gp_num pgp_num
PGP是为了实现定位而设置的PG,默认情况下单个池的PG总数和PGP总数一致,即 PG_num=PGP_num
1.搭建Ceph集群
教程地址:
https://blog.csdn.net/ck784101777/article/details/102744203
2.创建fs_data 和fs_metadata
- [root@node4 ~]# ceph osd pool create cephfs_data 96
- //创建存储池,对应98个PG
- [root@node4 ~]# ceph osd pool create cephfs_metadata 32
- //创建存储池,对应32个PG
3.创建Ceph文件系统
- [root@node4 ~]# ceph fs new myfs1 cephfs_metadata cephfs_data
- new fs with metadata pool 2 and data pool 1
- //注意,先写medadata池,再写data池
- //默认,只能创建1个文件系统,多余的会报错
- [root@node4 ~]# ceph fs ls
- name: myfs1, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
4.客户端挂载使用
如果使用块存储需要你安装ceph-common,文件系统不需要直接挂载即可
- [root@client ~]# mount -t ceph 192.168.4.11:6789:/ /mnt/cephfs/ \
- -o name=admin,secret=AQBTsdRapUxBKRAANXtteNUyoEmQHveb75bISg==
- //注意:文件系统类型为ceph
- //192.168.4.11为MON节点的IP(不是MDS节点)
- //admin是用户名,secret是密钥
- //密钥可以在/etc/ceph/ceph.client.admin.keyring中找到