Most people install {pve} directly on a local disk. The {pve}
installation CD offers several options for local disk management, and
the current default setup uses LVM. The installer let you select a
single disk for such setup, and uses that disk as physical volume for
the Volume Group (VG) pve
. The following output is from a
test installation using a small 8GB disk:
# pvs PV VG Fmt Attr PSize PFree /dev/sda3 pve lvm2 a-- 7.87g 876.00m # vgs VG #PV #LV #SN Attr VSize VFree pve 1 3 0 wz--n- 7.87g 876.00m
The installer allocates three Logical Volumes (LV) inside this VG:
# lvs LV VG Attr LSize Pool Origin Data% Meta% data pve twi-a-tz-- 4.38g 0.00 0.63 root pve -wi-ao---- 1.75g swap pve -wi-ao---- 896.00m
- root
-
Formatted as
ext4
, and contains the operation system. - swap
-
Swap partition
- data
-
This volume uses LVM-thin, and is used to store VM images. LVM-thin is preferable for this task, because it offers efficient support for snapshots and clones.
For {pve} versions up to 4.1, the installer creates a standard logical
volume called `data'', which is mounted at `/var/lib/vz
.
Starting from version 4.2, the logical volume `data'' is a LVM-thin pool,
used to store block based guest images, and `/var/lib/vz
is simply a
directory on the root file system.
We highly recommend to use a hardware RAID controller (with BBU) for such setups. This increases performance, provides redundancy, and make disk replacements easier (hot-pluggable).
LVM itself does not need any special hardware, and memory requirements are very low.
We install two boot loaders by default. The first partition contains the standard GRUB boot loader. The second partition is an EFI System Partition (ESP), which makes it possible to boot on EFI systems.
Let’s assume we have an empty disk /dev/sdb
, onto which we want to
create a volume group named ``vmdata''.
Caution
|
Please note that the following commands will destroy all
existing data on /dev/sdb .
|
First create a partition.
# sgdisk -N 1 /dev/sdb
Create a Physical Volume (PV) without confirmation and 250K metadatasize.
# pvcreate --metadatasize 250k -y -ff /dev/sdb1
Create a volume group named `vmdata'' on `/dev/sdb1
# vgcreate vmdata /dev/sdb1
This can be easily done by creating a new thin LV.
# lvcreate -n <Name> -V <Size[M,G,T]> <VG>/<LVThin_pool>
A real world example:
# lvcreate -n vz -V 10G pve/data
Now a filesystem must be created on the LV.
# mkfs.ext4 /dev/pve/vz
At last this has to be mounted.
Warning
|
be sure that /var/lib/vz is empty. On a default
installation it’s not.
|
To make it always accessible add the following line in /etc/fstab
.
# echo '/dev/pve/vz /var/lib/vz ext4 defaults 0 2' >> /etc/fstab
Resize the LV and the metadata pool can be achieved with the following command.
# lvresize --size +<size[\M,G,T]> --poolmetadatasize +<size[\M,G]> <VG>/<LVThin_pool>
Note
|
When extending the data pool, the metadata pool must also be extended. |