Increasing Allocated Disk Space for an External Platform Services Controller

I had an issue recently with logs on an external Platform Services Controller using up over 90% of the available free space on the volume. In the past, when I’ve needed to extend disk space on a VCSA I have followed this VMware KB which instructs how to extend disk space using ‘vpxd_servicecfg storage lvm autogrow’, so I thought I’d use the same process for a PSC. However, when I attempted to extend the volume, I found that the ‘vpxd_servicecfg’ script isn’t available on the PSC. Seeing as I’d already increased the size of the VMDK on the PSC, I decided to have a go at extending the volume using native linux tools.

I had started by increasing the VMDK for the log volume (VMDK 5 – see KB mentioned above), from 10GB to 15GB. Running ‘df -h’ in a shell session on the PSC shows it’s current size:

v6-psc:~ # df -h
Filesystem                            Size  Used Avail Use% Mounted on
/dev/sda3                              11G  2.3G  7.9G  23% /
udev                                 1004M  164K 1004M   1% /dev
tmpfs                                1004M   32K 1004M   1% /dev/shm
/dev/sda1                             128M   38M   84M  31% /boot
/dev/mapper/core_vg-core              5.0G  139M  4.6G   3% /storage/core
/dev/mapper/log_vg-log                9.9G  381M  9.0G   4% /storage/log
/dev/mapper/db_vg-db                  9.9G  159M  9.2G   2% /storage/db
/dev/mapper/dblog_vg-dblog            7.8M  1.1M  6.3M  15% /storage/dblog
/dev/mapper/seat_vg-seat              7.8M  1.1M  6.3M  15% /storage/seat
/dev/mapper/netdump_vg-netdump        7.8M  1.1M  6.3M  15% /storage/netdump
/dev/mapper/autodeploy_vg-autodeploy  7.8M  1.1M  6.3M  15% /storage/autodeploy
/dev/mapper/invsvc_vg-invsvc          7.8M  1.1M  6.3M  15% /storage/invsvc

We can check the disk the /dev/mapper/log_vg-log volume is on using fdisk. We already know it is the 5th disk, so the identifier is ‘sde’:

v6-psc:/ # fdisk -l /dev/sde

Disk /dev/sde: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

The output shows that this matches the expected size of the disk. We can double check this by using the ‘pvdisplay’ command:

v6-psc:/ # pvdisplay /dev/sde
  --- Physical volume ---
  PV Name               /dev/sde
  VG Name               log_vg
  PV Size               10.00 GiB / not usable 7.00 MiB
  Allocatable           yes (but full)
  PE Size               8.00 MiB
  Total PE              1279
  Free PE               0
  Allocated PE          1279
  PV UUID               FI2Dyl-UwXS-Thro-kDaz-h5P0-cHA0-HJoV25

This shows we have a volume group called ‘log_vg’, created on /dev/sde. The system is currently showing the size of this physical volume to be 10GB. I’ve already changed the size of the disk to 15GB, so we need to issue a command to have the system rescan it’s disks:

v6-psc:/ # rescan-scsi-bus.sh -w --forcerescan
Syncing file systems
Scanning SCSI subsystem for new devices and remove devices that have disappeared
Scanning host 0 for  SCSI target IDs  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15, all LUNs
 Scanning for device 0 0 0 0 ...
OLD: Host: scsi0 Channel: 00 Id: 00 Lun: 00
      Vendor: VMware   Model: Virtual disk     Rev: 1.0
..........

‘rescan-scsi-bus.sh’ is a script found on linux distributions which allows you to scan for SCSI devices (or re-scan), without having to reboot the OS. With that done, running the fdisk command again, we can see that the disk is now 15GB:

v6-psc:/ # fdisk -l /dev/sde

Disk /dev/sde: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders, total 31457280 sectors
Units = sectors of 1 * 512 = 512 bytes

Next we need to extend the physical volume to make use of the extra capacity:

v6-psc:/ # pvresize /dev/sde
  Physical volume "/dev/sde" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

Checking the properties of the physical volume now, it is 15 GB:

v6-psc:/ # pvdisplay /dev/sde
  --- Physical volume ---
  PV Name               /dev/sde
  VG Name               log_vg
  PV Size               15.00 GiB / not usable 7.00 MiB
  Allocatable           yes

Finally, we need to extend the logical volume. We can check the logical volumes available using the lvdisplay command:

v6-psc:/ # lvdisplay
  --- Logical volume ---
  LV Name                /dev/log_vg/log
  VG Name                log_vg
  LV UUID                UfBZR7-KuZP-nuHj-wc1M-hGfg-K7SZ-WowreB
  LV Write Access        read/write
  LV Creation host, time localhost.localdom, 2016-05-05 10:03:54 +0000
  LV Status              available
  # open                 1
  LV Size                9.99 GiB
  Current LE             1279
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     1024
  Block device           253:6

To resize the logical volume, run:

v6-psc:/ # lvresize --resizefs -l +100%FREE /dev/mapper/log_vg-log
  Extending logical volume log to 14.99 GiB
  Logical volume log successfully resized
resize2fs 1.41.9 (22-Aug-2009)
Filesystem at /dev/mapper/log_vg-log is mounted on /storage/log; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/mapper/log_vg-log to 3930112 (4k) blocks.
The filesystem on /dev/mapper/log_vg-log is now 3930112 blocks long.

This command resizes the volume to use 100% of the available free space. Once done, the additional space should be available:

v6-psc:/ # df -h
Filesystem                            Size  Used Avail Use% Mounted on
/dev/sda3                              11G  2.3G  7.9G  23% /
udev                                 1004M  164K 1004M   1% /dev
tmpfs                                1004M   32K 1004M   1% /dev/shm
/dev/sda1                             128M   38M   84M  31% /boot
/dev/mapper/core_vg-core              5.0G  139M  4.6G   3% /storage/core
/dev/mapper/log_vg-log                 15G  384M   14G   3% /storage/log
/dev/mapper/db_vg-db                  9.9G  159M  9.2G   2% /storage/db
/dev/mapper/dblog_vg-dblog            7.8M  1.1M  6.3M  15% /storage/dblog
/dev/mapper/seat_vg-seat              7.8M  1.1M  6.3M  15% /storage/seat
/dev/mapper/netdump_vg-netdump        7.8M  1.1M  6.3M  15% /storage/netdump
/dev/mapper/autodeploy_vg-autodeploy  7.8M  1.1M  6.3M  15% /storage/autodeploy
/dev/mapper/invsvc_vg-invsvc          7.8M  1.1M  6.3M  15% /storage/invsvc

Note that whilst this process appears to work, I’m not sure that it’s a supported method – I haven’t seen a KB article that details this process and I haven’t used this in a production environment, just in my test lab. There is a KB article that discusses space issues for the /storage/log volume on an external PSC however, with details on how to alter some log rotation settings – so worth a look if you’re experiencing free space issues.

For more info on working with LVM in general, check out this tutorial.

Related posts

Mastering the Linux ifconfig Command

Docker Exec Command With Practical Examples

Debugging with Git Bisect

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Read More