source: postlfs/filesystems/lvm2.xml@ 2875c661

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 2875c661 was 2875c661, checked in by Fernando de Oliveira <fernando@…>, 8 years ago
  • Update to gnutls-3.4.8.
  • Update to stunnel-5.29.
  • cURL-7.46.0: add optional dependency nghttp2.
  • Update to LVM2.2.02.139.
  • Update to Regexp-Common-2016010801 (perl module).
  • Update to xf86-input-evdev-2.10.1.
  • Update to epiphany-3.18.3.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@16797 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 14.3 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY lvm2-download-http " ">
8 <!ENTITY lvm2-download-ftp "ftp://sources.redhat.com/pub/lvm2/releases/LVM2.&lvm2-version;.tgz">
9 <!ENTITY lvm2-md5sum "c3aef77a108eab18323fa8f48bf5220a">
10 <!ENTITY lvm2-size "1.9 MB">
11 <!ENTITY lvm2-buildsize "32 MB (during tests, transient files can grow up to around 500 MB)">
12 <!ENTITY lvm2-time "0.4 SBU (additional about 10 SBU for tests, with parallelism = 4, see below)">
13]>
14
15<sect1 id="lvm2" xreflabel="LVM2-&lvm2-version;">
16 <?dbhtml filename="lvm2.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>LVM2-&lvm2-version;</title>
24
25 <indexterm zone="lvm2">
26 <primary sortas="a-LVM2">LVM2</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to LVM2</title>
31
32 <para>
33 The <application>LVM2</application> package is a set of tools that manage
34 logical partitions. It allows spanning of file systems across multiple
35 physical disks and disk partitions and provides for dynamic growing or
36 shrinking of logical partitions, mirroring and low storage footprint
37 snapshots.
38 </para>
39
40 &lfs78_checked;
41
42 <bridgehead renderas="sect3">Package Information</bridgehead>
43 <itemizedlist spacing="compact">
44 <listitem>
45 <para>
46 Download (HTTP): <ulink url="&lvm2-download-http;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download (FTP): <ulink url="&lvm2-download-ftp;"/>
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download MD5 sum: &lvm2-md5sum;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Download size: &lvm2-size;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated disk space required: &lvm2-buildsize;
67 </para>
68 </listitem>
69 <listitem>
70 <para>
71 Estimated build time: &lvm2-time;
72 </para>
73 </listitem>
74 </itemizedlist>
75
76 <bridgehead renderas="sect3">LVM2 Dependencies</bridgehead>
77
78 <bridgehead renderas="sect4">Optional</bridgehead>
79 <para role="optional">
80 <xref linkend='mdadm'/>,
81 <xref linkend='reiserfs'/>,
82 <xref linkend='valgrind'/>,
83 <xref linkend='which'/>,
84 <xref linkend='xfsprogs'/> (all five may be used, but are not required,
85 for tests), and
86 <ulink url='https://github.com/jthornber/thin-provisioning-tools'>
87 thin-provisioning-tools</ulink>
88 </para>
89
90 <para condition="html" role="usernotes">User Notes:
91 <ulink url="&blfs-wiki;/lvm2"/>
92 </para>
93
94 <note>
95 <para>
96 Kernel versions in the 4.1 and 4.2 series have a broken RAID
97 implementation. If you want to use RAID type LV's, you should
98 install a kernel with version above 4.2.4. Note that several
99 tests use RAID logical volumes, and can generate a <quote>kernel
100 oops</quote> with faulty kernel version, which usually renders the
101 system unusable.
102 </para>
103 </note>
104 </sect2>
105
106 <sect2 role="kernel" id="lvm2-kernel">
107 <title>Kernel Configuration</title>
108
109 <para>
110 Enable the following options in the kernel configuration
111 and recompile the kernel:
112 </para>
113
114 <note><para>
115 There are several other Device Mapper options in the kernel beyond those
116 listed below. In order to get reasonable results if running the
117 regression tests, all must be enabled either internally or as a module.
118 </para></note>
119
120<screen><literal>Device Drivers ---&gt;
121 [*] Multiple devices driver support (RAID and LVM) ---&gt; [CONFIG_MD]
122 &lt;*/M&gt; Device mapper support [CONFIG_BLK_DEV_DM]
123 &lt;*/M/ &gt; Crypt target support [CONFIG_DM_CRYPT]
124 &lt;*/M/ &gt; Snapshot target [CONFIG_DM_SNAPSHOT]
125 &lt;*/M/ &gt; Thin provisioning target [CONFIG_DM_THIN_PROVISIONING]
126 &lt;*/M/ &gt; Mirror target [CONFIG_DM_MIRROR]</literal></screen>
127
128 <indexterm zone="lvm2 lvm2-kernel">
129 <primary sortas="d-lvm2">lvm2</primary>
130 </indexterm>
131
132 </sect2>
133
134 <sect2 role="installation">
135 <title>Installation of LVM2</title>
136
137 <para>
138 Install <application>LVM2</application> by running the following
139 commands:
140 </para>
141
142<screen><userinput>SAVEPATH=$PATH &amp;&amp;
143pathappend /sbin:/usr/sbin &amp;&amp;
144./configure --prefix=/usr \
145 --exec-prefix= \
146 --enable-applib \
147 --enable-cmdlib \
148 --enable-pkgconfig \
149 --enable-udev_sync &amp;&amp;
150make &amp;&amp;
151PATH=$SAVEPATH &amp;&amp;
152unset SAVEPATH</userinput></screen>
153
154 <para>
155 The tests use <application>udev</application> for logical volume
156 synchronization, so that the LVM udev rules and some utilities need to
157 be installed before running the tests. If you are installing
158 <application>LVM2</application> for the first time, and do not
159 want to install the full package before running the tests, the minimal
160 set of utilities can be installed by running the following instructions
161 as the <systemitem class="username">root</systemitem> user:
162 </para>
163
164<screen role="root"><userinput>make -C tools install_dmsetup_dynamic &amp;&amp;
165make -C udev install &amp;&amp;
166make -C libdm install</userinput></screen>
167
168 <para>
169 To test the results, issue: <command>make check_local</command> as the
170 <systemitem class="username">root</systemitem> user. Other targets are
171 available and can be listed with <command>make -C test help</command>.
172 The test timings are very dependent on the speed of the disk(s), and on
173 the number of enabled kernel options.
174 </para>
175 <para>
176 Those tests do not implement the <quote>expected fail</quote> possibility,
177 and a small number of test failures is expected by upstream. More
178 failures may happen because some kernel options are missing. For example,
179 the lack of the <emphasis>dm-delay</emphasis> device mapper target may
180 explain up to 10 failures or so. Some tests are flagged
181 <quote>warned</quote> if
182 <ulink url='https://github.com/jthornber/thin-provisioning-tools'>
183 thin-provisioning-tools</ulink> are not installed. A workaround is to
184 add the following flags to <command>configure</command>:
185 </para>
186
187<screen role="nodump"><userinput> --with-thin-check= \
188 --with-thin-dump= \
189 --with-thin-repair= \
190 --with-thin-restore= \
191 --with-cache-check= \
192 --with-cache-dump= \
193 --with-cache-repair= \
194 --with-cache-restore= \</userinput></screen>
195
196 <para>
197 Some tests may hang with kernel versions in the 4.1 and 4.2 series (see
198 above). They can be removed if necessary, for example: <command>rm
199 test/shell/lvcreate-large-raid.sh</command>. The tests generate a lot
200 of kernel messages, which may clutter your terminal. You can disable them
201 by issuing <command>dmesg -D</command> before running the tests (do not
202 forget to issue <command>dmesg -E</command> when tests are done).
203 </para>
204
205 <para>
206 Now, as the <systemitem class="username">root</systemitem> user:
207 </para>
208
209<screen role="root"><userinput>make install</userinput></screen>
210
211 </sect2>
212
213 <sect2 role="commands">
214 <title>Command Explanations</title>
215
216 <para>
217 <command>pathappend /sbin:/usr/sbin</command>: The path
218 must contain <filename class="directory">/sbin</filename> and
219 <filename class='directory'>/usr/sbin</filename> for proper system tool
220 detection by the <command>configure</command> script. These instructions
221 ensure that it is properly set even if you build as an user. Note that
222 you need to provide equivalent commands if you have not set up your
223 startup files as in <xref linkend="postlfs-config-profile"/>.
224 </para>
225
226 <para>
227 <parameter>--enable-applib</parameter>: This switch enables
228 building of the shared application library.
229 </para>
230
231 <para>
232 <parameter>--enable-cmdlib</parameter>: This switch enables
233 building of the shared command library. It is required
234 when building the event daemon.
235 </para>
236
237 <para>
238 <parameter>--enable-pkgconfig</parameter>: This switch enables
239 installation of <command>pkg-config</command> support files.
240 </para>
241
242 <para>
243 <parameter>--enable-udev_sync</parameter>: This switch enables
244 synchronisation with <application>Udev</application> processing.
245 </para>
246
247 <para>
248 <option>--enable-dmeventd</option>: This switch enables
249 building of the <application>Device Mapper</application>
250 event daemon.
251 </para>
252
253 <para>
254 <option>--enable-lvmetad</option>: This switch enables
255 building of the <application>LVM</application> metadata daemon,
256 which avoids scanning all the filesystems when an lvm command is
257 run.
258 </para>
259
260 </sect2>
261
262 <sect2 role="content">
263 <title>Contents</title>
264
265 <segmentedlist>
266 <segtitle>Installed Programs</segtitle>
267 <segtitle>Installed Libraries</segtitle>
268 <segtitle>Installed Directories</segtitle>
269
270 <seglistitem>
271 <seg>
272 blkdeactivate, dmeventd (optional), dmsetup, fsadm, lvm, lvmconf,
273 lvmdump, lvmetad (optional), and vgimportclone. There are also
274 numerous symbolic links to lvm that implement specific
275 functionalities
276 </seg>
277 <seg>
278 libdevmapper.so, liblvm2app.so and liblvm2cmd.so; optional:
279 libdevmapper-event.so, libdevmapper-event-lvm2.so,
280 libdevmapper-event-lvm2mirror.so, libdevmapper-event-lvm2snapshot.so,
281 libdevmapper-event-lvm2raid.so, and libdevmapper-event-lvm2thin.so
282 </seg>
283 <seg>
284 /etc/lvm and
285 /lib/device-mapper (optional)
286 </seg>
287 </seglistitem>
288 </segmentedlist>
289
290 <variablelist>
291 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
292 <?dbfo list-presentation="list"?>
293
294 <?dbhtml list-presentation="table"?>
295
296 <varlistentry id="blkdeactivate">
297 <term><command>blkdeactivate</command></term>
298 <listitem>
299 <para>
300 utility to deactivate block device.
301 </para>
302 <indexterm zone="lvm2 blkdeactivate">
303 <primary sortas="b-blkdeactivate">blkdeactivate</primary>
304 </indexterm>
305 </listitem>
306 </varlistentry>
307
308 <varlistentry id="dmeventd">
309 <term><command>dmeventd</command></term>
310 <listitem>
311 <para>
312 (optional) is the Device Mapper event daemon.
313 </para>
314 <indexterm zone="lvm2 dmeventd">
315 <primary sortas="b-dmeventd">dmeventd</primary>
316 </indexterm>
317 </listitem>
318 </varlistentry>
319
320 <varlistentry id="dmsetup">
321 <term><command>dmsetup</command></term>
322 <listitem>
323 <para>
324 is a low level logical volume management tool.
325 </para>
326 <indexterm zone="lvm2 dmsetup">
327 <primary sortas="b-dmsetup">dmsetup</primary>
328 </indexterm>
329 </listitem>
330 </varlistentry>
331
332 <varlistentry id="fsadm">
333 <term><command>fsadm</command></term>
334 <listitem>
335 <para>
336 is a utility used to resize or check filesystem on a device.
337 </para>
338 <indexterm zone="lvm2 fsadm">
339 <primary sortas="b-fsadm">fsadm</primary>
340 </indexterm>
341 </listitem>
342 </varlistentry>
343
344 <varlistentry id="lvm">
345 <term><command>lvm</command></term>
346 <listitem>
347 <para>
348 provides the command-line tools for <application>LVM2</application>.
349 Commands are implemented via sympolic links to this program to
350 manage physical devices (pv*), volume groups (vg*) and logical
351 volumes (lv*).
352 </para>
353 <indexterm zone="lvm2 lvm">
354 <primary sortas="b-lvm">lvm</primary>
355 </indexterm>
356 </listitem>
357 </varlistentry>
358
359 <varlistentry id="lvmconf">
360 <term><command>lvmconf</command></term>
361 <listitem>
362 <para>
363 is a script that modifies the locking configuration in
364 the <application>LVM2</application> configuration file.
365 </para>
366 <indexterm zone="lvm2 lvmconf">
367 <primary sortas="b-lvmconf">lvmconf</primary>
368 </indexterm>
369 </listitem>
370 </varlistentry>
371
372 <varlistentry id="lvmdump">
373 <term><command>lvmdump</command></term>
374 <listitem>
375 <para>
376 is a tool used to dump various information concerning
377 <application>LVM2</application>.
378 </para>
379 <indexterm zone="lvm2 lvmdump">
380 <primary sortas="b-lvmdump">lvmdump</primary>
381 </indexterm>
382 </listitem>
383 </varlistentry>
384
385 <varlistentry id="lvmetad">
386 <term><command>lvmetad</command></term>
387 <listitem>
388 <para>
389 (optional) is the LVM metadata daemon.
390 </para>
391 <indexterm zone="lvm2 lvmetad">
392 <primary sortas="b-lvmetad">lvmetad</primary>
393 </indexterm>
394 </listitem>
395 </varlistentry>
396
397 <varlistentry id="vgimportclone">
398 <term><command>vgimportclone</command></term>
399 <listitem>
400 <para>
401 is used to import a duplicated VG (e.g. hardware snapshot).
402 </para>
403 <indexterm zone="lvm2 vgimportclone">
404 <primary sortas="b-vgimportclone">vgimportclone</primary>
405 </indexterm>
406 </listitem>
407 </varlistentry>
408
409 <varlistentry id="libdevmapper">
410 <term><filename class='libraryfile'>libdevmapper.so</filename></term>
411 <listitem>
412 <para>
413 contains the <application>Device Mapper</application> API
414 functions.
415 </para>
416 <indexterm zone="lvm2 libdevmapper">
417 <primary sortas="c-libdevmapper">libdevmapper.so</primary>
418 </indexterm>
419 </listitem>
420 </varlistentry>
421
422 </variablelist>
423
424 </sect2>
425
426</sect1>
Note: See TracBrowser for help on using the repository browser.