Giunsa ang Pag-setup sa iSCSI Server (Target) ug Kliyente (Initiator) sa Debian 9


Sa kalibutan sa data center, ang dako nga kapasidad nga Storage Area Networks (SAN) nahimong minimum nga sumbanan. Samtang ang mga cloud providers ug virtualization nagpadayon usab sa paghimo og dagkong mga epekto sa kalibutan sa teknolohiya, ang panginahanglan alang sa mas daghang SAN storage space nahimong dayag.

Kadaghanan sa hardware sa SAN gilangkuban sa usa ka minimalistic controller (o set sa mga controller) ug usa ka dako nga koleksyon sa taas nga kapasidad nga mga drive nga tanan gi-configure aron suportahan ang taas nga kantidad sa pagkaanaa ug integridad sa datos.

Daghan niining mga pinasahi nga produkto gihimo sa dagkong mga tigbaligya sama sa Netapp, Dell Equalogic, HP Storageworks, o EMC ug adunay mga tag sa presyo nga gilakip niini nga ang labing dako nga mga negosyo ang makaya.

Sa tinuud, kini nga mga aparato wala’y labi pa sa daghang mga array sa hard disk nga adunay usa ka controller nga naghatag sa wanang sa mga hard disk sa mga kliyente nga adunay network. Daghang mga teknolohiya ang naglungtad sa mga katuigan nga naghatag niini nga pagpaandar o susama nga pagpaandar sa usa ka mas barato nga punto sa presyo.

Ang pag-apod-apod sa Debian GNU/Linux naghatag og mga pakete nga nagtugot sa usa ka sistema sa Debian nga magsilbi sa katuyoan sa usa ka lebel sa negosyo nga SAN storage device sa usa lamang ka tipik sa gasto! Gitugotan niini ang tanan gikan sa mga nag-unang tiggamit sa balay o dagkong mga sentro sa datos nga makuha ang mga benepisyo sa pagtipig sa SAN nga dili kinahanglan nga mogasto og daghang salapi sa usa ka solusyon nga proprietary sa vendor.

Ang kini nga artikulo magtan-aw kung giunsa ang usa ka sistema sa Debian 9 (Stretch) mahimong ma-setup aron mag-alagad sa espasyo sa disk gamit ang usa ka sistema nga nailhan nga Internet Small Computer Systems Interface o iSCSI sa mubo. Ang iSCSI kay usa ka Internet Protocol (IP) base nga standard para sa paghatag og block (hard drive) storage sa ubang mga sistema. Ang iSCSI nagtrabaho sa usa ka modelo sa server sa kliyente apan naggamit sa lainlaing mga ngalan aron mailhan ang kliyente gikan sa server.

Sa terminolohiya sa iSCSI, ang server nga nagsilbi sa 'disk space' nailhan nga iSCSI 'Target' ug ang sistema nga nangayo/naggamit sa disk space nailhan nga iSCSI 'Initiator'. Busa sa laing pagkasulti, ang usa ka 'Initiator' nangayo og block storage gikan sa usa ka 'Target'.

Kini nga giya maglakaw pinaagi sa usa ka batakang setup nga naglambigit sa usa ka yano nga iSCSI server (target) ug kliyente (initiator) nga parehong nagpadagan sa 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

Ang network mahimong tan-awon sama sa ubos:

Debian iSCSI Target Configuration

Sa kalibutan sa iSCSI, ang target giisip nga host nga adunay sulud nga mga aparato sa pagtipig nga gamiton sa initiator.

Niini nga artikulo ang server nga adunay IP nga 192.168.56.101 gigamit isip target. Ang tanan nga mga pag-configure himuon sa kana nga host alang sa kini nga seksyon.

Ang unang lakang mao ang pag-instalar sa gikinahanglan nga mga pakete aron tugotan ang sistema sa Debian sa pag-alagad sa mga target sa iSCSI. Kini nga software package nailhan nga Target Framework (TGT).

Ang laing butang nga gigamit alang niini nga giya mao ang Logical Volume Management (LVM) nga mga himan kay ang Logical Volumes (LVs) gamiton isip storage backing para sa target sa iSCSI.

Ang duha nga mga pakete mahimong ma-install gamit ang mosunud nga mga mando.

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

Kung ma-install na ang mga pakete, ang LVM gamiton sa pag-andam sa mga hard disk sa target nga gamiton isip iSCSI LUN. Ang unang sugo gigamit sa pag-andam sa mga disk para iapil sa LVM setup. Siguruha nga usbon ang mando kung gikinahanglan alang sa lainlaing mga senaryo!

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

Kung naandam na ang mga disk gamit ang mando sa ibabaw nga 'pvcreate', panahon na nga maghimo usa ka grupo sa volume gikan sa mga partikular nga disk. Ang volume nga grupo gikinahanglan aron makahimo sa Logical Volumes nga molihok isip iSCSI storage unya.

Aron makahimo usa ka grupo sa volume, kinahanglan ang 'vgcreate' nga mando.

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

Matikdi sa output sa ibabaw nga ang sistema mitubag nga ang Volume Group gimugna apan kanunay nga maayong ideya nga doblehon ang pagsusi sama sa makita sa ibabaw gamit ang 'vgs' nga sugo. Ang kapasidad niini nga grupo sa volume kay 9.99GB lamang. Samtang kini usa ka gamay nga grupo sa volume, ang proseso parehas alang sa mga disk nga adunay mas dako nga kapasidad!

Ang sunod nga lakang mao ang paghimo sa lohikal nga gidaghanon nga molihok ingon nga disk sa kliyente sa iSCSI (initiator). Alang niini nga pananglitan ang kinatibuk-an sa grupo sa volume gamiton apan dili kinahanglan.

Ang lohikal nga gidaghanon pagabuhaton gamit ang 'lvcreate' nga sugo.

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

Ang labaw sa 'lvcreate' nga sugo tingali medyo makalibog sa unang pagtan-aw apan ang pagkahugno ingon niini:

  • lvcreate – Command nga gigamit sa paghimo sa logical volume.
  • -l 100% LIBRE – Paghimo sa lohikal nga gidaghanon gamit ang tanang libre nga luna sa grupo sa volume.
  • -n tecmint_lun1 – Ang ngalan sa lohikal nga volume nga pagabuhaton.
  • tecmint_iscsi – Ang ngalan sa grupo sa volume aron paghimo sa lohikal nga volume sa sulod.

Kung nahimo na ang lohikal nga gidaghanon, panahon na sa paghimo sa aktuwal nga LUN (Logical Unit Number). Ang LUN mao ang storage device nga ikonektar ug gamiton sa initiator sa ulahi.

Ang paghimo og LUN yano ra kaayo ug nagkinahanglan lang ug pipila ka lakang. Ang unang lakang mao ang paghimo sa configuration file. Kini nga file magpuyo sa '/etc/tgt/conf.d' nga direktoryo ug alang niining artikuloha tawgon kini nga 'TecMint_iscsi.conf'.

Sa paghimo niini nga file gamita ang text editor.

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

Sulod niini nga payl, ang tanang gikinahanglang impormasyon sa pag-configure para niini nga LUN ma-configure. Adunay daghang mga kapilian nga mahimong ibutang sa kini nga file apan sa pagkakaron usa ka sukaranan nga LUN nga adunay us aka Challenge Handshake Authentication Protocol (CHAP) ang ma-configure.

Ang kahulugan sa LUN maglungtad taliwala sa duha nga 'target' nga mga pahayag. Alang sa dugang nga mga parameter nga mahimong moadto sa target nga pahayag, ribyuha ang manwal nga panid alang sa 'targets.conf' file pinaagi sa pag-isyu sa '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>

Adunay daghan nga nahitabo sa ibabaw. Ang dali nga pagpatin-aw mahimong makatabang sa kadaghanan.

  • Ang unang linya nagsugod sa partikular nga iSCSI LUN configuration. Niini nga kaso ang LUN gimarkahan og 'iqn.2018-02.linux-console.net:lun1'. Ang 'iqn' nga bahin nagpaila nga kini usa ka kwalipikado nga ngalan sa iSCSI. Ang '2018-02' usa ka arbitraryong gipili nga kombinasyon sa petsa. Ang 'linux-console.net' mao ang domain nga gipanag-iya niining partikular nga LUN. Sa katapusan, ang 'lun1' gigamit isip ngalan alang niining partikular nga target.
  • Ang ikaduhang linya sa ibabaw naghulagway sa komento. Ang mga komentaryo mahimong anaa sa mga target nga configuration file ug kinahanglang pasiuna sa simbolo nga '#'.
  • Ang ikatulong linya mao ang dapit diin anaa ang aktuwal nga storage space nga gamiton sa initiator. Sa niini nga kaso ang storage backing mao ang lohikal nga gidaghanon nga gibuhat sa sayo pa sa giya.
  • Ang ikaupat nga linya mao ang IP address nga gipaabot gikan sa initiator. Samtang dili kini gikinahanglan nga butang sa pag-configure, makatabang kini sa pagdugang sa seguridad.
  • Ang ikalimang linya mao ang umaabot nga username/password. Sama sa initiator address sa ibabaw, kini nga parameter dili usab gikinahanglan apan makatabang sa pagsiguro sa LUN. Tungod kay kini nga giya naglangkob usab sa iSCSI mutual CHAP, kini nga parameter gikinahanglan. Kini nga linya nagpakita sa username ug password nga gipaabot sa target gikan sa initiator aron makakonektar niini nga LUN.
  • Ang ikaunom nga linya mao ang username/password nga ihatag sa target ngadto sa initiator aron tugotan nga mahitabo ang mutual CHAP authentication. Kasagaran kini nga parameter wala gikinahanglan apan kini nga artikulo naglangkob sa mutual CHAP authentication mao nga kini nga parameter gikinahanglan.
  • Ang kataposang linya mao ang panapos nga pahayag alang sa gipunting nga kahulugan. Hatagi'g pagtagad ang panapos nga slash sa atubangan sa target sa keyword!

Kung ma-type na ang angay nga mga pag-configure alang sa LUN, i-save ang mga pagbag-o ug igawas ang editor sa teksto. Kung naggamit ug nano, pindota ang ctrl+o aron makatipig ug dayon pindota ang ctrl+x aron makagawas sa nano.

Kung nahimo na ang configuration file, ang serbisyo sa tgt kinahanglan nga i-restart aron mahibal-an sa tgt ang bag-ong mga target ug ang kauban nga configuration.

Mahimo kini sa usa sa mosunod nga mga sugo ug nagdepende sa init nga sistema nga gigamit.

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

Kung na-restart na ang tgt, hinungdanon nga susihon aron masiguro nga ang target sa iSCSI magamit sumala sa file sa pag-configure nga gihimo.

Mahimo kini gamit ang 'tgtadm' nga mando.

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

Kini nagtapos sa pag-configure sa target. Ang sunod nga seksyon molihok pinaagi sa pag-configure sa initiator.

Debian iSCSI Initiator Configuration

Ang sunod nga lakang sa paggamit sa kaniadto gi-configure nga target sa iSCSI mao ang pag-configure sa iSCSI initiator.

Lahi nga XenServer/ESXi o uban pang mga distribusyon sama sa Red Hat, Debian, o Ubuntu.

Ang unang lakang niini nga proseso alang niining Debian initiator mao ang pag-instalar sa tukma nga mga pakete para sa iSCSI.

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

Kung nahuman na ang apt sa pag-configure sa mga open-iscsi nga mga pakete, ang iSCSI initiator configuration mahimong magsugod. Ang una nga lakang mao ang pagpakigsulti sa target aron makuha ang inisyal nga kasayuran sa pagsumpo alang sa target nga giandam.

# iscsiadm -m discovery -t st -p 192.168.56.101

Kung kini nga mando modagan, kini motubag balik sa ngalan sa lun nga gi-configure sa sayo pa alang niining partikular nga host. Ang sugo sa ibabaw magmugna usab og duha ka mga file alang sa bag-ong nadiskobrehan nga impormasyon sa LUN.

Karon ang file nga gihimo alang niini nga node kinahanglan nga ma-configure ang impormasyon sa CHAP aron kini nga target sa iSCSI ma-access gyud sa initiator.

Sa teknikal nga kini nga kasayuran mahimo’g i-setup alang sa tibuuk nga sistema sa kinatibuk-an apan kung ang usa ka host nagkonektar sa lainlaing mga LUN nga adunay lainlaing mga kredensyal, ang pagbutang sa mga kredensyal sa piho nga file sa pag-configure sa node makapakunhod sa bisan unsang mga isyu.

Ang node configuration file anaa sa direktoryo '/etc/iscsi/nodes/' ug adunay magamit nga direktoryo kada LUN. Sa kaso niini nga artikulo (timan-i nga ang mga agianan mausab kung ang mga ngalan/IP address mausab).

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

Aron magamit kini nga file, ang bisan unsang text editor mahimong magamit.

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

Sulod sa kini nga file adunay daghang na-configure nga mga kapilian alang sa tagsa-tagsa nga target nga gitino sa panahon sa 'iscsiadm' nga command run sa sayo pa.

Tungod kay kining partikular nga Debian target/initiator setup naggamit sa mutual CHAP, pipila pa nga mga kapilian ang kinahanglan nga usbon ug idugang niini nga file ug dayon usa ka login sa iSCSI target nga gihimo.

Ang mga pagbag-o sa kini nga file mao ang:

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

Ang mga opsyon sa ibabaw magtugot niini nga target sa pag-authenticate ngadto sa initiator ingon man usab sa pagtugot sa initiator sa pag-authenticate ngadto sa target.

Adunay lain nga kapilian niining partikular nga file nga kinahanglan nga usbon depende sa gusto sa tagdumala ug kana ang parameter nga 'node.startup'.

Kung sundon kini nga giya, ang 'node.startup' nga kapilian itakda sa 'manwal' niining puntoha. Mahimong dili kini gusto. Kung gusto sa tagdumala nga makonektar ang target sa iSCSI kung magsugod na ang sistema, usba ang 'manwal' sa 'awtomatiko' nga ingon niini:

node.startup = automatic

Kung nahimo na ang mga pagbag-o sa ibabaw, i-save ang file ug paggawas. Niini nga punto ang serbisyo sa open-iscsi initiator kinahanglan nga i-restart aron mabasa kining bag-ong mga pagbag-o ug makonektar sa target sa iSCSI.

Mahimo kini pinaagi sa usa sa mosunod nga mga sugo depende sa init nga sistema nga gigamit.

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

Matikdi sa berdeng kahon sa ibabaw nga ang iSCSI initiator nakahimo sa pag-log in sa target. Aron sa dugang pagkumpirma nga ang target sa iSCSI anaa gayud sa initiator, mahimo natong susihon ang sistema alang sa dugang nga mga disk drive nga anaa gamit ang 'lsblk' nga sugo ug pagsusi sa output alang sa dugang nga mga drive.

# lsblk

Ang uban nga sugo nga mahimong magamit sa initiator aron makumpirma ang usa ka koneksyon sa target mao ang 'iscsiadm' sa ingon:

# iscsiadm -m session

Ang katapusang lugar aron makumpirma ang usa ka koneksyon naa sa target mismo gamit ang 'tgtadm' nga mando aron ilista ang bisan unsang koneksyon sa iSCSI.

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

Gikan niini nga punto, ang bag-ong gilakip nga iSCSI device mahimong magamit nga susama sa bisan unsang kasagarang gilakip nga disk! Ang pagbahin, paghimo sa filesystem, pag-mount, ug/o padayon nga pag-mount mahimong madumala sa normal.

Usa ka dako nga pasidaan nga kinahanglan mahibal-an sa mga aparato sa iSCSI kung ang target sa iSCSI adunay mga importanteng filesystem nga gikinahanglan samtang nag-booting ang initiator, siguroha nga gamiton ang entry nga '_netdev' sa '/etc/fstab' file aron masiguro nga ang iSCSI ang aparato konektado sa wala pa ang sistema magpadayon sa pag-boot!