]> git.proxmox.com Git - pve-docs.git/blobdiff - local-lvm.adoc
update copyright year to current
[pve-docs.git] / local-lvm.adoc
index 6f66292bb36c0c494e6f93379e52ba4a52864a72..2489b9d140d83b7c036ccaf4762986a6a43568d1 100644 (file)
+[[chapter_lvm]]
 Logical Volume Manager (LVM)
 ----------------------------
-include::attributes.txt[]
+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. The
-current default setup uses LVM and 'ext4' for the root
-partition. LVM-thin is used for VM images, because this has efficient
-support for snapshots and clones.
+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 **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 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.
+
+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.
+
+
+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 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.
+
+
+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