web-dev-qa-db-ja.com

VMware ESXi:VM(NFSストレージの再起動を許可するため)のプロセスの一時停止、データベース、AD、特殊なケースへの副作用はありますか?

状況:

統合されたオールインワンESXi/ZFS-Storageサーバーでは、ストレージVMはベアメタルディスクを使用し、ファイルシステムをNFS(またはiSCSI)経由でESXiにエクスポートします。他のVMのプールストレージでは、ストレージVMを更新するときに問題が発生します。これは、実行中の多数のVMがストレージVMに依存しており、通常のサーバーからドライブをプルするのと同じNFS.AllPathsDownまたは同様の原因でタイムアウトするためです。シャットダウンせずに。

もちろん、すべてのVMをシャットダウンすることは可能ですが、これは非常に時間がかかり、面倒にもなります(またはスクリプト化する必要があります)。 VMを別のホストに移動することは可能かもしれませんが、さらに時間がかかり、単一のマシンで十分な小規模なセットアップでは不可能な場合があります。 VMの一時停止は機能する可能性がありますが、非常に遅くなります(シャットダウンよりも遅くなる場合があります)。

可能な解決策...

  1. シンプルで効率的な解決策は次のように思われます CLIを介してVMプロセスkill -STOP [pid]で見つけた後、ps -c | grep -v grep | grep [vmname]で停止し、ストレージVMをアップグレード/再起動してから、kill -CONT [pid]を使用してVMプロセスの実行を続行します。
  2. 同様の解決策は、高速再起動(Solaris/illumosではreboot -f経由またはLinuxではkexec-reboot経由で利用可能)の組み合わせであり、数分ではなく数秒かかります、およびESXiのNFSタイムアウト(NFS接続が失われると、ストレージが永続的にダウンしていると見なされるまで、すべてのI/Oが120秒間中断されます)。再起動時間がESXiNFSウィンドウ内にある場合、理論的には、エラー訂正のために1分間応答しないが、その後通常の動作を再開するディスクに匹敵するはずです。

...そして問題?

さて、私の質問は次のとおりです。

  1. どちらの方法が望ましいですか、それとも同じように良い/悪いですか?
  2. データベース、Active Directoryコントローラー、ユーザーがジョブを実行しているマシンなどの特殊なケースでの意図しない副作用は何ですか?
  3. どこに注意する必要がありますか?リンクされたブログへのコメントは、たとえばCPUがフリーズしたときに時間管理の問題が発生する可能性があることを示しています。

編集:この質問の範囲を明確にするため

最初の2つの回答を受け取った後、私は質問を十分に明確に表現していないか、簡潔にするために情報を省略しすぎていると思います。私は次のことを知っています:

  • VMwareや他の人にはサポートされていません。これは行わないでください!:最初のリンクですでに説明されているため、これについては触れませんでした。また、このマシンがVMwareサポートによって管理されます。これは純粋に技術的な質問であり、サポートに関するものはここでは範囲外です。
  • 今日新しいシステムを設計する場合、他の方法でいくつかのことができる可能性があります:正解ですが、システムは数年間安定して動作しているので、赤ちゃんを捨てたくないですお風呂の水で、まったく新しいものから始めて、新しい問題を引き起こします。
  • ハードウェアXを購入すれば、この問題は発生しません!確かに、同様のコストで2台または3台の追加サーバーを購入し、完全なHAセットアップを行うことができます。私はこれがどのように行われるかを知っています、それはそれほど難しいことではありません。しかし、これはここでは状況ではありません。私の場合、これが実行可能な解決策だったとしたら、そもそも質問をしなかっただろう。
  • シャットダウンと再起動の遅延を受け入れるだけです:現在行っていることなので、これが可能性があることはわかっています。私は、現在の設定内でより良い代替案を見つけるか、いくつかの方法の実証された技術的理由を知るために質問をしました概説すると問題が発生します-説明なしで「それは予測不可能です」なぜ私の本で実証された答えではないのですか。

したがって、質問を言い換えると、次のようになります。

  1. セットアップが固定されており、データの整合性に悪影響を与えることなくダウンタイムを削減することが目標であると仮定すると、これら2つの方法のどちらが技術的に望ましいのでしょうか。
  2. のような特別な場合の意図しない副作用は何ですか
    • ユーザーやアプリケーションがアクセスするアクティブ/アイドリング/静止データベース
    • このマシンおよび/または他のマシン(同じドメイン上)のActiveDirectoryコントローラー
    • アイドリング中の汎用マシン、またはジョブを実行しているユーザー、またはバックアップなどの自動メンテナンスジョブを実行しているユーザー
    • ネットワーク監視やルーターなどのアプライアンス
    • このサーバーまたは別のサーバーまたは複数のサーバーでNTPを使用する場合と使用しない場合のネットワーク時間
  3. 欠点が利点よりも大きいため、これを行わないことが推奨される特殊なケースはどれですか?どこに注意する必要がありますか?リンクされたブログへのコメントは、たとえばCPUがフリーズしたときに時間管理の問題が発生する可能性があると述べていますが、理由、証明、またはテスト結果は提供していません。
  4. これら2つのソリューションとの実際の技術的な違いは何ですか。
    1. ホストのCPU過負荷が原因で、VMプロセスの実行が停止しました
    2. NFSしきい値を下回っていると仮定して、障害のあるディスクまたはコントローラーが原因でディスクI/Oの待機時間が増加しましたか?
3
user121391

私の提案は、この問題を完全に回避することです。コストの増加と完全な再構築は目立たないことだとおっしゃいましたが、この状況で考慮できるのは、2ノードのフェールオーバークラスターのホストに2つのストレージVMを配置することです。これにより、クラスターが提供するNFSまたはiSCSIの可用性に影響を与えることなく、どちらか一方にパッチを適用できます(両方を同時にパッチすることはできません)。それはまだサポートされているソリューションではありませんが、ストレージのリソースオーバーヘッド(主に2番目のストレージVMに与えるメモリの量)が増えるという犠牲を払って、少なくともある程度のメンテナンスの柔軟性を可能にします。

アーキテクチャの変更が完全に受け入れられない場合、最も安全なオプションはVMをシャットダウンすることです。

次善の解決策は、VMで休止状態を有効にすることです。ハイバネーションにより、すべてのファイルシステムが静止し、破損の可能性を回避できます。

次に、メモリ状態でVMのスナップショットを取り、VMのプロセスを強制的に終了し、完了したらスナップショットに戻すことができます。これにより、データが失われる可能性のある小さなウィンドウが発生しますが、私はデータの損失が許容できないメンテナンスウィンドウの外でこれを試すことは絶対にないので、これはかなり重要ではないはずです。このソリューションは、スナップショットを作成するのと同じくらい迅速で、VMがディスクの損失について文句を言わないようにしますが、発生します。潜在的なデータ損失。

最後に、プロセスを一時停止する(そして実際に機能することをテストした)場合は、最初にゲスト内のすべてのディスクを同期することを強くお勧めします(Linuxでは、これは/ bin/syncで実行されます。ユーティリティが提供されますSysInternals for Windows: http://technet.Microsoft.com/en-us/sysinternals/bb897438.aspx )、時計が大きく戻らないように、メンテナンスをすばやく実行します。

潜在的な副作用については、ADに接続されたマシンは(デフォルトで)DCの時間から5分以内である必要があります。したがって、VMが通常のシャットダウン以外に継続的に利用できない解決策の後は、再開されたゲストにクロックの更新を強制することをお勧めします。データベースサーバーでは、これらを実行しないでください。サーバーがビジー状態のときは、ファイルシステムが破損する可能性が高くなります。

通常のシャットダウンまたは高可用性ストレージ以外のすべてのオプションの主なリスクは、破損のリスクです。バッファ内にドロップされるI/Oが存在する可能性があり、アプリケーションが誤って正常に完了したと見なす可能性があります。さらに悪いことに、I/Oは、より最適な書き込みパターンのために、下位層によって並べ替えられている可能性があります。これにより、データが部分的に順不同で書き込まれる可能性があります。おそらく、DB行のデータが書き込まれる前に行数が増加したか、チェックサムされたデータが物理的に変更される前にチェックサムが更新されました。これは、ストレージへの同期書き込みのみを許可することで軽減できますが、パフォーマンスが犠牲になります。

6
Adam Rushad

良い質問...

しかし、とにかく、なぜNFSサーバーを再起動する必要があるのですか?

オールインワンデザイン もう合理的ではありません。科学実験または小さなホームラボの状況として、確かに。ただし、他のソリューションと同様に、必要に応じてダウンタイムとメンテナンスウィンドウを組み込むことを期待してください。

だから...

  • VM起動とシャットダウンの順序(適切な場所に配置するのが良い)を設定します。

enter image description here

  • 複数のVMを選択して、同時にシャットダウンまたは一時停止できます。 (これを行ったときにVMをサスペンドしていた)

enter image description here

  • NFSVMに対して必要なことは何でもします。
  • ダウンタイムを食べる。

このタイプのダウンタイムが発生しない場合は、オールインワンストレージを実行してVMセットアップを実行するか、従来のSAN =ストレージ(または低コストバージョン)および複数のVMホスト。

7
ewwhite
  1. どちらの方法が望ましいですか、それとも同じように良い/悪いですか?

どちらでもない。

これはひどい設計のコストです。VMをシャットダウンし、ストレージで作業してVMその後、他のVMを再起動する以外は何もしないで、この状況を悪化させることはありません。サポートされている/サポート可能なアーキテクチャを使用して、誰かにセットアップを再設計してもらいます。

  1. データベース、Active Directoryコントローラー、ユーザーがジョブを実行しているマシンなどの特殊なケースでの意図しない副作用は何ですか?

それは本質的に予測不可能であり、これをもう一度行った場合、今回起こるかもしれないことは起こらないかもしれません。サポートできません。

  1. どこに注意する必要がありますか?リンクされたブログへのコメントは、たとえばCPUがフリーズしたときに時間管理の問題が発生する可能性があることを示しています。

これに建設的に答えるのは難しいです。

5
Chopper3