1 Logical Volume Manager (LVM)
2 ----------------------------
7 Most people install {pve} directly on a local disk. The {pve}
8 installation CD offers several options for local disk management, and
9 the current default setup uses LVM. The installer let you select a
10 single disk for such setup, and uses that disk as physical volume for
11 the **V**olume **G**roup (VG) `pve`. The following output is from a
12 test installation using a small 8GB disk:
16 PV VG Fmt Attr PSize PFree
17 /dev/sda3 pve lvm2 a-- 7.87g 876.00m
20 VG #PV #LV #SN Attr VSize VFree
21 pve 1 3 0 wz--n- 7.87g 876.00m
24 The installer allocates three **L**ogical **V**olumes (LV) inside this
29 LV VG Attr LSize Pool Origin Data% Meta%
30 data pve twi-a-tz-- 4.38g 0.00 0.63
31 root pve -wi-ao---- 1.75g
32 swap pve -wi-ao---- 896.00m
35 root:: Formatted as `ext4`, and contains the operation system.
39 data:: This volume uses LVM-thin, and is used to store VM
40 images. LVM-thin is preferable for this task, because it offers
41 efficient support for snapshots and clones.
43 For {pve} versions up to 4.1, the installer creates a Logical Volume
44 called ``data'' which is mounted at `/var/lib/vz`
45 Starting from 4.2 the Logical Volume ``data'' is a LVM thin volume, used
46 for block based storage of guest systems, and `/var/lib/vz` is simply a
47 directory on the root file system.
52 We highly recommend to use a hardware RAID controller (with BBU) for
53 such setups. This increases performance, provides redundancy, and make
54 disk replacements easier (hot-pluggable).
56 LVM itself does not need any special hardware, and memory requirements
63 We install two boot loaders by default. The first partition contains
64 the standard GRUB boot loader. The second partition is an **E**FI **S**ystem
65 **P**artition (ESP), which makes it possible to boot on EFI systems.
68 Creating a Volume Group
69 ~~~~~~~~~~~~~~~~~~~~~~~
71 Let's assume we have an empty disk `/dev/sdb`, onto which we want to
72 create a Volume Group named ``vmdata''.
74 First create a partition.
76 # sgdisk -N 1 /dev/sdb
78 Create a **P**hysical **V**olumes (PV) without confirmation and 250K
81 # pvcreate --metadatasize 250k -y -ff /dev/sdb1
83 Create a **V**olume **G**roup (VG) named ``vmdata'' on `/dev/sdb1`
85 # vgcreate vmdata /dev/sdb1
88 Creating an extra LV for `/var/lib/vz`
89 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
91 This can be easily done by creating a new thin LV.
93 # lvcreate -n <Name> -V <Size[M,G,T]> <VG>/<LVThin_pool>
97 # lvcreate -n vz -V 10G pve/data
99 Now a filesystem must be created on the LV.
101 # mkfs.ext4 /dev/data/vz
103 At last this has to be mounted.
105 WARNING: be sure that `/var/lib/vz` is empty. On a default installation it's not.
107 To make it always accessible add the following line in `/etc/fstab`.
109 # echo '/dev/pve/vz /var/lib/vz ext4 defaults 0 2' >> /etc/fstab
112 Resizing the thin pool
113 ~~~~~~~~~~~~~~~~~~~~~~
115 NOTE: When extending the data pool, the metadata pool must be extended with it.
117 Resize the LV and the metadata pool can be achieved with the following command.
119 # lvresize --size +<size[\M,G,T]> --poolmetadatasize +<size[\M,G]> <VG>/<LVThin_pool>
122 Create a LVM-Thin pool
123 ~~~~~~~~~~~~~~~~~~~~~~
125 A thin pool has to be created on top of a volume group.
126 How to create a Volume Group see Section LVM.
128 # lvcreate -L 80G -T -n vmstore vmdata