3.5.7 LVMミラーリングを使用した場合の共有ディスクの制御
LVMミラーリングを使用すると,あるディスク装置に障害が発生してそのディスク装置が使用できない状態になっても,使用できるディスクにミラーのコピーがあれば,そのデータにアクセスできるため,システムの可用性が向上します。
LVMミラーリングでは,論理ボリューム単位にミラーを構成し,最大三つのコピーを持てます。ここでは,共有ディスクにLVMミラーリングを使用する場合の考慮点について説明します。LVMミラーリングの詳細については,OSのマニュアルを参照してください。
- 注意事項
-
ハイブリッドフェンシングを使用する場合,この機能は使用できません。
- 〈この項の構成〉
(1) LVMミラーリングを使用した場合の問題点
ボリュームグループ内にある一定数のディスクに障害が発生すると,ボリュームグループ自体が使用できないか,またはボリュームグループをオンライン化できません。この機能は,規定数(クォーラム)と呼ばれるLVMの機能であり,これによって,LVMはボリュームグループ内のデータをディスク障害から保護しています。
LVMミラーリングを使用した構成でディスク障害が発生し,規定数が失われると,ボリュームグループをオンライン化できないため,共有ディスク上のデータにアクセスできません。そのため,サーバが起動できないか,または系切り替えに失敗します。ただし,一つ以上のミラーのコピーが使用できるディスクにある場合などは,規定数が失われても,該当ボリュームグループを強制的にオンライン化して使用できるようにすることが望ましいことがあります。
ボリュームグループを強制的にオンライン化するには,OSのvaryonvg -fコマンドを使用します。規定数が失われたボリュームグループを強制的にオンライン化する場合,LVMのデータは保証されないため,データの破壊につながるおそれがあります。したがって,強制的なオンライン化に伴う危険性を十分に理解した上で手動処置を実行する必要があります。varyonvg -fコマンドについては,OSのマニュアルを参照してください。
例えば,オンライン化する前にアクセスしていたディスクと,オンライン化するときに使用できるディスクが異なる場合に,強制的なオンライン化によってデータの内容に矛盾が生じることがあります。強制的なオンライン化によってデータの内容に矛盾が生じる例を次の図に示します。
この例では,障害によって,ディスクへのI/Oパスおよびアクセスできるディスクが実行系と待機系とで異なっています。この場合,系切り替え後に,強制的なオンライン化によって,ボリュームグループをオンライン化しても,待機系は古いミラーのコピーにアクセスします。
実行系ではアクセスできるディスク「新コピー」を使用しますが,系切り替え後,待機系ではディスク「古コピー」の古いデータを使用してしまうため,結果としてデータの内容に矛盾が生じます。
(2) 問題点を回避するための方法
規定数が失われた場合の問題点を回避するには,次のどちらかの方法があります。
-
規定数が失われないようにする。
次のどちらかの方法で規定数が失われないようにします。強制的なオンライン化は不要です。
-
2ミラー構成にする。
三つのコピーを持つ構成であり,単一のディスク障害が発生しても規定数は失われません。
-
データを持たない別のディスクを構成する。
データを持たない別のディスクを用意することで,単一のディスク障害が発生しても規定数は失われません。
-
-
規定数が失われた場合,ボリュームグループを強制的にオンライン化する。
HAモニタの強制varyon機能を使用します。
強制varyon機能を使用すると,規定数が失われた場合でも,サーバの起動および系切り替えの際に,OSのvaryonvg -fコマンドによってボリュームグループを強制的にオンライン化できるようになります。ただし,強制varyon機能は,適用できる構成や実行できる条件に制限があります。
以降,HAモニタの強制varyon機能を使用したボリュームグループの強制的なオンライン化について説明します。
(3) 強制varyon機能の適用構成
HAモニタの強制varyon機能を適用できるのは,LVMミラーリングの構成が,以降で説明するすべての条件を満たしている場合です。
- 1ミラー構成であること
-
2ミラー構成の場合,規定数が失われるおそれがなく,強制varyon機能は適用できません。
- ボリュームグループ内のすべての論理ボリュームがミラーリングされていること
-
強制varyonの対象とするボリュームグループ内に,ミラーリングされていない論理ボリュームがある場合,強制varyon機能を適用できません。強制varyon機能を適用できる構成と,適用できない構成の例を次の図に示します。
図3‒35 強制varyon機能を適用できる構成と適用できない構成の例1 - 同一ディスク装置内でミラーリングされていないこと
-
同一ディスク装置内でミラーリングされている場合,強制varyon機能を適用できません。強制varyon機能を適用できる構成と,適用できない構成の例を次の図に示します。
図3‒36 強制varyon機能を適用できる構成と適用できない構成の例2 - 同一系統のディスク装置内でミラーリングされていないこと
-
同一系統のディスク装置内でミラーリングされている場合,強制varyon機能を適用できません。強制varyon機能を適用できる構成と,適用できない構成の例を次の図に示します。
図3‒37 強制varyon機能を適用できる構成と適用できない構成の例3
(4) 強制varyon機能の使用方法
HAモニタの強制varyon機能を使用する場合,HAモニタが強制的なオンライン化を実行する条件は,次のとおりです。
-
規定数が失われて,ボリュームグループがオンライン化できない状態である。
-
指定されたボリュームグループ内のすべての論理ボリュームがアクセスできる状態である。
強制的なオンライン化によるデータ破壊を防ぐには,HAモニタが提供するチェックオプションを使用するか,または,チェックオプションを使用しないで,強制varyon機能の使用タイミングをユーザが判断する必要があります。
ここでは,チェックオプションを使用する場合と使用しない場合,それぞれの強制varyon機能の使用方法,および使用時の注意事項について説明します。強制varyon機能を使用する場合の,障害発生時の対処方法については,「7.5.9 HAモニタの強制varyon機能を使用して強制的にオンライン化する」を参照してください。
(a) チェックオプションを使用する場合
LVMは,各ディスク内のLVM管理情報に,各ディスクの状態を保持しています。ディスク障害などが発生してI/Oエラーとなった場合,LVMはLVM管理情報中の該当ディスクの状態を更新します。
チェックオプションを使用する場合,強制的なオンライン化を実行する前に,LVM管理情報を基にデータが破壊されるおそれがあるかどうかをHAモニタが判断するため,強制的なオンライン化によってデータが破壊されることはありません。したがって,ユーザは強制varyon機能を使用するタイミングを考慮する必要はありません。
ただし,障害の状況によっては,LVM管理情報が更新されないことが原因で,強制的なオンライン化が実行されないことがあります。これは,HAモニタが共有ディスク上のLVM管理情報を基にチェックするためです。この場合,ユーザの手動処置が必要です。
強制的なオンライン化が実行されないケースを次に示します。
- 待機系のI/Oパスだけに障害が発生しているときに系切り替えをしたケース
-
待機系のI/Oパスだけに障害が発生して,待機系から片方の共有ディスクにアクセスできないケースです。この場合,系切り替え時に待機系からの強制的なオンライン化が実行されません。待機系のI/Oパスだけに障害が発生したときに系切り替えをした例を次の図に示します。
図3‒38 待機系のI/Oパスだけに障害が発生しているときに系切り替えをした例 - 共有ディスク上の管理情報が更新される前にサーバが起動したケース
-
サーバ起動前など,ボリュームグループが非活動化(varyoff)の状態で,どちらかの共有ディスクに障害が発生したケースです。この場合,サーバ起動時に実行系からの強制的なオンライン化が実行されません。共有ディスク上の管理情報が更新される前にサーバが起動した例を次の図に示します。
図3‒39 共有ディスク上の管理情報が更新される前にサーバが起動した例 - 共有ディスク上の管理情報が更新される前に系切り替えをしたケース
-
ディスク障害の発生と同時に系切り替えをしたなど,共有ディスク上の管理情報が更新される前に系切り替えをしたケースです。この場合,系切り替え時に待機系からの強制的なオンライン化が実行されません。共有ディスク上の管理情報が更新される前に系切り替えをした例を次の図に示します。
図3‒40 共有ディスク上の管理情報が更新される前に系切り替えをした例
(b) チェックオプションを使用しない場合
チェックオプションを使用しない場合,強制varyon機能の使用タイミングをユーザが判断します。この場合,通常の運用ではHAモニタの強制varyon機能を無効にしておいて,ディスク障害が発生したあとなど,必要なときだけ機能を有効にしてください。
(5) 必要な環境設定
強制varyon機能を使用するには,サーバ対応の環境設定のvg_forced_varyonオペランドを,ボリュームグループ単位に指定します。また,チェックオプションを使用するには,vg_forced_varyonオペランドの指定に加え,サーバ対応の環境設定のvg_forced_checkオペランドを,サーバ単位に指定します。
なお,vg_forced_varyonオペランドは,サーバの共有リソース動的変更コマンド(mondeviceコマンド)で,サーバ稼働中でも指定を変更できます。