Linux-da ucuz ev NAS sisteminin qurulması

Linux-da ucuz ev NAS sisteminin qurulması

Mən, bir çox digər MacBook Pro istifadəçiləri kimi, kifayət qədər daxili yaddaş problemi ilə üzləşdim. Daha dəqiq desəm, gündəlik istifadə etdiyim rMBP cəmi 256 GB tutumlu SSD ilə təchiz edilmişdi, bu da təbii olaraq uzun müddət kifayət etmədi.

Və hər şeyə əlavə olaraq, uçuşlar zamanı video yazmağa başlayanda vəziyyət daha da pisləşdi. Belə uçuşlardan sonra lentə alınan kadrların həcmi 50+ GB idi və mənim yoxsul 256 GB SSD tez bir zamanda doldu və məni xarici 1 TB disk almağa məcbur etdi. Bununla belə, bir ildən sonra o, artıq mənim yaratdığım məlumatların həcmini idarə edə bilmədi, ehtiyatsızlıq və ehtiyat nüsxəsinin olmaması onu vacib məlumatların yerləşdirilməsi üçün yararsız etdi.

Beləliklə, bir anda bu sistemin başqa bir yeniləmə tələb etmədən ən azı bir neçə il davam edəcəyinə ümid edərək böyük bir NAS qurmağa qərar verdim.

Mən bu məqaləni ilk növbədə nə etdiyimi və təkrar etməli olduğum halda bunu necə etdiyimi xatırlatmaq üçün yazdım. Ümid edirəm ki, siz də eyni şeyi etmək qərarına gəlsəniz, sizin üçün faydalı olar.

Bəlkə almaq daha asandır?

Beləliklə, nə əldə etmək istədiyimizi bilirik, sual qalır: necə?

Əvvəlcə kommersiya həllərinə baxdım və xüsusən bazarda ən yaxşı istehlakçı səviyyəli NAS sistemlərini təmin etməli olan Synology-yə baxdım. Ancaq bu xidmətin dəyəri kifayət qədər yüksək oldu. Ən ucuz 4 yuvalı sistemin qiyməti 300 dollardan yuxarıdır və sərt disklər daxil deyil. Bundan əlavə, belə bir dəstin özünün daxili doldurulması xüsusilə təsir edici deyil, bu da onun real performansını şübhə altına alır.

Sonra düşündüm: niyə özüm NAS server qurmayacam?

Uyğun server tapmaq

Əgər belə bir server yığmaq fikrindəsinizsə, ilk növbədə düzgün aparatı tapmalısınız. İstifadə olunmuş server bu quruluş üçün olduqca uyğun olmalıdır, çünki saxlama tapşırıqları üçün çox performans tələb etməyəcəyik. Lazım olan şeylər arasında çoxlu RAM, bir neçə SATA konnektoru və yaxşı şəbəkə kartlarını qeyd etməliyik. Serverim daimi yaşayış yerimdə işləyəcəyi üçün səs-küy səviyyəsi də önəmlidir.

Mən eBay-də axtarışa başladım. Mən orada 410 dollardan aşağı qiymətə çox işlənmiş Dell PowerEdge R210/R100 tapsam da, server otağında işləmək təcrübəm olsa da, bilirdim ki, bu 1U qurğular çox səs-küy yaradır və evdə istifadə üçün uyğun deyil. Bir qayda olaraq, qüllə serverləri çox vaxt daha az səs-küylü olur, lakin təəssüf ki, eBay-də onların sayı az idi və onların hamısı ya bahalı, ya da zəif idi.

Baxmaq üçün növbəti yer Craiglist idi, burada istifadə edilmiş HP ProLiant N40L-ni cəmi 75 dollara satan birini tapdım! Mən adətən təxminən 300 dollara başa gələn bu serverlərlə tanış idim, ona görə də reklamın hələ də aktiv olduğuna ümid edərək satıcıya e-poçt göndərdim. Bunun belə olduğunu öyrəndikdən sonra iki dəfə düşünmədən bu serveri götürmək üçün San Mateoya getdim, bu da ilk baxışdan məni çox sevindirdi. Minimum köhnəlmişdi və bir az tozdan başqa hər şey əla idi.

Linux-da ucuz ev NAS sisteminin qurulması
Satın alındıqdan dərhal sonra serverin fotoşəkili

Satın aldığım dəstin texniki xüsusiyyətləri bunlardır:

  • CPU: AMD Turion(tm) II Neo N40L İki Nüvəli Prosessor (64-bit)
  • RAM: 8 GB ECC olmayan RAM (əvvəlki sahib tərəfindən quraşdırılmışdır)
  • Flash: 4 GB USB Disk
  • SATA birləşdiriciləri:4+1
  • NIC: 1 Gbps on-board NIC

Söz yox ki, bir neçə il olmasına baxmayaraq, bu serverin spesifikasiyası hələ də bazardakı əksər NAS seçimlərindən, xüsusən də RAM baxımından üstündür. Bir az sonra, hətta artan bufer ölçüsü və artan məlumat qorunması ilə 16 GB ECC-ə yüksəltdim.

Sərt disklərin seçilməsi

İndi əla iş sistemimiz var və bunun üçün sabit diskləri seçmək qalır. Aydındır ki, bu 75 dollara mən serveri yalnız HDD olmadan əldə etdim, bu məni təəccübləndirmədi.

Bir az araşdırma apardıqdan sonra WD Red HDD-lərin NAS sistemlərini 24/7 işləmək üçün ən uyğun olduğunu bildim. Onları almaq üçün Amazon-a müraciət etdim, oradan hər biri 4 TB-lik 3 nüsxə aldım. Əsasən, siz istədiyiniz hər hansı HDD-ni qoşa bilərsiniz, lakin onların eyni tutum və sürətdə olduğundan əmin olun. Bu, uzun müddətdə mümkün RAID performans problemlərindən qaçmağa kömək edəcək.

Sistem Quraşdırma

Düşünürəm ki, çoxları sistemdən NAS qurmaları üçün istifadə edəcəklər FreeNAS, və bununla səhv bir şey yoxdur. Bununla belə, bu sistemi serverimə quraşdırmağın mümkünlüyünə baxmayaraq, Linux sistemindəki ZFS ilkin olaraq istehsal mühiti üçün hazırlandığından və ümumiyyətlə, Linux serverini idarə etmək mənə daha çox tanış olduğu üçün CentOS-dan istifadə etməyə üstünlük verdim. Bundan əlavə, mən FreeNAS tərəfindən təqdim olunan zərif interfeys və xüsusiyyətlərlə maraqlanmadım - RAIDZ massivi və AFP paylaşımı mənim üçün kifayət idi.

CentOS-u USB-də quraşdırmaq olduqca sadədir - yükləmə mənbəyi kimi USB-ni göstərmək kifayətdir və işə salındıqdan sonra quraşdırma sihirbazı onun bütün mərhələlərində sizə rəhbərlik edəcək.

RAID qurmaq

CentOS-u uğurla quraşdırdıqdan sonra mən də sadalananlara əməl edərək ZFS-ni Linux-da quraşdırdım burada addımlar.

Bu proses başa çatdıqdan sonra ZFS Kernel modulunu yüklədim:

$ sudo modprobe zfs

Və əmrdən istifadə edərək RAIDZ1 massivini yaratdı 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

Nəzərə alın ki, burada mən sabit disklərin ekran adları əvəzinə onların identifikatorlarından istifadə edirəm (sdx) hərf dəyişikliyinə görə yükləndikdən sonra montaj edilməməsi şansını azaltmaq üçün.

Mən həmçinin ayrıca SSD-də işləyən ZIL və L2ARC önbelleğini əlavə etdim, bu SSD-ni iki hissəyə ayırdım: ZIL üçün 5GB, qalanı isə L2ARC üçün.

RAIDZ1-ə gəlincə, o, 1 disk çatışmazlığına tab gətirə bilər. Bir çoxları RAID-in yenidən qurulması prosesi zamanı ikinci diskin sıradan çıxma ehtimalına görə bu hovuz seçimindən istifadə edilməməli olduğunu iddia edir ki, bu da məlumatların itirilməsinə səbəb ola bilər. Mən bu tövsiyəyə məhəl qoymadım, çünki mən müntəzəm olaraq uzaq bir cihazda vacib məlumatların ehtiyat nüsxəsini çıxarırdım və hətta bütün massivin uğursuzluğu yalnız məlumatların mövcudluğuna təsir edə bilər, lakin onun təhlükəsizliyinə təsir göstərə bilməz. Yedəkləmə qabiliyyətiniz yoxdursa, RAIDZ2 və ya RAID10 kimi həllərdən istifadə etmək daha yaxşı olardı.

Hovuzun yaradılmasının uğurlu olduğunu aşağıdakıları işlətməklə yoxlaya bilərsiniz:

$ sudo zpool status

и

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

Varsayılan olaraq, ZFS yeni yaradılmış hovuzu birbaşa quraşdırır /, bu ümumiyyətlə arzuolunmazdır. Bunu işlətməklə dəyişə bilərsiniz:

zfs set mountpoint=/mnt/data data

Buradan məlumatların saxlanması üçün bir və ya daha çox verilənlər toplusu yaratmağı seçə bilərsiniz. İkisini yaratdım, biri Time Machine ehtiyat nüsxəsi üçün, digəri isə paylaşılan fayl yaddaşı üçün. Sonsuz artımın qarşısını almaq üçün Time Machine məlumat dəstinin ölçüsünü 512 GB kvota ilə məhdudlaşdırdım.

Optimallaşdırma

zfs set compression=on data

Bu əmr ZFS sıxılma dəstəyinə imkan verir. Sıxılma minimal CPU gücündən istifadə edir, lakin I/O ötürmə qabiliyyətini əhəmiyyətli dərəcədə yaxşılaşdıra bilər, ona görə də həmişə tövsiyə olunur.

zfs set relatime=on data

Bu əmrlə biz yeniləmələrin sayını azaldırıq atimefayllara daxil olduqda IOPS generasiyasını azaltmaq.

Varsayılan olaraq, Linux-da ZFS ARC üçün fiziki yaddaşın 50%-ni istifadə edir. Mənim vəziyyətimdə, faylların ümumi sayı az olduqda, serverdə başqa heç bir proqram işləməyəcəyi üçün bu etibarlı şəkildə 90% -ə qədər artırıla bilər.

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

Sonra istifadə edin arc_summary.py Dəyişikliklərin qüvvəyə mindiyini yoxlaya bilərsiniz:

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

Təkrarlanan tapşırıqların qurulması

Mən istifadə etdim systemd-zpool-skrab sistem taymerlərini həftədə bir dəfə təmizləmə aparmaq üçün konfiqurasiya etmək və zfs-auto-snapshot avtomatik olaraq hər 15 dəqiqə, 1 saat və 1 gündə bir anlıq görüntü yaratmaq.

Netatalk quraşdırılır

nettalk AFP-nin açıq mənbə tətbiqidir (Apple Doldurma Protokolu). İzləyir CentO üçün rəsmi quraşdırma təlimatlarıS, mən cəmi bir neçə dəqiqə ərzində yığılmış və quraşdırılmış RPM paketini aldım.

Konfiqurasiya quraşdırması

$ 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

Qeyd edin ki, vol dbnest mənim vəziyyətimdə böyük irəliləyişdir, çünki standart olaraq Netatalk CNID verilənlər bazasını fayl sisteminin kökünə yazır, bu, mənim əsas fayl sistemim USB-də işlədiyi üçün heç də arzuolunan deyildi və buna görə də nisbətən yavaşdır. Yandırılır vol dbnest verilənlər bazasının bu halda ZFS hovuzuna aid olan və artıq daha məhsuldar olan Həcm kökündə saxlanması ilə nəticələnir.

Firewall-da portların aktivləşdirilməsi

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

sudo firewall-cmd --daimi --zone=public --add-port=afpovertcp/tcp
Hər şey düzgün konfiqurasiya edilibsə, maşınınız Finder-də görünməlidir və Time Machine də işləməlidir.

Əlavə parametrlər
SMART monitorinq

Disk nasazlığının qarşısını almaq üçün disklərinizin vəziyyətini izləmək tövsiyə olunur.

$ sudo yum install smartmontools
$ sudo systemctl start smartd

UPS üçün Daemon

APC UPS-nin yüklənməsinə nəzarət edir və şarj kritik dərəcədə aşağı olduqda sistemi söndürür.

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

Avadanlıq yeniləməsi

Sistemi qurduqdan bir həftə sonra mən serverin ECC olmayan yaddaşı ilə bağlı narahat olmağa başladım. Bundan əlavə, ZFS vəziyyətində buferləmə üçün əlavə yaddaş çox faydalı olacaqdır. Beləliklə, mən Amazon-a qayıtdım, burada hər biri 2 dollara 3x Kingston DDR8 80GB ECC RAM aldım və əvvəlki sahibin quraşdırdığı masaüstü RAM-ı əvəz etdim. Sistem ilk dəfə heç bir problem olmadan yükləndi və mən ECC dəstəyinin aktiv olduğundan əmin oldum:

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

Nəticə

Nəticədən çox razı qaldım. İndi mən faylları kopyalayaraq serverin 1Gbps LAN bağlantısını daim məşğul saxlaya bilirəm və Time Machine qüsursuz işləyir. Beləliklə, ümumiyyətlə, quraşdırmadan məmnunam.

Ümumi xərc:

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

Ümumi = $ 689

İndi deyə bilərəm ki, qiymət buna dəyərdi.

Öz NAS serverlərinizi yaradırsınız?

Linux-da ucuz ev NAS sisteminin qurulması

Linux-da ucuz ev NAS sisteminin qurulması

Mənbə: www.habr.com

Добавить комментарий