source: postlfs/filesystems/lvm2.xml@ 422bd2c

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 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 422bd2c was 422bd2c, checked in by DJ Lucas <dj@…>, 8 years ago

[Systemd merge] - LVM2

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

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