ceph初建者可能遇到的问题
环境:L版,aliyun的源,关闭firewalld和selinux,配置所需源的地址:
##aliyun的源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
##ceph源,版本为12.2.12
wget -O /etc/yum.repos.d/ceph.repo https://raw.githubusercontent.com/aishangwei/ceph-demo/master/ceph-deploy/ceph.repo
##安装epel源
$sudo yum install epel-release
1、收集密钥时,也就是执行
$ceph-deploy mon create-initial
没有收集到相关的密钥,这里主要的原因时因为ceph-deploy推送各个节点时会把你之前设置的国内源给改掉,所以会一直尝试获取而报错,加上–no-adjust-repos是让在推送的过程中不更改源
$ceph-deploy install --no-adjust-repos node1 node2 node3
2、把配置信息copy到各个节点上时,可能会遇到你使用ceph用户执行命令权限不足的报错问题,此操作需要在被推送的所有主机的root下执行
#setfacl -m u:cephadm:r /etc/ceph/ceph.client.admin.keyring
admin.keyring文件时ceph命令行suoxuyao使用的keyring文件,不管哪个节点只要使用ceph用户执行命令工具这个文件就必须要让ceph用户拥有访问权限
3、使用ceph-deploy disk格式化磁盘 创建OSD设备时遇到创建失败注册不了OSD 密钥 时可以使用ceph-volum创建
$ceph-volum lvm zap /dev/sd{x}
$ceph-volum lvm create --osd-id {osd-num} --data /dev/sd{x}
4、创建pool设置PG_NUM时总是遇到PG数量超额的错误,首先PG的数量和OSD和POOL是相关的,下面说一下PG总数的计算方式,可以以此来规划你的PG_NUM分配
PG总数=(OSD总数 * 100)/ 最大副本数
最大副本数默认为三,查看方式:
$ceph osd dump | grep size
每个POOL中的PG_NUM的数量计算方式
Pool PG_NUM | PG =((OSD总数 * 100) / 最大副本数)/ POOL数
5、块设备映射报错
rbd 块设备 rbd1 块设备的image
网上大致有三种方式:
- 动态禁用
$rbd feature disable rbd1 exclusive-lock object-map fast-diff deep-flatten --name client.rbd
- 配置文件中禁用
##在ceph.conf里设置
rbd default features = 1
- 只启用分层特性
$rbd create rbd1 --size 10240 --image-feature layering --name client.rbd
集群空间回收失败的问题
在客户端删除ceph集群中块设备挂载文件时如果mgr 中的adshboard和ceph -s查询出的集群状态空间还依然被占用时可以执行回收空间操作
#fstrim /mnt/ceph-disk1/
#/mnt/ceph-disk1 是你创建的块设备挂载点