ceph-mimic-13.2.5中CephFS的初步使用


前提准备

有一个HEALTH_OK的ceph集群,并且还有剩余的存储空间。

这里是我所搭建的集群:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ sudo ceph -s
cluster:
id: a20b153c-c907-41bb-a5b2-753a40e2085c
health: HEALTH_WARN
clock skew detected on mon.node2
services:
mon: 4 daemons, quorum node1,node2,node3,node4
mgr: node2(active), standbys: node3, node1, node4
osd: 4 osds: 4 up, 4 in
rgw: 1 daemon active
data:
pools: 6 pools, 48 pgs
objects: 492 objects, 1.1 GiB
usage: 7.5 GiB used, 42 GiB / 50 GiB avail
pgs: 48 active+clean

创建mds(METADATA SERVER)

要使用CephFS,至少需要有一个mds,可以使用ceph-deploy工具进行创建:

1
[deploy]$ ceph-deploy mds create node1

查看mds状态:

1
2
3
[node1]$ sudo ceph mds stat
, 1 up:standby

可以看到mds创建成功了。


创建CEPH FILESYSTEM

根据官方文档所述A Ceph filesystem requires at least two RADOS pools, one for data and one for metadata., 这里需要创建两个pool。

1
2
3
4
5
6
7
[node1]$ ceph osd pool create cephfs_data 16
pool 'cephfs_data' created
[node1]$ ceph osd pool create cephfs_metadata 16
pool 'cephfs_metadata' created

然后直接就可以进行CephFS的创建:

1
2
3
4
[node1]$ ceph fs new cephfs cephfs_metadata cephfs_data
[node1]$ ceph fs ls
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

此时sudo ceph mds stat命令和sudo ceph -s的输出就发生了变化:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[node1]$ sudo ceph mds stat
cephfs-1/1/1 up {0=node1=up:active}
[node1]$ sudo ceph -s
cluster:
id: a20b153c-c907-41bb-a5b2-753a40e2085c
health: HEALTH_OK
services:
mon: 4 daemons, quorum node1,node2,node3,node4
mgr: node2(active), standbys: node3, node1, node4
mds: cephfs-1/1/1 up {0=node1=up:active} // 增加了mds的状态
osd: 4 osds: 4 up, 4 in
rgw: 1 daemon active
data:
pools: 8 pools, 112 pgs
objects: 514 objects, 1.1 GiB
usage: 7.5 GiB used, 42 GiB / 50 GiB avail
pgs: 112 active+clean

注:集群中可以同时创建多个CephFS,这时候就会有默认FS、优先级等设置上的问题。


挂载CephFS

挂载CephFS有几种不同的方式,直接挂载、fuse、fstab。

这里一一进行叙述,但是详细的内核态用户态什么的就先不分析了。

在哪台机器上执行都可以,无所谓。


直接挂载CephFS

很简单,直接使用mount命令挂载就完事了,注意端口是6789,密钥去ceph.client.admin.keyring里看,不要在要挂载的目录下去执行挂载!

1
2
$ sudo mkdir /mnt/mycephfs
$ sudo mount -t ceph 192.168.31.203:6789:/ /mnt/mycephfs -o name=admin,secret=AQBxGTVdnr4PAhAAd4KqF0802IwTk0wVzw0cZA==

复制一个文件进去试试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 复制文件进去
$ sudo mkdir /mnt/mycephfs/test
$ sudo cp 11.mp4 /mnt/mycephfs/test/
// 卸载看是不是都没了
$ sudo umount /mnt/mycephfs
$ ll /mnt/mycephfs/
total 0
// 重新挂载
// 查看文件
$ sudo mount -t ceph 192.168.31.203:6789:/ /mnt/mycephfs -o name=admin,secret=AQBxGTVdnr4PAhAAd4KqF0802IwTk0wVzw0cZA==
$ ll /mnt/mycephfs/test/
total 196753
-rw-r--r-- 1 root root 201474919 Aug 5 10:03 11.mp4

可以看到文件成功的存入了CephFS中。


使用ceph-fuse进行挂载

按照官方文档所说,把密钥和conf拷贝到要执行挂载的机器上:

1
2
[client]$ sudo scp [email protected]:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
[client]$ sudo scp [email protected]:/etc/ceph/ceph.conf /etc/ceph/ceph.conf

要注意的是,现在需要使用的ceph-fuse命令是还没有按照的,需要手动按照一下:

1
[client]$ sudo yum install -y ceph-fuse

进行挂载:

1
2
3
4
5
6
7
8
9
10
11
[client]$ sudo mkdir /home/ming/cephfs
[client]$ sudo ceph-fuse -m 192.168.31.203:6789 /home/ming/cephfs
ceph-fuse[1607]: starting ceph client
2019-08-05 10:21:37.388 7f7f411bec00 -1 init, newargv = 0x55b21236d6e0 newargc=7
ceph-fuse[1607]: starting fuse
[client]$ ll cephfs/test/
total 196753
-rw-r--r-- 1 root root 201474919 Aug 5 10:03 11.mp4

可以看到成功的进行了挂载,并且也看到了已有的文件。

下面进行卸载,注意到卸载所使用的命令与挂载不同:

1
$ sudo fusermount -u cephfs/

使用fstab进行挂载

也就是在/etc/fstab文件中进行配置,这样在开机时就会自动进行挂载。

首先,将密钥保存到一个文件里面:

1
2
3
4
$ sudo vim /etc/ceph/secret.key
$ sudo cat /etc/ceph/secret.key
AQBxGTVdnr4PAhAAd4KqF0802IwTk0wVzw0cZA==

修改/etc/fstab

1
2
3
4
5
6
7
8
9
10
$ sudo vim /etc/fstab
$ sudo cat /etc/fstab
...
/dev/mapper/centos-root / xfs defaults 0 0
UUID=37492c10-b6e6-4905-99ad-36207abe5b00 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
# ceph fs
192.168.31.203:6789:/ /mnt/mycephfs ceph name=admin,secretfile=/etc/ceph/secret.key,noatime,_netdev 0 2

重启虚拟机:

1
2
3
4
5
6
7
8
$ sudo reboot
$ ll /mnt/mycephfs
total 0
drwxr-xr-x 1 root root 1 Aug 5 10:03 test
$ ll /mnt/mycephfs/test
total 196753
-rw-r--r-- 1 root root 201474919 Aug 5 10:03 11.mp4

可以看到完成了开机自动挂载。


参考

CEPH FILESYSTEM

---------------------------------END---------------------------------