Kā iestatīt iSCSI serveri (mērķi) un klientu (iniciators) vietnē Debian 9


Datu centru pasaulē par minimālo standartu ir kļuvuši lielas ietilpības krātuves tīkli (SAN). Tā kā mākoņpakalpojumu sniedzēji un virtualizācija arī turpina ievērojami ietekmēt tehnoloģiju pasauli, ir kļuvusi acīmredzama vajadzība pēc vēl vairāk SAN krātuves.

Lielāko daļu SAN aparatūras veido minimālistisks kontrolieris (vai kontrolieru komplekts) un liela kolekcija lielas ietilpības disku, kas visi ir konfigurēti tā, lai atbalstītu lielu datu pieejamību un integritāti.

Daudzus no šiem specializētajiem izstrādājumiem ražo tādi lieli preču pārdevēji kā Netapp, Dell Equalogic, HP Storageworks vai EMC, un tiem ir pievienotas cenu zīmes, kuras atļauties var tikai lielākais uzņēmums.

Reāli šīs ierīces ir nekas cits kā lieli cieto disku bloki ar kontrolieri, kas nodrošina šo cieto disku vietu tīkla klientiem. Gadu gaitā pastāv daudzas tehnoloģijas, kas nodrošina šo vai līdzīgu funkcionalitāti par ievērojami lētāku cenu.

Debian GNU/Linux izplatīšana nodrošina paketes, kas ļauj Debian sistēmai tikai ar nelielu izmaksu daļu kalpot uzņēmuma līmeņa SAN atmiņas ierīcei! Tas ļauj ikvienam, sākot no pamata mājas lietotājiem vai lieliem datu centriem, iegūt SAN krātuves priekšrocības, neizmantojot bagātību pārdevēja patentētam risinājumam.

Šajā rakstā tiks aplūkots, kā Debian 9 (Stretch) sistēmu var iestatīt, lai apkalpotu vietu diskā, īsumā izmantojot sistēmu, kas pazīstama kā Interneta mazo datorsistēmu saskarne vai iSCSI. iSCSI ir uz interneta protokola (IP) balstīts standarts bloku (cietā diska) krātuves nodrošināšanai citām sistēmām. iSCSI darbojas klienta servera modelī, taču izmanto dažādus nosaukumus, lai atšķirtu klientu no servera.

Pēc iSCSI terminoloģijas serveris, kas apkalpo “diska vietu”, ir pazīstams kā iSCSI “Target”, un sistēma, kas pieprasa/izmanto vietu diskā, ir pazīstama kā iSCSI ‘Initiator’. Citiem vārdiem sakot, iniciators pieprasa bloķēt krātuvi no mērķa.

Šajā rokasgrāmatā būs aprakstīta pamata iestatīšana, iesaistot vienkāršu iSCSI serveri (mērķis) un klientu (iniciators), kas darbojas ar 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

Tīklu var apskatīt šādi:

Debian iSCSI mērķa konfigurācija

ISCSI pasaulē mērķis tiek uzskatīts par resursdatoru, kas satur atmiņas ierīces, kuras jāizmanto iniciatoram.

Šajā rakstā serveris, kura IP ir 192.168.56.101, tiek izmantots kā mērķis. Visas šīs sadaļas konfigurācijas tiks veiktas attiecīgajā resursdatorā.

Pirmais solis ir nepieciešamo pakotņu instalēšana, lai Debian sistēma varētu apkalpot iSCSI mērķus. Šī programmatūras pakete ir pazīstama kā Target Framework (TGT).

Otrs elements, kas tiek izmantots šajā rokasgrāmatā, ir loģiskā sējuma pārvaldības (LVM) rīki, jo loģiskie sējumi (LV) tiks izmantoti kā iSCSI mērķa krātuves pamatne.

Abas paketes var instalēt ar šādām komandām.

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

Pēc pakotņu instalēšanas LVM tiks izmantots, lai sagatavotu mērķa cietos diskus, lai tos izmantotu kā iSCSI LUN. Pirmā komanda tiek izmantota, lai sagatavotu diskus iekļaušanai LVM iestatījumos. Noteikti modificējiet komandu pēc nepieciešamības dažādiem scenārijiem!

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

Kad diski ir sagatavoti ar iepriekš minēto komandu ‘pvcreate’, ir pienācis laiks no šiem konkrētajiem diskiem izveidot sējumu grupu. Sējumu grupa ir nepieciešama, lai izveidotu loģiskos sējumus, kas vēlāk darbosies kā iSCSI krātuve.

Lai izveidotu sējumu grupu, ir nepieciešama komanda ‘vgcreate’.

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

Iepriekšējā izvadā ievērojiet, ka sistēma atbild, ka Volume Group tika izveidots, taču vienmēr ir ieteicams vēlreiz pārbaudīt, kā redzams iepriekš, ar komandu ‘vgs’. Šīs skaļuma grupas ietilpība ir tikai 9,99 GB. Lai gan šī ir īpaši maza apjoma grupa, lielākas ietilpības diskiem process būtu vienāds!

Nākamais solis ir loģiskā sējuma izveide, kas darbosies kā disks iSCSI klientam (iniciators). Šajā piemērā tiks izmantota visa sējumu grupa, taču tā nav nepieciešama.

Loģiskais apjoms tiks izveidots, izmantojot komandu ‘lvcreate’.

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

Iepriekš minētā komanda “lvcreate” no pirmā acu uzmetiena varētu būt nedaudz mulsinoša, taču sadalījums ir tāds:

  • lvcreate - komanda, ko izmanto loģiskā apjoma izveidošanai.
  • -l 100% BEZMAKSAS - izveidojiet loģisko apjomu, izmantojot visu skaļuma grupas brīvo vietu.
  • -n tecmint_lun1 - izveidojamā loģiskā sējuma nosaukums.
  • tecmint_iscsi - sējumu grupas nosaukums, kurā izveidot loģisko sējumu.

Kad loģiskais apjoms ir izveidots, ir pienācis laiks izveidot faktisko LUN (loģiskās vienības numuru). LUN būs atmiņas ierīce, ar kuru iniciators izveidos savienojumu un izmantos vēlāk.

LUN izveide ir ļoti vienkārša un prasa tikai dažas darbības. Pirmais solis būs konfigurācijas faila izveide. Šis fails atradīsies direktorijā ‘/etc/tgt/conf.d’, un šim rakstam tas tiks dēvēts par ‘TecMint_iscsi.conf’.

Lai izveidotu šo failu, izmantojiet teksta redaktoru.

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

Šajā failā tiks konfigurēta visa nepieciešamā šī LUN konfigurācijas informācija. Šajā failā var ievietot daudz iespēju, taču tagad tiks konfigurēts pamata LUN ar savstarpēju izaicinājuma rokasspiediena autentifikācijas protokolu (CHAP).

LUN definīcija pastāv starp diviem mērķa paziņojumiem. Lai iegūtu vairāk parametru, kas var ietvert mērķa paziņojumu, pārskatiet faila ‘target.conf’ rokasgrāmatas lapu, izsniedzot ‘man 5 target.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>

Iepriekš viss notiek daudz. Ātrais paskaidrojums var būt noderīgs lielākajai daļai.

  • Pirmajā rindā sākas konkrētā iSCSI LUN konfigurācija. Šajā gadījumā LUN marķējums ir “iqn.2018-02.linux-console.net:lun1”. Daļa “iqn” norāda, ka tas būs iSCSI kvalificēts nosaukums. ‘2018-02’ ir patvaļīgi izvēlēta datumu kombinācija. ‘linux-console.net’ ir domēns, kuram pieder šis konkrētais LUN. Visbeidzot, ‘lun1’ tiek izmantots kā nosaukums šim konkrētajam mērķim.
  • Otrā augšējā rindiņa ilustrē komentāru. Komentāri var eksistēt mērķa konfigurācijas failos, un tie ir jāsagatavo ar simbolu “#”.
  • Trešajā rindā ir faktiskā krātuves vieta, kuru izmantos iniciators. Šajā gadījumā krātuves pamats būs loģiskais sējums, kas tika izveidots iepriekš ceļvedī.
  • Ceturtā rinda ir IP adrese, kas tiek gaidīta no ierosinātāja. Lai gan tas nav obligāts konfigurācijas vienums, tas var palīdzēt palielināt drošību.
  • Piektā rinda ir ienākošais lietotājvārds/parole. Tāpat kā iepriekš minētā iniciatora adrese, arī šis parametrs nav nepieciešams, taču tas var palīdzēt aizsargāt LUN. Tā kā šī rokasgrāmata attiecas arī uz iSCSI savstarpējo CHAP, šis parametrs ir nepieciešams. Šī rinda norāda lietotājvārdu un paroli, ko mērķis sagaidīs no ierosinātāja, lai izveidotu savienojumu ar šo LUN.
  • Sestā rindiņa ir lietotājvārds/parole, ko mērķis ievadīs iniciatoram, lai varētu veikt savstarpēju CHAP autentifikāciju. Parasti šis parametrs nav nepieciešams, bet šis raksts attiecas uz savstarpēju CHAP autentifikāciju, tāpēc šis parametrs ir nepieciešams.
  • Pēdējā rindiņa ir mērķa definīcijas noslēguma teikums. Pievērsiet uzmanību beigu slīpsvītrai atslēgvārda mērķa priekšā!

Kad atbilstošās LUN konfigurācijas ir ierakstītas, saglabājiet izmaiņas un izejiet no teksta redaktora. Ja izmantojat nano, nospiediet ctrl+o , lai saglabātu, un pēc tam nospiediet ctrl+x , lai izietu no nano.

Kad konfigurācijas fails ir izveidots, pakalpojums tgt ir jārestartē, lai tgt būtu informēts par jaunajiem mērķiem un ar tiem saistīto konfigurāciju.

To var izdarīt ar kādu no šīm komandām un tas ir atkarīgs no izmantotās init sistēmas.

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

Kad tgt ir restartēts, ir svarīgi pārbaudīt, vai iSCSI mērķis ir pieejams atbilstoši izveidotajam konfigurācijas failam.

To var panākt ar komandu ‘tgtadm’.

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

Tas noslēdz mērķa konfigurāciju. Nākamā sadaļa darbosies, izmantojot iniciatora konfigurāciju.

Debian iSCSI iniciatora konfigurācija

Nākamais solis iepriekš konfigurētā iSCSI mērķa izmantošanā ir iSCSI iniciatora konfigurācija.

Atšķirīgs XenServer/ESXi vai citi izplatītāji, piemēram, Red Hat, Debian vai Ubuntu.

Pirmais solis šajā procesā šim Debian ierosinātājam ir pareizo iSCSI pakotņu instalēšana.

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

Kad apt ir pabeidzis open-iscsi pakotņu konfigurēšanu, var sākt iSCSI iniciatora konfigurēšanu. Pirmais solis būs saziņa ar mērķi, lai iegūtu sākotnējo informāciju par mērķa konfigurāciju.

# iscsiadm -m discovery -t st -p 192.168.56.101

Kad šī komanda darbojas, tā atbildēs ar lun nosaukumu, kas iepriekš tika konfigurēts šim konkrētajam resursdatoram. Iepriekš minētā komanda arī ģenerēs divus failus nesen atklātajai LUN informācijai.

Tagad šim mezglam izveidotajā failā būs jākonfigurē CHAP informācija, lai iniciators varētu faktiski piekļūt šim iSCSI mērķim.

Tehniski šo informāciju varētu iestatīt visai sistēmai kopumā, bet, ja resursdators izveido savienojumu ar dažādām LUN ar dažādiem akreditācijas datiem, šo akreditācijas datu ievietošana konkrētā mezgla konfigurācijas failā var mazināt visas problēmas.

Mezgla konfigurācijas fails pastāv direktorijā ‘/ etc/iscsi/nodes /’, un tam būs pieejams direktorijs katram LUN. Šī raksta gadījumā (ņemiet vērā, ka ceļi mainīsies, ja mainīs nosaukumus/IP adreses).

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

Lai strādātu ar šo failu, var izmantot jebkuru teksta redaktoru.

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

Šajā failā būs vairākas jau konfigurētas opcijas attiecīgajam mērķim, kas tika noteiktas iepriekš izpildītās komandas “iscsiadm” laikā.

Tā kā šī konkrētā Debian mērķa/ierosinātāja iestatīšana izmanto savstarpēju CHAP, ir jāmaina un jāpievieno vēl dažas opcijas šim failam un pēc tam jāveic pieteikšanās iSCSI mērķī.

Izmaiņas šajā failā ir šādas:

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

Iepriekš minētās opcijas ļaus šim mērķim autentificēties iniciatoram, kā arī ļaus iniciatoram autentificēties mērķim.

Šajā konkrētajā failā ir vēl viena opcija, kas, iespējams, būs jāmaina atkarībā no administratora vēlmēm, un tas ir parametrs ‘node.startup’.

Ievērojot šo rokasgrāmatu, šajā brīdī opcija ‘node.startup’ tiks iestatīta uz ‘manual’. Tas var nebūt vēlams. Ja administrators vēlas, lai iSCSI mērķis būtu savienots sistēmas palaišanas laikā, nomainiet “manuāli” uz “automātisku”:

node.startup = automatic

Kad iepriekš minētās izmaiņas ir veiktas, saglabājiet failu un izejiet. Šajā brīdī ir jārestartē atvērtā iscsi iniciatora pakalpojums, lai lasītu šīs jaunās izmaiņas un izveidotu savienojumu ar iSCSI mērķi.

To var paveikt ar vienu no šīm komandām atkarībā no izmantotās init sistēmas.

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

Augšējā zaļajā lodziņā pamaniet, ka iSCSI iniciators varēja pieteikties mērķī. Lai vēl vairāk apstiprinātu, ka iSCSI mērķis ierosinātājam patiešām ir pieejams, mēs varam pārbaudīt, vai sistēmā nav papildu diskdziņu, izmantojot komandu ‘lsblk’ un pārbaudot papildu disku izvadi.

# lsblk

Otra komanda, kuru var izmantot ierosinātājam, lai apstiprinātu savienojumu ar mērķi, ir ‘iscsiadm’ kā tāda:

# iscsiadm -m session

Pēdējā savienojuma apstiprināšanas vieta būtu pašā mērķī, izmantojot komandu ‘tgtadm’, lai uzskaitītu visus iSCSI savienojumus.

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

No šī brīža tikko pievienoto iSCSI ierīci var izmantot līdzīgi jebkuram parasti pievienotajam diskam! Sadalīšanu, failu sistēmas izveidi, montāžu un/vai pastāvīgu montāžu var apstrādāt normāli.

Liela piesardzība, kas jāzina ar iSCSI ierīcēm, ir tas, ka, ja iSCSI mērķī ir svarīgas failu sistēmas, kas nepieciešamas, kad iniciators sāk darboties, pārliecinieties, vai failā '/ etc/fstab' izmantojat ierakstu '_netdev', lai nodrošinātu, ka iSCSI ierīce ir pievienota, pirms sistēma turpina sāknēšanu!