引言:Ceph 文件系统( Ceph FS )是个 POSIX 兼容的文件系统,它使用 Ceph 存储集群来存储数据。 Ceph 文件系统与 Ceph 块设备、同时提供 S3 和 Swift API 的 Ceph 对象存储、或者原生库( librados )一样,都使用着相同的 Ceph 存储集群系统。
前提条件:需要搭建好ceph集群:具体步骤见Ceph集群搭建
准备工作
-
在管理节点(admin-node)上,用
ceph-deploy
把Ceph安装到Ceph客户端节点(ceph-client)上(注:客户端也可以安装在管理节点上,因为此处我把已经安装好Ceph的管理节点当做客户端使用,故无需执行以下命令)ceph-deploy install {ceph-client-node}
-
查看Ceph集群运行健康状态,是
HEALTH_OK
且PG进入active+clean
状态即可,并确保集群中至少有一个元数据服务器(mds)[root@ceph1 ceph]# ceph -s cluster: id: 13430f9a-ce0d-4d17-a215-272890f47f28 health: HEALTH_OK services: mon: 3 daemons, quorum ceph2,ceph1,ceph3 mgr: ceph1(active), standbys: ceph3, ceph2 osd: 3 osds: 3 up, 3 in rgw: 1 daemon active data: pools: 4 pools, 32 pgs objects: 219 objects, 1.1 KiB usage: 3.0 GiB used, 245 GiB / 248 GiB avail pgs: 32 active+clean
1.创建文件系统
①使用两个Pool来分别存储数据和元数据
[root@ceph1 ceph]# ceph osd pool create cephfs_data 128
pool 'cephfs_data' created
[root@ceph1 ceph]# ceph osd pool create cephfs_metadata 64
pool 'cephfs_metadata' created
查看集群状态发现pool+2=6,pgs+192=224。
data:
pools: 6 pools, 224 pgs
objects: 219 objects, 1.1 KiB
usage: 3.0 GiB used, 245 GiB / 248 GiB avail
pgs: 224 active+clean
②创建一个CephFS
[root@ceph1 ceph]# ceph fs new cephfs cephfs_metadata cephfs_data
new fs with metadata pool 7 and data pool 6
查看集群状态发现cephfs
创建成功,当前元数据服务器状态是up:active
表示正常。
[root@ceph1 ceph]# ceph -s
cluster:
id: 13430f9a-ce0d-4d17-a215-272890f47f28
health: HEALTH_OK
services:
mon: 3 daemons, quorum ceph2,ceph1,ceph3
mgr: ceph1(active), standbys: ceph3, ceph2
mds: cephfs-1/1/1 up {0=ceph1=up:active}
osd: 3 osds: 3 up, 3 in
rgw: 1 daemon active
data:
pools: 6 pools, 224 pgs
objects: 241 objects, 3.4 KiB
usage: 3.0 GiB used, 245 GiB / 248 GiB avail
pgs: 224 active+clean
使用下面的命令可以查看创建的CephFS:
[root@ceph1 ceph]# ceph fs ls
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
2.挂载CephFS
客户端访问Ceph FS有两种方式:
-
内核驱动
①查看ceph.client.admin.keyring
密钥环并复制key
值[root@ceph1 ceph]# cat ceph.client.admin.keyring [client.admin] key = AQBAI/JbROMoMRAAbgRshBRLLq953AVowLgJPw== caps mds = "allow *" caps mgr = "allow *" caps mon = "allow *" caps osd = "allow *"
②把CephFS挂载为内核驱动(secret参数的值就是刚才复制的key值)
[root@ceph1 ceph]# mkdir /mnt/mycephfs [root@ceph1 ceph]# mount -t ceph 10.0.86.246:6789,10.0.86.221:6789,10.0.86.253:6789:/ /mnt/mycephfs/ -o name=admin,secret=AQBAI/JbROMoMRAAbgRshBRLLq953AVowLgJPw==
③查看当前文件系统情况发现挂载成功
[root@ceph1 ceph]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda2 48G 6.7G 42G 14% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 2.0G 8.0K 2.0G 1% /dev/shm tmpfs 2.0G 17M 2.0G 1% /run tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup tmpfs 2.0G 48K 2.0G 1% /var/lib/ceph/osd/ceph-0 tmpfs 396M 0 396M 0% /run/user/0 10.0.86.246:6789,10.0.86.221:6789,10.0.86.253:6789:/ 78G 0 78G 0% /mnt/mycephfs
-
用户空间文件系统(略)
3.卸载CephFS
[root@ceph1 ceph]# umount /mnt/mycephfs
查看当前文件系统情况发现卸载成功
[root@ceph1 ceph]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda2 48G 6.7G 42G 14% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 2.0G 8.0K 2.0G 1% /dev/shm
tmpfs 2.0G 17M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs 2.0G 48K 2.0G 1% /var/lib/ceph/osd/ceph-0
tmpfs 396M 0 396M 0% /run/user/0