Customizing the Logical Volume After Enlarging the SSD in CentOS (Cloud Server)

In this article, we'll show you how to customize the Logical Volume after increasing the size of your SSD in CentOS 7, CentOS Stream 8, and CentOS Stream 9.

On cloud servers, the Logical Volume Manager (LVM) is used to manage storage space. The Logical Volume Manager puts a logical layer between the file system and the partitions of the datastores in use. This makes it possible to create a file system that spans multiple partitions and/or disks. In this way, the storage space of several partitions or disks can be combined. In addition, the Logical Volume Manager gives you the option to increase a logical volume on the fly.

After you have increased the size of your cloud server's SSD, you must manually adjust the size of the Logical Volume.

Please Note

We recommend that you take a snapshot before manually adjusting the logical volume. You can use a snapshot to restore the captured state of your cloud server or virtual server. However, please note that snapshots are automatically deleted after three days.

For more information on how to create a snapshot, click here:

Creating a Snapshot

Requirements
  • You have restarted the server after enlarging the SSD.

  • You have logged in to the server as an administrator.

Preparation

  • Install the growpart program. To do this, enter the following command and then follow the instructions.
    [root@localhost ~]# yum install cloud-utils-growpart

  • To check the available space of the logical volume, enter the following command:
    [root@localhost ~]# df -h
    After entering the command, the following partitioning is displayed, for example:
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   78G  1.3G   77G   2% /
    devtmpfs                 899M     0  899M   0% /dev
    tmpfs                    910M     0  910M   0% /dev/shm
    tmpfs                    910M   18M  893M   2% /run
    tmpfs                    910M     0  910M   0% /sys/fs/cgroup
    /dev/sda1                509M  213M  296M  42% /boot
    tmpfs                    182M     0  182M   0% /run/user/0

  • Note the logical volume that is to be expanded. This is mounted under /. In the above example, the logical volume is /dev/mapper/centos-root.

  • To view the partitioning of the Logical Volume, type the command below. Then press Enter.
    [root@localhost ~]# fdisk -l
    After entering the command, the file system structure is displayed:
    [root@localhost ~]# fdisk -l

    Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 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 label type: dos
    Disk identifier: 0x000ccef8

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048     1050623      524288   83  Linux
    /dev/sda2         1050624   167772159    83360768   8e  Linux LVM

    Disk /dev/mapper/centos-root: 83.2 GB, 83181436928 bytes, 162463744 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 /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 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

    In this example, the partition sda2 is to be adjusted manually. Note the name of the partition for this purpose.

  • To determine the file system, enter the following command:
    [root@localhost ~]# df -Th | grep "^/dev"

    In the following example, the logical volume /dev/mapper/centos-root uses the xfs file system:
    [root@localhost ~]# df -Th | grep "^/dev"
    /dev/mapper/centos-root xfs        78G  1.7G   76G   3% /
    /dev/sda1               xfs       509M  207M  303M  41% /boot

Increasing the Size of the Partition with growpart

Use the following growpart command to grow the partition:

[root@localhost ~]# growpart /dev/device_name
Example:

[root@localhost ~]# growpart /dev/sda 2

Take note of the fact that there is a space between the device name and the partition number.

Increasing the Logical Volume Manually

  • To display detailed information about the physical volumes, enter the following command:
    [root@localhost ~]# pvdisplay
    After entering the command, the following information is displayed, for example:
    [root@localhost ~]# pvdisplay
      --- Physical volume ---
      PV Name               /dev/sda2
      VG Name               centos
      PV Size               <79.50 GiB / not usable 30.00 MiB
      Allocatable           yes (but full)
      PE Size               32.00 MiB
      Total PE              2543
      Free PE               0
      Allocated PE          2543
      PV UUID               6FKWEG-OnkG-QxZt-m7TB-wiDb-K9P6-I403lP

  • To resize the physical volume, enter the following command:
    [root@localhost ~]# pvresize /dev/sda2
    After entering the command, the following information is displayed:
    [root@localhost ~]# pvresize /dev/sda2
      Physical volume "/dev/sda2" changed
      1 physical volume(s) resized or updated / 0 physical volume(s) not resize

  • To check the status of the logical volumes, type the following command:
    [root@localhost ~]# lvdisplay
      --- Logical volume ---
      LV Path                /dev/centos/swap
      LV Name                swap
      VG Name                centos
      LV UUID                ZghzAz-F7hG-Kxsn-OEdM-idwf-HPmJ-esaD8s
      LV Write Access        read/write
      LV Creation host, time localhost, 2019-03-18 19:48:34 +0000
      LV Status              available
      # open                 2
      LV Size                2.00 GiB
      Current LE             64
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:1

      --- Logical volume ---
      LV Path                /dev/centos/root
      LV Name                root
      VG Name                centos
      LV UUID                1ajYhy-gUdt-KUG4-9MaO-8ayT-g7Yi-Q3lGg1
      LV Write Access        read/write
      LV Creation host, time localhost, 2019-03-18 19:48:34 +0000
      LV Status              available
      # open                 1
      LV Size                <77.47 GiB
      Current LE             2479
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:0

  • Note the path of the logical volume you want to expand. In this example, the path is /dev/centos/root.

  • To increase the size of the logical volume with the lvresize program, type the lvresize command in the following format:
    [root@localhost ~]# lvresize -l +100%FREE [PATH OF LOGICAL VOLUME]
    Example:
    [root@localhost ~]# lvresize -l+100%FREE /dev/centos/root
      Size of logical volume centos/root changed from <77.47 GiB (2479 extents) to <97.47 GiB (3119 extents).
      Logical volume centos/root successfully resized

  • Resize the file system to use the new space. To use xfs_growfs to resize the file system to the new size, type the xfs_growfs command in the following format:
    [root@localhost ~]# xfs_growfs [PATH OF LOGICAL VOLUME]
    Example:
    [root@localhost ~]# xfs_growfs /dev/centos/root
    meta-data=/dev/mapper/centos-root isize=512    agcount=42, agsize=489472 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0 spinodes=0
    data     =                       bsize=4096   blocks=20307968, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal               bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    data blocks changed from 20307968 to 25550848

    If the partition uses the ext4 file system, enter the following command to resize it to the new size:
    [root@localhost ~]# resize2fs [PATH OF LOGICAL VOLUME]
    Example:
    [root@localhost ~]# resize2fs /dev/centos/root

  • To check if the file system has been adjusted, enter the following command:
    [root@localhost ~]# df -h