Mimi, kama watumiaji wengine wengi wa MacBook Pro, nilikabiliwa na shida ya uhaba wa kumbukumbu ya ndani. Ili kuwa sahihi zaidi, rMBP niliyotumia kila siku ilikuwa na SSD yenye uwezo wa 256GB tu, ambayo, kwa kawaida, haitoshi kwa muda mrefu.
Na wakati, juu ya kila kitu kingine, nilianza kurekodi video wakati wa ndege zangu, hali ilizidi kuwa mbaya zaidi. Kiasi cha video zilizorekodiwa baada ya safari za ndege kama hizo kilikuwa GB 50+, na SSD yangu duni ya 256GB ilijaa upesi, na kunilazimu kununua hifadhi ya nje ya 1TB. Hata hivyo, baada ya mwaka mmoja, haikuweza tena kushughulikia kiasi cha data nilichokuwa nikizalisha, bila kutaja ukosefu wa upungufu na chelezo ilifanya isifae kwa kupangisha taarifa muhimu.
Kwa hivyo, wakati mmoja niliamua kujenga NAS kubwa kwa matumaini kwamba mfumo huu ungedumu angalau miaka kadhaa bila kuhitaji uboreshaji mwingine.
Niliandika nakala hii kimsingi kama ukumbusho wa kile nilichofanya na jinsi nilivyofanya ikiwa nitahitaji kuifanya tena. Natumaini kwamba itakuwa muhimu kwako pia ikiwa utaamua kufanya vivyo hivyo.
Labda ni rahisi kununua?
Kwa hiyo, tunajua tunachotaka kupata, swali linabaki: jinsi gani?
Niliangalia masuluhisho ya kibiashara kwanza na nikaangalia haswa Synology, ambayo ilitakiwa kutoa mifumo bora ya kiwango cha watumiaji kwenye soko. Walakini, gharama ya huduma hii iligeuka kuwa ya juu sana. Mfumo wa bei nafuu wa 4-bay unagharimu $300+ na haujumuishi anatoa ngumu. Kwa kuongeza, kujaza ndani ya kit vile yenyewe sio ya kuvutia sana, ambayo inatia shaka utendaji wake halisi.
Kisha nikafikiria: kwa nini nisijenge seva ya NAS mwenyewe?
Kutafuta seva inayofaa
Ikiwa utakusanya seva kama hiyo, basi kwanza kabisa unahitaji kupata vifaa sahihi. Seva iliyotumiwa inapaswa kufaa kabisa kwa muundo huu, kwani hatutahitaji utendaji mwingi kwa kazi za kuhifadhi. Miongoni mwa mambo muhimu, tunapaswa kutambua kiasi kikubwa cha RAM, viunganisho kadhaa vya SATA na kadi nzuri za mtandao. Kwa kuwa seva yangu itafanya kazi mahali pa makazi yangu ya kudumu, kiwango cha kelele pia ni muhimu.
Nilianza utafutaji wangu kwenye eBay. Ingawa nilipata Dell PowerEdge R410/R210 nyingi iliyotumika hapo kwa chini ya $100, nikiwa na uzoefu wa kufanya kazi katika chumba cha seva, nilijua kuwa vitengo hivi vya 1U vilipiga kelele nyingi na havikufaa kwa matumizi ya nyumbani. Kama sheria, seva za mnara mara nyingi hazina kelele, lakini, kwa bahati mbaya, kulikuwa na wachache wao kwenye eBay, na zote zilikuwa za gharama kubwa au zisizo na nguvu.
Mahali pengine pa kutazama palikuwa Craiglist, ambapo nilipata mtu akiuza HP ProLiant N40L iliyotumika kwa $75 tu! Nilikuwa nafahamu seva hizi, ambazo kwa kawaida hugharimu karibu $300 hata kutumika, kwa hivyo nilituma barua pepe kwa muuzaji nikitumai kuwa tangazo bado lilikuwa linatumika. Baada ya kujua kwamba hii ndio kesi, mimi, bila kufikiria mara mbili, nilielekea San Mateo kuchukua seva hii, ambayo kwa mtazamo wa kwanza ilinifurahisha. Ilikuwa na uchakavu mdogo na isipokuwa vumbi kidogo, kila kitu kingine kilikuwa kizuri.
Picha ya seva, mara baada ya ununuzi
Hapa kuna maelezo ya kit nilichonunua:
- CPU: AMD Turion(tm) II Neo N40L Kichakata Dual-Core (64-bit)
- RAM: RAM ya GB 8 isiyo ya ECC (imesakinishwa na mmiliki wa awali)
- Kiwango cha: Hifadhi ya USB ya GB 4
- Viunganishi vya SATA:4+1
- NIC: Gbps 1 kwenye ubao NIC
Bila kusema, licha ya kuwa na umri wa miaka kadhaa, uainishaji wa seva hii bado ni bora kuliko chaguzi nyingi za NAS kwenye soko, haswa katika suala la RAM. Baadaye kidogo, niliboresha hadi GB 16 ECC na saizi iliyoongezeka ya bafa na ulinzi wa data ulioongezeka.
Kuchagua anatoa ngumu
Sasa tuna mfumo bora wa kufanya kazi na yote iliyobaki ni kuchagua anatoa ngumu kwa hiyo. Kwa wazi, kwa $ 75 hiyo nilipata seva yenyewe tu bila HDD, ambayo haikunishangaza.
Baada ya kufanya utafiti mdogo, niligundua kuwa WD Red HDD zinafaa zaidi kwa kuendesha mifumo ya NAS 24/7. Ili kuzinunua, niligeukia Amazon, ambapo nilinunua nakala 4 za 3 TB kila moja. Kimsingi, unaweza kuunganisha HDD yoyote unayopendelea, lakini hakikisha kuwa ni ya uwezo sawa na kasi. Hii itakusaidia kuzuia shida zinazowezekana za utendaji wa RAID kwa muda mrefu.
Usanidi wa Mfumo
Nadhani wengi watatumia mfumo kwa ujenzi wao wa NAS
Kufunga CentOS kwenye USB ni rahisi sana - taja tu USB kama chanzo cha boot, na unapozindua mchawi wa usakinishaji utakuongoza kupitia hatua zake zote.
RAID kujenga
Baada ya kusakinisha kwa mafanikio CentOS, pia niliweka ZFS kwenye Linux kufuatia waliotajwa
Mara tu mchakato huu ulipokamilika, nilipakia moduli ya ZFS Kernel:
$ sudo modprobe zfs
Na kuunda safu ya RAIDZ1 kwa kutumia amri 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
Tafadhali kumbuka kuwa hapa ninatumia vitambulisho vya anatoa ngumu badala ya majina yao ya kuonyesha (sdx
) kupunguza uwezekano wa wao kushindwa kupachika baada ya kuwasha kwa sababu ya mabadiliko ya herufi.
Pia niliongeza kashe ya ZIL na L2ARC inayoendesha kwenye SSD tofauti, nikigawanya SSD hiyo katika sehemu mbili: 5GB kwa ZIL na iliyobaki kwa L2ARC.
Kama ilivyo kwa RAIDZ1, inaweza kuhimili kutofaulu kwa diski 1. Wengi wanasema kuwa chaguo hili la bwawa haipaswi kutumiwa kutokana na uwezekano wa diski ya pili kushindwa wakati wa mchakato wa kujenga upya RAID, ambayo inaweza kusababisha kupoteza data. Nilipuuza pendekezo hili, kwani mara kwa mara nilifanya nakala za chelezo za data muhimu kwenye kifaa cha mbali, na kutofaulu kwa safu nzima kunaweza kuathiri tu upatikanaji wa data, lakini sio usalama wake. Ikiwa huna uwezo wa kufanya chelezo, basi itakuwa bora kutumia suluhisho kama RAIDZ2 au RAID10.
Unaweza kuthibitisha kuwa uundaji wa bwawa ulifanikiwa kwa kuendesha:
$ sudo zpool status
ΠΈ
$ sudo zfs list
NAME USED AVAIL REFER MOUNTPOINT
data 510G 7.16T 140K /mnt/data
Kwa chaguo-msingi, ZFS huweka kidimbwi kipya kilichoundwa moja kwa moja /
, ambayo kwa ujumla haifai. Unaweza kubadilisha hii kwa kukimbia:
zfs set mountpoint=/mnt/data data
Kuanzia hapa unaweza kuchagua kuunda hifadhidata moja au zaidi ili kuhifadhi data. Niliunda mbili, moja kwa chelezo ya Mashine ya Muda na moja ya kuhifadhi faili iliyoshirikiwa. Nilipunguza saizi ya seti ya data ya Mashine ya Muda kwa nafasi ya GB 512 ili kuzuia ukuaji wake usio na kikomo.
Uboreshaji
zfs set compression=on data
Amri hii huwezesha usaidizi wa ukandamizaji wa ZFS. Mfinyazo hutumia nguvu ndogo ya CPU, lakini inaweza kuboresha pato la I/O, kwa hivyo inashauriwa kila wakati.
zfs set relatime=on data
Kwa amri hii tunapunguza idadi ya sasisho kwa atime
kupunguza kizazi cha IOPS wakati wa kupata faili.
Kwa chaguo-msingi, ZFS kwenye Linux hutumia 50% ya kumbukumbu ya kimwili kwa ARC. Katika kesi yangu, wakati jumla ya idadi ya faili ni ndogo, hii inaweza kuongezeka kwa usalama hadi 90% kwani hakuna programu zingine zitatumika kwenye seva.
$ cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=14378074112
Kisha kutumia
$ 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
...
Kuweka kazi zinazorudiwa
nilitumia
Inaweka Netatalk
Mpangilio wa usanidi
$ 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
Tafadhali kumbuka kuwa vol dbnest
ni uboreshaji mkubwa katika kesi yangu, kwani kwa chaguo-msingi Netatalk huandika hifadhidata ya CNID kwenye mzizi wa mfumo wa faili, ambao haukuhitajika kabisa kwani mfumo wangu mkuu wa faili unatumia USB na kwa hivyo ni polepole. Inawasha vol dbnest
inasababisha kuhifadhi hifadhidata katika mzizi wa Kiasi, ambayo katika kesi hii ni ya bwawa la ZFS na tayari ni agizo la ukubwa wa uzalishaji zaidi.
Inawasha milango katika Firewall
$ sudo firewall-cmd --permanent --zone=public --add-service=mdns
$ sudo firewall-cmd --permanent --zone=public --add-port=afpovertcp/tcp
sudo firewall-cmd --permanent --zone=public --add-port=afpovertcp/tcp
Ikiwa kila kitu kilisanidiwa kwa usahihi, mashine yako inapaswa kuonekana kwenye Kipataji, na Mashine ya Muda inapaswa kufanya kazi pia.
Mipangilio ya ziada
Ufuatiliaji wa SMART
Inashauriwa kufuatilia hali ya diski zako ili kuzuia kushindwa kwa diski.
$ sudo yum install smartmontools
$ sudo systemctl start smartd
Daemon kwa UPS
Hufuatilia malipo ya APC UPS na kuzima mfumo wakati malipo yanapopungua sana.
$ sudo yum install epel-release
$ sudo yum install apcupsd
$ sudo systemctl enable apcupsd
Uboreshaji wa vifaa
Wiki moja baada ya kusanidi mfumo, nilianza kuwa na wasiwasi zaidi juu ya kumbukumbu isiyo ya ECC ya seva. Kwa kuongeza, katika kesi ya ZFS, kumbukumbu ya ziada ya buffering itakuwa muhimu sana. Kwa hivyo nilirudi Amazon ambapo nilinunua 2x Kingston DDR3 8GB ECC RAM kwa $80 kila moja na kubadilisha RAM ya eneo-kazi iliyosakinishwa na mmiliki wa awali. Mfumo ulianza mara ya kwanza bila matatizo yoyote, na nilihakikisha kwamba usaidizi wa ECC uliamilishwa:
$ dmesg | grep ECC
[ 10.492367] EDAC amd64: DRAM ECC enabled.
Matokeo
Nilifurahishwa sana na matokeo. Sasa ninaweza kuweka muunganisho wa 1Gbps LAN wa seva kuwa na shughuli nyingi kwa kunakili faili, na Mashine ya Muda hufanya kazi bila dosari. Kwa hivyo, kwa ujumla, nimefurahiya usanidi.
Jumla ya gharama:
- 1 * HP ProLiant N40L = $75
- 2 * 8 GB ECC RAM = $174
- 4 * WD Nyekundu 3 TB HDD = $440
Katika jumla ya = $ 689
Sasa naweza kusema kwamba bei ilikuwa ya thamani yake.
Je, unatengeneza seva zako za NAS?
Chanzo: mapenzi.com