/[gentoo]/xml/htdocs/doc/en/lvm2.xml
Gentoo

Contents of /xml/htdocs/doc/en/lvm2.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.19 - (show annotations) (download) (as text)
Fri Feb 17 02:53:19 2006 UTC (8 years, 10 months ago) by rane
Branch: MAIN
Changes since 1.18: +2 -2 lines
File MIME type: application/xml
fixed typo, no content change

1 <?xml version='1.0' encoding="UTF-8"?>
2 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/lvm2.xml,v 1.18 2006/02/06 17:12:08 neysx Exp $ -->
3 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4
5 <guide link="/doc/en/lvm2.xml">
6 <title>Gentoo LVM2 installation</title>
7
8 <author title="Author">
9 <mail link="avi@CFFtechnologies.com">Avi Schwartz</mail>
10 </author>
11 <author title="Contributor">
12 <mail link="rajiv@gentoo.org">Rajiv Manglani</mail>
13 </author>
14 <author title="Editor">
15 <mail link="neysx@gentoo.org">Xavier Neys</mail>
16 </author>
17
18 <abstract>
19 This guide describes how to setup your Gentoo machine using the Logical Volume
20 Manager version 2 (LVM2).
21 </abstract>
22
23 <!-- The content of this document is licensed under the CC-BY-SA license -->
24 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
25 <license/>
26
27 <version>2.2</version>
28 <date>2006-02-06</date>
29
30 <chapter>
31 <title>Introduction</title>
32 <section>
33 <body>
34
35 <p>
36 This guide is based on an example with two IDE hard disks. It means that you
37 will more than likely need to change the drive, partition names and partition
38 sizes to match your own setup and needs.
39 </p>
40
41 <warn>
42 This document is not intended to be an LVM2 tutorial. It serves as a
43 supplement to the Gentoo installation procedure as described in the <uri
44 link="/doc/en/handbook/handbook-x86.xml?part=1">Handbook, Part 1</uri>. Make
45 sure you <c>read</c> the Gentoo Installation Manual <c>before</c> you start
46 your installation process.
47 </warn>
48
49 <note>
50 For a complete LVM HOWTO point your browser to
51 <uri>http://tldp.org/HOWTO/LVM-HOWTO</uri>
52 </note>
53
54 </body>
55 </section>
56 <section>
57 <title>Initial requirements</title>
58 <body>
59
60 <p>
61 If you do a fresh install of Gentoo, you will need to use a bootable CD with
62 LVM2 support such as a Gentoo Installation CD. You can find the Installation CDs for an x86
63 architecture on our <uri
64 link="/main/en/mirrors.xml">mirrors</uri> under
65 <path>/releases/x86/2005.1-r1/installcd</path>. Other architectures might
66 be supported as well.
67 </p>
68
69 <p>
70 If you install LVM2 on a currently running system with some spare hard disk
71 space, you will need to enable the LVM2 module (<path>dm-mod</path>). This
72 module is available in <path>gentoo-sources</path> and in
73 <path>vanilla-sources</path>.
74 Compiling your kernel and getting LVM2 to work is covered later in this guide.
75 </p>
76
77 <p>
78 Not all 2.4 kernels provided by Gentoo support LVM2!
79 </p>
80
81 <warn>
82 The LVM2 available on the 2005.0 installation CDs is erroneously linked
83 dynamically against a library (libgpm) which resides in /usr. This means you
84 cannot have your /usr in an LVM environment as well. Either install the latest
85 version or version 2.0.33 (not -r1) which are built statically.
86 </warn>
87
88 </body>
89 </section>
90 <section>
91 <title>Partitions</title>
92 <body>
93
94 <p>
95 Our example system has two IDE hard disks and will be partitioned as follows:
96 </p>
97
98 <ul>
99 <li>/dev/hda1 -- /boot</li>
100 <li>/dev/hda2 -- (swap)</li>
101 <li>/dev/hda3 -- /</li>
102 <li>/dev/hda4 -- Will be used by LVM2</li>
103 <li>/dev/hdb1 -- Will be used by LVM2</li>
104 </ul>
105
106 <impo>
107 Pay attention to the partition names as it is easy to confuse the a's and b's,
108 and the partition numbers. One false move could wipe out the wrong partition.
109 You have been warned!
110 </impo>
111
112 <p>
113 OK, time to start...
114 </p>
115
116 </body>
117 </section>
118 </chapter>
119
120 <chapter>
121 <title>Installation</title>
122 <section>
123 <body>
124
125 <p>
126 Follow the handbook, but with the following amendments to chapter <c>4.
127 Preparing the Disks</c>:
128 </p>
129
130 <p>
131 Use <c>fdisk</c> as described in the handbook, but use the partition scheme
132 mentioned above as an example. It is only <e>an example</e>, adapt it to your
133 own needs.
134 </p>
135
136 <p>
137 Create a small physical <path>/boot</path> partition (hda1). In this example,
138 <path>/boot</path> will be not managed by LVM2. This partition will contain
139 your bootloader and your kernel(s). A 64MB partition should be well enough for
140 quite a few kernel generations.
141 </p>
142
143 <p>
144 Create a swap partition (hda2).
145 </p>
146
147 <p>
148 Create a / (root) partition (hda3). If you are interested in trying to put your
149 root partition under LVM management (which we do not recommend), see the
150 resources section at the end of this guide for a link to a mini-howto on how to
151 do this. The size of the root partition need not be large if you will keep
152 <path>/opt /usr /home /var</path> and <path>/tmp</path> in an LVM2 Volume Group
153 (vg). In this case, 1GB should be sufficient.
154 </p>
155
156 <note>
157 It is <b>not</b> recommended to put the following directories in an
158 LVM2 partition: <path>/etc</path>, <path>/lib</path>, <path>/mnt</path>,
159 <path>/proc</path>, <path>/sbin</path>, <path>/dev</path>, and <path>/root</path>.
160 This way, you would still be able to log into your system (crippled, but
161 still somewhat usable, as root) if something goes terribly wrong.
162 </note>
163
164 <p>
165 Assuming the <path>/boot</path>, swap and root partitions do not use the whole
166 physical disk, create a fourth partition on this disk and set it to type 8e
167 (Linux LVM). If you have more physical drives you would like to use with LVM,
168 create one partition on each and give them the same type (8e).
169 </p>
170
171 <note>
172 Considering the huge size of current disks, you might consider splitting your
173 hard disks into smaller partitions instead of creating a big partition that
174 will be added to an LVM2 volume group in one block. LVM2 makes it easy to
175 extend your volumes after all. This leaves you some unallocated partitions you
176 might need to use outside of an LVM2 group. In short, don't use your disk space
177 until you know you need it. As an example, one contributor had split his
178 160&nbsp;Gb hard disk into 8 partitions of 20&nbsp;Gb each.
179 </note>
180
181 <p>
182 Create the filesystems on <path>/dev/hda1</path> and <path>/dev/hda3</path>,
183 and create and activate the swap on <path>/dev/hda2</path> as described in the
184 handbook.
185 </p>
186
187 <p>
188 Load the LVM2 <path>dm-mod</path> module.
189 </p>
190
191 <pre caption="Loading the LVM2 module">
192 # <i>modprobe dm-mod</i>
193 </pre>
194
195 <p>
196 Before scanning and activating LVM, you might want to edit
197 <path>/etc/lvm/lvm.conf</path> to exclude some devices. By default, LVM2 will
198 scan all devices, even your CDROM which can generate error messages. In the
199 following example, the line that allows scanning of all devices is replaced by
200 one that rejects every device but our two IDE disks.
201 </p>
202
203 <pre caption="Activating LVM">
204 <comment>(Avoid scanning all devices but our disks)</comment>
205 # <i>nano -w /etc/lvm/lvm.conf</i>
206 <comment>(Look for the following line)</comment>
207 filter = [ "a/.*/" ]
208 <comment>(Replace it with the following one to scan
209 /dev/hda and /dev/hdb and reject anything else)</comment>
210 filter = [ "a|/dev/hd[ab]|", "r/.*/" ]
211 <comment>(Save the file and quit nano)</comment>
212 # <i>vgscan</i>
213 Reading all physical volumes. This may take a while...
214 No volume groups found
215 <comment>(Make any previously set up volume groups available)</comment>
216 # <i>vgchange -a y</i>
217 </pre>
218
219 <p>
220 Prepare the partitions.
221 </p>
222
223 <pre caption="Preparing the partitions">
224 # <i>pvcreate /dev/hda4 /dev/hdb1</i>
225 No physical volume label read from /dev/hda4
226 Physical volume "/dev/hda4" successfully created
227 No physical volume label read from /dev/hdb1
228 Physical volume "/dev/hdb1" successfully created
229 </pre>
230
231 <p>
232 Setup a volume group. A volume group is the result of combining several
233 physical units into a single logical device.
234 </p>
235
236 <p>
237 In our example, <path>/dev/hda1</path>, <path>/dev/hda2</path> and
238 <path>/dev/hda3</path> are the <path>/boot</path>, swap and root partitions so
239 we need to combine <path>/dev/hda4</path> and <path>/dev/hdb1</path>. It can be
240 done with a single command, but, as an example, we will create our volume group
241 and extend it.
242 </p>
243
244 <pre caption="Creating and extending a volume group">
245 <comment>(Create a volume group named vg)</comment>
246 # <i>vgcreate vg /dev/hda4</i>
247 /etc/lvm/backup: fsync failed: Invalid argument <comment>(Ignore this warning)</comment>
248 Volume group "vg" successfully created
249 <comment>(Extending an existing volume group)</comment>
250 # <i>vgextend vg /dev/hdb1</i>
251 /etc/lvm/backup: fsync failed: Invalid argument <comment>(Ignore this warning, again and later as well)</comment>
252 Volume group "vg" successfully extended
253 </pre>
254
255 <p>
256 Create the logical volumes. Logical volumes are the equivalent of partitions
257 you would create using fdisk in a non LVM2 environment. In our example, we
258 create the following partitions:
259 </p>
260
261 <table>
262 <tr>
263 <th>Directory</th>
264 <th>Size</th>
265 </tr>
266 <tr>
267 <ti>/usr</ti>
268 <ti>10 GB</ti>
269 </tr>
270 <tr>
271 <ti>/home</ti>
272 <ti>5 GB</ti>
273 </tr>
274 <tr>
275 <ti>/opt</ti>
276 <ti>5 GB</ti>
277 </tr>
278 <tr>
279 <ti>/var</ti>
280 <ti>10 GB</ti>
281 </tr>
282 <tr>
283 <ti>/tmp</ti>
284 <ti>2 GB</ti>
285 </tr>
286 </table>
287
288 <p>
289 Since we are going to use LVM2, we should not worry too much about partition
290 sizes because they can always be expanded as needed.
291 </p>
292
293 <note>
294 As Terje Kvernes commented, it is easier to increase the size of a partition
295 then to shrink it. You might therefore want to start with smaller partitions
296 and increase their size as needed.
297 </note>
298
299 <pre caption="Creating and extending logical volumes">
300 # <i>lvcreate -L10G -nusr vg</i>
301 Logical volume "usr" created <comment>(Further similar messages not displayed)</comment>
302 # <i>lvcreate -L5G -nhome vg</i>
303 # <i>lvcreate -L5G -nopt vg</i>
304 # <i>lvcreate -L10G -nvar vg</i>
305 # <i>lvcreate -L2G -ntmp vg</i>
306 <comment>(As an example, let's extend a logical volume with 5 extra Gbytes)</comment>
307 # <i>lvextend -L+5G /dev/vg/home</i>
308 </pre>
309
310 <p>
311 Create filesystems on the logical volumes the same way you would on a regular
312 partition. We use ext3 on the logical volumes but any filesystem of your
313 choice will work:
314 </p>
315
316 <pre caption="Creating the filesystems">
317 # <i>mke2fs -j /dev/vg/usr</i>
318 # <i>mke2fs -j /dev/vg/home</i>
319 # <i>mke2fs -j /dev/vg/opt</i>
320 # <i>mke2fs -j /dev/vg/var</i>
321 # <i>mke2fs -j /dev/vg/tmp</i>
322 </pre>
323
324 <p>
325 Mount your partitions as described in the handbook and mount your LVM2 logical
326 volumes as if they were partitions. Replace the usual <path>/dev/hdxx</path>
327 with <path>/dev/vg/logical_volumename</path>.
328 </p>
329
330 <pre caption="Mounting your logical volumes">
331 <comment>(Make sure you have mounted your root partition as described in the handbook first)</comment>
332 # <i>mkdir /mnt/gentoo/usr</i>
333 # <i>mount /dev/vg/usr /mnt/gentoo/usr</i>
334 # <i>mkdir /mnt/gentoo/home</i>
335 # <i>mount /dev/vg/home /mnt/gentoo/home</i>
336 # <i>mkdir /mnt/gentoo/opt</i>
337 # <i>mount /dev/vg/opt /mnt/gentoo/opt</i>
338 # <i>mkdir /mnt/gentoo/var</i>
339 # <i>mount /dev/vg/var /mnt/gentoo/var</i>
340 # <i>mkdir /mnt/gentoo/tmp</i>
341 # <i>mount /dev/vg/tmp /mnt/gentoo/tmp</i>
342 </pre>
343
344 <note>
345 The rest of the installation handbook is mostly unchanged so we shall not
346 walk you through it again except to point out differences.
347 </note>
348
349 <p>
350 When configuring your kernel, make sure to configure your kernel to
351 support LVM2 (not all 2.4 kernels do). Select the LVM2 module as follows:
352 </p>
353
354 <pre caption="Selecting the LVM2 module in a 2.4.x kernel">
355 Multi-device support (RAID and LVM) ---&gt;
356 [*] Multiple devices driver support (RAID and LVM)
357 &lt; &gt; RAID support
358 <comment>(Note that LVM is not selected on purpose, this was for LVM1)</comment>
359 &lt; &gt; Logical volume manager (LVM) support
360 &lt;M&gt; Device-mapper support
361 &lt; &gt; Mirror (RAID-1) support
362 </pre>
363
364 <pre caption="Selecting the LVM2 module in a 2.6.x kernel">
365 Device Drivers ---&gt;
366 Multi-device support (RAID and LVM) ---&gt;
367 [*] Multiple devices driver support (RAID and LVM)
368 &lt; &gt; RAID support
369 &lt;M&gt; Device mapper support
370 </pre>
371
372 <p>
373 The compiled module is called <path>dm-mod.ko</path>
374 </p>
375
376 <p>
377 After you have built your kernel and installed its modules, add the following
378 line to your <path>/etc/modules.autoload.d/kernel-{KV}</path> where {KV}
379 represents your kernel version (2.4 or 2.6) so that the LVM2 module gets loaded
380 when your machine is booted:
381 </p>
382
383 <pre caption="Adding the LVM2 module into /etc/modules.autoload.d/kernel-2.6">
384 # <i>nano -w /etc/modules.autoload.d/kernel-2.6</i>
385 <comment>(Add the following line)</comment>
386 dm-mod
387 </pre>
388
389 <p>
390 Now, install the lvm2 package.
391 </p>
392
393 <impo>
394 Make sure your <path>/usr/src/linux</path> link points to the kernel sources you
395 are using because the lvm2 ebuild depends on the device-mapper ebuild which
396 will check the presence of a required source file under
397 <path>/usr/src/linux/include/linux</path>.
398 </impo>
399
400 <pre caption="Emerging the LVM2 package">
401 # <i>emerge lvm2</i>
402 </pre>
403
404 <p>
405 Edit <path>/etc/lvm/lvm.conf</path> as described <uri
406 link="#doc_chap2_pre2">earlier</uri>. The file you previously edited is part of
407 your installation environment and will disappear after the next reboot. This
408 time, you edit the real one inside your new Gentoo install.
409 </p>
410
411 <p>
412 When editing your <path>/etc/fstab</path> file, follow the handbook and add
413 your LVM2 logical volumes as needed. Again, here are a few lines needed for
414 our example:
415 </p>
416
417 <pre caption="Extract of /etc/fstab">
418 /dev/hda1 /boot ext3 noauto,noatime 1 2
419 /dev/hda2 none swap sw 0 0
420 /dev/hda3 / ext3 noatime 0 1
421 # Logical volumes
422 /dev/vg/usr /usr ext3 noatime 0 2
423 /dev/vg/home /home ext3 noatime 0 2
424 /dev/vg/opt /opt ext3 noatime 0 2
425 /dev/vg/var /var ext3 noatime 0 2
426 /dev/vg/tmp /tmp ext3 noatime 0 2
427 </pre>
428
429 <p>
430 When you reach the end of the installation part of the handbook, don't forget
431 to umount all your LVM2 logical volumes as well and for a good measure run the
432 following command before you reboot:
433 </p>
434
435 <pre caption="Shutting down LVM2">
436 # <i>vgchange -a n</i>
437 </pre>
438
439 <p>
440 Restart your machine and all partitions should be visible and mounted.
441 </p>
442
443 </body>
444 </section>
445 </chapter>
446
447 <chapter>
448 <title>Continuing After a Reboot</title>
449 <section>
450 <body>
451
452 <p>
453 If you have interrupted the Gentoo installation at one point and want to
454 continue, you need to create the volume device nodes first:
455 </p>
456
457 <pre caption="Reactivating the volumes">
458 # <i>vgscan --mknodes</i>
459 </pre>
460
461 <p>
462 Installation CDs with less recent tools might need to reactivate the volumes
463 instead:
464 </p>
465
466 <pre caption="Reactivating the volumes">
467 <comment>(Deactivate all volumes first)</comment>
468 # <i>vgchange -a n</i>
469 <comment>(Export all the volumes)</comment>
470 # <i>vgexport -a vg</i>
471 <comment>(Import all volumes)</comment>
472 # <i>vgimport -a vg</i>
473 <comment>(Reactivate all volumes)</comment>
474 # <i>vgchange -a y</i>
475 </pre>
476
477 </body>
478 </section>
479 </chapter>
480
481 <chapter>
482 <title>Resources</title>
483 <section>
484 <body>
485
486 <ul>
487 <li>
488 The official <uri link="http://sources.redhat.com/lvm2">LVM2 home page</uri>
489 </li>
490 <li>
491 The <uri link="http://tldp.org/HOWTO/LVM-HOWTO">LVM Howto</uri>
492 </li>
493 <li>
494 Daniel Robbins's articles on LVM for IBM's DeveloperWorks: <uri
495 link="/doc/en/articles/lvm-p1.xml">Part 1</uri> and <uri
496 link="/doc/en/articles/lvm-p2.xml">Part 2</uri>
497 </li>
498 <li>
499 How to boot your root FS off of LVM1:
500 <uri>http://www.the-infinite.org/archive/docs/lvm/howto-boot-off-root-lv.txt</uri>
501 </li>
502 </ul>
503
504 </body>
505 </section>
506 </chapter>
507
508 <chapter>
509 <title>Acknowledgements</title>
510 <section>
511 <body>
512
513 <p>
514 Thanks <mail link="bangert@gentoo.org">Thilo Bangert</mail> and <mail
515 link="terjekv@math.uio.no">Terje Kvernes</mail> for their help and comments on
516 this document.
517 </p>
518
519 </body>
520 </section>
521 </chapter>
522 </guide>

  ViewVC Help
Powered by ViewVC 1.1.20