ceph运维
2021/7/8 23:07:24
本文主要是介绍ceph运维,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
osd的扩容和换盘
横向扩容(扩容节点)
扩展mds:
需要将扩容的节点上安装ceph所需要的包,然后将节点加入到集群中,在新节点安装ceph,ceph版本必须与原集群版本一致
yum -y install ceph rpm -qa | egrep -i “ceph|rados|rbd” ceph -v
管理节点复制配置文件和密钥到新增节点
[root@node143 ceph]# ls ceph.client.admin.keyring ceph.conf [root@ceph1 ceph]#ceph-deploy mds create client
扩展RGW对象网关:
需要将扩容的节点上安装ceph所需要的包,然后将节点加入到集群中,在新节点安装ceph,ceph版本必须与原集群版本一致
yum -y install ceph ceph-radosgw rpm -qa | egrep -i “ceph|rados|rbd” ceph -v
管理节点复制配置文件和密钥到新增节点
[root@node143 ceph]# ls ceph.client.admin.keyring ceph.conf [root@ceph1 ceph]#ceph-deploy rgw create client [root@ceph1 client]#vi /etc/ceph/ceph.conf [client] rgw frontends = civetweb port=80
扩展mon:
需要将扩容的节点上安装ceph所需要的包,然后将节点加入到集群中,在新节点安装ceph,ceph版本必须与原集群版本一致
yum -y install ceph rpm -qa | egrep -i “ceph|rados|rbd” ceph -v
管理节点复制配置文件和密钥到新增节点
[root@node143 ceph]# ls ceph.client.admin.keyring ceph.conf [root@ceph1 client]#vi /etc/ceph/ceph.conf public_network=172.16.1.0/24 [root@ceph1 client]# ceph-deploy --overwrite-conf config push client ceph2 [root@ceph1 client]# ceph-deploy --overwrite-conf mon add client [root@ceph1 client]# ceph-deploy --overwrite-conf mon add ceph2
扩展osd节点:
需要将扩容的节点上安装ceph所需要的包,然后将节点加入到集群中,最后添加 osd
关闭数据平衡
Ceph osd set noin Ceph osd set nobackfill Ceph osd set noreblance
在新节点安装ceph,ceph版本必须与原集群版本一致
yum -y install ceph rpm -qa | egrep -i “ceph|rados|rbd” ceph -v
管理节点复制配置文件和密钥到新增节点
[root@node143 ceph]# ls ceph.client.admin.keyring ceph.conf
后面与osd纵向扩容相同
Osd纵向扩容
准备好磁盘
将作为osd磁盘标记为GPT格式
parted /dev/sdc mklabel GPT mkfs.xfs -f /dev/sdc
创建osd
ceph-volume lvm create --data /dev/sdb
查看创建osd
ceph-volume lvm list lsblk
OSD会自动启动
ceph osd tree systemctl enable ceph-osd@7 ceph -s
记得低峰时段打开数据平衡
ceph osd unset noin Ceph osd unset noreblance ceph osd unset nobackfill
Osd坏盘更换
Ceph osd perf //查看磁盘的性能 Ceph osd out osd.5 //停掉osd.5 Ceph osd crush dump //查看详细信息 Ceph osd crush rm osd.5 //删除crush信息 Ceph auth list //列出认证信息 Ceph auth rm osd.5 //删除认证信息 Ceph osd rm osd.5 //删除osd,此时ceph osd tree已经没有对应的osd
数据一致性检查
Ceph pg scrub 1.1f //简单检查 Ceph pg deep-scrub 1.1f //深度检查
ceph集群运维
ls /usr/lib/systemd/system |grep ceph //所有的ceph服务 ceph osd stat //查看osd的状态 ceph osd dump //查看osd的详细信息 ceph osd df //查看osd的空间使用情况 ceph mon stat/ceph mon dump //查看mon状态/详细信息 ceph quorum_status //查看仲裁情况 ceph fs dump //查看文件系统 ceph --admin-daemon /var/run/ceph/cepn-mon.node-1.asok config show //通过socket文件查看信息 ceph --admin-daemon /var/run/ceph/ceph-mon.node-1.asok config set mon_clock_drift_allowed 1.0 //通过socket文件修改参数 ceph osd pool application enable pool-demo rbd //对pool进行分类 ceph osd pool application get pool-demo //查看pool的类型 ceph osd pool set-quota pool-demo max_objects 100 //设置pool的配额 ceph osd pool get-quota pool-demo //查看pool的配额 ceph --admin-daemon /var/run/ceph/cepn-mon.node-1.asok config show |grep mon_allow_pool_delete //查看决定pool是否可删的参数 ceph --admin-daemon /var/run/ceph/ceph-mon.node-1.asok config set mon_allow_pool_delete true //临时设置pool可删 将需要的永久修改的参数写到ceph.conf配置文件中,可永久生效 rados df/ceph df //查看ceph存储情况 total pgs=(osds*100)/pool size //计算pg数量
crush map规则
ceph osd crush dump //查看crush rule ceph osd crush rule ls //查看osd的crush rule ceph osd pool get ceph-demo crush_rule //查看pool的crush rule
定制crush规则
Ceph osd crush add-bucket node-1-ssd host //添加bucket Ceph osd crush add-bucket node-2-ssd host Ceph osd crush add-bucket node-3-ssd host Ceph osd crush move node-1-ssd root=ssd //将bucket添加到ssd中 Ceph osd crush move node-2-ssd root=ssd Ceph osd crush move node-3-ssd root=ssd Ceph osd crush move osd.3 host=node-1-ssd root=ssd //将osd移动到bucket下 Ceph osd crush move osd.4 host=node-2-ssd root=ssd Ceph osd crush move osd.5 host=node-3-ssd root=ssd Ceph osd crush rule create-replicated ssd-demo ssd host ssd //创建规则 Ceph osd pool set ceph-demo crush_rule ssd-demo //应用规则 Ceph osd map ceph-demo crush-demo.img //查看映射状态
此时重启了osd的服务,对应的osd会移动到原来的bucket下面,需要修改socket中的osd_crush_update_on_start为false。
Ceph管理和监控
Yum -y install ceph-mgr-dashboard Ceph mgr module enable dashboard –force //启用dashboard模块 Ceph mgr module ls //查看模块 Ceph dashboard creat-self-signed-cert //使用内置生成的证书 Ceph config set mgr mgr/dashboard/server_addr 10.211.55.201 Ceph config set mgr mgr/dashboard/server_port 8080 Ceph config set mgr mgr/dashboard/ssl_server_port 8443 Ceph mgr services //查看访问地址 Ceph dashboard ac-user-create cephadmin cephpassword administrator //授予一个角色
问题排查
时钟偏移
Ceph -s //查看健康状况时,有clock skew Ceph health detail //查看健康详情 Ceph –admin-daemon /var/run/ceph/ceph-mon.node-1.asok config show|grep clock //查看允许时间偏移的范围 Ntpq -pn //查看时间同步状态 Systemctl stop ntpd Ntpdate ntp服务器地址 //同步时间 Hwclock -w //写入到硬件时钟 Systemctl start ntpd
其他节点做相同操作
服务crash归档问题
Ceph -s //能够看见daemon have recently crashed的报错 查看ceph-client.rgw.node-1.log日志,提示端口被占用 Ceph crash ls //列出crash Ceph crash info crash信息 //查看crash详细信息 Ceph crash archive-all //对所有的crash归档
Mon空间不足问题
Ceph -s //提示 mons node-1,node-2 are low on available space Ceph daemon mon.node-1 config show |grep mon |grep data //查看预设值
处理办法是调大mon的空间
ceph测试
Mon高可用测试,只允许半数的mon出现异常
Mds主从切换,当主mds宕掉时,会发生降级,从升级为主
Rgw高可用测试,做了高可用的rgw,宕掉一部分,不影响业务
Osd测试,当部分osd宕掉或部分主机宕掉的时候,业务不受影响
性能测试
fio -filename=/mnt/rbd-test/fio-1.img -direct=1 -iodepth 64 -thread -rw=randwrite -ioengine=libaio -bs=4k -size=200m -numjobs=8 -runtime=60 -group_reporting -name=mytest //4k随机写 fio -filename=/mnt/rbd-test/fio-1.img -direct=1 -iodepth 64 -thread -rw=randread -ioengine=libaio -bs=4k -size=200m -numjobs=8 -runtime=60 -group_reporting -name=mytest //4k随机读 fio -filename=/mnt/rbd-test/fio-1.img -direct=1 -iodepth 64 -thread -rw=randrw -rwmixread=70 -ioengine=libaio -bs=4k -size=200m -numjobs=8 -runtime=60 -group_reporting -name=mytest //4k随机读写 fio -filename=/mnt/rbd-test/fio-1.img -direct=1 -iodepth 64 -thread -rw=write -ioengine=libaio -bs=1M -size=200m -numjobs=8 -runtime=60 -group_reporting -name=mytest //1M吞吐量 rbd bench ceph-demo/test.img –io-size 4k –io-threads 16 –io-total 200M –io-pattern bench –io-type write //4k随机写 rbd bench ceph-demo/test.img –io-size 4k –io-threads 16 –io-total 200M –io-pattern bench –io-type read //4k随机读 rbd bench ceph-demo/test.img –io-size 4k –io-threads 16 –io-total 200M –io-pattern bench –io-type write –rw-mix-read 70 //4k随机读写 rbd bench ceph-demo/test.img –io-size 1M –io-threads 16 –io-total 1G –io-pattern seq –io-type write //1M顺序写
这篇关于ceph运维的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享