ceph客户端挂载

此环境已经配置好ceph分布式存储集群

此文特别注意ceph mds stat
e2: 0/0/1 导致的mount error 5 = Input/output error报错
执行下面命令安装元数据服务器即可解决(在文章里有描述)
ceph-deploy mds create admin ceph-1 ceph-2

有关ceph集群搭建请观看博主早期文章
文章链接https://blog.youkuaiyun.com/zeorg/article/details/111713752

系统环境 centos7

IP节点名称
192.168.182.150admin
192.168.182.151ceph-1
192.168.182.152ceph-2
192.168.182.129client

1、创建数据存储池、需要数据存储池和元数据存储池。
master节点执行

ceph osd pool create ceph_data 128
ceph osd pool create ceph_metadata 128
ceph fs new mycephfs ceph_data ceph_metadata
ceph fs ls (查看创建后的cephfs)
ceph mds stat(查看状态)
e2: 0/0/1 up  (如果这样显示需要安装元数据服务器)
ceph-deploy mds create admin ceph-1 ceph-2
ceph mds stat (再次查看)
e6: 1/1/1 up {0=ceph-1=up:active}, 1 up:standby


ok现在可以再客户端挂载ceph

2、客户挂载ceph文件存储系统。
client节点执行

yum -y install ceph
mkdir /mnt/ceph
查看key
 cat /etc/ceph/ceph.client.admin.keyring 
[client.admin]
        key = AQCqzSBgBAaVHBAA+v/aDLq6ctqhOJtzcVGjNA==
        caps mds = "allow *"
        caps mon = "allow *"
        caps osd = "allow *"

mount -t ceph 192.168.182.150:6789:/ /mnt/ceph -o name=admin,secret=AQCqzSBgBAaVHBAA+v/aDLq6ctqhOJtzcVGjNA==

验证
 df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  1.6G   49G    4% /
devtmpfs                devtmpfs  478M     0  478M    0% /dev
tmpfs                   tmpfs     489M     0  489M    0% /dev/shm
tmpfs                   tmpfs     489M  6.8M  482M    2% /run
tmpfs                   tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/mapper/centos-home xfs        45G   33M   45G    1% /home
/dev/sda1               xfs      1014M  143M  872M   15% /boot
tmpfs                   tmpfs      98M     0   98M    0% /run/user/0
/dev/sdb1               xfs        15G  110M   15G    1% /var/lib/ceph/osd/ceph-1
192.168.182.150:6789:/  ceph       45G  328M   45G    1% /mnt/ceph

3、写入开机自动挂载。
client节点执行

192.168.182.150:6789:/ /mnt/ceph ceph defaults,name=admin,secret=AQCqzSBgBAaVHBAA+v/aDLq6ctqhOJtzcVGjNA== 0 0

把上面一行文件写到/etc/fstab文件里面

执行mount -a 验证

##多个客户端执行文件系统方式挂载ceph步骤即可(肯定是多个客户端,一个客户端用ceph就没有意义了)

<think>好的,用户现在想要了解如何挂载Ceph RBD块设备到客户端。我需要先回顾之前的对话历史,用户之前询问了如何配置Cephadm的iSCSI服务,现在转向RBD块设备的直接挂载。这可能意味着用户正在探索不同的存储接入方式,比如iSCSI和直接RBD挂载的优缺点。 首先,用户可能是系统管理员或DevOps工程师,负责管理Ceph存储集群,并需要为应用程序提供块存储解决方案。他们可能已经配置了iSCSI服务,但现在需要更直接的块设备访问,比如在KVM虚拟化或容器环境中使用RBD。 接下来,我需要确定用户的具体需求。挂载RBD块设备通常有两种方式:通过内核模块krbd或用户空间的librbd。用户可能不清楚这两种方式的区别,或者需要步骤指导。另外,用户可能关心权限管理、多客户端挂载的注意事项以及性能调优。 需要确保回答包含前提条件,比如已创建RBD镜像,客户端已安装必要软件包。然后分步骤说明挂载过程,包括创建镜像、安装软件、映射设备、创建文件系统、挂载等。同时,要提到自动挂载和卸载的方法,以及常见问题的解决方法,比如权限问题、内核模块未加载等。 还需要注意安全性和最佳实践,比如使用cephx认证,避免在多个客户端同时挂载同一个镜像导致数据损坏。可能用户在使用场景中需要高可用或分布式访问,但RBD本身是支持单客户端读写,多客户端只读,或者通过集群文件系统如GFS2、OCFS2来实现多节点读写,这部分需要简要提及,避免用户误操作。 此外,用户可能对性能调优感兴趣,比如调整参数提升IOPS,或者日志配置。需要提供一些实用的建议,比如禁用某些特性来提升性能,或者使用合适的文件系统参数。 最后,总结关键点,确保用户能按步骤操作,并了解注意事项,避免常见错误。同时,提供验证命令和日志查看方法,帮助用户排查问题。</think>以下是Ceph RBD块设备挂载的详细指南: --- ### **一、挂载前提条件** 1. 已部署Ceph集群(建议Nautilus或更新版本) 2. 客户端主机已安装Ceph客户端工具 3. 已创建RBD存储池和镜像 4. 客户端具有访问Ceph集群的权限(需有`.keyring`文件) --- ### **二、内核级挂载(KRBD)** #### 1. **安装必要软件** ```bash # RHEL/CentOS yum install -y ceph-common rbd-nbd # Ubuntu/Debian apt install -y ceph-common rbd-nbd ``` #### 2. **配置Ceph客户端认证** ```bash # 复制配置文件 scp ceph-admin@mon-node:/etc/ceph/ceph.conf /etc/ceph/ scp ceph-admin@mon-node:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ # 验证访问 rbd --id admin -p rbd_pool ls ``` #### 3. **映射RBD设备** ```bash # 手动映射(临时) rbd map rbd_pool/image1 --id admin # 自动映射(持久化) echo "rbd_pool/image1 id=admin" > /etc/ceph/rbdmap systemctl enable rbdmap.service systemctl start rbdmap.service # 查看映射结果 rbd showmapped ``` ``` 输出示例: id pool image snap device 0 rbd_pool image1 - /dev/rbd0 ``` #### 4. **创建文件系统** ```bash mkfs.xfs /dev/rbd/rbd_pool/image1 # 推荐XFS # 或 mkfs.ext4 /dev/rbd/rbd_pool/image1 ``` #### 5. **挂载使用** ```bash mkdir /mnt/ceph_rbd mount /dev/rbd0 /mnt/ceph_rbd # 验证挂载 df -hT | grep rbd0 ``` #### 6. **自动挂载配置** ```bash # /etc/fstab 条目 /dev/rbd0 /mnt/ceph_rbd xfs _netdev,noatime 0 0 # 或使用UUID(更可靠) blkid /dev/rbd0 echo "UUID=xxxx-xxxx-xxxx /mnt/ceph_rbd xfs _netdev,noatime 0 0" >> /etc/fstab ``` --- ### **三、用户空间挂载(NBD)** 适用于内核不支持RBD或需要灵活控制的场景 #### 1. **通过rbd-nbd映射** ```bash rbd-nbd map rbd_pool/image1 --id admin nbd0=$(rbd-nbd list-mapped | grep image1 | awk '{print $5}') # 查看设备 ls -l /dev/nbd0 ``` #### 2. **挂载使用** ```bash mount /dev/nbd0 /mnt/ceph_nbd ``` #### 3. **卸载设备** ```bash umount /mnt/ceph_nbd rbd-nbd unmap /dev/nbd0 ``` --- ### **四、高级配置** #### 1. **多路径配置** ```bash # 配置rbd-multipath rbd device add rbd_pool/image1 --options="nofeature,exclusive" rbd device map rbd_pool/image1 --options="nofeature,exclusive" # 验证多路径 multipath -ll ``` #### 2. **性能调优参数** ```bash # 映射时指定参数 rbd map rbd_pool/image1 --id admin --options="queue_depth=128,alloc_size=4194304" # 调整内核参数 echo 4096 > /sys/block/rbd0/queue/nr_requests echo deadline > /sys/block/rbd0/queue/scheduler ``` #### 3. **日志配置** ```bash # 查看内核日志 dmesg | grep rbd # 启用详细日志 echo 1 > /sys/module/rbd/parameters/debug_level ``` --- ### **五、卸载流程** ```bash # 卸载文件系统 umount /mnt/ceph_rbd # 解除映射 rbd unmap /dev/rbd0 # 确认状态 rbd showmapped ``` --- ### **六、排错指南** #### **常见问题1:权限拒绝** ```text rbd: error opening pool rbd_pool: (13) Permission denied ``` **解决方案:** ```bash # 检查keyring文件权限 chmod 600 /etc/ceph/ceph.client.admin.keyring # 验证用户权限 ceph auth get client.admin ``` #### **常见问题2:设备忙无法卸载** ```text umount: /mnt/ceph_rbd: target is busy ``` **强制卸载:** ```bash fuser -km /mnt/ceph_rbd umount /mnt/ceph_rbd ``` #### **常见问题3:内核模块未加载** ```text rbd: failed to load rbd kernel module (111) ``` **加载模块:** ```bash modprobe rbd echo "rbd" >> /etc/modules-load.d/ceph.conf ``` --- ### **七、最佳实践** 1. **安全建议**: - 使用`cephx`认证而非无密码访问 - 为不同客户端创建独立用户(非admin) ```bash ceph auth get-or-create client.vm1 mon 'profile rbd' osd 'profile rbd pool=rbd_pool' ``` 2. **性能优化**: - 使用`xfs`文件系统(对RBD优化更好) - 禁用不必要的RBD特性: ```bash rbd feature disable rbd_pool/image1 object-map fast-diff deep-flatten ``` 3. **多客户端访问**: ```bash # 启用共享访问(需配合集群文件系统) rbd feature enable rbd_pool/image1 exclusive-lock # 使用GFS2/OCFS2等集群文件系统 ``` --- ### **八、验证命令汇总** ```bash # 查看RBD镜像列表 rbd ls rbd_pool -l # 检查映射状态 rbd status rbd_pool/image1 # 监控实时IO rbd watch rbd_pool/image1 # 查看内核映射 cat /sys/bus/rbd/devices ``` --- 通过以上步骤,可以完成Ceph RBD块设备从基础挂载到高级配置的全流程操作。建议首次使用时先进行测试镜像的挂载验证,确认无误后再进行生产环境部署。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值