udr rsync
-
- Posts: 10
- Joined: Sat Nov 18, 2017 4:05 am
udr rsync
現在、かなり距離のある場所と拠点間VPNを構築しております。
ファイル転送の高速化を行いたく、UDPを使った高速化手法UDTをrsync用に実装したUDRというソフトを試そうとしてみました。
https://github.com/martinetd/UDR
https://genome.ucsc.edu/goldenPath/newsarch.html#030315
ローカルのマシン間では作動しましたが、SoftEther VPN間ではrsync broken pipeエラーなどが出て動きません。
通常のrsyncはもちろん、NFSのマウントなども拠点間で可能な状態です。
何かSoftEtherの仕様上、この通信ができないということがありますでしょうか?
ファイル転送の高速化を行いたく、UDPを使った高速化手法UDTをrsync用に実装したUDRというソフトを試そうとしてみました。
https://github.com/martinetd/UDR
https://genome.ucsc.edu/goldenPath/newsarch.html#030315
ローカルのマシン間では作動しましたが、SoftEther VPN間ではrsync broken pipeエラーなどが出て動きません。
通常のrsyncはもちろん、NFSのマウントなども拠点間で可能な状態です。
何かSoftEtherの仕様上、この通信ができないということがありますでしょうか?
-
- Site Admin
- Posts: 2197
- Joined: Sat Mar 09, 2013 5:37 am
Re: udr rsync
SoftEther VPN はイーサネットを模擬するので、原理的にはUDPであってもローカル同様に通信できるはずです。
-
- Posts: 10
- Joined: Sat Nov 18, 2017 4:05 am
Re: udr rsync
ご返信、ありがとうございます。
そうですか、原理的には通信できるはずなのですね。
ちなみにこのUDR、ポートは9000-9100を使うとなっています。
rsyncにオプション-n (DRY RUN)を与えますと、無事終了しますが、-nを外しますと、receiving incremental file listのところで止まって(ファイル名を取得できず)、
receiving incremental file list
rsync: [sender] write error: Broken pipe (32)
rsync error: error in socket IO (code 10) at io.c(820) [sender=3.1.3]
rsync: connection unexpectedly closed (113 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [receiver=3.1.3]
rsync: connection unexpectedly closed (113 bytes received so far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [generator=3.1.3]
以上のエラーとなってしまいます。
ローカルではファイル名もすぐに取得され、転送が開始されます。
dmesg | grep udrで、
udr[XXXX]: segfault at XXX ip XXX sp XXX error 7 in libc-2.17.so
が出ておりました。
もうひとつ、高速化のためのこのような試みは可能性ありますでしょうか?
そうですか、原理的には通信できるはずなのですね。
ちなみにこのUDR、ポートは9000-9100を使うとなっています。
rsyncにオプション-n (DRY RUN)を与えますと、無事終了しますが、-nを外しますと、receiving incremental file listのところで止まって(ファイル名を取得できず)、
receiving incremental file list
rsync: [sender] write error: Broken pipe (32)
rsync error: error in socket IO (code 10) at io.c(820) [sender=3.1.3]
rsync: connection unexpectedly closed (113 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [receiver=3.1.3]
rsync: connection unexpectedly closed (113 bytes received so far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [generator=3.1.3]
以上のエラーとなってしまいます。
ローカルではファイル名もすぐに取得され、転送が開始されます。
dmesg | grep udrで、
udr[XXXX]: segfault at XXX ip XXX sp XXX error 7 in libc-2.17.so
が出ておりました。
もうひとつ、高速化のためのこのような試みは可能性ありますでしょうか?
-
- Site Admin
- Posts: 2197
- Joined: Sat Mar 09, 2013 5:37 am
Re: udr rsync
使用している OS と、SoftEther VPN の設定はどのようなものでしょうか。
-
- Posts: 10
- Joined: Sat Nov 18, 2017 4:05 am
Re: udr rsync
両拠点のルーター内にサーバーを置いて、そのOSはCentOS7、片方からTCPポート443でカスケード接続しています。
両方ともローカルブリッジを使用しています。
UDPアクセラレーションが有効となっています。
DHCPパケット、IPv6パケットのフィルターをenabledにしています。
他はあまりいじっていません。
両拠点のルーター内は、プライベートIPアドレス、同じサブネットとなり、同じローカルネットワークにあるようにアクセス可能です。
今まで、これ以外で困ったことがありません。
そういった意味でSoftEther VPNは素晴らしいと思います。
両方ともローカルブリッジを使用しています。
UDPアクセラレーションが有効となっています。
DHCPパケット、IPv6パケットのフィルターをenabledにしています。
他はあまりいじっていません。
両拠点のルーター内は、プライベートIPアドレス、同じサブネットとなり、同じローカルネットワークにあるようにアクセス可能です。
今まで、これ以外で困ったことがありません。
そういった意味でSoftEther VPNは素晴らしいと思います。
-
- Site Admin
- Posts: 2197
- Joined: Sat Mar 09, 2013 5:37 am
Re: udr rsync
Linuxのローカルブリッジでは、ローカルブリッジを行っているホスト自身は VPN を利用できませんが、この UDR を使用している PC は別のものでしょうか。
-
- Posts: 10
- Joined: Sat Nov 18, 2017 4:05 am
Re: udr rsync
それぞれのサーバーには2つのネットワークデバイスがあり、ローカルブリッジは専用のを使っておりまして、SoftEtherを動かしているサーバー自身もVPNを利用できます。
(通常のrsyncは動きます。)
試しにSoftEther VPNが入っている以外の2つのマシンで別拠点にあるものの間で試しましたが、やはり転送できませんでした。
通常のrsyncは動きますし、udr rsyncもDRY RUNは上手くいきます。
(通常のrsyncは動きます。)
試しにSoftEther VPNが入っている以外の2つのマシンで別拠点にあるものの間で試しましたが、やはり転送できませんでした。
通常のrsyncは動きますし、udr rsyncもDRY RUNは上手くいきます。
-
- Site Admin
- Posts: 2197
- Joined: Sat Mar 09, 2013 5:37 am
Re: udr rsync
UDTの要求するネットワークの詳細について資料が見つからなかったのですが、UDP高速化使用時に MTU が小さくなるのが原因かもしれません。
UDP高速化機能を無効にしてみた場合ではいかがでしょうか。
UDP高速化機能を無効にしてみた場合ではいかがでしょうか。
-
- Posts: 10
- Joined: Sat Nov 18, 2017 4:05 am
Re: udr rsync
なんと!UDP高速化機能を無効にしたら転送できました。
しかし、転送速度はUDP高速化機能をONにした場合の通常のrsyncの半分以下くらいでした(3-5 MB/s)。
UDP on TCP?だと速度が出ないのでしょうか。
現在、pingで17 msくらいの距離であり、なんとかファイル転送を高速化できないかとやっておりました。
TCPを使った通信だと、どうしても距離がネックになって、速度が出ないと理解しています。
SoftEther VPNならUDPで通信できるので、このUDRで転送速度が上がらないかなという素人考えです。
UDPを使った高速ファイル転送はasperaが有名ですが、価格が...それでUDRを試した次第です。
しかし、転送速度はUDP高速化機能をONにした場合の通常のrsyncの半分以下くらいでした(3-5 MB/s)。
UDP on TCP?だと速度が出ないのでしょうか。
現在、pingで17 msくらいの距離であり、なんとかファイル転送を高速化できないかとやっておりました。
TCPを使った通信だと、どうしても距離がネックになって、速度が出ないと理解しています。
SoftEther VPNならUDPで通信できるので、このUDRで転送速度が上がらないかなという素人考えです。
UDPを使った高速ファイル転送はasperaが有名ですが、価格が...それでUDRを試した次第です。
-
- Site Admin
- Posts: 2197
- Joined: Sat Mar 09, 2013 5:37 am
Re: udr rsync
ソースコードを読んでみると、UDT自体には、もともと MTU を設定する機能があるのですが、UDR ではそのオプションを変更する機能がまだ実装されていないようです。
https://udt.sourceforge.io/udt3/doc/t-config.htm
udr_threads.cpp 辺りをいじってやれば、動作するようになるのではないかと思います。
https://udt.sourceforge.io/udt3/doc/t-config.htm
udr_threads.cpp 辺りをいじってやれば、動作するようになるのではないかと思います。
-
- Posts: 10
- Joined: Sat Nov 18, 2017 4:05 am
Re: udr rsync
色々と調べていただき、ありがとうございます。
私はC言語は全くわからないのですが(プログラミング言語は、rubyやpythonでテキストをいじるくらいしかわかりません)、udr_threads.cppのどこか、socket作成後、bind前に
int mss = 1000;
UDT::setsockopt(serv, 0, UDT_MSS, &mss, sizeof(int));
のようなものを追加すればよいのかなと想像しております...。
私はC言語は全くわからないのですが(プログラミング言語は、rubyやpythonでテキストをいじるくらいしかわかりません)、udr_threads.cppのどこか、socket作成後、bind前に
int mss = 1000;
UDT::setsockopt(serv, 0, UDT_MSS, &mss, sizeof(int));
のようなものを追加すればよいのかなと想像しております...。
-
- Posts: 10
- Joined: Sat Nov 18, 2017 4:05 am
Re: udr rsync
想像したとおりに追加して、コンパイルしてみましたら動きました!
mss = 1200までは動くことを確認しました。
(それ以上は試していません。)
転送速度も20 MB/s以上出るようで、通常の1.5-2.0倍程度になりました。
しかし、このudr rsync、1Gbpsで接続されているところで700-800 Mbpsくらい出たという記事もあり、SoftEther VPN間ではこれが限界でしょうか...。
mss = 1200までは動くことを確認しました。
(それ以上は試していません。)
転送速度も20 MB/s以上出るようで、通常の1.5-2.0倍程度になりました。
しかし、このudr rsync、1Gbpsで接続されているところで700-800 Mbpsくらい出たという記事もあり、SoftEther VPN間ではこれが限界でしょうか...。
-
- Site Admin
- Posts: 2197
- Joined: Sat Mar 09, 2013 5:37 am
Re: udr rsync
どこがボトルネックになっているのかは分かりませんが、処理の手間が大幅に増えるのは間違いないです。
UDR自身にも暗号化機能があるようなので、VPNを使わずに転送した方が良いかもしれませんね。
UDR自身にも暗号化機能があるようなので、VPNを使わずに転送した方が良いかもしれませんね。
-
- Posts: 10
- Joined: Sat Nov 18, 2017 4:05 am
Re: udr rsync
そうですね。
施設全体の管理者にポート開けてもらうとかですかね。
これまで、色々と有難うございました。
大変勉強になりました。
施設全体の管理者にポート開けてもらうとかですかね。
これまで、色々と有難うございました。
大変勉強になりました。