/[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.8 - (hide annotations) (download) (as text)
Sat Sep 25 12:42:43 2004 UTC (9 years, 11 months ago) by swift
Branch: MAIN
Changes since 1.7: +6 -4 lines
File MIME type: application/xml
#63979 - Fix echo instruction and reword phraze about following Handbook instructions

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

  ViewVC Help
Powered by ViewVC 1.1.20