web-dev-qa-db-ja.com

iSCSI、フェイルオーバー、XenServer

ISCSIフェイルオーバーの実装セットアップがあるので、ストレージユニットの1つに障害が発生すると、もう1つがすぐに引き継ぎます(NFS共有も実行されます)。フェイルオーバーが発生すると、ボリュームがエクスポートされ、IPが他のマシンに切り替えられ、ターゲットが再構成されます。ストレージシステム自体のフェイルオーバーは問題なく機能します。ファイラーにはNexentaStorを使用しています。

ストレージのテスト(手動)フェイルオーバーを実行すると、次のことが発生します。

注:管理VMはNFSで実行し、顧客ベースのVMはiSCSIで実行します

  1. すべてのNFSベースのVMは、フェイルオーバー後もその後も完全に稼働し続けます。
  2. ISCSIで実行されているすべてのVM 'sは、最終的に次のことを報告します:
    • 特定のブロックに書き込めないことに関するエラー
    • ジャーナリングが機能しないことに関するエラー
    • 次に、ファイルシステムはROになります

VMを再び機能させるには、次のことを行う必要があります。

  1. 「壊れた」VMを強制的にシャットダウンします。
  2. ISCSISRを取り外します
  3. ISCSISRを再接続します
  4. 別のサーバー(プール内の5)でVMを起動する)別のサーバーで起動しないと、このエラーが発生します"Internal error: Failure("The VDI <uuid&gt; is already attached in RW mode; it can't be attached in RO mode!")"私が見つけた唯一の方法そのエラーを修正すると、以前に実行していたサーバー全体を再起動することになりますが、これは明らかに大きな問題です。

現在、マルチパスは有効になっていません(ただし、有効にすることができ、同じことが引き続き発生します)。 /etc/iscsid.confファイルの多くを編集して、タイムアウト設定で機能するようにしましたが、役に立ちませんでした。

要するに、私のストレージは適切にフェイルオーバーしますが、XenServerは接続を維持しません。考えとして、上記の#4に表示されるエラーは、すべてを修正する最終的な原因と修正である可能性がありますか?

どんな助けでもあなたが知っている以上に感謝されるでしょう。

1
jemmille

ISCSIフェイルオーバーでも非常によく似た問題がありました。 この質問 で対処されています。私がどのようにそれを解決したかについての情報のために私が自分で発見した私の受け入れられた解決策を見ることができます。

基本的には設定が必要です

node.conn[0].timeo.noop_out_interval = 0
node.conn[0].timeo.noop_out_timeout = 0
node.session.timeo.replacement_timeout = 86400

これにより、iSCSIセッションは、チェーンの上位のカーネルにエラーを報告する前に回復するのに十分な時間があります。

2
Kamil Kisiel

xe-toolstack-restart私のためにそれを修正しました。

0
Zack