欢迎光临
我们一直在努力

4:cephfs及用户管理

Ceph用户管理与CephFS部署实战

一、Ceph用户管理

1. 查看所有用户

[root@ceph141 ~]# ceph auth list

2. 创建用户

方式一:直接创建用户

# 创建用户并指定权限
[root@ceph141 ~]# ceph auth add client.linux99 mon 'allow r' osd 'allow rwx pool=oldboyedu'

# 查看用户信息
[root@ceph141 ~]# ceph auth get client.linux99

方式二:创建用户并返回密钥

# 创建用户并返回完整认证信息
[root@ceph141 ~]# ceph auth get-or-create client.yinzhengjie mon 'allow r' osd 'allow rwx'

# 查看用户信息
[root@ceph141 ~]# ceph auth get client.yinzhengjie

方式三:仅获取用户密钥

# 仅创建并返回用户密钥
[root@ceph141 ~]# ceph auth get-or-create-key client.k8s mon 'allow r' osd 'allow rwx'

# 查看用户信息
[root@ceph141 ~]# ceph auth get client.k8s

3. 打印已存在用户的密钥

# 查看用户完整信息
[root@ceph141 ~]# ceph auth get client.yinzhengjie

# 仅打印用户密钥
[root@ceph141 ~]# ceph auth print-key client.yinzhengjie; echo

4. 修改用户权限

# 直接覆盖用户权限
[root@ceph141 ~]# ceph auth caps client.yinzhengjie mon 'allow rx' osd 'allow r pool=yinzhengjie'

# 验证权限修改
[root@ceph141 ~]# ceph auth get client.yinzhengjie

5. 删除用户

# 删除用户
[root@ceph141 ~]# ceph auth del client.yinzhengjie

# 验证用户已删除
[root@ceph141 ~]# ceph auth get client.yinzhengjie

二、Ceph用户备份与恢复

1. 创建测试用户

# 创建测试用户
[root@ceph141 ~]# ceph auth add client.jasonyin2020 mon 'allow rwx' osd 'allow r pool=yinzhengjie-rbd'

# 查看用户信息
[root@ceph141 ~]# ceph auth get client.jasonyin2020

2. 导出用户信息

# 将用户信息导出到文件
[root@ceph141 ~]# ceph auth get client.jasonyin2020 -o ceph.client.jasonyin2020.keyring

# 查看导出文件内容
[root@ceph141 ~]# cat ceph.client.jasonyin2020.keyring

3. 删除并恢复用户

# 删除用户
[root@ceph141 ~]# ceph auth del client.jasonyin2020

# 从文件导入用户
[root@ceph141 ~]# ceph auth import -i ceph.client.jasonyin2020.keyring

# 验证用户恢复
[root@ceph141 ~]# ceph auth get client.jasonyin2020

4. 授权规则说明

重要原则:

  • 导出授权文件并验证用户权限
  • 授权的用户只能访问对应的存储池
  • 每个用户只能查看对应存储池的块信息

三、CephFS概述

1. 基本概念

  • CephFS:高可用的NFS替代方案
  • 可实现多个主机共享目录或磁盘
  • 一份数据多个客户端都可以读写

2. CephFS工作原理

  • 元数据池:存储文件系统元数据(文件名、权限、inode等属性)
  • 数据池:存储实际的文件内容
  • MDS节点:
    • 一个active节点:负责处理所有客户端元数据请求
    • 一个以上standby节点:实时同步元数据状态

3. 部署模式建议

  • 小规模使用:单Active + 2 Standby
    • 简单稳定,资源成本低
  • 大规模使用:如 2 Active + 1 Standby
    • 提升元数据处理并发能力
    • 需注意分片均衡和故障域隔离
    • Active节点尽量分布在不同物理机

四、CephFS一主一从部署流程

1. 创建存储池

# 创建数据池
[root@ceph141 ~]# ceph osd pool create cephfs_data

# 创建元数据池
[root@ceph141 ~]# ceph osd pool create cephfs_metadata

2. 创建文件系统

# 创建名为oldboyedu-cephfs的文件系统
[root@ceph141 ~]# ceph fs new oldboyedu-cephfs cephfs_metadata cephfs_data

3. 配置数据池

# 标记数据池为大容量
[root@ceph141 ~]# ceph osd pool set cephfs_data bulk true

# 观察PG数量(需要等待30秒左右)
[root@ceph141 ~]# ceph osd pool ls detail | grep ceph

4. 查看文件系统

# 查看创建的文件系统
[root@ceph141 ~]# ceph fs ls

5. 应用MDS服务

# 为文件系统应用MDS服务
[root@ceph141 ~]# ceph orch apply mds oldboyedu-cephfs

6. 查看集群状态

# 查看文件系统状态
[root@ceph141 ~]# ceph fs status oldboyedu-cephfs
# 显示当前活跃节点(如ceph142),备用节点(如ceph143)

7. 高可用验证

# 模拟故障:关闭ceph142
[root@ceph142 ~]# shutdown now

# 查看状态变化(ceph143成为active)
[root@ceph141 ~]# ceph fs status oldboyedu-cephfs

# 恢复ceph142
# 重启后,ceph142会成为standby节点

五、CephFS客户端挂载

1. 创建用户并授权

# 创建cephfs专用用户
[root@ceph141 ~]# ceph auth add client.cephfs mon 'allow r' mds 'allow rw' osd 'allow rwx'

2. 导出认证信息

# 导出用户密钥到文件
[root@ceph141 ~]# ceph auth print-key client.cephfs > cephfs.key

# 查看密钥(保存好用于其他节点)
[root@ceph141 ~]# cat cephfs.key; echo
# 示例密钥:AQArWMlo05xaFxAAod3fblMGDu8zDhmoDKp9Mw==

3. 客户端挂载

# 客户端1(node-exporter41)
[root@node-exporter41 ~]# mkdir /data

# 挂载CephFS
[root@node-exporter41 ~]# mount -t ceph \\
10.0.0.141:6789,10.0.0.142:6789,10.0.0.143:6789:/ \\
/data \\
-o name=cephfs,secret=AQArWMlo05xaFxAAod3fblMGDu8zDhmoDKp9Mw==

# 验证挂载
[root@node-exporter41 ~]# df -h | grep data

4. 多客户端挂载

# 客户端2(node-exporter42)
[root@node-exporter42 ~]# mkdir /data

[root@node-exporter42 ~]# mount -t ceph \\
10.0.0.141:6789,10.0.0.142:6789,10.0.0.143:6789:/ \\
/data \\
-o name=cephfs,secret=AQArWMlo05xaFxAAod3fblMGDu8zDhmoDKp9Mw==

5. 测试数据同步

# 在任意客户端创建文件
[root@node-exporter41 ~]# cd /data/
[root@node-exporter41 data]# touch zxh.txt

# 在其他客户端查看文件同步
[root@node-exporter42 ~]# ls /data/

六、CephFS开机自动挂载

1. 基于rc.local方式

# 创建启动脚本
[root@prometheus-server31 ~]# cat /etc/rc.local
#!/bin/bash
install -d /data
mount -t ceph 10.0.0.141:6789,10.0.0.142:6789,10.0.0.143:6789:/ /data -o name=cephfs,secret=AQArWMlo05xaFxAAod3fblMGDu8zDhmoDKp9Mw==

# 添加执行权限
[root@prometheus-server31 ~]# chmod +x /etc/rc.local
[root@prometheus-server31 ~]# ll /etc/rc.local

# 重启测试
[root@prometheus-server31 ~]# reboot

2. 基于/etc/fstab方式

# 编辑fstab配置文件
[root@prometheus-server32 ~]# tail -1 /etc/fstab
10.0.0.141:6789,10.0.0.142:6789,10.0.0.143:6789:/ /data ceph name=cephfs,secret=AQArWMlo05xaFxAAod3fblMGDu8zDhmoDKp9Mw==,noatime,_netdev 0 2

# 测试挂载
[root@node-exporter41 ~]# df -h | grep mnt
[root@node-exporter41 ~]# mount -a # 重新加载fstab挂载信息
[root@node-exporter41 ~]# df -h | grep mnt

3. 特殊挂载方式

# 挂载特定目录(只挂载/mnt/xixi目录)
[root@node-exporter41 ~]# tail -1 /etc/fstab
10.0.0.141:6789,10.0.0.142:6789,10.0.0.143:6789:/xixi /mnt ceph name=cephfs,secret=AQArWMlo05xaFxAAod3fblMGDu8zDhmoDKp9Mw==,noatime,_netdev 0 2

# 说明:此配置仅挂载CephFS中的/xixi目录到本地的/mnt目录
# 客户端只能看到/mnt/xixi目录下的内容

七、Ceph集群管理命令

1. 集群架构查看

[root@ceph141 ~]# ceph orch ls

2. 集群守护进程管理

# 查看所有守护进程
[root@ceph141 ~]# ceph orch ps

# 查看指定节点的守护进程
[root@ceph141 ~]# ceph orch ps ceph143

3. 设备管理

# 查看所有可用设备
[root@ceph141 ~]# ceph orch device ls

4. 主机管理

# 查看集群主机列表
[root@ceph141 ~]# ceph orch host ls

5. 集群状态

# 查看配置后端及其状态
[root@ceph141 ~]# ceph orch status

八、关键总结

1. 用户管理要点

  • 不同权限级别的用户管理
  • 用户密钥的导出和导入
  • 精细化的权限控制

2. CephFS部署要点

  • 需要元数据池和数据池分离
  • MDS服务的高可用配置
  • 多客户端数据同步

3. 挂载方式对比

  • rc.local:简单,适合少量客户端
  • fstab:标准化,适合生产环境
  • secret文件方式:更安全,避免密钥暴露

4. 生产建议

  • 为不同应用创建不同用户
  • 定期备份用户认证信息
  • CephFS适合共享存储场景
  • MDS节点建议2个以上确保高可用
  • 挂载时使用_mon列表确保连接可靠性
  • 通过以上实践,可以全面掌握Ceph用户管理和CephFS文件系统的部署使用,为生产环境中的共享存储需求提供可靠解决方案。

    赞(0)
    未经允许不得转载:171主机测评 » 4:cephfs及用户管理
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址