Kaip nustatyti iSCSI serverį (taikinį) ir klientą (iniciatorių) „Debian 9“


Duomenų centrų pasaulyje didelės talpos Storage Area Networks (SAN) tapo minimaliu standartu. Kadangi debesų tiekėjai ir virtualizacija ir toliau daro didžiulį poveikį technologijų pasauliui, tapo akivaizdu, kad reikia dar daugiau SAN saugyklos vietos.

Daugumą SAN aparatinės įrangos sudaro minimalistinis valdiklis (arba valdiklių rinkinys) ir didelė didelės talpos diskų kolekcija, sukonfigūruota taip, kad būtų palaikomas didelis duomenų prieinamumas ir vientisumas.

Daugelį šių specializuotų produktų gamina garsūs pardavėjai, tokie kaip „Netapp“, „Dell Equalogic“, „HP Storageworks“ arba EMC, ir prie jų yra pritvirtintos kainų etiketės, kurias gali sau leisti tik didžiausios įmonės.

Tiesą sakant, šie įrenginiai yra ne kas kita, kaip didelės standžiųjų diskų matricos su valdikliu, suteikiančiu vietos tuose standžiuosiuose diskuose tinklo klientams. Bėgant metams buvo sukurta daug technologijų, kurios suteikia šią ar panašią funkciją už žymiai pigesnę kainą.

Paskirstymas Debian GNU/Linux pateikia paketus, leidžiančius Debian sistemai tarnauti kaip įmonės lygio SAN saugojimo įrenginiui už tik dalį kainos! Tai leidžia visiems, pradedant nuo pagrindinių namų vartotojų ar didelių duomenų centrų, pasinaudoti SAN saugyklos pranašumais, neišleidžiant didelių pinigų pardavėjo patentuotam sprendimui.

Šiame straipsnyje bus nagrinėjama, kaip galima nustatyti „Debian 9“ („Stretch“) sistemą, kad būtų naudojama vieta diske, naudojant sistemą, vadinamą Internet Small Computer Systems Interface arba sutrumpintai iSCSI. iSCSI yra interneto protokolu (IP) pagrįstas standartas, skirtas teikti blokinę (standžiojo disko) saugyklą kitoms sistemoms. iSCSI veikia kliento serverio modelyje, tačiau naudoja skirtingus pavadinimus, kad atskirtų klientą nuo serverio.

Pagal iSCSI terminologiją serveris, aptarnaujantis „disko vietą“, yra žinomas kaip iSCSItikslas“ ir užklausą teikianti sistema. /naudojant vietos diske yra žinomas kaip iSCSI „iniciatorius“. Kitaip tariant, „iniciatorius“ prašo blokuoti saugyklą iš „tikslinės“.

Aplinkos sąranka

Šiame vadove bus aprašyta pagrindinė sąranka, kurią sudaro paprastas iSCSI serveris (tikslas) ir klientas (iniciatorius). veikia 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

Tinklas gali būti peržiūrėtas taip:

Debian iSCSI tikslinė konfigūracija

iSCSI pasaulyje tikslas laikomas pagrindiniu kompiuteriu, kuriame yra saugojimo įrenginiai, kuriuos naudos iniciatorius.

Šiame straipsnyje serveris, kurio IP yra 192.168.56.101, naudojamas kaip tikslas. Visos šios skilties konfigūracijos bus atliekamos tame pagrindiniame kompiuteryje.

Pirmasis žingsnis yra būtinų paketų įdiegimas, kad „Debian“ sistema galėtų aptarnauti iSCSI taikinius. Šis programinės įrangos paketas žinomas kaip Target Framework (TGT).

Kitas elementas, naudojamas šiame vadove, yra Loginio tomo valdymo (LVM) įrankiai kaip loginiai tomai (LV).) bus naudojama kaip iSCSI tikslo saugykla.

Abu paketus galima įdiegti naudojant šias komandas.


apt-get update
apt-get install tgt lvm2

Kai paketai bus įdiegti, LVM bus naudojamas tikslinio standžiųjų diskų paruošimui naudoti kaip iSCSI LUN. Pirmoji komanda naudojama paruošti diskus įtraukti į LVM sąranką. Būtinai pakeiskite komandą, jei reikia skirtingiems scenarijams!


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

Kai diskai bus paruošti naudojant aukščiau pateiktą komandą „pvcreate“, laikas iš šių konkrečių diskų sukurti tūrio grupę. Tomų grupė reikalinga norint sukurti loginius tomus, kurie vėliau veiks kaip iSCSI saugykla.

Norint sukurti tomo grupę, reikalinga komanda „vgcreate“.


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

Aukščiau pateiktame išvestyje atkreipkite dėmesį, kad sistema atsako, kad buvo sukurta garsumo grupė, tačiau visada verta dar kartą patikrinti, kaip parodyta aukščiau, naudojant komandą vgs. Šios tūrio grupės talpa yra tik 9,99 GB. Nors tai ypač mažos apimties grupė, procesas būtų toks pat ir didesnės talpos diskams!

Kitas žingsnis – sukurti loginį tomą, kuris veiks kaip iSCSI kliento diskas (iniciatorius). Šiame pavyzdyje bus naudojama visa tūrio grupė, bet tai nėra būtina.

Loginis tomas bus sukurtas naudojant komandą lvcreate.


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

Aukščiau pateikta komanda „lvcreate“ iš pirmo žvilgsnio gali būti šiek tiek paini, tačiau suskirstymas yra toks:

  • lvcreate – komanda, naudojama loginiam tomui sukurti.
  • -l 100 % FREE – sukurkite loginį tomą naudodami visą tomų grupės laisvą vietą.
  • -n tecmint_lun1 – kuriamo loginio tomo pavadinimas.
  • tecmint_iscsi – tomų grupės pavadinimas, joje sukuriamas loginis tomas.

Sukūrus loginį tomą, laikas sukurti tikrąjį LUN (loginio vieneto numerį). LUN bus saugojimo įrenginys, prie kurio iniciatorius prisijungs ir naudos vėliau.

Sukurti LUN yra labai paprasta ir reikia atlikti tik kelis veiksmus. Pirmasis žingsnis bus konfigūracijos failo sukūrimas. Šis failas bus kataloge /etc/tgt/conf.d, o šiame straipsnyje jis bus vadinamas TecMint_iscsi.conf.

Norėdami sukurti šį failą, naudokite teksto rengyklę.


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

Šiame faile bus sukonfigūruota visa reikalinga šio LUN konfigūracijos informacija. Yra daug parinkčių, kurias galima įdėti į šį failą, tačiau šiuo metu bus naudojamas pagrindinis LUN su abipusiu iššūkio rankos paspaudimo autentifikavimo protokolu (CHAP). būti sukonfigūruotas.

LUN apibrėžimas bus tarp dviejų „target“ teiginių. Jei reikia daugiau parametrų, kurie gali būti pateikiami tiksliniame sakinyje, peržiūrėkite failo „targets.conf“ vadovą, išduodami „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>

Daug kas vyksta aukščiau. Greitas paaiškinimas gali būti naudingas daugeliui.

  • Pirmoji eilutė pradeda tam tikrą iSCSI LUN konfigūraciją. Šiuo atveju LUN pažymėta „iqn.2018-02.linux-console.net:lun1“. Dalis „iqn“ nurodo, kad tai bus iSCSI kvalifikuotas pavadinimas. „2018-02“ yra savavališkai pasirinktas datų derinys. „linux-console.net“ yra domenas, kuriam priklauso šis konkretus LUN. Galiausiai „lun1“ naudojamas kaip šio konkretaus taikinio pavadinimas.
  • Viršuje esanti antra eilutė iliustruoja komentarą. Komentarai gali būti tiksliniuose konfigūracijos failuose ir prieš juos turi būti nurodytas simbolis #.
  • Trečioje eilutėje yra tikroji saugyklos vieta, kurią naudos iniciatorius. Šiuo atveju saugyklos pagrindas bus loginis tūris, kuris buvo sukurtas anksčiau vadove.
  • Ketvirtoji eilutė yra IP adresas, kurio tikimasi iš iniciatoriaus. Nors tai nėra būtinas konfigūracijos elementas, jis gali padėti padidinti saugumą.
  • Penktoji eilutė yra gaunamas vartotojo vardas/slaptažodis. Panašiai kaip aukščiau nurodytas iniciatoriaus adresas, šis parametras taip pat nėra būtinas, bet gali padėti apsaugoti LUN. Kadangi šis vadovas taip pat apima iSCSI abipusį CHAP, šis parametras yra būtinas. Šioje eilutėje nurodomas vartotojo vardas ir slaptažodis, kurių taikinys tikisi iš iniciatoriaus, kad galėtų prisijungti prie šio LUN.
  • Šeštoji eilutė yra naudotojo vardas/slaptažodis, kurį taikinys pateiks iniciatoriui, kad būtų galima atlikti abipusį CHAP autentifikavimą. Paprastai šio parametro nereikia, tačiau šis straipsnis apima abipusį CHAP autentifikavimą, todėl šis parametras yra būtinas.
  • Paskutinė eilutė yra galutinis tikslo apibrėžimo sakinys. Atkreipkite dėmesį į pasvirąjį brūkšnį prieš raktinio žodžio tikslą!

Įvedę atitinkamas LUN konfigūracijas, išsaugokite pakeitimus ir išeikite iš teksto rengyklės. Jei naudojate nano, paspauskite ctrl+o, kad išsaugotumėte, tada paspauskite ctrl+x, kad išeitumėte iš nano.

Sukūrus konfigūracijos failą, tgt paslauga turėtų būti paleista iš naujo, kad tgt žinotų apie naujus tikslus ir susijusią konfigūraciją.

Tai galima padaryti naudojant vieną iš šių komandų ir tai priklauso nuo naudojamos init sistemos.


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

Paleidus tgt iš naujo, svarbu patikrinti, ar iSCSI taikinys pasiekiamas pagal sukurtą konfigūracijos failą.

Tai galima padaryti naudojant komandą tgtadm.


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

Taip baigiamas tikslinio konfigūravimas. Kitame skyriuje bus atliktas iniciatoriaus konfigūravimas.

Debian iSCSI iniciatoriaus konfigūracija

Kitas veiksmas naudojant anksčiau sukonfigūruotą iSCSI tikslą yra iSCSI iniciatoriaus konfigūracija.

Šiame straipsnyje kaip iniciatorius bus naudojama kita Debian 9 sistema, tačiau bet kuri sistema, galinti naudoti iSCSI protokolą, gali prisijungti prie anksčiau sukonfigūruoto tikslo; tai gali apimti hipervizorius, pvz., XenServer/ESXi, arba kitus platinimus, tokius kaip Red Hat, Debian ar Ubuntu.

Pirmasis šio proceso veiksmas, skirtas šiam Debian'o iniciatoriui, yra tinkamų iSCSI paketų įdiegimas.


apt-get update
apt-get install open-iscsi

Kai apt baigs open-iscsi paketų konfigūravimą, iSCSI iniciatoriaus konfigūracija gali prasidėti. Pirmas veiksmas bus susisiekti su tiksliniu, kad būtų paruošta pradinė tikslinės konfigūracijos informacija.


iscsiadm -m discovery -t st -p 192.168.56.101

Kai ši komanda bus paleista, ji atsakys lun pavadinimu, anksčiau sukonfigūruotu šiam konkrečiam kompiuteriui. Aukščiau pateikta komanda taip pat sugeneruos du failus naujai atrastai LUN informacijai.

Dabar šiam mazgui sukurtame faile turės būti sukonfigūruota CHAP informacija, kad šį iSCSI tikslą iš tikrųjų galėtų pasiekti iniciatorius.

Techniškai ši informacija gali būti nustatyta visai sistemai, tačiau tuo atveju, jei pagrindinis kompiuteris prisijungia prie skirtingų LUN su skirtingais kredencialais, įdėjus tuos kredencialus į konkretų mazgo konfigūracijos failą gali sušvelnėti bet kokios problemos.

Mazgo konfigūracijos failas bus kataloge „/etc/iscsi/nodes/“ ir turės katalogą pagal LUN. Šio straipsnio atveju (atminkite, kad keliai pasikeis, jei bus pakeisti vardai/IP adresai).


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

Norėdami dirbti su šiuo failu, galite naudoti bet kurį teksto rengyklę.


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

Šiame faile bus kelios jau sukonfigūruotos atitinkamos tikslinės parinktys, kurios buvo nustatytos anksčiau vykdant komandą iscsiadm.

Kadangi ši konkreti Debian'o tikslinio/iniciatoriaus sąranka naudoja abipusį CHAP, reikia pakeisti ir pridėti prie šio failo dar keletą parinkčių, o tada prisijungti prie iSCSI paskirties vietos. atlikta.

Šio failo pakeitimai yra šie:


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

Aukščiau pateiktos parinktys leis šiam tikslui autentifikuoti iniciatorių, taip pat iniciatoriui autentifikuoti tikslininką >.

Šiame konkrečiame faile yra dar viena parinktis, kurią gali tekti pakeisti, atsižvelgiant į administratoriaus nuostatas, ir tai yra parametras node.startup.

Jei laikysitės šio vadovo, parinktis „node.startup“ šiuo metu bus nustatyta į „manual“. Tai gali būti nepageidautina. Jei administratorius nori, kad iSCSI taikinys būtų prijungtas, kai sistema paleidžiama, pakeiskite „rankinis“ į „automatinis“ kaip toks:


node.startup = automatic

Atlikę aukščiau nurodytus pakeitimus, išsaugokite failą ir išeikite. Šiuo metu open-iscsi iniciatoriaus paslaugą reikia paleisti iš naujo, kad būtų galima perskaityti šiuos naujus pakeitimus ir prisijungti prie iSCSI paskirties vietos.

Tai galima padaryti naudojant vieną iš šių komandų, priklausomai nuo naudojamos init sistemos.


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

Aukščiau esančiame žaliame laukelyje atkreipkite dėmesį, kad iSCSI iniciatorius galėjo prisijungti prie tikslinės. Norėdami dar labiau patvirtinti, kad iSCSI taikinys tikrai pasiekiamas iniciatoriui, galime patikrinti, ar sistemoje nėra papildomų diskų įrenginių, kurie pasiekiami naudojant lsblk. >“ komandą ir patikrinkite, ar išvestis nėra papildomų diskų.


lsblk

Kita komanda, kurią galima naudoti iniciatoriuje norint patvirtinti ryšį su tiksliniu, yra „iscsiadm“:


iscsiadm -m session

Paskutinė ryšio patvirtinimo vieta būtų pačioje tikslinėje, naudojant komandą tgtadm, kad būtų pateiktos visos iSCSI jungtys.


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

Nuo šio momento naujai prijungtas iSCSI įrenginys gali būti naudojamas panašiai kaip bet kuris įprastai prijungtas diskas! Suskirstymas, failų sistemos kūrimas, montavimas ir (arba) nuolatinis prijungimas gali būti tvarkomi įprastai.

Vienas didelis įspėjimas, kurį reikia žinoti naudojant iSCSI įrenginius, yra tai, kad iSCSI tikslinėje yra svarbių failų sistemų, kurios reikalingos iniciatoriui paleidžiant, įsitikinkite, kad naudokite įrašą „_netdev“ faile „/etc/fstab“, kad įsitikintumėte, jog iSCSI įrenginys prijungtas prieš tęsiant sistemos paleidimą!