On 02/02/15 03:38, Udo Lembke wrote: > With 3 hosts only you can't survive an full node failure, because for > that you need > host >= k + m. Sure you can. k=2, m=1 with the failure domain set to host will survive a full host failure. Configuring an encoding that survives one full host failure or two OSDs anywhere on the cluster is possible. Use k=4, m=2, then define a CRUSH rule like this: step take default step choose indep 3 type host step choose indep 2 type osd step emit That will ensure that for each PG, each host gets two chunks on two independent OSDs. That means that you can lose any pair of OSDs (since no PG will have two chunks on the same OSD, and the encoding can survive a two-chunk loss). You can also lose any host, which will cause the loss of exactly two chunks for every PG. Of course, with a setup like this, if you lose a host, the cluster will be degraded until you can bring the host back, and will not be able to recover those chunks anywhere (since the ruleset prevents so), so any further failure of an OSD while a host is down will necessarily lose data. -- Hector Martin (hector@xxxxxxxxxxxxxx) Public Key: https://marcan.st/marcan.asc _______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com