Skip to main content

Increasing the size of the VDO

This section covers the steps required to increase the size of the VDO data after adding the new storage drives to the RAID array.

Ensure that the set of eight (8) drives are properly included in the RAID array according to the Adding the new drives to the RAID array section.

Procedure performed by: Customer or field service

To increase the size of the VDO, follow these steps:

  1. Calculate the new size of the VDO according to the following formula:

    new VDO size = (size of the RAID50 device) (size of the internal VDO-specific metadata)

    Note

    All the sizes are calculated in number of 512–byte sectors.

    As calculated in our example in the Adding the new drives to the RAID array section:

    • The size of the RAID50 device is 18,628,988,928

    • The size of the internal ThinkAgile CP VDO-specific metadata is 2,048

    Therefore, the new VDO size is 18,628,988,928 2,048 = 18,628,986,880 512–byte sectors.

  2. Increase the size of the VDO data and reload the VDO:

    dmsetup reload vdo_data --table '0 18628986880 linear /dev/md/md50 2048'

  3. Resume the VDO:

    dmsetup resume vdo_data

  4. Check the new size of the VDO data:

    dmsetup table vdo_data

    0 18628986880 linear 9:50 2048

    lsblk | grep vdo | head -1

    vdo_data 253:9 0 8.7T 0 dm

  5. Check the storage drive configuration

    # lsblk

    Following is an example output:

    NAME                                                              MAJ:MIN RM SIZE   RO TYPE  MOUNTPOINT

    ...

    nvme8n1 259:12 0 740.4G 0 disk
    └─sed8 253:15 0 740.4G 0 crypt
    └─md123 9:123 0 4.3T 0 raid5
    └─md124 9:124 0 8.7T 0 raid0
    └─vdo_data 253:9 0 8.7T 0 dm
    └─vdo 253:10 0 43.4T 0 vdo
    ├─CBS_POOL_data 253:8 0 43.3T 0 dm
    │└─CBS_POOL 253:12 0 43.3T 0 dm
    │ ├─SPECIAL_METADATA_STORE_a0528f49b71948aa8be9d7f4d490b97f 253:13 0 1G 0 dm
    │ └─SPECIAL_TEMPLATE_STORE_0657a4c083b44d8bb0d22cb4e6d0d750 253:14 0 43.3T 0 dm
    └─CBS_POOL_meta 253:11 0 16G 0 dm
    └─CBS_POOL 253:12 0 43.3T 0 dm
    ├─SPECIAL_METADATA_STORE_a0528f49b71948aa8be9d7f4d490b97f 253:13 0 1G 0 dm
    └─SPECIAL_TEMPLATE_STORE_0657a4c083b44d8bb0d22cb4e6d0d750 253:14 0 43.3T 0 dm

    nvme9n1 259:12 0 740.4G 0 disk
    └─sed9 253:15 0 740.4G 0 crypt
    └─md123 9:123 0 4.3T 0 raid5
    └─md124 9:124 0 8.7T 0 raid0
    └─vdo_data 253:9 0 8.7T 0 dm
    └─vdo 253:10 0 43.4T 0 vdo
    ├─CBS_POOL_data 253:8 0 43.3T 0 dm
    │└─CBS_POOL 253:12 0 43.3T 0 dm
    │ ├─SPECIAL_METADATA_STORE_a0528f49b71948aa8be9d7f4d490b97f 253:13 0 1G 0 dm
    │ └─SPECIAL_TEMPLATE_STORE_0657a4c083b44d8bb0d22cb4e6d0d750 253:14 0 43.3T 0 dm
    └─CBS_POOL_meta 253:11 0 16G 0 dm
    └─CBS_POOL 253:12 0 43.3T 0 dm
    ├─SPECIAL_METADATA_STORE_a0528f49b71948aa8be9d7f4d490b97f 253:13 0 1G 0 dm
    └─SPECIAL_TEMPLATE_STORE_0657a4c083b44d8bb0d22cb4e6d0d750 253:14 0 43.3T 0 dm

  6. Increase the physical volume size of the VDO volume:

    # vdo growPhysical --name=vdo

  7. Increase the logical volume size to ten times the size of the physical volume:
    1. Check the new size of the VDO data:

      # dmsetup table vdo_data

      0 18628986880 linear 9:124 2048

    2. Calculate the new logical volume size according the following formula:

      new logical volume size = (size of VDO data in 512–byte sectors) X (number bytes per sector) X (relative size of the logical volume compared to the physical volume)

      In our example, this becomes:

      new logical volume size = 18,628,986,880 X 512 X 10 = 88,829,931,640,625 bytes or approximately 88,829 GB.

    3. Increase the size of the logical volume:

      # vdo growLogical --name=vdo --vdoLogicalSize=88829G

      Note

      The maximum size of the logical volume is 2,013,265 GB (1.92 PB). If the number you previously calculated is greater than that, use the maximum of 2,013,265 GB instead.

    4. Check the new size of the VDO data:

      # lsblk | tail -10

      NAME                                                           MAJ:MIN RM SIZE   RO TYPE  MOUNTPOINT

      └─vdo_data 253:9 0 8.7T 0 dm
      └─vdo 253:10 0 86.8T 0 vdo
      ├─CBS_POOL_data 253:8 0 43.3T 0 dm
      │└─CBS_POOL 253:12 0 43.3T 0 dm
      │ ├─SPECIAL_METADATA_STORE_a0528f49b71948aa8be9d7f4d490b97f 253:13 0 1G 0 dm
      │ └─SPECIAL_TEMPLATE_STORE_0657a4c083b44d8bb0d22cb4e6d0d750 253:14 0 43.3T 0 dm
      └─CBS_POOL_meta 253:11 0 16G 0 dm
      └─CBS_POOL 253:12 0 43.3T 0 dm
      ├─SPECIAL_METADATA_STORE_a0528f49b71948aa8be9d7f4d490b97f 253:13 0 1G 0 dm
      └─SPECIAL_TEMPLATE_STORE_0657a4c083b44d8bb0d22cb4e6d0d750 253:14 0 43.3T 0 dm

  8. Save the contents of the new VDO configuration to the RAID50 device:

    cat /etc/vdoconf.yml > /dev/md/md50

After increasing the size of the VDO data, increase the sizes of the CBS pool and CBS pool data. See Increasing the size of the CBS pool.