ISCSI kasutamine Debianiga
Sisukord
- 1 Sissejuhatus
- 2 iSCSI lahenduse näite skeem
- 3 Target ehk server
- 3.1 Targeti tarkvara ettevalmistamine
- 3.2 Väljajagatavate plokkseadmete ettevalmistamine
- 3.3 iSCSI ressursi väljajagamise seadistamine
- 3.4 iSCSI target teenuse käivitamine
- 3.5 iSCSI targeti ressursile juurdepääsu piiramine kliendi ip aadressi täpsusega
- 3.6 Serveri töö jälgimine
- 3.7 Targeti kasutajanime ja parooliga autentimise seadistamine
- 3.8 Targetite lisamine ietd töötamise ajal
- 4 Initiator ehk klient
- 4.1 Kliendi tarkvara ettevalmistamine
- 4.2 Kliendi tarkvara käivitamine
- 4.3 Targetis väljajagatud ressursside nimekirja küsimine
- 4.4 Kliendis targetitega seotud sessioonide haldamine
- 4.5 Kliendis targetite andmebaasi haldamine
- 4.6 Automaatne iSCSI targetite külgeühendamine
- 4.7 Initiatori kasutajanime ja parooliga autentimise seadistamine
- 5 Kasulikud lisamaterjalid
Sissejuhatus
iSCSI tehnoloogia võimaldab üle TCP/IP võrgu kasutada SCSI protkolli, mille tulemusena saab ühes arvutis (klient) kasutada teise arvuti (server) plokkseadet. Kombeks on kasutada selliseid nimetusi kliendi ja serveri kohta
- initiator (ingl. k. algataja) - iSCSI klient
- target (ingl. k. sihtmärk) - iSCSI server
Reeglina target ja initiator arvutid võivad kasutada erinevaid operatsioonisüsteeme ning asuda ka erinevatel riistvaralistel platvormidel. Kuna andmevahetuse maht ja sellest tulenev koormus etherneti võrgule võib kujuneda suureks, siis võib olla mõistlik eraldada iSCSI võrgusegment.
iSCSI tehnoloogia eelisteks peetakse
- funktsionaalne - praktiliselt saab tekitada nn korporatiivse SAN funktsionaalsusele sarnase asjakorralduse (storage on esineb eraldi teenusena, otspunkte saab autentida, multipathing kasutamise võimalus jms)
- odav - piisab kasutada nö tavalist riistvara, nt ethernet võrku ja pc servereid
- levinud - paljud populaarsed operatsioonisüsteemid sisaldavad iSCSI tuge
Tundub, et initiatori osas on suurem arendajate tähelepanu koondunud projektile [http://www.open-iscsi.org/ ] ning targeti osas projektile [http://iscsitarget.sourceforge.net/]. 2009 suve seisuga esineb iSCSI tarkvara tugi levinud tasuta jagatavates operatsioonisüsteemides/distributsioonides selliselt
- Linux (nt Debian GNU/Linux) - täielikult olemas
- Solaris - täielikult olemas
- FreeBSD - täielikult olemas
- OpenBSD - täielikult puudub, ei saa teadaolevalt lisada lihtsasti
iSCSI lahenduse näite skeem
Olgu kasutada kolm arvutit, mis peavad saama kasutada üle iSCSI plokkseadme ressurssi selliselt
klient0 klient1 klient2 - iSCSI initiator'id --|----------------|---------------------|---- teenuste klientide poolne subnet --- > internet | | | _|_ www _|_ db _|_ smtp | | | | | | |___| |___| |___| | /dev/sda | /dev/sda | /dev/sda | -> /srv/www1 | -> /srv/postgresql | -> /srv/cyrus | /dev/sdb | | | -> /srv/www2 | | --|----------------|---------------------|--------|----- iSCSI subnet | _|_ | | iqn.2009-06.ee.tartu.loomaaed:storage.www1 |___| iqn.2009-06.ee.tartu.loomaaed:storage.www2 iqn.2009-06.ee.tartu.loomaaed:storage.db iqn.2009-06.ee.tartu.loomaaed:storage.smtp server - iSCSI targets
Laiemas tähenduses nimetatakse iSCSI targetiks kogu iSCSI serverit, kitsamas tähenduses nimetatakse iSCSI targetiks iga serveris välja jagatud plokkseadet.
Target ehk server
iSCSI target pakub võrgus nö plokkseadme teenust, mida kasutavad iSCSI kliendid. Reeglina on iSCSI target arvutil
- piisavalt lokaalset plokkseadet
- kiire võrguühendus
- plokkseadme haldamiseks kasutusel LVM tarkvara
Targeti tarkvara ettevalmistamine
Targeti tarkvara koosneb kahest osast
- tuumamoodulid - pakett iscsitarget-modules-2.6-xen-amd64 (iscsi_trgt)
- serverprogramm ja utiliidid - pakett iscsitarget (deemon, tema seadistusfail ning juhtprogramm, vastavalt ietd, ietd.conf ning ietdadm)
iSCSI target'i ehk serveri kasutamiseks vajalik tarkvara paigaldatakse öeldes, tuleb tähelepanelikult jälgida, et paigaldatakse sama tuuma moodul, mida kasutatakse
# apt-get install iscsitarget iscsitarget-modules-2.6-xen-amd64
Väljajagatavate plokkseadmete ettevalmistamine
Väljajagatav plokkseade võib iseenesest olla mistahes plokkseade, ehk on kõige praktilisem moodustada iSCSI serveris LVM voluumid ning neid välja jagada, nt sellised voluumid volume group iscsi korral
- /dev/iscsi/www1
- /dev/iscsi/www2
- /dev/iscsi/db
- /dev/iscsi/smtp
Plokkseadme jagamisel on mõistlik mitte korraldada mitmekihilise LVM'i kasutamist.
iSCSI ressursi väljajagamise seadistamine
Igal väljajagatud plokkseadmele omistatakse teda kui iSCSI ressurssi identifitseeriv nimi, mida nimetatakse IQN (iSCSI Qualified Name), antud juhul on otsustatud kasutada selliseid nimesid
- iqn.2009-06.ee.tartu.loomaaed:storage.www1
- iqn.2009-06.ee.tartu.loomaaed:storage.www2
- iqn.2009-06.ee.tartu.loomaaed:storage.db
- iqn.2009-06.ee.tartu.loomaaed:storage.smtp
Nime formaat on oluline, tavaliselt kasutatakse domeeninime ees kuupäeva, sest domeeninimede omamine on ajalik.
iSCSI serveri seadistusfaili /etc/ietd.conf abil viiakse kokku IQN nimi ja konkreetne plokkseade, nt selliselt
Target iqn.2009-06.ee.loomaaed.tartu:storage.www1 Lun 0 Path=/dev/iscsi/www1,Type=fileio Alias iscsi_www1 Target iqn.2009-06.ee.loomaaed.tartu:storage.www2 Lun 0 Path=/dev/iscsi/www2,Type=fileio Alias iscsi_www2 Target iqn.2009-06.ee.loomaaed.tartu:storage.db Lun 0 Path=/dev/iscsi/db,Type=fileio Alias iscsi_db Target iqn.2009-06.ee.loomaaed.tartu:storage.smtp Lun 0 Path=/dev/iscsi/smtp,Type=fileio Alias iscsi_smtp
iSCSI target teenuse käivitamine
Fail /etc/default/iscsitarget peab sisaldama rida
ISCSITARGET_ENABLE=true
ning target'i käivitamiseks tuleb öelda
# /etc/init.d/iscsitarget start
Käivitamisel tekkib tuuma logisse
iSCSI Enterprise Target Software - version 0.4.16 iscsi_trgt: Registered io type fileio iscsi_trgt: Registered io type blockio iscsi_trgt: Registered io type nullio
Targeti poole pöördumiseks peab saama serverile ligi üle port 3260/tcp.
iSCSI targeti ressursile juurdepääsu piiramine kliendi ip aadressi täpsusega
iSCSI klientide ligipääsu piiramiseks on kaks võimalust
- lubatud ip aadresside näitamisega
- kasutajanime ja parooli kasutamisel põhinev
ip aadressi täpsusega piiramiseks tuleb failis /etc/initiators.deny näidata, et vaikimisi on ligipääs keelatu
# cat /etc/initiators.deny ALL ALL
ning faili /etc/initiators.allow kirjeldada millistele ressurssidele on ligipääs millistelt ip aadressidelt lubatud
# cat /etc/initiators.allow iqn.2009-06.ee.tartu.loomaaed:storage.www2 192.168.1.110, 192.168.1.111
Serveri töö jälgimine
Serveris kirjeldatud ressursside nimekirja näeb öeldes
# cat /proc/net/iet/volume tid:4 name:iqn.2009-06.ee.tartu.loomaaed:storage.www1 lun:0 state:0 iotype:fileio iomode:wt path:/dev/iscsi/www1 tid:3 name:iqn.2009-06.ee.tartu.loomaaed:storage.www2 lun:0 state:0 iotype:fileio iomode:wt path:/dev/iscsi/www2 tid:2 name:iqn.2009-06.ee.tartu.loomaaed:storage.db lun:0 state:0 iotype:fileio iomode:wt path:/dev/iscsi/db tid:1 name:iqn.2009-06.ee.tartu.loomaaed:storage.smtp lun:0 state:0 iotype:fileio iomode:wt path:/dev/iscsi/smtp
Targeti kasutajanime ja parooliga autentimise seadistamine
IET ja Open-iSCSI target-initiator paar võimaldavad korraldada üksteise kasutajanime ja parooliga autentimist. Selleks tuleb targeti ietd.conf faili lisada Target sektsiooni read
IncomingUser init initsaladus OutgoingUser target trgtsaladus
kus
- IncomingUser - näitatud kasutanime ja parooliga peavad klappima iSCSI kliendi poolt esitatud kasutajanimi ja parool
- OutgoingUser - näitatud kasutanimi ja parooli peavad klappima iSCSI kliendi poolt nõutud kasutajanime ja parooliga
Targetite lisamine ietd töötamise ajal
ietadm programmi abil saab IET serveri töötamise ajal targeteid seadistada, sh neid lisada ja eemaldada. Lisamine toimub selliselt
bash# ietadm --op new --tid=5 --params Name=iqn.2009-06.ee.tartu.loomaaed:storage.www3 bash# ietadm --op new --tid=5 --lun=0 --params Path=/data/iscsi/www3
Autentimise tarvis saab öelda sedasi
bash# ietadm --op new --tid=5 --user --params=IncomingUser=init,Password=initsaladus bash# ietadm --op new --tid=5 --user --params=OutgoingUser=target,Password=trgtsaladus
Eemaldamine toimub nt selliselt
bash# ietadm --op delete --tid=5
Initiator ehk klient
iSCSI klient kasutab võrgust nö plokkseadme teenust, mida pakub iSCSI server. Reeglina on iSCSI klient arvutil kiire võrguühendus.
iSCSI kliendil on
- faili /etc/iscsi/initiatorname.iscsi abil kirjeldatud unikaalne kliendi IQN nimi
- töötab deemonprotsess iscsid, mida juhib seadistusfail /etc/iscsi/iscsid.conf
- kirjeldatud kasutatavate targetite anmebaas, kataloogis /etc/iscsi/nodes
iSCSI kliendi tööd juhitakse icsciadm programmi abi, mis töötab mitmes režhiimis, käesolevas palas kasutatakse kolme
- discovery - küsitakse iSCSI serverilt, milliseid ressursse ta pakub
- node - seadistakse targeti kasutamine
- session - küsitakse millised iSCSI ühendused on parasjagu kasutusel
Kliendi tarkvara ettevalmistamine
Kliendi tarkvara paigaldatakse öeldes
# apt-get install open-iscsi
Kliendi tarkvara käivitamine
Tõenäoliselt sobib alustuseks kasutada olemasolevat seadistusfaili
/etc/iscsi/iscsid.conf
kui soovitaks, et kasutatavate targetite andmebaasi lisatud targetid võetakse kasutusele arvuti alglaadimisel automaatselt, tuleb kasutada seadistusfailis rida (see muudatus kehtestub peale muudatust baasi lisatud targetite jaoks)
node.startup = automatic
Ja samtuti tõenäoliselt sobib olemasolev initiatorname.iscsi sisu
# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.1993-08.org.debian:01:6e18c7e277ac
Kui aga arvuteid valmistatakse kopeerimise teel, siis saab uue unikaalse nime tekitada utiliidiga
# iscsi-iname iqn.2005-03.org.open-iscsi:48b1992a24e7
iSCSI kliendi deemoni käivitamiseks tuleb öelda
# /etc/init.d/open-iscsi start Starting iSCSI initiator service: iscsid. Setting up iSCSI targets: iscsiadm: No records found! . Mounting network filesystems:.
Targetis väljajagatud ressursside nimekirja küsimine
Esmalt küsime milliseid ressursse jagab aadressil 10.0.6.14 töötav server
# iscsiadm -m discovery -t sendtargets -p 10.0.6.14 10.0.6.14:3260,1 iqn.2009-06.ee.tartu.loomaaed:storage.www1 10.0.6.14:3260,1 iqn.2009-06.ee.tartu.loomaaed:storage.www2 10.0.6.14:3260,1 iqn.2009-06.ee.tartu.loomaaed:storage.db 10.0.6.14:3260,1 iqn.2009-06.ee.tartu.loomaaed:storage.smtp
Kliendis targetitega seotud sessioonide haldamine
Targeti kasutamine algab targetisse nö sisselogimise teel sessiooni alustamisega ning lõpeb targetist väljalogimise ehk sessiooni lõpetamisega, nt selliselt
# iscsiadm -m node -T iqn.2009-06.ee.tartu.loomaaed:storage.www1 -p 10.0.6.14:3260 -l
Tulemusena tekib uus scsi seade, nt /dev/sda, mida saab kasutada nii nagu tavalist plokkseadet
scsi0 : iSCSI Initiator over TCP/IP scsi 0:0:0:0: Direct-Access IET VIRTUAL-DISK 0 PQ: 0 ANSI: 4 Driver 'sd' needs updating - please use bus_type methods sd 0:0:0:0: [sda] 83886080 512-byte hardware sectors (42950 MB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Mode Sense: 77 00 00 08 sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA sd 0:0:0:0: [sda] 83886080 512-byte hardware sectors (42950 MB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Mode Sense: 77 00 00 08 sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
Kasutamise lõpetamiseks tuleb sisuline iSCSI seadme kasutamine lõpetada, nt failisüsteemid plokkseadmelt lahti ühendada ning öelda
# iscsiadm -m node -T iqn.2009-06.ee.tartu.loomaaed:storage.www1 -p 10.0.6.14:3260 -u
Parajagu töötavate sessioonide nimekirja saab küsida öeldes
# iscsiadm -m session tcp: [1] 10.0.6.14:3260,1 iqn.2009-06.ee.tartu.loomaaed:storage.www1 tcp: [2] 10.0.6.14:3260,1 iqn.2009-06.ee.tartu.loomaaed:storage.www2
Konkreetse sessiooni kohta saab küsida infot käsuga
# iscsiadm -m session -r 2 -P 1 Target: iqn.2009-06.ee.tartu.loomaaed:storage.www2 Current Portal: 10.0.6.14:3260,1 Persistent Portal: 10.0.6.14:3260,1 ********** Interface: ********** Iface Name: default Iface Transport: tcp Iface Initiatorname: iqn.1993-08.org.debian:01:6e18c7e277ac Iface IPaddress: 10.0.6.250 Iface HWaddress: default Iface Netdev: default SID: 1 iSCSI Connection State: LOGGED IN iSCSI Session State: LOGGED_IN Internal iscsid Session State: NO CHANGE
kus
- -r 2 - näitab, et küsitakse teise sessiooni kohta, jättes selle parameetri ära, esitatakse info kõigi sessioonide kohta
- -P 1 - näitab, et küsitakse nö number 1 põhjalikkusega infot, võimalikud väärtused on 0, 1, 2, 3
Kliendis targetite andmebaasi haldamine
Kataloogis /etc/iscsi/nodes asub sellest kliendist kasutatavat targetite andmebaas. Seda andmebaasi saab hallata käsitsi vastavaid tekstifaili redigeerides, aga soovitav on seda teha haldusprogrami iscsiadm abil.
Esmakordsel sisselogimisel salvestatakse target kliendi targetite andmebaasi, andmebaasis sisalduvate targetite nimekirja saab küsida öeldes
# iscsiadm -m node 10.0.6.14:3260,1 iqn.2009-06.ee.tartu.loomaaed:storage.www1 10.0.6.14:3260,1 iqn.2009-06.ee.tartu.loomaaed:storage.www2
Andmebaasist saab sissekandeid kustutada öeldes nt
# iscsiadm -m node -T iqn.2009-06.ee.tartu.loomaaed:storage.www2 -p 10.0.6.14:3260 -o delete
Automaatne iSCSI targetite külgeühendamine
Selle asemel, et peale arvuti alglaadimist käsitsi targetitesse sisse logida ja sessioonid moodustada on võimalik näidata enne kliendis andmebaasi moodustamist /etc/iscsi/iscsid.conf parameeter
node.startup = automatic
Või andmebaasis olemasolevate sissekandeid muuta öeldes
# iscsiadm -m node -T iqn.2009-06.ee.tartu.loomaaed:storage.www2 -p 10.0.6.14:3260 --op update -n node.startup -v automatic
Seejärel saab targetitele vastavad sessioonid tekitada ja lõpetada käivitusskriptiga
# /etc/init.d/open-iscsi start|stop
Seejuures tuleb jälgida, et enne sessioonide lõpetamist oleks vastavate plokkseadmete kasutus lõppenud ja nad oleksid lahti monteeritud.
Initiatori kasutajanime ja parooliga autentimise seadistamine
Initiatori /etc/iscsi/iscsid.conf failis tuleb kasutada ridu
node.session.auth.authmethod = CHAP node.session.auth.username = init node.session.auth.password = initsaladus node.session.auth.username_in = target node.session.auth.password_in = trgtsaladus
Muudatuste kehtestamise üheks võimaluseks on programmi iscsid seisata ja käivitada.
Kusjuures, iscsid logib initiatori syslogi juhul kui inititator ei suuda ennast targetile autentida
Oct 31 21:56:43 arvuti iscsid: Login failed to authenticate with target iqn.2009-06.ee.tartu.loomaaed:storage.www2
ning juhul kui target ei suuda ennast initiatori vastu autentida
Oct 31 21:55:17 arvuti iscsid: failing authentication, received incorrect username from target iqn.2009-06.ee.tartu.loomaaed:storage.www2 Oct 31 21:55:17 arvuti iscsid: Login authentication failed with target iqn.2009-06.ee.tartu.loomaaed:storage.www2