既存のNASから新しいNASにファイルをコピーしようとしています(「新しい」と言いますが、新しいNASは約8年ほど、既存のNASは約12年ほどです)。どちらもRAIDディスクを持っているため、物理的に取り外すことはできません。従来のNASにはEMCの組み込みBusybox Linuxが稼働していました。最新バージョンはちょうど再構築され、最新バージョンのDebianを実行しています。コピーする合計サイズは約8TBです。また、既存のNASでは、ネットワーク以外の外部接続はUSB 2.0コネクタだけであり、OSがそれをサポートしているかどうかわからないため、外部ディスクにコピーして新しいNASに移動することも同様に不可能です。オプションではありません。
とにかくrsync
orを使用すると、rcp
約20MB /秒のコピー速度が得られます。速度scp
が10MB /秒未満です。また、パイプを使用してあるtar
ホストから別のホストに出力をパイプしようとしましたが、ssh
パフォーマンスが悪かったです。ただし、Windowsシステムに2つの共有をマウントし、ある共有から別の共有にファイルをコピーすると、約60 MB /秒を達成できました。すべての速度は、iotopおよび/またはiostatを使用して決定されました。 Windowsの速度に基づいたものではありません。
LinuxからLinuxにコピーするのが遅すぎるのはなぜですか?Windowsでスピードを上げる方法はありますか?
ETA:出力は次のとおりですip a
(インターフェース3が切断されます)。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 10:6f:3f:17:0f:cb brd ff:ff:ff:ff:ff:ff
inet 192.168.1.227/24 brd 192.168.1.255 scope global dynamic enp3s0
valid_lft 57093sec preferred_lft 57093sec
3: enp4s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 10:6f:3f:17:0f:ca brd ff:ff:ff:ff:ff:ff
ETA2:出力がethtool
よさそうです。
# ethtool enp3s0
Settings for enp3s0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
答え1
scpを使用してrsyncを介してデータをマウントポイントにコピーする代わりに、新しいNASから古いNASへのSMB共有をマウントしてみましたか?
答え2
1Gbps有線ネットワークでは理論的最大速度= 1000mbps /バイトあたり8ビット= 125MB/秒。実際に私が経験した最大コピー速度は、Windowsポップアップあたり約112MB /秒でした。これは、Linuxサーバー(Sambaサーバーを実行)からWindows 7/10コンピュータにコピーすることでした。
8TB => 8,000,000MB / 112MB/s = 71,428秒 = 問題なく19時間以上連続転送が可能です。
これにより、scp
SSHのオーバーヘッドにより通常112MB /秒ではなく80〜90MB /秒が表示されます。
LinuxからLinuxにコピーするのが遅すぎるのはなぜですか?Windowsでスピードを上げる方法はありますか?
LinuxからWindowsへのダウンロード(読み取り)およびWindowsからLinuxへのアップロード(書き込み)時、コピー速度が112MB/秒と報告しました。私のLinuxサーバー(職場)には512 GBのRAMがあり、ディスクキャッシュがあります。これは主にディスクがデータを提供するのを待つのを防ぎます。特に、システムに書き込む場合、データはネットワークを介して転送され、RAMに保存されます。ディスク。ハードドライブの通常の実際の読み取り速度は80MB /秒以上であることがよくあります。通常特にマルチRAIDの場合は大きな影響はありませんが、単一のハードドライブの場合、データの読み取りにボトルネックが発生する可能性があります。
既存のNASからNASにファイルをコピーしようとしています。その他 一つ
説明したように、同じネットワークと場所でレプリカの112 MB /秒を表示できるSynology NASを使用した経験があります。時々私のNASが100MB /秒に近づくことがあり、時には数分で1つのNASが移動することがあります。約10GBのファイルはわずか50MB/秒です。 NASの内部には、複数のユーザー接続が読み取り/書き込みを行うことを期待して、帯域幅を維持するためにネットワーク転送速度を遅くするさまざまな設定があります。
2つのNAS間でコピーする8TBのデータは単一のファイルではないため、数百万の個別のファイルを処理することに関連するわずかなオーバーヘッドがあります。これは、データブロックをローカルで100 + GB tarファイルに圧縮しない限り、方法はありません。そして、トランスファーすると、これらの人々がターゲットNASの減圧作業をするようになります。
LinuxからLinuxにコピーする理由
あなたは実際にLinuxからLinuxへの作業を実行するのではなく、nasからnasへの作業を実行しています。オペレーティングシステム各NASのオペレーティングシステム、ネットワーク接続の設定方法、読み取り/書き込みが可能なストレージ(ディスク)タイプのパフォーマンス。
1gbpsの有線ネットワークで112MB /秒の説明に基づいて、LinuxからLinuxサーバー(NASではない)への転送速度が同じであることがわかりました。これにより、scp
SSHオーバーヘッドが次の理由になります。 〜80MB/秒に減少します。数千の小さなファイル(10 MB未満)のコピーを開始すると、OSはストレージに関係なくファイルシステムからそのデータを読み取り、そのファイルに書き込まれた他のすべてのシステムにコピーし直すため、多くのオーバーヘッドと速度の損失が発生する可能性があります。保存。 十分なRAMを持つNASは、ネットワークを介してRAMに入ってくるデータをバッファリングすることができ、この時点でディスクに対して実行できる継続的な書き込み速度になります。これらの広告の数字は一般的に誇張されていると考えられ、ほぼ常に状況によって異なります。最大書き込み速度。 NASにマウントされたディスクの数(RAID-0)で、可能な最大読み取り/書き込み数を通知できます。
完全な状態を確認するには、単一の〜2 GBファイルと単一の〜30 GBのファイルを転送し、最大転送速度がどのくらいであるか、ネットワーク上で持続していることを確認してください。
答え3
rsync と scp はどちらも、有線で送信されるデータを暗号化します。ご覧のとおり、古いハードウェアでは速度が約20 MB / sに制限されていることがわかりました。
暗号化されていないコピーを試してください。たとえば、次のようになります。
- 一端でrsyncサーバーを実行し、rsync://プロトコルを使用します。
- 両側にnetcat(またはnc)を使用してください(テストされておらず、おそらく間違った構文である可能性があります)。
- 源泉:
tar cf - ... | nc host port
- 目的地:
nc -l port | tar xf -
- 源泉: