vSphere 環境のインベトリ情報が取得できる RVTools の詳細まとめ（保存版）

## はじめに
これまで vSphere 環境のインベントリとパフォーマンス情報が取得できる Live Optics の紹介や、RVTools を使った VMware Cloud on AWS のサイジング手順、外部ストレージのサイジングの紹介を行ってまいりました。

https://qiita.com/mtoyoda/items/27051312ce20b681480f

https://qiita.com/mtoyoda/items/8e5f0003a7bf865758bd

https://qiita.com/mtoyoda/items/b9c616d7e367db2ec21a

最近 RVTools の紹介を行う機会が増えてまいりましたので、 RVTools の利用方法など詳細をまとめてみたいと思います。

## RVools とは

[RVTools](https://www.robware.net/rvtools/)は、VMware vSphere Management SDKとCIS REST APIを使用してvSphere環境に関する情報を取得するWindows .NETアプリケーションです。
2008 年に Version 1.0 がリリースされて以降、vSphere環境のインベントリ情報取得などで世界中で広く使われております。
2023 年に Dell Technologies による買収以降も無償で利用する事ができます。（[Live Optics](https://qiita.com/mtoyoda/items/27051312ce20b681480f) も Dell Technologies により提供されています。）

## RVTools の特徴

- 無償で利用可能
- 非常に軽量で既存環境に負荷をほとんどかける事なく情報取得をする事ができる
- データのアップロードなど不要な為、クローズドな環境で利用可能
- データのエクスポートができる
- 広く使われている為、色々なサイジングツールでのインポートがサポートされている（例：[VMware Cloud Sizer](https://qiita.com/mtoyoda/items/8e5f0003a7bf865758bd)）
- 仮想マシンのパフォーマンスデータの取得はできない

## RVTools をインストールする環境要件

vCenter または ESXi に HTTPS(443/tcp)で接続可能で、.NET 4.6.2 (執筆時点の要件バージョン)がインストール済みまたはインストール可能な Windows サーバーまたは Windows クライアント PC が必要です。

## 必要となる vSphere のアクセス権限

RVToolsは、Windows .NET アプリケーションで、VMware vSphere Management SDK と CIS REST API を使用して、vSphere 環境に関する情報を表示します。この為、情報取得の為の vSphere のアクセス権が必要となります。

RVTools の[ドキュメント](https://resources.robware.net/resources/prod/RVTools.pdf) によると RVTools は、情報を取得するために、vSphere への Read-only 権限を最低限持っている必要があります。以下にドキュメントに記載されているそれぞれの権限による制限をまとめました。

- 読み取り専用 ロール
    - RVTools からフロッピーディスクの切断ができない
    - RVTools から CD の切断ができない
    - RVTools から VMware Tools のアップグレードができない
    - ライセンス情報が表示されない
    - Search Datastore health check が動作しない
- 仮想マシン ユーザー ロール
    - ライセンス情報が表示されない
    - Search Datastore health check が動作しない
- 仮想マシン パワー ユーザー ロール
    - ライセンス情報が表示されない
- Administrator
    - すべての情報が取得できる

:::note info 
仮想マシン パワー ユーザーのクローンを作成して、そのロールに global | license アクセスを追加すれば、Administrator でなくてもすべての情報を取得できるようになります。
:::

## RVTools のインストール

https://www.robware.net/download からインストールモジュールをダウンロードし、インストールを行います。

![2024-08-31_12-35-37 (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/3f81ec31-5595-e7f7-552d-838c1daad060.gif)

## RVTools の利用

vCenter へのアクセス情報を入力し、Login をクリックするとインベントリの収集が開始されます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/5fd68212-a9ac-d5bb-03c3-fa8273c459a8.png" width="500" />


VM 数や環境にも依存しますが、今回実施した環境では 10 数秒でインベントリの取得が完了しました。今回は VMware Cloud on AWS のインベントリを取得しました。インベントリの取得が完了すると以下のような画面が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/56d0447f-7eab-99e9-aa78-e76031bbd733.png)

## RVTools で取得できる情報（全 26 種類）
RVTools では 26 種類の情報が取得できます。それぞれで取得できる情報をまとめてみました。

1. **vInfo**
vInfo タブには、仮想マシンごとに、仮想マシン名、電源状態、DNS 名、作成日時、CPU 数、メモリ量、NIC の数、仮想ディスクの数、合計ディスク容量、プライマリ IP アドレス、接続されたネットワーク、フォルダー名、プロビジョニングされたストレージ、使用済みストレージなどなどが含まれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/4f694253-1571-3531-84cc-80cd0473a1a0.png)

1. **vCPU**
vCPU タブには、仮想マシンごとに、VM の名前、電源状態、CPU の数、ソケットの数、ソケットあたりのコア数、最大 CPU、シェア、予約などが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/c44def42-24e4-bb7f-38b5-5b21cad58f5c.png)

1. **vMemory**
vMemory タブには、仮想マシンごとに、VM の名前、電源状態、メモリ サイズ、メモリ オーバーヘッド、最大メモリ使用量、消費メモリ、消費オーバーヘッド、スワップされたメモリ、バルーン化メモリ、アクティブ メモリ、予約などが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/b5efc4d2-7196-e6f5-969f-9605aad09f64.png)

1. **vDisk**
vDisk タブには、仮想ディスクごとに、VM の名前、電源状態、ディスク UUID、ディスク パス、ディスクの合計ディスク容量、Raw デバイスか否か、シン プロビジョニング フラグ、vmdk パス、Raw の互換性モード、データセンター名、クラスター名、ESX ホスト名、VM フォルダー名、構成ファイルに基づくオペレーティング システム名、VMware ツールに基づくオペレーティング システム名、VM ID、VM UUID などが表示されます。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/e6b8e663-bdce-8ba9-4ad5-9e0860742248.png)

1. **vPartition**
vPartition タブには、VMware Tools がアクティブな場合、各仮想マシンの VM の名前、ディスク名、合計ディスク容量、消費されたディスク容量、合計空きディスク容量、空きディスク容量の割合、データセンター名、クラスター名、ESX ホスト名、VM フォルダー名、構成ファイルに基づくオペレーティング システム名、VMware ツールに基づくオペレーティング システム名、VM ID、VM UUID、などが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/8ce6c860-4935-54e1-e938-8e3bc45fb694.png)

1. **vNetwork**
vNetwork タブには、vNIC ごとに、VM の名前、電源状態、NIC ラベル、アダプター タイプ、ネットワーク名、スイッチ名、接続値、MAC アドレス、IPv4 アドレス、IPv6 アドレスなどが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/d76185b4-810d-412e-2292-7ee28f506609.png)

1. **vCD**
vCD タブには、各仮想マシンの CD-ROM 情報が表示されます。この画面から CD-ROM を取り外すことができます。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/861f67e2-06b8-57dd-0cd7-a0b70c41111d.png)

1. **vUSB**
vUSB タブには、各仮想マシンの USB 情報が表示され、この画面から USB の取り外しもできるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/56eb13df-06e6-8890-a4ab-cbcb06a0ccd6.png)

1. **vSnapshot**
vSnapshot タブには、スナップショットごとに、VM 名、電源状態、スナップショット名、説明、スナップショットの日付/時刻、ファイル名、サイズ MiB (vmsn)、サイズ MiB 合計、Quiesced、状態などが表示されます。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/330c6344-fc43-1e45-700a-c8c17e2d6532.png)

1. **vTools**
vTools タブには、仮想マシンごとに、VM 名、仮想マシンのハードウェア バージョン、VMware Tools のステータス、VMware Tools のバージョン、必要な VMware Tools のバージョン、アップグレード可能フラグ、アップグレード ポリシー、時刻同期、ハートビートなどが表示されます。ここから VMware Tools のアップグレードも行えるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/5c3021d7-de32-3ec0-7293-4dd0c7bcd1af.png)

1. **vSource**
vSource タブには、RVTools がすべてのデータを収集するために使用する SDK Web サービスが実行されているサーバー（vCenter サーバーまたは ESX ホスト）に関する情報が表示されます。名前、OS タイプ、API タイプ、API バージョン、バージョン、パッチ レベル、ビルド、フルネーム、製品名、製品バージョン、製品ライン、ベンダー、VI SDK サーバー、VI SDK UUID などが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/e30d49cb-d372-a5fb-ca43-d6f5a180ee61.png)

1. **vRP**
vRP タブには、各リソース プールの名前、パス、ステータス、VM の合計数、実行中の VM の数、vCPU の数、CPU 制限、CPU オーバーヘッド制限、CPU 予約、CPU シェア、メモリ構成、メモリ制限、メモリ オーバーヘッド制限、メモリ予約、メモリ共有、メモリの最大使用量、メモリの全体使用量などが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/4c734aac-a067-73a0-9585-fd7e9dbfaf6a.png)

1. **vCluster**
vCluster タブには、クラスタごとの名前、構成ステータス、全体的なステータス、ホスト数、有効ホスト数、合計 CPU リソース、コア数、CPU スレッド数、有効 CPU リソース、合計メモリ、有効メモリ、vMotion の回数、HA 有効フラグ、フェイルオーバー レベル、アドミッション コントロール有効フラグ、DRS 有効フラグなどが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/67f223ac-1495-9de0-ed62-fc5f1f5b68cd.png)

1. **vHost**
vHost タブには、ESXi ホストごとに、ホスト名、データセンター名、クラスター名、構成ステータス、メンテナンス モードかどうか、隔離モードかどうか、CPU モデル、CPU 速度、ハイパースレッド情報、CPU の数、コア数、CPU 使用率 %、メモリの合計量、メモリ使用率 %、NIC の数、HBA の数、このホスト上の VM の合計数、このホスト上で実行されている VM の数、仮想 CPU の数、vRam、VM による使用メモリ、VM によるスワップ メモリ、VM によるバルーン メモリ、現在の EVC モード、最大 EVC モード、割り当てられたライセンス、ESX バージョン、起動時間、NTP サーバー、タイム ゾーン、タイム ゾーン名、GMT オフセット、ハードウェア ベンダー、モデル、シリアル番号、BIOS ベンダー、BIOS バージョン、証明書の有効期限などなど様々な情報が表示されます。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/5a6b236b-2ab9-d40b-0774-99b53df54b09.png)

1. **vHBA**
vHBA タブには、HBA ごとに、データセンター、クラスター名、デバイス名、デバイス タイプ、ステータス フラグ、バス番号、PCI アドレス、ドライバー名、ドライバー モデル名、WWN、VI SDK サーバー、VI SDK UUID が表示されます。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/ff505581-fb7e-baf2-2fb1-4ba5270f4a97.png)

1. **vNIC**
vNIC タブには、各物理ネットワーク カードごとにホスト名、データセンター名、クラスター名、ネットワーク デバイス、ドライバー、速度、デュプレックス スイッチ、MAC アドレス、仮想スイッチ名、アップリンク ポート、PCI ID などが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/4e4977b8-1d84-2ef2-5abf-2b20e322ff83.png)

1. **vSwitch**
vSwitch タブには、vSwitch ごとに、ホスト名、データセンター名、クラスター名、スイッチの名前、ポート数、空きポート、プロミスキャスモード、MAC アドレス変更、偽造転送などが表示されます。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/ea7c22fb-75c0-ba36-f615-24d4296f4ae1.png)

1. **vPort**
vPort タブには、ポートごとに、ホスト名、データセンター名、クラスター名、スイッチの名前、ポート数、空きポート、プロミスキャスモード、MAC アドレス変更、偽造転送などが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/8bfe819f-cc86-62fb-90c1-8224eb784e40.png)

1. **dvSwitch**
dvSwitch タブには、vSphere Distributed Switch ごとのスイッチ名、データセンター名、ベンダー、作成日、ホスト メンバー、最大ポート、ポート数、接続されている VM の数、トラフィック シェーピング値、最大 MTU などが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/b529e150-4b82-46ee-f5a3-0bd64166baff.png)

1. **dvPort**
dvPort タブには、分散ポートグループごとにポートグループの名前、分散スイッチ名、ポートグループ タイプ、ポート数、VLAN ID、速度、プロミスキャスモード、MAC アドレス変更、偽造転送、アクティブなアップリンク、スタンバイ アップリンク、トラフィック シェーピング値などが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/1596c817-57ff-1e55-8ce1-1d5ec461e6f5.png)

1. **vSC+VMK**
vSC+VMK タブには、サービス コンソールおよび VMkernel ごとに、ホスト名、データセンター名、クラスター名、ポート グループ、MAC アドレス、DHCP フラグ、IP アドレス、IP 6 アドレス、サブネット マスク、ゲートウェイ アドレスなどが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/97b204dd-956a-3c5f-dcba-3fafdc481152.png)

1. **vDatastore**
vDatastore タブには、各データストアの名前、構成ステータス、ファイル システム タイプ、このデータストア上の VM の合計数、このデータストア上で実行中の仮想マシンの数、合計容量、プロビジョニングされたストレージの合計、使用済みストレージ、空き容量、接続ホスト名、ブロック サイズなどが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/442ca49b-a017-87af-511c-7361dc2e5a06.png)

1. **vMultiPath**
vMultiPath タブには、ホストごとのデータストアが表示されるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/5a10bdf6-a81a-3985-c7e4-3590a23d61d6.png)

1. **vLicense**
vLicense タブには、ライセンスに関する情報が表示されます。今回私が利用した vSphere の権限では、この情報は表示されませんでした。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/da637d02-955f-420b-a546-235a5716c30a.png)

1. **vFileInfo**
vFileInfo タブには、すべてのデータストアのすべてのファイルが表示されます。GetFileInfo オプションが環境設定で設定されていない場合は、このタブページは空になるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/fde8b69d-88cd-daac-2c2e-428c4eeccb34.png)

1. **vHealth**
vHealth タブにはヘルスチェックメッセージが表示されます。
ドキュメントによると以下の 24 種類のメッセージが表示されるとの事です。
    1. VM has a CDROM device connected! 
    1. VM has a Floppy device connected! 
    1. VM has an active snapshot! 
    1. VMware tools are out of date, not running or not installed! 
    1. On disk xx is yy% disk space available! The threshold value is zz% 
    1. On datastore xx is yy% disk space available! The threshold value is zz% 
    1. There are xx virtual CPUs active per core on this host. The threshold value is zz 
    1. There are xx VMs active on this datastore. The threshold value is zz
    1. Possibly a zombie vmdk file! Please check.
    1. Possibly a zombie vm! Please check.
    1. Inconsistent Folder Names
    1. Multipath operational state 
    1. Virtual machine consolidation needed
    1. Search datastore errors.
    1. VM config issues
    1. Host config issues
    1. NTP issues
    1. Cluster config issues
    1. Datastore config issues
    1. Warning if ESXi shell is enabled on host
    1. Warning if SSH is enabled on host
    1. Disk I/O performance tip
    1. In-memory performance tip
    1. Certificate within xx days of expiring or has expired.


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/0cc0deef-84b1-4002-ad44-c435c157b8e9.png)


## インベントリ情報のエクスポート
RVTools の情報は [File] - [Export] から簡単に Excel または csv 形式でエクスポートが可能です。このデータを使って様々なサイジングツールでインポートが可能です。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/0acac307-c1d1-a7c7-4288-973f3c2e39a0.png" width="500" />

以下がRVToolsの結果をExcelにエクスポートした結果になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441095/6f3f3c4b-b035-3847-0d2d-a5a4ca102add.png)

## RVTools のインベントリ情報の活用例

代表的な例として VMware Cloud Sizer に RVTools のデータをインポートし、サイジングを簡素化させることができます。

https://qiita.com/mtoyoda/items/8e5f0003a7bf865758bd

また、AWS Optimization and Licensing Assessment (AWS OLA) では、リソース使用状況、サードパーティのライセンス、アプリケーションの依存関係に基づいて、オンプレミスおよび既存のクラウド環境を評価し、ライセンスを最適化する為のアセスメントを行うことができますが、そのインプットデータとして RVTools のデータを利用する事ができます。

> *Lite version – In this use case, all of your workloads are on VMware. You can provide AWS with an output from **RVTools**. Then, AWS can offer a turnaround time of 1–5 days. This approach uses point-in-time information pulled directly from VMware vCenter to develop sizing recommendations and offer on-demand pricing options.*
> - [AWS Prescriptive Guidance: Optimize costs for Microsoft workloads on AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/aws-ola.html) からの抜粋

また、[Migration Evaluator](https://aws.amazon.com/jp/migration-evaluator/) は、無償提供の移行評価サービスとして AWS への移行を検討する際、AWS でワークロードを稼働させる際にかかるコストの予測や、どれだけコスト削減ができるかの概要を把握する事ができます。Migration Evaluator もエージェントレスでディスカバリーを行う事ができますが、環境によっては、すでに RVTools のデータを持っていて、追加のディスカバリーの為の環境が用意できないなどの場合もあるかと思います。こういった場合、Migration Evaluator のアセスメントを行うためのインプットとして RVTools のデータを利用する事も可能です。

このように RVTools でインベントリを取得すると様々なアセスメントのデータとして活用する事ができます。

## まとめ

RVTools を利用すると簡単に VMware vSphere 環境のインベントリを取得できます。本記事では、RVTools のインストール手順から、具体的にどういったデータが取得できるのかを確認しました。

## 参考文献

 - [RVTools Documentation](https://resources.robware.net/resources/prod/RVTools.pdf)
 - [AWS Prescriptive Guidance: Optimize costs for Microsoft workloads on AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/aws-ola.html)