2.3. ボリュームグループのアクティブ化をクラスター内に限定
次の手順でボリュームグループを設定すると、クラスターでしかボリュームグループを作動することができなくなり、またボリュームグループは起動時にクラスター以外の場所では作動しなくなります。ボリュームグループがクラスター外部のシステムによってアクティブ化されると、ボリュームグループのメタデータが破損することがあります。
この手順では
/etc/lvm/lvm.conf
設定ファイル内の volume_list
のエントリーを編集します。volume_list
のエントリーに記載されているボリュームグループはクラスターマネージャーの管轄外となるローカルノードでの自動作動が許可されます。ノードのローカルな root ディレクトリーやホームディレクトリーに関連するボリュームグループはこのリストに含ませてください。クラスターマネージャーで管理するボリュームグループは volume_list
のエントリーには入れないでください。ここでの手順に clvmd を使用する必要はありません。
クラスター内の各ノードで以下の手順を実行します。
- 次のコマンドを実行して、
/etc/lvm/lvm.conf
ファイルでlocking_type
が 1 に設定されていることとuse_lvmetad
が 0 に設定されていることを確認します。また、このコマンドを実行すると、すべての lvmetad プロセスがすぐに無効になり、停止します。#
lvmconf --enable-halvm --services --startstopservices
- 以下のコマンドを使用して、ローカルストレージに現在設定されているボリュームグループを確認します。これにより、現在設定されているボリュームグループの一覧が出力されます。このノードの root とホームディレクトリーに、別のボリュームグループの領域を割り当てると、この例のように以下のボリュームが出力に表示されます。
#
vgs --noheadings -o vg_name
my_vg rhel_home rhel_root my_vg
以外のボリュームグループ (クラスターに定義したボリュームグループ) をエントリーとして/etc/lvm/lvm.conf
という設定ファイルのvolume_list
に追加します。例えば、root ディレクトリー用のボリュームグループ、ホームディレクトリー用のボリュームグループを別々に用意している場合は、lvm.conf
ファイルのvolume_list
の行のコメントを外して以下のように root ディレクトリー用、ホームディレクトリー用の各ボリュームグループをvolume_list
のエントリーとして追加します。クラスターに対してだけ定義したボリュームグループ (この例ではmy_vg
) は、この一覧は含まれない点に注意してください。volume_list = [ "rhel_root", "rhel_home" ]
注記クラスターマネージャーの管轄外で作動させるローカルボリュームグループがノードにない場合でもvolume_list
のエントリーはvolume_list = []
と指定して初期化する必要があります。initramfs
ブートイメージを再構築して、クラスターが制御するボリュームグループがブートイメージによりアクティベートされないようにします。以下のコマンドを使用して、initramfs
デバイスを更新します。このコマンドが完了するまで最大 1 分かかる場合があります。#
dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
- ノードを再起動します。注記ブートイメージを作成したノードを起動してから、新しい Linux カーネルをインストールした場合は、新しい
initrd
イメージは、作成時に実行していたカーネル用で、ノードの再起動時に実行している新しいカーネル用ではありません。再起動の前後でuname -r
コマンドを使って実行しているカーネルリリースを確認し必ず正しい initrd デバイスを使用するよう注意してください。リリースが同じでない場合には、新規カーネルで再起動した後にinitrd
ファイルを更新して、ノードを再起動します。 - ノードが再起動したら pcs cluster status コマンドを実行し、クラスターサービスがそのノードで再度開始されたかどうかを確認します。
Error: cluster is not running on this node
というメッセージが表示される場合は、以下のコマンドを入力します。#
pcs cluster start
または、クラスター内の各ノードの再起動が完了するのを待ってから次のコマンドで各ノードでのクラスターサービスの起動を行います。#
pcs cluster start --all