クラスタストレージとして NFS ファイルサーバ (Network Attached Storage) を使用するために LifeKeeper を設定するにあたっていくつかの特別な考慮事項があります。

NAS Recovery Kit の使用

オプションの Network Attached Storage (NAS) Recovery Kit は、LifeKeeper for Linux で NFS サーバを共有ストレージアレイとして使用する場合に必要になります。各クラスタノードに NAS Recovery Kit (およびライセンス) をインストールしてください。詳細については、NAS Recovery Kit のドキュメンテーションを参照してください。

エラーメッセージ

MySQL と Network Attached Storage (NAS) を使用する際に、システムクラッシュにより My SQL インスタンスがフェイルオーバ後に再起動できないといった事象に遭遇する可能性があります。MySQL エラーログで、エラーの原因が分かります。

MySQL 5.0

110523 22:10:58 mysqld started
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
110523 22:10:58 InnoDB: Retrying to lock the first data file
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.

MySQL 5.5

110524 10:52:20 InnoDB: The InnoDB memory heap is disabled
110524 10:52:20 InnoDB: Mutexes and rw_locks use GCC atomic builtins
110524 10:52:20 InnoDB: Compressed tables use zlib 1.2.3
110524 10:52:20 InnoDB: Initializing buffer pool, size = 128.0M
110524 10:52:20 InnoDB: Completed initialization of buffer pool
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
110524 10:52:20 InnoDB: Retrying to lock the first data file
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.

これは LifeKeeper によって制御されている NFS ファイルシステム上で、MySQL mysqld プロセスが ibdata1 ファイルを NFS lock に設定しているということを示しています。システムクラッシュによりロックがクリアされなかったので、LifeKeeper は MySQL インスタンスを In Service の状態に戻すことができません。MySQL は何か別のプロセスが ibdata1 ファイルを使用しているとみなします。

解決方法

この事象を解決するためには、ファイルシステムリソースを作成する前に「nolock」とよばれる NFS のオプションで ibdata1 を格納する予定の NFS ファイルシステムをマウントしてください。デフォルトでは、NFS はファイルをロックさせるよう設定しています。「nolock」オプションがリソース作成前に使用されると、LifeKeeper はこのオプションを認識し、ファイルシステムリソースを In Service の状態にするたびにこのオプションを使用します。LifeKeeper は (クラスタノードから) ibdata1 を含んだファイルシステムへのアクセスを制御するので、通常、ロックは重要ではありません。テスト中に使用される NFS マウントオプションは「 rw,sync,tcp,nfsvers=3,nolock」です。

MySQL のバイナリが格納されているファイルシステムといったような MySQL リソース階層によって使用されるその他のファイルシステム上で「nolock」を使用する必要はありません。

NAS ファイルシステムリソースがすでに「nolock」オプション設定なしに作成されている場合は以下の手順に従ってマウントオプションを変更してください。

  1. LifeKeeper GUI を使用して変更する必要があるファイルシステムリソースに対して Out of Service 操作を行ってください。この操作は LifeKeeper GUI でファイルシステムリソース上にポインタを置き、右クリックしてドロップダウンメニューから [Out of Service] を選択することで可能です。この操作は親リソースも同じく Out of Service 状態にします。

  1. [Out of Service] 操作を実行し、プロセスを完了させてください。
  1. 一旦ファイルシステムリソースが Out of Service 状態になったら、ポインタをリソース上に置き右クリックし、ドロップダウンメニューから [Change Mount Options] を選択してください。

  1. ポップアップウィンドウで、オプションの行に 「nolock」 を追加し、 [Set Value] をクリックしてください。クラスタの各ノードで手順 3 および 4 を繰り返す必要があります。

  1. マウスを右クリックし、 [In Service] を選択し、NAS ファイルシステムリソースを In Service の状態に戻してください。
  1. ファイルシステムリソースのプロパティパネルが、「nolock」が現在のマウントオプションであることを表示します。

フィードバック

フィードバックありがとうございました

このトピックへフィードバック

送信