Sonntag, 16. Juni 2013

iscsi Basis - Howto

iscsi Basis - Howto

Einleitung

In diesem Howto beschreibe ich den Grundaufbau einer minimalen iscsi Umgebung. Hierbei handelt es sich um den Aufbau eines iscsi Servers und die Anbindung von einem Client an den zur Verfügung gestellten Pfad.

Vorraussetzungen

Einen Server

Name: server

Zwei Netzwerkadapter
eth0: 192.168.1.200
eth1: 192.168.201.200

LVM Volume:
/dev/VolGroup00/iscsi 1 GB

Pakete:
RedHat: scsi-target-utils

Zwei Clients

Name: client1

Zwei Netzwerkadapter
eth0: 192.168.1.201
eth1: 192.168.201.201

Pakete:
RedHat: iscsi-initiator-utils.x86, sg3_utils-1.28-4.el6.x86_64, lsscsi-0.23-2.el6.x86_64

Howto

Konfiguration Server

Auf dem Server wird nach der Installation der benötigen Pakete die Konfigurationsdatei target.conf angepasst. In Ihr werden als target Name ein eindeutiger iqn (iSCSI Qualified Name) benötigt. dieser befindet sich in dem <target> Tag. 
Der zur Verfügung stehenden Speicherplatz wird mit dem Parameter backing-store festgelegt. Hier bietet es sich an ein freies Blockdevice zu nehmen. Im Fall des Howtos ein frisch angelegtes LVM Device.
Mit dem Parameter initiator-address werden die definierten IP Adressen freigegeben und der Parameter scsi_sn legt die SCSI Seriennummer fest, welche später über udev ausgelesen werden kann.

[server ~]# cat /etc/tgt/targets.conf ↵
default-driver iscsi
# Target ist ein eindeutiger Name
<target iqn.2013-06-01.home.bludau:iscsi>

  backing-store /dev/VolGroup00/iscsi # LUN1

  initiator-address 192.168.1.200     # server
  initiator-address 192.168.201.201     # client1
  scsi_sn iscsi-seriennummer # SCSI Seriennummer

</target>
[server ~]#

Nach dieser Konfiguration muss der Dienst tgtd gestartet und als Service eingetragen werden.

[server ~]# service tgtd start 
[server ~]# chkconfig tgtd on 

Nach dieser Konfiguration kann mit dem folgenden Befehl überprüft werden, ob auch alle Konfigurationen wie gewünscht übernommen wurden.


[server ~]# tgt-admin -s 
Target 1: iqn.2013-06-01.home.bludau:iscsi
 ...
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: iscsi-seriennummer
            Size: 1074 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/VolGroup00/iscsi
            Backing store flags: 
    Account information:
    ACL information:
        192.168.1.200
        192.168.201.201
[server ~]# 

Hinter dem Target-Namen ist die iqn gelistet unter welcher das iscsi Device zur Verfügung steht. Backing Store gibt den auf dem Server genutzten Pfad aus und die ACL Informationen geben die IP Adressen zurück, für welche die iSCSI Targets freigegeben sind.

Konfiguration Clients

Um einen Client anzubinden ist die Konfiguration vom iscsi Daemon notwendig. Dieser kann mit folgenden Befehlen automatisch gestartet werden:
[client1 ~]# chkconfig iscsid on 
[client1 ~]# service iscsid start 

Danach ist die Anbindung vom Client an das iscsi Target vom Server notwendig. Um sich alle Freigaben anzeigen zu lassen hilft das Programm iscsiadm weiter, welches mit den Parametern "-m discovery -t sendtargets -p 192.168.201.200" vom Server her alle Targets gelistet bekommt.

Diese Freigabe wird dann genutzt um das Target an das System zu binden.

Anbinden des iscsi Targets bei dem Client client1:

[client1 ~]# lsscsi ↵
...
[client1 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.201.200 ↵
192.168.201.200:3260,1 iqn.2013-06-01.home.bludau:iscsi
[client1 ~]# iscsiadm -m node -T iqn.2013-06.home.bludau:iscsi -p 192.168.201.200 --login ↵
[client1 ~]# lsscsi ↵
...
[6:0:0:0]    storage IET      Controller       0001  -       
[6:0:0:1]    disk    IET      VIRTUAL-DISK     0001  /dev/sda 
...
[client1 ~]#

Ausgabe aller Informationen die unter UDEV ausgelesen werden können, dazu gehören unter anderem auch die Seriennummer:
[client1 ~]# udevadm info -q all -n /dev/sda ↵
...

Das ganze funktioniert auch um das Device wieder zu entfernen. Hierbei ist bei dem zweiten Commando aber darauf zu achten, dass anstelle des login Parameters logout angegeben wird. Zusäztlich sollte man vorher unbedingt darauf achten, dass die darauf erstellen Filesysteme ausgehängt wurden.

Entfernen von des iscsi Device von dem Client client1:

[client1 ~]# lsscsi ↵
...
[6:0:0:0]    storage IET      Controller       0001  -       
[6:0:0:1]    disk    IET      VIRTUAL-DISK     0001  /dev/sda 
...
[client1 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.201.200 ↵
192.168.201.200:3260,1 iqn.2013-06-01.home.bludau:iscsi
[client1 ~]# iscsiadm -m node -T iqn.2013-06.home.bludau:iscsi -p 192.168.201.200 --logout ↵
[client1 ~]# lsscsi ↵

Legende

Benutzer Root
[<Servername> <Pfad>]# <Befehl> <Dateiname> ↵
Ausgabe

Benutzer
[<user>@<Servername>]$ <Befehl> <Dateiname> ↵
Ausgabe

Tastenkombinationen:
Strg+a

Einzelne Tasten:
a

Keine Kommentare:

Kommentar posten