Сохтани системаи арзони NAS дар Linux

Сохтани системаи арзони NAS дар Linux

Ман, мисли бисёр дигар корбарони MacBook Pro, бо мушкилоти хотираи дохилии нокифоя дучор шудам. Аниқтараш, rMBP, ки ман ҳамарӯза истифода мекардам, бо SSD бо иқтидори ҳамагӣ 256 ГБ муҷаҳҳаз шудааст, ки табиист, ки барои муддати тӯлонӣ кофӣ набуд.

Ва ҳангоме ки бар замми ҳама чиз ман сабти видеоҳоро ҳангоми парвозҳо оғоз кардам, вазъ боз ҳам бадтар шуд. Ҳаҷми наворҳое, ки пас аз чунин парвозҳо ба навор гирифта шудаанд, 50+ ГБ буд ва SSD-и камбизоати ман 256 ГБ зуд пур шуд ва маро маҷбур кард, ки диски берунии 1TB харам. Аммо, пас аз як сол, он дигар ҳаҷми маълумотеро, ки ман тавлид мекардам, идора карда наметавонист, ба ғайр аз набудани зиёдатӣ ва нусхабардорӣ онро барои ҷойгиркунии иттилооти муҳим номувофиқ гардонд.

Ҳамин тавр, дар як лаҳза ман тасмим гирифтам, ки NAS-и калон созам, то ин система ҳадди аққал ду сол бидуни такмилдиҳии дигар давом кунад.

Ман ин мақоларо пеш аз ҳама ҳамчун ёдрас кардани маҳз он чизе ки ман кардам ва чӣ гуна кардам, ки дар сурати зарурати дубора иҷро кардани он навиштам. Умедворам, ки ин барои шумо низ муфид хоҳад буд, агар шумо низ ҳамин тавр кунед.

Шояд харидан осонтар бошад?

Пас, мо медонем, ки мо чиро ба даст овардан мехоҳем, савол боқӣ мемонад: чӣ тавр?

Ман аввал ба ҳалли тиҷоратӣ назар кардам ва махсусан ба Synology назар кардам, ки бояд беҳтарин системаҳои NAS-и истеъмолиро дар бозор таъмин мекард. Бо вуҷуди ин, арзиши ин хидмат хеле баланд шуд. Арзонтарин системаи 4-бай 300 доллари амрикоиро ташкил медиҳад ва дискҳои сахтро дар бар намегирад. Илова бар ин, худи пуркунии дохилии чунин маҷмӯа махсусан таъсирбахш нест, ки иҷрои воқеии онро зери шубҳа мегузорад.

Пас аз он ман фикр кардам: чаро худам сервери NAS насозед?

Ҷустуҷӯи сервери мувофиқ

Агар шумо чунин серверро ҷамъ карданӣ бошед, пеш аз ҳама ба шумо лозим аст, ки сахтафзори дурустро пайдо кунед. Сервери истифодашуда бояд барои ин сохтмон комилан мувофиқ бошад, зеро барои иҷрои вазифаҳои нигоҳдорӣ ба мо иҷрои зиёд ниёз надорем. Дар байни чизҳои зарурӣ, мо бояд миқдори зиёди RAM, якчанд пайвасткунакҳои SATA ва кортҳои хуби шабакавиро қайд кунем. Азбаски сервери ман дар ҷои истиқомати доимии ман кор хоҳад кард, сатҳи садо низ муҳим аст.

Ман ҷустуҷӯи худро дар eBay оғоз кардам. Гарчанде ки ман дар он ҷо миқдори зиёди Dell PowerEdge R410/R210-ро бо нархи камтар аз 100 доллар ёфтам, ки таҷрибаи кор дар утоқи сервер доштам, ман медонистам, ки ин агрегатҳои 1U садои аз ҳад зиёд мебароранд ва барои истифодаи хона мувофиқ нестанд. Одатан, серверҳои манораҳо аксар вақт камтар ғавғо доранд, аммо, мутаассифона, дар eBay шумораи онҳо кам буданд ва ҳамаашон қимат буданд ва ё камқувват буданд.

Ҷои навбатии ҷустуҷӯ ин Craiglist буд, ки дар он ҷо касе ёфтам, ки HP ProLiant N40L-и истифодашударо ҳамагӣ 75 доллар мефурӯшад! Ман бо ин серверҳо, ки одатан тақрибан 300 доллар арзиш доранд, шинос будам, бинобар ин ман ба фурӯшанда бо почтаи электронӣ фиристодам, ки таблиғ то ҳол фаъол аст. Вақте ки фаҳмидам, ки ин чунин аст, ман ду бор фикр накарда, ба Сан-Матео рафтам, то ин серверро бигирам, ки дар назари аввал ба ман писанд омад. Он фарсудашавии ҳадди аққал дошт ва ба истиснои каме чанг, ҳама чизи дигар хуб буд.

Сохтани системаи арзони NAS дар Linux
Сурати сервер, фавран пас аз харид

Инҳоянд мушаххасоти маҷмӯае, ки ман харидам:

  • ВПМ - Воҳиди Пардозиши Марказӣ: AMD Turion(tm) II Neo N40L протсессори дуҷониба (64-бит)
  • RAM: 8 ГБ RAM ғайри ECC (аз ҷониби соҳиби қаблӣ насб шудааст)
  • алангагирӣ: 4 ГБ диски USB
  • Пайвасткунакҳои SATA:4+1
  • NIC: 1 Гбит/с дар болои NIC

Бояд гуфт, ки сарфи назар аз чандсолагӣ, мушаххасоти ин сервер то ҳол аз аксари вариантҳои NAS дар бозор, бахусус аз ҷиҳати хотираи RAM, бартарӣ дорад. Каме дертар, ман ҳатто ба 16 ГБ ECC бо андозаи афзояндаи буфер ва баланд бардоштани ҳифзи маълумот такмил додам.

Интихоби дискҳои сахт

Ҳоло мо системаи аълои корӣ дорем ва танҳо интихоби дискҳои сахт барои он боқӣ мемонад. Аён аст, ки барои он $75 ман танҳо худи серверро бе HDD гирифтам, ки ин маро ба ҳайрат наовард.

Пас аз тадқиқоти каме, ман фаҳмидам, ки HDD-ҳои WD Red барои кор кардани системаҳои NAS 24/7 мувофиқанд. Барои харидани онҳо, ман ба Амазонка муроҷиат кардам, ки дар он ҷо 4 нусхаи ҳар яки 3 TB харидам. Асосан, шумо метавонед ҳама гуна HDD-и дилхоҳатонро пайваст кунед, аммо боварӣ ҳосил кунед, ки онҳо дорои як иқтидор ва суръат мебошанд. Ин ба шумо кӯмак мекунад, ки аз мушкилоти эҳтимолии иҷрои RAID дар муддати тӯлонӣ канорагирӣ кунед.

Танзимоти система

Ман фикр мекунам, ки бисёриҳо системаро барои сохтани NAS-и худ истифода мебаранд Фринас, ва дар ин ҳеҷ чиз нодуруст нест. Аммо, сарфи назар аз имкони насб кардани ин система дар сервери ман, ман истифодаи CentOS-ро афзалтар донистам, зеро системаи ZFS дар Linux дар аввал барои муҳити истеҳсолӣ омода шудааст ва дар маҷмӯъ, идоракунии сервери Linux ба ман бештар шинос аст. Ғайр аз он, ман ба интерфейси зебо ва хусусиятҳои аз ҷониби FreeNAS пешниҳодшуда таваҷҷӯҳ надоштам - массиви RAIDZ ва мубодилаи AFP барои ман кофӣ буданд.

Насб кардани CentOS дар USB хеле содда аст - танҳо USB-ро ҳамчун манбаи пурборкунӣ муайян кунед ва ҳангоми ба кор андохтани устоди насб шуморо дар тамоми марҳилаҳои он роҳнамоӣ мекунад.

Сохтани RAID

Пас аз бомуваффақият насб кардани CentOS, ман инчунин ZFS-ро дар Linux пас аз рӯйхат насб кардам қадамҳо дар ин ҷо.

Пас аз анҷоми ин раванд, ман модули ZFS Kernel-ро бор кардам:

$ sudo modprobe zfs

Ва бо истифода аз фармон массиви RAIDZ1-ро сохт 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

Лутфан қайд кунед, ки дар ин ҷо ман ID-и дискҳои сахтро ба ҷои номҳои намоишии онҳо истифода мебарам (sdx) барои кам кардани имкони нокомии онҳо пас аз боркунӣ бо сабаби тағир додани ҳарф.

Ман инчунин кэши ZIL ва L2ARC-ро илова кардам, ки дар як SSD алоҳида кор мекунанд ва он SSD-ро ба ду қисм тақсим кардам: 5 ГБ барои ZIL ва боқимонда барои L2ARC.

Дар мавриди RAIDZ1, он метавонад ба 1 нокомии диск тоб оварад. Бисёриҳо баҳс мекунанд, ки ин варианти ҳавз набояд аз сабаби эҳтимолияти корношоямии диски дуюм дар ҷараёни барқарорсозии RAID истифода шавад, ки метавонад ба талафи маълумот оварда расонад. Ман ин тавсияро сарфи назар кардам, зеро ман мунтазам нусхаҳои эҳтиётии маълумоти муҳимро дар дастгоҳи дурдаст эҷод мекардам ва нокомии ҳатто тамоми массив метавонад танҳо ба дастрасии маълумот таъсир расонад, аммо на бехатарии он. Агар шумо қобилияти сохтани нусхабардорӣ надошта бошед, беҳтар мебуд, ки ҳалли монанди RAIDZ2 ё RAID10 -ро истифода баред.

Шумо метавонед тасдиқ кунед, ки эҷоди ҳавз бомуваффақият иҷро шудааст:

$ sudo zpool status

и

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

Бо нобаёнӣ, ZFS ҳавзи навтаъсисро мустақиман ба он васл мекунад /, ки умуман номатлуб аст. Шумо метавонед инро тавассути иҷро кардани: тағир диҳед:

zfs set mountpoint=/mnt/data data

Аз ин ҷо шумо метавонед як ё якчанд маҷмӯи додаҳоро барои нигоҳ доштани маълумот интихоб кунед. Ман ду, яке барои нусхабардории Time Machine ва дигаре барои нигаҳдории файлҳои муштарак сохтам. Ман андозаи маҷмӯаи маълумотҳои Time Machine-ро ба квотаи 512 ГБ маҳдуд кардам, то афзоиши беохири онро пешгирӣ кунам.

Аҳамиятнокӣ

zfs set compression=on data

Ин фармон ба дастгирии фишурдани ZFS имкон медиҳад. Фишурдашавӣ қувваи ҳадди ақали CPU-ро истифода мебарад, аммо метавонад қобилияти интиқоли вуруд / баромадро ба таври назаррас беҳтар кунад, аз ин рӯ ҳамеша тавсия дода мешавад.

zfs set relatime=on data

Бо ин фармон мо шумораи навсозиҳоро ба atimeбарои кам кардани тавлиди IOPS ҳангоми дастрасӣ ба файлҳо.

Бо нобаёнӣ, ZFS дар Linux 50% хотираи физикиро барои ARC истифода мебарад. Дар ҳолати ман, вақте ки шумораи умумии файлҳо кам аст, онро метавон ба таври бехатар то 90% зиёд кард, зеро ягон барномаи дигар дар сервер кор намекунад.

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

Сипас истифода arc_summary.py Шумо метавонед тасдиқ кунед, ки тағиротҳо эътибор пайдо кардаанд:

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

Муқаррар кардани вазифаҳои такроршаванда

истифода бурдам systemd-zpool-scrub барои танзим кардани таймерҳои systemd барои анҷом додани тозакунӣ як маротиба дар як ҳафта ва zfs-авто-навор то дар 15 дақиқа, 1 соат ва 1 рӯз аксҳоро ба таври худкор эҷод кунад.

Насб кардани Netatalk

nettalk татбиқи сарчашмаи кушодаи AFP (Протоколи пешниҳоди Apple). Пайравӣ дастурҳои расмии насб барои CentOS, ман аслан бастаи ҷамъшуда ва насбшудаи RPM-ро дар тӯли чанд дақиқа гирифтам.

Танзимоти конфигуратсия

$ 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

дар назар гиред, ки vol dbnest беҳбудии бузург дар ҳолати ман аст, зеро ба таври нобаёнӣ Netatalk пойгоҳи додаҳои CNID-ро ба решаи системаи файлӣ менависад, ки ин тамоман матлуб набуд, зеро системаи асосии файлии ман дар USB кор мекунад ва аз ин рӯ нисбатан суст аст. Даргиранда vol dbnest натиҷа медиҳад, ки пойгоҳи додаҳо дар решаи Ҳаҷм захира карда шаванд, ки дар ин ҳолат ба ҳавзи ZFS тааллуқ дорад ва аллакай фармоиши бузурги самараноктар аст.

Фаъолсозии портҳо дар Сипар

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

sudo firewall-cmd -- доимӣ --zone = public --add-port = afpovertcp/tcp
Агар ҳама чиз дуруст танзим шуда бошад, мошини шумо бояд дар Finder пайдо шавад ва Time Machine низ бояд кор кунад.

Танзимоти иловагӣ
Мониторинги SMART

Тавсия дода мешавад, ки ҳолати дискҳои худро назорат кунед, то аз шикасти диск пешгирӣ карда шавад.

$ sudo yum install smartmontools
$ sudo systemctl start smartd

Демон барои UPS

Пардохти UPS-и APC-ро назорат мекунад ва ҳангоми хеле кам шудани барқ ​​системаро хомӯш мекунад.

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

Навсозии таҷҳизот

Як ҳафта пас аз насб кардани система, ман бештар дар бораи хотираи ғайри ECC сервер нигарон шудам. Илова бар ин, дар ҳолати ZFS, хотираи иловагӣ барои буферӣ хеле муфид хоҳад буд. Ҳамин тавр, ман ба Амазонка баргаштам, ки дар он ҷо ман 2x Kingston DDR3 8GB ECC RAM-ро ба маблағи 80 доллар харидаам ва RAM-и мизи кории аз ҷониби соҳиби қаблӣ насбшуда иваз кардам. Система бори аввал бе ягон мушкилот бор карда шуд ва ман боварӣ ҳосил кардам, ки дастгирии ECC фаъол шудааст:

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

Дар натиҷа

Ман аз натиҷа хеле қаноатманд будам. Акнун ман метавонам пайваста пайвасти LAN-и 1Gbps серверро тавассути нусхабардории файлҳо банд нигоҳ дорам ва Time Machine бенуқсон кор мекунад. Ҳамин тавр, дар маҷмӯъ, ман аз танзимот қаноатмандам.

Арзиши умумии:

  1. 1 * HP ProLiant N40L = 75 доллар
  2. 2 * 8 ГБ ECC RAM = 174 доллар
  3. 4 * WD Red 3 TB HDD = 440 доллар

Ҳамагӣ = $ 689

Ҳоло метавонам бигӯям, ки нархаш арзанда буд.

Оё шумо серверҳои NAS-и худро эҷод мекунед?

Сохтани системаи арзони NAS дар Linux

Сохтани системаи арзони NAS дар Linux

Манбаъ: will.com

Илова Эзоҳ