◆ 概要
node1、node2など複数のノードからマウントされる可能性のある論理ボリュームを
排他制御し単一のノードでマウントさせるまでの手順を記載しておく。
そもそもなぜ複数のノードで同じボリュームを利用するのであろうか。
その疑問を抱いたのであれば例えばクラスタを想像してもらえればいいだろうか。
さて共有ディスク云々の前に、今回は論理ボリュームを作成する手順もあわせて残しておく。
論理ボリュームを作るまでの流れは以下の通りである。
1つ以上の物理ボリューム(Physical Volume)をまとめ、
ボリュームグループ(Volume Group)を作り、
そこから論理ボリューム(Logical Volume)を切り出す。
物理ボリュームが1つであってもボリュームグループは当然作成できるが、
ここでは2つの物理ボリュームを使うこととする。特に理由はない。ただの学習のためである。
物理ボリューム(Physical Volume)
/dev/sda1 (500MB)
/dev/sda2 (500MB)
↓
ボリュームグループ(Volume Groupe)
/dev/vg01 (1000MB)
名前は任意である。
↓
論理ボリューム(Logical Volume)
/dev/vg01/lvol01 (200MB)
/dev/vg01/lvol02 (50MB)
/dev/vg01/lvol03 (10MB)
・
・
・
名前は任意である。
当然1000MBまで、任意の容量でボリュームで切ることができる。
それでは早速始めていく。
◆ パーティションの作成
OSインストール時にすでに適切にパーティションを分けていればここでの手順は不要である。
fdiskコマンドを使いパーティションを分ける。
# fdisk /dev/sda
現在のパーティション状態を確認する(print)。
Command(m for help): p
新規パーティションを作る(new)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
ここでパーティションsda1、sda2を作る。
既に4つパーティションを作っていれば、拡張領域に作成していけばよい。
以下は、sda1パーティションを作成する例を示す。
パーティション番号を設定する。
Partition number (1-4): 1
どこからパーティションを作成するのか、シリンダ番号を指定する。
First cylinder(1-10240, default 1): Enter
パーティションタイプを変更する(toggle)。
Command (m for help): t
Hex code ( type L to list codes ): 8e
8eはLinux LVM用のヘックスコードである。
変更を適用する(write)
Command (m for help): w
q(quit)で終了すると、変更は有効にならない。
◆ 物理ボリューム(PG)の作成
物理ボリュームを作成するためのパーティションを指定する。
# pvcreate -f /dev/sda1
# pvcreate -f /dev/sda2
-f : force
作成したPGを確認する。
# pvdisplay
◆ ボリュームグループ(VG)の作成
ボリュームグループvg01を作成する。
# vgcreate vg01 /dev/sda1 /dev/sda2
作成したVGを確認する。
# vgdisplay
◆ 論理ボリューム(LV)の作成
データ格納用の論理ボリュームlvol01を作成する。
# lvcreate -L 200M -n lvol01 vg01
その他論理ボリュームも同じ手順で作っていけばいい。ここでは省略。
作成したLVをを確認する。
# lvdisplay
◆ ファイルシステムの作成
ext3のファイルシステムを作成する。
# mke2fs -j /dev/vg01/lvol01
-j : ext3 ジャーナルを持ったファイルシステムを作成
ファイルシステムが作成されたことを確認する。
# tune2fs -l /dev/vg01/lvol01
※作成したファイルシステムに対して自動でfsckをかけるかどうかは検討した方がいい
◆ マウントの実施(ディスクを共有していない場合)
マウントポイントを作成する。
# mkdir /test
マウントする。
# mount /dev/vg01/lvol01 /test
◆ マウントの実施(ディスクを共有している場合)
同時に複数のノードからボリュームグループがアクティブ化されないように、
ボリュームグループにアクティブ化保護用の排他タグを付与する。
# vgchange --addtag node01 vg01
ボリュームグループのタグを確認する。
# vgs -o +tags
共有ディスクのアクティベイトを行う。
# vgchange -a y vg01
a : active
y : yes
マウントポイントを作成する。
# mkdir /test
マウントする。
# mount /dev/vg01/lvol01 /test
◆ 別ノードへの共有ディスクのつけかえ
node01、node02で利用できる共有ディスクをnode01側にマウントさせた。
この状態からnode2側へ共有ディスクをつけかえるにはどうすればいいだろうか。
node01側操作
アンマウントする。
# umount /test
ボリュームグループを無効にする。
# vgchange -a n vg01
n : no
ボリュームグループのタグを削除する。
# vgchange --deltag node01 vg01
念のため、node01を停止しておく。
# shutdown -h now
node02側操作
# vgchange --addtag node02 vg01
# vgchange -a y vg01
# mkdir test
# mount /dev/vg01/lvol10 /test