株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

FVPリモートフラッシュアクセス

本ブログエントリーはPernixData社のテクノロジーエバンジェリストであるFrank Denneman氏のブログの翻訳版です。

本記事の原文はFVP Remote flash accessで閲覧可能です。
ネットワールドのPernixDataに関する情報はこちら

昨年FVPに初めて巡り合った私に一番印象的だったのがvSphereのHAやDRS といったクラスタ機能を違和感なく利用でき、サポートしていた点です。クラスタ機能をサポートするにはクラスタ化されたソリューションを自ら提供する事から始まります。このソリューションはそのままリモートフラッシュアクセスの基盤となるのです。クラスタが更に多くのアプリケーションに対応しよう拡張されたとしても、スケールアウトクラスタアーキテクチャを利用すればシステム全体で一定のパフォーマンスを保つ事ができます。

vSphere クラスタサポート

vSphereのHAやDRSといったクラスタ機能のサポートは重要な要素です。FVPはアプリケーションの入出力パフォーマンス速度を加速させ、向上するようデザインされています。一方DRSはメモリ、またはCPUパフォーマンスを改善するために仮想マシンを一つの物理ホストから違う物理ホストに移すかを判断し、実行します。通常、DRSが動作しているという事はユーザーに気づかれません。従って、仮想マシンはパフォーマンスを全く落とさず、ユーザーに新たな運用フローや作業を要求しないで移動できる事が重要です。それを成し遂げるため、FVPはリモートフラッシュアクセスを搭載する事でサーバフラッシュの静的な利用を避けるようデザインされています。

リモートフラッシュアクセス

FVPはクラスタ化されたアーキテクチャを用いる事で仮想マシンの移動とフラッシュ上のキャッシュの所在を把握できます。これによりサーバ側のフラッシュデバイスでフラッシュ上のキャッシュを削除する必要がなくなり、一方でFVPを利用して仮想マシンが前にいたホスト上のサーバフラッシュへのリモートアクセスが可能になります。データがリモートアクセスされた場合、FVPはそのデータをコピーし、その時点で使用しているローカルフラッシュデバイスに保存します。

Fig5動作フローの概要

まず仮想マシン読み込みコマンドを発します(1)。FVPはそのデータがローカルフラッシュデバイスに存在するかを確認し、確認できなければ読み込みコマンドをリモートフラッシュデバイスに発します(2)。リモートフラッシュデバイスはそのデータをローカルフラッシュデバイスに戻し(3)、FVPはそのデータを仮想マシンに戻す(4)と同時にデータをローカルフラッシュデバイスにコピーします。
一つ注意点として挙げたいのが、FVPはリモートデータに不必要にアクセスする事はないので、仮想マシン移動時に早まってフラッシュ上のキャッシュをコピーする心配はありません。これはフラッシュ上のキャッシュに存在するデータが「古いデータ」、つまり無効、失効とされたデータである可能性があるからです。このデータをコピーする事は帯域幅の増加をつながるだけでなく、フラッシュデバイスのパフォーマンス低下と寿命が縮む事に繋がります。フラッシュ機器への書き込み作業についてもっと詳しく知りたい方は「フラッシュ仮想化プラットフォームの基本要素 パート2 ~独自プラットフォーム対既存のファイルシステム~」をご覧ください。
vSphereをサポートしているおかげで、FVPは仮想マシンが移動前にどのホストで作動していたかを把握しています。FVPが発するコマンドは直接前のソースホストに送られるという点を理解するのは非常に重要です。クラスタ内で断片されたデータを一つ一つ集める(訳註:探しまわる)様な作業はしません。


南北のデータパスではなく東西の通信を

FVPは外部ソースを使用しているとはいえ、この手法で作業を行えばストレージシステムに直接アクセスするより遥かに早いパフォーマンスでデータにアクセスできます。通常イーサネットネットワークは1ホップしか要さない遅延の短いネットワークです。ホップ数が複数の場合ストレージアレイに辿り着く前に多数のキューで待つ事になり、処理時間を大幅に伸ばしてしまいます。Chad氏が非常に上手く描かれた図形で一般的なストレージ環境の全キューとバッファを再現してみせました。時間がある方この非常に良く書かれた記事を読んでみてください。-“VMware I/O queues, micro bursting and multipathing
ご覧いただければ分かると思いますが、ストレージシステムの様なシステムの核となっている部分にアクセスしようとする行為は漏斗状にアクセスパスを集中させてしまいます。コンピュータ層をスケールアウトする事で最高層を拡大する事はできますが、ストレージシステムアーキテクチャは拡大されません。一つの機器に通信するシステムが増えれば増えるほど、全通信機器のパフォーマンスに影響し、あらゆる層で作業の支障と遅延に繋がります。

Fig6スケールアウトアーキテクチャはブロックされない、P2Pの通信が可能なネットワークを必要とします。 ソリューションはvMotionネットワークです。


vMotion ネットワーク

標準設定でFVPはvMotionが使用可能なVMカーネルNICを選択します。ネットワークの構成を行う必要はありません。クロスバースイッチに接続され、ルーティングされていない、帯域幅の広いvMotionネットワークはリモートフラッシュアクセスに最適です。今日の全てのイーサネットスイッチはクロスバーアーキテクチャに基づいており、このアーキテクチャこそスケールアウトパフォーマンスアーキテクチャを扱うにおいて最適なのです。その理由はクロスバースイッチアーキテクチャ内ではA点からB点の間のパスしか遅延に影響しないからです。

Fig7私達の場合、この点と点の通信は二つのESXiホストの間に成り立っています。これはESXiホスト1の仮想マシンAがESXiホスト2に遠隔アクセスしても(緑線)ESXiホスト4の仮想マシンBがESXiホスト3にアクセスする(青線)作業を全く影響せず、互いの遅延を増やさない事を意味します。

Fig8クロスバースイッチアーキテクチャについてもっと詳しく知りたい方にはGreg氏の記事をお勧めします:

http://etherealmind.com/what-is-the-definition-of-switch-fabric/
http://etherealmind.com/switch-fabrics-farbic-arbitration-and-buffers/

リモートフラッシュアクセスでクラスタ化する利点

仮想マシンクラスタ化されている事のメリットを利用して、移動を行いつつ、以前のフラッシュ上のキャッシュがどこに在ろうとクラスタ内のどのサーバからでもそれにアクセスすることができます。FVPはデータを透過的に取得し、ローカルフラッシュデバイスへ集めることができます。このため、必要なときにいつでもリモートのホストからローカルのホストへフラッシュ上のキャッシュを移動させることができるのです。FVPの主な目的はフラッシュフットプリントをできる限りアプリケーションの近くに置いておく事です。全体としてストレージアレイと多数のホスト間での同時通信で発生するような場合と比べ、2ホスト間でのサーバ間通信の方が遥かに低遅延で拡張可能であるということがわかります。もう一つのメリットはコンピュートレイヤだけでトラフィックが完了するため、ストレージネットワークは堅牢なデータ通信と、アレイにアクセスが必要な場合に低遅延でのデータ提供が可能になることです。

記事担当者: マーケティング本部 三好哲生 (@pernixdata_netw)