On Thu, 10 Sep 2015, GuangYang wrote: > Today I played around recovery and backfill of a Ceph cluster (by > manually bringing some OSDs down/out), and got one question regards to > the current flow: > > Does backfill push everything to the backfill target regardless what the > backfill target already has? The scenario is like - acting set of the PG > is [1, 2, 3], and 3 went down (at which point it already had some data) > and stayed down for a sustained period (but not marked out), during > which time there were sustained WRITE to the PG. At some point 3 went > back up, and it is not sufficient to recovery via PG log, so the PG > needed to be backfilled and 3 is the target. Does 1 needs to push > everything (last_backfill starts with MIN) to 3? It seems so to me as I > don't see some round trip to negotiate what each OSD has and do an > incremental push (as recovery does), but it would be nice to get confirm > :) No. Backfill iterates over objects on the source and destination and only pushes objects that are missing or out of date (and deletes ones that shouldn't be there). This is all in ReplicatedPG::recover_backfill() (though it's not the easiest read). sage -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html