source: postlfs/filesystems/aboutlvm.xml@ dd071443

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 dd071443 was dd071443, checked in by Pierre Labastie <pieere@…>, 3 years ago

Some precisions for the About LVM page

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

  • Property mode set to 100644
File size: 6.7 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
8<sect1 id="aboutlvm">
9 <?dbhtml filename="aboutlvm.html"?>
10
11 <sect1info>
12 <othername>$LastChangedBy$</othername>
13 <date>$Date$</date>
14 </sect1info>
15
16 <title>About Logical Volume Management (LVM)</title>
17
18 <para>
19 LVM manages disk drives. It allows multiple drives and partitions
20 to be combined into larger <emphasis>volume groups</emphasis>, assists in
21 making backups through a <emphasis>snapshot</emphasis>, and allows for
22 dynamic volume resizing. It can also provide mirroring similar to
23 a RAID 1 array.
24 </para>
25
26 <para>
27 A complete discussion of LVM is beyond the scope of this introduction,
28 but basic concepts are presented below.
29 </para>
30
31 <para>
32 To run any of the commands presented here, the <xref linkend='lvm2'/>
33 package must be installed. All commands must be run as the <systemitem
34 class="username">root</systemitem> user.
35 </para>
36
37 <para>
38 Management of disks with lvm is accomplished using the following concepts:
39 </para>
40
41 <variablelist>
42 <varlistentry>
43 <term>physical volumes</term>
44 <listitem>
45 <para>
46 These are physical disks or partitions such as
47 /dev/sda3 or /dev/sdb.
48 </para>
49 </listitem>
50 </varlistentry>
51
52 <varlistentry>
53 <term>volume groups</term>
54 <listitem>
55 <para>
56 These are named groups of physical volumes that
57 can be manipulated by the administrator. The number of physical
58 volumes that make up a volume group is arbitrary. Physical volumes
59 can be dynamically added or removed from a volume group.
60 </para>
61 </listitem>
62 </varlistentry>
63
64 <varlistentry>
65 <term>logical volumes</term>
66 <listitem>
67 <para>
68 Volume groups may be subdivided into logical volumes. Each logical
69 volume can then be individually formatted as if it were a regular
70 Linux partition. Logical volumes may be dynamically resized by
71 the administrator according to need.
72 </para>
73 </listitem>
74
75 </varlistentry>
76 </variablelist>
77
78 <para>
79 To give a concrete example, suppose that you have two 2 TB disks. Also
80 suppose a really large amount of space is required for a very large
81 database, mounted on <filename class='directory'>/srv/mysql</filename>.
82 This is what the initial set of partitions would look like:
83 </para>
84
85 <screen><literal>Partition Use Size Partition Type
86/dev/sda1 /boot 100MB 83 (Linux)
87/dev/sda2 / 10GB 83 (Linux)
88/dev/sda3 swap 2GB 82 (Swap)
89/dev/sda4 LVM remainder 8e (LVM)
90/dev/sdb1 swap 2GB 82 (Swap)
91/dev/sdb2 LVM remainder 8e (LVM)</literal></screen>
92
93 <para>
94 First initialize the physical volumes:
95 </para>
96
97 <screen><userinput>pvcreate /dev/sda4 /dev/sdb2</userinput></screen>
98
99 <note>
100 <para>
101 A full disk can be used as part of a physical volume, but
102 beware that the <command>pvcreate</command> command will destroy any
103 partition information on that disk.
104 </para>
105 </note>
106
107 <para>
108 Next create a volume group named lfs-lvm:
109 </para>
110
111 <screen><userinput>vgcreate lfs-lvm /dev/sda4 /dev/sdb2</userinput></screen>
112
113 <para>
114 The status of the volume group can be checked by running the command
115 <command>vgscan</command>. Now create the logical volumes. Since there
116 is about 3900 GB available, leave about 900 GB free for expansion. Note
117 that the logical volume named <emphasis>mysql</emphasis> is larger than
118 any physical disk.
119 </para>
120
121 <screen><userinput>lvcreate --name mysql --size 2500G lfs-lvm
122lvcreate --name home --size 500G lfs-lvm</userinput></screen>
123
124 <para>
125 Finally the logical volumes can be formatted and mounted. In this
126 example, the jfs file system (<xref linkend='jfsutils'/>) is used for
127 demonstration purposes.
128 </para>
129
130 <screen><userinput>mkfs -t ext4 /dev/lfs-lvm/home
131mkfs -t jfs /dev/lfs-lvm/mysql
132mount /dev/lfs-lvm/home /home
133mkdir -p /srv/mysql
134mount /dev/lfs-lvm/mysql /srv/mysql</userinput></screen>
135
136 <para>
137 It may be needed to activate those logical volumes, for them to
138 appear in <filename class="directory">/dev</filename>. They can all
139 be activated at the same time by issuing, as the
140 <systemitem class="username">root</systemitem> user:
141 </para>
142
143<screen role="root"><userinput>vgchange -a y</userinput></screen>
144
145 <para revision="sysv">
146 The LFS boot scripts automatically make these logical volumes available to
147 the system in the <command>udev</command> script. Edit the
148 <filename>/etc/fstab</filename> file as required to automatically mount
149 them.
150 </para>
151
152 <para>
153 A LVM logical volume can host a root filesystem, but requires the use
154 of an initramfs (initial RAM file system). The initramfs proposed in
155 <xref linkend="initramfs"/> allows to pass the lvm volume in
156 the <parameter>root=</parameter> switch of the kernel command line.
157 </para>
158
159 <para revision="systemd">
160 If not using an initramfs, there is a race condition in <application>
161 systemd</application> preventing mounting logical volumes through
162 <filename>/etc/fstab</filename>. You must create a <quote>mount</quote>
163 unit (see systemd.mount(5)) as in the following example, which mounts
164 the <filename class="directory">/home</filename> directory automatically
165 at boot:
166 </para>
167
168<screen role="root" revision="systemd"><userinput>cat &gt; /etc/systemd/system/home.mount &lt;&lt; EOF
169<literal>[Unit]
170Description=Mount the lvm volume /dev/lfs-lvm/home to /home
171
172[Mount]
173What=/dev/lfs-lvm/home
174Where=/home
175Type=ext4
176Options=default
177
178[Install]
179WantedBy=multi-user.target</literal>
180EOF</userinput></screen>
181
182 <note revision="systemd">
183 <para>
184 The name of the unit must be the name of the mount point with the
185 `/' character replaced by `-', omitting the leading one.
186 </para>
187 </note>
188
189 <para revision="systemd">
190 Next the unit must be enabled with:
191 </para>
192
193<screen role="root" revision="systemd"><userinput>systemctl enable home.mount</userinput></screen>
194
195 <para>
196 For more information about LVM, see the <ulink
197 url="http://www.tldp.org/HOWTO/LVM-HOWTO/">LVM HOWTO</ulink> and
198 the lvm man pages. A good in-depth
199 <ulink url="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/logical_volume_manager_administration/index">
200 guide</ulink> is available from RedHat<superscript>&reg;</superscript>,
201 although it makes sometimes reference to proprietary tools.
202 </para>
203
204</sect1>
Note: See TracBrowser for help on using the repository browser.