Linux Home NAS sistema merke bat eraikitzea

Linux Home NAS sistema merke bat eraikitzea

Nik, beste MacBook Pro erabiltzaile askok bezala, barne memoria nahikoa ezaren arazoari aurre egin nuen. Zehatzago esateko, egunero erabiltzen nuen rMBP 256 GB-ko SSD batekin hornituta zegoen, eta hori, noski, ez zen denbora luzez nahikoa izan.

Eta nire hegaldietan bideoak grabatzen hasi nintzenean, egoerak okerrera egin zuen. Hegaldi horien ondoren metrajearen bolumena 50 GB baino gehiagokoa izan zen, eta nire zorigaiztoko 256 GB SSD laster bete zen, 1TB kanpoko disko bat erostera behartu ninduen. Hala ere, urtebeteren buruan, ezin izan zuen sortzen ari nintzen datu-bolumenarekin jarraitu, erredundantzia eta babeskopia faltak informazio garrantzitsua ostatatzeko desegokia bihurtu zen.

Beraz, momentu batean, gaitasun handiko NAS bat eraikitzea erabaki nuen, sistema honek gutxienez pare bat urte iraungo zuelakoan, beste berritzerik behar izan gabe.

Artikulu hau idatzi nuen batez ere zer eta nola egin nuen gogorarazteko, berriro egin behar badut. Espero dut baliagarria izango zaizula gauza bera egitea erabakitzen baduzu.

Agian errazagoa da erostea?

Beraz, badakigu zer lortu nahi dugun, galdera nola geratzen da?

Lehenengo irtenbide komertzialak aztertu nituen eta bereziki Synology-ri begiratu nion, merkatuko kontsumo-mailako NAS sistemarik onenak eskaintzea suposatzen zuena. Hala ere, zerbitzu honen kostua nahiko altua zen. 4 badiako sistema merkeenak 300 $ baino gehiago balio du eta ez ditu disko gogorrak sartzen. Gainera, kit baten barne betetzea ez da bereziki ikusgarria, eta horrek bere benetako errendimendua zalantzan jartzen du.

Orduan pentsatu nuen: zergatik ez zuk zeuk eraiki NAS zerbitzari bat?

Zerbitzari egokia aurkitzea

Horrelako zerbitzari bat osatuko baduzu, lehenik eta behin hardware egokia aurkitu behar duzu. Erabilitako zerbitzari batek ondo egon beharko luke eraikuntza honetarako, ez baitugu errendimendu handirik behar biltegiratze zereginetarako. Beharrezkoetatik, RAM kopuru handia, hainbat SATA konektore eta sare-txartel onak nabarmendu behar dira. Nire zerbitzariak nire bizileku iraunkorrean lan egingo duenez, zarata mailak ere garrantzia du.

Nire bilaketa hasi nuen eBay-n. Han 410 dolar baino gutxiagoko Dell PowerEdge R210/R100 erabilitako asko aurkitu nituen arren, zerbitzari gela batean lan egin nuenez, banekien 1U unitate hauek zaratatsuegiak zirela eta ez zirela egokiak etxean erabiltzeko. Oro har, dorre-zerbitzariek zarata gutxiago izaten dute, baina, tamalez, horietako gutxi zeuden eBay-n zerrendatuta, eta guztiak garestiak edo gutxiegikoak ziren.

Bilatu beharreko hurrengo lekua Craiglist izan zen, non gizon bat aurkitu nuen HP ProLiant N40L erabilitako bat saltzen 75 $ bakarrik! Ezagutzen nituen zerbitzari hauek, normalean 300 dolar inguru balio dutenak, nahiz eta erabili ere, mezu elektroniko bat bidali nion saltzaileari zerrenda oraindik martxan zegoelakoan. Hori horrela dela jakinda, bi aldiz pentsatu gabe, San Mateora joan nintzen zerbitzari hau hartzera, lehen begiratuan behin betiko poztu nauena. Higadura minimoa zuen eta, hauts pixka bat kenduta, gainerako guztia bikaina zen.

Linux Home NAS sistema merke bat eraikitzea
Zerbitzariaren argazkia, erosi eta berehala

Eta hona hemen erosi dudan kitaren zehaztapenak:

  • CPU: AMD Turion(tm) II Neo N40L Dual-Core prozesadorea (64 biteko)
  • RAM: 8 GB ez-ECC RAM (aurreko jabeak instalatuta)
  • Flash: 4 GB USB unitatea
  • SATA konektoreak:4+1
  • NIC: 1 Gbps barneko NIC

Esan beharrik ez dago, hainbat urte izan arren, zerbitzari honen zehaztapenak oraindik ere merkatuko NAS aukera gehienak gainditzen dituela, batez ere RAMari dagokionez. Pixka bat geroago, 16 GB ECCra ere berritu nuen, buffer espazio gehiagorekin eta datu-babes hobeagoarekin.

Disko gogorrak hautatzea

Orain lan sistema bikaina dugu eta horretarako disko gogorrak aukeratzea falta da. Jakina, $ 75 horiengatik zerbitzaria bera bakarrik lortu nuen HDD gabe, eta horrek ez ninduen harritu.

Ikerketa pixka bat egin ondoren, aurkitu nuen 24/7 NAS unitateak WD Red HDDetarako egokienak direla. Horiek erosteko, Amazonera jo nuen, eta 4 TBko 3 kopia erosi nituen. Izan ere, nahiago duzun edozein HDD konekta dezakezu, baina ziurtatu tamaina eta abiadura berekoak direla. Horrek RAID errendimendu-arazo potentzialak saihesten lagunduko dizu epe luzera.

Sistemaren konfigurazioa

Uste dut askok sistema erabiliko dutela beren NAS eraikitzeko. FreeNAS, eta ez dago ezer gaizki. Hala ere, sistema hau nire zerbitzarian instalatzeko aukera izan arren, CentOS erabili nahiago nuen, Linux-en ZFS sistema hasiera batean produkzio-ingurune baterako prestatuta baitago eta, oro har, Linux zerbitzari bat kudeatzen ezagutzen dut. Gainera, ez zitzaidan interesatzen FreeNASek emandako interfaze dotorea eta ezaugarriak - pozik nengoen RAIDZ array eta AFP partekatzearekin.

CentOS USB-en instalatzea nahiko erraza da - USB abiarazte-iturburu gisa zehaztu besterik ez duzu, eta instalazio-morroiak abiaraztean urrats guztietan gidatuko zaitu.

RAID muntaia

CentOS behar bezala instalatu ondoren, ZFS Linux-en ere instalatu nuen zerrendatutakoa jarraituz hemen urratsak.

Prozesu hau amaituta, ZFS Kernel modulua kargatu nuen:

$ sudo modprobe zfs

Eta RAIDZ1 array bat sortu zuen komandoa erabiliz 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

Kontuan izan hemen disko gogorreko IDak erabiltzen ari naizela bistaratzen diren izenen ordez (sdx) letra aldaketaren ondorioz abiarazi ondoren muntatzeko aukera murrizteko.

Gainera, SSD bereizi batean exekutatzen ari diren ZIL eta L2ARC cacheak gehitu nituen, SSD hau bi partiziotan banatuz: 5GB ZILrako eta gainerakoa L2ARCrako.

RAIDZ1-i dagokionez, 1 disko hutsegite jasan dezake. Askoren ustez, bilketa-aukera hau ez da erabili behar RAID berreraikitzean bigarren disko batek huts egin dezakeelako, eta horrek datuak galtzeaz gain. Gomendio hau alde batera utzi nuen, aldiro datu garrantzitsuen babeskopiak egiten nituelako urruneko gailu batean, eta matrize osoaren hutsegiteak datuen erabilgarritasunean bakarrik eragin dezakeelako, baina ez haien segurtasunean. Babeskopia egiteko gaitasunik ez baduzu, hobe litzateke RAIDZ2 edo RAID10 bezalako irtenbideak erabiltzea.

Igerilekua behar bezala sortu dela egiazta dezakezu exekutatuta:

$ sudo zpool status

ΠΈ

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

Lehenespenez, ZFS-k zuzenean muntatzen du sortu berri den igerilekua /oro har desiragarria dena. Hau alda dezakezu:

zfs set mountpoint=/mnt/data data

Hemendik aurrera, datu-multzo bat edo gehiago sortzea aukera dezakezu zure datuak gordetzeko. Bi sortu nituen, bat Time Machineren babeskopiarako eta beste bat fitxategi partekaturako gordetzeko. Time Machine datu-multzoaren tamaina 512 GB-ko kuota batera mugatu nuen mugarik gabe hazten ez zedin.

optimizazioa

zfs set compression=on data

Komando honek ZFS konpresio euskarria gaitu. Konpresioak PUZaren potentzia minimoa erabiltzen du, baina I/O errendimendua asko hobetu dezake, beraz, beti gomendatzen da.

zfs set relatime=on data

Komando honekin, eguneratze kopurua murrizten dugu atimefitxategiak sartzean IOPS-en sorrera murrizteko.

Lehenespenez, Linux-en ZFS-k memoria fisikoaren % 50 erabiltzen du ARCrako. Nire kasuan, fitxategi kopuru osoa txikia denean, kopuru hori segurtasunez handitu daiteke % 90era arte, zerbitzariko beste aplikazio batzuk ez baitira abian jarriko.

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

Ondoren, laguntzarekin arku_laburpena.py Aldaketak indarrean jarri direla egiaztatu dezakezu:

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

Aldizkako zereginak konfiguratzea

erabili nuen systemd-zpool-scrub systemd tenporizadoreak ezartzeko astean behin garbitzeko, eta zfs-auto-snapshot argazkiak automatikoki sortzeko 15 minutu, ordu 1 eta egun bakoitzean.

Netatalk instalazioa

netalk AFPren kode irekiko inplementazioa da (Apple Artxibatzeko Protokoloa). Jarraian CentO-ren instalazio-argibide ofizialakS, minutu pare batean RPM paketea eraiki eta instalatu nuen.

Konfigurazioaren konfigurazioa

$ 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

Kontuan izan vol dbnest hobekuntza handia da nire kasuan, lehenespenez Netatalk-ek CNID datu-basea fitxategi-sistemaren erroan idazten baitu, hori ez zen desiragarria nire fitxategi-sistema nagusia USB-n dagoelako, eta, beraz, nahiko motela da. Berdin piztuz vol dbnest Datu-basea Bolumen erroan gordetzea dakar, kasu honetan ZFS igerilekuari dagokio eta dagoeneko magnitude ordena azkarragoa dena.

Suebakian Portuak gaitu

$ sudo firewall-cmd --permanent --zone=public --add-service=mdns
$ sudo firewall-cmd --permanent --zone=public --add-port=afpovertcp/tcp

sudo suebaki-cmd --permanent --zone=public --add-port=afpovertcp/tcp
Dena behar bezala konfiguratuta bazegoen, zure makinak Bilatzailean agertu beharko luke eta Time Machine ere funtzionatu beharko luke.

Ezarpen gehigarriak
Monitorizazio SMART

Zure diskoen egoera kontrolatzea gomendatzen da, huts egin ez dezaten.

$ sudo yum install smartmontools
$ sudo systemctl start smartd

Daemon UPSrako

APC UPSaren karga kontrolatzen du eta sistema itzaltzen du karga oso baxua denean.

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

Hardware-berritzea

Sistema konfiguratu eta astebetera, gero eta gehiago kezkatzen hasi nintzen zerbitzarian instalatutako ECC ez den memoriarekin. Gainera, ZFS-ren kasuan, buffererako memoria gehigarria oso erabilgarria izango da. Beraz, berriro Amazonera jo nuen, non 2x Kingston DDR3 8GB ECC RAM erosi nituen 80 $ bakoitzeko eta aurreko jabeak instalatutako mahaigaineko RAM ordezkatu nuen. Sistema arazorik gabe abiarazi zen lehen aldiz, eta ECC laguntza aktibatuta zegoela ziurtatu nuen:

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

Emaitza

Emaitza asko poztu nau. Orain etengabe kargatu dezaket zerbitzariaren 1 Gbps LAN konexioa fitxategiak kopiatuz, eta Time Machine ezin hobeto funtzionatzen du. Beraz, oro har, pozik nago konfigurazioarekin.

Kostu osoa:

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

Guztira = $ 689

Orain esan dezaket prezioak merezi zuela.

Zure NAS zerbitzariak egiten dituzu?

Linux Home NAS sistema merke bat eraikitzea

Linux Home NAS sistema merke bat eraikitzea

Iturria: www.habr.com

Gehitu iruzkin berria