一、官方文档
http://docs.ceph.org.cn/
http://docs.ceph.org.cn/cephfs/
# 操作文档
二、部署MDS集群
# 1、创建三个节点
[root@node1 ~]# cd /app/ceph-deploy/ceph-deploy/
[root@node1 ceph-deploy]# ceph-deploy mds create node1 node2 node3
# 2、查看集群状态
[root@node1 ceph-deploy]# ceph -s
cluster:
id: 081dc49f-2525-4aaa-a56d-89d641cef302
health: HEALTH_OK
services:
mon: 3 daemons, quorum node1,node2,node3 (age 25m)
mgr: node3(active, since 25m), standbys: node1, node2
mds: 3 up:standby # 现在没有文件系统,所以是standby的状态
osd: 3 osds: 3 up (since 25m), 3 in (since 45m)
rgw: 2 daemons active (node1, node2)
三、部署CephFS文件系统
3.1、创建CephFS文件系统
官方文档:http://docs.ceph.org.cn/cephfs/createfs/
一个 Ceph 文件系统需要至少两个 RADOS 存储池,一个用于数据、一个用于元数据。配置这些存储池时需考虑:
- 为元数据存储池设置较高的副本水平,因为此存储池丢失任何数据都会导致整个文件系统失效。
- 为元数据存储池分配低延时存储器(像 SSD ),因为它会直接影响到客户端的操作延时。
关于存储池的管理请参考 存储池 。例如,要用默认设置为文件系统创建两个存储池,你可以用下列命令:
# 1、创建2个pool
[root@node1 ceph-deploy]# ceph osd pool create cephfs_data 8 8
pool 'cephfs_data' created
[root@node1 ceph-deploy]# ceph osd pool create cephfs_metadata 8 8
pool 'cephfs_metadata' created
[root@node1 ceph-deploy]# ceph osd lspools
1 cephfs_data
2 cephfs_metadata
# 2、创建CephFS
[root@node1 ceph-deploy]# ceph fs new cephfs-demo cephfs_metadata cephfs_data
new fs with metadata pool 7 and data pool 6
[root@node1 ceph-deploy]# ceph fs ls
name: cephfs-demo, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
# 3、查看集群状态
[root@node1 ceph-deploy]# ceph -s
cluster:
id: 081dc49f-2525-4aaa-a56d-89d641cef302
health: HEALTH_OK
services:
mon: 3 daemons, quorum node1,node2,node3 (age 35m)
mgr: node3(active, since 36m), standbys: node1, node2
mds: cephfs-demo:1 {0=node1=up:active} 2 up:standby # 变成了一个active
osd: 3 osds: 3 up (since 35m), 3 in (since 55m)
rgw: 2 daemons active (node1, node2)
3.2、用内核驱动挂载 CEPH 文件系统
要挂载 Ceph 文件系统,如果你知道监视器 IP 地址可以用 mount
命令、或者用 mount.ceph
工具来自动解析监视器 IP 地址。例如:
sudo mkdir /mnt/mycephfs
sudo mount -t ceph 192.168.1.129:6789:/ /mnt/mycephfs
要挂载启用了 cephx
认证的 Ceph 文件系统,你必须指定用户名、密钥。
sudo mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs -o name=admin,secret=AQATSKdNGBnwLhAAnNDKnH65FmVKpXZJVasUeQ==
# secret 可以不写
[root@node1 ~]# sudo mount -t ceph 192.168.1.129:6789:/ /mnt/mycephfs -o name=admin
[root@node1 ~]# cd /mnt/mycephfs
[root@node1 mycephfs]# ll
total 0
[root@node1 mycephfs]# echo aaa > aaa
[root@node1 mycephfs]# ls
aaa
前述用法会把密码遗留在 Bash 历史里,更安全的方法是从文件读密码。例如:
sudo mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs -o name=admin,secretfile=/etc/ceph/admin.secret
关于 cephx 参见认证。
要卸载 Ceph 文件系统,可以用 unmount
命令,例如:
sudo umount /mnt/mycephfs