赞
踩
我们继续上一小节的配置,进行ceph块存储客户端的安装以及块设备映射
首先在ceph1管理节点上创建ceph块客户端用户名和认证密钥
- ceph auth get-or-create client.rbd(用户名称) mon 'allow r'(对mon组件进行授权) osd 'allow class-read object_prefix rbd_children,allow rwx pool=rbd(默认的存储池)' | tee /etc/ceph/ceph.client.rbd.keyring //将认证密钥保存到 /etc/ceph目录下的ceph.client.rbd.keyring文件中
- 将客户端用户的认证密钥及配置文件拷贝到客户端主机
- scp /etc/ceph/ceph.conf /etc/ceph/ceph.client.rbd.keyring root@client:/etc/ceph/
- 检查客户端主机内核是否支持rbd模块
- modprobe rbd //这里要注意linux内核在3.11版本以后默认才支持rbd模块
- 在客户端主机上支持以下命令
- wget -O /etc/yum.repos.d/ceph.repo https://raw.githubusercontent.com/aishangwei/ceph-demo/master/ceph-deploy/ceph.repo 下载ceph.repo镜像源
- yum install -y ceph //下载ceph需要使用epel源
- ceph -s --name client.rbd //查看集群的整体情况
块设备的创建及映射
ceph集群中默认创建的块设备会在rbd池中创建,但是使用deploy的安装方式部署的集群,rbd池默认不创建
- 在ceph1控制节点上创建存储池跟块设备
- ceph osd lspools //查看集群存储池信息
- ceph osd pool create rbd 512 //512为(pg num值)
- 确定pg num取值是强制性的,因为不能自动计算。下面是几个常用的值:
- 少于5个OSD时可以把pg num设置为128
- OSD数量在5到10个时,可把pg num设置为512
- OSD数量在10到50个时,可把pg num设置为4096
- OSD数量大于50时,你得理解权衡方法,以及如何自己计算pg num取值
- 在客户端主机上执行以下命令
- rbd create rbd1 --size 10240 --name client.rbd
- rbd ls -p rbd --name client.rbd //查看存储池的信息
- rbd --image rbd1 info --name client.rbd //查看存储块的信息
映射块设备
rbd map --image rbd1 --name client.rbd
在执行此命令时会出现如下的错误
这是因为Linux3.11版本的内核不支持对象映射(object-map)、深平(deep-flatten)和快速diff(fast-diff).为了解决这个问题,这里禁用不支持的特性
- 有三种方式可以禁用这些功能特性
- 1)动态禁用
- 在客户端主机上执行此命令
- rbd feature disable rbd1 exclusive-lock object-map deep-flatten fast-diff --name client.rbd
- 2)创建RBD镜像时,只启动分层特性
- rbd create rbd2 --size 10240 --images-feature layering --name client.rbd
- 3)ceph配置文件中禁用
- rbd_default_features=1
- 这里我们使用第一种方式进行临时禁用
- rbd feature disable rbd1 exclusive-lock object-map deep-flatten fast-diff --name client.rbd
- 继续在客户端上进行映射
- rbd map --image rbd1 --name client.rbd
- 显示:/dev/rbd0
- rbd showmapped --name client.rbd //查看客户端rbd信息
- fdisk -l /dev/rbd0 //查看块存储设备磁盘
- mkfs.xfs /dev/rbd0
- mkdir /mnt/ceph-disk1
- mount /dev/rbd0 /mnt/ceph-disk1
- df -h /mnt/ceph-disk1
- 写入数据测试
- dd if=/dev/zero of=/mnt/ceph-disk1/file1 count=100 bs=1M
- 做成服务,开机自动挂载
- wget -O /usr/local/bin/rbd-mount https://raw.githubusercontent.com/aishangwei/ceph-demo/master/client/rbd-mount
- chmod +x /usr/local/bin/rbd-mount
-
- 更改脚本的配置信息
- 在下载的脚本中找到如下信息并将/etc/ceph后面的用户认证密钥改成自己的认证密钥
- rbd map $rbdimage --id rbd --keyring /etc/ceph/ceph.client.rbd.krying
- 下载服务自动启动脚本
- wget -O /etc/systemd/system/rbd-mount.service https://raw.githubusercontent.com/aishangwei/ceph-demo/master/client/rbd-mount.service
-
- systemctl daemon-reload
- systemctl enable rbd-mount
-
- umount /mnt/ceph-disk1 //卸载挂载的块存储
- systemctl start rbd-mount //启动自动挂载服务进行验证
- ll /mnt/ceph-disk1 //查看是否挂载成功
转载于:https://blog.51cto.com/11970509/2381262
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。