Unë, ashtu si shumë përdorues të tjerë të MacBook Pro, kam hasur në një problem mungese të hapësirës së brendshme. Në mënyrë më të saktë, rMBP që përdor çdo ditë ishte i pajisur me një SSD prej vetëm 256GB, që natyrisht nuk ishte e mjaftueshme për një periudhë të gjatë.
Dhe kur fillova gjithashtu të regjistroj video gjatë fluturimeve të mia, situata u përkeqësua akoma më shumë. Vëllimi i materialeve të xhiruara pas këtyre fluturimeve arrinte më shumë se 50 GB, dhe SSD im i pafat prej 256GB u mbush shumë shpejt, duke më detyruar të blej një disk të jashtëm prej 1TB. Megjithatë, pas një viti, edhe ai nuk i mbante dot volumeve të dhënash që gjeneroja, për të mos përmendur mungesën e tepërsisë dhe mbështetjes për të bërë që ai të ishte i papërshtatshëm për ruajtjen e informacionit të rëndësishëm.
Pra, në një moment, vendosa të ndërtoj një NAS me kapacitet të madh me shpresën se ky sistem do të mbijetonte të paktën disa vite pa pasur nevojë për një përmirësim tjetër.
Ky artikull është shkruar fillimisht si një shënim për atë se çfarë dhe si kam bërë, në rast se do të kem nevojë ta bëj këtë përsëri. Shpresoj që të jetë i dobishëm edhe për ju, nëse vendosni të bëni të njëjtën gjë.
A nuk është më e lehtë ta blejmë?
Pra, ne e dimë se çfarë duam të arrijmë, pyetja mbetet se si?
Fillimisht, shqyrtova zgjidhjet komerciale dhe shqyrtova, në veçanti, kompaninë Synology, e cila supozohej se ofronte sistemet më të mira NAS për konsumatorët në treg. Megjithatë, çmimi i këtij shërbimi rezultoi të ishte mjaft i lartë. Sistemi më i lirë me 4 boksesh kushtonte mbi $300, dhe disqet e forta nuk ishin të përfshira. Për më tepër, vetë komponentët e brendshëm të këtij kompleti nuk ishin të veçantë, çka ngre një pyetje për performancën reale të tij.
Atëherë mu desh të mendoj: pse të mos ndërtoj vetë një server NAS?
Kërkimi i serverit të duhur
Nëse po mblidhni një server të tillë, së pari duhet të gjeni pajisjet e duhura. Një server i përdorur do të ishte mëse i mjaftueshëm për këtë ndërtim, pasi për detyrat e magazinimit nuk kemi nevojë për performancë të veçantë. Këtu duhet të theksohet se kërkohen shumë RAM, disa lidhëse SATA dhe karta të mira rrjeti. Duke qenë se serveri im do të punojë në vendin tim të përhershëm, niveli i zhurmës ka rëndësi gjithashtu.
Kërkimet e mia i fillova nga eBay. Megjithëse aty gjeta shumë Dell PowerEdge R410/R210 të përdorur me çmime nën $100, duke pasur eksperiencë në ambientet serverike, e dija se këto njësitë 1U shprodukanin shumë zhurmë dhe nuk ishin të përshtatshme për përdorim në shtëpi. Në përgjithësi, serverët në formë tower zakonisht janë më pak zhurmshëm, por, fatkeqësisht, në eBay kishte pak të tillë, dhe të gjithë ishin ose të shtrenjtë, ose të pakrahasueshëm.
Vendi i radhës në kërkimin tim ishte Craigslist, ku gjetëm një person që po shiste një HP ProLiant N40L të përdorur për vetëm $75! Ishim të njohur me këta serverë, të cilët edhe në gjendje të përdorur zakonisht kushtojnë rreth $300, kështu që e dërgova një mesazh shitësit në shpresë se shpallja ishin ende e vlefshme. Pasi mësova se ishte ashtu, pa e menduar shumë, shkova në San Mateo për ta marrë këtë server, i cili më gëzoi menjëherë që nga pamja e parë. Ai kishte pak konsum dhe, përveç pak pluhuri, gjithçka tjetër ishte e shkëlqyer.

Fotoja e serverit, menjëherë pas blerjes
Ja specifikimi i setit që kam blerë:
- CPU: AMD Turion(tm) II Neo N40L Procesor Dual-Core (64-bit)
- RAM: 8 GB RAM non-ECC (i instaluar nga pronari i mëparshëm)
- Flash: 4 GB USB Drive
- Lidhësit SATA: 4 + 1
- NIC: 1 Gbps on-board NIC
Këtu duhet thënë se, pavarësisht nga mosha disa vjeçare, specifikimet e këtij serveri ende tejkalojnë shumicën e mundësive të sistemeve NAS të ofruara në treg, veçanërisht për sa i përket RAM-it. Pak më vonë, madje bëra një përmirësim në 16 GB ECC me një kosh të rritur dhe mbrojtje të përmirësuar të të dhënave.
Zgjedhja e disqeve të forta
Tani kemi një sistem të shkëlqyeshëm dhe duhet të gjejmë disqet e forta për të. Natyrisht, për ato $75, unë mora vetëm serverin pa HDD, gjë që nuk ishte e habitshme për mua.
Pas një kërkimi të vogël, kuptova se për punën me sistemet NAS 24/7, disqet HDD WD Red janë më të përshtatshme. Për t'i blerë ato, u drejtova në Amazon, ku bleva 4 copa me nga 3 TB. Në thelb, mund të lidhni çdo HDD sipas preferencës suaj, por sigurohuni që ato të jenë me të njëjtin kapacitet dhe shpejtësi. Kjo do t'ju ndihmojë të shmangni probleme të mundshme me performancën e RAID në të ardhmen.
Konfigurimi i sistemit
Mendoj se shumë do të përdorin sistemin për ndërtimet e tyre NAS , dhe në këtë nuk ka asgjë të keqe. Megjithatë, përkundër mundësisë për ta instaluar këtë sistem në serverin tim, preferova të përdor CentOS, pasi sistemi ZFS on Linux është përgatitur fillimisht për mjedis prodhimi, dhe gjithashtu menaxhimi i serverëve Linux më është më i njohur. Përveç kësaj, nuk isha i interesuar për ndërfaqen moderne dhe funksionet që ofron FreeNAS – më mjaftonte një grumbull RAIDZ dhe ndarja e AFP-së.
Të instalohet CentOS në USB është mjaft e thjeshtë – mjafton të tregoni USB-në si burim për ngarkim, dhe kur filloni, asistenti i instalimit do t'ju udhëheqë përmes të gjitha etapave të saj.
Ndërtesa RAID
Pas instalimit të suksesshëm të CentOS, unë gjithashtu kam instaluar ZFS on Linux, duke ndjekur hapat e renditur .
Pas përfundimit të këtij procesi, ngarkova modul ZFS Kernel:
$ sudo modprobe zfs Dhe krijova një grumbull RAIDZ1 me komandën 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 Vini re se këtu po përdor ID-në e disqeve të forta në vend të emrave të tyre të shfaqur (sdx), për të zvogëluar mundësinë e dështimit të montimit të tyre pas ngarkesës për shkak të ndryshimit të emrave të tyre.
Gjithashtu kam shtuar ZIL dhe cache L2ARC, duke e ndarë këtë SSD në dy pjesë: 5GB për ZIL dhe pjesën tjetër për L2ARC.
Sa i përket RAIDZ1, ai mund të përballojë dështimin e një disku. Shumë pretendojnë se kjo mundësi grumbulli nuk duhet përdorur për shkak të mundësisë së dështimit të disku të dytë gjatë rigjenerimit të RAID-it, që rrezikon humbjen e të dhënave. Unë e injorova këtë rekomandim pasi rregullisht bëja kopje rezervë të të dhënave të rëndësishme në një pajisje të largët, dhe dështimi i madhe mund të ndikoje vetëm në disponueshmërinë e të dhënave, por jo në ruajtjen e tyre. Nëse nuk keni mundësi për të bërë kopje rezervë, do ishte më mirë të përdorni zgjidhje si RAIDZ2 ose RAID10.
Për të siguruar suksesin e krijimit të grumbullit mund të ekzekutoni:
$ sudo zpool statusdhe
$ sudo zfs list
NAME USED AVAIL REFER MOUNTPOINT
data 510G 7.16T 140K /mnt/data Nga përkthimi, ZFS monta vetëm grumbullin e sapo krijuar drejtpërdrejt në /, që për zakonisht nuk është e dëshirueshme. Mund ta ndryshoni këtë duke ekzekutuar:
zfs set mountpoint=/mnt/data dataNga këtu mund të zgjidhni të krijoni një ose disa dataset-e për ruajtjen e të dhënave. Kam krijuar dy, një për kopjen rezervë Time Machine dhe tjetrin për ruajtjen e përbashkët të skedarëve. Vëllimi i dataset-it Time Machine e kam kufizuar me një kuotë prej 512 GB, për të parandaluar rritjen e pafund.
Optimizimi
zfs set compression=on dataKjo komandë aktivizon mbështetje të kompresionit ZFS. Kompresioni përdor minimale të kapacitetit të CPU-së, por mund të përmirësojë ndjeshëm kalimin e I/O, prandaj gjithmonë rekomandohet përdorimi.
zfs set relatime=on data Me këtë komandë ne reduktojmë numrin e azhurnimeve deri në atime, për të reduktuar gjenerimin e IOPS gjatë aksesit në skedarë.
Për të, ZFS on Linux përdor 50% të memorjes fizike për ARC. Në rastin tim, kur numri total i skedarëve është i vogël, ky vëllim mund të rritet sigurt në 90%, pasi aplikacione të tjera në server nuk do të ekzekutohen.
$ cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=14378074112Pastaj, me ndihmën e mund të siguroheni që ndryshimet kanë hyrë në fuqi:
$ 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
...Konfigurimi i detyrave të përsëritura
Unë kam përdorur për të vendosur timer-at e systemd për të ekzekutuar pastrimin një herë në javë dhe për krijimin automatik të kopjeve të gjendjes çdo 15 minuta, 1 orë dhe 1 ditë.
Instalimi i Netatalk
– është një zbatim i hapur i AFP (). Duke ndjekur , e përfundoja paketën RPM të ndërtuar dhe instaluar brenda disa minutash.
Konfigurimi i konfigurations
$ cat /etc/netatalk/afp.conf
[datong@Titan ~]$ cat /etc/netatalk/afp.conf
;
; Skedari i konfigurimit Netatalk 3.x
;
[Global]
; Cilësimet globale të serverit
mimic model = TimeCapsule6,106
; [Homes]
; baseir 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 Merrni parasysh se vol dbnest është një përmirësim serioz në rastin tim, sepse për default Netatalk shkruan bazën e dhënave CNID në rrënjën e sistemit të skedarëve, dhe kjo ishte krejtësisht e padëshirueshme, pasi sistemi im kryesor i skedarëve operon në USB, duke e bërë atë relativisht të ngadalshëm. Aktivizimi i vol dbnest çon në ruajtjen e bazës së dhënave në rrënjën e Vëllimit, i cili në këtë rast i referohet grumbullit ZFS dhe është shumë më efikase.
Aktivizimi i porteve në 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
Nëse gjithçka është konfiguruar saktë, makina juaj duhet të shfaqet në Finder, dhe Time Machine gjithashtu duhet të funksionojë.
Konfigurime shtesë
Monitorimi S.M.A.R.T
Rekomandohet të monitoroni statusin e disqeve tuaj për të parandaluar dështimin e tyre.
$ sudo yum install smartmontools
$ sudo systemctl start smartdDemon për UPS
Monitoron karikimin e UPS APC dhe ndalon sistemin kur karikimi bëhet kritikisht i ulët.
$ sudo yum install epel-release
$ sudo yum install apcupsd
$ sudo systemctl enable apcupsdPërmirësimi harduerik
Pas një jave nga konfigurimi i sistemit, fillova të shqetësohem gjithnjë e më shumë për faktin se në server kishte RAM pa ECC. Po ashtu, për ZFS, RAM e shtesës për buferizim do të ishte shumë e dobishme. Prandaj, iu ktheva përsëri Amazon-it, ku bleva 2x Kingston DDR3 8GB ECC RAM për $80 secili dhe zëvendësova RAM-in e desktopit të instaluar nga pronari i mëparshëm. Sistemi u ngarkua pa asnjë problem nga hera e parë dhe u sigurova që mbështetja ECC ishte aktivizuar:
$ dmesg | grep ECC
[ 10.492367] EDAC amd64: DRAM ECC enabled.Rezultati
Rezultati më gëzoi shumë. Tani mund të ngarkoja vazhdimisht një lidhje LAN 1Gbps të serverit duke kopjuar skedarë, dhe Time Machine punon pa probleme. Pra, në përgjithësi, jam i kënaqur me konfigurimin.
Kostoja totale:
- 1 * HP ProLiant N40L = $75
- 2 * 8 GB ECC RAM = $174
- 4 * WD Red 3 TB HDD = $440
Në përfundim = $689
Tani mund të them se çmimi ia vlejti.
A përgatitni vetë servera NAS?
Burimi: habr.com
