按我返回上一章 Link to heading

返回主目錄 Link to heading

(本文最後更新時間:2024年8月11日)

IKEA LackRack - 廉價DIY機櫃

IKEA LackRack - 廉價DIY機櫃

點解要自組?自組有咩好/壞處? Link to heading

優點:

  • 💰 硬件性價比可以大幅拋離任意大牌子機種(講緊係同性能下可以平40%或以上)
  • 硬件選擇自由(例如可以用舊機既料砌,或可根據自己需求購買各類零件;M.2 10G網卡聽過未)
  • 可以學野(Sysadmin及Networking功夫,市場對呢啲技術有需求)

缺點:

  • 通常體積較大,耗電量較多
  • 安裝麻煩,要花時間讀文檔,必須識英文
  • 維護靠自己(不過通常係安裝完後就唔洗點理)

伺服器硬件邊到黎? Link to heading

舊電腦/Laptop、各式迷你電腦(如J4125/N100機)、Raspberry Pi或其他單板機(SBC)、各式二手伺服器硬件/洋垃圾等。

部分硬件只可能搵到淘寶或國產貨(或外國只有高價代替品),如各式軟路由工控機及細NAS機箱等。

NAS機箱有外國貨(如Fractal Design既Node系列),不過通常偏大部/貴,想要細部或平啲就要淘寶。

延伸閱讀:Small Form Factor PC Master List

用咩硬件去增加主機板SATA插口數? Link to heading

請睇以下文章:

Recommended Controller for Unraid

Top Picks for TrueNAS and FreeNAS HBAs (Host Bus Adapters)

用HBA卡既話要自己刷韌體改做IT模式,詳情請自己Google。

買硬件有咩要注意? Link to heading

預計伺服器負載買CPU Link to heading

大部分人既伺服器絕大部分時間都係待機,咁樣既話你買CPU唔應該睇滿載耗電量,而要睇待機耗電量

就我所知:Intel及AMD G系列CPU既待機耗電較低,而AMD非G系列就待機耗電較高。

但如果係常時都高負載既話,AMD非G系列CPU通常較同價既Intel CPU有更佳能耗比,值得考慮。

另外:Intel T字尾CPU待機時耗電同普通版差唔多。普通版CPU係BIOS設定功耗牆之後可以做到類似T字尾CPU既效果。

延伸閱讀:Intel T processors power consumption tests

延伸閱讀:Balancing Power Consumption and Cost: The True Price of Efficiency

ECC RAM Link to heading

ECC既用途係偵測RAM有否發生Bit flip,如有就嘗試修正。(運作原理)

如果冇ECC,咁你RAM發生Bit flip時可能咩事都冇,可能令伺服器死機,最嚴重既情況係造成偵測唔到既資料損毀。

但Bit flip發生機率極低。除非玩到Data center級數,或者伺服器放係高輻射地區,否則可能廿年都遇唔到一次因Bit flip造成既資料損毀。

雖然ECC RAM本身唔係貴好多,但可以用ECC RAM既主機板/CPU可以貴勁多。尤其是Intel,家用級主機板晶片組(Chipset)全部唔支持ECC,要上到工作站或伺服器級主機板先有,呢啲主機板一手價超級高。

AMD反而係家用級已經有,所以想要ECC可以先睇AMD(例如5650G配X570板,低能耗+多核+有內顯+支持ECC+靚IOMMU)。另一個選擇係執二手伺服器硬件/洋垃圾(Xeon/Epyc之類),淘寶一堆平價野。

我既諗法係,你要儲存既數據愈多/愈重要,用既RAM量愈大,就愈值得買ECC件。(當買個心安都好)

延伸閱讀:Will ZFS and non-ECC RAM kill your data?

注意事項
  1. ECC RAM有分RDIMM/LRDIMM/UDIMM,要睇清楚塊板支持邊款先好買。
  2. DDR5所謂既內置ECC並非真ECC,且不能取代真ECC。
  3. ECC唔係靈丹妙藥,如果條RAM本身係壞既話照樣會狂出Error。

主機板IOMMU組分佈 Link to heading

如果你想行虛擬機的話,有機會要將硬件Passthrough入虛擬機,例如將CPU內顯送入Jellyfin虛擬機或將SATA控制器送入NAS虛擬機。如此送入去既硬件完全由虛擬機控制,可獲得接近無損性能。

要做PCIe passthrough既話,主機板要支持IOMMU,此外亦要注意IOMMU組分佈。

每個硬件都屬於一個IOMMU組,但一個IOMMU組可以包含多過一個硬件。PCIe passthrough係以一個IOMMU組為最小單位,想送某個硬件就要連同佢IOMMU組既其他硬件一齊送入去。

假設你主機板PCIe 1槽、SATA控制器及網卡係同一IOMMU組,咁你想送個插咗係PCIe 1槽既硬件(如顯示卡)入虛擬機,就要將SATA控制器(連帶硬碟)同網卡都送埋入去。

宿主機及其他虛擬機不能使用Passthrough咗入一部虛擬機既IOMMU組既全部硬件。

要自己做功課,搵下咩主機板IOMMU組靚。唔一定要追求最完美(即每一個硬件都獨佔一個IOMMU組),可根據你既需求去查(例如想整NAS虛擬機既話,隻SATA控制器最好獨佔一個IOMMU組)。

值得一提既係,有方法強行令全部硬件都有自己一個獨佔既IOMMU組(關鍵字:ACS override patch)。Proxmox跟呢個教學就可以用到呢個Patch。注意用呢個Patch有安全性風險(詳情請自己Google)。

延伸閱讀:檢查主機板IOMMU組方法

主機板 DMI

主機板晶片組同CPU之間係用一條PCIe link連接住(Intel稱之為DMI),晶片組上所有硬件會共用DMI既頻寬(Bandwidth)同CPU做資料傳輸。

唔同晶片組既DMI頻寬可能唔同,例如Intel 5xx/6xx系、AMD 6xx系晶片組既頻寬係PCIe 4.0 x8(約16GB/s),AMD 5xx系就只得PCIe 4.0 x4(約8GB/s)。

係晶片組做大量資料傳輸(例如同時存取晶片組上多隻NVMe SSD)既最快速度受DMI頻寬限制。

宿主機及虛擬機共享Intel CPU內顯 Link to heading

Intel CPU既內顯可以用SR-IOV(12代或以後)或GVT-G(5至10代CPU)方法令宿主機同虛擬機都用到佢。

唯獨係11代咩都冇。如果你個宿主機同虛擬機都要用內顯(例如個宿主機靠內顯先顯示到野,但虛擬機行Jellyfin要內顯做轉碼)既話要注意。

如果不幸地用緊11代Intel CPU,或唔想搞以上既野,可以轉用LXC或Docker:只要個宿主機用到個內顯,LXC及Docker就肯定有方法用到。

延伸閱讀:Intel GVT-G setup(Arch Wiki)

延伸閱讀:12代及以後Intel CPU之SR-IOV方法

Nvidia 顯示卡

有方法使宿主機同虛擬機共享某啲型號既NVIDIA顯示卡。

呢到有適用於Proxmox既安裝教學。注意30系及以上既顯示卡型號用唔到呢個方法。

LXC係咩黎?同Docker/虛擬機有咩唔同? Link to heading

LXC全名係Linux Container。雖然佢同Docker一樣都係"Container"科技,但佢概念上同使用上都更接近虛擬機,係虛擬機既輕量級代替品。

同虛擬機相似,係LXC上面你係手動裝軟件行。另外兩者都支持快照(Snapshot)及備份。

LXC(及Docker)同虛擬機唔同既係佢會同個宿主機共用內核(Kernel),所以資源消耗較低。(虛擬機有自己內核)

另一個優勢係,因為LXC(及Docker)只係宿主機上既一個進程(Process),所以可以同個宿主機(及其他Container)共用硬件。虛擬機就只能透過SR-IOV共用硬件,或用Passthrough並失去硬件使用權。

相對地LXC(及Docker)安全性較弱,例如佢地造成Kernel panic時會炸死埋個宿主機及其他虛擬機,虛擬機Kernel panic只會炸死自己。

此外,因為共用內核,宿主機因內核太舊而行唔到既軟件,LXC(及Docker)同樣都行唔到。(例如Wireguard要內核版本5.6或以上)

Docker同LXC唔同既係Docker一個Image淨係會行一隻軟件,但LXC你可以係上面裝十幾廿個軟件同時行。

Docker係軟件級Container:一個Image專行一個軟件 ;LXC係OS級Container:同虛擬機一樣,佢提供咗個OS比你做平台,你係上面玩咩都得。

延伸閱讀:About Containers and VMs

用咩OS? Link to heading

Hypervisor OS

Proxmox VE 👍、VMWare ESXi(付費)Windows Server + Hyper-V(付費)XCP-NG

Hyper-V Server 2019(免費)

NAS OS

TrueNAS(建議選Scale)Xpenology(黑群輝)Unraid(付費)OpenMediaVault

注意事項
  1. TrueNAS (Scale/Core) 會食曬成隻HDD/SSD/USB做Boot disk
  2. Unraid要求用USB做Boot disk(而且隻USB要有Unique GUID)
  3. Xpenology亦要求用USB做Boot disk

我建議去淘寶搵「USB引導盤」,例如呢個,用佢地安裝方便好多。

伺服器OS

Debian 👍、Ubuntu ServerCentOS StreamRHEL(16個免費)Windows Server(付費)

路由器/防火牆OS

OpenWrt 👍(家用路由器推薦)、pfSense/OPNSense

Openwrt :小型 homelab 神器

一部裝咗OpenWrt既家用路由器可以做曬防火牆、路由器、VLAN交換機同無線存取點既工作。

而且唔洗買好貴既機,例如GL.iNet MT6000非常適合OpenWrt,現時淘寶都係700蚊人仔左右。

Linux底既OpenWrt支持好多軟件,例如LXC/Docker、Wireguard、AdGuardHome、NGINX、SQM等等。你甚至可以用幾部OpenWrt機行802.11s Mesh Networking802.11k/v/r 快速漫遊

如果你岩岩開始玩Homelab,可以先從支持OpenWrt既家用路由器入手,有需要時再買獨立Networking硬件。

Proxmox VE介面

Proxmox VE介面

咩係Hypervisor?點解要用佢? Link to heading

Hypervisor即專用黎行虛擬機既軟件。上一項提及既Hypervisor OS用既全部都係用Type 1 hypervisor(例如Proxmox用既係KVM+QEMU),虛擬機可繞過宿主OS直接使用伺服器硬件,藉此獲得接近無損性能。

用Hypervisor既好處:

  • 虛擬機快照及備份(非常實用)
  • 可以匯入虛擬機,或匯出虛擬機去另一部Hypervisor
  • 容許將來擴展規模,例如伺服器硬件升級後可以開多幾隻虛擬機
  • 視乎你既硬件,重啟虛擬機可能比重啟實機快勁多

就算你只會用一個虛擬機,都可以考慮下用Hypervisor:淨係快照及備份通常都值回票價。

題外話:係 linux 整個 windows 虛擬機打機

KVM+QEMU任何Linux機都用到。有一個特別玩法係Desktop Linux上面整個Windows虛擬機打機。

我自己部PC就係用Fedora Linux做主OS,並用Windows 10虛擬機打機。詳情可以睇我呢個Post

咩係IPMI?有冇代替品? Link to heading

IPMI係遠端管理伺服器既工具。同普通Remote desktop工具唔同既係佢可以係最底層控制個伺服器

不但可以遠端睇到伺服器既螢幕輸出同埋操控佢,仲可以開/關機、改BIOS設定、重裝OS等等。非常適合伺服器放屋企外或難搬地方既人。

Intel有個類似工具叫VPro,好多商用Intel機都有支持,配合MeshCentral可做到中央控制。

另一個相對易入手既代替品係PiKVM,需要你自己買件DIY,或者買作者成套件砌。想平啲既話可以去淘寶搵山寨版(Blicube/Geekworm)。

PiKVM甚至可以配合特定KVM switch一下控制多部機。

CPU冇內顯,買咩顯示卡做轉碼? Link to heading

Intel既獨立顯示卡👍 入門級型號(1000蚊樓下買到)就已經有同高階卡一樣既超強轉碼性能。

支持好多媒體格式(包括AV1 encoding),低能耗,有啲型號甚至係半高/單插槽闊,非常適合伺服器用。

此外NVIDIA Quadro系列都唔錯,可以搵下有冇二手貨。

想買轉碼卡既話建議睇下呢啲參考資料再買:

Media Capabilities Supported by Intel Hardware

NVIDIA Video Encode and Decode GPU Support Matrix

Plex Media Server Hardware Transcoding Cheat Sheet

延伸閱讀:nvidia-patch(移除NVIDIA顯示卡既同時間轉碼數上限)

更多討論區/資源 Link to heading

Reddit:r/Homelab

Chiphell論壇

ServeTheHome(Homelab新聞/硬件評測網頁)

Youtube:司波圖

Youtube:TechnoTim

Youtube:Lawrence Systems

鳴謝 Link to heading

多謝你睇到最後!

特別鳴謝連登Homelab post既一眾巴打,大家既討論令我學到好多野。

如果你冇睇連登Homelab post,歡迎你入黎一齊吹下水,交流下技術 🤼‍♂️ 。

返回主目錄 Link to heading