Why does RBD snap id start from 4?

176 views Asked by At

I'm a newbee Ceph developer, and recenlty reading code of snapshots. From pg_pool_t::add_unmanaged_snap, it's obvious that the first RBD snapshot id should start from 2, but in reality, it starts from 4, I wonder whether there are some organisms in RBD snap, which increments snap_seq, could anyone help me?

Thanks in advance!

Below is the code of 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;
}

Following screenshot is the process of rbd snapshot creation on a totally new rbd pool. Obviously, snapshot id here starts from 4

rbd snapshot creation on a totally new rbd pool

enter image description here

0

There are 0 answers