iSCSI (lühend ingliskeelsest 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öötasid välja IBM ja CISCO[1] ning standardiseeris Internet Engineering Task Force (IETF)[2].
Erinevalt füüsilistest SCSI standarditest on SCSI käskude edastamisel võrgupakettide abil võimalik andmeid vahetada pika vahemaa tagant. iSCSI protokoll on SAN-tehnoloogia kiiruse ja võimekuse arendamisel üks tähtsamaid suundi. Tänu TCP/IP võrkude laiale levikule saab iSCSI standardit kasutada andmevahetuseks kohtvõrgu (LAN-i), laivõrgu (WAN-i) või interneti abil.[3]
Keskselt hallatavate mäluseadmete nõudluse kasvades ja serveritega mitte otseühenduses olevate mäluseadmetega suhtlemise tarviduse kasvades loodi eri meetodeid antud vajadustele vastamiseks. Levinuim tehnoloogia selles vallas enne iSCSI-tehnoloogiat oli kiudkanal (ingl. Fibre Channel) ehk FC, mis oli teistest tol ajal levinud tehnoloogiatest kiirem, kuid ka keerulisem ja kallim. Lisaks oli FC-l puudujääke aadressihalduses ja turvalisuses. 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 tõhusamal ärakasutamisel. FC loojate esmane lubadus oli võimaldada 1 Gb/s andmeedastuskiirust. Kui Ethernet saavutas samuti kiiruse 1 Gbit/s, oli aina reaalsem meetod ühendada seadmed omavahel Etherneti abil ja edastada SCSI pakette internetipakette kasutades. Sellest tulenevalt alustati iSCSI standardi loomist.[4]
iSCSI on oma olemuselt standard, mis võimaldab kahel osapoolel vahetada SCSI käske TCP/IP võrgu kaudu. 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 andmevahetuseks tavalist TCP/IP-võrku. Selle tulemusena on iSCSI odavamaks ja lihtsamaks alternatiiviks näiteks samuti populaarsele FC tehnoloogiale.
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]
iSCSI SAN-is asuvat serverit nimetatakse iSCSI-objektiks. Selline objekt võib omakorda sisaldada eri loogilisi üksusi (LU-sid).
On olemas kahte tüüpi iSCSI-objekte:[5]
iSCSI serverites kasutatakse iSCSI-objekte erinevalt: Mõnedes iSCSI kettamassiivides 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) kohta või mõlema kombinatsioon.
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:
iSCSI algataja võib iSCSI-objekte leida mitmel eri viisil:
Enne, kui iSCSI algatajad saavad saata objektidele SCSI käske, peab kõigepealt looma iSCSI seansi. Seanss koosneb antud juhul ühest või mitmest TCP-ühendusest. Algataja loob kõigi vajalike objektidega TCP-ühendused ja pärast seda alustatakse sisselogimisprotseduuriga. iSCSI sisselogimismehhanismi kasutatakse TCP-ühenduste loomiseks algataja ja objekti vahel. See teeb kindlaks ühenduse osapooled, paneb paika seansiparameetrid ja teeb vastava ühenduses osaks iSCSI-seansist.[4]
Algataja alustab sisselogimisprotsessi, luues TCP-pordiga ühenduse 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 seansist kustutada. Sisselogimisprotsessi ühe osana võivad osapooled nõuda üksteiselt autentimist ja turbeprotokolli kasutamist ülejäänud seansi vältel. Pärast sisselogimisprotsessi lõppu on iSCSI seanss täieliku funktsionaalsuse faasis – algataja võib saata SCSI käske ja andmeid erinevatele loogilistele üksustele objektseadmes.[4]
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 ka objektidel on vaja eristumiseks nime, et iSCSI mäluressursse saaks hallata olenemata asukohast. iSCSI nimi on unikaalne tunnus, et sooritada andmepakettide autentimist ja eristada iSCSI mäluressursse. Et kindlustada kadudeta iSCSI pakettide liikumist, on iSCSI nimed seotud kindlate seadmete, mitte võrgukaartidega.
iSCSI standardis on nimed ja aadressid rangelt eristatud:[6]
Igal iSCSI osapoolel on üks või mitu aadressi, mille abil on määratud viide konkreetsele seadmele. iSCSI aadress koosneb iSCSI nimest ja transpordiaadressist.
Transpordiaadress on kujul:
<domeeninimi>[:<port>]
Kus <domeeninimi> võib olla üks kolmest:
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 nimesid kasutatakse, et:
iSCSI standardis on määratud kaks peamist nimetamise standardit
See vorming loodi selleks, et anda firmadele võimalus järjestikele alluvatele osakondadele vastavalt oma seadmeid nimetada. iSCSI kvalifitseeritud nimekuju on defineeritud RFC3720 standardi järgi ja sisaldab:
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 (inglise 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.
See nimevorming võimaldab seadmete vastutaval nimetajal kasutada IEEE EUI-64 identifikaatoreid iSCSI nimede määramisel.
Näide iSCSI nimest eui. vormingus:
Tüüp EUI-64 identifikaator(ASCII-kodeeritud, kuueteistkümnendsüsteemis)
+--+ +--------------+
| | | |
eui.02004567A425678D
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 vahetamine 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 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 jaotatakse kahte kategooriasse: algataja operatsioonikoodid ja objekti operatsioonikoodid, mida kutsutakse vastusteks. Mõned protokolli andmeühikud kannavad edasi SCSI käske, andmeid ja staatusi, teisi seevastu kasutatakse iSCSI seadmete kontrollimiseks.[4]
SCSI funktsioone toetavad operatsioonikoodid ehk käsud:
SCSI funktsioone toetavad algataja operatsioonikoodid ehk käsud:
SCSI funktsioone toetavad objekti operatsioonikoodid ehk vastused:
iSCSI funktsioone toetavad objekti operatsioonikoodid ehk vastused:
iSCSI puhul on algatajate ja objektide vahelise ühenduse turvalisemaks muutmiseks mitu moodust.
CHAP ehk väljakutse ja kätlusega autentimisprotokoll (inglise Challenge Handshake Authentication Protocol) on kõige elementaarsem turvalisuse tase. CHAP-protokolli kasutatakse osapoolte autentimiseks ja see põhineb osapooltevahelisel jagatud võtmel.[7]
On kahesugust CHAP-autentimist:[7]
RADIUS (lühend ingliskeelsest 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 ressurssidele (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 ehk internetiprotokolli andmeturve (inglise Internet Protocol Secutrity) puhul teostatakse autentimist ja andmete krüpteerimist IP-paketi tasemel. IPsecit võib kasutada lisaks CHAP-ile või RADIUS-ele, et täiendavalt suurendada andmevahetuse turvalisust.[7]
iSCSI abil on võimalik sooritada alglaadimist salvestivõrgus asuvalt kettalt, mis sisaldab alglaadimistarkvara. Seade, mis sooritab alglaadimist võrgust, ei pea kasutama tema enda ketastele installitud operatsioonisüsteemi.[9]