[关闭]
@dyj2017 2017-10-30T10:39:18.000000Z 字数 1024 阅读 1047

PG降级实验

ceph ceph实验 pg


创建一个文件,并把该文件作为对象放到集群中:

  1. [root@node1 ~]# echo "this is test! " >>test.txt
  2. [root@node1 ~]# rados -p testpool ls
  3. [root@node1 ~]# rados -p testpool put test.txt test.txt
  4. [root@node1 ~]# rados -p testpool ls
  5. test.txt

查看该对象对应的pg号以及osd组:

  1. [root@node1 ~]# ceph osd map testpool test.txt
  2. osdmap e76 pool 'testpool' (2) object 'test.txt' -> pg 2.8b0b6108 (2.8) -> up ([1,2,0], p1) acting ([1,2,0], p1)

去除主osd,pg降级,次osd升级为临时主osd:

  1. [root@node2 ~]# systemctl stop ceph-osd@1
  2. [root@node2 ~]# ceph osd map testpool test.txt
  3. osdmap e79 pool 'testpool' (2) object 'test.txt' -> pg 2.8b0b6108 (2.8) -> up ([2,0], p2) acting ([2,0], p2)
  4. [root@node2 ~]# ceph pg dump_stuck |grep ^2.8
  5. 2.8 active+undersized+degraded [2,0] 2 [2,0] 2

此时仍能够访问该对象:

  1. [root@node2 ~]# rados -p testpool get test.txt test.txt
  2. [root@node2 ~]# cat test.txt
  3. this is test!

恢复原主osd:

  1. [root@node2 ~]# systemctl start ceph-osd@1
  2. [root@node2 ~]# ceph pg dump_stuck |grep ^2.8
  3. ok
  4. [root@node2 ~]# ceph osd map testpool test.txt
  5. osdmap e82 pool 'testpool' (2) object 'test.txt' -> pg 2.8b0b6108 (2.8) -> up ([1,2,0], p1) acting ([1,2,0], p1)

通过上面的实验可以看出,当承载同一个pg的osd中的主osd out,次osd会临时升任主osd。在一定的时间间隔内,如果主osd up,该osd继续其主osd功能。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注