背景
- さくらクラウドのMySQLからdumpをとってAWS EC2においてRDSにリストアしたい
- scpで安直に転送してみたら全然終わらねぇ
- 高速ファイル転送…Tsunami UDPだよね!いっちょやってみっか!(悟空)
ざっくり手順
- 転送元でmysqldump取得(本稿では割愛)
- 転送元にTsunami UDP インストール
- 転送先にTsunami UDP インストール
- 転送元でtsunamid 起動
- 転送先でtsunami起動→転送元に接続→getコマンド→転送完了→ウマー
URLとか
- 本家 http://tsunami-udp.sourceforge.net/
- 手順はここを参考にしました http://blog.suz-lab.com/2011/06/tsunami-udp.html
- 同じDC内の転送速度かな? http://snickerjp.blogspot.jp/2013/04/tsunami-udp-vmdk.html
サーバスペック
転送元(さくらクラウド)
- 3CPU / 8GB / 標準プランストレージ / 石狩第1
転送先(AWS)
- m1.xlarge / xfs / Tokyo
手順
インストール前の準備
makeを入れておく。
すでに入っていたので実行していないコマンドですが参考まで。
インストール
yum -y install autoconf
yum -y install automake
転送元にインストール
ファイルを取得(最新版)
wget http://sourceforge.net/projects/tsunami-udp/files/latest/download
展開
展開
# tar xzvfp download
インストール
インストール
# cd download
# make
# make install
転送先にインストール
「転送元にインストール」を参照
転送元でtsunamid 起動
tsunamid
# cd [転送したいファイルがあるディレクトリ]
# ls
lost+found mysql nohup.out work db.sql.gz
#
# tsunamid *
The specified 5 files will be listed on GET *:
1) lost+found 16384 bytes
2) mysql 4096 bytes
3) nohup.out 0 bytes
4) work 4096 bytes
5) db.sql.gz 22220727126 bytes
転送先でtsunami起動→転送元に接続→getコマンド→転送完了
tsunamid
# cd [ダウンロードしたいディレクトリ]
# tsunami
Tsunami Client for protocol rev 20061025
Revision: v1.1 devel cvsbuild 42
Compiled: Mar 12 2014 22:23:44
tsunami> connect [転送元(tsunamidが動いている)サーバ]
Connected.
tsunami> get db.sql.gz
こんな感じの標準出力
…%doneが戻るのはなんでだ?
標準出力tsunamid側
erate ipd target block %done srvNr
3903 12.00us 12us 16024697 73.85 2
9749 12.01us 12us 16035006 73.89 2
16106 12.06us 12us 16044233 73.94 2
12926 12.09us 12us 16048455 73.96 2
9374 12.10us 12us 16052957 73.98 2
7220 12.00us 12us 16057724 74.00 2
4729 12.00us 12us 16062829 74.02 2
3313 12.00us 12us 16067917 74.05 2
2309 12.00us 12us 16073049 74.07 2
1623 12.00us 12us 16078131 74.09 2
13881 12.03us 12us 16024860 73.85 2
3769 12.00us 12us 16037333 73.91 2
12734 12.03us 12us 16048518 73.96 2
17149 12.08us 12us 16027676 73.86 2
4449 12.00us 12us 16038895 73.91 2
9563 12.01us 12us 16050443 73.97 2
16357 12.06us 12us 16030427 73.87 2
4792 12.00us 12us 16042364 73.93 2
9199 12.01us 12us 16054121 73.98 2
14339 12.05us 12us 16064911 74.03 2
12648 12.07us 12us 16074575 74.08 2
9997 12.09us 12us 16084279 74.12 2
6548 12.00us 12us 16089374 74.14 2
標準出力tsunami側
last_interval transfer_total buffers transfer_remaining OS UDP
time blk data rate rexmit blk data rate rexmit queue ring blk rt_len err
00:56:30.119 3450 0.04M 76.6Mbps 6.6% 33159500 31.6G 76.4Mbps 0.0% 242 0 8168612 242 74013 R-
00:56:30.471 3450 1.80M 76.6Mbps 37.2% 33162950 31.6G 76.4Mbps 0.0% 0 0 8167543 2048 74013 R-
00:56:30.823 3450 0.00M 76.7Mbps 0.1% 33166400 31.6G 76.4Mbps 0.0% 4 0 8167345 4 74013 R-
00:56:31.175 3450 0.04M 76.7Mbps 3.4% 33169850 31.6G 76.4Mbps 0.0% 122 0 8167307 122 74013 R-
00:56:31.527 3450 0.78M 76.6Mbps 37.2% 33173300 31.6G 76.4Mbps 0.0% 0 0 8166512 2048 74013 R-
00:56:31.878 3450 0.00M 76.7Mbps 0.0% 33176750 31.6G 76.4Mbps 0.0% 1 0 8166352 1 74013 R-
00:56:32.230 3450 0.02M 76.7Mbps 2.1% 33180200 31.6G 76.4Mbps 0.0% 75 0 8166321 75 74013 R-
00:56:32.582 3450 0.49M 76.6Mbps 32.4% 33183650 31.6G 76.4Mbps 0.0% 1654 0 8165722 1654 74013 R-
00:56:32.934 3450 11.06M 76.6Mbps 37.2% 33187100 31.6G 76.4Mbps 0.0% 0 0 8162378 2048 74013 R-
00:56:33.286 3450 0.00M 76.6Mbps 1.4% 33190550 31.7G 76.4Mbps 0.0% 49 0 8162170 49 74013 R-
00:56:33.638 3450 0.33M 76.7Mbps 24.9% 33194000 31.7G 76.4Mbps 0.0% 1144 0 8161730 1144 74013 R-
00:56:33.990 3450 7.64M 76.6Mbps 37.2% 33197450 31.7G 76.4Mbps 0.0% 0 0 8159090 2048 74013 R-
00:56:34.342 3450 0.00M 76.6Mbps 0.5% 33200900 31.7G 76.4Mbps 0.0% 18 0 8158891 18 74013 R-
00:56:34.694 3450 0.13M 76.7Mbps 17.8% 33204350 31.7G 76.4Mbps 0.0% 745 0 8158620 745 74013 R-
00:56:35.046 3450 4.62M 76.6Mbps 37.2% 33207800 31.7G 76.4Mbps 0.0% 0 1927 8156453 2048 74013 R-
00:56:35.397 3450 0.00M 76.6Mbps 0.3% 33211250 31.7G 76.4Mbps 0.0% 12 0 8156254 12 74013 R-
00:56:35.749 3450 0.09M 76.7Mbps 15.0% 33214700 31.7G 76.4Mbps 0.0% 607 0 8156033 607 74013 R-
00:56:36.101 3450 3.80M 76.6Mbps 37.2% 33218150 31.7G 76.4Mbps 0.0% 0 0 8154325 2048 74013 R-
00:56:36.458 3450 0.00M 75.6Mbps 0.1% 33221600 31.7G 76.4Mbps 0.0% 4 0 8154131 4 74013 R-
00:56:36.810 3500 0.04M 77.7Mbps 8.5% 33225100 31.7G 76.4Mbps 0.0% 324 0 8154013 324 74013 R-
00:56:37.162 3450 2.04M 76.6Mbps 37.2% 33228550 31.7G 76.4Mbps 0.0% 0 0 8152677 2048 74013 R-
00:56:37.514 3450 0.00M 76.7Mbps 1.5% 33232000 31.7G 76.4Mbps 0.0% 54 0 8152488 54 74013 R-
00:56:37.866 3450 0.36M 76.6Mbps 36.3% 33235450 31.7G 76.4Mbps 0.0% 1964 0 8151739 1964 74013 R-
転送元のtsunamid 停止
ctrl + c
実行結果
実ファイルのサイズよりだいぶ転送しているみたいで
(errのカウントが多いからか)
File data : 169530.69 Mbit
に対して
Total packet data : 416341.82 Mbit
倍以上のサイズ送っている感じ。
Throughput : 76.47 Mbps
出ているけど、対ファイルで見ると
Final file rate : 31.14 Mbps
このくらいの速度。
31.14 Mbps = 3.8925 MBps
Mb(メガビット)、MB(メガバイト)
01:30:44.098 3450 5.88M 76.3Mbps 0.0% 53289300 50.8G 76.5Mbps 0.0% 0 0 0 0 78700 R-
Transfer complete. Flushing to disk and signaling server to stop...
!!!!
PC performance figure : 78700 packets dropped (if high this indicates receiving PC overload)
Transfer duration : 5444.36 seconds
Total packet data : 416341.82 Mbit
Goodput data : 395944.62 Mbit
File data : 169530.69 Mbit
Throughput : 76.47 Mbps
Goodput w/ restarts : 72.73 Mbps
Final file rate : 31.14 Mbps
Transfer mode : lossless
tsunami>
scpのほうが早い…
scpで送ったら40分くらいで転送できちゃった。
詳細は別途調べる。
100Mbps共用じゃ、びっくりする結果は出ない
ネットワーク
インターネット接続回線
各サーバにはインターネット接続回線(共有セグメント100Mbps)
お粗末でした。