LVM (Logical Volume Management) はディスクを管理するものであり、複数のドライブやパーティションを結合して、より大きなボリュームグループ を作り出します。 これによりスナップショット からバックアップを取ったり、動的にボリュームサイズを変更したりできるようになります。 また RAID 1 アレーのようなミラーリング機能も実現できます。
LVM に関しての完璧な論議は、この概要説明の範囲を超えてしまいます。 ここでは基本的な概念について示すことにします。
以下に示すコマンドを実行していくためには LVM2-2.03.23 をインストールしておく必要があります。 コマンドはすべて
root
ユーザーにより実行します。
LVM を用いたディスク管理には、以下の考え方に基づいて実現されます。
/dev/sda3 や /dev/sdb などのような、物理的なディスク、またはパーティションのことです。
複数の物理ボリュームに対して名前づけされたグループであり、管理者がこれを制御します。 ボリュームグループを構成する物理ボリュームの数に制限はありません。 ボリュームグループに対しては、物理ボリュームを動的に追加したり削除したりすることができます。
ボリュームグループは、いくつかの論理ボリュームに分けることができます。 個々の論理ボリュームは、あたかも通常の Linux パーティションであるかのように、個別にフォーマットすることができます。 論理ボリュームは、必要に応じて管理ツールを使い、そのサイズを動的に変更することもできます。
具体的な例として、今 2 TB のディスクがあるとします。 そして大規模なデータベースを /srv/mysql
にマウントして構築するために、大容量のディスクが必要であるとします。
以下はそのためのパーティション設定の例です。
Partition Use Size Partition Type
/dev/sda1 /boot 100MB 83 (Linux)
/dev/sda2 / 10GB 83 (Linux)
/dev/sda3 swap 2GB 82 (Swap)
/dev/sda4 LVM remainder 8e (LVM)
/dev/sdb1 swap 2GB 82 (Swap)
/dev/sdb2 LVM remainder 8e (LVM)
はじめに物理ボリュームを初期化します。
pvcreate /dev/sda4 /dev/sdb2
A full disk can be used as part of a physical volume, but beware that the pvcreate command will destroy any partition information on that disk.
次に lfs-lvm と名づけたボリュームグループを生成します。
vgcreate lfs-lvm /dev/sda4 /dev/sdb2
ボリュームグループの状態を確認するには vgscan コマンドを用います。 そして論理ボリュームを生成します。 Since there is about 3900 GB available, leave about 900 GB free for expansion. Note that the logical volume named mysql is larger than any physical disk.
lvcreate --name mysql --size 2500G lfs-lvm lvcreate --name home --size 500G lfs-lvm
Finally the logical volumes can be formatted and mounted. In this example, the jfs file system (jfsutils-1.1.15) is used for demonstration purposes.
mkfs -t ext4 /dev/lfs-lvm/home mkfs -t jfs /dev/lfs-lvm/mysql mount /dev/lfs-lvm/home /home mkdir -p /srv/mysql mount /dev/lfs-lvm/mysql /srv/mysql
It may be needed to activate those logical volumes, for them to
appear in /dev
. They can all be
activated at the same time by issuing, as the root
user:
vgchange -a y
The LFS boot scripts automatically make these logical volumes
available to the system in the udev script. Edit the /etc/fstab
file as required to automatically mount
them.
A LVM logical volume can host a root filesystem, but requires the use
of an initramfs (initial RAM file system). The initramfs proposed in
「initramfs について」 allows to pass the lvm volume
in the root=
switch of the
kernel command line.
For more information about LVM, see the LVM HOWTO and the lvm man pages. A good in-depth guide is available from RedHat®, although it makes sometimes reference to proprietary tools.