はじめに
みなさん、こんにちは。SBC&Sで技術支援を担当している中里です。
今回は、CohesityのREST APIについてご紹介したいと思います。昨今、さまざまなシステムを連携させることで管理者のオペレーションを自動化したり、ITインフラを支えるプロダクトがAPIを公開し、そのAPIを活用した"エコシステムの構築"を実施する動きが拡がっています。CohesityはOpenAPIの仕様に準拠し、様々なオペレーションをREST APIで実行することが可能です。Cohesityはシンプルで扱いやすいGUIを提供しており、バックアップやリストアといった操作はGUIから行うことが多いですが、REST APIを活用することでGUIでは捉えることができないような情報を取り出すこともできます。
Cohesity REST APIについて
Cohesityは開発者のために、デベロッパーポータルを提供しています。以下のサイトから、REST APIの仕様を確認することが可能です。
本記事ではCohesity REST APIの基本的な利用方法をご紹介することで、REST APIを用いてCohesityを利活用するイメージを持っていたただければ幸いです。
CohesityへREST APIリクエストを送信する前準備
CohesityへREST APIリクエストを送信するためには、まずは有効なクレデンシャル情報を発行する必要があります。このクレデンシャル情報は"Access Token"と呼ばれるもので、このトークンを用いて、クラスタへリクエストを送信し、レスポンスを受け取ります。
※このトークンは発行されてから24時間有効です。
アクセストークンを発行するためのリクエストは以下のPOSTメソッドです。
POST https://[CohesityクラスタのFQDN or IPアドレス]/irisservices/api/v1/public/accessTokens
リクエストボディとしてCohesityのログイン情報を付加します。
{
"password": "password",
"username": "user",
"domain": "LOCAL"
}
これらの情報を実際にCohesityにPOSTしてみます。※レスポンスは一部マスクしています。
リクエストの応答として、アクセストークンが発行されたことがわかります。以降のリクエストについては、このアクセストークンを用いて実行します。
Cohesity REST APIの活用① バックアップジョブ実行
Cohesityは標準的な機能として、スケジュールによるバックアップの実行機能を備えています。例えば、以下のような条件でバックアップジョブを実行することができます。
・24時間毎にバックアップジョブを実行する
・6時間毎に特定の曜日、時間を除いてバックアップジョブを実行する
ただ、実際のバックアップ運用では"特定のアプリケーションの実行が完了した時点でバックアップを実行する。かつ、そのアプリケーションの実行完了時間にはバラツキがある。"などの特定のスケジュールには沿わないことが多々あるかと思います。その場合、CohesityのREST APIを活用することで、任意のタイミングでバックアップジョブを実行することができます。
今回は、シンプルにCLIからREST APIリクエストを送信し、特定のバックアップジョブを即時実行させてみます。
検証対象のCohesityに上図のように"win2022backup"というバックアップジョブを作成しています。今回はこのバックアップジョブをREST API経由で実行します。
REST APIでバックアップジョブを実行するためには、バックアップジョブに割り当てられている" ID"を知る必要があります。"ID"はCohesity GUI上では確認することができないため、REST APIで確認します。
リクエストメソッドは以下のように作成します。
GET https:///[CohesityクラスタのFQDN or IPアドレス]//irisservices/api/v1public/protectionJobs
実際に送信してみます。
レスポンス内容から、バックアップジョブ"win2022backup"のIDは"10"であることがわかります。このIDを使って、バックアップジョブを実行するリクエストを投げます。
リクエストメソッドは以下のように作成します。
POST https://[CohesityクラスタのFQDN or IPアドレス]/irisservices/api/v1public/protectionJobs/run/10
実際に送信してみます。
Cohesity GUIで対象のバックアップジョブが実行されているか確認します。
上図の通り、バックアップジョブ"win2022backup"が実行できていることがわかります。以上のREST APIを活用することにより、 他システムからREST APIリクエストを送信することで任意のタイミングでCohesityのバックアップ機能を利用することができます。
Cohesity REST APIの活用② バックアップ未設定仮想マシンの抽出
仮想環境を運用している中で、仮想マシンが増減することが頻繁にあるのではないかと思います。バックアップしている仮想マシンが削除される場合は特段問題はないかと思いますが、しばしば問題になるのが仮想マシンが増えた際に、その仮想マシンのバックアップの設定を忘れることです。Cohesityは仮想環境へのバックアップジョブの適用機能として、"オートプロテクト機能"を実装しています。これは特定のフォルダや環境を予めCohesityのバックアップジョブの対象リソースとして登録しておくことで、仮想マシンが増えても自動でバックアップジョブの適用対象となり、バックアップの未設定を防止してくれる機能です。この機能を活用することで基本的にはバックアップの設定忘れは防止できますが、仮想環境が大きくなるにつれて環境の負荷を考慮し、バックアップをしなくてよいものやオートプロテクトの対象から外れてしまう仮想マシンが無いとは言い切れません。
そこで、CohesityのREST APIを活用することで、バックアップが未設定の仮想マシンを抽出することができます。この応答を応用して他システムでアラートを通知する仕組みを実装することで、よりスマートなバックアップ環境を構築することが可能です。
今回はその一例として、リクエストを送信した結果をご紹介します。
リクエストメソッドは以下のように作成します。
GET https://[CohesityクラスタのFQDN or IPアドレス]/
irisservices/api/v1/public/protectionSources/virtualMachines?protected=false
リクエストを投げた結果は以下の通りです。
情報量が多いため、少しわかりにくいですがCohesityに登録しているバックアップソース(vCenter環境)上の仮想マシンのうち、バックアップジョブが未設定のもののみ抽出しています。この情報を活用することにより、バックアップの設定防止に活用できます。
まとめ
以上のように、Cohesityは他の製品同様REST APIを活用することができます。シンプルなGUIで通常のバックアップ運用であれば、Cohesityの標準機能で事足りることが多いですが、Cohesityはさまざまな機能を備えている製品ですのでREST APIを活用することで更に社内システムと連携を強めたデータ利活用をすることができそうです。
まずは、標準的な機能でCohesityを活用していただき、安定稼働した後の更なる活用としてCohesity REST APIを利用してみてはいかがでしょうか。
※今回検証に使用したSoftwareバージョンは6.8.1です。バージョンにより機能の仕様や動作が異なる場合があります。
詳細な設定方法に関してはメーカーの公式ドキュメントをご参照ください。
他のおすすめ記事はこちら
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 第3技術部 1課
中里 隆二