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

 

 图片1.png

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编号