vSAN 7U3 の Intelligent Cluster Shutdown&PowerUp と VxRail Cluster Shutdown&PowerUpを比較してみた。

 vSAN 7U3 での Shutdownに関するエンハンスメント

何が変わったか

それまで煩雑だったvSAN Cluster の Shutdown 手順が vSAN 7U3 の新機能によって簡易化されました。
参考: https://core.vmware.com/blog/vsan-7-update-3-whats-new 

 
従来のやり方(Manual Shutdown)では、vSAN Cluster上のすべての仮想マシンを停止したのちに、ESXiをメンテナンスモードに入れる前に、手動でScriptを実行する必要がありました。
また、PowerUp の際も、ESXi をメンテナンスモード解除した後で、同様に手動で Script を実行する必要がありました。vSAN 6.7U3 より未満の Version では、すべての ESXi でこれを実施しなくてはならず、かつ Script も VMware のサイトからダウンロードし全 ESXi に配置し、かつそれを時刻同期した状態で Cron で実行する必要がありました。

vSAN 6.7U3 以降では、Script が更改され、自動化が進み、かつデフォルトで ESXi に内蔵されました。しかも、vSAN Cluster 内の任意の1ホストで実行するだけでよいため、それまでと比べて非常に簡易化されましたが、依然として CLI ベースの対応が必要であり、エンドユーザにとっては難しい場合もありました。


今回の vSAN 7.0 U3 では、従来の CLI ベースの Shutdown 手順から、GUI での Shutdown が可能になりました。自動化も大きく進み、Shutdown と PowerUp の両手順において、わずか数クリックで完了できます。


そもそもなぜ CLI ベースの Shutdown が必要だったか。

vSAN には、以下の KB で説明される不具合があり、過去すべての Version で該当します。この不具合は2018年に報告されていますが、最新版でも直っていません。

A simultaneous reboot of all hosts in the vSAN cluster may result in data unavailability after a single failure (60424)
https://kb.vmware.com/s/article/60424


この不具合を要約すると、非 vSAN Cluster と同じ手順で vSAN Cluster を Shutdown してしまうと、起動時に Disk 障害や Host 障害が発生した場合、それが単一障害であったとしても DU ( Data Unavailable ) になってしまう可能性がある、というものです。


恒久的な修正がないため、暫時的な WorkAround が必要になったわけですが、それが上記の煩雑な Shutdown 手順というわけです。

今回の Release で GUI にまで組み込まれてしまい、手順も KB から VMware Doc に昇格しているので、おそらく vSAN の不具合への対応としては、手順によってカバーされ、不具合自体が修正されることはないと思われます。


どれくらい簡単なのか試してみた。


起動方法は非常に簡単です。事前準備はほとんどいりません。せいぜい vSAN Cluster 上の仮想マシンを停止しておくくらいです。
ただし、該当 Cluster を管理する vCenter Server は残してください。 vSAN Cluster 上に、 vCenter Server がある場合は、vCenter Server も含めて自動で Shutdown してくれます。


vCenter 以外の VM の停止が完了したら、vSphere Client から以下のボタンをクリックして Shutdown を開始します。




ボタンをクリックすると、Shutdown 前の事前チェックが開始されます。
停止し忘れていた VM の存在や、Shtudown 前に解決すべき問題があればこの段階で気づくことができます。

問題なく事前チェックが完了したらそのまま Shutdown に進みます。
vCenter Server 自身が該当の vSAN Cluster 上で稼働していた場合は、この段階で通してくれます。
Shutdown シーケンスの中で、 vCenter Server 自体も自動で停止してしまうため、途中からタスクの進捗を確認できなくなってしまいますが、その場合は、ESXi のタスクから確認可能です。

Shutdown を開始すると、以下のように vSphere Client からタスクが確認できます。




vCenter が停止してしまった後は、以下のように ESXi からタスクを確認できます。





5~10分くらいで、すべての ESXi が自動で メンテナンスモードに入り、Shutdown まで完了します。


起動時は、普通に ESXi を Power Up すればよいです。
通常の ESXi Shutdown の場合は、 メンテナンスモードで Shutdown した場合は、 メンテナンスモードのまま起動されますが、vSAN Cluster Shutdown を実施した後の最初の起動では、自動的に全 ESXi のメンテナンスモードが解除されて、しかも vCetner まで自動で起動してくれます。

vCenter が起動したら、 vSphere Client に入ってvSAN サービスの再起動ボタンを押すと、自動で停止されていた、vSAN Performance Service や、もろもろの vSAN/vSphere関連の設定がリストアされます。




きづいたこと

簡単に試しただけなので、ログなどを細かく見てはいませんが、もともと CLI で実施していた Shutdown 手順が見事に自動化されているといえます。
VMware KB# 70650 に即した以下の挙動が自動化されていることを確認できました。


Shutodwn時
    • vSAN Cluster のヘルスチェック(事前チェック)
    • vSphere HA の無効化
    • vCLA の Retreat Mode 
    • vCenter Server VM の停止(vSAN Cluster上にいる場合のみ)
    • /VSAN/IgnoreClusterMemberListUpdates の設定
    • 不具合のWorkAroundの実行 ※
    • 全ESXi の メンテナンスモードの移行
    • 全ESXi の Shutdown 実行
PowerUp時
    • ESXi の PowerOn(ここは手動)
    • 不具合のWorkAroundの戻し ※
    • vCenter Server の起動
vSAN Service 再起動後(vSphere Client より操作)
    • /VSAN/IgnoreClusterMemberListUpdates の戻し
    • vCLSの Retreat Mode 解除
    • vSphere HA の再有効化

不具合の WorkAround については、従来の reboot_helper とは違う挙動のようです。
従来の reboot_helper やそれ以前のスクリプトでは、vSAN用の vmkernel port を vSAN から外していましたが、今回私が ESXi#1 を観察した限りでは、vSAN vmkernel port はずっと維持されていたため、何か別の方法で対策をしていたと思われます。
途中から vSAN vmkernel port での vSAN network への Pingが通らなくなっていました。この辺りについても追加の情報がわかり次第 Update したいと思います。


VxRail Shutdown との違い

Dell Technologies の製品である VxRail という HCI では、vSAN 7.0 U3 以前より同等の機能を提供していました。

きちんと評価したわけではないですが、以下の違いがあると思います。

  1. VxRail Shutdown では、VxRail Manager は System VM 扱いになる
  2. VxRail Shutdown は ESXi の タスクから進捗を確認できない
  3. VxRail Shutdown では DRS をマニュアルに変更している(起動時に戻す)
  4. VxRail Shutdown は、7.0 U3 未満のVersionでも利用できる(VxRail  4.7.520/7.0.130 or later)
  5. VxRail Shutdown では、起動後の vSAN サービス再起動が不要となる
  6. VxRail Shutdown は API から実施可能
  7. VxRail はどっちの手順で Shutdown してもよい


1については大きな違いにもなりえます。
VxRail Shutdown でも今回の Intelligent vSAN Shutdown でも、User  VM を事前に停止しなくてはならない、という点に関しては共通なのですが、Intelligent vSAN Shutdown の場合は、DNSサーバが User VMとして存在する場合、DNS を先にShutdown しなくてはならないため、vCenter Server や ESXi による名前解決ができずに Shutdown が失敗(開始できない)ということになりそうです。
DNS必須は VxRail でも同様なのですが、 VxRail の場合は、VxRail Manager を簡易 DNS とする Internal DNS の構成が可能なため、その点は勝ると思います。(ただし個人的には可用性の観点で Internal DNS は非推奨。かつ External DNS構成の場合は Internal DNS へ変更することは不可)

一方で、VxRail の場合は、外部 vCenter (VxRailに同梱されない vCenterで管理する構成) を利用していると、VxRail Shutdownが使えません。Intelligent vSAN Shutdown であれば、そもそもVxRail のような内部とか外部などという VxRail 管理上の差異は存在しないため、この点は  Intelligent vSAN Shutdown が勝る、と言いたいですが、 VxRail も 外部 VC 構成の場合は、 Intelligent vSAN Shutdown を利用すればよいだけなので、劣っているというよりも、メリットが減る、といった感じになると思います。


2は現場作業員からすると大きな違いになると思います。
VxRail Shutdown は vSphere Client から開始した後は進捗を確認できません。
どの ESXi のどのログを見ろ、などと書いてあればまだ親切ですが、VxRail Shutdown ではそういったこともありません。
現場レベルでは、本当はだいぶ前に Shutdown は失敗していたのに、進捗が確認できないため30分くらい失敗していたことに気づかなかった、ということもあります。

3については、VxRail でのみ、自動化手順中で DRS が Manual になりますが、これは vCenter Server や VxRail Manager といった System VM が自動で他の ESXi に vMotion されないようにするための措置です。しかしながら、そもそも vCLS を Retreat Mode にしているので、DRS を Manual にする必要がありません。
VxRail が無駄なことをしている?と考えることもできますが、VMware KB# 60424 では、DRS を Manual にせよ、との記載がありますし、VxRail は vCLS が存在しない vSphere 6.7環境でも同じ機能を提供していますので、ソースコードの流用の観点でそういった動作をするようになっているのだと思われます。

6については、現時点で Intelligent vSAN Shutdown を API から実施する方法は確認できませんでした(見逃していたらすみません。)。VxRail では可能です。ただし、vSAN 側もそのうちに実装されるのではないかと思います。現時点では UPS 連携をする際などは VxRail のほうが簡単そうですね。



コメント

このブログの人気の投稿

vSwitchにSTPが不要な理由

ESXi に DNS サーバを何個まで登録できるか

障害でVDSから切断されたVCSAの復旧方法