Ceph nge-iSCSI - noma ukushushuluza ngenkathi umi ku-hammock

Ingabe bakhona phakathi kwethu (i-tsefovodov) abangathandi "ukudlulela kochwepheshe"?

Akwenzeki - uma kungenjalo besingeke sigibele lo mkhiqizo othakazelisa kakhulu futhi ohlekisayo.

Abaningi balabo ababebambe iqhaza ekusebenzeni kwe-Ceph bathole eyodwa engavamile kakhulu (noma kunalokho engavamile kakhulu) kodwa ngezinye izikhathi esimweni esifunwa kakhulu - ukuxhuma i-Ceph nge-iSCSI noma i-FC. Kwani? Hhayi-ke, ngokwesibonelo, hambisa isithombe usuka ku-Ceph uye kuseva ye-Windows noma ye-Solaris esingakafinyelelwa ngesizathu esithile. Noma eyenziwe yabonwa, kepha isebenzisa i-hypervisor engakwazi ukwenza i-Ceph - futhi, njengoba sazi, ziningi zazo. Ngokwesibonelo? Nokho, isibonelo, HyperV noma ESXi, ezisetshenziswa ngenkuthalo. Futhi uma kuphakama umsebenzi wokunikeza isithombe kusuka ku-Ceph kuya kumshini wezivakashi, lokhu kuphenduka umsebenzi ojabulisa kakhulu.

Ngakho, kunikezwe:

  1. iqoqo le-Ceph eselivele lisebenza
  2. isithombe esivele sikhona okumele sinikezwe nge-iSCSI
  3. Igama lephuli mypool, igama lesithombe isithombe sami

Qala?

Okokuqala nje, uma sikhuluma nge-FC noma iSCSI, sinezinhlaka ezinjengama-initiator kanye nethagethi. Ithagethi empeleni iyiseva, umqalisi uyiklayenti. Umsebenzi wethu ukuthumela isithombe se-Ceph kumqalisi ngomzamo omncane. Lokhu kusho ukuthi kufanele sandise umgomo. Kodwa kuphi, kuyiphi ikhompyutha?

Ngenhlanhla, kuqoqo le-Ceph okungenani sinengxenye eyodwa ikheli layo le-IP elilungisiwe nokuthi iyiphi ingxenye ebaluleke kakhulu ye-Ceph elungiselelwe, futhi leyo ngxenye ingumqaphi. Ngokuvumelana nalokho, sifaka okuqondiwe kwe-iSCSI kusiqapha (kanye nesiqalisi ngesikhathi esifanayo, okungenani okokuhlola). Ngenze lokhu ku-CentOS, kodwa isisombululo sifanelekile nanoma yikuphi okunye ukusatshalaliswa - udinga nje ukufaka amaphakheji ngendlela eyamukelekayo ekusatshalalisweni kwakho.

# yum -y install iscsi-initiator-utils targetcli

Iyini inhloso yamaphakheji afakiwe?

  • targetcli - insiza yokuphatha i-SCSI target eyakhelwe ku-Linux kernel
  • I-iscsi-initiator-utils - iphakheji elinezinsiza ezisetshenziselwa ukuphatha isiqalisi se-iSCSI esakhelwe ku-Linux kernel

Ukuze uthumele isithombe nge-iSCSI kumqalisi, kunezinketho ezimbili zokuthuthukiswa kwemicimbi - sebenzisa i-backend ye-userspace yethagethi noma uxhume isithombe njengedivayisi ye-block ebonakala kusistimu yokusebenza futhi uyithumele nge-iSCSI. Sizohamba ngendlela yesibili - i-backend yendawo yomsebenzisi isesimeni "sokuhlola" futhi ayikakalungeli ukusetshenziswa ngendlela ekhiqizayo. Ngaphezu kwalokho, kukhona izingibe nayo, ongakhuluma ngayo okuningi futhi (oh horror!) Baphikisana.

Uma sisebenzisa ngisho nokusabalalisa okuzinzile ngomjikelezo omude wokusekela, khona-ke i-kernel esinayo inguqulo yakudala, yakudala. Isibonelo, ku-CentOS7 ingu-3.10.*, ku-CentOS8 ingu-4.19. Futhi sinentshisekelo ku-kernel okungenani engu-5.3 (noma kunalokho 5.4) kanye nentsha. Kungani? Ngoba ngokuzenzakalelayo izithombe ze-Ceph zinesethi yezinketho ezinikwe amandla ezingahambelani nama-kernel amadala. Lokhu kusho ukuthi sixhuma indawo yokugcina nge-kernel entsha yokusabalalisa kwethu (isibonelo, ku-CentOS lena i-elrepo), faka i-kernel entsha bese uqalisa kabusha isistimu ukuze isebenze ne-kernel entsha:

  • Xhuma kusiqaphi esikhethelwe isilingo
  • Sixhuma izinqolobane ze-elrepo ngokwemiyalelo - elrepo.org/tiki/tiki-index.php
  • Faka i-kernel: yum -y -enablerepo=elrepo-kernel install kernel-ml
  • Qalisa kabusha iseva ngemonitha (sinabaqaphi abathathu, akunjalo?)

Ukuxhuma isithombe njengedivayisi yokuvimba

# rbd map mypool/myimage
/dev/rbd0

Okusele nje ukulungisa okuqondiwe. Kulesi sibonelo, ngizomisa ithagethi kulokho okubizwa. imodi yedemo - ngaphandle kokuqinisekisa, ebonakalayo futhi ifinyeleleka kuwo wonke umuntu. Esimeni sokukhiqiza, cishe uzofuna ukulungisa ukufakazela ubuqiniso - kodwa lokho kungaphandle kwendawo yokuzivocavoca kwanamuhla okokuzijabulisa nje.

Dala i-backend ebizwa nge-disk1 ehlotshaniswa nefayela /dev/rbd/mypool/myimage. Ifayela elishiwo liyisixhumanisi esingokomfanekiso esidalwe ngokuzenzakalelayo yi-udev daemon kuya ku-/dev/rbd0. Sisebenzisa isixhumanisi esingokomfanekiso ngoba igama ledivayisi ye-rbd lingashintsha kuye ngendlela izithombe ze-Ceph ezixhunywe ngayo kumsingathi.

Dala i-backend:

# targetcli /backstores/block create disk1 /dev/rbd/mypool/myimage

Dala i-iSCSI target:

# targetcli /iscsi create iqn.2020-01.demo.ceph:mypool

Sixhuma ingemuva njenge-LUN kokuhlosiwe:

# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/luns create /backstores/block/disk1

Masilungise okuqondiwe kumodi yedemo:

# 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

Londoloza ukumisa:

# targetcli saveconfig

Ukuhlola ubukhona bethagethi:

# iscsiadm -m discovery -t st -p 127.0.0.1:3260
127.0.0.1:3260,1 iqn.2020-01.demo.ceph:mypool

Sixhuma okuqondiwe:

# 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.

Uma wenze konke ngendlela efanele, kuzovela idiski entsha kuseva, ebukeka njengedivayisi ye-SCSI, kodwa empeleni iyisithombe esivela ku-Ceph, esifinyelelwe nge-iSCSI target. Ukuze ugweme izinkinga zokuqalisa, kungcono ukususa idiski exhunyiwe kanye nethagethi etholiwe kumqalisi wendawo:

# iscsiadm -m node --logout
# iscsiadm -m discoverydb -o delete -t st -p 127.0.0.1:3260

Okusele nje ukuqhubeka nokucushwa ukuze isithombe sixhunywe ngokuzenzakalelayo futhi, ngemva kokuxhumeka, okuhlosiwe kuyahlukaniswa. Ukwethula okuqondiwe kuhlanganisa izinyathelo ezimbili - ukuxhuma i-RBD kanye nokwethula okuqondiwe.

Okokuqala, ake silungiselele ukuxhumeka okuzenzakalelayo kwezithombe ze-RBD kumsingathi. Lokhu kwenziwa ngokungeza imigqa elandelayo kufayela /etc/ceph/rbdmap:

# cat /etc/ceph/rbdmap
# RbdDevice Parameters
mypool/myimage id=admin
# systemctl enable rbdmap

Ukubuyisela ukucushwa okuqondisiwe kuyinkimbinkimbi kakhulu - sidinga ukubhala iyunithi ye-systemd ezobuyisela ukumisa:

# cat /usr/lib/systemd/system/scsi-target.service
[Unit] Description=Start iSCSI target

After=network-online.target rbdmap.service
Before=remote-fs-pre.target
Wants=network-online.target remote-fs-pre.target

[Service] Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/targetcli restoreconfig

[Install] WantedBy=multi-user.target

# systemctl daemon-reload
# systemctl enable scsi-target

Ukuhlolwa kokugcina ukuqalisa kabusha ukuqapha kwethu futhi (manje sekuyimpokophelo ye-iSCSI). Kufanele kuqashelwe ukuthi ukube besingazange sisule isizindalwazi somqalisi ngomyalo iscsiadm -n discoverydb -o delete... ungagcina uneseva engalayishi noma ethatha isikhathi eside ukuyilayisha.

Yini esele?

Lungiselela isiqalisi kuseva lapho sifuna ukuthumela khona okuqondiwe.

Ukuqinisekisa kanjani ukubekezelelwa kwamaphutha kwenhloso yethu?

Ungakwazi ngokufanayo ukumisa okuqondiwe kwamanye ama-monitor futhi usethe i-multipath (i-vmware izokuqonda lokhu futhi isebenze, i-Hyper-V ngeke iqonde - idinga izingidi ze-SCSI). Njengoba iklayenti le-Ceph elivela ku-kernel lingasebenzisi i-caching, lokhu kuyasebenza ngempela. Noma enye inketho iwukudala insiza yeqoqo lezingxenye ezintathu - ikheli le-IP eliqondisiwe elizinikele kanye ne-rbdmap nezinsizakalo eziqondiwe ze-scsi, futhi uphathe lesi sisetshenziswa ngamathuluzi wokuhlanganisa (ngubani othe i-pacemaker?)

Esikhundleni se-epilogue

Njengoba kusobala, le ndatshana iyihlaya kancane - kepha kuyo ngizamile β€œngokushesha nangezibonelo” ukubheka izihloko ezimbalwa ezidumile ngasikhathi sinye - i-iSCSI target, okungenzeka ingakhiqizi izithombe ze-Ceph - kodwa ngokwesibonelo, thekelisa imiqulu ye-LVM, izinto eziyisisekelo zokusebenza nesiqalisi se-iSCSI ( indlela yokuskena ithagethi, indlela yokuxhuma kuthagethi, nqamula, susa okufakiwe okuqondiwe kudathabhesi), ukubhala iyunithi yakho ye-systemd nabanye

Ngithemba ukuthi noma ungaphindi lonke lolu cwaningo ngokugcwele, okungenani okuthile okuvela kulesi sihloko kuzoba usizo kuwe.

Source: www.habr.com

Engeza amazwana