升級家用的NAS系統

升級家用的NAS系統

長年從事電腦相關的工作
但我對升級電腦一直抱持的可以用夠用就好
很少會跟隨潮流在更替電腦零件

會讓我想升級電腦的主要原因
不外乎是規格的躍進像早期的IDE硬碟介面淘汰成SATA介面
為此讓我考慮更換主機版來支援新IO介面
還有CPU規格世代躍進如486 -> 586
我是AMD CPU家族的愛用者專科時代從
AMD 486 DX2-66 超頻到100MHz使用

到快畢業仍在用 AMD K5-586-133 超頻到166MHz使用

工作後第一次領薪水買了AMD K6 Socket 939 用了三四年直到主機板故障

至現在主力AMD Ryzen 5 1500X Quad-Core on AM4 socket
我好像沒有為自己買過Intel系統的桌機。

手上有的Intel CPU系統多來自於朋友升級後多的轉送予我的
還有從公司報廢舊電腦買回家的
而自己又不喜歡把還能工作的零件和電腦丟棄
總會想儘方法讓其剩餘價值發揮到最後
也因如此家裡自己的工作室堆滿的電腦相關的零件/機箱/電源等等。

會開始用NAS來備份自己的資料是從學習Linux作業系統開始
因為Linux能很好的在舊電腦上發揮不錯的效能
跟Windows相較起來有更長的使用年限
以前也試過用Solaris x86系統
但那效能沒有Linux的好在同樣的硬體跑

而Linux能應用的範圍很廣
在ADSL剛盛行時我就實作過用
iptable堆壘規則的防法牆及NAT轉址IP分享器
或安裝OpenWRT System應用路由器
或安裝vyOS System跑的vSwtich或Wireless AP等網路應用

其他網路應用還有像網路電子相薄
共享辦公文件系統
專案經理人管理系統
種子下載也玩
音樂多媒體庫搭配iTune使用等等

近年來Cloud很熱門
我也試著把一些平時的應用改用雲端公司提供的服務
來滿足我知識與文件管理的需求
但重要的照片與影像記錄還是會儘量留在家裡備份

升級硬體規格

新購硬體技嘉GA-J3455N-D3H主機板整合Intel J3455N (X皮網購)
金士頓 Kingston KVR16LS11/8 DDR3L 1600 8G 1.35V 低電壓 筆記型記憶體x2(露X網購)
機箱用閒置的ITX半高機箱內建電源
硬碟4顆750GB硬碟透過延長的SATA線接到獨立供電的外接盒(原為公司OEM NAS機箱)

軟體安裝

為TrueNAS 12.0安裝在USB 32GB隨身碟上開機
安裝方式先下載TrueNAS 12.0 ISO file掛載到VirtualBox開機
把USB 32GB隨身碟插上再掛載到該VM
如此一來就可以在VM環境上把TrueNAS系統碟安裝好
再把USB隨身碟移到ITX主機上開機開始設定

TrueNAS 12.0 應用

啟用 Jial Plugging是FreeBSD上類似docker容器的技術
nextcloud
Plex Media Server
emby Media Server

網路連接

技嘉 GA-J3455N-D3H 主機板內建二個網孔
可以合併成LACP(Link Aggregation Control Protocol, 802.3ad)
開啟Dell Switch上的LAG功能支援802.3ad的接線模式

未來網路還可以升級成2.5Gb的連線方式, 目前最普遍的2.5Gb RJ45網卡為RTL8125B
但是GA-J3455N-D3H這張主機沒有pci-e插糟後來就改插PCI SATA介面卡擴充硬碟數

Installing the RTL8125 driver on FreeNAS

As you might not have a working network connection you might consider to copy the driver to a USB stick. If you didn’t wanted to compile it yourself, you can download the binary here :
https://www.embedded-ideas.de/files/if_re-amd64-FreeBSD_11_3.ko

Update 16.08.20: Binaries for TrueNAS 12 BETA 2 (FreeBSD12.1) untested on my target machine but loadable on a virtual machine:
https://www.embedded-ideas.de/files/if_re-amd64-FreeBSD_12_1.ko

Please make sure to safe the file on the USB stick as if_re.ko
On the FreeNAS shell we first have to mount the USB stick. The example  expects a FAT32 stick.

mkdir /mnt/usbstick
mount -t msdosfs /dev/da0s1 /mnt/usbstick
Now we have to copy the driver and change the file permissions.
cd /boot/kernel
cp /mnt/usbstick/if_re.ko
chown root:wheel if_re.ko
chmod 0555 if_re.ko

In order to load the module on startup we have to add the following line to /boot/loader.conf
vi /boot/loader.conf
add line
if_re_load=“YES”

Again a hint if you are not familiar with vi:
change to insert mode
ESC ; leave the insert mode
:wq ; save and exit
:q! ; exit without saving

The driver should be loaded after a reboot. You can check this with
if_re.ko
should appear in the list. And the network interfaces should be available on FreeNAS.

TrueNAS和內建的jail plugings
google一下有許多值得參考的視頻與文件我就不多介紹
對我而言最主要的應用著重在以下幾點:

同步備份

  1. 這點以前有試用過Synthing
    使用類似brocast方式同步檔案在同網段的主機上
    有跨平台的支援
    用了一段時間感覺滿實用的。
    這次換用NextCloud除了同步檔案外有網頁可以直接上傳/下載檔案
    還能有Nextcloud 可加載plugging可以加強附屬功能
    我用其Note功能直接在多桌面共編文件

  2. Plex Media Server/ emby 提供多媒體管理和送播系統
    自己錄製的影片和生活的照片
    還可以透過android app轉播到手機或智慧電視盒上。

心得

因為自己的工作項目就是電腦存儲功能應用相關
長年的工作經驗下來我深刻體認到一件事
就是不管電腦的速度多快
最重要的永遠都是資料在存取必需是穩定必需是有備份的。

相信有很多人都還是在資料存在自己使用的筆電或電腦的SSD/HDD裡
好一點會透過Google driver或iCloud同步到雲端硬碟上
認真一點會在重要的主機上使用上RAID1/5/6/10
防止碟硬故障導致資料掉失
而NAS本身可以滿足以上需求
當然有NAS上也有供提像SAN的Fibre Channel /iSCSI target的功能。

如今的NAS功能有專門的產品品牌如 Synology/QNAP/ASUS/WD;etc
或開放軟體/純軟體的FreeNAS(TrueNAS), OMV(OpenMediaVault), unRAID, NAS4Free;etc.
都能負擔起基本的備份需求
備份就跟買保險一樣你永遠不知道資料的安全是不是夠了
因為任何意外都可能造成資料損壞
多一份備份就多一份安心。

Plugging 實現應用

如何使用TrueNAS 12啟用Grafana服務設置

使用目地:
為了能記錄被測試主機的系統效能使用情況
如CPU和記憶體必需讓其消耗數據透過telegraf輸出到influxdb上
再經由Grafana讀取influxdb上的數值呈現出可視的報告

Grafana設置環境:

在Dell PowerEdge 840跑TrueNAS 12.0
在Plugins裡Browse a Collection : Community
找到Grafana(with InfluxDB)

安裝的參數為
Basic Properties
[V] DHCP
[V] NAT
[V] VNET

Network Properties
[V] NAT Port Forwarding
Protocol: tcp / Jail Port Number : 3000 / Host Port Number : 3000
Protocol: tcp / Jail Port Number : 8086 / Host Port Number : 8086
Protocol: udp / Jail Port Number : 8089 / Host Port Number : 8089

安裝好第一次登入Grafana預設帳號密碼是admin / admin, 登入後要立即修改新密碼
而InfluxDB的密碼就是POST INSTALL NOTES裡註明的帳密
啟用InfluxDB udp protocol支援
透過TrueNAS的Jails選單的Grafana shell 修改influxd.conf
cd /usr/local/etc ; vi influxd.conf
[[udp]]
enabled = true
bind-address = “:8089”
database = “grafana”
retention-policy = “”
下載安裝Telegraf
https://www.influxdata.com/time-series-platform/telegraf/
vi /etc/telegraf/telegraf.conf
[agent]
interval = “30s”
logtarget =”file”
logfile = “/var/log/telegraf/telegraf.log”
logfile_rotation_interval = “30d”
[[outputs.influxdb]]
urls = [“udp://172.22.12.137:8089”]
database = “grafana”
username = “telegraf” # influx cli can help to create new user
password = “telegraf”
influx cli introduction
https://docs.influxdata.com/influxdb/v1.8/tools/shell/
其他補充
influxdb 有template可以import
https://github.com/influxdata/community-templates
https://docs.influxdata.com/influxdb/v2.0/monitor-alert/templates/

How to install NextCloud in TrueNAS 12.0

使用目地:
在跨平台系統Windows/Linux跟手機共享檔案同步
安裝方法:
Open TrueNAS Web UI
Plugins 內選擇安裝NextCloud
Basic Properties
[ ] DHCP Autoconfigure IPv4
[ ] NAT
[V] VNET
[ ] Berkeley Packet Filter
IPv4 Address : 172.22.12.139
安裝好後進入該jail shell
cd /usr/local/www/nextcloud/config
edit file $vi config.php
…..
‘trusted_domains’ =>
array (
0 => ‘localhost’,
1 => ‘172.22.12.137’, <—- Add this as TrueNAS public IP
2 => ‘172.22.12.139’,
),
….