2018年12月25日火曜日

AHVのメンテナンスモードの紹介

この記事はNutanix Advent Calendar(1枚目) 2018/12/25の記事です
vSphere ESXiには、クラスターが組まれているホストのうち、メンテナンスを行いたいホストに対してメンテナンスモードというモードを設定することで、DRSによる仮想マシンのマイグレーションの抑制や、稼働中の仮想マシンを他のホストにマイグレーションする機能が存在ます。
AHVにおいても同様に、ホストのメンテナンスのためのメンテナンスモードが存在します。
今日はこのメンテナンスモードについて紹介いたします。

まず、メンテナンスモードの設定は、acliを利用します。
まず、メンテナンスをしたいホストの上にあるCVMにSSHでログインします。

まずは、メンテナンスモードにしたいホストが、メンテナンスモードに移行できる状況かを確認します。
host.enter_maintenance_mode_check 192.168.XX.XXX
コマンドの後ろには、メンテナンスモードにしたいホストのIPを入力します。

以下の結果が出てくれば、問題なくメンテナンスモードに移行できます。
"Ok to enter maintenance mode."

では、実際にメンテナンスモードにしてみましょう。
host.enter_maintenance_mode 192.168.XX.XXX mode=live
このコマンドの実行後、「EnterMaintenanceMode: pending」が表示されますが、これは仮想マシンをライブマイグレーションして他のホストに移行中です。
Prismでタスクを確認すると、メンテナンスモードに移行中であることがわかります。


最終的にCompleteの結果が表示されます。
EnterMaintenanceMode: complete

試しに、メンテナンスモードにしたAHVにSSHでログインし、稼働している仮想マシンの状況を確認してみます。
[root@NX-AHV-1 ~]# virsh list
 Id    Name                           State
----------------------------------------------------
 28    NTNX-NX-AHV-1-CVM              running
CVM以外の仮想マシンが、いないことがわかります。

では、ホストがメンテナンスモードになっているかどうかを確認するコマンドも紹介しておきます。
host.list
以下のような一覧が表示されます。
Hypervisor address  Host UUID       Schedulable  Hypervisor Type  Hypervisor Name
192.168.XX.XXX      003dc913-XXX..  False        kKvm             AHV           
192.168.XX.YYY      349bfb31-YYY..  True         kKvm             AHV           
192.168.XX.ZZZ      2e5422d5-ZZZ..  True         kKvm             AHV
メンテナンスモードにしたホストは、SchedulableがFalseになっていることがわかります。


では、このメンテナンスモードにするコマンドのパラメーターを紹介します。

mode

メンテナンスモードにするホスト上にいる仮想マシンのマイグレーション方法について指定します。'live', 'cold', 'power_off'から選択できます。デフォルトはliveです。

non_migratable_vm_action

マイグレーションができない仮想マシンが存在した場合にどのようなアクションをするかの指定を行います。'block', 'acpi_shutdown'から選択し、デフォルトはblockです、

wait

メンテナンスモードに設定した際に、ライブマイグレーションを行うまで、待つかどうかを指定します。trueかfalseで指定し、デフォルトはtrueです。

ここまでくれば、あとは、CVMをシャットダウンし、AHVホストをシャットダウンすれば終わりです。

まずはCVMのシャットダウンは、メンテナンスを行いたいホストの上に存在するCVMにSSHでログインし、以下のコマンドを実行します。
cvm_shutdown -P now

CVMがシャットダウンしたかどうかは、メンテナンスしたいホストのAHVにSSHでログインし、以下のコマンドを実行し確認します。
virsh list --all
仮想マシンのリストが表示され、CVMの仮想マシンが「shut off」になっていれば、CVMはシャットダウンされています。
 Id    Name                           State
----------------------------------------------------
 -     NTNX-NX-AHV-1-CVM              shut off

なお、メンテナンスモードになった子を確認するには、acliから以下のコマンドを実行します。



これで、CVMのシャットダウンは終わりました。
では、次にAHVホストをシャットダウンします。
ホストのシャットダウンは、メンテナンスしたいホストのAHVにSSHで接続し、以下のコマンドを実行します。
shutdown -h now

これで、ホストもシャットダウンされます。

では、メンテナンス完了後の作業についても紹介しておきます。
AHVホストを起動すると、自動的にCVMも起動します。
CVMが起動し、クラスターメンバーに復帰するまで、待ちます。
なお、クラスターに復帰したかどうかを確認するには、クラスターの任意のCVMにログインし、以下のコマンドを実行します。
cluster status

以下のような形で、CVMが起動していない場合、Downと表示されます。
正しく起動している場合、Upと表示され、起動しているプロセスが表示されます。
2018-12-24 09:04:55 INFO zookeeper_session.py:113 cluster is attempting to connect to Zookeeper
2018-12-24 09:04:55 INFO cluster:2634 Executing action status on SVMs 192.168.XX.XXX,192.168.XX.YYY,192.168.XX.ZZZ
The state of the cluster: start
Lockdown mode: Disabled

        CVM: 192.168.XX.XXX Down


        CVM: 192.168.XX.YYY Up, ZeusLeader

                                Zeus   UP       [6572, 6602, 6603, 6604, 6652, 6670]
                           Scavenger   UP       [7504, 7533, 7534, 7535]
                       SSLTerminator   UP       [9725, 9766, 9767, 9768]
                      SecureFileSync   UP       [9729, 9785, 9786, 9787]
                              Medusa   UP       [9958, 9996, 9997, 10002, 10558]
                  DynamicRingChanger   UP       [10816, 10867, 10868, 10953]
                              Pithos   UP       [10820, 10883, 10884, 10935]
                              Mantle   UP       [10824, 10932, 10933, 10971]
                                Hera   UP       [10844, 10929, 10930, 12192]
                            Stargate   UP       [11115, 11144, 11145, 11146, 11147]
                          InsightsDB   UP       [11382, 11416, 11417, 11488]
                InsightsDataTransfer   UP       [11386, 11477, 11478, 11518, 11520, 11522, 11523]
                               Ergon   UP       [11397, 11457, 11458, 11459]
                             Cerebro   UP       [11425, 11524, 11525, 11650]
  ・・・

メンテナンスしたホストのCVMがDownからUpに変わるまで、待ちましょう。

では、最後にメンテナンスモードになっていたホストに、メンテナンスモード解除のコマンドを実行します。こちらは、任意のCVMから、acliで以下のように実行します。
host.exit_maiuntenance_mode 192.168.XX.XXX

最後にきちんとメンテナンスモードから抜け出せたかを確認しておきましょう。
host.list
Schedulableが、Trueになっていることを確認します。
Hypervisor address  Host UUID       Schedulable  Hypervisor Type  Hypervisor Name
192.168.XX.XXX      003dc913-XXX..  True         kKvm             AHV           
192.168.XX.YYY      349bfb31-YYY..  True         kKvm             AHV           
192.168.XX.ZZZ      2e5422d5-ZZZ..  True         kKvm             AHV

きちんとTrueになっているので、メンテナンスモードは解除されています。

以上で、ホストメンテナンス時のメンテナンスモード設定と解除方法になります。

なお、AOS5.10.0.1+AHV20170830.184の環境においては、ホストの再起動はPrism画面から行うことができます。

しかし、クラスターを停止せずに一部のホストをメンテナンスする場合(例えばメモリー増設)は、今回ご紹介したようにメンテナンスしたいホストをメンテナンスモードに移行してシャットダウン後に作業を行うことで、クラスターは活性のままででのメンテナンス作業を行うことができます。

なお、この記事を書いた後に、@gowatanaさんの記事と一部内容が重複していたことに気づきましたが、ここまで書いたので予定通り公開いたします。
※私の検証している環境は、純正のNX環境(商用版)で行っておりますが、AHVの手順等はCEでも商用版でもオペレーションに基本的に違いはありません。
なお、@gowatanaさんの記事はこちらですので、あわせてご覧ください。
Nutanix AHV のメンテナンス モード。



さて、今年も無事にクリスマスを迎えることができました。
来年はもっとAdvent Calendarに参加する人が増えると嬉しいなと思っています。
(でないと、負担が...)

では、皆様よい年末をお過ごしください。





0 件のコメント:

コメントを投稿