重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
我们继续上一小节的配置,进行ceph块存储客户端的安装以及块设备映射
首先在ceph2管理节点上创建ceph块客户端用户名和认证密钥
成都创新互联专注于企业全网整合营销推广、网站重做改版、陈巴尔虎网站定制设计、自适应品牌网站建设、H5技术、商城网站制作、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为陈巴尔虎等各大城市提供网站开发制作服务。
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池默认不创建
在ceph2控制节点上创建存储池跟块设备
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 //查看是否挂载成功