諸事情によりコマンドラインからESXiを起動・停止する必要があったため、その手順を記事にしました。
バージョン: ESXi 7.0
基礎知識
ESXi
ESXiとは、ハイパーバイザーの一種です。簡単に言えばひとつのサーバーで複数のOSを実行できるソフトウェアのこと。物理サーバーにインストールして使用します。
VM(バーチャルマシーン)
VM(バーチャルマシーン)とは、ESXiの上で動く仮想的なコンピューターのこと。LinuxやWindowsなどが仮想コンピューターとして動作します。
vCenter
vCenterとは、ESXiやVMを遠隔操作できるソフトウェアのこと。役割の特性上、基本的に操作対象のESXiとは別のサーバーにインストールして使用します。
GUI(Webブラウザ)でESXiやVMを起動・停止する際に利用しますが、今回はコマンドラインで操作を行うため使用しません。
BMC (Baseboard Management Controller)
BMCとは、IPMI規格に基づいて遠隔からコンピュータを管理するための制御用ICチップのことです。マザーボードなどに実装され、システムに対する操作を受け付けます。
オペレーティングシステム(OS)などとは独立しており、本体電源がオフの状態でも常に稼働しています。
今回はこちらを利用してESXiを起動します。
ESXiの停止手順
ESXi停止手順概要
- すべてのVMを停止する。(VMが存在しなければ実施不要)
- メンテナンスモードを有効化する。
- ESXiを停止する。
ESXiを停止するには、ESXiがメンテナンスモードになっている必要があり、ESXiをメンテナンスモードにするには全てのVMが停止、もしくはVMが存在しない状態になっている必要があります。
そのため、以降では上記3つの手順を行うためのコマンドを紹介します。
ログイン
TeraTerm(または類似ソフト)でESXiにログインします。
認証方法については「プレインパスワードを使う」ではなく、「チェレンジレスポンス認証を使う(キーボードインタラクティブ)」を選択します。
VMの停止
vim-cmd コマンドを実行して、登録されている仮想マシンの一覧を確認します。
[root@localhost:~] vim-cmd vmsvc/getallvms
Vmid Name File Guest OS Version Annotation
11 vm1 [datastore1] vm102/vm1.vmx rhel8Guest vmx-07
2 vm2 [datastore1] vm1/vm1.vmx rhel8Guest vmx-07
32 vm3 [datas tore1] vm2/vm2.vmx ubuntuGuest vmx-07
126 vm4 [datastore1] vm101/vm1.vmx windows7Server64Guest vmx-07
Vmidを以下のvim-cmdコマンドで指定するとVMの状態を確認できます。
[root@localhost:~] vim-cmd vmsvc/power.getstate 11
Retrieved runtime info
Powered on
上記コマンドで「Powered on」が出力された場合は以下のvim-cmdコマンドを実行して対象VMをシャットダウンします。(Powered offの場合は次のコマンドは実行しない)
末尾には停止するVMのVmidを指定します。
[root@localhost:~] vim-cmd vmsvc/power.shutdown 11
VMの数だけ、vim-cmd vmsvc/power.getstate とvim-cmd vmsvc/power.shutdown を繰り返し実行します。
ESXiのメンテナンスモードを有効化する
まずESXiのモード確認を行います。
マニュアル: ホストをメンテナンス モードに切り替える
以下のコマンドを実行した時、メンテナンスモードでないならDisabledが返ってきます。
[root@localhost:~] esxcli system maintenanceMode get
Disabled
メンテナンスモードでないなら、有効化処理を行います。
[root@localhost:~] esxcli system maintenanceMode set --enable true
メンテナンスモードが有効化されたかを確認します。
メンテナンスモードが有効化されていればEnabledが返ってきます。
[root@localhost:~] esxcli system maintenanceMode get
Enabled
ESXiの停止
次のコマンドを実行することで、ESXi停止を停止することができます。
-r にはESXiを停止する理由を記載します。(必須)
[root@localhost:~] esxcli system shutdown poweroff -r <停止理由>
入力例:
[root@localhost:~] esxcli system shutdown poweroff -r サーバーメンテナンス
著者の使用する環境だと停止に5分ほどかかりました。
ESXiの起動手順
ESXi起動手順概要
- ESXiを起動する。
- メンテナンスモードを解除する。
ESXiをリモート操作で起動したあと、通常運用できるようにメンテナンスモードの解除を行うまでの手順です。
※ ESXiを起動させた直後は、メンテナンスモードが有効化された状態となっています。
余談ですが、ESXiが停止状態ではメンテナンスモードを解除することも、有効化することもできません。
事前準備:ipmitoolコマンドのインストール
停止しているESXi を起動するためには、ローカル端末からipmitoolコマンドを実行する必要があります。
ipmitoolコマンドを使用するには、使用する端末で事前にipmitoolコマンドをインストールしておく必要があります。
Linux(RedHat, CentOS)の場合
# yum -y install OpenIPMI-tools
Macの場合
# brew install ipmitool
ESXiの起動
ローカル端末(Linux, Mac 等)で実施します。
ipmitool はIPアドレス、ユーザー名、ユーザーパスワードをオプションで指定し、実行します。
注意が必要なのは、オプションを指定する値はESXiのものではなく、ESXiがインストールされているサーバーの遠隔管理機能(BMC)のものを指定することです。
Dellサーバーで言えばiDRAC、富士通サーバーでいえばiRMCです。
BMCの設定値をそれぞれのコマンドオプションに指定します。
まず以下のコマンドを実行してESXiが停止しているかを確認します。
# ipmitool -I lanplus -H <BMCのIPアドレス> -U <BMCのユーザー名> -P <BMCユーザーのパスワード> power status
# ipmitool -I lanplus -H 10.123.22.3 -U admin -P hogehoge power status
ESXiが停止していれば何も結果が返ってきません。
次のコマンドを実行するとESXiが起動します。
# pmitool -I lanplus -H <BMCのIPアドレス> -U <BMCのユーザー名> -P <BMCユーザーのパスワード> power on
# ipmitool -I lanplus -H 10.123.22.3 -U admin -P hogehoge power on
ESXiが起動すると以下のようなメッセージが返ってきます。
Chassis Power Control: Up/On
著者の環境だと起動には7分ほどかかりました。
以下のコマンドを実行してESXiが起動しているかを確認します。
# ipmitool -I lanplus --H <BMCのIPアドレス> -U <BMCのユーザー名> -P <BMCユーザーのパスワード> power status
# ipmitool -I lanplus -H 10.123.22.3 -U admin -P hogehoge power status
ESXiが起動していれば以下のようなメッセージが返ってきます。
Chassis Power is on
ESXiのメンテナンスモードを解除する
TeraTerm(または類似ソフト)でESXiにログインしてコマンドを実行します。
認証方法については「プレインパスワードを使う」ではなく、「チェレンジレスポンス認証を使う(キーボードインタラクティブ)」を選択します。
メンテナンスモードが有効化されていればEnabledが返ってきます。
[root@localhost:~] esxcli system maintenanceMode get
Enabled
次にメンテナンスモードを解除します。
マニュアル 手順 No.10
[root@localhost:~] esxcli system maintenanceMode set --enable false
再度メンテナンスモードかを確認するコマンドを実行します。
[root@localhost:~] esxcli system maintenanceMode get
Disabled
メンテナンスモードが解除されていればDisabledが返ってきます。