Kot sem mnogi drugi uporabniki MacBook Pro, sem se srečal s težavo pomanjkanja notranjega prostora. Natančneje, moj vsakodnevni rMBP je imel SSD s kapaciteto le 256 GB, kar seveda ni zadostovalo za daljše obdobje.
Ko sem poleg tega začel snemati videoposnetke med svojimi leti, se je situacija še poslabšala. Obseg posnetih materialov po takih letih je znašal več kot 50 GB, in moj ubogi SSD s 256 GB se je zelo hitro napolnil, kar me je prisililo, da sem kupil zunanji disk s kapaciteto 1 TB. Vendar pa je po enem letu tudi ta prenehal zadostovati moji količini podatkov, ne govorijoč o tem, da je pomanjkanje redundance in varnostnih kopij onemogočilo njegovo primernost za hrambo pomembnih informacij.
Tako sem se nekega trenutka odločil sestaviti NAS velikega obsega v upanju, da bo ta sistem zdržal vsaj nekaj let, ne da bi potreboval novo nadgradnjo.
Ta članek sem napisal predvsem kot opomnik na to, kaj natančno in kako sem storil, v primeru, da bi to moral storiti ponovno. Upam, da vam bo v pomoč, če se boste odločili za enako.
Je morda lažje kupiti?
Torej, vemo, kaj želimo doseči, a ostaja vprašanje, kako?
Najprej sem se seznanil s komercialnimi rešitvami in preučil podjetje Synology, ki naj bi ponujalo najboljše NAS sisteme za potrošnike na trgu. Vendar se je cena te storitve izkazala za precej visoko. Najcenejši sistem s 4 predali stane 300 USD+, pri čemer trdi diski niso vključeni. Poleg tega notranja oprema takšnega kompleta ni ravno impresivna, kar postavlja pod vprašaj njegovo dejansko zmogljivost.
Takrat sem pomislil: zakaj si ne bi sestavil NAS strežnika sam?
Iskanje primernega strežnika
Če nameravate sestaviti tak strežnik, morate najprej najti pravilno opremo. Za to sestavo bi lahko ustrezal uporabljen strežnik, saj za naloge shranjevanja ne potrebujemo posebne zmogljivosti. Med nujnimi zahtevami so velika količina RAM-a, več SATA priključkov in dobre omrežne kartice. Ker bo moj strežnik deloval na mestu mojega stalnega bivališča, je pomembna tudi raven hrupa.
Svoje iskanje sem začel na eBayu. Kljub temu, da sem tam našel veliko rabljenih Dell PowerEdge R410/R210, ki so stali manj kot 100 $, sem z izkušnjami v strežnikih vedel, da ti 1U modeli proizvajajo preveč hrupa in niso primerni za domačo uporabo. Na splošno so strežniki v tower formatu običajno tišji, a žal je bilo na eBayu na voljo le malo takšnih, in vsi so bili bodisi dragi bodisi slabo zmogljivi.
Naslednje mesto za iskanje je bil Craigslist, kjer sem našel človeka, ki je prodajal rabljen HP ProLiant N40L za samo 75 $! Poznal sem te strežnike, ki tudi v rabljenem stanju običajno stanejo okoli 300 $, zato sem poslal prodajalcu sporočilo v upanju, da je oglas še aktiven. Ko sem izvedel, da je, sem se takoj odpravil v San Mateo, da bi prevzel ta strežnik, ki me je že na prvi pogled zelo navdušil. Imel je minimalne znake obrabe in, razen majhne plasti prahu, je bilo vse ostalo odlično.

Fotografija strežnika takoj po nakupu
Tukaj so specifikacije kompleta, ki sem ga nabavil:
- CPU: AMD Turion(tm) II Neo N40L Dual-Core Processor (64-bit)
- RAM: 8 GB non-ECC RAM (nameščen s strani prejšnjega lastnika)
- Flash: 4 GB USB Drive
- SATA povezave: 4 + 1
- NIC: 1 Gbps on-board NIC
Nimam kaj dodati, saj kljub večletni starosti specifikacija tega strežnika še vedno prevladuje nad večino NAS sistemov, ponujenih na trgu, zlasti po količini delovne pomnilnika. Kmalu sem celo nadgradil na 16 GB ECC z večjim pomnilnikom in izboljšano zaščito podatkov.
Izbira trdih diskov
Zdaj imamo odlično delujoči sistem in ostane mi le še, da izberem trde diske. Očitno sem za tistih 75 $ dobil le strežnik brez HDD, kar me ni presenetilo.
Po manjši raziskavi sem odkril, da so za NAS sisteme, ki delujejo 24/7, najbolj primerne HDD WD Red. Za nakup sem se obrnil na Amazon, kjer sem kupil 4 primerke po 3 TB. V bistvu lahko priključite kateri koli priljubljen HDD, vendar bodite pozorni, da so enake kapacitete in hitrosti. To vam bo pomagalo, da se izognete morebitnim težavam z zmogljivostjo RAID v prihodnosti.
Nastavitev sistema
Mislim, da bodo mnogi za svoje NAS sestavke uporabili sistem , in kar ni nič slabega. Kljub možnosti namestitve tega sistema na lastnem strežniku, sem raje uporabil CentOS, saj je sistem ZFS na Linuxu od začetka pripravljen za produkcijsko okolje, prav tako pa je upravljanje z Linux strežnikom zame bolj znano. Poleg tega me modni vmesnik in funkcije, ki jih ponuja FreeNAS, niso zanimale – zadoščal mi je RAIDZ niz in deljenje AFP.
Namestitev CentOS na USB je zadostna preprosta – dovolj je, da izberete USB kot vir za zagon, nato vas čarovnik za namestitev vodi skozi vse njegove korake.
Sestava RAID
Po uspešni namestitvi CentOS sem namestil tudi ZFS na Linuxu, sledil sem naštevanju .
Po zaključku tega procesa sem naložil modul ZFS Kernel:
$ sudo modprobe zfs In ustvaril sem spletni RAIDZ1 z ukazom 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 Upoštevajte, da tukaj uporabljam ID trdih diskov namesto njihovih prikazanih imen (sdx), da zmanjšam možnost napake pri montiranju po zagonu zaradi spremembe črkovne oznake.
Dodajam tudi ZIL in L2ARC predpomnilnik, ki delujeta na ločenem SSD-ju, pri čemer sem ta SSD razdelil na dve particiji: 5 GB za ZIL in preostanek za L2ARC.
Glede RAIDZ1 lahko obdrži odpoved enega diska. Mnogi trdijo, da tega tipa ribnika ni priporočljivo uporabljati zaradi verjetnosti, da bo drugi disk odpovedal med prestrukturiranjem RAID, kar lahko povzroči izgubo podatkov. Jaz sem to priporočilo prezrl, saj sem redno delal varnostne kopije pomembnih podatkov na oddaljenem napravi, in okvara celo celotnega ribnika lahko vpliva le na dostopnost podatkov, ne pa na njihovo ohranitev. Če nimate možnosti delati varnostnih kopij, je bolje uporabiti rešitve, kot sta RAIDZ2 ali RAID10.
Preverite uspešnost ustvarjanja ribnika z izvajanjem:
$ sudo zpool statusin
$ sudo zfs list
IME UPORABLJENO NA VOLJO ODNOS MONTIRNO MESTO
data 510G 7.16T 140K \/mnt\data Privzeto ZFS montira pravkar ustvarjen ribnik neposredno v /, kar običajno ni zaželeno. To lahko spremenite tako, da izvedete:
zfs set mountpoint=\/mnt\/data dataOd tu možete odabrati da kreirate jedan ili više datasetova za skladištenje podataka. Kreirao sam dva, jedan za Time Machine backup, a drugi za zajedničko skladištenje datoteka. Kapacitet Time Machine dataset-a sam ograničio na 512 GB, kako bih sprečio njegov nekontrolisani rast.
Optimizacija
zfs set compression=on dataOva komanda uključuje podršku za ZFS kompresiju. Kompresija zahteva minimalnu CPU snagu, ali može značajno poboljšati I/O propusnost, pa se uvek preporučuje za korišćenje.
zfs set relatime=on data Ovom komandom smanjujemo broj ažuriranja na atime, kako bismo smanjili generaciju IOPS prilikom pristupanja datotekama.
Podrazumevano, ZFS na Linuxu koristi 50% fizičke memorije za ARC. U mom slučaju, kada je ukupni broj datoteka mali, ovaj procenat se može bezbedno povećati na 90%, jer druge aplikacije na serveru neće raditi.
$ cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=14378074112Zatim, uz pomoć možete proveriti da li su promene stupile na snagu:
$ 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
...Podešavanje ponavljajućih zadataka
Uporabil sem za podešavanje systemd tajmera za izvršavanje čišćenja jednom nedeljno i za automatsko kreiranje snapshots-a svake 15 minuta, 1 sat i 1 dan.
Instalacija Netatalk
je otvorena implementacija AFP (). Prateći S, u samo nekoliko minuta dobio sam sastavljen i instaliran RPM paket.
Podešavanje konfiguracije
$ cat /etc/netatalk/afp.conf
[datong@Titan ~]$ cat /etc/netatalk/afp.conf
;
; Konfiguracioni fajl Netatalk 3.x
;
[Global]
; Globalne postavke servera
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 je res polinom stopnje vol dbnest je u mom slučaju značajno poboljšanje, jer podrazumevano Netatalk upisuje CNID bazu podataka u koren fajl sistema, što je bilo potpuno nepoželjno, budući da se moj glavni fajl sistem izvršava na USB-u i stoga radi relativno sporo. Aktiviranje vol dbnest dovodi do čuvanja baze podataka u korenu Volume-a, koji se u ovom slučaju odnosi na ZFS pool i već je znatno brži.
Otvaranje portova u Firewall-u
$ 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
Če je bilo vse pravilno nastavljeno, bi se vaša naprava morala prikazati v Finderju in Time Machine bi morala delovati.
Dodatne nastavitve
S.M.A.R.T spremljanje
Priporočljivo je spremljati stanje vaših diskov, da se prepreči njihova okvara.
$ sudo yum install smartmontools
$ sudo systemctl start smartdDemon za UPS
Spremlja nivo napolnjenosti UPS APC in izklopi sistem, ko nivo postane kritično nizek.
$ sudo yum install epel-release
$ sudo yum install apcupsd
$ sudo systemctl enable apcupsdStrojna nadgradnja
Teden dni po nastavitvi sistema sem začel vedno bolj skrbeti, da je v strežniku nameščen pomnilnik brez ECC. Poleg tega bo pri ZFS dodatni pomnilnik za predpomnjenje zelo dobrodošel. Zato sem ponovno obiskal Amazon, kjer sem kupil 2x Kingston DDR3 8GB ECC RAM po 80 $ vsak in zamenjal namizni RAM, ki ga je namestil prejšnji lastnik. Sistem se je prvič naložil brez kakršnih koli težav in prepričal sem se, da je podpora ECC bila aktivirana:
$ dmesg | grep ECC
[ 10.492367] EDAC amd64: DRAM ECC enabled.Результат.
Rezultat me je zelo razveselil. Zdaj lahko nepretrgoma napolnim 1Gbps LAN povezavo strežnika s kopiranjem datotek, in Time Machine deluje brezhibno. Torej, na splošno sem zadovoljen z nastavitvijo.
Končna cena:
- 1 * HP ProLiant N40L = 75 $
- 2 * 8 GB ECC RAM = 174 $
- 4 * WD Red 3 TB HDD = 440 $
Ukupno = $689
Zdaj lahko rečem, da je vredno te cene.
Ali sami izdelujete NAS strežnike?
Izvor: habr.com
