ISCSI

Allikas: Vikipeedia

iSCSI (lühend ingl. nimetusest Internet Small Computer System Interface) on üks internetiprotokollistikul põhinev versioon salvestivõrgust (SAN'ist), mis võimaldab võrgu abil mäluseadmeid jagada. iSCSI töötati välja IBM’i ja CISCO poolt[1] ning standardiseeriti Internet Engineering Task Force'i (IETF'i) poolt[2].

Erinevalt füüsilistest SCSI standarditest on SCSI käskude edastamisel võrgupakettide abil võimalik andmeid vahetada pikkade vahemaade tagant. iSCSI protokoll on SAN'i tehnoloogia kiiruse ja võimekuse arendamisel üks tähtsamaid suundi. Tänu TCP/IP võrkude laialdasele levikule saab iSCSI standardit kasutada, et vahetada andmeid kohtvõrgu (LAN'i), laivõrgu (WAN'i) või interneti abil.[3]

Eellugu[muuda | redigeeri lähteteksti]

Keskselt hallatavate mäluseadmete nõudluse kasvades ja serveritega mitte otseühenduses olevate mäluseadmetaga suhtlemise tarviduse kasvades loodi eri meetodeid antud vajadustele vastamiseks. Enimlevinud tehnoloogia selles vallas enne iSCSI tehnoloogiat oli kiudkanal(ingl. Fibre Channel) ehk FC, mis oli küll kiirem, aga samas omajagu keerulisem ja kallim, kui tol ajal levinud teised tehnoloogiad. Lisaks oli FC'il puudujääke aadressihalduses ja turvalisuses. Nendele puudustele vaatamata sai kiudkanalist standard, mis on levinud paljudes ettevõtetes. Kiudkanali kallidus ja keerulisus olid üheks peamiseks takistuseks SAN'i eeliste ning võimaluste efektiivsemal ärakasutamisel. FC'i loojate esmane lubadus oli võimaldada 1 Gb/s andmeedastuskiirust. Kui Ethernet saavutas samuti kiiruse 1 Gb/s, oli aina reaalsem mõte, ühendada seadmed omavahel Etherneti abil ja edastada SCSI pakette internetipakette kasutades. Sellest tulenevalt alustati iSCSI standardi loomisega. [4]

Ajalugu[muuda | redigeeri lähteteksti]

  • 1998 – IBM’i uuringugrupp lõi töötava iSCSI lahenduse.
  • 03.2000 – Algset iSCSI varianti esitleti IETF’ile. Peaautoriks Julian Satran, IBM’i Haifa uurimislabor.
  • 09.2000 – Demonstratsioon CERN’is ja Network World’is.
  • 06.2001 – Esimene iSCSI kasutamine tööstuses.
  • 08.2001 – Linux’ile loodi alglaadimisvõimalus üle iSCSI (iBoot).
  • 02.2002 – Windows’ile loodi alglaadimisvõimalus üle iSCSI.
  • 08.2002 – iSCSI spetsifikatioon läbib IP Storage Working Group’i viimase läbivaatuse.

[1]

Tööpõhimõte[muuda | redigeeri lähteteksti]

iSCSI on oma olemuselt standard, mis võimaldab kahel osapoolel vahetada SCSI käske kasutades selleks TCP/IP võrku. Võrgu vahendusel emuleeritakse füüsilise SCSI liideste olemasolu, luues selle abil SAN. Erinevalt paljudest teistest salvestivõrgu protokollidest ei vaja iSCSI spetsiaalseid kaableid, kuna kasutab andmevahtuseks tavalist TCP/IP võrku. Selle tulemusena on iSCSI odavamaks ja lihtsamaks alternatiiviks näiteks samuti populaarsele FC tehnoloogiale.

Algataja[muuda | redigeeri lähteteksti]

iSCSI algatajaks (ingl. iSCSI initiator) kutsutakse klienti iSCSI salvestivõrgus. iSCSI algatajal on võimalik ühenduda serveriga (iSCSI objektiga), millele ta saadab IP-pakettide abil SCSI käske.

On olemas järgnevad iSCSI algataja tüübid: [5]

  1. iSCSI riistvarapõhine algataja (ingl. iSCSI Hardware Initiator): PCI-X või PCIe kaart, mis hõlmab endas iSCSI funktsionaalsust. Sellist kaarti nimetatakse iSCSI HBA-ks ehk iSCSI peremeesseadme siini adapteriks (ingl. Host Bus Adapter). Serveri operatsioonisüsteemis paistab selline seade olevat RAID kontroller või kiudkanali HBA. iSCSI HBA abil on võimalik läbi iSCSI teostada serveri või personaalarvutite alglaadimist.
  2. iSCSI tarkvarapõhine algataja(ingl. iSCSI Software Initiator): iSCSI algataja, mis on realiseeritud läbi tarkvara. Kõiki arvutusi antud konfiguratsioon puhul sooritab peremeesseadme protsessor, mitte teised riistvarakomponendid. Tänu tänapäevaste protsessorite suurele jõudlusele ei ole sellise lahenduse kasutamine enam probleem. iSCSI objektidega suhtlemiseks saab kasutada tavalisi võrgukaarte.

Objekt[muuda | redigeeri lähteteksti]

iSCSI SAN'is asuvat serverit nimetatakse iSCSI objekiks. Selline objekt võib omakorda sisaldada eri loogilisi üksuseid (LU’sid).

On olemas kahte tüüpi iSCSI objekte: [5]

  • riistvarana, ehk iSCSI kettamassivina
  • tarkvarana, ehk iSCSI objekti tarkvara installatsioonina tavalises serveris. Nii Linux’il kui ka Windows’il on vastav tarkvara olemas.

iSCSI serverites on kasutatakse iSCSI objekte erinevalt: Mõnedes iSCSI kettamassivides on täpselt üks iSCSI objekt (kettamassiiv ise), aga teistel ISCSI kettamassiividel on mitu iSCSI objekti. Kas siis üks iSCSI objekt iga füüsilise mäluseadme kohta, üks iSCSI objekt iga loogilise üksuse (LU’i) kohta või kombinaatsioon mõlemast eelnevast.

iSCSI Discovery[muuda | redigeeri lähteteksti]

iSCSI Discovery protsessi eesmärk on võimaldada algatajal leida objekte, millele tal ligipääs on, ning vähemalt üks aadress, mille kaudu on võimalik objektile ligi pääseda.

iSCSI Discovery protsessi võib kirjeldada kahe põhilise päringuga:

  • Milliste iSCSI objektidega peab algataja proovima ühendust saada?
  • Kus on konkreetne iSCSI objekt nimega „xxxxxx”?

iSCSI algataja võib iSCSI objekte leida mitmel eri viisil:

  1. Seadistades algatajas objektide aadressid.
  2. Peale algatajas vaikimisi objekti aadressi seadistamist teeb algataja päringu iSCSI nimede kohta, kasutades selleks spetsiaalset SendTargets käsku.
  3. Kasutades teenuseotsingu protokolli (SLP’d) multicast pärningut, millele objektid võivad vastata.
  4. Saates päringu andmeladustusserveris asuvasse nimeserverisse, et tagastada nimistu objektidest, millele ta võib ligi pääseda

iSCSI Login ja Negotiations[muuda | redigeeri lähteteksti]

Enne, kui iSCSI algatajad saavad saata objektidele SCSI käske, peab kõigepealt looma iSCSI sessiooni. Session koosneb antud juhul ühest või mitmest TCP ühendusest. Algataja loob kõigi vajalike objektidega TCP ühendused ja peale seda alustatakse sisselogimisprotseduuriga. iSCSI sisselogimismehhanismi kasutatakse TCP ühenduste loomiseks algataja ja objekti vahel. See teeb kindlaks ühenduse osapooled, paneb paika sessiooniparameetrid ja teeb vastava ühenduses osaks iSCSI sessioonist. [4]

Algataja alustab sisselogimisprotsessi ühendudes TCP pordiga samal ajal, kui objekt seda porti sissetulevate ühenduste osas kuulab. Ühel iSCSI objektil võib sama algatajaga olla mitu erinevat TCP ühendust, mida võib ükshaaval sessioonist kustutada. Sisselogimisprotsessi ühe osana võivad osapooled nõuda üksteiselt autentimist ja turvaprotokolli kasutamist ülejäänud sessiooni vältelt. Peale sisselogimisprotsessi lõppu on iSCSI session täieliku funktsionaalsuse faasis - algataja võib saata SCSI käske ja andmeid erinevatele loogilistele üksustele objektseadmes. [4]

Adresseerimine[muuda | redigeeri lähteteksti]

Peamine adresseeritav üksus iSCSI puhul võib olla algataja, objekt või mõlemad korraga. iSCSI nime konstrueerimise nõuded on kirjas [RFC3720] standardis.Nii algatajatel kui objektidel on vaja eristumiseks nime, et iSCSI mäluressuresse saaks hallata olenemata asukohast. iSCSI nimi on unikaalne tunnus, et sooritada andmepakettide autentimist ja eristada iSCSI mäluresursse. Et kindlustada kadudeta iSCSI pakettide liikumist on iSCSI nimed seotud kindlate seadmete mitte võrgukaartidega.

iSCSI standardis on nimed ja aadressid rangelt eristatud: [6]

  • iSCSI nimi on asukohast sõltumatu ja püsiv iSCSI osapoole tunnus, mis on tema eluea jooksul alati sama.
  • iSCSI aadress määratleb peale iSCSI nime veel ka tema asukoha. Vastav aadress koosneb domeeninimest või IP aadressist, TCP pordi numbrist(ainult objekti puhul) ja iSCSI osapoole nimest. Ühel iSCSI osapoolel võib olla ükskõik mitu aadressi, mis võivad pidevalt muutuda, eriti kui nad on määratud DHCP abil.

iSCSI aadress[muuda | redigeeri lähteteksti]

Igal iSCSI osapoolel on üks või mitu aadressi, mille abil on määratud viide konkreetsesele seadmele. iSCSI aadress koosneb iSCSI nimest ja transpordiaadressist.

Transpordiaadress on kujul:

<domeeninimi>[:<port>]

Kus <domeeninimi> võib olla üks kolmest:

  1. IPv4 aadress, kus neli numbrit vahemikus 0…255 on eraldatud omavahel punktidega.
  2. IPv6 address, kus numbrid kuueteistkümnendsüsteemis on eraldatud üksteisest koolonitega ja kogu aadress on ümbritsetud „[” ja „]” poolt.
  3. Täispikk domeeninimi ehk peremeesseadme nimi eeldusel, et see ei ole IPv4 ega IPv6 aadress.

iSCSI objektide puhul ei ole <port> aadressis kohustuslik ning sel puhul on vaikimisi pordiks 3260. Algatajate puhul on <port> aadressist välja jäetud.

iSCSI nimi[muuda | redigeeri lähteteksti]

iSCSI nimesid kasutatakse, et:

  • Teha kindlaks algataja ja objekt, mille poole võib pöörduda rohkem kui ühe IP-aadressi ja TCP pordi kaudu.
  • Eristada algatajaid, objekte või mõlemaid, mille poole võib pöörduda IP-aadressi või TCP pordi kaudu.
  • Tunda ära eri viiteid samadele algatajatele või objektidele, mille poole võib pöörduda eri IP-aadressi või TCP pordi kaudu.
  • Algatajad ning objektid tunneksid üksteist ära olenemata IP-aadressi ja TCP portide kaardistamisest vahendavas tulemüüris.
  • Neid saaks kasutada kolmanda osapoole käskudes sümboolse aadressina.

iSCSI standardis on määratud kaks peamist nimetamise standardit

"iqn." ehk iSCSI kvalifitseeritud nimeformaat[muuda | redigeeri lähteteksti]

See formaat loodi, et anda firmadele võimalus järjestikele alluvatele osakondadele vastavalt oma seadmeid nimetada. iSCSI kvalifitseeritud nimekuju on defineeritud [RFC3720] standardi järgi ja sisaldab:

  • Sõne "iqn"
  • Kuupäev kujul aasta-kuu, mis näitab aega millal firma registreeris domeeni või alamdomeeni, mida kastutatakse vastutava nimetaja sõnes.
  • Firmapõhine vastutava nimetaja sõne, mis koosneb paikapidavast tagurpidiolevast domeeni või alamdomeeni nimest.
  • Valikuline osa, mis algab ":"-ga ja millele järgneb firma valikupõhine sõne. See osa peab tegema iga määratud iSCSI nime unikaalseks.

Näide iSCSI kvalifitseeritud nimekujust:

            Firmapõhine   Vastutava nimetaja alamgrupp

             vastutav     ja/või sõne, mis on defineeritud

Tüüp Kuup.   nimetaja     firma või firmapõhise vastutava nimetaja poolt

+--++-----+ +---------+ +--------------------------------+

|  ||     | |         | |                                |

iqn.2001-04.com.example:diskarrays-sn-a8675309

Kusjuures on näha, et firmapõhine vastutav nimetaja (ingl. Organizational Naming Authoroty) „com.example” on tagurpidi domeeninimi. See, et iSCSI nimedes kasutatakse domeeninime ei tee neist veel aadresse, vaid neid kasutatakse ainult unikaalsete seadmete omavaheliseks eristamiseks.

"eui." nimeformaat[muuda | redigeeri lähteteksti]

Antud nimeformaat võimaldab seadmete vastutaval nimetajal kasutada IEEE EUI-64 identifikaatoreid iSCSI nimede määramisel.

Näide iSCSI nimest eui. formaadis:

Tüüp EUI-64 identifikaator(ASCII-kodeeritud, kuuteistkümnendsüsteemis)

+--+ +--------------+

|  | |              |

eui.02004567A425678D

iSCSI alias[muuda | redigeeri lähteteksti]

Alias iSCSI alias on UTF-8 kodeeringus sõne, mida võib kasutada kirjeldava nimena algataja ja objekti puhul. Aliase seadmisel ei rakendata samasuguseid nõudeid kui iSCSI nime puhul. Aliast sisaldavate sõnede vahtetamine algataja ja objekti vahel toimub sisselogimise hetkel. Vastavat sõne võib kasutada kasutajaliideses seadmete paremaks eristamiseks. Aliasepõhiselt ei tohi kindlaks teha, eristada, ega autentida algatajaid ja objekte. Alias on muudetava pikkusega sõne, mille pikkus on 0…255 tähemärgi vahel. Tema eesmärk on teha inimestel nii algatajad kui ka objektid omavahel kergesti eristavaks. [6]

Näide aliaste kasutamisest:

+--Ühendatud antud objektidega---------------------------------

|

|  Alias          Objekti nimi

|

|  Oracle 1       iqn.1995-04.com.example:sn.5551212.target.450

|  Local Disk     iqn.1995-04.com.example:sn.5551212.target.489

|  Exchange 2     iqn.1995-04.com.example:sn.8675309

|

+--------------------------------------------------------------

iSCSI käsud ja vastused[muuda | redigeeri lähteteksti]

iSCSI saadab SCSI käske, andmeid ja infot hetkestaatuse kohta läbi TCP ühenduse iSCSI protokolli andmeühikutena (PDU). iSCSI protokolli andmeühikuid on mitmeid eri tüüpe ning nad on eristatavad individuaalsete operatsioonikoodide kaudu. Operatsioonikoodid jaotatkse kahte kategooriasse: algataja operatsioonikoodid ja objekti operatsioonikoodid, mida kutsutakse vastusteks. Mõned protokolli andmühikud kannavad edasi SCSI käske, andmeid ja staatusi, teisi seevastu kasutatakse iSCSI seadmete kontrollimiseks. [4]

SCSI funktsioone toetavad operatsioonikoodid ehk käsud:

  • 0x01 SCSI käsk (hõlmab endas SCSI käsku kirjeldavat osa)
  • 0x02 SCSI ülesandehalduskäsk
  • 0x05 SCSI andmed (Kirjutamisoperatsioonide jaoks)

SCSI funktsioone toetavad algataja operatsioonikoodid ehk käsud:

  • 0x00 NOP-out käsk
  • 0x03 Sisselogimiskäsk
  • 0x04 Tekstikäsk
  • 0x06 Väljalogimiskäsk
  • 0x10 SACK päring

SCSI funktsioone toetavad objekti operatsioonikoodid ehk vastused:

  • 0x41 SCSI vastus (Sisaldav SCSI hetkestaatust ja muud informatsiooni)
  • 0x42 SCSI ülesandehaldusvastus • 0x45 SCSI andmed (lugemisoperatsioonideks)
  • 0x50 „Edastuseks valmis” käsk (R2T)

iSCSI funktsioone toetavad objekti operatsioonikoodid ehk vastused:

  • 0x40 NOP-in käsk • 0x43 Vastus sisselogimisele
  • 0x44 Tekstivastus
  • 0x46 Väljalogimisvastus
  • 0x51 Asünkroonne vastus
  • 0x6F Keeldumine

Turvalisus[muuda | redigeeri lähteteksti]

iSCSI puhul on mtmeid eri mooduseid algatajate ja objektide vahelise ühenduse turvalisemaks muutmiseks.

CHAP autentimine[muuda | redigeeri lähteteksti]

CHAP ehk väljakutse ja kätlusega autentimisprotokoll (ingl. Challenge Handshake Authentication Protocol) on kõige elementaarsem turvalisuse tase.CHAP protokolli kasutatakse osapoolte autentimiseks ja see põhineb osapoolte vahelisel jagatud võtmel. [7]

Eksisteerib kahte sorti CHAP autentimist: [7]

  • Ühepoolne CHAP autentimine. Sellise seadistuse puhul autendib ainult objekt temaga ühenduva algataja. Võti on seatud ainult objektipoolselt. Kõik algatajad, kes temaga ühenduda tahavad, peavad kasutama seda sama võtit sessiooni alustamisel sisselogimisprotsessis.
  • Kahepoolne CHAP autentimine. Antud seadistuse korral autendib üksteist kumbki osapool. Nii algatajal kui ka objektil on oma isiklik võti, mida kumbki kontrollib. Ükskõik millise iSCSI konfiguratsiooni korral on soovitatav kasutada minimaalselt ühepoolset CHAP autentimist.

RADIUS autentimine[muuda | redigeeri lähteteksti]

RADIUS (lühen ingl. nimetusest Remote Autentication Dial-In User service) autentimine on üks standarditest, mida kasutatakse kasutajate autentimise ja valideerimise haldamiseks. Erinevalt CHAP’ist ei sooritata autentimisprotsessi iSCSI osapoolte vahel, vaid RADIUS serveri ja kliendi vahel. Kui kasutaja (iSCSI algataja) tahab ligi pääseda teise osapoole resurssidele (iSCSI objektile), siis peab ta saatma ühendusepäringu RADIUS serverile. Antud server on vastutav kasutajate autentimise ja klientidele seadistuste edastamise eest. Andmevahetuses kahe osapoole kasutatakse ühist salavõtit. [7]

IPsec autenimine ja krüpteerimine[muuda | redigeeri lähteteksti]

IPsec ehk internetiprotokolli andmeturve (ingl. Internet Protocol Secutrity) puhul teostatakse autentimist ja andmete krüpteerimist IP paketi tasemel. IPsec’it võib kasutada lisaks CHAP’ile või RADIUS’ile, et täiendavalt suurendada andmevahetuse turvalisust. [7]

iSCSI eelised[muuda | redigeeri lähteteksti]

  • iSCSI protokollil on salvestivõrku (SAN’i) kasutades mitmeid eeliseid FC ehk kiudkanali ees: [8]
  • iSCSI kasutab üldlevinud võrgustandardeid: Ethernet ja TCP/IP. Erinevalt rohkem oskusi-ja teadmisivajavast FC tehnoloogiast on enamus IT administraatoreid juba tuttavad TCP/IP’ga.
  • Üldised andmeladustus kulud on väiksemad: iSCSI salvestivõrku(SAN) on lihtsam paigaldada ja hooldada kui kiudkanalit kasutades. iSCSI vähendab vajadust andmehaldusadministraatori järgi.
  • Andmeedastus toimub üle tavalise IP võrgu: iSCSI kaotab vahemaa ja kuludega seotud piirangud, mis on seotud FC ruuteritega.
  • Tavaliste Etherneti kommutaatorite ja kaablite kasutamine lihtsustab nende haldust, kuna pea kõigis firmades juba vastavad süsteemid olemas.
  • iSCSI on kõige kulutõhusam andmehoistamise lahendus SMB jaoks: iSCSI pakub lihtsat haldamist ja integratsiooni, mis põhineb juba olemasoleval infrastruktuuril ja kaotab vajaduse kallite seadmete järgi.
  • iSCSI’st on saanud standard tööstuses: seda on toetanud Microsoft, IBM, Cisco, Intel ja paljud teised.

Alglaadimine võrgust[muuda | redigeeri lähteteksti]

iSCSI abil on võimalik sooritada alglaadimist salvestivõrgus asuvalt kettalt, mis sisaldab endas alglaadimistarkvara. Seade, mis sooritab alglaadimist võrgust ei pea kasutama tema enda ketastele installeeritud operatsioonisüsteemi.[9]

  • iSCSI riistvarapõhist lahendust kasutades on võimalik seade vastavalt seadistada, et alglaadimisprotsess toimuks kasutades salvestivõrgus paiknevat ketast. Sellist lahendust kasutades ei pea arvutis olema ühtegi füüsilist ketast. [9]
  • Teine võimalus on kasutada iSCSI alglaadimistarkvara tablelit (iBFT’d) toetavat võrgukaarti, mille korral BIOS tuvastab iSCSI alglaadimistarkvara tabeli võrgukaardilt ja kasutab seal paiknevaid parameetreid, et ühenduda iSCSI objektiga. Sarnaselt iSCSI riistvarapõhise lahendusega ei pea ka antud juhul olema arvutis füüsilisi kettaid, kuna info, mille abil võrgust alglaadimist sooritada, paikneb võrgukaardil.[10]
  • Ilma iBFT toeta võrgukaardi korral on võimalik sooritada kettavaba alglaadimist võrgust püsimälu flashimist võimaldava võrgukaardi ja spetsiaalse tarkvara abil. Selleks populaarseim tarkvara on iPXE, mis võimaldab peale võrgukaardi flashimist kasutada buudieelset täitmiskeskkonda (PXE’i), et ühenduda iSCSI objektiga, kus paikneb alglaadimistarkvara. Lisaks sellele on võimalik buudieelset täitmiskeskkonda(PXE’d) kasutada luues iPXE programmi sisaldava buuditava mäluseadme. [11]

Viited[muuda | redigeeri lähteteksti]

  1. 1,0 1,1 "IBM Haifa research history" Vaadatud 08.12.2013
  2. "iSCSI FAQ". Vaadatud 08.12.2013
  3. "iSCSI definition". Vaadatud 08.12.2013
  4. 4,0 4,1 4,2 4,3 "iSCSI whitepaper". Vaadatud 08.12.2013
  5. 5,0 5,1 "iSCSI basics". Vaadatud 08.12.2013
  6. 6,0 6,1 "RFC3721". Vaadatud 08.12.2013
  7. 7,0 7,1 7,2 7,3 "iSCSI security". Vaadatud 08.12.2013
  8. "iSCSI benefits". Vaadatud 08.12.2013
  9. 9,0 9,1 "Booting form iSCSI SAN". Vaadatud 08.12.2013
  10. "iBFT Boot overview". Vaadatud 08.12.2013
  11. "iPXE tarkvara koduleht". Vaadatud 08.12.2013