Én, akárcsak sok más MacBook Pro felhasználó, szembesültem a belső memória hiányával. Pontosabban, az általam naponta használt rMBP csak 256 GB-os SSD-vel volt felszerelve, ami természetesen nem volt elegendő hosszú távon.
Amikor ráadásul elkezdtem videókat rögzíteni a repüléseim közben, a helyzet csak súlyosbodott. Az ilyen repülések során felvett anyag mennyisége több mint 50 GB volt, és a szerencsétlen 256 GB-os SSD-m nagyon gyorsan megtelt, arra kényszerítve, hogy vásároljak egy 1 TB-os külső meghajtót. Ennek ellenére egy év elteltével ez sem tudta kezelni az általam generált adatmennyiséget, nem is beszélve arról, hogy a redundancia és a biztonsági mentés hiánya miatt nem volt alkalmas fontos információk tárolására.
Tehát egy pillanatban úgy döntöttem, hogy egy nagy kapacitású NAS-t állítok össze, abban a reményben, hogy ez a rendszer legalább néhány évig el fog tartani anélkül, hogy szükség lenne újabb frissítésre.
Ezt a cikket elsősorban emlékeztetőként írtam arra, hogy mit és hogyan csináltam, hátha szükségem lesz rá újból. Remélem, hogy neked is hasznos lesz, ha úgy döntesz, hogy ugyanazt csinálod.
Talán egyszerűbb lenne megvásárolni?
Tehát tudjuk, mit szeretnénk, a kérdés csak az, hogy hogyan?
Először megismerkedtem a kereskedelmi megoldásokkal, és különösen a Synology céget mérlegeltem, amelyről úgy gondolták, hogy a legjobb fogyasztói szintű NAS rendszereket kínálja a piacon. Azonban a szolgáltatás költsége elég magasnak bizonyult. A legolcsóbb 4 rekeszes rendszer több mint 300 dollárba kerül, és ehhez a merevlemezek nem tartoznak. Ezen kívül magának a csomagnak az alapja sem különösebben lenyűgöző, ami megkérdőjelezi a valódi teljesítményét.
Akkor gondoltam: miért ne építenék magam egy NAS szervert?
Megfelelő szerver keresése
Ha ilyen szervert szeretnél összeállítani, először is meg kell találni a megfelelő hardvert. Ehhez az összeállításhoz egy használt szerver teljesen megfelel, mivel tárolási feladatokhoz nem szükséges különös teljesítmény. A szükségesek közül meg kell említeni egy nagy mennyiségű RAM-ot, több SATA csatlakozót és jó hálózati kártyákat. Mivel a szerverem a tartózkodási helyemen fog működni, a zajszint is fontos szempont.
A keresésemet az eBay-en kezdtem. Bár sok használt Dell PowerEdge R410/R210-t találtam 100 dollár alatt, a szerverteremben szerzett tapasztalatom alapján tudtam, hogy ezek a 1U-s egységek túl hangosak, és otthoni használatra nem alkalmasak. Általában a torony formátumú szerverek csendesebbek, de sajnos az eBay-en csak néhány volt elérhető, és mind drága vagy gyenge teljesítményű volt.
A következő hely, ahol keresni kezdtem, a Craigslist volt, ahol találtam egy embert, aki használt HP ProLiant N40L-t árult mindössze 75 dollárért! Ismertem ezeket a szervereket, amelyek még használt állapotban is általában 300 dollár körüli áron mozognak, így írtam az eladónak, remélve, hogy a hirdetés még aktuális. Miután megtudtam, hogy igen, azonnal San Mateo felé vettem az irányt, hogy átvegyem ezt a szervert, amely már az első pillantásra is nagyon tetszett. Minimális kopás jelei voltak rajta, és a pici porrétegen kívül minden más tiszta volt.

A szerver fotója, közvetlenül a vásárlás után
Itt van az általam megvásárolt készlet specifikációja:
- CPU: AMD Turion(tm) II Neo N40L Dual-Core Processzor (64-bit)
- RAM: 8 GB non-ECC RAM (a korábbi tulajdonostól telepítve)
- Flash: 4 GB USB Meghajtó
- SATA csatlakozók: 4 + 1
- NIC: 1 Gbps beépített NIC
Nem is kell mondani, hogy a néhány éves kor ellenére ennek a szervernek a specifikációja még mindig felülmúlja a piacon elérhető NAS rendszerek többségét, különösen a RAM mennyiségét tekintve. Kicsit később 16 GB ECC-ra frissítettem, megnövelt pufferrel és fokozott adatvédelmi védelemmel.
Merevlemezek kiválasztása
Most, hogy van egy kiválóan működő rendszerünk, hátra van még a merevlemezek kiválasztása. Nyilvánvaló, hogy azokért a 75 dollárért csak magát a szervert kaptam HDD-k nélkül, ami nem lepett meg.
Kis kutatást végezve kiderítettem, hogy a NAS rendszerek 24/7 üzemeltetéséhez a legjobban a HDD WD Red modellek felelnek meg. Ezek megvásárlására az Amazonhoz fordultam, ahol 4 darabot vásároltam 3 TB-os kapacitással. Alapvetően bármilyen preferált HDD-t csatlakoztathat, de ügyeljen arra, hogy azok azonos kapacitásúak és sebességűek legyenek. Ez segít elkerülni a jövőbeli RAID teljesítményproblémáit.
A rendszer beállítása
Gondolom, sokan a saját NAS konfigurációjukhoz használnak majd rendszert. , és ebben nincs semmi rossz. Azonban, bár lehetőség van ennek a rendszernek a telepítésére a saját szerveremen, én inkább a CentOS-t választottam, mivel a ZFS on Linux rendszer kezdetben produkciós környezetre lett felkészítve, és a Linux kiszolgáló kezelésében jobban otthon vagyok. Ráadásul nem érdekelt a FreeNAS divatos felülete és funkciói – nekem elegendő volt a RAIDZ tömb és az AFP megosztás.
A CentOS telepítése USB-re elég egyszerű – csak meg kell adni az USB-t mint bootforrást, és a telepítővarázsló végigvezet minden lépésen.
RAID tömb készítése
A CentOS sikeres telepítése után a ZFS on Linux-t is telepítettem az itt felsorolt .
A folyamat befejeztével betöltöttem a ZFS kernel modult:
$ sudo modprobe zfs És RAIDZ1 tömböt hoztam létre a következő parancs segítségével 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 Kérlek, vedd észre, hogy itt a merevlemezek azonosítóját használom a megjelenített nevük helyett (sdx), hogy csökkentsem az esélyét annak, hogy a betöltés után a betűjelzések megváltozása miatt ne legyenek csatlakoztatva.
A ZIL-t és az L2ARC cache-t is hozzáadtam, külön SSD-n futva, amelyet két partícióra osztottam: 5 GB ZIL-nek és a fennmaradó rész L2ARC-nek.
A RAIDZ1 esetében képes elviselni 1 lemez meghibásodását. Sokan azt állítják, hogy ezt a poolt nem szabad használni, mivel a RAID újragyártása során második lemez meghibásodásának valószínűsége fennáll, amely adatvesztést okozhat. Én ennek a javaslatnak figyelmen kívül hagytam, mivel rendszeresen készítettem biztonsági másolatokat fontos adataimról egy távoli eszközre, és az egész tömb meghibásodása csak az adatok elérhetőségére hat, nem pedig a megőrzésükre. Ha nincs lehetőséged biztonsági másolatot készíteni, akkor jobb megoldás lehet RAIDZ2 vagy RAID10 alkalmazása.
A pool létrehozásának sikerességét ellenőrizheted az alábbi paranccsal:
$ sudo zpool statusés
$ sudo zfs list
NAME USED AVAIL REFER MOUNTPOINT
data 510G 7.16T 140K /mnt/data Alapértelmezés szerint a ZFS közvetlenül a frissen létrehozott pool-t a következő helyen csatolja /, ami jellemzően nem kívánatos. Ezt megváltoztathatod az alábbi parancs végrehajtásával:
zfs set mountpoint=/mnt/data dataItt kiválaszthatja, hogy egy vagy több adathalmazon szeretne tárolni adatokat. Készítettem kettőt, az egyiket a Time Machine biztonsági másolatához, a másikat pedig a fájlok közös tárolásához. A Time Machine adathalmaz méretét 512 GB-ra korlátoztam, hogy megelőzzem a végtelen növekedést.
Optimalizálás
zfs set compression=on dataEz a parancs engedélyezi a ZFS tömörítési támogatását. A tömörítés minimális CPU-erőt használ, de jelentősen javíthatja a I/O sebességet, ezért mindig ajánlott a használata.
zfs set relatime=on data Ezzel a parancsal csökkentjük a frissítések számát a atime, hogy csökkentsük az IOPS generálását a fájlok elérésénél.
Alapértelmezés szerint a ZFS on Linux a fizikai memória 50%-át használja az ARC-hez. Az én esetemben, amikor a fájlok összes száma csekély, ezt a mennyiséget biztonságosan 90%-ra növelhetjük, mivel a szerveren más alkalmazások nem fognak futni.
$ cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=14378074112Ezután a segítségével megbizonyosodhatunk arról, hogy a változások érvénybe léptek:
$ python arc_summary.py
...
ARC Méret: 100.05% 11.55 GiB
Cél Méret: (Adaptív) 100.00% 11.54 GiB
Min Méret (Kemény Határ): 0.27% 32.00 MiB
Max Méret (Magas Vízállás): 369:1 11.54 GiB
...Ismétlődő feladatok beállítása
Használom a systemd időzítők beállításához, hogy heti rendszerességgel tisztítást végezzenek, valamint automatikus állapotfelvételek készítéséhez 15 percenként, 1 óránként és 1 naponként.
Netatalk telepítése
az AFP () nyílt megvalósítása. A CentOS telepítési utasításait követve A konfiguráció beállítása
$ cat /etc/netatalk/afp.conf [datong@Titan ~]$ cat /etc/netatalk/afp.conf ; ; Netatalk 3.x konfigurációs fájl ;[Global] ; Globális szerver beállítások 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 p(x) – az én esetemben jelentős javulást jelent, mivel a Netatalk alapértelmezés szerint a CNID adatbázist a fájlrendszer gyökerébe írja, ami teljesen nem kívánatos volt, mivel a fő fájlrendszerem USB-n fut, ami viszonylag lassan működik. Ennek a bekapcsolása az adatbázis mentésére a Volume gyökerében történik, amely ebben az esetben a ZFS medencéhez tartozik, és máris jelentősen gyorsabb. az én esetemben jelentős javulást jelent, mivel a Netatalk alapértelmezés szerint a CNID adatbázist a fájlrendszer gyökerébe írja, ami teljesen nem kívánatos volt, mivel a fő fájlrendszerem USB-n fut, ami viszonylag lassan működik. Ennek a bekapcsolása Portok engedélyezése a tűzfalban
$ 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-service=mdns
$ sudo firewall-cmd --permanent --zone=public --add-port=afpovertcp/tcp sudo firewall-cmd —permanens —zóna=nyilvános —port hozzáadása=afpovertcp/tcp
Ha minden helyesen van beállítva, a gépnek meg kell jelennie a Finderben, és a Time Machine is működnie kell.
További beállítások
S.M.A.R.T megfigyelés
Ajánlott a lemezeid állapotának figyelemmel kísérése a meghibásodásuk megelőzése érdekében.
$ sudo yum install smartmontools
$ sudo systemctl start smartdUPS démon
Figyeli az APC UPS töltöttségét, és leállítja a rendszert, amikor a töltöttség kritikusra csökken.
$ sudo yum install epel-release
$ sudo yum install apcupsd
$ sudo systemctl enable apcupsdHardveres frissítés
Egy héttel a rendszer beállítása után egyre inkább kezdtem aggódni amiatt, hogy a szerverbe nem ECC memóriát telepítettek. Ráadásul a ZFS esetében a plusz memória a pufferezéshez nagyon hasznos lesz. Ezért ismét az Amazonhoz fordultam, ahol vásároltam 2x Kingston DDR3 8GB ECC RAM-ot 80 dollárért darabonként, és kicseréltem a korábbi tulajdonos által telepített desktop RAM-ot. A rendszer elsőre probléma nélkül elindult, és megbizonyosodtam róla, hogy az ECC támogatás aktív:
$ dmesg | grep ECC
[ 10.492367] EDAC amd64: DRAM ECC engedélyezve.Eredmény
Az eredmény nagyon örvendetes volt számomra. Most folyamatosan használhatom a 1Gbps LAN kapcsolatot a szerver fájlok másolásával, és a Time Machine hibátlanul működik. Összességében elégedett vagyok a beállítással.
Végső költség:
- 1 * HP ProLiant N40L = 75 dollár
- 2 * 8 GB ECC RAM = 174 dollár
- 4 * WD Red 3 TB HDD = 440 dollár
Összesen = $689
Most már elmondhatom, hogy megérte az árát.
Ti magatok építetek NAS szervereket?
Forrás: habr.com
