NASが遅い原因は配線とSMBだった「38MB/s→215MB/s」に改善した話

最近はWi-Fiの事情もよくなり、5GHz帯を使っていれば、夕飯の用意でレンジを使って遅くなるなんてこともなくなりました。

そんな中、私は有線LANが一番安定しているので信頼しています。しかし、配線が適当過ぎて実際の速度が出ていないことが分かりました。正直なところ、あまり不自由はしていなかったのですが、容量が厳しくなったので買い換えました。

そこで、NASを新しくするならば速度も出したいと思いました。

しかし、そこには5日間にわたる苦悩と苦労の日々が待ち受けているのでした。

この記事では、配線とスイッチングハブだけで速度を改善することだけでは速度改善をできなかった人へのサンプルとして書きます。

2.5GbE構成でチェックすべきポイント

  • NAS (2.5GbE対応のもの)
  • スイッチングハブ (2.5GbE対応のもの)
  • LANケーブル cat6a
  • PCのネットワークアダプタ (2.5GbE対応、無ければUSB-LANアダプタ)

私の場合は配線適当だったため、スイッチングハブとケーブルを買うことになりました。ほぼWi-Fi環境だったので、スイッチングハブを導入する意味はないと思っていました。

初めて2GbE対応のNASを選ぶ

私はネットワーク関係のものはなるべく日本製のものを選ぶようにしています。それはハードもアプリもです。特にC国産のものについては最大限除外するようにしています。

そんな私の偏見は置いておいて、今回選んだNASはBuffalo LS720D0802でした。理由は、安いことと2GbEに対応していたからです。

さて、転送速度はと思い、1GBのダミーファイルを作ってPCからNASへ送ってみました。この構成ならば理論値は312MB/s、実効値は200MB/s程度でしょう。

2.5GbE対応のNASなのにしゃばい転送速度。1/4も出ていない。

いや、うそでしょ。というのが最初の感想でした。38MB/sなんて1GbEの半分も出ていない。つかまされた!っと思いました。この時点で「NASがハズレ個体だった」と本気で思い、買い替えまで検討しました。

改善できたのは幸いですが、家庭内NASのみでできることなので、会社等では行わないでください。いかなる損害に対しても規約通り責任は負えません。

なぜNASの速度が出ないのか?4TBのコピーに4日かかった事例

旧NASから新NASへrobocopyでファイルを送ったところ、4日間かかりました。うそでしょ、と思いました。4TBなのに96時間以上、明らかに異常が発生していたことが伺えました。

そこからが試行錯誤の連続です。
色々と数字が合わない。4TBで96時間って10MB/sかそれ以下、38Mbpsですらない。謎です。

とにかく現状は画像から分かる通り、きれいに速度が38MB/sで張り付いています。つまり、通信の不安定ではなく、何かがボトルネックになって天井に張り付いている状態だということです。

当時の接続状況

これが酷い、適当に適当を重ねたら後から見ると卒倒ものでした。

【外回線】→【ONU】→【ホームゲートウェイ】→【Wi-Fiルーター】→【Wi-Fiルーターに全部のLANをぶら下げる】

Wi-Fiルーター内蔵のおまけの1GbEスイッチにみんなぶら下がっていました。さらに酷なことを白状するとこんな悪条件も揃っていました。

  • LANケーブルcat7
  • スイッチングハブ無し
  • 基本Wi-Fi経由だけれど壁2枚
  • どこを取っても構成が混沌

典型的なネットに繋がれば良いという配線で、典型的なボトルネック構成でした。

LAN配線の改善

まずは、Wi-Fiルーターに全部ぶら下げるのを止めるところから始めました。買ってきた2.5GbE対応のスイッチングハブを中心に色々改善しました。

安いですがきちんと仕事をしてくれるスイッチングハブELECOMのEHC-LQ01-5です。

Loopとポート3に色がついていますが、隣のライトが映りこんでいるだけです。緑のランプは正常に2.5GbEとして認識しているLANポート、橙色はそれ以下の速度として認識しているLANポートです。

1番PC、2番NAS、3番空き、4番旧NAS、5番WiFiルーターです。全てLANケーブルcat6aに統一しました。

【外回線】→【ONU】→【ホームゲートウェイ】→【Wi-Fiルーター】→【New! スイッチングハブ】→【スイッチングハブで末端集約】

これでPC-新NAS間の接続は合っていると思います。

現在の状況を整理(Byte/sec)

配線回りをなんとかしたので、実効値は変わってしまったかもしれませんが、計測をします。

LANの状態を見るのならばlogを見ることが一番確実、ということでダミーファイルを転送したときのLogはどうなっているか調べました。

前提条件:ダミーファイルdummy.binを入れるフォルダはD:\testでNAS側はZ:\testとしました。

# およそ2GBのダミーファイルを作る
fsutil file createnew D:\test\dummy.bin 2147483648

# 2GBのダミーファイルをNAS(Z:\)へ送る(ログ付き)
robocopy D:\test Z:\test /E /R:0 /W:0 /MT:16 /LOG:log.txt

ログの結果は78,258,213バイト/秒、つまり74.7MB/s = およそ600Mbps。1Gbpsの6割くらい。どこかがボトルネックということです。

robocopyの/MT:(マルチスレッド)を/MT:16、/MT:32、/MT:64と上げてみましたが、誤差で1MB/s伸びたぐらいでした。物理的なリンクがボトルネック?と思いました。

PCのマザーボード側NICが1GbEかもしれない

そう思い、Windows PowerShell 5.1で確かめてみました。

Get-NetAdapter | ft Name,LinkSpeed

イーサネットの項目を見てみると2.5Gbps出ていることがわかります。これは悪くない。
ちなみにネットワークアダプターは悪名高きカニさんのRealtek Gaming 2.5GbE Family Controllerです。

NAS側がオートで1GbEに固定しているかもしれない

ブラウザにIP直打ちで管理画面にいったところ、リンク速度は2.5GbEと表記されている。しかしいじることもできないため、この表記を信じるしかありません。

スイッチングハブが元凶かもしれない

安いスイッチングハブだと高速で通信できるポートとそうでないポートに分かれている場合があります。しかし今回のELECOM EHC-LQ01-5は説明書によると、5ポート全てが2.5GbE対応でした。

ためしにポートを変えたり、ケーブルを変えたりしましたが、正常な反応でした。

NASだNASが犯人に違いないかもしれない

結局受け取る側のログを眺めているわけだから、NASに問題があるに違いない。と、思って型番から色々と調べました。一番あやしいのはHDD、二番目はCPUでした。

HDDについてはRAID0で運用しており、SSDにくらべれば遅いですが実効値に近い数字でした。

CPUが問題です。どう調べても「ヘキサコア(6コア)」としか書いて無く、NAS内部のチップも、ARM系の省電力SoC(スマホ組み込みみたいな小型CPU)かな?と想像するしかないレベルでした。

もしARMのヘキサコアならばSMB/Sambaプロトコル処理能力の限界なのかもしれません。たとえネットワークが理論上2.5GbEでも、CPUの処理が追い付かないために実行値が頭打ちになっているのかもしれない。

謎は深まるばかりです。

LS720D0802の通信速度が出ない原因の整理

色々疑ってみたけれども、どれも決定打にはなりませんでした。そこで一度整理します。

  • ARM CPU(非力)
  • メモリ固定(増設不可) 
  • CPU交換負荷(300のはんだ付け必須)
  • CPUの処理能力でSMB/Sambaプロトコル処理能力の限界

SMB/Samba?SMBといえばSMB暗号化はCPUに負荷のかかるオプションではないだろうか?

もしそうだとしたら、このLinskStation LS720D0802(ARM NAS)は常に拷問を受けながらデータ処理をしていたようなもの。速度が理論値の半分、1/3くらいまで落ちるのは明白です。

NASのSMB暗号化を疑う

どうも調べてみたところLS720系の中にはAES-NIつまりハードウェアでの暗号支援がないということが分かりました。

要するにARMの低クロックCPUでは、暗号はソフトウェアでCPUをゴリゴリ使用しながら処理をしていたことになるようです。

そしてBuffaloは初期設定でSMB3暗号化がONになっていることが多いようです。そしてNasNavigator 2ではそれを解除できない。どうしたものか。

SMBならばWindows側も影響がある

※SMBの暗号化に関わる部分です。自己責任で実行をお願いします。家庭用かつ個人で責任が取れる範囲で行ってください。

Windows11は仕様からSMB署名を強制するようなふしがある。これもCPUをビシバシ働かせる。まずは確認をします。

RequireSecuritySignature
EnableSecuritySignature

おそらく両方ともTrueになっていると思います。ここから分かることは以下の通りです。

①SMB暗号化

  • AESで全文暗号化
  • CPUに多大な負荷
  • NAS側では設定ができない

②SNB署名

  • 改ざん防止チェックサム
  • CPU食う
  • Windows側だから設定できる

WindowsでSMB署名をオフにする手順

今までいろいろとネットの海をさんざん彷徨ってきましたが、ようやく答えにたどり着きました。原因はSMB署名です。ならばすることは一つ。NAS側がいじれないならばWindowsをいじればいい。

管理者Windows PowerShell 5.1で書き換える

※もう自己責任です。何か損害が起きてもこちらは責任を取ることができません。

Windows PowerShellを管理者権限で実行します。

Set-SmbClientConfiguration -RequireSecuritySignature $false -Force
Set-SmbClientConfiguration -EnableSecuritySignature $false -Force

そして、再起動。

Get-SmbClientConfiguration | findstr Security

これで両方とも”false”になるまでやります。

セキュリティ的に大丈夫なのか

家LAN限定ならば99%問題ありません。署名は「社内ネットワークのなりすまし防止」に効果を発揮するので、自宅内ではあまり関係ないです。

解決:LS720D0802の性能をやっと引き出せました

長かった。本当に長かった。ここまでたどり着くのに5日間くらいかかりました。結果は見てのとおりです。

38MB/sだったNASが215MB/sにまで天井が解放されました。本当に、本当に早くて驚くばかりです。朝の5時、一人でやりきった感がありました。

2.5GbEの理論上限は312.5Mbps。そこには到底たどり着けませんが、ロス要因がたくさんあるので、ざっくり200から250MB/sが私の環境だと天井です。単純に嬉しかったです。

そして朝7時、最後に思ったことは……
「家で小さいデータ移すだけだから、38MB/sでも不便ではなかったな…」

そんな5日間でした。

よくある質問(FAQ)

Q
LANケーブルはさらに上にcat7やcat8がありますが、なぜcat6aなのですか?
A

cat6aが2026年時点での実用最強規格だからです。10Gbps対応、100mまで大丈夫、RJ45コネクタ、言うことなしです。cat7はケーブル自体の性能は高いです。しかしコネクタが家庭用のRJ45で「なんちゃってcat7」が多いです。cat8は40Gbpsで30mですが、データセンターなどで使われるものです。コネクタが刺さるかどうかも怪しいです。

Q
SMB署名(暗号化)を切るって危険ではないですか?
A

家庭内LANなら実質問題ないんじゃないかと考えています。SMB署名は改ざん防止やなりすまし防止、企業向けのネットワーク用セキュリティ機能だと思っています。家庭内はNAS配下で外部からの直接侵入不可、家族しか繋がないから大丈夫だと思います。

Q
VPN動かしたままでも速度を維持することができますか?
A

無理です。とくにPingとJitterが酷くなって速度がでません。VPNは速度という観点から、暗号化処理、トンネル経由、CPUに過剰な負荷と通信の重しが3つもあります。普段はVPNを使っていても、NASコピー、robocopy、大容量転送のときはVPNを切った方がいいです。

まとめ

今回の速度低下の原因は、ストレージやCPUなどハード性能ではなく、SMB署名(暗号化によるCPU負荷)でした。

旧配線や設定では38MB/s(約300Mbps)しか出ず、NAS側CPUが常に100%近くに張り付いていました。そこで配線の見直し、LANケーブルの見直し、2.5GbEのスイッチングハブの導入で物理リンクを整備し、リンク速度2.5GbEを確保しました。

それでも速度が伸びなかったため、SMB署名を無効化しました。

結果、CPUボトルネックがなくなり、215MB/s(約1.7Gbps)まで一気に改善できました。

  1. Wi-Fi接続をやめて有線接続にする
  2. cat6aケーブル + 2.5CbEスイッチングハブで物理リンクを整える
  3. Get-NetAdapterでリンク速度を確認
  4. セキュリティソフト、VPNなど通信に関わるものを全て切り、純粋な速度計測
  5. 遅ければハードではなく、SMB署名/暗号化を疑う
  6. 署名を無効化し再起動で速度改善

リファレンス

コメント