Ceph kuburikidza neSCSI - kana skiing wakamira mune hammock

Pane avo pakati pedu (tsefovodov) vasingadi "nyanzvi dzakanyanyisa"?

Hazvigoneke - zvikasadaro tingadai tisiri kubhuroka nechigadzirwa ichi chinonakidza uye chinosetsa.

Vazhinji veavo vaibatanidzwa mukushanda kweCeph vakawana imwe isingawanzo kuitika (kana kuti kunyange isingawanzoitiki) asi dzimwe nguva mukuda kwenyaya - yekubatanidza Ceph kuburikidza neSCSI kana FC. Yechii? Zvakanaka, semuenzaniso, tumira mufananidzo kubva kuCeph kuenda kuWindows kana Solaris server iyo isati yave yakanyatsogadziriswa nekuda kwechimwe chikonzero. Kana iyo yakasarudzika, asi uchishandisa hypervisor isingakwanise kuita Ceph - uye, sezvatinoziva, kune akawanda acho. Semuyenzaniso? Zvakanaka, semuenzaniso, HyperV kana ESXi, izvo zviri kushingaira kushandiswa. Uye kana basa rikamuka rekushandira chifananidzo kubva kuCeph kuenda kumushini wevaenzi, izvi zvinoshanduka kuita basa rinonakidza kwazvo.

Saka, kupa:

  1. iri kutomhanya ceph cluster
  2. mufananidzo wagara uripo unofanirwa kupihwa kuburikidza neSCSI
  3. Zita redziva mypool, zita remufananidzo myimage

Tanga?

Chekutanga pane zvese, kana tichitaura nezve FC kana iSCSI, isu tine masangano akadai sekutanga uye chinangwa. Target ndeyechokwadi sevha, initiator mutengi. Basa redu ndere kuendesa mufananidzo weCeph kune wekutanga nekuedza kushoma. Izvi zvinoreva kuti tinofanira kuwedzera chinangwa. Asi kupi, pakombiyuta ipi?

Neraki, muboka reCeph isu tine chikamu chimwe chete chine IP kero yakagadziriswa uye pane chimwe chezvinhu zvakakosha zveCeph chakagadziriswa, uye icho chikamu ndicho chekutarisa. Saizvozvo, isu tinoisa iSCSI tarisiro pane yekutarisa (uye initator panguva imwe chete, zvirinani zvebvunzo). Ndakaita izvi paCentOS, asi mhinduro yacho inokodzera chero kumwe kugovera - iwe unongoda kuisa mapakeji nenzira inogamuchirwa mukugovera kwako.

# yum -y install iscsi-initiator-utils targetcli

Chii chinangwa chemapakeji akaiswa?

  • targetcli - chishandiso chekugadzirisa chinangwa cheSCSI chakavakirwa muLinux kernel
  • iscsi-initiator-utils - pasuru ine zvishandiso zvinoshandiswa kubata iSCSI initiator yakavakirwa muLinux kernel

Kuti utumire mufananidzo kuburikidza neSCSI kune wekutanga, pane mbiri sarudzo dzekuvandudza zviitiko - shandisa iyo userspace backend yechinangwa kana batanidza mufananidzo sechivharo chinoonekwa kune inoshanda sisitimu uye utumire kunze kuburikidza neSCSI. Tichaenda nenzira yechipiri - iyo userspace backend ichiri mu "yekuyedza" mamiriro uye haina kugadzirira kushandiswa zvine pundutso. Mukuwedzera, pane zvipingamupinyi nazvo, pamusoro pazvo iwe unogona kutaura zvakawanda uye (oh horror!) Kupokana.

Kana tikashandisa kunyange kugovera kwakagadzikana nerutsigiro rurefu, saka kernel yatinayo ndeimwe yekare, yekare vhezheni. Semuenzaniso, muCentOS7 iri 3.10.*, muCentOS8 iri 4.19. Uye isu tiri kufarira kernel yeinenge 5.3 (kana kuti 5.4) uye nyowani. Sei? Nekuti nekusarudzika maCeph mifananidzo ine seti yesarudzo inogoneswa isingaenderane nekare kernels. Izvi zvinoreva kuti tinobatanidza repository nekernel nyowani yekugovera kwedu (semuenzaniso, yeCentOS iyi iri elrepo), isa iyo kernel nyowani uye tangazve sisitimu kuti ishande nekernel nyowani:

  • Batanidza kumonitor yakasarudzwa pakuedza
  • Isu tinobatanidza elrepo repositories maererano nemirayiridzo - elrepo.org/tiki/tiki-index.php
  • Isa iyo kernel: yum -y -enablerepo=elrepo-kernel isa kernel-ml
  • Reboot sevha neyemonitor (tine vatariri vatatu, handiti?)

Kubatanidza mufananidzo sechivharo chemudziyo

# rbd map mypool/myimage
/dev/rbd0

Chinosara ndechekugadzirisa chinangwa. Mumuenzaniso uyu, ini ndichagadzirisa chinangwa mune izvo zvinonzi. demo mode - isina huchokwadi, inooneka uye inowanikwa kune wese munhu. Munzvimbo yekugadzira, iwe ungangoda kugadzirisa huchokwadi - asi izvo zvishoma kunze-kwe-scope kune yanhasi-ye-kunakidzwa kurovedza muviri.

Gadzira backend inonzi disk1 yakabatana nefaira /dev/rbd/mypool/myimage. Iyo faira yakatsanangurwa iratidziro yekubatanidza inogadzirwa neiyo udev daemon ku /dev/rbd0. Isu tinoshandisa chinofananidzira chinongedzo nekuti zita reiyo rbd mudziyo rinogona kuchinja zvichienderana nekurongeka kwakabatana nemifananidzo yeCeph kune iyo saiti.

Gadzira backend:

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

Gadzira chinangwa cheSCSI:

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

Isu tinobatanidza iyo backend seLUN kune chinangwa:

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

Ngatigadzirise chinangwa chedemo mode:

# 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

Sevha zvigadziriso:

# targetcli saveconfig

Kuongorora kuwanikwa kwechinangwa:

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

Isu tinobatanidza chinangwa:

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

Kana iwe wakaita zvese nemazvo, dhisiki nyowani ichaonekwa pane sevha, inoita senge SCSI mudziyo, asi chiri chifananidzo kubva kuCeph, inowanikwa kuburikidza neSCSI chinangwa. Kuti udzivise matambudziko ebhoot, zviri nani kubvisa dhisiki rakabatana uye chinangwa chakaonekwa kubva kune anotanga munharaunda:

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

Zvose zvinosara ndezvekuenderera mberi nekugadzirisa kuitira kuti chifananidzo chacho chibatanidzwe otomatiki uye, mushure mekubatanidza, chinangwa chinotemwa. Kuvhura chinangwa kune matanho maviri - kubatanidza iyo RBD uye kunyatso kuburitsa chinangwa.

Chekutanga, ngatigadzirise iyo otomatiki yekubatanidza yeRBD mifananidzo kune iyo host. Izvi zvinoitwa nekuwedzera mitsara inotevera kune /etc/ceph/rbdmap faira:

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

Kudzoreredza iyo tarisiro yekumisikidza kwakatonyanya kuomarara - isu tinofanirwa kunyora unit ye ​​systemd inozodzoreredza iyo kumisikidzwa:

# 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

Muedzo wekupedzisira ndeyekutangazve yedu yekutarisa zvakare (ikozvino iSCSI chinangwa). Izvo zvinofanirwa kucherechedzwa kuti dai isu tisina kudzima dhatabhesi rekutanga nemurairo iscsiadm -n discoverydb -o delete... unogona kupedzisira uine sevha isingaregi kana kutora nguva yakareba kurodha.

Chii chasara?

Gadzirisa iyo initiator pane server kwatinoda kutumira chinangwa.

Nzira yekuona sei kukanganisa kushivirira kwechinangwa chedu?

Iwe unogonawo kugadzirisa zvinangwa pane mamwe mamonitor uye kuseta multipath (vmware ichanzwisisa izvi uye kunyange kushanda, Hyper-V hainzwisise - inoda SCSI kukiya). Sezvo mutengi weCeph kubva kukernel asingashandisi caching, izvi zvinoshanda chaizvo. Kana imwe sarudzo ndeyekugadzira cluster sosi yezvikamu zvitatu - yakazvipira yakananga IP kero uye rbdmap uye scsi-chinangwa masevhisi, uye kutonga sosi iyi kuburikidza nekubatanidza maturusi (ndiani akati pacemaker?)

Panzvimbo yeshoko rinotevera

Sezviri pachena, chinyorwa ichi chisekeso - asi mairi ndakaedza "nekukurumidza uye nemienzaniso" kufunga akati wandei akakurumbira misoro panguva imwe chete - iSCSI target, iyo inogona kunge isingaite kutumira maCeph mifananidzo - asi semuenzaniso, kunze kweLVM mavhoriyamu, izvo zvekutanga zvekushanda neSCSI initiator ( maitiro ekutarisa chinangwa, maitiro ekubatanidza kune chinangwa, bvisa, kudzima chinongedzo chekupinda kubva mudhatabhesi), kunyora yako wega unit ye ​​systemd nevamwe vamwe.

Ndinovimba kuti kunyangwe ukasadzokorora kuyedza uku zvizere, chimwe chinhu kubva kuchinyorwa chino chichakubatsira iwe.

Source: www.habr.com

Voeg