I need to do something about the horrible performance I get from the HDD pool on a production cluster. (I get around 500KB/s benchmark speeds!). As the disk usage has been increasing, so the performance has been dropping. I'm not sure why this is, since I have a test cluster, which higher storage % allocation, with much better performance on much older and slower hardware. However, here's what I'm planning to do.
Config:
2 x NVMe 1TB on each of 4 nodes in SSD pool
4 x SAS 2TB HDD on each of 4 nodes in HDD pool
Step 1: Remove one NVMe from the SSD pool. Split it into 5 lvm partitions: 1 of 800GB, 4 x 50GB. Add the 800GB one back as an OSD to the SSD pool.
Step 2: Remove one HDD at a time on the node that Step 1 has been performed on. Delete the OSD and recreate it assigning one 50GB partition to the WAL (I'm not planning to allocate the RocksDB, which should go with the WAL automatically if I read that correctly).
One completion of the process all my HDD based OSDs will now have a 50GB WAL/RocksDB partition on NVMe storage, which will make my HDD storage pool substantially faster. I'm hoping to get an average of between 6 and 8 times speed implovement to around 300MB/s instead of the 500KB I now get.
Does this look like a good plan of action?
Is 50Gb a good size for a 2GB OSD or can I make it less?
Are there things I should be doing differently?
All advice much appreciated.
Config:
2 x NVMe 1TB on each of 4 nodes in SSD pool
4 x SAS 2TB HDD on each of 4 nodes in HDD pool
Step 1: Remove one NVMe from the SSD pool. Split it into 5 lvm partitions: 1 of 800GB, 4 x 50GB. Add the 800GB one back as an OSD to the SSD pool.
Step 2: Remove one HDD at a time on the node that Step 1 has been performed on. Delete the OSD and recreate it assigning one 50GB partition to the WAL (I'm not planning to allocate the RocksDB, which should go with the WAL automatically if I read that correctly).
One completion of the process all my HDD based OSDs will now have a 50GB WAL/RocksDB partition on NVMe storage, which will make my HDD storage pool substantially faster. I'm hoping to get an average of between 6 and 8 times speed implovement to around 300MB/s instead of the 500KB I now get.
Does this look like a good plan of action?
Is 50Gb a good size for a 2GB OSD or can I make it less?
Are there things I should be doing differently?
All advice much appreciated.
Last edited: