Jinsi ya Kusanidi Seva ya iSCSI (Lengo) na Mteja (Mwanzilishi) kwenye Debian 9


Katika ulimwengu wa kituo cha data, Mitandao ya Maeneo ya Hifadhi yenye uwezo mkubwa (SAN) imekuwa kiwango cha chini zaidi. Huku watoa huduma za wingu na uboreshaji wa mtandao unavyoendelea kuleta athari kubwa katika ulimwengu wa teknolojia, hitaji la nafasi zaidi ya hifadhi ya SAN imekuwa dhahiri.

Maunzi mengi ya SAN yanajumuisha kidhibiti kidogo (au seti ya vidhibiti) na mkusanyiko mkubwa wa viendeshi vya uwezo wa juu vyote vilivyosanidiwa kusaidia viwango vya juu vya upatikanaji na uadilifu wa data.

Nyingi za bidhaa hizi maalum zinatengenezwa na wachuuzi wenye majina makubwa kama vile Netapp, Dell Equalogic, HP Storageworks, au EMC na zina lebo za bei ambazo zinaweza kumudu kampuni kubwa zaidi pekee.

Kwa kweli, vifaa hivi sio zaidi ya safu kubwa za diski ngumu na kidhibiti kinachotoa nafasi ya diski hizo ngumu kwa wateja wa mtandao. Teknolojia nyingi zimekuwepo kwa miaka mingi ambazo hutoa utendakazi huu au utendakazi sawa kwa bei nafuu zaidi.

Usambazaji wa Debian GNU/Linux hutoa vifurushi vinavyoruhusu mfumo wa Debian kutumikia madhumuni ya kifaa cha kuhifadhi SAN cha kiwango cha biashara kwa sehemu ndogo ya gharama! Hii inaruhusu kila mtu kutoka kwa watumiaji msingi wa nyumbani au vituo vikubwa vya data kupata manufaa ya hifadhi ya SAN bila kutumia pesa nyingi kupata suluhisho la umiliki wa muuzaji.

Makala haya yataangalia jinsi mfumo wa Debian 9 (Nyoosha) unavyoweza kusanidiwa ili kutoa nafasi ya diski kwa kutumia mfumo unaojulikana kama Kiolesura cha Mifumo ya Kompyuta Ndogo ya Mtandao au iSCSI kwa ufupi. iSCSI ni Itifaki ya Mtandaoni (IP) kulingana na kiwango cha kutoa hifadhi ya block (hard drive) kwa mifumo mingine. iSCSI inafanya kazi katika muundo wa seva ya mteja lakini hutumia majina tofauti kutofautisha mteja na seva.

Katika istilahi ya iSCSI, seva inayohudumia 'nafasi ya diski' inajulikana kama 'Lengo' ya iSCSI na mfumo unaoomba/unatumia nafasi ya diski unajulikana kama iSCSI 'Initiator'. Kwa hivyo kwa maneno mengine, 'Mwanzilishi' anaomba kuzuia uhifadhi kutoka kwa 'Lengo'.

Mwongozo huu utapitia usanidi wa kimsingi unaohusisha seva rahisi ya iSCSI (lengwa) na mteja (mwanzilishi) zote zinazoendesha Debian 9 (Nyoosha).

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

Mtandao unaweza kutazamwa kama ifuatavyo:

Usanidi wa Lengo la Debian iSCSI

Katika ulimwengu wa iSCSI, lengwa huzingatiwa kama seva pangishi ambayo ina vifaa vya kuhifadhi vitakavyotumiwa na mwanzilishi.

Katika makala haya seva iliyo na IP ya 192.168.56.101 inatumiwa kama lengo. Mipangilio yote itafanywa kwenye seva pangishi ya sehemu hii.

Hatua ya kwanza ni usakinishaji wa vifurushi muhimu ili kuruhusu mfumo wa Debian kutumikia malengo ya iSCSI. Kifurushi hiki cha programu kinajulikana kama Mfumo Lengwa (TGT).

Kipengee kingine ambacho kinatumika kwa mwongozo huu ni zana za Usimamizi wa Kiasi cha Mantiki (LVM) kama Kiasi cha Mantiki (LVs) kitatumika kama uhifadhi wa uhifadhi wa lengo la iSCSI.

Vifurushi vyote viwili vinaweza kusanikishwa na amri zifuatazo.

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

Mara tu vifurushi vitakaposakinishwa, LVM itatumika kuandaa diski ngumu kwenye lengwa ili zitumike kama iSCSI LUN. Amri ya kwanza hutumiwa kuandaa diski za kuingizwa katika usanidi wa LVM. Hakikisha umerekebisha amri inavyohitajika kwa hali tofauti!

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

Mara tu diski zimetayarishwa kwa amri ya 'pvcreate' hapo juu, ni wakati wa kuunda kikundi cha sauti kutoka kwa diski hizi. Kikundi cha sauti kinahitajika ili kuunda Kiasi cha Mantiki ambacho kitafanya kama hifadhi ya iSCSI baadaye.

Ili kuunda kikundi cha sauti, amri ya 'vgcreate' inahitajika.

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

Tambua katika matokeo hapo juu kwamba mfumo unajibu kuwa Kikundi cha Kiasi kiliundwa lakini daima ni wazo nzuri kuangalia mara mbili kama inavyoonekana hapo juu na amri ya 'vgs'. Uwezo wa kikundi hiki cha sauti ni 9.99GB tu. Ingawa hii ni kikundi kidogo cha sauti, mchakato ungekuwa sawa kwa diski za uwezo mkubwa!

Hatua inayofuata ni uundaji wa kiasi cha kimantiki ambacho kitafanya kama diski kwa mteja wa iSCSI (mwanzilishi). Kwa mfano huu jumla ya kikundi cha sauti kitatumika lakini sio lazima.

Kiasi cha kimantiki kitaundwa kwa kutumia amri ya 'lvcreate'.

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

Amri ya hapo juu ya 'lvcreate' inaweza kuwa ya kutatanisha kidogo kwa mtazamo wa kwanza lakini uvunjaji ni kama vile:

  • lvcreate - Amri inayotumiwa kuunda kiasi cha kimantiki.
  • -l 100% BILA MALIPO - Unda sauti ya kimantiki ukitumia nafasi yote isiyolipishwa ya kikundi cha sauti.
  • -n tecmint_lun1 - Jina la ujazo wa kimantiki utakaoundwa.
  • tecmint_iscsi - Jina la kikundi cha sauti cha kuunda sauti ya kimantiki ndani.

Mara tu kiasi cha mantiki kimeundwa, ni wakati wa kuunda LUN halisi (Nambari ya Kitengo cha Mantiki). LUN itakuwa kifaa cha kuhifadhi ambacho mwanzilishi ataunganisha na kutumia baadaye.

Kuunda LUN ni rahisi sana na inahitaji hatua chache tu. Hatua ya kwanza itakuwa uundaji wa faili ya usanidi. Faili hii itakaa katika saraka ya ‘/etc/tgt/conf.d‘ na kwa makala haya itaitwa ‘TecMint_iscsi.conf’.

Ili kuunda faili hii tumia kihariri cha maandishi.

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

Ndani ya faili hili, taarifa zote muhimu za usanidi wa LUN hii zitasanidiwa. Kuna chaguo nyingi ambazo zinaweza kuwekwa kwenye faili hii lakini kwa sasa LUN ya msingi yenye Itifaki ya Uthibitishaji ya Changamoto ya Kushikana kwa mikono (CHAP) itasanidiwa.

Ufafanuzi wa LUN utakuwepo kati ya kauli mbili za 'lengo'. Kwa vigezo zaidi vinavyoweza kwenda katika taarifa inayolengwa, kagua ukurasa wa mwongozo wa faili ya 'targets.conf' kwa kutoa '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>

Kuna mengi yanaendelea hapo juu. Maelezo ya haraka yanaweza kuwa msaada kwa wengi.

  • Mstari wa kwanza huanza usanidi fulani wa iSCSI LUN. Katika hali hii LUN iliyoandikwa ‘iqn.2018-02.linux-console.net:lun1’. Sehemu ya 'iqn' inaonyesha kuwa hili litakuwa jina linalohitimu iSCSI. '2018-02' ni mchanganyiko wa tarehe uliochaguliwa kiholela. 'linux-console.net' ndio kikoa ambacho LUN hii inamilikiwa. Hatimaye, ‘lun1’ hutumika kama jina la lengo hili mahususi.
  • Mstari wa pili hapo juu unaonyesha maoni. Maoni yanaweza kuwepo katika faili za usanidi lengwa na lazima yatanguliwa na alama ya ‘#‘.
  • Mstari wa tatu ni mahali ambapo nafasi halisi ya kuhifadhi itakayotumiwa na mwanzilishi ipo. Katika hali hii msaada wa uhifadhi utakuwa ujazo wa kimantiki ambao uliundwa mapema kwenye mwongozo.
  • Mstari wa nne ni anwani ya IP inayotarajiwa kutoka kwa mwanzilishi. Ingawa hiki si kipengee cha usanidi kinachohitajika, kinaweza kusaidia kuongeza usalama.
  • Mstari wa tano ni jina la mtumiaji/nenosiri linaloingia. Kama vile anwani ya anzisha iliyo hapo juu, kigezo hiki hakihitajiki lakini kinaweza kusaidia kulinda LUN. Kwa kuwa mwongozo huu pia unashughulikia iSCSI mutual CHAP, kigezo hiki kinahitajika. Mstari huu unaonyesha jina la mtumiaji na nenosiri ambalo mlengwa atatarajia kutoka kwa mwanzilishi ili kuunganishwa na LUN hii.
  • Mstari wa sita ni jina la mtumiaji/nenosiri ambalo lengo litatoa kwa mwanzilishi ili kuruhusu uthibitishaji wa pande zote wa CHAP kufanyika. Kwa kawaida kigezo hiki hakihitajiki lakini makala haya yanashughulikia uthibitishaji wa pande zote wa CHAP kwa hivyo kigezo hiki kinahitajika.
  • Mstari wa mwisho ni taarifa ya kufunga kwa ufafanuzi lengwa. Zingatia kufyeka kwa kufunga mbele ya neno msingi lengwa!

Mara tu usanidi unaofaa wa LUN unapochapishwa, hifadhi mabadiliko na uondoke kwenye kihariri cha maandishi. Ikiwa unatumia nano, gonga ctrl+o ili kuhifadhi kisha ugonge ctrl+x ili kuondoka kwenye nano.

Mara tu faili ya usanidi imeundwa, huduma ya tgt inapaswa kuwashwa upya ili tgt ifahamu shabaha mpya na usanidi unaohusishwa.

Hii inaweza kufanywa na moja ya amri zifuatazo na inategemea mfumo wa init unaotumika.

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

Mara tu tgt imeanzishwa upya, ni muhimu kuangalia ili kuhakikisha kuwa lengo la iSCSI linapatikana kulingana na faili ya usanidi iliyoundwa.

Hii inaweza kukamilishwa kwa amri ya 'tgtadm'.

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

Hii inahitimisha usanidi wa lengo. Sehemu inayofuata itafanya kazi kupitia usanidi wa mwanzilishi.

Usanidi wa Kianzisha iSCSI cha Debian

Hatua inayofuata katika kutumia lengo la iSCSI lililosanidiwa hapo awali ni usanidi wa kianzisha iSCSI.

XenServer/ESXi tofauti au usambazaji mwingine kama Red Hat, Debian, au Ubuntu.

Hatua ya kwanza katika mchakato huu kwa mwanzilishi wa Debian ni usakinishaji wa vifurushi sahihi vya iSCSI.

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

Mara tu apt inapomaliza usanidi wa vifurushi vya wazi-iscsi, usanidi wa uanzishaji wa iSCSI unaweza kuanza. Hatua ya kwanza itakuwa kuwasiliana na mlengwa ili kupata taarifa za awali za usanidi kwa lengo lililoandaliwa.

# iscsiadm -m discovery -t st -p 192.168.56.101

Amri hii inapotekelezwa, itajibu na jina la lun iliyosanidiwa mapema kwa mwenyeji huyu. Amri iliyo hapo juu pia itatoa faili mbili kwa habari mpya ya LUN iliyogunduliwa.

Sasa faili iliyoundwa kwa nodi hii itahitaji kuwa na maelezo ya CHAP kusanidiwa ili lengo hili la iSCSI liweze kufikiwa na mwanzilishi.

Kitaalam maelezo haya yanaweza kusanidiwa kwa mfumo mzima kwa ujumla lakini katika tukio ambalo mwenyeji ataunganishwa kwa LUN tofauti na vitambulisho tofauti, kuweka vitambulisho hivyo katika faili maalum ya usanidi wa nodi kunaweza kupunguza maswala yoyote.

Faili ya usanidi wa nodi itakuwepo kwenye saraka ‘/etc/iscsi/nodes/’ na itakuwa na saraka kwa kila LUN inayopatikana. Kwa upande wa kifungu hiki (kumbuka kuwa njia zitabadilika ikiwa majina/anwani za IP zitabadilishwa).

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

Kufanya kazi na faili hii, kihariri chochote cha maandishi kinaweza kutumika.

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

Ndani ya faili hii kutakuwa na chaguo kadhaa ambazo tayari zimesanidiwa kwa lengo husika ambazo ziliamuliwa wakati wa amri ya 'iscsiadm' inayoendeshwa mapema.

Kwa kuwa usanidi huu wa lengo/kianzilishi wa Debian unatumia CHAP ya pande zote, chaguo zingine zinahitaji kubadilishwa na kuongezwa kwenye faili hii na kisha kuingia kwa lengo la iSCSI kutekelezwa.

Mabadiliko ya faili hii ni:

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

Chaguo zilizo hapo juu zitaruhusu lengo hili kuhalalisha kwa mwanzilishi na vile vile kuruhusu mwanzilishi kuthibitisha kwa lengo.

Kuna chaguo jingine katika faili hili ambalo linaweza kuhitaji kubadilishwa kulingana na mapendeleo ya msimamizi na hilo ni kigezo cha 'node.startup'.

Ukifuata mwongozo huu, chaguo la 'node.startup' litawekwa kuwa 'manual' kwa wakati huu. Hii inaweza kuwa haitamaniki. Ikiwa msimamizi anataka lengo la iSCSI liunganishwe wakati mfumo unaanza, badilisha 'mwongozo' hadi 'otomatiki' kama vile:

node.startup = automatic

Mara tu mabadiliko yaliyo hapo juu yamefanywa, hifadhi faili na uondoke. Katika hatua hii huduma ya uanzishaji wa iscsi wazi inahitaji kuanzishwa upya ili kusoma mabadiliko haya mapya na kuunganisha kwa lengo la iSCSI.

Hii inaweza kukamilishwa na moja ya amri zifuatazo kulingana na mfumo wa init unaotumika.

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

Ona kwenye kisanduku cha kijani kibichi hapo juu kwamba mwanzilishi wa iSCSI aliweza kuingia kwenye lengo. Ili kuthibitisha zaidi kwamba lengo la iSCSI linapatikana kwa aliyeanzisha, tunaweza kuangalia mfumo kwa viendeshi vya ziada vya diski vinavyopatikana kwa kutumia amri ya 'lsblk' na kuangalia matokeo ya viendeshi vya ziada.

# lsblk

Amri nyingine inayoweza kutumika kwenye kianzishaji kuthibitisha muunganisho kwa lengo ni 'iscsiadm' kama vile:

# iscsiadm -m session

Mahali pa mwisho pa kuthibitisha muunganisho patakuwa kwenye lengo lenyewe kwa kutumia amri ya 'tgtadm' kuorodhesha miunganisho yoyote ya iSCSI.

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

Kuanzia hatua hii, kifaa kipya cha iSCSI kilichoambatishwa kinaweza kutumika sawa na diski yoyote ya kawaida iliyoambatanishwa! Kugawanya, kuunda mfumo wa faili, kupachika, na/au upachikaji unaoendelea vyote vinaweza kushughulikiwa kama kawaida.

Tahadhari moja kubwa ya kufahamu na vifaa vya iSCSI ni ikiwa lengo la iSCSI lina mifumo muhimu ya faili ambayo inahitajika wakati kianzishaji kinaanza, hakikisha unatumia ingizo la '_netdev' kwenye faili ya '/etc/fstab' ili kuhakikisha kuwa iSCSI. kifaa kimeunganishwa kabla ya mfumo kuendelea kuwasha!