![]() |
Iconshock - http://www.iconshock.com |
トラブルは最短・最速で終わらせたい! @snicker_jp です。
きっかけ
トラブルが起きて、2TB弱ほどの vmdkファイルを転送する事になったので、その顛末です。
トラブルの経緯を簡潔に説明すると
容量拡張⇒残ディスクすくな⇒起動⇒あがんね・・・どうしよ・・・(´・ω・`)
デカイとこ転送だ!⇒12MB/s ⇒終わるの二日後かよ・・・(T^T)
↑担当者談
イメージ図:
※参考までに
12MB/s ⇒ 96Mbps
そこで、「JAWS DAYS 2013」のセッションで知った、
「Obama for America」の リージョン間転送にも使われた「Tsunami UDP Protocol」を検証がてら使ってみたら、すごいことになったのでご紹介します。
大事なこと
今回は「VMware ESXi」の「データストア」を使って起きたことですが、
大事なことなので前もって書いておきます。
データストアは総容量の最低20%は空けておくべし!(`・ω・́)ゝ
前提条件
- VMware ESXi 4.1 or 5.1
- Tsunami UDP Protocol
- Linux x86_64 (CentOS想定) ← tsunami-udpコンパイル用
作業の流れ
- Tsunami UDP Protocolのダウンロードとコンパイル
- ESXi へ バイナリを転送
- ESXi 5 の FireWall をいったんunload
- Tsunami UDP サーバーの起動
- Clientから受信
イメージ図:
Tsunami UDP Protocolのダウンロードとコンパイル
コンパイル用のLinux(x86_64)で
- Tsunami UDP Protocol 本家のリンクから、ソースのダウンロード
今回使ったソース:
tsunami-v1.1-cvsbuild42.tar.gz
suz-labさんの記事を参考にコンパイルです。
- suz-lab - blog: "Tsunami UDP"をインストールしてみた
http://blog.suz-lab.com/2011/06/tsunami-udp.html - "aclocal/autoconf/automake" が必要なので、無ければ以下のコマンドでインストール
sudo yum install autoconf
sudo yum install automake
(aclocalはautomakeの中に) - ソースの解凍とmake
tar zxvf tsunami-v1.1-cvsbuild42.tar.gz
cd tsunami-udp-v11-b42
make - make中のメッセージ
[snicker_jp@devdev tsunami-udp-v11-b42]$ make
sh ./recompile.sh
Running aclocal...
Running automake...
Running autoconf...
Configuring Tsunami version 9.2
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for ranlib... ranlib
checking for main in -lpthread... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating client/Makefile
config.status: creating rtclient/Makefile
config.status: creating common/Makefile
config.status: creating include/Makefile
config.status: creating server/Makefile
config.status: creating rtserver/Makefile
config.status: creating util/Makefile
config.status: executing depfiles commands
make[1]: ディレクトリ `/home/snicker_jp/tsunami-udp-v11-b42' に入ります
Making clean in rtclient
~ 略 ~
make[2]: `all-am' に対して行うべき事はありません.
make[2]: ディレクトリ `/home/snicker_jp/tsunami-udp-v11-b42' から出ます
make[1]: ディレクトリ `/home/snicker_jp/tsunami-udp-v11-b42' から出ます
You can do a 'sudo make install' to install binaries into /usr/bin
[snicker_jp@devdev tsunami-udp-v11-b42]$
↑こんなメッセージなら成功のはずw
ESXi へ バイナリを転送
Linux で
- tar で固める
tar zcvf tsunami-udp-v11-b42.tar.gz tsunami-udp-v11-b42
- 2台に転送
scp tsunami-udp-v11-b42.tar.gz [ESXiのIP]:.
ESXi で
- 解凍
tar zxvf tsunami-udp-v11-b42.tar.gz
- 確認
cd /
ls -d tsunami-udp-v11-b42
存在確認出来ればとりあえずOK
ESXi 5 のFWをいったんunload
- ESXi 5 で
esxcli network firewall unload
これで、解放されます
(コラム)ちなみに、個別にFWにポートを開けるには
- ESXi 5 の F/W に穴を開ける
http://blog.cles.jp/item/4586
↑ここを参考に
/etc/vmware/firewall
にxmlを保存して「esxcli network firewall refresh」すれば出来るはずなんですが、なぜかうまくいかなかったので・・・。
いったん、「unload」しました。
Tsunami UDP サーバーの起動
- 送信元 ESXi で
cd /vmfs/volumes/[データストア名]/
cd [移行フォルダ]
※ Tsunamiのデーモン起動
/tsunami-udp-v11-b42/server/tsunamid *
Clientから受信
- 送信先 ESXi で
cd /vmfs/volumes/[データストア名]/
mkdir [保存フォルダ]
cd [保存フォルダ] - TsunamiのClient起動
/tsunami-udp-v11-b42/client/tsunami
Tsunami Client for protocol rev 20061025
Revision: v1.1 devel cvsbuild 42
Compiled: Apr 24 2013 15:50:41
tsunami> connect [tsunamidを起動したサーバーIPなど]
Connected.
tsunami> get *
Requesting all available files
Server is sharing 14 files
↑うまくいけばこんな感じで、転送が始まります。 - 実際の転送状況
600Mbps越え!
(」・ω・)」うー!(/・ω・)/にゃー!
※参考までに
600Mbps ⇒ 75MB/s
USB2.0規格最大速度
480Mbps ⇒ 60MB/s
USB2.0の規格最大速度より早いので、USB2.0の外付HDDに転送するより速いです!
まとめ
- Tsunami UDP Protocol すげー SUGEEEEEE(゚Д゚)EEEEEEEEE!!
- ESXi 5 から FW有効になってるから気をつけよう!
- データストアの残容量に気を付ける
参考リンク
- suz-lab - blog: "Tsunami UDP"をインストールしてみた
http://blog.suz-lab.com/2011/06/tsunami-udp.html - suz-lab - blog: "Tsunami UDP"を使ってみた
http://blog.suz-lab.com/2011/06/tsunami-udp_02.html - 短期決戦プロジェクトの立ち上げ方:期間限定の巨大プロジェクト・米国大統領選の裏側をAWSの中の人に聞いた (2/2) - @IT
http://www.atmarkit.co.jp/ait/articles/1304/01/news068.html - Amazon RDS Data Import Guide for Oracle : Articles & Tutorials : Amazon Web Services
http://aws.amazon.com/articles/4173109646282306 - CDP:Write Proxyパターン - AWS-CloudDesignPattern