> On 12 Apr 2018, at 17:44, Sage Weil <sage@xxxxxxxxxxxx> wrote: > > On Thu, 12 Apr 2018, Dan Van Der Ster wrote: >> Hi all, >> >> We noticed that changing existing pools from being class-agnostic to >> choose a class (e.g. hdd [1]) then a lot, perhaps all, data will move. >> >> I think this is because the crush IDs in the shadow tree are too >> different, or maybe just a different order, from the original bucket >> IDs. >> >> But I wonder if we could use `ceph osd crush swap-bucket` (or a more >> elaborate version of swap bucket) to move the shadow buckets into the >> correct place in the tree, thereby preventing data movement. >> >> Did anyone already ponder on this topic? > > We could do a one-time transition that swaps the "real" ids with the > shadow ids for one of the classes, and at the same time change the crush > rule for the pool. > > This will only really work/help if the majority of the devices are one > class. That's probably usually the case? That's indeed our use-case. We have an all-hdd cluster for rgw -- we want to add *add* some ssd osds to each host in the cluster, then use the device class rules to map the bucket_data/index pools accordingly. Do you expect no data movement if we use crushtool to decompile, swap the IDs, then recompile and setcrushmap? -- dan _______________________________________________ Ceph-large mailing list Ceph-large@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-large-ceph.com