On 2019-09-01 05:57, Konstantin Shalygin wrote:
On 8/31/19 4:14 PM, Zoltan Arnold Nagy wrote:
Could you elaborate a bit more? upmap is used to map specific PGs to specific OSDs in order to deal with CRUSH inefficiencies.
Why would I want to add a layer of indirection when the goal is to remove the bucket entirely?
As I understood you want to make huge CRUSH map changes without huge data movement.
Upmap can help with this, you map your current PG's to OSD's that already holds this PG's.
Let's say with upmap I take the current mapping and "override" CRUSH, then remove the rack bucket and move the host directly to the root. And then what? We'd never, ever be able to go back, and what's worse, for any new expansions we'd need to manage the PG mappings manually. Unless I'm missing something, while this would solve the problem in the very very short term, it would create horrible issues down the line, and would be shooting ourselves in the foot as far as maintainability is concerned. As I've said we'd been rolling this cluster since at least Firefly, and I don't want to mess with it. The solution I've outlined in my original mail works (swapping the bucket IDs) and seems more maintainable, however, I've been wondering if the bucket types are just labels or do they have any other semantic meaning?