アフィリエイト広告を利用しています

vSAN Management API入門してみました

自宅でvSANクラスタを利用しているのですが、今回vSAN Management APIを使って監視を行うために入門してみました。

vSAN Management APIとは

vSANの各種設定変更、情報取得などAPIで実行できるよう vSAN Managemrnt API としてAPI提供されています。SDKはこちらからダウンロード可能です。

今回私はPythonでAPIを実行するためにvSAN Management SDK for Pythonを利用しました。

APIを使って実現したい事

vSANを運用する中で注目するべき事はいくつかあるのですが、HAやDiskグループ障害時にvSAN Objectの健全性が特に気になります。
vSANではObject毎にStorage Policyで定義されたFTT(Failures To Tolerate)で冗長性が定義されます。ホスト障害時にどのvSAN Objectの可用性が低下しているのか確認する必要があります。 vCenterの以下の画面です。 vCenterの仮想オブジェクトの画面

vSAN Management SDK for Pythonを使う

さっそくvSAN Management SDK for Pythonをダウンロードして使ってみます。
SDKの中にはSample codeもあり、APIドキュメントも同梱してます。
vSAN SDKs Programming GuideにはPythonのsample codeも併せて解説されているため、今回参考になりました。scriptを書く際に必要になるSDK内のファイルは以下2つです。

  • bindings/vsanmgmtObjects.py
    • vimの定義
  • samplecode/vsanapiutils.py
    • vcMosやesxMosなどvSAN APIのメソッド実行で必要

仮想オブジェクトの取得はAPI Docを見るとVsanObjectSystemVsanQueryObjectIdentitiesで取得出来そうです。

Sample code

実際に動かしてみたSample codeをgithubに上げました。

以下のようなコマンドで VsanQueryObjectIdentities を実行出来ます。

python3.7 get_Virtual_Objects.py --host $host -u [email protected] -p $pass -c Cluster

ポイントなのがvSAN APIを実行する対象がESXiなのか、vCenterなのかによって各種メソッドのオプション、メソッド名などが変わります。このためvcMosとesxMosで分かれているようでした。
scriptではCluster名を指定しない場合、すべてのクラスタを対象に実行するのですがホスト電源断 or vSANを有効にしていないクラスタの場合、レスポンスに時間がかかりますが、vSANクラスタの場合はすぐに情報が取得できます。

ちなみにSkyline 健全性のvSAN全般、ホスト視点の障害監視はVsanQueryVcClusterHealthSummaryあたりを実行すれば情報取れそうでした。

蛇足

ちなみに、SDKには含まれていないgolangはgovmomiでgovcと共にサポートされているようでした。

govcで取れるならjsonでdumpする事もできるので、監視はこちらの方が良いかもしれませんね。

まとめ

今回はvSAN Management APIを使い、vSAN Objectの情報をPythonで取得してみました。これまでpyvmomiなどでスクリプトを書いていた方にはとっつきやすそうでしたが、SPBM(Storage Policy Based Management)が出てくるとendpointが特殊でちょっと注意が必要そうでした😓

vSANのオペレーションは割とvCenter上でRVCやESXiのobjtoolosfs-mkdirなどを使っていましたが、これからはvSAN APIも活用していきたいと思います。

Share Comments こ>のエントリーをはてなブックマークに追加
comments powered by Disqus