LVMをまとめてみようと思いついた
以前vgdisplayを取り上げた時、LVM(Logical Volume Manager)は難しくて自分には
よくわからん…的なことを書いたけど、ちょっと調べたり実践したりしているうちに
流れは意外とシンプルなんだなー、という気がしてきた。
そこで、ようやくまとめてみようと決意。
LVM構築の大まかな流れは、以下のようになる。
ディスクのパーティショニング
↓
物理ボリューム(PV)の作成
↓
ボリュームグループ(VG)の作成
↓
論理ボリューム(LV)の作成
↓
ファイルシステムを作成して、マウント
以下、若干詳細な追加の説明。といってもあくまで自分メモなので、「ゆるい」箇所が
あるかもしれない。その辺はご容赦を。
(1)fdiskでパーティショニング
最初に以下コマンドで共有ストレージのディスクが見えていることを確認。
ここではパーティション名を仮に/dev/sdaとしておく。
# lssd (ディスクの一覧を確認)
# fdisk -l /dev/sda (個別のディスクを確認)
確認できたら、fdisk(またはcfdisk)コマンドにより/dev/sda のパーティションの
システムタイプをLVMとして保存する。
この操作により、パーティション/dev/sda1 が作成される。
# fdisk /dev/sda
(以降対話式コマンド。詳細は今回は省略)
ちなみに途中”t”オプションでシステムIDを指定するが、LVM パーティションのシステム ID は8e。
また、最後にwで書込みをするまでは、それまでの設定はメモリ上に保存されているだけとなる。
wで書込みをするまではやり直しがきくってこと。
(2)pvcreateで物理ボリュームを作成
作成したパーティションに対して、pvcreateコマンドで物理ボリュームを作成する。
これによりディスクが初期化される。
LVMパーティションが区画整備される、とも言える。
# pvcreate /dev/sda1
作成後、pvs,pvdisplayコマンドでPV(物理ボリューム)の一覧と割り当てサイズ(PSize)
を確認する。
この時点でのpvsでは、今しがた作成したPVに関して”VG”の箇所にボリュームグループ
が存在しない。まぁ、当たり前ですけど・・・
(3)vgcreateでボリュームグループを作成
vgcreateコマンドでVGを作成。これによりVGが定義され、同時にPVの中にPEが作成
される。PEサイズはデフォルトで4MBとなっている。
他のサイズにするには、-sオプションで明示的に指定する。
書式は “vgcreate option VG NAME device file name” となる。
ひとつのVGの配下に複数のデバイスファイルを所属させるには、以下のように続けて指定する。
#vgcreate -s 32M VG NAME /dev/sda1 /dev/sdb1 /dev/sdc1
作成後pvsでPVのステータスを確認すると、”VG”の箇所に先ほどは存在しなかった
ボリュームグループ名が表示されているはず。
vgs,vgdisplayでVGのステータスを確認する。ちなみに上記のよう3つのデバイスファイルを
配下に作成してvgdisplayすると、Logical volumeのSegmentが3になるはず(通常は1)。
(4)lvcreateで論理ボリュームを作成
lvcreateコマンドで、論理ボリュームを作成する。
-lオプションでサイズを、-nオプションで論理ボリューム名を指定する。
ここで指定するサイズとはpvdisplayした時のTotal PEの値となる。
# lvcreate -l 434 -n LV NAME VG NAME
lvcreateは、普通のHDで言うところの「パーティションを切る」作業に当たると思うけど、
よく「LVを切る」って言い方もしますね。
ちなみに「PEサイズ× Total PEの値=PVサイズ(物理的なディスクサイズ)」となる。
また、作成後、pvs,vgsすると、PFreeやVFreeが0になっているはず。
lvs,lvdisplayで論理ボリュームのステータスを確認しておく。
(5)ファイルシステムの作成(mkfs)
mkfsコマンドで、論理ボリュームに対してファイルシステムを作成する。
ファイルシステムタイプはext3,XFS等、環境に応じて指定。
以下の例ではext3としている。
# /sbin/mkfs.ext3 LVのパス
ここで冗長構成の場合は待機系パーティションテーブルを更新し、vgscanでVGの認識をさせる。
以下その流れ。
1.現用系でVGを非アクティベイト
# vgchange -a -n VG NAME
2.待機系でパーティションテーブル更新
# /sbin/sfdisk -R /dev/sda
3.待機系でVGの認識をさせる
# vgscan VG NAME
4.LVM構成情報のバックアップファイルを取得
# vgcfgbackup VG NAME
4.現用系でVGをアクティベイト
# vgchange -a -y VG NAME
(6)マウント(mount)
マウントポイントとなるディレクトリを作成後、mountコマンドでマウントする。
# mount -t ext3 LVのパス マウントポイントのパス
dfコマンドでマウントされたかどうか確認する。
# df -m | grep /dev/sda
なーんだ、これだけだったのか(といいつつ、また長くなってしまった)。
…って、最近になってようやくつかめてきたんだけど(汗)
しかし、どんな分野でも分かってくるとうれしいものだw
次回はpvdisplayの説明を少し。
関連記事
pvs,pvdisplayで物理ボリュームの確認
vgs,vgdisplayでボリュームグループの確認
lvs,lvdisplayで論理ボリュームの確認
usage of vgdisplay
カーネル2.4.*のLinuxでPVやVGの一覧を確認するには
Linux記事一覧はこちらをどうぞ
↓ ↓ ↓
Linux-index