验证是否具有合适版本的Linux内核。 有关详细信息,请参阅OS建议。
# lsb_release -a
# uname -r
确保Ceph存储集群正在运行并处于active + clean状态。 还要确保至少运行一个Ceph元数据服务器。
Tip:创建MDS之后,但在创建某些池和文件系统前,MDS不会变为活动状态。
# ceph -s
cluster:
id: 6ba14dc2-0261-4925-9a50-f90c94d544d2
health: HEALTH_OK
services:
mon: 3 daemons, quorum node1,node2,node3
mgr: node1(active), standbys: node2, node3
osd: 8 osds: 8 up, 8 in
data:
pools: 6 pools, 384 pgs
objects: 231 objects, 2.3 KiB
usage: 8.2 GiB used, 15 TiB / 15 TiB avail
pgs: 384 active+clean
需先创建两个存储池,一个池用于存储数据,另一个用于存储元数据。然后创建文件系统
#ceph osd pool create cephfs_data
#ceph osd pool create cephfs_metadata
# ceph fs new cephfs_metadata cephfs_data
此命令将创建一个新文件系统。 文件系统名称和元数据池名称是不言自明的。 指定的数据池是默认数据池,设置后无法更改。每个文件系统都有自己的一组分配给rank的MDS守护进程,因此请确保有足够的备用守护进程来容纳新的文件系统。
例如:
# ceph osd pool create cephfs_data 64
pool 'cephfs_data' created
# ceph osd pool create cephfs_metadata 64
pool 'cephfs_metadata' create
# ceph fs new cpehfs cephfs_metadata cephfs_data
new fs with metadata pool 8 and data pool 7
此时MDS会变为活动状态
# ceph -s
cluster:
id: 6ba14dc2-0261-4925-9a50-f90c94d544d2
health: HEALTH_OK
services:
mon: 3 daemons, quorum node1,node2,node3
mgr: node1(active), standbys: node2, node3
mds: cpehfs-1/1/1 up {0=node2=up:active}, 1 up:standby
osd: 8 osds: 8 up, 8 in
data:
pools: 8 pools, 512 pgs
objects: 253 objects, 5.1 KiB
usage: 8.3 GiB used, 15 TiB / 15 TiB avail
pgs: 512 active+clean
按名称列出所有文件系统。
# ceph fs ls
name: cpehfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
转储给定epoch(默认值:current)的FSMap,其中包括所有文件系统设置、MDS守护进程及其所属的rank,以及备用MDS守护进程列表。
# ceph fs dump
dumped fsmap epoch 8
e8
enable_multiple, ever_enabled_multiple: 0,0
compat: compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap,8=no anchor table,9=file layout v2,10=snaprealm v2}
legacy client fscid: 1
Filesystem 'cephfs' (1)
fs_name cpehfs
epoch 7
flags 12
created 2019-10-15 09:57:09.335969
modified 2019-10-15 09:57:10.339237
tableserver 0
root 0
session_timeout 60
session_autoclose 300
max_file_size 1099511627776
min_compat_client -1 (unspecified)
last_failure 0
last_failure_osd_epoch 0
compat compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap,8=no anchor table,9=file layout v2,10=snaprealm v2}
max_mds 1
in 0
up {0=4192}
failed
damaged
stopped
data_pools [7]
metadata_pool 8
inline_data disabled
balancer
standby_count_wanted 1
4192: 11.11.11.21:6804/2626601780 'node2' mds.0.6 up:active seq 60626
Standby daemons:
4188: 11.11.11.20:6805/1630534972 'node1' mds.-1.0 up:standby seq 1
要获取指定文件系统的信息,包括设置和rank。 这是ceph fs dump命令中相同信息的子集。
# ceph fs get
例如:
# ceph fs get cephfs
Filesystem 'cephfs' (1)
fs_name cpehfs
epoch 7
flags 12
created 2019-10-15 09:57:09.335969
modified 2019-10-15 09:57:10.339237
tableserver 0
root 0
session_timeout 60
session_autoclose 300
max_file_size 1099511627776
min_compat_client -1 (unspecified)
last_failure 0
last_failure_osd_epoch 0
compat compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap,8=no anchor table,9=file layout v2,10=snaprealm v2}
max_mds 1
in 0
up {0=4192}
failed
damaged
stopped
data_pools [7]
metadata_pool 8
inline_data disabled
balancer
standby_count_wanted 1
4192: 11.11.11.21:6804/2626601780 'node2' mds.0.6 up:active seq 60626
将数据池添加到文件系统。 此池可用作文件布局,作为存储文件数据的备用位置。
# ceph fs add_data_pool
此命令从文件系统的数据池列表中删除指定的池。 如果任何文件具有已删除数据池的布局,则文件数据将变为不可用。 无法删除默认数据池(创建文件系统时指定的池)。
# ceph fs rm_data_pool
默认情况下,Ceph存储集群在启用身份验证的情况下运行。 应该有一个包含密钥的文件(不是密钥环本身)。 要获取特定用户的密钥,请执行以下过程:
在keyring文件中查看用户的密钥。 例如:
# cat ceph.client.admin.keyring
[client.admin]
key = AQALapVchh0XHRAAjMrPZT08c66wlVhnCISNtQ==
...
新建一个以用户名称为属性的文件(例如,admin.secret)。将该用户的密钥粘贴到空文件,复制用户的密钥用于挂载CephFS文件系统。
AQALapVchh0XHRAAjMrPZT08c66wlVhnCISNtQ==
确保文件权限适合用户,但对其他用户不可见。
将该文件复制到所有的节点。
# scp /etc/ceph/admin.secret node2:/etc/ceph/
# scp /etc/ceph/admin.secret node3:/etc/ceph/
# scp /etc/ceph/admin.secret node4:/etc/ceph/
将CephFS挂载为内核驱动。
#sudo mkdir /mnt/nzfs
#sudo mount -t ceph {ip-address-of-monitor}:6789:/ /mnt/nzfs
Ceph存储集群默认使用身份验证。 在“创建密钥文件”部分中指定创建用户name和secretfile。 例如:
#sudo mount -t ceph 11.11.11.20,11.11.11.21,11.11.11.22:6789:/ /mnt/nzfs -o name=admin,secretfile=/etc/ceph/admin.secret
# df -Th
...
11.11.11.20,11.11.11.21,11.11.11.22:6789:/ ceph 3.5T 0 3.5T 0% /mnt/nzfs
将CephFS挂载为用户空间文件系统(FUSE)。
# sudo mkdir /fs
# sudo ceph-fuse -m {ip-address-of-monitor}:6789 ~/mycephfs
例如:
# ceph-fuse -m 11.11.11.20,11.11.11.21,11.11.11.22:6789 /fs
ceph-fuse[8084]: starting ceph client
2019-03-25 04:03:49.368 7f97141a6c00 -1 init, newargv = 0x559bbd95b4a0 newargc=7
ceph-fuse[8084]: starting fuse
# df -Th
...
ceph-fuse fuse.ceph-fuse 3.5T 0 3.5T 0% /fs
Ceph存储集群默认使用身份验证。 如果密钥环不在默认位置(即/etc/ceph),请指定密钥环:
# sudo ceph-fuse -k ./ceph.client.admin.keyring -m {ip-address-of-monitor}:6789 /fs
先umount文件系统,停止MDS,再删除文件系统。
删除CephFS文件系统将从FSMap中删除关于文件系统状态的信息。元数据池和数据池是不受影响的,必须单独删除。
# systemctl stop ceph-mds.target
# ceph fs rm [--yes-i-really-mean-it]