iSCSI-palvelimen (kohde) ja työaseman (käynnistäjä) asentaminen Debian 9:ssä


Palvelinkeskusmaailmassa suuren kapasiteetin tallennusalueverkoista (SAN) on tullut vähimmäisstandardi. Kun myös pilvipalveluntarjoajat ja virtualisointi vaikuttavat edelleen valtavasti teknologiamaailmaan, tarve entistä enemmän SAN-tallennustilalle on tullut selväksi.

Suurin osa SAN-laitteistoista koostuu minimalistisesta ohjaimesta (tai ohjaimien joukosta) ja suuresta kokoelmasta suurikapasiteettisia asemia, jotka kaikki on konfiguroitu tukemaan suuria määriä tiedon saatavuutta ja eheyttä.

Monet näistä erikoistuotteista ovat suurten toimittajien, kuten Netapp, Dell Equalogic, HP Storageworks tai EMC, valmistamia, ja niihin on kiinnitetty hintalappuja, joihin vain suurimmilla yrityksillä on varaa.

Realistisesti nämä laitteet eivät ole muuta kuin suuria kiintolevyryhmiä, joissa on ohjain, joka tarjoaa näiden kiintolevyjen tilan verkkoon liitetyille asiakkaille. Vuosien varrella on ollut monia teknologioita, jotka tarjoavat tämän tai vastaavan toiminnon huomattavasti halvemmalla.

Debian GNU/Linux -jakelu tarjoaa paketteja, joiden avulla Debian-järjestelmä voi toimia yritystason SAN-tallennuslaitteena vain murto-osalla hinnasta! Näin jokainen peruskotikäyttäjistä tai suurista tietokeskuksista voi saada SAN-tallennusmahdollisuuden edut ilman, että heidän tarvitsee kuluttaa omaisuuksia toimittajan omaan ratkaisuun.

Tässä artikkelissa tarkastellaan, kuinka Debian 9 (Stretch) -järjestelmä voidaan määrittää vapauttamaan levytilaa käyttämällä järjestelmää, joka tunnetaan nimellä Internet Small Computer Systems Interface tai lyhyesti iSCSI. iSCSI on Internet Protocol (IP) -pohjainen standardi, joka tarjoaa lohkotallennustilaa (kiintolevylle) muille järjestelmille. iSCSI toimii asiakaspalvelinmallissa, mutta käyttää eri nimiä asiakkaan erottamiseen palvelimesta.

iSCSI-terminologiassa palvelin, joka palvelee levytilaa, tunnetaan nimellä iSCSI Target ja järjestelmä, joka pyytää /kiintolevytilan käyttäminen tunnetaan nimellä iSCSI 'Initiator'. Toisin sanoen 'Aloittaja' pyytää estotallennustilaa 'Kohteelta'.

Ympäristön asetukset

Tässä oppaassa käydään läpi perusasetukset, jotka sisältävät yksinkertaisen iSCSI-palvelimen (kohde) ja asiakkaan (käynnistäjän). käytössä Debian 9 (Stretch).


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

Verkkoa voi tarkastella seuraavasti:

Debian iSCSI -kohdekokoonpano

iSCSI-maailmassa kohde on isäntä, joka sisältää käynnistäjän käyttämät tallennuslaitteet.

Tässä artikkelissa kohteena käytetään palvelinta, jonka IP-osoite on 192.168.56.101. Kaikki tämän osion asetukset tehdään kyseisessä isännässä.

Ensimmäinen vaihe on tarvittavien pakettien asentaminen, jotta Debian-järjestelmä voi palvella iSCSI-kohteita. Tämä ohjelmistopaketti tunnetaan nimellä Target Framework (TGT).

Toinen tässä oppaassa käytetty kohde on Logical Volume Management (LVM) -työkalut Loogiset volyymit (LV:t).) käytetään iSCSI-kohteen tallennustaustana.

Molemmat paketit voidaan asentaa seuraavilla komennoilla.


apt-get update
apt-get install tgt lvm2

Kun paketit on asennettu, LVM:n avulla valmistetaan kohteen kiintolevyt iSCSI LUN -käyttöön. Ensimmäistä komentoa käytetään levyjen valmistelemiseen LVM-asetuksiin sisällyttämistä varten. Muista muokata komentoa tarpeen mukaan eri skenaarioissa!


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

Kun levyt on valmisteltu yllä olevalla pvcreate-komennolla, on aika luoda taltioryhmä näistä tietyistä levyistä. Taltioryhmä tarvitaan Loogisten taltioiden luomiseen, jotka toimivat iSCSI-tallennustilana myöhemmin.

Taltioryhmän luomiseen tarvitaan vgcreate-komento.


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

Huomaa yllä olevassa lähdössä, että järjestelmä vastaa, että Volume Group on luotu, mutta on aina hyvä idea tarkistaa, kuten yllä näkyy vgs-komennolla. Tämän taltioryhmän kapasiteetti on vain 9,99 Gt. Vaikka tämä on erityisen pieni taltioryhmä, prosessi olisi sama suuremman kapasiteetin levyille!

Seuraava vaihe on loogisen taltion luominen, joka toimii levynä iSCSI-asiakkaalle (aloittaja). Tässä esimerkissä käytetään taltioryhmää kokonaisuudessaan, mutta se ei ole välttämätöntä.

Looginen taltio luodaan lvcreate-komennolla.


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

Yllä oleva lvcreate-komento saattaa olla hieman hämmentävä ensi silmäyksellä, mutta erittely on tällainen:

  • lvcreate – Komento, jota käytetään luomaan looginen asema.
  • -l 100 % FREE – Luo looginen taltio käyttämällä koko taltioryhmän vapaata tilaa.
  • -n tecmint_lun1 – Luotavan loogisen taltion nimi.
  • tecmint_iscsi – sen taltioryhmän nimi, johon looginen taltio luodaan.

Kun looginen tilavuus on luotu, on aika luoda todellinen LUN (Loogisen yksikön numero). LUN on tallennuslaite, johon aloittaja muodostaa yhteyden ja jota käyttää myöhemmin.

LUN:n luominen on hyvin yksinkertaista ja vaatii vain muutaman vaiheen. Ensimmäinen vaihe on määritystiedoston luominen. Tämä tiedosto sijaitsee hakemistossa /etc/tgt/conf.d, ja tässä artikkelissa sen nimi on TecMint_iscsi.conf.

Luo tämä tiedosto tekstieditorilla.


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

Tässä tiedostossa määritetään kaikki tämän LUN:n tarvittavat määritystiedot. Tähän tiedostoon voidaan sijoittaa monia vaihtoehtoja, mutta toistaiseksi perus LUN ja yhteinen Challenge Handshake Authentication Protocol (CHAP) olla konfiguroitu.

LUN:n määritelmä on kahden target-lauseen välissä. Lisää target-lauseeseen mahtuvia parametreja löytyy targets.conf-tiedoston manuaalisivulta antamalla man 5 targets.conf'.


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

Yllä tapahtuu paljon. Nopea selitys voi olla hyödyllinen useimmille.

  • Ensimmäinen rivi aloittaa tietyn iSCSI LUN -määrityksen. Tässä tapauksessa LUN on merkitty "iqn.2018-02.linux-console.net:lun1". iqn-osa osoittaa, että tämä on iSCSI-hyväksytty nimi. 2018-02 on mielivaltaisesti valittu päivämääräyhdistelmä. "linux-console.net" on verkkotunnus, johon tämä tietty LUN kuuluu. Lopuksi "lun1" käytetään nimeä tälle tietylle kohteelle.
  • Yllä oleva toinen rivi havainnollistaa kommenttia. Kohdemääritystiedostoissa voi olla kommentteja, ja niiden alussa on oltava #-symboli.
  • Kolmas rivillä on todellinen tallennustila, jota aloittaja käyttää. Tässä tapauksessa tallennustaustana on aiemmin oppaassa luotu looginen taltio.
  • neljäs rivi on IP-osoite, jota odotetaan aloittajalta. Vaikka tämä ei ole pakollinen määrityskohde, se voi auttaa lisäämään turvallisuutta.
  • Viides rivi on saapuvan käyttäjänimi/salasana. Aivan kuten yllä oleva aloitusosoite, tämä parametri ei ole pakollinen, mutta se voi auttaa turvaamaan LUN:n. Koska tämä opas kattaa myös iSCSI-yhteisen CHAPin, tämä parametri on pakollinen. Tämä rivi osoittaa käyttäjätunnuksen ja salasanan, joita kohde odottaa aloittajalta muodostaakseen yhteyden tähän LUN:iin.
  • Kuudes rivi on käyttäjänimi/salasana, jonka kohde antaa aloittajalle, jotta molemminpuolinen CHAP-todennus voidaan suorittaa. Normaalisti tätä parametria ei vaadita, mutta tämä artikkeli käsittelee keskinäistä CHAP-todennusta, joten tämä parametri on pakollinen.
  • Viimeinen rivi on kohdemäärittelyn päätöslause. Kiinnitä huomiota viimeiseen vinoon avainsanakohteen edessä!

Kun oikeat LUN-määritykset on kirjoitettu, tallenna muutokset ja poistu tekstieditorista. Jos käytät nanoa, tallenna painamalla ctrl+o ja poistu nanosta painamalla ctrl+x.

Kun määritystiedosto on luotu, tgt-palvelu tulee käynnistää uudelleen, jotta tgt on tietoinen uusista kohteista ja niihin liittyvistä määrityksistä.

Tämä voidaan tehdä jollakin seuraavista komennoista ja se riippuu käytössä olevasta init-järjestelmästä.


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

Kun tgt on käynnistetty uudelleen, on tärkeää varmistaa, että iSCSI-kohde on käytettävissä luodun määritystiedoston mukaisesti.

Tämä voidaan tehdä tgtadm-komennolla.


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

Tämä päättää kohteen määrityksen. Seuraavassa osiossa käsitellään aloittajan määritykset.

Debian iSCSI Initiator -asetukset

Seuraava vaihe aiemmin määritetyn iSCSI-kohteen käytössä on iSCSI-käynnistimen määrittäminen.

Tässä artikkelissa käytetään eri Debian 9 -järjestelmää aloittajana, mutta mikä tahansa järjestelmä, joka voi käyttää iSCSI-protokollaa, voi muodostaa yhteyden aiemmin määritettyyn kohteeseen. tämä voi sisältää hypervisorit, kuten XenServer/ESXi, tai muut jakelut, kuten Red Hat, Debian tai Ubuntu.

Ensimmäinen vaihe tässä prosessissa tälle Debian-aloittajalle on oikeiden iSCSI-pakettien asennus.


apt-get update
apt-get install open-iscsi

Kun apt on saanut valmiiksi open-iscsi-pakettien määritykset, iSCSI-aloitusohjelman määritykset voivat alkaa. Ensimmäinen vaihe on kommunikoida kohteen kanssa, jotta kohteen alustavat määritystiedot valmistetaan.


iscsiadm -m discovery -t st -p 192.168.56.101

Kun tämä komento suoritetaan, se vastaa takaisin tälle tietylle isännälle aiemmin määritetyllä lun-nimellä. Yllä oleva komento luo myös kaksi tiedostoa äskettäin löydetyille LUN-tiedoille.

Tälle solmulle luodulle tiedostolle on nyt määritettävä CHAP-tiedot, jotta aloittaja voi todella käyttää tätä iSCSI-kohdetta.

Teknisesti nämä tiedot voitaisiin määrittää koko järjestelmälle kokonaisuutena, mutta jos isäntä muodostaa yhteyden eri LUN:iin eri tunnistetiedoilla, näiden tunnistetietojen sijoittaminen tiettyyn solmun määritystiedostoon voi lieventää ongelmia.

Solmun määritystiedosto on hakemistossa /etc/iscsi/nodes/, ja siinä on käytettävissä LUN-kohtainen hakemisto. Tämän artikkelin tapauksessa (huomaa, että polut muuttuvat, jos nimiä/IP-osoitteita muutetaan).


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

Tämän tiedoston kanssa työskentelemiseen voidaan käyttää mitä tahansa tekstieditoria.


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

Tässä tiedostossa on useita jo määritettyjä valintoja vastaavalle kohdeelle, jotka määritettiin aiemmin suoritetun iscsiadm-komennon aikana.

Koska tämä tietty Debianin kohde/aloittaja-asennus käyttää yhteistä CHAP:ta, joitain vaihtoehtoja on muutettava ja lisättävä tähän tiedostoon ja sitten kirjauduttava iSCSI-kohteeseen. suoritettu.

Muutokset tähän tiedostoon ovat:


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

Yllä olevat vaihtoehdot antavat tämän kohteen todentaa aloittajalle sekä aloittajan todentaa kohteen. >.

Tässä tiedostossa on toinen vaihtoehto, joka on ehkä muutettava järjestelmänvalvojan asetuksista riippuen, ja se on node.startup-parametri.

Jos noudatat tätä opasta, vaihtoehdon node.startup arvoksi tulee tässä vaiheessa manuaalinen. Tämä ei ehkä ole toivottavaa. Jos järjestelmänvalvoja haluaa, että iSCSI-kohde yhdistetään järjestelmän käynnistyessä, vaihda manuaalinen arvoksi automaattinen:


node.startup = automatic

Kun yllä olevat muutokset on tehty, tallenna tiedosto ja poistu. Tässä vaiheessa open-iscsi-aloituspalvelu on käynnistettävä uudelleen, jotta nämä uudet muutokset voidaan lukea ja muodostaa yhteys iSCSI-kohteeseen.

Tämä voidaan suorittaa jollakin seuraavista komennoista riippuen käytössä olevasta init-järjestelmästä.


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

Huomaa yllä olevassa vihreässä laatikossa, että iSCSI-käynnistin onnistui kirjautumaan kohteeseen. Varmistaaksemme edelleen, että iSCSI-kohde on todellakin käynnistäjän käytettävissä, voimme tarkistaa, onko järjestelmästä saatavilla ylimääräisiä levyasemia käyttämällä lsblk. >'-komentoa ja tarkistaa lähdön lisäasemia.


lsblk

Toinen komento, jolla aloittaja voi vahvistaa yhteyden kohteeseen, on iscsiadm sellaisenaan:


iscsiadm -m session

Viimeinen paikka yhteyden vahvistamiseen on itse kohde käyttämällä tgtadm-komentoa iSCSI-yhteyksien luetteloimiseksi.


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

Tästä lähtien vasta liitettyä iSCSI-laitetta voidaan käyttää samalla tavalla kuin mitä tahansa normaalisti kytkettyä levyä! Osiointi, tiedostojärjestelmän luominen, liittäminen ja/tai jatkuva liittäminen voidaan kaikki käsitellä normaalisti.

Eräs suuri varoitus iSCSI-laitteita käytettäessä on se, että iSCSI-kohde sisältää tärkeitä tiedostojärjestelmiä, joita tarvitaan aloittajan käynnistyessä, varmista, että Käytä /etc/fstab-tiedoston merkintää _netdev varmistaaksesi, että iSCSI-laite on yhdistetty, ennen kuin järjestelmä jatkaa käynnistystä!