I ja sam se, kao i mnogi drugi korisnici MacBook Pro-a, suočili s problemom nedovoljne interne memorije. Da budem precizniji, rMBP koji sam svakodnevno koristio bio je opremljen SSD-om kapaciteta samo 256 GB, što, naravno, nije bilo dovoljno za dugo vremena.
A kada sam, povrh svega, počeo da snimam video zapise tokom svojih letova, situacija se samo pogoršala. Obim snimljenog materijala nakon ovakvih letova bio je 50+ GB, a moj jadni SSD od 256GB se vrlo brzo napunio, primoravši me da kupim eksterni disk od 1TB. Međutim, nakon godinu dana više nije mogao podnijeti količinu podataka koju sam generirao, a da ne spominjemo nedostatak redundantnosti i sigurnosne kopije učinili su ga neprikladnim za smještaj važnih informacija.
Tako sam u jednom trenutku odlučio da napravim veliki NAS u nadi da će ovaj sistem trajati barem nekoliko godina bez potrebe za još jednom nadogradnjom.
Napisao sam ovaj članak prvenstveno kao podsjetnik na to što sam tačno radio i kako sam to uradio u slučaju da to trebam ponoviti. Nadam se da će i vama biti od koristi ako se odlučite na isto.
Možda je lakše kupiti?
Dakle, znamo šta želimo da dobijemo, ostaje pitanje: kako?
Prvo sam se osvrnuo na komercijalna rješenja, a posebno na Synology, koji je trebao pružiti najbolje NAS sisteme za potrošače na tržištu. Međutim, ispostavilo se da je cijena ove usluge prilično visoka. Najjeftiniji sistem sa 4 ležišta košta 300$+ i ne uključuje čvrste diskove. Osim toga, samo unutrašnje punjenje takvog kompleta nije posebno impresivno, što dovodi u pitanje njegove stvarne performanse.
Onda sam pomislio: zašto ne bih sam napravio NAS server?
Pronalaženje odgovarajućeg servera
Ako ćete sastaviti takav server, prije svega morate pronaći pravi hardver. Korišteni server bi trebao biti sasvim prikladan za ovu verziju, jer nam neće trebati mnogo performansi za zadatke skladištenja. Među potrebnim stvarima treba istaknuti veliku količinu RAM-a, nekoliko SATA konektora i dobre mrežne kartice. Budući da će moj server raditi u mjestu mog stalnog boravka, bitna je i razina buke.
Počeo sam pretragu na eBayu. Iako sam tamo pronašao mnogo polovnih Dell PowerEdge R410/R210 za manje od 100 dolara, s iskustvom rada u serverskoj sobi, znao sam da ove 1U jedinice prave previše buke i da nisu pogodne za kućnu upotrebu. Po pravilu, tower serveri su često manje bučni, ali, nažalost, na eBayu ih je bilo malo, a svi su bili ili skupi ili slabije snage.
Sljedeće mjesto za traženje bio je Craiglist, gdje sam pronašao nekoga ko prodaje polovni HP ProLiant N40L za samo 75 dolara! Bio sam upoznat s ovim serverima, koji obično koštaju oko 300 dolara čak i korišteni, pa sam poslao e-mail prodavcu u nadi da je oglas još uvijek aktivan. Saznavši da je to tako, bez razmišljanja sam se zaputio u San Mateo po ovaj server, koji mi je na prvi pogled definitivno prijao. Imao je minimalno trošenje i osim malo prašine, sve ostalo je bilo odlično.
Slika servera, odmah nakon kupovine
Evo specifikacija za komplet koji sam kupio:
- CPU: AMD Turion(tm) II Neo N40L Dual-Core procesor (64-bit)
- RAM: 8 GB non-ECC RAM (instalirao prethodni vlasnik)
- blic: 4 GB USB disk
- SATA konektori:4+1
- NIŠTA: 1 Gbps ugrađena NIC
Nepotrebno je reći, uprkos tome što je star nekoliko godina, specifikacije ovog servera su i dalje superiorne u odnosu na većinu NAS opcija na tržištu, posebno u pogledu RAM-a. Nešto kasnije, čak sam nadogradio na 16 GB ECC sa povećanom veličinom bafera i povećanom zaštitom podataka.
Odabir tvrdih diskova
Sada imamo odličan sistem koji radi i preostaje samo da za njega odaberete čvrste diskove. Očigledno, za tih 75 dolara dobio sam samo sam server bez HDD-a, što me nije iznenadilo.
Nakon malog istraživanja, otkrio sam da su WD Red HDD-ovi najpogodniji za rad NAS sistema 24/7. Da ih kupim, obratio sam se Amazonu, gdje sam kupio 4 kopije od po 3 TB. U osnovi, možete spojiti bilo koji HDD koji želite, ali provjerite jesu li istog kapaciteta i brzine. Ovo će vam pomoći da izbjegnete moguće probleme sa performansama RAID-a na duge staze.
Postavljanje sistema
Mislim da će mnogi koristiti sistem za svoje NAS verzije
Instalacija CentOS-a na USB je prilično jednostavna - samo navedite USB kao izvor za pokretanje, a nakon pokretanja čarobnjak za instalaciju će vas voditi kroz sve njegove faze.
RAID build
Nakon uspješne instalacije CentOS-a, također sam instalirao ZFS na Linux slijedeći navedeno
Kada je ovaj proces završen, učitao sam ZFS Kernel modul:
$ sudo modprobe zfs
I kreirao RAIDZ1 niz koristeći naredbu 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
Imajte na umu da ovdje koristim ID-ove tvrdih diskova umjesto njihovih prikaza (sdx
) kako bi se smanjila mogućnost da se ne mogu montirati nakon pokretanja zbog promjene slova.
Također sam dodao ZIL i L2ARC keš memoriju koji radi na zasebnom SSD-u, podijelivši taj SSD na dvije particije: 5 GB za ZIL i ostatak za L2ARC.
Što se tiče RAIDZ1, on može izdržati 1 kvar diska. Mnogi tvrde da se ova opcija bazena ne bi trebala koristiti zbog vjerovatnoće da će drugi disk otkazati tokom procesa ponovne izgradnje RAID-a, što može dovesti do gubitka podataka. Ignorirao sam ovu preporuku, jer sam redovno pravio rezervne kopije važnih podataka na udaljenom uređaju, a kvar čak i čitavog niza može uticati samo na dostupnost podataka, ali ne i na njihovu sigurnost. Ako nemate mogućnost pravljenja sigurnosnih kopija, onda bi bilo bolje koristiti rješenja poput RAIDZ2 ili RAID10.
Možete provjeriti da li je kreiranje bazena bilo uspješno tako što ćete pokrenuti:
$ sudo zpool status
и
$ sudo zfs list
NAME USED AVAIL REFER MOUNTPOINT
data 510G 7.16T 140K /mnt/data
Po defaultu, ZFS montira novokreirani bazen direktno na /
, što je generalno nepoželjno. Ovo možete promijeniti pokretanjem:
zfs set mountpoint=/mnt/data data
Odavde možete odabrati da kreirate jedan ili više skupova podataka za pohranjivanje podataka. Napravio sam dva, jedan za pravljenje rezervne kopije Time Machinea i jedan za zajedničko skladištenje datoteka. Ograničio sam veličinu skupa podataka Time Machine na kvotu od 512 GB kako bih spriječio njegov beskrajni rast.
Optimizacija
zfs set compression=on data
Ova naredba omogućava podršku za ZFS kompresiju. Kompresija koristi minimalnu snagu procesora, ali može značajno poboljšati I/O propusnost, pa se uvijek preporučuje.
zfs set relatime=on data
Ovom naredbom smanjujemo broj ažuriranja na atime
da smanjite generisanje IOPS-a prilikom pristupanja datotekama.
Prema zadanim postavkama, ZFS na Linuxu koristi 50% fizičke memorije za ARC. U mom slučaju, kada je ukupan broj fajlova mali, ovo se može sigurno povećati na 90% jer se na serveru neće pokretati nijedna druga aplikacija.
$ cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=14378074112
Zatim koristeći
$ 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
...
Postavljanje ponavljajućih zadataka
koristio sam
Instaliranje Netatalka
Podešavanje konfiguracije
$ 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
Zapiši to vol dbnest
je veliko poboljšanje u mom slučaju, jer po defaultu Netatalk upisuje CNID bazu podataka u korijen fajl sistema, što nije bilo nimalo poželjno jer moj glavni sistem datoteka radi na USB-u i stoga je relativno spor. Uključuje se vol dbnest
rezultira pohranjivanjem baze podataka u korijenu volumena, koji u ovom slučaju pripada ZFS spremištu i već je za red veličine produktivniji.
Omogućavanje 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
Ako je sve bilo ispravno konfigurirano, vaša mašina bi se trebala pojaviti u Finderu, a i vremenska mašina bi također trebala raditi.
Dodatne postavke
SMART monitoring
Preporučuje se da pratite status vaših diskova kako biste spriječili kvar diska.
$ sudo yum install smartmontools
$ sudo systemctl start smartd
Daemon za UPS
Nadgleda punjenje APC UPS-a i isključuje sistem kada napunjenost postane kritično niska.
$ sudo yum install epel-release
$ sudo yum install apcupsd
$ sudo systemctl enable apcupsd
Nadogradnja hardvera
Nedelju dana nakon postavljanja sistema, počeo sam da postajem sve zabrinutiji za serverovu ne-ECC memoriju. Osim toga, u slučaju ZFS-a, dodatna memorija za baferovanje će biti vrlo korisna. Zato sam se vratio na Amazon gdje sam kupio 2x Kingston DDR3 8GB ECC RAM-a za 80 dolara po komadu i zamijenio desktop RAM koji je instalirao prethodni vlasnik. Sistem se pokrenuo prvi put bez ikakvih problema, a ja sam se uvjerio da je ECC podrška aktivirana:
$ dmesg | grep ECC
[ 10.492367] EDAC amd64: DRAM ECC enabled.
rezultat
Bio sam veoma zadovoljan rezultatom. Sada mogu stalno održavati LAN vezu servera od 1Gbps zauzetim kopiranjem datoteka, a Time Machine radi besprijekorno. Dakle, generalno, zadovoljan sam postavkom.
Ukupan trošak:
- 1 * HP ProLiant N40L = 75 USD
- 2 * 8 GB ECC RAM = 174 USD
- 4 * WD Red 3 TB HDD = 440 USD
Ukupno = $ 689
Sada mogu reći da se cijena isplatila.
Da li pravite sopstvene NAS servere?
izvor: www.habr.com