vSphere DPM Nested ESXi ラボ検証


[こちら](https://blog.kurokobo.com/archives/3433) を参照して、Nested ESXi 環境にて <font color="red">**vSphere DPM の検証**</font> を行った内容を下記にまとめます。（バージョン： vCenter Server 7.0 Update 3e）

# vSphere DPMとは
vSphere DPM（Distributed Power Management） の機能を使用すると、クラスタのリソース使用状況に応じてホストをパワーオンおよびパワーオフするため、<font color="blue">**vSphere DRS クラスタの電力消費量を削減**</font> できます。
vSphere DPM では、<font color="red">**3 つの電源管理プロトコル（IPMI or iLO or WOL）**</font>を使用して、ホストのスタンバイ モードを終了させることができます。また各プロトコルで事前の構成が必要となります。    　  [VMware Docs 参照](https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.resmgmt.doc/GUID-5E5E349A-4644-4C9C-B434-1C0243EBDC80.html)

DPMの設定は、DRSクラスタの [電源管理]にて [自動化レベル]と [DPMしきい値] の選択を実施します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/bc97a6b0-6800-8e8d-ceb1-dea8b6435820.png)


# IPMIとは
IPMI とは、遠隔からサーバの電源管理等を行う事が出来る規格で、<font color="blue">**BMCと呼ばれるICチップ**</font>から、サーバのOS等を経由せずにネットワーク経由で、<font color="red">**電源のオン/オフや再起動**</font>等を行う事が出来る機能です。今回は [VirtualBMC for vSphere](https://github.com/kurokobo/virtualbmc-for-vsphere) を使用した、ネストESXi 環境におけるIPMIによるDPMの動作検証を実施します。


* 確認できたこと： vSphere DPM の基本動作（動作仮想マシン数の減少に伴う、ESXiのスタンバイへの移行と、仮想マシン数の増加に伴うESXiのスタンバイからの復帰）
* <font color="grey">注意点： DPMはESXiのハードウェア情報からコスト計算を行うが、ネストESXi 環境ではそうしたハードウェア情報は提供されず、DPMのコスト計算、及び推奨が正しく動作しない可能性がある。よって本番環境利用用途の検証ではなく、あくまでDPMの動作概要を把握する目的での検証となる。</font>


# Nested ESXi 検証構成の注意点
VirtualBMC for vSphere の実施において、対象のネストESXi を仮想マシン名にてアクセスする必要がある為、vCenter 配下にネストESXi 仮想マシン（Nest-ESXiX） を作成し、同時にホスト（172.18.10.X）としても登録します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/0e3b7def-782d-1a81-0f76-f39e4449fde0.png)

# 仮想BMCの構成
[こちら](https://github.com/kurokobo/virtualbmc-for-vsphere)を参照して、Cent OSにVirtualBMC をインストールし、仮想BMCを構成しました。

```
# ホスト３台分の、BMCアドレスを追加
[root@localhost ~]# nmcli con mod "System ens192" +ipv4.addresses "172.18.10.7/24"
[root@localhost ~]# nmcli con mod "System ens192" +ipv4.addresses "172.18.10.8/24"
[root@localhost ~]# nmcli con mod "System ens192" +ipv4.addresses "172.18.10.9/24“

# Python 3.x環境に、pip install vbmc4vsphereで VirtualBMCをインストール
[root@localhost ~]# python3.6 -m pip install vbmc4vsphere

# VirtualBMC デーモンの起動
[root@localhost ~]# vsbmcd --foreground

# vsbmc add にて、仮想BMC を作成（仮想マシン名、IP アドレス、ポート番号：623、BMCアカウント認証情報、vCenter Server 認証情報等を指定）
[root@localhost ~]# vsbmc add  Nest-ESXi1 --address 172.18.10.7 --port 623 --username root --password password --viserver 172.18.10.1 --viserver-username administrator@vsphere.local --viserver-password password
[root@localhost ~]# vsbmc add  Nest-ESXi2 --address 172.18.10.8 --port 623 --username root --password password --viserver 172.18.10.1 --viserver-username administrator@vsphere.local --viserver-password password
[root@localhost ~]# vsbmc add  Nest-ESXi3 --address 172.18.10.9 --port 623 --username root --password password --viserver 172.18.10.1 --viserver-username administrator@vsphere.local --viserver-password password

# 仮想BMCの起動
[root@localhost ~]# vsbmc start Nest-ESXi1
[root@localhost ~]# vsbmc start Nest-ESXi2
[root@localhost ~]# vsbmc start Nest-ESXi3

# 仮想BMCの登録確認（& IPMI登録用 MACアドレスの確認）
[root@localhost ~]# vsbmc list --fakemac
+------------+---------+-------------+------+-------------------+
| VM name    | Status  | Address     | Port | Fake MAC          |
+------------+---------+-------------+------+-------------------+
| Nest-ESXi1 | running | 172.18.10.7 |  623 | 02:00:00:8c:c2:75 |
| Nest-ESXi2 | running | 172.18.10.8 |  623 | 02:00:00:4b:33:7f |
| Nest-ESXi3 | running | 172.18.10.9 |  623 | 02:00:00:69:43:a8 |
+------------+---------+-------------+------+-------------------+
```

# vSphere DPMの設定 & 動作検証
vSphere Clientより DPMで電源管理を行う対象のホストに、[vSphere DPM 用の IPMI設定](https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.resmgmt.doc/GUID-D247EC2C-92C5-4B9B-9305-39099F30D3B5.html) を実施します。（BMCアカウント、BMC IPアドレス、MACアドレスの指定）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/3291786c-2c6a-220b-314d-fabdfd49083f.png)
vSphere DPM の設定を行い、動作確認を実施します。
* 検証シナリオ１ : 夕方に稼働仮想マシンの台数が少なくなった場合の、ホストのスタンバイモードへの自動移行（日中から夜間にかけての消費電力削減）

<font color="purple">クラスタ内の最後の動作仮想マシンである1台がPower Offした後、6分後にホスト2台が、DPMにより自動でスタンバイモードへ移行した（開始者：System）</font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/155f4254-1b2d-4fd2-3efb-b8047e06d152.png)

vCenter Server イベントにおいても、「DrsEnteringStandbyModeEvent」が確認できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/6ee611fe-34f6-1026-e5d8-ddb1c0c1ffe3.png)

* 検証シナリオ２ :  朝方にPower On仮想マシンの台数が増えた場合の、ホストのスタンバイモードからパワーオン状態への自動移行（夜間から朝方にかけてのホストのキャパシティ増強）

<font color="purple">ホスト2台がスタンバイになっているクラスタにおいて、全ての仮想マシンが一斉Power Onされたタイミングで、即座にスタンバイホスト2台がPower Onに切り替わる様子が確認出来る</font>
![DPM_PowerOn_to_Standby_500msec_0625.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/f7cb09d7-83a9-cc7a-e29f-a8f9a156858f.gif)

vCenter Server イベントにても、「DrsExitingStandbyModeEvent」が確認できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/7ff8ba23-5d7d-0399-d6be-c75d4f332d9f.png)

# vSphere DPM： 削減効果や導入事例など
vSphere 5.x の頃は、[DemandCapacityRatioTarget](https://vthinkbeyondvm.com/part-1-vmware-dpm-vs-esxi-memory-ballooning/) パラメーター等で vSphere DPM クラスタのCPU又はメモリ使用率が、45%-81%の間に収まるよう調整が出来たようです。（45%以下でスタンバイモードの検討を開始、81%以上でスタンバイモードからの復帰）

vSphere DPM の導入事例については、[こちら](https://twitter.com/NHagoort/status/1263114650830417920) が参考になりました。
ラボ環境等におけるテスト利用がメインで、導入事例としては電力企業や大学等があり、vSphere 5.x の頃はサーバの起動が遅いといった課題があったようです。