LVM
Abstraktionsschicht, um Partitionen flexibel über mehrere physische Devices zu bilden. Fasst eine oder mehrere Disks zu einem Logical Volume zusammen. Mehrere Physical Volumes (Platten) bilden eine Volume Group. In der Volume Group werden Logical Volumes gebildet. In den LV werden die Dateisysteme angelegt.
Dateisystem (mkfs) ^^ Logical Volume (LV) ^^ Volume Group (VG) ^^ Physical Volume (PV, HDD1 -- HDD2)
pvdisplay zeigt alle Physical Volumes und die physischen Devices, auf denen sie liegen
root@tarapiroe /mnt # pvdisplay --- Physical volume --- PV Name /dev/md3 VG Name data1 PV Size <2,66 TiB / not usable 2,31 MiB Allocatable yes PE Size 4,00 MiB Total PE 696964 Free PE 364164 Allocated PE 332800 PV UUID JGWU94-FLRS-zV60-ZAzg-gRvE-ifmR-qLIdMs --- Physical volume --- PV Name /dev/nbd0p5 VG Name ffes-vg PV Size 19,52 GiB / not usable 2,00 MiB Allocatable yes (but full) PE Size 4,00 MiB Total PE 4997 Free PE 0 Allocated PE 4997 PV UUID jqhYf1-VhUf-ApgM-vPtW-alD3-EFkZ-etDGgz
vgdisplay zeigt die Volume Groups
root@tarapiroe /mnt # pvdisplay --- Physical volume --- PV Name /dev/md3 VG Name data1 PV Size <2,66 TiB / not usable 2,31 MiB Allocatable yes PE Size 4,00 MiB Total PE 696964 Free PE 364164 Allocated PE 332800 PV UUID JGWU94-FLRS-zV60-ZAzg-gRvE-ifmR-qLIdMs --- Physical volume --- PV Name /dev/nbd0p5 VG Name ffes-vg PV Size 19,52 GiB / not usable 2,00 MiB Allocatable yes (but full) PE Size 4,00 MiB Total PE 4997 Free PE 0 Allocated PE 4997 PV UUID jqhYf1-VhUf-ApgM-vPtW-alD3-EFkZ-etDGgz
lvddisplay zeigt die logical volumes in der Volume Group
root@tarapiroe /mnt # lvdisplay --- Logical volume --- LV Path /dev/data1/VMs LV Name VMs VG Name data1 LV UUID ccDAJ2-sN1H-lRYL-fQFf-q11k-FtSB-7nSSQO LV Write Access read/write LV Creation host, time , LV Status available # open 1 LV Size 300,00 GiB Current LE 76800 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 --- Logical volume --- LV Path /dev/data1/Backup LV Name Backup VG Name data1 LV UUID 2aABCv-Dwp0-W9Wu-0SpK-Xrwy-fHVF-pDEpge LV Write Access read/write LV Creation host, time , LV Status available # open 1 LV Size 1000,00 GiB Current LE 256000 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1 --- Logical volume --- LV Path /dev/ffes-vg/root LV Name root VG Name ffes-vg LV UUID A9CTeG-Da3f-CtnJ-Hgkd-Yp6r-NpJ0-yaiwlT LV Write Access read/write LV Creation host, time ffes, 2017-11-22 10:33:21 +0100 LV Status available # open 0 LV Size <17,52 GiB Current LE 4485 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2 --- Logical volume --- LV Path /dev/ffes-vg/swap_1 LV Name swap_1 VG Name ffes-vg LV UUID tTYpH9-jJsi-0HsE-twF2-3UtO-NZQB-UWepLj LV Write Access read/write LV Creation host, time ffes, 2017-11-22 10:33:21 +0100 LV Status available # open 0 LV Size 2,00 GiB Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:3
lvcreate legt neue Volumes in einer Volume Group an:
root@tokoeka ~ # lvcreate --name data2 --size 1.9T pve Auf maximal verfügbare Grösse: lvcreate -l 100%VG -n data2 pve
lvextend und lvreduce vergrößern und verkleinern die Volumes. lvscan zeigt alle Volumes in Kurzfassung:
root@tokoeka ~ # lvscan ACTIVE '/dev/pve/swap' [8.00 GiB] inherit ACTIVE '/dev/pve/root' [100.00 GiB] inherit ACTIVE '/dev/pve/data' [100.00 GiB] inherit ACTIVE '/dev/pve/vm-100-disk-0' [32.00 GiB] inherit ACTIVE '/dev/pve/vm-100-disk-1' [500.00 GiB] inherit ACTIVE '/dev/pve/backup' [1.00 TiB] inherit ACTIVE '/dev/pve/data2' [1.90 TiB] inherit
lvrename benennt ein lv um:
lvrename /dev/pve/data2 /dev/pve/backup
Allerdings haben sie noch kein Filesystem, das legt man mit mkfs.ext4 an.
root@tokoeka ~ # mkfs.ext4 /dev/pve/vm-100-disk-1
mke2fs 1.43.4 (31-Jan-2017)
Creating filesystem with 131072000 4k blocks and 32768000 inodes
Filesystem UUID: 3c17dd79-ea84-47b8-82ec-7e94b3f394c8
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
Wenn man das lv vergrößert hat, muss man auch das Filesystem vergrößern:
resize2fs -p /dev/mapper/pve-data
Erst danach sind alle lv's als Block Devices für den Kernel verfügbar:
root@tokoeka ~ # blkid /dev/sda1: UUID="1e90e1fa-fd6c-db99-55cd-6e2107fd3f55" UUID_SUB="043a0140-ad1b-18d9-00e7-ff2cd6026917" LABEL="rescue:0" TYPE="linux_raid_member" PARTUUID="7abb39f4-17f5-49aa-80d2-ba5de6088a15" /dev/sda2: UUID="0acd374c-f1fb-7065-ae31-6e5a6e12ad1b" UUID_SUB="6f1fe193-8a90-0f93-3d8a-e5633cf6e447" LABEL="rescue:1" TYPE="linux_raid_member" PARTUUID="3a15509a-dba2-4c11-8f51-ee7efc9512de" /dev/sdb1: UUID="1e90e1fa-fd6c-db99-55cd-6e2107fd3f55" UUID_SUB="814a4156-e0ec-9058-7616-a77d0c82b134" LABEL="rescue:0" TYPE="linux_raid_member" PARTUUID="c3fcddd4-f3a8-419c-b87a-9ae914a9f207" /dev/sdb2: UUID="0acd374c-f1fb-7065-ae31-6e5a6e12ad1b" UUID_SUB="1ca5f9db-589d-8dd1-23be-5561756d441c" LABEL="rescue:1" TYPE="linux_raid_member" PARTUUID="c6b17ac2-9103-4e50-9d23-8ce033cd6d08" /dev/md0: UUID="b954b02a-56ab-466a-8178-c4a888301676" TYPE="ext4" /dev/md1: UUID="BW0yGZ-89CR-q1m5-9RSe-qRXM-hq5s-4MaUI5" TYPE="LVM2_member" /dev/mapper/pve-root: UUID="63888efc-9c72-44fe-ac6c-ca29d45bbc4c" TYPE="ext4" /dev/mapper/pve-swap: UUID="82ea6ffd-47ef-4078-9130-9c4b2caf2aaa" TYPE="swap" /dev/sda3: PARTUUID="0f73648a-562b-4a93-bc6a-c596a743167a" /dev/sdb3: PARTUUID="5031ce48-d15d-4b55-acbd-9bf05f460d17" /dev/mapper/pve-vm--100--disk--0: PTUUID="cc0d01a6" PTTYPE="dos" /dev/mapper/pve-vm--100--disk--1: UUID="3c17dd79-ea84-47b8-82ec-7e94b3f394c8" TYPE="ext4" /dev/mapper/pve-backup: UUID="b094a61f-6bee-4d36-97fb-29aed39ef2cc" TYPE="ext4" /dev/mapper/pve-data2: UUID="3050b5e7-b457-48d2-9070-ff11241ebcf4" TYPE="ext4"
Oder noch schöner mit lsblk
root@tokoeka ~ # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 1 3.7T 0 disk ├─sda1 8:1 1 512M 0 part │ └─md0 9:0 0 511.4M 0 raid1 /boot ├─sda2 8:2 1 3.7T 0 part │ └─md1 9:1 0 3.7T 0 raid1 │ ├─pve-root 253:0 0 100G 0 lvm / │ ├─pve-swap 253:1 0 8G 0 lvm [SWAP] │ ├─pve-data_tmeta 253:2 0 100M 0 lvm │ │ └─pve-data-tpool 253:4 0 100G 0 lvm │ │ ├─pve-data 253:5 0 100G 0 lvm │ │ └─pve-vm--100--disk--0 253:6 0 32G 0 lvm │ ├─pve-data_tdata 253:3 0 100G 0 lvm │ │ └─pve-data-tpool 253:4 0 100G 0 lvm │ │ ├─pve-data 253:5 0 100G 0 lvm │ │ └─pve-vm--100--disk--0 253:6 0 32G 0 lvm │ ├─pve-vm--100--disk--1 253:7 0 500G 0 lvm │ ├─pve-backup 253:8 0 1T 0 lvm │ └─pve-data2 253:9 0 1.9T 0 lvm └─sda3 8:3 1 1M 0 part sdb 8:16 1 3.7T 0 disk ├─sdb1 8:17 1 512M 0 part │ └─md0 9:0 0 511.4M 0 raid1 /boot ├─sdb2 8:18 1 3.7T 0 part │ └─md1 9:1 0 3.7T 0 raid1 │ ├─pve-root 253:0 0 100G 0 lvm / │ ├─pve-swap 253:1 0 8G 0 lvm [SWAP] │ ├─pve-data_tmeta 253:2 0 100M 0 lvm │ │ └─pve-data-tpool 253:4 0 100G 0 lvm │ │ ├─pve-data 253:5 0 100G 0 lvm │ │ └─pve-vm--100--disk--0 253:6 0 32G 0 lvm │ ├─pve-data_tdata 253:3 0 100G 0 lvm │ │ └─pve-data-tpool 253:4 0 100G 0 lvm │ │ ├─pve-data 253:5 0 100G 0 lvm │ │ └─pve-vm--100--disk--0 253:6 0 32G 0 lvm │ ├─pve-vm--100--disk--1 253:7 0 500G 0 lvm │ ├─pve-backup 253:8 0 1T 0 lvm │ └─pve-data2 253:9 0 1.9T 0 lvm └─sdb3 8:19 1 1M 0 part