iSCSI Target létrehozása, Initiator beállítása (IET)
Az iSCSI (internet Small Computer Systems Interface) egy olyan, internetprotokollon alapuló hálózati tárolószabvány,
amely segít az adattároló eszközök összekapcsolásában. Az iSCSI révén a tárolókiszolgálón (target) található tárhelyet
a kliens (initiator) operációs rendszere helyi lemezként fogja kezelni.
Bővebben: iSCSI Wiki
Alábbi leírásban 1db iSCSI target gépen (Debian Jessie) két tároló kerül kiajánlásra, LUN1.img a Windows, míg a LUN2.img
a linux kliensnek. A target tárolóját egy már korábban létrehozott RAID1 kötet alkotja, mely /dev/md1.
Ennek létrehozásáról itt lehet bővebben olvasni. mdadm RAID alapok
A target kiszolgálásáról az IET (iSCSI Enterprise Target - IET official) gondoskodik.
Dokumentum tartalma
iSCSI Target telepítés
Tároló előkészítése
Target-ek felvétele
Initiator engedélyezése, teszt
iSCSI Initiator telepítés
Windows kliens
Linux Kliens
Target felderítése
Hitelesítés beállítása
Login, tesztelés, formázás, mount
Target session ellenőrzése
Logout, lekapcsolás
iSCSI Target telepítés
apt-get install iscsitarget iscsitarget-dkms
# szükséges programok telepítése
mcedit /etc/default/iscsitarget
# alább látható érték beállítása az adott file-ban
ISCSITARGET_ENABLE=true
Tároló előkészítése
mkdir /mnt/md1/disk1
mkdir /mnt/md1/disk2
dd if=/dev/zero of=/mnt/md1/disk1/lun1.img bs=1024k count=250
dd if=/dev/zero of=/mnt/md1/disk2/lun2.img bs=1024k count=250
# szeparált mappák illetve a 2db 250MB-os img létrehozása a két kliens számára (initiator)
Target-ek felvétele
mcedit /etc/iet/ietd.conf
# alább látható két target felvétele a két kliens számára.
Target iqn.2016-09:local.home:disk1
IncomingUser windows-IQN-neve secretcomplexpass
OutgoingUser
Lun 0 Path=/mnt/md1/disk1/lun1.img,Type=fileio
Alias LUN1
Target iqn.2016-10:local.home:disk2
IncomingUser linux-IQN-neve secret2complexpass
OutgoingUser
Lun 0 Path=/mnt/md1/disk2/lun2.img,Type=fileio
Alias LUN1
Target : Egyedi IQN (Iscsi Qualified Name) azonosító + reverse domain + storage azonosító
Incoming user : Szükséges a kliensen beállított initiator nevet felvenni, és CHAP kompatibilis (komplex) jelszót beállítani.
pl iqn.2016-09.local.home:win / ABCDEFGHIjkjl123
A user neveket egyelőre nem szükséges most fixálni, később windows és linux oldalon is létrehozzuk,
és azokat a neveket kell majd a fenti configba beírni
Outgoing user : Mutual (kölcsönös) CHAP auth-hoz kellene, itt nem kerül beállításra
Lun : Logical Unit Number, azaz logikai kötet. Minden targethez az első ilyen a 0 sorszámú legyen!
A Path értéke természetesen a már létrehozott .img lesz, de kiosztható teljes partíció/lemez is.
Initiator engedélyezése, teszt
vi /etc/iet/initiators.allow
# fentebb létrehozott targetekre engedélyezésre kerül a csatlakozás a 192.168.78.0/24-es hálózatból.
# amennyiben nem szükséges a korlátozás, úgy ALL ALL, azaz mindenhonnan.
iqn.2016-09.local.home:disk1 192.168.78.0/24
iqn.2016-10.local.home:disk2 192.168.78.0/24
#ALL ALL
systemctl restart iscsitarget
/etc/init.d/iscsitarget start
# service újraindítása
cat /proc/net/iet/volume
# státusz ellenőrzés volume-ra
tid:2 name:iqn.2016-10.local.home:disk2
lun:0 state:0 iotype:fileio iomode:wt blocks:245760 blocksize:512 path:/mnt/md1/disk2/lun2.img
tid:1 name:iqn.2016-09.local.home:disk1
lun:0 state:0 iotype:fileio iomode:wt blocks:245760 blocksize:512 path:/mnt/md1/disk1/lun1.img
cat /proc/net/iet/session
# státusz ellenőrzés session-re
tid:2 name:iqn.2016-10.local.home:disk2
tid:1 name:iqn.2016-09.local.home:disk1
iSCSI Initiator telepítés
Windows kliens
Ezt itt nem részletezném, alábbi linken található hozzá segítség: Windowsnetworking.com
Linux kliens
apt-get install open-iscsi
# szükséges program telepítése
mcedit /etc/iscsi/iscsid.conf
# alább látható érték beállítása az adott file-ban
node.startaup = automatic
systemctl restart open-iscsi
# service újraindítása
Target felderítése
iscsiadm -m discovery -t st -p 192.168.78.133
# adott IP feltérképezése, felvehető storage-ok listázása
192.168.78.133:3260,1 iqn.2016-09.local.home:disk1
192.168.78.133:3260,1 iqn.2016-10.local.home:disk2
iscsiadm -m node
# látható, hogy az alábbi file-ba bekerültek a bejegyzések a felcsatolható targetekről
/etc/iscsi/nodes/
cat /etc/iscsi/initiaroname.iscsi
# itt található a kliens iqn azonosítója, ezt a nevet kell beírni a fenti target
# IncomingUser sorába, plusz a jelszót!!!!
# pl.: iqn.2016-10.local.home:linux
Hitelesítés beállítása
cat/etc/iscsi/nodes/
# ezen könyvtár tartalma alapján kell kiadni a következő mcedit parancsot
mcedit /etc/iscsi/nodes/iqn.2016-10.local.home:disk2/192.168.78.133,3260,1/default
# ezen file-ba kell felvenni a korábban kialakított targethez a user/pass-t, illetve az authentikációt
# közvetlenül a default config file-ba :
node.session.auth.authmethod = CHAP # legyen kölcsönös hitelesítés!
node.session.auth.username = linux-iqn-neve # ami a fenti targetbe lett felvéve
node.session.auth.password = secret2complexpass # a jelszó...
# vagy kézzel.:
iscsiadm -m node --targetname "iqn.2016-10.local.home:disk2" --portal "192.168.78.133:3260" --op=update --name node.session.auth.authmethod --value=CHAP
iscsiadm -m node --targetname "iqn.2016-10.local.home:disk2" --portal "192.168.78.133:3260" --op=update --name node.session.auth.username --value=linux-iqn-neve
iscsiadm -m node --targetname "iqn.2016-10.local.home:disk2" --portal "192.168.78.133:3260" --op=update --name node.session.auth.password --value=secret2complexpass
# Fontos, hogy ebben a könyvtárban csak 1db default állomány foglaljon helyet!
Login, tesztelés, formázás, mount
iscsiadm -m node --targetname "iqn.2016-10.local.home:disk2" --portal "192.168.78.133:3260" --login
# Login !
Logging in to [iface: default, target: iqn.2016-10.local.home:disk2, portal: 192.168.78.133,3260] (multiple)
Login to [iface: default, target: iqn.2016-10.local.home:disk2, portal: 192.168.78.133,3260] successful.
dmesg
# dmesg kimenetében látható, hogy létrejött egy sdb eszköz
[ 1911.360273] sd 9:0:0:0: Attached scsi generic sg2 type 0
[ 1911.364627] sd 9:0:0:0: [sdb] 921600 512-byte logical blocks: (261 MB/250 MiB)
[ 1911.365153] sd 9:0:0:0: [sdb] Write Protect is off
[ 1911.365158] sd 9:0:0:0: [sdb] Mode Sense: 77 00 00 08
[ 1911.366381] sd 9:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1911.376621] sdb: unknown partition table
[ 1911.380552] sd 9:0:0:0: [sdb] Attached SCSI disk
cfdisk /dev/sdb
# partíció létrehozása. RAID leírásban található a pontos lépéssor
mkfs.ext4 /dev/sdb1
# ext4 file-rendszer létrehozása
mkdir /mnt/iscsi
mount /dev/sdb1 /mnt/iscsi
# mount point létrehozása, és az eszköz felcsatolása
mount
# íme:
/dev/sdb1 on /mnt/iscsi type ext4 (rw,relatime,user_xattr,barrier=1,data=ordered)
Target session ellenőrzése
cat /proc/net/iet/session
# Fenti parancsot a targeten futtatva látható, hogy mindkét kiajánlott disk használatban van.
tid:2 name:iqn.2016-10.local.home:disk2
sid:281475047817728 initiator:iqn.2016-10.local.home:linux
cid:0 ip:192.168.78.134 state:active hd:none dd:none
tid:1 name:iqn.2016-09.local.home:disk1
sid:564050387861568 initiator:iqn.2016-09.local.home:win
cid:1 ip:192.168.78.135 state:active hd:none dd:none
Logout, lekapcsolás
Fontos hogy a fenti lépés előtt az adott kliensen le kell csatolni a távoli fájlrendszert!
Windows esetén a fenti link segít, Linux esetén pedig umount!
iscsiadm -m node --targetname "iqn.2016-10.local.home:disk2" --portal "192.168.78.133:3260" --logout
# Logout! azaz a Windows-nak kiajánlott lemez lecsatolása.
# Linuxon umountot követően logout-olható:
Logging out of session [sid: 8, target: iqn.2016-10.local.home:disk2, portal: 192.168.78.133,3260]
Logout of [sid: 10, target: iqn.2016-10.local.home:disk2, portal: 192.168.78.133,3260] successful.
iscsiadm -m discovery --portal "192.168.78.133:3260" --op=delete
# felderítés kikapcsolása az adott portál felé
Forrás:
Howtoforge
server-world.info