Ngawangun sistem NAS bumi anu murah dina Linux

Ngawangun sistem NAS bumi anu murah dina Linux

Abdi, sapertos seueur pangguna MacBook Pro anu sanés, nyanghareupan masalah mémori internal anu teu cekap. Janten langkung tepat, rMBP anu kuring dianggo unggal dintenna dilengkepan SSD kalayan kapasitas ngan 256GB, anu, sacara alami, henteu cekap kanggo lami.

Sareng nalika kuring mimiti ngarékam pidéo salami penerbangan kuring, kaayaan éta langkung parah. Volume footage sanggeus penerbangan sapertos éta 50+ GB, sarta 256GB SSD malang kuring dieusian nepi pisan geura-giru, forcing kuring meuli drive éksternal 1TB. Nanging, saatos sataun, éta henteu tiasa ngiringan volume data anu kuring hasilkeun, sanés deui kurangna redundansi sareng cadangan ngajantenkeun teu cocog pikeun nyayogikeun inpormasi penting.

Janten, dina hiji waktos kuring mutuskeun pikeun ngawangun NAS ageung kalayan harepan yén sistem ieu bakal tahan sahenteuna sababaraha taun tanpa meryogikeun pamutahiran anu sanés.

Kuring nyerat tulisan ieu utamina salaku panginget ngeunaan naon anu kuring lakukeun sareng kumaha kuring ngalakukeunana upami kuring kedah ngalakukeun deui. Kuring miharep éta bakal mangpaat pikeun anjeun ogé lamun mutuskeun lakonan hal nu sarua.

Meureun leuwih gampang meuli?

Janten, urang terang naon anu urang hoyong kéngingkeun, patarosan tetep: kumaha?

Kuring mimiti ningali solusi komérsial sareng ningali khususna di Synology, anu sakuduna nyayogikeun sistem NAS kelas konsumen anu pangsaéna dina pasaran. Tapi, biaya jasa ieu rada luhur. The cheapest Sistim 4-bay waragad $300+ na teu kaasup teuas drive. Sajaba ti éta, keusikan internal kit misalna teu utamana impressive, nu nelepon kana sual kinerja nyata na.

Teras kuring mikir: naha henteu ngawangun server NAS sorangan?

Milarian Server anu Katuhu

Upami anjeun badé ngumpul server sapertos kitu, maka mimitina anjeun kedah milarian hardware anu leres. Server anu dianggo kedah cocog pikeun ngawangun ieu, sabab kami henteu peryogi seueur kinerja pikeun tugas neundeun. Diantara hal-hal anu dipikabutuh, urang kedah perhatikeun jumlah RAM anu ageung, sababaraha konektor SATA sareng kartu jaringan anu saé. Kusabab server kuring bakal dianggo di tempat tinggal permanén kuring, tingkat noise ogé masalah.

Kuring ngamimitian pilarian abdi on eBay. Sanajan kuring kapanggih loba dipaké Dell PowerEdge R410 / R210s sahandapeun $ 100 aya, sanggeus digawé di kamar server, Kuring nyaho yén unit 1U ieu teuing ribut jeung teu cocog pikeun pamakéan imah. Sakumaha aturan, server munara mindeng kirang ribut, tapi, hanjakalna, aya sababaraha di antarana didaptarkeun dina eBay, sarta maranéhanana éta sakabéh boh mahal atawa underpowered.

Tempat anu salajengna nyaéta Craiglist, dimana kuring mendakan batur ngajual HP ProLiant N40L anu dianggo ngan $ 75! Kuring wawuh jeung server ieu, nu biasana hargana sabudeureun $300 malah dipaké, jadi kuring emailed seller dina harepan yén iklan éta masih aktip. Sanggeus diajar yén ieu hal, abdi, tanpa mikir dua kali, dipingpin ka San Mateo pikeun nyokot server ieu, nu di glance kahiji pasti pleased kuring. Éta ngagem minimal sareng iwal sakedik lebu, sadayana anu saé.

Ngawangun sistem NAS bumi anu murah dina Linux
Poto server, langsung saatos beuli

Sareng ieu spésifikasi kit anu kuring mésér:

  • CPU: AMD Turion(tm) II Neo N40L Prosesor Dual-Core (64-bit)
  • Ram: 8 GB non-ECC RAM (dipasang ku nu boga saméméhna)
  • cahaya: 4 GB USB Girang
  • Panyambung SATA:4+1
  • NIC: 1 Gbps on-board NIC

Henteu kedah disebatkeun, sanaos umurna sababaraha taun, spésifikasi server ieu masih langkung unggul pikeun kalolobaan pilihan NAS di pasar, khususna dina hal RAM. A saeutik engké, abdi malah ditingkatkeun ka 16 GB ECC kalawan ngaronjat ukuran panyangga jeung ngaronjat panyalindungan data.

Milih hard drive

Ayeuna kami gaduh sistem kerja anu saé sareng anu tetep nyaéta milih hard drive pikeun éta. Jelas, pikeun $ 75 kuring ngan ukur ngagaduhan server sorangan tanpa HDD, anu henteu kaget kuring.

Saatos ngalakukeun sakedik panalungtikan, kuring mendakan yén drive 24/7 NAS paling cocog pikeun WD Red HDD. Pikeun mésér éta, kuring tos ka Amazon, dimana kuring mésér 4 salinan masing-masing 3 TB. Kanyataanna, Anjeun bisa nyambungkeun wae HDD pikaresep, tapi pastikeun yén aranjeunna tina ukuran jeung speed sarua. Ieu bakal ngabantosan anjeun ngahindarkeun poténsi masalah kinerja RAID dina jangka panjang.

Setup Sistim

Kuring nyangka yén seueur anu bakal ngagunakeun sistem pikeun ngawangun NAS na FreeNAS, sareng teu aya anu lepat sareng éta. Nanging, sanaos kamungkinan masang sistem ieu dina server kuring, kuring langkung milih ngagunakeun CentOS, sabab ZFS dina sistem Linux mimitina disiapkeun pikeun lingkungan produksi, sareng sacara umum, ngatur server Linux langkung akrab pikeun kuring. Salian ti éta, kuring henteu kabetot dina antarmuka sareng fitur anu disayogikeun ku FreeNAS - susunan RAIDZ sareng babagi AFP cekap pikeun kuring.

Masang CentOS dina USB cukup saderhana - sebutkeun USB salaku sumber boot, sareng nalika anjeun ngamimitian wizard pamasangan bakal nungtun anjeun kana sadaya léngkah.

ngawangun RAID

Saatos suksés masang CentOS, kuring ogé masang ZFS dina Linux nuturkeun anu didaptarkeun léngkah di dieu.

Saatos prosés ieu réngsé, kuring ngeusian modul ZFS Kernel:

$ sudo modprobe zfs

Sareng nyiptakeun RAIDZ1 nganggo paréntah 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

Punten dicatet yén di dieu kuring nganggo ID tina hard drive tinimbang nami tampilanna (sdx) pikeun ngirangan kasempetan aranjeunna gagal dipasang saatos boot kusabab parobihan hurup.

Kuring ogé ditambahkeun ZIL na L2ARC cache ngajalankeun on SSD misah, ngabagi SSD ieu dua partitions: 5GB pikeun ZIL sarta sésana pikeun L2ARC.

Sedengkeun pikeun RAIDZ1, éta bisa tahan 1 gagalna disk. Seueur anu nyatakeun yén pilihan kolam renang ieu henteu kedah dianggo kusabab kamungkinan gagalna disk kadua nalika prosés ngawangun deui RAID, anu tiasa nyababkeun leungitna data. Kuring dipaliré rekomendasi ieu, saprak kuring rutin nyieun salinan cadangan data penting dina alat jauh, sarta kagagalan malah sakabéh Asép Sunandar Sunarya ukur bisa mangaruhan kasadiaan data, tapi teu kaamanan na. Upami anjeun henteu gaduh kamampuan ngadamel cadangan, maka langkung saé ngagunakeun solusi sapertos RAIDZ2 atanapi RAID10.

Anjeun tiasa pariksa yen kreasi kolam renang suksés ku ngajalankeun:

$ sudo zpool status

и

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

Sacara standar, ZFS mounts karek dijieun kolam renang langsung ka /, nu umumna teu dipikahoyong. Anjeun tiasa ngarobih ieu ku ngajalankeun:

zfs set mountpoint=/mnt/data data

Ti dieu Anjeun bisa milih nyieun hiji atawa leuwih datasets pikeun nyimpen data. Kuring nyiptakeun dua, hiji pikeun cadangan Time Machine sareng hiji pikeun neundeun file anu dibagikeun. Kuring ngawatesan ukuran dataset Time Machine kana kuota 512 GB pikeun nyegah tumuwuhna sajajalan na.

optimasi

zfs set compression=on data

Paréntah ieu ngamungkinkeun dukungan komprési ZFS. Komprési ngagunakeun kakuatan CPU minimal, tapi nyata bisa ningkatkeun I / O throughput, jadi sok dianjurkeun.

zfs set relatime=on data

Kalawan paréntah ieu, urang ngurangan jumlah apdet pikeun atimepikeun ngirangan generasi IOPS nalika ngaksés file.

Sacara standar, ZFS dina Linux nganggo 50% mémori fisik pikeun ARC. Bisi kuring, nalika jumlah file leutik, jumlah ieu tiasa aman ningkat kana 90%, sabab aplikasi sanés dina server moal jalan.

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

Lajeng ngagunakeun arc_summary.py Anjeun tiasa pariksa yén parobihan parantos dilaksanakeun:

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

Nyetél tugas ngulang deui

Kuring dipaké systemd-zpool-scrub pikeun ngonpigurasikeun timers systemd nedunan cleanup saminggu sakali jeung zfs-otomatis-snapshot pikeun otomatis nyieun snapshots unggal 15 menit, 1 jam jeung 1 poé.

Masang Netatalk

nettalk mangrupa palaksanaan open source AFP (Protokol Filing Apple). Nurutan parentah instalasi resmi pikeun CentOS, kuring sacara harfiah nampi pakét RPM anu dirakit sareng dipasang dina ngan ukur sababaraha menit.

Setélan konfigurasi

$ 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

Catet éta vol dbnest mangrupakeun pamutahiran utama bisi kuring, sakumaha standar Netatalk nyerat database CNID kana akar sistem file, nu teu desirable saprak sistem file utama abdi on USB, sarta ku kituna relatif slow. Ngahurungkeun sami vol dbnest ngarah ka nyimpen database dina akar Jilid, nu dina hal ieu milik ZFS kolam renang na geus urutan gedena gancang.

Aktipkeun port di Firewall

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

sudo firewall-cmd --permanén --zone = publik --add-port = afpovertcp/tcp
Upami sadayana dikonpigurasi leres, mesin anjeun kedah muncul dina Finder, sareng Mesin Waktos kedah dianggo ogé.

Setélan tambahan
ngawaskeun SMART

Disarankeun pikeun ngawas status disk anjeun pikeun nyegah gagalna disk.

$ sudo yum install smartmontools
$ sudo systemctl start smartd

Daemon pikeun UPS

Ngawas muatan tina UPS APC jeung mareuman sistem nalika muatan jadi kritis low.

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

pamutahiran hardware

Saminggu sanggeus nyetél sistem, Kuring mimiti salempang beuki loba ngeunaan memori non-ECC dipasang dina server. Salaku tambahan, dina kasus ZFS, mémori tambahan pikeun panyangga bakal mangpaat pisan. Ku kituna kuring tos ka Amazon deui, dimana kuring dibeuli 2x Kingston DDR3 8GB ECC RAM pikeun $80 unggal tur ngaganti desktop RAM nu boga saméméhna geus dipasang. Sistim nu booted up kahiji kalina tanpa masalah, sarta kuring mastikeun yén rojongan ECC diaktipkeun:

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

hasil

Kuring pohara gumbira kalayan hasilna. Ayeuna kuring tiasa terus-terusan ngajaga sambungan LAN 1Gbps server sibuk ku nyalin file, sareng Mesin Waktos tiasa dianggo sacara sampurna. Janten, sacara umum, kuring resep kana setélan.

Total biaya:

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

dina total = $ 689

Ayeuna kuring bisa disebutkeun yen harga éta patut eta.

Naha anjeun ngadamel server NAS anjeun nyalira?

Ngawangun sistem NAS bumi anu murah dina Linux

Ngawangun sistem NAS bumi anu murah dina Linux

sumber: www.habr.com

Tambahkeun komentar