Search code examples
linuxcloudstoragehostingceph

Ceph erasure coding when restart all server incomplete pgs


i have a 7 server

Server1:mon,mgr,mds

Server 2:mon,mgr,mds

Server3:mon,mgr,mds

Server4:osd.0,osd.1

Server5:osd.2,osd.3

Server6osd.4,osd.5

Server7:mon,mgr,mds

each osd size 4T

and :

ceph osd tree

ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF

-1 21.83098 root default

-3 7.27699 host cephnode01

0 hdd 3.63899 osd.0 up 1.00000 1.00000

1 hdd 3.63899 osd.1 up 1.00000 1.00000

-5 7.27699 host cephnode02

2 hdd 3.63899 osd.2 up 1.00000 1.00000

3 hdd 3.63899 osd.3 up 1.00000 1.00000

-7 7.27699 host cephnode03

4 hdd 3.63899 osd.4 up 1.00000 1.00000

5 hdd 3.63899 osd.5 up 1.00000 1.00000

Every 2.0s: ceph -s

Tue Aug 14 09:52:47 2018

cluster:

id:     6b28cabd-b94a-4a74-8d9e-00b8c9a61de4

health: HEALTH_WARN

        Reduced data availability: 128 pgs inactive, 128 pgs incomplete

services:

mon: 5 daemons, quorum 

cephnode01,cephmon01,cephnode02,cephnode03,cephmon03

mgr: cephmds01(active), standbys: cephmon03, cephmon02, cephmon01

mds: cephfs-1/1/1 up  {0=cephmon03=up:active}, 3 up:standby

osd: 6 osds: 6 up, 6 in

data:

pools:   2 pools, 256 pgs

objects: 279  objects, 1.0 GiB

usage:   8.1 GiB used, 22 TiB / 22 TiB avail

pgs:     50.000% pgs not active

         128 incomplete

         128 active+clean

During power failure

health: HEALTH_WARN

        Reduced data availability: 128 pgs inactive, 128 pgs incomplete

when i restart all servers Loss of all data and i must remove pool and recreate pool

below erorr displayed

health: HEALTH_WARN

        Reduced data availability: 128 pgs inactive, 128 pgs incomplete

when i change crush map #rule from host to osd then health ok.

but i need host .

i used blow command for create pool .

i used erasure coding .

ceph osd pool create ECtemppool 128 128 erasure default

ceph osd erasure-code-profile set default crush-failure-domain=osd crush-

root=default k=4 m=2 --force

rados -p ECtemppool ls

ceph osd pool create cephfs_metadata 128

ceph osd pool set ECtemppool allow_ec_overwrites true

ceph fs new cephfs cephfs_metadata ECtemppool

best regards


Solution

  • i want a problem: below command is work!! :

    ceph osd erasure-code-profile set EC-temp-pool

    ceph osd erasure-code-profile set EC-temp-pool ruleset-failure-domain=host k=4 m=2 --force

    ceph osd pool create ECtemppool 128 128 erasure EC-temp-pool

    ceph osd pool create cephfs_metadata 128

    ceph osd pool set ECtemppool allow_ec_overwrites true

    ceph fs new cephfs cephfs_metadata ECtemppool