创建CephFS文件系统
Ceph文件系统至少需要两个RADOS池,一个用于数据,一个用于元数据。在配置这些池时,您可以考虑:为元数据池使用较高的复制级别,因为该池中的任何数据丢失都可能导致整个文件系统不可访问。
为元数据池使用低延迟存储(如ssd),因为这将直接影响在客户机上观察到的文件系统操作延迟。用于创建文件系统的数据池是“默认”数据池和存储所有inode回溯信息的位置,用于硬链接管理和灾难恢复。
因此,在CephFS中创建的所有inode在默认数据池中至少有一个对象。如果文件系统计划使用擦写编码的池,那么通常最好为默认数据池使用复制池,以提高用于更新回溯的小对象写和读性能。
另外,还可以添加另一个可在目录和文件的整个层次结构上使用的擦除编码的数据池(也请参阅擦除代码)。
创建文件系统
bash> ceph osd pool create cephfs_data #创建数据pool
bash> ceph osd pool create cephfs_metadata #创建元数据pool
bash> ceph fs new <fs_name> <metadata> <data> #创建文件系统
example:
ceph fs new mycephfs cephfs_metadata cephfs_data
bash> ceph fs ls #查看文件系统
bash> ceph mds stat #查看mds状态
如果想用纠删码:
bash> ceph osd erasure-code-profile get default #醒看纠删码默认配置
bash> ceph osd pool create cephfs_data erasure #创建使用纠删除码的对象池
bash> ceph osd pool set cephfs_data allow_ec_overwrites true #开启纠删码覆盖功能
挂载文件系统
- 在挂载CephFS之前,确保客户机主机(必须挂载和使用CephFS的地方)拥有Ceph配置文件的副本(即Ceph文件)和CephX用户的一个密钥环,该用户拥有访问MDS的权限。这两个文件必须已经存在于Ceph MON所在的主机上。
- 创建client秘钥
bash> ceph fs authorize <fs_name> client.<client_id> <path-in-cephfs> rw
example:
ceph fs authorize mycephfs client.001 / rw > /etc/ceph/ceph.fs.client.001.keyring
- 挂协CephFs
example:
mount -t ceph 192.168.0.1:6789,192.168.0.2:6789:/ /mnt/mycephfs -o name=foo,secret=AQATSKdNGBnwLhAAnNDKnH65FmVKpXZJVasUeQ==
bash> mount -t ceph 192.168.10.42:6789:/ /home/mycephfs -o name=001,secret=AQCndpZf5YaPDRAA6TKEOHmaGXMcvLO/yNHUqw==
or
bash> mount -t ceph 192.168.10.42:6789:/ /home/mycephfs -o name=001,secret=/etc/ceph/client.001.secret
如果挂载的时候出错,使用dmesg
查看错误:
libceph: mon0 192.168.10.42:6789 feature set mismatch, my 107b84a842aca < server's 40107b84a842aca, missing 400000000000000
[611629.824664] libceph: mon0 192.168.10.42:6789 missing required protocol features
如果有此类提示,则说明客户端(执行挂载的机器,与集群的版本不匹配):
bash> ceph osd crush show-tunables
---
{
"choose_local_tries": 0,
"choose_local_fallback_tries": 0,
"choose_total_tries": 50,
"chooseleaf_descend_once": 1,
"chooseleaf_vary_r": 1,
"chooseleaf_stable": 1,
"straw_calc_version": 1,
"allowed_bucket_algs": 54,
"profile": "jewel",
"optimal_tunables": 1,
"legacy_tunables": 0,
"minimum_required_version": "jewel",
"require_feature_tunables": 1,
"require_feature_tunables2": 1,
"has_v2_rules": 0,
"require_feature_tunables3": 1,
"has_v3_rules": 0,
"has_v4_buckets": 1,
"require_feature_tunables5": 1,
"has_v5_rules": 0
}
bash> ceph osd crush tunables hammer #将最低要求客户端版本限制为hammer
bash> ceph osd crush show-tunables
---
{
"choose_local_tries": 0,
"choose_local_fallback_tries": 0,
"choose_total_tries": 50,
"chooseleaf_descend_once": 1,
"chooseleaf_vary_r": 1,
"chooseleaf_stable": 0,
"straw_calc_version": 1,
"allowed_bucket_algs": 54,
"profile": "hammer",
"optimal_tunables": 0,
"legacy_tunables": 0,
"minimum_required_version": "hammer",
"require_feature_tunables": 1,
"require_feature_tunables2": 1,
"has_v2_rules": 0,
"require_feature_tunables3": 1,
"has_v3_rules": 0,
"has_v4_buckets": 1,
"require_feature_tunables5": 0,
"has_v5_rules": 0
}
做完以上步骤后,再次挂载则成功了。在client上可以看到:
bash> df -h
---
192.168.10.42:6789:/ 60G 3.3G 57G 6% /home/mycephfs
网友评论