Difference between revisions of "Logical Volume Management (LVM)"

From RHS Wiki
Jump to navigation Jump to search
Tag: visualeditor
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
https://www.howtoforge.com/linux_lvm
 
https://www.howtoforge.com/linux_lvm
= Creating LVMs =
+
=Creating LVMs=
* Partition disks as Linux LVM with fdisk
+
 
* Prepare new partitions for LVM Example:
+
*Partition disks as Linux LVM with fdisk
 +
*Prepare new partitions for LVM Example:
 +
 
 
  pvcreate /dev/sdb1 /dev/sdc1 /dev/sde1  # pvremove /dev/sdb1 /dev/sdc1 /dev/sde1 to revert
 
  pvcreate /dev/sdb1 /dev/sdc1 /dev/sde1  # pvremove /dev/sdb1 /dev/sdc1 /dev/sde1 to revert
 
  pvdisplay                              # to show Physycal volumenes
 
  pvdisplay                              # to show Physycal volumenes
* Create a volume group example 'pilaf':
+
 
 +
*Create a volume group example 'pilaf':
 +
 
 
   vgcreate pilaf /dev/sdg1 /dev/sdf1  # vgremove pilaf to delete
 
   vgcreate pilaf /dev/sdg1 /dev/sdf1  # vgremove pilaf to delete
* Check existing Volume Groups
+
 
 +
*Check existing Volume Groups
 +
 
 
  vgdisplay
 
  vgdisplay
 
  vgscan
 
  vgscan
* Create logical volumes in volume group
+
 
 +
*Create logical volumes in volume group
 +
 
 
  lvcreate --name pilaf_copy --size 4T pilaf
 
  lvcreate --name pilaf_copy --size 4T pilaf
 
  lvcreate --name pilaf_converter --size 4T pilaf
 
  lvcreate --name pilaf_converter --size 4T pilaf
* Check existing logical volumes with:
+
 
 +
*Check existing logical volumes with:
 +
 
 
  lvdisplay / lvscan
 
  lvdisplay / lvscan
* Rename logical volumes with
+
 
 +
*Rename logical volumes with
 +
 
 
  lvrename {volume_group} {old_name} {new_name}  | example: lvrename pilaf pilaf_copy pilaf_raw
 
  lvrename {volume_group} {old_name} {new_name}  | example: lvrename pilaf pilaf_copy pilaf_raw
* Enlarge/reduce Logical volume with:
+
 
 +
*Enlarge/reduce Logical volume with:
 +
 
 
  lvextend -L4.5T /dev/pilaf/pilaf_raw
 
  lvextend -L4.5T /dev/pilaf/pilaf_raw
 
  lvreduce -L4T /dev/pilaf/pilaf_raw
 
  lvreduce -L4T /dev/pilaf/pilaf_raw
* Create the filesystems
+
 
 +
*Create the filesystems
 +
 
 
  mkfs.ext4 /dev/pilaf/pilaf_raw
 
  mkfs.ext4 /dev/pilaf/pilaf_raw
 
  mkfs.ext4 /dev/pilaf/pilaf_converter
 
  mkfs.ext4 /dev/pilaf/pilaf_converter
* Add /etc/fstab entries
+
 
 +
*Add /etc/fstab entries
 +
 
 
  /dev/pilaf/pilaf_raw          /Pilaf              ext4        rw,noatime    0 0
 
  /dev/pilaf/pilaf_raw          /Pilaf              ext4        rw,noatime    0 0
 
  /dev/pilaf/pilaf_converter    /PilafConverter      ext4        rw,noatime    0 0
 
  /dev/pilaf/pilaf_converter    /PilafConverter      ext4        rw,noatime    0 0
  
= Resize LVM Logical Volumes & Filesystems =
+
=Resize LVM Logical Volumes & Filesystems=
== Enlarge ==
+
==Enlarge==
* Unmount the Logical Volume
+
 
 +
*Unmount the Logical Volume
 +
 
 
  /umount /PilafConverter
 
  /umount /PilafConverter
* Extend the Logical Volume
+
 
 +
*Extend the Logical Volume
 +
 
 
  lvextend -L 4.5T /dev/pilaf/pilaf_converter
 
  lvextend -L 4.5T /dev/pilaf/pilaf_converter
* Extend the filesystem
+
 
 +
*Extend the filesystem
 +
 
 
  e2fsck -f /dev/pilaf/pilaf_converter
 
  e2fsck -f /dev/pilaf/pilaf_converter
 
  resize2fs /dev/pilaf/pilaf_converter
 
  resize2fs /dev/pilaf/pilaf_converter
* Mount again
+
 
 +
*Mount again
 +
 
 
  mount /dev/pilaf/pilaf_converter /PilafConverter
 
  mount /dev/pilaf/pilaf_converter /PilafConverter
== Shrink ==
+
==Shrink==
* Unmount the Logical Volume
+
 
 +
*Unmount the Logical Volume
 +
 
 
  /umount /PilafConverter
 
  /umount /PilafConverter
* Shrink (Requires a number of blocks)
+
 
 +
*Shrink (Requires a number of blocks)
 +
 
 
  e2fsck -f /dev/pilaf/pilaf_converter  # to figure out the blocks we want to keep
 
  e2fsck -f /dev/pilaf/pilaf_converter  # to figure out the blocks we want to keep
 
  resize2fs /dev/pilaf/pilaf_converter 104857600
 
  resize2fs /dev/pilaf/pilaf_converter 104857600
 
  lvreduce -L40G /dev/pilaf/pilaf_converter
 
  lvreduce -L40G /dev/pilaf/pilaf_converter
* Mount again
+
 
 +
*Mount again
 +
 
 
  mount /dev/pilaf/pilaf_converter /PilafConverter
 
  mount /dev/pilaf/pilaf_converter /PilafConverter
  
= Add/Remove Hard Drives =
+
=Add/Remove Hard Drives=
== Add ==
+
==Add==
* Format the new HD with fdisk (Linux LVM)
+
 
 +
*Format the new HD with fdisk (Linux LVM)
 +
 
 
  fdisk /dev/sdX (n (new)--> p (primary)--> 1 (default sdX1)--> t --> Linux LVM (8e|30) --> w)
 
  fdisk /dev/sdX (n (new)--> p (primary)--> 1 (default sdX1)--> t --> Linux LVM (8e|30) --> w)
* Prepare  
+
 
 +
*Prepare
 +
 
 
  pvcreate /dev/sdX1
 
  pvcreate /dev/sdX1
* Extend Volume Group
+
 
 +
*Extend Volume Group
 +
 
 
  vgextend fileserver /dev/sdX1
 
  vgextend fileserver /dev/sdX1
* Check  
+
 
 +
*Check
 +
 
 
  vgdisplay
 
  vgdisplay
== Remove ==
+
==Remove==
* Move data to some other disk
+
 
 +
*Move data to some other disk
 +
 
 
  pvmove /dev/sdb1 /dev/sdf1
 
  pvmove /dev/sdb1 /dev/sdf1
* Remove disk from Volume Group
+
 
 +
*Remove disk from Volume Group
 +
 
 
  vgreduce fileserver /dev/sdb1
 
  vgreduce fileserver /dev/sdb1
 
  vgdisplay
 
  vgdisplay
* Remove Phisical Volume
+
 
 +
*Remove Phisical Volume
 +
 
 
  pvremove /dev/sdb1
 
  pvremove /dev/sdb1
 
  pvdisplay
 
  pvdisplay
 +
 +
==LVM Backup==
 +
https://www.howtoforge.com/linux_lvm_snapshots
 +
 +
== Activate inactive Logical Group ==
 +
<syntaxhighlight lang="bash">
 +
vgchange -a y
 +
</syntaxhighlight>
 +
 +
=Rename Logigal Volume=
 +
lvrename /dev/vg02/lvold /dev/vg02/lvnew
 +
lvrename vg02 lvold lvnew

Latest revision as of 18:12, 28 May 2024

https://www.howtoforge.com/linux_lvm

Creating LVMs[edit]

  • Partition disks as Linux LVM with fdisk
  • Prepare new partitions for LVM Example:
pvcreate /dev/sdb1 /dev/sdc1 /dev/sde1  # pvremove /dev/sdb1 /dev/sdc1 /dev/sde1 to revert
pvdisplay                               # to show Physycal volumenes
  • Create a volume group example 'pilaf':
 vgcreate pilaf /dev/sdg1 /dev/sdf1  # vgremove pilaf to delete
  • Check existing Volume Groups
vgdisplay
vgscan
  • Create logical volumes in volume group
lvcreate --name pilaf_copy --size 4T pilaf
lvcreate --name pilaf_converter --size 4T pilaf
  • Check existing logical volumes with:
lvdisplay / lvscan
  • Rename logical volumes with
lvrename {volume_group} {old_name} {new_name}  | example: lvrename pilaf pilaf_copy pilaf_raw
  • Enlarge/reduce Logical volume with:
lvextend -L4.5T /dev/pilaf/pilaf_raw
lvreduce -L4T /dev/pilaf/pilaf_raw
  • Create the filesystems
mkfs.ext4 /dev/pilaf/pilaf_raw
mkfs.ext4 /dev/pilaf/pilaf_converter
  • Add /etc/fstab entries
/dev/pilaf/pilaf_raw          /Pilaf               ext4        rw,noatime    0 0
/dev/pilaf/pilaf_converter    /PilafConverter      ext4        rw,noatime    0 0

Resize LVM Logical Volumes & Filesystems[edit]

Enlarge[edit]

  • Unmount the Logical Volume
/umount /PilafConverter
  • Extend the Logical Volume
lvextend -L 4.5T /dev/pilaf/pilaf_converter
  • Extend the filesystem
e2fsck -f /dev/pilaf/pilaf_converter
resize2fs /dev/pilaf/pilaf_converter
  • Mount again
mount /dev/pilaf/pilaf_converter /PilafConverter

Shrink[edit]

  • Unmount the Logical Volume
/umount /PilafConverter
  • Shrink (Requires a number of blocks)
e2fsck -f /dev/pilaf/pilaf_converter  # to figure out the blocks we want to keep
resize2fs /dev/pilaf/pilaf_converter 104857600
lvreduce -L40G /dev/pilaf/pilaf_converter
  • Mount again
mount /dev/pilaf/pilaf_converter /PilafConverter

Add/Remove Hard Drives[edit]

Add[edit]

  • Format the new HD with fdisk (Linux LVM)
fdisk /dev/sdX (n (new)--> p (primary)--> 1 (default sdX1)--> t --> Linux LVM (8e|30) --> w)
  • Prepare
pvcreate /dev/sdX1
  • Extend Volume Group
vgextend fileserver /dev/sdX1
  • Check
vgdisplay

Remove[edit]

  • Move data to some other disk
pvmove /dev/sdb1 /dev/sdf1
  • Remove disk from Volume Group
vgreduce fileserver /dev/sdb1
vgdisplay
  • Remove Phisical Volume
pvremove /dev/sdb1
pvdisplay

LVM Backup[edit]

https://www.howtoforge.com/linux_lvm_snapshots

Activate inactive Logical Group[edit]

vgchange -a y

Rename Logigal Volume[edit]

lvrename /dev/vg02/lvold /dev/vg02/lvnew
lvrename vg02 lvold lvnew