LVM パーティション - Logical Volume Manager
このページはは初心者むけの基本的なガイドです。LVMについて深く学ぶことはユーザーとしてのあなたの責任です。ページの最後のLVMについての情報源リンクは役にたつでしょうが、決してすべてを網羅しているわけではありません。
aptosid-2010-03-apate 以降のリリースから有効になります。
ロジカルボリュームはハードドライブの従来のパーティションと違って、複数のディスクが使え、必要に応じて規模を拡大できます。
しかし、従来方法によるパーティションにしても、LVMを使う方法にしても、パーティショニングとは頻繁に行う作業ではないため、満足な結果が得られるにはよく考え、試行錯誤を繰り返す必要があるでしょう。
知っておかなければならない三つの用語があります:
- 物理的ボリューム(Physical Volumes): これは/dev/sda や /dev/sdb1 といった実際の物理的なハードディスクやパーティションです。今まで mount や unmount で使用していたものです。LVM を使う場合、複数の物理的ボリュームを一緒にボリュームグループとして使います。
- ボリュームグループ(Volume Groups): ボリュームグループはいくつかの物理ボリュームから構成され、これを使って論理ボリュームを作成したり、サイズ変更したり、削除したりします。ボリュームグループを複数の物理ボリュームを組み合わせた「仮想ディスク」のように考えるとわかりやすいでしょう。これをいくつかの「仮想パーティション」に細分することもできて、その一つ一つを論理ボリュームと考えることができます。
- 論理ボリューム(Logical Volumes): 論理ボリュームは最終的にシステムにマウントされるボリュームです。システムの作動中にこれを加えたり、削除したり、サイズ変更したりすることができます。論理ボリュームはボリュームグループに含まれるため、実際の物理ボリュームのどれか一つより大きいサイズに設定することができます。(例、四つの 250GB ドライブを合わせて 1TB のボリュームグループを作り、これを二つに分けて 500GB ずつの論理ボリュームを作るなど)
六つのステップが必要です
ここの例では新しいパーティションを作成する場合、または新しくパーティション構成を変更するため、LVM にコンバートするパーティション上のデータはすべて消去する場合を想定しています。
現在のところ GParted や KDEパーティションマネージャなどの GUI パーティションマネージャは LVM パーティションをサポートしていないため、cfdisk または fdisk の使用がひつようです。
Step 1: パーティションテーブルの作成:
fdisk /dev/sda n new: 新規パーティションの作成 p primary: このパーティションをプライマリーパーティションにする 1 no.1: このパーティションの識別ように1番の番号をあてる ### サイズ確保 ### ドライブ全部に設定するには最初と最後のシリンダー番号をEnterでデフォルトに設定 t toggle: 作成するパーティションのタイプをトグル(順に変更)する。 8e が Linux LVM の16進数の番号です。 W write: 変更をディスクに書き込む。##このコマンドでパーティションテーブルが変更されます。この時点までに間違えに気づいたら、以前のパーティションレイアウトに戻れますからデータはまだ無事です。##
二つ以上のディスクにまたがる論理ボリュームを作りたかったら上のプロセスを各ディスクで行います。
Step 2: パーティションを物理ボリュームとして設定する。このコマンドでディスク上のデータは消去されます:
pvcreate /dev/sda1
必要なパーティションすべてでこのプロセスを切り返します。
Step 3: ボリュームグループの作成:
vgcreate vulcan /dev/sda1
たとえば三つのディスクにまたがる vulcan という名のグループを作りたかったら、この vgcreate コマンドのパラメータに加えます。
vgcreate vulcan /dev/sda1 /dev/sdb1 /dev/sdc1
ここまで正しく進んでいるかどうか、次のコマンドの出力で確認できます。
vgscan
vgdisplay コマンドは size プロパティを表示します:
vgdisplay vulcan
Step 4: 論理ボリュームの作成。論理ボリュームの作成時サイズを決めなくてはなりません。思い立ったときに再起動なしに論理ボリュームのサイズ変更ができるところが LVM の優れたところです。
仮に spock という名でサイズが 300GB の論理ボリュームを vulcan という名のボリュームグループ上に作成するには:
lvcreate -n spock --size 300g vulcan
Step 5: ボリュームをフォーマットする。時間がかかるので気長に待ちましょう:
mkfs.ext4 /dev/vulcan/spock
Step 6:マウント
mkdir /media/spock/
お好みのエディタで fstab を編集して論理ボリュームを起動時にマウントするように設定する。
mcedit /etc/fstab
特にLVM では(スナップショットなどのため)しばしば複数のファイルシステムが同じUUIDをもつことがよくあるため、ファイルシステムのクローンなどUUIDの衝突を心配しないよう、LVM についてはUUIDより /dev/vulcan/spock などのパスを使うほうが良い。
/dev/vulcan/spock /media/spock/ ext4 auto,users,rw,exec,dev,relatime 0 2
オプションとして: ボリュームの所有者を変更して他のユーザーが読み書きできるように設定する:
chown root:users /media/spock
chmod 775 /media/spock
これで基本的な LVM が設定されました。
論理ボリュームのサイズ変更
It is highly recommended that you use a live ISO to change the partition sizes. Whilst growing the partition 'on the fly' may be error free, the same can not be said when reducing the volume, as anomalies will cause data loss, particularly if / (root) or /home are involved.
To resize the volume from 300GB to 500GB, as used in this example:
umount /media/spock/
lvextend -L+200g /dev/vulcan/spock
Then run the command for the filesystem to be resized:
e2fsck -f /dev/vulcan/spock
resize2fs /dev/vulcan/spock
mount /media/spock
To resize the volume from 300GB down to 280GB, as used in this example:
umount /media/spock/
Then run the command for the filesystem to be resized:
e2fsck -f /dev/vulcan/spock
resize2fs /dev/vulcan/spock 280g
Then resize the volume
lvreduce -L-20g /dev/vulcan/spock
resize2fs /dev/vulcan/spock
mount /media/spock
An LVM GUI
#### -->GUI の LVM マネージャ
system-config-lvm を使えば GUI プログラムで LVM を管理することができます。root としてコマンドラインからインストールします:
apt-get install system-config-lvm
man system-config-lvm # 必ず読みましょう
LVM についての情報源:
- Debian Administration - A simple introduction to working with LVM
- IBM - Logical volume management
- IBM - Resizing Linux partitions, Part 2: Advanced resizing
- Red Hat - LVM Administrator's Guide
- Logical Volume Manager (Linux)
- Setting up an LVM for Storage
- Creating a LVM in Linux
- Linux lvm - Logical Volume Manager