1、使用ceph-deploy新增mon节点(管理节点)(admin用户/home/admin/my-cluster下执行)
格式:sudo ceph-deploy mon create node1 node2
【注意】使用ceph-deploy新增的monitor默认会使用ceph public网络。
2、查看监视器状态:
sudo ceph mon stat //简洁
sudo ceph mon dump //详细
3、从一个monitor状态异常的Ceph集群中获取monmap,帮助排查。
ceph-mon -i mon-host-name --extract-monmap /tmp/monmap-file //导出集群monmap
monmaptool --print /tmp/monmap-file // 使用monmaptool查看
4、常用服务命令
启动服务命令:
启动或停止一个节点的所有OSD或者mon
Systemctl start/stop ceph-osd.1
Systemctl start/stop ceph-mon.1
启动单个OSD或者mon
Systemctl start ceph-osd@0
Systemctl start ceph-mon@node1
添加开机启动
Systemctl enable ceph-mon.1
Systemctl enable ceph-osd.1
检测是否加入开机启动
Systemctl is-enabled ceph-osd.1
Systemctl is-enbaled ceph-mon.1
5、传递配置文件ceph.conf(管理节点配置文件变更,需要执行该步骤,使得各节点配置文件统一。)
ceph-deploy --overwrite-conf config push admin node1 node2
6、查看Rados池
rados lspools
7、查看池中的对象
rados -p <pool name> ls
8、创建pool
ceph osd pool create mypool 128 128
9、添加/删除OSD
(管理节点)
添加:ceph-deploy osd create --data /dev/sdx node1 //确保新加入得数据盘没有进行任何操作
删除:ceph osd out osd.1 //故障OSD移出集群(管理节点)
ceph osd crush remove osd.1 //移出CRUSH map
ceph auth del osd.1 //删除osd验证秘钥
sudo systemctl stop ceph-osd@0 //如果osd还处于up状态,请先关闭它!
ceph osd rm 1 //删除osd
vi /etc/ceph/ceph.conf //编辑conf文件
从 ceph.conf 配置文件里删除对应条目:(如果有的话)
[osd.1]
host = {hostname}
把更新过的 ceph.conf 拷贝到集群其他主机的 /etc/ceph 目录下:
ceph-deploy --overwrite-conf config push admin node1 node2
10、擦净磁盘
用下列命令擦净(删除分区表)磁盘,以用于 Ceph :
ceph-deploy disk zap {osd-server-name}:{disk-name}
ceph-deploy disk zap node1 /dev/sdb
11、编辑CRUSH map
ceph osd getcrushmap -o mymap //任何mon节点执行,提取map
crushtool -d mymap -o newmap //将mymap反编译为newmap便于人查看
crushtool -c newmap -o mymap-1 //将修改好的文件反编译为crush map文件
ceph osd setcrushmap -i mymap-1 //将修改好的map注入
12、集群维护
(对单个存储或计算节点需要做关机离线维护时,为降低对上层虚拟机服务的影响,做如下操作)
a、服务正常使用的情况下,对需要维护的节点的虚拟机做热迁移,清空节点资源占用;
b、在mon或者其他有admin权限的节点设置osd锁定机制,执行:for i in noout nobackfill norecover;do ceph osd set $i;done
c、关闭节点,维护
b、维护完毕,启动
e、在集群负载较低时,执行命令,开始底层数据同步;for i in noout nobackfill norecover;do ceph osd unset $i;done
f、ceph -s 检查集群的健康状态
13、ceph集群升级
参照文档:
14、PG数量警告
ceph osd pool set mypool pg_num 40 //调整mypool中PG的数量
15、PG阻塞
(网络出现抖动时,容易导致IO阻塞)
可以通过ceph health detail查看相关信息;一般通过重启对应osd的进程可以修复;
restart ceph-osd id=x
16、PG修复
当部分PG故障时,可以使用ceph自带的功能自我修复。
a、找到PG所在的位置:ceph health detail
b、检测修复:ceph pg repair XXX //XXX代表具体的PG编号
c、如果无法修复,应该寻找错误日志:/var/log/ceph/ceph-osd.XX.log //XX代表具体的故障OSD编号