也許是最折騰的(隨身)迷你伺服器:軟體

Posted on

硬體上基本確定之後,接下來該是軟體了。在先前有一個 NAS Build,採用的是基於 FreeNAS(ZFS)的存儲和 ESXi 的虛擬化方案,用起來的感覺是非常不錯的,如果感興趣的話可以按這裏看更多。其中的一些配置已經有改動,但淺羽現在還沒有更新上去,主要在於換用了 SuperMicro 的主機板以及一塊 Xeon E3-1231 v2 等伺服器級別的硬體,能夠提供更好的遠程管理。不過同樣的方案用到這臺便攜伺服器上,也許有一些行不通:

  • 迷你伺服器沒有(哪怕是半高的)PCI 槽位(在主力的 Homelab 中,有一張陣列卡刷成 HBA 後直通給了 FreeNAS,提供直接的磁碟訪問)
  • 迷你伺服器上 G4600 的計算能力顯然遠不如 E3-1231 v2
  • 迷你伺服器不會提供太多的服務
  • 迷你伺服器本身需要充當 HTPC 甚至遊戲機,需要一定的顯示效能
  • 迷你伺服器並沒有太多的存儲擴充性,機殼設計攜帶 2 塊 SATA 一個碟,加上 M.2 系統碟總共才 3 塊,並且沒有熱插拔能力

所以原先的一套雖然好用,但是太過重了;迷你伺服器大概需要換一套「迷你」的系統方案了。

「需要虛擬化還是虛擬機?」

開多個系統的需求肯定是有的,但是具體到到底是虛擬化(對應裸機虛擬化)和虛擬機(對應虛擬化軟體),實際上又有不同的取向。以淺羽用 ESXi 的經驗來看,如果需要多媒體能力,一般還是會考慮直通顯示卡到某一個 Guest OS;但 AMD 對直通的支援最好,NVIDIA 則容易失敗,CPU 內建的核心顯示卡基本沒辦法直通。考慮到這一臺迷你伺服器沒有 PCI 槽位,直通應該是不太有可行性的。

在無法直通的情況下,從多媒體能力的需求出發,即使是做虛擬化,Host 本身也應該具有完整的多媒體能力。Windows(作爲 Hyper-V 宿主)以及 Linux(作爲 KVM)宿主都是具有這樣的能力的。但是 Windows Server 2016 沒有完整的雲服務,Windows 10 的許可證太貴,也許還是考慮用 Linux 吧,畢竟日常的工作也在 Linux 下,各個發行版對 KVM 的相容性是很高的,並且直通各種(不限於 PCI Express 的)硬體也相對方便,能夠最大化虛擬化的作用。另一方面,Hyper-V 作爲由微軟支持的虛擬化平臺,由於利益關係也存在一些捆綁問題,對於以 Linux 作業系統爲主的淺羽來說,考慮沒有那麼好用。

除掉以上的裸機虛擬化,主流的 Linux 和 Windows 上都可以執行 VirtualBox 或者 VMware 軟體虛擬化,這與裸機虛擬化有一些不同,即使不作爲主力,也是不錯的相互補充。並且軟體虛擬化通常有不錯的 UI,方便管理,可以作爲快速的實驗平臺。

「需要怎麼樣的存儲?」

由於用慣了 ZFS,同時也感受到了 ZFS 的諸多特性帶來的好處,因此即使在 Linux 上,淺羽覺得 ZFS on Linux 也值得一試。

另外,Linux 上原生的 LVM 配合 XFS 或者 BtrFS 也實現了類似的功能,但ZFS 能從硬體管理到到 FS,但 LVM + FS 的組合還是各自負責一部分,使用體驗有所區別。「好處」就是 LVM 作爲原生的彈性卷解決方案,大部分發行版能夠從 LVM 卷上的 FS 啓動(GRUB 也支援到),但 ZFS 通常不行,或者需要 Heavy Hack。

關於更多的存儲方式,比如 Ceph、GlusterFS,在這樣的需求和環境下,還是…放過淺羽吧。

「存儲爲主還是計算爲主?」

這其實是最後選擇具體發行版的迷思。如果是存儲爲主的話,基於 Debian 的 Open Media Vault 其實也是不錯的選擇,而且有豐富的外掛可以支援 ZFS、VirtualBox(PHP 前端)、Kodi 等等。而 Proxmox VE 則是注重虛擬化與計算,但是本身也是基於 Debian 的,並且也有 ZFS 支援,只需要自己再額外裝一個 Kodi 就好,所以也是備選項目。

考慮了那麼多,先灌一個試試看吧 🙂

其實並不是第一次用 Proxmox VE 了,不過機器剛裝起來,還有來得及發裝機篇(其實是照片還沒處理好)。爲了補發了軟體考慮篇,心急火燎地裝了系統;設定的事情就過段時間再仔細說好了。


初次進入 Proxmox VE 的 Web UI,需要用 HTTPS 協定 + 8006 端口訪問。打開頁面之後可以在左側看到安裝時候設定的伺服器名字,點擊之後選擇 SystemNetwork,並且(針對每個識別到的 PHY)設定好網路參數。因爲計劃跑軟路由,淺羽把 enp0s31f6 做爲 WAN,設定外網地址;enp2s0 作爲 LAN 口,並且在設定 IP 位置、網路遮罩的基礎上再設定好網關地址,這樣可以設定系統的路由表,讓 Proxmox VE 本身作爲軟路由的一個客戶端,透過軟路由連上網路。當然,這麼做的話軟路由就必須要開機囖。所有的網路設定需要重啓後生效。

接下來在左側的 local 欄位的 Content 內,點擊 Upload 上載自己的鏡像。也可以點擊 Templates,下載官方提供的 OpenVZ 模板。

隨後點擊右上角的 Create,走完嚮導新建 VM,在 VM 面板的左側點擊 Console,然後開機裝系統就可以啦,同一般的虛擬機一樣用。

Web UI 基本上就是這樣了,更多的項目都可以以後慢慢試玩。回過頭來看,Proxmox VE 本身也提供了豐富的命令行操作,甚至於有一部分操作必須通過命令行完成。淺羽計劃裏有 NAS 的部分,對虛擬化的 NAS 系統來說,直通硬碟顯然是比虛擬硬碟好得多的選擇。在官方 Wiki 上有一個指引,這部分也需要透過命令行完成。首先在 Promox VE 中,查看硬碟的 ID 號:

ls -l /dev/disk/by-id

淺羽需要直通的是 /dev/sdb 的一塊 1TB 機械硬碟,對應的 NAS 系統的編號(如上面的圖)是 110,就可以使用命令:

sudo qm set 110 -virtio0 /dev/disk/by-id/ata-ST1000LM024_....

執行成功之後會有一行提醒。其中,參數中的 -virtio0 是指直通硬碟到 VM 的 Virtio Disk 0 號裝置,可以根據自己的需要改變參數。這樣做後,VM 裏的系統就可以識別到有一塊新的硬碟了,可以愉快地按照正常方式使用了。

除此之外,Proxmox VE 其實建基於更換的內核的 Debian Stable(當前 Proxmox VE 5 建基於 Debian 9 「Stretch」),因此淺羽還安裝了 GNOME 和 GDM3,並且安裝了 Firefox(怨念的官方 ESR 版)、RetroArch、Kodi 和 Steam,以做娛樂用途。到目前爲止,這臺伺服器應該和計劃很接近了。


This site uses Akismet to reduce spam. Learn how your comment data is processed.