]> git.proxmox.com Git - pve-docs.git/blame - local-lvm.adoc
Add useful examples to create/resize a lvm[-thin] pool.
[pve-docs.git] / local-lvm.adoc
CommitLineData
08152ae6
DM
1Logical Volume Manager (LVM)
2----------------------------
5f09af76
DM
3ifdef::wiki[]
4:pve-toplevel:
5endif::wiki[]
6
08152ae6 7Most people install {pve} directly on a local disk. The {pve}
8b849dc3
DM
8installation CD offers several options for local disk management, and
9the current default setup uses LVM. The installer let you select a
10single disk for such setup, and uses that disk as physical volume for
8c1189b6 11the **V**olume **G**roup (VG) `pve`. The following output is from a
8b849dc3 12test installation using a small 8GB disk:
08152ae6 13
8b849dc3
DM
14----
15# pvs
16 PV VG Fmt Attr PSize PFree
17 /dev/sda3 pve lvm2 a-- 7.87g 876.00m
18
19# vgs
20 VG #PV #LV #SN Attr VSize VFree
21 pve 1 3 0 wz--n- 7.87g 876.00m
22----
23
24The installer allocates three **L**ogical **V**olumes (LV) inside this
25VG:
26
27----
28# lvs
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
33----
34
8c1189b6 35root:: Formatted as `ext4`, and contains the operation system.
8b849dc3
DM
36
37swap:: Swap partition
38
39data:: This volume uses LVM-thin, and is used to store VM
40images. LVM-thin is preferable for this task, because it offers
41efficient support for snapshots and clones.
08152ae6 42
dae412f9
WL
43For {pve} versions up to 4.1, the installer creates a Logical Volume
44called ``data'' which is mounted at `/var/lib/vz`
45Starting from 4.2 the Logical Volume ``data'' is a LVM thin volume, used
46for block based storage of guest systems, and `/var/lib/vz` is simply a
47directory on the root file system.
48
d822a869
DM
49Hardware
50~~~~~~~~
51
52We highly recommend to use a hardware RAID controller (with BBU) for
53such setups. This increases performance, provides redundancy, and make
54disk replacements easier (hot-pluggable).
55
56LVM itself does not need any special hardware, and memory requirements
57are very low.
58
59
60Bootloader
61~~~~~~~~~~
62
63We install two boot loaders by default. The first partition contains
64the 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.
dae412f9
WL
66
67
68Creating a Volume Group
69~~~~~~~~~~~~~~~~~~~~~~~
70
71Let's assume we have an empty disk `/dev/sdb`, onto which we want to
72create a Volume Group named ``vmdata''.
73
74First create a partition.
75
76 # sgdisk -N 1 /dev/sdb
77
78Create a **P**hysical **V**olumes (PV) without confirmation and 250K
79metadatasize.
80
81 # pvcreate --metadatasize 250k -y -ff /dev/sdb1
82
83Create a **V**olume **G**roup (VG) named ``vmdata'' on `/dev/sdb1`
84
85 # vgcreate vmdata /dev/sdb1
86
87
88Creating an extra LV for `/var/lib/vz`
89~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
90
91This can be easily done by creating a new thin LV.
92
93 # lvcreate -n <Name> -V <Size[M,G,T]> <VG>/<LVThin_pool>
94
95A real world example:
96
97 # lvcreate -n vz -V 10G pve/data
98
99Now a filesystem must be created on the LV.
100
101 # mkfs.ext4 /dev/data/vz
102
103At last this has to be mounted.
104
105WARNING: be sure that `/var/lib/vz` is empty. On a default installation it's not.
106
107To make it always accessible add the following line in `/etc/fstab`.
108
109 # echo '/dev/pve/vz /var/lib/vz ext4 defaults 0 2' >> /etc/fstab
110
111
112Resizing the thin pool
113~~~~~~~~~~~~~~~~~~~~~~
114
115NOTE: When extending the data pool, the metadata pool must be extended with it.
116
117Resize the LV and the metadata pool can be achieved with the following command.
118
119 # lvresize --size +<size[\M,G,T]> --poolmetadatasize +<size[\M,G]> <VG>/<LVThin_pool>
120
121
122Create a LVM-Thin pool
123~~~~~~~~~~~~~~~~~~~~~~
124
125A thin pool has to be created on top of a volume group.
126How to create a Volume Group see Section LVM.
127
128 # lvcreate -L 80G -T -n vmstore vmdata