Text Size

Linux za sve

Syndicate content
Regionalna web publikacija posvećena Linuxu i otvorenim sustavima.
Updated: 4 hours 7 min ago

openSUSE Leap 42.2 – Nastavak Enterprisea

16. November 2016 - 13:37

Kako je i najavljeno, izašla je nova openSUSE verzija – Leap 42.2. Leap je community-enterprise Linux distribucija koja dijeli bazu sa SUSE Linux Enterprise (SLE) i paketima SLE 12 Service Pack (SP) 2.

Verzija 42.2 još je jedna u nizu stabilnih izdanja, ništa revolucionarno i spektakularno, ali to ne znači da su promjene koje donosi beznačajne. Ipak, postavlja se pitanje je li Leap zaista bolji od svojih prethodnika (Harlequin, Bottle, Dartmouth…)?

openSUSE mnogi znaju kao distribuciju koja ili radi ili ne radi na nekom hardveru. Upravo zbog ove činjenice često možete naići na rasprave ili kritike na račun ove distre od strane nezadovoljnih korisnika. No uvijek postoji i druga strana medalje. Mnogi korisnici zadovoljni su Leapom, a openSUSE zajednica održava velik broj paketa od kojih samo stabilni i provjereni ulaze u službene repositorije.

openSUSE Leap 42.2 – Desktop

Od novosti u Leapu 42.2 izdvajamo:

  • KDE Plasma 5.8.2 (LTS), KDE Applications 16.08.2, Frameworks 5.26.0;
  • GNOME 3.20, Gtk 3.20.9;
  • Kernel 4.4.27;
  • LibreOffice 5.1.5.2;
  • Freetype2 2.6.3;
  • Systemd 228;
  • Firefox 49.0.2.

Zadano desktop okruženje je, kao što svi znamo, KDE s novom verzijom Plasme. Djeluje stabilno, ispolirano i bez problema se može pokrenuti i na starijem hardveru. Snapper u kombinaciji s datotečnim sustavom Btrfs je unaprijeđen, pa će sada snimke zauzimati mnogo manje prostora s mogućnošću ručnog podešavanja.

 

Kako je Leap unio promjenu u ciklus openSUSE izdanja, pojavila su se brojna nagađanja oko izlaska novih verzija i podrške za njih. Izdanja će nastaviti s dosadašnjom praksom – jednom godišnje, dok će podrška će trajati 18 mjeseci. Nakon isteka podrške imat ćemo mogućnost nadogradnje sa npr. 42.1 na 42.2. Čisto za usporedbu, s prijašnjim verzijama bismo “preskočili” 2 izdanja (svakih 9 mjeseci) + 2 mjeseca. Izračunajte.

Live CD neće biti službeno podržan od strane Leap razvijatelja, a razlozi su isti kao i prošle godine – Live CD ograničava mogućnosti distre, posebno YaSTa. Zbog toga imamo izbor: DVD od 4.7 GB ili Network ISO od 95 MB. Naravno, najsigurnija opcija je DVD, a možete ga preuzeti na službenoj stranici.

Za kraj bih napomenuo da je Leap dostupan samo u 64-bitnoj verziji.

Što još reći nego – zabavite se isprobavajući Leap 42.2!

Switching i routing: jučer, danas, sutra (treći dio)

12. October 2016 - 9:00
U nizu članka autor Hrvoje Horvat upoznat će nas s osnovama i načinom rada switcheva (preklopnika) i routera (usmjernika), te će podijeliti brojne korisne savjete iz praktičnog iskustva. U završnom dijelu autor objašnjava kako prevladati hardverska ograničenja, te implementirati otvoreni kod.

 

 

ASIC (Application Specific Integrated Circuit)

ASIC chipovi su specijalizirani chipovi koji imaju hardverski implementirane sve potrebne funkcionalnosti koje bi inače morao obrađivati CPU. U praksi se pokazalo da se upotrebom ASIC chipova u odnosu na klasični CPU dobivaju poboljšanja performansi minimalno 500, a vrlo često čak i do 1000 puta. Možemo povući paralelu s hardverskim dekodiranjem video sadržaja koji danas s lakoćom obavlja bilo koja grafička kartica dok je prije nekoliko godina to sve (trzavo) morao odrađivati CPU. Dakle, ASIC chipovi rade kompletan switching ili routing:

  • na osnovi MAC adresa (Layer 2),
  • na osnovi IP adresa (Layer 3),
  • na osnovi portova (Layer 4),
  • Traffic forwarding (obrada i prosljeđivanje paketa),
  • QoS (Quality of Service),
  • ACL lookup  (Access liste),
  • Route Processing (obrada routing funkcionalnosti),
  • STP (Spanning Tree Protocol), …

 

Osim toga, jače verzije ASIC chipova imaju implementirane gotovo sve mrežne protokole koje susrećemo u switchevima, kao i većinu mrežnih protokola koje susrećemo u klasičnim routerima. U slučaju upotrebe kod multilayer switcheva radi se o implementiranim gotovo svim protokolima koje uređaj podržava.

Pogledajmo fotografiju Cisco 3750G switcha (24 x 1Gbps + 4 x 1Gbps SFP):

 

Na slici gore je Cisco 3750G (switch sa 24 x 1Gbps + 4 x 1Gbps SFP) – vidljivo je da jedan ASIC+SRAM odrađuje samo 4 x 1Gbps te je na njega spojen jedan PHY koji je zadužen za ta četiri 1Gbps porta, koja završavaju na RJ-45 konektoru – pogledajte desnu stranu – i sve tako do 6-tog ASIC, SRAM i PHY.

Sedmi ASIC+SRAM nema svoj PHY (krajnje lijeva strana) jer sve završava na SFP portovima u koje se uključuju SFP moduli koji imaju svoj PHY (jer mogu biti optički ili električni sa RJ-45 konektorom). SFP moduli se često nazivaju i transceiveri.

Slika ispod prikazuje optički SFP+modul (sa LC optičkim konektorom) tvtke “HP” (J9150A) i jedan SFP+ (isto optički 10Gbps, sa LC konektorom), tvrtke Cisco (SFP-10G-SR):

 

 

 

Donja slika prikazuje Cisco 1000Base-T (1Gbps sa RJ-45):

 

 

Malo zanimljivosti

Molim da malo bolje pogledate gornji desni dio gornje slike Cisco switcha Catalyst 3750 (zumirana slika – dolje):

 

Radi se o tome da Cisco za svaku generaciju uređaja ima kodno ime. Budući da je ovo bio prvi model koji je koristio “Stackwise” tehnologiju koja omogućava povezivanje do osam switcheva u prsten – prsten koji ih povezuje – kodno ime mu je bilo “Lord of the Rings”.

… One Ring to rule them all, One Ring to find them,
One Ring to bring them all …

 

A sada pogledajmo i referentnu arhitekturu jedne novije generacije Cisco 3750G Multilayer switcha:

 

Vidljivo je da ASIC ima CAM i TCAM dio kao i vrlo brzu SRAM memoriju za širu upotrebu unutar chipa, te da je povezan sa switching chipom. Jedan ovakav ASIC podržava spajanje do 24x1Gbps PHY (Physical Layer) chipova koji su zaduženi za sam mrežni medij (interface).

PHY mogu biti za bakar (RJ-45 konektor), optiku (bilo koji tip konektora za optiku) ili SFP port u koji se uključuje SFP adapter koji može biti ili za “bakar” ili optika. Dakle, PHY chip je u konačnici taj koji sve pretvara u električne signale ili optičke impulse za slanje na mrežu.

CAM dio (Content Addressable Memory)  je zapravo tablica u kojoj se zapisuju i pretražuju mapiranja MAC adresa –> port na switchu, na osnovu koje se radi switching na OSI sloju 2.

TCAM dio (Ternary Content Addressable Memory) je zapravo tablica sa mapiranjima na višim OSI slojevima (OSI 3) dakle ovdje se spremaju routing tablice i sl.

CAM i TCAM se nalaze u posebnoj superbrzoj memoriji ASIC chipa ili u starijoj generaciji kao zaseban chip, koja omogućava nevjerojatno brzi pristup i pretraživanje navedenih tablica.

Vidljivo je da starija generacija Cisco 3750G ima ASIC i ASIC RAM (CAM i vjerojatno TCAM) uz pripadajući PHY i switching chip  – samo za 4 x 1Gbps, dok novija generacija koristi mnogo snažnije ASIC chipove koji su u stanju “odraditi” do 24 x 1Gbps na chipu (nažalost nemam fotku nove generacije Cisco 3750, ali je sve jasno iz priložene logičke sheme). Jedina slaba točka ovog dizajna je međuveza između ASIC chipova odnosno propusnost sabirnice koja ih povezuje.

Nagađa se da Cisco i (drugi) veliki igraći zapravo koriste “Mesh” topologiju između ASIC chipova, preko koje su ASIC chipovi povezani sabirnicom velike propusnosti. Time se ubrzala komunikacija između njih i komunikacija prema centralnoj sabirnici. Mana ovog dizajna je u tome što se sada za recimo ovakav switch u primjeru koristi 10 portni (zamišljeni) ASIC koji koristi 6 portova za međusobno spajanje a samo 4 porta za spajanje prema PHY i na kraju fizičkim interfaceima (portovima). U konačnici, u dizajnu na slici imamo 4 ASIC chipa sa 10 x 1Gbps portova (svaki) što je ukupno 40 x 1Gbps od kojih je upotrebljivo za spajanje (na vanjske portove) samo 16 x 1Gbps. Prema svemu sudeći međuveze između svakog ASIC-a bi u ovoj konfiguraciji trebale biti još veće (u ovom slučaju  dvostruko ili još više).

Za ono što bi bio “Non blocking” dizajn minimalno isto toliko portova koliko ih svaki ASIC propušta van (na mrežne portove) bi morala biti i veza prema svakom susjednom ASIC-u. Pogledajmo i ovakav dizajn (slika dolje):

 

 

U svakom slučaju, bilo koji dizajn koji uključuje ASIC chipove omogućava postizanje vrlo velikih brzina procesiranja mrežnih paketa i to brzinama koje su neizvedive za standardne centralne procesore (CPU).

Dakle, switchevi koji imaju implementirane ASIC chipove, sve operacije i protokole (koje ASIC podržava) odrađuju 1000 puta brže od bilo kojeg CPU-a. U praksi to znači da će sve operacije koje ASIC obradi – poput switchinga ili routinga biti obrađene unutar granica nekoliko mikrosekundi za razliku od routinga koji se inače na “običnim uređajima” u najboljem slučaju uspije obraditi unutar nekoliko milisekundi – dakle točno tisuću (1000) puta sporije.

Ponoviti ću: razlika je tisuću puta brža obrada paketa!!!!

 

Pogledajmo i što nam kaže Cisco IOS (Cisco operacijski sustav), na nekoliko Catalyst serija switcheva. Sada ćemo ono što možda izgleda kao teorija pogledati na stvarnim Cisco switchevima i to na:

  • Catalyst 2960 [Layer 2, 10/100] (“najslabija” serija),
  • Catalyst 3560G [Multilayer, 10/100/1000] (Layer 2, 3, 4) – prvi Multilayer switch,
  • Catalyst 3750G [Multilayer, 10/100/1000] (Layer 2, 3, 4) – sličan kao 3560 samo što ima mogućnost “stackiranja” do 8 switcheva preko specijalne međuveze vrlo visoke brzine (32+Gbps),
  • Catalyst 3850 [Multilayer 10G] (Layer 2, 3, 4) – s novim Cisco ASIC-om.

Koristiti ćemo naredbu koja će prikazati vezu između ASIC chipa i interfacea na switchu odnosno koji interface je spojen na koji ASIC chip.

Naredba (ovisno o platformi) je:

sh platform pm interface-numbers

sh platform pm if-numbers

Izlistanje je malo duže tako da ću izvući samo važne detalje:

WS-C2960-24TC-L

Fa 0/1 – 24     ASIC 0     (portovi 10/100 Mbps)
1

Fa 0/1 – 24     ASIC 0     (portovi 10/100 Mbps)

Gi 0/1 – 2     ASIC 0    (portovi 10/100/1000 Mbps)
1

Gi 0/1 – 2      ASIC  0    (portovi 10/100/1000 Mbps)

 

WS-C3560G-24TS

Gi 0/1 – 4     ASIC 1
1

Gi 0/1 – 4      ASIC 1

Gi 0/5 – 8      ASIC 0
1

Gi 0/5 – 8      ASIC 0

Gi 0/9 – 12    ASIC 3
1

Gi 0/9 – 12     ASIC 3

Gi 0/13 – 16     ASIC 2
1

Gi 0/13 – 16     ASIC 2

Gi 0/17 – 20     ASIC 6
1

Gi 0/17 – 20     ASIC 6

Gi 0/21 – 24     ASIC 5
1

Gi 0/21 – 24     ASIC 5

Gi 0/25 – 28     ASIC 4
1

Gi 0/25 – 28     ASIC 4

 

WS-C3750G-48TS

Gi1/0/1 – 4          ASIC 6
1

Gi1/0/1 – 4          ASIC 6

Gi1/0/5 – 8          ASIC 5
1

Gi1/0/5 – 8          ASIC 5

Gi1/0/9 – 12         ASIC 8
1

Gi1/0/9 – 12         ASIC 8

Gi1/0/13 – 16        ASIC 7
1

Gi1/0/13 – 16        ASIC 7

Gi1/0/17 – 20        ASIC 4
1

Gi1/0/17 – 20        ASIC 4

Gi1/0/21 – 24        ASIC 3
1

Gi1/0/21 – 24        ASIC 3

Gi1/0/25 – 28        ASIC 10
1

Gi1/0/25 – 28        ASIC 10

Gi1/0/29 – 32        ASIC 9
1

Gi1/0/29 – 32        ASIC 9

Gi1/0/33 – 36        ASIC 2
1

Gi1/0/33 – 36        ASIC 2

Gi1/0/37 – 40        ASIC 1
1

Gi1/0/37 – 40        ASIC 1

Gi1/0/41 – 44        ASIC 12
1

Gi1/0/41 – 44        ASIC 12

Gi1/0/45 – 48        ASIC 11
1

Gi1/0/45 – 48        ASIC 11

Gi1/0/49 – 52 (SFP portovi)        ASIC 0
1

Gi1/0/49 – 52 (SFP portovi)        ASIC 0

 

WS-C3850-12S-S  (ovdje je bilo malo teže povezati ASIC -> port)

(10Gbps portovi)         ASIC

Te1/0/1  –  12        1
1

Te1/0/1  –  12                1

 

 

Rezimirajmo

Što se događa na kojem sloju i kojom brzinom za switcheve koji koriste ASIC:

  • Layer 2 switch: sve se odrađuje na osnovi MAC adresa. Svi Layer 2 protokoli koji su podržani u ASIC-u odrađuju se  brzinom hardvera (tzv. “Wire Speed”) – dakle 1000 puta brže nego na “običnim” switchevima.
  • Layer 3 switch: sve operacije preklapanja tj., ovdje govorimo o routingu (usmjeravanju) se odrađuju na osnovi IP adresa. Sve se odrađuje brzinom hardvera, kao i svi mrežni protokoli koji su podržani od strane ASIC-a.
    • Layer 4: dodaje se mogućnost rada na transportnom sloju (TCP/UDP portovi) – možemo reći da je ovaj sloj “Application aware” – svjestan aplikacija.

 

 

Stvarna mjerenja

Zbog potrebe da se uvede red u stvarne pokazatelje odnosno stvarnu propusnost switcheva, postoji nekoliko pokazatelja na koje treba obratiti pažnju.

 

Za početak što je Gbps i Mpps?

Oznaka Gbps (gigabita u sekundi) označava ukupnu propusnost switcha koju dijele SVI portovi. Ovo je tzv. “Fabric” ili “Bus” brzina. Minimalna brzina koju uređaj mora imati je jednaka zbroju brzina svih interfacea uređaja.

Dakle, ako imamo switch sa 24 x 1Gbps, pošto uređaj na gigabitnoj brzini mora moći raditi u “Full Duplex” načinu rada to znači da 24 x 1Gbps mora moći podnijeti 24 x 2Gbps = 48Gbps. To znači da uređaj mora moći obrađivati pakete propusnošću od 48Gbps.

Napomena: mnogi proizvođači samo pozbrajaju i pomnože sve navedeno bez stvarnih mjerenja – da bi rezultati bili bolji.

Pogledajmo usporednu tablicu nekoliko modela i proizvođača switcheva za 24 x 1Gbps switcheve, kako za Layer 2 , tako i za Layer 2/3/4 switcheve (donja granica bi morala biti 48Gbps):

 

Oznaka Mpps (milijuna paketa u sekundi) označava broj paketa koji se mogu obraditi u jednoj sekundi, a ovise o veličini paketa. Većina ozbiljnih proizvođača navodi najmanje pakete (64 bajta), koji su i najzahtjevniji za obradu. Oni manje “ozbiljni” navode puno veće pakete da bi im rezultati izgledali drastično bolji.

Kada gledamo rezultate mjerenja, trebamo tražiti broj Mpps za 64-bajtne pakete! Za brzinu 1 Gbps uz 64-bajtne pakete znači da je potrebno 1.488 Mpps (1.488 milijuna paketa u sekundi).

Za 1Gbps brzinu kako smo došli do 1.488 Mpps?

  • 1Gbps = 1,000,000,000 bps
    • 8 bitova = 1 bajt, a mi moramo sve pretvoriti u Bps = 1,000,000,000 / 8 = 125,000,000 Bps

Zanimaju nas 64-bajtni paketi. Za Ethernet:

  • 8 bajta je “Frame Header”,
  • 12 bajta je standardni minimalni razmak između mrežnih paketa tj. okvira (Interframe Gap).

Dakle, za najmanji paket od 64 bajta uz njega ide i 8 bajta “Frame Header”, te slijedi 12 bajta razmak koji mora ići između svakog paketa na mreži (za 1Gbps – prema osnovnom standardu je to 12 bajta).

Tako dobivamo: 125,000,000 Bps / (64+8+12) = 1,488,095 pps (paketa u sekundi) = 1.488 Mpps (milijuna paketa u sekundi).

Prema tome, 24 portni gigabitni switch mora imati minimalnu propusnost: 24 x 1Gbps (1.488 Mpps) (duplex) = 36Mpps.

 

Pogledajmo sada karakteristike nekoliko switcheva i modela raznih proizvođača, dostupnih kod nas, koje sam uzeo u razmatranje.
Napomene: ovdje je donja granica “ozbiljnosti” odnosno “upotrebe” koja se očekuje od 24 x 1Gbps switcha minimalno 36Mpps. Sve preko toga je nepotrebno osim:

  • ako uređaj ima dodatnih SFP ili sličnih portova: svaki dodatni 1Gbps SFP dodaje potrebu za povećanjem propusnosti od  1.488 Mpps ili
  • ako se koristi i kao platforma za jače modele switcheva koji, primjerice, ima dvostruko veći broj portova ili dodatne SFP ili SFP+ portove.

 

 

Što to znači za switcheve iz ove kategorije koji nisu u stanju isporučiti minimalno 36Mpps? Switch koji je, primjerice, u mogućnosti isporučiti samo do 10Mpps punom brzinom može “opskrbiti” maksimalno do 7 x 1Gbps.

Dakle, ako imamo do maksimalno sedam (7) mrežnih uređaja (računala/poslužitelja i sl.) spojenih na switch sve će raditi dovoljno brzo, ali već spajanjem osmog (8) uređaja dolazi do usporavanja. Naime, platili smo switch sa 24 x 1Gbps a dobili smo sedam (7) portni switch s dodatnih 17 portova. Ovo nekada nije loše – ako je on cijenom vrlo prihvatljiv kao router i switch, na kojemu neće ukupno biti puno mrežnog prometa (u ovom slučaju ne više od ukupno 10Mpps) ali u većini primjena je to pristup/uređaj koji treba izbjegavati, što zbog buduće potrebe porasta brzine ili broja spojenih novih (dodatnih) uređaja.

Na kraju pogledajmo i cijene svih navedenih uređaja:

 

Svi odabrani uređaji su odabrani na osnovi dostupnosti (u našim trgovinama) i stanja koje sam često zatekao u upotrebi. Točan odabir proizvođača i modela ne želim komentirati u ovom članku. Konačna preporuka i odabir bi bili ovisni o svim parametrima koje sam do sada naveo te o praktičnom iskustvu za točno određenog proizvođača, za točno određenu seriju i model (po nekada i za točno određenu verziju firmwarea).

Ovo možda zvuči smiješno, ali doživio sam slučajeve u kojima određene novije verzije firmwarea ispravljaju stare greške i otvaraju nove koje nikako da se zatvore. Bilo je i slučajeva gdje proizvođači navode listu grešaka za koje znaju ali ih godinama (ili nikad) ne isprave. Do te je dokumentacije malo teže doći jer se baš ne reklamira. Bilo je i slučajeva u kojima ne radi određena kombinacija protokola ili postavki koja bi po svakoj logici morala raditi a i radi inače (ali baš na određenom modelu ne radi – što shvatite nakon pola dana surfanja i pretraživanja interneta). Postojali su i slučajevi u kojima sam proizvođač nudi kao rješenje da se u slučaju upotrebe protokola A, B i C zajedno u određenoj konfiguraciji ne koriste određeni portovi na switchu

 

 

Na granici 1Gbps i više (10/40/100 Gbps)

Prednost ali i mana ASIC (Application-specific integrated circuits) je u njihovom dizajnu. Implementira se hardverska podrška (zapravo hardverska akceleracija) za svaki pojedini mrežni protokol ili funkcionalnost. Ovo osnovno obilježje ASIC-a daje mu iznimnu brzinu, koja je nedostižna klasičnim procesorima (CPU), ali je i mana jer dodavanje novog mrežnog protokola ili nove funkcionalnosti znači potrebu da se projektira i proizvede posve novi ASIC chip. Ovo u praksi znaci potrebu za kupnjom novog uređaja.

Nove generacije ASIC-a su programabilne verzije ASIC chipova koje rješavaju ovaj problem. Odnosno oni su neovisni o mrežnom protokolu ili funkcionalnosti ali zadržavaju ekstremne brzine obrade mrežnih paketa. Pojam “Programabilni ASIC ” često možemo vidjeti pod nazivom “Software Defined Networking” (SDN) – ako govorimo o ASIC chipovima.

S obzirom na to da je važnost ASIC-a jasna, mnogi veliki proizvođači poput tvrtki “Cisco” i “Juniper” ulagali su i ulažu u razvoj svojih ASIC rješenja. U toku 2009. godine tvrtka “Juniper” obavila je da će u periodu od tri godine uložiti nekoliko stotina milijuna dolara u razvoj ASIC chipova nove generacije, a slično je i s tvrtkom “Cisco”.

Juniper je nakon toga 2013. godine izbacio na tržište prvi switch s njihovim novim programabilnim ASIC-om. Radi se o modelu EX9200 (nazivi su im  “I-Chip” i “Trio chipset”). Cisco je početkom iste godine također krenuo s upotrebom svog ASIC riješenja pod  nazivom UADP  “Unified Access Data Plane” koji je prvo ugrađen u Cisco Catalyst 3850 seriju 10Gbps switcheva.

Cisco 3850 koristi UADP ASIC koji podržava do 24 x 10Gbps portova. Dakle, modeli sa do 24 porta imaju jedan UADP ASIC dok modeli sa 48 portova imaju 2 UADP ASIC-a. Kasnije je izašla nova serija 3650 (10/100/1000 Mbps) koja također koristi UADP ASIC.

Zbog vrlo skupog razvoja svojih rješenja i “Cisco” i “Juniper” u određenim (“slabijim”) modelima uređaja koriste ASIC chipove specijaliziranih proizvođača ASIC-a poput tvrtki “Broadcom”, “Marwell” i “Fulcrum microsystems” (2011 ih je kupio Intel) a koje nude svoja ASIC rješenja i drugim proizvođačima mrežne opreme (poput tvrtki Brocade, HP, DELL i drugih).

Na zahtjevnijim platformama oba proizvođača (Cisco i Juniper) uz upotrebu “univerzalnih” ASIC-a poput gore navedenih, koriste i svoja rješenja ili ih kombiniraju sa svojima da bi dobili sve potrebne funkcionalnosti i brzinu u odnosu na konačnu cijenu proizvoda. Proizvođači poput tvrtki “Cisco” i “Juniper” na svojim najzahtjevnijim platformama najčešće koriste svoja rješenja koja prema njima nude najveće performanse (u ovoj kategoriji se baš i ne pita previše za cijenu).

S obzirom na činjenicu da tvrtka “Broadcom” drži 65% tržišta ASIC-a, pogledajmo i što oni nude. Osvrnimo se na proizvode koji pokrivaju gornji segment tržišta (10Gbps  i 40Gbps). Trenutno su najviše u upotrebi:

  • Trident [BCM56840] (pojavio se u 2010. godine; podržava do 48 x 10Gbps na jedom ASIC chipu). Koriste ga:
    • Juniper (QFX3500),
    • Cisco (Nexus 3064),
    • Dell Networks (bivši Force 10) – S4810,
    • HP (5900 AF 48XG),
    • IBM (BNT RackSwitch G8264),
    • … i još nekoliko manjih proizvođača.
  • Trident+ [BCM56840 (+)] (podržava do 64 x 10Gbps na jednom ASIC chipu). Koriste ga:
    • Cisco (Nexus serija switcheva),
    • Juniper (QFX3500 serija switcheva),
    • Dell (kupnjom tvrtke “Force 10” u toku 2011. godine).
  • Trident II XGS [BCM56850] (2012. god.; za 10Gbps i 40 Gbps) – Novija verzija ASIC-a koja podržava 32 x 40G porta ili 104 x 10G sve na jednom ASIC chipu. Switching propusnost ovog ASIC-a je 1280 Gbps. Koriste ga:
    • Cisco (Nexus 9000),
    • Dell Networking S6000,
    • … i nekoliko manjih proizvođača.
  • Tomahawk (2014. god.) – Najnoviji član obitelji.
    • Ima switching propusnost od 3200 Gbps (3.2Tbps),
    • Jedan chip podržava do 128 x 25Gbps portova,
    • Ovo je prvi programabilni ASIC tvrtke Broadcom (ovu tehnologiju Broadcom zove “BroadView”).

 

Definitivno možemo reći da se sve više ide prema modelu u kojemu po jedan ASIC i switching chip podržavaju dovoljan broj portova za cijeli switch. Ovim dizajnom se rješava problem sporosti sabirnice između više ASIC chipova, koja postaje sve veći problem na sve većim brzinama (10G/40G/100G). Prema ovom modelu referentni dizajn bi izgledao ovako:

 

 

Što je tu Open Source?

Kao što smo prethodno spomenuli, svaki router i switch se sastoje od gotovo istih komponenti kao i računala. Najveća razlika je u switching chipu i ASIC-u. Nakon što je Broadcom ponudio ASIC (+ switching chip) generacije Trident II, stvari su se drastično promijenile. Upravljački programi za ovaj ASIC – i za Linux postali su dostupni. Bilo je samo pitanje vremena kada će se netko sjetiti napraviti svoj switch (praktično računalo) sa spojenim ovim ASIC-om i dobili ste nevjerojatno snažnu platformu. Ostaje napraviti svoju distribuciju Linuxa i optimizirati postojeće mrežne servise da znaju iskoristiti snagu ovog novog hardvera. Došli smo do OpenSource Switcha koji se, barem u teoriji, može natjecati sa proizvođačima poput Cisca, Junipera i ostalih.

Sredinom 2014. godine se pojavila tvrtka “Pica8” koja je napravila upravo to – uzeli su bootloader od  “Open Network Install Environmenta” (koji razvija tvrtka “Cumulus Networks”), a koji je dio “Open Compute Projecta”, te dodali i druge komponente Linuxa kao i potrebne mrežne servise. Time je nastala njihova distribucija Linuxa koja se zove PicOS. Vrlo brzo nakon toga uslijedila je dobra podrška i za “Trident”, “Trident+” i za najnoviji “Tomahawk”.

Ovdje je važno postaviti pitanje kojem je hardveru sve to namijenjeno (ipak neće svatko kod kuće sastavljati svoj 10Gbps switch)? Bez brige, oni nude i “prazne”switcheve. Ubrzo su se pojavili i ostali čije distribucije Linuxa se isto mogu instalirati na ove switcheve:

  • Cumulus Networks (Open Network Install Environment),
  • Vyatta (kupila ih je tvrtka “Brocade”),
  • On.Lab ONOS.

Ubrzo su se pojavili i ostali proizvođači mrežne opreme koji nude svoj hardver za switcheve na koji možete sami instalirati svoj OS. Od tog trenutka se otvorilo novo područje u kojemu će vjerojatno sve veći broj proizvođača nuditi svoj i nadam se OpenSource softver za switcheve. Poslovni model davanja svega u Open Source nije nimalo stran. U tom svijetu se živi od podrške – primjerice tvrtka “RedHat” godišnje od podrške zarađuje preko dvije milijarde dolara! Pogledajmo trenutnu listu kompatibilnog hardvera za PicOS.

Jedino što je ostalo upitno je “masivno” testiranje, ali s obzirom na tendenciju da sve završi u potpunosti kao open source projekt koji će s vremenom sigurno prihvaćati sve veća zajednica ljudi (a siguran sam i raznih tvrtki). Kvaliteta će se na taj način vrlo lako uzdići iznad bilo kojeg close source rješenja.

Još jedna je vrlo važna zajednička stvar kod svih ovih rješenja je podrška za “OpenFlow” protokol. On je dostupan za sve važnije operacijske sustave a dolazi uz “Open vSwitch”  koji je i integriran (instaliran) u sva gore navedena rješenja. “OpenFlow” je vrlo važan protokol za široku upotrebu i primjenu SDN rješenja (kako open source, tako i proprietary rješenja). Njega su do danas prihvatili svi važniji proizvođači mrežne opreme, poput:

  • Alcatel-Lucent,
  • Big Switch Networks,
  • Brocade Communications,
  • Radisys,
  • Arista Networks,
  • Pica8,
  • NoviFlow,
  • Huawei,
  • Cisco,
  • Dell (Force10),
  • Extreme Networks,
  • IBM,
  • Juniper Networks,
  • Digisol,
  • Larch Networks,
  • Hewlett-Packard,
  • NEC,
  • MikroTik i dr.

 

 

Autor: Hrvoje Horvat

Članak preuzet, uređen i objavljen uz izričito dopuštenje autora.

Izvor: Open Source Osijek

Upoznajte Linux sustav – poziv na radionicu

10. October 2016 - 15:01
Zagrebački Hacklab01 organizira radionicu kojom polaznike upoznaje sa sastavnim elementima funkcionalnog Linux sustava.

 

Radionica je namijenjena je potpunim početnicima, ali i naprednijim korisnicima koji instalacijom Arch Linuxa žele bolje upoznati elemente koji čine potpuno funkcionalnu desktop instalaciju. Zainteresirani sudionici će na vlastito računalo ili na Virtualbox virtualnu mašinu instalirati Arch Linux sustav.

 

 

Program radionice:

  1. Predinstalacija
    1. Postavke tastature
    2. Verifikacija boot modea
    3. Spajanje na internet
    4. Postavljanje sistemskog sata i vremenske zone
    5. Particioniranje diskova
    6. Formatiranje particija
    7. Mountanje datotečnih sustava
  2. Instalacija
    1. Odabir mirrora
    2. Instalacija base paketa
  3. Konfiguracija sustava
    1. Fstab
    2. Chroot
    3. Vremenska zona
    4. Locale
    5. Hostname
    6. Mrežne postavke
    7. Initramfs
    8. Root password
    9. Boot loader
  4. Postinstalacija
    1. Xorg
    2. Instalacija desktop sučelja
    3. Instalacija dodatnih softverskih paketa

 

 

 

Trajanje radionice: 2 dana – subota 15. i nedjelja 16. 10. 2016.,

Početak: u 14:00 sati,

Mjesto: hacklab01, Autonomni Kulturni Centar Attack, Pierottijeva 11, Zagreb

 

Sudionici su na radionicu obvezni ponijeti vlastito računalo!

 

Sudjelovanje je slobodno, mogućnost prijave na info@hacklab01.org.

Ukoliko se po prvi puta želite upoznati s Archem (ili obnoviti znanje), preporučamo naše upute ili dojmove našeg legendarnog člana.

 

Hacklab01hacklab u AKC Medika

OHOHO, drveni PC!

8. October 2016 - 8:51
Još jedan dokaz da se Linux može instalirati (i) na dasku. Imali smo čast testirati drveni PC. Sa nekoliko distribucija smo ga pokušali slomiti, ali nije se dao.

 

Ovih dana, krajem sezone godišnjih odmora, došlo nam je u ruke novo računalo. Ne radi se o običnom PC-u, kanti kakvih smo se nagledali, već drveni PC sa svim komponentama potrebnim za ugodan rad na računalu. Nakon prvobitnih hardverskih testova, naši eksperti potvrđuju tezu da je stvoren za svakoga (baš kao i Linux).

Tvrtka OHOHO.pro j.d.o.o. iz Koprivnice ustupila nam je jedan neobičan PC na testiranje. Dobio sam priliku poigrati se sa ovim strojem, što me jako veseli, a nadam se da će biti vremena i za zaviriti “ispod haube”. Naime, pronašao sam neke šrafe na dnu kućišta, pa sumnjam da ću odoljeti da ga ne otvorim.

Prvi pogled otkriva zanimljivo kućište, a unutar kutije nalazi se:

  • Četverojezgreni Athlon 5350 procesor,
  • Matična ploča Asrock AM1,
  • 4GB RAM-a i
  • tvrdi SSd disk kapaciteta 120 GB.

Dimenzije kućišta su 22 x 22 x 10 cm (malo veće od mobitela kakvh mnogi imaju).

 

 

 

Stražnja strana sadrži sve moguće in/out konektore, čak i HDMI.

 

 

Zanimljivo je i napajanje (cigla) 12V DC kao kod prijenosnika. Standardni 5/5.2 mm priključak često se koristi i za druge uređaje. Može se napajati i iz akumulatora automobila, ali ipak je sigurnije koristiti priloženo napajanje. Potrošnja se kreće od 10W u ler-gasu do nekih 40W u punom pogonu.

 

 

Ubuntu, Mint, Manjaro… svi voze na OHOHO PC

Mala, zgodna drvena kutija zadovoljava sve potrebe čak i zahtjevnijeg korisnika. Mint 18 besprijekorno radi na tom stroju. Prije nego sam ga htio “pregaziti” svojim Manjarom, malo sam se poigrao i ugodno me iznenadio brzinom i niskim temperaturama. Ipak, odlučio sam ga zadržati i uz njega instalirati Manjaro. Potvrđeno je da je i Ubuntu isto tako savršeno plesao po njegovom SSD-u.

Osobno ću se ipak zadržati na Manjaru. Manjaro ko Manjaro, ne bih puno o njemu, jer smo već dosta pisali o njegovoj superiornosti prema drugim distribucijama. Savršena distra za svakog korisnika kao i za svako računalo. Tako i za OHOHO.

 

 

 

Čitati i pisati može svaki PC, ali pleyati full HD filmove, baš i ne. Upravo to sam vidio kod ovog “Pinokia”. Instalirao sam mpv player i probao zavrtiti neke “teške” video formate. Ostao sam bez teksta: nema trzanja, prekida, smrzavanja i ostalih gadosti koje mi je znao prirediti moj laptop, koji je – usput rečeno – mnogo skuplji od ovog drvenog ljepotana.

Manjaro se boota za svega 30-ak sekundi. Mint je nešto brži, pretpostavljam zbog toga što je prvi instaliran. Navodno, SSD brže čita bliže sektore.
Standardne aplikacije kao što je Chrome, GIMP, LibreOffice, Thunderbird i mnoge druge, otvara munjevitom brzinom. Instalirao sam i Kodi. Čini mi se da je dvostruko brži od mog laptopa. Ekipa koja je prije mene testirala ovu drvenu kutiju, kaže da neke aplikacije otvara prije nego se pusti lijeva tipka miša. Ja bih bez pretjerivanja dodao, da na pr. moj file manager iskače pri samoj pomisli na lijevi klik, što dokazuje i ovaj mali test:

$ time thunar
real 0m0.481s
user 0m0.083s
sys 0m0.017s

Dobro, možda sam malo pretjerao. Ipak se radi o nekim milisekundama, što nekome možda predstavlja vječnost, ali mene apsolutno zadovoljava u svakodnevnim aktivnostima.

Namještaj po mjeri

Po defaultu trebao sam ga smjestiti u radnu sobu, ali dopao se još nekim ukućanima, pa je ipak završio u dnevnom boravku. Veći dio testiranja obavio sam upravo u toj prostoriji (javno), demonstrirajući silu ovog stroja svima koji su se našli u boravku. I oni su, kao i ja ostali zapanjeni brzinom i kvalitetom u obavljanju svakodnevnih radnji na računalu.

 

 

Zaključak (moji dojmovi):

U igri sa ovim strojem stavio sam se u kožu običnog malog korisnika, početnika ne bi li otkrio moguće poteškoće u radu. Nisam naišao na nikakve prepreke. Sve je radilo odmah po spajanju i uključivanju. Nakon turbo-brzog bootanja i munjevitog otvaranja standardnih aplikacija, milina je tipkati i klikati, a uz to slušati dobru glazbu. U isto vrijeme, na drugom monitoru se može vrtjeti i neki film.

Sve radi out of the box. Nije potrebno nikakvo posebno predznanje i ne treba nadograđivati hardver. Toplo preporučam ovu drvenu kutiju svakom korisniku. Još jednom zahvaljujemo tvrtki OHOHO.pro j.d.o.o. koja nam je dozvolila da se poigramo sa ovom neobičnom kutijom.

Cijena osnovnog (testiranog) modela je 1600 kn, dok je mnogo snažnije konfiguracije prema vašim potrebama moguće složiti u dogovoru s proizvođačem. Službena stranica proizvođača ovog kućišta još je u razvoju, ali zainteresirani mogu pronaći kontakt podatke i naručiti jedno ovakvo računalo.

 

 

 

Switching i routing: jučer, danas, sutra (drugi dio)

7. October 2016 - 9:00
U nizu članka autor Hrvoje Horvat upoznat će nas s osnovama i načinom rada switcheva (preklopnika) i routera (usmjernika), te će podijeliti brojne korisne savjete iz praktičnog iskustva.

U dizajnu switcheva u pravilu postoje dva pristupa:

  1. CPU + Switching chip ili
  2. CPU + Switching chip + ASIC.

Već kod standardnih switcheva (koji odluke o preklapanju donose na OSI sloju 2), funkcionalnosti koje su implementirane uswitching chipovenisu dostatne za sve operacije koje jedan switch treba podržavati, već su uglavnom implementirane najrudimentarnije funkcije. Čak i kontrolu za dobar dio  mrežnih protokola mora odraditi CPU. Važnost odabira dobrog “switching chipa” je krucijalna budući da dobar dio njih već u nižoj srednjoj klasi nudi dobar dio funkcionalnosti implementiran u sam chip. Time se rasterećuje CPU koji ionako nije sposoban za obavljanje tih zadataka na gigabitnim brzinama.

I ovdje imamo veliku raznolikost. Prva varijanta: više manjih i slabijih switching chipova povezanih preko zajedničke sabirnice (slika dolje).

 

Ovakav dizajn mnogi koriste jer drastično snižava cijenu. Problemi su uglavnom sporost sabirnice te samim time komunikacija između switching chipova. U ovom slučaju sve ide donekle brzo u komunikaciji između portova 1- 4, u komunikaciji između portova 5-8, te između portova 9-12. U slučaju da komunikacija treba ići između portova koji su na različitim switching chipovima – nastupa problem odnosno usporavanja.

Dodatna je mana u tome što se u ovoj (najgoroj) varijanti ugrađuju switching chipovi koji nemaju gotovo nikakve funkcionalnosti osim onih najosnovnijih. Ispravno bi bilo da ih proizvođači niti ne omogućavaju, no u praksi nailazimo na uređaje koji podržavaju cijelu gomilu funkcionalnosti i protokola ali koriste ovakav dizajn u kojemu na kraju većinu toga mora odraditi CPU pa se uređaj počinje ponašati užasno usporeno.

Druga varijanta je upotreba naprednijih switching chipova, koji podržavaju više funkcionalnosti kao i neke mrežne protokole, a uz to pokrivaju veći broj portova zbog čega komunikacija ne mora ići preko još uvijek spore sabirnice. Taj je model vidljiv na slici:

 

Problem oba ova modela je još uvijek odabir prilično slabih switching chipova te prebacivanje previše funkcija na CPU (naravno, preko iste sabirnice). Najčešći je odabir CPU-a za switcheve iz područja ARM ili MIPS arhitekture procesora, koji za vrlo nisku cijenu i malu potrošnju energije nude solidne karakteristike. Nažalost, u svijetu u kojemu su potrebne analize i obrade svakog pojedinog mrežnog paketa – dakle switchinga (Layer 2) ili routinga (Layer 3 i 4), pogotovo na gigabitnim brzina, ovi procesori ne nude zadovoljavajuće brzine obrade paketa. Stoga mnogi odabiru procesore sa što više jezgri.

Dodatni problem je i u tome što recimo specifikacija koja govori da se koristi ARM procesor na 1GHz ne znači zapravo ništa. Da malo razjasnim: ARM nije model ili tvrtka koja u  konačnici proizvodi procesore. Tvrtka ARM zapravo dizajnira procesore. Dakle, bilo koji proizvođač može kupiti licencu za ARM dizajn i arhitekturu procesora te ga i izraditi. I tih ARM licenci (dizajna) ima cijelo čudo:

  • Cortex-A (A72, A57, A17, A15, A53, A35, A7, …,
  • arhitekture ARM v7, ARM v8, …),
  • Cortex-R (R4,R5,R7, …),
  • Cortex-M (…).

Postoji samo nekoliko velikih proizvođača koji izrađuju ARM procesore (a postoji na desetke onih za koje ih izrađuju) prema ARM licenci i prema željama onih koji ih naručuju (uključite ovo, isključite ono, dodajte ovu funkcionalnost, izbacite onu, …). U tome zapravo leži dio problema. Neki procesori imaju mnoge dobre funkcionalnosti ali su malo skuplji, dok neki imaju samo najosnovnije ali su jeftiniji… ne moram dalje pričati. Uostalom, pogledajmo “proizvođače” ili  proizvođače ARM procesora za pametne telefone –  lista je dugačka.

Gruba računica govori da prosječan ARM Cortex-A procesor takta 1GHz po moći obrade mrežnih paketa jednak je Pentium 3 procesoru radnog takta 300MHz.

 

 

Preporuka za routing

Ako pogledamo Multilayer funkcionalnosti (vrijedi za routere ali i multilayer switcheve), neke generalne preporuke za CPU snagu su (na osnovi samo dva interface-a – WAN i LAN):

  • CPU: Pentum 4 klasa, 2GHz, 100-500Mbps (ovisno što se sve treba procesirati), možemo zaključiti:
    • 6 x ARM CPU na 1 GHz = 1 x Pentium 3 CPU na 2 GHz (budimo jako optimistični pa recimo da je Pentium 3 = Pentium 4).
    • Dakle 6 x ARM 1Ghz je dovoljno za max 2 mrežna interfacea brzine procesiranja između 100Mbps i 500Mbps.
    • Za 1Gbps u najboljem slučaju to znači 12 x ARM 1GHz CPU za 1Gbps propusnosti između dva mrežna interface-a.

Budući da 1Gbps omogućava “Full duplex” rad, to znači da nam je za popunjavanje pune propusnosti 2 mrežna interfacea koja oba rade u “Full duplex” načinu rada potrebna propusnost od 4Gbps. To znači 12 x ARM 1GHz x 4 =  48 Core ARM CPU na 1GHz.

Ako uzmemo u obzir da su switchevi koji se najčešće koriste, minimalno sa 24 x 1Gbps porta, to bi značilo da bi morali imati 576 Core ARM CPU na 1GHz. To je računica u slučaju da switching chip ne odrađuje veći dio funkcionalnosti – što je i slučaj kod niže do niže srednje  kategorije ovih chipova. Ako i ovdje budemo optimistični pa kažemo da switching chip odrađuje 50% potrebnih funkcionalnosti tada nam je za sve navedeno potrebno “samo”  288 Core ARM CPU na 1GHz.

Ovakav pristup zapravo i imaju neki od proizvođača switcheva odnosno multilayer switcheva ali pri tome nisu došli niti blizu broja CPU jezgri koje bi bile potrebne za brzine o kojima smo govorili.

 

 

Sabirnica

Pri svemu ovome nisam niti spominjao brzinu sabirnice između switching chipa i CPU-a, koja bi morala moći podnjeti sve ove brzine, kao i brzine memorijske sabirnice, te u konačnici RAM memorije koja bi to morala također moći podnjeti. Probajmo kratko analizirati i to:

  • Switch sa 24 x 1Gbps portova mora imati minimalnu unutarnju propusnost od 48Gbps (zbog full duplexa).
  • Brzina od 1Gbps = znači maksimalno 125MB/s.
  • Full duplex 1Gbps je maksimalno 250 MB/s.
  • U ovom slučaju 48Gbps = 125 MB/s * 48 = 6.000 MB/s = 5.8 GB/s.

Sjetimo se samo da recimo Intel Skylake arhitektura sa pripadajućim Z170 chipsetom ima maksimalnu propusnost sabirnice između CPU-a i “Southbridgechipseta (DMI v.3.0) od nekih 4 GB/s. U ovom slučaju niti Intelova 6 generacija Pentium 4 procesora (i5-6xxx ili i7-6xxx) nema dovoljnu propusnost za takvo što. Memorisjka sabirnica u ovom slučaju ima propusnost od 34 GB/s pa bi ona zadovoljila ali nedostaje brzine prema “Southbridge” dijelu na koji je spojena mreža. Za više informacija o arhitekturi računala pogledajte ovdje.

Probajmo sada “odokativno” izračunati koji Intel Pentium 4 CPU bi bio potreban za to:

  • Ako je 2GHz jedan CPU core dovoljan za 500Mbps obrade, trebaju nam 2 CPU core za 1Gbps odnosno 4 CPU core za 1Gbps full duplex.
  • Dakle, trebalo bi nam samo 96 CPU core Intel Pentium 4 na 2GHz, ako imamo CPU na 4GHz tada bi nam trebalo samo 48 CPU core Intel Pentium 4 i još 1.8GB/s brža sabirnica prema “Southbridgechipsetu i mrežnim karticama.

Mislim da je sada sve jasno. Osim toga, koliko god procesor bio brz, baratanje mrežnim paketima će se i dalje događati unutar granica milisekundi. Pozitivno je da ipak određeni postotak obrade paketa uspije odraditi switching chip ali na kraju sve ovisi o proizvođaču koji je točno model switching chipa odabrao (odnosno koliko je bio spreman platiti – mada su često razlike u cijeni smiješne – razlika od 1$ na milijun primjeraka je milijun $). Samo ću reći da postoje proizvođači i “proizvođači”. Čak ovisi i o seriji tj. modelu uređaja gdje proizvođač za relativno malu razliku od nekoliko stotina KN ili malo više nudi poprilično više (ili manje).

 

Postoji  li rješenje?

Zbog ovih ograničenja većina “jačih” proizvođača počela je tražiti rješenje koje stvarno može riješiti ovaj problem vrlo loše propusnosti switcheva (i jačih verzija routera). Rješenje je implementacija tzv. ASIC chipova. Ova ideja zapravo nije nova – u širokoj upotrebi je barem desetak, samo što je u današnje vrijeme postalo široko dostupno (i relativno jeftino).

 

 

 

Autor: Hrvoje Horvat

Članak preuzet, uređen i objavljen uz izričito dopuštenje autora.

Izvor: Open Source Osijek

LZS intervju: Zoran Zagrajski – OHOHO PC

3. October 2016 - 15:40
Prije nekoliko mjeseci, sasvim slučajno smo naišli na vijest o maloj domaćoj tvrtki koja je odlučila krenuti s proizvodnom malo neuobičajenih računala. Malo kasnije smo saznali da jedini operativni sustav koji dolazi predinstaliran na tim računalima je GNU/Linux (Ubuntu), stoga nam nije preostalo ništa drugo već stupiti u kontakt s vlasnikom tvrtke Zoranom Zagrajskim i postaviti mu nekoliko pitanja. Što smo tom prilikom saznali možete pročitati u nastavku.

 

OHOHO PC – prednja strana Izvor: http://www.ohoho.pro

 

LZS: Budući da ne znamo za poduzetnike (ako ih uopće ima) koji su se odlučili baviti proizvodnjom računala (isključujemo velike uvoznike ili trgovine računalnom opremom koji slažu generička računala pod nekim svojim “brandom”), za početak može par riječi o tvrtki “OHOHO” d.o.o.?

Zoran: Tvrtku smo osnovali moja supruga Ivana i ja 2013. godine u Koprivnici gdje i stanujemo. Nakon što smo se oboje  desetak godina bavili 3D modeliranjem, dosadilo nam je baviti se isključivo uslužnom djelatnosti te smo zajedno odlučili krenuti u proizvodnu djelatnost u polju koje nam je poznato, a to su računala.

LZS:  Od kuda ideja da se kućište računala napravi od drveta?

Zoran: Prva ideja je bila napraviti uredski stol gdje bi računalo bilo ugrađeno u sam stol, a veličina i oblik bi se prilagođavao željama kupca. Međutim, od navedene ideje smo (zasad) odustali jer kako zbog same cijene takvog proizvoda za krajnjeg kupca, tako i zbog većeg broja certifikata koje bi morali ishoditi, a što sami financijski ne bi mogli podnijeti.

Što se tiče odluke da drvo bude primarni materijal izrade, razlog je jednostavan – drvo je relativno lagano za obradu i svaku buduću varijaciju je vrlo jednostavno uklopiti u dizajn. Povrh toga, treba mišljenja sam da treba poticati korištenje i sadnju drveća jer je savršeni CO2 tank. Budući da obično drvo “radi”, odlučili smo se na šperploču jer je otpornija i duže drži oblik od običnog (jeftinog) drva, a jedino mi je žao što moramo koristiti materijal iz uvoza jer domaćih tvrtki koje bi proizvodile kvalitetnu šperploču jednostavno nema.

LZS:  Spomenuli ste certifikate. Što to konkretno to znači na primjeru OHOHO i OHOHO.Pro PC-e, odnosno za krajnjeg korisnika?

Zoran: Kako smo u startu odlučili ići na cijenom prihvatljivo (školarcima) i energetski učinkovito računalo, temelj za dizajn proizvoda je bila maksimalna gornja granica potrošnje od  120W TDP-a. Kako smo za osnovu uzeli ITX standard, nakon nekoliko prototipova došli smo do dimenzije računala od 22 x 22 x 10 cm (koje u jačoj verziji podržava max 120W CPU+GPU TDP) i s time prototipom smo nakon testiranja u Končar institutu dobili CE certifikat koji jamči da je računalo sposobno raditi bez ograničenja i daje sigurnost budućem korisniku da je kupio energetski učinkovito računalo. Što to konkretno znači mogu pojasniti na primjeru zgrade Hrvatskih Šuma u Koprivnici gdjeje moja tvrtka radila energetsku certifikaciju. Kad bi sva postojeća računala kod njih zamijenili OHOHO računalima, godišnja ušteda na potrošenoj struji bi bila bi oko 11.000,00 kn i to bez uvođenja virtualizacije koja bi još dvostruko smanjila potrošnju po korisniku. Ako se pogleda koje stvari su potrebne za unos informacija u uredu, onda je ovo računalo više nego dovoljno.

OHOHO PC – lijeva strana Izvor: http://www.ohoho.pro

 

LZS:  Iz gore navedenog se može zaključiti da je primarni cilj ušteda. Koje se komponente uopće ugrađuju u OHOHO računalo i koja je ciljana skupina korisnika?

Zoran: Kako sam već rekao na početku, desetak godina smo se supruga i ja bavili  3D modeliranjem. U početku smo radili na AMD Phenomu koristeći virtualizaciju kako bi mogli oboje raditi istovremeno. No, vremenom su se zahtjevi i platforme promijenili pa smo se prebacili na vSphere platformu koja je omogućila direktan pristup hardveru u svakoj virtualki. Jedan 3930k je radio s tri CAD stanice i NAS/print/backup serverom u pozadini.

Kako nam je kroz godine rada kroz ruke prošlo puno raznog hardvera te imajući u vidu potrebe raznih skupna korisnika, javila se i misao koji su minimalni zahtjevi da računalo zadovoljavajuće služi korisnika. Nakon isprobavanja raznog hardvera došli smo do spoznaje da za većinu kućnih i uredskih korisnika ispostavilo se da je top model za takve stvari Athlon 5350 (AM1).

Imajući na umu štedljivost, naredni bitan dio je izbor napajanja i tu je glavnu ulogu odigrao picoITX adapter koji pretvara 12V ulaz na ATX struju. 12V daje adapter od 60W koji dolazi uz osnovnu konfiguraciju i više je nego dovoljan jer samo računalo troši 40-45 W max, dok bi ugradnja klasičnog ATX napajanja od cca. 300W rezultirala skoro dvostruko većom potrošnjom struje zbog gubitaka u samom napajanju (jači model dolazi s adapterom od 120W).

Ostatak bitnih komponenti su još radna memorija (4 GB DDR3) i disk kod kojeg je odluka pala na 120 GB SSD (opet minimalna potrošnja energije i brzina rada) te dodatna grafička kartica kod jačeg modela.

Ciljana skupina korisnika su nam roditelji s djecom koja idu u školu i gdje bi za prihvatljivu cijenu od cca 1.500 do 1.600 kn po računalu djeci mogli priuštiti računalo za učenje koje zauzima minimum prostora, tiho je i ne troši puno struje. Naravno da smo imali u vidu da uz računalo treba kupiti i periferije u vidu tipkovnice, miša i monitora no izbor tih komponenti je ostavljen financijskim mogućnostima roditelja. Druga ciljana skupina korisnika su tvrtke kod kojih je bitna potrošnja energije zbog većeg broja računala, unificiranost platforme radi lakšeg održavanja i mogućnost personalizacije samog izgleda računala jer se isto proizvodi korištenjem CNC strojeva i 3D printera no sve je stvar dogovora i potreba krajnjih korisnika.

Modifikacije su praktički beskrajne: npr. mogu se gumbi i portovi premjestiti na gornju plohu pa se računalo objesi na zid, graviranje loga na gornju plohu, povećanje broja podržanih diskova, itd. Bočni otvori se isto mogu mijenjati, ali ne mnogo jer je primarno održati adekvatnu ventilaciju.

OHOHO PC – desna strana Izvor: http://www.ohoho.pro

 

LZS: Tu se slažemo s idejom jer smo mišljenja da je ugodnije i zasigurno zdravije raditi i učiti za stolnim računalom i velikim (većim)  monitorom umjesto da za učenje koriste neki od ulaznih modela laptopa koji se nude na tržištu.

Zoran: Naravno, osim toga neka obitelj može za prihvatljive novce pokriti računalne potrebe dvoje školaraca računalom na kojem se mogu učiti i raditi i zahtjevnije stvari tipa 3D modeliranja ili renderinga što se na ulaznim modelima laptopa baš i ne može.

LZS:  Imajući u vidu navedeno, nameće se odgovor zašto ste se odlučili za Linux kao primarni OS.

Zoran:  Da, zbog cijene i mogućnosti Linux je neizbježan. Istina da nema nekih profi programa na Linux platformi, ali kako su nam ciljana skupina prvenstveno školarci, Linux je najbolja opcija jer ga teško mogu slučajno pokvariti, gotovo da nema malicioznog softvera (virusa) za Linux platformu. Također, sam Linux dolazi sa svim potrebnim  osnovnim programima za normalno korištenje (Libre Office, GIMP i sl.).

Što se tiče Linuxa, znam da postoje razne distribucije no odabrao sam Ubuntu kao meni najpoznatiju, ali korisnike ništa ne prijeći da na računalo stave koju god distribuciju žele. Prihvaćam i sve sugestije oko izbora Linux distribucije pa u budućnosti možda i neće biti  Ubuntu.

LZS: Dok smo neobavezno ćaskali prije ovog razgovora, spomenuli ste da ste željeli pomoći strukovnim školama, ali da je odaziv bio nikakav pa ovom prilikom možete  ponoviti što ste imali na umu, možda netko iz nadležnih institucija pročita pa se malo pokrenu.

Zoran: Strukovnim školama sam nudio izradu 3D printera i CNC stroja te obuku… zapravo još uvijek nudim. Ideja je omogućiti školama da same pokriju troškove informatizacije uz minimalna ulaganja (500-600 kn po učeniku). Usput, djeca bi imala priliku učiti na konkretnom primjeru rukovanje strojevima i programiranje, a jednom kad shvate da uz ta dva stroja i svog uloženog truda u učenje, mogu proizvoditi sve druge strojeve dolazi do oslobađanja kreativnosti koja čuči u svakom djetetu. Osim toga, škole mogu za potrebe drugih smjerova eksperimentirati s raznim novim idejama i prototipovima – od novog oblika žlice pa dalje.

Školama sam zapravo osim izrade 3D printera i CNC stroja nudio i početnu edukaciju djece i nastavnika kako programirati strojeve potrebne za proizvodnju (CNC i 3D printer) i kako raditi s njima (3D modeliranje) no odaziv je nikakav.  Razlog tome je možda i jedini uvjet koji sam imao, a to je da su škole u krugu 50-ak km od Koprivnice jer bih sam snosio i troškove puta, a sve drugo bi ionako bilo na volonterskoj osnovi.

Osim za škole, nacrti, dizajn i sve drugo vezano uz računalo dajem na slobodno korištenje svima, spreman sam prihvatiti svaku dobru modifikaciju no jedini je uvjet da one također moraju javno dostupne i slobodne za druge korisnike.

OHOHO PC – zadnja strana Izvor: http://www.ohoho.pro

 

LZS: Puno je “slobodnog razmišljanja” u tom pristupu no vraćamo se na problem državnih institucija da tvrdoglavo odbijaju nešto što je besplatno ili povoljno.

Zoran: Ma problem je općenito u našim institucijama. Cijeli projekt za sad guramo vlastitim sredstvima jer bilo kakva nabavka sredstava iz kojekakvih inkubatora za obrtnike nakon par mjeseci natezanja i gubljenja vremena rezultira time da čovjek odustane – previše je pravnika i ekonomista tamo.

LZS: Planirate li još neki proizvod u budućnosti?

Zoran: Planova je puno, no sve ovisi o tome kako će tržište prihvatiti naš prvi proizvod, odnosno hoćemo li opstati na tržištu ili ćemo se morati vratiti primarno uslužnoj djelatnosti. Ako uspijemo, u planu je izrada dizajna za sistem po mATX standardu od 200 ili 250W. Veća računala od mATX standarda nećemo raditi za naprijed navedene skupine korisnika i ako neko misli da mu treba 7 slotova za sve komponente da bi mu dijete moglo učiti, neka još malo razmisli o svom životu

Switching i routing: jučer, danas, sutra (prvi dio)

1. October 2016 - 13:20
U nizu članka autor Hrvoje Horvat upoznat će nas s osnovama i načinom rada switcheva (preklopnika) i routera (usmjernika), te će podijeliti brojne korisne savjete iz praktičnog iskustva.

 

Tijekom prošle godine održali smo predavanje  na temu “Kako odabrati ”pravi” mrežni uređaj i u čemu su razlike”, a ovom prilikom ću se nadovezati na to predavanje te pokušati objasniti problematiku s kojom se susreću proizvođači mrežne opreme a koja se prenosi do samih korisnika (vas). Dalje u tekstu većim djelom ćemo govoriti o preklopnicima (switchingu) a manjim djelom o usmjerivačima (routing-u)

 

U čemu je problem?

Sjetimo se da su i preklopnici (switchevi) i usmjerivači (routeri) uređaji koji se sastoje od sličnih dijelova kao i svako računalo. Dakle imaju matičnu ploču, CPU, RAM, neku vrstu diska (uglavnom flash memoriju), operacijski sustav, upravljačke programe (drivere) i određeni softver. Doduše njihov operacijski sustav je malo drugačiji od onoga na koji smo naviknuli no ipak ne toliko koliko se čini. Trebamo biti svjesni činjenice da i obični “glupi” switch  u pozadini odrađuje nekoliko funkcionalnosti ili “vrti“ nekoliko mrežnih protokola od kojih neke i primjenjuje na svaki paket na mreži. Na gigabitnim mrežama to znači milijune paketa u sekundi. Zapravo si možemo i trebamo postaviti sljedeća pitanja koja su si postavili i proizvođači kod razvoja mrežnih uređaja.

Što  je važno:

  • Odabir operacijskog sustava uređaja – koji je sigurniji, stabilniji i/ili brži, koji ima bolju podršku, što je sa upravljačkim programima za sav hardver – za koji OS proizvođači hardvera češće izdaje optimizacije i ispravke grešaka, …
  • Dobar odabir programskog jezika u kojemu će se razvijati novi uređaj te njegove mogućnosti,
  • Kako razvijati softver (i tko ga razvija),
  • Testiranje – je li uređaj stvarno (i kako) testiran,
  • Optimizacija – koliko znanja treba imati da bi se radile optimizacije i da li su moguće (i u kojoj mjeri),
  • Podrška – što je s podrškom, koliko je ažurna,
  • Dokumentacija samog softvera i konačnog programskog rješenja (uređaja), kolika je zajednica ljudi koja koristi uređaje određenog proizvođača, da li postoje predavanja, knjige, i drugi materijali na internetu i koliko su dobro napisani i sl.

 

Vratimo se switchevimaswitch je zapravo malo računalo kojemu je svaki port zapravo jedna mrežna kartica. Postoje različite mrežne kartice.

Od običnih “desktop” (poput ove na slici):

 

… do posebnih kategorija mrežnih kartica koje možemo nazvati “serverskim” poput ove na slici dolje:

 

Osim toga, ni “serverske” kartice nisu sve iste, kao niti njihovi upravljački programi. Neke od njih možda uredno rade, ali imaju dosta loše upravljačke programe. Neke odrađuju samo standardne stvari, dok neke od jačih podržavaju cijeli niz dodatnih funkcionalnosti kojima rasterećuju centralni procesor (CPU). Neke od jačih “serverskih” danas standardno same odrađuju sljedeće funkcionalnosti:

  • TCP Offload (Checksum/Large send), UDP
  • 802.1Q
  • 802.1p (QoS)
  • 802.3ad, Fast Ether Channel i Gigabit EC
  • 802.3* (z, ab, u, x) – flow controll
  • Kriptiranje/Dekriptiranje
  • I/O virtualizaciju (u kombinaciji sa SR-IOV), …

Razlike mogu biti u cijeni, brzini, podržanim funkcionalnostima, upravljačkim programima (driverima, njihovoj stabilnosti i brzini; loš driver = loša mreža), podršci, dokumentaciji, …

Sada nam postaje jasno kako nije nevažno koju mrežnu karticu treba odabrati ako želimo siguran, pouzdan i brz rad računala ili poslužitelja na mreži. Razlike u praksi znaju biti drastične. Počevši od razlika u cijeni od nekoliko desetaka ili stotina kuna (a nekada i tisuća KN), preko (ne)nestabilnosti, pa sve do brzine rada. Vrlo je čet slučaj da korisnici kupe sve mrežne komponente, kao i pasivni dio mreže (kablovi, utičnice, patch paneli) koje prema standardima podržavaju brzinu deklariranu poput “1Gbps”, a u praksi je brzina nešto malo veća od “100Mbps”. Pitam se zbog čega???

 

 

OS i softver (firmware) switcha

Softver, kao i sam operacijski sustav, te svi upravljački programi (za hardverske komponente switcha) odnosno njegov odabir i sam razvoj drastično utičnu na pouzdanost, izdržljivost i stabilnost jednog takvog uređaja. Zapravo ovaj utjecaj je drastično veći nego li je to slučaj kod našeg osobnog računala ili nekog poslužitelja.

Ovdje se radi o uređajima koji moraju raditi besprijekorno, bez obzira koliko ih puta palili ili gasili (zbog nestanaka struje, uslijed nadogradnje ili sl.), nevezano koliko milijuna mrežnih paketa u sekundi morali obraditi, te koliko se zapravo desetaka mrežnih protokola u svim mogućim ili nemogućim kombinacijama izvodi na vašem switchu. Isto tako, nije svejedno da li je u određenoj konfiguraciji switcha konfiguriran protokol A, B i C ili neki četvrti. Ili su u upotrebi samo protokoli A, C, i D.

 

 

Testiranje, testiranje i testiranje i još malo testiranja i na kraju još pokoje testiranje

Samo testiranje uređaja – koje bi trebala odraditi tvrtka koja ga je i proizvela – uopće nije trivijalno, te podiže cijenu finalnog proizvoda (ako je za sve faze razvoja bilo potrebno 1000 vremenskih jedinica, sigurno je da će faza testiranja zahtijevati minimalno još toliko – ovo je moj osobni stav).

Temeljito testiranje se svodi na ispitivanje svih mogućih kombinacija protokola ili funkcionalnosti koje određeni uređaj podržava i to u kombinacijama svih mogućih i nemogućih mrežnih protokola koji moraju biti u upotrebi i koji moraju prolaziti kroz mrežni uređaj koji se testira. To znači da, primjerice, switch podržava ARP protokol (koji i mora podržavati a koji je samo jedan u nizu protokola) testiranje mora uključiti ponašanje u radu u kojemu su na točno određenoj hardverskoj verziji switcha na točno određenoj verziji softvera (operacijski sustav, upravljački programi i sve ostalo) spojena računala koja generiraju promet (i to u varijantama: na svim portovima, samo na nekim portovima, neka se moraju uključivati i isključivati, …). Dakle, riječ je o vrlo velikom broji mogućih scenarija koje treba detaljno ispitati.

Promet koji se generira mora biti točno definiran, te je potrebno testirati razne mrežne protokole u raznim kombinacijama. Prema TCP/IP setu protokola definirano je 65536 mogućih mrežnih protokola od kojih je važno testirati njih maksimalno tisuću (1.000). U praksi je pitanje je li uopće testirano najviše nekoliko desetaka protokola – a pitanje je da li i toliko – kod “entry level” proizvođača (u pravilu najjeftiniji uređaji) koje neću imenovati.

Osim toga, budući da se testira ARP protokol, potrebno je testirati sve scenarije ponašanja ARP protokola – i one dozvoljene (definirane standardima), kao i one nedozvoljene koji bi mogli utjecati na sigurnost i/ili stabilnost ili pojedinog porta na switchu ili cijelog uređaja. Naime, nije dovoljno testirati samo standardne ARP pakete već i one za koje je potrebno “ručno” kreirati ARP pakete koji namjerno sadrže vrijednosti ili parametre koje ne bi smjeli sadržavati. Zaključno, samo za testiranje ARP protokola potrebne su stotine mogućih scenarija.

Sljedeći test bi bilo uključivanje drugog protokola ili funkcionalnosti – primjerice logiranje poruka na vanjski syslog poslužitelj. Zvuči banalno, ali sada je potrebno ponoviti sve prethodne scenarije testiranja uz dodatne scenarije specifične za syslog protokol. Pri tome se smijemo zaboraviti na dozvoljene i nedozvoljene opcije, parametre ili oblike mrežnih paketa za protokole koje testiramo.

Ako uključimo još jednu funkcionalnost – primjerice često korišten Spanning Tree protokol, sada ponovno moramo sve testirati s dodatnim stvarima vezanim za Spanning Tree, ali i u varijantama sa ARP protokolom i sa ili bez syslog funkcionalnosti. Ovime smo zasigurno došli do tisuća mogućih scenarija.

Sjetimo se da i “najslabiji” switchevi podržavaju desetak protokola ili funkcionalnosti kao i činjenice da samo za isti hardverski model uređaja proizvođači imaju nekoliko verzija operacijskog sustava (nazovimo ga “firmware”). Potrebno je sve testirati pojedinačno, i to za sve modele uređaja koji se prodaju. Mislim da smo sada možda došli i do milijuna scenarija koje je potrebno testirati. Možete se pitati je li sve to nužno potrebno? Moj odgovor je: “DA”.

U praksi sam nebrojeno puta susreo da samo određene kombinacije uključenih funkcionalnosti i mrežnih protokola nekada uzrokuju zasebne probleme, a u nekim kombinacijama sve radi. Ili u jednoj verziji firmwarea radi nešto što u drugoj (čak i novijoj) više ne radi ili uzrokuje probleme, na čije otklanjanje nekada možete potrošiti dane i dane, da bi na kraju shvatili da nije problem u ničemu drugom nego u switchu/routeru odnosno problematičnom firmwareu (OS-u).

 

Formula za uspjeh:

Potrošeni dani x sati x broj ljudi = bolje/jeftinije kupiti *provjereni* uređaj

* Kada kažem provjereni, mislim na konkretnog proizvođača, točan model i verziju softvera (firmware/OS) provjeren u okruženju u kojemu se koriste svi mrežni protokoli i postavke koje i vi želite koristiti.

 

U konačnici, previše je mogućih kombinacija koje ne bi htjeli sami testirati na svojoj mreži za koju želite da radi kako treba, pa je uglavnom jeftinije uložiti nešto malo više u opremu pouzdanijih proizvođača, i to po mogućnosti točnog modela i verzije firmwarea za koji znate da radi kako treba (sa svim onim funkcionalnostima i protokolima koji vam stvarno trebaju). Ne treba se 100% pouzdati niti u najveće brand name proizvođače – i njima se događaju greške, no ipak su mnogo pouzdaniji od nekih koje ću nazvati “bezimeni“.

 

 

Detaljnije o switchevima

Za razliku od računala, switchevi nemaju “klasične” mrežne kartice nego tzv. “Switching chipove” koji zapravo na jednom chipu imaju nekoliko integriranih mrežnih kartica od 4, 8,12, 24, 48 ili više portova. Ovdje je još izaženija razlika u odnosu na “obične” mrežne kartica i to za iste funkcije. Naime, postoji čitv niz switching chipova od raznih proizvođača s ogromnim razlikama:

  • različitih su performansi,
  • različitih funkcionalnosti koje podržavaju,
  • njihovi upravljački programi se razvijaju samo  za određeni OS ili za više njih (pitanje je  i stabilnosti i dr.).

Što se samih switcheva ili routera tiče (kao gotovih proizvoda) neki proizvođači koriste Linux dok drugi određene specijalizirane varijante UNIX operacijskih sustava. I odabir operacijskog sustava, kao i pripadajućih upravljačkih programa, utječe na pouzdanost, sigurnost i performanse konačnog rješenja. Primjerice, “Cisco” koristi BSD UNIX za Cisco IOS* , dok “Juniper” koristi FreeBSD UNIX za njihov JunOS* (*IOS i JunOS su operacijski sustavi proizvođača Cisco i Juniper, namijenjeni switchevima i routerima).

Osim toga, switchevi imaju i CPU i RAM memoriju poput “običnih” računala, koji također utječu na performanse. Stoga razlikujemo:

  1. Standardne “Layer 2” switcheve koji rade na OSI sloju 2, te prema tome odluku o preklapanju (za svaki mrežni paket) donose na osnovi MAC adresa,
  2. Tzv. “Multilayer“ switcheve, odnosno switcheve koji odluke o preklapanju svakog paketa donose na osnovi analize OSI slojeva 2, 3 i 4.

 

 

Layer 2 switching – klasična upotreba switcheva (preklopnika).

U današnjim mrežama za međusobno umrežavanja/spajanje računala, poslužitelja i ostale mrežne opreme koriste se switchevi koji standardno rade na OSII sloju 2 (Layer 2) – barataju sa MAC adresama. Spajanjem bilo kojeg računala ili uređaja na neki port na switchu, sam switch prvo mora saznati njegovu MAC adresu te ju spremiti u svoju internu tablicu koja sadrži par:

Source MAC adresa <-> port (interface) na switchu

To je i sva logika koja je potrebna za uspješno preklapanje. Naime kada spojimo računala A i B na switch, primjerice:

Računalo A (MAC 00:01:02:A1:11:11) <-> port (interface) 1

Računalo B (MAC 00:01:02:B2:22:22) <-> port (interface) 2

switch nakon nekoliko trenutaka izgradi gore navedenu tablicu koju primjenjuje na svaki paket koji mu dođe.

 

 

Layer 3 (Routing)

U slučaju routinga (usmjeravanja) koji se događa na OSI sloju 3 (IP adrese) uređaji odluku za usmjeravanje paketa donose na osnovu IP adresa – zapravo para:

IP adresa i njena pripadajuća maska mreže (netmask).

Tablica na osnovu koje se odrađuje usmjeravanje (praktično isti postupak kao i preklapanje [switching] ali na OSI sloju 3) se zove “Routing tablica” koju uređaj također mora imati. Dakle, slična priča ali na drugom OSI sloju, i još malo kompleksnija zbog routing protokola i mogućnosti dinamičkih promjena routing tablica pomoću routing protokola (RIP, OSPF, BGP, …).

Uređaji koji se bave usmjeravanjem u načelu zovemo usmjerivači (routeri), ali postoje i preklopnici (switchevi) koji mogu odrađivati i taj dio posla. Ovakve switcheve nazivamo “Multilayer switchevi”, tj. switchevi koji rade na više OSI slojeva (2, 3 i 4). Ovakvi switchevi vrlo su važni u današnjim mrežama jer nam daju mogućnost da uredno segmentiramo lokalnu mrežu a da to ne unese velika usporavanja koja bi uveli klasični routeri.

 

 

Prisjetimo se TCP/IP komunikacije

Svaki paket mora imati (uz ostale podatke):

  1. Source i Destination MAC adrese, te
  2. Source i Destination IP adrese.

Budući da se radi o Layer 2 switchu, on gleda svaki paket i to samo dio sa Source MAC adresom i Destination MAC adresom. Pojednostavljeno to radi ovako (računalo A šalje paket na računalo B):

  1. Switch pogleda Source MAC (to je MAC od računala A) i vidi da ga već ima u tablici (ako nema, zapamti ga sada na portu na koji je spojen), te pogleda i Destination MAC adresu (to je MAC od Računala B).
  2. Switch provjerava svoju tablicu i gleda da li ima MAC adresu od računala B, ako ima gleda na kojem je portu (interfaceu) i paket šalje na taj port (interface).
  3. Ako nema MAC adresu od računala B, pokuša ju saznati slanjem pripadajuće ARP poruke te ju (MAC adresu) zapamti i izgradi si novu tablicu. Ovkva MAC tablica na switchu se naziva i CAM tablica (Content Addressable Memory) tablica. Sada kada switch ima u CAM tablici i Source i Destination MAC adrese od ovog (i svakog) paketa od računala A, tada on svaki paket pojedinačno paket prebaci/preklopi na interface na kojem se nalazi spojeno računalo B. Ovaj se korak ponavlja za svaki pojedini paket na mreži.

 

 

Autor: Hrvoje Horvat

Članak preuzet, uređen i objavljen uz izričito dopuštenje autora.

Izvor: Open Source Osijek

Osnove NAS i SAN sustava (i malo više) – treći dio

18. September 2016 - 15:08
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. U posljednjem članku govorimo o ograničenjima klasterskih sustava, kao i odgovoru na praktične probleme (CEPH).

 

 

Problemi klasterskih NAS i SAN sustava

Kao što smo vidjeli u prethodnom članku, klasterski NAS i SAN sustavi imaju svoje limitirajuće faktore. Kod većine je to cijena ali i ograničenja skalabilnosti. Naime veći sustavi često trebaju sve veći i veći kapacitet pohrane podataka, koji postaje ili preskup u startu ili zahtjeva vrlo velika ulaganja kod proširenja. I na kraju krajeva svi oni opet imaju svoje limite, najviše sa strane proširenja.

Kod najvećih igrača poput cloud providera pružanje usluge pohrane velike količine podataka pr. za spremanje virtualnih računala i sl. je svakodnevni posao. Proširivost ovakvih sustava je krucijalna. Rani odgovor na ovu problematiku je bio razvoj (i kasnija upotreba) sustava koji uopće ne rade na način na koji rade tradicionalni klasterski NAS ili SAN sustavi.

 

Object storage

I rodio se “Object storage”, koji podatke “promatra” i pohranjuje kao objekte, za razliku od tradicionalnih sustava kod kojih postoji neka struktura datoteka i direktorija (odnosno klasičan datotečni sustav) kod NAS sustava. Ovo je drugačije i od SAN sustava koji rade s blokovima podataka koji se spremaju u sektore na disku (logičkom ili fizičkom).

Kao što RAID kontroler “razlama” neku datoteku na male blokove podataka koje dalje raspoređuje na diskove, ovisno o RAID polju, tako i ovi sustavi “razlamaju” podatke na Tzv. objekte (uz pripadajuće metapodatke), koje onda raspoređuju na poslužitelje u klasteru.

 

Objektni “storage” trebao bi nam nuditi, skalabilni (proširivi) sustav otporan na greške. Ovakvi sustavi su se počeli znatnije razvijati od 1995. godine iako su neki radovi i ideje nastali i znatno ranije. Prvo komercijalno riješenje je razvila tvrtka “Centera Technology” koju je odmah kupila tvrtka “EMC²” te je 2002. izbacila na tržište pod tržišnim nazivom “EMC Centera”. Ova linija proizvoda se i danas razvija.

Smatra se da se u razvoj ove tehnologije od strane neovisnih investitora u prvim godinama uložilo oko 300 milijuna dolara (ova cifra je rasla sve više). Ne računajući ulaganja tvrtki poput : DataDirect Networks, Centera, Atmos, HDS, EMC2, HP, IBM, NetApp, Redhat i drugih a kasnije i od strane cloud providera poput: Amazon AWS, Microsoft (Microsoft Azure), Google (Google Cloud Storage) i drugih.

Pogledajmo listu nekoliko visoko skalabilnih, redundantnih “Object storage” sustava dostupnih pod nekom od open source licenci:

  • CEPH (info)
  • Lustre (info)
  • LizardFS (info)
  • Hadoop Distributed File System (info)
  • Moose File System (info)
  • Quantcast File System (info)
  • i dr.

 

Kod većih sustava, kao i kod sustava kod kojih korisnici NE žele kupovati super skupi hardver i softver za “Object Storage” sustave, jedno od open source rješenja je “CEPH” o kojemu ćemo govoriti dalje u tekstu.

 

 

CEPH je distribuirani objektni sustav za pohranu podataka (eng. storage) koji je dizajniran za postizanje odličnih performansi, te sustav koji je visoko dostupan i pouzdan. Osim toga on je krajnje skalabilan odnosno proširiv do razine exabyte-a.

Ovo je sustav koji je zbog svog dizajna otporan na greške i kvarove cijelih poslužitelja i/ili pojedinačnih diskova ili grupe diskova, a u većim implementacijama, cijelih ormara punih poslužitelja pa čak i cijelih podatkovnih centara a samim time i desetcima, stotinama ili tisućama diskova. Sve ovisno o konfiguraciji i raspoloživoj opremi.

Razvio ga je Sage Weil kao temu za doktorski rad na sveučilištu “University of California, Santa Cruz”. Razvoj se nastavio u tvrtki “Inktank”. Navedenu tvrtku je kupio “RedHat” 30. travnja 2014. godine (za 175 milijuna $ u gotovini). Tvrtka “Red Hat” ga nastavlja razvijati do danas (kao i zajednica koja ga koristi). Projekt i dalje planira ostati open source. Naravno, vrlo brzo nakon učlanjenja u obitelj “Red Hat” svi važniji proizvođači hardvera počeli su nuditi sustave koji su certificirani za CEPH (npr. Supermicro, HP, DELL i mnogi drugi).

Osim navedenog hardvera, CEPH se može koristiti i na bilo kojem hardveru koji imate a na kojem se može pokretati bilo koja RedHat ili Debian bazirana distribucija Linuxa, imalo novije generacije. Dakle dostupni su RPM i Debian paketi. Osim toga dostupan je i izvorni kod CEPH-a, pa je sve moguće kompajlirati i za druge distibucije Linuxa. CEPH klijent se već standardno nalazi unutar Linux kernela. Server je dostupan ionako kao open source.

Osim navedenog, CEPH je trenutno integriran s dvije platforme za virtualizaciju:

  • Open Stack
    • Integriran je sa: Nova, Cinder i Glance za “Block storage”,
    • Integriran je sa Keystone i Swift za “Object storage”,
  • Proxmox VE
    • “Block storage” za virtualna računala i za Linux kontejnere.

Koriste ga i najveći igrači, poput:

  • Amazon AWS – prema nekim informacijama, koristi se za neke dijelove S3 Storage sustava,
  • Facebook – za neke dijelove sustava,
  • CERN – prema podacima od prošle godine – koriste ga za ukupno 1+ PB (za spremanje podataka),
  • DreamHost (Web hosting provider):
    • 2+ PB za S3,
    • 3+ PB kao “Block Device” – za virtualke,
  • … i mnogi drugi (mnogi i ne žele iznositi što točno koriste iz sigurnosnih razloga).

 

CEPH iako radi s objektima na najnižoj razini, na vršnoj se može koristiti za tri različite “upotrebe” i to:

  1. Kao “Block Device” i to ako se koristi kao “Rados Block Device” (RBD) – vidljiv dalje kao “Block Device” ili logički disk koji se koristi za opću upotrebu (pr. za spremanje diskova virtualki i sl.).
  2. Kao “Object Storage” preko “RADOSGW”-a, a koji je “S3” i “Swift” kompatibilan – najčešće se koristi za snimanje/čitanje datoteka bilo kojeg tipa preko web-a (korištenjem “put” ili “get” metoda).
  3. Kao “Filesystem” tj. direktno kao datotečni sustav, preko “CEPHFS” – može se “mountati” kao običan datotečni sustav.

Pogledajte i malo više detalja :

 

 

 

Odabirom pojedinog modela (“CEPH Block Device”, “CEPH Object Stoage” ili “CEPH FIlesystem”) moramo koristiti i dodatne servise odnosno funkcionalnosti koje su nužne za ovakav rad. Prema tome potrebno je detaljnije se upoznati sa zahtjevima i načinom implementacije te konfiguracije svakoga od njih.

 

 

Prednosti CEPH-a

Osnovne prednosti CEPH-a (i u kombinaciji s Proxmox VE platformom za virtualizaciju) su:

  • (Relativno) jednostavan setup i management iz naredbene linije i grafičkog sučelja Proxmox VE.
  • “Thin provisioning” (minimalno zauzeće stvarnog diskovnog prostora s podacima).
  • Izrada snapshota podataka (datoteka) “u letu” (dok se radi na njima).
  • Automatsko popravljanje grešaka u radu (kod ispada diska, poslužitelja i sl.).
  • Ne postoji niti jedna komponenta sustava koja nije redundantna (zalihost).
  • Sustav je skalabilan (proširiv) do razine Exabyte-a.
  • Moguća je konfiguracija više segmenata (eng. Ceph Pools) polja za pohranu podataka, te razina performansi/replikacije za svaki segment.
  • Svi podaci unutar polja su replicirani, čineći cijelo polje otpornim na kvarove.
  • CEPH je moguće instalirati i na pristupačan hardver.
  • Nema potrebe za RAID kontrolerima (“zabranjena” je njihova upotreba – kao i kod ZFS-a kod kojega je to izričito ZABRANJENO!).
  • CEPH je razvijan kao “open source” prema licenci LGPL 2.1.

 

 

Kako se podaci distribuiranju unutar cijelog CEPH clustera?

Koristi se tzv. CRUSH algoritam i pripadajuća “CRUSH” tablica (koja je distribuirana na više poslužitelja), a zadužen je za distribuciju, replikaciju i redistribuciju podataka unutar CEPH clustera. CRUSH je dizajniran da omogućava raznoliku upotrebu, ovisno o veličini implementacije. U skladu s tim postoje “CRUSH” tipovi koji opisuju fizičku poziciju CEPH-a unutar cijelog CEPH clustera. Drugim riječima definiramo fizičku hijerarhijsku strukturu svakog elementa unutar hijerarhije:

  • root (predstavlja vršnu komponentu cijelog CEPH-a – nazovimu ju “cijelom planetom”),
  • region (predstavlja prvu nižu hijerarhiju – recimo kontinent),
  • datacenter (predstavlja pojedini podatkovni centar),
  • room (predstavlja “sobu” unutar podatkovnog centra),
  • pod (predstavlja logičku podjelu unutar jedne “serverske” sobe) – može predstavljati i jedan dio podatkovnog centra koji može biti podjeljen na više ovakvih potencijalno nezavisnih (što se tiče mreže, napajanje, klimatizacije i sl.) cjelina,
  • pdu “Power Distribution Unit” odnosno podjela prema izvoru napajanja (u podatkovnim centrima ih imamo više pa je ovo dobrodošla dodatna razdioba),
  • row (predstavlja jedan red s ormarima punim poslužitelja),
  • rack (predstavlja jedan ormar s poslužiteljima),
  • chassis (predstavlja jedno kućište unutar kojega može biti više poslužitelja – misli se na “Blade” učilišta),
  • host (predstavlja jedan poslužitelj),
  • osd (predstavlja, u konačnici, pojedinačni disk.

Pogledajmo kako to izgleda:

 

 

 

Osim toga, u svakoj kategoriji u hijerarhiji može biti i više elemenata na istoj razini – poput primjera na slici dolje:

 

 

 

Ovakav hijerarhijski model nam omogućava stvarno raznolike scenarije upotrebe. Stoga CEPH može biti implementiran od najmanjih sustava (npr. minimalno tri poslužitelja s diskovima) do sustava koji imaju tisuće poslužitelja s diskovima i raspoređeni u velikom broju podatkovnih centara. Pogledajmo nekoliko mogućih scenarija:

1. Dva podatkovna centra, svaki s par poslužitelja:

Izvor: http://cephnotes.ksperis.com/blog/2015/02/02/crushmap-example-of-a-hierarchical-cluster-map

Vidljivo je da unutar svakog podatkovnog centra (datacenter) imamo dva poslužitelja (host) od kojih svaki ima po tri tvrda diska (osd).

 

2. Prošireni scenarij u kojemu isto imamo dva podatkovna centra ali sada imamo poslužitelje s običnim (tvrdim diskovima) i poslužitelje sa SSD diskovima. Poslužitelji s “običnim” diskovima su u jednoj “grupi” a oni s SSD diskovima u drugoj “grupi”:

Izvor: http://cephnotes.ksperis.com/blog/2015/02/02/crushmap-example-of-a-hierarchical-cluster-map

 

2.a Logička shema dolje prikazuje i inicijalizaciju tzv. Pool-a. U CEPH terminologiji Pool je ono što bi u RAID-u bilo RAID polje diskova. Moguće je imati više “Pool”-ova, svaki sa svojom konfiguracijom. Pri tome, svaki pojedini Pool može biti za svoju namjenu: brzina, pouzdanost, vrijeme odziva, georeplikacija…

Izvor: http://cephnotes.ksperis.com/blog/2015/02/02/crushmap-example-of-a-hierarchical-cluster-map

 

U primjeru na slici u svakom podatkovnom centu imamo poslužitelje sa SSD i poslužitelje s običnim tvrdim diskovima.

  • Vršno Pool “hdd” koristi sve poslužitelje koji imaju obične diskove.
  • Vršno Pool “ssd” koristi sve poslužitelje koji imaju SSD diskove.

Kod kreiranja Pool-a (to je korak koji možete vidjeti u tekstu o radu CEPH-a) odabiremo koliko replika će imati, kao i druge parametre.

 

 

Kako se zapisuju podaci na CEPH cluster?

Nakon što je definirana hijerarhijska struktura za CEPH cluster (CRUSH) te kreiran ekvivalent RAID polja koji se prema CEPH terminologiji naziva Pool sve je spremno za rad (to je opisano negdje od koraka ”CEPH pools“). Pojednostavljeno, svaka datoteka koja se zapisuje razlama se na manje blokove koji se onda u konačnici zapisuju odnosno distribuiraju na dostupne poslužitelje i njihove diskove. Dakle, ako smo za određeni Pool na kojem radimo, kod kreiranja odabrali da je broj replika (prema CEPH terminologiji “CEPH Pool Size”) jednak tri, to znači da se podaci zapisuju na odredišni poslužitelj a potom na još druga dva poslužitelja. Tako da ćemo u ovom slučaju isti podatak imati sveukupno na tri mjesta.

Veličina bloka je standardno 4 MB ali se može promijeniti do razine više MB – ovisno o vrsti podataka koje zapisujemo ili čitamo. To znači da je za neke primjene ova veličina zadovoljavajuća a za neke je ova veličine premalena jer se zapisuju ili čitaju podaci koji zahtijevaju dohvaćanje većih blokova podataka odjednom. Promjenom veličina bloka možemo poboljšati performanse i smanjiti opterećenje sustava – zbog smanjenja broja operacija dohvaćanja velikog broja malih objekata.

Ulazno/izlazne operacije prema diskovnom sustavu kod pisanja ili čitanja se zovu IOPS-i. Klasični (magnetski) odnosno “mehanički” diskovi su znatnije pogođeni ovim operacijama od SSD diskova. Dakle SSD diskovi u prosjeku mogu podnijeti desetke, stotine i tisuće puta više ulazno/izlaznih operacija u sekundi, od mehaničkih/magnetskih diskova.

 

Proces distribucije podataka

Podaci se distribuiraju na cijeli CEPH cluster, sve njegove poslužitelje i njima dostupne tvrde diskove, te se istovremeno radi replikacija, svakog bloka podataka na drugi poslužitelj odnosno disk na njemu. Sve prema tome kako je konfigurirana hijerarhija za CRUSH te koliko replika smo odabrali za određeno CEPH polje odnosno Pool. Proces zapisivanja (i dodatno replikacije) radi se transakcijski (pogledajte ZFS i transakcijski model) – zbog konzistentnosti podataka.

Kod procesa čitanja se također prema klasterskoj tablici i CRUSH algoritmu zna (određuje/izračunava) koji blok podataka je završio na kojem poslužitelju, i na kojem disku na njemu, te se počinje s čitanjem blokova podataka – sa svih poslužitelja i svih diskova. U konačnici sve se svodi na to da se podaci zapisuju na sve poslužitelje te se kod čitanja također čitaju sa svih njih. Ovime se znatno povećavaju performanse: što više poslužitelja to je brže zapisivanje ili čitanje.

Što u slučajevima kada se primjerice:

  • poslužitelj gasi (zbog kvara, održavanje ili bilo kojeg razloga),
  • dodaje se novi poslužitelj,
  • dodaju se novi diskovi u postojeće poslužitelje ili se neki diskovi vade

… tada CEPH radi tzv. redistribuciju podataka. Pogledajmo sliku upotrebe CEPH-a na Proxmox VE platformi za virtualizaciju:

 

 

 

Na slici su vidljiva samo dva poslužitelja 225x i 224x (iako su u testu bila tri (i 223x)) od njih svaki ima po 8 tvrdih diskova:

 

 

 

Pogledajte stupac “Used” i to postotke (kreću se od 0.27 do 0.31). Kod dobro balansiranog sustava, postotak zauzeća (upotrebe) svih diskova mora biti podjednak. Za to su zaduženi automatizmi o kojima ćemo malo kasnije.

Dodavanjem novog diska, vađenjem jednog od njih ili dodavanjem/izbacivanjem cijelog poslužitelja sa svim diskovima CEPH kreće u redistribuciju svih podataka. To znači da ako smo recimo dodali novi poslužitelj s osam diskova (detaljnije se radi i o koeficjentu svakog diska ovisno o njegovom kapacitetu i drugim parametrima) podaci se preraspoređuju unutar cijelog klastera i svih diskova, tako da svi diskovi na svim poslužiteljima budu podjednako zauzeti. Ovo je vrlo važno jer se nakon dovršetka redistribucije podaci tada počinju zapisivati ili čitati i s tog novog poslužitelja ili novog diska, ravnomjerno koristeći sve resurse (poslužitelje i diskove) klastera.

Za redistribuciju kao i za replikaciju podataka, koristi se (preporuča) zasebna mreža – da se ne opterećuje “radna” mreža.

Prema CEPH preporukama, potrebno je imati dvije zasebne mreže:

  1. “Public Network” – preko nje čitamo i pišemo podatke na CEPH,
  2. “Cluster Network” – preko nje se odrađuju sve ostale radnje poput redistribucije i replikacije podataka.

 

Logička shema je vidljiva na slici:

 

Opis:

  • Podaci se spremaju kao objekti,
  • Objekti se nalaze unutar Pool-a,
  • Standardna veličina objekta je 4MB,
  • Objekti se grupiraju u “Placement Grupe” (PG). Placement Grupe su distribuirane preko više OSD-ova (diskova),
  • OSD-ovi se koriste za stvarnu distribuciju (“read” i “write” operacija) objekata na tvrde diskove,
  • “CRUSH” tablica/konfiguracija se koristi za kreiranje i kasniju upotrebu i distribuciju objekata (podataka) unutar svakog pojedinog Pool-a za cijeli CEPH klaster. (Moguće je imati i više Pool-ova s različitim konfiguracijama).

Pool promatrajte kao RAID polje.

 

Iako se podaci u konačnici zapisuju kao objekti, odnosno najmanji blok podataka je jedan objekt, standardne veličine 4MB, objekti se prvo grupiraju u tzv. “Placement” grupe. Ove “Placement” grupe prema tome povezuju niz objekata koji su dalje raspoređeni na niz OSD-ova. Pohrana objekata na OSD-ove znači pohranu na niz tvrdih diskova, raspoređenih na više poslužitelja – ovisno o Pool-u i hijerarhijskoj strukturi definiranoj u CRUSH tablici/konfiguraciji.

Prisjetimo se da “CRUSH maps” tablica/konfiguracija definira fizičku topologiju cijelog CEPH klastera koju koristi CRUSH algoritam za određivanje (izračun) točnih pozicija na koje će se podaci (u konačnici objekti) i njihove replike spremati odnosno čitati.

 

Sve operacije čitanja i pisanja se zapravo rade na razini svake pojedine “Placement” grupe a ne na razini svakog pojedinog objekta. U protivnom bi rad na razini svakog pojedinog objekta uz dohvaćanje metapodataka za svaki objekt drastično usporilo cijeli sustav. “Placement” grupe rješavaju problem s performansama, jer se transakcije događaju na razini PG-a, kao i pohranjivanje ili baratanje s pripadajućim metapodacima, koje su definirani za cijelu placement grupu a n pojedini objekt u njoj. CEPH kod čitanja ili pisanja radi na razini “placement” grupa i njihovih metapodataka (koji ih opisuju), i to transakcijski.

Osim poboljšanja performansi, uvođenjem “Placement” grupa, poboljšala se i skalabilnost (proširivost) cijelog CEPH sustava. Odnos između broja objekata i broja “Placement” grupa se može okvirno izračunati ili utvrditi testiranjem. Prema preporukama, osnovna formula za izračun je:

Za što bolji odabir odnosno izračun broja “Placement grupa” potrebo je uzeti i druge parametre (o tome kasnije).

Možemo promatrati “Placement” grupe (PG) kao segmente unutar svakog logičkog Pool-a odnosno polja (objekata) na koje se logički “spaja” svaki CEPH klijent za čitanje ili pisanje na CEPH klaster. CEPH, vršno gledano, sprema podatke unutar Pool-a, koji predstavlja logičku grupu PG-ova. Pool se brine i o tome koliko je primjerice replika potrebno izraditi kod svakog zapisivanje podataka. CEPH može raditi i “snapshot” Pool-a, u bilo kojem trenutku – kao “snimku stanja u vremenu”.

 

 

CEPH Block Device (Rados Block Device – RBD)

Mi ćemo se dalje u tekstu fokusirati na upotrebu “CEPH Block device”-a. Prema tome, druga dva modela (“CEPH Object Storage” i “CEPH Filesystem”) više nećemo spominjati.

Potrebne funkcionalnosti (CEPH Roles) za RBD

Kao što smo rekli za svaki od CEPH modela, potrebne su određene funkcionalnosti na strani CEPH poslužitelja u CEPH klasteru. Za upotrebu CEPH-a kao “Block device”-a tj. kao RBD-a, potrebne su nam dvije funkcionalnosti odnosno “uloge” poslužitelja. To prema definiciji znači da moramo imati poslužitelje od kojih je svaki zadužen samo i isključivo za jednu ulogu:

  • uloga Monitor poslužitelja (eng. Monitor Node),
  • uloga OSD poslužitelja (ovo su poslužitelji na kojima se nalaze tvrtdi diskove koje ćemo koristiti u CEPH klasteru).

Preporuka za najosnovniju upotrebu kao CEPH RBD bila bi:

  • minimalno 3 poslužitelja s ulogom “Monitor”,
  • minimalno 3 poslužitelja s ulogom “OSD”.

 

Mi ćemo, s obzirom da imamo samo tri poslužitelja s diskovima (koje želimo koristiti kao CEPH kalster za “Block device”) te stoga što što ne tražimo ekstra/turbo brz/proširiv/… sustav, napraviti slijedeće.

Uloge poslužitelja:

  • Poslužitelj 1 : OSD i MONitor
  • Poslužitelj 2 : OSD i MONitor
  • Poslužitelj 3 : OSD i MONitor.

Dakle, svaki poslužitelj će imati i OSD i MONitor ulogu. S ovime smo na malo zaobilazan način osigurali da imamo i tri OSD-a i tri MONitora.

 

Zbog čega minimalno tri (3) poslužitelja za klaster?

Većina klastera u radu rade na principu ”Quoruma“, dakle tri je najmanji broj poslužitelja u kojemu minimalna većina (dva) poslužitelja sudjeluju u dogovaranju i provjerama rada. Ovdje se radi o sustavu “glasovanja” i izbora što znači da svaki poslužitelj ima jedan glas za glasovanje. Ako su samo dva poslužitelja u sustavu glasovanja izbori su nemogući. Prema tome za sustav glasovanja je potrebno minimalno troje.

 

Quorum pojednostavljeno

U ovakvim minimalnim klasterima s tri poslužitelja, u svakom trenutku moraju biti aktivna i funkcionalna dva (2) poslužitelja. Ovo ne mora čak značiti da je jedan poslužitelj ugašen već možda ne radi kako treba, pa daje pr. krive rezultate (ili ih ne daje uopće) tada se ta zadnja dva pokušavaju sustavom “glasovanja” dogovoriti. Ovakav sustav “Quoruma” se koristi i kod klasterskih sustava za virtualizaciju pr. Proxmox VE cluster.

Zamislimo tri poslužitelja koja imaju “Cluster Map” tablicu s pripadajućom verzijom tablice i njen hash/checksum koji govori o tome da li je integritet tablice narušen.

Primjer:

Prva dva poslužitelja kažu da im je zadnja verzija v.234 te HASH : A348F3609D a treći poslužitelj tvrdi da je njegova zadnja verzija v.252 te HASH : 35D56FAB5D. Dogoditi će se to da će prva dva nadglasti treći iako ima veći broj verzije (što bi značilo da je novija) te se on IZBACUJE iz klastera te se više ne uzima u obzir koje slijedeće provjere (sve dok i on ne bude imao sve iste “podatke” kao i preostala dva). Obično kod ovakvih sustava postoje tzv. “Izbori” za klaster “Mastera”, a koji se događaju svakih nekoliko sekundi (pr. svakih 15. sekundi). Dakle u jedinici vremena unutar koje se događaju izbori (ili reizbori) za “Mastera” tj. “Primarnog” poslužitelja, svaki poslužitelj ima određeni prioritet:

  • Prvi poslužitelj – prioritet 1,
  • Drugi poslužitelj – prioritet 2,
  • Treći poslužitelj – prioritet 3.

Ako se recimo onaj s najmanjim brojem prioriteta bira za “Master”-a (tj. “Primarnog”) , tada će “Prvi poslužitelj” postati “Master” ako je sve u redu s njegovim verzijama i integritetom. Ako nije tada će “Master” postati onaj s prioritetom 2 tj. “Drugi poslužitelj” itd. Dakle svakih recimo 15. sekundi se odabire novi “MAster”.

“Master” je obično zadužen za vrlo važne operacije odlučivanja – koji će poslužitelj biti izbačen iz klastera te će on to i fizički napraviti (obično zapisati u datoteku u kojoj je lista aktivnih poslužitelja u klasteru). Ova funkcionalnost je ne zahtjevna prema resursima ali kao što je vidljivo, vrlo važna. “Master” osim toga radi još nekoliko resursno ne zahtjevnih zadaća – ovisno o vrsti i tipu klastera.

Ovo znači da ako primjerice restartamo cijeli klaster (recimo zbog nadogradnji sustava), da to radimo oprezno. Prvo jedan poslužitelj, pa kada je on potpuno funkcionalan nakon restarta, drugi, pa kada je drugi nakon restarta funkcionaln, tek onda treći.

 

 

MONitor uloga u CEPH clusteru
  • MONitor uloga mora biti instalirana na minimalno tri poslužitelja. Ona se brine o:
  • tome koji poslužitelji u CEPH klasteru su živi OSD poslužitelji i koji su sve dostupni diskovi (OSD-ovi).
  • Pohranjuje i održava 5 “tablica/konfiguracija”:
    • Monitor map – tablica s MONitor poslužiteljima,
    • OSD map – tablica s OSD poslužiteljima/diskovima,
    • PG map – tablica s PG (Placement Group)- grupama za pohranu objekata,
    • CRUSH map – “CRUSH” hijerarhijska tablica/konfiguracija,
    • MDS map (za MDS ulogu [koristi se samo za S3 ili Swift tj. za upotrebu kao “Object Storage”]).

 

OSD = Object Storage Daemon. Servis (daemon) je to zadužen za rad s objektima i njihovu distribuciju te u konačnici snimanje na tvrdi disk. Jedan OSD daemon (servis) je zadužen za jedan tvrdi disk. Dakle, OSD poslužitelj koji ima osam (8) tvrdih diskova, ima i pokrenuto osam (8) OSD daemona (servisa).

 

 

OSD uloga u CEPH clusteru

Ovu ulogu moraju imati minimalno tri (3) poslužitelja. OSD uloga je zadužena za:

  • Spremanje objekata na lokalni datotečni sustav (u konačnici na “OSD” tvrtde diskove ) i omogućavanje pristupa objektima preko mreže.
  • Za replikaciju objekata koji se zapisuju na konkretni OSD (Daemon/servis) odnosno tvrdi disk. Dakle, radi replikaciju objekata koji završe zapisani na OSD (Tvrdi disk) prema drugom OSD (tvrdi disk) – ovisno o “Cluster Map”-i i drugim parametrima (tj. o Pool-u ili ekvivalentu RAID polja koje se rsprostire na poslužitelje i diskove u CEPH klasteru).
  • Za korištenje journaling mehanizama kod zapisivanja podataka na OSD (disk) prema transakcijskom modelu. Svaka operacija zapisivanja  na CEPH sustav se radi transakcijjski s privremenim zapisivanjem transakcije na “Journaling” particiju. Kod visoko optimiziranih sustava, koriste se “Serverske” verzije SSD diskova za “Journaling”.

 

Pogledajmo kako logički izgleda cijeli CEPH, sada kada smo se upoznali sa svim važnijim elementima.

 

 

U gornjem dijelu slike je vidljiv izgled jednog OSD poslužitelja s pet tvrdih diskova. Svaki tvrdi disk mora imati minimalno jednu particiju, koju možemo formatirati s nekim od predloženih datotečnih sustava (xfs – preporuka, ext4 ili btfrs). Dodatno, potrebna nam je još jedna particija (ili zaseban disk ili polje diskova s dodatnom particijom za “Journaling”). U konačnici, na postojeću particiju koja je namjenjena za CEPH, na datotečni sustav kreira se struktura direktorija u koju se spremaju CEPH objekti kao i njihovi pripadajući metapodaci.

U donjem dijelu slike je vidljiva pozicija svakog pojedinog OSD poslužitelja (s svim njegovi “OSD” diskovima) te pozicije svih MONitor poslužitelja. Dakle vidljiv je CEPH sustav sa ukupno 30 poslužitelja i to:

  • tri CEPH MONitor poslužitelja i
  • 27 CEPH OSD poslužitelja.

 

Sada zamislimo upotrebu u kojoj imamo poslužitelje za virtualizaciju, koji koriste ovakav CEPH sustav (sa svih 30 poslužitelja) kao disk storage sustav, dakle za spremanje virtualnih diskova virtualki. Pogledajmo sliku kako to izgleda sa strane virtualnog računala odnosno platforme za virtualizaciju prema CEPH sustavu (od gore do dolje):

 

 

Ovdje je vidljiv način pristupa CEPH “Block device”-u tj. logičkom “blok” uređaju odnosno disku koji predstavlja cijeli CEPH cluster. Na primjeru su dvije česte platforme za virtualizaciju: OpenStack i Proxmox VE. Platforma za virtualizaciju za svako virtualno računalo koje koristi virtualni tvrdi disk (koji je zapravo “blok uređaj” tj. logički tvrdi disk od cijelog CEPH klastera), koristi QEMU (i Linux KVM).

QEMU i Linux KVM su zaduženi za sve potrebne funkcionalnosti da bi se virtualizacija uopće mogla koristiti. Dakle oni simuliraju sve virtualne komponente svakog pojedinog virtualnog računala (matična ploča i njen BIOS, CPU, mrežna kartica i njen BIOS, disk kontroler i njem BIOS, pripadajući virtualni tvrdi disk, …).

Qemu kao Hipervizor ima nadalje metodu za korištenje svakog pojedinog virtualnog diska koji se zapravo nalazi unutar CEPH klastera (kao “Block device”). QEMU se tada spaja kao klijent na CEPH klaster i to na točno određeni CEPH Pool te njega koristi kao da je “polje diskova” na nekom SAN sustavu (jer govorimo o upotrebi CEPH-a kao “Block device-a” tj. kao RBD).

A sada pogledajmo kako to izgleda sa strane “CEPH Block Device”-a odnosno blok uređaja, kao krajnje komponente, koja na kraju stvarno pristupa CEPH klasteru za čitanje ili zapisivanje podataka. Ovdje zapravo QEMU kao CEPH klijent pristupa CEPH polju:

 

 

Klijent 1 piše ili čita na ili sa CEPH RBD

  1. Kod procesa čitanja ili pisanja na “Block device” tj. CEPH RBD ,klijent koji žali nešto zapisati ili pročitati iz CEPH clustera koji koristi kao blok uređaj (logički kao tvrdi disk), prvo kontaktira CEPH klaster i to MONitor poslužitelje i od njih traži “CLuster Map” tablicu/konfiguraciju.
  2. CEPH cluster MONitor poslužitelj(i) mu šalju traženu tablicu/konfiguraciju.
  3. Na osnovi tablice/konfiguracije koju je dobio, klijent pomoću CRUSH algoritma traži od OSD poslužitelja i OSD diskova podatke za čitanje ili traži pisanje. Do točnih OSD poslužitelja i točno određenih OSD diskova je pomoću CRUSH algoritma izračunao koji su te od njih i traži/šalje podatke.
  4. S OSD-ova dobiva odgovor na traženi zahtjev (čitanje ili pisanje).

Klijent 2 piše ili čita na ili sa CEPH RBD – ponavlja se proces kao i za prvog klijenta.

 

 

 

Autor: Hrvoje Horvat

Članak preuzet, uređen i objavljen uz izričito dopuštenje autora.

Izvor: Open Source Osijek

Oslobodite se: FOSS na Androidu

16. September 2016 - 19:20
Zaranjamo u dubine Androidove male, ali snažne FOSS zajednice i nalazimo… blago?

 

Još prije nekoliko godina Android je bio zlatno dijete Linux zajednice. Sva ta prilagodljivost Linuxa, otvorenost platforme, pregršt mogućnosti i sve njegove slobode došli su i na mobitele! Bili su to prekrasni dani, ispunjeni entuzijazmom oko novog launchera ili custom ROM-a na kojemu nam baterija izdrži par sati više. Divna suprotnost konkurentskim, zatvorenim sustavima poput Windows Mobilea i iOS-a. Branili smo svoj Android kad su ga Apple i Microsoft napadali patentnim tužbama.

I onda, korak po korak, Google je (zanemarujući svoju krilaticu “Don’t be evil”) krenuo zatvarati Android dio po dio u suradnji s proizvođačima uređaja, stavljajući ga pod isključivo svoju kontrolu i čineći ga gotovo neupotrebljivim bez Googleovih servisa na koje se većina aplikacija na toj platformi oslanja. Većina aplikacija postajala je zatvorenog koda i vlasnička, pa tako i bivše jezgrene aplikacije poput telefona*, lomeći snove svih korisnika slobodnog softvera – korak po korak.

Tračak nade krenuo je pružati projekt F-Droid u obliku repozitorija slobodnih aplikacija za Android, stvarajući kontrast Google Play Storeu (nekadašnjem Android Marketu) koji je svakim danom imao sve više neslobodnih aplikacija.

Danas, Play Storeom dominiraju vlasničke aplikacije – niti jedna od Top 100 aplikacija nije slobodna. No negdje u njegovim dubinama, nalazi se još uvijek aktivna i jaka zajednica koja razvija slobodan softver za Android. Neke od tih aplikacija možda i koristite, a kako to običava, dobar dio njih je bolji od svojih vlasničkih alternativa.

Tako sam, u misiji da otkrijem Androidove slobodne aplikacije, krenuo u istraživanje kako bih izdvojio neke od meni omiljenih slobodnih aplikacija za tu platformu i kako bih saznao što razvijatelje motivira da učine svoje aplikacije slobodnima, umjesto da se krenu vjerojatno plodonosnijom rutom vlasničkog softvera.

 

Red Moon

Ekranski filteri su jedna od onih aplikacija za koje stvarno ne znate da su vam potrebne ili čak korisne dok ih ne počnete koristiti. Uglavnom, ideja iza ekranskih filtera je ta da ljudsko tijelo koristi plavu svjetlost kao zeitgeber – odnosno, da se ona koristi za sinkronizaciju našeg biološkog sata s prirodom, kako bismo bili budni preko dana, a spavali preko noći. Problem je što (plava) svjetlost računala zbunjuje tijelo zbog čega ono smanji proizvodnju melatonina, pa ako pišete rad (ili članak :D) do tri ujutro na računalu, možda vam se neće spavati kad legnete u krevet. Taj problem ekranski filteri nastoje riješiti kontroliranjem temperature boje svjetlosti koja iz vašeg računala izlazi, spašavajući vaš ciklus sna. Iako možda neće spasiti vaš ciklus sna nakon Star Wars maratona, vaše oči će vam svakako biti zahvalne.

Trend ekranskih filtera započeo je f.lux na Windowsu (koji se kasnije širio i na druge operativne sustave), na Linux ga je prenio Redshift, a na Android Twilight. Ako ne želite dati prava kontroliranja vašeg ekrana zatvorenoj aplikaciji ili jednostavno želite podržati slobodan softver, Red Moon je odlična alternativa.

Stiže s dva ugrađena filtera, a možete definirati vlastite uz parametre poput temperature boje, razine intenziteta i zamračenja te opcije za automatsko smanjivanje osvjetljenja uz mogućnost ručnog i automatskog kontroliranja aktiviranja filtera, bilo korištenjem vremenskog intervala ili dnevnog svjetla kao regulatora.

 

Sučelje Red Moon aplikacije

 

 

Istina, naići ćete na stvari koje će vam možda smetati poput crvenkastih screenshota ili nemogućnosti instaliranja aplikacija dok je filter pokrenut (zbog Androidovog ograničenja iz sigurnosnih razloga – automatsko pauziranje filtera kad se aplikacije instaliraju će stići u nekoj od idućih verzija aplikacije). No, evo nekoliko crvenkastih screenshota kako bih demonstrirao što ova aplikacija radi:

 

 

 

Razgovarao sam s razvijateljem te aplikacije, Marienom Raatom, oko odluke da Red Moon bude slobodan softver:

“I decided to open source Red Moon, because I love the idea of free software. Because it gives the user full control over their device, and also because it fosters innovation, by making it easy to build things on top of other projects. For example, before I started working on Red Moon I had no idea how an screen filter app would work on Android, but because Chris Nguyen had open sourced his app Shades. Without that base to build on I might not have even made Red Moon.”

Odlučio sam otvoriti kod Red Moona jer obožavam ideju slobodnoga softvera, jer ona daje korisniku potpunu slobodu nad njihovim uređajem i jer također potiče inovaciju, olakšavajući izgradnju stvari na temeljima drugih projekata. Primjerice, prije nego što sam krenuo raditi na Red Moonu, nisam imao ideju kako bi ekranski filter radio na Androidu, ali jer je Chris Nguyen otvorio kod svoje aplikacije Shades, [mogao sam naučiti]. Bez te baze za daljnju izgradnju, možda ne bih čak nikada napravio Red Moon.

Ako vam se Red Moon čini kao nešto što bi vam moglo biti korisno, aplikacija je dostupna na F-Droidu i GitHubu besplatno ili na Google Play Storeu za $2.24, u pokušaju financiranja njena razvoja. Kod aplikacije dostupan je u GitHub repozitoriju raatmarien/red-moon pod GPLv3 licencom, a bazirana je na Shades aplikaciji Chrisa Nguyena obljavljenoj pod MIT licencom.

Marien je također odlučio podijeliti 10 promo kodova za besplatnu instalaciju Red Moona s Google Play Storea čitateljima LZS-a, koji se nalaze na slici ispod:

Promo kodovi za Red Moon aplikaciju. Hvala, Marien <3

 

Slide for Reddit

Reddit, omiljena web stranica svakog prokrastinatora koji nema dovoljno zanimljivih Facebook prijatelja. Ako ne koristite Reddit, ova aplikacija vam neće koristiti, no za sve koji trebaju svoj dnevni fiks, Slide je odličan način za postići ga.

Iako je sama Reddit jezgra slobodan softver, klijenti za nju su većinom zatvoreni, uključujući i one službene, uz rijetke iznimke, od kojih je Slide možda najkvalitetnija.

Krcat mogućnostima poput alata za moderiranje, multireddite, preuzimanje sadržaja za offline čitanje tako da možete čitati Reddit i u tunelu, podrškom za višestruke račune i svim drugim što biste očekivali od Reddit klijenta, pa i više.

Sučelje je dizajnirano u skladu s Googleovom Material Design specifikacijom, tako da će se uklapati s ostatkom aplikacija na vašem uređaju, a ujedno je izuzetno prilagodljivo pa neće biti one boje koja bi trebala biti samo maaaalo svjetlija. Slide od ostatka Reddit klijenata razlikuje mogućnost pristupa svim vašim subredditima kroz kartice koje možete mijenjati klizanjem prsta između njih, kao i podrška za subreddit wikije i, zapravo, većinu mogućnosti samog Reddita.

 

 

 

Carlos Crane (u/ccrama na Redditu) je u razgovoru rekao ovo o svojim iskustvima sa slobodnim softverom:

“I decided to make Slide as a way to learn Java and Android Programming and had an idea for a sliding Reddit client, which was different from the rest of the Reddit app competition. I decided to make Slide open source to further my commitment to making Slide totally free and ad-free, and I was quite interested in having Slide available for download on F-Droid. I was also entering my freshman year of university at the time, and knew having a large open-source project on a repository I created would be a big boost to my CV and would help in finding internships and potential jobs in the Software Engineering field after getting my degree!”

Odlučio sam napraviti Slide kako bih naučio Javu i programiranje za Android te sam imao ideju za kližući Reddit klijent, što je bila drugačija ideja od ostalih konkurentskih Reddit aplikacija. Odlučio sam učiniti Slide otvorenim kako bih produbio svoju odanost pružanju Slidea besplatno i bez reklama, a ujedno sam bio izrazito zainteresiran za Slideovu dostupnost za preuzimanje na F-Droidu. Također sam upisivao prvu/brucošku godinu sveučilišta tada i znao sam da bi rad na velikom open source projektu dostupnom na repozitoriju bio velik poticaj mom CV-u i da bi pomogao u traženju staža i potencijalnih poslova u polju softverskog inžinjeringa nakon diplome.

 

“At first I did not expect much to come from putting Slide’s source on Github, but soon after release there were many members of my community willing to contribute their time to adding awesome new features and fixing the many bugs that riddled the first versions of Slide. I feel like open sourcing Slide definitely put it on the map in the FOSS and GAPPS-less community, and I have made some great relationships with Slide Github and IRC regulars. Overall, I am extremely pleased with my decision to make Slide open source and as free as possible, and I am a big proponent of open source software, especially with mobile applications.”

U početku nisam očekivao mnogo od stavljanja Slideovog izvornog koda na GitHub, ali nedugo nakon objavljivanja mnogi članovi moje zajednice bili su voljni posvetiti svoje vrijeme dodavanju zakon novih mogućnosti i popravljanju mnogih bugova koji su mučili prve verzije Slidea. Osjećao sam se kako je otvaranje Slidea definitivno ga stavilo na kartu u FOSS i GAPPS-less zajednici** i uspostavio sam odlične odnose sa čestim posjetiteljima Slideovog GitHuba i IRC-a. Sve u svemu, ekstremno sam zadovoljan sa svojom odlukom da učinim Slide otvorenim i besplatnim/slobodnim koliko je moguće te sam veliki podržavatelj open source softvera, pogotovo mobilnih aplikacija.

 

 

 

Kao i prethodno spomenuti Red Moon, Slide je dostupan na GitHubu pod GPLv3 licencom u repozitoriju ccrama/Slide te kao besplatna aplikacija na F-Droidu i Google Playu, uz mogućnost nadogradnje na plaćenu (no svejedno slobodnu) verziju koja omogućava korištenje nekih naprednijih mogućnosti aplikacije. Baziran je na JRAW-u, Java wrapperu za Reddit, pa ako tražite slobodni Reddit klijent koji će učiniti vašu prokrastinaciju ugodnijom, Slide je možda baš ta aplikacija za vas.

 

 

Wikipedia

Wikipedia mi je jedan od najdražih projekata na Internetu, a na Androidu je dostupna kroz otvoreni, službeni klijent kojeg razvija Wikimedia Foundation. Bilo da se često informirate na Wikipediji ili tek tu-i-tamo pročitate neki članak, ova aplikacija pruža izuzetno ugodno iskustvo čitanja (pa i uređivanja) slobodne enciklopedije.

 

Naslovna stranica Wikipedije u aplikaciji

 

 

Wikipedijina aplikacija prekrasno je dizajnirana te slijedi Material Design smjernice i svakako preporučam da je isprobate. Nažalost, nisam stupio u kontakt s razvijateljima ove aplikacije, no kao i gotovo svaki Wikimedijin projekt, dostupna je besplatno pod slobodnom licencom (u ovom slučaju Apache v2.0) na Google Playu i F-Droidu, a njen kod možete pronaći na Wikimedijinom Gerritu ili na GitHubu u repozitoriju wikimedia/apps-android-wikipedia.

 

 

Tisuće drugih slobodnih aplikacija

Nažalost, ne možemo pokriti svaku FOSS aplikaciju na Androidu, ali na sreću – to je zato što ih ima na tisuće. Većinu njih možete naći na F-Droidu, ranije spomenutom repozitoriju slobodnih/open source aplikacija za Android i možete za sebe vidjeti snažnost Androidove male FOSS zajednice. Naići ćete na sve, od izuzetno jakih malih projekata poput Conversationsa, odličnog open source XMPP klijenta za Android (kojeg čak možete i koristiti kao alternativni način pristupanja porukama na platformama poput Facebook Messengera), do već kultnih projekata poput Firefoxa u njihovim izdanjima za Android. Iako se na površini možda ne čini tako, Androidova FOSS zajednica diše punim plućima i svakako, ako već niste, zaronite malo u njene dubine – možda nađete blago.

*Postoje verzije većine tih aplikacija u AOSP-u kao otvoren kod, ali su značajno manje funkcionalne od njihovih zatvorenih dvojnika

**GAPPS-less zajednica je zajednica korisnika Androida koji ne koriste Googleove servise poput Play Storea

Osnove NAS i SAN sustava (i malo više) – drugi dio

11. September 2016 - 11:00
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. Prethodno smo govorili o osnovama NAS i SAN sustava, te upoznali važne savjete za njihovo postavljanje. U drugom dijelu bavimo se kompleksnijim klasterskim sustavima, kao i ZFS datotečnom sustavu. Na kraju donosimo i praktičan primjer za vježbu.

 

 

Sljedeći korak: Klasterski i/ili redundantni NAS sustavi

Što nam omogućavaju ovakvi sustavi? Osim sigurnosti, jer se sada svi podaci mogu zapisivati na dva ili više uređaja istovremeno, dolazimo i do njihovih ograničavajućih faktora, a to su:

  • Omogućavaju horizontalno skaliranje (nadogradnju) ali uz više troškove – znatno više od cijene samog drugog uređaja.
  • Ograničeni su na proširenje prostora tj. kapaciteta (proširenje dodavanjem diskova ili dodatnih uređaja). Pri proširenju dodavanjem dodatnih uređaja (ako je to uopće moguće jer za svaki model odnosno seriju redundantnih NAS uređaja postoji ograničenje do koliko se mogu proširivati) – cijene lete u nebo.
  • U konačnici daju nam redundanciju (sigurnost od gubitka podataka) uz ekstra cijenu.
  • Uz veću cijenu dobivamo i veću brzinu rada.
  • To su sve uglavnom rješenja koja su zaštićena i zatvorenog dizajna od strane proizvođača (EMC2, IBM, …).

 

Redundantni NAS sustavi

Redundantni sustavi su nešto jednostavnijeg dizajna jer se ispred njih logički nalazi sustav koji osigurava pristup jednoj jedinoj virtualnoj IP adresi kojoj klijenti i pristupaju (postoje i drugačije implementacije, ali ova je najčešća).

U pozadini se redundantni NAS sustav brine da se svi podaci uredno kopiraju s prvog (NAS-1) na drugi (NAS-2) NAS sustav. U slučaju kvara prvog (NAS-1) sustava, drugi (NAS-2) preuzima njegovu funkciju i svi podaci su sačuvani. Ovakvi sustavi su često izvedeni sa samo dva NAS sustava i rade na principu: Active-Standby (jedan je aktivan, a drugi je pričuva).

Kako logički izgledaju ovakvi sustavi? Donosimo shemu:

 

 

 

Klasterizirani NAS Sustavi

NAS sustavi koji se nalaze u klasteru (grozd) su obično znatno kompleksnijeg dizajna koji uključuje i razne dodatne hardverske i softverske komponente. Svi klijenti u pravilu pristupaju vršnoj klasterskoj komponenti, koja je često izvedena samo u softveru, a brine se za raspodjelu podataka unutar klastera na pojedine NAS uređaje.

Sama replikacija tih (odnosno svih) podataka između pojedinih NAS sustava se često izvodi i u softveru i na specijaliziranom hardveru (na slici bi to odgovaralo donjem sloju). Zbog ovakvog, složenog dizajna i potrebe za posebnim hardverom i njihova cijena je poprilično veća od redundantnih NAS sustava. Klasterizirani NAS sustavi logički izgledaju ovako:

 

 

 

Softverska rješenja

Postoje i mnoga open source softverska rješenja koja nam omogućavaju osnovnu redundanciju ili klasterizirane NAS sustave. Neka od njih su:

  • GlusterFS: Omogućava osnovne i nekoliko naprednih razina redundancije:
    • mirror – poput RAID 1 između dva NAS sustava (poslužitelja) – min. 2 poslužitelja,
    • stripe – poput RAID 0 između dva NAS sustava (poslužitelja) – min. 2 poslužitelja,
    • mirror + stripe – poput RAID 10 između dva para NAS sustava (poslužitelja) – min. 4 poslužitelja (1. i 2. u RAID 1, 3. i 4. u RAID 1, oba para poslužitelja (1., 2. + 3., 4.), vršno u RAID 0, što zajedno čini RAID 10),
  • pNFS (Parallel NFS – od verzije NFS 4.1+): paralelni/distribuirani NFS – stabilna (produkcijska verzija) je još u izradi,+
  • OCFS2 (Oracle Open Source): ima slične mogućnosti kao GlusterFS.

Svaki od njih ima svoje prednosti i mane kao i ciljanu upotrebu (za koju je i razvijan ili se pokazao kao vrlo dobar).

 

Dilema: redundantni ili klasterizirani SAN sustavi?

Slično kao i za redundantne ili klasterizirane NAS sustave – osim sigurnosti, jer se sada svi podaci mogu zapisivati na dva ili više uređaja istovremeno – ovdje imamo sljedeće mogućnosti i ograničenja:

  • Omogućavaju veće horizontalno skaliranje (nadogradnju), ali uz znatno više troškove – znatno više od cijene za NAS sustave.
  • Ograničeni su na ekspanziju prostora tj. kapaciteta (proširenje dodavanjem diskova ili dodatnih uređaja). Pri proširenju dodavanjem dodatnih uređaja (ako je to uopće moguće jer za svaki model odnosno seriju redundantnih NAS uređaja postoji ograničenje koliko ih je moguće proširivati) – cijene lete u nebo.
  • U konačnici daju nam redundanciju (sigurnost od gubitka podataka) uz ekstremno visoku cijenu i vrlo kompleksan dizajn.
  • Uz veću cijenu dobivamo i veću brzinu rada.
  • To su sve uglavnom rješenja koja su zaštićena i zatvorenog dizajna od strane proizvođača (EMC2, IBM, …).

Klasterizirani SAN sustavi logički izgledaju slično poput klasteriziranih NAS sustava, ali su znatno kompleksniji (i samim time skuplji):

 

 

Softverska rješenja za SAN i klasterske SAN sustave

I u ovoj kategoriji imamo nekoliko open source rješenja koje možete proučiti, a vrlo su česta u upotrebi – obično u kombinaciji s drugim elementima tj. komponentama (ovisno da li se radi o SAN ili klasterskom SAN rješenju):

  • DRBD8 (Distribuirani – replicirani “Block Device”) – “Distributed Replicated Block Device”: – praktično RAID1 (mirror) preko mreže prema principu: Primari poslužitelj → Sekundarni poslužitelj. Potrebna su dva poslužitelja (nije za sve primjene!),
    • DRBD9 (u aktivnom razvoju): omogućava rad s više poslužitelja, višestruke replikacije i sl.
  • iscsid (open-iscsi iSCSI initiator) servis/daemon za Linux (sam po sebi nije redundantan već pruža osnovnu iSCSI funkcionalnost),
    • device-mapper-multipath – DM-Multipath (“Device Mapper Multipathing”) servis/daemon koji omogućava redundanciju (ili load balancing) prema iSCSI uređajima (SAN storage-ima; ostaje pitanje kako sinkronizirati dva ili više SAN storage-a) – koristi se najčešće kod active/passive SAN sustava,
    • ALUA (“Asymmetric Logical Unit Assignment”) nudi load balancing prema SAN storage-u (ostaje isto pitanje sinkronizacije SAN storage-a) – koristi se za active/active SAN sustave.

 

 

ZFS – negdje između

Za početak ukratko o ZFS-u i tvrtki Sun Microsystems. ZFS je razvila tvrtka SUN Microsystems, danas u vlasništvu tvrtke Oracle. Ideja je bila riješiti dosad navedene probleme, uvesti mnoga poboljšanja i mogućnosti koje su do tada bile dostupne samo kao specijalizirana rješenja ili uopće nisu postojala, te sve integrirati u jednom “proizvodu”. ZFS je prema svojoj funkcionalnosti zapravo kombinacija:

  1. Naprednog RAID kotrolera odnosno “Logical Volume Managera” i
  2. Datotečnog sustava s naprednim sustavom kontrole (ACL) odnosno “Access Listama” za prava pristupa.

 

Izvorno je bio razvijan unutar tvrtke SUN Microsystems kao zatvoreni kod, unutar njihovog UNIX operacijskog sustava Solaris 2005. godine. Već sljedeće godine je prebačen u open source pod CDDL licencom unutar projekta OpenSolaris, te je postao sastavni dio Solaris UNIX-a v.10 sredinom 2006. godine.

Naravno, nakon što ih je kupio Oracle nakon samo nekoliko mjeseci čitav izvorni kod ZFS-a se više nije održavao od strane Oraclea. Dakle, Oracle je prestao s razvojem OpenSolarisa pa je zajednica morala sav kod prebaciti u novi projekt imena Illumos (tu se nalazio i izvorni kod ZFS-a). Zajednica koja je stajala iza projekta Illumos preuzela je zadnju verziju dostupnog koda te ga nastavila razvijati. Nakon nekog vremena je pokrenut i projekt OpenZFS koji je prihvatila još veća zajednica programera i korisnika, kao i sve veći broj tvrtki. Svi zajedno su nastavili s razvojem open source verzije ZFS-a koja se razvija i danas.

Kao i većina programa ili sustava koji su izašli iz tvrtke SUN Microsystems, ZFS je razvijan od strane inženjera za inženjere, na najbolji mogući način, kao nedostižni uzor svim ostalim tvrtkama (ili barem za 99.9999% njih).

 

Borba s open source licencama

Budući da je ZFS razvijan pod CDDL licencom (koja nije kompatibilna s Linux GPL licencom pod kojom se razvija Linux kernel) već od početka javnog razvoja (krajem 2005. i početkom 2006. godine) postalo je jasno da se ZFS ne smije direktno implementirati u Linux kernel. Za Linux je stoga osmišljeno privremeno rješenje: upotreba preko FUSE frameworka unutar kojega su se smjeli pokretati programi s drugim licencama. Problem je bio u tome što se FUSE izvršava na višoj razini iznad kernela te je samim time znatno sporiji. Ipak, ovo je kakav-takav početak.

Istovremeno s ovom borbom krenulo se u ponovni razvoj ZFS-a od nule te je 2013. razvijena prva stabilna verzija (v.0.6.1). Iste je godine pokrenut i projekt OpenZFS. Godine 2016. ZFS je uključen u Linux Ubuntu 16.0.4.

Ostali open source UNIX operacijski sustavi (poput onih koji su razvijani s BSD licencom – FreeBSD, NetBSD, OpenBSD i dr.) nisu imali problema s korištenjem ZFS-a, koji je na njima vrlo brzo zaživio. Nakon godina korištenja, testiranja i popravljanja smatra se jednom od najboljih implementacija u open source operacijskim sustavima. OpenZFS projekt također nudi implementaciju ZFS-a za Mac OS X.

ZFS je nastao u želji da se riješe problemi koje niti najnapredniji RAID kontroleri nisu mogli riješiti. Osim rješenja problema, plan je dodati i neke napredne mogućnosti koje su većini korisnika bile poželjne i dobrodošle. Neki od problema koji su poznati, a ZFS ih rješava:

  • Problemi s RAID5 i RAID6 poljima (pogledajte WIKI),
  • Problem kada želimo zamijeniti neispravni tvrdi disk novim diskom (koji na većini RAID kontrolera mora biti identičan onome koji se mijenja (npr. po broju glava/cilindara/sektora),
  • Problemi odnosno komplikacije kod proširenja RAID polja ovisno o RAID polju,
  • Problem u slučaju da nam se RAID kontroler pokvario te ga moramo zamijeniti s novim (ovo je ponekad nemoguće jer možemo izgubiti sve podatke),
  • Problem kada nam se, primjerice pokvari matična ploča te moramo prebaciti sve diskove i RAID kontroler na novi hardver (ovo ponekad može poći po zlu),
  • Problem koji nastaje s vremenom – podaci na površini tvrdih diskova postaju nekonzistentni a RAID kontroleri nisu toga svjesni sve dok ne naiđu na problematični dio površine diska. Ovaj problem se naziva “Data decay” ili “Data rot”. On je znan i kao degradacija podataka na površini diska, a tek najnapredniji RAID kontroleri imaju mogućnost korekcije (disk-scrubbing) ovakvih grešaka, ali samo do određene granice. Sličan problem nastaje i uslijed grešaka u firmware-u diska ili RAID kontrolera, “fantomskog” zapisivanja (podatak nije stvarno zapisan na površinu diska), grešaka pri zapisivanju ili čitanju, zbog pristupa prema/od krivih bokova sa površine diska i dr.

 

Dodatne funkcionalnosti ZFS-a :

  • Komprimiranje podataka “u letu”, prema konfigurabilnom tipu (algoritmu) i razini kompresije. S obzirom na dostupne algoritme za ovu namjenu i brzine, ali i mogućnosti modernih CPU-a, komprimiranje i dekomprimiranje podataka “u letu” je gotovo neprimjetno. ZFS trenutno podržava sljedeće algoritme za komprimiranje: LZJB, LZ4, ZLE i GZIP.
  • ZFS je i tzv. “Copy On Write” i “transakcijski” datotečni sustav što znači da se operacije snimanja rade transakcijski (poput transakcija u SQL bazama podataka). To znači da se svaka operacija zapisivanja završava tek kada je potvrđeno uredno zapisivanje (kada je transakcija uredno završila). Performanse su i dalje zadržane naprednim modelom transakcija te uvođenjem posebnog ZIL log-a za operacije snimanja. Ovaj “Copy On Write” model uvodi i:
    • mogućnost izrade tzv. “snapshota” odnosno snimke stanja diska/podataka u vremenu te mogućnost povratka na bilo koji trenutak kada je izrađen bilo koji od “snapshot”,
    • mogućnost izrade “klonova” odnosno verzije “snapshota” na kojoj se može i zapisivati,
  • mogućnost naprednih ACL-a (sigurnosnih postavki/prava na datotečni sustav, ali i na NFS share direktno),
  • … te cijeli niz drugih funkcionalnosti

 

 

ZFS u radu

Nakon što smo instalirali ZFS, na njega dodajemo diskove i kreiramo ekvivalente RAID poljima slično kao što ih dodajemo u neki hardverski RAID kontroler (što se konfiguracije tiče). Na taj način moguće je kreirati ekvivalente gotovo svim RAID poljima:

  • RAID 0 ( ovdje se naziva stripe),
  • RAID 1 ( ovdje se naziva mirror),
  • RAID 5 ( ovdje se naziva RAID-Z ili RAID-Z1),
  • RAID 6 ( ovdje se naziva RAID-Z2),
  • Nešto poput RAID 6 ali s tri paritetna diska umjesto dva – naziva se RAID-Z3,
  • RAID 10,
  • … i još mnogo toga.

Jedina iznimka je što sve navedeno radi bez grešaka i problema koje možemo imati na bilo kojem RAID kontroleru, a posebno ako nismo prethodno testirali sve scenarije u slučaju nekog kvara. Uz to, na današnjem hardveru to sve radi ekstremno brzo, a sve je moguće i dodatno drastično ubrzati uvođenjem:

  • L2ARC-a za ubrzavanje operacija ćitanja (read) i /ili
  • ZIL log-a za ubrzavanje operacija pisanja (write)

Za obije navedene metode (L2ARC i ZIL log) mogu se koristiti zasebni SSD diskovi koji dodatno mogu biti i u nekom ekvivalentu RAID polja kako bi se dodatno dobilo na brzini i/ili pouzdanosti.

 

Iz opisanih primjera postaje jasan odabir ZFS-a (povezan s NFS-om, SMB/CIFS ili nekim drugim NAS sustavom za dijeljenje datoteka) kao naprednog NAS sustava.

 

Jedna od naprednih stvari oko ZFS-a je i u tome što se na bilo kojem ZFS polju diskova (ekvivalent RAID polju) može kreirati poseban “Block device” koji se može koristiti kao iSCSI logički uređaj (disk). Taj logički disk je samo potrebno proslijediti nekom od iSCSI “serverskih” servisa/daemona. Ovime dobivamo upotrebu ZFS-a kao SAN sustava.

Potencijalna mana upotrebe ZFS-a leži u tome što nije trivijalan poput korištenja RAID kontrolera ili kreiranje nekog RAID polja. U svakom slučaju potrebna su vam neka naprednija predznanja. ZFS-ove mnogobrojne opcije i funkcionalnosti početnicima mogu izgledati komplicirane, ali su profesionalcima definitivno vrlo važne.

Na kraju, sigurno ne želite da vam NAS ili SAN sustav “složi” netko onako usput, za sat-dva, uz svoj svakodnevni posao koji obično nema veze s ovom temom, jer bi mogli zažaliti kada nešto krene po zlu. Namjerno nisam napisao “ako” već “kada” jer je uvijek pitanje vremena kada će doći do problema i dali ćete ih biti u stanju riješiti te koliko vremena i novaca će vam biti potrebno za tu “igru”. O ZFS-u su napisane knjige i knjige te više nećemo ulaziti dublje u ovaj najbolji “Volume Manager” i datotečni sustav svih vremena. O njemu detaljnije u nekom od slijedećih postova.

 

 

Proces učenja

Ukoliko tek krećete s učenjem, prvo si dajte nekoliko dana da bi dobro savladali:

  1. osnove Storage tehnologija te napredne mogućnosti,
  2. osnove rada RAID kontrolera te njihove mogućnosti, način rada i dodatne opcije (uz njihovo razumjevanje).

Na kraju dodajte još koji dan za proučavanje foruma koji se bave ovom tematikom, kao i foruma od strane proizvođača s pitanjima i odgovorima vezanim za pojedine (konkretne) modele RAID kontrolera koji vam je ušao u użi izbor (ako ste odlučili da čete koristiti RAID kontroler a ne ZFS).

Kada završite prvu fazu učenja i nakon što ste kupili RAID kontroler, slijedi novo učenje:

  • proučite napredne parametre i testirajte ih (istovremeno testirajte i performanse sustava ovisno o promjeni parametara),
  • testirajte razne scenarije havarija za barem nekoliko RAID polja (pogledajte dolje za ZFS) i povrata podataka, mjerite i vrijeme koje potrebno da se sve vrati na “staro stanje” – i vrijeme potrebno za “recovery” je ponakad ključno za konačan odabir vrste RAID polja (RAID 1, RAID 5, RAID 6, RAID 10, …),
  • sve dobro i detaljno dokumentirajte (ovo ćete najviše cijeniti kad vam se dogodi prva veća greška – višestruko će se isplatiti dani i dani testiranja i dokumentiranja).

Ako ste krenuli prema ZFS-u tada krenite s proučavanjem osnova na WIKI ZFS info. Proučite si i pripremite upute iz nekoliko izvora te odvojite još par tjedana za upoznavanje i isprobavanje te smišljajte razne scenarije havarija (i smislite/pronađite najbolje riješenje). U nastavku donosimo primjer za vježbu.

Kreirajte jedno ZFS polje:
a.Mirror (Ekvivalent RAID 1).
0. Kreirajte share (NFS ili SMB/CIFS), dodjelite ovlasti i dobro ih naučite (proučite kako se dodjeljuju, nasljeđuju, ne nasljeđuju i sl.), Zapišite određene podatke i pratite performanse kod zapisivanja i čitanja (s različitim parametrima).
1. Izvadite jedan disk iz ZFS polja, pa ga vratite.
     2. Ponovite 1. korak, ali prije vraćanja diska ga obrišite.
3. Zamijenite mjesta diskovima (prvi na mjesto drugog i sl.).
4. Izvadite sve diskove, reinstalirajte cijelo računalo pa vratite diskove i pokušajte importirati staro ZFS polje
b. Obrišite postojeće ZFS polje i kreirajte novo (Pr. RAID-Z). Ponovite sve točke: 0-4.
c. Obrišite postojeće ZFS polje i kreirajte novo (Pr. RAID-Z2). Ponovite sve točke: 0-4.
d. Obrišite postojeće ZFS polje i kreirajte novo (Pr. RAID-10 : 2 x “mirror” u “stripe”). Ponovite sve točke: 0-4.

Napravite što više scenarija te:

  • sve isprobajte (testirajte i performanse) i dokumentirajte,
  • isprobavajte rad s osnovnim postavkama, pa sve probajte optimizirati (za svaki scenarij) – testirate i stabilnost i izdržljivost ovisno o scenariju i opcijama koje ste mijenjali – uz:
    • restart poslužitelja,
    • restart servisa/daemona,
    • namjerno stopirane servise/daemone (uz ručno pokretanje – naknadno).

U ovim koracima/scenarijima ćete naučiti najviše, te se pribliżiti produkcijskoj primjeni i znanju o ovim sustavima.

 

 

Autor: Hrvoje Horvat

Članak preuzet, uređen i objavljen uz izričito dopuštenje autora.

Izvor: Open Source Osijek

Osnove NAS i SAN sustava (i malo više) – prvi dio

10. September 2016 - 18:02
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:

  1. Kreiranje nekog RAID polja diskova koje ćemo dalje koristiti kao jedan “logički” disk,
  2. Particioniranje “logičkog” diska koji ćemo koristiti za dijeljenje datoteka,
  3. Formatiranje kreiranih particija (Linux ext3/4, Linux XFS, Windows NFS ili sl. – ovisno o operacijskom sustavu NAS uređaja i našim potrebama),
  4. Mountanje formatirane particije u neki direktorij,
  5. 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:

  1. Specijalizirani open source OS poput:
    • OpenFiler,
    • OpenMediaVault,
    • FreeNAS,
    • Nas4Free,
    • NexentaStor (Nexenta Community Edition),
  2. … ili neko od komercijalnih rješenja za NAS/SAN:
    • NexentaStor (Nexenta Enterprise Edition),
    • TrueNAS,
    • Open-e,
  3. … 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

Kako je slobodan softver izgubio bitku

4. September 2016 - 12:17

Trideset i jednu godinu nakon manifesta za slobodan softver, kojeg je Richard Stallman objavio pod naslovom “GNU Manifesto” i time postavio ideološki kamen temeljac pokretu za slobodan softver, može se reći da situacija nikad nije izgledala gore iz perspektive osnovnih ciljeva slobodnog softvera. Slobodan softver je osmišljen s nakanom da obrani slobodu korisnika računala, a 2016. godine korisnici su daleko veći robovi “svojih” mašina i mobitela nego ikad prije.

Iako slobodan softver i otvoreni standardi nikad nisu bili rasprostranjeniji kao danas, ono što se promijenilo jest prisutnost digitalne tehnologije i njezina integracija u svakodnevnom životu. Možda je Linux prisutan na milijardama uređaja diljem svijeta, ali to je svojevrsna Pirova pobjeda jer je Linux u većini slučajeva postao samo platforma za dostavljanje novih vlasničkih programa i usluga. U doba nastanka Stallmanovog manifesta bilo je važno da korisnik kontrolira ondašnju okolinu u kojoj radi te podatke koje koristi i zato je zahtijevao slobodu da posjeduje i mijenja tekstualni editor koji koristi, kompajler i u konačnici operacijski sustav. Danas se može reći da korisnik ima na raspolaganju slobodan editor, zapravo mnogo njih, slobodan internetski preglednik, zapravo više njih, i masu drugih slobodnih programa različite namjene te u konačnici i slobodan operacijski sustav, međutim okolina i način na koji danas ljudi koriste računala su se značajno promijenili: usluge u tzv. oblaku, društvene mreže, pametni telefoni sa svojim aplikacijama, opamećeni televizor i set-top boxovi novi je kontekst u kojem prosječan korisnik digitalnih tehnologija provodi većinu svog vremena. Ono što predstavlja poraz slobodnog softvera je to što sve te platforme i konteksti ne osiguravaju korisniku nikakve slobode, već nasuprot, kontroliraju njegovu svakodnevicu. Ne da više ne postoji mogućnost da se tuđi podaci i sadržaji isporučuju i prikazuju na način na koji korisnik želi (zbog sveprisutnog Digital Right Managmenta – DRM-a), nego u sve više slučajeva nije moguće zadržati nadzor ni nad vlastitim podacima koje korisnik stvara kroz razne internetske platforme. Flash na webu živi posljednje godine, ali zato EME, Encrypted Media Extensions, vlasnička platforma za distribuciju multimedijalnih sadržaja, dolazi kao njegov dostojni nadomjestak koji je prihvaćen i od strane Mozille. Izgleda da je i Mozilla podigla bijelu zastavu i ugradila tu tehnologiju u Firefox.

Najgora je noćna mora slobodnog softvera da računalo, pametni telefon i drugi uređaji postanu samo terminal za posluživanje sadržaja “izvana” konačno se i obistinila. Osim podataka koji se nalaze na raznim poslužiteljima nepoznate lokacije, također se i softver koji ih obrađuje i izračunava nalazi izvan mogućnosti korisnika da ih prouči i nadzire. Pod pojmom softver kao usluga (SaaS), koji svakim danom postaje sve prisutniji, skriva se cijeli đavolji orkestar mehanizama koji oduzimaju slobodu korisnika. GMail, Viber, Skype, Flickr, Googleove usluge za Android, Appleov iOS, Dropbox, Netflix, cijela Facebookova platforma – samo su nasumično odabrani primjeri ovog problema i da stvar bude apsurdnija svi oni pod svojim skutima uvelike koriste slobodan softver, ali korisnik od tog slobodnog softvera nema apsolutno ništa. Kad WhatsApp podijeli podatke korisnika s Facebookom, nakon što ih je “transparentno” pokupio s korisnikovog mobilnog uređaja, može li korisnik ikako utjecati na to? Može li korisnik promijeniti program za gledanje Netflixovog filma da mu prikaže vlastite podnaslove? Može li Skype korisnik na Linuxu možda sudjelovati u konferencijskom pozivu? Može li jednostavno isključiti nove reklame u Facebooku? Odgovor je na sve: ne može.

Na prvu loptu, čini se da postoje razni načini da se izbjegne taj zatvoreni ekosustav i receptura je stara, ali cijena je svakim danom sve viša i viša. Da bi sačuvao ili vratio kontrolu nad svojim podacima, a opet ne ostao u prošlim desetljećima, korisniku ostaje mogućnost podizanja i održavanja vlastitog poslužitelja sa svim slobodnosoftverskim web aplikacijama i servisima, međutim znanje, novac i vrijeme koje je za to potrebno daleko nadmašuje ono što je pojedinac koji se ne bavi sistemskim administriranjem ili razvojem weba (polu-)profesionalno voljan izdvojiti. No čak i da uspije izbjeći stranputice poput GMaila, Dropboxa, Skypea, Flickra i drugih usluga osiguravajući alternative koje kontrolira, dolazi iduća plima problema manifestirana u sveopćoj digitalizaciji usluga koje nisu primarno vezane za računala i digitalne podatke u užem smislu.

Internetsko bankarstvo, kartično plaćanje, javne usluge i prijevoz, posudba knjiga, filmova i serija, kupovina roba, potrošačka elektronika, dječje igračke, osobni automobili i mnoge druge stavke prilikom svoje digitalizacije zahtijevaju ili će zahtijevati neki oblik softvera kao usluge što će u većini slučajeva biti neki oblik vlasničke platforme ili barem one ovisne o vlasničkoj platformi. Čak i kad je web ili mobilna aplikacija financirana javnim novcem jer se radi o javnoj usluzi, onda je u pravilu dostupna samo preko vlasničkih kanala distribucije, Google Playja ili iTunesa, jer to je, kako kažu, sigurnije za distribuciju i zaštitu od malicioznih aplikacija te zaštitu autorskih prava. Prva je pomisao da je možda u tom slučaju moguće naprosto odbiti koristiti sve te aplikacije i vlasničke usluge. No tada si taj “poludjeli” pojedinac veže ruke jer više nije jednostavno naručiti taksi, popuniti poreznu prijavu, kupiti kartu za vlak ili avion, platiti  račun za komunalne usluge, unajmiti gradski bicikl, iskoristiti nove funkcionalnosti potrošačke elektronike ili dječjih igračaka, posuditi knjigu, pogledati novu seriju ili film, poslati poštanski paket, platiti račun karticom u trgovini… a u budućnosti će se taj skup vjerojatno proširiti i na to da se bez Googleovog, Appleovog ili Facebook računa i neke pripadajuće vlasničke platforme neće moći ni kupiti osnovne namirnice u lokalnoj trgovini mješovitom robom, a možda ni završiti školovanje. Baš kao što već danas treba skinuti aplikaciju preko tih vlasničkih platformi da bi poslušao poruku svog kandidata možda mu omiljene političke stranke.

Vjerojatno će još neko vrijeme postojati stari kanali naručivanja usluga i roba, interakcije s birokracijom, i to telefonom, papirnatim formularom ili posebnom kasom ili šalterom za “tehnološki zaostale”, no oni će biti sve rjeđi i opskurniji kako će se većina stanovništva “digitalizirati”: “Ako ne želite instalirati našu aplikaciju za izdavanje potvrde o položenom vozačkom ispitu možete doći na šalter broj 5. utorkom i četvrtkom od 9:30 do 10 sati.” završi govorni automat MUP-a kojeg planiraju ukinuti jer ga nitko ne zove mjesecima. Tada će nepokoreni pojedinac u želji da kontrolira svoje podatke i softver ostati na margini društva – pustinjak i čudak koji se očito, sa stajališta većine, ne može prilagoditi modernim tokovima. Ili se prilagodi ili živi u šumi. I tu je slobodan softver izgubio svoju bitku jer pitanje slobode je oduvijek pitanje individualnosti, a ako se svi moraju ponašati isto, onda slobode u suštini nema, već samo “sloboda” da se pojedinac ponaša onako kako je zamišljeno i propisano – zašto bi uopće želio drugačije? Što je društveni sustav efikasniji u nametanju svojih normi i procedura, to je manje slobode na pojedincu da zadrži svoj identitet.

Razlog ovakvog raspleta borbe za slobodan softver kriva je strategija samog pokreta, a to je da se on bazira na tehnološkim rješenjima i utjecanjem na svijest pojedinca, a ne jasnom na političkom stavu i utjecaju na društvo u cjelini. Umjesto iscrpljivanja na slobodnim implementacijama vlasničkih programa, više bi se postiglo insistiranjem na zakonskom okviru koji bi garantirao te slobode koje pokret promiče, što je svojevremeno dobro uočio Eben Moglen. U početku pokreta za slobodan softver može se još pričati o postojanju nekakvoga ideološkog okvira, međutim dolaskom i prevladavanjem termina softver otvorenog koda svaka ambicija za političkom artikulacijom problema je nestala. Danas je slobodan softver, odnosno softver otvorenog koda omiljen svakome, pa i starim dušmanima poput Microsofta, ali bez ikakvoga značenja za slobodu korisnika. Tako da se popularna u krugovima Linux korisnika Red Hatova reklama za Linux “Prvo te ignoriraju. Zatim ti se smiju. Zatim se bore protiv tebe. I tada pobjeđuješ.” može nastaviti pojašnjenjem “…zato što si u procesu toliko izgubio svoj smisao da više nikome ne smetaš.”

Baš kao mnogi drugi progresivni pokreti koji su se javljali u različitim kontekstima u želji da isprave nepravde i kontradikcije sustava, tako je i slobodni softver kapitulirao jer nije djelovao politički i nije udarao u glavu problema. Na primjer, isti epitaf ide i pokretima za očuvanje okoliša gdje sve vođe svijeta unisnono pjevaju o važnosti očuvanja okoliša, a zapravo samo govore o biznisu preprodaje kvota za stakleničke plinove i rasipanju javnog novca na kojekakve privatne komercijalne inicijative koje po cijenu vlastitog preživljavnaja na oltaru tržišta ne mogu staviti okoliš ispred profita. U oba slučaja forma je tu – svima su puna usta i ekologije i softvera otvorenog koda, ali izvornog sadržaja nažalost više nema.

Tek udruživanjem snaga sa svim drugim progresivnim pokretima i formiranjem radikalnih političkih zahtjeva, slobodan softver može oživjeti nadu da je ovo samo izgubljena bitka, ali ne i rat. Ipak nije vjerojatno da će slobodan softver biti nosilac takve globalne promjene – on jedino što može jest prepoznati i pridružiti se onim pokretima koji imaju veću mobilizacijsku snagu i tako sačuvati svoje ideje i vrijednosti za jedno novo društvo – društvo slobodnih i kreativnih, društvo u kojem svaki pojedinac, svako dijete može rastaviti, ispitivati, učiti i doživljavati svijet oko sebe te tako stvarati nove vrijednosti, pronalaske, rađati nove ideje i ostvariti se i kao umjetnik i kao inženjer i kao filozof. Društvo pojedinaca koji su stvaraoci i mislioci, a ne konzumenti.

Sretan 25. rođendan Linuxu

25. August 2016 - 8:07
Prije četvrt stoljeća, započela je priča o softveru kojeg gotovo većina ljudi u današnjem svijetu svakodnevno koristi u uređajima koji nas okružuju, nesvjesni njegovog postojanja i njima je današnji dan kao i svaki drugi. Oni, koji su se ipak odvažili i “zagrebli” malo dublje ispod površine, znaju da danas ipak nije dan kao i svaki drugi jer je 25. kolovoza 1991. godine Linus Benedict Torvalds predstavio Linux, inspiriran Minixom.

Sretan 25. rođendan Linuxu

Linux za sve, povodom ovog posebnog dana, želi svim članovima Linux zajednice sretno i dugo korištenje njihovih omiljenih Linux distribucija te da svojim nesebičnim radom i zalaganjem pomognu da Linux živi još dugo.

Linukše, sretan ti 25. rođendan!