Мен, көптеген басқа MacBook Pro пайдаланушылары сияқты, ішкі жадтың жеткіліксіздігі мәселесіне тап болдым. Дәлірек айтсам, мен күнделікті қолданатын rMBP сыйымдылығы небары 256 ГБ болатын SSD-мен жабдықталған, бұл, әрине, ұзақ уақыт бойы жеткіліксіз болды.
Оның үстіне, мен ұшу кезінде бейне түсіре бастағанда, жағдай нашарлады. Мұндай рейстерден кейін түсірілген кадрлардың көлемі 50+ ГБ болды және менің нашар 256 ГБ SSD тез арада толтырылды, бұл мені сыртқы 1 ТБ диск сатып алуға мәжбүр етті. Дегенмен, бір жылдан кейін ол мен жасап жатқан деректердің көлемін басқара алмады, артықшылықтың болмауы және сақтық көшірменің маңызды ақпаратты орналастыру үшін жарамсыз болуына байланысты.
Осылайша, бір сәтте мен бұл жүйе басқа жаңартуды қажет етпей, кем дегенде екі жылға созылады деген үмітпен үлкен NAS салуды шештім.
Мен бұл мақаланы бірінші кезекте дәл не істегенімді және оны қайталау қажет болған жағдайда оны қалай жасағанымды еске салу үшін жаздым. Егер сіз де солай етуді шешсеңіз, бұл сізге де пайдалы болады деп үміттенемін.
Мүмкін сатып алу оңайырақ шығар?
Сонымен, біз не алғымыз келетінін білеміз, сұрақ қалады: қалай?
Мен алдымен коммерциялық шешімдерді қарап шықтым және әсіресе нарықтағы ең жақсы тұтынушы деңгейіндегі NAS жүйелерін қамтамасыз етуі керек болатын Synology-ге қарадым. Алайда бұл қызметтің құны айтарлықтай жоғары болып шықты. Ең арзан 4 ұялы жүйе $300+ тұрады және қатты дискілерді қамтымайды. Сонымен қатар, мұндай жинақтың ішкі толтырылуының өзі ерекше әсерлі емес, бұл оның нақты өнімділігіне күмән тудырады.
Сонда мен ойладым: неге NAS серверін өзім құрастырмасқа?
Сәйкес серверді табу
Егер сіз осындай серверді жинағыңыз келсе, ең алдымен дұрыс жабдықты табуыңыз керек. Қолданылған сервер бұл құрастыру үшін өте қолайлы болуы керек, өйткені бізге сақтау тапсырмалары үшін көп өнімділік қажет емес. Қажетті нәрселердің ішінде үлкен көлемдегі жедел жадты, бірнеше SATA қосқыштарын және жақсы желілік карталарды атап өту керек. Менің серверім тұрақты тұратын жерімде жұмыс істейтіндіктен, шу деңгейі де маңызды.
Мен eBay-де іздеуді бастадым. Мен ол жерден 410 доллардан төмен бағаға көп пайдаланылған Dell PowerEdge R210/R100 таптым, сервер бөлмесінде жұмыс істеу тәжірибесі бар болса да, мен бұл 1U қондырғыларының тым көп шу шығаратынын және үйде пайдалануға жарамсыз екенін білдім. Әдетте, мұнара серверлері жиі шулы емес, бірақ, өкінішке орай, eBay-де олардың саны аз болды және олардың барлығы не қымбат, не қуаты аз болды.
Келесі іздеу орны Craiglist болды, онда мен пайдаланылған HP ProLiant N40L-ді бар болғаны 75 долларға сататын біреуді таптым! Мен әдетте шамамен 300 доллар тұратын бұл серверлермен таныс болдым, сондықтан мен сатушыға хабарландыру әлі де белсенді деп үміттеніп электрондық хат жібердім. Бұл жағдайдың болғанын біліп, мен екі рет ойланбастан, осы серверді алу үшін Сан-Матеоға бет алдым, бұл бір қарағанда мені қуантты. Оның тозуы аз болды, аздап шаңды қоспағанда, бәрі тамаша болды.
Сатып алғаннан кейін бірден сервер фотосы
Міне, мен сатып алған жинақтың техникалық сипаттамалары:
- Орталық Есептеуіш Бөлім: AMD Turion(tm) II Neo N40L екі ядролы процессор (64 бит)
- Жедел Жадтау Құрылғысы: 8 ГБ ECC емес жедел жад (алдыңғы иесі орнатқан)
- жарқыл: 4 ГБ USB дискісі
- SATA қосқыштары:4+1
- NIC: 1 Гбит/с борттық NIC
Айта кету керек, бірнеше жыл болғанына қарамастан, бұл сервердің спецификациясы нарықтағы NAS опцияларының көпшілігінен, әсіресе жедел жады бойынша әлі де жоғары. Біраз уақыттан кейін мен ұлғайтылған буфер өлшемімен және деректерді қорғаудың жоғарылауымен 16 ГБ ECC дейін жаңарттым.
Қатты дискілерді таңдау
Енді бізде тамаша жұмыс жүйесі бар және ол үшін қатты дискілерді таңдау ғана қалады. Әлбетте, бұл 75 долларға мен серверді HDDсіз ғана алдым, бұл мені таң қалдырмады.
Кішкене зерттеу жүргізгеннен кейін мен WD Red HDD дискілері NAS жүйелерін тәулік бойы жұмыс істеуге қолайлы екенін білдім. Оларды сатып алу үшін мен Amazon-ға жүгіндім, онда мен әрқайсысы 24 ТБ болатын 7 көшірме сатып алдым. Негізінде, өзіңіз қалаған кез келген HDD-ді қосуға болады, бірақ олардың сыйымдылығы мен жылдамдығы бірдей екеніне көз жеткізіңіз. Бұл ұзақ мерзімді перспективада мүмкін RAID өнімділігі мәселелерін болдырмауға көмектеседі.
Жүйені орнату
Менің ойымша, көптеген адамдар жүйені өздерінің NAS құрастырулары үшін пайдаланады
CentOS-ты USB құрылғысына орнату өте қарапайым – жүктеу көзі ретінде USB-ді көрсетіңіз, іске қосқан кезде орнату шебері оның барлық кезеңдеріне басшылық етеді.
RAID құрастыру
CentOS-ты сәтті орнатқаннан кейін мен Linux жүйесінде 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
Мұнда мен қатты дискілердің дисплей атауларының орнына идентификаторларын қолданып жатқанымды ескеріңіз (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 қысу қолдауын қосады. Қысу процессордың ең аз қуатын пайдаланады, бірақ енгізу/шығару өткізу қабілетін айтарлықтай жақсарта алады, сондықтан әрқашан ұсынылады.
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
бұл жағдайда 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 80 ГБ ECC жедел жадын сатып алдым және алдыңғы иесі орнатқан жұмыс үстелінің жедел жадын ауыстырдым. Жүйе бірінші рет еш қиындықсыз жүктелді және мен ECC қолдауының белсендірілгеніне көз жеткіздім:
$ dmesg | grep ECC
[ 10.492367] EDAC amd64: DRAM ECC enabled.
нәтиже
Мен нәтижеге өте риза болдым. Енді мен файлдарды көшіру арқылы сервердің 1 Гбит/с LAN қосылымын үнемі бос ұстай аламын және Time Machine мінсіз жұмыс істейді. Жалпы, мен орнатуға ризамын.
Жалпы құны:
- 1 * HP ProLiant N40L = $75
- 2 * 8 ГБ ECC жедел жады = 174 доллар
- 4 * WD Red 3 TB HDD = 440 доллар
Барлығы = $ 689
Енді мен айта аламын, бағасы лайықты болды.
Сіз өзіңіздің NAS серверлеріңізді жасайсыз ба?
Ақпарат көзі: www.habr.com