Windows下最佳多盤(pán)陣列方案探討

此文后續(xù)會(huì)一直更新。初版發(fā)布于2021.11.30。圖后面補(bǔ)。本文不涉及各種方案的詳細(xì)設(shè)置,如有需要可以在后續(xù)的文章中單獨(dú)說(shuō)明。


在經(jīng)過(guò)了兩年多的各種方案的試用和折騰中,暫時(shí)摸索出一個(gè)對(duì)于Windows來(lái)說(shuō)最佳的多盤(pán)陣列的方案。(由于以下文章限于B站安全限制,無(wú)法添加外鏈名詞解釋?zhuān)绻吹接胁欢淖约簞?dòng)手查一查。如果有知道怎么添加外鏈的大佬還請(qǐng)告知。)
首先羅列一下自己的配置:
華擎Z270-ITX/AC(魔改BIOS)
Intel 9900K-ES
聯(lián)想的3200MHz 32G*2內(nèi)存(時(shí)序22-22-22-52-CR2)
三星PM981 2T作為主盤(pán)
三星SM863a 1.92T作為陣列的緩存盤(pán)
5*HGST 3T(淘寶咸魚(yú)的清零盤(pán))---->5*HGST 6T(服務(wù)器退役盤(pán))計(jì)劃下一步---->5*16T WD He盤(pán)

關(guān)于為什么要在Windows上使用陣列的原因:
首先,當(dāng)然是為了美觀。多盤(pán)在文件管理器里一大坨盤(pán)符,是非常惹人惱火的,2T的NVME系統(tǒng)盤(pán)也只有500G的系統(tǒng)分區(qū)和一個(gè)存放其他文件的分區(qū)。
其次,當(dāng)然是為了容災(zāi)。在10年左右的時(shí)候,壞過(guò)一次硬盤(pán),丟失了過(guò)去近十年的所有文件(不過(guò)容量不大),非常痛心,從那時(shí)開(kāi)始硬盤(pán)的災(zāi)備一直是在做。一開(kāi)始的時(shí)候是用冷儲(chǔ)存,但是總是會(huì)忘記備份,偶爾在折騰系統(tǒng)的時(shí)候會(huì)導(dǎo)致一些文件丟失,那時(shí)候的網(wǎng)絡(luò)和機(jī)器的性能也都比較一般,自己也沒(méi)有太多的時(shí)間花在這方面,所以時(shí)不時(shí)也會(huì)又經(jīng)歷以前的心痛……從14年開(kāi)始搞了第一個(gè)多盤(pán)位的機(jī)器,從此開(kāi)始了漫漫探索之路(細(xì)心的你發(fā)現(xiàn),14年怎么可以用Z270?因?yàn)閆270是后來(lái)升級(jí)的)。
最后,是為了多盤(pán)位更好的讀寫(xiě)性能。當(dāng)然這里在Windows上一個(gè)巨坑……所以才有了以下方案一換再換的經(jīng)歷。
為什么要使用Windows作為這個(gè)載體的原因:
其實(shí),折騰了這么久的虛擬化,Linux,個(gè)人感覺(jué)使用Windows當(dāng)載體,多種功能一體化的方案,Windows還是最好用的,不僅有多種虛擬化方案可以選擇(當(dāng)然受限于網(wǎng)卡的速度還是只能用Hyper-V(10Gbps的虛擬網(wǎng)卡),Vmware只有祖?zhèn)?00Mbps的虛擬網(wǎng)卡用個(gè)錘子(可以在配置文件中手動(dòng)改成1G甚至10G的網(wǎng)卡,但是據(jù)說(shuō)速度還是100Mbps,實(shí)際沒(méi)有測(cè)試過(guò)),VirtualBox也只有1Gbps的虛擬網(wǎng)卡,而Wireguard已經(jīng)支持了100Gbps的虛擬網(wǎng)卡,不知道什么時(shí)候Hyper-V可以跟進(jìn)一下相同的速度。)
使用過(guò)的一些陣列方法:
1. Snapraid+StableBit DrivePool
2.Intel RST(即主板的軟陣列)
3.Windows存儲(chǔ)空間
4.ZFS for Windows
5.虛擬機(jī)TrueNAS|
6.基于WSL2的自編譯支持ZFS內(nèi)核的方案(沒(méi)有成功,純屬來(lái)湊數(shù)的)
7.以上方案+PrimoCache的組合方案
以上的方案按照時(shí)間順序來(lái)一一解釋其不足和優(yōu)點(diǎn)。

起始
剛開(kāi)始構(gòu)建的時(shí)候,那時(shí)的NAS硬件方案,尤其是機(jī)箱并沒(méi)有現(xiàn)在這么五花八門(mén),可選的特別少,四盤(pán)位和八盤(pán)位的機(jī)箱還算比較多,但是六盤(pán)位的幾乎沒(méi)有一個(gè)可以心滿(mǎn)意足的。當(dāng)時(shí)的基礎(chǔ)構(gòu)思是這樣的:
1.體積要小巧,所以安裝ITX主板。在這一條限制的情況下,用了一個(gè)多月時(shí)間去找合適的主板,發(fā)現(xiàn)ITX、M-ATX,基本都是4*SATA,很少有6*SATA的主板,ATX也基本都只有6*SATA,更多的口只能是特殊的板或者是尺寸更大的其他平臺(tái)的板,如服務(wù)器或HEDT平臺(tái)就會(huì)有更多的選擇,而這,價(jià)格會(huì)上天,所以PASS(而且這些主板似乎都不支持SATA port multiplier,當(dāng)時(shí)查的時(shí)候據(jù)說(shuō)是有一部分主板的控制器是可以支持的,但是沒(méi)有找到詳細(xì)的可以支持的相關(guān)資料,倒是類(lèi)似的外接卡淘寶上有很多,這對(duì)于跑不滿(mǎn)SATA接口的機(jī)械硬盤(pán)來(lái)說(shuō)也不失為一個(gè)解決方案)。
2.要有6盤(pán)位。(因?yàn)槟苷业降腎TX板子最多只有6*SATA,在滿(mǎn)足以下需求的情況下)
3.CPU有可以升級(jí)的余地。有比較好的功耗比。(高性能的低噪音解決方案也是可以的)
4.可以安裝性能不錯(cuò)的顯卡。
5.良好的供電。(這一點(diǎn),最廉價(jià)的選擇便是服務(wù)器的1U電源了)
6.雙網(wǎng)口,可以有更多的用途(這里又是一個(gè)坑。一般的雙網(wǎng)卡主板,很少有兩個(gè)網(wǎng)卡相同型號(hào)的,而我現(xiàn)在的這個(gè),一個(gè)是I211,一個(gè)是I219-V,而只有I219-V支持NIC Teaming,WOL以及其他的一些功能。因此這種雙網(wǎng)口主板是不能NIC Teaming的)
7.盡量良好的噪音管理。
8.如果有IPMI那就再好不過(guò)了。
9.RGB,fxxk off.
經(jīng)過(guò)了長(zhǎng)時(shí)間的觀察,應(yīng)該是14年年底,在淘寶偶然發(fā)現(xiàn)了一個(gè)退役的安全監(jiān)控主機(jī),安達(dá)泰監(jiān)控系統(tǒng)的多盤(pán)存儲(chǔ)服務(wù)器。問(wèn)店家要了詳細(xì)的說(shuō)明后,經(jīng)過(guò)一番查詢(xún),主板是一個(gè)臺(tái)灣做工控的廠家的板子(品牌忘記了……板子在老家,有機(jī)會(huì)補(bǔ)圖),是Q965芯片組(最高可以上到Q6700),支持Vpro(即有簡(jiǎn)單的遠(yuǎn)程控制的功能,Web界面可以重啟、開(kāi)關(guān)機(jī),沒(méi)有其他的功能了。不清楚是外置的其他芯片提供的功能,還是主板芯片組提供的。但是Intel ME的功能沒(méi)有用起來(lái),可以進(jìn)去設(shè)置界面,但不知道怎么使用……),雙網(wǎng)卡,單槽PCI-E,五SATA外置硬盤(pán)位,內(nèi)置一個(gè)工控SATA硬盤(pán)固定板,即6SATA支持,以及全漢1U的電源,白牌80Plus。雙路12V*16A(這是個(gè)伏筆……),后置的12cm或8cm風(fēng)扇孔。看了機(jī)箱的內(nèi)部空間,硬盤(pán)位的后面完全可以裝一個(gè)120的水冷,這一看,md,完美啊,這機(jī)箱的做工,幾乎符合上述的所有功能,除過(guò)使用Q6700功耗高一點(diǎn),其他的沒(méi)得說(shuō),于是在滿(mǎn)懷期待下用350大洋不包郵的價(jià)格打包回了這個(gè)09年的垃圾。店家慷慨地送了兩個(gè)2G的金士頓正品內(nèi)存,一個(gè)E6700亮機(jī)CPU。然后上了從家里帶出來(lái)的兩個(gè)500G的硬盤(pán),暫時(shí)先用起來(lái)了。
當(dāng)時(shí)是在大學(xué),所以經(jīng)費(fèi)有限,想要折騰的話幾乎沒(méi)有多少試錯(cuò)成本,只能在前期的挑選上花更大的功夫,去確定自己的每一步都是正確的。而這種能力,到現(xiàn)在竟然成了我最有用的能力……買(mǎi)東西買(mǎi)出技能,可以說(shuō)是非常貧窮了。
從此開(kāi)始,折騰Windows的方案就開(kāi)始了。
發(fā)展
一開(kāi)始的時(shí)候宿舍由于自己有筆記本,所以這臺(tái)機(jī)器的作用僅僅是用來(lái)當(dāng)服務(wù)器,用一根網(wǎng)線連接到筆記本即可。當(dāng)時(shí)的它充當(dāng)了(某個(gè)功能)的角色,也扮演者筆記本備份的功能,還有PT,其他由于知識(shí)和經(jīng)費(fèi)限制還沒(méi)有開(kāi)發(fā)。
用了一段時(shí)間,發(fā)現(xiàn)CPU的渦輪風(fēng)扇和電源的風(fēng)扇噪音確實(shí)很大,當(dāng)時(shí)主機(jī)就放在我室友的床下,我在上鋪都可以停到噪聲,總覺(jué)得挺對(duì)不起他的……
于是我開(kāi)始了尋找靜音的方法,花了35塊大洋買(mǎi)了一個(gè)銅底的超薄散熱器,給電源換了兩個(gè)建準(zhǔn)的磁懸浮風(fēng)扇,于是噪音的問(wèn)題解決了。(后來(lái)折騰的時(shí)候,發(fā)現(xiàn)這個(gè)銅底的超薄散熱器,原裝的1900轉(zhuǎn)的風(fēng)扇雖然只有65W的解熱能力,但是我換了一個(gè)4000轉(zhuǎn)的臺(tái)達(dá)8015后,這玩意竟然滿(mǎn)轉(zhuǎn)速可以壓105瓦不到90度。這讓我非常震驚,只是噪音有點(diǎn)大了。)
后來(lái),這臺(tái)服務(wù)器中間經(jīng)過(guò)了多次的軟件更替,Ubuntu,PVE,ESXi(印象中當(dāng)時(shí)這個(gè)好像失敗了),還有一些其他的花樣,從此也開(kāi)始了學(xué)習(xí)使用Linux的道路(即,遇到問(wèn)題Stackoverflow),不過(guò)這個(gè)過(guò)程里,探索的性質(zhì)比較多,而且由于自己的記錄習(xí)慣并不好,遇到問(wèn)題查詢(xún)解決之后不去記錄,再次遇到的時(shí)候又得重新開(kāi)始,直到后來(lái)使用了OneNote,才開(kāi)始有了一些個(gè)人的積累。也變成了義務(wù)修理員……(當(dāng)時(shí)還有個(gè)女同學(xué)找我給她修電腦,修了一兩次后我說(shuō)以后有問(wèn)題先用Windows疑難解答,可以解決大部分問(wèn)題,于是以后便沒(méi)有找過(guò)我了……PS:工科班級(jí),僅有的兩個(gè)女生之一……)后來(lái)在折騰了一圈之后,又回到了Windows,中間換過(guò)一次電源,購(gòu)置了兩個(gè)3T的HGST硬盤(pán),就這樣一直用到了18年。
到18年有了一點(diǎn)閑錢(qián),所以開(kāi)始物色升級(jí)的事情。因?yàn)橐郧暗墓P記本的獨(dú)顯壞掉了,而這臺(tái)電腦的PCI-E是空閑的,所以加了一個(gè)RX550 2G的工程樣品,單風(fēng)扇單槽(我記得這個(gè)好像是當(dāng)時(shí)最強(qiáng)的性?xún)r(jià)比單槽,180元,1.8TFLOPS的FP32性能,不到30W的功耗,雖然不是滿(mǎn)血版,不過(guò)完全夠用),置辦了一個(gè)DIY 4K顯示器,開(kāi)始了臺(tái)式機(jī)桌面之旅。
就在這個(gè)時(shí)候,物色了華擎Z270-ITX/AC這個(gè)板子,同時(shí)換了8700T-ES的處理器,從四核四線程升級(jí)到了6核12線程,散熱依舊使用原來(lái)的。硬盤(pán)也退役了那兩個(gè)500G的硬盤(pán),換了三個(gè)HGST 3T的硬盤(pán),5*3T已經(jīng)成形,添加了一塊sm961作為系統(tǒng)盤(pán),這個(gè)時(shí)候看到文件管理器里那五個(gè)盤(pán)就覺(jué)得很不舒服,有兩個(gè)已經(jīng)是處于紅色的狀態(tài),于是陣列的想法開(kāi)始了。補(bǔ)充一句,這幾個(gè)3T的可靠性還是可以的,在買(mǎi)來(lái)的時(shí)候,清零并沒(méi)有清理掉SMART self-test信息,所以用GSmartControl可以看到以前的自檢記錄,買(mǎi)來(lái)的五個(gè)盤(pán)基本都在8000-12000小時(shí)左右。這五個(gè)盤(pán)到退役在我手里使用了大約15000小時(shí),計(jì)算了一下年寫(xiě)入大概在100T左右,也就是一個(gè)盤(pán)20T左右,這距離企業(yè)盤(pán)年寫(xiě)入550T負(fù)載還有特別遠(yuǎn)的距離。所以加起來(lái)30000小時(shí)的使用時(shí)間,沒(méi)有出任何問(wèn)題,這讓我對(duì)災(zāi)備有了新的看法(說(shuō)白了個(gè)人用災(zāi)備就是備突發(fā)事件以及手殘,不過(guò)有時(shí)候手殘都救不了,所以還是上云吧)。
在仔細(xì)評(píng)判了自己的使用需求,一開(kāi)始我便選擇了Snapraid+StableBit?DrivePool的方案,感謝一個(gè)大佬提供這個(gè)方案。
這樣用了一年多,到19年年末,由于不滿(mǎn)足單盤(pán)的性能,開(kāi)始折騰加速的方案,先后使用了幾個(gè)加速的軟件方案,但基本都只能是內(nèi)存加速,而那個(gè)時(shí)候的電腦只有8*2的內(nèi)存,完全不夠用,所以就放棄了這個(gè)方案,轉(zhuǎn)而買(mǎi)了一個(gè)鎂光P300 100G作為緩存盤(pán),使用PrimoCache為機(jī)械硬盤(pán)加速。說(shuō)實(shí)話,這樣的方案現(xiàn)在來(lái)看,其實(shí)對(duì)于讀寫(xiě)不頻繁的使用還是可以接受的,只要不亂折騰,這個(gè)方案的可恢復(fù)性,性能,以及可靠性比整列要高很多,如果升級(jí)了二級(jí)緩存盤(pán)的大小和內(nèi)存大小,關(guān)掉Stable DrivePool的Balance,完全可以一直用下去,并且不會(huì)存在陣列的Reserve Space的問(wèn)題,每個(gè)盤(pán)都可以在99%甚至100%的時(shí)候再更換,而陣列如果想要在不下線的情況下熱替換,就需要經(jīng)歷無(wú)比冗長(zhǎng)的重建時(shí)間,而且在保留空間不夠的情況下速度可想而知。而且換盤(pán)也非常方便,只需要在Stable Drivepol里移除這個(gè)盤(pán),把里面的東西按照原來(lái)的結(jié)構(gòu)拷貝到新的硬盤(pán)里,即可完成替換,也不需要經(jīng)歷陣列的重建??上В?yàn)楹髞?lái)在一次折騰的過(guò)程里,忘記了先取出硬盤(pán),一個(gè)盤(pán)的結(jié)構(gòu)受到了損壞,也不知什么時(shí)候打開(kāi)了StableBit的Balance,導(dǎo)致那個(gè)損壞的盤(pán)有個(gè)一部分寫(xiě)入,其他盤(pán)的文件結(jié)構(gòu)也受到了破壞,而那個(gè)損壞的盤(pán)不知為何就是無(wú)法從StableBit的“陣列”里刪除,導(dǎo)致在后面使用Snapraid恢復(fù)的時(shí)候丟失了一部分?jǐn)?shù)據(jù),所幸大部分都是PT保種的文件,沒(méi)有丟失太多的個(gè)人文件,也算是萬(wàn)幸了。從這個(gè)時(shí)候開(kāi)始就不再想用StableBit了,想找一個(gè)替代的方案。畢竟這軟件的可靠性(或者說(shuō)是我自己的可靠性)太低了,在出事故的時(shí)候,很難讓人有放心的使用體驗(yàn)。
這個(gè)時(shí)候內(nèi)存也降價(jià)了,于是在半年之內(nèi)從8G*2升級(jí)到16G*2,又升級(jí)到現(xiàn)在使用的32G*2,內(nèi)存算是已經(jīng)沒(méi)有可以折騰的空間了,而這也是我可以肆無(wú)忌憚使用虛擬機(jī)的一個(gè)鋪墊。
因?yàn)椴幌霌p毀已經(jīng)有的文件,也沒(méi)有多余的硬盤(pán)做備份,因此開(kāi)始用虛擬磁盤(pán)開(kāi)始折騰存儲(chǔ)空間,ZFS等方案,每一個(gè)使用大約3-6個(gè)月,其中模擬各種情況,來(lái)考驗(yàn)性能和災(zāi)難恢復(fù)能力。當(dāng)然,為了可以安全地折騰,用5*6T替換了以前的5*3T硬盤(pán),原來(lái)的數(shù)據(jù)拷貝一部分常用的到陣列里去測(cè)試,測(cè)試完畢后便可以放心地銷(xiāo)毀。
對(duì)于Intel RST和Windows存儲(chǔ)空間,我是沒(méi)想到,這兩個(gè)的Raid5的性能可以如此之差,5盤(pán)Intel RST大約100M/S的讀寫(xiě)速度,Windows存儲(chǔ)空間也基本差不多,于是這兩個(gè)方案在套了PrimoCache后使用了一個(gè)多月后就放棄了,因?yàn)樵诰彺姹P(pán)寫(xiě)滿(mǎn)之后,性能的下降是無(wú)法接受的,如果再有多線程的寫(xiě)入,那么性能會(huì)更加糟糕,尤其是Windows存儲(chǔ)空間,甚至?xí)舻綆装貹B的速度。那么,是時(shí)候替換Micron P300了。于是現(xiàn)在使用的三星SM863a成功地成為了緩存盤(pán),系統(tǒng)盤(pán)也一并換成了PM981。然而,受限于PrimoCache不太可靠的異常重啟恢復(fù),每次異常關(guān)機(jī)時(shí),好不容易寫(xiě)滿(mǎn)的緩存就被清零了,這讓人很是頭大,而且其中還遇到過(guò)幾次作為REFS緩存時(shí),開(kāi)機(jī)無(wú)法正確恢復(fù)REFS分區(qū),刪除緩存之后可以恢復(fù)。只是有一次完全無(wú)法恢復(fù)了,REFS分區(qū)也變成了RAW,無(wú)奈之下,只能使用Windows自帶的refsutil把一部分沒(méi)有備份的數(shù)據(jù)恢復(fù)出來(lái)。這可難倒我了,又不能部分恢復(fù),所以只能咬牙買(mǎi)了一個(gè)WD 16T的氦氣盤(pán),作為恢復(fù)的載具。
至此,我覺(jué)得這兩個(gè)方案已經(jīng)可已PASS了。不過(guò)需要補(bǔ)充的是,Windows儲(chǔ)存空間在服務(wù)器版本的系統(tǒng)上還是不錯(cuò)的,雖然順序讀寫(xiě)也不是很好,但是如果有16盤(pán)甚至更多盤(pán),加上分層存儲(chǔ),其實(shí)性能也還可以不錯(cuò)??上У氖荳indows10專(zhuān)業(yè)版、工作站版、企業(yè)版、LSTC等等都是不支持的。所以也就沒(méi)有使用的必要了。那么,Windows下還能用什么呢?好像只有虛擬機(jī)和ZFS for Windows了。而ZfW是一個(gè)半成品(也算不上),確實(shí)還有很多的問(wèn)題,使用了幾周就PASS了,那么就只剩下虛擬機(jī)的ZFS了。
于是,找一找以前的經(jīng)驗(yàn),想要滿(mǎn)足ZFS的性能只能選擇Hyper-V,因?yàn)橹挥兴?0Gbps的網(wǎng)卡。而Hyper-V打開(kāi)之后,內(nèi)存讀寫(xiě)速度會(huì)暴降,延遲也會(huì)暴增,在不開(kāi)的時(shí)候3200MHz讀寫(xiě)大概是45000-48000M/S,延遲大概45-50us,打開(kāi)之后就只剩下30000左右了,延遲也會(huì)上升到100us左右??墒悄怯钟惺裁崔k法呢?只能硬著頭皮用了。不過(guò)令人欣慰的是,這玩意的性能確實(shí)強(qiáng),在Windows虛擬機(jī)里順序讀寫(xiě)可以到350-450M/S,4K也可以有15-20M/S的性能,但是唯一的問(wèn)題是,在測(cè)試32線程1隊(duì)列深度的4K讀寫(xiě)時(shí),電腦的響應(yīng)率會(huì)暴降,回到鼠標(biāo)移動(dòng)都無(wú)法順暢的程度,就和以前使用Ubuntu網(wǎng)絡(luò)滿(mǎn)載的時(shí)候Gnome假死的情況是基本一致的,這應(yīng)該是Windows調(diào)度器的問(wèn)題,詳細(xì)高深的設(shè)置確實(shí)不懂,所以只能使用Process Lasso Pro來(lái)手動(dòng)更改虛擬機(jī)的進(jìn)程——即“Vmmem”的進(jìn)程優(yōu)先級(jí)、I/O優(yōu)先級(jí)、內(nèi)存優(yōu)先級(jí),以及配合虛擬機(jī)的CPU限制來(lái)改善這個(gè)狀況。限制后,卡頓的情況基本消失,但是相應(yīng)的讀寫(xiě)速度也會(huì)下降,因此這兩者之間在微調(diào)的情況下應(yīng)該是可以有一個(gè)平衡的解,需要進(jìn)一步嘗試去改善。
至于WSL2的定制內(nèi)核支持ZFS,按照教程編譯好,也把硬盤(pán)直通給了WSL,但是ZFS無(wú)法識(shí)別到硬盤(pán),所以放棄了。因?yàn)槲矣玫氖?1H2的19044.1387版本,在后續(xù)的Dev版本里完善了WSL2的相關(guān)設(shè)置,我記得似乎是在20xxxx某個(gè)版本的時(shí)候,這個(gè)版本之后,Dev通道就結(jié)束了Windows10的發(fā)布,轉(zhuǎn)而發(fā)布Windows11,相信聰明的你知道了Windows11的真相。所以這個(gè)功能或許得在Windows11下才可以正常使用?留待以后折騰(或許不)。
方案
至此,Windows下的陣列方案基本確定了:使用Hyper-V的TrueNAS直通給5個(gè)硬盤(pán),并分配2G(基礎(chǔ)需求)+16-32G(Arc需求)=18-34G的內(nèi)存給TrueNAS虛擬機(jī),5個(gè)硬盤(pán)做RaidZ1,然后用PrimoCache使用一級(jí)緩存8-16G緩讀不緩寫(xiě),二級(jí)緩存10%緩寫(xiě),90%緩讀,延遲寫(xiě)入30s,在64KB的單元大小的情況下,大概需要內(nèi)存10-18G,然后減去其他虛擬機(jī)所需的內(nèi)存以及保留足夠的日常使用的內(nèi)存,剩下的就是TrueNAS虛擬機(jī)可以使用的內(nèi)存了,這里建議虛擬機(jī)關(guān)閉動(dòng)態(tài)內(nèi)存分配,這個(gè)功能其實(shí)在大部分時(shí)候是沒(méi)有作用的(由TrueNAS的緩存策略決定),而且會(huì)造成一些莫名其妙的問(wèn)題。在這里,我分配了PrimoCache8G的一級(jí)緩存,TrueNAS 24G的內(nèi)存,緩存占據(jù)了大約34G的空間,去除系統(tǒng)及軟件運(yùn)行的內(nèi)存,空閑內(nèi)存還有8G左右,足夠日常使用了。在這里還有一個(gè)小要點(diǎn)說(shuō)明,Windows的內(nèi)存策略中,有一部分空間會(huì)顯示為“備用”,這些內(nèi)存空間其實(shí)是緩存了內(nèi)容,只是沒(méi)有被占用,可以?xún)?yōu)先釋放,但是在由軟件命中到該空間,則可以直接存取,而未用的空閑空間則是完全沒(méi)有使用的內(nèi)存。在電腦開(kāi)機(jī)時(shí)間夠長(zhǎng)的情況下,無(wú)論多大的內(nèi)存其實(shí)都是可以被作為“備用”的,所以長(zhǎng)時(shí)間不關(guān)機(jī)的好處就體現(xiàn)出來(lái)了。

總結(jié)一下這些方案的優(yōu)劣,以便于更加清晰的對(duì)比:

暫時(shí)沒(méi)有嘗試的情況:
如果ZFS我拿出一個(gè)舊盤(pán)之后,使用其他軟件做舊盤(pán)到新盤(pán)的扇區(qū)復(fù)制,在插入新盤(pán)后,可以無(wú)損合并到Raid中嗎?如果可已的話,那么ZFS的遷移簡(jiǎn)易性則可以給予更高的評(píng)分。如果其他的陣列也支持Resize的話也可以獲得更高的評(píng)分,但是我沒(méi)發(fā)現(xiàn)相關(guān)的功能。
此文的后續(xù)還在繼續(xù),以后會(huì)不定期更新。目前在使用TrueNAS in Hyper-V的方案,后續(xù)會(huì)考慮更換5*16T,在更換之前會(huì)嘗試上述的功能,如果可以的話,不出意外以后就是這個(gè)方案了。當(dāng)然如果PromoCache的功能可以更穩(wěn)定的話,那么這個(gè)方案的性能是非常OK的。

那么最后你便要問(wèn),為什么你一定要用Windows?換一個(gè)可以雙槽甚至四槽的機(jī)箱,現(xiàn)在淘寶上也有幾種選擇了,然后換一個(gè)M-ATX甚至ATX,使用PCI-E網(wǎng)卡,不香嗎?
其實(shí)這也不是不可以,首先折騰的樂(lè)趣是吧?雖然是每次都走在刀尖上,一不小心就弄丟文件,不過(guò)為了追求更加完美的方案,值了(才怪)!
其次,為什么要用Windows,其實(shí)我的有些東西我覺(jué)得還是跑在Windows下會(huì)更方便一點(diǎn),畢竟有最穩(wěn)定的GUI,這一點(diǎn)是毋庸置疑的。而且如果多機(jī)的話,另外一個(gè)機(jī)器必然要有一個(gè)虛擬的Windows,而這樣的局限性會(huì)很大,尤其是老黃不給Geforce和Quardo vGPU的功能的情況下,只能選擇直通,而直通了,其他虛擬機(jī)用錘子?你看看現(xiàn)在Windows,大力擁抱開(kāi)源,WSL2在一步一步成長(zhǎng),現(xiàn)在已經(jīng)可以支持GPU計(jì)算了,硬盤(pán)直通也可以了,只是端口映射還是要自己手動(dòng)映射,虛擬硬盤(pán)性能不太好之外,還有其他的缺點(diǎn)嗎(微軟的東西能沒(méi)有?Bull S...)?而在Windows下,我可以在一個(gè)機(jī)器上開(kāi)啟:Jellyfin、Calibre、NiceHxxh(不可名狀)、SVP、MadVR、Parsec、網(wǎng)心云、博納云、Docker、NextCloud、OneDrive、BackBlaze、qBittroent、BOINC,在有內(nèi)網(wǎng)穿透或者公網(wǎng)的前提下,可以部署各種遠(yuǎn)程工作的服務(wù)器(如果有強(qiáng)大的性能):Ansys Server、Comsol Server、Solidworks Server等等等等,不一而足,那么,一臺(tái)用不關(guān)機(jī)的多合一電腦,回家隨時(shí)都可以用,不香嗎?
不過(guò)嘛,人生沒(méi)有完美,事事都需要權(quán)衡利弊然后犧牲一些,那么我用安全性可靠性換來(lái)了便捷性,你覺(jué)得值嗎?

最后,說(shuō)一些折騰的經(jīng)驗(yàn)總結(jié):
1.一個(gè)PCI-E是完全不夠用的,所以至少M(fèi)-ATX起步?;蛘呷绻锌孔V的PCI-E一分多的方案,ITX也是可以用的。但是前提是帶寬夠用。
2.多網(wǎng)卡在大部分時(shí)候都是沒(méi)用的,所以在選購(gòu)主板的時(shí)候是可以不用在乎的,除非是有多網(wǎng)卡的硬性需求。而Windows下多網(wǎng)卡有個(gè)卵用。NIC Teaming有很多奇怪的BUG,所以建議能不聚合盡量不要聚合,不然你會(huì)頭疼的。
3.對(duì)于服務(wù)器來(lái)說(shuō),穩(wěn)定性和功耗是特別重要的,所以就別想著灰燼超頻,以及使用辣雞電源了,翻車(chē)一次所要經(jīng)歷的慘痛恢復(fù)過(guò)程,真的非常折磨人。當(dāng)然ECC也很重要,如果不是荷包緊張的話盡量使用服務(wù)器主板和ECC內(nèi)存。不然跑一段時(shí)間就會(huì)系統(tǒng)不穩(wěn)定(當(dāng)然這東西與主板的電氣性能有很大的關(guān)系,如果主板夠好的話,非ECC其實(shí)在大部分場(chǎng)景下還是很穩(wěn)定的)。
4.在架構(gòu)允許的前提下,盡量一機(jī)專(zhuān)用,穩(wěn)定性、可靠性和功能性、便利性不可得兼。
5.Windows 10在版本更新到現(xiàn)在,把很多以前可以使用的功能都砍了(無(wú)論是命令行還是GUI),成為了服務(wù)器版系統(tǒng)獨(dú)有的功能,例如儲(chǔ)存空間的分層儲(chǔ)存,Hyper-V的虛擬化網(wǎng)卡的固定IP(雖然可以通過(guò)手動(dòng)新建網(wǎng)卡解決,但是默認(rèn)的Default Switch不可以固定IP是在是一件非常難受的事情),頻繁的需要重啟的功能、安全更新。所以除非是有和我一樣的需求,不然還是不推薦使用Windows做這種多合一的方案。
6.災(zāi)備不備手賤,如果是個(gè)像我一樣的不折騰會(huì)死星人,那么不丟幾次數(shù)據(jù)是治不了這個(gè)病的,所以這個(gè)文章其實(shí)也就是在給大伙們提個(gè)醒,注意一點(diǎn)自己重要的文件,不要丟失了才后悔莫及。
7.噪音控制是一門(mén)很深?yuàn)W的學(xué)問(wèn),可惜在這一方面,電腦DIYer并沒(méi)有幾個(gè)人有興趣或者說(shuō)有能力去研究,偶爾會(huì)看到幾個(gè)人用機(jī)箱和風(fēng)扇去仿真,不過(guò)呢,這種只能改善散熱,而對(duì)噪音控制很難有特別大的影響,噪音控制需要結(jié)合具體的使用環(huán)境,有針對(duì)性地設(shè)計(jì)氣流氣壓和扇葉形狀以及轉(zhuǎn)速,達(dá)到系統(tǒng)的最佳工作效率,這樣可以在保持足夠的散熱的情況下有良好的噪聲表現(xiàn),具體可以參考一下PS3的散熱系統(tǒng)的設(shè)計(jì)。
8.遇到問(wèn)題使用事件查看器查看日志、Windows Debug工具查看Dump文件非常有幫助,可以解決基本99%正常途徑?jīng)]法解決的問(wèn)題,或者正常途徑需要花費(fèi)幾倍精力才能解決的問(wèn)題。而且微軟官方的幫助文檔非常全,使用方法基本上都有。鄙人已經(jīng)搞定了數(shù)次藍(lán)屏而原因是我完全沒(méi)有想過(guò)的(比如說(shuō)更新后給我報(bào)錯(cuò)"DRIVER_POWER_STATE_FAILURE",還原恢復(fù)正常,導(dǎo)致我屏蔽了關(guān)鍵更新。誰(shuí)能想到看了Dump后這是EveryThing造成的?更新了EveryThing后一切正常了。)
9.花費(fèi)的精力和收獲的東西有邊際效應(yīng),奉勸各位大學(xué)生好好珍惜時(shí)間,別整天打游戲折騰硬件了,完美,那是有閑有錢(qián)人的游戲(講一個(gè)不相關(guān)的勵(lì)志故事:兩個(gè)同學(xué)都保研到了清華,一個(gè)確實(shí)天生優(yōu)秀,而另外一個(gè)則有某985正教授的父母。看明白了就去學(xué)習(xí)?。?/p>
最后,祝各位大佬多多分享自己的人生經(jīng)驗(yàn)(然后坐享其成),嘿嘿。

補(bǔ)充內(nèi)容:
經(jīng)過(guò)了快一年時(shí)間,自己的電腦也更新?lián)Q代了。但是由于Intel不給力,沒(méi)有更新過(guò)WrokStation的CPU,自己現(xiàn)在用的是C422主板+W2295 es的CPU+128G RECC內(nèi)存+NVIDIA RTX A4000+WD 16T x 6(RaidZ2)+4T PM983a的組合,除過(guò)顯卡之外其他的都是二手的配件,相當(dāng)超值。這已經(jīng)是把原來(lái)的全部換掉了。
不過(guò)存儲(chǔ)的架構(gòu)還是一樣的,但是PromioCache的二級(jí)緩存換成了PM983a的一個(gè)分區(qū)。后續(xù)有打算加兩個(gè)獨(dú)立的NVME固態(tài)做raid1專(zhuān)門(mén)用來(lái)做緩存(但是目前還沒(méi)想好具體怎么搞,如果直接用Windows的軟Raid的話可能不是很靠譜,可能會(huì)主板的Raid),這樣的話PrimoCache的二級(jí)緩存寫(xiě)入延遲時(shí)間可以放心地給到10分鐘甚至更長(zhǎng),減少對(duì)硬盤(pán)的寫(xiě)入,降低讀寫(xiě)噪音(如果能有功能做寫(xiě)入均衡減少磁頭跳動(dòng)減少噪音的話那再好不過(guò)了。)
這套配置是大概3月份陸續(xù)開(kāi)始的,硬盤(pán)的購(gòu)置時(shí)間比較晚,但現(xiàn)在已經(jīng)跑了大概4000小時(shí)左右了,陣列穩(wěn)定沒(méi)有遇到任何問(wèn)題。只是PrimoCache不太給力,偶爾會(huì)遇到卡死或者開(kāi)機(jī)掉緩存的情況??赡苁歉略斐傻?,沒(méi)有仔細(xì)研究過(guò)。而巨大的二級(jí)緩存需要很久的時(shí)間才能填滿(mǎn)。命中率也只有75%-85%左右,不算很高。
因?yàn)樽罱_(kāi)了好多虛擬機(jī),內(nèi)存的使用也經(jīng)常在90-110G左右,需要通過(guò)虛擬機(jī)的IO太多,CPU的占用率時(shí)長(zhǎng)在25-30%,并且如果遇到有突發(fā)的硬盤(pán)IO即使是用了Process Lasso,還是會(huì)有一些卡頓出現(xiàn)。而且Windows下W2295的調(diào)度似乎是有問(wèn)題的,其Turbo Boost3.0的單核4.8GHz(4.7GHz?)是無(wú)法達(dá)成的,18核的頻率在任務(wù)管理器中只有3.7GHz,CPU-Z、Aida64也基本上只能觀察到3.9GHz的樣子。但是在Linux下,似乎是正常的,我可以看到3號(hào)核心的頻率是可以達(dá)到很高,不知道為何在Windows下怎么都是不行的。這從某種意義上就已經(jīng)失去了買(mǎi)工作站平臺(tái)的意義。這個(gè)平臺(tái)存在的意義在我看來(lái)就是CPU極高的單核睿頻用來(lái)做單核要求較高的軟件的工作,更多的核心可以在任務(wù)繁重的時(shí)候有更好的表現(xiàn)。但如果頻率只有3.7GHz,那為何不上多路服務(wù)器主板呢?有更多的核心,更多的內(nèi)存通道數(shù)量,PCI-E數(shù)量,更好的拓展性。
后續(xù)的話,可能還會(huì)再繼續(xù)研究一下顯卡虛擬化的事情,為眾多的虛擬機(jī)可以分配足夠的GPU資源用來(lái)做渲染或者轉(zhuǎn)碼解碼。如果一張顯卡無(wú)法實(shí)現(xiàn)的話短期內(nèi)是不會(huì)再考慮的。當(dāng)然如果是使用Windows 11的話,可以直接用WSL2的功能實(shí)現(xiàn),不必再做如此工作(但相對(duì)來(lái)說(shuō)如果搞定的話,Windows虛擬機(jī)也就可以使用顯卡的計(jì)算資源了)。
再,有可能還會(huì)添置一張光口網(wǎng)卡購(gòu)置PON Stick/光電轉(zhuǎn)換器,把路由的功能也集成到電腦中。使用虛擬機(jī)的OpenWRT或者其他作為網(wǎng)絡(luò)管理的工具。但還沒(méi)有想好具體應(yīng)該怎么做,宿主機(jī)的DHCP可能會(huì)是一個(gè)比較難以解決的問(wèn)題。如果需要如此的話,那就必須要有一個(gè)備用的網(wǎng)絡(luò)防止主機(jī)出現(xiàn)問(wèn)題導(dǎo)致斷連(幸好我有一個(gè)博通的4G網(wǎng)卡,可以使用轉(zhuǎn)接板直接使用,免去夠買(mǎi)4G外置網(wǎng)卡的煩惱)。目前能買(mǎi)到的路由器都是有各種不完美的地方。比如一般的光貓最多就只能作為一個(gè)撥號(hào)和WIFI使用,流控或者代理的話,基本是不可用的。如果還有其他的需求,比如作為DDNS,手動(dòng)路由表,等等一些很基礎(chǔ)但又不可或缺的功能上面都會(huì)有各種各樣的問(wèn)題。所以至今也沒(méi)有一個(gè)完美的方案出現(xiàn)。目前能想到最佳的,就是一個(gè)帶光口的軟路由,配上一個(gè)AP(光口或電口)就可以解決大部分問(wèn)題。但可惜帶光口的就只有R86s,但依舊處于不太好用的狀態(tài),所以暫時(shí)才會(huì)考慮上述方案。
順便什么時(shí)候研究一下瘦客戶(hù)機(jī)的VDI方案,看看里面有沒(méi)有什么可以借鑒的東西。
以及最近發(fā)現(xiàn)了一個(gè)比較有趣的東西:PIKVM,官網(wǎng)見(jiàn)此:https://pikvm.org/。以樹(shù)莓派為基礎(chǔ),可以遠(yuǎn)程轉(zhuǎn)發(fā)顯示、鍵鼠等功能,支持Redfish等等,功能強(qiáng)大,但是有點(diǎn)小貴。相比花生殼連遠(yuǎn)程SSH這種都要額外收費(fèi)的公司,不知高到哪里去了。
或許以后還有好多可開(kāi)發(fā)的功能。其實(shí)如果什么時(shí)候Windows在PVE下可以像直接裝在硬盤(pán)里使用的話,那我可能會(huì)把整體架構(gòu)改為直接使用PVE做底層了。但是目前可能還很遙遠(yuǎn)。
PS:無(wú)法添加外鏈真的很難受啊!不考慮一下嗎?@陳睿。

2023.07.06補(bǔ)充:
最近閑暇研究了一下ISCSI的MPIO(Multipath-IO)功能,在目前Hyper-V受限于10Gbps網(wǎng)卡速度下,可以通過(guò)多網(wǎng)卡來(lái)提高虛擬機(jī)和宿主機(jī)間的最大速度上限。目前搞了四個(gè)虛擬網(wǎng)卡,理論最大40Gbps。但單網(wǎng)卡用iperf3測(cè)宿主機(jī)和TrueNAS虛擬機(jī)間的速度在5Gbps左右。四個(gè)網(wǎng)卡目前看到的最大順讀(256K Block)差不多有1800M/S(7200IOPS)。也就是說(shuō)在一定程度上可以把PrimoCache從方案中拿掉了,如果把緩存掛在ZFS中使用效果理想的話。Hyper-V的網(wǎng)卡設(shè)置中是有RDMA選項(xiàng)的,不清楚開(kāi)關(guān)是否有作用,如果有的話速度應(yīng)該還能快很多。
詳細(xì)內(nèi)容的話最近應(yīng)該會(huì)單獨(dú)發(fā)一篇文章。拋一些一起討論一下。