source: postlfs/filesystems/lvm2.xml@ 22e249a

11.0 11.1 11.2 11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt 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 22e249a was 22e249a, checked in by Xi Ruoyao <xry111@…>, 3 years ago

lvm: adjust for merged /usr, and simplify command setting PATH

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