4

I'm hitting a bit of a brick wall here with vdo growPhysical -n pool. I've recently replaced my 3TB HDD's with 4TB HDD's in an md RAID5 array, which is now showing the correct capacity (8TB) but not allowing expansion of the VDO backing.

sudo mdadm --detail /dev/md/md0 output:

# mdadm --detail /dev/md/md0
/dev/md/md0:
           Version : 1.2
     Creation Time : Wed Mar 18 20:26:50 2020
        Raid Level : raid5
        Array Size : 7813772288 (7451.79 GiB 8001.30 GB)
     Used Dev Size : 3906886144 (3725.90 GiB 4000.65 GB)
      Raid Devices : 3
     Total Devices : 3
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Wed Jun 10 22:01:31 2020
             State : clean 
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : bitmap

              Name : ocelot:md0  (local to host ocelot)
              UUID : 17c8828b:5b1d7435:063a40ff:18285a8e
            Events : 42696

    Number   Major   Minor   RaidDevice State
       4       8       16        0      active sync   /dev/sdb
       5       8       32        1      active sync   /dev/sdc
       3       8       48        2      active sync   /dev/sdd

sudo vdo growPhysical -n pool --verbose output:

    vdodumpconfig /dev/disk/by-id/md-uuid-17c8828b:5b1d7435:063a40ff:18285a8e
    dmsetup status --target vdo pool
    dmsetup resume pool
    vdodmeventd -r pool
    dmsetup status --target vdo pool
    readlink -f /dev/disk/by-id/md-uuid-17c8828b:5b1d7435:063a40ff:18285a8e
    cat /sys/class/block/md0/size
    dmsetup table pool
    dmsetup reload pool --table '0 35161595904 vdo V2 /dev/disk/by-id/md-uuid-17c8828b:5b1d7435:063a40ff:18285a8e 1953443072 4096 32768 16380 on auto pool maxDiscard 1 ack 1 bio 4 bioRotationInterval 64 cpu 2 hash 1 logical 1 physical 1'
vdo: ERROR - Device pool could not be changed; device-mapper: reload ioctl on pool  failed: Input/output error
vdo: ERROR - device-mapper: reload ioctl on pool  failed: Input/output error

Just looking for an indication where I'm going wrong here if anything, I've tried through CLI and cockpit and neither have yielded the change I'm looking for. Is this change just not implemented yet?

I've also tried deactivating the VDO device and then attempting to grow while it's offline but when I do that I just get:

    dmsetup status --target vdo pool
vdo: ERROR - VDO volume pool must be running

Any help would be greatly appreciated.

1 Answers1

2

Growing a VDO physical device is a supported operation. The fact that you are not able to grow it, and not even stop it, can be related to the underlying device mapper table being out of sync.

If so, a full device restart should fix it.

shodanshok
  • 44,038
  • 6
  • 98
  • 162
  • I should note I could stop and start the VDO just fine, the `growPhysical` command just said it needed to be online when I tried it when stopped. I've since tried a reboot and now can't get the VDO to start so I suspect there's a bigger problem unfortunately. – TheGreatMcMeek Jun 11 '20 at 07:58
  • @TheGreatMcMeek sorry to hear that... Unfortunately, the `failed: Input/output error` message is quite telling. – shodanshok Jun 11 '20 at 08:12
  • no worries, nothing essential was on there so I'll just blast it and start a new one with the full 8TB backing device. A bit annoying but can't be helped. Thanks for confirming the operation *should* have worked though. – TheGreatMcMeek Jun 11 '20 at 08:16