Module: Lvm2Thin

Defined in:
lib/VolumeManager/LVM/thin/btree.rb,
lib/VolumeManager/LVM/thin/data_map.rb,
lib/VolumeManager/LVM/thin/constants.rb,
lib/VolumeManager/LVM/thin/space_maps.rb,
lib/VolumeManager/LVM/thin/superblock.rb,
lib/VolumeManager/LVM/thin/mapping_tree.rb

Defined Under Namespace

Classes: BTree, DataMap, DataSpaceMap, MappingTree, MetadataSpaceMap, SuperBlock

Constant Summary collapse

SECTOR_SIZE =
512
THIN_MAGIC =
27022010
SPACE_MAP_ROOT_SIZE =
128
MAX_METADATA_BITMAPS =
255
SUPERBLOCK =
BinaryStruct.new([
 'L',                       'csum',
 'L',                       'flags_',
 'Q',                       'block',
 'A16',                     'uuid',
 'Q',                       'magic',
 'L',                       'version',
 'L',                       'time',

 'Q',                       'trans_id',
 'Q',                       'metadata_snap',

 "A#{SPACE_MAP_ROOT_SIZE}", 'data_space_map_root',
 "A#{SPACE_MAP_ROOT_SIZE}", 'metadata_space_map_root',

 'Q',                       'data_mapping_root',

 'Q',                       'device_details_root',

 'L',                       'data_block_size',     # in 512-byte sectors

 'L',                       'metadata_block_size', # in 512-byte sectors
 'Q',                       'metadata_nr_blocks',

 'L',                       'compat_flags',
 'L',                       'compat_ro_flags',
 'L',                       'incompat_flags'
])
SPACE_MAP =
BinaryStruct.new([
  'Q',                      'nr_blocks',
  'Q',                      'nr_allocated',
  'Q',                      'bitmap_root',
  'Q',                      'ref_count_root'
])
DISK_NODE =
BinaryStruct.new([
  'L',                      'csum',
  'L',                      'flags',
  'Q',                      'blocknr',

  'L',                      'nr_entries',
  'L',                      'max_entries',
  'L',                      'value_size',
  'L',                      'padding'
  #'Q',                      'keys'
])
INDEX_ENTRY =
BinaryStruct.new([
  'Q',                      'blocknr',
  'L',                      'nr_free',
  'L',                      'none_free_before'
])
METADATA_INDEX =
BinaryStruct.new([
  'L',                      'csum',
  'L',                      'padding',
  'Q',                      'blocknr'
])
BITMAP_HEADER =
BinaryStruct.new([
  'L',                      'csum',
  'L',                      'notused',
  'Q',                      'blocknr'
])
DEVICE_DETAILS =
BinaryStruct.new([
  'Q',                      'mapped_blocks',
  'Q',                      'transaction_id',
  'L',                      'creation_time',
  'L',                      'snapshotted_time'
])
MAPPING_DETAILS =
BinaryStruct.new([
  'Q',                       'value'
])