VMstore」(以下、Tintri)。前回は、「スナップショット」の応用例の1つである「タイムトラベルリカバリー」を見てきました。今回は、タイムトラベルリカバリーを実現する技術を使って、仮想ディスクの中身をそっくり書き換えることができる「ディスクリフレッシュ」を紹介します。寒いおやじギャグを披露する。まにあ)隣の部署のサービス運用担当。Tintriについてやけに詳しい。最近はクラウドも流行っているし、新しいデータベース技術も出てきているから、考えることが多いわい。君はいつも軽快でいいのう。その勢いで当社のインフラをチョー軽くしてくれる妙案はないかね。現在、開発環境、テスト(品質保証)環境、本番(プロダクション)環境は機器を分けていますよね。仮想化していてもサーバやデータは筐体を分けて保存しているはず。性能問題や信頼性を気にする必要もありません。本番データを開発やテストに流用することも簡単にできるので工数削減にもつながります。いうことなんじゃ?簡単に言えば、ディスクの内容をまるっと入れ替えることができる機能っす。ディスクリフレッシュをうまく使えば、開発機、テスト機、本番機で使っているデータを、スナップショット機能を使って簡単に切り分けることができるようになるんです。図解すると、こんな感じ。この例では、開発機とテスト機を1つの環境でこなして、本番環境にデプロイしているイメージっす。別仮想マシンのスナップショットからvDisk単位でデータを高速に同期~SyncVM~普通は、開発/テスト環境では、本番環境のデータをそのまま使うわけにはいきませんから、過去にスナップショットなどで取得しておいたデータを使って検証していきますよね。本番環境は常にデータが新しく更新されるので、だんだん開発/テスト環境との違いが大きくなります。違いが大きくなると、検証が十分にできなくなります。新しいスナップショットなどからデータを持ってきて同期することになります。これはデータが少なければいいですが、数GB、数TBになると、とても同期できません。筐体を分けていたら、コピーだけで数時間かかってしまいます。本番機と開発/テスト機で筐体を分けて運用している以上、そういう問題は常につきまとうわい。これがディスクリフレ~ッシュ!!ディスクリフレッシュは何が便利なの?ということは、開発やテストで本番データが必要になったら、そのタイミングでデータディスクをリフレッ~シュすればいいわけじゃな。本番環境とちょくちょくデータを同期しているわけにはいかないから、それは便利だわい。ポイントは必要なときにすぐにディスクを入れ替えられることです。本番機のスナップショットで取得した仮想ディスクの内容は、開発/テスト機VMの仮想ディスクの内容と瞬時に同期します。システムディスクの内容は変わらず、IPアドレスなどのシステム設定もそのままです。ユーザーから見ると、データディスクの中身だけがほかのディスクに入れ替わる感じっすね!ユーザーと管理者はどういった操作が必要なんじゃ?管理者の場合は、管理画面からディスクリフレッシュしたい仮想マシンを選択するだけです。disks...」という項目があるので、それを選択し、画面で設定していきます。管理者が設定を適用したら、ユーザーは仮想マシンを再起動するだけでデータディスクのみが切り替わるんです。これでデータの移動やコピーの時間も発生しないんじゃな。何千万件もあるデータベースでも、TBクラスの容量があるディスクでも、一瞬でリフレ~ッシュ!これは、データの参照先が変わるようなイメージっすね。実データをコピーしないので容量は増えません。重複排除も効いています。いった機能は聞いたことがないんじゃが、他のストレージにも備わっているものなのかな?はっきり言いましょう。仮想ディスクを付け替えるといったことは技術的に可能だと思います。仮想ディスクをリフレッシュするためには同一筐体内に性能や可用性のレベルの異なる仮想マシンを配置することが前提です。本番環境と開発/テスト環境が切り替わるから意味があるわけで。なると本番環境と開発/テスト環境を同居させても問題ないストレージは限られてきますよね。仮想マシンの状態を認識して、パフォーマンスを最適化していく必要があります。そんなことができるのはTintriだけってことです。ディスクリフレッシュはどんなときに使うの?ディスクリフレッシュは、データのリストアなどにも使えそうじゃが、一番いい使い方は、開発、テスト、本番といった環境でのディスクの切り替えじゃろうな。開発や運用のスタイルが大きく変わるわい。開発と運用が連携して行う開発手法のことなんですが、うちの部署だと、インフラをコードのようにプログラムできるような環境を整えているんです。開発用の仮想マシンが欲しかったら開発者が自分で調達して運用に渡すなどしています。運用側でもコードで管理して運用を自動化しています。すごーく先進的な取り組みだってことで、わしのところにも、よく講演や取材の依頼がくるわい。止まったりしたらまずいシステムがほとんどじゃぞ。これがあるおかげです。ほかの機能と合わせて使うといいことあるの?自動QoSと組みあわせると、どんないいことがあるんじゃ?SAPシステムのような止めちゃいけないシステムでも開発/テスト環境と、本番環境の同時稼働ができるってことっすよ。ストレージI/O性能がよかったり、信頼性が高かったりすると、開発/テスト環境と本番環境を同居させてもいいように思ういますよね。実際そんなことをしたら......開発やテストで負荷がかかって本番環境が遅くなったりしたら、目も当てられんわい。Tintriはそういう負荷を自動で認識して仮想マシンごとに自動でQoSを設定してくれるんす。SAPシステムでも2システムランドスケープでいけますし、その構成にすると、ディスクリフレッシュを使ってDevOps的なこともできるようになるんです。アプリケーション開発側で、好きなときに本番データにリフレッシュするってわけじゃな。ディスクリフレッシュをうまく使っているユーザー事例は?実際にディスクリフレッシュを使って、そういう取り組みをしている企業はおるんかい?日本ではまだないですが、米国の先進企業では活用しているところがありますよ。エンビジョン社では、複数の開発機を使っていて、本番機が持っているデータをスナップショットして、瞬時に開発機にリフレッシュして開発を進めているそうです。Tintriを使う前はたくさんのデータ量をクローンコピーするのに相当時間が掛かっていたそうですよ。Corporation。