LVM2-2.02.177
Introduction to LVM2
The LVM2 package is a set of tools
that manage logical partitions. It allows spanning of file systems
across multiple physical disks and disk partitions and provides for
dynamic growing or shrinking of logical partitions, mirroring and
low storage footprint snapshots.
This package is known to build and work properly using an LFS-8.3
platform.
Package Information
LVM2 Dependencies
Optional
mdadm-4.0,
reiserfsprogs-3.6.27, Valgrind-3.13.0, Which-2.21, xfsprogs-4.17.0 (all
five may be used, but are not required, for tests), and thin-provisioning-tools
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lvm2
Caution
Kernel versions between 4.1 and 4.4.1 have a broken RAID
implementation. If you want to use RAID type LV's, you should
install kernel version 4.4.2 or above. Note that several tests
use RAID logical volumes, and can generate a “kernel oops” with the faulty kernel version,
which usually renders the system unusable.
Kernel Configuration
Enable the following options in the kernel configuration and
recompile the kernel:
Note
There are several other Device Mapper options in the kernel
beyond those listed below. In order to get reasonable results if
running the regression tests, all must be enabled either
internally or as a module. The tests will all time out if Magic
SysRq key is not enabled.
Device Drivers --->
[*] Multiple devices driver support (RAID and LVM) ---> [CONFIG_MD]
<*/M> Device mapper support [CONFIG_BLK_DEV_DM]
<*/M/ > Crypt target support [CONFIG_DM_CRYPT]
<*/M/ > Snapshot target [CONFIG_DM_SNAPSHOT]
<*/M/ > Thin provisioning target [CONFIG_DM_THIN_PROVISIONING]
<*/M/ > Mirror target [CONFIG_DM_MIRROR]
Kernel hacking --->
[*] Magic SysRq key [CONFIG_MAGIC_SYSRQ]
Installation of LVM2
Install LVM2 by running the
following commands:
SAVEPATH=$PATH &&
PATH=$PATH:/sbin:/usr/sbin &&
./configure --prefix=/usr \
--exec-prefix= \
--enable-applib \
--enable-cmdlib \
--enable-pkgconfig \
--enable-udev_sync &&
make &&
PATH=$SAVEPATH &&
unset SAVEPATH
The tests use udev for logical
volume synchronization, so that the LVM udev rules and some
utilities need to be installed before running the tests. If you are
installing LVM2 for the first
time, and do not want to install the full package before running
the tests, the minimal set of utilities can be installed by running
the following instructions as the root
user:
make -C tools install_dmsetup_dynamic &&
make -C udev install &&
make -C libdm install
To test the results, issue: make
check_local as the root
user. Other targets are available and can
be listed with make -C test
help. The test timings are very dependent on the
speed of the disk(s), and on the number of enabled kernel options.
The tests do not implement the “expected
fail” possibility, and a small number of test failures
is expected by upstream. More failures may happen because some
kernel options are missing. For example, the lack of the
dm-delay device mapper
target may explain some failures. Some tests are flagged
“warned” if thin-provisioning-tools
are not installed. A workaround is to add the following flags to
configure:
--with-thin-check= \
--with-thin-dump= \
--with-thin-repair= \
--with-thin-restore= \
--with-cache-check= \
--with-cache-dump= \
--with-cache-repair= \
--with-cache-restore= \
Some tests may hang with kernel versions in the 4.1 and 4.2 series
(see above). They can be removed if necessary, for example:
rm
test/shell/lvcreate-large-raid.sh. The tests
generate a lot of kernel messages, which may clutter your terminal.
You can disable them by issuing dmesg
-D before running the tests (do not forget to issue
dmesg -E when tests
are done).
Note
The checks create device nodes in the /tmp directory. The tests
will fail if /tmp is mounted with the nodev option.
Now, as the root
user:
make install
Command Explanations
PATH=$PATH:/sbin:/usr/sbin: The
path must contain /sbin
and
/usr/sbin
for proper system tool
detection by the configure script. This
instruction ensures that PATH is properly set even if you build as
an unprivileged user.
--enable-applib
: This
switch enables building of the shared application library.
--enable-cmdlib
: This
switch enables building of the shared command library. It is
required when building the event daemon.
--enable-pkgconfig
: This
switch enables installation of pkg-config support files.
--enable-udev_sync
: This
switch enables synchronisation with Udev processing.
--enable-dmeventd
: This switch enables
building of the Device Mapper
event daemon.
--enable-lvmetad
: This switch enables
building of the LVM metadata
daemon, which avoids scanning all the filesystems when an lvm
command is run.
Contents
Installed Programs:
blkdeactivate, dmeventd (optional),
dmsetup, fsadm, lvm, lvmconf, lvmdump, and lvmetad (optional).
There are also numerous symbolic links to lvm that implement
specific functionalities
Installed Libraries:
libdevmapper.so, liblvm2app.so, and
liblvm2cmd.so; optional: libdevmapper-event.so,
libdevmapper-event-lvm2.so, libdevmapper-event-lvm2mirror.so,
libdevmapper-event-lvm2snapshot.so,
libdevmapper-event-lvm2raid.so, and
libdevmapper-event-lvm2thin.so
Installed Directories:
/etc/lvm and /lib/device-mapper
(optional)
Short Descriptions
blkdeactivate
|
is a utility to deactivate block device.
|
dmeventd
|
(optional) is the Device Mapper event daemon.
|
dmsetup
|
is a low level logical volume management tool.
|
fsadm
|
is a utility used to resize or check filesystem on a
device.
|
lvm
|
provides the command-line tools for LVM2. Commands are implemented via
sympolic links to this program to manage physical devices
(pv*), volume groups (vg*) and logical volumes (lv*).
|
lvmconf
|
is a script that modifies the locking configuration in
the LVM2 configuration
file.
|
lvmdump
|
is a tool used to dump various information concerning
LVM2.
|
lvmetad
|
(optional) is the LVM metadata daemon.
|
vgimportclone
|
is used to import a duplicated VG (e.g. hardware
snapshot).
|
libdevmapper.so
|
contains the Device
Mapper API functions.
|
Last updated on 2018-08-15 18:24:48 -0700