この記事は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以外の仮想マシンが、いないことがわかります。Id Name State
----------------------------------------------------
28 NTNX-NX-AHV-1-CVM running
では、ホストがメンテナンスモードになっているかどうかを確認するコマンドも紹介しておきます。
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になっていることがわかります。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
では、このメンテナンスモードにするコマンドのパラメーターを紹介します。
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
----------------------------------------------------
- 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]
・・・
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
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に参加する人が増えると嬉しいなと思っています。
(でないと、負担が...)
では、皆様よい年末をお過ごしください。