mirror of
git://git.proxmox.com/git/pve-docs.git
synced 2025-01-06 13:17:48 +03:00
16b31cc9a6
Firmware updates are important, their existence should not be checked only when there are already noticeable problems. Signed-off-by: Alexander Zeidler <a.zeidler@proxmox.com> Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
140 lines
3.6 KiB
Plaintext
140 lines
3.6 KiB
Plaintext
[[chapter_lvm]]
|
|
Logical Volume Manager (LVM)
|
|
----------------------------
|
|
ifdef::wiki[]
|
|
:pve-toplevel:
|
|
endif::wiki[]
|
|
|
|
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 lets you select a
|
|
single disk for such setup, and uses that disk as physical volume for
|
|
the **V**olume **G**roup (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 **L**ogical **V**olumes (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 operating 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.
|
|
|
|
Hardware
|
|
~~~~~~~~
|
|
|
|
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.
|
|
|
|
|
|
Bootloader
|
|
~~~~~~~~~~
|
|
|
|
We install two boot loaders by default. The first partition contains
|
|
the standard GRUB boot loader. The second partition is an **E**FI **S**ystem
|
|
**P**artition (ESP), which makes it possible to boot on EFI systems and to
|
|
apply xref:sysadmin_firmware_persistent[persistent firmware updates] from the
|
|
user space.
|
|
|
|
|
|
Creating a Volume Group
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
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 **P**hysical **V**olume (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
|
|
|
|
|
|
Creating an extra LV for `/var/lib/vz`
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
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
|
|
|
|
|
|
Resizing the thin pool
|
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Resize the LV and the metadata pool 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.
|
|
|
|
|
|
Create a LVM-thin pool
|
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
A thin pool has to be created on top of a volume group.
|
|
How to create a volume group see Section LVM.
|
|
|
|
# lvcreate -L 80G -T -n vmstore vmdata
|