U neko davno doba, dok su dinosauri još hodali zemljom, unutar
nekog ureda ili odjeljena korisnici su dijelili podatke direktno preko svojih
radnih stanica. Kako su zahtjevi i broj korisnika rasli, postalo je sve teže
i teže održati sigurnost i integritet podataka. Tada su u igru ušli "file
serveri" (podatkovni poslužitelji). Kako su zahtijevi svejedno još uvijek
eksponencijalno rasli, skalabilnost i preformanse su postale usko grlo a PC
operativni sustav nosio je previše overheada te postojeći hardver nije
mogao pratiti zahtijeve za dostupnošću, skalabilnošću, pouzdanošću i performansama.
NAS (još poznat kao i "appliance" ili "filer") kao koncept
osmišljen je da dostigne te zahtijeve, te se tipično (iako ne ekskluzivno) sastoji
od hardvera visokih performansi i skalabilnosti te specijaliziranih operativnih
sustava i protokola dizajniranih baš za posluživanje podataka.

U početku, jasno, NAS uređaji su bili vrlo napredni i skupi. No
kako je vrijeme odmicalo, NAS koncept se pomaknuo i u small-medium business
te postao više nego običan "storage pool". Inteligentnim softverskim
rjšenjima, jednostavnom managementu i mogućnošću zaštite podataka NAS
je postao vrijedna komponenta svakog IT sustava koji drži do sebe. Konceptualno,
NAS je dijeljeni storage na mrežnoj infrastrukturi sa jedinstvenom adresnom
shemom. NAS server je storage uređaj koji se sastoji od file servera
visokih performansi spojenih na LAN. To je uređaj jedinstvene namjene, dediciran
gateway do podataka.

Postavlja se logično pitanje koje se provlači od početka teksta
– u čemu je razlike file servera i NAS-a? Za razliku od servera
opće namjene, *nix ili NT, NAS je uređaj optimiziran za dijeljenje podataka
u pogledu pohrane, povratka i posluživanja istih. Originalno, na stranu inteligentna
riješenja (i to ne samo iz Švedske, op.a.), NAS pruža real-time OS dediciran
posluživanju datoteka, open standard protokole i ugrađen nativnu clustering
podršku za visoku dostupnost.

Slojno, NAS je koncipiran u 4 dijela – mrežno sučelje (jedna ili
više mrežnih kartica, GEthernet, ATM, FDDI ili nešto u tom stilu), Network File
Systems (NFS) i Common Internet File Systems (CIFS) protokola, proprietery NT
ili *nix operativnog sustava (DART – Data Access in Real Time (EMC), Data ONTAP
(Network Appliance) i slično) te dakako, krajnje komponente a to je neki od
industrijskih standarada za spajanje DASD uređaja, kao npr (S)ATA, SCSI ili
Fibre Channel.

Iz očitih razloga nećemo potrošiti više od nekoliko rečenica na
prvi dio, tj. mrežna sučelja, jer će korisnici uglavnom, barem za tip NAS-ova
koje (će) se testiraju (testirati), koristiti neku od Ethernet iteracija u nekoj
od brzinskih izvedenica.

S druge strane, za file service protokole ipak će se izdvojiti
nešto više; većina NAS uređaja podržava više protokola, i to uglavnom dva najbitnija
– Network File Systems (NFS), razvijen od Suna i blisko povezani *nix tipu operativnih
sustava, te Common Internet File Systems (CIFS), razvijen od Microsofta i jasno,
vezan za Windows bazirane operativne sustave. Možda je najbitnije za početak
razlučiti da ovi protokoli rade direktno sa datotekama, a ne blokovski. Drugim
rječima, klijent nije svjestan interne organizacije NAS-a (fizički volume ili
ostale karakteristike diska/polja, LBA ili bilo čega sličnog). NAS, kao uređaj,
zadužen je za te stvari i time ne opterećuje klijenta.

NFS je klijent/server protokol koji omogućuje korisnicima pohranjivanje
i uzimanje datoteka sa udaljenih računala pomoću Remote Procedure Calls (RPC)
tehnologije. Od korisnika se zahtijeva NFS klijent, kako bi se mogao spojiti
na NFS server, te TCP/IP na klijentu i na serveru. NFS također nudi mogućnost
uređivanja dozvola za svaki NFS mount.

CIFS je klijent/server protokol, koji ima istu zadaću kao i NFS.
CIFS je otvorena verzija Microsoftovog Server Message Block (SMB) protokola,
koji također koristi TCP/IP. Generalno, ukratko i ugrubo, manje više sve navedeno
za NFS vrijedi i za CIFS.

Iako je NAS tema o kojo bi se moglo plandovat do Đurđevdana, najbitnije
je ukratko rečeno. Postavlja se slijedeće pitanje – treba li to meni ili mojoj
tvrtci? Ako u predhodnih nekoliko redaka hvalospjeva o NAS-u, tj. njegovim pogodonostima,
pronađete i sebe u više točaka (princip je isti kao kad krišom uzmete curin/ženin
Cosmo i onda u njemu riješavate testove, da, da… op.a.), NAS bi mogao biti
rješenje za vas. Poslje svega, nešto kasnije (ili odmah, ako preskočite direktno
na testove), moći ćete čak vidjeti kako se ponašaju različiti džepu dostupni
modeli na hrvatskom tržištu.

Slijedeća tema koja će nas zasigurno najviše zanimati prije početka
čitave priče sa uređajima "per se" jest dio o sigurnosti i dostupnosti.
Iako se u nekim stvarima pri generalnom opisu zalazilu u enterprise vode, valja
imati na umu da su dvije stvari dostupne kod low-end NAS uređaja – channel bonding
i RAID.

"Paucis verbis", channel bonding je "modus operandi"
za kombiniranje neka dva ili više mrežnih sučelja zbog redundancije ili povećavanja
propusnosti. U konkretnom slučaju Etherneta, osim podrške NAS uređaja za bilo
koji tip uparivanja sučelja, potrebna je specijalna podrška ostatka mrežne infrastrukture
(switcheva, za početak), te se takvo što generalno može pronaći na
skupljim uređajima renomiranih proizvođača.

S druge strane, RAID (Redundant Array of Inexpensive/Independant
Disks, ovisno volite li više akademski ili marketinški način izražavanja) je
kud i kamo zanimljiviji s aspekta sigurnosti i dostupnosti. Općenio, poljem
diskova smatramo svako "neinteligentno" sparivanje diskova. Dodamo
li te diskove na RAID kontroler, dobiti ćemo RAID polje. Čemu to? Pa DASD uređaji
su redom mehanički (čast SSD izuzetcima koji također imaju svojih mana drugog
tipa) te su stoga podložni kvarovima. Kvarovi ne samo da znače prestanak rada
sustava, nego u slučaju kvarova na uređajima za pohranu podataka, znače neminovan
gubitak istih.

Digresija na tu temu je čuveni MTBF. Podatak koji temeljem proizvođačevih
ispitivanja određuje koliko će uređaj funkcionirati prije kvara. Današnji prosječni
tvrdi disk u SATA izvedbi garantira gotovo vrtoglavih 1*10^6 sati MTBF-a! To
je preko stotinu godina. Obzirom da su kvarovi uređaja vjerojatnosno opisani
eksponencijalnim zakonom distribucije, vjerojatnost da naš tvrdiša sa milijun
sati MTBF-a poživi godinu dana definira se na slijedeći način:

P = e^((24 sata * 365 dana) / 1*10^6 sati MTBF) = 0.9913

Drugim riječima, sa sigurnošću od 99.13% ("nota bene",
to je praktički neizbježan događaj) vaš će tvrdi disk doživjeti prvu. Nekako
je intuitivno jasno svakome tko je imao bilo kakvih doticaja s računalima kako
ova matematička konstatacija nije baš točna, pa unatoč tome što proizvođači
tvrde svejedno nam treba osigurač za podatke.

Stoga, vratimo se na RAID. On pruža tri bitna faktora – veću dostupnost
podataka, poboljšane IO performanse i mogućnost managementa. Iako je RAID "de
facto" iz akademske lamentacije prerastao u industrijski standard, ne postoje
standardi "per se" koji bi u nekom tehnološkom okviru preuzeli potrebne
faktore za definiranje toga što to točno RAID (ni)je.

Iz tog razloga, umjesto standardne podjele po RAID poljima, ukratko
će se objasniti kako to funkcioniraju tehnike distribucije u RAID-u.

Strips and Stripes

RAID polje napravljeno je od diskova. Unutar svakog diska nalaze
se usko posloženi adresni blokovi, tzv. "strips". Set uređenih stripsa
preko svih diskova unutar RAID polja zove se "stripe". Strip size
(još se može pronaći i kao termin "strip depth") opisuje broj blokova
u stripu te predstavlja maksimalnu količinu podataka koja će biti pročitana
ili zapisana s pojedinačnog diska prije nego se pristupi slijedećem u polju.
Striping poboljšava performanse distribuirajući podatke preko diskova u polju.
Takvo što omogućuje simultano višestruko čitanje i pisanje podataka.

Mirroring

Ključan element RAID-a, što je razvidno i iz akronima, je poboljšana
zalihost. Mirroring tehnologija koristi više diskova kako bi pohranila identične
kopije podataka. Sustav se koristi za maksimalnu sigurnost podataka, no osnovni
problem mu je degradacija performansi pisanja obzirom da se moraju zapisati
dva ili više puta (ovisno o broju diskova).

Parity

Paritet je redundantna provjera koja osigurava podatke iako ne
postoji pristup čitavom setu dupliciranih diskova. Ako jedan disk otkaže, postoji
dovoljno redundantnih podataka tako da se oni podatci koji su bili na redundantnom
disku mogu biti vraćeni. Tehnički, paritetne informacije mogu biti pohranjene
na posebnom dediciranom disku ili distribuirani preko čitavog polja.

Ilustrativni primjer rada pariteta možemo predočiti ovako:

Kombinirajući tri osnovne tehnike rada, proizvođači definiraju
tzv. RAID polja. Neka od poznatijih su:

  • RAID 0 – stripping bez redundancije
  • RAID 1 – mirroring
  • RAID 3 – byte level striping tehnika sa paritetom, zapisanim
    na poseban disk, koji predstavlja i najsporiju kariku jer se s njega podatci
    čitaju svaki put pri citanju s polja. Osim toga, podložan je kvarovima zbog
    konstantnog opterećenja. Unatoč tome što je uglavnom izbačen iz primjene, RAID3 je brži od RAID5 u sekvencijalnom čitanju te se koristi u za to prigodne primjene.
  • RAID 4 – gotovo indentičan RAID-u 5 samo koristi blokove
    podataka (clustere) za prijenos podataka, a ne bajtove.
  • RAID 5– striping
    tehnologija, zapisuje dijelove datoteka veličine bloka, s distribuiranim paritetom,
    odn. paritet se zapisuje na više diskova zbog boljih performansa sustava.
    Zamjenjuje RAID 3/4.

Također postoje neke "nestandardne" (nestandardne u
pogledu frekvencije korištenja) kombinacije RAID polja, kao i RAID polja specifična
za proizvođača.