/[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.7 - (hide annotations) (download) (as text)
Thu Sep 9 13:06:55 2004 UTC (9 years, 10 months ago) by swift
Branch: MAIN
Changes since 1.6: +7 -3 lines
File MIME type: application/xml
Make it more pertinent that not all 2.4 kernels support LVM2

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

  ViewVC Help
Powered by ViewVC 1.1.20