Ja sam se, kao i mnogi drugi MacBook Pro korisnici, suočio s problemom nedovoljne interne memorije. Točnije, rMBP koji sam svakodnevno koristio bio je opremljen SSD-om kapaciteta samo 256 GB, što, naravno, nije bilo dovoljno dugo vremena.
A kada sam, povrh svega, počeo snimati videa tijekom letova, situacija se samo pogoršala. Količina snimljenog materijala nakon takvih letova bila je 50+ GB, a moj jadni SSD od 256 GB vrlo brzo se napunio, pa sam morao kupiti eksterni disk od 1 TB. Međutim, nakon godinu dana više nije mogao podnijeti količinu podataka koje sam generirao, a da ne spominjem nedostatak redundancije i sigurnosne kopije koji ga je učinio neprikladnim za smještaj važnih informacija.
Tako sam u jednom trenutku odlučio izgraditi veliki NAS u nadi da će ovaj sustav trajati barem nekoliko godina bez potrebe za novom nadogradnjom.
Ovaj sam članak prvenstveno napisao kao podsjetnik što sam točno učinio i kako sam to učinio u slučaju da to budem morao ponovno učiniti. Nadam se da će i vama biti od koristi ako se odlučite učiniti isto.
Možda je lakše kupiti?
Dakle, znamo što želimo dobiti, ostaje pitanje kako?
Prvo sam pogledao komercijalna rješenja, a posebno Synology, koji je trebao ponuditi najbolje NAS sustave za potrošače na tržištu. Međutim, pokazalo se da je cijena ove usluge prilično visoka. Najjeftiniji sustav s 4 ležišta košta više od 300 dolara i ne uključuje tvrde diskove. Osim toga, samo unutarnje punjenje takvog kompleta nije posebno impresivno, što dovodi u pitanje njegove stvarne performanse.
Tada sam pomislio: zašto ne bih sam napravio NAS poslužitelj?
Pronalaženje odgovarajućeg poslužitelja
Ako ćete sastaviti takav poslužitelj, prije svega morate pronaći pravi hardver. Rabljeni poslužitelj trebao bi biti sasvim prikladan za ovu izgradnju, budući da nam neće trebati puno performansi za zadatke pohrane. Od potrebnih stvari treba istaknuti veliku količinu RAM-a, nekoliko SATA konektora i dobre mrežne kartice. Budući da će moj poslužitelj raditi u mjestu mog stalnog prebivališta, razina buke također je važna.
Započeo sam svoju potragu na eBayu. Iako sam ondje našao mnogo rabljenih Dell PowerEdge R410/R210 za manje od 100 USD, s iskustvom rada u serverskoj sobi, znao sam da te jedinice od 1U stvaraju previše buke i da nisu prikladne za kućnu upotrebu. U pravilu su tower poslužitelji često manje bučni, ali nažalost, na eBayu ih je bilo malo i svi su bili ili skupi ili slabijeg kapaciteta.
Sljedeće mjesto koje sam trebao potražiti bio je Craiglist, gdje sam pronašao nekoga tko prodaje rabljeni HP ProLiant N40L za samo 75 USD! Bio sam upoznat s tim poslužiteljima, koji obično koštaju oko 300 USD čak i korišteni, pa sam prodavaču poslao e-poštu u nadi da je oglas još aktivan. Saznavši da je to tako, bez razmišljanja sam se uputio u San Mateo po ovaj server koji mi se na prvi pogled svakako svidio. Imao je minimalno trošenje i osim malo prašine, sve ostalo je bilo super.
Slika servera, odmah nakon kupnje
Ovo su specifikacije za komplet koji sam kupio:
- CPU: AMD Turion(tm) II Neo N40L dvojezgreni procesor (64-bitni)
- RAM: 8 GB non-ECC RAM (instalirao prethodni vlasnik)
- Bljesak: USB pogon od 4 GB
- SATA konektori:4+1
- NIC: 1 Gbps ugrađeni NIC
Nepotrebno je reći, unatoč tome što je star nekoliko godina, specifikacije ovog poslužitelja još uvijek su superiornije od većine NAS opcija na tržištu, posebice u pogledu RAM-a. Nešto kasnije, čak sam nadogradio na 16 GB ECC s povećanom veličinom međuspremnika i povećanom zaštitom podataka.
Odabir tvrdih diskova
Sada imamo izvrstan radni sustav i preostaje samo odabrati hard diskove za njega. Očito, 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 najprikladniji za rad NAS sustava 24/7. Za kupnju sam se obratio Amazonu, gdje sam kupio 4 kopije od po 3 TB. Uglavnom, možete spojiti bilo koji HDD koji želite, ali provjerite jesu li istog kapaciteta i brzine. To će vam dugoročno pomoći da izbjegnete moguće probleme s performansama RAID-a.
Postavljanje sustava
Mislim da će mnogi koristiti sustav za svoje NAS nadogradnje
Instalacija CentOS-a na USB vrlo je jednostavna - samo navedite USB kao izvor pokretanja, a nakon pokretanja čarobnjak za instalaciju će vas voditi kroz sve faze.
RAID izgradnja
Nakon uspješne instalacije CentOS-a, instalirao sam i ZFS na Linux prema navedenom
Nakon što je ovaj proces dovršen, učitao sam ZFS kernel modul:
$ sudo modprobe zfs
I stvorio RAIDZ1 niz pomoću naredbe 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 imena za prikaz (sdx
) kako bi se smanjila mogućnost da se ne uspiju montirati nakon dizanja zbog promjene slova.
Također sam dodao ZIL i L2ARC predmemoriju koja radi na zasebnom SSD-u, podijelivši taj SSD u dvije particije: 5 GB za ZIL i ostatak za L2ARC.
Što se tiče RAIDZ1, može izdržati 1 kvar diska. Mnogi tvrde da se ova opcija skupa ne bi trebala koristiti zbog vjerojatnosti kvara drugog diska tijekom procesa ponovne izgradnje RAID-a, što može dovesti do gubitka podataka. Zanemario sam ovu preporuku, budući da sam redovito izrađivao sigurnosne kopije važnih podataka na udaljenom uređaju, a kvar čak i cijelog niza može utjecati samo na dostupnost podataka, ali ne i na njihovu sigurnost. Ako nemate mogućnost izrade sigurnosnih kopija, onda bi bilo bolje koristiti rješenja poput RAIDZ2 ili RAID10.
Možete provjeriti je li stvaranje bazena bilo uspješno pokretanjem:
$ sudo zpool status
и
$ sudo zfs list
NAME USED AVAIL REFER MOUNTPOINT
data 510G 7.16T 140K /mnt/data
Prema zadanim postavkama, ZFS montira novostvoreni bazen izravno na /
, što je općenito nepoželjno. Ovo možete promijeniti pokretanjem:
zfs set mountpoint=/mnt/data data
Odavde možete odabrati stvaranje jednog ili više skupova podataka za pohranu podataka. Napravio sam dva, jedan za sigurnosno kopiranje Time Machinea i jedan za dijeljenu pohranu datoteka. Ograničio sam veličinu skupa podataka Time Machinea na kvotu od 512 GB kako bih spriječio njegov beskrajni rast.
Optimizacija
zfs set compression=on data
Ova naredba omogućuje podršku za ZFS kompresiju. Kompresija koristi minimalnu snagu CPU-a, ali može značajno poboljšati I/O propusnost, stoga se uvijek preporučuje.
zfs set relatime=on data
Ovom naredbom smanjujemo broj ažuriranja na atime
za smanjenje generiranja IOPS-a prilikom pristupa datotekama.
Prema zadanim postavkama, ZFS na Linuxu koristi 50% fizičke memorije za ARC. U mom slučaju, kada je ukupan broj datoteka mali, to se može sigurno povećati na 90% budući da se na poslužitelju neće izvoditi druge aplikacije.
$ cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=14378074112
Zatim pomoću
$ 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
Postavljanje 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
Imajte na umu da vol dbnest
je veliko poboljšanje u mom slučaju, budući da prema zadanim postavkama Netatalk zapisuje CNID bazu podataka u korijen datotečnog sustava, što uopće nije bilo poželjno budući da moj glavni datotečni sustav radi na USB-u i stoga je relativno spor. Uključivanje vol dbnest
rezultira spremanjem baze podataka u korijen volumena, koji u ovom slučaju pripada ZFS bazenu i već je za red veličine produktivniji.
Omogućavanje portova u vatrozidu
$ 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 ispravno konfigurirano, vaš bi se stroj trebao pojaviti u Finderu, a Time Machine bi također trebao raditi.
Dodatne postavke
PAMETNO praćenje
Preporuča se pratiti status vaših diskova kako biste spriječili kvar diska.
$ sudo yum install smartmontools
$ sudo systemctl start smartd
Daemon za UPS
Prati napunjenost APC UPS-a i isključuje sustav kada napunjenost postane kritično niska.
$ sudo yum install epel-release
$ sudo yum install apcupsd
$ sudo systemctl enable apcupsd
Nadogradnja hardvera
Tjedan dana nakon postavljanja sustava počeo sam postajati sve zabrinutiji zbog ne-ECC memorije poslužitelja. Osim toga, u slučaju ZFS-a, dodatna memorija za međuspremnik bit će vrlo korisna. Pa sam se vratio u Amazon gdje sam kupio 2x Kingston DDR3 8GB ECC RAM-a za 80 USD svaki i zamijenio RAM za stolno računalo koji je instalirao prethodni vlasnik. Sustav se prvi put pokrenuo bez ikakvih problema i uvjerio sam se da je ECC podrška aktivirana:
$ dmesg | grep ECC
[ 10.492367] EDAC amd64: DRAM ECC enabled.
Rezultirati
Bio sam jako zadovoljan rezultatom. Sada mogu konstantno održavati 1Gbps LAN vezu poslužitelja zauzetom kopiranjem datoteka, a Time Machine radi besprijekorno. Dakle, općenito, zadovoljan sam postavom.
Ukupni 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.
Izrađujete li vlastite NAS poslužitelje?
Izvor: www.habr.com