Mina, nagu paljud teised MacBook Pro kasutajad, seisavad silmitsi sisemälu puudumise probleemiga. Täpsemalt öeldes, minu igapäevaselt kasutatav rMBP oli varustatud vaid 256 GB SSD-ga, mis muidugi pikaks ajaks ei piisanud.
Ja kui ma lisaks hakkasin oma lendude ajal videoid salvestama, halvenes olukord veelgi. Salvestatud materjalide maht pärast selliseid lende oli üle 50 GB, ja mu kehva õnnega 256 GB SSD täitus väga kiiresti, sundides mind ostma 1 TB välist ketast. Siiski, aasta hiljem ei suutnud ka see enam minu genereeritava andmemahu vajadustega toime tulla, rääkimata juba sellest, et üleliigsete ja varukoopiate puudumine tegi selle tähtsa teabe hoidmiseks sobimatuks.
Nii et ühel hetkel otsustasin kokku panna suure mahutavusega NAS-i, lootes, et see süsteem kestab vähemalt paar aastat ilma vajaduseta uut uuendust teha.
Selle artikli olen kirjutanud eelkõige meeldetuletuseks, et mida ja kuidas ma tegin, juhuks kui mul peaks seda kunagi uuesti tegema. Loodan, et see on kasulik ka teile, kui otsustate sama teha.
Kas ei oleks lihtsam osta?
Nii et, me teame, mida tahame saada, jääb küsmart, kuidas?
Esiteks tutvusin kommertslahendustega ja vaatasin eelkõige firmasid nagu Synology, mis pidid pakkuma parimaid tarbijataseme NAS-süsteeme turul. Kuid selle teenuse hind osutus piisavalt kõrgeks. Odavaim neljakohaline süsteem maksab üle 300 dollarit ja selle komplektis ei kaasne kõvakettad. Lisaks on sellise komplekti sisemine riistvara üsna keskpärane, mis seab kahtluse alla selle reaalse jõudluse.
Siis mõtlesin, miks mitte ehitada NAS-server ise?
Sobiva serveri otsimine
Kui plaanid sellist serverit kokku panna, siis on kõigepealt oluline leida õige riistvara. Selle kokkuvõtte jaoks sobib hästi kasutatud server, kuna salvestustööde jaoks ei ole meil erilist jõudlust vaja. Olulised on suur RAM-i maht, mitu SATA-pesa ja head võrgukardid. Kuna minu server töötab minu püsivalt elukohas, siis on ka müratase oluline.
Oma otsingud alustasin eBay'st. Kuigi leidsin sealt palju kasutatud Dell PowerEdge R410/R210 mudeleid hinnaga alla 100 dollari, teades, et heas serveriruumi kogemuses on need 1U seadmed liiga mürarikkaid koduseks kasutamiseks. Üldiselt on tower-formaadis serverid vaiksemad, kuid kahjuks oli eBay's neid vähe, ja kõik olid kas kallid või nõrgad.
Järgmine koht oma otsingute jätkamiseks oli Craiglist, kus leidsin inimese, kes müüs kasutatud HP ProLiant N40L vaid 75 dollari eest! Olin nende serveritega tuttav, mis isegi kasutatuna maksab tavaliselt umbes 300 dollarit, seega saatsin müüjale kirja lootuses, et kuulutus on endiselt aktuaalne. Kui sain teada, et nii ongi, suundusin mõtteid kaua raiskamata San Mateosse, et see server ära tuua, mis esimesest pilgust mind kindlasti rõõmustas. Sellel oli minimaalne kulumine ja, välja arvatud väike tolmukiht, oli kõik muus väga hästi.

Serveri foto otse pärast ostmist
Ja siin on komplekti spetsifikatsioon, mille ma sain:
- CPU: AMD Turion(tm) II Neo N40L kahetuumaine protsessor (64-bit)
- RAM: 8 GB non-ECC RAM (eelmine omanik paigaldanud)
- Flash: 4 GB USB-mälupulk
- SATA ühendused: 4 + 1
- NIC: 1 Gbps emaplaadi NIC
On ütlematagi selge, et hoolimata mitme aasta vanusest ületas selle serveri spetsifikatsioon endiselt enamik turul pakutavaid NAS-süsteeme, eriti mälumahu osas. Hiljem tegin isegi 16 GB ECC ülesande madalama latentsuse ja kõrgema andmekaitsega.
Kõvakettade valik
Nüüd on meil suurepärane töötav süsteem ja jääb valida sellele sobivad kõvakettad. Loomulikult sain ma nende 75 dollari eest ainult serveri ilma HDD-deta, mis mind ei üllatanud.
Veidi uurides leidsin, et 24/7 NAS-süsteemide jaoks sobivad kõige paremini HDD-d WD Red. Ostsin Amazonist 4 tükki, igaühe mahutavus on 3 TB. Sisuliselt võite ühendada ükskõik millise valitud HDD, kuid pidage meeles, et need peavad olema sama mahutavuse ja kiirusena. See aitab vältida võimalikke RAID-i jõudlusprobleeme tulevikus.
Süsteemi seadistamine
Arvan, et paljud kasutavad oma NAS-i ehitustes süsteemi , ja selles pole midagi halba. Kuid hoolimata võimalusest installida see süsteem oma serverisse, eelistasin kasutada CentOS-i, kuna ZFS on Linuxi süsteem on algselt ette valmistatud tootmis keskkonnaks, ja ma olen üleüldiselt Linuxi serveritega rohkem harjunud. Lisaks ei huvitanud mind trendikas liides ja FreeNAS-i pakutavad funktsioonid – mulle piisab RAIDZ maatriksist ja AFP jagamisest.
CentOS-i installimine USB-le on piisavalt lihtne – piisab USB-d käivitamisallikana määramisest, ja installatsioonimeister viib teid läbi kõikidest etappidest.
RAID-i kogumine
Pärast CentOS-i eduka installatsiooni installisin samuti ZFS on Linuxi, järgides siin loetletud .
Selle protsessi lõppedes laadisin ZFS Kernel mooduli:
$ sudo modprobe zfs Ja lõin RAIDZ1 maatriksi käsu abil 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 Pange tähele, et siin kasutan kõvakettade ID-sid nende kuvatavate nimede asemel (sdx), et vähendada nende purunemise tõenäosust pärast laadimist tähed tähenduse muudatuse tõttu.
Lisaks lisasin ZIL-i ja L2ARC-i vahemälu, mis töötavad eraldi SSD-l, jagades selle SSD kaheks partitsiooniks: 5GB ZIL-i jaoks ja ülejäänud osa L2ARC-i jaoks.
Mis puudutab RAIDZ1-i, siis see suudab taluda 1 ketta riket. Paljud väidavad, et seda tüüpi puu ei tohi kasutada, sest on oht, et teine ketas võib rikke tõttu RAID-i ümberkorraldamise käigus ebaõnnestuda, mis võib viia andmete kadumiseni. Olen siiski sellest soovitusest üle astunud, kuna tegin regulaarselt varukoopiaid olulistele andmetele eemalolevale seadmele, ja kogu mahtuvuse rike võib mõjutada ainult andmete kättesaadavust, kuid mitte nende säilimist. Kui teil pole võimalik varukoopiaid teha, siis on parem kasutada lahendusi, nagu RAIDZ2 või RAID10.
Puu edukuse loomise kinnitamiseks võib käivitada:
$ sudo zpool statusja
$ sudo zfs list
NAME USED AVAIL REFER MOUNTPOINT
data 510G 7.16T 140K /mnt/data Vaikimisi montaaž ZFS just loodud puu otse /, mis tavaliselt ei ole soovitav. Seda saab muuta, käivitades:
zfs set mountpoint=/mnt/data dataSiit saate valida ühe või mitu andmestikku andmete salvestamiseks. Olen loonud kaks, üks Time Machine'i varundamiseks ja teine üldiseks failide salvestamiseks. Time Machine'i andmestiku ma piirasin 512 GB kvotiga, et vältida selle lõputut kasvu.
Optimeerimine
zfs set compression=on dataSee käsk lülitab sisse ZFS-i tihendamise toe. Tihendamine kasutab minimaalset CPU võimsust, kuid võib oluliselt parandada I/O läbilaskevõimet, seega on selle kasutamine alati soovitatav.
zfs set relatime=on data Selle käsklusega vähendame värskenduste arvu atime, et vähendada IOPS-i genereerimist failidele juurdepääsul.
Vaikimisi kasutab ZFS on Linux ARC jaoks 50% füüsilisest mälust. Minu puhul, kui üldine failide arv ei ole suur, saab seda mahtu ohutult suurendada 90%-ni, kuna serveril ei toimu teisi rakendusi.
$ cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=14378074112Seejärel saab kasutada, et veenduda, et muudatused on jõustunud:
$ 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
...Korduvate ülesannete seadistamine
Ma kasutasin systemd-timereid seadistamine kord nädalas puhastamiseks ja seisundite automaatne loomine iga 15 minuti, 1 tunni ja 1 päeva järel.
Netatalki installimine
on avatud rakenduste AFP („). Järgides S, suutsin ma mõne minutiga RPM paketi koostada ja installida.
Konfiguratsiooni seadistamine
$ cat /etc/netatalk/afp.conf
[datong@Titan ~]$ cat /etc/netatalk/afp.conf
;
; Netatalk 3.x konfiguratsioonifail
;
[Globaalne]
; Üldised serveri seaded
mimic model = TimeCapsule6,106
; [Kodud]
; basedir regex = /home
; [Minu AFP maht]
; path = /path/to/volume
; [Minu Time Machine maht]
; path = /path/to/backup
; time machine = jah
[Datongi failid]
path = /mnt/data/datong
valid users = datong
[Datongi Time Machine varukoopiad]
path = /mnt/data/datong_time_machine_backups
time machine = jah
valid users = datong Pange tähele, et vol dbnest on minu olukorras tõsine täiustus, kuna vaikimisi kirjutab Netatalk CNID andmebaasi failisüsteemi juure, mis polnud soovitav, kuna minu peamine failisüsteem töötab USB-l, mille tõttu see töötab aeglaselt. Samas kui vol dbnest toob andmebaasi salvestamise mahuti juurte, mis seondub ZFS-i kogumiga ja on juba kordades kiirem.
Pordid tulemüüris lubamine
$ 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
Kui kõik on õigesti seadistatud, peaks teie masin ilmuma Finderisse ja Time Machine peaks samuti töötama.
Lisaseaded
S.M.A.R.T jälgimine
Soovitav on jälgida teie kõvaketaste olekut, et ennetada nende tõrkeid.
$ sudo yum install smartmontools
$ sudo systemctl start smartdUPS-i demon
Jälgib APC UPS-i laadimist ja välgutab süsteemi, kui laadimine muutub kriitiliselt madalaks.
$ sudo yum install epel-release
$ sudo yum install apcupsd
$ sudo systemctl enable apcupsdRiistvarauuendus
Nädala pärast süsteemi seadistamist hakkasin üha enam muretsema, et serveris on mälu ilma ECC-ta. Lisaks on ZFS-i puhul tarvilik täiendav mälu vahemäluks. Seetõttu pöördusin taas Amazoni poole, kus ostsin 2x Kingston DDR3 8GB ECC RAM-i igaühe eest 80 dollari eest ja asendasin varasema omaniku paigaldatud lauaarvuti RAM-i. Süsteem käivitus esimesest korrast probleemideta ja veendusin, et ECC tugi oli aktiveeritud:
$ dmesg | grep ECC
[ 10.492367] EDAC amd64: DRAM ECC enabled.Tulemus
Tulemus rõõmustas mind väga. Nüüd saan pidevalt 1Gbps LAN-iühenduse serverisse faile kopeerides laadida, ja Time Machine töötab laitmatult. Nii et, kokkuvõttes olen seadistusega rahul.
Lõplik maksumus:
- 1 * HP ProLiant N40L = 75 $
- 2 * 8 GB ECC RAM = 174 $
- 4 * WD Red 3 TB HDD = 440 $
Kokku = $689
Nüüd võin öelda, et hind oli seda väärt.
Kas teete NAS-servereid ise?
Allikas: habr.com
