லினக்ஸில் மலிவான வீட்டு NAS அமைப்பை உருவாக்குதல்

லினக்ஸில் மலிவான வீட்டு NAS அமைப்பை உருவாக்குதல்

பல மேக்புக் ப்ரோ பயனர்களைப் போலவே நானும் போதுமான உள் நினைவகத்தின் சிக்கலை எதிர்கொண்டேன். இன்னும் துல்லியமாகச் சொல்வதானால், நான் தினமும் பயன்படுத்தும் rMBP ஆனது 256GB மட்டுமே திறன் கொண்ட SSD உடன் பொருத்தப்பட்டிருந்தது, இது இயற்கையாகவே நீண்ட காலத்திற்கு போதுமானதாக இல்லை.

எல்லாவற்றிற்கும் மேலாக, எனது விமானங்களின் போது நான் வீடியோக்களை பதிவு செய்யத் தொடங்கியபோது, ​​​​நிலைமை மோசமாகியது. அத்தகைய விமானங்களுக்குப் பிறகு படமாக்கப்பட்ட காட்சிகளின் அளவு 50+ ஜிபி ஆகும், மேலும் எனது மோசமான 256GB SSD மிக விரைவில் நிரம்பியது, வெளிப்புற 1TB டிரைவை வாங்கும்படி என்னை கட்டாயப்படுத்தியது. இருப்பினும், ஒரு வருடத்திற்குப் பிறகு, நான் உருவாக்கும் தரவின் அளவை அது இனி கையாள முடியாது, பணிநீக்கம் மற்றும் காப்புப்பிரதி இல்லாததால் முக்கியமான தகவல்களை ஹோஸ்ட் செய்வதற்கு இது பொருத்தமற்றது.

எனவே, ஒரு கட்டத்தில், இந்த அமைப்பு மற்றொரு மேம்படுத்தல் தேவையில்லாமல் குறைந்தது இரண்டு வருடங்கள் நீடிக்கும் என்ற நம்பிக்கையில் ஒரு பெரிய NAS ஐ உருவாக்க முடிவு செய்தேன்.

நான் இந்த கட்டுரையை முதன்மையாக நான் என்ன செய்தேன் மற்றும் அதை மீண்டும் செய்ய வேண்டியிருந்தால் அதை எப்படி செய்தேன் என்பதை நினைவூட்டுவதற்காக எழுதினேன். நீங்கள் அதையே செய்ய முடிவு செய்தால் உங்களுக்கும் பயனுள்ளதாக இருக்கும் என்று நம்புகிறேன்.

ஒருவேளை வாங்குவது எளிதாக இருக்கிறதா?

எனவே, நாம் எதைப் பெற விரும்புகிறோம் என்பது எங்களுக்குத் தெரியும், கேள்வி உள்ளது: எப்படி?

நான் முதலில் வணிக தீர்வுகளைப் பார்த்தேன், குறிப்பாக சினாலஜியைப் பார்த்தேன், இது சந்தையில் சிறந்த நுகர்வோர் தர NAS அமைப்புகளை வழங்குவதாக இருந்தது. இருப்பினும், இந்த சேவையின் விலை மிகவும் அதிகமாக இருந்தது. மலிவான 4-பே சிஸ்டத்தின் விலை $300+ மற்றும் ஹார்ட் டிரைவ்களை உள்ளடக்காது. கூடுதலாக, அத்தகைய கிட்டின் உள் நிரப்புதல் குறிப்பாக சுவாரஸ்யமாக இல்லை, இது அதன் உண்மையான செயல்திறனை கேள்விக்குள்ளாக்குகிறது.

பின்னர் நான் நினைத்தேன்: ஏன் ஒரு NAS சேவையகத்தை உருவாக்கக்கூடாது?

பொருத்தமான சேவையகத்தைக் கண்டறிதல்

அத்தகைய சேவையகத்தை நீங்கள் இணைக்கப் போகிறீர்கள் என்றால், முதலில் நீங்கள் சரியான வன்பொருளைக் கண்டுபிடிக்க வேண்டும். பயன்படுத்தப்பட்ட சேவையகம் இந்த உருவாக்கத்திற்கு மிகவும் பொருத்தமானதாக இருக்க வேண்டும், ஏனெனில் சேமிப்பக பணிகளுக்கு அதிக செயல்திறன் தேவையில்லை. தேவையான விஷயங்களில், அதிக அளவு ரேம், பல SATA இணைப்பிகள் மற்றும் நல்ல நெட்வொர்க் கார்டுகளை நாம் கவனிக்க வேண்டும். நான் நிரந்தரமாக வசிக்கும் இடத்தில் எனது சர்வர் வேலை செய்யும் என்பதால், இரைச்சல் அளவும் முக்கியமானது.

ஈபேயில் எனது தேடலைத் தொடங்கினேன். நான் பயன்படுத்திய Dell PowerEdge R410/R210 ஐ அங்கு $100 க்குக் குறைவாகக் கண்டறிந்தாலும், சர்வர் அறையில் பணிபுரிந்த அனுபவம் உள்ளதால், இந்த 1U யூனிட்கள் அதிக சத்தத்தை ஏற்படுத்தியது மற்றும் வீட்டு உபயோகத்திற்கு ஏற்றதாக இல்லை என்பது எனக்குத் தெரியும். ஒரு விதியாக, கோபுர சேவையகங்கள் பெரும்பாலும் சத்தம் குறைவாக இருக்கும், ஆனால், துரதிர்ஷ்டவசமாக, ஈபேயில் அவற்றில் சில இருந்தன, மேலும் அவை அனைத்தும் விலை உயர்ந்தவை அல்லது சக்தியற்றவை.

பார்க்க வேண்டிய அடுத்த இடம் கிரெய்க்லிஸ்ட், அங்கு யாரோ பயன்படுத்திய HP ProLiant N40L ஐ வெறும் $75க்கு விற்பதைக் கண்டேன்! இந்தச் சேவையகங்களைப் பற்றி நான் நன்கு அறிந்திருந்தேன், இதற்கு வழக்கமாக $300 செலவாகும், எனவே விளம்பரம் இன்னும் செயலில் உள்ளது என்ற நம்பிக்கையில் விற்பனையாளருக்கு மின்னஞ்சல் அனுப்பினேன். இது அப்படித்தான் என்பதை அறிந்த நான், இரண்டு முறை யோசிக்காமல், இந்த சேவையகத்தை எடுக்க சான் மேட்டியோவுக்குச் சென்றேன், இது முதல் பார்வையில் நிச்சயமாக எனக்கு மகிழ்ச்சியைத் தந்தது. இது குறைந்தபட்ச உடைகள் மற்றும் ஒரு பிட் தூசி தவிர, மற்ற அனைத்தும் நன்றாக இருந்தது.

லினக்ஸில் மலிவான வீட்டு NAS அமைப்பை உருவாக்குதல்
சர்வரின் புகைப்படம், வாங்கிய உடனேயே

நான் வாங்கிய கிட்டுக்கான விவரக்குறிப்புகள் இங்கே:

  • சிபியு: AMD Turion(tm) II Neo N40L Dual-core Processor (64-bit)
  • ரேம்: 8 ஜிபி ஈசிசி அல்லாத ரேம் (முந்தைய உரிமையாளரால் நிறுவப்பட்டது)
  • ஃப்ளாஷ்: 4 ஜிபி USB டிரைவ்
  • SATA இணைப்பிகள்:4+1
  • எதுவும்: 1 ஜிபிபிஎஸ் ஆன்-போர்டு என்ஐசி

பல வருடங்கள் பழமையானதாக இருந்தாலும், இந்த சர்வரின் விவரக்குறிப்பு சந்தையில் உள்ள பெரும்பாலான NAS விருப்பங்களை விட, குறிப்பாக ரேம் அடிப்படையில் இன்னும் சிறப்பாக உள்ளது என்று சொல்ல தேவையில்லை. சிறிது நேரம் கழித்து, அதிகரித்த இடையக அளவு மற்றும் அதிகரித்த தரவு பாதுகாப்புடன் 16 GB ECC க்கு மேம்படுத்தினேன்.

ஹார்ட் டிரைவ்களைத் தேர்ந்தெடுப்பது

இப்போது எங்களிடம் ஒரு சிறந்த வேலை அமைப்பு உள்ளது, அதற்கான ஹார்ட் டிரைவ்களைத் தேர்ந்தெடுப்பது மட்டுமே எஞ்சியுள்ளது. வெளிப்படையாக, அந்த $75 க்கு நான் HDD இல்லாமல் சேவையகத்தை மட்டுமே பெற்றேன், இது என்னை ஆச்சரியப்படுத்தவில்லை.

ஒரு சிறிய ஆராய்ச்சி செய்த பிறகு, NAS அமைப்புகளை 24/7 இயக்குவதற்கு WD Red HDDகள் மிகவும் பொருத்தமானவை என்பதை நான் கண்டுபிடித்தேன். அவற்றை வாங்க, நான் அமேசானுக்கு திரும்பினேன், அங்கு ஒவ்வொன்றும் 4 TB இன் 3 பிரதிகள் வாங்கினேன். அடிப்படையில், நீங்கள் விரும்பும் எந்த எச்டிடியையும் இணைக்கலாம், ஆனால் அவை ஒரே திறன் மற்றும் வேகத்தில் இருப்பதை உறுதிசெய்யவும். இது நீண்ட காலத்திற்கு சாத்தியமான RAID செயல்திறன் சிக்கல்களைத் தவிர்க்க உதவும்.

கணினி அமைப்பு

பலர் தங்கள் NAS கட்டமைப்பிற்கு கணினியைப் பயன்படுத்துவார்கள் என்று நான் நினைக்கிறேன் FreeNAS, மற்றும் அதில் தவறில்லை. இருப்பினும், எனது சேவையகத்தில் இந்த அமைப்பை நிறுவுவதற்கான சாத்தியக்கூறு இருந்தபோதிலும், நான் CentOS ஐப் பயன்படுத்த விரும்பினேன், ஏனெனில் லினக்ஸ் அமைப்பில் ZFS ஆரம்பத்தில் உற்பத்தி சூழலுக்குத் தயாராக உள்ளது, பொதுவாக, Linux சேவையகத்தை நிர்வகிப்பது எனக்கு மிகவும் பரிச்சயமானது. தவிர, ஃப்ரீநாஸ் வழங்கிய ஆடம்பரமான இடைமுகம் மற்றும் அம்சங்களில் எனக்கு ஆர்வம் இல்லை - RAIDZ வரிசை மற்றும் AFP பகிர்வு எனக்கு போதுமானதாக இருந்தது.

USB இல் CentOS ஐ நிறுவுவது மிகவும் எளிதானது - 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

இங்கே நான் ஹார்டு டிரைவ்களின் காட்சிப் பெயர்களுக்குப் பதிலாக ஐடிகளைப் பயன்படுத்துகிறேன் என்பதை நினைவில் கொள்ளவும் (sdx) ஒரு எழுத்து மாற்றம் காரணமாக துவக்கத்திற்குப் பிறகு அவை மவுண்ட் செய்யத் தவறிவிடும் வாய்ப்பைக் குறைக்க.

தனித்தனி SSD இல் இயங்கும் ZIL மற்றும் L2ARC தற்காலிக சேமிப்பையும் சேர்த்து, அந்த SSDயை இரண்டு பகிர்வுகளாகப் பிரித்தேன்: ZILக்கு 5GB மற்றும் மீதமுள்ளவை 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

இங்கிருந்து, தரவைச் சேமிக்க ஒன்று அல்லது அதற்கு மேற்பட்ட தரவுத்தொகுப்புகளை உருவாக்க நீங்கள் தேர்வு செய்யலாம். நான் இரண்டை உருவாக்கினேன், ஒன்று டைம் மெஷின் காப்புப்பிரதிக்காகவும் ஒன்று பகிரப்பட்ட கோப்பு சேமிப்பிற்காகவும். டைம் மெஷின் தரவுத்தொகுப்பின் முடிவில்லாத வளர்ச்சியைத் தடுக்க அதன் அளவை 512 ஜிபி ஒதுக்கீட்டிற்கு வரம்பிட்டேன்.

தேர்வுமுறை

zfs set compression=on data

இந்த கட்டளை ZFS சுருக்க ஆதரவை செயல்படுத்துகிறது. சுருக்கமானது குறைந்தபட்ச CPU சக்தியைப் பயன்படுத்துகிறது, ஆனால் I/O செயல்திறனை கணிசமாக மேம்படுத்த முடியும், எனவே எப்போதும் பரிந்துரைக்கப்படுகிறது.

zfs set relatime=on data

இந்த கட்டளையுடன் புதுப்பிப்புகளின் எண்ணிக்கையை குறைக்கிறோம் atimeகோப்புகளை அணுகும் போது IOPS உருவாக்கத்தை குறைக்க.

இயல்பாக, லினக்ஸில் ZFS ARC க்கு 50% உடல் நினைவகத்தைப் பயன்படுத்துகிறது. என் விஷயத்தில், மொத்த கோப்புகளின் எண்ணிக்கை சிறியதாக இருந்தால், சேவையகத்தில் வேறு எந்த பயன்பாடுகளும் இயங்காது என்பதால், இதை 90% ஆக பாதுகாப்பாக அதிகரிக்கலாம்.

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

பின்னர் பயன்படுத்தி arc_summary.py மாற்றங்கள் நடைமுறைக்கு வந்துள்ளன என்பதை நீங்கள் சரிபார்க்கலாம்:

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

தொடர்ச்சியான பணிகளை அமைத்தல்

நான் பயன்படுத்தினேன் systemd-zpool-scrub வாரம் ஒருமுறை சுத்தம் செய்ய systemd டைமர்களை கட்டமைக்க மற்றும் zfs-auto-snapshot ஒவ்வொரு 15 நிமிடங்கள், 1 மணிநேரம் மற்றும் 1 நாளுக்கு ஒருமுறை ஸ்னாப்ஷாட்களை தானாக உருவாக்க.

Netatalk ஐ நிறுவுகிறது

நெட்டாடாக் AFP இன் திறந்த மூல செயலாக்கமாகும் (ஆப்பிள் தாக்கல் நெறிமுறை) தொடர்ந்து CentO க்கான அதிகாரப்பூர்வ நிறுவல் வழிமுறைகள்எஸ், நான் ஒரு சில நிமிடங்களில் அசெம்பிள் செய்து நிறுவப்பட்ட RPM தொகுப்பைப் பெற்றேன்.

கட்டமைப்பு அமைப்பு

$ 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 firewall-cmd --permanent --zone=public --add-port=afpovertcp/tcp
எல்லாம் சரியாக உள்ளமைக்கப்பட்டிருந்தால், உங்கள் இயந்திரம் ஃபைண்டரில் காண்பிக்கப்படும், மேலும் டைம் மெஷினும் வேலை செய்யும்.

கூடுதல் அமைப்புகள்
ஸ்மார்ட் கண்காணிப்பு

வட்டு தோல்வியைத் தடுக்க உங்கள் வட்டுகளின் நிலையை கண்காணிக்க பரிந்துரைக்கப்படுகிறது.

$ 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 விஷயத்தில், இடையகத்திற்கான கூடுதல் நினைவகம் மிகவும் பயனுள்ளதாக இருக்கும். எனவே நான் அமேசானுக்குச் சென்றேன், அங்கு நான் 2x கிங்ஸ்டன் DDR3 8GB ECC ரேமை ஒவ்வொன்றும் $80க்கு வாங்கி, முந்தைய உரிமையாளரால் நிறுவப்பட்ட டெஸ்க்டாப் ரேமை மாற்றினேன். கணினி எந்த பிரச்சனையும் இல்லாமல் முதல் முறையாக துவக்கப்பட்டது, மேலும் ECC ஆதரவு செயல்படுத்தப்பட்டதை உறுதிசெய்தேன்:

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

விளைவாக

இதன் விளைவாக நான் மிகவும் மகிழ்ச்சியடைந்தேன். இப்போது நான் கோப்புகளை நகலெடுப்பதன் மூலம் சேவையகத்தின் 1Gbps LAN இணைப்பை தொடர்ந்து பிஸியாக வைத்திருக்க முடியும், மேலும் Time Machine குறைபாடற்ற முறையில் செயல்படுகிறது. எனவே, ஒட்டுமொத்தமாக, அமைப்பில் நான் மகிழ்ச்சியடைகிறேன்.

மொத்த செலவு:

  1. 1 * HP ProLiant N40L = $75
  2. 2 * 8 ஜிபி ஈசிசி ரேம் = $174
  3. 4 * WD Red 3 TB HDD = $440

மொத்தம் = $ 689

விலை மதிப்புக்குரியது என்று இப்போது என்னால் சொல்ல முடியும்.

உங்கள் சொந்த NAS சேவையகங்களை உருவாக்குகிறீர்களா?

லினக்ஸில் மலிவான வீட்டு NAS அமைப்பை உருவாக்குதல்

லினக்ஸில் மலிவான வீட்டு NAS அமைப்பை உருவாக்குதல்

ஆதாரம்: www.habr.com

கருத்தைச் சேர்