2017-08-17 11 views
0

VI Java SDKを使用してVmwareでPoweredOn VMのカウントを取得するにはどうすればよいですか?電源状態に基づいてVMをフィルタリングする方法はありますか?VI Javaを使用してVmwareでPoweredOn VMの数を取得

次のコードは、VM参照オブジェクトを示しています。

ManagedEntity[] vms = new InventoryNavigator(clusterEntity).searchManagedEntities("VirtualMachine"); 

PoweredOn状態の仮想マシンをフィルタリングするために、我々は、管理対象エンティティをループしており、時間のかかる操作でVMオブジェクトを取得。それで、カウント情報だけを得る方法はありますか?

答えて

2

これを行う方法の1つは、PropertyCollectorRetrievePropertiesExメソッドです。

PropertyCollectorは非常に複雑な獣です。非常に簡単に、再帰戦略(例:子フォルダへの再帰)と抽出するプロパティを提供する必要があります。以前にPropertyCollectorで作業したことがない場合は、サンプルプログラムをオンラインで検索して修正する必要があります。

PropertyCollectorの素晴らしい点は、多数のエンティティについて特定の情報を取得できる単一の呼び出しであることです。その点ではかなり効率的です。あなたはまた、かなり簡単にカウントを得ることができます。

ご存知のように、別の方法として、各VMを1つずつクエリし、複数のクエリを実行し、処理する必要があるデータをさらに取得することができます。あなたが持っている/持っていると予想されるVMの数とパフォーマンス要件に応じて、最適な方法を選択することができます。

vSphere 6.5を使用している場合は、REST APIの使用を検討してください。クエリパラメータを受け入れるVMにはlist操作があり、電源状態はそのAPIを介して公開されるいくつかのプロパティの中にあります。したがって、電源を入れたVMの一覧は、URL GET https://{server}/rest/vcenter/vm?filter.power_states.1=POWERED_ONを使用して取得できます。これは、1000台のVMに制限されています。

関連する問題