添加/删除osd节点步骤

来源:互联网 发布:mac 上面菜单栏隐藏 编辑:程序博客网 时间:2024/06/07 02:15

添加osd节点node4:

1、ceph osd tree #查看目前cluster 状态

`df -h /mnt/ceph-vol1`  #确保node1挂载了rbd,  在节点 node1上执行

2、在节点node4上安装ceph ,并复制ceph.conf到其相应位置,同时在/etc/hosts里添加节点node4和相应ip,并推送到所有节点

3、查看node4上可用的硬盘以添加osd

`ceph-deploy disk list ceph-node4`

4、确保node1上有充足的空间进行写数据,执行下面写命令的同时扩展集群:

`dd if=/dev/zero of=/mnt/ceph-vol1/file1 count=10240 bs=1M`  #node1节点`ceph-deploy disk zap ceph-node4:sdb ceph-node4:sdc ceph-node4:sdd` #node4节点`ceph-deploy osd create ceph-node4:sdb ceph-node4:sdc ceph-node4:sdd`  #node4节点`watch ceph status`在node4硬盘添加完成,集群会恢复健康

5、ceph osd tree 查看扩展后的cluster 状态

删除osd 节点的node4

1、ceph osd tree 查看节点node4上的所有osd,比如说是(osd.9 osd.10 osd.11三个)

2、把node4上的所有osd 踢出集群: #node1节点执行

`ceph osd out osd.9``ceph osd out osd.10``ceph osd out osd.11`

3、让node4上的所有osd 停止工作: # node4执行

` service ceph stop osd.9``service ceph stop osd.10``service ceph stop osd.11`

4、查看node4上osd的状态是否为 down,权重为0

`ceph osd tree`

5、移除node4上的所有osd:

`ceph osd crush remove osd.9``ceph osd crush remove osd.10``ceph osd crush remove osd.11`

6、删除 node4上所有osd的配置key:

`ceph auth del osd.9``ceph auth del osd.10``ceph auth del osd.11`

7、删除节点node4:

`ceph osd crush remove ceph-node4`

替换一个失效的磁盘驱动

首先 ceph osd tree查看down掉的osd ;把重启无效,因硬盘问题down掉的osd 及相关key移除(比如是node1节点上的osd.0)。

ceph osd out osd.0       #都在node1节点下执行ceph osd crush rm osd.0ceph auth del osd.0ceph osd rm osd.0

如果是物理机,可直接添加硬盘;虚拟环境的话,需要先关机然后添加硬盘,再开机。

1、查看新添加的磁盘的信息(比如是sdb):

`ceph-deploy disk list node1`

2、zap新磁盘:

`ceph-deploy disk zap node1:sdb`

3、在此磁盘新建一个osd,ceph会把它添加为osd.0:

`ceph-deploy --overwrite-conf osd create node1:sdb`一旦osd新建成功,ceph将会进行恢复操作,把pgs 从副osd上移到新的osd上;恢复结束后,集群状态还是OK

不同的osd上不同的pool

实例:

在node1 挂3个SSD盘,即SSD-node;node2  node3 挂SATA盘

1、修改 CRUSH map 配置文件:

get---反编译---修改 

(参考:http://blog.csdn.net/heivy/article/details/50592244)

1.1 用 root ssd 和 root sata 桶 代替 root default 桶; root ssd 有一个item,即node1;root sata 有2个item,即:node2 、node3。    root  ssd {        id  -1         alg  straw        hash  0        item node1  weight  0.030    }    root   sata  {        id  -5        alg  straw        hash  0        item  node2  weight 0.030        item  node3  weight 0.030    }1.2 修改rules,把 step take default 改为 step take sata/ssd    rule  sata {        ruleset  3        type replicated        min_size 1        max_size 10        step take sata        step chooseleaf firstn 0 type host        step  emit    }    rule  ssd  {        ruleset  4          type replicated        min_size 1        max_size 10        step take ssd        step chooseleaf firstn 0 type host        step  emit    }

2、编译 inject 修改后的CRUSH map

`crushtool -c crushmap-decompiled -o crushmap-compiled``ceph osd setcrushmap -i crushmap-compiled`

等集群恢复

3、新建不同类型的资源池:

`ceph osd pool create sata 64 64``ceph osd pool create ssd 64 64`

4、为新建的池设置ruleset:

`ceph osd pool set sata crush_ruleset 3``ceph osd pool set ssd crush_ruleset 4`

5、查看资源池ssd 和 sata 的信息:

`ceph osd dump | egrep -i "ssd|sata"`

6、测试新建池

`dd if=/dev/zero of=sata.pool bs=1M count=32 conv=fsync``dd if=/dev/zero of=ssd.pool bs=1M count=32 conv=fsync`

7、把文件放到不同的池子里:

`rados -p ssd put ssd.pool.object ssd.pool``rados -p sata put sata.pool.object sata.pool`

8、最后 查看这些文件的 map 信息:

`ceph osd map ssd ssd.pool.object``ceph osd map sata sata.pool.object`

本文出自“he ivy”的博客,转载请务必保留原出处:http://blog.csdn.net/heivy/article/details/50622786

0 0
原创粉丝点击