Jump to content

LVM: Difference between revisions

From 太極
Brb (talk | contribs)
No edit summary
Brb (talk | contribs)
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Resource =
* [https://en.wikipedia.org/wiki/Logical_Volume_Manager_%28Linux%29 Logical Volume Manager (Linux)]
* LVM (Logical Volume Manager) is not a filesystem; it is a '''volume manager''' that provides '''logical volume management''' for the Linux kernel. It allows users to create, resize, and manage logical volumes, which are essentially virtual storage structures that can be formatted and used like regular filesystems (e.g., ext4 or XFS).
* [https://linuxhint.com/whatis_logical_volume_management/ Benefits of LVM]
* [https://i.pinimg.com/originals/3c/bb/33/3cbb339e0b3a8c71c80662598a63f877.png A layout illustration]
* [http://www.linuxjournal.com/content/lvm-demystified LVM Demystified]
* [http://www.linuxjournal.com/content/lvm-demystified LVM Demystified]
* [https://www.itzgeek.com/post/how-to-install-ubuntu-20-04-lts/ How To Install Ubuntu 20.04 LTS (Focal Fossa) On UEFI and Legacy BIOS System]
* [https://www.itzgeek.com/post/how-to-install-ubuntu-20-04-lts/ How To Install Ubuntu 20.04 LTS (Focal Fossa) On UEFI and Legacy BIOS System]
* [https://www.howtogeek.com/howto/40702/how-to-manage-and-use-lvm-logical-volume-management-in-ubuntu/ How to Manage and Use LVM (Logical Volume Management) in Ubuntu]
* [https://www.howtogeek.com/howto/40702/how-to-manage-and-use-lvm-logical-volume-management-in-ubuntu/ How to Manage and Use LVM (Logical Volume Management) in Ubuntu]
** [https://www.howtogeek.com/211937/how-to-use-lvm-on-ubuntu-for-easy-partition-resizing-and-snapshots/ How to Use LVM on Ubuntu for Easy Partition Resizing and Snapshots]
* [https://manjaro.site/how-to-extend-lvm-disk-on-ubuntu-20-04/ How to Extend LVM Disk on Ubuntu 20.04]
* [https://manjaro.site/how-to-extend-lvm-disk-on-ubuntu-20-04/ How to Extend LVM Disk on Ubuntu 20.04]
* [https://www.2daygeek.com/extend-increase-resize-lvm-logical-volume-in-linux/ How to Extend/Increase LVM’s (Logical Volume Resize) in Linux]
* [https://www.2daygeek.com/extend-increase-resize-lvm-logical-volume-in-linux/ How to Extend/Increase LVM’s (Logical Volume Resize) in Linux], [https://ostechnix.com/resize-lvm-partitions-linux/ How To Resize LVM Partitions In Linux]
* [https://www.answertopia.com/ubuntu/adding-a-new-disk-to-an-ubuntu-volume-group-and-logical-volume/ Adding a New Disk to an Ubuntu 20.04 Volume Group and Logical Volume]
* [https://www.answertopia.com/ubuntu/adding-a-new-disk-to-an-ubuntu-volume-group-and-logical-volume/ Adding a New Disk to an Ubuntu 20.04 Volume Group and Logical Volume]
* [https://www.makeuseof.com/how-to-set-up-flexible-file-system-storage-with-lvm-in-linux/ How to Set Up Flexible File System Storage With LVM in Linux]
* [https://www.makeuseof.com/how-to-set-up-flexible-file-system-storage-with-lvm-in-linux/ How to Set Up Flexible File System Storage With LVM in Linux]
* [https://www.tecmint.com/manage-and-create-lvm-parition-using-vgcreate-lvcreate-and-lvextend/ LFCS: How to Manage and Create LVM Using vgcreate, lvcreate and lvextend Commands – Part 11]
* [https://www.digitalocean.com/community/tutorials/an-introduction-to-lvm-concepts-terminology-and-operations An Introduction to LVM Concepts, Terminology, and Operations]
== Check if LVM is in use ==
<syntaxhighlight lang='sh'>
lsblk -f
</syntaxhighlight>
Look under the FSTYPE column — if you see '''LVM2_member''', it means the partition is part of an LVM volume group.
== Cheatsheet ==
* [https://www.howtogeek.com/howto/40702/how-to-manage-and-use-lvm-logical-volume-management-in-ubuntu/ Downloadable LVM Cheat Sheet]
* [http://www.datadisk.org.uk/html_docs/redhat/rh_lvm.htm datadisk.org.uk]
* [https://www.privex.io/articles/linux-lvm-cheatsheet/#show-physical-volumes privex.io]
== Naming convention ==
* /dev/vg_<hostname>_<type><number>/lv_<filesystem>. See [https://listman.redhat.com/archives/linux-lvm/2011-April/msg00061.html this]
* /dev/vg_`hostname -s`_[0-9][0-9]/lv_{foo|bar}. See [https://linux-lvm.redhat.narkive.com/r5sJR3R6/lvm-naming-convention this].
= Creation =
<ul>
<li>[https://www.smarthomebeginner.com/setup-lvm-pool-hard-drive-ubuntu/ Setup LVM and pool hard drives in Ubuntu or Kodibuntu]
<syntaxhighlight lang='bash'>
# Step 1 Find your drive names
lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
NAME        FSTYPE        SIZE MOUNTPOINT  LABEL
sda                      223.6G             
├─sda1                    1007K             
├─sda2      vfat          512M /boot/efi   
└─sda3      LVM2_member 223.1G             
  ├─pve-swap swap            8G [SWAP]     
  └─pve-root ext4        215.1G /           
nvme0n1                  465.8G             
└─nvme0n1p1  ext4        465.8G /mnt/pve/vm1
# Step 2 Format your drives
fdisk /dev/sdX
# Step 3 Create physical volume
pvcreate /dev/sd[bcd]
pvdisplay
# Step 4 Adding the VG (Volume Group) to the LVM
vgcreate {VG_NAME} /dev/sd[bcd]
vgdisplay
# Step 5 Adding the LV (Logical Volume) to the LVM VG (Volume Group)
lvcreate -l 100%FREE -n {LV_NAME} {VG_NAME}
lvdisplay
# Step 6 FORMATTING OUR NEW LVM LV (LOGICAL VOLUME)
mkfs.ext4 {LV_PATH}
# Step 7 MOUNT LVM LV (LOGICAL VOLUME) ON BOOT
blkid
# Grab the UUID of your storage space,
# it will be after the /dev/mapper/{VG_NAME}-{LV_NAME}
nano /etc/fstab
mount -a
# Step 8 ENABLE SMART DRIVE MONITORING
nano /etc/defaults/smartmontools
nano /etc/smartd.conf
</syntaxhighlight>
</li>
<li>
'''LVM Layout''' & [https://manjaro.site/arch-linux-tutorial-configure-lvm-arch-linux-2017/ Arch Linux Tutorial – Configure LVM on Arch Linux 2017]
<syntaxhighlight lang='bash'>
# Step 0 See available physical disks
fdisk
# Step 1 Create new Physical Volume
pvcreate /dev/vdb
pvcreate /dev/vdc
pvdisplay
# Step 2 Create new Volume Group (VG)
vgcreate archVG /dev/vdb /dev/vdc
vgdisplay
# Step 3 Logical Volume
lvcreate -L 5G archVG -n archLV01
lvcreate -L 15G archVG -n archLV02
lvdisplay
lsblk
# Step 4 Format the new volume
mkfs.ext4 /dev/mapper/archVG-archLV01
# Step 5 Mount
mount /dev/mapper/archVG-archLV01 /mnt
</syntaxhighlight>
</li>
<li>[https://manjaro.site/how-to-extend-lvm-disk-on-ubuntu-20-04/ How to Extend LVM Disk on Ubuntu 20.04]
<syntaxhighlight lang='bash'>
# Step 1. Check the file system list
sudo df -h /home/
# Step 2. Check the Physical Volume (pv)
sudo pvs
sudo vgdisplay
sudo lvdisplay
# Step 3. Create a New Physical Volume
sudo fdisk -l
sudo lvmdiskscan
sudo pvcreate /dev/sdb
sudo lvmdiskscan -l
# Step 4. Add the new Physical Volume (pv) to Existing Logical Volume (lv)
sudo vgextend ubuntu-vg /dev/sdb
sudo lvm lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
sudo resize2fs -p /dev/mapper/ubuntu--vg-ubuntu--lv
sudo df -h
</syntaxhighlight>
</li>
</ul>
== Add new disk ==
<ul>
<li>[https://manjaro.site/add-new-disk-existing-volume-group/ How to add new disk to existing Volume Group] '''vgextend'''
<syntaxhighlight lang='bash'>
# Step 1 Create Physical Volume
pvcreate /dev/vdc
# Step 2 Add Physical Volume to Existing Volume Group
vgdisplay
vgextend manjaro_lvm /dev/vdc
vgdisplay
</syntaxhighlight>
</li>
<li>[https://www.suse.com/support/kb/doc/?id=000018068 Adding a New Disk Into an Existing Logical Volume]. '''lvextend'''
<syntaxhighlight lang='bash'>
umount /dev/serverdata/data
fdisk -l
pvcreate /dev/sdb
vgextend serverdata /dev/sdb
vgdisplay serverdata
lvextend -l +100%FREE /dev/serverdata/data
# OR something like
# lvextend -L+25G /dev/serverdata/data
lvdisplay serverdata
e2fsck -f /dev/serverdata/data # optional
resize2fs /dev/serverdata/data
e2fsck -f /dev/serverdata/data # optional
</syntaxhighlight>
</li>
</ul>
= Delete =
<ul>
<li>[https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/logical_volume_manager_administration/pv_remove 5.2.5. REMOVING PHYSICAL VOLUMES] from RedHat </li>
<li>[https://www.cyberithub.com/delete-volume-group-lvm-in-linux/ How to Delete Volume Group(LVM) in Linux Using 5 Easy Steps]
<syntaxhighlight lang='sh'>
# 1. Check mounted Logical Volume using df command
df -h
# 2. Unmount the Volume using umount command
umount /u01
# 3. Disable Logical Volume using lvchange command
lvchange -an /dev/vol_grp/log_grp1
lvscan
# 4. Delete Logical Volume using lvremove command
lvremove /dev/vol_grp/log_grp1
lvscan
# 5. Delete Volume Group using vgremove command
vgremove vol_grp
vgscan
# 6. Delete physical volumes using pvremove command
pvremove /dev/sdb
pvremove /dev/sda4
</syntaxhighlight>
</li>
<li>[https://www.2daygeek.com/linux-remove-delete-physical-volume-pv-from-volume-group-vg-in-lvm How to Remove Physical Volume from a Volume Group in LVM] </li>
<li>[https://www.looklinux.com/how-to-remove-volume-group-and-physical-volume-on-lvm/ How to Remove Volume Group and Physical Volume on LVM] </li>
<li>[https://faun.pub/linux-quick-tip-how-to-delete-or-remove-lvm-volumes-7df4447102af Linux Quick Tip: How to Delete or Remove LVM volumes] </li>
<li>[https://linuxconfig.org/using-lvm-to-manage-physical-volumes-volume-groups-and-logical-volumes-rhcsa-objective-preparation Using LVM to manage physical volumes, volume groups, and logical volumes] – RHCSA Objective Preparation </li>
</ul>
= Move =
[https://ostechnix.com/move-lvm-volume-group-to-another-machine/ How To Move LVM Volume Group To Another Machine In Linux]
= Snapshot =
* [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/logical_volume_manager_administration/snapshot_command 5.4.5. CREATING SNAPSHOT VOLUMES] from RedHat
* [https://www.tecmint.com/take-snapshot-of-logical-volume-and-restore-in-lvm/ How to Take ‘Snapshot of Logical Volume and Restore’ in LVM – Part III]
** lvcreate
** lvconvert
* [https://tuxfixer.com/backup-and-restore-logical-volume-using-lvm-snapshot/ Backup and Restore Logical Volume using LVM Snapshot]
* [https://linuxconfig.org/create-and-restore-manual-logical-volume-snapshots LVM backup and restore snapshot in Linux]
* [https://www.bleepingcomputer.com/news/linux/kali-linux-adds-vm-like-snapshot-feature-to-bare-metal-installs/ Kali Linux adds VM-like snapshot feature to bare-metal installs]
= Raspberry Pi =
* [https://raspberrypi.stackexchange.com/questions/85958/easy-backups-and-snapshots-of-a-running-system-with-lvm Easy backups and snapshots of a running system with LVM]

Latest revision as of 10:15, 27 February 2026

Resource

Check if LVM is in use

lsblk -f

Look under the FSTYPE column — if you see LVM2_member, it means the partition is part of an LVM volume group.

Cheatsheet

Naming convention

  • /dev/vg_<hostname>_<type><number>/lv_<filesystem>. See this
  • /dev/vg_`hostname -s`_[0-9][0-9]/lv_{foo|bar}. See this.

Creation

  • Setup LVM and pool hard drives in Ubuntu or Kodibuntu
    # Step 1 Find your drive names
    lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
    
    NAME         FSTYPE        SIZE MOUNTPOINT   LABEL
    sda                      223.6G              
    ├─sda1                    1007K              
    ├─sda2       vfat          512M /boot/efi    
    └─sda3       LVM2_member 223.1G              
      ├─pve-swap swap            8G [SWAP]       
      └─pve-root ext4        215.1G /            
    nvme0n1                  465.8G              
    └─nvme0n1p1  ext4        465.8G /mnt/pve/vm1 
    
    # Step 2 Format your drives
    fdisk /dev/sdX
    
    # Step 3 Create physical volume
    pvcreate /dev/sd[bcd]
    pvdisplay
    
    # Step 4 Adding the VG (Volume Group) to the LVM
    vgcreate {VG_NAME} /dev/sd[bcd]
    vgdisplay
    
    # Step 5 Adding the LV (Logical Volume) to the LVM VG (Volume Group)
    lvcreate -l 100%FREE -n {LV_NAME} {VG_NAME}
    lvdisplay
    
    # Step 6 FORMATTING OUR NEW LVM LV (LOGICAL VOLUME)
    mkfs.ext4 {LV_PATH}
    
    # Step 7 MOUNT LVM LV (LOGICAL VOLUME) ON BOOT
    blkid
    # Grab the UUID of your storage space, 
    # it will be after the /dev/mapper/{VG_NAME}-{LV_NAME}
    nano /etc/fstab
    mount -a
    
    # Step 8 ENABLE SMART DRIVE MONITORING
    nano /etc/defaults/smartmontools
    nano /etc/smartd.conf
  • LVM Layout & Arch Linux Tutorial – Configure LVM on Arch Linux 2017
    # Step 0 See available physical disks
    fdisk
    
    # Step 1 Create new Physical Volume
    pvcreate /dev/vdb
    pvcreate /dev/vdc
    pvdisplay 
    
    # Step 2 Create new Volume Group (VG)
    vgcreate archVG /dev/vdb /dev/vdc
    vgdisplay
    
    # Step 3 Logical Volume
    lvcreate -L 5G archVG -n archLV01
    lvcreate -L 15G archVG -n archLV02
    lvdisplay
    lsblk 
    
    # Step 4 Format the new volume
    mkfs.ext4 /dev/mapper/archVG-archLV01
    
    # Step 5 Mount
    mount /dev/mapper/archVG-archLV01 /mnt
  • How to Extend LVM Disk on Ubuntu 20.04
    # Step 1. Check the file system list
    sudo df -h /home/
    
    # Step 2. Check the Physical Volume (pv)
    sudo pvs
    sudo vgdisplay
    sudo lvdisplay
    
    # Step 3. Create a New Physical Volume
    sudo fdisk -l
    sudo lvmdiskscan
    sudo pvcreate /dev/sdb
    sudo lvmdiskscan -l
    
    # Step 4. Add the new Physical Volume (pv) to Existing Logical Volume (lv)
    sudo vgextend ubuntu-vg /dev/sdb
    sudo lvm lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
    
    sudo resize2fs -p /dev/mapper/ubuntu--vg-ubuntu--lv
    sudo df -h

Add new disk

  • How to add new disk to existing Volume Group vgextend
    # Step 1 Create Physical Volume
    pvcreate /dev/vdc
    
    # Step 2 Add Physical Volume to Existing Volume Group
    vgdisplay
    vgextend manjaro_lvm /dev/vdc
    vgdisplay
  • Adding a New Disk Into an Existing Logical Volume. lvextend
    umount /dev/serverdata/data
    fdisk -l
    pvcreate /dev/sdb
    vgextend serverdata /dev/sdb
    vgdisplay serverdata 
    
    lvextend -l +100%FREE /dev/serverdata/data
    # OR something like 
    # lvextend -L+25G /dev/serverdata/data
    lvdisplay serverdata
    
    e2fsck -f /dev/serverdata/data # optional
    resize2fs /dev/serverdata/data
    e2fsck -f /dev/serverdata/data # optional

Delete

Move

How To Move LVM Volume Group To Another Machine In Linux

Snapshot

Raspberry Pi