Net als veel andere MacBook Pro-gebruikers had ik te maken met een tekort aan interne opslagcapaciteit. Om specifieker te zijn, mijn dagelijks gebruikte rMBP was uitgerust met een SSD van slechts 256GB, wat natuurlijk niet lang genoeg was.
En toen ik ook nog video's begon op te nemen tijdens mijn vluchten, verergerde de situatie alleen maar. De grootte van het opgenomen materiaal na zulke vluchten was meer dan 50 GB, en mijn arme 256GB SSD was al snel vol, waardoor ik gedwongen werd een externe schijf van 1TB aan te schaffen. Toch, na een jaar, kon ook dit niet meer voldoen aan de door mij gegenereerde datahoeveelheden, om nog maar te zwijgen over het gebrek aan redundantie en back-up, waardoor het ongeschikt werd voor het opslaan van belangrijke informatie.
Dus op een gegeven moment besloot ik om een NAS met grote capaciteit te bouwen in de hoop dat dit systeem minstens een paar jaar meegaat zonder dat ik opnieuw moest upgraden.
Ik schreef dit artikel in de eerste plaats als een herinnering aan wat ik gedaan heb en hoe, voor het geval dat ik het ooit opnieuw moet doen. Ik hoop dat het ook nuttig voor jou zal zijn als je van plan bent hetzelfde te doen.
Is het misschien makkelijker om iets te kopen?
Dus, we weten wat we willen, de vraag blijft hoe?
Eerst keek ik naar commerciƫle oplossingen en overwoog ik vooral het bedrijf Synology, dat naar verluidt de beste consumentennas-systemen op de markt aanbiedt. Echter, de prijs van deze service bleek vrij hoog te zijn. Het goedkoopste systeem met 4 bays kost meer dan $300, en harde schijven zijn niet inbegrepen. Bovendien is de interne hardware van zo'n set niet echt indrukwekkend, wat de werkelijke prestaties in twijfel trekt.
Toen dacht ik: waarom zou ik zelf geen NAS-server bouwen?
Zoektocht naar de juiste server
Als je van plan bent om zo'n server samen te stellen, moet je in de eerste plaats de juiste hardware vinden. Voor deze build zou een tweedehands server goed moeten voldoen, aangezien we voor opslagdoeleinden geen bijzondere prestaties nodig hebben. Belangrijke vereisten zijn voldoende RAM, een paar SATA-connectoren en goede netwerkkaarten. Aangezien mijn server zal draaien op mijn vaste woonadres, is het geluidsniveau ook belangrijk.
Mijn zoektocht begon op eBay. Hoewel ik daar veel gebruikte Dell PowerEdge R410/R210's vond voor minder dan $100, wist ik uit mijn ervaring in een serverruimte dat deze 1U-units te veel lawaai maken en niet geschikt zijn voor thuisgebruik. Over het algemeen zijn towerservers vaak minder luidruchtig, maar helaas waren er maar weinig op eBay beschikbaar, en ze waren allemaal ofwel duur ofwel ondermaats.
De volgende plek waar ik zocht was Craigslist, waar ik iemand vond die een gebruikte HP ProLiant N40L verkocht voor slechts $75! Ik was bekend met deze servers, die zelfs in gebruikte staat meestal rond de $300 kosten, dus ik stuurde de verkoper een bericht in de hoop dat de aanbieding nog beschikbaar was. Toen ik hoorde dat dat het geval was, ging ik snel naar San Mateo om deze server op te halen, die me bij de eerste blik zeker blij maakte. Hij had minimale slijtage en behalve wat stof was alles uitstekend.

Foto van de server, onmiddellijk na aankoop
Hier is de specificatie van het pakket dat ik heb aangeschaft:
- CPU: AMD Turion(tm) II Neo N40L Dual-Core Processor (64-bit)
- RAM: 8 GB non-ECC RAM (geĆÆnstalleerd door de vorige eigenaar)
- Flash: 4 GB USB Drive
- SATA-connectors: 4 + 1
- NIC: 1 Gbps on-board NIC
Het hoeft geen betoog dat de specificatie van deze server, ondanks zijn paar jaar oude leeftijd, nog steeds de meeste NAS-systemen op de markt overtreft, vooral op het gebied van RAM. Iets later heb ik zelfs een upgrade gemaakt naar 16 GB ECC met een groter buffervolume en verbeterde gegevensbescherming.
Keuze van harde schijven
Nu we een uitstekende draaiende systeem hebben, moeten we geschikte harde schijven vinden. Aanvankelijk kreeg ik voor die $75 alleen de server zonder HDD, wat me niet verraste.
Na een beetje onderzoek ontdekte ik dat voor 24/7 NAS-systemen de HDD's van WD Red het beste zijn. Voor de aanschaf ging ik naar Amazon, waar ik 4 exemplaren van 3 TB kocht. In principe kun je elke gewenste HDD aansluiten, maar zorg ervoor dat ze van gelijke capaciteit en snelheid zijn. Dit helpt je mogelijke prestatieproblemen met RAID in de toekomst te voorkomen.
Systeeminstelling
Ik denk dat velen deze systemen zullen gebruiken voor hun NAS-oplossingen. , en dat is niet slecht. Echter, ondanks de mogelijkheid om dit systeem op je eigen server te installeren, verkies ik CentOS te gebruiken, omdat het ZFS on Linux-systeem oorspronkelijk is voorbereid voor productieomgevingen en ik bovendien meer vertrouwd ben met het beheer van Linux-servers. Daarnaast had ik geen interesse in de trendy interface en functies die FreeNAS biedt ā een RAIDZ-array en AFP-bestandssysteemdelen waren voldoende voor mij.
CentOS op een USB-stick installeren is vrij eenvoudig ā je hoeft alleen maar de USB als opstartbron op te geven, en bij het opstarten zal de installatie-assistent je door alle stappen leiden.
RAID-configuratie
Na een succesvolle installatie van CentOS heb ik ook ZFS on Linux geĆÆnstalleerd, volgens de stappen die .
Aan het einde van dit proces heb ik de ZFS Kernel-module geladen:
$ sudo modprobe zfs En heb ik een RAIDZ1-array gemaakt met het commando 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 Let op dat ik hier de ID's van de harde schijven gebruik in plaats van hun weergegeven namen (sdx), om de kans te verkleinen dat ze niet goed gemount worden na opstarten door het veranderen van de letterindicatie.
Ik heb ook ZIL en L2ARC-cache toegevoegd, uitgevoerd op een aparte SSD, waarbij ik deze SSD in twee partities heb verdeeld: 5GB voor ZIL en de rest voor L2ARC.
Wat betreft RAIDZ1, dit kan ƩƩn schijfuitval aan. Velen beweren dat deze pooloptie niet moet worden gebruikt vanwege de kans op een tweede schijfuitval tijdens de herschikking van de RAID, wat kan leiden tot gegevensverlies. Ik negeerde echter deze aanbeveling, omdat ik regelmatig back-ups van belangrijke gegevens op een extern apparaat maakte, en zelfs als de gehele array uitvalt, gaat het alleen om de toegankelijkheid van de gegevens, niet om hun veiligheid. Als je geen back-ups kunt maken, is het beter om oplossingen zoals RAIDZ2 of RAID10 te gebruiken.
Om te controleren of de pool succesvol is aangemaakt, kun je de volgende opdracht uitvoeren:
$ sudo zpool statusen
$ sudo zfs list
NAME USED AVAIL REFER MOUNTPOINT
data 510G 7.16T 140K \/mnt\/data Standaard monteert ZFS de zojuist aangemaakte pool direct in /, wat gewoonlijk ongewenst is. Je kunt dit aanpassen door:
zfs set mountpoint=\/mnt\/data dataHier kunt u kiezen om ƩƩn of meerdere datasets aan te maken voor dataopslag. Ik heb er twee aangemaakt, ƩƩn voor de Time Machine-backup en de andere voor algemene bestandopslag. De grootte van de Time Machine-dataset heb ik beperkt tot een quotum van 512 GB om een eindeloze groei te voorkomen.
Optimalisatie
zfs set compression=on dataDit commando schakelt de ondersteuning voor ZFS-compressie in. Compressie vereist minimaal CPU-vermogen, maar kan de I/O-snelheid aanzienlijk verbeteren, waardoor het altijd aanbevolen is om te gebruiken.
zfs set relatime=on data Met dit commando verminderen we het aantal updates tot atime, om de generatie van IOPS bij bestanden te verminderen.
Standaard gebruikt ZFS op Linux 50% van het fysieke geheugen voor ARC. In mijn geval, wanneer het totale aantal bestanden laag is, kan dit veilig worden verhoogd tot 90%, aangezien andere applicaties op de server niet zullen draaien.
$ cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=14378074112Vervolgens kan met worden gecontroleerd of de wijzigingen effectief zijn:
$ python arc_summary.py
...
ARC Grootte: 100.05% 11.55 GiB
Doelgrootte: (Adaptief) 100.00% 11.54 GiB
Min. Grootte (Hard Limit): 0.27% 32.00 MiB
Max. Grootte (Hoog Water): 369:1 11.54 GiB
...Configureren van herhalende taken
Ik heb gebruikt voor het instellen van systemd-timers voor wekelijkse schoonmaak en voor het automatisch maken van snapshots elke 15 minuten, 1 uur en 1 dag.
Installatie van Netatalk
is een open-source implementatie van AFP (). Door de te volgen, had ik in slechts enkele minuten het RPM-pakket samengesteld en geĆÆnstalleerd.
Configuratie-instellingen
$ cat /etc/netatalk/afp.conf
[datong@Titan ~]$ cat /etc/netatalk/afp.conf
;
; Netatalk 3.x configuratiebestand
;
[Global]
; Globale serverinstellingen
mimic model = TimeCapsule6,106
; [Homes]
; basedir regex = /home
; [Mijn AFP Volume]
; path = /path/to/volume
; [Mijn Time Machine Volume]
; path = /path/to/backup
; time machine = yes
[Datong's Bestanden]
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 Let op dat vol dbnest is in mijn geval een aanzienlijke verbetering, aangezien Netatalk standaard de CNID-database in de root van het bestandssysteem schrijft, wat zeer ongewenst was omdat mijn primaire bestandssysteem op USB draait, wat relatief traag is. Door inschakeling van vol dbnest wordt de database opgeslagen in de root van het Volume, dat in dit geval verwijst naar de ZFS-pool en al veel sneller is.
Poorten inschakelen in de 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
Als alles correct is ingesteld, zou uw machine zichtbaar moeten zijn in de Finder en zou Time Machine ook moeten werken.
Extra instellingen
S.M.A.R.T monitoring
Het is aan te raden om de status van uw schijven in de gaten te houden om falen te voorkomen.
$ sudo yum install smartmontools
$ sudo systemctl start smartdDemon voor UPS
Controleert de lading van de APC-UPS en schakelt het systeem uit wanneer de lading kritiek laag is.
$ sudo yum install epel-release
$ sudo yum install apcupsd
$ sudo systemctl enable apcupsdHardware-upgrade
Een week na de systeemconfiguratie begon ik me steeds meer zorgen te maken over het feit dat er geheugen zonder ECC in de server was geĆÆnstalleerd. Bovendien komt extra geheugen voor buffering zeer van pas bij ZFS. Daarom ging ik weer naar Amazon, waar ik 2x Kingston DDR3 8GB ECC RAM kocht voor $80 per stuk en het desktopgeheugen verving dat door de vorige eigenaar was geĆÆnstalleerd. Het systeem startte de eerste keer zonder problemen op, en ik bevestigde dat de ECC-ondersteuning was ingeschakeld:
$ dmesg | grep ECC
[ 10.492367] EDAC amd64: DRAM ECC enabled.Resultaat
Het resultaat maakte me zeer blij. Nu kan ik continu een 1Gbps LAN-verbinding van de server laden door bestanden te kopiƫren, en Time Machine werkt voortreffelijk. Al met al ben ik tevreden met de configuratie.
Totale kosten:
- 1 * HP ProLiant N40L = $75
- 2 * 8 GB ECC RAM = $174
- 4 * WD Red 3 TB HDD = $440
Total = $689
Nu kan ik zeggen dat de prijs het waard was.
Maakt u zelf NAS-servers?
Bron: habr.com
