Би бусад олон MacBook Pro хэрэглэгчдийн адил дотоод санах ой хангалтгүй гэсэн асуудалтай тулгарсан. Илүү нарийвчлалтай хэлэхэд миний өдөр бүр ашигладаг rMBP нь ердөө 256 ГБ багтаамжтай SSD-ээр тоноглогдсон байсан бөгөөд энэ нь мэдээжийн хэрэг удаан хугацаанд хангалтгүй байсан.
Дээрээс нь би нислэгийнхээ үеэр видео бичлэг хийж эхлэхэд байдал улам дордов. Ийм нислэгийн дараа авсан бичлэгийн хэмжээ 50+ ГБ байсан бөгөөд миний муу 256 ГБ SSD тун удалгүй дүүрч, намайг 1 TB багтаамжтай гадаад диск худалдаж авахад хүргэв. Гэсэн хэдий ч, нэг жилийн дараа энэ нь миний үүсгэж буй мэдээллийн хэмжээг даахаа больсон, нөөц байхгүйгээс гадна чухал мэдээллийг хадгалахад тохиромжгүй болсон.
Тиймээс, нэг удаа би энэ системийг дахин шинэчлэх шаардлагагүйгээр дор хаяж хоёр жил үйлчилнэ гэж найдаж том NAS барихаар шийдсэн.
Би энэ нийтлэлийг юуны өмнө яг юу хийснээ, дахин хийх хэрэг гарвал яаж хийснээ сануулах үүднээс бичсэн. Хэрэв та үүнийг хийхээр шийдсэн бол энэ нь танд хэрэг болно гэж найдаж байна.
Магадгүй худалдаж авахад хялбар болов уу?
Тиймээс бид юу авахыг хүсч байгаагаа мэдэж байгаа тул асуулт хэвээр байна: яаж?
Би эхлээд арилжааны шийдлүүдийг судалж, ялангуяа зах зээл дээрх хамгийн сайн хэрэглэгчийн түвшний NAS системийг хангах ёстой Synology-ийг харлаа. Гэсэн хэдий ч энэ үйлчилгээний өртөг нэлээд өндөр болсон. Хамгийн хямд 4 булантай систем нь 300 долларын үнэтэй бөгөөд хатуу дискийг оруулаагүй болно. Нэмж дурдахад ийм иж бүрдлийг дотоод дүүргэх нь тийм ч гайхалтай биш бөгөөд энэ нь түүний бодит гүйцэтгэлд эргэлзээ төрүүлдэг.
Тэгээд би яагаад өөрөө NAS сервер байгуулж болохгүй гэж бодсон юм бэ?
Тохиромжтой сервер хайж байна
Хэрэв та ийм сервер угсрах гэж байгаа бол юуны түрүүнд тохирох техник хангамжийг олох хэрэгтэй. Ашигласан сервер нь энэ бүтээн байгуулалтад маш тохиромжтой байх ёстой, учир нь бид хадгалах даалгаврын хувьд нэг их гүйцэтгэл шаардагддаггүй. Шаардлагатай зүйлсийн дунд бид их хэмжээний RAM, хэд хэдэн SATA холбогч, сайн сүлжээний картуудыг тэмдэглэх хэрэгтэй. Миний сервер миний байнгын оршин суугаа газарт ажиллах тул дуу чимээний түвшин бас чухал юм.
Би eBay дээр хайж эхэлсэн. Хэдийгээр би серверийн өрөөнд ажиллаж байсан туршлагатай Dell PowerEdge R410/R210-ийг 100 доллараас бага үнээр олоод байсан ч эдгээр 1U нэгжүүд хэт их дуу чимээ гаргаж, гэрийн хэрэглээнд тохиромжгүй гэдгийг мэдэж байсан. Дүрмээр бол цамхаг серверүүд ихэвчлэн чимээ шуугиан багатай байдаг ч харамсалтай нь eBay дээр цөөхөн байсан бөгөөд бүгд үнэтэй эсвэл хүч чадал муутай байдаг.
Дараагийн хайх газар бол Craiglist байсан бөгөөд тэндээс би хуучин HP ProLiant N40L-ийг ердөө 75 доллараар зарж байхыг олж харлаа! Би эдгээр серверүүдийг мэддэг байсан бөгөөд ихэвчлэн 300 долларын үнэтэй байдаг тул зар идэвхтэй хэвээр байна гэж найдаж худалдагч руу имэйл илгээв. Ийм зүйл болохыг мэдээд би хоёр ч удаа бодолгүйгээр энэ серверийг авахаар Сан Матео руу явсан нь анх харахад надад таалагдсан. Энэ нь хамгийн бага элэгдэлтэй байсан бөгөөд бага зэрэг тоос шороог эс тооцвол бусад бүх зүйл гайхалтай байсан.
Худалдан авсны дараа серверийн зураг
Миний худалдаж авсан иж бүрдлийн техникийн үзүүлэлтүүд энд байна:
- CPU-ийн: AMD Turion(tm) II Neo N40L хоёр цөмт процессор (64 бит)
- RAM: 8 GB ECC бус RAM (өмнөх эзэмшигч суулгасан)
- Flash: 4 ГБ USB диск
- SATA холбогч:4+1
- юу ч: 1 Gbps on-board NIC
Хэд хэдэн жилийн настай ч энэ серверийн техникийн үзүүлэлтүүд нь зах зээл дээрх ихэнх NAS сонголтуудаас, ялангуяа RAM-ийн хувьд давуу хэвээр байгааг хэлэх нь илүүц биз. Хэсэг хугацааны дараа би буферийн хэмжээ нэмэгдэж, мэдээллийн хамгаалалт нэмэгдсэнээр 16 ГБ ECC хүртэл шинэчилсэн.
Хатуу дискийг сонгох
Одоо бид маш сайн ажиллах системтэй бөгөөд зөвхөн хатуу дискийг сонгоход л үлддэг. Мэдээжийн хэрэг, 75 доллараар би серверийг зөвхөн HDDгүйгээр авсан нь намайг гайхшруулсангүй.
Бага зэрэг судалгаа хийсний дараа би WD Red HDD нь NAS системийг 24/7 ажиллуулахад хамгийн тохиромжтой болохыг олж мэдсэн. Тэдгээрийг худалдаж авахын тулд би Amazon руу хандаж, тус бүр нь 4 TB хэмжээтэй 3 хувь худалдаж авсан. Үндсэндээ та хүссэн HDD-ээ холбож болно, гэхдээ тэдгээр нь ижил хүчин чадал, хурдтай эсэхийг шалгаарай. Энэ нь урт хугацаанд RAID гүйцэтгэлийн асуудлаас зайлсхийхэд тусална.
Системийн тохиргоо
Олон хүмүүс уг системийг NAS бүтээхдээ ашиглах болно гэж би бодож байна
CentOS-ийг USB дээр суулгах нь маш энгийн - ачаалах эх үүсвэрээр USB-г зааж өгөхөд л суулгацын шидтэн бүх үе шатыг нь удирдан чиглүүлэх болно.
RAID бүтээх
CentOS-ийг амжилттай суулгасны дараа би ZFS-г Линукс дээр жагсаасан дагуу суулгасан
Энэ процесс дууссаны дараа би ZFS цөмийн модулийг ачааллаа:
$ 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
) үсгийн өөрчлөлтийн улмаас ачаалсны дараа тэдгээрийг холбож чадахгүй байх боломжийг багасгах.
Би мөн тусдаа SSD дээр ажилладаг ZIL болон L2ARC кэшийг нэмж, тэр SSD-г ZIL-д 5ГБ, үлдсэн хэсэг нь 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 үүсэхийг багасгах.
Анхдагч байдлаар, Linux дээрх ZFS нь ARC-ийн физик санах ойн 50%-ийг ашигладаг. Миний хувьд, нийт файлын тоо бага байх үед сервер дээр өөр ямар ч програм ажиллахгүй тул үүнийг 90% хүртэл нэмэгдүүлэх боломжтой.
$ cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=14378074112
Дараа нь ашиглана
$ 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
...
Давтагдах ажлуудыг тохируулах
би хэрэглэсэн
Netatalk суулгаж байна
Тохиргооны тохиргоо
$ 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
Үүний үр дүнд мэдээллийн баазыг Volume root-д хадгалдаг бөгөөд энэ тохиолдолд ZFS санд хамаарах бөгөөд аль хэдийн илүү бүтээмжтэй болсон.
Галт хананд портуудыг идэвхжүүлж байна
$ sudo firewall-cmd --permanent --zone=public --add-service=mdns
$ sudo firewall-cmd --permanent --zone=public --add-port=afpovertcp/tcp
sudo галт хана-cmd --байнгын --zone=public --add-port=afpovertcp/tcp
Хэрэв бүх зүйл зөв тохируулагдсан бол таны машин Finder дээр гарч ирэх бөгөөд Time Machine бас ажиллах ёстой.
Нэмэлт тохиргоо
SMART хяналт
Дискний эвдрэлээс урьдчилан сэргийлэхийн тулд дискнийхээ статусыг хянахыг зөвлөж байна.
$ sudo yum install smartmontools
$ sudo systemctl start smartd
UPS-д зориулсан дэмон
APC UPS-ийн цэнэгийг хянаж, цэнэг маш бага болоход системийг унтраадаг.
$ sudo yum install epel-release
$ sudo yum install apcupsd
$ sudo systemctl enable apcupsd
Техник хангамжийн шинэчлэл
Системийг тохируулснаас хойш долоо хоногийн дараа би серверийн ECC-гүй санах ойд илүү их санаа зовж эхэлсэн. Үүнээс гадна, ZFS-ийн хувьд буфер хийх нэмэлт санах ой нь маш ашигтай байх болно. Тиймээс би Amazon руу буцаж очоод тус бүрийг нь 2 доллараар 3x Kingston DDR8 80GB ECC RAM худалдаж аваад өмнөх эзэмшигчийн суулгасан ширээний RAM-г сольсон. Систем анх удаа ямар ч асуудалгүйгээр ачаалагдсан бөгөөд би ECC дэмжлэгийг идэвхжүүлсэн эсэхийг шалгасан:
$ dmesg | grep ECC
[ 10.492367] EDAC amd64: DRAM ECC enabled.
үр дүн
Үр дүнд нь би маш их сэтгэл хангалуун байсан. Одоо би файл хуулж серверийн 1Gbps LAN холболтыг байнга завгүй байлгаж, Time Machine нь өөгүй ажилладаг. Ерөнхийдөө би тохиргоонд сэтгэл хангалуун байна.
Нийт зардал:
- 1 * HP ProLiant N40L = 75 доллар
- 2 * 8 GB ECC RAM = 174 доллар
- 4 * WD Red 3 TB HDD = 440 доллар
Нийт = 689 доллар
Одоо үнэ нь үнэ цэнэтэй байсан гэж хэлж болно.
Та NAS серверээ өөрөө хийдэг үү?
Эх сурвалж: www.habr.com