仮想化環境のさまざまな課題を解決する仮想化専用ストレージ「Tintri」。前回は、クラウドを使った分析サービス「Tintri Analytics」を解説しました。今回は、さまざまな作業を自動化するためのツール「Automation Toolkit」を紹介します。

プロフィール

羽里 紀矢里子(ばり きゃりこ)
悩味が所属する情シス部門のマネージャー。常に意識高く行動するので取り巻きも天敵も多い。

悩味 杉夫(なやみ すぎお)
4月に社内異動してきた情シス運用の新米担当。日々、ストレージの運用に悩みが尽きない。


天鳥 間仁阿(てんとり まにあ)
隣の部署のサービス運用担当。Tintriについてやけに詳しい。自称「スーパーTintriマン」。

運用管理タスクや定型処理を自動化するにはどうすればいい?

……だから18時までに処理を終わらせてくれって、ユーザーに周知するしかないんじゃないですか。

……それだとユーザーさんの負担になるでしょ。みんな忙しいんだから18時に終わるわけじゃないし。終わったタイミングで処理を実行できるようにすればいいのよ。

お、羽里さんが困ってるなんて珍しいっすね!

あ、天鳥くん、ちょっといいかしら? ユーザーさんから「データのアップロードが済んだ時点でいちどデータベースのスナップショットをとってほしい」って言われているのよ。今はスケジューラーで定時にとってるんだけど、それじゃ遅いって。イベントが発生したタイミングでTintriをキックできればいいんだけど。

ああ、それならAutomation Toolkitを使えばいいっすよ。

Automation Toolkitってどんな機能なの?

Automation Toolkitについて詳しく教えて!

Automation Toolkitは、その名の通り、Tintriが提供しているさまざまな機能をPowerShell環境で自動化するための機能っす! TintriはREST APIをサポートしているんですけど、PythonやPerlなどの言語に詳しくなくても、慣れ親しんだPowerShellを使って一連の処理を同じように自動化できます。VMware環境の場合、vSphere PowerCLIでPowerShellが利用できますから、それにTintriのコマンドレットをアドオンして使う感じっすね。

へー、そんなことができるんだ、すごいね!

え!? 悩味くん、大丈夫? ちゃんとわかってる?

REST APIは覚えたてで自信ないですけど、PowerShellのスクリプトを書くのはけっこう得意なんですよ!!

基本的にスクリプトに書いたコマンドをREST APIに変換するツールなんで、pythonとかでAPIアクセスするのが得意ならそっちでもいいっすよ。でも、ジョブコントローラと連携させたり、特定のタイミングでデータベースと同期させて処理を走らせたりしたいなら、PowerShellを使ったほうが簡単かもしれないっす。Automation Toolkitは、インストーラーが用意されているのでセットアップも簡単っすよ。

Automation Toolkitは何が便利なの?

例えば、どんなコマンドが使えるのかしら?

そうっすねえ。「Connect-TintriServer」コマンドで認証を済ませたら、普通に「Get-ふがふが」とか「New-ほげほげ」とかを組み合わせていけばいいんです。

例えば、Tintriの基本情報を取得したいなら「Get-TintriDataStore」です。Tintriのステータス状況を取得したいなら「Get-TintriDataStoreStat」です。VM単体のステータス状況を取得したいなら「Get-TintriVMStat」です。Tintriは、稼働情報の取得期間が1週間前までに限られてますよね。だから、Automation Toolkitを使って、定期的にステータス情報をCSVに落として、長期に保存するなんて使い方をしている人も多いんです。

  • PowerShellによる入力例 ※クリックで拡大

あらそれはいいわね、ウチもそうするわ。それで、今回みたいにスナップショットをとるためのコマンドは?

マニュアルでやるなら「New-TintriVMSnapshot」っすね。スケジュール設定するなら「New-TintriVMSnapshotSchedule」とかっす。英語ですけど、TintriのWebサイトにコマンドの解説やスクリプトのサンプルが置いてあるので、少し書き換えるだけでたいていのことは自動化できるようになると思います。

今回みたいなケースだったら、スナップショットを取得するスクリプトファイル(.ps1)を作っておいて、データベース側での書込み処理が終わったら、そのタイミングで実行させるように設定しておけばよさそうっすね。

  • スナップショットを取得したことが確認できる ※クリックで拡大

他のストレージの同等の機能とどう違うの?

こういうAPI対応やスクリプト対応って、最近のストレージではできることが多いらしいけど、違いはある?

もう、ぜんっぜん、違いますね。Tintriの特徴は仮想マシン1台1台を認識できることっす。ほかのストレージでも、APIでアクセスして、ストレージ装置全体の容量やディスクアクセス、LUNやボリューム単位でのパフォーマンスなんかはわかるかもしれません。でも、特定の仮想マシンがどんな状況か調べたり、その仮想マシンのスナップショットをとったりなんてことはTintriにしかできないっすよ。

仮想マシン1台1台を認識できるTintriだからこそ、自動化にもきめ細かく対応できるってことね。

そうっす!!



Automation Toolkitはどんなときに使うの?

さすがサービス担当の天鳥くんだなー。Automation Toolkitは実際にどんな使われ方をしているケースが多いのかな?

大きく3つっすね。ひとつは、さっき言ったステータス情報の記録っす。履歴をCSVで保存しておいて、グラフにしてレポーティングに使ったり、システムの分析に使ったりします。しきい値を設定してそれを超えたらアラートを出すような使い方もできますね。これは多くのTintriユーザーがやってるみたいっす。

2つめは、羽里さんがやろうとしていた今回のようなスナップショット運用ですね。データベースやアプリケーションなどと連携して、仮想マシンのスナップショットを必要なタイミングで取得します。例えば、Oracle Databaseのオンラインバックアップと連携したり、Jenkinsでコードをデプロイしたタイミングで実行したりといった具合っす。

3つめは、クローン処理の定型化です。検証用のサーバマシンを一度に何台も展開したり、開発用の決まったスペックのマシンをユーザーに提供したりするときの処理を自動化します。ユーザー向けにセルフサービスポータルを作ったりするときに便利ですよね。

他の機能と合わせて使うといいことある?

当然、Tintri独自の機能とも連携するってことよね。前に説明してもらった「レプリケーション」や「タイムトラベルリカバリー」「ディスクリフレッシュ」とか。

そうっす。それらも含めてTintriが提供している機能は基本的にすべて処理できます。何か面倒だなと感じたら、まず自動化できないか考えてみるのもいいっす。いろいろな応用が考えられますから。

Automation Toolkitのユーザー事例はある?

そうすると、いろんな事例がありそうだなあ。なかでも「これは」ってものはある?

それなら、富士通の沼津ソフトウェア開発クラウドセンターの事例っすね。REST APIを使ってTintriのストレージ容量や性能情報を収集・可視化して、それにサーバやネットワーク、課金、利用者情報などをあわせて、独自に開発した運用ダッシュボード上に表示してます。

当初は、馴染みのあるPowerShellを使えるってことでAutomation Toolkitも使っていたそうです。運用ダッシュボードをOSS(Kibana/Elasticsearch)で構築するときにさらに便利になるっていうことでREST APIをメインで使うようになったそうです。

富士通さんが、Tintriの評価ポイントとして挙げているのは、そもそもREST APIに対応している数少ないストレージであること、APIによる自動化で運用作業を大幅に短縮できること、APIには言語の制約がないので運用者の得意言語を使えることなどです。

運用者はシステムの健全性を確認するために毎日システム状態の点検をしているのですが、この点検時間を74%も短縮できたそうです。また、利用者からVM性能についての問合せを受けた場合も、ダッシュボード化することで、1画面で状態を確認することができるようになったみたいっす。

富士通さんのように柔軟で高度な仕組みを構築したい場合にはREST API、簡便で馴染みのあるスクリプト言語であるPowershellで構築したい場合はAutomation Toolkitでと使い分けられるのがいいわね! こんなふうにどんな男も自分の意のままにできれば面白いかもね!!

わわわ、遠慮しときます……。

あら、悩味くんにはそんなことしないわよ、面白くないもの。どうせやるなら経営陣でしょう。碓氷CIOとか。ふふふ。

ぼ、ぼ、忘却光線! ……あっ! 変身してないから使えないんだった……。

[PR]提供: ティントリジャパン