前提准备
有一个HEALTH_OK的ceph集群,并且还有剩余的存储空间。
这里是我所搭建的集群:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| $ 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
|
要使用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 ming@192.168.31.203:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring [client]$ sudo scp ming@192.168.31.203:/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