I have some experience with an EC set-up with 2 shards per host, failure-domain 
is host, and also some multi-site wishful thinking of users. What I learned are 
the following:

1) Avoid this work-around too few hosts for EC rule at all cost. There are two 
types of resiliency in ceph. One is against hardware fails and the other is 
against admin fails. Using a non-standard crush set-up to accommodate for a 
lack of hosts dramatically reduces resiliency against admin fails. You will 
have down-time due to simple mistakes. You will need to adjust also other 
defaults, like min_size, to be able to do anything on this cluster without 
downtime, sweating every time and praying that nothing goes wrong. Use this 
only if there is a short-term horizon that it will be over.

2) Do not use EC 2+1. It does not offer anything interesting for production. 
Use 4+2 (or 8+2, 8+3 if you have the hosts). Here you can operate with non-zero 
redundancy while doing maintenance (min_size=5).

3) If you have no perspective of getting at least 7 servers in the long run 
(4+2=6 for EC profile, +1 for fail-over automatic rebuild), do not go for EC. 
If this helps in your negotiations, tell everyone that they either give you 
more servers now and get low-cost storage, or have to pay for expensive 
replicated storage forever.

4) Before you start thinking about replicating to a second site, you should 
have a primary site running solid first. I was in exactly the same situation, 
people expecting wonders with giving me half the stuff I need only. Simply do 
not do it. I wasted a lot of time on impossible requests. With the hardware you 
have, I would ditch the second DC and rather start building up a solid first DC 
to be mirrored later when people move over bags with money. You have 6 servers. 
That's a good start for an 4+2 EC pool. You will not have fail-over capacity, 
but at least you don't have to work around too many exceptions. The one you 
should be aware of though is this one: 
https://docs.ceph.com/docs/mimic/rados/troubleshooting/troubleshooting-pg/?highlight=erasure%20code%20pgs#crush-gives-up-too-soon
 . If you had 7 servers, you would be out of trouble.

This is collected from my experience. I would do things different now and maybe 
it helps you with deciding how to proceed. Its basically about what resources 
can you expect in the foreseeable future and what compromises are you willing 
to make with regards to sleep and sanity.

Best regards,

=================
Frank Schilder
AIT Risø Campus
Bygning 109, rum S14

________________________________________
From: ceph-users <ceph-users-boun...@lists.ceph.com> on behalf of Salsa 
<sa...@protonmail.com>
Sent: 21 October 2019 17:31
To: Martin Verges
Cc: ceph-users
Subject: Re: [ceph-users] Can't create erasure coded pools with k+m greater 
than hosts?

Just to clarify my situation, We have 2 datacenters with 3 hosts each, 12 4TB 
disks each host (2 are RAID with OS installed and the remaining 10 are used for 
Ceph). Right now I'm trying a single DC installation and intended to migrate to 
multi site mirroring DC1 to DC2, so if we lose DC1 we can activate DC2 (NOTE: I 
have no idea how this is setup and have not planned at all; I thought of geting 
DC1 to work first and later set the mirroring)

I don't think I'll be able to change the setup in any way, so my next question 
is: Should I go with a replica 3 or would an erasure 2,1 be ok?

There's a very small chance we get 2 extra hosts for each DC in a near future, 
but we'll probably use all the available storage space in the nearer future.

We're trying to use as much space as possible.

Thanks;

--
Salsa

Sent with ProtonMail<https://protonmail.com> Secure Email.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Monday, October 21, 2019 2:53 AM, Martin Verges <martin.ver...@croit.io> 
wrote:

Just don't do such setups for production, It will be a lot of pain, trouble, 
and cause you problems.

Just take a cheap system, put some of the disks in it and do a way way better 
deployment than something like 4+2 on 3 hosts. Whatever you do with that 
cluster (example kernel update, reboot, PSU failure, ...) causes you and all 
attached clients, especially bad with VMs on that Ceph cluster, to stop any IO 
or even crash completely.

--
Martin Verges
Managing director

Mobile: +49 174 9335695
E-Mail: martin.ver...@croit.io<mailto:martin.ver...@croit.io>
Chat: https://t.me/MartinVerges

croit GmbH, Freseniusstr. 31h, 81247 Munich
CEO: Martin Verges - VAT-ID: DE310638492
Com. register: Amtsgericht Munich HRB 231263

Web: https://croit.io
YouTube: https://goo.gl/PGE1Bx


Am Sa., 19. Okt. 2019 um 01:51 Uhr schrieb Chris Taylor 
<ctay...@eyonic.com<mailto:ctay...@eyonic.com>>:
Full disclosure - I have not created an erasure code pool yet!

I have been wanting to do the same thing that you are attempting and
have these links saved. I believe this is what you are looking for.

This link is for decompiling the CRUSH rules and recompiling:

https://docs.ceph.com/docs/luminous/rados/operations/crush-map-edits/


This link is for creating the EC rules for 4+2 with only 3 hosts:

https://ceph.io/planet/erasure-code-on-small-clusters/


I hope that helps!



Chris


On 2019-10-18 2:55 pm, Salsa wrote:
> Ok, I'm lost here.
>
> How am I supposed to write a crush rule?
>
> So far I managed to run:
>
> #ceph osd crush rule dump test -o test.txt
>
> So I can edit the rule. Now I have two problems:
>
> 1. Whats the functions and operations to use here? Is there
> documentation anywhere abuot this?
> 2. How may I create a crush rule using this file? 'ceph osd crush rule
> create ... -i test.txt' does not work.
>
> Am I taking the wrong approach here?
>
>
> --
> Salsa
>
> Sent with ProtonMail Secure Email.
>
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Friday, October 18, 2019 3:56 PM, Paul Emmerich
> <paul.emmer...@croit.io<mailto:paul.emmer...@croit.io>> wrote:
>
>> Default failure domain in Ceph is "host" (see ec profile), i.e., you
>> need at least k+m hosts (but at least k+m+1 is better for production
>> setups).
>> You can change that to OSD, but that's not a good idea for a
>> production setup for obvious reasons. It's slightly better to write a
>> crush rule that explicitly picks two disks on 3 different hosts
>>
>> Paul
>>
>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> Paul Emmerich
>>
>> Looking for help with your Ceph cluster? Contact us at
>> https://croit.io
>>
>> croit GmbH
>> Freseniusstr. 31h
>> 81247 München
>> www.croit.io<http://www.croit.io>
>> Tel: +49 89 1896585 90
>>
>> On Fri, Oct 18, 2019 at 8:45 PM Salsa 
>> sa...@protonmail.com<mailto:sa...@protonmail.com> wrote:
>>
>> > I have probably misunterstood how to create erasure coded pools so I may 
>> > be in need of some theory and appreciate if you can point me to 
>> > documentation that may clarify my doubts.
>> > I have so far 1 cluster with 3 hosts and 30 OSDs (10 each host).
>> > I tried to create an erasure code profile like so:
>> > "
>> >
>> > ceph osd erasure-code-profile get ec4x2rs
>> >
>> > ==========================================
>> >
>> > crush-device-class=
>> > crush-failure-domain=host
>> > crush-root=default
>> > jerasure-per-chunk-alignment=false
>> > k=4
>> > m=2
>> > plugin=jerasure
>> > technique=reed_sol_van
>> > w=8
>> > "
>> > If I create a pool using this profile or any profile where K+M > hosts , 
>> > then the pool gets stuck.
>> > "
>> >
>> > ceph -s
>> >
>> > ========
>> >
>> > cluster:
>> > id: eb4aea44-0c63-4202-b826-e16ea60ed54d
>> > health: HEALTH_WARN
>> > Reduced data availability: 16 pgs inactive, 16 pgs incomplete
>> > 2 pools have too many placement groups
>> > too few PGs per OSD (4 < min 30)
>> > services:
>> > mon: 3 daemons, quorum ceph01,ceph02,ceph03 (age 11d)
>> > mgr: ceph01(active, since 74m), standbys: ceph03, ceph02
>> > osd: 30 osds: 30 up (since 2w), 30 in (since 2w)
>> > data:
>> > pools: 11 pools, 32 pgs
>> > objects: 0 objects, 0 B
>> > usage: 32 GiB used, 109 TiB / 109 TiB avail
>> > pgs: 50.000% pgs not active
>> > 16 active+clean
>> > 16 creating+incomplete
>> >
>> > ceph osd pool ls
>> >
>> > =================
>> >
>> > test_ec
>> > test_ec2
>> > "
>> > The pool will never leave this "creating+incomplete" state.
>> > The pools were created like this:
>> > "
>> >
>> > ceph osd pool create test_ec2 16 16 erasure ec4x2rs
>> >
>> > ====================================================
>> >
>> > ceph osd pool create test_ec 16 16 erasure
>> >
>> > ===========================================
>> >
>> > "
>> > The default profile pool is created correctly.
>> > My profiles are like this:
>> > "
>> >
>> > ceph osd erasure-code-profile get default
>> >
>> > ==========================================
>> >
>> > k=2
>> > m=1
>> > plugin=jerasure
>> > technique=reed_sol_van
>> >
>> > ceph osd erasure-code-profile get ec4x2rs
>> >
>> > ==========================================
>> >
>> > crush-device-class=
>> > crush-failure-domain=host
>> > crush-root=default
>> > jerasure-per-chunk-alignment=false
>> > k=4
>> > m=2
>> > plugin=jerasure
>> > technique=reed_sol_van
>> > w=8
>> > "
>> > From what I've read it seems to be possible to create erasure code pools 
>> > with higher than hosts K+M. Is this not so?
>> > What am I doing wrong? Do I have to create any special crush map rule?
>> > --
>> > Salsa
>> > Sent with ProtonMail Secure Email.
>> >
>> > ceph-users mailing list
>> > ceph-users@lists.ceph.com<mailto:ceph-users@lists.ceph.com>
>> > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
>
>
> _______________________________________________
> ceph-users mailing list
> ceph-users@lists.ceph.com<mailto:ceph-users@lists.ceph.com>
> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com<mailto:ceph-users@lists.ceph.com>
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to