LVM

From braindump
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Notes on LVM

  1. PV commands => working on physical volume aka disk
  2. VG commands => virtual groups
  3. LV commands => logical volumes

Create

Create a bunch of small (100MB) virtual disks for use with LVM.

DISK_DIR=/var/tmp/disks
mkdir -p ${DISK_DIR} &&
for i in 1 2 3 4 5; do
    dd if=/dev/zero of=${DISK_DIR}/disk${i} bs=100M count=1 &&
    losetup /dev/loop${i} ${DISK_DIR}/disk${i} &&
    pvcreate /dev/loop${i}
done

Output should look like this

1+0 records in
1+0 records out
104857600 bytes (105 MB) copied, 0.50751 s, 207 MB/s
  Physical volume "/dev/loop1" successfully created
1+0 records in
1+0 records out
104857600 bytes (105 MB) copied, 1.94502 s, 53.9 MB/s
  Physical volume "/dev/loop2" successfully created
1+0 records in
1+0 records out
104857600 bytes (105 MB) copied, 4.12227 s, 25.4 MB/s
  Physical volume "/dev/loop3" successfully created
1+0 records in
1+0 records out
104857600 bytes (105 MB) copied, 1.51487 s, 69.2 MB/s
  Physical volume "/dev/loop4" successfully created
1+0 records in
1+0 records out
104857600 bytes (105 MB) copied, 3.88262 s, 27.0 MB/s
  Physical volume "/dev/loop5" successfully created

Confirm the output

# pvs
 PV         VG         Fmt  Attr PSize   PFree
 /dev/loop1            lvm2 --   100.00M 100.00M
 /dev/loop2            lvm2 --   100.00M 100.00M
 /dev/loop3            lvm2 --   100.00M 100.00M
 /dev/loop4            lvm2 --   100.00M 100.00M
 /dev/loop5            lvm2 --   100.00M 100.00M

Create Virtual Group

# vgcreate -s 1024K lpic /dev/loop[1-5]
 Volume group "lpic" successfully created
# pvs
 PV         VG         Fmt  Attr PSize  PFree
 /dev/loop1 lpic       lvm2 a-   99.00M 99.00M
 /dev/loop2 lpic       lvm2 a-   99.00M 99.00M
 /dev/loop3 lpic       lvm2 a-   99.00M 99.00M
 /dev/loop4 lpic       lvm2 a-   99.00M 99.00M
 /dev/loop5 lpic       lvm2 a-   99.00M 99.00M
 /dev/sda2  VolGroup00 lvm2 a-   37.12G     0
# vgs
 VG         #PV #LV #SN Attr   VSize   VFree
 lpic         5   0   0 wz--n- 495.00M 495.00M

Create Logical Volume

# lvcreate -n lv_lpic -L 256M lpic
 Logical volume "lv_lpic" created
# lvs
 LV         VG         Attr   LSize   Origin Snap%  Move Log Copy%  Convert
 lv_lpic    lpic       -wi-a- 256.00M

Manage

Move disk

Goal: move content of loop1 to loop5

#pvs
 PV         VG         Fmt  Attr PSize  PFree
 /dev/loop1 lpic       lvm2 a-   99.00M     0
 /dev/loop2 lpic       lvm2 a-   99.00M     0
 /dev/loop3 lpic       lvm2 a-   99.00M 41.00M
 /dev/loop4 lpic       lvm2 a-   99.00M 99.00M
 /dev/loop5 lpic       lvm2 a-   99.00M 99.00M
# pvmove /dev/loop1 /dev/loop5
 /dev/loop1: Moved: 100.0%
# pvs
 PV         VG         Fmt  Attr PSize  PFree
 /dev/loop1 lpic       lvm2 a-   99.00M 99.00M
 /dev/loop2 lpic       lvm2 a-   99.00M     0
 /dev/loop3 lpic       lvm2 a-   99.00M 41.00M
 /dev/loop4 lpic       lvm2 a-   99.00M 99.00M
 /dev/loop5 lpic       lvm2 a-   99.00M     0

Remove physical disk

Goal: remove /dev/loop4 from VG lpic

# pvs
 PV         VG         Fmt  Attr PSize  PFree
 /dev/loop1 lpic       lvm2 a-   99.00M 99.00M
 /dev/loop2 lpic       lvm2 a-   99.00M     0
 /dev/loop3 lpic       lvm2 a-   99.00M 41.00M
 /dev/loop4 lpic       lvm2 a-   99.00M 99.00M
 /dev/loop5 lpic       lvm2 a-   99.00M     0
# vgreduce lpic /dev/loop4
 Removed "/dev/loop4" from volume group "lpic"
# pvremove /dev/loop4
 Labels on physical volume "/dev/loop4" successfully wiped
# pvs
 PV         VG         Fmt  Attr PSize  PFree
 /dev/loop1 lpic       lvm2 a-   99.00M 99.00M
 /dev/loop2 lpic       lvm2 a-   99.00M     0
 /dev/loop3 lpic       lvm2 a-   99.00M 41.00M
 /dev/loop5 lpic       lvm2 a-   99.00M     0

Add physical disk

# pvs
 PV         VG         Fmt  Attr PSize  PFree
 /dev/loop1 lpic       lvm2 a-   99.00M 99.00M
 /dev/loop2 lpic       lvm2 a-   99.00M     0
 /dev/loop3 lpic       lvm2 a-   99.00M 41.00M
 /dev/loop5 lpic       lvm2 a-   99.00M     0
# pvcreate /dev/loop4
 Physical volume "/dev/loop4" successfully created
# pvs
 PV         VG         Fmt  Attr PSize   PFree
 /dev/loop1 lpic       lvm2 a-    99.00M  99.00M
 /dev/loop2 lpic       lvm2 a-    99.00M      0
 /dev/loop3 lpic       lvm2 a-    99.00M  41.00M
 /dev/loop4            lvm2 --   100.00M 100.00M
 /dev/loop5 lpic       lvm2 a-    99.00M      0
# vgextend lpic /dev/loop4
 Volume group "lpic" successfully extended
# pvs
 PV         VG         Fmt  Attr PSize  PFree
 /dev/loop1 lpic       lvm2 a-   99.00M 99.00M
 /dev/loop2 lpic       lvm2 a-   99.00M     0
 /dev/loop3 lpic       lvm2 a-   99.00M 41.00M
 /dev/loop4 lpic       lvm2 a-   99.00M 99.00M
 /dev/loop5 lpic       lvm2 a-   99.00M     0