ISCSI kasutamine

Allikas: Kuutõrvaja
Redaktsioon seisuga 25. august 2007, kell 18:37 kasutajalt Imre (arutelu | kaastöö)

iSCSI tehnoloogia võimaldab üle tavalise TCP/IP võrgu ühendada klientarvutile külge nn block-device'i vastavat teenust pakkuvast serverist. Klientarvutit nimetatakse iSCSI initiatoriks ning serverit iSCSI target'iks.

See tehnoloogia on suhteliselt uus ja seetõttu ei maksa ehk vaba tarkvaralistest implementatsioonidest erilist stabiilsust oodata, arvestades lisaks asjaolu, et tegu on block-device teenusega, millega tegeletakse juurkasutajana. Aga teema on siiski väga integreeriv ja põnev! Kuna erinevates operatsioonisüsteemides on kasutusel erinevad implementatsioonid, siis universaalsuse huvides kirjeldame, kuidas lähtetekstidest seda tarkvara kasutada. Pala lõpus on ka viited operatsioonisüsteemide poolt pakutavatele võimalustele.

Tarkvara

Tundub, et initiatori osas on suurem arendajate tähelepanu koondunud projektile [http://www.open-iscsi.org/ ] ning targeti osas projektile [http://iscsitarget.sourceforge.net/].

iSCSI targeti paigaldamine

Target koosneb kahest osast

  1. iSCSI targeti utiliidid - deemon, tema seadistusfail ning juhtprogramm, vastavalt ietd, ietd.conf ning ietdadm
  2. kerneli moodulid - iscsi_trgt

Eelduseks on, et paigaldatud on 2.6.14 versioonist uuem Linuxi crypto võimega tuum ning tuuma lähtetekstid, sellisena nagu nad peale tuuma kompileerimist jäid, oleksid alles. Seejärel anda IET lähtetekstide kataloogis käsk 'make'.

Millegi katsetamiseks sobib selline ietd deemoni seadistusfail, eeldusel, et /dev/hda3 on katsetamiseks vaba partitsioon (block-device).

Target iqn.2006-01.com.example:storage.disk3
Lun 0 Path=/dev/hda3,Type=fileio
Alias Test

Ning käivitada deemon

/etc/init.d/iscsi-target start 

Targeti elutegevusest saab aimu sedasi

bash# cat /proc/net/iet/volume /proc/net/iet/session
 tid:1 name:iqn.2006-01.com.example:storage.disk3
       lun:0 state:0 iotype:fileio path:/dev/hda3
 tid:1 name:iqn.2006-01.com.example:storage.disk3
       sid:3660274212864512 initiator:iqn.1987-05.com.cisco:01.b5f4204e93f
               cid:0 ip:192.168.10.26 state:active hd:none dd:none 

iSCSI initiatori paigaldamine

Initiator koosneb kahest osast

  1. iSCSI initiatori utiliidid - deemon, tema seadistusfail ning juhtprogramm, vastavalt iscsid, inititatorname.conf ning iscsiadm
  2. kerneli moodulid - scsi_transport_iscsi, iscsi_tcp

Eelduseks on, et paigaldatud on 2.6.14 versioonist uuem Linuxi crypto võimega tuum ning tuuma lähtetekstid, sellisena nagu nad peale tuuma kompileerimist jäid, oleksid alles. Seejärel anda lähtetekstide kataloogis käsk 'make'.

  1. (Serveris moodustada iSCSI shared ning anonüümselt subnetile välja jagada.)
  2. tekitada fail /etc/initiatorname.iscsi, nt sellise sisuga 'InitiatorName=iqn.1987-05.com.cisco.01.6727f456fe3f50c8274f4484bd7862d2'
  3. laadida moodulid scsi_transport_iscsi ja iscsi_tcp
  4. käivitada iscsid (seda saab käivitada logima ja nii et ta backgroundi ei lähe, vastavalt vajadusele), /etc/init.d/open-iscsi start | stop
  5. vaadake, mis shared on välja jagatud
bash# iscsiadm -m discovery -t sendtargets -p 192.168.10.19:3260
 192.168.10.19:3260,1 iqn.2006-01.com.example:storage.disk1
 192.168.10.19:3260,1 iqn.2006-01.com.example:storage.disk2
 192.168.10.19:3260,1 iqn.2006-01.com.example:storage.disk3

Targeti registreerimine kettana klientmasinas (initiator)

bash# iscsiadm -m node -T iqn.2006-01.com.example:storage.disk1 -p 192.168.10.19:3260 -l

Targeti lahtiühendamine

bash# iscsiadm -m node -T iqn.2006-01.com.example:storage.disk1 -p 192.168.10.19:3260 -u

Valmislahendused

Aadressil [http://www.openfiler.com] jagatakse arvutipõhist nö storage lahendust, lisaks iSCSI targeti tekitamise võimalusele tegeleb see ka CIFS ja NFS'iga. Olemas on ka spetsiaalsed riistvaralised iSCSI targeteid ja nende manageerimise vahendeid sisaldavad kastid erinevatelt tootjatelt, nt EMC ja NetApp.

iSCSI ietd targeti paigaldamine Debian Etch puhule

2007 aastal on see õnnelik aeg, kui ietd versioon 0.4.15 sobib kokku Debian Etchiga kaasneva 2.6 tuumaga. ietd serveri ehk targeti lähtetekstist kompileerimiseks tuleb esmalt paigaldada vajalikud vahendid, toimetame Xen tuuma näitel

bash# cd /usr/src
bash# apt-get source linux-image-2.6.18-4-xen-686
bash# apt-get build-dep linux-image-2.6.18-4-xen-686
bash# apt-get install linux-headers-2.6.18-4-xen-686
bash# apt-get install libssl-dev
bash# tar zxf iscsitarget-0.4.15.tar.gz
bash# cd iscsitarget-0.4.15

Tarkvara kompileerimiseks ning paigaldamiseks tuleb öelda

bash# make KSRC=/usr/src/linux-headers-2.6.18-4-xen-686
bash:/usr/src/iscsitarget-0.4.15# make KSRC=/usr/src/linux-headers-2.6.18-4-xen-686 install
install: creating directory `/lib/modules/2.6.18-4-xen-686/kernel/iscsi'
`kernel/iscsi_trgt.ko' -> `/lib/modules/2.6.18-4-xen-686/kernel/iscsi/iscsi_trgt.ko'
depmod -aq
`usr/ietd' -> `/usr/sbin/ietd'
`usr/ietadm' -> `/usr/sbin/ietadm'
`etc/initd/initd.debian' -> `/etc/init.d/iscsi-target'
`etc/ietd.conf' -> `/etc/ietd.conf'
`etc/initiators.allow' -> `/etc/initiators.allow'
`etc/initiators.deny' -> `/etc/initiators.deny'
`doc/manpages/ietadm.8' -> `/usr/share/man/man8/ietadm.8'
`doc/manpages/ietd.8' -> `/usr/share/man/man8/ietd.8'
`doc/manpages/ietd.conf.5' -> `/usr/share/man/man5/ietd.conf.5'
install: creating directory `/usr/share/doc/iscsitarget'
`ChangeLog' -> `/usr/share/doc/iscsitarget/ChangeLog'
`COPYING' -> `/usr/share/doc/iscsitarget/COPYING'
`README' -> `/usr/share/doc/iscsitarget/README'
`README.vmware' -> `/usr/share/doc/iscsitarget/README.vmware'

Kuigi antud juhul on tegu mõne tuuma mooduli, seadistusfaili ning programmifailiga ei ole üldiselt ilma paketihalduseta tarkvara paigaldamine korrektne.