Ceph kudzera pa iSCSI - kapena kutsetsereka muyimirira mu hammock

Kodi pali ena mwa ife (tsefovodov) amene sakonda "akatswiri monyanyira"?

Ndizokayikitsa - tikapanda kutero sitikadakhala kuti tikuyenda ndi chinthu chosangalatsa komanso choseketsa ichi.

Ambiri mwa omwe adagwira nawo ntchito ya Ceph adakumana ndi zomwe sizinachitike pafupipafupi (kapena zocheperako) koma nthawi zina pakufunika - kulumikiza Ceph kudzera iSCSI kapena FC. Zachiyani? Mwachitsanzo, perekani chithunzi kuchokera ku Ceph kupita ku seva ya Windows kapena Solaris yomwe sichinapangidwebe pazifukwa zina. Kapena yowoneka bwino, koma kugwiritsa ntchito hypervisor yomwe sigwirizana ndi Ceph-ndipo, monga tikudziwira, pali zambiri. Mwachitsanzo? Chabwino, mwachitsanzo, HyperV kapena ESXi, zomwe zimagwiritsidwa ntchito mwachangu. Ndipo ngati ntchito ikadzabwera yotumizira chithunzi kuchokera ku Ceph kupita ku makina a alendo, izi zimasanduka ntchito yosangalatsa kwambiri.

Choncho, kupewa:

  1. gulu la Ceph lomwe likuyenda kale
  2. chithunzi chomwe chilipo kale chomwe chiyenera kutumizidwa kudzera pa iSCSI
  3. Dzina la dziwe mypool, dzina lachithunzi chithunzi

Yamba?

Choyamba, tikamalankhula za FC kapena iSCSI, timakhala ndi mabungwe monga oyambitsa ndi chandamale. Cholinga ndi seva, woyambitsa ndi kasitomala. Ntchito yathu ndikutumiza chithunzi cha Ceph kwa woyambitsa popanda khama lochepa. Izi zikutanthauza kuti tiyenera kukulitsa chandamale. Koma kuti, pa kompyuta?

Mwamwayi, m'gulu la Ceph tili ndi gawo limodzi lomwe adilesi yake ya IP imakhazikika ndipo chimodzi mwazinthu zofunika kwambiri za Ceph chimakhazikitsidwa, ndipo gawolo ndilowunikira. Chifukwa chake, timayika chandamale cha iSCSI pa chowunikira (ndi choyambitsa nthawi yomweyo, osachepera mayeso). Ndidachita izi pa CentOS, koma yankho ndiloyeneranso kugawa kwina kulikonse - mumangofunika kukhazikitsa mapaketiwo momwe amavomerezera pakugawa kwanu.

# yum -y install iscsi-initiator-utils targetcli

Kodi mapaketi omwe adayikidwa ndi chiyani?

  • targetcli - chida chowongolera chandamale cha SCSI chomangidwa mu Linux kernel
  • iscsi-initiator-utils - phukusi lokhala ndi zofunikira zomwe zimagwiritsidwa ntchito kuyang'anira woyambitsa iSCSI womangidwa mu Linux kernel

Kuti mupereke chithunzi kudzera pa iSCSI kwa woyambitsa, pali njira ziwiri zopangira zochitika - gwiritsani ntchito malo ogwiritsira ntchito kumbuyo kwa chandamale kapena kugwirizanitsa chithunzicho ngati chipangizo chotchinga chowonekera ku machitidwe ogwiritsira ntchito ndikuchitumiza kudzera pa iSCSI. Tidzapita njira yachiwiri - malo ogwiritsira ntchito malo akadali "oyesera" ndipo sali okonzeka kugwiritsidwa ntchito bwino. Kuonjezera apo, pali misampha ndi izo, zomwe mungathe kuyankhula zambiri ndi (o mantha!)

Ngati tigwiritsa ntchito ngakhale kugawa kokhazikika ndi njira yayitali yothandizira, ndiye kuti kernel yomwe tili nayo ndi yakale, yakale. Mwachitsanzo, mu CentOS7 ndi 3.10.*, mu CentOS8 ndi 4.19. Ndipo tili ndi chidwi ndi kernel ya osachepera 5.3 (kapena m'malo 5.4) ndi yatsopano. Chifukwa chiyani? Chifukwa mwachisawawa zithunzi za Ceph zili ndi zosankha zingapo zomwe sizigwirizana ndi maso akale. Izi zikutanthauza kuti timalumikiza chosungira ndi kernel yatsopano kuti tigawire (mwachitsanzo, kwa CentOS iyi ndi elrepo), ikani kernel yatsopano ndikuyambitsanso dongosolo kuti ligwire ntchito ndi kernel yatsopano:

  • Lumikizani ku chowunikira chosankhidwa kuti muyese
  • Timalumikiza nkhokwe za elrepo molingana ndi malangizo - elrepo.org/tiki/tiki-index.php
  • Ikani kernel: yum -y -enablerepo=elrepo-kernel install kernel-ml
  • Yambitsaninso seva ndi chowunikira (tili ndi oyang'anira atatu, sichoncho?)

Kulumikiza fano ngati chipika chipangizo

# rbd map mypool/myimage
/dev/rbd0

Chotsalira ndikukonza chandamale. Mu chitsanzo ichi, ine sintha chandamale mu otchedwa. mawonekedwe owonetsera - opanda kutsimikizika, owoneka komanso opezeka kwa aliyense. M'malo opangira, mungafune kukonza zotsimikizika - koma ndizosowa pang'ono pazoseweretsa zamasiku ano zongosangalatsa.

Pangani backend yotchedwa disk1 yolumikizidwa ndi fayilo /dev/rbd/mypool/myimage. Fayilo yotchulidwayo ndi ulalo wophiphiritsa wopangidwa ndi udev daemon ku /dev/rbd0. Timagwiritsa ntchito ulalo wophiphiritsa chifukwa dzina la chipangizo cha rbd lingasinthe malinga ndi dongosolo lomwe zithunzi za Ceph zimalumikizidwa ndi wolandila.

Pangani backend:

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

Pangani chandamale cha iSCSI:

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

Timalumikiza backend ngati LUN ku chandamale:

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

Tiyeni tikonze chandamale cha demo 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

Sungani zochunira:

# targetcli saveconfig

Kuyang'ana kupezeka kwa chandamale:

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

Timagwirizanitsa cholinga:

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

Ngati munachita zonse molondola, disk yatsopano idzawonekera pa seva, yomwe imawoneka ngati chipangizo cha SCSI, koma kwenikweni ndi chithunzi chochokera ku Ceph, chofikiridwa ndi chandamale cha iSCSI. Kuti mupewe zovuta za boot, ndikwabwino kuchotsa diski yolumikizidwa ndi chandamale chomwe chapezeka kuchokera kwa woyambitsa wakomweko:

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

Zonse zomwe zatsala ndikulimbikira kukonzanso kotero kuti chithunzicho chilumikizidwe mwachisawawa ndipo, pambuyo pa kugwirizana, chandamalecho chimayikidwa. Kukhazikitsa chandamale kumakhala ndi masitepe awiri - kulumikiza RBD ndikuyambitsa chandamale.

Choyamba, tiyeni tikonze zolumikizira zokha za zithunzi za RBD kwa wolandila. Izi zimachitika powonjezera mizere yotsatirayi ku fayilo /etc/ceph/rbdmap:

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

Kubwezeretsanso kasinthidwe kachindunji ndizovuta kwambiri - tifunika kulemba gawo la systemd lomwe lidzabwezeretsa kasinthidwe:

# 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

Chiyeso chomaliza ndikuyambitsanso polojekiti yathu (tsopano ndi chandamale cha iSCSI). Tiyenera kudziwa kuti tikadapanda kuchotsa nkhokwe ya oyambitsa ndi lamulo iscsiadm -n discoverydb -o delete ... mutha kukhala ndi seva yomwe siyimatsitsa kapena imatenga nthawi yayitali kuti muyike.

Chatsala ndi chiyani?

Konzani woyambitsa pa seva komwe tikufuna kutumiza chandamale.

Kodi tingatsimikizire bwanji kulolerana kolakwa kwa chandamale chathu?

Mukhozanso kukhazikitsa zolinga pa oyang'anira ena ndikukhazikitsa multipath (vmware idzamvetsetsa izi komanso ngakhale kugwira ntchito, Hyper-V siimvetsetsa - imafuna SCSI maloko). Popeza kasitomala wa Ceph wochokera ku kernel sagwiritsa ntchito caching, izi ndizothandiza. Kapena njira ina ndikupanga nkhokwe yamagulu atatu - adilesi yodzipatulira ya IP ndi rbdmap ndi scsi-target services, ndikuwongolera chida ichi pogwiritsa ntchito zida zophatikizira (ndani adati pacemaker?)

M'malo mwa epilogue

Monga zikuwonekeratu, nkhaniyi ndi nthabwala pang'ono - koma momwemo ndidayesa "mwachangu komanso ndi zitsanzo" kuganizira mitu ingapo yotchuka nthawi imodzi - chandamale cha iSCSI, chomwe sichingatumize zithunzi za Ceph - koma mwachitsanzo, kutumiza ma voliyumu a LVM, zoyambira zogwirira ntchito ndi woyambitsa iSCSI (momwe mungayang'anire chandamale, momwe mungalumikizire chandamale, kulumikiza, kufufuta chandamale kuchokera ku database), kulemba gawo lanu la systemd ndi ena.

Ndikukhulupirira kuti ngakhale simubwereza kuyesa konseku kwathunthu, china chake kuchokera m'nkhaniyi chidzakhala chothandiza kwa inu.

Source: www.habr.com

Kuwonjezera ndemanga