Að byggja upp ódýrt NAS kerfi fyrir heimili á Linux

Að byggja upp ódýrt NAS kerfi fyrir heimili á Linux

Ég, eins og margir aðrir MacBook Pro notendur, stóð frammi fyrir vandamálinu með ófullnægjandi innra minni. Til að vera nákvæmari, rMBP sem ég notaði daglega var búið SSD með aðeins 256GB afkastagetu, sem var náttúrulega ekki nóg í langan tíma.

Og þegar ég, ofan á allt annað, byrjaði að taka upp myndbönd í fluginu mínu versnaði ástandið bara. Magn myndefnis sem tekið var eftir slíkt flug var 50+ GB og lélegi 256GB SSD-diskurinn minn fylltist mjög fljótlega og neyddi mig til að kaupa ytra 1TB drif. Hins vegar, eftir eitt ár, gat það ekki lengur séð um magn gagna sem ég var að búa til, svo ekki sé minnst á skort á offramboði og öryggisafrit gerði það óhentugt til að hýsa mikilvægar upplýsingar.

Svo, á einum tímapunkti ákvað ég að byggja stóran NAS í þeirri von að þetta kerfi myndi endast að minnsta kosti í nokkur ár án þess að þurfa aðra uppfærslu.

Ég skrifaði þessa grein fyrst og fremst til að minna á nákvæmlega hvað ég gerði og hvernig ég gerði það ef ég þarf að gera það aftur. Ég vona að það muni nýtast þér líka ef þú ákveður að gera slíkt hið sama.

Kannski er auðveldara að kaupa?

Svo við vitum hvað við viljum fá, spurningin er enn: hvernig?

Ég skoðaði fyrst viðskiptalausnir og skoðaði sérstaklega Synology, sem átti að bjóða upp á bestu NAS-kerfi fyrir neytendur á markaðnum. Hins vegar reyndist kostnaðurinn við þessa þjónustu vera nokkuð hár. Ódýrasta 4-flóa kerfið kostar $300+ og inniheldur ekki harða diska. Að auki er innri fylling slíks setts sjálfs ekki sérstaklega áhrifamikill, sem dregur í efa raunverulegan árangur þess.

Þá hugsaði ég: af hverju byggirðu ekki sjálfur NAS server?

Að finna viðeigandi netþjón

Ef þú ætlar að setja saman slíkan netþjón, þá þarftu fyrst og fremst að finna rétta vélbúnaðinn. Notaður netþjónn ætti að henta vel fyrir þessa byggingu, þar sem við þurfum ekki mikla afköst fyrir geymsluverkefni. Meðal nauðsynlegra hluta ættum við að athuga mikið magn af vinnsluminni, nokkur SATA tengi og góð netkort. Þar sem þjónninn minn mun starfa á þeim stað þar sem ég er fastur búsetu, skiptir hljóðstyrkurinn líka máli.

Ég byrjaði leitina á eBay. Þó að ég hafi fundið mikið af notuðum Dell PowerEdge R410/R210 þar fyrir undir $100, með reynslu af því að vinna í netþjónaherbergi, vissi ég að þessar 1U einingar myndu of mikinn hávaða og henta ekki til heimilisnotkunar. Að jafnaði eru turnþjónar oft minna hávaðasamir, en því miður voru þeir fáir á eBay og þeir voru allir annað hvort dýrir eða máttlausir.

Næsti staður til að leita var Craiglist, þar sem ég fann einhvern að selja notaða HP ProLiant N40L fyrir aðeins $75! Ég þekkti þessa netþjóna, sem kosta venjulega um $300 jafnvel notaðir, svo ég sendi seljanda tölvupóst í von um að auglýsingin væri enn virk. Eftir að hafa komist að því að þetta var raunin fór ég, án þess að hugsa mig tvisvar um, til San Mateo til að sækja þennan netþjón, sem við fyrstu sýn gladdi mig örugglega. Það var lítið slit og fyrir utan smá ryk var allt annað frábært.

Að byggja upp ódýrt NAS kerfi fyrir heimili á Linux
Mynd af þjóninum, strax eftir kaup

Hér eru upplýsingarnar fyrir settið sem ég keypti:

  • CPU: AMD Turion(tm) II Neo N40L tvíkjarna örgjörvi (64 bita)
  • RAM: 8 GB non-ECC vinnsluminni (sett upp af fyrri eiganda)
  • Flash: 4 GB USB drif
  • SATA tengi:4+1
  • NIC: 1 Gbps um borð NIC

Óþarfur að segja, þrátt fyrir að vera nokkurra ára gamall, er forskriftin á þessum netþjóni enn betri en flestir NAS valkostir á markaðnum, sérstaklega hvað varðar vinnsluminni. Nokkru síðar uppfærði ég meira að segja í 16 GB ECC með aukinni biðminni og aukinni gagnavernd.

Val á harða diska

Nú erum við með frábært vinnukerfi og það eina sem er eftir er að velja harða diska fyrir það. Augljóslega, fyrir þessa $75 fékk ég aðeins þjóninn sjálfan án HDD, sem kom mér ekki á óvart.

Eftir smá rannsókn komst ég að því að WD Red HDDs henta best til að keyra NAS kerfi 24/7. Til að kaupa þá sneri ég mér til Amazon, þar sem ég keypti 4 eintök af 3 TB hvert. Í grundvallaratriðum geturðu tengt hvaða harða disk sem þú vilt, en vertu viss um að þeir hafi sömu getu og hraða. Þetta mun hjálpa þér að forðast möguleg RAID afköst vandamál til lengri tíma litið.

Kerfisuppsetning

Ég held að margir muni nota kerfið fyrir NAS-smíðarnar sínar FreeNAS, og það er ekkert athugavert við það. Hins vegar, þrátt fyrir möguleikann á að setja þetta kerfi upp á netþjóninum mínum, valdi ég frekar að nota CentOS, þar sem ZFS á Linux kerfið er upphaflega undirbúið fyrir framleiðsluumhverfi og almennt er stjórnun Linux miðlara mér kunnugra. Að auki hafði ég ekki áhuga á fína viðmóti og eiginleikum sem FreeNAS býður upp á - RAIDZ fylkingin og AFP-deilingin dugðu mér.

Það er frekar einfalt að setja upp CentOS á USB - tilgreindu bara USB sem ræsigjafa, og við ræsingu mun uppsetningarhjálpin leiða þig í gegnum öll stig þess.

RAID smíði

Eftir að hafa sett upp CentOS með góðum árangri, setti ég einnig upp ZFS á Linux í kjölfarið á listanum skref hér.

Þegar þessu ferli var lokið hlóð ég ZFS kjarnaeiningunni:

$ sudo modprobe zfs

Og bjó til RAIDZ1 fylkið með því að nota skipunina 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

Vinsamlegast athugaðu að hér er ég að nota auðkenni harða diskanna í stað birtingarheita þeirra (sdx) til að draga úr líkum á því að þær takist ekki að festast eftir ræsingu vegna bókstafsbreytingar.

Ég bætti líka við ZIL og L2ARC skyndiminni sem keyrir á aðskildum SSD, og ​​skipti þeim SSD í tvær skiptingar: 5GB fyrir ZIL og restin fyrir L2ARC.

Hvað RAIDZ1 varðar, þá þolir það 1 diskbilun. Margir halda því fram að ekki ætti að nota þennan laugarmöguleika vegna líkinda á því að annar diskurinn bili meðan á RAID endurbyggingarferlinu stendur, sem getur leitt til taps gagna. Ég hunsaði þessi tilmæli, þar sem ég gerði reglulega öryggisafrit af mikilvægum gögnum á ytra tæki, og bilun á jafnvel öllu fylkinu getur aðeins haft áhrif á aðgengi gagna, en ekki öryggi þeirra. Ef þú hefur ekki getu til að taka afrit, þá væri betra að nota lausnir eins og RAIDZ2 eða RAID10.

Þú getur staðfest að stofnun laugarinnar hafi tekist með því að keyra:

$ sudo zpool status

и

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

Sjálfgefið er að ZFS festir nýstofnaða sundlaugina beint á /, sem er almennt óæskilegt. Þú getur breytt þessu með því að keyra:

zfs set mountpoint=/mnt/data data

Héðan geturðu valið að búa til eitt eða fleiri gagnapakka til að geyma gögnin. Ég bjó til tvær, einn fyrir Time Machine öryggisafrit og einn fyrir sameiginlega skráageymslu. Ég takmarkaði stærð Time Machine gagnasafnsins við 512 GB kvóta til að koma í veg fyrir endalausan vöxt þess.

Hagræðingu

zfs set compression=on data

Þessi skipun gerir ZFS þjöppunarstuðning kleift. Þjöppun notar lágmarks örgjörvaafl, en getur bætt I/O afköst verulega, svo er alltaf mælt með því.

zfs set relatime=on data

Með þessari skipun fækkum við fjölda uppfærslur í atimetil að draga úr IOPS kynslóð þegar aðgangur er að skrám.

Sjálfgefið er að ZFS á Linux notar 50% af líkamlegu minni fyrir ARC. Í mínu tilfelli, þegar heildarfjöldi skráa er lítill, er óhætt að auka þetta í 90% þar sem engin önnur forrit munu keyra á þjóninum.

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

Notaðu síðan arc_summary.py Þú getur staðfest að breytingarnar hafi tekið gildi:

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

Að setja upp endurtekin verkefni

ég notaði systemd-zpool-skrúbb að stilla kerfisbundna tímamæla til að framkvæma hreinsun einu sinni í viku og zfs-sjálfvirk skyndimynd til að búa til skyndimyndir sjálfkrafa á 15 mínútna, 1 klukkustundar og 1 dags fresti.

Er að setja upp Netatalk

nettalk er opinn uppspretta útfærsla á AFP (Apple skráningarbókun). Á eftir opinberar uppsetningarleiðbeiningar fyrir CentOS, ég fékk bókstaflega samansettan og uppsettan RPM pakka á aðeins nokkrum mínútum.

Stillingar uppsetning

$ 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

takið eftir því vol dbnest er mikil framför í mínu tilfelli, þar sem Netatalk skrifar sjálfgefið CNID gagnagrunninn í rót skráarkerfisins, sem var alls ekki æskilegt þar sem aðalskráarkerfið mitt keyrir á USB og er því tiltölulega hægt. Kveikir á vol dbnest leiðir til þess að gagnagrunnurinn er vistaður í Volume root, sem í þessu tilfelli tilheyrir ZFS lauginni og er nú þegar afkastameiri.

Virkja höfn í Firewall

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

sudo eldvegg-cmd --varanleg --zone=opinber --add-port=afpovertcp/tcp
Ef allt var rétt stillt ætti vélin þín að birtast í Finder og Time Machine ætti líka að virka.

Viðbótarstillingar
SMART eftirlit

Mælt er með því að fylgjast með stöðu diskanna til að koma í veg fyrir diskbilun.

$ sudo yum install smartmontools
$ sudo systemctl start smartd

Púki fyrir UPS

Fylgir hleðslu APC UPS og slekkur á kerfinu þegar hleðslan verður mjög lág.

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

Uppfærsla á vélbúnaði

Viku eftir að kerfið var sett upp fór ég að verða sífellt meiri áhyggjur af minni þjónsins sem er ekki ECC. Að auki, þegar um ZFS er að ræða, mun viðbótarminni fyrir biðminni vera mjög gagnlegt. Svo ég fór aftur til Amazon þar sem ég keypti 2x Kingston DDR3 8GB ECC vinnsluminni fyrir $80 hvert og skipti um skrifborðsvinnsluminni sem fyrri eigandi setti upp. Kerfið ræsti í fyrsta skipti án vandræða og ég vissi að ECC stuðningur væri virkur:

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

Niðurstaðan

Ég var mjög ánægður með niðurstöðuna. Nú get ég stöðugt haldið 1Gbps staðarnetstengingu netþjónsins upptekinni með því að afrita skrár og Time Machine virkar óaðfinnanlega. Þannig að á heildina litið er ég ánægður með uppsetninguna.

Heildarkostnaður:

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

Alls = $ 689

Nú get ég sagt að verðið hafi verið þess virði.

Gerir þú þína eigin NAS netþjóna?

Að byggja upp ódýrt NAS kerfi fyrir heimili á Linux

Að byggja upp ódýrt NAS kerfi fyrir heimili á Linux

Heimild: www.habr.com

Bæta við athugasemd