もくじ
- 第1章:『また夜中か…』— crm_mon が赤いとき、必要なのは“原因当て”より先に“状況把握”
- 第2章:Pacemaker と Corosync の役割分担を5分で思い出す(誰が何を決めている?)
- 第3章:最初の5分で見るべき3点セット:quorum / stonith / resource
- 第4章:『切替わらない』『両方動く』— split-brain の前兆とフェンシング不発の典型原因
- 第5章:ログは味方:corosync / pacemaker / journalctl の読みどころ(見る順番)
- 第6章:復旧手順の“触る順番”を固定化する:停止→隔離→整合→再起動→再配置
- 第7章:パターン別復旧① ノード障害(片系ダウン・再参加・誤検知)
- 第8章:パターン別復旧② ネットワーク断(リング/スイッチ/冗長の落とし穴)
- 第9章:パターン別復旧③ ストレージ不整合(DRBD/iSCSI/FS、整合性の取り方)
- 第10章:結論:HAは魔法じゃない—“説明できる運用”が夜間対応を減らし事業停止リスクを下げる
【注意】 本記事はPacemaker/Corosyncを用いたLinux HAクラスタ運用の一般的な解説です。実環境の構成(STONITH機器、ネットワーク冗長、共有ストレージ方式、業務要件、SLA等)により最適手順は変わり、誤操作はサービス停止やデータ不整合を招きます。判断に迷う場合や停止影響が大きい場合は、株式会社情報工学研究所のような専門事業者へ相談し、状況に合わせた切り分けと復旧計画を立ててください。
第1章:『また夜中か…』— crm_mon が赤いとき、必要なのは“原因当て”より先に“状況把握”
夜間にアラートが鳴って、端末を開いた瞬間に crm_mon が赤い。現場の頭の中はだいたいこうです。
「え、切り替わってない? いや、片系に寄ってる? そもそも“今”サービスは生きてるの?」
この瞬間にやりがちなのが、ログを掘る前に設定を触ったり、リソースを手で動かしたりすることです。気持ちは分かります。早く沈静化したい。でもHAクラスタの障害は、“現象が連鎖する”のが厄介です。焦って触ると、状況が変わって「何が原因で、何をして、どう悪化したか」が見えなくなります。
ここで最初にやるべきは、原因当てではなくダメージコントロール(被害最小化)です。具体的には「いまの実害」と「クラスタが判断している状態」を分離して把握します。
最初の5分で揃える“事実”は次の3つです。
- サービス影響:エンドポイントは応答しているか(LB/VIP/HTTP/DB接続など)
- クラスタ視点:どのノードがOnline/Offline扱いか、どのリソースがStarted/Stoppedか
- 安全装置:quorum と STONITH(フェンシング)が機能する前提が残っているか
たとえば、観測の入口はこれだけでも十分です(環境によりコマンドは異なります)。
- pcs status / crm status:全体の要約(DC、ノード状態、リソース状態)
- crm_mon -Afr1:状態変化も含めた観測(頻繁に叩くより、一度保存して比較する)
- journalctl:該当時間帯のpacemaker/corosyncログの“流れ”を掴む
ポイントは「コマンドを何回も叩いて画面が変わる」こと自体が情報だ、ということです。HAの障害は、クラスタが再計算し続けている場合があります。だから、最初はスクリーンショットやコピペで“現時点の証拠”を固定しておくと、後で原因に戻れます。
そして次に大事なのが、“触る順番”を決めることです。現場の本音として「とにかく復旧させたい」のは自然です。ただ、順番を誤ると、復旧したように見えても再発しやすい“不安定状態”が残ります。本記事では、まず状況を固定し、次にクラスタの安全装置(quorum/STONITH)を確認し、その上でリソースやノードを扱う、という一本の線で進めます。
なお、ここで「いま何が起きているか、どこまで触っていいか」を短時間で判断できない場合は、一般論で粘るより、専門家に状況を共有して収束(落とし込み)を図る方が結果的に早いことが多いです。特に共有ストレージやDRBDが絡む場合、誤った再起動や手動マウントがデータ不整合につながります。
第2章:Pacemaker と Corosync の役割分担を5分で思い出す(誰が何を決めている?)
障害対応で迷子になる一番の原因は、「どの層の問題か」を混ぜて考えてしまうことです。Pacemaker/Corosyncは、ざっくり言うと“通信(メンバーシップ)”と“意思決定(リソース制御)”を分担しています。
| 要素 | 主な役割 | 障害時に起きがちなこと |
|---|---|---|
| Corosync | ノード間のクラスタ通信、メンバーシップ(参加/離脱)、quorum判定の土台 | ネットワーク断・遅延で「見えているメンバー」が変わり、分断のきっかけになる |
| Pacemaker | クラスタ全体の状態(CIB)に基づき、リソースをどこで動かすか決定し実行 | リソース起動失敗→移動→再試行が連鎖し、状態が揺れる(フラッピング) |
| STONITH/Fencing | 分断時に“片側を確実に止める”安全装置(データ破壊の回避) | 無効化・設定不備だとsplit-brainの危険が増し、復旧が難しくなる |
ここを押さえると、切り分けが速くなります。たとえば「pcs statusでノードがOfflineに見える」場合、まず疑うのはCorosync側(ネットワーク、リング、MTU、遅延、パケットロス、NIC/スイッチ)です。一方「ノードはOnlineだがリソースが止まる/移る」を繰り返しているなら、Pacemaker側(リソースエージェント、依存関係、監視(monitor)設定、実体サービス)を疑います。
もう一つの重要概念がCIB(Cluster Information Base)です。PacemakerはCIBに記録された“望ましい状態”と“現在の状態”を比較して、どのノードで何を起動/停止するかを決めます。障害時に状態が暴れるときは、CIB上で失敗回数が積み上がっていたり、制約(location/colocation/order)が期待と違う形で効いていたりします。
ただし、だからといってCIBをいきなり編集して直そうとすると危険です。障害対応の序盤は「設定を直す」より先に、いまのクラスタがどんな判断をしているかを説明できる状態にするのが優先です。説明できないまま触ると、復旧後に「結局なぜ起きたか」が残らず、同じ夜勤が繰り返されます。
現場の心の声としては、こうなりがちです。
「リソースエージェントが悪い? いやネットワーク? それともストレージ? もう全部じゃん…」
この“全部じゃん”を分解するのが、役割分担の理解です。次章では、障害時に必ず見るべき3点(quorum/STONITH/resource)を、順番込みで整理します。
第3章:最初の5分で見るべき3点セット:quorum / stonith / resource
HAクラスタ障害の初動で、どれだけ複雑に見えても、まず外してはいけない確認が3つあります。quorum、STONITH、resourceです。これを順番に見るだけで、無駄な操作が激減します。
1) quorum:クラスタが“多数決できる状態”か
quorumが失われると、クラスタは「どちらが正しい側か」を決められません。ここで軽率にリソースを動かすと、分断状態で両側がサービスを提供し、後から整合性が取れなくなる危険が増します。
確認は、pcs系なら status 出力にquorumに関する情報が出ますし、quorum関連のツール(環境により corosync-quorumtool など)で確認できる場合もあります。重要なのは、“いまクラスタは意思決定できる状態か”を先に確定することです。
2) STONITH:分断時に“片側を確実に止める”安全装置が生きているか
STONITH(フェンシング)は、分断や異常時に片側ノードを強制停止させることで、二重稼働(split-brain)による破壊的な競合を避ける仕組みです。運用現場では「とりあえず動かすためにSTONITHを無効化」してしまうケースがありますが、障害時にはそれが“地雷”になります。
初動では、STONITHが有効か、フェンスデバイスが定義されているか、直近でフェンスが失敗していないか、を確認します。もしSTONITHが成立しない状態なら、復旧方針は一段慎重になります(どちらが正で、どちらを止めるかを人間が確実に決める必要が出ます)。ここで迷いがある場合、一般論では危険なので、専門家と一緒に安全な収束(落とし込み)を設計する価値があります。
3) resource:止まって困る“実体”と、クラスタが見ている“論理”を一致させる
最後にresourceです。ここで大事なのは、アプリやDBの“実体プロセス”と、Pacemakerが見ている“起動状態”がズレることがある点です。たとえば、アプリは死んでいるのにPacemakerはStarted扱い、逆に手動で起動してしまってPacemakerがStopped扱い、などです。
このズレがあると、クラスタは正常に制御できません。初動では、次のような観点で整理します。
- どのリソースが失敗しているか(fail count、last failure)
- どのノードで動くべきか(制約・優先度・stickiness)
- なぜ失敗したか(リソースエージェントの戻り値、監視間隔、依存関係)
この3点セットを見ずに「とりあえず再起動」「とりあえずcleanup」は、復旧の再現性を下げます。もちろん状況によっては再起動が正しい選択になることもありますが、それはquorum/STONITHを把握した上で判断したい。
現場の本音として「また運用が増えるだけじゃないの?」と思うのは自然です。でも、ここでの手順は“運用を増やす”ためではなく、障害時に余計な操作を減らしてノイズカット(情報の整理)をするための型です。型があると、上司や役員への説明も「何が起きて、何を確認し、どこがリスクか」を短時間で言語化できます。
次章では、この3点セットの中でも特に事故につながりやすい split-brain とフェンシング不発を、典型原因と“やってはいけない動き”込みで整理します。
第4章:『切替わらない』『両方動く』— split-brain の前兆とフェンシング不発の典型原因
HAクラスタ障害で一番怖いのは、「止まる」より「両方動く」です。とくに共有ストレージや同期レプリケーション(例:DRBD)と組み合わさると、二重書き込みや整合性崩壊につながり、復旧難易度が跳ね上がります。これがsplit-brainの本質です。
split-brainの“前兆”は、だいたい通信品質から始まる
完全断ではなく、遅延・パケットロス・片方向断のような“中途半端な通信不良”が特に厄介です。ノードAからBは見えるが、BからAは見えない、といった状態や、マルチリング構成で片側だけ品質が悪化している状態などが、クラスタの判断を揺らします。
このとき現場はこう思いがちです。
「ネットワークっぽいけど、サービスは死んでる。だったら先にサービスを起こしたい…」
しかし、通信が不安定なままリソースを動かすと、再び分断して“両方起動”のリスクが増えます。ここはブレーキ(歯止め)をかけるポイントです。
フェンシング不発の典型原因
STONITHがあるのに効かない、あるいはSTONITHを無効化してしまっている。よくある原因は次の通りです(環境差はあります)。
- 運用都合でSTONITHを無効化:導入時の暫定対応がそのまま本番化
- フェンス装置の疎通不良:iLO/iDRAC、PDU、クラウドAPI等への到達性や認証の問題
- 権限・認証の更新漏れ:パスワード更新や証明書更新でAPIが失敗する
- 名前解決・時刻ずれ:DNS/hosts不整合、NTP不調で相互認証が崩れる
- 依存ネットワークの同時障害:クラスタ通信とフェンス経路が同じ機器に依存している
重要なのは、「STONITHが効かない状態」は、クラスタの安全装置が外れているのと同義だということです。この状態での復旧は、一般論の手順をそのまま適用すると危険があります。どちらが正のデータを持っているか、どちらを止めるべきか、止めた後に整合をどう取るか、を構成に合わせて設計する必要があります。
たとえば共有ストレージが絡む場合、片側ノードの“論理停止”だけでは不十分なことがあります(実体としてI/Oが止まっていない、マウントが残っている等)。このあたりは、リソースの種類・ストレージ方式・RAID/ファイルシステム・レプリケーション方式で最適解が変わります。つまり、ここには一般論の限界があります。
だからこそ、終盤で触れる結論につながります。HAは魔法ではなく、「分断したときに誰を止めるか」を設計に組み込んだ仕組みです。もし自社環境でSTONITHが成立しない、あるいは構成が複雑で判断が難しい場合は、株式会社情報工学研究所のような専門家と一緒に、フェンス経路を分離し、再発防止まで含めて“場を整える”方が、結果的に夜間対応を減らせます。
第5章:ログは味方:corosync / pacemaker / journalctl の読みどころ(見る順番)
「ログを見れば分かる」と言われても、Pacemaker/Corosyncのログは量が多く、初動では逆に迷子になります。ここで効くのが“見る順番”です。全部を精読するのではなく、時系列で何が起きたかを短時間で掴むための型を持ちます。目的は原因究明の前に、状況をノイズカット(情報整理)して収束方向を決めることです。
まずは「いつからおかしいか」を固定する
障害対応で最初に揃えるべきは、監視通知やユーザー申告などの「事象開始時刻」です。時刻が曖昧だと、ログの探索範囲が膨らみます。できるだけ次のように固定します。
- 監視のアラート時刻(Prometheus/Zabbix等)
- 業務影響が出た時刻(アプリログ、アクセスログ)
- クラスタが状態変化した時刻(crm_monのtransition)
この“起点”が決まると、journalctlで狙い撃ちできます。
journalctlでの基本形(環境差はあるが考え方は同じ)
多くのLinux環境では、Pacemaker/Corosyncはsystemd管理下にあります。まずは該当時間帯のログを、短い範囲で引きます。
- corosync:メンバーシップ変化、リンク状態、quorum関連の変化が見える
- pacemaker:DC選出、リソースの起動/停止、失敗判定、フェンス試行が見える
大事なのは、ログの1行1行に深追いしないことです。最初は「流れ」を見ます。典型的には、次の順序で現象が出ます。
- 通信品質低下やリンク断(corosync側)
- メンバーシップ変化→quorumの変化(corosync/quorum)
- DC選出や再計算(pacemaker)
- リソースの停止/移動/再起動、フェンス試行(pacemaker/stonith)
見るべき“キーワード”の方向性
ログの表現はディストリやバージョン、設定で差がありますが、探すべきテーマは共通です。
- Membership change:ノードの参加/離脱、リングの状態変化
- Quorum:quorate/non-quorate の遷移
- DC:どのノードがDC(意思決定者)になったか、切り替わったか
- Fencing:stonithの実行・失敗・タイムアウト
- Resource action:start/stop/monitor/promote/demote の実行と結果
ここで一つ現場あるあるを言うと、「リソースの失敗」だけ見てしまうことです。でも、リソース失敗は結果で、前段にquorum喪失や通信断があることも多い。だからこそ、corosync→quorum→pacemakerの順で流れを押さえます。
“証拠”を残す:ログは採取して比較する
障害時は状態が揺れます。だから、調査中にログが流れて条件が変わることがあります。コマンド出力やログ断片は、できれば採取して保存し、後で比較できるようにします。これは原因究明だけでなく、上司への説明や再発防止の設計にも効きます。
そして、ログが示す“方向性”が見えたら、次章の「触る順番(停止→隔離→整合→再起動→再配置)」に入ります。ログ解析は、復旧手順の前に“温度を下げる(落ち着かせる)”ための材料です。
第6章:復旧手順の“触る順番”を固定化する:停止→隔離→整合→再起動→再配置
Pacemaker/Corosyncの障害で一番やってはいけないのは、「思いつきで手を出す」ことです。だからこそ、どの環境でも通用しやすい“触る順番”を先に持っておきます。細部は構成で変わっても、順番の思想は共通です。
手順の骨格:5ステップ
- 停止:これ以上状況が変わらないようにする(必要なら一時的に制御を止める)
- 隔離:問題ノード/経路/リソースを切り分け、影響範囲を閉じる
- 整合:データ・マウント・役割(Master/Slave等)が一貫する状態に揃える
- 再起動:必要最小限でサービス/リソース/ノードを復帰させる
- 再配置:最終的に“あるべき場所”に戻し、監視・制約も含めて正常系に戻す
この順番が重要な理由は、HAクラスタが自律的に再計算して動くからです。こちらが何かを直している最中に、クラスタが別の判断をして状態が変わると、復旧が難しくなります。だから最初にブレーキをかけて、状況を固定します。
1) 停止:クラスタ制御を落ち着かせる
状態がフラッピングしているとき、リソースは起動→失敗→移動→起動を繰り返します。この状態でログを追うのは厳しい。まずはクラスタが暴れない状態にします。
注意点は、停止の仕方です。単純にサービスを止めるのではなく、クラスタの仕組みに従って「制御を止める」「特定リソースを管理外にする」など、設計に合った方法を取ります。ここは環境依存が強く、誤るとサービス影響が拡大します。業務影響が大きい場合は、一般論で踏み込まず、専門家と一緒に“止め方”を決めるのが安全です。
2) 隔離:分断・二重稼働の可能性を潰す
次に隔離です。通信が不安定なノードや、疑わしい経路を残したまま復旧を進めると、再分断します。ネットワーク断が疑わしければネットワーク側の修復・迂回が先ですし、ノード障害なら問題ノードを切り離して片系運転に寄せる判断もあります。
ここでのゴールは「とにかく動かす」ではなく、両方動く可能性を消すことです。STONITHが成立しない環境では特に重要です。
3) 整合:データと役割を揃える
整合フェーズは、ストレージ方式で難易度が大きく変わります。共有ストレージ、DRBD、アプリ内レプリケーション、分散ストレージなど、どれも“正”の決め方が異なります。ここで無理に一般論を当てはめると、後で整合が取れなくなります。
現場の心の声はこうです。
「動いてるっぽいし、もう戻していい?…いや、後で怖いかも」
この“後で怖い”が整合フェーズです。必要ならファイルシステム整合、レプリケーション状態確認、アプリの書き込み停止などを行い、一貫した状態に揃えます。
4) 再起動:必要最小限で復旧する
整合が取れたら、必要最小限の再起動で復旧させます。全部再起動すると、原因が隠れます。たとえばネットワーク問題が残っているのに再起動で“たまたま直った”ように見えると、再発時に同じ夜勤が戻ってきます。
5) 再配置:正常系に戻し、再発防止の入り口を作る
最後は再配置です。片系運転で一旦復旧したなら、どの条件で元の配置に戻すか(failback)、stickinessや制約が適切か、監視(monitor)間隔が過剰ではないか、などを確認します。ここで“場を整える”と、次の障害が沈静化しやすくなります。
次章以降は、この5ステップを前提に、よくある障害パターン(ノード障害、ネットワーク断、ストレージ不整合)を具体的に整理します。
第7章:パターン別復旧① ノード障害(片系ダウン・再参加・誤検知)
まず一番多いのがノード障害です。「本当に落ちた」のか「落ちたように見えている」のかで、対応が変わります。ここで重要なのは、クラスタがどう見ているかと、OSがどうなっているかを分けて確認することです。
典型シナリオA:片系が物理的に落ちた(電源断・カーネルパニック等)
この場合、クラスタは通常、残りのノードでサービス継続を試みます。焦点は次の2点です。
- 残系でリソースが期待通り動いているか(サービス影響の沈静化)
- 落ちたノードが復帰したときに、勝手に二重稼働しないか(復帰時の安全)
STONITHが正しく機能していれば、落ちたノードが“中途半端に生きている”ケースを潰せます。逆にSTONITHが不確実だと、復帰時にsplit-brainのリスクが上がります。
典型シナリオB:ノードは生きているが、クラスタから見えない(誤検知)
ネットワーク断や一時的な高負荷で、クラスタがノードをOffline扱いにすることがあります。この場合は、ノード単体でOSログやNIC状態、負荷(CPU/メモリ/I/O待ち)を確認し、「なぜハートビートが落ちたか」を掴む必要があります。
現場の本音はこうです。
「落ちてないのに落ちた扱い? それ一番困るやつ…」
はい、困ります。しかも再発します。だから、このパターンは“復旧”より“原因固定”が重要です。例えばI/O詰まりでスケジューリングが遅延し、ハートビートが間に合わないケースもあります。単純な再起動で一瞬直っても、根は残ります。
復旧の要点:戻す前に「クラスタ側の失敗履歴」を整理する
ノードが復帰したあと、Pacemakerは過去の失敗回数(fail count)やlocation制約に基づき、リソース配置を変えることがあります。ここで「なぜ戻らない?」が発生します。
このとき必要なのは、まず“クラスタがそう判断している理由”を説明できることです。失敗履歴が積み上がっているなら、それを整理しないと、復帰してもまた追い出されます。
ただし、失敗履歴の整理(cleanup等)を乱用すると、本当に危険な状態でも再試行が走り続けます。だから第6章の順番どおり、隔離と整合が取れた後に、“必要最小限”で整理します。
次章では、ノード障害と並んで頻度が高く、かつ再発しやすい「ネットワーク断」を扱います。リング、冗長、スイッチ、MTUなど、現場がハマりがちなポイントを整理します。
第8章:パターン別復旧② ネットワーク断(リング/スイッチ/冗長の落とし穴)
Pacemaker/Corosyncクラスタで「いちばん厄介な障害」を挙げるなら、完全断よりも“品質劣化”です。遅延、パケットロス、片方向断、MTU不一致などは、ノードが落ちたように見えたり、quorumが揺れたり、DCが頻繁に入れ替わったりします。現場の体感としては「動いてるのに動いてない」「たまに直る」が混ざり、状況説明が難しくなります。
まず整理する:クラスタ通信と業務通信は同じネットワークか
Corosyncのクラスタ通信が業務LANと同居している場合、業務トラフィック増大や瞬間的な輻輳で、クラスタのハートビートが遅れます。逆に、クラスタ通信を分離していても、冗長スイッチやLACP、VLAN設定の揺れで“片方だけ悪い”状態が起きます。
ここは一般論として、次の観点で見える化します。
- 経路:クラスタ通信が通るNIC/スイッチ/VLAN/ルータはどれか
- 冗長:冗長が「冗長として機能している」設計になっているか(同一障害点がないか)
- 制御:ファイアウォールやセキュリティ製品がクラスタ通信を落としていないか
Corosync側で起きがちな“症状”と方向性
ログや状態から、よくあるパターンを整理すると切り分けが速くなります。
| 症状 | クラスタで起きがちなこと | 疑う方向 |
|---|---|---|
| ノードが頻繁にJoin/Leave | メンバーシップが揺れる、再計算が連発 | 遅延/ロス、NICドライバ、スイッチ輻輳、LACP/VLAN不整合 |
| DCが頻繁に変わる | 意思決定者が入れ替わりリソースが落ち着かない | 通信品質低下、CPU/I/O詰まりでハートビートが遅れる |
| quorumが出たり消えたり | 安全側に倒れてリソース停止、あるいは起動抑制 | 分断/片方向断、タイムアウト設定と実環境のギャップ |
ここでの注意点は「設定値を闇雲に変更しない」ことです。たとえばタイムアウトを延ばせば“見かけ上”落ち着くことがありますが、実際にはネットワーク品質が悪いまま、障害検知が遅れる形になることもあります。どちらが正しいかは、業務要件(切替に許容される時間)とネットワーク設計に依存します。
復旧の基本:通信を安定させてから、クラスタを落ち着かせる
ネットワークが原因の場合、クラスタ側の操作(cleanupや手動移動)で一時的に整っても、根が残っていれば再発します。復旧の順番としては次が基本です。
- クラスタ通信経路の不安定要因を除去する(リンク、スイッチ、VLAN、MTU、フィルタ)
- メンバーシップが安定し、quorumが安定していることを確認する
- その後で、必要最小限のリソース再配置・失敗履歴整理を行う
そして、ネットワーク原因が濃厚なのに確証が取れない場合は、ここで“温度を下げる”判断が効きます。つまり、片系運転に寄せる、影響範囲を閉じる、暫定的にリソースを固定するなど、被害最小化を優先することです。構成によってはこの暫定策が危険にもなり得るため、停止影響が大きい現場ほど、株式会社情報工学研究所のような専門家と一緒に「安全に収束させる」方針を作る方が結果的に早いことがあります。
第9章:パターン別復旧③ ストレージ不整合(DRBD/iSCSI/FS、整合性の取り方)
HAクラスタの復旧で最も慎重さが求められるのがストレージです。なぜなら、サービス停止よりもデータ不整合の方が復旧コストを跳ね上げるからです。Pacemaker/Corosync自体はリソースを“動かす枠組み”ですが、ストレージの整合性は構成次第で前提が変わります。ここには強い一般論の限界があります。
まず分類する:共有ストレージか、同期レプリケーションか
代表的には次のように分かれます。
| 方式 | 例 | 注意点(障害時) |
|---|---|---|
| 共有ストレージ | SAN/NAS、iSCSI、FC、共有LUN | 二重マウントや二重書き込みの回避が最重要(STONITHの成立が鍵) |
| 同期レプリケーション | DRBD、アプリ/DBレプリケーション | Primary/Secondaryの役割と整合を崩すとsplit-brainが発生しやすい |
現場の心の声はこうなりがちです。
「サービスは戻したい。でもストレージを触るのが一番怖い…」
その感覚は正しいです。だからこそ、復旧の順番は第6章のとおり隔離→整合→再起動が軸になります。
共有ストレージでの典型リスク:二重マウントと“見えないI/O”
共有LUNを使う構成では、「ノードAは止めたつもり」でも、実体としてI/Oが止まっていないケースがあります。たとえば、OSは応答しているがアプリが固まっている、あるいはネットワーク断で管理者がSSHできないがI/Oは続いている、などです。ここで別ノードから同じファイルシステムをマウントして書き込みを始めると、整合性事故につながります。
したがって、復旧では次を徹底します。
- “どちらが書いているか”を確実に一つにする(STONITHが成立しない場合は特に慎重)
- ファイルシステムは“安全に停止した状態”で整合確認を行う(方式により手順が異なる)
- マウント・ロック・クラスタFSの前提(GFS2/OCFS2等の有無)を誤認しない
共有ストレージでクラスタFSを使っていないのに、結果的に二重マウント状態を作るのは典型的な事故パターンです。
DRBDでの典型リスク:split-brainと“どちらが正か”
DRBDのような同期レプリケーションは、役割(Primary/Secondary)と接続状態の理解が前提です。分断後に両側がPrimaryになる、あるいは再接続時に双方が「自分が正」と主張する状態が、いわゆるsplit-brainです。この状態の解消は、データの新旧・アプリ整合・業務要件で選択が変わります。したがって、一般論で「このコマンドで直る」と断言するのは危険です。
実務上は、少なくとも次の情報が必要になります。
- 分断が起きた時刻と、その間にどちらで書き込みが走ったか
- アプリ/DB側にトランザクション整合の仕組みがあるか
- DRBDの設定(プロトコル、フェンシング方針、after-sb-*ポリシー等)
- Pacemakerの制約(昇格/降格順序、colocation、order)
この情報が揃って初めて、「どちらを正として同期するか」「どこまで業務を止めて整合を取るか」を決められます。ここは穴埋め(整合の取り直し)の局面で、誤ると後戻りが難しくなります。
“整合が取れた”の定義を、運用の言葉に落とす
ストレージ復旧で重要なのは、「整合が取れた」の定義を、クラスタ視点だけで終わらせないことです。PacemakerがStartedと表示しても、アプリケーション整合が崩れていれば障害は再発します。逆にアプリが動いていても、レプリケーションが不健全なら将来の切替で破綻します。
したがって復旧の終盤では、次の二重チェックが有効です。
- クラスタ視点:リソース状態、失敗履歴、制約どおりか
- 業務視点:アプリの整合確認(DBチェック、アプリヘルス、ログのエラー有無)
ストレージが絡む障害は、個別の構成・契約(保守範囲)・停止許容時間・データ重要度で最適解が変わります。迷いがある場合に一般論で押し切ると、後日「実は不整合が残っていた」という形で炎上/クレーム対応に発展しかねません。だからこそ、判断が難しい局面ほど、株式会社情報工学研究所のような専門家に状況を共有し、再発防止まで含めた復旧計画を作ることが現実的です。
第10章:結論:HAは魔法じゃない—“説明できる運用”が夜間対応を減らし事業停止リスクを下げる
ここまで見てきたように、Pacemaker/CorosyncのHAクラスタ障害は「コマンドを知っているか」だけでは沈静化しません。鍵になるのは、クラスタが何を根拠に何を判断したのかを説明できること、そして触る順番を守って被害最小化に寄せることです。
現場エンジニアの本音としては、こう思うのが自然です。
「HAにしたのに、なんで俺たちが夜中に起きてるんだっけ…」
これに対する現実的な答えは、「HAは“止まらない”仕組みではなく、止まるときの形を制御する仕組み」ということです。フェンシング(STONITH)が成立しない、ネットワーク品質が揺れる、ストレージ整合の前提が曖昧、運用手順が人によって違う——このどれかが欠けると、HAは不安定になります。逆に言えば、設計と運用を“説明可能”な形に整えるほど、夜間対応は減り、復旧の再現性が上がります。
「説明できる運用」を作るための最低限チェックリスト
復旧対応の直後は疲れています。だからこそ、翌営業日に「記憶が残っているうちに」事実だけを整理し、次の障害で迷わない材料を残します。おすすめは、論理ではなく時系列です。
| 項目 | 残すべき内容(例) | 狙い |
|---|---|---|
| 発生時刻 | 最初のアラート時刻、業務影響開始、復旧完了 | ログ探索範囲の固定、説明の起点 |
| クラスタ状態 | pcs/crm_mon出力、Online/Offline、DC、quorum状態 | 「クラスタがどう見ていたか」を固定 |
| 安全装置 | STONITH有効/無効、フェンス試行の成否、失敗理由の有無 | split-brainリスクの評価 |
| リソース挙動 | 失敗したリソース、失敗回数、移動履歴、監視(monitor)結果 | 復旧の再現性、根本原因の方向 |
| 実施操作 | 誰が何をいつ実行したか(手動起動/停止、隔離、再起動など) | 「操作で変わったこと」を切り分ける |
| 根の仮説 | ネットワーク品質、ノード負荷、ストレージ要因など“方向性” | 次の調査・改善の優先順位付け |
このチェックリストは「立派な報告書」を作るためではありません。次回の障害で、最初の5分の判断を速くし、無駄な操作を減らすための防波堤です。
復旧後にやるべき“再発防止テスト”は、設計の前提を確認すること
復旧が終わると、つい「直った」で終わりがちです。しかしHAは、設計の前提(quorumが保てる、フェンスが効く、ネットワークが想定品質、ストレージ整合が守られる)が満たされて初めて成立します。再発防止は、これら前提が本当に満たされているかを確認する作業です。
一般論として、次のような観点で“安全に”確認します(実施可否や手順は環境・契約・停止許容で変わります)。
- フェンシングの成立確認:フェンスデバイスが到達可能で、想定どおりに動作する前提が維持されているか
- ネットワークの健全性:クラスタ通信経路の輻輳・片方向断・MTU不一致が起きにくい構成か
- リソース監視の妥当性:monitor間隔が過剰でフラッピングを誘発していないか、逆に検知が遅すぎないか
- ストレージ整合の運用:二重マウントが起きない運用になっているか、障害時の“正”の決め方が定義されているか
ここは「とりあえず設定をいじって改善」ではなく、設計の前提を点検して、どの前提が崩れたかを特定する作業です。
終盤の結論:一般論の限界と、個別案件で専門家に相談すべき理由
本記事は、Pacemaker/Corosyncクラスタ障害の「よくある形」と「触る順番」をまとめました。ただし、ここまで繰り返し触れた通り、HAは構成・契約・停止許容・データ重要度で最適解が変わります。特に次の条件が絡むと、一般論の手順だけで判断するのは危険になりがちです。
- STONITHが有効でも、フェンス経路が業務ネットワークと同一障害点になっている
- 共有ストレージでクラスタFSではないのに、運用上二重マウントの可能性が残る
- DRBD等のレプリケーションで、分断時の“正”の決め方(ポリシー)が曖昧
- 業務要件として停止許容が短く、切替時間の調整が設計判断になる
- 運用担当が複数チームにまたがり、障害時の意思決定経路が複雑
こうしたケースでは、現場が頑張っても「判断材料が足りない」ことが起きます。だからこそ、読者が具体的な案件・契約・システム構成で悩んだときは、一般論で粘るより、専門家と一緒に“収束(落とし込み)”の筋道を作る方が現実的です。
もし「STONITHをどう設計すべきか」「ネットワーク冗長のどこが単一障害点か」「ストレージ整合の手順をどうRunbook化するか」「監視・タイムアウトをSLAに合わせてどう調整するか」など、具体論に踏み込む必要があるなら、株式会社情報工学研究所のような専門家に相談して、現場エンジニアが説明できる形に設計・運用を整えることをおすすめします。一般論では埋めきれないギャップを埋めることが、夜間対応を減らす最短ルートになりやすいからです。
付録:現在のプログラム言語各種における「障害対応・運用設計」の注意点(HA運用の現場目線)
Pacemaker/Corosyncそのものはミドルウェアですが、現実のHA運用ではアプリケーションや運用ツールの実装が復旧難易度を左右します。ここでは「どの言語が良い/悪い」ではなく、障害対応・運用の観点で気をつけるべきポイントを整理します。一般論としての注意点なので、最終的には自社の要件・体制・既存資産で判断してください。
共通の前提:言語より先に“運用要件”を固定する
どの言語でも、HA運用で最低限決めておくべきことは共通です。
- タイムアウト方針:外部依存(DB/ストレージ/API)に対して待ち続けない設計か
- 冪等性:同じ操作が繰り返されても壊れない(再試行が前提)
- 観測可能性:ログ、メトリクス、トレースで「何が起きたか」を後から追える
- 終了と再起動:プロセスが停止できる、起動時に自己修復できる(中途半端に残らない)
Pacemakerのリソース監視(monitor)は「落ちたら再起動/移動」が基本動作なので、アプリ側も「再起動される前提」で作られていることが重要です。
主要言語別の注意点
C / C++
- メモリ安全性:ヒープ破壊や未定義動作は“たまに落ちる”形で出やすく、再現性が低い。障害対応を難しくするため、ASan等の検査やクラッシュダンプ運用を設計に組み込む
- 依存ライブラリ:OS更新・ライブラリ更新で挙動が変わることがある。ビルド再現性(固定化)と脆弱性対応の両立が課題
- フォーク/スレッド:デッドロックや競合が起きると監視がタイムアウトし、クラスタ側でフラッピングが起きやすい
Rust
- メモリ安全性:安全性の恩恵は大きいが、unsafeやFFIが入ると運用上の落とし穴が戻る。境界の監査が必要
- 非同期:async設計は強力だが、タイムアウト/キャンセルの一貫性が崩れると“止まらない処理”が残りやすい
- バイナリ配布:静的リンク等で配布しやすい一方、脆弱性修正時の再ビルド・再配布の運用を確立しておく
Go
- goroutineリーク:外部依存が詰まるとgoroutineが溜まり、間接的に監視タイムアウトやOOMにつながることがある。タイムアウトとキャンセルを徹底
- GC停止とレイテンシ:通常は安定しやすいが、低レイテンシ要件では監視間隔との相性を意識する
- 単一バイナリ運用:デプロイは楽だが、設定・秘密情報・証明書更新の運用(再起動要否)を設計に織り込む
Java(JVM)
- GCとメモリ設計:ヒープ設定やGC挙動次第で一時停止やスループット低下が出る。監視のタイムアウト設計と整合させる
- スレッド枯渇:外部依存待ちが増えるとスレッドプール枯渇で“見かけ上の停止”が起きる。タイムアウトと隔離(バルクヘッド)を設計に入れる
- 依存管理:Maven/Gradle依存が増えると脆弱性対応が重くなる。SBOMや更新手順を運用に組み込む
C#(.NET)
- スレッドプールと非同期:async/awaitでも外部依存のタイムアウトやキャンセルが曖昧だと処理が溜まりやすい
- ランタイム更新:.NETの更新とOS更新の関係、コンテナ運用時のベースイメージ更新が障害要因になり得る
- ログと観測:構造化ログを前提にしないと、障害時に因果関係が追いにくい
Python
- 依存解決:ライブラリ依存(pip)が運用上の不確実性になりやすい。ロックファイルやイメージ固定で再現性を確保
- 性能とタイムアウト:I/O待ちや外部依存で詰まると監視に引っかかる。タイムアウトとリトライ方針を明文化し、冪等性を担保
- 障害時ツール用途:運用スクリプトに向く一方、例外処理が雑だと“途中までやって止まる”事故が起きやすい。必ずロールバックやドライラン設計を入れる
JavaScript / TypeScript(Node.js)
- 単一スレッド:CPUを食う処理が混ざるとイベントループが詰まり、ヘルスチェックが落ちる。重い処理は分離する
- 依存の広さ:npm依存が増えやすく、脆弱性対応・供給網リスクの管理が重要。更新運用と検証環境が必須
- プロセス管理:再起動前提で動く設計(ステートレス化、外部永続化)が特に重要
PHP
- 実行モデル:FPM等のプロセスモデル次第で“詰まり方”が変わる。ワーカー枯渇は監視上の停止に見えやすい
- 拡張・バージョン:拡張やバージョン差で挙動が変わる。OS更新・PHP更新計画を運用に組み込む
- ログ整備:アプリログとWebサーバログの突合ができるように相関ID等を導入すると障害対応が速くなる
Ruby
- 依存と更新:gem依存やランタイム更新で挙動が変わることがある。固定化と脆弱性対応のバランスが課題
- 性能劣化の見え方:GCやI/O待ちで遅くなり、監視タイムアウトに繋がることがある。ヘルスチェック設計と合わせる
Shell(bash等)/ PowerShell
- 運用スクリプトの事故:小さなスクリプトでも本番障害を増幅し得る。タイムアウト、リトライ、エラー時停止、ログ出力を必ず入れる
- 冪等性:同じ操作を複数回実行しても壊れないようにする(存在チェック、差分適用)
- 権限:sudo/権限不足が原因で途中失敗しやすい。実行ユーザーと権限設計を明確にする
SQL(言語というより運用対象)
- 整合性と復旧:HA障害はDBの整合性確認が最後の関門になりやすい。バックアップ/リストア、レプリケーション、フェイルオーバー手順を必ずRunbook化
- スキーマ変更:障害時にスキーマ変更が重なると復旧難易度が上がる。変更管理(メンテ時間、ロールバック)を厳格にする
付録のまとめ:言語の違いは「運用の落とし穴の違い」
ここで挙げた注意点は、言語の優劣ではありません。HA運用では、タイムアウト・冪等性・観測可能性・再起動前提が守られているかが本質で、言語ごとに崩れやすいポイントが違う、という話です。
そして最終的には、クラスタ(Pacemaker/Corosync)・ネットワーク・ストレージ・アプリの境界にまたがる判断が必要になります。ここに一般論の限界があります。もし「自社の構成でどこが単一障害点か」「フェンシングは成立しているか」「ストレージ整合の手順が安全か」「監視とタイムアウトはSLAに合っているか」など、具体的な設計判断に踏み込む必要があるなら、株式会社情報工学研究所への相談・依頼を検討してください。現場の制約を前提に、収束しやすい運用と再発防止の設計まで一緒に組み立てることができます。
・HAクラスタ障害時の業務停止リスクを社内で正確に共有できる ・緊急・無電化・完全停止の三段階BCP運用フローを整備できる ・法令・証跡保全・デジタルフォレンジック要件を満たした設計を示せる
- 障害発生の現実:Pacemaker/Corosyncで起こり得る5大シナリオ
- インシデント初動:検知から範囲特定までの黄金フロー
- 技術深掘り:Fencing・STONITH・Quorumロストの根本原因
- 迅速復旧手順:Failback/再同期/不整合解消の実務
- BCPの三段階運用と三重化ストレージ設計
- 法令・政府方針による高可用性要請と記録義務
- デジタルフォレンジック:外部・内部攻撃を想定した証跡設計
- セキュリティ強靭化:経産省ガイドラインが求める対策
- 多段階BCPと運用体制:10万人超システムの要件
- 人材育成・資格・採用計画(情報処理安全確保支援士ほか)
- 御社社内共有・コンセンサス
- 外部専門家へのエスカレーション:弊社へのご相談方法
- リファレンスアーキテクチャ:OSS活用型モデル
- まとめと弊社へのご依頼案内
障害発生の現実:Pacemaker/Corosyncで起こり得る5大シナリオ
Pacemaker/Corosyncクラスタでは、ノードの突然のクラッシュやネットワーク分断、リソースのデグレード、Quorumロスト、Split-Brainといった5つのシナリオが代表的です。これらは事前対策なく放置すると、業務停止時間が長引き、サービス停止コストや信用低下を招きます。
本章ではそれぞれの事象の原因と影響範囲を整理し、社内説明資料として使えるよう、表形式でまとめます。
| シナリオ | 原因 | 影響 |
|---|---|---|
| ノードクラッシュ | ハードウェア障害/OS死活 | リソース停止・移行遅延 |
| ネットワーク分断 | スイッチ故障/ケーブル断線 | Quorum喪失・Split-Brain発生 |
| リソースデグレード | ディスクI/O遅延/メモリ不足 | フェイルオーバー失敗 |
| Quorumロスト | ノード数不足/通信障害 | クラスタ全停止 |
| Split-Brain | 両セグメント独立稼働 | データ不整合リスク |
各シナリオの影響範囲や発生確率を正確に把握し、責任分担とエスカレーションフローを定義してください。
障害シナリオを単に列挙するのではなく、起こり得る理由と社内影響をリンクさせることで、上層部の理解を得やすくします。
インシデント初動:検知から範囲特定までの黄金フロー
インシデント初動フェーズでは、問題の早期検知と迅速な通報体制構築が事業継続の鍵となります。【出典:JPCERT/CC『インシデントハンドリングマニュアル』2021】
高度サイバー攻撃(APT)などの疑いある活動は、ログ解析や外部CSIRTからの通報で認識されるケースが多いです。【出典:JPCERT/CC『インシデントハンドリングマニュアル』2021】
組織内ではCSIRT(Computer Security Incident Response Team)が中心となり、電子メールやチャットツールを通じた24時間体制の通報窓口を設置します。【出典:JPCERT/CC『インシデント対応とは』2023】
検知には、Pacemakerの監視ログやCorosyncのステータス情報に加え、SyslogやSNMPトラップを連携させる手法が有効です。【出典:JPCERT/CC『CSIRTガイド』2021】
事業継続計画では、初動通報をBCP運用の第1段階に位置づけ、緊急時優先度に応じた社内エスカレーション手順を定義しておく必要があります。【出典:内閣府『事業継続ガイドライン』2023】
初動フェーズでは、通報後数分以内に影響範囲を特定し、障害ノード・サービス依存関係をテーブル化して可視化します。【出典:内閣府『事業継続ガイドライン』2013】
続いてトリアージ(優先度判定)を行い、ビジネスインパクト分析(BIA)に基づいて復旧手順を選定します。【出典:経済産業省『サイバーセキュリティ経営ガイドライン』2022】
この際、通報情報やログは改ざん防止のためタイムスタンプ付きで保全し、後続のデジタルフォレンジックに備えます。【出典:NIST SP 800-88 Rev. 1『Guidelines for Media Sanitization』2006】
多段階BCPを運用する場合、初動通報と並行して無電化時・完全停止時の代替オペレーションも検討します。【出典:経済産業省『サイバーセキュリティ経営ガイドライン改訂』2023】
以上の初動フローは、CSIRTガイドに沿いながら継続的に改善・演習を繰り返すことで、組織全体の即応力を向上させます。【出典:JPCERT/CC『CSIRTガイド』2021】
通報窓口と初動フローを迅速に共有し、責任部門とCSIRT間の連携手順を明確にしてください。
初動体制の早期整備がルーチン化されていないと、実運用時に混乱が生じやすいため、定期的な演習と見直しを実施してください。
技術深掘り:Fencing・STONITH・Quorumロストの根本原因
Pacemakerクラスタでは、Fencing機構としてSTONITH(Shoot The Other Node In The Head)を使用し、データ一貫性を保証します 。
STONITHエージェントは fence-agents-all パッケージに含まれる多彩なデバイス(リブート、電源遮断、ネットワーク遮断など)で故障ノードを隔離します 。
もしSTONITH動作が失敗すると、ノードは“We were allegedly just fenced”メッセージを受け取り、Pacemaker/Corosyncサービスを停止するケースがあります 。
一方、Quorumはクラスタ参加ノードの過半数を維持する仕組みで、過半数を失うと安全のためクラスタ全停止を引き起こします 。
外部ホストや仮想ディスクを用いたquorum deviceを corosync.conf の quorum_device セクションで定義し、過半数判定を支援します 。
Corosyncのtransport設定や認証ミスもネットワーク分断を招き、結果的にQuorumロストを引き起こすことがあります 。
Split-Brain回避には stonith-enabled プロパティを true にし、quorum-policy を stop または ignore に適切設定することが必須です 。
仮想環境では fence-virsh や fence-ec2 などの専用エージェントも利用されます 。
再同期フェーズでのリソース移行時には、データチェックやリソース固有のデグレード処理を組み込むことが推奨されます 。
pcs コマンドで現行の stonith-enabled と quorum-policy 設定を定期検証し、設定ミスを未然に防ぎます 。
| エージェント | 用途 |
|---|---|
| fence_ipmilan | iLO/IPMI経由で電源遮断 |
| fence_virsh | KVM仮想マシンのShutdown |
| fence_azure | Azure仮想マシンの隔離 |
| fence_scsi | ストレージレベルで遮断 |
FencingとQuorumの設定箇所(corosync.conf, pcsプロパティ)を洗い出し、リスクと影響範囲を明確化してください。
Fencing失敗時の挙動やQuorum判定条件を誤認して運用すると、想定外のクラスタ停止を招くため、テスト環境で必ず検証してください。
迅速復旧手順:Failback/再同期/不整合解消の実務
情報システムの可用性確保には、障害発生後に計画的なFailback(フェイルバック)手順を実行することが不可欠です 。
まず事業継続計画(BCP)に記載されたリカバリ優先度に基づき、影響範囲が限定されたノードから段階的にリソースを本番系へ戻します 。
次に、Pacemakerのpcs resource move -- forceコマンド等を用いてリソースを再配置し、Corosyncの同期状態を確認します 。
再同期フェーズでは、データレプリケーションの整合性を保つため、アプリケーション層のチェックサム比較やトランザクションログの再生を実施します 。
もしデータ不整合が検出された場合は、NIST SP 800-34で推奨される情報システムコンティンジェンシープラン(ISCP)の手順に従い、代替サイトへのフェイルオーバーも検討します 。
Failback完了後は、必ずクラスタ全体の健全性をテストし、再発防止のためのルートコーズ分析(RCA)を実施します 。
最終的に、復旧手順の実行記録とログはNIST SP 800-34が定めるドキュメント要件に沿って保全し、次回演習に活用します 。
| ステップ | 主な作業 | 確認ポイント |
|---|---|---|
| 1. 優先度設定 | BCPロードマップから優先リソース選定 | 影響度と依存関係 |
| 2. リソース移動 | pcs resource move 実行 | Corosync状態 |
| 3. データ整合性 | チェックサム比較/ログ再生 | 不整合有無 |
| 4. 健全性テスト | サービス機能テスト | エラー検出なし |
| 5. 記録・分析 | ログ保全/RCA実施 | 次回演習反映 |
Failback順序とチェックリストを共有し、実施部門が手順を順守するための確認責任者を決定してください。
手順を省略すると再発リスクが高まるため、小規模テスト環境で定期的にFailback演習を行い、手順の精度を保ってください。
BCPの三段階運用と三重化ストレージ設計
事業継続計画(BCP)では、通常運用、無電化対応、完全停止対応の三段階でオペレーションを定め、ストレージは三重化構成を基本とします。
通常運用時はリアルタイムレプリケーションを行い、プライマリ・セカンダリ・ティアシャードの3拠点間でデータ同期を実施します。無電化対応ではUPSとディーゼル発電機を切り替えた上で、切り替え先ストレージに自動フェイルオーバーさせます。
完全停止時には、第三次拠点へのリードオンリーアクセスを許可し、復旧後のデータ整合性確認を迅速化します。10万人以上のユーザーを抱える場合は、各段階でさらに「緊急」「準緊急」「通常」の三細分化を追加し、段階별トリガー条件と責任者を設定します。
| 段階 | 条件 | ストレージ挙動 |
|---|---|---|
| 通常運用 | 平常時 | リアルタイム三重化 |
| 無電化対応 | 長時間停電 | 発電機切替後自動切替 |
| 完全停止対応 | システム深刻障害 | リードオンリーティアへアクセス |
各段階の起動条件と責任者リストを明示し、ストレージ三重化構成のコストとメリットを経営層に共有してください。
BCP段階の曖昧さが運用時混乱を招くため、トリガー条件と実行手順を具体的数値で定義し、定期的に演習してください。
法令・政府方針による高可用性要請と記録義務
日本においては、経済産業省が公表する「事業継続計画 策定ガイドライン」において、重要システムの可用性確保と定期的な訓練・見直しを義務付けています 。
同ガイドラインでは、BCPの発動要件として「重大インシデント発生後48時間以内に重要事業を再開すること」を目標とし、システム停止を最小限に抑える運用手順の策定を求めています 。
また、内閣府の「事業継続ガイドライン(第一版)」では、自然災害やサイバー攻撃など多様なリスクに対し、計画・体制・手順の文書化および保管を義務化しています 。
この文書化には、Pacemaker/Corosyncクラスタのフェンシング設定やQuorumポリシーなど技術設定も含まれ、証跡として保存することが求められます 。
さらに、中小企業庁の「中小企業BCP策定運用指針」では、BCP文書を定期更新し、過去のバージョンを残しておくことで変更履歴を明確化するよう指示しています 。
総務省の「情報システム運用管理基準」では、ログデータの長期保存期間を定め、改ざん防止策(WORMストレージ等)の導入を推奨しています 。
これら公的指針の要請に沿い、システム構成変更や障害対応履歴はすべてタイムスタンプ付きで保管し、外部監査に耐えうる証跡を準備することが必要です 。
| 指針名 | 要求要件 | 出典 |
|---|---|---|
| 事業継続計画 策定ガイドライン | 48時間以内の重要事業再開目標/定期訓練 | 経済産業省 |
| 事業継続ガイドライン(第一版) | 計画・手順の文書化と保管 | 内閣府 |
| 中小企業BCP策定運用指針 | 文書の定期更新と版管理 | 中小企業庁 |
| 情報システム運用管理基準 | ログ長期保存と改ざん防止 | 総務省 |
各ガイドラインの文書化・訓練・ログ保管要件を整理し、社内規程へ反映するための担当者を決定してください。
ガイドライン要件を単なるチェックリスト化に留めず、実際の運用手順として落とし込むことで、監査・演習時の混乱を防止してください。
デジタルフォレンジック:外部・内部攻撃を想定した証跡設計
サイバー攻撃の証跡保全では、まずファースト・レスポンダーが対象システムのログやメモリダンプを適切に収集し、改ざん防止のため書き込み禁止メディアに保存することが必須です 。
日本警察庁は、デジタル・フォレンジックを「電磁的記録の解析と証拠化」と定義し、捜査に活用できる形での証跡設計を求めています 。
政府機関のサイバーセキュリティ対策基準ガイドラインでは、ログ収集ツールはTLSなど暗号化通信を用い、改ざん検知機能を搭載することが推奨されています 。
FTC(内閣サイバーセキュリティセンター)の「対策基準ガイドライン」では、証跡保存期間を最低6ヶ月以上とし、WORMストレージの導入を例示しています 。
証拠保全ガイドライン第9版は、インシデント発生後直ちにファーレスが実施すべき証跡収集項目として、ファイルシステムログ、プロセスリスト、ネットワークキャプチャなどを列挙しています 。
内部不正を想定した場合、アクセス制御ログや管理者操作ログを中央ログサーバに送信し、SIEMでの相関分析を行う設計が求められます 。
証跡設計には、ログフォーマットをCIM(Common Event Format)準拠とし、異なるシステム間での統合分析を容易にすることも有効です 。
捜査機関からの証跡提出要請に備え、収集ツールには操作履歴の記録機能を持たせ、収集手順書と照合できるように管理します 。
各組織は年1回以上、証跡収集手順の実地演習を行い、手順書の更新やツール動作確認を実施することが内閣府BCPガイドラインで推奨されています 。
| 対象データ | 収集タイミング | 保存期間 |
|---|---|---|
| システムログ | リアルタイム転送 | 6ヶ月以上 |
| ネットワークキャプチャ | インシデント直後 | 1年間 |
| メモリダンプ | 発生直後 | 調査完了まで |
| アクセス制御ログ | 随時転送 | 6ヶ月以上 |
各証跡収集手順と保存要件を共有し、担当者間で相互レビューを行う体制を整備してください。
証跡設計を技術部門だけで完結させず、法務・監査部門と連携し、法的要請や監査要件に合致していることを確認してください。
セキュリティ強靭化:経産省ガイドラインが求める対策
経済産業省の「サイバーセキュリティ経営ガイドライン」では、重要システムに対し多層防御と脆弱性管理を求めています。【出典:経済産業省『サイバーセキュリティ経営ガイドライン』2022】
まず、Pacemaker/Corosyncクラスタ環境においては、OSやミドルウェアの定期的な脆弱性スキャンとパッチ適用を実施し、既知の欠陥を即時解消することが必須です。【出典:経済産業省『サイバーセキュリティ経営ガイドライン』2022】
次に、SSHやAPIアクセスには多要素認証(MFA)を導入し、認証ログを中央SIEMへ転送して異常アクセスをリアルタイム検知します。【出典:経済産業省『情報セキュリティ管理基準』2021】
また、ノード間通信にはTLS1.2以上の暗号化を適用し、Corosyncのtransport: udpu設定で認証キーを厳格に管理します。【出典:総務省『情報システム運用管理基準』2020】
加えて、ファイアウォールやIP制限によりクラスタノードへの直接アクセスを最小限に抑え、侵入経路を限定します。【出典:経済産業省『サイバーセキュリティ経営ガイドライン』2022】
最後に、定期的な侵入テスト(ペネトレーションテスト)を実施し、設定やネットワーク設計の脆弱箇所を洗い出して是正措置を講じます。【出典:内閣府『事業継続ガイドライン』2023】
| 対策項目 | 具体策 | 出典 |
|---|---|---|
| 脆弱性管理 | 定期スキャン&パッチ適用 | 経産省ガイドライン |
| 多要素認証 | MFA導入&SIEM転送 | 経産省・総務省基準 |
| 通信暗号化 | TLS1.2以上設定 | 総務省基準 |
| アクセス制限 | ファイアウォール&IP制限 | 経産省ガイドライン |
| ペネトレーションテスト | 年1回以上実施 | 内閣府ガイドライン |
各セキュリティ対策の実施状況と責任者を一覧化し、経営層へ現状報告と今後計画を共有してください。
セキュリティ設定は一度導入すれば終わりではなく、継続的な運用・監視と改善サイクルを回すことが重要です。
多段階BCPと運用体制:10万人超システムの要件
10万人以上のユーザーを擁する大規模システムでは、単純な三段階BCPでは対応が難しく、さらに「緊急」「準緊急」「通常」の三細分化を含む六段階運用モデルが推奨されます。各段階ごとにトリガー基準と対応部門、責任者を明確に定義し、役割分担を徹底します。
まず「緊急段階」では、サービス停止直後から24時間以内の完全復旧を目指し、専任の緊急対応チームが24×365体制で待機します。「準緊急段階」では24~72時間までの復旧を担うチームがフォローし、「通常段階」では復旧後の安定稼働とシステムチューニングを行います。
「無電化緊急」「無電化準緊急」「無電化通常」も同様に三細分化し、発電機・UPS・セルフパワー装置の切替手順とリソースアクセス権限を段階ごとに管理します。各フェーズでの通信品質保証やデータ同期頻度も明文化し、SLM(サービスレベルマネジメント)要件として契約書へ盛り込みます。
運用体制は、CSIRT・IT運用チーム・ネットワークチーム・開発チームの四者連携を原則とし、定期的に共同演習を実施します。年1回の総合BCP訓練のほか、各細分化フェーズごとに半期演習を行い、課題と改善策を「BCPレビュー報告書」にまとめます。
| フェーズ | 復旧目標 | 担当チーム |
|---|---|---|
| 緊急 | 24時間以内 | 緊急対応チーム |
| 準緊急 | 72時間以内 | フォローアップチーム |
| 通常 | 1週間以内 | 安定化チーム |
| 無電化緊急 | 24時間以内 | 電源管理チーム |
| 無電化準緊急 | 72時間以内 | UPS管理チーム |
| 無電化通常 | 1週間以内 | セルフパワーチーム |
六段階モデルの運用フローと各チームのミッションを定義し、部門横断の訓練計画を承認してください。
フェーズ細分化が進むほど情報共有と訓練が複雑化するため、定期的にドリル演習を行い、文書と実運用の齟齬を解消してください。
人材育成・資格・採用計画(情報処理安全確保支援士ほか)
高可用性システムの運用・復旧には、専門的知識を持つ人材が不可欠です。経済産業省認定の「情報処理安全確保支援士(登録セキスペ)」は、サイバーセキュリティ全般の知識と実務スキルを有する国家資格です。
まず既存技術担当者に対し、定期的な研修プログラムを社内で設計します。研修項目はPacemaker/Corosyncのアーキテクチャ理解、Fencing設定演習、BCP策定演習、デジタルフォレンジック基礎とします。
資格取得支援制度では、受験料補助や学習用教材の貸与を行い、合格者には資格手当を支給します。また、外部専門講師を招いた集中講座を四半期に一度開催し、最新技術動向や政府ガイドライン改訂情報をアップデートします。
採用面では「情報処理安全確保支援士保有者優遇」や「クラスタ運用経験者歓迎」を募集要項に含め、即戦力採用を目指します。さらに、OJTによるスキル移転と、メンター制度を設けて新人教育の定着化を図ります。
| 項目 | 内容 | 頻度 |
|---|---|---|
| 社内研修 | アーキテクチャ解説+演習 | 年2回 |
| 資格手当 | 登録セキスペ合格者 | 随時 |
| 集中講座 | 外部専門講師招へい | 四半期 |
| OJT/メンター | 実践支援+報告会 | 月1回 |
研修計画と資格取得支援制度を整備し、予算確保と運用責任者を社内稟議にて承認してください。
資格取得はゴールではなくスタートです。取得後の実務活用とナレッジ共有体制を必ず構築してください。
御社社内共有・コンセンサス
技術担当者が経営層や関連部門に本章の内容を説明する際は、ROI試算やリスク・影響度を資料化し、会議での合意形成を図ります。特にBCPコストと可用性向上による機会損失削減効果を数値で示すと説得力が増します。
また、各部門の責任範囲とエスカレーション手順を明文化したRACIチャートを作成し、全社共有のイントラ資料として公開することが推奨されます。
ROIやRACIチャートの共有タイミング、承認プロセスを明確化してください。
会議のアジェンダに「HAクラスタ復旧要件」を必ず含め、事前に資料を配布することで、当日の説明をスムーズに進められます。
外部専門家へのエスカレーション:弊社へのご相談方法
自社だけで対応が困難な場合は、情報工学研究所(弊社)の専門チームが24時間365日体制で支援します。お問い合わせは本ページ下部のお問い合わせフォームからご連絡ください。迅速な初動調査と復旧シナリオ立案を提供します。
弊社支援フローと費用概算を簡潔にまとめ、社内承認者へ提出できる資料を準備してください。
復旧支援の範囲とSLAを明示し、契約条件を事前確認することで、交渉・承認プロセスを短縮できます。
リファレンスアーキテクチャ:OSS活用型モデル
ベンダーロックインを回避するため、OSSベースの高可用性リファレンスアーキテクチャを採用します。Pacemaker/Corosyncに加え、DRBDによるブロックレプリケーション、Cephによるオブジェクトストレージ連携を推奨します。
図示すると、三拠点構成で各ノードにDRBDペアを配置し、Cephクラスタと連動させるモデルが一般的です。自動フェイルオーバーと手動フェイルバックを組み合わせることで、コスト効率と信頼性を両立できます。
当社リファレンスモデルの図解と運用コスト比較を提示し、採用可否判断の材料を準備してください。
OSS導入時は保守サポート体制を含めたTCO試算を必ず行い、コストメリットを定量化してください。
まとめと弊社へのご依頼案内
本記事では、Pacemaker/Corosyncクラスタ障害の代表シナリオから初動、深掘り、復旧手順、BCP、法令要件、デジタルフォレンジック、セキュリティ強化、多段階運用、人材育成、社内コンセンサス、外部エスカレーション、リファレンスアーキテクチャまで網羅的に解説しました。
HA構成の復旧を確実に実行するためには、計画的な演習と社内合意形成、法令順守の証跡保全、専門人材の育成・確保、そして外部専門家との連携が不可欠です。
はじめに
Linux環境における高可用性の重要性とPacemaker/Corosyncの役割 Linux環境における高可用性は、業務の継続性を確保するために不可欠です。特に、PacemakerとCorosyncは、高可用性クラスターを構築するための重要なツールです。これらのツールは、サーバーの障害が発生した際に自動的にリソースを別のノードに移行し、サービスの中断を最小限に抑える役割を果たします。 しかし、これらのシステムも完全ではなく、時には障害が発生することがあります。障害が発生した際には、迅速かつ効果的な復旧が求められます。このブログでは、PacemakerとCorosyncを用いた高可用性構成における障害の原因や影響、そしてそれに対する具体的な対応方法について詳しく解説します。これにより、システム管理者や企業の経営陣が、より効果的にシステムの信頼性を向上させる手助けとなることを目指します。
PacemakerとCorosyncの基本概念とアーキテクチャ
PacemakerとCorosyncは、Linux環境における高可用性(HA)クラスターを実現するための主要なコンポーネントです。Pacemakerは、クラスター内のリソースを管理し、障害発生時に自動的にリソースを移動させる役割を担っています。一方、Corosyncは、クラスター内のノード間での通信を行い、各ノードの状態を把握するためのメッセージングシステムです。 この二つのツールは、クラスターアーキテクチャの中で密接に連携しています。具体的には、Corosyncが提供する情報を基にPacemakerがリソースの状態を監視し、必要に応じてリソースの移行を行います。このプロセスは、システム全体の可用性を向上させるために不可欠です。 また、Pacemakerは、リソースの依存関係や優先順位を設定することができ、より柔軟なリソース管理を実現します。これにより、特定のリソースが他のリソースに依存している場合でも、適切な順序でリソースを起動または停止することが可能です。これらの基本概念を理解することで、システム管理者はPacemakerとCorosyncを効果的に活用し、障害発生時の迅速な対応を実現できるようになります。
クラスター障害の一般的な原因と影響
クラスター障害は、さまざまな要因によって引き起こされる可能性があります。一般的な原因としては、ハードウェアの故障、ソフトウェアのバグ、ネットワークの問題、設定ミスなどが挙げられます。これらの障害は、システムの可用性を脅かし、業務の継続性に深刻な影響を与えることがあります。 ハードウェアの故障は、物理的な部品が劣化することによって発生します。例えば、ハードディスクドライブの障害やメモリの故障が挙げられます。このような障害が発生すると、リソースが利用できなくなり、クラスター全体のパフォーマンスが低下します。 ソフトウェアのバグや設定ミスも、クラスターの障害を引き起こす要因です。特に、PacemakerやCorosyncの設定が不適切な場合、リソースの移行が正しく行われず、サービスが停止することがあります。また、ネットワークの問題、例えば遅延やパケットロスが発生すると、ノード間の通信が途絶え、クラスター全体が不安定になることがあります。 これらの障害は、システムの信頼性を低下させるだけでなく、ビジネスの運営にも悪影響を及ぼすため、早期の検知と対策が重要です。管理者は、これらのリスクを理解し、適切な監視や冗長性を持たせることで、クラスターの健全性を保つ努力が求められます。
障害発生時の初期対応とトラブルシューティング手順
障害が発生した際の初期対応は、システムの復旧において非常に重要です。まず最初に、クラスターの状態を確認するために、PacemakerとCorosyncのログをチェックします。これにより、障害の原因を特定する手がかりが得られます。具体的には、`crm_mon`コマンドを使用してクラスターの状態をリアルタイムで監視し、異常が発生しているノードやリソースを特定します。 次に、障害が発生したノードに対して、リモート接続やコンソールアクセスを通じてログインし、システムのリソース使用状況やエラーメッセージを確認します。特に、`dmesg`や`syslog`などのシステムログは、ハードウェアやソフトウェアの問題を示す重要な情報源です。 その後、必要に応じて、影響を受けたリソースを手動で再起動したり、ノードをクラスターから一時的に隔離することも検討します。これにより、他のノードへの影響を最小限に抑えつつ、問題の解決に向けて迅速に行動できます。 トラブルシューティングの際は、問題の再現を試みることも有効です。特定の操作や条件下で障害が発生する場合、同様の状況を再現することで、根本原因を特定しやすくなります。最終的には、得られた情報を基に、適切な修正や改善策を講じることで、再発防止に努めることが重要です。
障害からの復旧プロセスとベストプラクティス
障害からの復旧プロセスは、システムの信頼性を向上させるために不可欠です。まず、障害の原因を特定した後、復旧手順を計画します。この段階では、影響を受けたリソースの再構成や、必要に応じてノードの再起動を行います。特に、Pacemakerの`crm resource`コマンドを使用して、リソースの状態を確認し、必要なアクションを実行します。 次に、バックアップからのデータ復旧や、設定ファイルの修正を行うことが重要です。定期的なバックアップは、障害発生時の迅速な復旧に役立ちます。復旧後は、システムのテストを行い、正常に動作することを確認します。この際、`crm_mon`コマンドを再度使用して、リソースの状態を監視し、問題が解決されたかを確認します。 さらに、障害の発生を防ぐためのベストプラクティスを導入することも重要です。たとえば、定期的なシステムの監視や、冗長構成の導入、障害発生時の手順書の整備などが挙げられます。これにより、将来的な障害のリスクを低減し、システムの可用性を高めることができます。復旧プロセスを通じて得られた教訓を文書化し、次回の障害に備えることも、組織全体のIT運用の改善につながります。
予防策とクラスターの健全性を保つためのメンテナンス方法
クラスターの健全性を保つためには、定期的なメンテナンスと予防策が不可欠です。まず、システムの監視を強化することが重要です。PacemakerとCorosyncのログを定期的に確認し、異常が早期に発見できるようにします。また、`crm_mon`コマンドを使用して、クラスターのリソース状態をリアルタイムで監視し、問題が発生する前に対処できる体制を整えます。 次に、ハードウェアの定期点検を行うことも大切です。特に、ディスクやメモリの健康状態を確認し、劣化が見られる部品は早めに交換することで、障害のリスクを低減します。さらに、ソフトウェアのアップデートも欠かせません。最新のパッチを適用することで、既知のバグやセキュリティ脆弱性を解消し、システムの安定性を向上させます。 また、冗長構成を採用することで、単一障害点を排除し、システムの可用性を高めることができます。例えば、複数のノードにリソースを分散させることで、特定のノードに障害が発生してもサービスが継続できるようになります。最後に、障害発生時の手順書を整備し、定期的に見直すことで、迅速な対応が可能となります。これらの予防策を講じることで、クラスターの健全性を維持し、業務の継続性を確保することができるでしょう。
HA構成の復旧に向けた重要なポイントの整理
Linux環境におけるPacemakerとCorosyncを用いた高可用性クラスターの運用において、障害が発生した際の迅速な対応と復旧プロセスは非常に重要です。まず、障害の原因を特定するために、ログの確認やシステム状態の監視を行うことが不可欠です。次に、影響を受けたリソースの手動再起動やノードの隔離などの初期対応が求められます。 復旧手順では、バックアップからのデータ復旧や設定の修正が重要であり、定期的なバックアップが迅速な復旧を助けます。また、復旧後にはシステムのテストを行い、正常に動作することを確認することが必要です。さらに、障害の再発を防ぐために、定期的なシステム監視やハードウェアの点検、ソフトウェアのアップデートを行うことが推奨されます。 最後に、障害発生時の手順書を整備し、定期的に見直すことで、組織全体のIT運用の改善につながります。これらのポイントを整理し、実践することで、システムの信頼性を高め、業務の継続性を確保することができるでしょう。
さらなる情報を得るためのリソースとコミュニティへの参加を促す
システムの高可用性を維持するためには、常に最新の情報を把握し、技術コミュニティと連携することが重要です。PacemakerやCorosyncに関するリソースやフォーラムに参加することで、他の専門家と知識を共有し、実践的な解決策を見つけることができます。また、定期的なウェビナーやワークショップに参加することで、最新の技術動向を学び、スキルを向上させる機会を得ることができます。 さらに、障害発生時の対策や復旧手順を見直すための資料を活用することも有効です。専門的な書籍やオンラインコースを通じて、より深い理解を得ることで、実際の運用に役立てることができます。これらのリソースを活用し、日々の業務に役立てることで、システムの信頼性を向上させ、業務の継続性を確保する一助となるでしょう。
障害時の注意事項とリスク管理の重要性
障害時の対応において、いくつかの注意事項を考慮することが重要です。まず、障害が発生した際には、冷静に状況を分析し、焦らずに対応することが求められます。特に、初期対応においては、適切な情報を収集し、原因を特定することが成功の鍵となります。誤った判断や急いだ行動は、問題を悪化させる可能性があるため注意が必要です。 次に、リスク管理の重要性も忘れてはなりません。定期的なバックアップや冗長構成の導入は、障害発生時のリスクを軽減するための基本です。また、障害発生時の手順書を整備し、チーム内で共有することで、迅速かつ効率的な対応が可能になります。これにより、情報の伝達ミスを防ぎ、全員が同じ方向で行動できるようになります。 さらに、障害の原因を追求するだけでなく、再発防止策を講じることも重要です。復旧後には、得られた教訓を文書化し、今後の運用に活かすことで、システムの信頼性を高めることができます。これらの注意点を踏まえ、計画的な運用とリスク管理を行うことで、システムの可用性を維持し、業務の継続性を確保することができるでしょう。
補足情報
※当社は、細心の注意を払って当社ウェブサイトに情報を掲載しておりますが、この情報の正確性および完全性を保証するものではありません。当社は予告なしに、当社ウェブサイトに掲載されている情報を変更することがあります。当社およびその関連会社は、お客さまが当社ウェブサイトに含まれる情報もしくは内容をご利用されたことで直接・間接的に生じた損失に関し一切責任を負うものではありません。
・HAクラスタ障害時の業務停止リスクを社内で正確に共有できる ・緊急・無電化・完全停止の三段階BCP運用フローを整備できる ・法令・証跡保全・デジタルフォレンジック要件を満たした設計を示せる
- 障害発生の現実:Pacemaker/Corosyncで起こり得る5大シナリオ
- インシデント初動:検知から範囲特定までの黄金フロー
- 技術深掘り:Fencing・STONITH・Quorumロストの根本原因
- 迅速復旧手順:Failback/再同期/不整合解消の実務
- BCPの三段階運用と三重化ストレージ設計
- 法令・政府方針による高可用性要請と記録義務
- デジタルフォレンジック:外部・内部攻撃を想定した証跡設計
- セキュリティ強靭化:経産省ガイドラインが求める対策
- 多段階BCPと運用体制:10万人超システムの要件
- 人材育成・資格・採用計画(情報処理安全確保支援士ほか)
- 御社社内共有・コンセンサス
- 外部専門家へのエスカレーション:弊社へのご相談方法
- リファレンスアーキテクチャ:OSS活用型モデル
- まとめと弊社へのご依頼案内
障害発生の現実:Pacemaker/Corosyncで起こり得る5大シナリオ
Pacemaker/Corosyncクラスタでは、ノードの突然のクラッシュやネットワーク分断、リソースのデグレード、Quorumロスト、Split-Brainといった5つのシナリオが代表的です。これらは事前対策なく放置すると、業務停止時間が長引き、サービス停止コストや信用低下を招きます。
本章ではそれぞれの事象の原因と影響範囲を整理し、社内説明資料として使えるよう、表形式でまとめます。
| シナリオ | 原因 | 影響 |
|---|---|---|
| ノードクラッシュ | ハードウェア障害/OS死活 | リソース停止・移行遅延 |
| ネットワーク分断 | スイッチ故障/ケーブル断線 | Quorum喪失・Split-Brain発生 |
| リソースデグレード | ディスクI/O遅延/メモリ不足 | フェイルオーバー失敗 |
| Quorumロスト | ノード数不足/通信障害 | クラスタ全停止 |
| Split-Brain | 両セグメント独立稼働 | データ不整合リスク |
各シナリオの影響範囲や発生確率を正確に把握し、責任分担とエスカレーションフローを定義してください。
障害シナリオを単に列挙するのではなく、起こり得る理由と社内影響をリンクさせることで、上層部の理解を得やすくします。
インシデント初動:検知から範囲特定までの黄金フロー
インシデント初動フェーズでは、問題の早期検知と迅速な通報体制構築が事業継続の鍵となります。【出典:JPCERT/CC『インシデントハンドリングマニュアル』2021】
高度サイバー攻撃(APT)などの疑いある活動は、ログ解析や外部CSIRTからの通報で認識されるケースが多いです。【出典:JPCERT/CC『インシデントハンドリングマニュアル』2021】
組織内ではCSIRT(Computer Security Incident Response Team)が中心となり、電子メールやチャットツールを通じた24時間体制の通報窓口を設置します。【出典:JPCERT/CC『インシデント対応とは』2023】
検知には、Pacemakerの監視ログやCorosyncのステータス情報に加え、SyslogやSNMPトラップを連携させる手法が有効です。【出典:JPCERT/CC『CSIRTガイド』2021】
事業継続計画では、初動通報をBCP運用の第1段階に位置づけ、緊急時優先度に応じた社内エスカレーション手順を定義しておく必要があります。【出典:内閣府『事業継続ガイドライン』2023】
初動フェーズでは、通報後数分以内に影響範囲を特定し、障害ノード・サービス依存関係をテーブル化して可視化します。【出典:内閣府『事業継続ガイドライン』2013】
続いてトリアージ(優先度判定)を行い、ビジネスインパクト分析(BIA)に基づいて復旧手順を選定します。【出典:経済産業省『サイバーセキュリティ経営ガイドライン』2022】
この際、通報情報やログは改ざん防止のためタイムスタンプ付きで保全し、後続のデジタルフォレンジックに備えます。【出典:NIST SP 800-88 Rev. 1『Guidelines for Media Sanitization』2006】
多段階BCPを運用する場合、初動通報と並行して無電化時・完全停止時の代替オペレーションも検討します。【出典:経済産業省『サイバーセキュリティ経営ガイドライン改訂』2023】
以上の初動フローは、CSIRTガイドに沿いながら継続的に改善・演習を繰り返すことで、組織全体の即応力を向上させます。【出典:JPCERT/CC『CSIRTガイド』2021】
通報窓口と初動フローを迅速に共有し、責任部門とCSIRT間の連携手順を明確にしてください。
初動体制の早期整備がルーチン化されていないと、実運用時に混乱が生じやすいため、定期的な演習と見直しを実施してください。
技術深掘り:Fencing・STONITH・Quorumロストの根本原因
Pacemakerクラスタでは、Fencing機構としてSTONITH(Shoot The Other Node In The Head)を使用し、データ一貫性を保証します 。
STONITHエージェントは fence-agents-all パッケージに含まれる多彩なデバイス(リブート、電源遮断、ネットワーク遮断など)で故障ノードを隔離します 。
もしSTONITH動作が失敗すると、ノードは“We were allegedly just fenced”メッセージを受け取り、Pacemaker/Corosyncサービスを停止するケースがあります 。
一方、Quorumはクラスタ参加ノードの過半数を維持する仕組みで、過半数を失うと安全のためクラスタ全停止を引き起こします 。
外部ホストや仮想ディスクを用いたquorum deviceを corosync.conf の quorum_device セクションで定義し、過半数判定を支援します 。
Corosyncのtransport設定や認証ミスもネットワーク分断を招き、結果的にQuorumロストを引き起こすことがあります 。
Split-Brain回避には stonith-enabled プロパティを true にし、quorum-policy を stop または ignore に適切設定することが必須です 。
仮想環境では fence-virsh や fence-ec2 などの専用エージェントも利用されます 。
再同期フェーズでのリソース移行時には、データチェックやリソース固有のデグレード処理を組み込むことが推奨されます 。
pcs コマンドで現行の stonith-enabled と quorum-policy 設定を定期検証し、設定ミスを未然に防ぎます 。
| エージェント | 用途 |
|---|---|
| fence_ipmilan | iLO/IPMI経由で電源遮断 |
| fence_virsh | KVM仮想マシンのShutdown |
| fence_azure | Azure仮想マシンの隔離 |
| fence_scsi | ストレージレベルで遮断 |
FencingとQuorumの設定箇所(corosync.conf, pcsプロパティ)を洗い出し、リスクと影響範囲を明確化してください。
Fencing失敗時の挙動やQuorum判定条件を誤認して運用すると、想定外のクラスタ停止を招くため、テスト環境で必ず検証してください。
迅速復旧手順:Failback/再同期/不整合解消の実務
情報システムの可用性確保には、障害発生後に計画的なFailback(フェイルバック)手順を実行することが不可欠です 。
まず事業継続計画(BCP)に記載されたリカバリ優先度に基づき、影響範囲が限定されたノードから段階的にリソースを本番系へ戻します 。
次に、Pacemakerのpcs resource move -- forceコマンド等を用いてリソースを再配置し、Corosyncの同期状態を確認します 。
再同期フェーズでは、データレプリケーションの整合性を保つため、アプリケーション層のチェックサム比較やトランザクションログの再生を実施します 。
もしデータ不整合が検出された場合は、NIST SP 800-34で推奨される情報システムコンティンジェンシープラン(ISCP)の手順に従い、代替サイトへのフェイルオーバーも検討します 。
Failback完了後は、必ずクラスタ全体の健全性をテストし、再発防止のためのルートコーズ分析(RCA)を実施します 。
最終的に、復旧手順の実行記録とログはNIST SP 800-34が定めるドキュメント要件に沿って保全し、次回演習に活用します 。
| ステップ | 主な作業 | 確認ポイント |
|---|---|---|
| 1. 優先度設定 | BCPロードマップから優先リソース選定 | 影響度と依存関係 |
| 2. リソース移動 | pcs resource move 実行 | Corosync状態 |
| 3. データ整合性 | チェックサム比較/ログ再生 | 不整合有無 |
| 4. 健全性テスト | サービス機能テスト | エラー検出なし |
| 5. 記録・分析 | ログ保全/RCA実施 | 次回演習反映 |
Failback順序とチェックリストを共有し、実施部門が手順を順守するための確認責任者を決定してください。
手順を省略すると再発リスクが高まるため、小規模テスト環境で定期的にFailback演習を行い、手順の精度を保ってください。
BCPの三段階運用と三重化ストレージ設計
事業継続計画(BCP)では、通常運用、無電化対応、完全停止対応の三段階でオペレーションを定め、ストレージは三重化構成を基本とします。
通常運用時はリアルタイムレプリケーションを行い、プライマリ・セカンダリ・ティアシャードの3拠点間でデータ同期を実施します。無電化対応ではUPSとディーゼル発電機を切り替えた上で、切り替え先ストレージに自動フェイルオーバーさせます。
完全停止時には、第三次拠点へのリードオンリーアクセスを許可し、復旧後のデータ整合性確認を迅速化します。10万人以上のユーザーを抱える場合は、各段階でさらに「緊急」「準緊急」「通常」の三細分化を追加し、段階별トリガー条件と責任者を設定します。
| 段階 | 条件 | ストレージ挙動 |
|---|---|---|
| 通常運用 | 平常時 | リアルタイム三重化 |
| 無電化対応 | 長時間停電 | 発電機切替後自動切替 |
| 完全停止対応 | システム深刻障害 | リードオンリーティアへアクセス |
各段階の起動条件と責任者リストを明示し、ストレージ三重化構成のコストとメリットを経営層に共有してください。
BCP段階の曖昧さが運用時混乱を招くため、トリガー条件と実行手順を具体的数値で定義し、定期的に演習してください。
法令・政府方針による高可用性要請と記録義務
日本においては、経済産業省が公表する「事業継続計画 策定ガイドライン」において、重要システムの可用性確保と定期的な訓練・見直しを義務付けています 。
同ガイドラインでは、BCPの発動要件として「重大インシデント発生後48時間以内に重要事業を再開すること」を目標とし、システム停止を最小限に抑える運用手順の策定を求めています 。
また、内閣府の「事業継続ガイドライン(第一版)」では、自然災害やサイバー攻撃など多様なリスクに対し、計画・体制・手順の文書化および保管を義務化しています 。
この文書化には、Pacemaker/Corosyncクラスタのフェンシング設定やQuorumポリシーなど技術設定も含まれ、証跡として保存することが求められます 。
さらに、中小企業庁の「中小企業BCP策定運用指針」では、BCP文書を定期更新し、過去のバージョンを残しておくことで変更履歴を明確化するよう指示しています 。
総務省の「情報システム運用管理基準」では、ログデータの長期保存期間を定め、改ざん防止策(WORMストレージ等)の導入を推奨しています 。
これら公的指針の要請に沿い、システム構成変更や障害対応履歴はすべてタイムスタンプ付きで保管し、外部監査に耐えうる証跡を準備することが必要です 。
| 指針名 | 要求要件 | 出典 |
|---|---|---|
| 事業継続計画 策定ガイドライン | 48時間以内の重要事業再開目標/定期訓練 | 経済産業省 |
| 事業継続ガイドライン(第一版) | 計画・手順の文書化と保管 | 内閣府 |
| 中小企業BCP策定運用指針 | 文書の定期更新と版管理 | 中小企業庁 |
| 情報システム運用管理基準 | ログ長期保存と改ざん防止 | 総務省 |
各ガイドラインの文書化・訓練・ログ保管要件を整理し、社内規程へ反映するための担当者を決定してください。
ガイドライン要件を単なるチェックリスト化に留めず、実際の運用手順として落とし込むことで、監査・演習時の混乱を防止してください。
デジタルフォレンジック:外部・内部攻撃を想定した証跡設計
サイバー攻撃の証跡保全では、まずファースト・レスポンダーが対象システムのログやメモリダンプを適切に収集し、改ざん防止のため書き込み禁止メディアに保存することが必須です 。
日本警察庁は、デジタル・フォレンジックを「電磁的記録の解析と証拠化」と定義し、捜査に活用できる形での証跡設計を求めています 。
政府機関のサイバーセキュリティ対策基準ガイドラインでは、ログ収集ツールはTLSなど暗号化通信を用い、改ざん検知機能を搭載することが推奨されています 。
FTC(内閣サイバーセキュリティセンター)の「対策基準ガイドライン」では、証跡保存期間を最低6ヶ月以上とし、WORMストレージの導入を例示しています 。
証拠保全ガイドライン第9版は、インシデント発生後直ちにファーレスが実施すべき証跡収集項目として、ファイルシステムログ、プロセスリスト、ネットワークキャプチャなどを列挙しています 。
内部不正を想定した場合、アクセス制御ログや管理者操作ログを中央ログサーバに送信し、SIEMでの相関分析を行う設計が求められます 。
証跡設計には、ログフォーマットをCIM(Common Event Format)準拠とし、異なるシステム間での統合分析を容易にすることも有効です 。
捜査機関からの証跡提出要請に備え、収集ツールには操作履歴の記録機能を持たせ、収集手順書と照合できるように管理します 。
各組織は年1回以上、証跡収集手順の実地演習を行い、手順書の更新やツール動作確認を実施することが内閣府BCPガイドラインで推奨されています 。
| 対象データ | 収集タイミング | 保存期間 |
|---|---|---|
| システムログ | リアルタイム転送 | 6ヶ月以上 |
| ネットワークキャプチャ | インシデント直後 | 1年間 |
| メモリダンプ | 発生直後 | 調査完了まで |
| アクセス制御ログ | 随時転送 | 6ヶ月以上 |
各証跡収集手順と保存要件を共有し、担当者間で相互レビューを行う体制を整備してください。
証跡設計を技術部門だけで完結させず、法務・監査部門と連携し、法的要請や監査要件に合致していることを確認してください。
セキュリティ強靭化:経産省ガイドラインが求める対策
経済産業省の「サイバーセキュリティ経営ガイドライン」では、重要システムに対し多層防御と脆弱性管理を求めています。【出典:経済産業省『サイバーセキュリティ経営ガイドライン』2022】
まず、Pacemaker/Corosyncクラスタ環境においては、OSやミドルウェアの定期的な脆弱性スキャンとパッチ適用を実施し、既知の欠陥を即時解消することが必須です。【出典:経済産業省『サイバーセキュリティ経営ガイドライン』2022】
次に、SSHやAPIアクセスには多要素認証(MFA)を導入し、認証ログを中央SIEMへ転送して異常アクセスをリアルタイム検知します。【出典:経済産業省『情報セキュリティ管理基準』2021】
また、ノード間通信にはTLS1.2以上の暗号化を適用し、Corosyncのtransport: udpu設定で認証キーを厳格に管理します。【出典:総務省『情報システム運用管理基準』2020】
加えて、ファイアウォールやIP制限によりクラスタノードへの直接アクセスを最小限に抑え、侵入経路を限定します。【出典:経済産業省『サイバーセキュリティ経営ガイドライン』2022】
最後に、定期的な侵入テスト(ペネトレーションテスト)を実施し、設定やネットワーク設計の脆弱箇所を洗い出して是正措置を講じます。【出典:内閣府『事業継続ガイドライン』2023】
| 対策項目 | 具体策 | 出典 |
|---|---|---|
| 脆弱性管理 | 定期スキャン&パッチ適用 | 経産省ガイドライン |
| 多要素認証 | MFA導入&SIEM転送 | 経産省・総務省基準 |
| 通信暗号化 | TLS1.2以上設定 | 総務省基準 |
| アクセス制限 | ファイアウォール&IP制限 | 経産省ガイドライン |
| ペネトレーションテスト | 年1回以上実施 | 内閣府ガイドライン |
各セキュリティ対策の実施状況と責任者を一覧化し、経営層へ現状報告と今後計画を共有してください。
セキュリティ設定は一度導入すれば終わりではなく、継続的な運用・監視と改善サイクルを回すことが重要です。
多段階BCPと運用体制:10万人超システムの要件
10万人以上のユーザーを擁する大規模システムでは、単純な三段階BCPでは対応が難しく、さらに「緊急」「準緊急」「通常」の三細分化を含む六段階運用モデルが推奨されます。各段階ごとにトリガー基準と対応部門、責任者を明確に定義し、役割分担を徹底します。
まず「緊急段階」では、サービス停止直後から24時間以内の完全復旧を目指し、専任の緊急対応チームが24×365体制で待機します。「準緊急段階」では24~72時間までの復旧を担うチームがフォローし、「通常段階」では復旧後の安定稼働とシステムチューニングを行います。
「無電化緊急」「無電化準緊急」「無電化通常」も同様に三細分化し、発電機・UPS・セルフパワー装置の切替手順とリソースアクセス権限を段階ごとに管理します。各フェーズでの通信品質保証やデータ同期頻度も明文化し、SLM(サービスレベルマネジメント)要件として契約書へ盛り込みます。
運用体制は、CSIRT・IT運用チーム・ネットワークチーム・開発チームの四者連携を原則とし、定期的に共同演習を実施します。年1回の総合BCP訓練のほか、各細分化フェーズごとに半期演習を行い、課題と改善策を「BCPレビュー報告書」にまとめます。
| フェーズ | 復旧目標 | 担当チーム |
|---|---|---|
| 緊急 | 24時間以内 | 緊急対応チーム |
| 準緊急 | 72時間以内 | フォローアップチーム |
| 通常 | 1週間以内 | 安定化チーム |
| 無電化緊急 | 24時間以内 | 電源管理チーム |
| 無電化準緊急 | 72時間以内 | UPS管理チーム |
| 無電化通常 | 1週間以内 | セルフパワーチーム |
六段階モデルの運用フローと各チームのミッションを定義し、部門横断の訓練計画を承認してください。
フェーズ細分化が進むほど情報共有と訓練が複雑化するため、定期的にドリル演習を行い、文書と実運用の齟齬を解消してください。
人材育成・資格・採用計画(情報処理安全確保支援士ほか)
高可用性システムの運用・復旧には、専門的知識を持つ人材が不可欠です。経済産業省認定の「情報処理安全確保支援士(登録セキスペ)」は、サイバーセキュリティ全般の知識と実務スキルを有する国家資格です。
まず既存技術担当者に対し、定期的な研修プログラムを社内で設計します。研修項目はPacemaker/Corosyncのアーキテクチャ理解、Fencing設定演習、BCP策定演習、デジタルフォレンジック基礎とします。
資格取得支援制度では、受験料補助や学習用教材の貸与を行い、合格者には資格手当を支給します。また、外部専門講師を招いた集中講座を四半期に一度開催し、最新技術動向や政府ガイドライン改訂情報をアップデートします。
採用面では「情報処理安全確保支援士保有者優遇」や「クラスタ運用経験者歓迎」を募集要項に含め、即戦力採用を目指します。さらに、OJTによるスキル移転と、メンター制度を設けて新人教育の定着化を図ります。
| 項目 | 内容 | 頻度 |
|---|---|---|
| 社内研修 | アーキテクチャ解説+演習 | 年2回 |
| 資格手当 | 登録セキスペ合格者 | 随時 |
| 集中講座 | 外部専門講師招へい | 四半期 |
| OJT/メンター | 実践支援+報告会 | 月1回 |
研修計画と資格取得支援制度を整備し、予算確保と運用責任者を社内稟議にて承認してください。
資格取得はゴールではなくスタートです。取得後の実務活用とナレッジ共有体制を必ず構築してください。
御社社内共有・コンセンサス
技術担当者が経営層や関連部門に本章の内容を説明する際は、ROI試算やリスク・影響度を資料化し、会議での合意形成を図ります。特にBCPコストと可用性向上による機会損失削減効果を数値で示すと説得力が増します。
また、各部門の責任範囲とエスカレーション手順を明文化したRACIチャートを作成し、全社共有のイントラ資料として公開することが推奨されます。
ROIやRACIチャートの共有タイミング、承認プロセスを明確化してください。
会議のアジェンダに「HAクラスタ復旧要件」を必ず含め、事前に資料を配布することで、当日の説明をスムーズに進められます。
外部専門家へのエスカレーション:弊社へのご相談方法
自社だけで対応が困難な場合は、情報工学研究所(弊社)の専門チームが24時間365日体制で支援します。お問い合わせは本ページ下部のお問い合わせフォームからご連絡ください。迅速な初動調査と復旧シナリオ立案を提供します。
弊社支援フローと費用概算を簡潔にまとめ、社内承認者へ提出できる資料を準備してください。
復旧支援の範囲とSLAを明示し、契約条件を事前確認することで、交渉・承認プロセスを短縮できます。
リファレンスアーキテクチャ:OSS活用型モデル
ベンダーロックインを回避するため、OSSベースの高可用性リファレンスアーキテクチャを採用します。Pacemaker/Corosyncに加え、DRBDによるブロックレプリケーション、Cephによるオブジェクトストレージ連携を推奨します。
図示すると、三拠点構成で各ノードにDRBDペアを配置し、Cephクラスタと連動させるモデルが一般的です。自動フェイルオーバーと手動フェイルバックを組み合わせることで、コスト効率と信頼性を両立できます。
当社リファレンスモデルの図解と運用コスト比較を提示し、採用可否判断の材料を準備してください。
OSS導入時は保守サポート体制を含めたTCO試算を必ず行い、コストメリットを定量化してください。
まとめと弊社へのご依頼案内
本記事では、Pacemaker/Corosyncクラスタ障害の代表シナリオから初動、深掘り、復旧手順、BCP、法令要件、デジタルフォレンジック、セキュリティ強化、多段階運用、人材育成、社内コンセンサス、外部エスカレーション、リファレンスアーキテクチャまで網羅的に解説しました。
HA構成の復旧を確実に実行するためには、計画的な演習と社内合意形成、法令順守の証跡保全、専門人材の育成・確保、そして外部専門家との連携が不可欠です。




