一、启用 CephFS
Ceph 文件系统(CephFS)至少需要两个 RADOS 池:一个用于存储数据(data pool),一个用于存储元数据(metadata pool)。以下是启用 CephFS 的详细步骤。
1.1 启用 MDS 服务
使用 ceph-deploy
命令在指定节点启用 MDS 服务:
ceph-deploy mds create node01
1.2 创建数据池和元数据池
创建数据池:
ceph osd pool create cephfs_data 128
创建元数据池:
ceph osd pool create cephfs_metadata 128
1.3 启用文件系统
将上述创建的池关联到 CephFS:
ceph fs new cephfs cephfs_metadata cephfs_data
1.4 查看 CephFS 状态
验证文件系统是否成功创建:
ceph fs ls
二、挂载 CephFS
CephFS 支持通过内核挂载和 FUSE 挂载。以下分别介绍两种挂载方式。
2.1 使用内核挂载
关闭认证的情况下
- 创建挂载目录:
sudo mkdir -p /mnt/cephfs
- 挂载文件系统:
sudo mount -t ceph 192.168.0.1:6789:/ /mnt/cephfs
- 设置开机自动挂载:
在/etc/fstab
中添加以下内容:192.168.0.1:6789:/ /mnt/cephfs ceph noatime,_netdev 0 2
启用认证的情况下
- 查看客户端的密钥:
密钥内容类似以下:cat /etc/ceph/ceph.client.admin.keyring
[client.admin] key = AQBSdU5bT27AKxAAvKoWQdGpSuNRCHjC4B8DVA==
- 使用认证挂载:
sudo mount -t ceph 192.168.0.1:6789:/ /mnt/cephfs -o name=admin,secret=AQBSdU5bT27AKxAAvKoWQdGpSuNRCHjC4B8DVA==
- 设置开机自动挂载:
在/etc/fstab
中添加以下内容:192.168.0.1:6789:/ /mnt/cephfs ceph name=admin,secretfile=/etc/ceph/secret.key,noatime,_netdev 0 2
检查是否启用了 CephX 认证
在 ceph.conf
文件中检查认证配置:
cat /etc/ceph/ceph.conf | grep auth | grep required
输出内容如下,表示已启用认证:
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
2.2 使用 FUSE 挂载
安装挂载工具
使用以下命令安装 FUSE 挂载工具:
yum -y install ceph-fuse ceph
准备密钥
- 从存储节点拷贝 admin 密钥:
ssh root@node1 "ceph-authtool -p /etc/ceph/ceph.client.admin.keyring" > admin.key
- 设置密钥权限:
chmod 600 admin.key
执行挂载
- 挂载 CephFS:
mount -t ceph node1:6789:/ /mnt -o name=admin,secretfile=admin.key
- 验证挂载结果:
df -hT
设置开机自动挂载
在 /etc/fstab
中添加以下内容:
id=admin,conf=/etc/ceph/ceph.conf /mnt fuse.ceph defaults 0 0
2.3 多 MDS 节点支持
CephFS 支持同时启用多个 MDS 节点,不同客户端可挂载到不同的 MDS 节点,实现同时写数据,数据共享。
三、Windows 挂载 CephFS
Windows 系统可以通过 Dokan 项目实现 CephFS 挂载。
3.1 下载并安装 Dokan
从 GitHub 下载 Dokan 安装包,安装 dokaninstall.exe
。
3.2 挂载配置
具体挂载配置和使用方法请参考 Dokan 项目的文档。
四、补充说明
性能优化:
- 使用合适的池副本数和分片大小以优化性能。
- 使用 SSD 提高元数据池的性能。
安全性:
- 推荐启用 CephX 认证,确保数据传输安全。
- 定期更换客户端密钥,防止密钥泄露。
监控与维护:
- 使用
ceph status
和ceph fs status
查看集群和文件系统状态。 - 配置 Prometheus 和 Grafana 监控 Ceph 集群。
- 使用