Osnove NAS i SAN sustava (i malo više) – prvi dio
U seriji članka autor Hrvoje Horvat upoznat će nas s osnovama i načinom rada NAS, SAN, ZFS i složenih klasterskih poslužitelja, te će podijeliti brojne korisne savjete iz praktičnog iskustva.
Kolega Hrvoje Horvat član je udruge Open Source Osijek na čijim je mrežnim stranicama tekst izvorno objavljen. Prvi članak donosi osnove NAS i SAN sustava, kao i savjete za njihovo postavljanje.
Što su NAS sustavi?
NAS (eng. Network Attached Storage) odnosno “mrežno spojena spremišta podataka” osiguravaju nam prostor za spremanje podataka preko mreže. Ovo su zapravo mrežni dijeljeni sustavi za spremanje podataka koji rade na razini datoteka (i, naravno, direktorija) koje pohranjujemo na njih i to putem mrežnih protokola za dijeljenje datoteka.
Svako dijeljenje datoteka preko mreže (eng. Network Share), korištenjem nekog od mrežnih protokola koji postoje za tu namjenu možemo nazvati upotrebom NAS sustava.
Dijeljeni pristup datotekama preko mreže omogućavaju nam sljedeći mrežni protokoli. Navesti ćemo one najčešće u upotrebi:
- NFS (Network Files System) – koristi se uglavnom na Linux/Unix operacijskim sustavima (ili ponekad u Windows okruženju). Open source varijanta podrazumjeva korištenje nekog od nfs daemona (servisa).
- SMB/CIFS (Server Message Block / Common Internet File System) – koristi se uglavnom na Windows ili Linux okruženjima. Koristi se osim za dijeljenje datoteka i za dijeljenje pisača i drugih uređaja, te dodatnih funkcionalnosti, preko mreže.
- Open source riješenje se zove samba.
- Windows Share je integriran u sve Windows operacijske sustave s ograničenjem od maksimalno 10 paralelnih (otvorenih) konekcija na Windows dijeljeni direktorij ako se radi o verziji Windowsa koja NIJE: Windows Server: 2003/2003 R2/2008/2008 R2/2012/2012 (R2).
- AFP (Apple Filing Protocol) – koristi se za dijeljenje datoteka na Mac OS računalima.
- Istoj kategoriji pripadaju i FTP (File Transfer Protocol) i TFTP (Trivial File Transfer Protocol) protokoli, s time da su oni jednostavniji i nemaju naprednije mogućnosti kao gore navedeni.
- Često se koristi i WebDAV (Web Distributed Authoring and Versioning) koji je svojom funkcionalnošću negdje između FTP i gore navedenih protokola.
- Brojni ostali.
Najosnovniji primjer upotrebe sustava za koji bi mogli reći da je neka vrsta NAS sustava bi bio klasično dijeljenje nekog direktorija preko mreže iz Windows OS-a. Nešto poput dijeljenja (eng. Sharing) ovog direktorija (D:\BKP) na slici:

Windows Sharing
U slučaju upotrebe na Windows operacijskom sustavu sve se za jednostavno mrežno dijeljenje svodi na odabir željenog direktorija te njegovog dijeljenja preko SMB/CIFS sustava.
Ako govorimo o “samostalnom” NAS sustavu odnosno uređaju pod nekom od varijanti Unix ili Linux operacijskih sustava, ova procedura se u konačnici uglavnom svodi na nekoliko koraka:
- Kreiranje nekog RAID polja diskova koje ćemo dalje koristiti kao jedan “logički” disk,
- Particioniranje “logičkog” diska koji ćemo koristiti za dijeljenje datoteka,
- Formatiranje kreiranih particija (Linux ext3/4, Linux XFS, Windows NFS ili sl. – ovisno o operacijskom sustavu NAS uređaja i našim potrebama),
- Mountanje formatirane particije u neki direktorij,
- Odabir mountanog direktorija te konfiguracija i aktivacija nekog od mrežnih protokola za dijeljeni pristup preko mreže – pogledajte niže opisane (NFS, SMB/CIFS, AFP ili sl.).
Osnovne pretpostavke i planiranje za NAS ili SAN sustav
1. Korak: Kod odabira NAS ili SAN sustava odnosno poslužitelja najprije moramo biti svjesni zahtjeva za softverom (operacijskima sustavom). Operacijski sustav za NAS ili SAN može biti:
- Specijalizirani open source OS poput:
- OpenFiler,
- OpenMediaVault,
- FreeNAS,
- Nas4Free,
- NexentaStor (Nexenta Community Edition),
- …
- … ili neko od komercijalnih rješenja za NAS/SAN:
- NexentaStor (Nexenta Enterprise Edition),
- TrueNAS,
- Open-e,
- …
- … ili OS za opću upotrebu koji ćemo dodatno konfigurirati prema našim potrebama:
- Neka Linux distribucija koju želimo prilagoditi našim potrebama,
- Windows server koji već imamo te ga želimo optimizirati ili prenamijeniti za NAS/SAN sustav,
- Nešto drugo.
Postoje i gotovi “samostojeći” uređaji koji dolaze zajedno s operacijskim sustavom. Proizvode ih: EMC2, IBM, Dell, NetApp i drugi (oni nisu tema ove priče ).
2. Korak: Nakon što smo odabrali operacijski sustav za NAS ili SAN poslužitelj, moramo biti svjesni i njegovih zahtjeva za hardverom:
- Koji CPU će zadovoljiti naše potrebe,
- Koliko RAM memorije (i koji tip),
- Koje mrežne kartice: 1Gbps ili 10Gbps, koji modeli (chipovi) i koliko ih je potrebno (jedna, dvije, tri, …),
- Koji mrežni preklopnik (switch) odabrati, s kojom verzijom firmware-a (OS-a) i s kojim funkcionalnostima. Za više detalja pogledajte članak “Switching i routing: jučer, danas, sutra”,
- Koji RAID kontroler, s koliko RAM memorije, BBU i sl. odabrati,
- Koje tvrde diskove odabrati.
Nakon planiranja resursa koji će nam trebati, potrebno je revidirati točku 2.
Budući da govorimo o NAS i SAN sustavima, u nastavnu ćemo se detaljnije fokusirati na dio o RAID kontrolerima i diskovima, jer bi bez njihovog dobrog odabira kasnije u radu često dolazilo do problema ili (što je najgore) gubitka podataka, a tek to bi mogli vrlo skupo platiti ($$$).
Zbog čega RAID kontroler i tolika pažnja pri odabiru diskova?
Krenimo od diskova. Diskovi se u grubo dijele prema namjeni. U svakom slučaju želimo diskove koji su pouzdani ali i koji su proizvedeni za tzv. serversku namjenu u kombinaciji s RAID kontrolerima. Budite svjesni činjenice da postoje i “serverski” diskovi koji nisu dizajnirani odnosno optimizirani za rad s RAID kontrolerima. Za više detalja pogledajte knjigu “Uvod u Linux i Linux napredno”, poglavlje: “Podjela prema namjeni diskova”.
RAID kontroleri su svakako priča za sebe, ali svakako želimo imati pošteni hardverski RAID kontroler provjerenoga proizvođača. Dodatno, važna je i verzija firmware-a za RAID kontroler u kombinaciji s driverom za operacijski sustav na kojemu ga koristite. U praksi su se čak i kombinacije određenih verzija firmware-a i drivera, kao i kombinacije firmware RAID kontrolera i firmware-a drugih komponenti poslužitelja (npr. matične ploče), pokazale katastrofalnim odabirom.
Zaključak: treba si dati malo truda i proučiti što kupujemo (kao i komentare korisnika) za što konfiguraciju sličnu vašoj: OS, driveri (RAID, LAN, MB, …), firmare, softver, …
Cjenovni opseg “poštenih” RAID kontrolera (ovisno o broju diskova koje možete spojiti na njega), kreće se od minimalno tisuću KN na više. Sve jeftinije od toga, kao i odabir tzv. “integriranih RAID” kontrolera na matičnim pločama (osim ako su u pitanju prave serverske matične ploče od 5.000+ KN), nemojte niti pomišljati koristiti. Za više detalja pogledajte poglavlje “hardverski RAID”.
Rješenje prvo: Integrirana RAID rješenja
U ovim “integriranim” kombinacijama dobivate upravljački program (driver) i pripadajući softver, koji:
- je loše dokumentiran ili
- se jako rijetko održava ili
- je pun grešaka,
- u slučaju katastrofe nema definirane korake (što i kako) ili su oni nejasni (a uglavnom i ne rade).
Kod rješenja ovog tipa zapravo ne postoji pravi hardverski RAID kontroler nego se većina ili gotovo sve funkcionalnosti RAID kontrolera odrađuju unutar upravljačkog programa (drivera) koji se pretvara da je RAID kontroler. On operacijskom sustavu prijavljuje RAID polje diskova o kojem se brine kao jedan fizički disk – slično kako bi to napravio i pravi RAID kontroler.
Na kraju sve je zapravo prepušteno navedenom softveru (driveru) i operacijskom sustavu, pa što bude. Nakon nekog vremena obično se dogodi situacija: “Nešto ne radi. A kako da vratimo svoje podatke…?”. E, pa lijepo sam vam rekao.
Na kraju priče s krivim odabirom tehnologije ili uređaja uvijek završite sa slanjem diskova u neku od tvrtki specijaliziranih za povrat podataka. Ova zabava će vas obično koštati znatno više nego da ste odmah kupili možda i najskuplje komponente koje postoje na (našem) tržištu.
Povrat odnosno spašavanje podataka se često naplaćuje po GB, pa cifre vrlo brzo mogu narasti na desetke tisuća KN.
Rješenje drugo: Logical Volume Manager
Zaboravimo na “integrirane RAID” kontrolere. Prihvatljivija opcija je upotreba tzv. “Logical Volume Managera” unutar operacijskog sustava (govorimo o Linuxu). U Linuxu se radi o Logical Volume Manageru verzije 2 (LVM2). Za više detalja o LVM2 pogledajte poglavlje LVM2. I ovdje se radi o softverskom RAID-u odnosno njegovoj funkcionalnosti. Ipak, ovo je puno sigurnije i stabilnije rješenje od onoga koje dobivamo s upotrebom “Integriranih RAID kontrolera” na matičnim pločama za stolna računala (tj. neserverskim matičnim pločama). Ovo je dokazano rješenje koje koristi velika zajednica ljudi, a koje se razvija s otvorenim kodom čime se svaka novootkrivena greška vrlo brzo popravlja. Uz to, dokumentacija je vrlo detaljna te postoje dobro definirane procedure u slučaju havarije (što i kako napraviti u pojedinom slučaju).
Zbog čega je ipak bolji hardverski RAID kontroler i pripadajuće RAID polje?
Upravo stoga što će vam na budućem NAS ili SAN sustavu biti pohranjeni važni podaci. Stoga ne želite da se sve snima na samo jedan tvrdi disk već na više njih i to u RAID polju koje vam osigurava najbolji odnos:
- sigurnosti podataka (koliko kopija podataka želite – na dva, tri ili više tvrdih diskova istovremeno),
- brzine rada,
- brze zamjene neispravnog diska i povratka u normalan rad,
- lakoće proširenja kapaciteta RAID polja.
Dodatno, želite RAID kontroler jer nije pametno prepustiti nekom traljavom programčiću (mislim na “Integrirana RAID rješenja”) da vam odrađuje ovako važne zadatke pohranjivanja vama osjetljivih i za život tvrtke važnih podataka. Istodobno, želite iskoristiti hardversku snagu pravog RAID kontrolera koji ne opterećuje sustav (CPU/RAM) pošto ima svoj specijalizirani CPU i pripadajuću RAM memoriju. Dakle, želite ozbiljan zadatak oko RAID-a prepustiti tvrtki koja RAID kontrolere proizvodi profesionalno, kao i njihov pripadajući firmware/softver. Neka najbolji proizvođač specijaliziranog hardvera i softvera zaradi na onome što radi najbolje.
Odabir RAID polja
Kao što je i odabir dobrog RAID kontrolera važan, važno je i pravilno odabrati RAID polje, ovisno o vašem budžetu i potrebama. Sada ponovno bacite pogled na RAID polja u već navedenoj knjizi, u poglavlju: “Koja su najčešća RAID polja u upotrebi i koje su im prednosti i mane“. Ovdje donosimo samo nekoliko često korištenih RAID polja):
Na kraju, zbog čega tolika priča o diskovima, RAID kontrolerima i RAID poljima?
Kada smo kreirali neko RAID polje (na RAID kontroleru, po mogućnosti) sljedeće na redu je upotreba tog RAID polja odabirom nekog mrežnog protokola za NAS (NFS, SNB/CIFS, AFP ili dr.) ili SAN, preko kojeg dijelite podatke preko mreže (vrlo jednostavno 😀 ).
A što je SAN sustav?
SAN (Storage Area Network) sustavi s druge strane ne nude mrežno dijeljenje datoteka, već nam osiguravaju mrežni pristup tzv. “Block-based” mediju. To u praksi znači da SAN sustavi preko mreže praktično dijele svoje diskove ili polja diskova vidljiva klijentskoj (drugoj) strani kao “običan tvrdi disk”. Nadalje, takav disk se sastoji od blokova podataka kao i bilo koji lokalni ATA, SATA, SAS ili neki drugi disk. Za više detalja o diskovima pogledajte knjigu “Uvod u Linux”, poglavlje o diskovima.
Za ovakvo mrežno dijeljenje praktično “sirove” površine diska, potrebi su mrežni protokoli koji nam osiguravaju ovakav pristup. Neki od SAN protokola su:
- Fibre Channel,
- iSCSI,
- ATA over Ethernet (AoE),
- HyperSCSI.
Nakon što se klijent preko nekog od gore navedenih SAN protokola spoji (na površinu diska), takav disk se mora prvo particionirati i formatirati kao da se radi o lokalnom disku odnosno disku spojenom na vaše lokalno računalo.
Zbog čega uopće koristiti NAS ili SAN sustave?
Zašto bi uopće koristili ovakve sustave?
- Zbog potrebe za izradom sigurnosnih kopija vaših podataka (backup), na centralni mrežni uređaj (obično NAS):
- koji bi morao (i obično je) biti znatno sigurniji jer u pravilo snima podatke na više diskova istovremeno (obično koristi neko RAID polje),
- i ima sve ostale komponente kvalitetnije i pouzdanije od “običnog” računala.
- Zbog centraliziranog pohranjivanja i upotrebe. Dakle želimo centralizirano mjesto za pohranu:
- Svih podataka (datoteka) s kojima radimo,
- Virtualnih računala, što je preduvjet za bilo koji rad u klasteru u slučaju potrebe za redundancijom (otpornosti na kvar pojedinog poslužitelja ili njegovog održavanja odnosno nadogradnje).
- Zbog pohranjivanja sigurnosnih kopija virtualnih računala i drugih podataka (pr. dokumenti, slike, …) i to dnevno, tjedno, mjesečno, polugodišnje ili godišnje.
NAS i SAN sustavi, osim čiste pohrane podataka, imaju (i moraju imati) i cijeli niz drugih naprednih mogućnosti koje su vrlo važne za ovu namjenu odnosno upotrebu.
Koje opcije bi najminimalnije morali imati NAS/SAN sustavi?
Praćenje:
- Performansi sustava,
- RAID kontrolera i svih njegovih polja,
- Svakog pojedinog diska (performanse ali i što je još važnije grešaka u radu),
- Servisa/daemona,
- Mreže i mrežnih komponenti.
Napredne opcije:
- Firewall,
- Naprednu konfiguraciju mreže:
- VLAN-ovi,
- Agregacija/Bonding – i to nekoliko mogućnosti i protokola,
- Mogućnost replikacije podataka na sekundarni NAS/SAN sustav,
- Izradu “snapshota” – u zadanim vremenskim okvirima i ručno a koja je po mogućnosti vidljiva i direktno u operacijskom sustavu klijenata (npr. kao Windows “Previous Versions”),
- Optimizacija svake važnije komponente sustava,
- Prava pristupa: kreiranje korisničkih grupa kao i pojedinačnih korisnika, uz mogućnost integracije s Active Directory ili LDAP servisima.
Sve ove “napredne” opcije i parametri vrlo su važni u realnim radnim uvjetima. Naime, svaka mreža i IT sustav su specifični i imaju specifične potrebe. Većina IT sustava je otvorena i za mnoge optimizacije (jer ih obično nitko i nije optimizirao, barem ne na profesionalan način). Mnogi će se zapitati da li je ovo stvarno potrebno. U praksi (s kojom sam se sam susreo) reći ću: DA.
Kreće se od optimizacije:
- Operacijskog sustava,
- Do mrežne razine (uz pretpostavku da imate pravu mrežnu opremu) koja je preduvjet za bilo kakav imalo ozbiljniji IT sustav. Ovdje se radi o mrežnim parametrima,
- Preko optimizacije mrežnih protokola i protokola za NAS ili SAN sustav,
- Do optimizacija na razini ispod NAS ili SAN sustava (prema RAID razini).
Pogledajte i logičku shemu NAS i/ili SAN sustava na slici:
Zaokružujemo dosad naučeno
Krenimo od RAID kontrolera
- RAID kontroler ima svoj centralni procesor i specijalizirani procesor (obično su obije funkcionalnosti integrirane u jednom chipu). Specijalizirani (dio) procesora se zove RAID ASIC i on je zadužen za RAID polja.
- RAID kontroler ima i svoju ROM i RAM memoriju kao i disk kontroler na koji se zapravo spajaju diskovi.
- RAID kontroler ima svoj “minijaturni” operacijski sustav, niže razine a koji je inicijalno pohranjen u ROM memoriji i iz koje se učitava. Unutar tog “minijaturnog” operacijskog sustava se nalaze metode za pristup svim diskovima spojenim na njega kao i sve potrebno za kreiranje RAID polja unutar kojega će diskovi raditi.
Diskovi i njihova veza s RAID kontrolerom, te veza s Linuxom (operacijskim sustavom)
- Promatrajmo diskove koji su u konačnici spojeni na RAID kontroler kao na jednu komponentu koja komunicira s ostatkom računala odnosno operacijskim sustavom i to preko upravljačkog programa (driver) za taj RAID kontroler.
- Operacijski sustav preko upravljačkog programa za RAID kontroler vidi samo polja diskova koja su kreirana od strane RAID kontrolera,i to kao jedan jedini disk. Ako smo – kao na slici – kreirali RAID 10 polje unutar kojega se nalaze četiri (4) tvrda diska, operacijski sustav (u ovom primjeru je to Linux), vidjeti će jedan jedini tvrdi disk, koji je zapravo cijelo RAID 10 polje diskova. Taj “logički” disk se s točke operacijskog sustava sastoji od svih dijelova od kojih se sastoji bilo koji “normalan” tvrdi disk (trake, cilindri, klasteri i sektori).
- Nadalje, taj “logički” disk je potrebno particionirati te kasnije formatirati s nekim datotečnim sustavom.
- Svi programi dalje koriste taj datotečni sustav za pohranjivanje datoteka, što je i slučaj s programima za dijeljenje datoteka preko mreže (NAS) : NFS, SMB/CIFS, AFP, …
- Što se tiče sustava koji pristupaju podacima na razini blokova (SAN sustavi), oni disku pristupaju na razini blokova podataka tj. ispod razine datotečnog sustava.
U čemu je problem sa standardnim NAS ili SAN sustavima?
Što kada se pokvari ovakav NAS ili SAN sustav odnosno poslužitelj? Ukoliko niste imali još jedan sustav na koji ste izrađivali sigurnosne kopije – ostajete bez svih podataka. Gubitak svi podataka važnih za poslovanje vaše tvrtke – koliko vam je to uistinu važno???
Autor: Hrvoje Horvat
Članak preuzet, uređen i objavljen uz izričito dopuštenje autora.
Izvor: Open Source Osijek
Članak je dostupan u kratkoj knjižici koju je objavio sam autor prema GNU GPL v3.0 licenci. Svi imaju pravo koristiti, mijenjati, kopirati i štampati (printati) knjigu. Knjiga je dostupna u HTML (DokuWiki) i PDF formatu.