Debian 12 bookworm
Sponsored Link

Manage Logical Volumes2023/07/18

 
This is the basic operation of managing Logical Volumes.
It needs to create Volume Group first.
[1] Create Logical Volume.
# create logical volume [lv_data] in volume group [vg_dlp] with 30G

root@dlp:~#
lvcreate -L 30G -n lv_data vg_dlp

  Logical volume "lv_data" created.

# specify like follows if you use all free area

root@dlp:~#
lvcreate -l 100%FREE -n lv_data vg_dlp

  Logical volume "lv_data" created
[2] Display Logical Volumes.
root@dlp:~#
lvdisplay /dev/vg_dlp/lv_data

  --- Logical volume ---
  LV Path                /dev/vg_dlp/lv_data
  LV Name                lv_data
  VG Name                vg_dlp
  LV UUID                9yHHMf-mzcp-yEl0-4Mk5-GZIQ-oPty-EY5SIJ
  LV Write Access        read/write
  LV Creation host, time dlp.srv.world, 2023-07-17 20:04:08 -0500
  LV Status              available
  # open                 0
  LV Size                30.00 GiB
  Current LE             7680
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
[3] Rename Logical Volume.
# rename from lv_data to lv_storage

root@dlp:~#
lvrename vg_dlp lv_data lv_storage

  Renamed "lv_data" to "lv_storage" in volume group "vg_dlp"
root@dlp:~#
lvdisplay /dev/vg_dlp/lv_storage

  --- Logical volume ---
  LV Path                /dev/vg_dlp/lv_storage
  LV Name                lv_storage
  VG Name                vg_dlp
  LV UUID                9yHHMf-mzcp-yEl0-4Mk5-GZIQ-oPty-EY5SIJ
  LV Write Access        read/write
  LV Creation host, time dlp.srv.world, 2023-07-17 20:04:08 -0500
  LV Status              available
  # open                 0
  LV Size                30.00 GiB
  Current LE             7680
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
[4] Display reports of Logical Volumes.
root@dlp:~#
lvs

  LV         VG        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root       debian-vg -wi-ao----  78.56g
  swap_1     debian-vg -wi-ao---- 980.00m
  lv_storage vg_dlp    -wi-a-----  30.00g
[5] Scan Logical Volumes.
root@dlp:~#
lvscan

  ACTIVE            '/dev/vg_dlp/lv_storage' [30.00 GiB] inherit
  ACTIVE            '/dev/debian-vg/root' [78.56 GiB] inherit
  ACTIVE            '/dev/debian-vg/swap_1' [980.00 MiB] inherit
[6] Take snapshot of Logical Volume.
# create snapshot "snap-lv_storage" from "lv_storage"

root@dlp:~#
lvcreate -s -L 30G -n snap-lv_storage /dev/vg_dlp/lv_storage

  Logical volume "snap-lv_storage" created.
root@dlp:~#
lvdisplay /dev/vg_dlp/lv_storage /dev/vg_dlp/snap-lv_storage

  --- Logical volume ---
  LV Path                /dev/vg_dlp/lv_storage
  LV Name                lv_storage
  VG Name                vg_dlp
  LV UUID                9yHHMf-mzcp-yEl0-4Mk5-GZIQ-oPty-EY5SIJ
  LV Write Access        read/write
  LV Creation host, time dlp.srv.world, 2023-07-17 20:04:08 -0500
  LV snapshot status     source of
                         snap-lv_storage [active]
  LV Status              available
  # open                 0
  LV Size                30.00 GiB
  Current LE             7680
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

  --- Logical volume ---
  LV Path                /dev/vg_dlp/snap-lv_storage
  LV Name                snap-lv_storage
  VG Name                vg_dlp
  LV UUID                PYeL3q-u6r3-HaCE-CTao-Cx5n-8c7T-K5F3D6
  LV Write Access        read/write
  LV Creation host, time dlp.srv.world, 2023-07-17 20:09:10 -0500
  LV snapshot status     active destination for lv_storage
  LV Status              available
  # open                 0
  LV Size                30.00 GiB
  Current LE             7680
  COW-table size         30.00 GiB
  COW-table LE           7680
  Allocated to snapshot  0.00%
  Snapshot chunk size    4.00 KiB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:5
[7] Extend Logical Volume.
It's possible to do with mounted.
root@dlp:~#
lvextend -L 70G /dev/vg_dlp/lv_storage

  Size of logical volume vg_dlp/lv_storage changed from 30.00 GiB (7680 extents) to 70.00 GiB (17920 extents).
  Logical volume vg_dlp/lv_storage successfully resized.
root@dlp:~#
lvdisplay /dev/vg_dlp/lv_storage

  --- Logical volume ---
  LV Path                /dev/vg_dlp/lv_storage
  LV Name                lv_storage
  VG Name                vg_dlp
  LV UUID                9yHHMf-mzcp-yEl0-4Mk5-GZIQ-oPty-EY5SIJ
  LV Write Access        read/write
  LV Creation host, time dlp.srv.world, 2023-07-17 20:04:08 -0500
  LV Status              available
  # open                 0
  LV Size                70.00 GiB
  Current LE             17920
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

# for the case of extending ext4 filesystem

root@dlp:~#
resize2fs /dev/vg_dlp/lv_storage

resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/vg_dlp/lv_storage is mounted on /mnt; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 9
The filesystem on /dev/vg_dlp/lv_storage is now 18350080 (4k) blocks long.
[8] Reduce Logical Volume.
Unmount target device first.
It's impossible to reduce xfs filesystem.
# for ext4, check it first

root@dlp:~#
e2fsck -f /dev/vg_dlp/lv_storage

e2fsck 1.47.0 (5-Feb-2023)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg_dlp/lv_storage: 11/4587520 files (0.0% non-contiguous), 432360/18350080 blocks

# for ext4, reduce filesystem

root@dlp:~#
resize2fs /dev/vg_dlp/lv_storage 50G

resize2fs 1.47.0 (5-Feb-2023)
Resizing the filesystem on /dev/vg_dlp/lv_storage to 13107200 (4k) blocks.
The filesystem on /dev/vg_dlp/lv_storage is now 13107200 (4k) blocks long.

# reduce logical volume at last

root@dlp:~#
lvreduce -L 50G /dev/vg_dlp/lv_storage

  WARNING: Reducing active logical volume to 50.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg_dlp/lv_storage? [y/n]: y
  Size of logical volume vg_dlp/lv_storage changed from 70.00 GiB (17920 extents) to 50.00 GiB (12800 extents).
  Logical volume vg_dlp/lv_storage successfully resized.
[9] Delete Logical Volume.
unmount ⇒ stop logical volume ⇒ delete logical volume
root@dlp:~#
lvchange -an /dev/vg_dlp/lv_storage

root@dlp:~#
lvremove /dev/vg_dlp/lv_storage

Do you really want to remove and DISCARD logical volume vg_dlp/lv_storage? [y/n]: y
  Logical volume "lv_storage" successfully removed
Matched Content