LifeKeeperのインストール作業/DRBDリソース作成時のトラブルシューティング

以前、Disaster Recovery 機能を用いたLifeKeeperの構築を行いました。

AWS環境でのLifeKeeperを用いた災害対策!Disaster Recovery Add-on 構築&機能検証
災害対策サイトへのリアルタイムでのデータレプリケーションと、フェイルオーバーを可能にするDisastar Recovery Add-onの設定手順と機能検証を行いました。

検証環境を一から作成し、LifeKeeperのインストールを初めて行ったのですが、
その際に生じた躓いたところを、自分への備忘もかねて今回まとめました。

概要

  • AWS環境のRed Hat Enterprise Linux に LifeKeeperをインストール
  • Disaster Recovery Add-onの初期設定及びリソース作成/拡張を実施

インストール時

まず初めにLifeKeeperをインストールの際のトラブルシューティングです。
事前に確認しておくべき項目を記載しておきます。

  • ライセンスが有効であるか
    初歩的なことですが、一番大事な確認かもしれません。
    ライセンスが有効になっているか、期限が切れていないかまずは確認しましょう。
  • SELinuxが無効化されているか
    SELinux が enforcing モードの場合 、LifeKeeper は動作しないため無効となっているか確認しましょう。
    確認コマンド:sestatus

上記事項の確認を終えましたら、インストールに移っていきます。
インストールの手順としては、isoファイルを対象のノードにセットして、セットアップを実行していきます。
私が初めて実施した際は、まずその段階でエラー発生しました。

# ./setup
LifeKeeper for Linux Setup
Validating files........................................................................OK
Collecting system information.....................................done.
Preparing configuration information............done.
Performing package installation and updating configuration information for LifeKeeper for Linux.
Install LifeKeeper and dependent packages done.
Setup failed.
Fix the problem and try again.
---error message---
  - Status code: 999 for
https:/---
Error: Failed to ---
#

上記表示のように、エラーメッセージやエラーコードが表示されました。
セットアップコマンドが失敗した際は、エラー原因を確認し該当の箇所をある程度は切り分けられることができますので、
対処をして再度チャレンジしていきましょう。

インストールが完了しましたら、LifeKeeperが起動しているか確認してみましょう。
確認方法としては、/opt/LifeKeeper/bin/lktest を実行すると確認ができます。

# /opt/LifeKeeper/bin/lktest
F   S UID      PID   PPID  C  CLS PRI  NI SZ    STIME    TIME   CMD
 4 S root     23199 23134 0   TS   39 -20 4579  05:29  00:00:00 lcm
 4 S root     23201 23140 0   TS   39 -20 5526  05:29  00:00:00 ttymonlcm
 4 S root     23205 23133 0   TS   29 -10 6674  05:29  00:00:00 lcd
#

上記コマンドを実行して出力がされていれば、無事LifeKeeperは起動されております。

 

リソース作成時

続いて、LifeKeeperのインストール完了後、リソースと呼ばれる、LifeKeeperにて保護するアプリケーションやファイルシステムを設定する中でのトラブルシューティングとなります。

今回はDisaster Recovery Add-onにおけるDRBDリソース作成および拡張時におきたトラブルシュートの例を記載いたします。

リソース不足

デフォルト値の設定にてリソース作成を試みたところ容量不足でエラーが発生しました。
1.0MBで容量が不足とのことなのでこちらの対処として、AWS EBSで10 GiBのサイズを対象インスタンスへの割り当てを行い、こちらのエラーは解消となりました。

 

パーティション作成

続いて、DRBDリソース作成時に発生したエラーです。


このエラーは、パーティションの無いデバイスに対して操作を行うと生じるエラーとのことでした。
こちらは検証を行っていた段階では製品マニュアル等に記載が無い情報となりメーカーのサポート窓口と密にやり取りを行い解消できた事象となります。
対処として、マウント対象のデバイスに対してパーティションを作成し事象が解消となりました。

そのため、データレプリケーションリソース作成の際は、事前にデバイスの確認を行い、無いようであればディレクトリにパーティションの作成を行いましょう。

 

パーティションの作成方法としては以下となります。
fdiskを使用して新しいパーティションを作成または修正します。

sudo fdisk /dev/<対象デバイス名>
n を押して新しいパーティションを作成。
p を選んでプライマリパーティションを設定。
必要に応じて値を設定し、最後にパーティション変更を保存するために w を押します。             

 

DRBDリソース再作成時の注意点

一度リソースの作成ができず、再度リソースの作成を試みようとしたとき、
DRBD の設定が残っている可能性があり、その場合リソース作成でエラーが発生いたします。
その際は以下のコマンドを実行をして余分な情報を削除する必要があります。

rm /etc/drbd.d/*res*

※該当ファイルの削除確認が表示されますので y で削除してください。
(何度もリソース作成をしていたので、何回も削除をして疲れた思い出があります。)

 

コミュニケーションパス作成時

リソース拡張前にコミュニケーションパスを作成する

リソース拡張という操作をするのですが、そもそもリソース拡張とは、なんぞやというところですが
リソース拡張とは1号機、2号機で作成したリソースを簡単に言うと紐づける動作となります。

その際の動作ですが、コミュニケーションパスで接続されているサーバーがないとそもそもLifeKeeper側で認識ができず、拡張ができないとのことです。
なので、先にコミュニケーションパスの作成をしましょうというお話です。

ちなみに、コミュニケーションパスの作成が完了し1号機、2号機が接続されている状態でリソース拡張先のサーバーでも該当のARL(今回の場合 DRBD ARK) やとLifeKeeperの設定をGUI上で行うLKWMC のインストールの準備が必要となります。こちらが行えていたら、リソース拡張操作で DRBD リソースの拡張が行えるようになります。

 

名前解決

コミュニケーションパスの作成時にも、もちろん(?)エラーが発生しました。
エラー原因は1号機、2号機間での名前解決が出来ていないからでした。
今回は、hostsファイルに対象のホスト名を明記し、解消しました。

vi /etc/hosts
192.168.xx.xx
10.142.xx.xx

 

対象ポートの許可

 以下のTCPポートの許可設定が必要となります。

サービス ポート番号
コミュニケーションパス (TCP) 7365/tcp
GUI サーバーとの通信 81/tcp、82/tcp
GUI サーバーとクライアントとの RMI 通信 1024/tcp 以降の全ポート
LKWMCの通信GUIサーバー 5110/tcp
LKWMCのREST APIサーバー 5000/tcp

 

Disaster Recovery Add-on機能の確認時

無事DRBDリソース作成及び拡張ができ、設定が完了したかと思い、機能の確認をしたのですが想定通りの動作がせず困ったことに、、、

そこで有識者に確認をしてみたところQuorum/Witness の設定をしてみたらどうかとの見解を頂きました。

構成例 - LifeKeeper for Linux LIVE - 9.9.0
ここでは DRBD を用いた3ノードディザスターリカバリーの構成例を説明します。 概要 以下の AWS...
storage モード - LifeKeeper for Linux LIVE - 9.6.1
Quorumパラメータ一覧 - LifeKeeper for Linux LIVE - 9.4.0
下記の表は、Quorumパラメーター名とその意味を説明しています。これらの値は /etc/default/LifeKeeper...

上記3つの資料を参考にQuorum/Witnessの設定をしてみたのですが、/opt/LifeKeeper/bin/qwk_storage_initを実行でエラーが出てしまいました。
よくよく確認すると、AWS CLIの設定を修正(アクセスキー設定を統一)して再度実行したところ解消しました。

その後、東京リージョンのノードを落として、データレプリケーションが大阪ノードで行われるかの機能について確認したところ、
無事フェイルオーバーとデータレプリケーションを確認できました!復旧後の動作も問題なく確認できたため検証終了となりました。

参考設定値
#cat /etc/default/LifeKeeper
NOBCASTPING=1 
QUORUM_MODE=storage
WITNESS_MODE=storage
~以下省略~
# Do NOT edit LK_DISTRIBUTION values – this may cause LifeKeeper to malfunction
LK_DISTRIBUTION=redhat
LK_DISTRIBUTION_VERSION=9.4-0.4.el9
QWK_STORAGE_TYPE=aws_s3
QWK_STORAGE_OBJECT_ip_10_142_xx_xx_compute_internal=s3://drbd/~
QWK_STORAGE_OBJECT_ip_10_142_xx_xx_compute_internal=s3://drbd/~
QWK_STORAGE_OBJECT_ip_192_168_xx_xx_compute_internal=s3://drbd/~

 

まとめ

今回の検証作業では、一歩進んでは躓き、そこからまた一歩進んだかと思えば違う壁にぶつかりと一進一退の作業でした。
今回行ったトラブルシューティングの対応を今後に活かしていき、スムーズなLifeKeeperの構築を目指していきたいです。

本記事についてより詳しい内容を知りたい方がいらっしゃいましたら
以下画像をクリックし、HPよりお気軽にお問い合わせください。

 

著者について

SCSK株式会社
基盤ソリューション事業本部
テクノロジーサービス部 第一課

痛風になりそうな食べ物が好きです。

Kento Oyaをフォローする

クラウドに強いによるエンジニアブログです。

SCSKでは、自社クラウドと3大メガクラウドの強みを活かし、ハイブリッドクラウド/マルチクラウドのソリューションを展開しています。業界の深い理解をもとに、お客様の業務要件に最適なアーキテクチャをご提案いたします。サービスサイトでは、お客様のDX推進をワンストップで支援するサービスの詳細や導入事例を紹介しています。

LifeKeeper
シェアする
タイトルとURLをコピーしました