macOSで25GbEネットワークを構成する

# macOSで25GbEネットワークを構成する
Mac(Macintosh)で25GbEネットワークを構成したくなったので導入した。

※2024年2月3日にX(Twitter)へ投稿した内容をQiitaにまとめ直した。
[X(Twitter)で投稿したスレッド](https://twitter.com/solid2355/status/1753777325966262435)

# はじめに
Macで25GbE組みたいな〜〜〜って思っている人は参考にどうぞ。
WinやLinuxで組みたい方は、IntelのXXV710かE810あたりを選択したほうがコスパ良く組めるのでそちらをおすすめする。

X(Twitter)でのこちらの方のポストが参考になる。
[X(Twitter)参考ポスト](https://twitter.com/v_pop_v/status/1703031090489983318)

# 機器選定編
## 機器選定(Mac側)
Macで25GbEを使用するにあたってメーカー公式で動作保証がされている機器はSonnet Technologies社の以下2種。
※両製品ともAmazonのマーケットプレイスで出店されているがぼったくり価格。秋葉館さんが妥当な値段で売っているため、そちらで購入するか個人輸入するほうが良い。

### ①【Thunderbolt外付け】Sonnet Technologies Twin25G Thunderbolt Adapter(TWIN25G-TB)
▼sonnet
https://www.sonnettech.com/product/twin25g/overview.html

▼秋葉館さん販売ページ
https://akibakan.com/products/11728

Mac Pro以外のモデルであればこちらを選択するのが無難。

理由は、Thunderboltによる外付けタイプのため、Thunderbolt 3/4端子を搭載しているモデルかつmacOS 13 Venturaにアップデートしていれば使用出来るはず。
(製品紹介ページではmacOS 12 Monterey以降で使えると記載があるが実際はmacOS 13 Ventura以降でないとドライバのインストールが出来ない。)

### ②【PCI Express内蔵型】Sonnet Technologies Twin25G PCIe Card(G25E-2X-E3)
▼sonnet
https://www.sonnettech.com/product/twin25g-pcie-card/overview.html

▼秋葉館さん販売ページ
https://akibakan.com/products/12191

PCIe内蔵型のため、Mac Proであればこちらを使用するのがベスト。
(私はMac Proを所有しているためこちらを購入した。)

もしくは、Thunerbolt外付けPCIeケース(拡張ボックス)とTwin25G PCIe Cardを組み合わせて使用するのも一つの手ではある。
ただし、動作安定性の観点ではどうなるかが未知数なので玄人向けか。

なお商品説明を確認する限り、いずれの製品もSR(ShortRange/短距離)のSFP28トランシーバが2つ付属している。
SFPトランシーバも意外と値段が張るので付属してくれるのはお財布的に助かる。

Thunderboltで外付けする際は注意点がある。
Thunderbolt 3/4の理論値転送速度が最大40Gbpsのため、2ポート両方同時に25Gbpsの速度を出すことが出来ない。
2ポート両方使用する場合は1ポートは25Gbps、もう1ポートは10Gbpsまでを使用する構成が無難。

また、こちらは憶測になるが同様の理由でデイジーチェーン利用時も注意が必要。
25Gbpsをフルで利用すると使用可能な残帯域は15Gbpsの計算。
デイジーチェーン利用時は、接続するデバイスを15Gbps以下の伝送速度のものを接続するのが安全かとは思う。
(実際は、Thunderboltには転送速度の自動調整機能があることと、常時25Gbpsフルで通信することは滅多にないと思うので問題ないとは思うが。)

## 機器選定(対向接続機器)
Synology DiskStation DS1621+を所有しており、これを利用することにした。
Synology純正部品で25GbE拡張ネットワークカードが販売されており、こちらを使用し25GbEポートを追加する。

Synology純正の25GbEネットワークカードの選択肢としてはE25G21-F2とE25G30-F2の2種類がある。
調べたところE25G21-F2が旧モデルで販売終了しており、E25G30-F2が新モデルで現行販売している模様。

※画像参照
![Screenshot 2024-01-16 at 03-36-07 互換性リスト Synology Inc.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682021/00bec195-07e8-fb8e-da0f-b46205133e28.png)

※URLは現行モデルのE25G30-F2
https://www.synology.com/ja-jp/products/E25G30-F2

E25G21-F2とE25G30-F2を比較する目的で製品仕様などを調べたが新旧モデルで違いに何があるかわからなかった。
Synologyの製品互換リスト上、それぞれのNICの光トランシーバ/DACケーブルの互換性を確認しても数本違いがあるだけなので、製品仕様はほぼ同じであろうと推測される。

※画像参照
![Screenshot 2024-01-16 at 03-43-20 互換性リスト Synology Inc_E25G21-F2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682021/e3341489-4d1c-eb81-963d-eeca4ef2315c.png)
![Screenshot 2024-01-16 at 03-43-35 互換性リスト Synology Inc_E25G30-F2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682021/0985e56a-c037-f2e8-a526-2f41808423b4.png)


明示的な情報源は見つからなかったが旧モデルE25G21-F2のコントローラはMellanox ConnectX-4らしいので、E25G30-F2もMellanox系列なのだろう。
SFPやDACはMellanox互換のものを選ぶのが安全そう。
(製品互換リストに記載のものを使用するのが最善ではあるが。)
https://www.synology.com/ja-jp/compatibility?search_by=products&model=E25G30-F2&category=sfp_module_da_cables

私は今回偶然、旧モデルのE25G21-F2を在庫処分品として少し安い値段で調達できたため、今回はE25G21-F2を使用することにした。
なお、SFPトランシーバは付属していないので別で調達してくる必要がある。

また、補足になるが光ケーブルを用いて25GbEでリンクアップさせるにはSFP28トランシーバが必要なので注意。
(通常のSFPやSFP+トランシーバでは25GbEでリンクアップしない。)

# ストレージ速度について
今回、MacとNASを接続するにあたり、25Gbpsの速度を出すためにはストレージの性能も重要。
25Gbps(=3125MB/s)の速度を出すことが出来る製品や構成を用意する必要がある。

Mac Pro 2019は内蔵SSDでRAID0を構成している場合、大体2800MB/s強〜3000MB/s弱の速度が出るので、まあ許容範囲。
※Mac Pro 2019の内蔵SSDの注意点として、SSDの構成(容量)によっては1枚構成となっており、先述の速度が出ない恐れがある。

NAS(DS1621+)について、ディスクは6台まで搭載が可能。私は以下のディスク構成としていた。
・SATA接続SSD×4玉(RAID5)
・SATA接続HDD×2玉(RAID1)
SSD×4台のRAID5はそこそこの速度が期待出来るがそれでも25Gbpsは出ないので、少しズルをする。

DS1621+はSATAとは別で、M.2 NVMe SSDを最大2枚まで搭載しSSDキャッシュを構成することが出来るため、これを利用することにした。
M.2 NVMe SSD(Gen3)で性能の良いものを選べば3000MB/s前後の速度が出るはずなので、適当に調達、搭載、SSDキャッシュを設定した。

# 接続構成
以下で接続した。
## ポートその1(25Gbps。データ転送用途。)
Mac Pro (2019)
※Twin25G PCIe Card(G25E-2X-E3)を内蔵。付属のSFP28トランシーバを取り付け
↓
↓LC/LC光ケーブルで直結
↓
DS1621+
※E25G21-F2を内蔵。別途調達したMellanox互換SFP28トランシーバを取り付け

## ポートその2(10Gbps。宅内LAN接続及びインターネット用途)
※ネットワークカードやSFP装着については先述の通りなので、割愛。
Mac Pro (2019)
↓
↓LC/LC光ケーブルで接続
↓
10Gbps NWスイッチ
↑
↑LC/LC光ケーブルで接続
↑
DS1621+

この接続構成でポートその1は25Gbpsで、ポートその2は10Gbpsで、それぞれ無事にリンクアップしてくれた。
接続した後で気づいたが接続する同士のNICコントローラがMellanoxなのでMellanox互換のDAC(Direct Attach Copperケーブル)でも良かったかもしれない。
(DACのほうがお財布的にお安く手に入る。)

![スクリーンショット 2024-02-03 22.04.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682021/88a1a710-57b9-f496-43ea-a4b278c9b15e.png)

Amazon.com上(Amazon.co.jpではない)に載っているE25G21-F2のレビューでも「OEMのMellanox DACケーブルを使用したが問題なく動作した」と言った内容の記載もあるため、Mellanox系のDACであればおそらく概ね大丈夫だと思う。

[Amazon.comでのE25G21-F2のレビュー](https://www.amazon.com/Synology-Ethernet-Adapter-SFP28-E25G21-F2/product-reviews/B08WLGZS86)

# 速度測定結果
画像の通り。
思ったより速度が出ない。
(本来はiperfとかでちゃんとやるべきだが面倒なのでやらない)

1枚目:Blackmagic Disk Speed Test
![スクリーンショット 2024-02-03 21.44.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682021/175f79fc-333e-b270-f981-28ca98abe0c5.png)

2枚目:AmorphousDiskMark 4GiB×5パス ALL
![スクリーンショット 2024-02-03 21.44.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682021/bc103f27-5265-d09d-0a5e-b3cb2c2f828e.png)

3枚目:AmorphousDiskMark 16GiB×5パス ALL
![スクリーンショット 2024-02-03 21.52.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682021/823630de-6523-4c1c-4254-3ef5084a0378.png)

4枚目:AmorphousDiskMark 4Gib×1パス シーケンシャルQD8
![スクリーンショット 2024-02-03 22.00.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682021/091b68e3-2856-ede7-f8aa-10e896f1e955.png)

シーケンシャルREADは10Gbps(1250MB/s)を超えているがそれでも2000MB/s前後止まり。
WRITEも思ったより速度が出ず10Gbpsも超えられていない。
NASのSSDキャッシュが効いてくれば速くなるかもしれない。

# おわりに
READは10Gbpsを超えており、25Gbpsの環境を用意した甲斐はあったが期待していた速度は出ず、残念な結果となった。
何が原因で期待した速度が出ないのかがわかっていないので、そのうち調査したい。

# おまけ①
Macから光ケーブル生えてる絵面おもろすぎる
![IMG_4622.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682021/2b7ef08f-9763-29c3-99ac-319e67c687b9.jpeg)

# おまけ②
MacでSMBを使用する際、認証機能をONにすると遅くなると言う噂があるのを耳にした。
設定方法についてURLに掲載されており、この対策をしたが変わらなかった。
https://support.apple.com/ja-jp/101442

# おまけ③ (2025年1月13日追記)
RedditにてmacOSでSMBの速度が遅いのを改善する設定が議論されており、こちらの設定を投入してみた。
しかし、こちらの設定を投入しても速度に変化は見受けられなかった。
https://www.reddit.com/r/MacOS/comments/17jgiyw/comment/lc6z6lg/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button

※セキュリティを低下させてしまう設定も含まれているため、適用する場合はよく吟味すること。

設定内容は以下。
■/etc/nsmb.conf を新規作成し以下設定を記載
```
[default]
signing_required=no
validate_neg_off=yes
streams=yes
notify_off=yes
soft=yes
dir_cache_max_cnt=0
dir_cache_max=0
dir_cache_off=yes
port445=no_netbios
protocol_vers_map=4
mc_on=yes
mc_prefer_wired=yes
```

■コマンド投入(ネットワークドライブ上で.DS_Storeファイルの作成をさせないようにする)
```
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE
```