Si të konfiguroni serverin iSCSI (Target) dhe Klientin (Iniciator) në Debian 9
Në botën e qendrave të të dhënave, Rrjetet e zonës së ruajtjes me kapacitet të madh (SAN) janë bërë standardi minimal. Ndërsa ofruesit e cloud dhe virtualizimi gjithashtu vazhdojnë të kenë ndikime masive në botën e teknologjisë, nevoja për më shumë hapësirë ruajtëse SAN është bërë evidente.
Shumica e pajisjeve SAN përbëhet nga një kontrollues minimalist (ose grup kontrolluesish) dhe një koleksion i madh disqet me kapacitet të lartë, të gjithë të konfiguruar për të mbështetur sasi të mëdha të disponueshmërisë dhe integritetit të të dhënave.
Shumë prej këtyre produkteve të specializuara prodhohen nga shitës të mëdhenj si Netapp, Dell Equalogic, HP Storageworks ose EMC dhe kanë etiketa çmimesh të bashkangjitura që vetëm ndërmarrjet më të mëdha mund t'i përballojnë.
Realisht, këto pajisje nuk janë gjë tjetër veçse grupe të mëdha të diskut të ngurtë me një kontrollues që siguron hapësirën e atyre hard disqeve për klientët e lidhur në rrjet. Shumë teknologji kanë ekzistuar gjatë viteve që ofrojnë këtë funksionalitet ose funksionalitet të ngjashëm me një çmim shumë më të lirë.
Shpërndarja Debian GNU/Linux ofron paketa që lejojnë një sistem Debian t'i shërbejë qëllimit të një pajisje ruajtëse SAN të nivelit të ndërmarrjes me një fraksion të kostos! Kjo i lejon të gjithë, nga përdoruesit bazë të shtëpisë ose qendrat e mëdha të të dhënave, të marrin përfitimet e ruajtjes SAN pa pasur nevojë të shpenzojnë një pasuri për një zgjidhje të pronarit të shitësit.
Ky artikull do të shikojë se si një sistem Debian 9 (Stretch) mund të konfigurohet për të shërbyer hapësirën e diskut duke përdorur një sistem të njohur si Ndërfaqja e Sistemeve të Kompjuterëve të Vogël të Internetit ose shkurt iSCSI. iSCSI është një standard i bazuar në Protokollin e Internetit (IP) për ofrimin e ruajtjes së bllokut (hard drive) për sistemet e tjera. iSCSI funksionon në një model të serverit të klientit, por përdor emra të ndryshëm për të dalluar klientin nga serveri.
Në terminologjinë iSCSI, serveri që po shërben hapësirën e diskut njihet si një Synim iSCSI dhe sistemi që kërkon/shfrytëzon hapësirën e diskut njihet si Iniciator iSCSI. Pra, me fjalë të tjera, një Iniciator kërkon bllokimin e ruajtjes nga një Target.
Ky udhëzues do të kalojë nëpër një konfigurim bazë që përfshin një server të thjeshtë iSCSI (objektiv) dhe klient (iniciator) që të dy ekzekutojnë 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
Rrjeti mund të shihet si më poshtë:
Konfigurimi i objektivit iSCSI i Debian
Në botën iSCSI, objektivi konsiderohet hosti që përmban pajisjet e ruajtjes që do të përdoren nga iniciatori.
Në këtë artikull serveri me IP të 192.168.56.101 është duke u përdorur si objektiv. Të gjitha konfigurimet do të bëhen në atë host për këtë seksion.
Hapi i parë është instalimi i paketave të nevojshme për të lejuar sistemin Debian të shërbejë objektivat iSCSI. Kjo paketë softuerike njihet si Target Framework (TGT).
Artikulli tjetër që po përdoret për këtë udhëzues janë mjetet Logical Volume Management (LVM) pasi Vëllimet Logjike (LVs) do të përdoren si mbështetje ruajtëse për objektivin iSCSI.
Të dyja paketat mund të instalohen me komandat e mëposhtme.
# apt-get update
# apt-get install tgt lvm2
Pasi të instalohen paketat, LVM do të përdoret për të përgatitur hard disqet në objektiv për t'u përdorur si një iSCSI LUN. Komanda e parë përdoret për të përgatitur disqet për përfshirje në një konfigurim LVM. Sigurohuni që të modifikoni komandën sipas nevojës për skenarë të ndryshëm!
# lsblk (Only used to confirm disks to be used in the LVM setup)
# pvcreate /dev/sd{b,c}
Pasi disqet të jenë përgatitur me komandën e mësipërme 'pvcreate', është koha për të krijuar një grup vëllimi nga këta disqe të veçantë. Grupi i vëllimit kërkohet për të krijuar vëllimet logjike që do të veprojnë si ruajtje iSCSI më vonë.
Për të krijuar një grup vëllimi, nevojitet komanda 'vgcreate'.
# vgcreate tecmint_iscsi /dev/sd{b,c}
# vgs (Only needed to confirm the creation of the volume group)
Vini re në daljen e mësipërme se sistemi përgjigjet se Grupi i Vëllimit u krijua, por është gjithmonë një ide e mirë të kontrolloni dy herë siç shihet më lart me komandën 'vgs'. Kapaciteti i këtij grupi vëllimi është vetëm 9,99 GB. Ndërsa ky është një grup vëllimi veçanërisht i vogël, procesi do të ishte i njëjtë për disqet me kapacitet më të madh!
Hapi tjetër është krijimi i vëllimit logjik që do të veprojë si disk për klientin iSCSI (iniciator). Për këtë shembull do të përdoret tërësia e grupit të vëllimit, por nuk është e nevojshme.
Vëllimi logjik do të krijohet duke përdorur komandën 'lvcreate'.
# lvcreate -l 100%FREE tecmint_lun1 tecmint_iscsi
# lvs (Simply used to confirm the creation of the logical volume)
Komanda e mësipërme 'lvcreate' mund të jetë pak konfuze në shikim të parë, por ndarja është si e tillë:
- lvcreate – Komanda e përdorur për të krijuar vëllimin logjik.
- -l 100% FALAS – Krijo volumin logjik duke përdorur të gjithë hapësirën e lirë të grupit të vëllimit.
- -n tecmint_lun1 – Emri i vëllimit logjik që do të krijohet.
- tecmint_iscsi – Emri i grupit të vëllimit për të krijuar vëllimin logjik brenda.
Pasi të jetë krijuar vëllimi logjik, është koha për të krijuar LUN (Numri Logical Unit) aktual. LUN do të jetë pajisja ruajtëse me të cilën iniciatori do të lidhet dhe do ta përdorë më vonë.
Krijimi i një LUN është shumë i thjeshtë dhe kërkon vetëm disa hapa. Hapi i parë do të jetë krijimi i skedarit të konfigurimit. Ky skedar do të qëndrojë në drejtorinë '/etc/tgt/conf.d' dhe për këtë artikull do të quhet 'TecMint_iscsi.conf'.
Për të krijuar këtë skedar përdorni një redaktues teksti.
# nano /etc/tgt/conf.d/TecMint_iscsi.conf
Brenda këtij skedari, të gjitha informacionet e nevojshme të konfigurimit për këtë LUN do të konfigurohen. Ka shumë opsione që mund të vendosen në këtë skedar, por tani për tani do të konfigurohet një LUN bazë me Protokollin e Autentifikimit të Ndërsjellë të Sfidës së Shtrëngimit të Dorës (CHAP).
Përkufizimi i LUN do të ekzistojë midis dy deklaratave të objektivit. Për më shumë parametra që mund të përfshihen në deklaratën e synuar, rishikoni faqen manuale për skedarin 'targets.conf' duke lëshuar '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>
Ka shumë gjëra që ndodhin më lart. Një shpjegim i shpejtë mund të jetë i dobishëm për shumicën.
- Rreshti i parë fillon konfigurimin e veçantë iSCSI LUN. Në këtë rast LUN etiketuar 'iqn.2018-02.linux-console.net:lun1'. Pjesa 'iqn' tregon se ky do të jetë një emër i kualifikuar iSCSI. '2018-02' është një kombinim datash i zgjedhur në mënyrë arbitrare. 'linux-console.net' është domeni që i përket këtij LUN të veçantë. Së fundi, 'lun1' përdoret si emër për këtë objektiv të veçantë.
- Rreshti i dytë i mësipërm ilustron një koment. Komentet mund të ekzistojnë në skedarët e konfigurimit të synuar dhe duhet të paraprihen me një simbol #.
- Rreshti i tretë është vendi ku ekziston hapësira aktuale e ruajtjes që do të përdoret nga iniciatori. Në këtë rast, mbështetja e ruajtjes do të jetë vëllimi logjik që u krijua më herët në udhëzues.
- Rreshti i katërt është adresa IP që pritet nga iniciatori. Megjithëse ky nuk është një artikull i kërkuar konfigurimi, ai mund të ndihmojë në rritjen e sigurisë.
- Rreshti i pestë është emri/fjalëkalimi i përdoruesit në hyrje. Ashtu si adresa e iniciatorit më lart, as ky parametër nuk kërkohet, por mund të ndihmojë në sigurimin e LUN. Meqenëse ky udhëzues mbulon gjithashtu CHAP-in e ndërsjellë iSCSI, ky parametër kërkohet. Kjo linjë tregon emrin e përdoruesit dhe fjalëkalimin që objektivi do të presë nga iniciatori për t'u lidhur me këtë LUN.
- Rreshti i gjashtë është emri i përdoruesit/fjalëkalimi që objektivi do t'i japë iniciatorit për të lejuar që të kryhet vërtetimi i ndërsjellë CHAP. Normalisht, ky parametër nuk kërkohet, por ky artikull mbulon vërtetimin e ndërsjellë CHAP, kështu që ky parametër kërkohet.
- Rreshti përfundimtar është deklarata mbyllëse për përkufizimin e objektivit. Kushtojini vëmendje vijës së pjerrët mbyllëse përpara objektivit të fjalës kyçe!
Pasi të jenë shtypur konfigurimet e duhura për LUN, ruani ndryshimet dhe dilni nga redaktori i tekstit. Nëse përdorni nano, shtypni ctrl+o
për të ruajtur dhe më pas shtypni ctrl+x
për të dalë nga nano.
Pasi të jetë krijuar skedari i konfigurimit, shërbimi tgt duhet të riniset në mënyrë që tgt të jetë në dijeni të objektivave të rinj dhe konfigurimit të lidhur.
Kjo mund të bëhet me një nga komandat e mëposhtme dhe varet nga sistemi init në përdorim.
# service tgt restart (For sysv init systems)
# systemctl restart tgt (For systemd init systems)
Pasi tgt të jetë rifilluar, është e rëndësishme të kontrolloni për t'u siguruar që objektivi iSCSI është i disponueshëm sipas skedarit të konfigurimit të krijuar.
Kjo mund të arrihet me komandën 'tgtadm'.
# tgtadm --mode target --op show (This will show all targets)
Kjo përfundon konfigurimin e objektivit. Seksioni tjetër do të funksionojë përmes konfigurimit të iniciatorit.
Konfigurimi i iniciatorit të Debian iSCSI
Hapi tjetër në përdorimin e objektivit iSCSI të konfiguruar më parë është konfigurimi i iniciatorit iSCSI.
Një XenServer/ESXi i ndryshëm ose shpërndarje të tjera si Red Hat, Debian ose Ubuntu.
Hapi i parë në këtë proces për këtë iniciator Debian është instalimi i paketave të duhura për iSCSI.
# apt-get update
# apt-get install open-iscsi
Pasi apt të ketë përfunduar konfigurimin e paketave open-iscsi, mund të fillojë konfigurimi i iniciatorit iSCSI. Hapi i parë do të jetë komunikimi me objektivin për të marrë informacionin fillestar të konfigurimit për objektivin e përgatitur.
# iscsiadm -m discovery -t st -p 192.168.56.101
Kur të ekzekutohet kjo komandë, ajo do të përgjigjet me emrin e lun-it të konfiguruar më parë për këtë host të veçantë. Komanda e mësipërme do të gjenerojë gjithashtu dy skedarë për informacionin e sapo zbuluar LUN.
Tani skedari i krijuar për këtë nyje do të duhet të ketë informacionin CHAP të konfiguruar në mënyrë që ky objektiv iSCSI të jetë realisht i aksesueshëm nga iniciatori.
Teknikisht, ky informacion mund të konfigurohet për të gjithë sistemin në tërësi, por në rast se një host lidhet me LUN të ndryshëm me kredenciale të ndryshme, vendosja e atyre kredencialeve në skedarin e konfigurimit të nyjeve specifike mund të zbusë çdo problem.
Skedari i konfigurimit të nyjeve do të ekzistojë në drejtorinë '/etc/iscsi/nodes/' dhe do të ketë në dispozicion një direktori për LUN. Në rastin e këtij artikulli (vini re se shtigjet do të ndryshojnë nëse ndryshohen emrat/adresat IP).
# /etc/iscsi/nodes/iqn.2018-02.linux-console.net\:lun1/192.168.56.101\,3260\,1/default
Për të punuar me këtë skedar, mund të përdoret çdo redaktues teksti.
# nano /etc/iscsi/nodes/iqn.2018-02.linux-console.net\:lun1/192.168.56.101\,3260\,1/default
Brenda këtij skedari do të ketë disa opsione të konfiguruara tashmë për objektivin përkatës që u përcaktuan gjatë ekzekutimit të komandës 'iscsiadm' më herët.
Meqenëse ky konfigurim specifik i objektivit/iniciatorit të Debian po përdor CHAP të ndërsjellë, duhet të ndryshohen dhe shtohen disa opsione të tjera në këtë skedar dhe më pas të kryhet një hyrje në objektivin iSCSI.
Ndryshimet në këtë skedar janë:
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
Opsionet e mësipërme do të lejojnë që ky objektiv të vërtetohet tek iniciatori, si dhe të lejojë iniciatorin të vërtetohet tek objektivi.
Ekziston një opsion tjetër në këtë skedar të veçantë që mund të duhet të ndryshohet në varësi të preferencave të administratorit dhe ai është parametri 'node.startup'.
Nëse ndiqni këtë udhëzues, opsioni 'node.startup' do të vendoset në 'manual' në këtë pikë. Kjo mund të mos jetë e dëshiruar. Nëse administratori dëshiron të ketë të lidhur objektivin iSCSI kur sistemi të fillojë, ndryshoni 'manual' në 'automatik' si i tillë:
node.startup = automatic
Pasi të jenë bërë ndryshimet e mësipërme, ruani skedarin dhe dilni. Në këtë pikë, shërbimi i iniciatorit të hapur-iscsi duhet të riniset për të lexuar këto ndryshime të reja dhe për t'u lidhur me objektivin iSCSI.
Kjo mund të realizohet me një nga komandat e mëposhtme në varësi të sistemit init në përdorim.
# service open-iscsi restart (For sysv init systems)
# systemctl restart open-iscsi (For systemd init systems)
Vini re në kutinë e gjelbër më sipër se iniciatori iSCSI ishte në gjendje të hynte në objektiv. Për të konfirmuar më tej se objektivi iSCSI është me të vërtetë i disponueshëm për iniciatorin, ne mund të kontrollojmë sistemin për disqe shtesë që janë të disponueshme duke përdorur komandën 'lsblk' dhe duke kontrolluar daljen për disqe shtesë.
# lsblk
Komanda tjetër që mund të përdoret në iniciator për të konfirmuar një lidhje me objektivin është 'iscsiadm' si e tillë:
# iscsiadm -m session
Vendi i fundit për të konfirmuar një lidhje do të jetë në vetë objektivin duke përdorur komandën 'tgtadm' për të renditur çdo lidhje iSCSI.
# tgtadm --mode conn --op show --tid 1
Nga kjo pikë, pajisja iSCSI e sapo bashkangjitur mund të përdoret në mënyrë të ngjashme me çdo disk të bashkangjitur normalisht! Ndarja, krijimi i sistemit të skedarëve, montimi dhe/ose montimi i vazhdueshëm mund të trajtohen normalisht.
Një kujdes i madh për të qenë të vetëdijshëm me pajisjet iSCSI është nëse objektivi iSCSI përmban sisteme skedarësh të rëndësishëm që nevojiten ndërsa nisësi po nis, sigurohuni që të përdorni hyrjen '_netdev' në skedarin '/etc/fstab' për të siguruar që iSCSI pajisja lidhet përpara se sistemi të vazhdojë të fillojë!