*** DISCLAIMER ***
- I ORDERED STUFF; EXPECT NEXT Pictures in a week, the damn 80mm Noctua/BeQuiet fans weren’t in stock or were EOL!
I don’t have HDDs in use for Ceph OSDs atm. First, because my ZFS pool is still on 4 of them, so I don’t use DB/WAL. Until I’m fully confident in Ceph and my setup is (mostly) complete, I keep using my ZFS pool. ZFS just works and I can always rely on it. The HDDs may end up as a RBD/CephFS mirror as a backup. Or just OSDs for special HDD pools for bulk data. Not decided on that yet. But certainly with an SSD for DB/WAL disk to speed things up. SLOG and special vdev for metadata in ZFS is just too good to not use it. And DB/WAL is the Ceph equivalent of that. “Free” IOPS 
I use all of them and will continue to do so. I think they all have their special use case. For desktop, I prefer BTRFS. Proxmox runs on ZFS and RBDs. Laptop runs ZFS (Ubuntu).
I don’t think you can beat ZFS on a single server setup. But you can’t cluster ZFS and it isn’t designed for it. That’s where Ceph comes into play.
Ceph is the new kid in the family and I’m still learning and tinkering. But so far it’s been a blast to work with. ZFS can be a deep rabbit hole, but Ceph is a cluster of rabbit holes.
I found Ceph when browsing SUSE enterprise stuff, particularly digging into Rancher (ironically they discontinued Ceph, probably because RedHat/IBM shifting the landscape and ecosystem).
Then checked YT and Ceph documentation. And a month after that I wanted to build a 3-node cluster. Even coming from a ZFS “background”, Ceph has a lot going for it and shares many of the great magic things we love in ZFS. But also offers so much more, but also sacrifices a lot I’m so used to with ZFS.
I miss superfast compression, IOPS and ARC, ARC and ARC again…I knew this beforehand. You can’t compete with ZFS on performance. But with modern NVMe drives, Ceph is surprisingly fast. Enterprise NVMe are the main storage for the cluster. Fate of HDDs, see above.
And I still use a single server with VMs to virtualize a cluster. Next week the second node will be assembled. 12 more cores, 80GB/s more memory bandwidth and 3 more OSDs.
But I already setup all my block and file storage for my home network. It’s not ZFS, but it ain’t slow either. I’m certainly not disappointed. But those Enterprise NVMe aren’t cheap either.
So far, I just used RBD and CephFS as I only have Linux machines running at home. Mounting the stuff is just as easy as iSCSI and SMB.
Gas-guzzling old Xeons?..sturdy, but expensive to run. I decided to go with 65W TDP consumer CPU platform to keep power consumption low, while also having enough lanes for several (Enterprise with PLP) NVMe and HDDs.
But I’m sure your Xeons can handle a couple of HDD OSDs just fine. Writing to NVMes at NVMe speed is where the CPU is melting in Ceph. Even my 12-core Ryzen will go nuts on writes. Ceph likes CPU time, and will use all the cores you throw at it when you write at high speeds 
10GbE is a good thing. Ceph talks a lot and cluster communication and everything Ceph does needs bandwidth or latency. 10G is good to have. 1G is probably fine for the usual chatter, but the cluster probably falls apart and marks nodes or OSDs as OUT on a 1G network as soon as there are backfills or any other amount of load. I even had to change parameters for clock skew between nodes. Clusters hate high latencies.
Many others just consolidate their servers into a single new one. And with stuff like Minisforum MS-01 and Thunderbolt, you can build clusters for very cheap and low power.
But Ceph wants Enterprise drives with PLP, so this wasn’t my approach. M.2 Enterprise drives are mostly end of life or really expensive and MS-01 can only use 1x U.2 and only a 7mm height one.
I want this to be a performance-oriented NVMe cluster (by Ceph standards) that is not for tinkering and setting up, but for actual use for all my stuff (from VMs over filesharing to steam library and Kubernetes) and the things to come. And learning a lot of new stuff of course.
Ceph has a Windows driver so you can use CephFS in Windows too. Same for RBD. So iSCSI and SMB are only needed for devices that need it. Better to talk directly to the cluster instead of using a Gateway to translate stuff.
Will update here once DHL delivers the nice hardware I ordered. Will also post performance and general experience I encounter with used hardware and how I learn Ceph and get more stuff running.
Clusters were inaccessible to mainstream for a long time. Today, we can all do it. Even If it’s just 3x Raspberry Pis. It won’t be for everyone, but it’s damn amazing, fascinating and doesn’t have to be slow if you put thought (and money) into it.
But a single server is the most rational choice to make for a homelab. Cheaper, faster, less power.