source: postlfs/filesystems/lvm2.xml@ 9847c28

10.0 10.1 11.0 7.10 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind ken/refactor-virt lazarus nosym perl-modules qt5new trunk upgradedb xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since 9847c28 was 9847c28, checked in by Bruce Dubbs <bdubbs@…>, 6 years ago

Update to bluez-5.38.
Update to LVM2-22.02.147.
Update to poppler-0.42.0.
Update to libxkbcommon-0.6.0.

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

  • Property mode set to 100644
File size: 14.1 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 "daf278c28b88869d2834b9e12e62ac19">
10 <!ENTITY lvm2-size "1.9 MB">
11 <!ENTITY lvm2-buildsize "27 MB (during tests, transient files can grow up to around 500 MB)">
12 <!ENTITY lvm2-time "0.4 SBU (additional 5.4 SBU for tests)">
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 &lfs79_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 <caution>
95 <para>
96 Kernel versions between 4.1 and 4.4.1 have a broken RAID
97 implementation. If you want to use RAID type LV's, you should install
98 kernel version 4.4.2 or above. Note that several tests use RAID logical
99 volumes, and can generate a <quote>kernel oops</quote> with the faulty
100 kernel version, which usually renders the system unusable.
101 </para>
102 </caution>
103 </sect2>
104
105 <sect2 role="kernel" id="lvm2-kernel">
106 <title>Kernel Configuration</title>
107
108 <para>
109 Enable the following options in the kernel configuration
110 and recompile the kernel:
111 </para>
112
113 <note><para>
114 There are several other Device Mapper options in the kernel beyond those
115 listed below. In order to get reasonable results if running the
116 regression tests, all must be enabled either internally or as a module.
117 </para></note>
118
119<screen><literal>Device Drivers ---&gt;
120 [*] Multiple devices driver support (RAID and LVM) ---&gt; [CONFIG_MD]
121 &lt;*/M&gt; Device mapper support [CONFIG_BLK_DEV_DM]
122 &lt;*/M/ &gt; Crypt target support [CONFIG_DM_CRYPT]
123 &lt;*/M/ &gt; Snapshot target [CONFIG_DM_SNAPSHOT]
124 &lt;*/M/ &gt; Thin provisioning target [CONFIG_DM_THIN_PROVISIONING]
125 &lt;*/M/ &gt; Mirror target [CONFIG_DM_MIRROR]</literal></screen>
126
127 <indexterm zone="lvm2 lvm2-kernel">
128 <primary sortas="d-lvm2">lvm2</primary>
129 </indexterm>
130
131 </sect2>
132
133 <sect2 role="installation">
134 <title>Installation of LVM2</title>
135
136 <para>
137 Install <application>LVM2</application> by running the following
138 commands:
139 </para>
140
141<screen><userinput>SAVEPATH=$PATH &amp;&amp;
142PATH=$PATH:/sbin:/usr/sbin &amp;&amp;
143./configure --prefix=/usr \
144 --exec-prefix= \
145 --enable-applib \
146 --enable-cmdlib \
147 --enable-pkgconfig \
148 --enable-udev_sync &amp;&amp;
149make &amp;&amp;
150PATH=$SAVEPATH &amp;&amp;
151unset SAVEPATH</userinput></screen>
152
153 <para>
154 The tests use <application>udev</application> for logical volume
155 synchronization, so that the LVM udev rules and some utilities need to
156 be installed before running the tests. If you are installing
157 <application>LVM2</application> for the first time, and do not
158 want to install the full package before running the tests, the minimal
159 set of utilities can be installed by running the following instructions
160 as the <systemitem class="username">root</systemitem> user:
161 </para>
162
163<screen role="root"><userinput>make -C tools install_dmsetup_dynamic &amp;&amp;
164make -C udev install &amp;&amp;
165make -C libdm install</userinput></screen>
166
167 <para>
168 To test the results, issue: <command>make check_local</command> as the
169 <systemitem class="username">root</systemitem> user. Other targets are
170 available and can be listed with <command>make -C test help</command>.
171 The test timings are very dependent on the speed of the disk(s), and on
172 the number of enabled kernel options.
173 </para>
174 <para>
175 Those tests do not implement the <quote>expected fail</quote> possibility,
176 and a small number of test failures is expected by upstream. More
177 failures may happen because some kernel options are missing. For example,
178 the lack of the <emphasis>dm-delay</emphasis> device mapper target may
179 explain somefailures. Some tests are flagged
180 <quote>warned</quote> if
181 <ulink url='https://github.com/jthornber/thin-provisioning-tools'>
182 thin-provisioning-tools</ulink> are not installed. A workaround is to
183 add the following flags to <command>configure</command>:
184 </para>
185
186<screen role="nodump"><userinput> --with-thin-check= \
187 --with-thin-dump= \
188 --with-thin-repair= \
189 --with-thin-restore= \
190 --with-cache-check= \
191 --with-cache-dump= \
192 --with-cache-repair= \
193 --with-cache-restore= \</userinput></screen>
194
195 <para>
196 Some tests may hang with kernel versions in the 4.1 and 4.2 series (see
197 above). They can be removed if necessary, for example: <command>rm
198 test/shell/lvcreate-large-raid.sh</command>. The tests generate a lot
199 of kernel messages, which may clutter your terminal. You can disable them
200 by issuing <command>dmesg -D</command> before running the tests (do not
201 forget to issue <command>dmesg -E</command> when tests are done).
202 </para>
203
204 <para>
205 Now, as the <systemitem class="username">root</systemitem> user:
206 </para>
207
208<screen role="root"><userinput>make install</userinput></screen>
209
210 </sect2>
211
212 <sect2 role="commands">
213 <title>Command Explanations</title>
214
215 <para>
216 <command>PATH=$PATH:/sbin:/usr/sbin</command>: The path
217 must contain <filename class="directory">/sbin</filename> and
218 <filename class='directory'>/usr/sbin</filename> for proper system tool
219 detection by the <command>configure</command> script. This instruction
220 ensures that PATH is properly set even if you build as an unprivileged user.
221 </para>
222
223 <para>
224 <parameter>--enable-applib</parameter>: This switch enables
225 building of the shared application library.
226 </para>
227
228 <para>
229 <parameter>--enable-cmdlib</parameter>: This switch enables
230 building of the shared command library. It is required
231 when building the event daemon.
232 </para>
233
234 <para>
235 <parameter>--enable-pkgconfig</parameter>: This switch enables
236 installation of <command>pkg-config</command> support files.
237 </para>
238
239 <para>
240 <parameter>--enable-udev_sync</parameter>: This switch enables
241 synchronisation with <application>Udev</application> processing.
242 </para>
243
244 <para>
245 <option>--enable-dmeventd</option>: This switch enables
246 building of the <application>Device Mapper</application>
247 event daemon.
248 </para>
249
250 <para>
251 <option>--enable-lvmetad</option>: This switch enables
252 building of the <application>LVM</application> metadata daemon,
253 which avoids scanning all the filesystems when an lvm command is
254 run.
255 </para>
256
257 </sect2>
258
259 <sect2 role="content">
260 <title>Contents</title>
261
262 <segmentedlist>
263 <segtitle>Installed Programs</segtitle>
264 <segtitle>Installed Libraries</segtitle>
265 <segtitle>Installed Directories</segtitle>
266
267 <seglistitem>
268 <seg>
269 blkdeactivate, dmeventd (optional), dmsetup, fsadm, lvm, lvmconf,
270 lvmdump, lvmetad (optional), and vgimportclone. There are also
271 numerous symbolic links to lvm that implement specific
272 functionalities
273 </seg>
274 <seg>
275 libdevmapper.so, liblvm2app.so and liblvm2cmd.so; optional:
276 libdevmapper-event.so, libdevmapper-event-lvm2.so,
277 libdevmapper-event-lvm2mirror.so, libdevmapper-event-lvm2snapshot.so,
278 libdevmapper-event-lvm2raid.so, and libdevmapper-event-lvm2thin.so
279 </seg>
280 <seg>
281 /etc/lvm and
282 /lib/device-mapper (optional)
283 </seg>
284 </seglistitem>
285 </segmentedlist>
286
287 <variablelist>
288 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
289 <?dbfo list-presentation="list"?>
290
291 <?dbhtml list-presentation="table"?>
292
293 <varlistentry id="blkdeactivate">
294 <term><command>blkdeactivate</command></term>
295 <listitem>
296 <para>
297 utility to deactivate block device.
298 </para>
299 <indexterm zone="lvm2 blkdeactivate">
300 <primary sortas="b-blkdeactivate">blkdeactivate</primary>
301 </indexterm>
302 </listitem>
303 </varlistentry>
304
305 <varlistentry id="dmeventd">
306 <term><command>dmeventd</command></term>
307 <listitem>
308 <para>
309 (optional) is the Device Mapper event daemon.
310 </para>
311 <indexterm zone="lvm2 dmeventd">
312 <primary sortas="b-dmeventd">dmeventd</primary>
313 </indexterm>
314 </listitem>
315 </varlistentry>
316
317 <varlistentry id="dmsetup">
318 <term><command>dmsetup</command></term>
319 <listitem>
320 <para>
321 is a low level logical volume management tool.
322 </para>
323 <indexterm zone="lvm2 dmsetup">
324 <primary sortas="b-dmsetup">dmsetup</primary>
325 </indexterm>
326 </listitem>
327 </varlistentry>
328
329 <varlistentry id="fsadm">
330 <term><command>fsadm</command></term>
331 <listitem>
332 <para>
333 is a utility used to resize or check filesystem on a device.
334 </para>
335 <indexterm zone="lvm2 fsadm">
336 <primary sortas="b-fsadm">fsadm</primary>
337 </indexterm>
338 </listitem>
339 </varlistentry>
340
341 <varlistentry id="lvm">
342 <term><command>lvm</command></term>
343 <listitem>
344 <para>
345 provides the command-line tools for <application>LVM2</application>.
346 Commands are implemented via sympolic links to this program to
347 manage physical devices (pv*), volume groups (vg*) and logical
348 volumes (lv*).
349 </para>
350 <indexterm zone="lvm2 lvm">
351 <primary sortas="b-lvm">lvm</primary>
352 </indexterm>
353 </listitem>
354 </varlistentry>
355
356 <varlistentry id="lvmconf">
357 <term><command>lvmconf</command></term>
358 <listitem>
359 <para>
360 is a script that modifies the locking configuration in
361 the <application>LVM2</application> configuration file.
362 </para>
363 <indexterm zone="lvm2 lvmconf">
364 <primary sortas="b-lvmconf">lvmconf</primary>
365 </indexterm>
366 </listitem>
367 </varlistentry>
368
369 <varlistentry id="lvmdump">
370 <term><command>lvmdump</command></term>
371 <listitem>
372 <para>
373 is a tool used to dump various information concerning
374 <application>LVM2</application>.
375 </para>
376 <indexterm zone="lvm2 lvmdump">
377 <primary sortas="b-lvmdump">lvmdump</primary>
378 </indexterm>
379 </listitem>
380 </varlistentry>
381
382 <varlistentry id="lvmetad">
383 <term><command>lvmetad</command></term>
384 <listitem>
385 <para>
386 (optional) is the LVM metadata daemon.
387 </para>
388 <indexterm zone="lvm2 lvmetad">
389 <primary sortas="b-lvmetad">lvmetad</primary>
390 </indexterm>
391 </listitem>
392 </varlistentry>
393
394 <varlistentry id="vgimportclone">
395 <term><command>vgimportclone</command></term>
396 <listitem>
397 <para>
398 is used to import a duplicated VG (e.g. hardware snapshot).
399 </para>
400 <indexterm zone="lvm2 vgimportclone">
401 <primary sortas="b-vgimportclone">vgimportclone</primary>
402 </indexterm>
403 </listitem>
404 </varlistentry>
405
406 <varlistentry id="libdevmapper">
407 <term><filename class='libraryfile'>libdevmapper.so</filename></term>
408 <listitem>
409 <para>
410 contains the <application>Device Mapper</application> API
411 functions.
412 </para>
413 <indexterm zone="lvm2 libdevmapper">
414 <primary sortas="c-libdevmapper">libdevmapper.so</primary>
415 </indexterm>
416 </listitem>
417 </varlistentry>
418
419 </variablelist>
420
421 </sect2>
422
423</sect1>
Note: See TracBrowser for help on using the repository browser.