私は初心者の Ceph 開発者で、最近スナップショットのコードを読んでいます。pg_pool_t::add_unmanaged_snap から、最初の RBD スナップショット ID が 2 から始まることは明らかですが、実際には 4 から始まります。snap_seq をインクリメントする RBD スナップに生物がいるのだろうかと思います。誰か助けてくれませんか?
前もって感謝します!
以下はpg_pool_t::add_unmanaged_snapのコードです。
void pg_pool_t::add_unmanaged_snap(uint64_t& snapid)
{
ceph_assert(!is_pool_snaps_mode());
if (snap_seq == 0) {
// kludge for pre-mimic tracking of pool vs selfmanaged snaps. after
// mimic this field is not decoded but our flag is set; pre-mimic, we
// have a non-empty removed_snaps to signifiy a non-pool-snaps pool.
removed_snaps.insert(snapid_t(1));
snap_seq = 1;
}
flags |= FLAG_SELFMANAGED_SNAPS;
snapid = snap_seq = snap_seq + 1;
}
次のスクリーンショットは、まったく新しい rbd プールで rbd スナップショットを作成するプロセスです。明らかに、ここのスナップショット ID は 4 から始まります
まったく新しい rbd プールでの rbd スナップショットの作成