您的位置:首页 > 其它

添加/删除osd节点步骤

2016-02-02 11:08 459 查看

添加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.0
ceph auth del osd.0
ceph 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---反编译---修改


(参考:/article/9894387.html)

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”的博客,转载请务必保留原出处:/article/9894393.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: