Li Linux-ê pergalek NAS-a malê ya erzan ava dikin

Li Linux-ê pergalek NAS-a malê ya erzan ava dikin

Ez, mîna gelek bikarhênerên din ên MacBook Pro, bi pirsgirêka kêmbûna bîra navxweyî re rû bi rû bûm. Ji bo ku bêtir rast be, rMBP-ya ku min rojane bikar anî bi SSD-ya ku bi kapasîteya tenê 256 GB ve girêdayî bû, ku, bi xwezayî, ji bo demek dirêj têr nedikir.

Û gava ku, li ser her tiştî, min di dema firînên xwe de dest bi tomarkirina vîdyoyan kir, rewş tenê xirabtir bû. Hêjmara dîmenên ku piştî firînên weha hatine kişandin 50+ GB bû, û SSD-ya min a belengaz 256 GB pir zû tije bû, û min neçar kir ku ajokerek 1TB ya derveyî bikirim. Lêbelê, piştî salek, ew êdî nikarî bi qasê daneya ku min diafirand bi rê ve bibe, nexasim nebûna zêdebûn û paşvekişandinê ew ji bo mêvandariya agahdariya girîng neguncan kir.

Ji ber vê yekê, di yek xalê de min biryar da ku NASek mezin ava bikim bi hêviya ku ev pergal bi kêmî ve du sal bidome bêyî ku hewcedariya nûvekirinek din hebe.

Min ev gotar di serî de wekî bîranînek bi rastî min çi kir û min ew çawa kir heke hewce bike ku ez dîsa bikim ev gotar nivîsî. Ez hêvî dikim ku ew ê ji bo we jî kêrhatî be heke hûn biryar bidin ku heman yekê bikin.

Dibe ku ew bikirin hêsantir e?

Ji ber vê yekê, em dizanin ku em dixwazin çi bi dest bixin, pirs dimîne: çawa?

Min pêşî li çareseriyên bazirganî nihêrî û bi taybetî li Synology nihêrî, ku diviya bû ku pergalên NAS-ê yên çêtirîn xerîdar li sûkê peyda bike. Lêbelê, lêçûna vê xizmetê pir zêde bû. Pergala herî erzan a 4-bay mesrefa $300+ dike û dîskên hişk nagire. Digel vê yekê, dagirtina hundurîn a kîtek wusa bixwe bi taybetî ne balkêş e, ku performansa wê ya rastîn dixe nav pirsê.

Dûv re ez fikirîm: çima bi xwe serverek NAS ava nakim?

Dîtina serverek maqûl

Ger hûn ê serverek wusa bicivînin, wê hingê berî her tiştî hûn hewce ne ku hardware rast bibînin. Pêdivî ye ku serverek hatî bikar anîn ji bo vê çêkirinê pir maqûl be, ji ber ku em ê ji bo karên hilanînê ne hewceyê pir performansê nebin. Di nav tiştên pêwîst de, divê em hejmareke mezin a RAM, çend girêdanên SATA û kartên torê yên baş destnîşan bikin. Ji ber ku servera min dê li cîhê rûniştina min a daîmî bixebite, asta deng jî girîng e.

Min lêgerîna xwe li ser eBay dest pê kir. Her çend min li wir gelek Dell PowerEdge R410/R210-ya ku di binê 100 $ de hatî bikar anîn dît, min xwedan ezmûna xebata li jûreyek serverê bû, min zanibû ku van yekîneyên 1U pir deng derdixin û ji bo karanîna malê ne maqûl in. Wekî qaîdeyek, serverên bircê bi gelemperî kêmtir dengdar in, lê, mixabin, li ser eBay çend ji wan hebûn, û ew hemî jî biha bûn an jî kêm hêz bûn.

Cihê din ku lê nihêrî Craiglist bû, li wir min kesek dît ku HP ProLiant N40L-ya hatî bikar anîn bi tenê 75 $ difroşe! Min bi van serveran nas kir, ku bi gelemperî li dora 300 $ jî tê bikar anîn, ji ber vê yekê min ji firoşkarê re e-name şand bi hêviya ku reklam hîn jî çalak bû. Piştî ku ez fêr bûm ku rewş wusa ye, ez, bêyî ku du caran bifikirim, berê xwe da San Mateo da ku vê serverê hildim, ku di nihêrîna pêşîn de bê guman ez kêfxweş bûm. Ew cilê hindiktirîn hebû û ji bilî piçek tozê, her tiştê din pir xweş bû.

Li Linux-ê pergalek NAS-a malê ya erzan ava dikin
Wêneya serverê, yekser piştî kirînê

Li vir taybetmendiyên kîta ku min kirî hene:

  • CPU: AMD Turion (tm) II Neo N40L Pêvajoya Dual-Core (64-bit)
  • BERAN: 8 GB RAM ne-ECC (ji hêla xwediyê berê ve hatî saz kirin)
  • Birûsk: 4 GB Drive USB
  • Connectors SATA:4+1
  • NOTHING: 1 Gbps li ser NIC-ê

Ne hewce ye ku were gotin, tevî ku çend sal salî ye, taybetmendiya vê serverê hîn jî ji piraniya vebijarkên NAS-ê yên li sûkê, nemaze di warê RAM-ê de, çêtir e. Dûv re, min bi mezinahiya tamponek zêde û parastina daneyê zêde kir 16 GB ECC.

Hilbijartina dîskên hişk

Naha me pergalek xebatê ya hêja heye û ya ku dimîne ev e ku em ji bo wê dîskên hişk hilbijêrin. Eşkere ye, ji bo wê 75 $ min tenê servera xwe bêyî HDD girt, ku ez şaş nekirim.

Piştî lêkolînek piçûk, min fêr kir ku HDD-yên WD Red ji bo xebitandina pergalên NAS-ê 24/7 çêtirîn in. Ji bo kirîna wan, min berê xwe da Amazonê, li wir min her yek 4 kopiyên 3 TB kirî. Di bingeh de, hûn dikarin her HDD-ya ku hûn tercîh dikin ve girêdin, lê pê ewle bin ku ew bi heman kapasîteyê û bilez in. Ev ê ji we re bibe alîkar ku hûn di demek dirêj de ji pirsgirêkên performansa RAID-ê dûr bikevin.

Setup System

Ez difikirim ku gelek dê pergalê ji bo avakirina NAS-a xwe bikar bînin FreeNAS, û di vê yekê de tiştek xelet tune. Lêbelê, tevî ku îhtîmala sazkirina vê pergalê li ser servera xwe, min tercîh kir ku CentOS bikar bînim, ji ber ku pergala ZFS li ser Linux di destpêkê de ji bo hawîrdorek hilberînê hatî amadekirin, û bi gelemperî, birêvebirina serverek Linux ji min re bêtir nas e. Wekî din, ez ji navbeynkariya xweşik û taybetmendiyên ku ji hêla FreeNAS ve hatî peyda kirin ne eleqedar bûm - array RAIDZ û parvekirina AFP ji min re bes bûn.

Sazkirina CentOS-ê li ser USB-ê pir hêsan e - tenê USB-ê wekî çavkaniya bootê destnîşan bikin, û piştî destpêkirinê sêrbazê sazkirinê dê di hemî qonaxên wê de rêberiya we bike.

avakirina RAID

Piştî ku bi serfirazî CentOS-ê saz kir, min ZFS jî li ser Linux-ê li gorî navnîşan saz kir gavên vir.

Piştî ku ev pêvajo qediya, min modula ZFS Kernel bar kir:

$ sudo modprobe zfs

Û bi karanîna fermanê array RAIDZ1 afirand 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

Ji kerema xwe not bikin ku li vir ez nasnameyên dîskên hişk li şûna navên wan ên xuyangê bikar tînim (sdx) ji bo kêmkirina şansê ku ew ji ber guheztina tîpan piştî bootê siwar bibin kêm bikin.

Min cache ZIL û L2ARC jî lê zêde kir ku li ser SSD-yek cihêreng dixebite, wê SSD-ê li du beşan dabeş kir: 5 GB ji bo ZIL û yên mayî ji bo L2ARC.

Wekî ku ji bo RAIDZ1, ew dikare 1 têkçûna dîskê bisekine. Pir kes arguman dikin ku ev vebijarka hewzê divê neyê bikar anîn ji ber îhtîmala têkçûna dîska duyemîn di pêvajoya ji nû ve avakirina RAID de, ku dikare bibe sedema windabûna daneyê. Min guh neda vê pêşniyarê, ji ber ku min bi rêkûpêk kopiyên paşvekişandinê yên daneyên girîng li ser amûrek dûr çêkir, û têkçûna tevahiya rêzê tenê dikare bandorê li hebûna daneyê bike, lê ne ewlehiya wê. Heke hûn ne xwediyê şiyana çêkirina paşgiran in, wê hingê çêtir e ku hûn çareseriyên mîna RAIDZ2 an RAID10 bikar bînin.

Hûn dikarin bi xebitandinê verast bikin ku çêkirina hewzê serketî bû:

$ sudo zpool status

и

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

Ji hêla xwerû, ZFS hewza ku nû hatî afirandin rasterast li ser dike /, ku bi gelemperî nexwestî ye. Hûn dikarin vê bi xebitandinê biguherînin:

zfs set mountpoint=/mnt/data data

Ji vir hûn dikarin hilbijêrin ku yek an çend daneyên danûstendinê biafirînin da ku daneyan hilînin. Min du çêkir, yek ji bo paşvekêşana Time Machine û yek jî ji bo hilanîna pelê hevpar. Min mezinahiya daneyên Time Machine bi kotayek 512 GB ve sînordar kir da ku pêşî li mezinbûna wê ya bêdawî bigire.

Çêkirin

zfs set compression=on data

Ev ferman piştgirîya berhevkirina ZFS dike. Compression hêza CPU ya hindiktirîn bikar tîne, lê dikare bi girîngî rêgirtina I/O çêtir bike, ji ber vê yekê her gav tê pêşniyar kirin.

zfs set relatime=on data

Bi vê fermanê em hejmara nûvekirinê kêm dikin atimeji bo kêmkirina hilberîna IOPS-ê dema gihîştina pelan.

Bi xwerû, ZFS li Linux-ê 50% ji bîra laşî ji bo ARC bikar tîne. Di doza min de, gava ku jimara giştî ya pelan piçûk be, ev dikare bi ewlehî ji% 90 zêde bibe ji ber ku dê serîlêdanên din li ser serverê neyên xebitandin.

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

Piştre bi kar tînin arc_summary.py Hûn dikarin piştrast bikin ku guhertin bandor bûne:

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

Sazkirina karên dubare

Min bikar anî systemd-zpool-scrub ji bo mîhengkirina timer systemd ji bo pêkanîna paqijiyê hefteyê carekê û zfs-oto-snapshot ji bo ku her 15 hûrdem, 1 demjimêr û 1 roj bixweber wêneyan biafirînin.

Sazkirina Netatalk

nettalk pêkanîna çavkaniyek vekirî ya AFP ye (Protokola Pelêdana Apple). Pêketînî talîmatên sazkirinê yên fermî ji bo CentOS, min bi rastî di nav çend hûrdeman de pakêtek RPM-ya civandin û sazkirî wergirt.

Sazkirina veavakirinê

$ 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

not bikin ku vol dbnest Di doza min de pêşkeftinek girîng e, ji ber ku ji hêla xwerû Netatalk databasa CNID-ê li koka pergala pelan dinivîse, ku ew qet ne xwestek bû ji ber ku pergala pelê min a sereke li ser USB-ê dimeşe û ji ber vê yekê bi hêdî hêdî ye. Zivirî vol dbnest encam di hilanîna databasê de di koka Volume de, ku di vê rewşê de girêdayî hewza ZFS-ê ye û jixwe rêzek mezinahiyê hilberîner e.

Çalakkirina portan di Firewall de

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

sudo firewall-cmd --daîmî --zone=public --add-port=afpovertcp/tcp
Ger her tişt rast hate mîheng kirin, divê makîneya we di Finder de xuya bibe, û Time Machine jî divê bixebite.

Mîhengên Additional
çavdêriya SMART

Tête pêşniyar kirin ku hûn rewşa dîskên xwe bişopînin da ku pêşî li têkçûna dîskê bigirin.

$ sudo yum install smartmontools
$ sudo systemctl start smartd

Daemon ji bo UPS

Barkirina APC UPS-ê dişopîne û dema ku barkirin bi giranî kêm dibe pergalê qut dike.

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

Nûvekirina hardware

Hefteyek piştî sazkirina pergalê, min dest pê kir ku ez li ser bîranîna ne-ECC ya serverê bi fikar bûm. Wekî din, di doza ZFS de, bîranîna zêde ya ji bo tamponkirinê dê pir bikêr be. Ji ber vê yekê ez vegeriyam Amazonê ku min 2x Kingston DDR3 8GB ECC RAM bi 80 $ her yek kirî û RAM-a sermaseyê ya ku ji hêla xwediyê berê ve hatî saz kirin veguhezand. Pergal yekem car bê pirsgirêk dest pê kir, û min piştrast kir ku piştgiriya ECC hate çalak kirin:

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

Di encama

Ez ji encamê pir kêfxweş bûm. Naha ez dikarim bi kopîkirina pelan pêwendiya LAN ya 1Gbps ya serverê bi berdewamî mijûl bikim, û Time Machine bêkêmasî dixebite. Ji ber vê yekê, bi tevahî, ez ji sazkirinê kêfxweş im.

Mesrefa tevahî:

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

Tevahî = $ 689

Niha ez dikarim bibêjim ku bihayê wê hêja bû.

Ma hûn serverên NAS-a xwe çêdikin?

Li Linux-ê pergalek NAS-a malê ya erzan ava dikin

Li Linux-ê pergalek NAS-a malê ya erzan ava dikin

Source: www.habr.com

Add a comment