CephFS/Ceph Configuration Guidance Needed
In the near future (+/- 2 months), I will be setting up a new cluster that will consist of 6 R730XDs with HDD, SSD and NVMe storage in a HCI stack. In this configuration, I will be using VMs for legacy apps that I use, but it will most focused on containerized workloads. Most of my containerized workloads require databases and I want to place those databases on the SSDs.
Here's my problem, with only one CephFS pool supported (using Proxmox), what is the best way to utilize the SSDs for databases in my containerized workloads given the HDDs will be used for CephFS and the NVMe will be used for OS/EFI storage?
Posted Sep 23, 2020, 5:47 AM UTC
you will have performance setting up vm's on a cephfs. its not designed for that. you want rbd's for databasing since DB engines use block reads/writes, they use index's as shortcuts. this doesnt work well at file level sharing.
TheSov is correct. Vm's need to be on rbd's. The performance difference is huge. Rbd also is an easier construct not beeing dependant on mds servers.
That does not means cephfs does not have uses in this scenario. I copy the disk image to cephfs mount for import, but disk move it to rbd for production.
I have 2 rbd pools, one "regular" using hdd class osd and one "fast" pool using ssd class osd.
The CephFS pool will be backed by HDDs and used solely as a file store, and the NVMe drives will be RBD pool for VM only. What I am struggling to figure out is how to incorporate the SSDs to create a shareable location for my containerized DB workloads.
you set device classes for your osd's so your cluster treats them differently, classes for HDD and SSD already exist so you just have to make sure ceph knows about them. then you can set pools to only exist on certain device classes.
so when you create your data/metadata pools for cephfs they go on device class=hdd and when you create your rbd pool it goes on SSD class.