WindowsからLinuxサーバーに大量のファイルを転送したい。自宅のLANを10 gigabit Ethernet(10GbE)にしてみたら・・・・


#WindowsからLinuxへのファイル転送したい
用途としては機械学習のためにWindowsで処理した画像をLinuxへ転送したいだけ。
ファイル数700000枚、38Gbyteもある。
SCPで転送すると秒間10Mbyte程度で結構しんどい。
単純に計算しても1時間かかるし、実際は２時間くらい必要。
SCPの暗号化を簡単なものにして・・・イロイロやってみたけど「ちょっと改善したかな？」くらい。
大きく改善するために試行錯誤してみた。


#準備

せっかくイロイロ実験するんだからするんだから10GbE、10GのHUBを買ってみた。

![iOS の画像 (1).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185049/7d90a028-e9d0-f5c4-2359-29f2c836ca09.jpeg)

![iOS の画像 (3).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185049/74bb094b-1ba6-b575-4bd0-3ebaaa126163.jpeg)
MikroTik CRS305-1G-4S+IN
HUBはアメリカのamazonから買いましたが、日本のamazonでもそんなに変りない値段でかえます。
（関税はよくわかりません）

HUBのOSを変えてL3スイッチに出きるっぽいようなことが
https://mikrotik.com/product/crs305_1g_4s_in
に書いてある。なんか高機能っぽい。


## PCの構成

### Windows側
Ryzen Threadripper 2950X
memory 80Gbyte
ssd ct1000p1ssd8
NIC Intel 82599EN
![iOS の画像 (2).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185049/61aeff6a-e996-aa4b-977e-85bca1984716.jpeg)

SFP＋端子がかっこいい。:relaxed:
住居にサーバを格納するBOXを作って熱対策をしながら運営していますので汚い:sob:
BOX内部は正圧になるようにACファンを回しているのですが、フィルターから埃が入ってしまう:sob::sob::sob:


TAITAN RTX ,GTX 1070Tiの排熱が半端ないので扇風機いれてます。


### Linux側
Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
memory 32Gbyte
ssd CT500MX500SSD1
NIC Intel 82599EN


![iOS の画像.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185049/18b9fce1-6b73-d404-9f8a-581de697182e.jpeg)

埃:sob:
養生テープは埃防止です。:relaxed:

速度面から両方ともM.2の970EVOにしたかったけど、お金がない。:frowning2:


#とりあえず　iperf
DACで直結しました。

iperf3.exe
```
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.00  sec   980 MBytes   822 Mbits/sec                  sender
[  4]   0.00-10.00  sec   980 MBytes   822 Mbits/sec                  receiver
[  6]   0.00-10.00  sec   969 MBytes   813 Mbits/sec                  sender
[  6]   0.00-10.00  sec   969 MBytes   813 Mbits/sec                  receiver
[  8]   0.00-10.00  sec  1005 MBytes   843 Mbits/sec                  sender
[  8]   0.00-10.00  sec  1005 MBytes   843 Mbits/sec                  receiver
[ 10]   0.00-10.00  sec   968 MBytes   812 Mbits/sec                  sender
[ 10]   0.00-10.00  sec   968 MBytes   812 Mbits/sec                  receiver
[ 12]   0.00-10.00  sec   950 MBytes   797 Mbits/sec                  sender
[ 12]   0.00-10.00  sec   950 MBytes   797 Mbits/sec                  receiver
[ 14]   0.00-10.00  sec   986 MBytes   827 Mbits/sec                  sender
[ 14]   0.00-10.00  sec   985 MBytes   827 Mbits/sec                  receiver
[ 16]   0.00-10.00  sec   982 MBytes   824 Mbits/sec                  sender
[ 16]   0.00-10.00  sec   982 MBytes   824 Mbits/sec                  receiver
[ 18]   0.00-10.00  sec   984 MBytes   825 Mbits/sec                  sender
[ 18]   0.00-10.00  sec   984 MBytes   825 Mbits/sec                  receiver
[ 20]   0.00-10.00  sec  1.50 GBytes  1.29 Gbits/sec                  sender
[ 20]   0.00-10.00  sec  1.50 GBytes  1.29 Gbits/sec                  receiver
[ 22]   0.00-10.00  sec  1.79 GBytes  1.54 Gbits/sec                  sender
[ 22]   0.00-10.00  sec  1.79 GBytes  1.54 Gbits/sec                  receiver
[SUM]   0.00-10.00  sec  10.9 GBytes  9.39 Gbits/sec                  sender
[SUM]   0.00-10.00  sec  10.9 GBytes  9.39 Gbits/sec                  receiver

iperf Done.
```

すげぇ:flushed:

2021/08/15追記
↑の結果は-Pでparallelにしていました。
「ESET」と「FortiClient VPN」を入れると2Gbitsくらいしかでません（当時はこのことに気が付かず）
インストールされているだけで低下します！！
方向によっては800程度です。
速度が出ない人は注意！！






# 画像転送をやってみる。

イロイロためしてみたら、Windows Subsystem for Linuxでtarとsshで平行で出してあげると早いことが分かった。
（tarとncで平行出しはめんどくさかったです）

jpg転送メインなので圧縮なしです。

```sh
tar cf - 画像のディレクトリ/*1 | ssh user@192.168.x.xxx 'tar xf -'&
tar cf - 画像のディレクトリ/*2 | ssh user@192.168.x.xxx 'tar xf -'&
tar cf - 画像のディレクトリ/*3 | ssh user@192.168.x.xxx 'tar xf -'&

```
![gnet6.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185049/b84831f1-9317-9ad8-e534-49a1eff264b7.jpeg)

転送中のdstat -tafコマンド画面。dskとnetのところに注目。


900Mでているところもあれば転送を停止している時間もある。
たぶんCT500MX500SSD1への書き込み性能が300Mで頭打ちなんだとおもう。
（Crystal Disk Mark で4K書き込みが350Mくらいなんで）
M.2にすれば常時900M行ってくれるのではないか？
なんにしても38Gbyteの転送が数分でおわったのがうれしい。
計測してないけど５分かかってないと思う。

# 1GbEも試してみる


![gggg.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185049/1c429247-d74e-2c19-a2cb-1d61eeaa66b8.jpeg)
(dskとnetのところに注目)
117Mべた張りじゃないですか！！:flushed:
38Gbyteが１０分以内に転送できてしまう。:flushed:
んーー10GbEいらんかったなぁーーこれで十分な気がする。


# 合計４枚のIntel 82599EN

うちにはサーバ用途のマシンが3台、作業用が１台計４台のdesktopマシンがあります。
４台とも入れてみたのですが、認識しないマシンが２台ありました。

動かなかったマザボ

- ASUSTeK COMPUTER INC.　P8B75-M　：　NICを刺して起動・・既存のOS起動することなくその後何やっても（NICを抜いても）だめ。お亡くなり。OSを再インストールするがLinuxのlspciにでない。見かけ上16xのバスに刺したら動きそうな気配もするけど、GPUを動かすからそれはやりたくない。

- ASRock　H97M Pro4　：　NICを刺して起動しない。電源が入らない。なんでや？NICを抜いたら起動する

金の無駄だった。
マシンが古すぎるんですよね。。。レーン数8xで頑張るIntel 82599ENなのでそれ以下で使うのはもったいない。
せっかくなので買い替えようかな。:frowning2:


# 2021/05/28追記

MELLANOX CX311A‑XCAT ネットワークカード を購入ASRock　H97M Pro4に刺してみたら動いた！
ESXi 6.0.0 を運用しているんですが、何もしないで認識！すごい。
ハードウエア的に古いしそろそろ買い替えようかと悩んでいたので
もう少し延命しようかなと思う。

# 2022/05/15追記
MELLANOX CX311A‑XCAT ＋ASRock　H97M Pro4の転送速度を載せてなかった
古いマザボでも動く。

```
D:\>iperf3 -c 192.168.xxx.xxx -P 4
Connecting to host 192.168.xxx.xxx0, port 5201
[  4] local 192.168.xxx.xxx port 65324 connected to 192.168.xxx.xxx0 port 5201
[  6] local 192.168.xxx.xxx port 65325 connected to 192.168.xxx.xxx0 port 5201
[  8] local 192.168.xxx.xxx port 65326 connected to 192.168.xxx.xxx0 port 5201
[ 10] local 192.168.xxx.xxx port 65327 connected to 192.168.xxx.xxx0 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   271 MBytes  2.27 Gbits/sec
[  6]   0.00-1.00   sec   266 MBytes  2.23 Gbits/sec
[  8]   0.00-1.00   sec   272 MBytes  2.28 Gbits/sec
[ 10]   0.00-1.00   sec   272 MBytes  2.28 Gbits/sec
[SUM]   0.00-1.00   sec  1.06 GBytes  9.07 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   1.00-2.00   sec   286 MBytes  2.40 Gbits/sec
[  6]   1.00-2.00   sec   279 MBytes  2.34 Gbits/sec
[  8]   1.00-2.00   sec   278 MBytes  2.34 Gbits/sec
[ 10]   1.00-2.00   sec   283 MBytes  2.37 Gbits/sec
[SUM]   1.00-2.00   sec  1.10 GBytes  9.45 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   2.00-3.00   sec   286 MBytes  2.40 Gbits/sec
[  6]   2.00-3.00   sec   280 MBytes  2.34 Gbits/sec
[  8]   2.00-3.00   sec   278 MBytes  2.34 Gbits/sec
[ 10]   2.00-3.00   sec   282 MBytes  2.37 Gbits/sec
[SUM]   2.00-3.00   sec  1.10 GBytes  9.45 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
```