r/ceph • u/Frequent-Wear-3948 • 14d ago
New CEPH Cluster
Hi guys,
We're considering a new cluster for CEPH, nothing too fancy - erasure coded setup 8+2, with 10 disks and 2x NVMe, 6 nodes for good resiliency. Now we're considering splitting the available nvme space as Bluestore space and rest for the metadata caching when we pull S3 objects from Amazon.
How do we decide the size needed for Bluestore ? Is there any rule of thumb there ?
Here is the h/w config we're planning on using
https://gpumachines.com/shared/gigabyte-20r264-s30-aav1-98b877
Any suggestions are most welcome ! Appreciate all your help people from trenches :)
4
u/Micketeer 14d ago
6 nodes for resiliancy but you want 8+2? That does not add up.
General recommendation for DB size is 4% of disk.
2
u/SystEng 14d ago edited 14d ago
"erasure coded setup 8+2, with 10 disks [...] 6 nodes for good resiliency"
[...] "Guess 4+2 it is then."
The failure domain could be the OSD instead of the server, but k=8,m=2 with 10 OSDs (and especially 10 HDD OSDs) seems to me to have some huge disadvantages.
In an ideal case the number of (failure domains and) servers and OSDs should be rather larger than the width of the EC set/replica set.
10 OSDs in 6 servers with k=4,m=2 is definitely better but consider this complication:
With 10 OSDs and 6 servers you can have 4 servers with 2 OSDs and 2 servers with 1 OSDs (or worse).
k=4,m=2 with 6 servers requires that all objects be chunked across 6 servers.
What happens when either OSD in the 2 servers that only have 1 OSD become full?
I would also guess (the configuration link does not work for me) the HDDs have large capacity too to "optimize" cost "effectiveness" and I reckon that Ceph requires a lot of IOPS-per-TB but many people know better.
1
u/SystEng 14d ago
10 OSDs in 6 servers with k=4,m=2 is definitely better
If that is not clear enough: that is a massive euphemism. But from an earlier discussion it seems that configurations are members of the Ceph community and can easily take offense. :-) I liked the previous massive euphemism "tight during recovery windows". :-)
1
u/SystEng 12d ago
"I would also guess (the configuration link does not work for me)"
That link now works for me and it turns out that each of the six servers has 10x 24TB HDD OSDs, not 10 among the 6 servers.
"Ceph requires a lot of IOPS-per-TB but many people know better." "I liked the previous massive euphemism "tight during recovery windows". :-)"
6 servers with 32GiB each with 10x 24TB SATA HDDs each with EC k=4,m=2 and 2x 4TB SSDs shared among those 10 HDDs for DB+WAL and metadata is a bravely optimistic configuration. A pattern that is quite popular.
1
u/TheSov 14d ago
i see you addressed the EC stuff, so ill get right to the crux of the issue, you dont have enough ram. this cluster will suck.
1
u/Frequent-Wear-3948 13d ago
oh that's interesting point. So you think 128GB of RAM per node is not enough ? Does this have any relation to HDD capacity per node ? Thanks for the tip so far, much appreciated
1
u/TheSov 13d ago
spinning disks require big caches for good speed. unless you are fine with large latencies. i assume u are using the 2 ssd's mirrored for the WALs/ROCKDBs? that covers your write. you are dealing with objects in EC that uses more memory than you think, 128GB maybe ok for your setup, i dont know your actual use case. but from my experience i would lean toward more ram and over engineer than to be insufficient, also ceph is scale out not scale up, if i was also you i wouldnt fill every disk on the chassis, and do half and get more chassis'. so if u ever have to expand u just buy disks instead of having to source chassis as well.
1
u/Frequent-Wear-3948 12d ago
tbh it's all about the budgets these days. Ram prices are an extortion so while I totally agree with you having more, not sure if we can make it this financial year lol :) Appreciate the feedback though, what I can do is to get i.e. 2x 64GB sticks each, so i have big room for expansion
1
u/ihavenospeed 14d ago
coming from someone who dealt with rocksdb spillover on a multi-petabyte S3 cluster with billions of objects, I'd suggest you first assess what workload you want to optimize for.
As for the pulling from Amazon S3, you have to make an idea about the caching mechanism, I personally go for a separate nvme backed pool, but there are also other options.
As someone else already said, 6 nodes for an 8+2 won't do the trick unfortunately, you could do it tough by choosing the osd failure domain but I highly suggest you not to do so; even with a 4+2 that would suit your 6 host layout you'd be tight during recovery windows.
Personal take? Claude and GPT is your best friend when making such ideas.
2
u/Frequent-Wear-3948 14d ago
Much appreciated ! Thank you for your suggestions here. So possibly add 2 more NVMe via m.2 would do the trick then change to 4+2, but as you said it would be tight.
I know I can ask all these questions to claude or gpt, but that's the thing - sometimes it's better to verify with ppl who actually have experience with larger deployments rather than listening to GPT later saying - Opps sorry you're correct ;)
Thanks again
5
u/ihavenospeed 14d ago
fair point on the gpts thing, I use it for brainstorming but I've fed it my infra over time so it's tuned to my context.
on the nvme, adding more gives you more room for rocksdb and less blast radius when one dies, but it won't help the EC math in any form. thats purely host count.
My rule of thumb is a fixed ratio between block devices and db devicse, then you split each nvme into fixed LVs so every osd gets it's own dedicated LV for rocksdb. proportional to your layout rather then a fixed percentage.
And on the EC, if you can stretch the budget get more hosts before you buy anything else, with exactly 6 and 4+2 a host going down means the pgs sit degraded with nowhere to rebuild onto, since the other 5 already hold a shard so I say 7 gets you self healing, 8 gives you margin.
ps. if you can avoid m.2 use u.2/3
2
u/_--James--_ 14d ago
If you are relying on AI for answers, while you got the right answers in this sub by all rights. I have to suggest reaching out to a SI partner that handles Ceph specifically. I would suggest Croit personally. Reach out to them, get a SE engagement going and run through your needs and wants, and let them guide you.
You do not have enough hardware to support your build, that is the bottom line. You also probably do not have enough bottom end IO to support your throughput load, but that would need to be properly benchmarked, stated, and mathed to really know. You need to start at your current state IO + sizing requirements and then build down into the hardware, not bottom up.
1
u/ihavenospeed 14d ago
I think your reply was meant for OP; but if that was meant for me, I rely on AI that I specifically trained to speed-up troubleshooting or to brainstorm ideas when needed, but i've been running this stuff for some time so I can catch when it invents stuff. For someone with no hands-on experience, you can try your luck on a lab, not on production.
2
u/_--James--_ 14d ago
Yes, i was talking to the OP. Looking at the opening Post and the OP's reply's, AI is not enough for them to build this right. This is why SI's exist and I stand by what i said. AI is not bad, its just not strong enough for the OP in their current state.
Such as if the OP went to Claud/GPT and said "I have 6 servers I want EC8+2" and AI did not kick back "This is not possible with out extreme concern" the AI failed that model, which it sounds like what happened.
17
u/mattk404 14d ago
Unless you're doing very not recommended things with failure domains you're 6 nodes can't do 8+2 EC. You need 10 nodes.