LifeKeeperの『困った』を『できた!』に変える!サポート事例から学ぶトラブルシューティング&再発防止策
こんにちは、SCSKの前田です。
いつも TechHarmony をご覧いただきありがとうございます。
LifeKeeper の運用は、システムの安定稼働を支える重要な役割を担いますが、時には「なぜか動かない」「エラーが出てフェイルオーバーできない」といった『困った』事態に直面することもありますよね。そんな時、サポートに問い合わせて解決した経験は、多くの方にとって貴重な財産となっているはずです。
本連載企画「LifeKeeper の『困った』を『できた!』に変える!サポート事例から学ぶトラブルシューティング&再発防止策」では、実際に LifeKeeper のサポートに寄せられた問い合わせ事例を基に、よくあるトラブルの原因、究明プロセス、そして何よりも『再発防止策』に焦点を当てて深掘りしていきます。
はじめに
LifeKeeper運用の現場で頻繁に遭遇するリソース起動・フェイルオーバー失敗。その中でも特にファイルシステムやIPリソースは、設定ミスや環境要因で予期せぬ問題を引き起こしやすいものです。
本連載の第二弾では、OSアップデート後に発生したファイルシステムリソースのマウントオプション不一致エラー「124011」のサポート事例を通じて、エラーコードから原因を読み解き、適切な解決策と再発防止策を学ぶことで、LifeKeeperクラスタをより安定的に運用するためのヒントを提供します。特に、解決策実施時に遭遇しがちな「権限問題」についても詳しく解説します。
その他の連載企画は以下のリンクからどうぞ!
今回の「困った!」事例
LifeKeeperクラスタ環境で、ファイルシステムリソースが繰り返しローカルリカバリーを実行し、それに伴ってWebサービスへの接続障害が発生しました。
事象の概要:
お客様環境のLifeKeeperクラスタで、特定のファイルシステムリソース(/DISK1)において、LifeKeeperログ(lifekeeper.log)に以下のエラーメッセージが頻繁に出力され、ローカルリカバリーが繰り返されていることが確認されました。
(current mount option list: rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota,
expected mount option list: rw,relatime,attr2,inode64,noquota)
このエラーコード124011は、「LifeKeeperのファイルシステムリソースで指定したマウントオプションと、実際にマウントされた際のオプションに相違が生じている」ことを示します。
また、この事象と関連があるかは不明でしたが、同時間帯にWebサービスへの接続障害も発生していました。
発生時の状況:
エラーメッセージが示す通り、LifeKeeperが監視しているファイルシステム /DISK1 が、LifeKeeperが期待するマウントオプションと異なるオプションでマウントされている状況でした。具体的には、logbufs=8,logbsize=32k というオプションが追加で付与されていました。
お客様環境では、事象発生の数日前にOS(RHEL 8.1からRHEL 8.3へ)のカーネルアップデートを実施しており、このアップデートが関連している可能性が疑われました。
Web接続障害については、詳細なログ確認の結果、LifeKeeperが事前に停止されている時間帯に発生しており、ファイルシステムリソースのエラーとは直接的な関連がないことが判明しました。
Sep 2 07:30:29 LK-NODE-01 quickCheck[1103776]: ERROR:filesys:quickCheck:/DISK1:124011:”/DISK1″ is mounted but with the incorrect mount options
Sep 2 07:30:29 LK-NODE-01 quickCheck[1103776]: INFO:filesys:quickCheck:/DISK1:124013:Attempting Local Recovery of resource
Sep 2 01:00:14 LK-NODE-01 lk-start-stop[878561]: NOTIFY:shutdown:::010069:stopping LifeKeeper (options: nofailover noremove)
原因究明のプロセス:
サポートとのやり取りを通じて、以下の点が確認されました。
- LifeKeeperのマウントオプションの保持: LifeKeeperはファイルシステムリソースを作成する際、その時点のOS(この場合はRHEL 8.1)が設定しているマウントオプションをリソース情報として保持します。これは /etc/fstab の情報を自動で読み取るような挙動ではなく、作成時のマウントされている設定情報を基に値を保持します。
- OSアップデートによる変更: OSをRHEL 8.3にアップデートしたことで、OS側のマウントコマンドが特定のファイルシステムタイプ(XFSなど)に対してデフォルトで追加のマウントオプション(logbufs=8,logbsize=32k)を付与するように変更された可能性があります。
- オプション不一致の発生: LifeKeeperはOSの変更に合わせてリソース情報を自動更新しないため、保持しているRHEL 8.1時代の「期待されるマウントオプション」と、RHEL 8.3で実際にマウントされた際の「現在のマウントオプション」との間で不一致が生じました。
- 監視によるエラー検出: LifeKeeperの quickCheck プロセスがこの不一致を検出し、エラーコード124011を出力。これにより、リソースのローカルリカバリーが繰り返し実行される状態となっていました。
判明した根本原因:
OSのカーネルバージョンアップ(RHEL 8.1 → RHEL 8.3)により、OS側のファイルシステムマウントオプションのデフォルト値が変更されたことが根本原因でした。LifeKeeperが保持するリソース設定値がOSの変更に追従しておらず、マウントオプションの不一致が継続的に監視エラーを引き起こしていました。Web接続障害はLifeKeeperの動作停止中に発生しており、直接的な原因ではないと判断されました。
「再発させない!」ための対応策と学び
具体的な解決策:
LifeKeeperのファイルシステムリソースに設定されているマウントオプションを、現在のOS(RHEL 8.3)で実際に付与されているマウントオプションに合わせて変更することで、エラーは解消されます。 この変更は両LifeKeeperサーバーで実施する必要があります。
コマンドラインからの変更(推奨)と権限問題の解決:
リソースを停止する必要がないため、運用中のシステムで安全に実施できます。
# lkcli resource config fs –tag <リソース名> –mountopt <設定するマウントオプション>
例:
# lkcli resource config fs –tag /DISK1 –mountopt rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota
【重要: コマンド実行時の権限問題】
この lkcli コマンドをrootユーザーで実行した際、「Permission denied.」エラーが発生する場合があります。これは、lkcli コマンドを実行するためには、実行者が lkadmin グループに所属している必要があるためです。
- 解決策1: rootユーザーを lkadmin グループに所属させる。 多くの環境ではrootユーザーはデフォルトで lkadmin グループに所属していますが、そうでない場合は usermod -aG lkadmin root などのコマンドでグループに追加し、セッションを再開(ログアウト/ログイン)して実行します。
- 解決策2: lkadmin グループに所属する別のユーザーで sudo を利用して実行する。 システム運用ポリシー上、rootユーザーを直接操作しない場合は、lkadmin グループに所属するユーザーアカウントを作成し、そのユーザーで sudo を使ってコマンドを実行することも可能です。
LifeKeeper GUIからの変更:
LifeKeeper GUIから対象のファイルシステムリソースを停止し、リソースを右クリックして「Change Mount Options」を選択して設定します。GUI操作であれば権限問題に直面する可能性は低いですが、リソース停止が必要となります。
再発防止策(チェックリスト形式):
同様の問題を未然に防ぎ、より安定的なクラスタ運用を行うために、以下の点を確認・実施しましょう。
- OSアップデート前のLifeKeeper互換性確認: OSのメジャーバージョンアップやカーネルアップデートを実施する際は、必ずLifeKeeperがそのOSバージョンおよびカーネルバージョンをサポートしているか、サポートマトリクスで事前に確認する。
- OSデフォルト設定の変更点確認: OSアップデートのリリースノートを確認し、ファイルシステムのマウントオプションやネットワーク設定など、LifeKeeperが管理するリソースに影響を与える可能性のあるOS側のデフォルト設定の変更がないか確認する。
- LifeKeeperログ監視の徹底: LifeKeeperログのエラーメッセージ(特にエラーコード)を日常的に監視し、異常を早期に検知できるよう運用体制を整える。エラーコード124011が検出された場合は、まずマウントオプションの不一致を疑い、mount コマンドなどで現状を確認する。
- LifeKeeperコマンド実行権限の確認: lkcli などLifeKeeper関連の重要なコマンドを実行するユーザーが、適切な権限(例: lkadmin グループへの所属)を持っていることを事前に確認し、必要に応じて権限設定を適切に行う。
ベストプラクティス:
- 環境要件の遵守: LifeKeeperは特定のOSバージョン、カーネルバージョン、ストレージ、ネットワーク構成で動作が保証されています。導入前だけでなく、運用中のOSアップデートや環境変更時にも、常にSIOSの動作環境要件や推奨設定を確認し、遵守することが重要です。
- 関連ドキュメント: SIOS オンラインマニュアル(最新版のドキュメントを参照し、ファイルシステムリソースに関する項目や、OS設定に関する項目を定期的に確認しましょう。)
- エラーメッセージの活用: LifeKeeperのエラーメッセージは、問題解決の重要な手がかりです。メッセージカタログやドキュメントを参照し、エラーコードが示す意味を正確に理解することで、迅速な原因究明と対処が可能になります。
- テスト環境での十分な検証: OSのメジャーアップデートやシステム構成の大きな変更を行う際は、本番環境に適用する前に、必ず検証環境でLifeKeeperリソースを含むシステム全体の動作テストを徹底し、潜在的な問題を洗い出すようにしましょう。
- 権限管理の徹底とドキュメント参照の習慣: LifeKeeperの運用では、コマンド実行時の権限管理が非常に重要です。最小権限の原則に基づき、必要なユーザーにのみ適切な権限を付与し、その権限での操作方法を明確にする必要があります。また、LifeKeeperのマニュアルはバージョンによって内容が更新されるため、使用しているLifeKeeperの正確なバージョンに合致するドキュメントを参照し、必要に応じて最新情報もチェックする習慣が、誤った操作やトラブルの回避に繋がります。
まとめ
今回の事例では、OSアップデートがLifeKeeperのファイルシステムリソースの設定に影響を与え、マウントオプションの不一致を引き起こしたことが原因でした。さらに、解決策の実施時には lkcli コマンドの実行権限の問題にも直面しました。
この事例から、OSのバージョンアップがLifeKeeperの動作に予期せぬ影響を与える可能性があること、そしてLifeKeeperコマンドの適切な実行権限の重要性を学びました。
事前の互換性確認、変更後のリソース設定の見直し、そして正確なマニュアル参照と権限管理の徹底は、日々の運用でシステムの変更に際してトラブルを未然に防ぐ上で極めて重要です。
次回予告
次回の連載では、「リソース起動・フェイルオーバー失敗の深層」の第三弾として、「クラスタの予期せぬ停止を防ぐ!ネットワーク構成のトラブルシューティング」と題し、LifeKeeper環境におけるネットワーク関連のトラブル事例とその解決策、安定稼働のためのベストプラクティスを深掘りします。どうぞご期待ください!

