/[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.17 - (hide annotations) (download) (as text)
Fri Jan 20 11:42:43 2006 UTC (8 years, 10 months ago) by neysx
Branch: MAIN
Changes since 1.16: +43 -34 lines
File MIME type: application/xml
#116288 Do not activate swap until you're done with the partitioning, and a well needed refresh

1 neysx 1.1 <?xml version='1.0' encoding="UTF-8"?>
2 neysx 1.17 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/lvm2.xml,v 1.16 2005/10/03 22:49:15 rane Exp $ -->
3 neysx 1.1 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4    
5 neysx 1.17 <guide link="/doc/en/lvm2.xml">
6 neysx 1.1 <title>Gentoo LVM2 installation</title>
7 rane 1.16
8 neysx 1.1 <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 rane 1.16 <!-- The content of this document is licensed under the CC-BY-SA license -->
24     <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
25 neysx 1.1 <license/>
26    
27 neysx 1.17 <version>2.1</version>
28     <date>2006-01-20</date>
29 neysx 1.1
30     <chapter>
31     <title>Introduction</title>
32     <section>
33     <body>
34 swift 1.4
35 neysx 1.1 <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 neysx 1.15 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 neysx 1.1 </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 swift 1.4
54 neysx 1.1 </body>
55     </section>
56     <section>
57     <title>Initial requirements</title>
58     <body>
59 swift 1.4
60 neysx 1.1 <p>
61     If you do a fresh install of Gentoo, you will need to use a bootable CD with
62 rane 1.16 LVM2 support such as a Gentoo Installation CD. You can find the Installation CDs for an x86
63 neysx 1.1 architecture on our <uri
64 rane 1.16 link="/main/en/mirrors.xml">mirrors</uri> under
65 neysx 1.17 <path>/releases/x86/2005.1-r1/installcd</path>. Other architectures might
66 neysx 1.1 be supported as well.
67     </p>
68    
69     <p>
70 aaby 1.10 If you install LVM2 on a currently running system with some spare hard disk
71 neysx 1.1 space, you will need to enable the LVM2 module (<path>dm-mod</path>). This
72 vapier 1.12 module is available in <path>gentoo-sources</path> and in
73     <path>vanilla-sources</path>.
74 neysx 1.1 Compiling your kernel and getting LVM2 to work is covered later in this guide.
75     </p>
76 swift 1.4
77 swift 1.7 <p>
78     Not all 2.4 kernels provided by Gentoo support LVM2!
79     </p>
80    
81 swift 1.11 <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 neysx 1.1 </body>
89     </section>
90     <section>
91     <title>Partitions</title>
92     <body>
93 swift 1.4
94 neysx 1.1 <p>
95 aaby 1.10 Our example system has two IDE hard disks and will be partitioned as follows:
96 neysx 1.1 </p>
97    
98     <ul>
99 swift 1.4 <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 neysx 1.1 </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 swift 1.4
116 neysx 1.1 </body>
117     </section>
118     </chapter>
119    
120     <chapter>
121     <title>Installation</title>
122     <section>
123     <body>
124    
125 swift 1.4 <p>
126 swift 1.8 Follow the handbook, but with the following amendments to chapter <c>4.
127     Preparing the Disks</c>:
128 swift 1.4 </p>
129 neysx 1.1
130 swift 1.4 <p>
131 neysx 1.1 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 swift 1.4 </p>
135 neysx 1.1
136 swift 1.4 <p>
137 neysx 1.17 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 swift 1.4 </p>
142 neysx 1.1
143 swift 1.4 <p>
144 neysx 1.17 Create a swap partition (hda2).
145 swift 1.4 </p>
146    
147     <p>
148 neysx 1.14 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 neysx 1.1 resources section at the end of this guide for a link to a mini-howto on how to
151 neysx 1.14 do this. The size of the root partition need not be large if you will keep
152 neysx 1.1 <path>/opt /usr /home /var</path> and <path>/tmp</path> in an LVM2 Volume Group
153 neysx 1.14 (vg). In this case, 1GB should be sufficient.
154 swift 1.4 </p>
155 neysx 1.1
156     <note>
157     It is <b>not</b> recommended to put the following directories in an
158 swift 1.4 LVM2 partition: <path>/etc</path>, <path>/lib</path>, <path>/mnt</path>,
159 aaby 1.10 <path>/proc</path>, <path>/sbin</path>, <path>/dev</path>, and <path>/root</path>.
160 neysx 1.1 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 swift 1.4 <p>
165 neysx 1.17 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 swift 1.4 </p>
170 neysx 1.1
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 swift 1.4 <p>
182 neysx 1.17 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 neysx 1.9 Load the LVM2 <path>dm-mod</path> module.
189 swift 1.4 </p>
190 neysx 1.1
191     <pre caption="Loading the LVM2 module">
192     # <i>modprobe dm-mod</i>
193     </pre>
194    
195 swift 1.4 <p>
196 neysx 1.17 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 exemple, the line that allows scanning of all devices is replaced by
200     one that rejects every device but our two IDE disks.
201 swift 1.4 </p>
202    
203 neysx 1.1 <pre caption="Activating LVM">
204 neysx 1.17 <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 neysx 1.1 # <i>vgscan</i>
213     Reading all physical volumes. This may take a while...
214     No volume groups found
215 neysx 1.9 <comment>(Make any previously set up volume groups available)</comment>
216     # <i>vgchange -a y</i>
217 neysx 1.1 </pre>
218    
219 swift 1.4 <p>
220 neysx 1.1 Prepare the partitions.
221 swift 1.4 </p>
222 neysx 1.1
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 swift 1.4 <p>
232 neysx 1.1 Setup a volume group. A volume group is the result of combining several
233     physical units into a single logical device.
234 swift 1.4 </p>
235 neysx 1.1
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 swift 1.4 <p>
256 neysx 1.1 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 swift 1.4 </p>
260 neysx 1.1
261     <table>
262     <tr>
263 swift 1.4 <th>Directory</th>
264     <th>Size</th>
265 neysx 1.1 </tr>
266     <tr>
267 swift 1.4 <ti>/usr</ti>
268     <ti>10 GB</ti>
269 neysx 1.1 </tr>
270     <tr>
271 swift 1.4 <ti>/home</ti>
272     <ti>5 GB</ti>
273 neysx 1.1 </tr>
274     <tr>
275 swift 1.4 <ti>/opt</ti>
276     <ti>5 GB</ti>
277 neysx 1.1 </tr>
278     <tr>
279 swift 1.4 <ti>/var</ti>
280     <ti>10 GB</ti>
281 neysx 1.1 </tr>
282     <tr>
283 swift 1.4 <ti>/tmp</ti>
284     <ti>2 GB</ti>
285 neysx 1.1 </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 aaby 1.10 then to shrink it. You might therefore want to start with smaller partitions
296 neysx 1.1 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 swift 1.5 <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 neysx 1.1 </pre>
309    
310 swift 1.4 <p>
311 neysx 1.1 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 swift 1.4 </p>
315 neysx 1.1
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 swift 1.4 <p>
325 neysx 1.1 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 swift 1.4 </p>
329 neysx 1.1
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 swift 1.4 <p>
350 neysx 1.1 When configuring your kernel, make sure to configure your kernel to
351 swift 1.6 support LVM2 (not all 2.4 kernels do). Select the LVM2 module as follows:
352 swift 1.4 </p>
353 neysx 1.1
354 aaby 1.10 <pre caption="Selecting the LVM2 module in a 2.4.x kernel">
355 neysx 1.1 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 aaby 1.10 <pre caption="Selecting the LVM2 module in a 2.6.x kernel">
365 neysx 1.1 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 neysx 1.17 </pre>
403 neysx 1.9
404 neysx 1.17 <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 neysx 1.1
411 swift 1.4 <p>
412 neysx 1.1 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 swift 1.4 </p>
416 neysx 1.1
417     <pre caption="Extract of /etc/fstab">
418     /dev/hda1 /boot ext3 noauto,noatime 1 1
419     /dev/hda2 none swap sw 0 0
420     /dev/hda3 / ext3 noatime 0 0
421     # Logical volumes
422     /dev/vg/usr /usr ext3 noatime 0 0
423     /dev/vg/home /home ext3 noatime 0 0
424     /dev/vg/opt /opt ext3 noatime 0 0
425     /dev/vg/var /var ext3 noatime 0 0
426     /dev/vg/tmp /tmp ext3 noatime 0 0
427     </pre>
428    
429 swift 1.4 <p>
430 neysx 1.1 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 swift 1.4 </p>
434 neysx 1.1
435     <pre caption="Shutting down LVM2">
436 neysx 1.9 # <i>vgchange -a n</i>
437 neysx 1.1 </pre>
438    
439 swift 1.4 <p>
440 neysx 1.1 Restart your machine and all partitions should be visible and mounted.
441 swift 1.4 </p>
442    
443 neysx 1.1 </body>
444     </section>
445     </chapter>
446    
447     <chapter>
448 swift 1.13 <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 neysx 1.1 <title>Resources</title>
483     <section>
484     <body>
485 swift 1.4
486 neysx 1.1 <ul>
487 swift 1.4 <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 neysx 1.17 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 swift 1.4 </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 neysx 1.1 </ul>
503    
504     </body>
505     </section>
506     </chapter>
507 swift 1.4
508 neysx 1.1 <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