Som mange andre MacBook Pro-brugere har jeg oplevet problemer med utilstrækkelig intern hukommelse. For at være mere præcis var min dagligt brugte rMBP udstyret med en SSD på kun 256GB, hvilket, som man kan forestille sig, ikke var tilstrækkeligt i længden.
Og da jeg begyndte at optage videoer under mine flyvninger, blev situationen kun værre. Mængden af optagelser efter sådanne flyvninger var over 50 GB, og min stakkels 256GB SSD blev hurtigt fyldt op, hvilket tvang mig til at købe en ekstern disk på 1TB. Alligevel, efter et år, kunne den heller ikke længere håndtere den mængde data, jeg genererede, og det nævner ikke engang, at manglen på redundans og backup gjorde den uegnet til opbevaring af vigtig information.
Så på et tidspunkt besluttede jeg at samle en NAS med stor kapacitet i håbet om, at dette system ville holde i mindst et par år uden at kræve en ny opgradering.
Jeg skrev denne artikel primært som en påmindelse om, hvad jeg gjorde og hvordan, i tilfælde af at jeg skulle gøre det igen. Jeg håber, at den også vil være nyttig for dig, hvis du overvejer at gøre det samme.
Måske er det lettere at købe?
Så vi ved, hvad vi vil opnå, men hvordan gør vi det?
Først kiggede jeg på kommercielle løsninger og overvejede specifikt company Synology, som angiveligt tilbyder de bedste NAS-systemer til forbrugermarkedet. Men prisen for denne service viste sig at være ret høj. Det billigste system med 4 skuffer koster over $300, og hårde diske er ikke inkluderet. Desuden er selve den interne hardware i et sådant sæt ikke særlig imponerende, hvilket rejser spørgsmål om dens reelle ydeevne.
Så tænkte jeg: hvorfor ikke samle en NAS-server selv?
Søgning efter den rette server
Hvis du planlægger at sammensætte en sådan server, skal du først finde det rigtige hardware. En brugt server vil være passende til denne opsætning, da vi ikke har brug for særlig ydeevne til lageropgaver. Det nødvendige inkluderer en stor mængde RAM, flere SATA-tilslutninger og gode netværkskort. Da min server vil være placeret i mit faste hjem, skal støjniveauet også tages i betragtning.
Mine søgning begyndte med eBay. Selvom jeg fandt mange brugte Dell PowerEdge R410/R210 til under $100, vidste jeg med min erfaring fra datacentre, at disse 1U-enheder laver for meget støj og ikke egner sig til hjemmebrug. Generelt er tower-servere typisk mindre støjende, men desværre var der kun få til salg på eBay, og de var enten dyre eller underpowered.
Det næste sted, jeg kiggede, var Craigslist, hvor jeg fandt en person, der solgte en brugt HP ProLiant N40L for kun $75! Jeg kendte til disse servere, som selv i brugt stand normalt koster omkring $300, så jeg sendte sælgeren en besked i håbet om, at annoncen stadig var aktiv. Da jeg fandt ud af, at det var tilfældet, tog jeg hurtigt til San Mateo for at hente denne server, som straks glædede mig med sit udseende. Den havde minimal slitage, og bortset fra lidt støv var alt andet i fremragende stand.

Billede af serveren straks efter købet
Her er specifikationen for det sæt, jeg erhvervede:
- CPU: AMD Turion(tm) II Neo N40L Dual-Core Processor (64-bit)
- RAM: 8 GB non-ECC RAM (installeret af den tidligere ejer)
- Flash: 4 GB USB-drev
- SATA-tilslutninger: 4 + 1
- NIC: 1 Gbps on-board NIC
Det er unødvendigt at sige, at på trods af sin flere år gamle alder, overgår specifikationen af denne server stadig de fleste NAS-systemer, der tilbydes på markedet, især hvad angår RAM. Senere opgraderede jeg endda til 16 GB ECC med større bufferstørrelse og bedre databeskyttelse.
Valg af harddiske
Nu har vi et fremragende fungerende system, og det eneste, der mangler, er at finde harddiske til det. Det er tydeligt, at de $75 kun gav mig serveren uden HDD, hvilket ikke kom som en overraskelse.
Efter at have lavet lidt research fandt jeg ud af, at HDD WD Red er de bedste til NAS-systemer, som skal køre 24/7. Til deres køb gik jeg til Amazon, hvor jeg købte fire enheder på 3 TB hver. I princippet kan du tilslutte enhver foretrukken HDD, men vær opmærksom på, at de skal have samme kapacitet og hastighed. Dette vil hjælpe dig med at undgå potentielle performanceproblemer med RAID i fremtiden.
System Configuration
Jeg tror, mange vil bruge det til deres NAS-opbygninger. , og der er intet galt i det. Men på trods af muligheden for at installere dette system på min egen server, valgte jeg at bruge CentOS, da ZFS on Linux-systemet er oprindeligt forberedt til produktionsmiljøer, og generelt er jeg mere fortrolig med at administrere en Linux-server. Desuden var jeg ikke interesseret i det stilfulde interface og funktioner tilbydes af FreeNAS - jeg havde nok med RAIDZ-arrayet og deling via AFP.
Det er ret simpelt at installere CentOS på en USB - det kræver blot at angive USB som bootkilde, og ved opstart vil installationsguiden føre dig gennem alle dens trin.
RAID-opsætning
Efter en vellykket installation af CentOS installerede jeg også ZFS on Linux, ved at følge de anførte .
Når denne proces var afsluttet, indlæste jeg ZFS Kernel-modulet:
$ sudo modprobe zfs Og jeg oprettede et RAIDZ1-array med kommandoen 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 Vær opmærksom på, at jeg her bruger harddiskens ID i stedet for deres viste navne (sdx), for at mindske chancen for, at de ikke kan monteres korrekt efter opstart på grund af ændring i bogstavbetegnelsen.
Jeg tilføjede også ZIL og L2ARC-cache, som kører på en separat SSD, ved at opdele denne SSD i to partitioner: 5GB til ZIL og resten til L2ARC.
Når det gælder RAIDZ1, kan det holde til at en disk fejler. Mange mener, at denne poolvariant ikke bør anvendes på grund af risikoen for, at en anden disk fejler under genopbygning af RAID, hvilket kan føre til datatab. Jeg ignorerede denne anbefaling, da jeg regelmæssigt lavede sikkerhedskopier af vigtige data på et eksternt device, og en total sammenbrud af arrayet kun kunne påvirke tilgængeligheden af data, men ikke deres bevarelse. Hvis du ikke har mulighed for at lave sikkerhedskopier, er det bedre at benytte løsninger som RAIDZ2 eller RAID10.
For at sikre, at poolen blev oprettet succesfuldt, kan du køre:
$ sudo zpool statusog
$ sudo zfs list
NAME USED AVAIL REFER MOUNTPOINT
data 510G 7.16T 140K /mnt/data Som standard monterer ZFS den nyligt oprettede pool direkte i /, hvad der generelt ikke er ønskeligt. Dette kan ændres ved at køre:
zfs set mountpoint=/mnt/data dataHer kan du vælge at oprette et eller flere datasæt til datalagring. Jeg har oprettet to, en til Time Machine-backup og den anden til fælles filopbevaring. Jeg har begrænset størrelsen på Time Machine-datasættet til 512 GB for at forhindre det i at vokse uendeligt.
Optimering
zfs set compression=on dataDenne kommando aktiverer ZFS-komprimering. Komprimering kræver minimalt CPU-kraft, men kan betydeligt forbedre I/O-gennemstrømning, så det anbefales altid at bruge det.
zfs set relatime=on data Med denne kommando reducerer vi antallet af opdateringer til atime, for at reducere genereringen af IOPS, når vi tilgår filer.
Som standard bruger ZFS på Linux 50% af den fysiske hukommelse til ARC. I mit tilfælde, hvor det samlede antal filer er lille, kan denne mængde sikkert øges til 90%, da der ikke vil køre andre applikationer på serveren.
$ cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=14378074112Derefter kan man med kontrollere, at ændringerne har haft effekt:
$ 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
...Opsætning af tilbagevendende opgaver
Jeg har brugt til at konfigurere systemd-timere til at udføre rengøring ugentligt og til automatisk at oprette snapshots hvert 15. minut, 1 time og 1 dag.
Installation af Netatalk
er en open source-implementering af AFP (). Ved at følge fik jeg på kun få minutter det RPM-pakke, der var samlet og installeret.
Konfiguration af indstillinger
$ cat /etc/netatalk/afp.conf
[datong@Titan ~]$ cat /etc/netatalk/afp.conf
;
; Netatalk 3.x konfigurationsfil
;
[Global]
; Globale serverindstillinger
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 Bemærk venligst, at vol dbnest er i mit tilfælde en betydelig forbedring, da Netatalk som standard skriver CNID-databasen til roden af filsystemet, hvilket var helt uønsket, fordi mit primære filsystem kører på USB, hvilket gør det relativt langsomt. Aktivering af vol dbnest fører til, at databasen gemmes i rodmappen på Volume, som i dette tilfælde hører til ZFS-poolen og allerede fungerer langt hurtigere.
Aktivering af porte i 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
Hvis alt er konfigureret korrekt, skal din maskine vises i Finder, og Time Machine skal også fungere.
Yderligere installationer
S.M.A.R.T overvågning
Det anbefales at overvåge status for dine diske for at forhindre nedbrud.
$ sudo yum install smartmontools
$ sudo systemctl start smartdDemon for UPS
Overvåger opladningen af APC UPS og slukker systemet, når opladningen bliver kritisk lav.
$ sudo yum install epel-release
$ sudo yum install apcupsd
$ sudo systemctl enable apcupsdHardwareopgradering
En uge efter systemindstillingen begyndte jeg at blive mere bekymret over, at serveren havde RAM uden ECC. Desuden ville ekstra RAM til buffering være nyttigt i tilfælde af ZFS. Så jeg vendte igen til Amazon, hvor jeg købte 2x Kingston DDR3 8GB ECC RAM til $80 hver og udskiftede det desktop-RAM, som var installeret af den tidligere ejer. Systemet bootede første gang uden problemer, og jeg bekræftede, at ECC-support var aktiveret:
$ dmesg | grep ECC
[ 10.492367] EDAC amd64: DRAM ECC enabled.Resultat
Resultatet glædede mig meget. Nu kan jeg konstant udnytte 1Gbps LAN-forbindelsen til serveren ved at kopiere filer, og Time Machine fungerer fejlfrit. Så alt i alt er jeg tilfreds med opsætningen.
Samlet omkostning:
- 1 * HP ProLiant N40L = $75
- 2 * 8 GB ECC RAM = $174
- 4 * WD Red 3 TB HDD = $440
I alt = $689
Jeg kan nu sige, at prisen var det værd.
Bygger du dine egne NAS-servere?
Kilde: habr.com
