/[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.11 - (hide annotations) (download) (as text)
Thu Apr 7 17:09:29 2005 UTC (9 years, 4 months ago) by swift
Branch: MAIN
Changes since 1.10: +10 -3 lines
File MIME type: application/xml
#84463 - Add warning about lvm2 issue on 2005.0 installcd

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

  ViewVC Help
Powered by ViewVC 1.1.20