目标
在当前现有的 ceph 环境下添加 mds (cephfs) 服务
理解
客户端可以通过 nfsV4, cephfs 的方法对 cephfs 进行访问
使用通用 posfix 标准
要创建 cephfs 你必须在 ceph rados 下创建两个 POOL
data pool 用于存储数据
metadata pool 用于存储数据的元数据 ( 可以连接为存储了文件的索引节点信息)
当客户端要访问 cephfs 上的文件时, 首先要连接 mds 服务
假如客户端需要对文件执行操作,需要先连接至 MDS server, mds 记录了客户端的操作日志,通过 metadata 中获取 innode 信息, 返回至客户端, 然后客户端要转去 data pool 访问文件数据
环境
ceph 状态
# ceph -s
cluster:
id: 7e720238-7xxxxxxxxxxxxxxd9d9a49ac4e4
health: HEALTH_OK
services:
mon: 3 daemons, quorum ns-storage-020100,ns-storage-020101,ns-storage-020102
mgr: ns-storage-020100(active), standbys: ns-storage-020101, ns-storage-020102
osd: 18 osds: 18 up, 18 in
data:
pools: 3 pools, 1152 pgs
objects: 250 objects, 631 MB
usage: 40584 MB used, 66966 GB / 67006 GB avail
pgs: 1152 active+clean
ceph osd 状态
# ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-12 24.00000 root noah
-9 8.00000 host ns-storage-020100.vclound.com
12 hdd 4.00000 osd.12 up 1.00000 1.00000
13 hdd 4.00000 osd.13 up 1.00000 1.00000
-10 8.00000 host ns-storage-020101.vclound.com
14 hdd 4.00000 osd.14 up 1.00000 1.00000
15 hdd 4.00000 osd.15 up 1.00000 1.00000
-11 8.00000 host ns-storage-020102.vclound.com
16 4.00000 osd.16 up 1.00000 1.00000
17 4.00000 osd.17 up 1.00000 1.00000
-1 47.63620 root default
-2 15.63620 host ns-storage-020100
0 hdd 3.63620 osd.0 up 1.00000 1.00000
1 hdd 4.00000 osd.1 up 1.00000 1.00000
2 hdd 4.00000 osd.2 up 1.00000 1.00000
3 hdd 4.00000 osd.3 up 1.00000 1.00000
-3 16.00000 host ns-storage-020101
4 hdd 4.00000 osd.4 up 1.00000 1.00000
5 hdd 4.00000 osd.5 up 1.00000 1.00000
6 hdd 4.00000 osd.6 up 1.00000 1.00000
7 hdd 4.00000 osd.7 up 1.00000 1.00000
-4 16.00000 host ns-storage-020102
8 hdd 4.00000 osd.8 up 1.00000 1.00000
9 hdd 4.00000 osd.9 up 1.00000 1.00000
10 hdd 4.00000 osd.10 up 1.00000 1.00000
11 hdd 4.00000 osd.11 up 1.00000 1.00000
创建 mds
分别在每个节点上创建对应目录, 注意这个 ID 不可以直接用数字, 这里取 hostname 为 id 值
ex: mkdir -p /var/lib/ceph/mds/ceph-{id}
在每个机器上分别执行
mkdir -p /var/lib/ceph/mds/ceph-$(hostname -s)
为每个机器创建 keyrings
分别在每个机器上执行
ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-{id}/keyring --gen-key -n mds.0
执行:
# ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-$(hostname -s)/keyring --gen-key -n mds.$(hostname -s )
creating /var/lib/ceph/mds/ceph-ns-storage-020100/keyring
]# ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-$(hostname -s)/keyring --gen-key -n mds.$(hostname -s )
creating /var/lib/ceph/mds/ceph-ns-storage-0