HPE GEN10 安裝 Openmediavault NAS 管理系統

20 Jun, 2018 / 1,586 words / 6 minutes read

由於群暉 DSM 的丟失數據和第三方包管理器的使用體驗太差,想從頭開始自己搭建一個 NAS

目前需要實現的功能如下:

  1. 具有擴容能力的存儲系統
  2. 多平台客戶端外網連接
  3. 多用戶私有網盤
  4. 全能下載機
  5. 文件共享
  6. 文件同步

本文使用 Linux 從頭開始搭建自己的 NAS 管理系統


前期準備

硬件相關

Gen 10 本體提供四盤位用於存放 HDD,如果需要添加一塊 SSD 用於操作系統,建議購買

Sata5 轉接電源線Sata3 數據線


HPE Gen10 Microserver 主板 BIOS 官方下載

通過 WEPE 升級 BIOS

For Windows ZA10A350(28 May 2018)

For Linux ZA10A350(28 May 2018)

升級完成後,會有 HPE 的二維碼顯示

系統構建

使用開源的 Linux 作為操作系統

Gen10 用戶由於 Debian 使用的 Linux kernel 4.9.x 對 AMD CPU 有 Bug#853122 未修復, 建議使用基於 DebianDeepin 作為系統

使用燒錄工具創建啟動盤

etcher for Window/macOS/Linux

其他工具參考 https://wiki.archlinux.org/index.php/USB_flash_installation_media

1. 具有擴容能力的存儲系統

方案一 直接使用硬盤分區

  • 系統硬盤和存儲硬盤分離

  • 建議使用 ext4 作為文件系統

安裝操作系統時選擇對系統所在盤進行分區和掛載點設定,例如 EFI,/,home,swap 交換分區

方案二 直接使用 RAID 容錯式磁碟陣列

RAID - 磁盤陣列,是一種將多個硬盤組成具有冗餘能力的陣列設備進行使用的技術。磁盤陣列有軟硬之分,通過操作系統中的軟件實現的稱爲軟陣列(Soft-RAID),由外置卡管理的稱爲硬陣列(RAID)。

通常有以下幾種模式:

RAID 0

由 2 塊以上的硬盤組成,容量爲所有硬盤的容量之和,沒有冗餘和錯誤修復能力,磁盤性能和吞吐量最佳,陣列中任何一塊硬盤發生損壞,整個陣列設備中的數據都將丟失。這種形式的磁盤陣列只適合存儲那些安全要求最低的數據。

RAID 1

由 2 塊以上硬盤組成,最高可用容量爲磁盤總容量的 50%,每塊硬盤之間互做鏡像,任何數據都會在陣列中的每一塊硬盤上存取。磁盤利用率較低,性能和吞吐量較差,但冗餘能力最佳。適合存儲安全要求較高的重要數據。

RAID 5

由 3 塊以上硬盤組成,每塊硬盤都有一部分空間被用戶數據校驗,實際會有一塊硬盤容量的空間被用作數據校驗,剩餘的容量爲可用存儲,任何一塊硬盤損壞不會丟失數據。這種模式兼顧了冗餘和性能,適合存儲安全性要求較高的數據。

RAID 10

是由 2 個 RAID 1 組成的 RAID 0。這種形式即能獲得 RAID 1 的冗餘能力,又能獲得 RAID 0 磁盤性能,可用容量爲磁盤總容量的 50%。

RAID 的容量計算參考 https://www.synology.com/en-uk/support/RAID_calculator

openmediavault RAID 文檔見 https://openmediavault.readthedocs.io/en/latest/administration/storage/raid.html

2. 多平台客戶端外網連接

需要公網 IP 做 DDNS, 然後使用路由器的端口轉發功能對應 NAS 上服務的端口即可

推薦 no-ip 提供的免費 DDNS https://www.noip.com/remote-access

3. 多用戶私有網盤

方案一 seafile

C 語言構建的開源網盤方案

建議數據庫使用 mysql,如果覺得配置 lnmp 環境繁瑣可以試試看 寶塔面板

安裝說明:https://manual.seafile.com/deploy/using_mysql.html

支持平台:Windows/macOS/Linux/Android/iOS

客戶端下載:https://www.seafile.com/en/download/

方案二 nextcloud

世界上最好的語言 PHP 構建的開源網盤方案

建議數據庫使用 mysql,如果覺得配置 lnmp 環境繁瑣可以試試看 寶塔面板

安裝說明:https://docs.nextcloud.com/server/13/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

支持平台:Windows/macOS/Linux/Android/iOS

客戶端下載:https://nextcloud.com/install/#install-clients

4. 全能下載機

方案一 qbittorrent-nox

僅使用 web-gui 的 qbittorrent

安裝說明:https://github.com/qbittorrent/qBittorrent/wiki/Running-qBittorrent-without-X-server#Install_qBittorrentnox_from_binary_package

之後可以通過 caddy 反代 https(文章後面說)

記得配置路由器的端口轉發,包括 BT,DNT 監聽端口

方案二 aria2c + webui-aria2

參考 https://ky0n.xyz/aria2c-installation/

記得配置路由器的端口轉發,包括 BT,DNT,JSON-RPC 監聽端口

5. 文件共享

方案一 samba

先去 openmediavault 的設置,進入 Access Rights Management - Shared Folders 增加分享目錄

再去 Services - SMB/CIFS 裡面添加剛剛加入的分享目錄並增加用戶權限

方案二 WebDAV

使用 caddy 完成 WebDAV 的目錄分享

前往 https://caddyserver.com/download 下載 caddy 的二進制文件

編輯 caddyfile 配置文件(其他的服務也可以使用 caddy 反向代理,證書來自 letsencrypt,參考 https://github.com/Neilpang/acme.sh)

:1234 {
 gzip
 tls /path/ssl/nas.crt /path/ssl/nas.key
 proxy / http://yourIP:8887
}

:1235 {
 gzip
 tls /path/ssl/nas.crt /path/ssl/nas.key
 proxy / http://yourIP:6799
}

:1236 {
 gzip
 tls /path/ssl/nas.crt /path/ssl/nas.key
 proxy / http://yourIP:9998
}


youWebDavDomain {
  basicauth /srv username password
  tls /path/caddy/ssl/nas.crt /path/caddy/ssl/nas.key
  webdav {
     scope /srv
  }
}

openmediavault 掛載方式是使用 /srv/dev-disk-by-id-ata-{deviceVendor}_{deviceModel}_{serialNumber}-part{number} 的格式,所以此時需要共享 /srv 目錄

使用配置文件啟動 caddy

chmod +x caddy
./caddy -conf="/path/Caddyfile"

具體的 caddy 配置參考 https://segmentfault.com/a/1190000008742322
具體的 caddy webdav 配置參考 https://caddyserver.com/docs/http.webdav

方案三 FTP/SFTP

先去 openmediavault 的設置,進入 Services - FTP 開啟設置即可

由於沒有可視化的文件管理器,FTP/SFTP 可以使用 Filezilla 作為遠程管理文件的方式

6. 文件同步

方案一 seafile

支持同步功能

參考之前的多用戶私有網盤方案

方案二 nextcloud

支持同步功能

參考之前的多用戶私有網盤方案

方案三 syncthing

安裝說明:https://docs.syncthing.net/

下載:https://syncthing.net/

之後啟動 web-gui 介面,輸入相應的 key 就可以配對成功,建議使用自帶的 中繼服務器