為 Proxmox VE 黑群輝 XPEnology 加裝 2.5GbE 網卡

話 說 我 為 我 的 Synology DS415+ 升 級 了 2.5GbE 網 卡 ,詳 情 可 以 在 這 一 篇 文 章 找 到 。後 來 我 又 入 手 了 一 個 8 bay 的 NAS,優 易 的 NAS-U8D。這 個 NAS 的 CPU 十 分 強 勁 ,是 一 顆 16 core 32 thread 的 Xeon,所 以 我 沒 有 直 接 安 裝 XPEnology,而 是 裝 了 一 個 hypervisor ( Proxmox VE ),然 後 再 裝 了 一 個 XPEnology 的 虛 擬 機 。

那 在 這 樣 的 設 置 之 下 ,又 可 以 如 何 升 級 2.5GbE 網 卡 ?用 USB 好 還 是 PCI-E 好 ?那 一 種 會 比 較 便 宜 ?有 沒 有 方 法 可 以 省 下 那 個 相 對 昂 貴 的 2.5GbE Switch 呢 ?這 篇 文 章 就 是 為 大 家 解 答 以 上 的 所 有 疑 問 。

選 擇 網 卡

最 簡 單 ( 但 有 一 點 點 愚 蠢 ) 的 做 法 ,就 是 和 我 之 前 的 那 篇 文 章 一 樣 ,加 一 個 DSM 能 直 接 使 用 的 USB 2.5GbE 網 卡 ,再 在 PVE 直 通 給 DSM 來 用 ( 我 實 測 過 ,是 可 以 用 的 )。這 個 作 法 無 疑 是 最 慳 水 慳 力 的 ,不 過 卻 有 2 大 問 題 。

首 先 是 你 用 得 XPEnology,整 乜 鬼 仲 要 吊 舊 USB 野 在 外 面 ?XPEnology 的 可 擴 充 性 應 該 比 Synology 要 好 一 百 萬 倍 吧 ( 除 非 你 用 的 是 一 台 notebook )?其 次 是 ,將 2.5GbE lan card 直 通 了 給 DSM,那 PVE / Host 本 身 就 享 受 不 到 2.5GbE 的 升 級 速 度 了 。

以 我 的 NAS-U8D 為 例 ,主 板 就 有 2 條 PCI-E 3.0 插 槽 。1 條 是 16X 大 小 ,另 1 條 是 8X 大 小 。不 過 受 限 於 主 板 的 設 計 ,2 條 PCI-E 都 只 有 8X 的 速 度 。不 過 其 實 絕 大 部 分 的 PCI-E 網 卡 都 只 是 1X 的 ,所 以 任 何 PCI-E 插 槽 都 會 插 得 下 。

關 於 2.5GbE 網 卡 ,我 建 議 購 買 使 用 Realtek RTL8125 晶 片 組 的 網 卡 。一 來 這 是 最 便 宜 的 2.5GbE 網 卡 ,二 來 Proxmox VE 只 要 Kernel 5.4 以 上 都 內 建 了 driver。

https://github.com/tubaxiaosiji/RTL8125-Driver-for-Proxmox-VE5-6-and-debian

再 者 國 內 有 網 友 已 經 制 作 好 了 RTL8125 driver 的 安 裝 包 放 在 GitHub,我 們 只 要 打 幾 個 command 就 可 以 完 成 安 裝 。

我 也 會 考 慮 將 NAS 當 成 2.5GbE network switch 來 用 ,所 以 找 了 一 片 2 個 口 的 2.5GbE 網 卡 ( 4 埠 的 還 沒 找 到 )。雙 口 網 卡 有 點 貴 ,是 單 口 的 3 倍 價 錢 ,不 過 考 慮 到 電 腦 的 PCI-E 擴 充 槽 的 數 量 十 分 有 限 ,也 就 唯 有 乖 乖 付 款 。

我 的 NAS 機 箱 剛 好 也 有 2 個 PCI-E 插 口 。不 過 因 為 是 小 機 箱 ,PCI-E 插 口 是 打 橫 的 ,所 以 就 要 另 外 買 PCI-E 延 長 線 。PCI-E 延 長 線 有 很 多 ,但 我 這 只 是 給 1X 網 卡 用 的 ,就 不 需 要 那 麼 多 講 究 ,買 個 便 宜 的 就 好 ( 就 是 不 需 要 買 那 些 幾 百 蚊 的 顯 卡 延 長 線 )。

認 識 Linux Bridge

PVE 預 設 會 幫 你 設 定 好 一 個 Linux Bridge,名 稱 叫 vmbr0,它 會 包 含 一 張 實 體 網 卡 ,通 常 就 是 系 統 的 第 一 張 實 體 網 卡 。這 個 Linux Bridge 其 實 就 是 一 個 虛 擬 的 交 換 機 ,它 和 一 個 真 實 的 switch 其 實 沒 什 麼 分 別 。

這 個 Linux Bridge 預 設 有 一 張 實 體 網 卡 ,是 給 你 連 接 到 實 體 Switch / Router 的 。而 PVE 裡 面 的 Virtual Machine,連 接 到 這 個 Linux Bridge,就 可 以 正 常 從 router 取 得 自 動 分 派 的 IP,就 跟 你 把 電 腦 插 到 實 體 Switch 上 一 樣 。

如 果 想 把 這 個 Linux Bridge 變 成 一 個 實 體 的 Switch,我 們 只 要 給 它 加 多 幾 張 網 卡 就 行 。例 如 我 的 主 板 內 建 了 4 張 網 卡 ( enp6s0 – enp9s0 ),我 只 要 把 它 們 都 加 入 到 同 一 個 linux bridge ( vmbr0 ),這 4 張 本 來 獨 立 運 作 的 網 卡 ,就 會 變 成 了 一 個 4-port 的 switch。

我 們 可 以 把 它 當 成 一 個 普 通 的 實 體 Switch 來 用 ,插 router,插 PC,插 第 二 台 NAS。所 有 的 client 都 可 以 正 確 地 從 router 獲 取 IP 地 址 ,也 可 以 正 常 上 網 。

那 用 這 個 Linux Bridge 有 無 downside 呢 ?會 有 一 點 。因 為 這 是 由 軟 件 模 擬 出 來 的 bridge,所 以 會 佔 用 一 定 的 系 統 資 源 ( CPU / RAM )。如 果 你 的 CPU 是 非 常 的 弱 小 ,那 就 可 能 會 造 成 系 統 長 期 高 負 載 ,甚 至 因 為 運 算 能 力 不 足 而 造 成 瓶 頸 。不 過 對 於 我 的 16 core 32 thread Xeon 來 說 ,這 當 然 只 是 小 菜 一 碟 。

其 實 PVE 也 內 建 了 比 較 新 和 功 能 更 多 的 Open vSwitch。不 過 如 果 是 單 純 作 為 一 個 最 普 通 的 unmanaged switch 來 用 的 話 ,用 Linux Bridge 就 足 夠 了 。

設 定 Linux Bridge

安 裝 好 新 的 2.5G Lan card 之 後 ( 2.5GbE 字 母 太 多 ,以 下 都 簡 稱 為 2.5G ),我 們 登 入 PVE 的 管 理 介 面 ,在 Host Machine 之 下 的 System > Network,就 會 見 到 多 了 新 的 網 卡 。不 過 所 有 網 卡 的 名 稱 都 會 變 了 ,最 好 再 lspci 一 次 看 看 新 的 狀 況 。

未加網卡之前加了 2.5G 網卡之後
enp6s0 ( Intel )
enp7s0 ( Intel )
enp8s0 ( Intel )
enp9s0 ( Intel )
enp7s0 ( Realtek 8125 )
enp8s0 ( Realtek 8125 )
enp9s0 ( Intel )
enp10s0 ( Intel )
enp11s0 ( Intel )
enp12s0 ( Intel )

然 後 選 擇 Linux Bridge ( vmbr0 ),按 一 下 edit。在 Bridge ports 輸 入 所 有 網 卡 的 Name,每 張 網 卡 名 之 間 要 用 一 個 space 隔 開 。完 成 就 按 OK。為 免 浪 費 ,除 了 新 的 2.5G 網 卡 之 外 ,我 當 然 也 把 主 板 上 原 來 的 4 個 1G 網 卡 都 加 入 了 Linux Bridge。

原 本 應 該 只 要 按 一 下 Apply Configuration,新 設 定 就 會 生 效 。不 過 你 應 該 會 見 到 一 個 error message。

這 是 因 為 PVE 只 是 預 裝 ifupdown,而 不 是 ifupdown2。原 來 的 ifupdown,你 需 要 reboot 一 次 ,改 變 才 會 生 效 。必 須 要 ifupdown2 才 具 備 即 時 變 更 設 定 的 能 力 。

https://pve.proxmox.com/wiki/Network_Configuration

Reboot 一 次 PVE,讓 網 絡 設 定 生 效 之 後 ,你 就 可 以 把 PVE 當 成 是 Switch 來 使 用 。

把 PC 和 Router 分 別 連 接 到 Linux Bridge。PC 當 然 插 2.5G Lan card,而 Router 只 有 1G 的 速 度 ,就 只 插 在 1G 的 on-board lan card。

立 即 去 speedtest.net 測 試 一 下 ,看 來 網 速 和 直 駁 router 完 全 沒 有 分 別 !

Linux Bridge 的 內 部 速 度

我 們 的 PVE 系 統 有 2 個 2.5G 網 口 ,可 以 連 接 2 個 2.5G 裝 置 。1 個 就 連 PC,1 個 就 連 另 一 個 Synology NAS。Router 是 沒 有 2.5G 的 ,所 以 用 回 主 板 上 1G 網 口 即 可 。其 他 電 腦 、Network Player 等 等 ,通 通 都 只 有 1G 網 卡 。

XPEnology 的 第 一 種 設 定 方 法 ,就 是 完 全 使 用 虛 擬 網 卡 。因 為 Synology DSM 的 限 制 ,我 們 只 能 使 用 Intel E1000。雖 然 這 個 虛 擬 網 卡 只 顯 示 了 1G 的 速 度 ,但 如 果 你 在 Linux Bridge 裡 面 iperf3 一 下 ,你 就 會 知 道 實 際 速 度 是 不 止 1G 的 。

例 如 上 圖 就 是 在 同 一 個 Linux Bridge 的 2 台 虛 擬 機 ( 使 用 VirtIO 虛 擬 網 卡 ) 的 iperf3 結 果 。速 度 可 以 高 達 22G!

即 使 是 使 用 虛 擬 的 Intel E1000,傳 輸 速 度 也 可 以 達 到 3G ( 一 個 虛 擬 機 是 VirtIO,一 個 是 Intel E1000 )。所 以 使 用 Linux Bridge 和 虛 擬 網 卡 ,應 該 不 會 成 為 2.5G 網 路 的 瓶 頸 ,至 少 在 理 論 上 不 會 。

XPEnology 的 實 際 速 度

首 先 ,我 先 用 「直 通 的 2.5G 網 卡 + 2.5G 實 體 switch」來 測 試 。這 是 完 全 沒 有 經 過 Linux Bridge 的 ,用 的 完 全 是 實 體 的 網 絡 設 備 ,應 該 是 可 以 達 致 最 快 的 速 度 。這 可 以 作 為 一 個 參 考 。

Windows 讀 和 寫 大 檔 案 ,都 可 以 去 到 284MB/s,速 度 十 分 穩 定 。

iperf3 兩 個 方 向 的 結 果 都 有 2.35Gb/s。

然 後 就 改 用 虛 擬 網 卡 和 Linux Bridge。第 一 個 測 試 環 境 就 是 使 用 Intel E1000 網 卡 ,這 是 安 裝 XPEnology 的 基 本 動 作 ,應 該 絕 大 部 分 人 都 是 選 E1000 網 卡 。

最 高 的 傳 輸 速 度 可 以 達 到 259MB/s,不 過 這 個 速 度 不 太 穩 定 ,有 時 速 度 會 下 降 到 低 於 200MB/s。這 個 結 果 比 我 想 像 的 要 差 一 點 ,絕 對 用 不 盡 2.5G,不 過 已 經 比 1G 網 速 快 得 多 。

第 二 個 測 試 就 改 用 VMware vmxnet3 網 卡 ,這 個 是 虛 擬 機 專 用 的 網 卡 ,在 我 的 幻 想 中 它 的 效 能 應 該 會 比 E1000 好 。

最 高 的 讀 寫 速 度 都 可 以 達 到 283MB/s,而 且 速 度 是 算 是 很 穩 定 ,多 次 來 回 傳 送 都 可 以 達 到 超 過 280MB/s 的 結 果 。

從 以 上 兩 個 測 試 ,可 以 見 到 用 Linux Bridge 的 實 際 效 能 ,其 實 已 經 非 常 接 近 使 用 實 體 的 2.5G switch,實 際 用 起 來 應 該 不 會 感 覺 到 差 別 。最 可 惜 的 是 我 的 XPEnology 還 不 能 使 用 Virtio 網 卡 ,不 然 的 話 速 度 和 穩 定 性 應 該 都 會 再 有 提 升 。

https://xpenology.com/forum/topic/28321-driver-extension-jun-103b104b-for-dsm623-for-918-3615xs-3617xs/

要 在 XPEnology 使 用 RTL8125 的 2.5G 網 卡 ,要 先 安 裝 XPEnology 的 driver extension。詳 細 步 驟 可 以 參 考 另 一 篇 文 章 《Xpenology (黑 群 暉 ) 進 階 :在 Proxmox VE 安 裝 DSM 6.2.3》最 尾 的 部 分 ——安 裝 額 外 的 Driver。

使用 2.5GbE Switch使用 Proxmox VE
2.5GbE switchQNAP QSW-1105-5T
HK$899
GRIS 2.5G 雙口網卡
¥288
XPEnology 網卡TP-LINK 2.5G PCI-E 網卡
¥89 ( 可直通 )
XPEnology 用虛擬網卡
$0
總數約 HK$1,000約 HK$328
有 5 個 2.5G 網口只有 2 個 2.5G 網口,想增加網口要再購買網卡

從 上 表 可 以 見 到 ,如 果 你 的 2.5G 裝 置 不 多 ,使 用 PVE 的 Linux Bridge 確 實 可 以 減 省 了 2.5G switch 的 價 錢 。如 果 你 的 host CPU 夠 快 ,對 系 統 也 不 會 造 成 任 何 負 擔 。當 然 前 題 是 你 已 經 擁 有 一 台 Hypervisor / Software router 的 電 腦 。如 果 為 了 省 一 個 2.5G switch 而 去 砌 一 台 電 腦 ,這 有 點 得 不 償 失 。

但 如 果 你 的 2.5G 裝 置 比 較 多 ,又 或 者 你 追 求 極 致 的 速 度 ,那 還 是 買 個 switch 比 較 實 際 。實 體 Switch 的 耐 用 程 度 和 可 靠 程 度 ,也 不 是 普 通 一 台 電 腦 可 以 比 擬 的 。用 實 體 switch 的 話 ,在 PVE 關 機 或 者 reboot 時 ,也 不 會 影 響 到 其 他 電 腦 上 網 。

很 明 顯 我 已 經 有 2.5G switch,為 什 麼 還 要 買 2 port 的 2.5G lan card 呢 ?就 只 為 了 做 個 linux bridge 的 測 試 ?當 然 不 是 。

我 的 接 駁 方 法 是 :一 個 2.5G 網 口 就 直 通 給 XPEnology,確 保 XPEnology 不 用 和 其 他 虛 擬 機 共 用 頻 寬 ;另 一 個 2.5G 網 口 就 留 給 PVE 做 linux bridge,給 所 有 其 他 虛 擬 機 共 用 。

其 他

看 到 這 裡 ,各 位 Synology 的 玩 家 一 定 在 想 ,究 竟 Synology NAS 能 不 能 當 成 一 個 2.5G Switch 來 用 呀 ?Well,短 答 案 是 不 行 。大 家 可 以 參 考 以 下 的 官 方 FAQ。

https://www.synology.com/en-uk/knowledgebase/DSM/tutorial/Network/Frequently_asked_questions_about_network_USB_ports

長 答 案 呢 ,雖 說 Synology 和 PVE 都 是 Linux,但 是 Synology 並 沒 有 像 PVE 那 樣 ,預 先 幫 你 安 裝 和 設 定 好 linux bridge。雖 然 後 來 推 出 的 Virtual Machine Manager 是 包 含 了 Open vSwitch,但 我 試 了 很 多 次 也 不 能 在 Virtual Switch 裡 面 看 到 新 加 的 網 卡 ( 即 LAN 3 )。

不 過 即 使 是 你 懂 得 設 定 linux bridge 也 沒 用 ( 可 以 自 己 寫 個 start-up script ),因 為 要 在 Synology 安 裝 足 夠 數 量 的 2.5G 網 卡 來 做 一 個 switch 也 不 是 一 件 容 易 的 事 。加 上 Synology 相 對 很 慢 的 CPU,實 際 效 能 也 令 人 成 疑 。

ctleung張先生,男性,肖龍。
職業:I.T. Consultant
簡介:不好好讀書;七尺差五寸,手長過膝,雙耳垂肩;性寬和,寡言語,喜怒不形於色。據說少時曾斬白蛇於鳳凰山下……

This entry was posted in Computer & Network and tagged , , , , , , , , , , . Bookmark the permalink.

2 Responses to 為 Proxmox VE 黑群輝 XPEnology 加裝 2.5GbE 網卡

  1. Lawrence says:

    想安裝一個軟路由在Proxmox VE, 有什麼好介紹?
    主要是想做網頁過濾, 上網時間管理。 最難選擇的, 是想有一個軟件,可以有黑名單目錄自動下載, 避免自行更新的麻煩。

    電腦: 优易UE-Y14-i5 16G RAM (
    安裝了Proxmox VE 6.3, OpenMediaVault。 稍後會用Docker跑一些網頁/数据处理之類的程式。 最想搞AI自動功能。

Leave a Reply to Lawrence Cancel reply

Your email address will not be published. Required fields are marked *