Weboldal keresés

Az iSCSI kiszolgáló (cél) és kliens (kezdeményező) beállítása Debian 9 rendszeren


Az adatközpontok világában a nagy kapacitású Storage Area Networks (SAN) a minimális szabvány. Mivel a felhőszolgáltatók és a virtualizáció továbbra is hatalmas hatást gyakorol a technológiai világra, nyilvánvalóvá vált, hogy még több SAN-tárhelyre van szükség.

A legtöbb SAN-hardver egy minimalista vezérlőből (vagy vezérlőkészletből) és nagy kapacitású meghajtók nagy gyűjteményéből áll, amelyek mindegyike úgy van beállítva, hogy támogassa a nagy mennyiségű adat rendelkezésre állását és integritását.

Ezen speciális termékek nagy részét nagynevű gyártók, például a Netapp, a Dell Equalogic, a HP Storageworks vagy az EMC gyártják, és olyan árcédulákat is rögzítenek hozzájuk, amelyeket csak a legnagyobb vállalatok engedhetnek meg maguknak.

Valójában ezek az eszközök nem mások, mint nagy merevlemez-tömbök, amelyekben egy vezérlő biztosítja a merevlemezek területét a hálózati ügyfelek számára. Számos technológia létezett az évek során, amelyek lényegesen olcsóbb áron biztosítják ezt a vagy hasonló funkciót.

A Debian GNU/Linux disztribúció olyan csomagokat biztosít, amelyek lehetővé teszik a Debian rendszer számára, hogy vállalati szintű SAN tárolóeszközként szolgáljon a költségek töredékéért! Ez lehetővé teszi, hogy az alapvető otthoni felhasználóktól vagy a nagy adatközpontoktól kezdve mindenki kihasználja a SAN-tárolás előnyeit anélkül, hogy egy vagyont kellene költenie a gyártó által védett megoldásra.

Ez a cikk megvizsgálja, hogyan lehet beállítani egy Debian 9 (Stretch) rendszert úgy, hogy az Internet Small Computer Systems Interface vagy röviden iSCSI néven ismert rendszer használatával lemezterületet szabadítson fel. Az iSCSI egy Internet Protokoll (IP) alapú szabvány, amely blokkos (merevlemezes) tárolást biztosít más rendszerek számára. Az iSCSI ügyfélkiszolgáló modellben működik, de különböző neveket használ az ügyfél és a kiszolgáló megkülönböztetésére.

Az iSCSI terminológiában a „lemezterületet” kiszolgáló kiszolgálót iSCSIcélként” és a kérést kérő rendszerként ismerik. /a lemezterület kihasználása az iSCSI 'Initiator' néven ismert. Más szavakkal, egy „Kezdeményező” tárhelyblokkolást kér a „Céltól”.

Környezet beállítása

Ez az útmutató egy egyszerű iSCSI szervert (cél) és klienst (kezdeményezőt) magában foglaló alapbeállításokat ismerteti. Debian 9 (Stretch) futtatása.


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

A hálózat az alábbiak szerint tekinthető meg:

Debian iSCSI célkonfiguráció

Az iSCSI világban a célt tekintjük a kezdeményező által használandó tárolóeszközöket tartalmazó gazdagépnek.

Ebben a cikkben a 192.168.56.101 IP-című szervert használjuk célként. Ennek a szakasznak az összes konfigurációja azon a gazdagépen történik.

Az első lépés a szükséges csomagok telepítése, hogy a Debian rendszer kiszolgálhassa az iSCSI-célokat. Ez a szoftvercsomag a Target Framework (TGT) néven ismert.

A másik elem, amelyet ebben az útmutatóban használunk, a Logical Volume Management (LVM) eszközök logikai kötetekként (LV)) az iSCSI-cél tároló háttereként lesz használva.

Mindkét csomag telepíthető a következő parancsokkal.


apt-get update
apt-get install tgt lvm2

A csomagok telepítése után az LVM segítségével előkészíti a cél merevlemezeit az iSCSI LUNként való használatra. Az első parancs a lemezek LVM-beállításba való felkészítésére szolgál. Ügyeljen arra, hogy a parancsot szükség szerint módosítsa a különböző forgatókönyvekhez!


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

Miután a lemezeket előkészítette a fenti „pvcreate” paranccsal, ideje létrehozni egy kötetcsoportot ezekből a lemezekből. A kötetcsoport szükséges a logikai kötetek létrehozásához, amelyek később iSCSI tárolóként működnek.

Kötetcsoport létrehozásához a ’vgcreate’ parancs szükséges.


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

Figyelje meg a fenti kimenetben, hogy a rendszer azt válaszolja, hogy a Kötetcsoport létrehozása megtörtént, de mindig célszerű ellenőrizni a fentiek szerint a „vgs” paranccsal. Ennek a kötetcsoportnak a kapacitása mindössze 9,99 GB. Bár ez egy különösen kis kötetcsoport, a folyamat ugyanaz lenne a nagyobb kapacitású lemezeknél!

A következő lépés annak a logikai kötetnek a létrehozása, amely az iSCSI kliens (kezdeményező) lemezeként fog működni. Ebben a példában a teljes kötetcsoport kerül felhasználásra, de ez nem szükséges.

A logikai kötet az „lvcreate” paranccsal jön létre.


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

A fenti „lvcreate” parancs első pillantásra kissé zavaró lehet, de a lebontás a következő:

  • lvcreate – A logikai kötet létrehozásához használt parancs.
  • -l 100%FREE – Hozza létre a logikai kötetet a kötetcsoport teljes szabad területének felhasználásával.
  • -n tecmint_lun1 – A létrehozandó logikai kötet neve.
  • tecmint_iscsi – A kötetcsoport neve a logikai kötet létrehozásához.

A logikai kötet létrehozása után itt az ideje létrehozni a tényleges LUN-t (logikai egység száma). A LUN lesz az a tárolóeszköz, amelyhez a kezdeményező csatlakozni fog, és amelyet később használni fog.

A LUN létrehozása nagyon egyszerű, és mindössze néhány lépést igényel. Az első lépés a konfigurációs fájl létrehozása. Ez a fájl a „/etc/tgt/conf.d” könyvtárban található, ennél a cikknél pedig „TecMint_iscsi.conf” lesz.

A fájl létrehozásához használjon szövegszerkesztőt.


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

Ebben a fájlban konfigurálják a LUN-hoz szükséges összes konfigurációs információt. Sok lehetőség elhelyezhető ebben a fájlban, de egyelőre egy alapvető LUN és kölcsönös Challenge Handshake Authentication Protocol (CHAP) legyen konfigurálva.

A LUN meghatározása két „cél” utasítás között létezik. További paraméterekért, amelyek a target utasításban szerepelhetnek, tekintse át a „targets.conf” fájl kézikönyvoldalát a „man 5 targets.conf” kiadásával.


<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>

Sok minden történik fent. Egy gyors magyarázat a legtöbb számára hasznos lehet.

  • Az első sor az adott iSCSI LUN konfigurációt kezdi. Ebben az esetben az „iqn.2018-02.linux-console.net:lun1” címkével ellátott LUN. Az „iqn” rész azt jelzi, hogy ez egy iSCSI minősítésű név lesz. A „2018-02” egy önkényesen kiválasztott dátumkombináció. A „linux-console.net” az a domain, amelyhez az adott LUN tartozik. Végül a „lun1” neve ennek a konkrét célpontnak.
  • A fenti második sor egy megjegyzést illusztrál. Megjegyzések lehetnek a cél konfigurációs fájljaiban, és egy „#” szimbólummal kell megjelölni őket.
  • A harmadik sor az a tényleges tárhely, amelyet a kezdeményező fog használni. Ebben az esetben a háttértár az útmutatóban korábban létrehozott logikai kötet lesz.
  • A negyedik sor az IP-cím, amelyet a kezdeményezőtől várnak. Bár ez nem kötelező konfigurációs elem, segíthet a biztonság növelésében.
  • Az ötödik sor a bejövő felhasználónév/jelszó. A fenti kezdeményező címhez hasonlóan ez a paraméter sem kötelező, de segíthet a LUN biztonságossá tételében. Mivel ez az útmutató az iSCSI kölcsönös CHAP-ra is vonatkozik, ez a paraméter kötelező. Ez a sor azt a felhasználónevet és jelszót jelzi, amelyet a cél a kezdeményezőtől vár a LUN-hoz való csatlakozáshoz.
  • A hatodik sor az a felhasználónév/jelszó, amelyet a cél megad a kezdeményezőnek, hogy lehetővé tegye a kölcsönös CHAP-hitelesítést. Általában ez a paraméter nem kötelező, de ez a cikk a kölcsönös CHAP-hitelesítésről szól, ezért ez a paraméter kötelező.
  • Az utolsó sor a céldefiníció záró utasítása. Ügyeljen a záró perjelre a cél kulcsszó előtt!

Miután beírta a LUN megfelelő konfigurációit, mentse el a változtatásokat, és lépjen ki a szövegszerkesztőből. nano használata esetén nyomja le a ctrl+o billentyűt a mentéshez, majd a ctrl+x billentyűkombinációt a nanoból való kilépéshez.

A konfigurációs fájl létrehozása után a tgt szolgáltatást újra kell indítani, hogy a tgt ismerje az új célokat és a kapcsolódó konfigurációt.

Ez a következő parancsok egyikével tehető meg, és a használt init rendszertől függ.


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

A tgt újraindítása után fontos ellenőrizni, hogy az iSCSI-cél elérhető legyen a létrehozott konfigurációs fájlnak megfelelően.

Ezt a 'tgtadm' paranccsal érheti el.


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

Ezzel befejeződik a cél konfigurálása. A következő szakasz a kezdeményező konfigurációján keresztül fog működni.

Debian iSCSI Initiator konfigurációja

A korábban konfigurált iSCSI-cél használatának következő lépése az iSCSI-kezdeményező konfigurálása.

Ebben a cikkben egy másik Debian 9 rendszer lesz kezdeményező, de bármely rendszer, amely képes használni az iSCSI protokollt, csatlakozhat a korábban beállított célhoz; ide tartozhatnak a hipervizorok, például a XenServer/ESXi, vagy más disztribúciók, mint a Red Hat, a Debian vagy az Ubuntu.

Ennek a folyamatnak az első lépése ennél a Debian-kezdeményezőnél az iSCSI megfelelő csomagjainak telepítése.


apt-get update
apt-get install open-iscsi

Miután az apt befejezte az open-iscsi csomagok konfigurálását, megkezdődhet az iSCSI iniciátor konfigurálása. Az első lépés az lesz, hogy kommunikáljon a céllal, hogy előkészítse a cél kezdeti konfigurációs információit.


iscsiadm -m discovery -t st -p 192.168.56.101

Amikor ez a parancs lefut, az adott gazdagéphez korábban beállított lun nevével válaszol. A fenti parancs két fájlt is generál az újonnan felfedezett LUN információkhoz.

Mostantól az ehhez a csomóponthoz létrehozott fájlban be kell állítani a CHAP információkat, hogy ez az iSCSI-cél valóban elérhető legyen a kezdeményező számára.

Technikailag ez az információ beállítható a teljes rendszer egészére, de abban az esetben, ha egy gazdagép különböző hitelesítési adatokkal rendelkező különböző LUN-okhoz csatlakozik, ezeknek a hitelesítő adatoknak az adott csomópont konfigurációs fájljában való elhelyezése enyhítheti a problémákat.

A csomópont-konfigurációs fájl a „/etc/iscsi/nodes/” könyvtárban fog megjelenni, és LUN-onként egy könyvtár áll rendelkezésre. Ebben a cikkben (vegye figyelembe, hogy az elérési utak megváltoznak, ha a nevek/IP-címek megváltoznak).


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

Ezzel a fájllal bármilyen szövegszerkesztő használható.


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

Ebben a fájlban számos, már konfigurált beállítás található a megfelelő célhoz, amelyeket az „iscsiadm” parancs korábban futtatásakor határoztak meg.

Mivel ez a konkrét Debian cél/kezdeményező beállítás kölcsönös CHAP-ot használ, néhány további beállítást módosítani kell, és hozzá kell adni ehhez a fájlhoz, majd be kell jelentkezni az iSCSI-célra. végzett.

A fájl módosításai a következők:


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

A fenti beállítások lehetővé teszik, hogy ez a célpont hitelesítsen a kezdeményező számára, valamint a kezdeményező a célpont számára. >.

Ebben a fájlban van egy másik lehetőség, amelyet a rendszergazda beállításaitól függően módosítani kell, ez a „node.startup” paraméter.

Ha követi ezt az útmutatót, a „node.startup” opció ezen a ponton „manual” értékre lesz állítva. Ez talán nem kívánatos. Ha az adminisztrátor azt szeretné, hogy az iSCSI-célpont legyen csatlakoztatva a rendszer indításakor, módosítsa a „manual”-t „automatikus”-ra, mint ilyen:


node.startup = automatic

A fenti módosítások végrehajtása után mentse el a fájlt, és lépjen ki. Ezen a ponton az open-iscsi iniciátor szolgáltatást újra kell indítani az új módosítások beolvasásához és az iSCSI-célhoz való csatlakozáshoz.

Ez a használt init rendszertől függően a következő parancsok egyikével valósítható meg.


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

Figyelje meg a fenti zöld mezőben, hogy az iSCSI-kezdeményező be tudott jelentkezni a célba. Annak megerősítésére, hogy az iSCSI-cél valóban elérhető-e a kezdeményező számára, ellenőrizhetjük, hogy a rendszerben vannak-e további lemezmeghajtók, amelyek az 'lsblk használatával érhetők el. >' parancsot, és ellenőrizze a kimenetet, hogy vannak-e további meghajtók.


lsblk

A másik parancs, amely a iniciátoron használható a célponttal való kapcsolat megerősítésére, az „iscsiadm”, mint olyan:


iscsiadm -m session

A kapcsolat megerősítésének végső helye magán a célon lenne, a „tgtadm” paranccsal az iSCSI-kapcsolatok listázásához.


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

Ettől a ponttól kezdve az újonnan csatlakoztatott iSCSI-eszköz hasonlóan használható, mint bármely normál csatlakoztatott lemez! A particionálás, a fájlrendszer létrehozása, a beillesztés és/vagy a perzisztens csatolás mind normálisan kezelhető.

Az iSCSI-eszközökkel kapcsolatban érdemes figyelni, ha az iSCSI-célpont olyan fontos fájlrendszereket tartalmaz, amelyekre a kezdeményező indításakor szükség van. használja a '_netdev' bejegyzést az '/etc/fstab' fájlban annak biztosítására, hogy az iSCSI-eszköz csatlakoztatva legyen, mielőtt a rendszer elindulna!