LVM¶
Inspect storage¶
Show block devices and filesystems¶
List physical volumes¶
List volume groups¶
List logical volumes, devices, and tags¶
Physical volumes¶
Create a physical volume¶
The device must not contain data that needs to be retained.
Resize a physical volume after enlarging its device¶
Volume groups¶
Create a volume group¶
Add a physical volume to a volume group¶
Rename a volume group¶
Logical volumes¶
Create a logical volume with a fixed size¶
For example, use a size such as 20G or 500M.
Create a logical volume using all free space¶
Create a striped logical volume¶
Specify one physical volume for each stripe.
sudo lvcreate --stripes {{number_of_stripes}} --size {{size, e.g. 20G}} --name {{logical_volume_name}} {{volume_group_name}} {{path/to/physical_volume_1}} {{path/to/physical_volume_2}}
Rename a logical volume¶
Add or remove a tag¶
sudo lvchange --addtag {{tag_name}} {{volume_group_name}}/{{logical_volume_name}}
sudo lvchange --deltag {{tag_name}} {{volume_group_name}}/{{logical_volume_name}}
Activate or deactivate a logical volume¶
Unmount the filesystem before deactivating its logical volume.
sudo lvchange --activate y {{volume_group_name}}/{{logical_volume_name}}
sudo lvchange --activate n {{volume_group_name}}/{{logical_volume_name}}
Filesystems¶
Create and mount an ext4 filesystem¶
sudo mkfs.ext4 /dev/{{volume_group_name}}/{{logical_volume_name}}
sudo mkdir -p {{path/to/mount_point}}
sudo mount /dev/{{volume_group_name}}/{{logical_volume_name}} {{path/to/mount_point}}
Extend a logical volume and its filesystem¶
Add a fixed amount:
sudo lvextend --resizefs --size +{{amount_to_add, e.g. 10G}} /dev/{{volume_group_name}}/{{logical_volume_name}}
Use all remaining free space in the volume group:
Reduce an ext4 logical volume and filesystem¶
Back up the filesystem first. Reducing a logical volume incorrectly can destroy data. XFS filesystems cannot be shrunk.
sudo umount /dev/{{volume_group_name}}/{{logical_volume_name}}
sudo e2fsck -f /dev/{{volume_group_name}}/{{logical_volume_name}}
sudo resize2fs /dev/{{volume_group_name}}/{{logical_volume_name}} {{new_size, e.g. 20G}}
sudo lvreduce --size {{new_size, e.g. 20G}} /dev/{{volume_group_name}}/{{logical_volume_name}}
sudo mount /dev/{{volume_group_name}}/{{logical_volume_name}} {{path/to/mount_point}}
Move data between physical volumes¶
Move all allocated extents¶
Both physical volumes must belong to the same volume group.
Move one logical volume¶
sudo pvmove --name {{volume_group_name}}/{{logical_volume_name}} {{path/to/source_physical_volume}} {{path/to/destination_physical_volume}}
Remove an unused physical volume from a volume group¶
Confirm that pvs reports no allocated extents on the device before removing it.
sudo vgreduce {{volume_group_name}} {{path/to/physical_volume}}
sudo pvremove {{path/to/physical_volume}}
Snapshots¶
Create a snapshot¶
Snapshot space must accommodate changes made to the origin while the snapshot exists.
sudo lvcreate --snapshot --size {{snapshot_size, e.g. 10G}} --name {{snapshot_name}} /dev/{{volume_group_name}}/{{origin_logical_volume_name}}
Restore a snapshot¶
Merging discards changes made to the origin after the snapshot was created. If the origin is active, the merge completes on its next activation.
Remove a snapshot¶
RAID¶
Create a RAID 1 logical volume¶
sudo lvcreate --type raid1 --mirrors 1 --size {{size, e.g. 20G}} --name {{logical_volume_name}} {{volume_group_name}} {{path/to/physical_volume_1}} {{path/to/physical_volume_2}}
Convert an existing logical volume to RAID 1¶
Check RAID health¶
Remove LVM storage¶
These commands permanently destroy the logical volume and its data.