Xpenology (黑群暉) 進階:在 Proxmox VE 安裝 DSM 6.2.3

話 說 早 前 在 淘 寶 買 了 一 個 8 bay 的 黑 群 暉 ,效 能 超 極 強 勁 ,單 單 裝 個 Synology DSM 會 是 非 常 浪 費 。於 是 就 把 心 一 橫 ,決 定 裝 個 Hypervisor,把 Synology DSM 虛 擬 化 之 餘 ,也 可 以 裝 多 十 個 八 個 虛 擬 機 。

优 易 UE-U8D黑 群 辉 NAS主 机

我 入 手 的 這 台 優 易 科 技 NAS-U8D 有 8 個 bay,使 用 16 核 32 線 程 的 Xeon D-1581,有 32GB 的 ECC registered DDR3 RAM。NAS-U8D 機 身 只 有 315 x 207 x 276 mm ( W x H x D ) 的 大 小 ,相 比 起 Synology 的 8 bay ( DS1819+ / 343 x 166 x 246 mm ),其 實 也 沒 差 多 少 。

優易 NAS-U8DSynology DS1821+Synology D1621xs+
處理器Intel Xeon D-1581AMD Ryzen V1500BIntel Xeon D-1527
處理器時脈16 core 32 thread
1.8 GHz / 2.4 GHz Turbo
4 core / 8 thread
2.2 GHz
4 core / 8 thread
2.2 GHz / 2.7 GHz Turbo
預裝記憶體16GB DDR3L ECC
Desktop Ram
4GB DDR4 ECC
Notebook Ram
8GB DDR4 ECC
Notebook Ram
記憶體容
量( 最大 )
64GB ( 16 x 4 )32GB ( 16 x 2 )32GB ( 16 x 2 )
磁碟槽數量886
網路卡1GbE x 41GbE x 41GbE x 2
10GbE x 1
W x H x D315 x 207 x 276 mm343 x 166 x 243 mm282 x 166 x 243 mm
電源Seasonic
350W 80+ 電源
250 W 電源250 W 電源
¥4,600
( 加 16G Ram +¥180 )
HK$7,449HK$13,870

NAS-U8D 使 用 的 是 一 片 內 建 了 CPU 的 server board。主 板 上 有 4 個 內 建 的 1GbE Lan 接 口 ,有 1 個 SATA 接 口 ,有 1 個 M.2 接 口 ,有 3 個 SFF-8087 接 口 ,每 個 SFF-8087 可 以 接 駁 4 個 SATA 硬 碟 。所 以 這 個 主 板 一 共 可 以 接 14 個 硬 碟 ( 1 個 M.2 + 13 個 SATA )。

因 為 是 用 來 做 NAS,所 以 大 家 最 好 去 主 動 了 解 一 下 主 板 上 的 SATA 接 口 。這 主 板 用 的 Intel C220 系 列 的 chipset,提 供 6 個 SATA 接 口 ( 包 括 1 個 主 板 上 的 SATA、1 個 M.2 上 的 SATA 和 1 個 SFF-8087 )。另 外 還 有 2 個 Marvell 9215 晶 片 ,每 個 提 供 4 個 SATA 接 口 ( 各 使 用 一 個 SFF-8087  )。了 解 這 些 對 之 後 在 Hypervisor 做 硬 件 直 通 會 清 楚 一 些 。

如 果 還 是 唔 夠 用 的 話 ,主 板 也 有 兩 條 PCI-E 3.0 x8 插 槽 ,可 以 再 增 加 額 外 的 Raid Card 或 者 10GbE 網 卡 。USB 2.0 和 3.0 都 各 有 幾 個 ,應 該 夠 用 。顯 示 卡 方 面 就 是 用 BMC 晶 片 ( Aspeed AST2400 ) 的 顯 示 功 能 ,只 有 2D graphic 和 VGA 輸 出 。

機 箱 內 一 共 有 4 個 風 扇 。一 個 是 CPU 風 扇 ( 7015 風 扇 )。兩 個 12cm 風 扇 在 背 面 ,為 下 層 的 8 個 硬 碟 槽 散 熱 。還 有 一 個 在 側 面 的 7015 風 扇 ,為 上 層 的 主 板 位 置 散 熱 。風 扇 的 聲 音 很 小 ,在 1-2 尺 之 外 是 完 全 聽 不 到 的 ( 但 硬 碟 讀 寫 的 聲 音 當 然 還 是 聽 得 到 )。

我 在 室 溫 30°C 左 右 的 環 境 ,由 Synology copy 了 幾 個 TB 的 data 去 NAS-U8D ( 持 續 十 幾 個 小 時 ),CPU 溫 度 約 為 44°C,硬 碟 溫 度 是 40°C – 43°C 不 等 。跟 synology 相 比 ,CPU 溫 度 是 低 10°C 左 右 ,硬 碟 就 是 稍 低 1 – 2°C 的 樣 子 。功 耗 和 效 能 都 強 大 很 多 的 CPU,溫 度 反 而 比 較 低 ,我 想 是 因 為 Synology 的 CPU 是 無 風 扇 的 。而 硬 碟 因 為 牌 子 型 號 不 一 樣 ,本 來 就 不 能 直 接 拿 來 比 較 。

在 散 熱 方 面 ,NAS-U8D 絕 對 不 會 比 Synology 差 ,像 我 這 樣 沒 有 冷 氣 長 開 也 應 該 不 會 有 過 熱 的 問 題 。

如 果 你 覺 得 這 個 NAS-U8D 的 配 置 太 強 ( 或 太 差 ),你 也 可 以 考 慮 獨 立 購 買 這 個 機 箱 ( 萬 由 810A ),再 配 上 自 己 的 硬 件 。機 箱 本 身 不 算 便 宜 ,但 以 8 個 bay 位 和 這 個 大 小 來 算 ,市 面 上 也 沒 有 幾 個 同 級 的 對 手 。

XPEnology Forum

想 使 用 XPEnology 的 話 ,第 一 樣 要 做 的 是 上 xpenology.com 開 個 user account。當 然 網 上 也 有 很 多 教 學 ,google 有 很 多 ,youtube 有 很 多 ,國 內 網 站 也 有 很 多 。但 如 果 要 說 資 料 最 新 最 齊 全 最 準 確 ,還 是 不 得 不 上 XPEnology 的 forum 爬 文 。

XPEnology Forum

Synology 的 DSM 更 新 得 頗 快 ,所 以 XPEnology 也 會 隨 著 更 新 。所 以 看 教 學 的 時 候 一 定 一 定 要 睇 貼 文 的 時 間 。如 果 今 天 2020 年 你 還 在 跟 別 人 2018 年 的 步 驟 ,那 當 然 是 失 敗 居 多 。而 且 XPEnology 也 是 隨 著 時 間 完 善 ,你 還 去 用 舊 版 本 的 話 ,就 會 徒 增 許 多 困 難 。

XPEnology Latest Warnings

XPEnology 另 一 個 非 常 貼 心 的 功 能 ,就 是 在 登 入 時 會 顯 示 一 些 最 latest 的 warning,最 大 程 度 保 障 你 唔 會 做 錯 事 ( 即 是 未 爬 文 就 自 己 亂 升 級 )。我 使 用 XPEnology 時 遇 到 的 問 題 ,基 本 上 都 是 在 XPEnology 裡 面 找 到 解 決 方 法 的 。

https://xpenology.com/forum/topic/14127-guide-to-native-drivers-dsm-621-on-ds918/

XPEnology forum 包 含 極 大 量 的 有 用 資 訊 ,例 如 上 面 的 這 個 post,就 列 出 了 Synology DSM 所 支 援 的 硬 件 ( Excel 附 件 )。對 想 要 自 己 砌 一 部 XPEnology 的 朋 友 來 說 ,這 真 是 可 遇 不 可 求 的 資 訊 。

本 文 貼 出 來 的 XPEnology 的 教 學 post 連 結 ,就 全 都 是 來 自 XPEnology forum,大 家 可 以 放 心 去 參 考 。

Proxmox VE

要 將   XPEnology 當 成 VM ( Virtual Machine ) 來 跑 ,安 裝 和 設 定 的 方 法 有 千 千 萬 萬 種 ,沒 有 所 謂 對 錯 ( 而 直 接 安 裝 的 話 ,就 會 叫 bare metal )。網 上 最 多 人 使 用 的 ,應 該 是 VMware ESXiProxmox VE

ESXi 是 有 免 費 版 本 的 ,但 它 不 是 開 源 的 。我 個 人 還 是 比 較 喜 歡 free and open source 的 Proxmox VE。其 實 我 不 否 認 ,ESXi 是 專 業 一 點 ,穩 定 一 點 的 方 案 ,大 概 比 較 適 合 production use。不 過 反 正 XPEnology 也 不 是 什 麼 正 規 用 法 ,真 要 rock solid 的 話 還 是 買 一 台 Synology 吧 。

Proxmox ISO Installer

安 裝 Proxmox VE 其 實 非 常 簡 單 ,先 去 官 網 的 下 載 頁 面 ,下 載 最 新 版 本 的 ISO Installer,我 這 次 使 用 的 是 Proxmox VE 6.2 版 本 。下 載 回 來 之 後 ,就 可 以 用 任 何 USB 燒 錄 工 具 ( Rufus / Etcher ) 製 作 一 個 可 以 boot 機 的 USB 手 指 。

安 裝 Proxmox VE 時 ,電 腦 要 接 上 顯 示 器 和 keyboard。手 指 插 入 電 腦 ,進 入 bios,選 擇 用 該 USB 來 boot 機 。然 後 跟 著 畫 面 一 步 一 步 ( 就 是 next next next ) 去 安 裝 就 可 以 了 。中 間 要 設 定 的 不 外 乎 是 安 裝 在 那 個 硬 碟 、國 家 地 區 、管 理 員 密 碼 、IP 地 址 之 類 的 東 西 。

完 成 安 裝 ,重 啟 電 腦 之 後 ,就 會 見 到 以 上 的 畫 面 ,提 示 你 使 用 瀏 覽 器 來 管 理 這 台 Proxmox VE server 的 網 址 。Proxmox VE 是 使 用 瀏 覽 器 來 遙 控 管 理 的 ( 就 跟 Synology 一 樣 ),所 以 現 在 就 可 以 拔 除 顯 示 器 和 keyboard 了 ( 要 保 留 lan 線 )。

Proxmox VE 是 完 全 免 費 的 ,但 不 代 表 Proxmox 公 司 不 會 賺 錢 。Proxmox 售 賣 的 叫 Support Subscriptions。沒 有 subscription 的 話 ,PVE 就 會 彈 出 一 些 提 示 ( 提 示 你 去 購 買 ),更 新 方 面 也 不 能 使 用 官 方 的 Proxmox VE Enterprise Repository ( 會 出 現 error )。

你 可 以 修 改 PVE 隱 藏 那 些 提 示 ,更 新 方 面 也 可 以 自 行 改 用 Proxmox VE No-Subscription Repository。不 過 就 算 唔 修 改 那 些 提 示 和 error 也 不 算 很 煩 人 。Subscription 最 便 宜 的 plan ( COMMUNITY  ) 只 要 €85 歐 元 一 年 ,其 實 一 點 也 不 貴 。

硬 碟 的 直 通

Proxmox VE 跟 絕 大 部 分 的 其 他 OS 一 樣 ,本 身 是 要 佔 據 一 隻 硬 碟 的 。而 這 個 NAS-U8D 是 作 為 NAS 用 的 ,當 然 要 把 那 8 個 熱 插 拔 的 硬 碟 槽 都 留 給 XPEnology 來 使 用 ,所 以 我 們 要 把 Proxmox VE 安 裝 在 其 他 的 硬 碟 上 。

NAS-U8D 在 這 方 面 提 供 了 2 種 選 擇 。第 一 個 是 它 的 機 箱 內 有 一 個 2.5 寸 硬 碟 的 安 裝 位 置 ,主 板 上 也 預 留 了 一 個 SATA 插 口 。第 二 個 選 擇 就 是 使 用 主 板 上 的 M.2 插 槽 。不 過 主 板 上 的 SATA 和 其 中 一 個 SFF-8087 是 共 用 Intel C220 晶 片 的 。這 在 以 後 建 立 XPEnology 虛 擬 機 的 時 候 會 有 一 點 限 制 。

在 Proxmox VE,硬 碟 直 通 有 兩 種 做 法 ,一 是 LUN passthrough,另 一 種 是 PCI-E passthrough。LUN 就 是 logical unit number,指 的 是 Proxmox VE 管 理 之 下 的 一 個 logical disk。PCI-E passthrough 就 會 把 一 整 個 PCI-E 裝 置 都 直 通 。

LUN passthrough 始 終 是 多 了 一 層 ,當 然 及 不 上 PCI-E passthrough 好 。據 說 ,LUN passthrough 會 缺 失 了 s.m.a.r.t 的 資 訊 ,也 有 機 會 影 響 到 DSM 裡 面 的 熱 插 拔 。而 如 果 是 純 粹 講 NAS 的 網 絡 傳 輸 速 度 的 話 ,其 實 兩 者 是 沒 有 分 別 ,因 為 瓶 頸 主 要 是 在 1000M 網 絡 上 。

PCI-E passthrough,顧 名 思 義 ,是 要 把 整 個 PCI-E 裝 置 都 直 通 的 ,而 直 通 了 去 特 定 VM 的 裝 置 ,Proxmox VE 就 會 看 不 到 了 。所 以 如 果 把 Proxmox VE 安 裝 到 主 板 上 的 SATA 插 口 的 話 ,那 C220 晶 片 就 不 能 直 通 給 虛 擬 機 ,於 是 熱 插 拔 的 硬 碟 槽 ,就 不 能 插 在 C220 晶 片 的 SFF-8087 接 口 。

情況一情況二
開機碟M.2 NVMeSATA ( Intel C220 )
硬碟槽
PCI-E 直通
Intel C220
Marvell 9215
Marvell 9215
Marvell 9215
Marvell 9215
用 NVMe Boot 機的話,
就 3 個 SATA controller
都可以直通
用 Intel C220 Boot 機的
話,就只能直通 2 個
Marvell 9215

我 手 上 沒 有 SATA 的 SSD,既 然 要 買 新 ,今 時 今 日 就 當 然 買 NVMe 的 SSD ( 淘 了 一 個 便 宜 的 PM981a 1TB )。所 以 我 是 用 M.2 NVMe 來 安 裝 Proxmox VE 的 ,於 是 就 可 以 把 Intel C220 直 通 給 XPEnology。如 果 你 是 用 Intel C220 的 SATA 來 安 裝 Proxmox VE,就 要 把 硬 碟 槽 都 接 到 2 個 Marvell 9215 晶 片 上 。

如 果 你 擔 心 把 Proxmox VE 錯 誤 地 安 裝 在 硬 碟 槽 的 硬 碟 上 ,我 會 建 議 你 在 安 裝 Proxmox VE 的 時 候 只 插 上 一 顆 硬 碟 ,而 不 要 在 硬 碟 槽 上 插 入 任 何 硬 碟 ( 我 的 情 況 就 是 只 插 上 M.2 的 NVMe SSD )。反 正 硬 碟 槽 都 是 熱 插 拔 的 ( 主 板 當 然 也 要 支 持 熱 插 拔 ),裝 好 Proxmox VE 之 後 才 插 上 也 不 遲 。

要 在 Proxmox VE 實 現 PCI-E 直 通 ,要 先 enable IOMMU。這 個 操 作 也 很 簡 單 ,先 登 入 Proxmox VE 的 管 理 介 面 ,選 擇 自 己 的 Host Machine,再 打 開 Shell。

nano /etc/default/grub

在 shell 輸 入 以 上 命 令 ,按 enter。命 令 的 意 思 是 用 nano 來 edit 那 個 grub 文 件 。

然 後 我 們 找 到 GRUB_CMDLINE_LINUX_DEFAULT 的 那 一 行 ( 看 上 圖 ),自 行 加 入 intel_iommu=on 這 個 參 數 ,然 後 保 存 文 件 ( 按 Ctrl-X 離 開 ,會 問 你 save 唔 save,答 Y,然 後 按 Enter 確 認 檔 名 )。

update-grub

保 存 文 件 之 後 就 輸 入 update-grub 命 令 ,按 Enter。之 後 重 啟 一 次 電 腦 就 完 成 設 定 了 。

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

如 果 有 唔 明 就 讀 一 讀 上 面 的 官 方 Documentation。文 中 也 有 說 要 加 入 一 些 required modules ( 要 修 改 /etc/modules 文 件 ),不 過 我 沒 有 修 改 也 沒 問 題 。這 應 該 是 給 舊 版 用 的 ,文 中 也 有 提 及 在 新 的 kernel 已 經 加 入 了 這 些 modules。

除 了 硬 碟 應 該 要 用 PCI-E passthrough 之 外 ,USB 裝 置 其 實 一 也 樣 。在 PVE 你 可 以 逐 個 USB device 來 passthrough,又 或 者 用 PCI-E passthrough 直 通 整 個 USB host controller。

如 果 沒 有 用 PCI-E passthrough,一 拔 出 USB 裝 置 XPEnology 就 會 hang 機 。連 USB 的 hot plug 功 能 都 會 失 效 。而 且 我 的 USB DAC 在 USB passthrough 時 不 能 正 常 運 作 ( 係 ,我 很 老 土 ,十 多 年 以 來 還 是 用 Audio Station 聽 歌 ),一 定 要 用 PCI-E passthrough 才 能 正 常 運 作 。

找 出 硬 件 的 ID / path

在 Proxmox VE 裡 面 ,要 直 通 硬 件 的 話 ,就 要 找 到 相 關 硬 件 的 ID / path。這 裡 給 大 家 示 範 幾 個 常 用 的 linux 命 令 。

lspci

在 host machine,打 開 shell,輸 入 lspci,可 以 列 出 所 有 PCI 裝 置 。

從 上 圖 的 結 果 ,我 就 可 以 找 到 SATA、network card 等 等 設 備 ,以 及 其 對 應 的 ID。我 用 這 個 命 令 就 可 以 查 到 NAS-U8D 的 主 板 上 用 的 SATA 晶 片 是 Intel C220 系 列 ( ID: 00:1f.2 ),和 Marvell 9215 ( ID: 01:00.0 和 02:00.0 )。

想 要 直 通 其 他 設 備 的 話 ( 例 如 lan card ),也 可 以 先 在 這 裡 記 低 其 ID。

dmesg | grep -i sata

Linux 在 開 機 的 時 間 會 記 錄 低 很 多 訊 息 ,dmesg 命 令 就 是 用 來 查 看 那 些 開 機 訊 息 的 。開 機 訊 息 是 十 分 十 分 多 的 ,我 們 可 以 再 用 grep 命 令 來 找 出 符 合 條 件 的 訊 息 。上 面 整 句 命 令 就 是 只 列 出 sata 相 關 的 開 機 訊 息 。

從 上 面 的 結 果 可 以 看 到 系 統 的 所 有 SATA port ( 由 ata1 – ata14 )。也 顯 示 了 每 個 SATA port 是 屬 於 那 一 個 ID 的 SATA controller。例 如 ata1 – ata6 這 6 個 port 就 是 屬 於 00:1f.2 這 個 裝 置 。

這 裡 也 顯 了 各 個 SATA port 的 理 論 速 度 ( 都 是 6 Gbps ),如 果 你 的 主 板 的 SATA port 有 不 同 速 度 ,你 可 以 根 據 這 個 結 果 優 先 使 用 較 快 的 port。

dmesg | grep -i sata | grep 'link up'

如 果 想 查 找 有 插 硬 碟 的 的 port,可 以 輸 入 以 上 的 命 令 。

上 圖 的 結 果 ,就 是 主 板 只 接 了 4 隻 硬 碟 ,分 別 接 了 在 ata3、ata4、ata9 和 ata10。

dmesg | grep ata3

那 如 果 想 知 道 某 個 port 是 接 駁 了 那 一 個 硬 碟 ,就 可 以 grep 那 個 port number。上 一 行 命 令 就 是 只 看 ata3 的 訊 息 。

從 上 圖 的 結 果 ,可 以 看 到 ata3 相 關 的 所 有 資 訊 ,包 括 硬 碟 的 牌 子 和 型 號 。

ls -l /dev/disk/by-path/

ls 可 以 算 是 linux 最 基 本 的 命 令 ,意 思 是 列 出 ( list ) 某 個 目 錄 的 所 有 檔 案 ( 相 當 於 Dos 的 dir )。-l 參 數 就 是 列 出 詳 細 資 料 的 意 思 。在 Linux,/dev 目 錄 包 含 了 所 有 的 裝 置 ,子 目 錄 disk 就 是 硬 碟 ,然 後 有 不 同 排 列 的 方 法 ,by-path 的 意 思 就 是 按 照 硬 件 連 接 的 方 法 來 排 列 。

從 上 圖 的 結 果 ,可 以 看 到 系 統 連 接 了 5 個 硬 碟 ( 4 個 sata 和 1 個 NVMe )。以 第 一 個 為 例 ,它 連 接 了 在 PCI 裝 置 00:1f.2 的 sata port 3。而 第 三 個 硬 碟 ,就 連 接 了 在 01:00.0 之 下 的 sata port 3。雖 說 兩 者 都 是 sata port 3,但 兩 者 的 sata controller 並 不 是 同 一 個 ( 因 為 pci 的 ID 不 一 樣 )。

特 別 需 要 注 意 的 ,是 已 經 直 通 了 的 裝 置 ,在 host machine 是 看 不 到 的 。上 圖 的 結 果 ,就 是 PCI-E 直 通 之 後 再 次 執 行 同 一 個 命 令 。結 果 就 只 剩 下 M.2 的 NVMe SSD 了 。

ls -l /dev/disk/by-id/

如 果 你 是 想 使 用 LUN passthrough 的 話 ,就 會 用 到 上 面 的 命 令 ,可 以 找 出 每 個 LUN 的 ID。例 如 你 的 主 板 只 有 一 個 SATA controller,又 沒 有 M.2 slot,那 你 安 裝 XPEnology 就 不 能 用 PCI passthrough,而 必 須 要 用 LUN passthrough。

選 擇 XPEnology Loader

Synology 的 OS 叫 做 DSM,是 一 個 經 由 Synology 大 量 修 改 過 的 Linux 系 統 。XPEnology 其 實 並 不 是 一 個 修 改 過 的 DSM,而 只 是 一 個 bootloader。有 了 這 個 bootloader,我 們 就 可 以 把 Synology 的 DSM 安 裝 在 其 他 電 腦 上 。

XPEnology 曾 經 有 很 多 代 ,舊 的 版 本 大 家 就 真 的 不 要 用 了 。現 在 最 新 的 loader 有 3 個 ,分 別 是 :

1. Jun’s Loader v1.04b DS918+
2. Jun’s Loader v1.03b DS3617xs
3. Jun’s Loader v1.03b DS3615xs

3 個 版 本 的 loader 其 實 是 模 擬 3 個 不 同 型 號 的 Synology,分 別 是 DS918+、DS3617xs 和 DS3615xs。那 要 怎 麼 選 呢 ?大 家 可 以 先 看 看 大 神 flyride 在 XPEnology forum 的 一 篇 貼 文 ( 貼 文 的 原 始 日 期 有 點 舊 ,但 內 容 一 直 有 更 新 ,現 時 的 最 後 更 新 是 2020-08-11 )。

https://xpenology.com/forum/topic/13333-tutorialreference-6x-loaders-and-platforms/

很 複 雜 ?其 實 一 點 都 不 複 雜 。基 本 上 就 是 裝 Jun’s Loader v1.04b DS918+,加 上 DSM 6.2.3 就 好 ( 6.2.3 是 現 時 最 新 版 本 )!

DS918+ 可 以 使 用 的 DSM 雖 然 和 另 外 兩 者 是 同 一 個 版 本 號 碼 ,但 從 文 中 的 table 可 以 見 到 ,DS918+ 用 的 Kernel 是 比 較 新 的 ,所 以 也 會 支 援 一 些 比 較 新 的 功 能 ( 例 如 NVMe cache )。

我 購 買 的 NAS-U8D 的 CPU 其 實 有 16 cores 32 threads。如 果 想 用 盡 CPU 資 源 ,其 實 安 裝 DS3617xs 會 好 一 點 ( 8 threads VS 16 threads )。但 是 因 為 用 了 Provmox VE,DSM 就 不 再 需 要 跑 VM 了 ,所 以 分 配 過 多 CPU 資 源 給 DSM 也 是 浪 費 。所 以 我 還 是 會 選 擇 較 新 的 DS918+。

還 有 一 點 值 得 留 意 的 是 ,雖 說 這 個 loader 寫 明 是 支 援 DSM 6.2,但 根 據 前 人 的 經 驗 ,DSM 6.2.1 和 6.2.2 都 不 建 議 安 裝 。而 6.2.0 和 6.2.3 就 沒 有 問 題 。

在 Proxmox VE 上 安 裝 XPEnology

先 在 Proxmox VE 建 立 一 台 虛 擬 機 ( Create VM )。

在 第 一 頁 ( General ),設 定 你 喜 愛 的 VM ID 和 Name。VM ID 要 先 記 低 ,以 後 會 有 用 ,我 這 裡 示 範 用 的 就 是 101。然 後 按 next。

第 二 頁 ( OS ),我 們 要 選 Do not use any media。因 為 我 們 不 需 要 使 用 裝 機 碟 。然 後 按 next。

第 三 頁 ( System ) 就 用 預 設 值 好 了 。然 後 按 next。

第 四 頁 ( Hard Disk ) 也 是 用 預 設 值 就 好 。我 們 的 Xpenology 其 實 是 不 需 要 這 個 Hard Disk 的 ,等 一 下 會 把 它 刪 除 。然 後 按 next。

第 五 頁 ( CPU )。我 設 定 使 用 8 個 virtual cores,因 為 DS918+ 最 多 只 支 援 8 個 threads。然 後 按 next。

第 六 頁 ( Memory )。我 設 定 成 4096,即 是 4GB Ram。如 果 純 粹 是 用 作 NAS,是 不 需 要 太 多 RAM 的 。然 後 按 next。

第 七 頁 ( Network )。這 裡 我 使 用 了 Proxmox VE 的 Virtual Bridge,Model 要 改 成 Intel E1000,因 為 DSM 裡 面 只 支 援 這 個 型 號 的 虛 擬 網 卡 。

NAS-U8D 的 主 板 有 4 個 網 卡 ,所 以 我 稍 後 也 會 直 通 一 張 網 卡 給 XPEnology 使 用 。有 了 自 己 的 獨 立 網 卡 ,理 論 上 XPEnology 是 不 需 要 使 用 Virtual Bridge 的 。但 是 我 也 打 算 把 XPEnology 的 空 間 給 Proxmox VE 使 用 ( 就 是 在 Proxmox VE 上 mount 一 個 XPEnology 的 share ),這 時 如 果 使 用 virtual bridge 來 連 線 的 話 ,速 度 和 穩 定 性 都 會 好 很 多 。

第 八 頁 ( confirm )。最 後 看 一 下 配 置 沒 有 問 題 的 話 ,就 按 Finish。

在 左 手 邊 選 取 我 們 新 建 立 的 虛 擬 機 ,然 後 選 Hardware。

選 取 CD-Rom,然 後 按 Remove。Synology 是 沒 有 CD-Rom 的 ,我 們 也 不 會 用 到 。

再 選 取 Hard Disk ( 現 時 只 會 得 一 個 ),先 按 一 下 Detach,確 認 。然 後 再 Remove。

刪 除 完 多 餘 的 設 備 ,然 後 我 們 要 為 虛 擬 機 添 加 boot 機 碟 ,用 的 就 是 前 面 提 到 過 的 XPEnology 的 loader。

先 到 這 裡 下 載 最 新 的 loader,我 這 裡 用 的 是 Jun’s Loader v1.04b DS918+ ( synoboot-ds918.zip )。下 載 回 來 解 壓 就 可 以 得 到 synoboot.img。

然 後 到 左 邊 選 擇 儲 存 空 間 local,再 選 content,然 後 按 一 下 Uplaod。選 擇 剛 才 解 壓 好 的 synoboot.img。上 傳 成 功 的 話 就 會 見 到 content 裡 面 見 到 它 。

然 後 我 們 打 開 host machine 的 shell。

cd /var/lib/vz/template/iso

輸 入 以 上 的 命 令 ,以 變 換 到 剛 才 上 傳 synoboot.img 的 目 錄 。


進 入 目 錄 之 後 ,可 以 使 用 ls -l 命 令 來 檢 查 一 下 檔 案 是 否 存 在 。

qm importdisk 101 synoboot.img local-lvm

然 後 我 們 用 qm importdisk 命 令 ,來 把 synoboot.img 檔 案 導 入 到 我 們 的 虛 擬 機 中 。命 令 中 的 101 就 是 虛 擬 機 的 VM ID,這 個 要 按 你 自 己 的 ID 來 修 改 。

再 回 到 我 們 的 虛 擬 機 內 面 的 hardware,會 見 到 多 了 一 個 Unused Disk 0。選 擇 它 ,再 按 Edit ( double click 它 也 可 以 )。

我 們 要 給 予 它 一 個 連 接 埠 ,這 裡 我 就 用 了 SATA 0。完 成 之 後 按 Add。

要 令 這 個 Hard Disk 用 來 boot 機 ,我 們 去 到 Options 頁 ,選 擇 Boot Order,按 Edit。

把 第 一 個 選 項 ,改 成 Disk ‘sata0’。

再 次 回 到 Hardware 頁 ,以 添 加 直 通 的 PCI-E 裝 置 。按 Add,再 選 擇 PCI Device。

在 Device 的 下 拉 選 單 中 ,根 據 正 確 的 ID,選 取 你 要 直 通 的 裝 置 。然 後 按 Add。

在 這 個 示 範 中 ,我 選 擇 了 Intel C220 SATA controller,Marvell 9125 SATA controller 和 主 板 上 的 第 二 個 GbE network card。

從 上 圖 中 可 以 見 到 ,不 是 每 一 個 裝 置 都 會 有 詳 盡 的 描 述 的 ,又 或 者 同 一 個 系 統 會 有 許 多 同 名 同 姓 的 裝 置 。例 如 那 個 Marvell 9125,就 只 有 公 司 名 ,其 它 一 遍 空 白 ,完 全 唔 會 知 佢 原 來 係 SATA controller。而 且 它 還 有 2 個 ,如 果 要 分 別 直 通 給 不 同 的 虛 擬 機 ,都 真 係 唔 知 邊 個 打 邊 個 。所 以 在 之 前 我 就 教 了 大 家 用 linux command 獲 取 不 同 裝 置 的 PCI ID,也 可 以 看 到 不 同 裝 置 的 連 接 情 況 。

所 有 東 西 都 設 定 好 之 後 ,就 可 以 按 一 下 Start 來 開 機 。

成 功 開 機 的 話 ,就 會 在 Console 見 到 以 上 的 畫 面 。

然 後 ,我 們 就 可 以 像 真 正 的 Synology 一 樣 ,用 browser 來 進 行 DSM 的 安 裝 和 設 定 。

使 用 Synology Web Assistant,又 或 者 裝 個 Synology Assistant,就 可 以 輕 鬆 在 網 絡 上 找 到 一 台 新 的 DS918+。

我 是 使 用 安 裝 介 面 的 下 載 功 能 ,直 接 下 載 最 新 版 的 DSM 來 安 裝 ( DSM 6.2.3-25426 )。這 是 沒 有 問 題 的 ,並 不 用 刻 意 去 找 一 些 舊 版 DSM 來 手 動 安 裝 。( 更 新 :DSM 6.2.4 出 來 了 ,但 暫 時 應 該 不 能 用 在 Xpenology,所 以 大 家 還 是 乖 乖 手 動 下 載 6.2.3 來 安 裝 吧 ! )

在 安 裝 DSM 之 前 ,記 得 要 插 入 硬 碟 ( 至 少 要 一 隻 ),如 果 唔 係 就 會 出 現 「格 式 化 錯 誤 」。因 為 DSM 其 實 是 安 裝 在 Synology 的 每 一 隻 硬 碟 上 面 。

安 裝 完 成 ,登 入 DSM 之 後 ,就 是 設 置 Storage pool,Volume,Share。然 後 去 Package Center 安 裝 想 要 用 的 Packages。設 定 user 和 permission。這 些 都 和 真 正 的 Synology 沒 有 任 何 分 別 。

XPEnology 是 不 能 登 入 Synology Account 的 ( 會 顯 示 錯 誤 ),所 以 QuickConnect 和 Synology DDNS 都 不 能 用 。對 於 我 這 是 小 問 題 ,因 為 我 都 是 VPN 回 家 裡 的 router,才 用 private IP 來 連 線 的 。這 樣 什 麼 設 定 都 不 用 做 ,速 度 也 最 快 。

據 說 ,也 好 像 有 一 些 問 題 是 關 於 video station 和 moments 的 縮 圖 和 轉 碼 ,但 剛 好 兩 者 我 都 沒 有 使 用 。

如 果 只 是 一 般 使 用 ,不 打 算 升 級 DSM 的 話 ( XPEnology 本 來 就 不 建 議 自 動 升 級 ),到 這 裡 基 本 上 就 是 已 經 安 裝 完 成 ,可 以 正 常 使 用 了 。

XPEnology 其 他 修 補

接 下 來 就 是 一 些 XPEnology 的 修 補 。做 了 會 有 一 些 好 處 ,但 不 做 也 應 該 問 題 不 大 。

首 先 ,第 一 個 問 題 是 虛 擬 機 才 有 的 ,詳 情 參 閱 以 下 文 章 。

https://xpenology.com/forum/topic/28183-running-623-on-esxi-synoboot-is-broken-fix-available/

這 個 問 題 產 生 的 結 果 ,就 是 令 到 DSM 開 機 之 後 ,見 不 到 loader ( 找 不 到 /dev/synoboot1 )。 這 個 問 題 在 平 時 是 沒 有 影 響 的 。

但 在 DSM 升 級 的 時 候 ( 不 管 自 動 或 者 手 動 升 級 ),有 時 是 會 需 要 修 改 loader 裡 面 的 內 容 。這 就 造 成 某 些 升 級 會 失 敗 。

要 修 復 這 個 問 題 ,我 們 就 要 在 DSM 開 機 的 時 間 執 行 一 個 小 小 的 script。這 個 script 在 上 文 中 有 得 下 載 。

文 中 也 有 十 分 詳 細 ,step by step 的 安 裝 方 法 ( 在 第 一 個 reply ),我 就 不 在 此 贅 述 了 。

安 裝 時 要 使 用 SSH,可 以 在 Terminal & SNMP 裡 面 打 開 。而 PuTTY 就 可 以 在 PuTTY 官 網 下 載 。

完 成 修 改 之 後 ,重 啟 一 次 DSM。

再 次 SSH 登 入 ,再 次 用 文 中 的 方 法 檢 查 一 次 ( ls /dev/synoboot* ),得 出 正 確 的 結 果 。

我 自 動 安 裝 的 DSM 是 6.2.3-25426,但 其 實 在 稍 早 之 前 ,Synology 已 經 推 出 了 DSM 6.2.3-25426 Update 2。如 果 未 安 裝 這 個 fix,是 不 能 升 級 去 Update 2 的 。

既 然 安 裝 好 這 個 fix,就 去 測 試 一 下 是 不 是 真 的 可 以 升 級 吧 。結 果 當 然 是 沒 有 問 題 。

但 這 個 升 級 沒 問 題 ,並 不 等 於 以 後 所 有 升 級 都 會 沒 問 題 。XPEnology 的 正 確 升 級 方 法 ,是 每 次 升 級 之 前 都 上 XPEnology forum 的 DSM Updates Reporting,看 看 別 人 的 升 級 結 果 。如 果 之 前 有 九 萬 幾 人 升 級 都 沒 出 問 題 ,那 就 可 以 自 己 升 級 。

第 二 個 問 題 也 是 和 虛 擬 機 有 關 的 ,不 過 一 般 的 bare metal 安 裝 也 適 用 。在 Proxmox VE 的 環 境 下 ,如 果 我 們 要 控 制 虛 擬 機 的 正 確 關 機 ( properly shutdown ),一 般 就 要 先 在 虛 擬 機 上 安 裝 好 所 謂 的 Guest Agent ( 就 是 一 個 小 程 式 )。

QEMU guest agent 有 齊 linux 和 windows 版 本 ,本 來 安 裝 應 該 是 十 分 簡 單 的 。但 Synology 的 DSM 是 一 個 閹 割 版 的 linux,既 沒 有 apt-get 也 沒 有 yum,所 以 就 不 能 簡 單 安 裝 。

沒 有 安 裝 好 guest agent,如 果 你 在 PVE 的 使 用 者 介 面 之 下 reboot,XPEnology 就 會 不 正 常 關 機 了 。XPEnology 虛 擬 機 不 能 正 確 關 機 有 什 麼 後 果 呢 ?很 簡 單 ,就 是 data scrubbing。因 為 我 的 資 料 比 較 多 ( 10TB ),一 scrub 就 要 scrub 一 整 天 !

( 如 果 XPEnology 沒 有 裝 好 guest agent,正 確 的 reboot 次 序 ,是 先 登 入 DSM,在 DSM 裡 面 關 機 。在 PVE 的 介 面 確 認 XPEnology 關 好 機 之 後 ,才 reboot PVE。 )

https://xpenology.com/forum/topic/7195-power-button-package/

要 解 決 這 個 問 題 ,我 們 可 以 安 裝 Wer 製 作 的 Power Button package。叫 得 做 package,當 然 可 以 直 接 在 Package Center 安 裝 。不 過 那 個 post 的 第 一 頁 的 附 件 是 舊 版 ,新 版 ( 6.2-0002 ) 可 以 在 該 post 的 第 4 頁 找 得 到 。

檔 案 ( POWERBUTTON_6.2-0002.SPK ) 下 載 回 來 之 後 ,在 package center 用 manual install 就 好 。安 裝 好 後 ,就 可 試 試 在 PVE 的 web 介 面 去 Shutdown 我 們 的 XPEnology 虛 擬 機 。再 開 機 之 後 ,如 果 沒 有 見 到 XXX was shut down improperly 的 訊 息 ( 和 沒 有 data scrubbing ),那 就 代 表 Power Button package 是 正 常 運 作 。

第 三 個 問 題 是 DSM 顯 示 的 CPU information。這 個 問 題 的 原 因 是 Synology 不 支 持 更 換 CPU 的 ,所 以 每 個 型 號 的 CPU 都 是 固 定 的 ,於 是 CPU 的 資 料 就 寫 死 了 在 DSM 裡 。

https://xpenology.com/forum/topic/13030-dsm-5x6x-cpu-name-cores-infomation-change-tool/

要 正 確 顯 示 CPU information 可 以 參 考 上 面 的 文 章 ,文 中 也 有 十 分 詳 細 的 教 學 。

我 們 先 把 附 件 下 載 回 來 ( ch_cpuinfo.tar ),再 上 傳 到 XPEnology 的 任 意 一 個 share ( 我 用 了 Download )。

SSH 登 入 DSM,然 後 化 身 成 root ( 要 再 次 輸 入 admin 密 碼 )。

sudo su -

然 後 依 次 輸 入 以 下 命 令 。

cd /volume1/Download
tar xvf ch_cpuinfo.tar
chmod 755 ch_cpuinfo
./ch_cpuinfo

這 堆 命 令 基 本 就 是 ,去 到 你 上 傳 檔 案 的 位 置 ,然 後 解 壓 檔 案 ,再 改 變 檔 案 成 可 以 執 行 的 權 限 ,最 後 就 執 行 檔 案 。

因 為 我 們 是 第 一 次 執 行 ,就 選 「1」。然 後 再 確 認 一 次 「Y」。

完 成 之 後 等 一 兩 分 鐘 ,登 出 再 登 入 。就 見 到 新 的 CPU information 了 。Common KVM processor 是 Proxmox VE 模 擬 出 來 的 ,也 是 PVE 預 設 的 CPU type。它 的 兼 容 性 是 最 好 的 ,可 以 方 便 你 日 後 把 虛 擬 機 搬 到 別 的 硬 件 上 跑 。

如 果 覺 得 Common KVM processor 無 乜 氣 勢 ,可 以 在 PVE 把 CPU type 改 成 host,就 會 見 到 原 來 的 CPU 型 號 。改 了 CPU type 之 後 ,就 要 再 執 行 ch_cpuinfo 一 次 ( 這 次 要 選 redo ),就 會 見 到 新 的 CPU 名 稱 。

不 過 這 個 fix 是 絕 對 不 會 影 響 系 統 效 能 的 ,它 只 是 變 更 了 顯 示 出 來 的 資 料 ,DSM 是 不 會 因 為 顯 示 多 了 幾 個 cores / threads 而 變 快 的 。

第 四 個 問 題 是 Storage Manager 裡 面 顯 示 的 Drive number 十 分 混 亂 。這 不 是 單 一 原 因 引 起 的 。如 果 你 的 機 器 的 設 定 又 或 者 硬 件 和 我 不 一 樣 的 話 ,你 看 到 的 結 果 就 會 有 所 不 同 。

從 上 圖 可 以 看 到 ,無 拿 拿 多 了 一 個 只 有 50MB 的 Drive 1。心 水 清 的 讀 者 就 會 知 道 這 是 虛 擬 機 的 boot 機 hard disk,亦 即 是 那 個 loader。下 面 就 會 教 大 家 如 何 去 隱 藏 它 。

然 後 硬 碟 槽 相 對 應 的 Drive number 是 由 Drive 4 開 始 ,直 到 Drive 11。( 之 前 圖 中 那 個 未 initialized 的 1TB 硬 碟 ,我 就 是 用 它 來 測 試 每 個 槽 的 熱 插 拔 和 drive number 的 )

Synology 的 drive number,應 該 根 據 虛 擬 機 的 SATA controller 的 順 序 ,再 加 上 每 個 controller 的 所 有 port,來 排 序 的 。我 的 虛 擬 機 有 1 個 虛 擬 硬 碟 ,佔 了 Drive 1。然 後 第 二 個 SATA controller 是 Intel C220,有 6 個 port,分 別 是 Drive 2 – Drive 7。再 之 後 就 是 一 個 Marvell 9125,有 4 個 port,分 別 是 Drive 8 – Drive 11。

SATA controllerPortDriver Number
Virtual Disk
( Loader / boot drive )
11
Onboard SATA
( Intel C220 )
12 ( not used )
M.2 SATA
( Intel C220 )
23 ( not used )
SFF-8087
( Intel C220 )
3 - 64 - 7
SFF-8087
( Marvell 9125 )
1 - 48 - 11

而 在 Intel C220 的 6 個 port 裡 面 ,第 1 個 是 主 板 上 的 port,第 2 個 M.2 的 SATA port,第 3 – 6 個 才 是 SFF-8087 上 面 的 4 個 SATA port。所 以 ,Storage Manager 裡 面 ,第 一 個 硬 碟 槽 的 便 是 Drive 4。

要 解 決 這 個 問 題 ,就 要 去 修 改 loader 裡 面 的 grub.cfg 文 件 。

修 改 grub.cfg 文 件 ,坊 間 其 實 有 很 多 方 法 。但 那 大 多 數 都 是 修 改 下 載 回 來 的 img 檔 ,又 或 者 修 改 USB 手 指 上 檔 案 。

但 我 們 用 的 是 虛 擬 機 ,開 機 碟 不 能 隨 便 拿 出 來 修 改 啊 。所 以 我 們 要 直 接 SSH 入 去 DSM 修 改 grub.cfg 文 件 。

要 在 Terminal 裡 面 進 行 文 字 編 輯 ,Synology 內 建 的 text editor 叫 vi,在 Linux 是 最 常 見 的 了 。不 過 我 很 不 喜 歡 用 vi,一 般 都 會 自 己 裝 個 nano。nano 沒 什 麼 特 別 ,就 是 比 vi 好 用 千 倍 百 倍 。如 果 堅 決 唔 想 裝 nano,也 可 以 用 回 vi。

在 Synology 安 裝 nano 是 十 分 簡 單 的 ,因 為 別 人 已 經 幫 我 們 製 作 了 package ( 叫 SynoCli File Tools ),在 package center 安 裝 一 下 就 好 。

打 開 Package Center,按 一 下 Settings。

去 到 Package Sources 頁 ,按 一 下 Add,輸 入 下 列 資 料 。

Name: SynoCommunity
Location: http://packages.synocommunity.com/

完 成 後 按 OK。SynoCommunity 是 一 個 非 常 老 牌 的 3rd party source,基 本 上 從 十 多 年 前 我 初 初 開 始 玩 Syonolgy 就 存 在 了 。

回 到 Package Center,搜 尋 SynoCli,找 到 SynoCli File Tools 就 安 裝 它 。完 成 之 後 ,在 SSH Terminal 就 可 以 使 用 nano 的 了 ( 以 及 一 堆 其 他 工 具 )。

要 通 過 ssh 修 改 grub.cfg 文 件 ,我 們 可 以 參 考 以 下 貼 文 。

https://xpenology.com/forum/topic/13208-tutorial-how-to-mount-synoboot-in-shell-to-modify-grubcfg/

根 據 文 中 描 述 ,我 們 要 SSH 登 入 DSM。

sudo -i

先 成 為 root,這 裡 要 再 次 輸 入 你 的 管 理 員 密 碼 。然 後 再 依 次 執 行 以 下 的 各 個 命 令 。

mkdir -p /tmp/mountMe
cd /dev
mount -t vfat synoboot1 /tmp/mountMe
nano /tmp/mountMe/grub/grub.cfg

這 堆 命 令 的 意 思 ,是 把 loader 裝 置 ,先 mount 到 一 個 temporary 的 目 錄 , 然 後 就 可 以 打 開 grub.cfg 文 件 來 修 改 。因 為 這 只 是 一 個 暫 時 的 mount,所 以 重 啟 之 後 就 會 失 效 ,要 重 新 操 作 一 次 。

在 grub.cfg 文 件 裡 面 ,可 以 找 到 set sata_arg 這 一 行 ( set sata argument )。在 這 一 行 ,可 以 設 定 2 個 參 數 。

SataPortMap=164

第 一 個 是 SataPortMap。這 個 參 數 設 定 的 ,就 是 系 統 中 每 個 SATA controller 的 port 的 數 目 。在 我 的 虛 擬 機 中 ,就 是 164。意 思 就 是 第 1個 controller 有 1 個 port ( boot 機 碟 )。第 2 個 controller 有 6 個 port ( Intel C220 ),第 3 個 controller 有 4 個 port ( Marvell 9125 )。

DiskIdxMap=100006

第 二 個 參 數 是 DiskIdxMap。可 以 分 別 設 置 每 個 controller 起 始 的 drive number。因 為 我 前 面 設 置 了 3 個 controller,所 以 這 裡 也 要 設 定 3 個 drive number ( 10、00、06 )。這 裡 的 drive number 是 16 進 數 。第 一 個 10 的 值 就 是 16 ( 即 是 drive 17 ),第 二 個 00 的 值 就 是 0 ( 即 是 drive 1 ),第 三 個 06 的 值 就 是 6 ( 即 drive 7 )。

修 改 完 之 後 就 保 存 檔 案 ,然 後 reboot 一 次 DSM。

因 為 DS918+ 的 loader 被 修 改 過 ,最 多 能 夠 支 援 16 個 硬 碟 ,於 是 我 們 把 boot 機 碟 的 drive number 改 為 17,它 就 不 會 顯 示 出 來 。不 過   Intel C220真 的 有 6 個 SATA port,而 port 1 和 port 2 沒 有 接 上 硬 碟 ,所 以 drive 1 和 drive 2 不 會 顯 示 出 來 。於 是 第 一 個 硬 碟 就 只 能 是 drive 3 了 。

如 果 真 是 有 強 迫 症 ,一 定 一 定 得 要 Drive 1 去 到 Drive 8 的 話 ,就 唯 有 8 個 硬 碟 槽 都 使 用 Marvell 9125 SATA controller。

虛 擬 機 的 PCI-E 直 通 要 根 據 新 的 情 況 設 定 好 ,就 是 直 通 兩 個 Marvell 9125,而 不 需 要 再 直 通 Intel C220。Intel C220 可 以 留 給 PVE 裝 其 他 虛 擬 機 。

set sata_arg='SataPortMap=144 DiskIdxMap=100004'

grub.cfg 文 件 也 要 作 出 相 應 的 修 改 。SataPortMap 的 144 的 意 思 就 是 第 1 個 SATA controller 有 1 個 port,第 2 個 和 第 3 個 SATA controller 都 是 4 個 port。DiskIdxMap 的 10、00、04 的 意 思 就 是 drive 17、drive 1、drive 5 的 意 思 。

SATA controllerPortsDrive Number
Virtual Disk
( Loader / boot drive )
117 ( hidden )
SFF-8087
( Marvell 9125 )
4 1 - 4
SFF-8087
( Marvell 9125 )
45 - 8

好 不 容 易 ,又 裝 又 拆 ,開 機 又 關 機 又 開 機 ,終 於 達 成 各 個 硬 碟 槽 由 Drive 1 到 Drive 8,也 隱 藏 了 boot 機 的 loader,睇 起 來 就 順 眼 得 多 了 。哈 哈 哈 。

考 慮 到 我 不 太 可 能 短 期 內 用 盡 8 個 硬 碟 的 容 量 ,所 以 我 只 用 了 其 中 7 個 硬 碟 來 建 立 RAID 5,剩 下 的 一 個 就 做 為 hot spare。這 樣 設 定 ,相 比 起 RAID 6 來 說 ,雖 然 都 是 少 了 2 隻 硬 碟 的 實 際 容 量 ,但 是 RAID 6 全 部 硬 碟 都 在 用 ,都 一 起 老 化 ,而 RAID 5 + 1 就 有 1 隻 硬 碟 是 備 用 。Hot spare 的 硬 碟 沒 有 在 使 用 ,所 以 應 該 不 會 老 化 。

值 得 一 提 的 是 ,在 上 面 我 多 次 把 硬 碟 的 位 置 轉 來 轉 去 ,甚 至 是 由 Intel C220 轉 插 去 Marvell 9125,XPEnology 都 是 可 以 正 常 開 機 ,裡 面 的 Raid 5 ( SHR ) 的 資 料 也 是 絲 毫 無 傷 。原 因 是 DSM 用 的 software raid,辨 認 的 是 硬 碟 的 ID ( 包 含 serial number ),而 不 是 硬 碟 所 插 的 port 位 。

既 然 改 開 grub.cfg,就 多 說 兩 句 吧 。

set vid=0x1908
set pid=0x0226

這 原 來 是 用 來 設 置 usb 手 指 的 的 vid 和 pid,以 前 要 設 定 好 這 兩 個 值 才 能 正 常 boot 機 。不 過 後 來 loader 改 寫 了 ,就 不 用 修 改 也 能 正 確 起 動 。但 作 者 還 是 建 議 修 改 。不 過 虛 擬 機 用 的 不 是 USB,就 更 是 改 無 可 改 。

set sn=1780PDN123456
set mac1=001132123456
set mac2=001132123457

據 說 Synolgoy 就 是 用 serial number 和 mac address 來 確 認 你 用 的 是 不 是 正 版 。如 果 不 能 通 過 ,就 不 能 在 DSM 登 入 Synology Account,就 不 能 使 用 QuickConnect 和 Synology DDNS。網 上 所 謂 的 洗 白 ,就 是 修 改 這 幾 個 值 。

#menuentry "DS918+ 6.2.1/6.2 Baremetal $VERSION" --class os {
#        set img=
#        savedefault
#        loadlinux 918 usb
#        loadinitrd
#        showtips
#}

#menuentry "DS918+ 6.2.1/6.2 Baremetal $VERSION Reinstall" --class os {
#        set img=
#        loadlinux 918 usb mfg
#        loadinitrd
#        showtips
#}

menuentry "DS918+ 6.2.1/6.2 VMWare/ESXI $VERSION" --class os {
        set img=
        savedefault
        loadlinux 918 sata
        loadinitrd
        showtips
}

在 grub.cfg 檔 案 的 最 尾 ,是 開 機 時 的 3 個 選 項 ( boot menu )。以 前 用 虛 擬 機 ,是 要 手 動 選 第 3 個 選 項 。次 次 選 嫌 麻 煩 ,所 以 亦 會 comment out ( 加 # ) 左 第 1 項 和 第 2 項 。不 過 現 在 的 新 loader 不 修 改 也 是 可 以 正 常 使 用 。

安 裝 額 外 的 Driver

要 在 Synology DSM 為 新 硬 件 安 裝 Driver,從 來 都 是 艱 難 事 。所 以 XPEnology 的 Loader 裡 面 其 實 就 已 經 包 含 了 大 量 的 Driver,才 讓 XPEnology 在 大 部 分 的 電 腦 都 可 以 安 裝 和 執 行 。

但 凡 事 總 有 例 外 ,如 果 你 的 硬 件 就 連 XPEnology 的 loader 都 沒 有 Driver,又 能 怎 麼 辦 ?這 時 我 們 可 以 安 裝 XPEnology 的 driver extionsion。不 用 多 說 ,這 個 Driver extension 當 然 也 是 在 XPEnology forum 裡 面 找 到 的 。

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

我 這 次 使 用 的 driver extension 叫 做 「Driver extension jun 1.03b/1.04b for DSM6.2.3 for 918+ / 3615xs / 3617xs」。不 過 在 安 裝 之 前 ,也 有 幾 個 需 要 特 別 留 心 的 地 方 。首 先 ,它 寫 明 是 jun 1.03b / 1.04b 的 ,其 他 loader 能 不 能 用 ?我 不 清 楚 。第 二 ,它 寫 明 是 給 DSM 6.2.3 的 ,其 他 版 本 的 DSM,最 好 不 要 嘗 試 。第 三 ,它 有 分 開 918+ / 3617xs / 3615xs 的 不 同 版 本 ,千 萬 別 下 載 錯 了 !

為 什 麼 要 安 裝 driver extension 呢 ?因 為 我 為 我 的 NAS 添 置 了 一 張 雙 網 口 的 2.5GbE 網 卡 。2.5GbE 網 卡 算 是 很 新 的 硬 件 ,所 以 原 來 的 Loader 沒 有 包 含 driver 一 點 也 不 稀 奇 。

新 網 卡 用 的 是 Realtek 的 RTL8125 晶 片 ,而 這 個 版 本 的 driver extension 正 好 寫 明 了 支 援 r8125。配 合 我 使 用 的 918+ loader,我 下 載 的 就 是 「extra.lzma/extra2.lzma for loader 1.04b ds918+ DSM 6.2.3 v0.13.3」。

Driver extension 下 載 回 來 解 壓 縮 之 後 ,就 會 得 到 extra.lzma 和 extra2.lzma 兩 個 檔 案 。我 們 要 做 的 就 是 用 它 們 去 替 換 原 來 在 loader 裡 面 的 同 名 檔 案 。比 較 一 下 新 舊 檔 案 的 size 和 日 期 ,可 見 除 了 RTL8125 之 外 ,應 該 還 多 了 許 多 許 多 新 driver。

如 果 你 用 的 是 USB 手 指 ,又 或 者 剛 剛 下 載 loader 來 建 立 虛 擬 機 ,那 更 換 檔 案 的 步 驟 會 十 分 容 易 ( 網 上 太 多 教 學 )。但 如 果 你 像 我 一 樣 ,在 Proxmox VE 已 經 建 立 好 虛 擬 機 ,而 且 loader 亦 已 經 被 自 己 更 改 過 N 次 ,那 又 要 如 何 更 換 driver 檔 呢 ?

我 們 還 是 用 回 前 面 修 改 grub.cfg 的 方 法 。不 過 在 ssh 登 入 之 前 ,我 們 要 把 剛 才 下 載 回 來 的 檔 案 上 傳 到 XPEnology。我 示 範 的 例 子 就 是 整 個 資 料 夾 上 傳 到 一 個 叫 做 download 的 share。

想 要 知 道 Synology 的 檔 案 的 完 整 路 徑 ,我 們 可 以 在 file station 裡 面 選 擇 檔 案 ,按 滑 鼠 右 鍵 ,然 後 選 擇 properties。兩 個 檔 案 的 路 徑 都 要 記 下 來 ,等 一 下 做 copy 的 時 候 會 用 到 。

/volume1/Download/extra918plus_v0.13.3/extra.lzma
/volume1/Download/extra918plus_v0.13.3/extra2.lzma

然 後 打 開 putty 軟 件 ,用 SSH 登 入 DSM。首 先 化 身 成 root ( 要 再 次 輸 入 admin 密 碼 )。

sudo -i

然 後 依 次 輸 入 以 下 命 令 。

mkdir -p /tmp/synoboot2
cd /dev
mount -t vfat synoboot2 /tmp/synoboot2
cd /tmp/synoboot2
ls -l

這 堆 命 令 的 意 思 ,就 是 把 loader 掛 載 到 一 個 暫 時 的 位 置 ( /tmp/synoboot2 ),以 方 便 我 們 作 出 修 改 。然 後 ,我 們 就 變 更 目 錄 到 這 個 暫 存 的 位 置 。請 注 意 這 一 次 掛 載 的 裝 置 和 修 改 grub.cfg 文 件 並 不 一 樣 。最 後 ,我 們 可 以 用 ls -l 命 令 來 檢 查 一 下 資 料 夾 的 內 容 ,看 看 有 沒 有 extra.lzma 和 extra2.lzma。

mv extra.lzma extra.lzma.old
mv extra2.lzma extra2.lzma.old

在 永 久 刪 除 檔 案 之 前 ,我 個 人 習 慣 會 暫 時 保 留 一 個 備 份 。mv 指 令 在 linux 就 是 rename 的 意 思 。

cp /volume1/Download/extra918plus_v0.13.3/extra.lzma .
cp /volume1/Download/extra918plus_v0.13.3/extra2.lzma .

然 後 就 可 以 用 cp 指 令 ,將 剛 才 上 傳 到 XPEnology 的 檔 案 ,copy 到 here。指 令 行 最 尾 的 一 點 「.」,就 是 here 的 意 思 。

完 成 之 後 ,再 ls -l 一 次 ,應 該 就 會 見 到 和 上 面 一 樣 的 ,修 改 好 的 結 果 。然 後 reboot 一 次 DSM,才 算 是 安 裝 完 成 。

這 時 候 登 入 DSM,應 該 就 可 以 看 到 新 的 硬 件 了 。在 我 情 況 ,就 是 RTL8125 的 2.5GbE 網 卡 ( 當 然 要 先 在 PVE 做 好 PCI-E 直 通 )。在 這 裡 只 看 到 1 個 2.5GbE 網 口 ,原 因 是 另 一 個 2.5GbE 網 口 留 給 了 PVE 用 。

最 後 ,據 說 長 期 打 開 SSH 是 不 良 的 壞 習 慣 ,所 以 每 次 修 改 完 成 之 後 ,最 好 順 手 回 到 DSM 裡 面 uncheck 那 個 Enable SSH service。

2020-12-17 更 新

成 功 更 新 了 DSM 6.2.3-25426 Update 3。

https://xpenology.com/forum/topic/37652-dsm-623-25426-update-3/

參 考 了 xpenology forum 的 DSM update reporting,見 到 很 多 網 友 都 更 新 成 功 ,包 括 使 用 Proxmox VE 和 DS918+ 的 網 友 ,所 以 就 膽 粗 粗 更 新 了 。這 就 是 很 典 型 的 黑 群 輝 更 新 方 法 ,先 在 forum 看 清 看 楚 ,肯 定 沒 問 題 自 己 才 更 新 。

2021-03-10 更 新

最 近 Synology 推 出 了 DSM 6.2.4 更 新 ,分 別 有 6.2.4-25554 和 6.2.4-25556。根 據 XPEnology forum 的 結 果 ,這 個 更 新 都 不 能 成 功 ,大 家 暫 時 千 萬 不 要 更 新 啊 。

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

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

6 Responses to Xpenology (黑群暉) 進階:在 Proxmox VE 安裝 DSM 6.2.3

  1. Mars says:

    請問這D-1581板子上有三個SFF8087,但分別由C220及Marvell 9215提供,所以若要組成NAS,是否只能4顆(C220),8顆(9215)的RAID,無法組成12顆,對嗎?

    • C.T. Leung says:

      Well… 其實 raid 也有分 hardware raid 和 software raid。Hardware raid 就是由 hardware ( 一般就是 raid 卡 ) 去管,在 OS level 只會見到一個巨大 harddisk。而 software raid 就全部由 OS 管,可以到一隻隻獨立的 harddisk,並不需要 raid 卡。

      如果係講 xpenology / synology DSM 的話,它應該只支援 software raid,所以係無所謂,只要 OS 見到隻 harddisk 就得,即是絕對可以組成 12-bay 的 raid。要自建其他 software raid 系統也應該是一樣。

      而如果你是組建其他系統,想要 hardware raid 的話,Marvell 9215 本身就有 hardware raid,不過好似只支援 raid 0/1/10。而 Intel C220 印象中就唔支援 hardware raid。

  2. JackHu says:

    請問PVE內硬碟直通DSM
    不是PCIE直通,是主機板SATA直通

    所以在DSM內硬碟不會顯示正確的內容、壞軌、溫度等等

    那如果其中一顆硬碟壞掉…是DSM會通知還是PVE會通知?
    以上情況DSM有辦法正常通知嗎…?

    • C.T. Leung says:

      用 disk passthrough 的話 DSM 就沒有 smart,自然也不會有「通知」,這是很正常的。如果你要求一定要有 DSM 通知,就買一張 PCIE SATA card,很便宜的。( 不需要強勁的 hardware raid card,DSM 只用 software raid )

      PVE 本身當然也有 HDD monitoring,預設發現問題會 send email 去 root,不過你也要自己去設定好 email address、SMTP server 之類的東東。

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

  3. John says:

    你好 Peter, 請問PCI-E passthough 能否做到HDD Hibernation?

    • C.T. Leung says:

      可以的。你可以 enable hibernation logs,然後在 log center 裡面就會見到許多 Internal disks woke up from hibernation 的 message (
      至少在我的機器上是見到許多,哈哈哈 )。

Leave a Reply to JackHu Cancel reply

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