添加/删除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
相关文章推荐
- 【BZOJ 1877】 [SDOI2009]晨跑
- apache2+passenger遇到的问题总结:
- CALayer Mask - 2 - CAShapeLayer
- 写给想成为Linux 高手的人们
- rewqrewqrqwe
- Unity错误集锦之插件篇
- 安卓学习日志(2)UDP通信
- datatables 使用心得
- android findViewById(...)的抽取
- 89785784567756
- 123512343124
- Code Project网站上关注的一些人
- 4123432141324132
- MVC MVP MVVM
- 学习hadoop过程中用到的linux命令:
- 【设计模式】——享元模式
- freebsd 显示中文
- CT 来值班,让您安心过新年!
- 3214324124
- 32145132