Lētas mājas NAS sistēmas izveide operētājsistēmā Linux

Lētas mājas NAS sistēmas izveide operētājsistēmā Linux

Es, tāpat kā daudzi citi MacBook Pro lietotāji, saskāros ar nepietiekamas iekŔējās atmiņas problēmu. PrecÄ«zāk sakot, rMBP, ko izmantoju ikdienā, bija aprÄ«kots ar SSD, kura ietilpÄ«ba bija tikai 256 GB, ar ko, protams, ilgam laikam nepietika.

Un, kad papildus visam pārējam savu lidojumu laikā sāku filmēt video, situācija tikai pasliktinājās. Pēc Ŕādiem lidojumiem uzņemtā materiāla apjoms bija 50+ GB, un mans sliktais 256 GB SSD ļoti drÄ«z piepildÄ«jās, liekot man iegādāties ārējo 1 TB disku. Tomēr pēc viena gada tas vairs nespēja apstrādāt manis Ä£enerēto datu apjomu, nemaz nerunājot par dublÄ“Å”anas trÅ«kumu, un dublÄ“Å”ana padarÄ«ja to nepiemērotu svarÄ«gas informācijas mitināŔanai.

Tāpēc vienā brÄ«dÄ« es nolēmu izveidot lielu NAS, cerot, ka Ŕī sistēma darbosies vismaz pāris gadus, neprasot jaunu jaunināŔanu.

Es uzrakstÄ«ju Å”o rakstu galvenokārt kā atgādinājumu par to, ko es darÄ«ju un kā es to izdarÄ«ju, ja man tas bÅ«tu jādara vēlreiz. Ceru, ka tas noderēs arÄ« jums, ja nolemsiet rÄ«koties tāpat.

Varbūt ir vieglāk nopirkt?

Tātad, mēs zinām, ko vēlamies iegūt, paliek jautājums: kā?

Vispirms es aplÅ«koju komerciālos risinājumus un Ä«paÅ”i aplÅ«koju Synology, kam bija jānodroÅ”ina tirgÅ« labākās patērētāja lÄ«meņa NAS sistēmas. Tomēr Ŕī pakalpojuma izmaksas izrādÄ«jās diezgan augstas. Lētākā 4 nodalÄ«jumu sistēma maksā USD 300+, un tajā nav iekļauti cietie diski. Turklāt paÅ”a Ŕāda komplekta iekŔējais pildÄ«jums nav Ä«paÅ”i iespaidÄ«gs, kas liek apÅ”aubÄ«t tā reālo veiktspēju.

Tad es domāju: kāpēc gan paÅ”am neuzbÅ«vēt NAS serveri?

Piemērota servera atraÅ”ana

Ja jÅ«s gatavojaties montēt Ŕādu serveri, tad vispirms jums ir jāatrod pareizā aparatÅ«ra. Lietotam serverim vajadzētu bÅ«t diezgan piemērotam Å”im bÅ«vējumam, jo ā€‹ā€‹mums nebÅ«s nepiecieÅ”ama liela veiktspēja krātuves uzdevumiem. Starp nepiecieÅ”amajām lietām jāatzÄ«mē liels RAM apjoms, vairāki SATA savienotāji un labas tÄ«kla kartes. Tā kā mans serveris strādās manas pastāvÄ«gās dzÄ«vesvietas vietā, nozÄ«me ir arÄ« trokŔņu lÄ«menim.

Sāku meklēt eBay. Lai gan es tur atradu daudz lietotu Dell PowerEdge R410/R210 par zem 100 USD, man bija pieredze darbā serveru telpā, es zināju, ka Ŕīs 1U vienÄ«bas rada pārāk daudz trokŔņa un nav piemērotas lietoÅ”anai mājās. Parasti torņu serveri bieži ir mazāk trokŔņaini, taču diemžēl eBay to bija maz, un tie visi bija vai nu dārgi, vai ar nepietiekamu jaudu.

Nākamā vieta, kur meklēt, bija Craiglist, kur es atradu kādu, kas pārdod lietotu HP ProLiant N40L tikai par 75 USD! Biju pazÄ«stams ar Å”iem serveriem, kas parasti maksā ap 300 USD pat lietoti, tāpēc nosÅ«tÄ«ju pārdevējam e-pastu, cerot, ka sludinājums joprojām ir aktÄ«vs. Uzzinājis, ka tas tā ir, es, divreiz nedomājot, devos uz San Mateo, lai paņemtu Å”o serveri, kas no pirmā acu uzmetiena mani noteikti iepriecināja. Tam bija minimāls nodilums, un, izņemot mazliet putekļus, viss pārējais bija lieliski.

Lētas mājas NAS sistēmas izveide operētājsistēmā Linux
Servera foto uzreiz pēc iegādes

Šeit ir manis iegādātā komplekta specifikācijas:

  • CPU: AMD Turion(tm) II Neo N40L divkodolu procesors (64 bitu)
  • RAM: 8 GB bez ECC RAM (instalējis iepriekŔējais Ä«paÅ”nieks)
  • Zibspuldze: 4 GB USB diskdzinis
  • SATA savienotāji:4+1
  • NIC: 1 Gbps borta NIC

Lieki piebilst, ka, neskatoties uz to, ka serveris ir vairākus gadus vecs, Ŕī servera specifikācijas joprojām ir pārākas par lielāko daļu tirgÅ« pieejamo NAS opciju, it Ä«paÅ”i attiecÄ«bā uz RAM. Nedaudz vēlāk es pat jaunināju lÄ«dz 16 GB ECC ar palielinātu bufera izmēru un paaugstinātu datu aizsardzÄ«bu.

Cieto disku izvēle

Tagad mums ir lieliska darba sistēma, un atliek tikai izvēlēties tai cietos diskus. AcÄ«mredzot par Å”iem 75 USD es saņēmu tikai paÅ”u serveri bez HDD, kas mani nepārsteidza.

Pēc nelielas izpētes es atklāju, ka WD Red HDD ir vislabāk piemēroti NAS sistēmu darbināŔanai 24/7. Lai tos iegādātos, es vērsos pie Amazon, kur iegādājos 4 kopijas pa 3 TB. BÅ«tÄ«bā varat pievienot jebkuru HDD, kuru vēlaties, taču pārliecinieties, ka tiem ir vienāda ietilpÄ«ba un ātrums. Tas palÄ«dzēs izvairÄ«ties no iespējamām RAID veiktspējas problēmām ilgtermiņā.

Sistēmas iestatÄ«Å”ana

Es domāju, ka daudzi izmantos sistēmu savām NAS versijām FreeNAS, un tur nav nekā slikta. Tomēr, neskatoties uz iespēju instalēt Å”o sistēmu savā serverÄ«, es izvēlējos izmantot CentOS, jo ZFS uz Linux sistēma sākotnēji ir sagatavota ražoÅ”anas videi, un kopumā Linux servera pārvaldÄ«ba man ir pazÄ«stamāka. Turklāt mani neinteresēja brÄ«niŔķīgais FreeNAS interfeiss un funkcijas ā€“ man pietika ar RAIDZ masÄ«vu un AFP koplietoÅ”anu.

CentOS instalÄ“Å”ana uz USB ir pavisam vienkārÅ”a ā€” vienkārÅ”i norādiet USB kā sāknÄ“Å”anas avotu, un pēc palaiÅ”anas instalÄ“Å”anas vednis jÅ«s vadÄ«s visos tā posmos.

RAID uzbūve

Pēc veiksmÄ«gas CentOS instalÄ“Å”anas es instalēju arÄ« ZFS operētājsistēmā Linux, ievērojot uzskaitÄ«to soļi Å”eit.

Kad Å”is process bija pabeigts, es ielādēju ZFS kodola moduli:

$ sudo modprobe zfs

Un izveidoja RAIDZ1 masīvu, izmantojot komandu 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

LÅ«dzu, ņemiet vērā, ka Å”eit es izmantoju cieto disku ID, nevis to parādāmos nosaukumus (sdx), lai samazinātu iespēju, ka tās nevarēs uzstādÄ«t pēc sāknÄ“Å”anas burtu maiņas dēļ.

Es arÄ« pievienoju ZIL un L2ARC keÅ”atmiņu, kas darbojas atseviŔķā SSD, sadalot Å”o SSD divos nodalÄ«jumos: 5 GB ZIL un pārējos L2ARC.

Kas attiecas uz RAIDZ1, tas var izturēt 1 diska atteici. Daudzi apgalvo, ka Å”o pÅ«la opciju nevajadzētu izmantot, jo pastāv iespējamÄ«ba, ka RAID atjaunoÅ”anas procesa laikā otrs disks var sabojāties, kas var izraisÄ«t datu zudumu. Es ignorēju Å”o ieteikumu, jo regulāri veicu svarÄ«gu datu dublējumkopijas attālā ierÄ«cē, un pat visa masÄ«va kļūme var ietekmēt tikai datu pieejamÄ«bu, bet ne droŔību. Ja jums nav iespēju izveidot dublējumus, labāk bÅ«tu izmantot tādus risinājumus kā RAIDZ2 vai RAID10.

Varat pārbaudīt, vai baseina izveide bija veiksmīga, izpildot:

$ sudo zpool status

Šø

$ sudo zfs list
NAME                               USED  AVAIL  REFER  MOUNTPOINT
data                               510G  7.16T   140K  /mnt/data

Pēc noklusējuma ZFS pievieno jaunizveidoto pÅ«lu tieÅ”i /, kas parasti nav vēlams. To var mainÄ«t, izpildot:

zfs set mountpoint=/mnt/data data

Å eit varat izvēlēties izveidot vienu vai vairākas datu kopas, lai saglabātu datus. Es izveidoju divus, vienu Time Machine dublÄ“Å”anai un vienu koplietojamo failu glabāŔanai. Es ierobežoju Time Machine datu kopas lielumu lÄ«dz 512 GB, lai novērstu tās bezgalÄ«go pieaugumu.

Optimizācija

zfs set compression=on data

Å Ä« komanda iespējo ZFS saspieÅ”anas atbalstu. SaspieÅ”ana izmanto minimālu CPU jaudu, taču var ievērojami uzlabot I/O caurlaidspēju, tāpēc vienmēr ir ieteicams.

zfs set relatime=on data

Ar Å”o komandu mēs samazinām atjauninājumu skaitu lÄ«dz atimelai, piekļūstot failiem, samazinātu IOPS Ä£enerÄ“Å”anu.

Pēc noklusējuma ZFS operētājsistēmā Linux izmanto 50% ARC fiziskās atmiņas. Manā gadÄ«jumā, ja kopējais failu skaits ir mazs, to var droÅ”i palielināt lÄ«dz 90%, jo serverÄ« nedarbosies citas lietojumprogrammas.

$ cat /etc/modprobe.d/zfs.conf 
options zfs zfs_arc_max=14378074112

Pēc tam izmantojot arc_summary.py Varat pārbaudÄ«t, vai izmaiņas ir stājuŔās spēkā:

$ 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
...

Atkārtotu uzdevumu iestatīŔana

ES izmantoju systemd-zpool-scrub konfigurēt systemd taimerus, lai veiktu tÄ«rÄ«Å”anu reizi nedēļā un zfs-auto-snapshot lai automātiski izveidotu momentuzņēmumus ik pēc 15 minÅ«tēm, 1 stundas un 1 dienas.

Netatalk instalēŔana

nettalk ir AFP atvērtā koda ievieÅ”ana (Apple iesniegÅ”anas protokols). SekojoÅ”s oficiālās CentO instalÄ“Å”anas instrukcijasS, es burtiski saņēmu saliktu un instalētu RPM paketi tikai pāris minÅ«tēs.

Konfigurācijas iestatīŔana

$ 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

LÅ«dzu, ņemiet vērā, ka vol dbnest ir bÅ«tisks uzlabojums manā gadÄ«jumā, jo pēc noklusējuma Netatalk ieraksta CNID datu bāzi failu sistēmas saknē, kas nemaz nebija vēlams, jo mana galvenā failu sistēma darbojas USB un tāpēc ir salÄ«dzinoÅ”i lēna. Ieslēdzas vol dbnest Rezultātā datubāze tiek saglabāta sējuma saknē, kas Å”ajā gadÄ«jumā pieder ZFS pÅ«lam un jau ir par kārtu produktÄ«vāka.

Portu iespējoÅ”ana ugunsmÅ«rÄ«

$ 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
Ja viss bija pareizi konfigurēts, jūsu iekārtai vajadzētu parādīties meklētājā, un arī Time Machine vajadzētu darboties.

Papildu iestatījumi
SMART uzraudzība

Ieteicams pārraudzīt disku statusu, lai novērstu diska kļūmes.

$ sudo yum install smartmontools
$ sudo systemctl start smartd

Dēmons UPS

Uzrauga APC UPS uzlādi un izslēdz sistēmu, kad uzlādes līmenis kļūst kritiski zems.

$ sudo yum install epel-release
$ sudo yum install apcupsd
$ sudo systemctl enable apcupsd

Aparatūras jaunināŔana

Nedēļu pēc sistēmas iestatÄ«Å”anas es sāku arvien vairāk uztraukties par servera atmiņu, kas nav ECC. Turklāt ZFS gadÄ«jumā ļoti noderēs papildu atmiņa buferÄ“Å”anai. Tāpēc es atgriezos Amazon, kur iegādājos 2x Kingston DDR3 8GB ECC RAM par 80 USD katru un nomainÄ«ju iepriekŔējā Ä«paÅ”nieka instalēto darbvirsmas RAM. Sistēma pirmo reizi tika palaists bez problēmām, un es pārliecinājos, ka ir aktivizēts ECC atbalsts:

$ dmesg | grep ECC
[   10.492367] EDAC amd64: DRAM ECC enabled.

Piedzīvojiet efektīvu rezultātu spēku

Es biju ļoti apmierināts ar rezultātu. Tagad es varu pastāvÄ«gi noslogot servera 1Gbps LAN savienojumu, kopējot failus, un Time Machine darbojas nevainojami. Tātad kopumā esmu apmierināts ar uzstādÄ«Å”anu.

Kopējās izmaksas:

  1. 1 * HP ProLiant N40L = 75 USD
  2. 2 * 8 GB ECC RAM = 174 USD
  3. 4 * WD Red 3 TB HDD = 440 USD

Kopā = $ 689

Tagad varu teikt, ka cena bija tā vērta.

Vai jūs pats veidojat NAS serverus?

Lētas mājas NAS sistēmas izveide operētājsistēmā Linux

Lētas mājas NAS sistēmas izveide operētājsistēmā Linux

Avots: www.habr.com

Pievieno komentāru