Ceph, izmantojot iSCSI ā vai slÄpoÅ”ana, stÄvot ŔūpuļtÄ«klÄ
Vai starp mums (cefovodovs) ir tÄdi, kuriem nepatÄ«k āprofesionÄlÄ ekstrÄmeā?
Tas ir maz ticams ā pretÄjÄ gadÄ«jumÄ mÄs nekautrÄtos ar Å”o ÄrkÄrtÄ«gi interesanto un smieklÄ«go produktu.
Daudzi no tiem, kas bija iesaistÄ«ti Ceph darbÄ«bÄ, ir saskÄruÅ”ies ar vienu ne pÄrÄk biežu (vai drÄ«zÄk pat ļoti retu), bet dažkÄrt pieprasÄ«tu gadÄ«jumu - Ceph pieslÄgÅ”anu caur iSCSI vai FC. Par ko? Nu, piemÄram, iesniedziet attÄlu no Ceph uz Windows vai Solaris serveri, kas kaut kÄdu iemeslu dÄļ vÄl nav virtualizÄts. Vai arÄ« virtualizÄtu, bet izmantojot hipervizoru, kas nevar veikt Ceph ā un, kÄ mÄs zinÄm, tÄdu ir daudz. PiemÄram? Nu, piemÄram, HyperV vai ESXi, kas tiek aktÄ«vi izmantoti. Un, ja rodas uzdevums pasniegt attÄlu no Ceph viesu maŔīnai, tas kļūst par ļoti aizraujoÅ”u uzdevumu.
TÄtad, Åemot vÄrÄ:
jau darbojas Ceph klasteris
jau esoÅ”s attÄls, kas jÄapkalpo, izmantojot iSCSI
Baseina nosaukums mypool, attÄla nosaukums mans attÄls
Vai sÄkt?
PirmkÄrt, runÄjot par FC vai iSCSI, mums ir tÄdas entÄ«tijas kÄ iniciators un mÄrÄ·is. MÄrÄ·is faktiski ir serveris, iniciators ir klients. MÅ«su uzdevums ir ar minimÄlu piepÅ«li iesniegt Ceph attÄlu iniciatoram. Tas nozÄ«mÄ, ka mums ir jÄpaplaÅ”ina mÄrÄ·is. Bet kur, uz kÄda datora?
Par laimi, Ceph klasterÄ« mums ir vismaz viens komponents, kura IP adrese ir fiksÄta un kurÄ ir konfigurÄta viena no svarÄ«gÄkajÄm Ceph sastÄvdaļÄm, un Ŕī sastÄvdaļa ir monitors. AttiecÄ«gi mÄs monitorÄ instalÄjam iSCSI mÄrÄ·i (un tajÄ paÅ”Ä laikÄ iniciatoru, vismaz testiem). Es to izdarÄ«ju uz CentOS, taÄu risinÄjums ir piemÄrots arÄ« jebkuram citam izplatÄ«Å”anai - jums vienkÄrÅ”i jÄinstalÄ pakotnes tÄ, kÄ tas ir pieÅemams jÅ«su izplatÄ«Å”anÄ.
# yum -y install iscsi-initiator-utils targetcli
KÄds ir instalÄto pakotÅu mÄrÄ·is?
targetcli ā utilÄ«ta Linux kodolÄ iebÅ«vÄtÄ SCSI mÄrÄ·a pÄrvaldÄ«bai
iscsi-iniciator-utils ā pakotne ar utilÄ«tprogrammÄm, ko izmanto, lai pÄrvaldÄ«tu Linux kodolÄ iebÅ«vÄto iSCSI iniciatoru
Lai iniciatoram iesniegtu attÄlu caur iSCSI, notikumu izstrÄdei ir divas iespÄjas - izmantot mÄrÄ·a userspace aizmuguri vai savienot attÄlu kÄ operÄtÄjsistÄmai redzamu blokierÄ«ci un eksportÄt caur iSCSI. MÄs iesim otro ceļu - userspace aizmugursistÄma joprojÄm ir āeksperimentÄlÄā stÄvoklÄ« un nedaudz nav gatava produktÄ«vai lietoÅ”anai. TurklÄt ar to ir arÄ« lamatas, par kurÄm var daudz runÄt un (ak Å”ausmas!) strÄ«dÄties.
Ja mÄs izmantojam kaut nedaudz stabilu izplatÄ«Å”anu ar ilgu atbalsta ciklu, tad mÅ«su kodols ir kÄda sena, sena versija. PiemÄram, CentOS7 tas ir 3.10.*, CentOS8 tas ir 4.19. Un mÅ«s interesÄ vismaz 5.3 (vai drÄ«zÄk 5.4) un jaunÄks kodols. KÄpÄc? Jo pÄc noklusÄjuma Ceph attÄliem ir iespÄjota opciju kopa, kas nav saderÄ«ga ar vecÄkiem kodoliem. Tas nozÄ«mÄ, ka mÄs savienojam repozitoriju ar jaunu kodolu mÅ«su izplatÄ«Å”anai (piemÄram, CentOS tas ir elrepo), instalÄjam jauno kodolu un restartÄjam sistÄmu, lai strÄdÄtu ar jauno kodolu:
PÄrstartÄjiet serveri ar monitoru (mums ir trÄ«s monitori, vai ne?)
AttÄla savienoÅ”ana kÄ bloka ierÄ«ce
# rbd map mypool/myimage
/dev/rbd0
Atliek tikai konfigurÄt mÄrÄ·i. Å ajÄ piemÄrÄ es konfigurÄÅ”u mÄrÄ·i tÄ sauktajÄ. demonstrÄcijas režīms - bez autentifikÄcijas, redzams un pieejams ikvienam. RažoÅ”anas vidÄ jÅ«s, iespÄjams, vÄlÄsities konfigurÄt autentifikÄciju, taÄu tas ir nedaudz Ärpus darbÄ«bas jomas Å”odienas tikai prieka pÄc.
Izveidojiet aizmugursistÄmu ar nosaukumu disk1, kas saistÄ«ta ar failu /dev/rbd/mypool/myimage. NorÄdÄ«tais fails ir simboliska saite, ko udev dÄmons automÄtiski izveido uz /dev/rbd0. MÄs izmantojam simbolisku saiti, jo rbd ierÄ«ces nosaukums var mainÄ«ties atkarÄ«bÄ no secÄ«bas, kÄdÄ Ceph attÄli ir savienoti ar resursdatoru.
# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/ set
> attribute demo_mode_write_protect=0
# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/ set
> attribute generate_node_acls=1
# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/ set
> attribute cache_dynamic_acls=1
SaglabÄjiet konfigurÄciju:
# targetcli saveconfig
MÄrÄ·a klÄtbÅ«tnes pÄrbaude:
# iscsiadm -m discovery -t st -p 127.0.0.1:3260
127.0.0.1:3260,1 iqn.2020-01.demo.ceph:mypool
MÄs savienojam mÄrÄ·i:
# iscsiadm -m node --login
Logging in to [iface: default, target: iqn.2020-01.demo.ceph:mypool, portal: 127.0.0.1,3260] (multiple)
Login to [iface: default, target: iqn.2020-01.demo.ceph:mypool, portal: 127.0.0.1,3260] successful.
Ja visu izdarÄ«jÄt pareizi, serverÄ« parÄdÄ«sies jauns disks, kas izskatÄs kÄ SCSI ierÄ«ce, bet patiesÄ«bÄ ir Ceph attÄls, kuram var piekļūt, izmantojot iSCSI mÄrÄ·i. Lai izvairÄ«tos no sÄknÄÅ”anas problÄmÄm, labÄk ir noÅemt pievienoto disku un noteikto mÄrÄ·i no vietÄjÄ iniciatora:
Atliek tikai saglabÄt konfigurÄciju, lai attÄls tiktu automÄtiski savienots un pÄc savienojuma mÄrÄ·is tiktu stratificÄts. MÄrÄ·a palaiÅ”ana sastÄv no diviem posmiem ā UBA savienoÅ”anas un mÄrÄ·a palaiÅ”anas.
Vispirms konfigurÄsim automÄtisku RBD attÄlu savienojumu ar resursdatoru. To var izdarÄ«t, failam /etc/ceph/rbdmap pievienojot Å”Ädas rindiÅas:
PÄdÄjais tests ir vÄlreiz pÄrstartÄt mÅ«su monitoru (tagad tas ir iSCSI mÄrÄ·is). JÄatzÄ«mÄ, ka, ja mÄs nebÅ«tu notÄ«rÄ«juÅ”i iniciatora datu bÄzi ar komandu iscsiadm -n discoverydb -o dzÄst... jÅ«s varÄtu nonÄkt pie servera, kas netiek ielÄdÄts vai ielÄde prasa ilgu laiku.
Kas atliek?
KonfigurÄjiet iniciatoru serverÄ«, uz kuru mÄs vÄlamies nosÅ«tÄ«t mÄrÄ·i.
KÄ nodroÅ”inÄt mÅ«su mÄrÄ·a kļūdu toleranci?
JÅ«s varat lÄ«dzÄ«gi konfigurÄt mÄrÄ·us citos monitoros un sakÄrtot vairÄku ceļu (vmware to sapratÄ«s un pat darbosies, Hyper-V nesapratÄ«s - tam ir nepiecieÅ”amas SCSI slÄdzenes). TÄ kÄ Ceph klients no kodola neizmanto keÅ”atmiÅu, tas ir diezgan funkcionÄls. Vai arÄ« cita iespÄja ir izveidot klastera resursu no trim komponentiem - speciÄlas mÄrÄ·a IP adreses un rbdmap un scsi-target pakalpojumiem, un pÄrvaldÄ«t Å”o resursu, izmantojot klasterizÄcijas rÄ«kus (kurÅ” teica, ka elektrokardiostimulators?)
tÄ vietÄ, lai epilogs
KÄ skaidrs, Å”is raksts ir neliels joks, taÄu tajÄ es mÄÄ£inÄju āÄtri un ar piemÄriemā aplÅ«kot vairÄkas diezgan populÄras tÄmas vienlaikus - iSCSI target, kas var ne vienmÄr eksportÄt Ceph attÄlus, bet, piemÄram, LVM sÄjumu eksportÄÅ”ana, pamati darbam ar iSCSI iniciatoru (kÄ skenÄt mÄrÄ·i, kÄ izveidot savienojumu ar mÄrÄ·i, atvienot, dzÄst mÄrÄ·a ierakstu no datu bÄzes), rakstot savu vienÄ«bu systemd un daži citi
Es ceru, ka pat tad, ja neatkÄrtosit visu Å”o eksperimentu pilnÄ«bÄ, vismaz kaut kas no Ŕī raksta jums bÅ«s noderÄ«gs.