Adeiladu system NAS cartref rhad ar Linux

Adeiladu system NAS cartref rhad ar Linux

Roeddwn i, fel llawer o ddefnyddwyr MacBook Pro eraill, yn wynebu problem diffyg cof mewnol. I fod yn fwy manwl gywir, roedd gan yr rMBP a ddefnyddiais bob dydd SSD gyda chynhwysedd o 256GB yn unig, nad oedd, yn naturiol, yn ddigon am amser hir.

A phan, ar ben popeth arall, dechreuais recordio fideos yn ystod fy hediadau, dim ond gwaethygu wnaeth y sefyllfa. Nifer y lluniau a ffilmiwyd ar ôl hediadau o'r fath oedd 50+ GB, a llenwodd fy SSD 256GB gwael yn fuan iawn, gan fy ngorfodi i brynu gyriant 1TB allanol. Fodd bynnag, ar ôl blwyddyn, ni allai ymdrin â faint o ddata yr oeddwn yn ei gynhyrchu mwyach, heb sôn am y diffyg diswyddiad ac roedd copi wrth gefn yn ei gwneud yn anaddas ar gyfer cynnal gwybodaeth bwysig.

Felly, ar un adeg penderfynais adeiladu NAS mawr yn y gobaith y byddai'r system hon yn para o leiaf ychydig flynyddoedd heb fod angen uwchraddio arall.

Ysgrifennais yr erthygl hon yn bennaf i atgoffa beth yn union wnes i a sut y gwnes i rhag ofn y bydd angen i mi ei wneud eto. Gobeithio y bydd yn ddefnyddiol i chi hefyd os byddwch yn penderfynu gwneud yr un peth.

Efallai ei fod yn haws i'w brynu?

Felly, rydym yn gwybod beth yr ydym am ei gael, erys y cwestiwn: sut?

Edrychais gyntaf ar atebion masnachol ac edrych yn benodol ar Synology, a oedd i fod i ddarparu'r systemau NAS gradd defnyddwyr gorau ar y farchnad. Fodd bynnag, roedd cost y gwasanaeth hwn yn eithaf uchel. Mae'r system 4 bae rhataf yn costio $300+ ac nid yw'n cynnwys gyriannau caled. Yn ogystal, nid yw llenwi mewnol pecyn o'r fath ei hun yn arbennig o drawiadol, sy'n bwrw amheuaeth ar ei berfformiad go iawn.

Yna meddyliais: beth am adeiladu gweinydd NAS fy hun?

Dod o hyd i weinydd addas

Os ydych chi'n mynd i gydosod gweinydd o'r fath, yna yn gyntaf mae angen i chi ddod o hyd i'r caledwedd cywir. Dylai gweinydd ail-law fod yn eithaf addas ar gyfer yr adeilad hwn, gan na fydd angen llawer o berfformiad arnom ar gyfer tasgau storio. Ymhlith y pethau angenrheidiol, dylem nodi llawer iawn o RAM, sawl cysylltydd SATA a chardiau rhwydwaith da. Gan y bydd fy ngwasanaethwr yn gweithio yn fy mhreswylfa barhaol, mae lefel y sŵn hefyd yn bwysig.

Dechreuais fy chwiliad ar eBay. Er i mi ddod o hyd i lawer o Dell PowerEdge R410 / R210 a ddefnyddir yno am lai na $ 100, gyda phrofiad o weithio mewn ystafell weinydd, roeddwn i'n gwybod bod yr unedau 1U hyn yn gwneud gormod o sŵn ac nad oeddent yn addas i'w defnyddio gartref. Fel rheol, mae gweinyddwyr twr yn aml yn llai swnllyd, ond, yn anffodus, ychydig ohonynt oedd ar eBay, ac roeddent i gyd naill ai'n ddrud neu'n brin o bwer.

Y lle nesaf i edrych oedd Craiglist, lle des i o hyd i rywun yn gwerthu HP ProLiant N40L wedi'i ddefnyddio am ddim ond $75! Roeddwn i'n gyfarwydd â'r gweinyddwyr hyn, sydd fel arfer yn costio tua $300 hyd yn oed yn cael eu defnyddio, felly anfonais e-bost at y gwerthwr yn gobeithio bod yr hysbyseb yn dal i fod yn weithredol. Ar ôl dysgu bod hyn yn wir, fe wnes i, heb feddwl ddwywaith, fynd i San Mateo i godi'r gweinydd hwn, a oedd yn bendant yn fy mhlesio i ar yr olwg gyntaf. Ychydig o draul oedd arno ac heblaw am ychydig o lwch, roedd popeth arall yn wych.

Adeiladu system NAS cartref rhad ar Linux
Llun o'r gweinydd, yn syth ar ôl ei brynu

Dyma'r manylebau ar gyfer y pecyn a brynais:

  • CPU: AMD Turion(tm) II Neo N40L Prosesydd Craidd Deuol (64-bit)
  • RAM: 8 GB o RAM nad yw'n ECC (wedi'i osod gan y perchennog blaenorol)
  • Flash: 4 GB Gyriant USB
  • Cysylltwyr SATA:4+1
  • NIC: 1 Gbps ar fwrdd NIC

Afraid dweud, er ei fod yn sawl blwyddyn oed, mae manyleb y gweinydd hwn yn dal i fod yn well na'r rhan fwyaf o opsiynau NAS ar y farchnad, yn enwedig o ran RAM. Ychydig yn ddiweddarach, fe wnes i hyd yn oed uwchraddio i 16 GB ECC gyda maint byffer cynyddol a mwy o amddiffyniad data.

Dewis gyriannau caled

Nawr mae gennym system weithio ragorol a'r cyfan sydd ar ôl yw dewis gyriannau caled ar ei chyfer. Yn amlwg, am y $75 hwnnw dim ond y gweinydd ei hun a gefais heb yr HDD, na wnaeth fy synnu.

Ar ôl gwneud ychydig o ymchwil, darganfyddais mai WD Red HDDs sydd fwyaf addas ar gyfer rhedeg systemau NAS 24/7. I'w prynu, troais at Amazon, lle prynais 4 copi o 3 TB yr un. Yn y bôn, gallwch gysylltu unrhyw HDD sydd orau gennych, ond gwnewch yn siŵr eu bod o'r un gallu a chyflymder. Bydd hyn yn eich helpu i osgoi problemau perfformiad RAID posibl yn y tymor hir.

Gosod System

Credaf y bydd llawer yn defnyddio'r system ar gyfer eu hadeiladau NAS FreeNAS, a does dim byd o'i le ar hynny. Fodd bynnag, er gwaethaf y posibilrwydd o osod y system hon ar fy gweinydd, roedd yn well gennyf ddefnyddio CentOS, gan fod y system ZFS ar Linux yn cael ei baratoi i ddechrau ar gyfer amgylchedd cynhyrchu, ac yn gyffredinol, mae rheoli gweinydd Linux yn fwy cyfarwydd i mi. Ar ben hynny, nid oedd gennyf ddiddordeb yn y rhyngwyneb ffansi a'r nodweddion a ddarparwyd gan FreeNAS - roedd yr arae RAIDZ a'r rhannu AFP yn ddigon i mi.

Mae gosod CentOS ar USB yn eithaf syml - nodwch USB fel y ffynhonnell gychwyn, ac ar ôl ei lansio bydd y dewin gosod yn eich tywys trwy ei holl gamau.

adeiladu RAID

Ar ôl gosod CentOS yn llwyddiannus, gosodais ZFS ar Linux hefyd yn dilyn y rhestr a restrir camau yma.

Unwaith y byddai'r broses hon wedi'i chwblhau, llwythais y modiwl ZFS Kernel:

$ sudo modprobe zfs

A chreu'r arae RAIDZ1 gan ddefnyddio'r gorchymyn 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

Sylwch fy mod yma yn defnyddio IDs y gyriannau caled yn lle eu henwau arddangos (sdx) i leihau'r tebygolrwydd y byddant yn methu â mowntio ar ôl cist oherwydd newid llythyren.

Fe wnes i hefyd ychwanegu storfa ZIL a L2ARC yn rhedeg ar SSD ar wahân, gan rannu'r SSD hwnnw'n ddau raniad: 5GB ar gyfer ZIL a'r gweddill ar gyfer L2ARC.

Fel ar gyfer RAIDZ1, gall wrthsefyll 1 methiant disg. Mae llawer yn dadlau na ddylid defnyddio'r opsiwn pwll hwn oherwydd y tebygolrwydd y bydd yr ail ddisg yn methu yn ystod y broses ailadeiladu RAID, a all arwain at golli data. Anwybyddais yr argymhelliad hwn, gan fy mod yn gwneud copïau wrth gefn o ddata pwysig yn rheolaidd ar ddyfais bell, a gall methiant hyd yn oed yr arae gyfan effeithio ar argaeledd y data yn unig, ond nid ei ddiogelwch. Os nad oes gennych y gallu i wneud copïau wrth gefn, yna byddai'n well defnyddio datrysiadau fel RAIDZ2 neu RAID10.

Gallwch wirio bod creu'r pwll yn llwyddiannus trwy redeg:

$ sudo zpool status

и

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

Yn ddiofyn, mae ZFS yn gosod y pwll sydd newydd ei greu yn uniongyrchol i /, sydd yn gyffredinol yn annymunol. Gallwch newid hyn trwy redeg:

zfs set mountpoint=/mnt/data data

O'r fan hon gallwch ddewis creu un neu fwy o setiau data i storio'r data. Creais ddau, un ar gyfer copi wrth gefn Time Machine ac un ar gyfer storio ffeiliau a rennir. Cyfyngais faint set ddata Time Machine i gwota o 512 GB i atal ei dwf diddiwedd.

Optimization

zfs set compression=on data

Mae'r gorchymyn hwn yn galluogi cefnogaeth cywasgu ZFS. Mae cywasgu yn defnyddio ychydig iawn o bŵer CPU, ond gall wella trwybwn I/O yn sylweddol, felly argymhellir bob amser.

zfs set relatime=on data

Gyda'r gorchymyn hwn rydym yn lleihau nifer y diweddariadau i atimelleihau cynhyrchu IOPS wrth gyrchu ffeiliau.

Yn ddiofyn, mae ZFS ar Linux yn defnyddio 50% o gof corfforol ar gyfer ARC. Yn fy achos i, pan fydd cyfanswm nifer y ffeiliau yn fach, gellir cynyddu hyn yn ddiogel i 90% gan na fydd unrhyw gymwysiadau eraill yn rhedeg ar y gweinydd.

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

Yna defnyddio arc_summary.py Gallwch wirio bod y newidiadau wedi dod i rym:

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

Sefydlu tasgau cylchol

Defnyddiais i systemd-zpool-prysgwydd i ffurfweddu amseryddion systemd i gyflawni glanhau unwaith yr wythnos a zfs-awto-ciplun i greu cipluniau yn awtomatig bob 15 munud, 1 awr ac 1 diwrnod.

Gosod Netatalk

rhwyd ​​siarad yn weithrediad ffynhonnell agored o AFP (Protocol Ffeilio Afal). Yn dilyn cyfarwyddiadau gosod swyddogol ar gyfer CentOS, yn llythrennol derbyniais becyn RPM wedi'i ymgynnull a'i osod mewn ychydig funudau.

Gosodiad cyfluniad

$ 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

nodi hynny vol dbnest yn welliant mawr yn fy achos i, oherwydd yn ddiofyn mae Netatalk yn ysgrifennu'r gronfa ddata CNID at wraidd y system ffeiliau, nad oedd yn ddymunol o gwbl gan fod fy mhrif system ffeiliau yn rhedeg ar USB ac felly mae'n gymharol araf. Yn troi ymlaen vol dbnest yn arwain at arbed y gronfa ddata yn y gwraidd Cyfrol, sydd yn yr achos hwn yn perthyn i'r pwll ZFS ac sydd eisoes yn drefn maint yn fwy cynhyrchiol.

Galluogi porthladdoedd yn Firewall

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

wal dân sudo-cmd --parhaol --zone=cyhoeddus --add-port=afpovertcp/tcp
Pe bai popeth wedi'i ffurfweddu'n gywir, dylai'ch peiriant ymddangos yn y Darganfyddwr, a dylai Time Machine weithio hefyd.

Gosodiadau ychwanegol
Monitro CAMPUS

Argymhellir monitro statws eich disgiau i atal methiant disg.

$ sudo yum install smartmontools
$ sudo systemctl start smartd

Daemon ar gyfer UPS

Yn monitro gwefr yr APC UPS ac yn diffodd y system pan ddaw'r tâl yn ddifrifol o isel.

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

Uwchraddio caledwedd

Wythnos ar ôl sefydlu'r system, dechreuais bryderu fwyfwy am gof y gweinydd nad yw'n ECC. Yn ogystal, yn achos ZFS, bydd cof ychwanegol ar gyfer byffro yn ddefnyddiol iawn. Felly es yn ôl i Amazon lle prynais 2x Kingston DDR3 8GB ECC RAM am $ 80 yr un a disodli'r RAM bwrdd gwaith a osodwyd gan y perchennog blaenorol. Cychwynnodd y system y tro cyntaf heb unrhyw broblemau, a gwnes yn siŵr bod cefnogaeth ECC yn cael ei actifadu:

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

Canlyniad

Roeddwn yn falch iawn gyda'r canlyniad. Nawr gallaf gadw cysylltiad LAN 1Gbps y gweinydd yn brysur yn gyson trwy gopïo ffeiliau, ac mae Time Machine yn gweithio'n ddi-ffael. Felly, yn gyffredinol, rwy'n hapus gyda'r gosodiad.

Cyfanswm y gost:

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

Yn gyfan gwbl = $ 689

Nawr gallaf ddweud bod y pris yn werth chweil.

Ydych chi'n gwneud eich gweinyddwyr NAS eich hun?

Adeiladu system NAS cartref rhad ar Linux

Adeiladu system NAS cartref rhad ar Linux

Ffynhonnell: hab.com

Ychwanegu sylw