RBD Incremental Backup
“rbd diff v1\n”
Metadata records
Every record has a one byte “tag” that identifies the record type,followed by some other data.
Metadata records come in the first part of the image. Order is notimportant, as long as all the metadata records come before the datarecords.
u8: ‘f’
le32: snap name length
snap name
To snap
u8: ‘t’
le32: snap name length
snap name
Size
u8: ‘s’
le64: (ending) image size
These records come in the second part of the sequence.
Updated data
u8: ‘w’
le64: offset
length bytes of actual data
u8: ‘z’
le64: offset
le64: length
Final Record
End
- u8: ‘e’
“rbd diff v2\n”
Metadata records
Every record has a one byte “tag” that identifies the record type,followed by length of data, and then some other data.
Metadata records come in the first part of the image. Order is notimportant, as long as all the metadata records come before the datarecords.
In v2, we have the following metadata in each section:(1 Bytes) tag.(8 Bytes) length.(n Bytes) data.
In this way, we can skip the unrecognized tag.
From snap
u8: ‘f’
le32: snap name length
snap name
To snap
u8: ‘t’
le32: snap name length
snap name
u8: ‘s’
le64: length of appending data (8)
le64: (ending) image size
These records come in the second part of the sequence.
Updated data
u8: ‘w’
le64: length of appending data (8 + 8 + length)
le64: offset
le64: length
length bytes of actual data
Zero data
u8: ‘z’
le64: length of appending data (8 + 8)
le64: offset