Bauen en preiswerten Heem NAS System op Linux

Bauen en preiswerten Heem NAS System op Linux

Ech, wéi vill aner MacBook Pro Benotzer, war mam Problem vun net genuch intern Erënnerung konfrontéiert. Fir méi präzis ze sinn, war de rMBP, deen ech all Dag benotzt hunn, mat enger SSD mat enger Kapazitéit vun nëmmen 256GB ausgestatt, wat natierlech net laang genuch war.

A wéi ech op alles anescht ugefaang hunn Videoen opzehuelen wärend menge Flich, ass d'Situatioun nëmme verschlechtert. De Volume vu Footage gefilmt no sou Flich war 50+ GB, a meng aarm 256GB SSD ass ganz séier opgefëllt, wat mech forcéiert huet en externen 1TB Drive ze kafen. Wéi och ëmmer, no engem Joer konnt et d'Quantitéit vun den Donnéeën, déi ech generéiert hunn, net méi handhaben, fir net ze schwätzen iwwer de Mangel u Redundanz a Backup huet et net gëeegent fir wichteg Informatioun ze hosten.

Also, op engem Punkt hunn ech beschloss eng grouss NAS ze bauen an der Hoffnung datt dëse System op d'mannst e puer Joer dauert ouni en aneren Upgrade ze erfuerderen.

Ech hunn dësen Artikel haaptsächlech geschriwwen als Erënnerung un genau wat ech gemaach hunn a wéi ech et gemaach hunn am Fall wou ech et nach eng Kéier muss maachen. Ech hoffen et wäert Iech och nëtzlech sinn wann Dir décidéiert datselwecht ze maachen.

Vläicht ass et méi einfach ze kafen?

Also, mir wëssen wat mir wëllen kréien, d'Fro bleift: wéi?

Ech hunn fir d'éischt op kommerziell Léisunge gekuckt a besonnesch op Synology gekuckt, déi sollen déi bescht Konsument-Grad NAS Systemer um Maart ubidden. Wéi och ëmmer, d'Käschte vun dësem Service waren zimlech héich. Déi bëllegst 4-Bucht System kascht $300+ an enthält keng Festplacken. Zousätzlech ass d'intern Fëllung vun esou engem Kit selwer net besonnesch beandrockend, wat seng real Leeschtung a Fro stellt.

Dunn hunn ech geduecht: firwat net selwer en NAS Server bauen?

E passende Server ze fannen

Wann Dir esou e Server zesummesetzt, da musst Dir als éischt déi richteg Hardware fannen. E benotzte Server soll ganz gëeegent sinn fir dëse Bau, well mir net vill Leeschtung fir Späicheraufgaben brauchen. Ënnert déi néideg Saache solle mir eng grouss Quantitéit vum RAM, e puer SATA Stecker a gutt Netzwierkkaarten notéieren. Well mäi Server an der Plaz vu menger permanenter Residenz wäert schaffen, ass de Kaméidi Niveau och wichteg.

Ech ugefaang meng Sich op eBay. Obwuel ech vill vun benotzt Dell PowerEdge R410 fonnt / R210 do fir ënner $ 100, mat Erfahrung an engem Server Sall, Ech wosst, datt dës 1U Unitéiten zevill Kaméidi gemaach a sech net gëeegent fir doheem benotzen. Als Regel, Tuerm Serveren sinn oft manner Kaméidi, mä, leider, do waren puer vun hinnen op eBay, a si waren all entweder deier oder underpowered.

Déi nächst Plaz fir ze kucken war Craiglist, wou ech een fonnt hunn deen e gebrauchten HP ProLiant N40L fir just $ 75 verkeeft! Ech war Gewunnecht mat dëse Serveren, déi normalerweis kascht ronn $ 300 souguer benotzt, also ech E-Mail de Verkeefer an der Hoffnung dass d'Annonce nach aktiv war. Nodeems ech geléiert hunn, datt dat de Fall war, sinn ech, ouni zweemol ze denken, op San Mateo gaang fir dëse Server opzehuelen, wat mech op den éischte Bléck definitiv gefreet huet. Et hat minimale Verschleiung an ausser e bësse Stëbs, alles anescht war super.

Bauen en preiswerten Heem NAS System op Linux
Foto vum Server, direkt nom Kaf

Hei sinn d'Spezifikatioune fir de Kit deen ech kaaft hunn:

  • cpu: AMD Turion(tm) II Neo N40L Dual-Core Prozessor (64-Bit)
  • Ram: 8 GB net-ECC RAM (vum fréiere Besëtzer installéiert)
  • Flash: 4 GB USB Fuert
  • SATA Connectoren:4+1
  • NIC: 1 Gbps on-board NIC

Noutlosegkeet ze soen, trotz e puer Joer al ass d'Spezifikatioun vun dësem Server nach ëmmer iwwer déi meescht NAS Optiounen um Maart, besonnesch wat RAM ugeet. E bësse méi spéit hunn ech souguer op 16 GB ECC Upgrade mat enger erhéiter Puffergréisst a verstäerkter Dateschutz.

Auswiel vun schwéier fiert

Elo hu mir en exzellenten Aarbechtssystem an alles wat bleift ass Harddisken dofir ze wielen. Natierlech, fir déi $ 75 hunn ech nëmmen de Server selwer ouni HDD kritt, wat mech net iwwerrascht huet.

Nodeems ech e bësse Fuerschung gemaach hunn, hunn ech erausfonnt datt WD Red HDDs am Beschten passend sinn fir NAS Systemer 24/7 ze lafen. Fir se ze kafen, hunn ech mech op Amazon gewiesselt, wou ech 4 Exemplare vun all 3 TB kaaft hunn. Prinzipiell kënnt Dir all HDD konnektéieren déi Dir léiwer hutt, awer gitt sécher datt se vun der selwechter Kapazitéit a Geschwindegkeet sinn. Dëst hëlleft Iech méiglech RAID Leeschtungsproblemer op laang Siicht ze vermeiden.

System Setup

Ech mengen datt vill de System fir hir NAS baut benotzen FreeNAS, an et ass näischt falsch mat deem. Wéi och ëmmer, trotz der Méiglechkeet dëse System op mengem Server z'installéieren, hunn ech léiwer CentOS ze benotzen, well den ZFS op Linux System am Ufank fir e Produktiounsëmfeld virbereet ass, an allgemeng ass d'Gestioun vun engem Linux Server mir méi vertraut. Ausserdeem war ech net interesséiert un der ausgefalene Interface an Features vun FreeNAS - d'RAIDZ Array an d'AFP Sharing ware genuch fir mech.

CentOS op USB installéieren ass zimmlech einfach - spezifizéiert just USB als Bootquell, a beim Start féiert den Installatiounsassistent Iech duerch all seng Etappen.

RAID bauen

Nodeems ech CentOS erfollegräich installéiert hunn, hunn ech och ZFS op Linux installéiert no der opgelëscht Schrëtt hei.

Wann dëse Prozess fäerdeg war, hunn ech den ZFS Kernel Modul gelueden:

$ sudo modprobe zfs

A erstallt d'RAIDZ1 Array mam Kommando zpool:

$ sudo zpool create data raidz1 ata-WDC_WD30EFRX-68AX9N0_WD-WMC1T0609145 ata-WDC_WD30EFRX-68AX9N0_WD-WMC1T0609146 ata-WDC_WD30EFRX-68AX9N0_WD-WMC1T0609147 ata-WDC_WD30EFRX-68AX9N0_WD-WMC1T0609148
$ sudo zpool add data log ata-SanDisk_Ultra_II_240GB_174204A06001-part5
$ sudo zpool add data cache ata-SanDisk_Ultra_II_240GB_174204A06001-part6

Notéiert w.e.g. datt ech hei d'IDs vun den Harddisken benotzen amplaz vun hiren Displaynamen (sdx) fir d'Chance ze reduzéieren datt se net nom Stiwwel montéieren wéinst engem Buschtaf änneren.

Ech hunn och ZIL an L2ARC Cache bäigefüügt op enger separater SSD, déi SSD an zwou Partitionen opzedeelen: 5GB fir ZIL an de Rescht fir L2ARC.

Wat RAIDZ1 ugeet, kann et 1 Scheiffehler widderstoen. Vill plädéieren datt dës Pooloptioun net benotzt soll ginn wéinst der Wahrscheinlechkeet vun der zweeter Scheif während dem RAID Rebuild Prozess, wat zu Datenverloscht féieren kann. Ech hunn dës Empfehlung ignoréiert, well ech regelméisseg Backupkopien vu wichtegen Donnéeën op engem Fernapparat gemaach hunn, an de Feeler vu souguer de ganze Array kann nëmmen d'Disponibilitéit vun den Donnéeën beaflossen, awer net seng Sécherheet. Wann Dir net d'Fäegkeet hutt Backups ze maachen, da wier et besser Léisunge wéi RAIDZ2 oder RAID10 ze benotzen.

Dir kënnt verifizéieren datt d'Schafe vum Pool erfollegräich war andeems Dir leeft:

$ sudo zpool status

и

$ sudo zfs list
NAME                               USED  AVAIL  REFER  MOUNTPOINT
data                               510G  7.16T   140K  /mnt/data

Par défaut, mounts ZFS déi nei geschaf Pool direkt un /, wat allgemeng onerwënscht ass. Dir kënnt dëst änneren andeems Dir leeft:

zfs set mountpoint=/mnt/data data

Vun hei aus kënnt Dir wielen een oder méi Datesätz ze kreéieren fir d'Donnéeën ze späicheren. Ech hunn zwee erstallt, een fir Time Machine Backup an een fir gedeelt Dateilagerung. Ech hunn d'Gréisst vum Time Machine Dataset op eng Quote vu 512 GB limitéiert fir säin endlosen Wuesstum ze vermeiden.

Optimiséierung

zfs set compression=on data

Dëse Kommando erméiglecht ZFS Kompressiounssupport. Kompressioun benotzt minimal CPU-Kraaft, awer kann den I/O-Duergang wesentlech verbesseren, also ass ëmmer recommandéiert.

zfs set relatime=on data

Mat dësem Kommando reduzéieren mir d'Zuel vun Aktualiséierungen op atimefir d'IOPS Generatioun ze reduzéieren beim Zougang zu Dateien.

Par défaut benotzt ZFS op Linux 50% vum kierperleche Gedächtnis fir ARC. A mengem Fall, wann d'Gesamtzuel vun de Dateien kleng ass, kann dëst sécher op 90% eropgesat ginn, well keng aner Uwendungen um Server lafen.

$ cat /etc/modprobe.d/zfs.conf 
options zfs zfs_arc_max=14378074112

Dann benotzt arc_summary.py Dir kënnt verifizéieren datt d'Ännerungen a Kraaft trieden:

$ python arc_summary.py
...
ARC Size:				100.05%	11.55	GiB
	Target Size: (Adaptive)		100.00%	11.54	GiB
	Min Size (Hard Limit):		0.27%	32.00	MiB
	Max Size (High Water):		369:1	11.54	GiB
...

Widderhuelend Aufgaben opsetzen

Ech benotzt systemd-zpool-scrub fir systemd Timer ze konfiguréieren fir d'Botzen eemol d'Woch ze maachen an zfs-auto-Snapshot fir automatesch Schnappschëss all 15 Minutten, 1 Stonn an 1 Dag ze kreéieren.

Netatalk installéieren

nettalk ass eng Open Source Implementatioun vun AFP (Apple Areeche Protokoll). Follegt offiziell Installatiounsinstruktiounen fir CentOS, Ech krut wuertwiertlech e versammelt an installéiert RPM Package an nëmmen e puer Minutten.

Konfiguratiounskonfiguratioun

$ cat /etc/netatalk/afp.conf
[datong@Titan ~]$ cat /etc/netatalk/afp.conf 
;
; Netatalk 3.x configuration file
;

[Global]
; Global server settings
mimic model = TimeCapsule6,106

; [Homes]
; basedir regex = /home

; [My AFP Volume]
; path = /path/to/volume

; [My Time Machine Volume]
; path = /path/to/backup
; time machine = yes

[Datong's Files]
path = /mnt/data/datong
valid users = datong

[Datong's Time Machine Backups]
path = /mnt/data/datong_time_machine_backups
time machine = yes
valid users = datong

notéiert dat vol dbnest ass eng grouss Verbesserung a mengem Fall, well Netatalk als Standard d'CNID-Datebank op d'Root vum Dateiesystem schreift, wat guer net wënschenswäert war, well mäi Haaptdateisystem op USB leeft an dofir relativ lues ass. Uschalten vol dbnest Resultater fir d'Datebank an der Volume Root ze späicheren, déi an dësem Fall zum ZFS Pool gehéiert a scho méi produktiv ass.

Aktivéiert Ports an der Firewall

$ sudo firewall-cmd --permanent --zone=public --add-service=mdns
$ sudo firewall-cmd --permanent --zone=public --add-port=afpovertcp/tcp

sudo firewall-cmd --permanent --zone=public --add-port=afpovertcp/tcp
Wann alles richteg konfiguréiert ass, sollt Är Maschinn am Finder opdauchen, an Time Machine soll och funktionnéieren.

Zousätzlech Astellungen
SMART Iwwerwaachung

Et ass recommandéiert de Status vun Ären Disken ze iwwerwaachen fir Diskfehler ze vermeiden.

$ sudo yum install smartmontools
$ sudo systemctl start smartd

Daemon fir UPS

Iwwerwaacht d'Laascht vun der APC UPS a schalt de System aus wann d'Laascht kritesch niddereg gëtt.

$ sudo yum install epel-release
$ sudo yum install apcupsd
$ sudo systemctl enable apcupsd

Hardware Upgrade

Eng Woch nodeems ech de System opgeriicht hunn, hunn ech ugefaang ëmmer méi Suergen iwwer d'Net-ECC Erënnerung vum Server ze ginn. Zousätzlech, am Fall vun ZFS, wäert zousätzlech Erënnerung fir Puffer ganz nëtzlech sinn. Also sinn ech zréck op Amazon gaang, wou ech 2x Kingston DDR3 8GB ECC RAM fir $ 80 all kaaft hunn an den Desktop-RAM ersat vum fréiere Besëtzer installéiert hunn. De System huet déi éischte Kéier ouni Probleemer gestart, an ech hunn séchergestallt datt ECC Support aktivéiert gouf:

$ dmesg | grep ECC
[   10.492367] EDAC amd64: DRAM ECC enabled.

Resultat

Ech war ganz zefridden mam Resultat. Elo kann ech dauernd d'1Gbps LAN Verbindung vum Server beschäftegt halen andeems Dir Dateien kopéiert, an Time Machine funktionnéiert perfekt. Also, insgesamt sinn ech frou mam Setup.

Gesamtkäschten:

  1. 1 * HP ProLiant N40L = $75
  2. 2 * 8 GB ECC RAM = $174
  3. 4 * WD Red 3 TB HDD = $440

Total = $ 689

Elo kann ech soen datt de Präis et wäert war.

Maacht Dir Är eegen NAS Serveren?

Bauen en preiswerten Heem NAS System op Linux

Bauen en preiswerten Heem NAS System op Linux

Source: will.com

Setzt e Commentaire