Hi,
I have s small 3 node PVE cluster including Ceph with 10GBE for each corosync and Ceph.
I used to have one OSD (NVME) in each node. Everything was nice and fast.
Then I replaced each NVME with two SSDs (as you are not supposed to have so few OSD and each OSD was already beyond the maximum pg count. And now my cluster is super slow.
Obviously, SSDs are slower than NVMEs but this is ridiculous (iodelay goes up to 35%).
So now I am wondering what the issue might be and how to rectify. I believe that before I set up Ceph originally, I read (somewhere) that if you only have one OSD in each nodem Ceph will make sure that all your data is present on every node (given a target 3 replicas).
If this is correct, does this than mean that by switching to two OSDs per node I broke this allocation rule and not every node may have all data available on its "own" OSDs anymore? If data has to be loaded via the network, this could explain the high delays.
And if so, is there a way to tell Ceph to keep all data on every node so that it does not need to load via the network from another node?
Thanks!
I have s small 3 node PVE cluster including Ceph with 10GBE for each corosync and Ceph.
I used to have one OSD (NVME) in each node. Everything was nice and fast.
Then I replaced each NVME with two SSDs (as you are not supposed to have so few OSD and each OSD was already beyond the maximum pg count. And now my cluster is super slow.
Obviously, SSDs are slower than NVMEs but this is ridiculous (iodelay goes up to 35%).
So now I am wondering what the issue might be and how to rectify. I believe that before I set up Ceph originally, I read (somewhere) that if you only have one OSD in each nodem Ceph will make sure that all your data is present on every node (given a target 3 replicas).
If this is correct, does this than mean that by switching to two OSDs per node I broke this allocation rule and not every node may have all data available on its "own" OSDs anymore? If data has to be loaded via the network, this could explain the high delays.
And if so, is there a way to tell Ceph to keep all data on every node so that it does not need to load via the network from another node?
Thanks!