就隨手記錄下自己的NAS用了些什么東西吧

0x00:硬件
Dell R730xd
Seagate Exos 12T x8,倉(cāng)庫(kù)盤(pán)
Intel S3500 1.2T,系統(tǒng)盤(pán)
ps4上拆下來(lái)的2.5寸500g機(jī)械,掛下載用的炮灰(
老電腦上拆下來(lái)的3T和5T盤(pán),型號(hào)懶得看了
Intel x550,雙萬(wàn)兆電口網(wǎng)卡

0x01:系統(tǒng)
直接Archlinux,不搞什么ESXI、PVE,只玩真實(shí)(

0x02:文件系統(tǒng)
LVM + Luks?+ Btrfs:
拓?fù)淙缦?,主要有三個(gè)分區(qū)(1.2T的root,3T+5T用LVM拼起來(lái)的一個(gè)8T,500G的下載炮灰)。
所有的文件系統(tǒng)(除EFI分區(qū))均使用luks加密,密鑰存儲(chǔ)在一個(gè)U盤(pán)上。system-boot在啟動(dòng)時(shí)會(huì)自動(dòng)從該U盤(pán)中讀取密鑰并解密root文件系統(tǒng),之后再根據(jù)/etc/crypttab中的內(nèi)容解密其他分區(qū),保障數(shù)據(jù)安全。
?ZFS:


主要的數(shù)據(jù)存放處,8塊12T希捷企業(yè)盤(pán)組成的RaidZ2陣列,開(kāi)啟ZFS自帶的加密功能功能。key文件索性就放root分區(qū)下了,反正root分區(qū)也是加密過(guò)的。
zrepl:

用來(lái)定時(shí)對(duì)zfs陣列創(chuàng)建快照,并按照規(guī)則清理快照。

0x03: 文件分享
Samba:
這沒(méi)啥好說(shuō)的,給家里所有設(shè)備提供文件訪問(wèn)服務(wù)的,順便開(kāi)啟了Time Machine功能給Mac用。
iSCSI:
前段用的targetcli,后段用內(nèi)核提供的LIO,在zfs陣列上劃一個(gè)4T子卷用來(lái)給win裝Steam游戲庫(kù)的。一些使用反作弊的游戲(比如彩虹六號(hào)圍攻,apex)在把游戲文件放在samba上會(huì)報(bào)錯(cuò)無(wú)法啟動(dòng),iscsi則沒(méi)有任何問(wèn)題。

0x04:其他服務(wù)
以下服務(wù)均在容器中部署
Traefik:

服務(wù)網(wǎng)關(guān),所有流量的入口,部署在容器中并開(kāi)啟基于docker的服務(wù)發(fā)現(xiàn),這樣其他部署在docker中的服務(wù)不需要每個(gè)都占用一個(gè)宿主機(jī)的端口,只由traefik綁定80和443即可。
Portainer:

方便管理容器的,喜聞樂(lè)見(jiàn)沒(méi)啥可說(shuō)的
Prometheus + Grafana:
提供監(jiān)控和展示的,告警我懶得配所以沒(méi)裝Alertmanager,我主要使用的板子包括
Node Exporter Full:節(jié)點(diǎn)監(jiān)控,由prometheus node exporter提供。

Node - ZFS Status:ZFS監(jiān)控,可以看到緩存大小、命中率等信息,由prometheus node exporter提供

S.M.A.R.T Dashboard:硬盤(pán)信息監(jiān)控,實(shí)現(xiàn)看這個(gè)repo(https://github.com/micha37-martins/S.M.A.R.T-disk-monitoring-for-Prometheus)

v2ray dashboard:網(wǎng)關(guān)的流量情況,你懂的,實(shí)現(xiàn)看這個(gè)repo(https://github.com/wi1dcard/v2ray-exporter)

Filebrowser:
基于web的文件管理和對(duì)外分享(tls由traefik提供)

Aria2 + AriaNG:
http + bt文件下載,我只用來(lái)下http的東西,bt用下面的transmission

Transmission:
bt和pt下載

Syncthing:
多設(shè)備文件同步(雖說(shuō)我只用來(lái)備份狒狒14的游戲設(shè)置

Bililive-go:
自己寫(xiě)的錄直播的小玩具

0x05:其他
tbd