ビッグデータを低コストで超高速転送
2015年5月21日木曜日
どんなアプリケーションでも、少なくとも何らかのデータがなければ動きません。ゲーム分析、気象予報モデリング、ビデオ レンダリング、Apache Flume や MapReduce などのツール、データベースのレプリケーションといったビッグデータ アプリケーションは、言うまでもなく大量のデータを処理、転送します。一見単純なウェブサイトでも、辞書、記事、画像、その他あらゆるタイプのデータを VM 間でコピーしなければならないことがあります。そして、そのようなデータでも、蓄積されればかなりのサイズになるかもしれません。しかも、データにはファイル システムを介してアクセスしなければならないことがあります。すると、scp のような旧来のツールでは、増えていくデータ サイズに対応しきれなくなる恐れがあります。
一般に、ビッグデータ アプリケーションはディスクからデータを読み出し、それを変換してから scp などのツールでデータを他の VM に転送して、さらなる処理を行います。scp は、スレッディング モデルから VM CPU の暗号化ハードウェアに至るさまざまな面で制限を抱えており、最終的には VM 当たりの仮想ディスク読み書きクォータによって制限されます。scp の転送速度は 128 MB / 秒(シングルストリーム)か 240 MB / 秒(マルチストリーム)ほどです。
現在のフローを図示すると、次のようになります。
一般的なデータ パイプラインのシナリオ
ここでは、VM 間で大量のデータを転送するためのまったく新しい方法を紹介します。Google Compute Engine Persistent Disks は、ディスク上のすべてのデータのポイント イン タイムコピーを作る Snapshots という機能を持っています。この機能は一般にバックアップのために使われますが、すぐに新しいディスクに変換することもできます。このようにして作った新ディスクは、作成元とは異なる実行中の VM にアタッチ(接続)できます。こうすると、第 1 の VM から第 2 のVM にデータを転送できるわけです。スナップショット機能を使ったデータ転送は、次に示す 3 つの単純な手順で実行できます。
-
ソース ディスクからスナップショットを作ります。
-
新しいデスティネーション ディスクにスナップショットをダウンロードします。
-
新しい VM にデスティネーション ディスクをアタッチ、マウントします。
Persistent Disk Snapshot を使えば、1024 MB / 秒( 8 Gbps )以上のスピードで、VM 間でデータを転送できます。これは、scp の 8 倍のスピードです。次のグラフは、scp と Persistent Disk Snapshot を使ったときのデータ転送速度を比較したものです。
scp と PD Snapshot のデータ転送速度比較
スナップショット機能を使ったデータ転送でとてつもなく大きなメリットが得られるのは、Persistent Disk Snapshot のパフォーマンスが非常に高いからです。次のグラフは、永続ディスクのスナップショットを取得するのに要する時間と実効スループットを示しています(この実験では PD-SSD が使用されています)。スナップショットを取得するのに要する時間(青い棒グラフ)は、サイズが 500 GB まではほぼ同じで、1 TB になると少し長くなっています。そのため、スナップショット プロセスの実効スループット(スピード)は、ほぼ線形に増えていきます(赤の折れ線グラフ)。
Google Compute Engine Persistent Disk Snapshot のスピードは、業界内でも突出しています。 次のグラフは、スナップショット機能を提供している他のクラウド プロバイダーとの間でアップロード時間を比較したものです。ご覧のように、Google Compute Engine のアップロード時間はサイズが大きくなってもほとんど変わりませんが、競合他社の場合のアップロード時間はサイズの増加とともに顕著に上がっていきます。
Google Compute Engine のテストは、PD-SSD を使用して us-centra1-f で実行。スナップショット サイズは、32 GB、100 GB、200 GB、500 GB、1000 GB
Persistent Disk の価格は 1 か月当たり 2.6 セント / GB です。 VM の利用料金以外に、これだけのコストがデータ コピーのためにかかるのは高いと思われるかもしれません。しかし、転送目的で使われるスナップショットは短命( 10 分未満)で、価格は秒単位で比例案分されるので、実際の平均コストは 500 GB のデータの転送ごとに 0.003 ドルほどです。スナップショットは転送が完了したら直ちに削除できます。そのため、1 セント未満の料金で、かつ従来のツールの 8 倍のスピードで 1 TB のデータを転送できることになります。
実際に試してみたい方は、ドキュメントにスナップショット コマンドの詳しい説明があります。また、Persistent Disk Snapshot の安全な使い方については、以前のブログを参照してください。快適なスナップショット ライフを!
-Posted by Stanley Feng, Software Engineer, Cloud Performance Team
0 件のコメント :
コメントを投稿