/[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 - (show 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 <?xml version='1.0' encoding="UTF-8"?>
2 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/lvm2.xml,v 1.7 2004/09/09 13:06:55 swift Exp $ -->
3 <!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 <version>2.0.5</version>
25 <date>September 25, 2004</date>
26
27 <chapter>
28 <title>Introduction</title>
29 <section>
30 <body>
31
32 <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 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 </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
51 </body>
52 </section>
53 <section>
54 <title>Initial requirements</title>
55 <body>
56
57 <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
74 <p>
75 Not all 2.4 kernels provided by Gentoo support LVM2!
76 </p>
77
78 </body>
79 </section>
80 <section>
81 <title>Partitions</title>
82 <body>
83
84 <p>
85 Our example system has 2 IDE hard disks and will be partitioned as follows:
86 </p>
87
88 <ul>
89 <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 </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
106 </body>
107 </section>
108 </chapter>
109
110 <chapter>
111 <title>Installation</title>
112 <section>
113 <body>
114
115 <p>
116 Follow the handbook, but with the following amendments to chapter <c>4.
117 Preparing the Disks</c>:
118 </p>
119
120 <p>
121 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 </p>
125
126 <p>
127 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 </p>
132
133 <p>
134 Create a swap partition (hda2) and activate it.
135 </p>
136
137 <pre caption="Activating the swap partition">
138 # <i>mkswap /dev/hda2</i>
139 # <i>swapon /dev/hda2</i>
140 </pre>
141
142 <p>
143 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 </p>
150
151 <note>
152 It is <b>not</b> recommended to put the following directories in an
153 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 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 <p>
160 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 </p>
165
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 <p>
177 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 </p>
182
183 <pre caption="Loading the LVM2 module">
184 # <i>modprobe dm-mod</i>
185 </pre>
186
187 <p>
188 Scan and activate LVM:
189 </p>
190
191 <pre caption="Activating LVM">
192 <comment>(Avoid scanning your cdrom)</comment>
193 # <i>mkdir -p /etc/lvm</i>
194 # <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 <p>
201 Prepare the partitions.
202 </p>
203
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 <p>
213 Setup a volume group. A volume group is the result of combining several
214 physical units into a single logical device.
215 </p>
216
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 <p>
237 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 </p>
241
242 <table>
243 <tr>
244 <th>Directory</th>
245 <th>Size</th>
246 </tr>
247 <tr>
248 <ti>/usr</ti>
249 <ti>10 GB</ti>
250 </tr>
251 <tr>
252 <ti>/home</ti>
253 <ti>5 GB</ti>
254 </tr>
255 <tr>
256 <ti>/opt</ti>
257 <ti>5 GB</ti>
258 </tr>
259 <tr>
260 <ti>/var</ti>
261 <ti>10 GB</ti>
262 </tr>
263 <tr>
264 <ti>/tmp</ti>
265 <ti>2 GB</ti>
266 </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 <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 </pre>
290
291 <p>
292 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 </p>
296
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 <p>
306 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 </p>
310
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 <p>
331 When configuring your kernel, make sure to configure your kernel to
332 support LVM2 (not all 2.4 kernels do). Select the LVM2 module as follows:
333 </p>
334
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 <p>
388 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 </p>
392
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 <p>
406 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 </p>
410
411 <pre caption="Shutting down LVM2">
412 # <i>vgchange -an</i>
413 </pre>
414
415 <p>
416 Restart your machine and all partitions should be visible and mounted.
417 </p>
418
419 </body>
420 </section>
421 </chapter>
422
423 <chapter>
424 <title>Resources</title>
425 <section>
426 <body>
427
428 <ul>
429 <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 </ul>
446
447 </body>
448 </section>
449 </chapter>
450
451 <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