Men, boshqa ko'plab MacBook Pro foydalanuvchilari kabi, ichki xotiraning etishmasligi muammosiga duch keldim. Aniqroq qilib aytadigan bo'lsak, men har kuni foydalanadigan rMBP atigi 256 Gb SSD bilan jihozlangan, bu, albatta, uzoq vaqt davomida etarli emas edi.
Va parvozlar paytida video yozishni boshlaganimda, vaziyat yanada yomonlashdi. Bunday parvozlardan so'ng tasvirlar hajmi 50+ GB edi va mening baxtsiz 256 GB SSD tezda to'ldi, bu meni 1 TB tashqi disk sotib olishga majbur qildi. Biroq, bir yil o'tgach, u men ishlab chiqarayotgan ma'lumotlar hajmiga moslasha olmadi, ortiqcha va zaxiraning yo'qligi haqida gapirmasa ham bo'ladi, bu muhim ma'lumotlarni joylashtirish uchun yaroqsiz bo'lib qoldi.
Shunday qilib, bir vaqtning o'zida men ushbu tizim boshqa yangilanishni talab qilmasdan kamida bir necha yil xizmat qiladi degan umidda katta quvvatli NAS qurishga qaror qildim.
Men ushbu maqolani, birinchi navbatda, yana nima qilishim kerak bo'lsa, nima qilganimni va qanday qilganimni eslatish uchun yozdim. Umid qilamanki, agar siz ham xuddi shunday qilishga qaror qilsangiz, bu siz uchun foydali bo'ladi.
Ehtimol, sotib olish osonroqdir?
Shunday qilib, biz nimani olishni xohlayotganimizni bilamiz, qanday qilib savol qoladi?
Men birinchi navbatda tijorat echimlarini ko'rib chiqdim va xususan bozorda eng yaxshi iste'molchi darajasidagi NAS tizimlarini taqdim etishi kerak bo'lgan Synology-ga qaradim. Biroq, bu xizmatning narxi ancha yuqori edi. Eng arzon 4-bay tizimning narxi 300$+ va qattiq disklarni o'z ichiga olmaydi. Bundan tashqari, bunday to'plamni ichki to'ldirish juda ta'sirli emas, bu uning haqiqiy ishlashini shubha ostiga qo'yadi.
Keyin men o'yladim: nega o'zingiz NAS serverini yaratmaysiz?
To'g'ri serverni topish
Agar siz bunday serverni to'ldirmoqchi bo'lsangiz, unda birinchi navbatda kerakli uskunani topishingiz kerak. Ishlatilgan server ushbu tuzilma uchun yaxshi bo'lishi kerak, chunki biz saqlash vazifalari uchun unchalik ko'p ishlashga muhtoj emasmiz. Shuni ta'kidlash kerakki, katta hajmdagi operativ xotira, bir nechta SATA ulagichlari va yaxshi tarmoq kartalari. Mening serverim doimiy yashash joyimda ishlashi uchun shovqin darajasi ham muhim.
Men eBay-da qidiruvni boshladim. Garchi men u yerda 410 dollardan past boʻlgan koʻp ishlatilgan Dell PowerEdge R210/R100-larni topsam ham, server xonasida ishlagan boʻlsam ham, bu 1U birliklari juda shovqinli va uyda foydalanish uchun mos emasligini bilardim. Qoidaga ko'ra, minora serverlari ko'pincha kamroq shovqinli, ammo, afsuski, eBay-da ularning bir nechtasi bor edi va ularning barchasi qimmat yoki quvvatsiz edi.
Keyingi joy Craiglist edi, u erda men foydalanilgan HP ProLiant N40L ni atigi 75 dollarga sotayotgan odamni topdim! Men odatda taxminan 300 dollar turadigan ushbu serverlar bilan tanish edim, shuning uchun men sotuvchiga e-pochta orqali xabar yubordim, degan umiddaman. Bu shunday ekanligini bilib, men ikki marta o'ylamasdan, ushbu serverni olish uchun San-Mateoga bordim, bu meni bir qarashda mamnun qildi. U minimal eskirgan va ozgina changdan tashqari, hamma narsa ajoyib edi.
Sotib olingandan so'ng darhol server fotosurati
Va men sotib olgan to'plamning tavsifi:
- Markaziy protsessor: AMD Turion(tm) II Neo N40L ikki yadroli protsessor (64-bit)
- Ram: 8 GB ECC bo'lmagan RAM (oldingi egasi tomonidan o'rnatilgan)
- Flash: 4 GB USB disk
- SATA konnektorlari:4+1
- HECH: 1Gbps bortdagi NIC
Aytishga hojat yo'q, bir necha yil bo'lishiga qaramay, ushbu serverning spetsifikatsiyasi bozordagi ko'pgina NAS opsiyalaridan, ayniqsa operativ xotira bo'yicha hali ham ustundir. Biroz vaqt o'tgach, men ko'proq bufer maydoni va yaxshi ma'lumotlarni himoya qilish bilan 16 GB ECC ga yangiladim.
Qattiq disklarni tanlash
Endi bizda ajoyib ish tizimi mavjud va buning uchun qattiq disklarni tanlash qoladi. Shubhasiz, o'sha 75 dollarga men HDDsiz faqat serverni oldim, bu meni ajablantirmadi.
Bir oz izlanishlar olib borganimdan so'ng, men 24/7 NAS drayverlari WD Red HDD uchun eng mos ekanligini aniqladim. Ularni sotib olish uchun men Amazonga murojaat qildim, u erda har biri 4 TBdan 3 nusxani sotib oldim. Aslida, siz har qanday afzal qilingan HDD ni ulashingiz mumkin, lekin ular bir xil o'lcham va tezlikda ekanligiga ishonch hosil qiling. Bu uzoq muddatda RAID ishlashi mumkin bo'lgan muammolardan qochishingizga yordam beradi.
Tizimni sozlash
O'ylaymanki, ko'pchilik o'zlarining NAS tuzilmalari uchun tizimdan foydalanadilar.
CentOS-ni USB-ga o'rnatish juda oddiy - faqat yuklash manbai sifatida USB-ni belgilang va o'rnatish ustasi ishga tushganda barcha qadamlar bo'yicha sizga yo'l-yo'riq ko'rsatadi.
RAID yig'ilishi
CentOS-ni muvaffaqiyatli o'rnatganimdan so'ng, men sanab o'tilganlarga amal qilib, Linux-ga ZFS-ni ham o'rnatdim
Ushbu jarayon tugallangandan so'ng, men ZFS yadro modulini yukladim:
$ sudo modprobe zfs
Va buyruq yordamida RAIDZ1 massivi yaratildi 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
E'tibor bering, men bu erda ko'rsatilgan nomlar o'rniga qattiq disk identifikatorlaridan foydalanmoqdaman (sdx
) harf o'zgarishi sababli yuklashdan keyin o'rnatilmasligi ehtimolini kamaytirish uchun.
Bundan tashqari, men alohida SSD-da ishlaydigan ZIL va L2ARC keshini qo'shdim, bu SSD-ni ikkita bo'limga ajratdim: ZIL uchun 5 Gb, qolgani esa L2ARC uchun.
RAIDZ1 ga kelsak, u 1 diskning ishdan chiqishiga bardosh bera oladi. Ko'pchilik ma'lumotlar yo'qolishi bilan to'la bo'lgan RAID-ni qayta tiklash paytida ikkinchi diskning ishlamay qolishi ehtimoli tufayli ushbu birlashma variantidan foydalanmaslik kerakligini ta'kidlaydi. Men ushbu tavsiyani e'tiborsiz qoldirdim, chunki men uzoqdagi qurilmada muhim ma'lumotlarni muntazam ravishda zaxiralab turdim va hatto butun massivning ishlamay qolishi faqat ma'lumotlarning mavjudligiga ta'sir qilishi mumkin, ammo ularning xavfsizligiga ta'sir qilmaydi. Agar sizda zaxira nusxalarini yaratish imkoniyati bo'lmasa, RAIDZ2 yoki RAID10 kabi echimlardan foydalanish yaxshi bo'ladi.
Hovuz muvaffaqiyatli yaratilganligini quyidagi amallarni bajarish orqali tekshirishingiz mumkin:
$ sudo zpool status
и
$ sudo zfs list
NAME USED AVAIL REFER MOUNTPOINT
data 510G 7.16T 140K /mnt/data
Odatiy bo'lib, ZFS yangi yaratilgan hovuzni to'g'ridan-to'g'ri o'rnatadi /
bu umuman istalmagan. Buni o'zgartirishingiz mumkin:
zfs set mountpoint=/mnt/data data
Bu yerdan siz maʼlumotlaringizni saqlash uchun bir yoki bir nechta maʼlumotlar toʻplamini yaratishni tanlashingiz mumkin. Men ikkitasini yaratdim, biri Time Machine zaxirasi uchun, ikkinchisi esa umumiy fayllarni saqlash uchun. Men Time Machine ma'lumotlar to'plami hajmini cheksiz ravishda o'sishiga yo'l qo'ymaslik uchun 512 Gb kvota bilan chekladim.
Optimallashtirish
zfs set compression=on data
Ushbu buyruq ZFS siqishni qo'llab-quvvatlashini ta'minlaydi. Siqish protsessorning minimal quvvatini sarflaydi, lekin kiritish/chiqarish tezligini sezilarli darajada oshirishi mumkin, shuning uchun har doim tavsiya etiladi.
zfs set relatime=on data
Ushbu buyruq yordamida biz yangilanishlar sonini kamaytiramiz atime
fayllarga kirishda IOPS generatsiyasini kamaytirish uchun.
Odatiy bo'lib, Linuxda ZFS ARC uchun jismoniy xotiraning 50% dan foydalanadi. Mening holatimda, fayllarning umumiy soni kichik bo'lsa, bu miqdorni xavfsiz tarzda 90% ga oshirish mumkin, chunki serverdagi boshqa ilovalar ishlamaydi.
$ cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=14378074112
Keyin yordam bilan
$ 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
...
Takroriy vazifalarni o'rnatish
foydalandim
Netatalk o'rnatish
Konfiguratsiya sozlamalari
$ 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
E'tibor bering vol dbnest
bu mening ishimda katta yaxshilanishdir, chunki sukut bo'yicha Netatalk CNID ma'lumotlar bazasini fayl tizimining ildiziga yozadi, bu mening asosiy fayl tizimim USB-da bo'lgani uchun istalmagan va shuning uchun nisbatan sekin. Xuddi shu tarzda yoqish vol dbnest
ma'lumotlar bazasini Volume ildizida saqlashga olib keladi, bu holda bu ZFS hovuziga tegishli va allaqachon tezroq kattalik tartibidir.
Xavfsizlik devoridagi portlarni yoqish
$ sudo firewall-cmd --permanent --zone=public --add-service=mdns
$ sudo firewall-cmd --permanent --zone=public --add-port=afpovertcp/tcp
sudo xavfsizlik devori-cmd --doimiy --zone=public --add-port=afpovertcp/tcp
Agar hamma narsa to'g'ri sozlangan bo'lsa, u holda qurilmangiz Finder-da paydo bo'lishi kerak va Time Machine ham ishlashi kerak.
Qo'shimcha sozlamalar
SMART monitoring
Disklarning ishdan chiqishini oldini olish uchun ularning holatini kuzatish tavsiya etiladi.
$ sudo yum install smartmontools
$ sudo systemctl start smartd
UPS uchun daemon
APC UPS zaryadini kuzatib boradi va zaryad juda past bo'lganda tizimni o'chiradi.
$ sudo yum install epel-release
$ sudo yum install apcupsd
$ sudo systemctl enable apcupsd
Uskunani yangilash
Tizimni o'rnatishdan bir hafta o'tgach, men serverda o'rnatilgan ECC bo'lmagan xotira haqida ko'proq tashvishlana boshladim. Bundan tashqari, ZFS holatida buferlash uchun qo'shimcha xotira juda foydali bo'ladi. Shunday qilib, men yana Amazonga murojaat qildim, u erda har biri 2 dollarga 3x Kingston DDR8 80GB ECC operativ xotirasini sotib oldim va oldingi egasi o'rnatgan ish stoli operativ xotirasini almashtirdim. Tizim birinchi marta hech qanday muammosiz ishga tushdi va men ECC qo'llab-quvvatlashi yoqilganligiga ishonch hosil qildim:
$ dmesg | grep ECC
[ 10.492367] EDAC amd64: DRAM ECC enabled.
natija
Natija meni juda xursand qildi. Endi men fayllarni nusxalash orqali serverning 1Gbps LAN ulanishini doimiy ravishda yuklay olaman va Time Machine benuqson ishlaydi. Umuman olganda, men o'rnatishdan mamnunman.
Umumiy xarajat:
- 1 * HP ProLiant N40L = 75 dollar
- 2 * 8 GB ECC operativ xotira = 174 dollar
- 4*WD Red 3TB HDD = 440 dollar
jami = $ 689
Endi aytishim mumkinki, narx bunga loyiq edi.
O'zingizning NAS serverlaringizni yaratasizmi?
Manba: www.habr.com