Wéi Setup iSCSI Server (Target) a Client (Initiator) op Debian 9


An der Rechenzentrum Welt sinn grouss Kapazitéit Storage Area Networks (SAN) de Minimum Standard ginn. Wéi Cloud Provider a Virtualiséierung och weider massiv Auswierkungen an der Technologiewelt maachen, ass de Besoin fir nach méi SAN Späicherplatz evident ginn.

Déi meescht SAN-Hardware besteet aus engem minimalistesche Controller (oder Set vu Controller) an enger grousser Sammlung vun héich Kapazitéit Drive, déi all konfiguréiert sinn fir héich Quantitéiten un Dateverfügbarkeet an Integritéit z'ënnerstëtzen.

Vill vun dëse spezialiséierte Produkter gi vu groussen Numm Ubidder wéi Netapp, Dell Equalogic, HP Storageworks, oder EMC gemaach an hunn Präisstags un hinnen verbonnen, déi nëmmen déi gréissten Entreprisen sech leeschte kënnen.

Realistesch sinn dës Geräter näischt méi wéi grouss Festplack Arrays mat engem Controller, deen de Raum vun dësen Harddisken un vernetzte Clienten ubitt. Vill Technologien hunn iwwer d'Jore existéiert déi dës Funktionalitéit oder ähnlech Funktionalitéit zu engem wesentlech méi bëllege Präis ubidden.

D'Debian GNU/Linux Verdeelung liwwert Packagen déi e Debian System erlaben den Zweck vun engem SAN-Speichergerät fir Entreprisen ze déngen mat engem Bruch vun de Käschte! Dëst erlaabt jidderee vu Basis Heembenotzer oder groussen Datenzenteren d'Virdeeler vun der SAN-Speicher ze kréien ouni e Verméigen op eng propriétaire Léisung vum Verkeefer auszeginn.

Dësen Artikel wäert kucken wéi en Debian 9 (Stretch) System ka konfiguréiert ginn fir Disk Space ze benotzen mat engem System bekannt als Internet Small Computer Systems Interface oder iSCSI fir kuerz. iSCSI ass en Internet Protokoll (IP) baséiert Standard fir Block (Hard Drive) Späichere fir aner Systemer ze liwweren. iSCSI funktionnéiert an engem Client Server Modell awer benotzt verschidden Nimm fir de Client vum Server z'ënnerscheeden.

An iSCSI Terminologie ass de Server deen den 'Disk Space' servéiert als iSCSI 'Target' bekannt an de System deen den Disk Space freet/benotzt ass bekannt als den iSCSI 'Initiator'. Also an anere Wierder, en 'Initiator' freet Blocklagerung vun engem 'Target'.

Dëse Guide wäert duerch e Basis Setup goen mat engem einfachen iSCSI Server (Ziel) a Client (Initiator), déi béid Debian 9 (Stretch) lafen.

Debian iSCSI Target: 192.168.56.101/24
Storage: Contains two extra hard drives to be used as the storage in the iSCSI setup
Debian iSCSI Initiator: 192.168.56.102/24

D'Netzwierk ka gekuckt ginn wéi hei ënnen:

Debian iSCSI Zilkonfiguratioun

An der iSCSI Welt gëtt d'Zil als den Host ugesinn, deen d'Späichergeräter enthält fir vum Initiator ze benotzen.

An dësem Artikel gëtt de Server mat der IP vum 192.168.56.101 als Zil benotzt. All Konfiguratioune ginn op deem Host fir dës Sektioun gemaach.

Den éischte Schrëtt ass d'Installatioun vun den néidege Packagen fir den Debian System z'erméiglechen iSCSI Ziler ze déngen. Dëse Software Package ass bekannt als Target Framework (TGT).

Deen aneren Artikel deen fir dëse Guide benotzt gëtt ass d'Logical Volume Management (LVM) Tools well Logical Volumes (LVs) als Späichere-Backing fir den iSCSI Zil benotzt ginn.

Béid Packagen kënne mat de folgende Kommandoen installéiert ginn.

# apt-get update
# apt-get install tgt lvm2

Wann d'Packagen installéiert sinn, gëtt LVM benotzt fir d'Harddisken op der Zilsetzung ze preparéieren fir als iSCSI LUN ze benotzen. Den éischte Kommando gëtt benotzt fir d'Disks fir d'Inklusioun an engem LVM-Setup ze preparéieren. Gitt sécher de Kommando z'änneren wéi néideg fir verschidden Szenarien!

# lsblk (Only used to confirm disks to be used in the LVM setup)
# pvcreate /dev/sd{b,c}

Wann d'Disks mat dem uewe genannte 'pvcreate' Kommando virbereet goufen, ass et Zäit fir eng Volumengrupp aus dëse speziellen Disken ze kreéieren. D'Volumengrupp ass erfuerderlech fir déi logesch Volumen ze kreéieren déi spéider als iSCSI-Späichere handelen.

Fir eng Volumengrupp ze kreéieren, ass de Kommando 'vgcreate' gebraucht.

# vgcreate tecmint_iscsi /dev/sd{b,c}
# vgs  (Only needed to confirm the creation of the volume group)

Bemierkung am Ausgang uewendriwwer datt de System reagéiert datt de Volume Group erstallt gouf awer et ass ëmmer eng gutt Iddi fir duebel ze kontrolléieren wéi uewen gesi mam Kommando 'vgs'. D'Kapazitéit vun dëser Volumengrupp ass nëmmen 9.99GB. Och wann dëst eng besonnesch kleng Volumengrupp ass, wier de Prozess d'selwecht fir Disks mat méi grousser Kapazitéit!

De nächste Schrëtt ass d'Schafung vum logesche Volumen deen als Disk fir den iSCSI Client (Initiator) handelt. Fir dëst Beispill gëtt d'Gesamtheet vun der Volumengrupp benotzt awer ass net néideg.

De logesche Volume gëtt mam Kommando 'lvcreate' erstallt.

# lvcreate -l 100%FREE tecmint_lun1 tecmint_iscsi
# lvs  (Simply used to confirm the creation of the logical volume)

Deen uewe genannte 'lvcreate' Kommando kéint op den éischte Bléck e bëssen konfus sinn, awer den Ofbau ass esou:

  • lvcreate - Kommando benotzt fir de logesche Volumen ze kreéieren.
  • -l 100%GRATIS - Erstellt de logesche Volumen mat all de fräie Raum vun der Volumengrupp.
  • -n tecmint_lun1 – Den Numm vum logesche Volume, deen erstallt gëtt.
  • tecmint_iscsi - Den Numm vun der Volumengrupp fir de logesche Volumen ze kreéieren.

Wann de logesche Volume erstallt gouf, ass et Zäit fir déi aktuell LUN (Logical Unit Number) ze kreéieren. De LUN wäert de Späicherapparat sinn, mat deem den Initiator verbënnt a spéider benotzt.

E LUN erstellen ass ganz einfach an erfuerdert nëmmen e puer Schrëtt. Den éischte Schrëtt ass d'Schafung vun der Konfiguratiounsdatei. Dës Datei wunnt am '/etc/tgt/conf.d' Verzeechnes a fir dësen Artikel gëtt et 'TecMint_iscsi.conf' genannt.

Fir dës Datei ze kreéieren benotzt en Texteditor.

# nano /etc/tgt/conf.d/TecMint_iscsi.conf

An dësem Fichier ginn all déi néideg Konfiguratiounsinformatioune fir dës LUN konfiguréiert. Et gi vill Optiounen, déi an dëser Datei plazéiert kënne ginn, awer fir de Moment gëtt e Basis LUN mat géigesäitege Challenge Handshake Authentication Protocol (CHAP) konfiguréiert.

D'Definitioun vum LUN wäert tëscht zwee 'Zil' Aussoen existéieren. Fir méi Parameteren déi an der Zilerklärung kënne goen, iwwerpréift d'Handbuch Säit fir d''targets.conf'Datei andeems Dir 'man 5 targets.conf' erausginn.

<target iqn.2018-02.linux-console.net:lun1>
     # Provided device as an iSCSI target
     backing-store /dev/mapper/tecmint_iscsi-tecmint_lun1
     initiator-address 192.168.56.102
    incominguser tecmint-iscsi-user password
     outgoinguser debian-iscsi-target secretpass
</target>

Et gëtt vill uewendriwwer. Eng séier Erklärung kann fir déi meescht hëllefräich sinn.

  • Déi éischt Zeil fänkt déi speziell iSCSI LUN Konfiguratioun un. An dësem Fall ass de LUN mam Label 'iqn.2018-02.linux-console.net:lun1'. Den 'iqn' Deel weist datt dëst en iSCSI qualifizéierten Numm wäert sinn. Den '2018-02' ass eng arbiträr gewielte Datumkombinatioun. 'linux-console.net' ass d'Domain déi dës speziell LUN gehéiert. Schlussendlech gëtt de 'lun1' als Numm fir dëst bestëmmt Zil benotzt.
  • Déi zweet Zeil hei uewen illustréiert e Kommentar. Kommentare kënnen an den Zilkonfiguratiounsdateien existéieren a musse mat engem '#' Symbol virausgesat ginn.
  • Déi drëtt Linn ass wou den eigentleche Späicherplatz ass, deen vum Initiator benotzt gëtt. An dësem Fall wäert d'Späicherebacking de logesche Volume sinn, dee virdru am Guide erstallt gouf.
  • Déi véiert Linn ass d'IP Adress déi vum Initiator erwaart gëtt. Och wann dëst net en erfuerderleche Konfiguratiounsartikel ass, kann et hëllefen d'Sécherheet ze erhéijen.
  • Déi fënneft Linn ass den erakommen Benotzernumm/Passwuert. Vill wéi d'Initiatoradress hei uewen, ass dëse Parameter och net erfuerderlech, awer kann hëllefe fir de LUN ze sécheren. Well dëse Guide och iSCSI géigesäitege CHAP deckt, ass dëse Parameter erfuerderlech. Dës Linn weist de Benotzernumm a Passwuert un, dat d'Zil vum Initiateur erwaart, fir mat dësem LUN ze verbannen.
  • Déi sechst Linn ass de Benotzernumm/Passwuert, deen d'Ziel dem Initiator gëtt, fir datt géigesäiteg CHAP Authentifikatioun stattfënnt. Normalerweis ass dëse Parameter net erfuerderlech, awer dësen Artikel behandelt géigesäiteg CHAP Authentifikatioun, sou datt dëse Parameter erfuerderlech ass.
  • Déi lescht Linn ass d'Schlusserklärung fir d'Zieldefinitioun. Opgepasst op d'Ofschlossschnëtt virum Schlësselwuertziel!

Soubal déi entspriechend Konfiguratioune fir de LUN ausgedréckt sinn, späichert d'Ännerungen a gitt aus dem Texteditor. Wann Dir Nano benotzt, dréckt ctrl+o fir ze späicheren an dann dréckt ctrl+x fir den Nano ze verloossen.

Wann d'Konfiguratiounsdatei erstallt gouf, soll den tgt Service nei gestart ginn, sou datt tgt déi nei Ziler an déi assoziéiert Konfiguratioun bewosst ass.

Dëst kann mat engem vun de folgende Kommandoen gemaach ginn an ass ofhängeg vum Init System am Gebrauch.

# service tgt restart  (For sysv init systems)
# systemctl restart tgt  (For systemd init systems)

Wann tgt nei gestart gouf, ass et wichteg ze kontrolléieren fir sécherzestellen datt d'iSCSI Zil verfügbar ass no der erstallt Konfiguratiounsdatei.

Dëst kann mat dem Kommando 'tgtadm' erreecht ginn.

# tgtadm --mode target --op show   (This will show all targets)

Dëst schléisst d'Konfiguratioun vum Zil of. Déi nächst Sektioun funktionnéiert duerch d'Konfiguratioun vum Initiator.

Debian iSCSI Initiator Configuration

De nächste Schrëtt beim Gebrauch vum virdru konfiguréierten iSCSI Zil ass d'Konfiguratioun vum iSCSI Initiator.

En anere XenServer/ESXi oder aner Verdeelunge wéi Red Hat, Debian oder Ubuntu.

Den éischte Schrëtt an dësem Prozess fir dësen Debian Initiator ass d'Installatioun vun de richtege Packagen fir iSCSI.

# apt-get update
# apt-get install open-iscsi

Wann apt d'Konfiguratioun vun den Open-iscsi Packagen ofgeschloss huet, kann d'iSCSI Initiator Konfiguratioun ufänken. Den éischte Schrëtt ass fir mam Zil ze kommunizéieren fir déi initial Konfiguratiounsinformatioun fir d'Ziel virbereet ze kréien.

# iscsiadm -m discovery -t st -p 192.168.56.101

Wann dëse Kommando leeft, reagéiert et zréck mam Numm vun der Lun, déi virdru fir dëse bestëmmte Host konfiguréiert ass. Deen uewe genannte Kommando generéiert och zwee Dateie fir déi nei entdeckt LUN Informatioun.

Elo muss de Fichier erstallt fir dësen Node d'CHAP Informatioun konfiguréiert hunn fir datt dëst iSCSI Zil tatsächlech vum Initiator zougänglech ass.

Technesch kéint dës Informatioun fir de ganze System als Ganzt ageriicht ginn, awer am Fall wou en Host mat verschiddene LUNs mat verschiddene Umeldungsinformatiounen verbënnt, kann dës Umeldungsinformatiounen an der spezifescher Node Konfiguratiounsdatei all Probleemer reduzéieren.

D'Node Konfiguratiounsdatei wäert am Verzeechnes '/etc/iscsi/nodes/' existéieren a wäert e Verzeechnes pro LUN verfügbar hunn. Am Fall vun dësem Artikel (notéiert datt d'Weeër änneren wann d'Nimm/IP Adressen geännert ginn).

# /etc/iscsi/nodes/iqn.2018-02.linux-console.net\:lun1/192.168.56.101\,3260\,1/default

Fir mat dëser Datei ze schaffen, kann all Texteditor benotzt ginn.

# nano /etc/iscsi/nodes/iqn.2018-02.linux-console.net\:lun1/192.168.56.101\,3260\,1/default

Bannent dëser Datei ginn et e puer scho konfiguréiert Optiounen fir dat jeweilegt Zil, déi während dem 'iscsiadm' Kommando virdru bestëmmt goufen.

Well dës speziell Debian Zil-/Initiator-Setup géigesäitege CHAP benotzt, mussen e puer méi Optiounen geännert ginn an op dës Datei bäigefüügt ginn an dann e Login op d'iSCSI Zil gemaach.

D'Ännerunge vun dësem Fichier sinn:

node.session.auth.authmethod = CHAP                    #Enable CHAP Authentication
node.session.auth.username = tecmint-iscsi-user        #Target to Initiator authentication
node.session.auth.password = password                  #Target to Initiator authentication
node.session.auth.username_in = debian-iscsi-target    #Initiator to Target authentication
node.session.auth.password_in = secretpass             #Initiator to Target authentication

Déi uewe genannte Optiounen erlaben dëst Zil fir den Initiator ze authentifizéieren wéi och den Initiator fir dem Zil z'authentifizéieren.

Et gëtt eng aner Optioun an dëser spezieller Datei, déi eventuell geännert muss ginn ofhängeg vun de Virléiften vum Administrator an dat ass de Parameter 'node.startup'.

Wann Dir dëse Guide verfollegt, gëtt d'Optioun 'node.startup' op dësem Punkt op 'manuell' gesat. Dëst kann net gewënscht ginn. Wann den Administrateur d'iSCSI Zil verbonne wëllt hunn wann de System ufänkt, ännert 'manuell' op 'automatesch' als solch:

node.startup = automatic

Wann déi uewe genannte Ännerunge gemaach gi sinn, späichert d'Datei a gitt aus. Zu dësem Zäitpunkt muss den Open-iscsi Initiator Service nei gestart ginn fir dës nei Ännerungen ze liesen a mat dem iSCSI Zil ze verbannen.

Dëst kann mat engem vun de folgende Kommandoen erreecht ginn ofhängeg vum Init System am Gebrauch.

# service open-iscsi restart   (For sysv init systems)
# systemctl restart open-iscsi (For systemd init systems)

Notéiert an der grénger Këscht uewendriwwer datt den iSCSI Initiator konnt sech op d'Ziel aloggen. Fir weider ze bestätegen datt d'iSCSI Zil tatsächlech fir den Initiator verfügbar ass, kënne mir de System iwwerpréiwen fir extra Disk Drive, déi verfügbar sinn mat dem 'lsblk' Kommando an d'Output fir extra Drive ze kontrolléieren.

# lsblk

Deen anere Kommando deen um Initiator benotzt ka ginn fir eng Verbindung zum Zil ze bestätegen ass 'iscsiadm' als solch:

# iscsiadm -m session

Déi lescht Plaz fir eng Verbindung ze bestätegen wier um Zil selwer mat dem 'tgtadm' Kommando fir all iSCSI Verbindungen ze lëschten.

# tgtadm --mode conn --op show --tid 1

Vun dësem Punkt un kann den nei befestegt iSCSI Apparat ähnlech wéi all normal befestegt Scheif benotzt ginn! Partitionéieren, Dateiesystem Kreatioun, Montage an/oder persistent Montage kënnen all normal gehandhabt ginn.

Eng grouss Vorsicht fir mat iSCSI-Geräter bewosst ze sinn ass wann d'iSCSI-Zil wichteg Dateiesystemer enthält, déi gebraucht ginn wéi den Initiator booten, gitt sécher datt Dir den '_netdev' Entrée an der '/etc/fstab' Datei benotzt fir sécherzestellen datt den iSCSI Apparat ass ugeschloss ier de System weider booten!