Best "modern" approach to drain/fill a OSD server
Hi to all! I'm searching the wisdom of the community on how to drain/fill an OSD server (like for removal, bulk disk replacing, filestore to bluestore conversion...) without impacting on the performance of the cluster. We are using the 'ceph-gentle-reweight' script, which is running fine, but we are interested to know if there is a newer approach for this job. Searching the web I found a pdf of the talk of Dan van der Ster about "Mastering Ceph Operations" (NYC Ceph Day 2024) in which he talks about using the 'balancer' in 'upmap' mode (and a "magic" script) to move the PGs from/to the OSDs in the background. So the balancer upmap approach can be used to drain a node following this procedure: - set balancer tunables (like 'target_max_misplaced_ratio') - activate the balancer in upmap mode (if not already active) - 'ceph osd crush reweight-subtree' to 0.1 for the host we wish to drain - run the magic script 'upmap-remapped.py' - 'ceph osd crush reweight-subtree' to 0 for the host we wish to drain - do stuff on the node (remove, reinstall etc etc). But what is the implication for the whole cluster, how this background job affects its performance? I assume that 'target_max_misplaced_ratio' is a key parameter to avoid large data movement in a given time, there is more to look into? And there are other approaches for the job? Thanks a lot! Iztok
participants (1)
-
Iztok Gregori