Ceph ma o iSCSI - a i ʻole ka ski i ke kū ʻana i kahi hammock

Aia i waena o mākou (tsefovodov) ka mea makemake ʻole i ka "ʻoihana kiʻekiʻe"?

ʻAʻole paha - inā ʻaʻole mākou e hāʻule me kēia huahana hoihoi a ʻakaʻaka.

ʻO ka hapa nui o ka poʻe i komo i ka hana a Ceph i ʻike i kahi mea ʻaʻole pinepine (a i ʻole ka pinepine ʻole) akā i kekahi manawa i ka hihia koi - hoʻopili iā Ceph ma o iSCSI a i ʻole FC. He aha ke kumu? ʻAe, no ka laʻana, e hoʻouna i kahi kiʻi mai Ceph i kahi kikowaena Windows a i ʻole Solaris ʻaʻole i virtualized no kekahi kumu. A i ʻole kahi virtualized, akā e hoʻohana ana i kahi hypervisor hiki ʻole ke hana iā Ceph - a, e like me kā mākou e ʻike ai, nui lākou. ʻo kahi laʻana? ʻAe, no ka laʻana, HyperV a i ʻole ESXi, i hoʻohana ikaika ʻia. A inā e kū mai ka hana o ka lawelawe ʻana i kahi kiʻi mai Ceph i kahi mīkini malihini, lilo kēia i hana hoihoi loa.

No laila, hāʻawi ʻia:

  1. he hui Ceph e holo nei
  2. he kiʻi pono e lawelawe ʻia ma o iSCSI
  3. inoa pool koʻupool, inoa kiʻi koʻu kiʻi

Hoʻomaka?

ʻO ka mea mua, ke kamaʻilio mākou e pili ana i ka FC a i ʻole iSCSI, loaʻa iā mākou nā mea e like me ka mea hoʻomaka a me ka pahuhopu. He kikowaena maoli ka Target, he mea kūʻai aku ka mea hoʻomaka. ʻO kā mākou hana ka waiho ʻana i ke kiʻi Ceph i ka mea hoʻomaka me ka hoʻoikaika liʻiliʻi. ʻO ia hoʻi, pono mākou e hoʻonui i ka pahuhopu. Akā ma hea, ma ke kamepiula hea?

ʻO ka mea pōmaikaʻi, i loko o kahi pūʻulu Ceph i loaʻa iā mākou ma kahi o hoʻokahi ʻāpana nona ka IP IP i hoʻopaʻa ʻia a ma luna o kahi o nā mea koʻikoʻi o Ceph i hoʻonohonoho ʻia, a ʻo ia ʻāpana ʻo ia ka monitor. No laila, hoʻokomo mākou i kahi pahuhopu iSCSI ma ka monitor (a me kahi mea hoʻomaka i ka manawa like, ma ka liʻiliʻi no nā hoʻokolohua). Ua hana wau i kēia ma CentOS, akā ua kūpono ka hopena no kekahi mahele ʻē aʻe - pono ʻoe e hoʻokomo i nā pūʻulu ma ke ala e ʻae ʻia i kāu mahele.

# yum -y install iscsi-initiator-utils targetcli

He aha ke kumu o nā pūʻolo i hoʻokomo ʻia?

  • targetcli - he mea pono no ka hoʻokele ʻana i ka pahuhopu SCSI i kūkulu ʻia i loko o ka kernel Linux
  • iscsi-initiator-utils - he pūʻolo me nā pono hana i hoʻohana ʻia e hoʻokele i ka mea hoʻomaka iSCSI i kūkulu ʻia i loko o ka kernel Linux

No ka hoʻouna ʻana i kahi kiʻi ma o iSCSI i ka mea hoʻomaka, ʻelua mau koho no ka hoʻomohala ʻana i nā hanana - e hoʻohana i ka mea hoʻohana hope o ka pahuhopu a i ʻole e hoʻopili i ke kiʻi ma ke ʻano he mea poloka i ʻike ʻia e ka ʻōnaehana hana a hoʻokuʻu aku iā ia ma o iSCSI. E hele mākou i ka ʻaoʻao ʻelua - aia nō ka mea hoʻohana hope i kahi kūlana "hoʻokolohua" a ʻaʻole mākaukau iki no ka hoʻohana ʻana. Eia kekahi, aia nā pitfalls me ia, kahi e hiki ai iā ʻoe ke kamaʻilio nui a (oh horror!) Hoʻopaʻapaʻa.

Inā mākou e hoʻohana i kahi māhele paʻa me kahi pōʻai kākoʻo lōʻihi, a laila ʻo ka kernel i loaʻa iā mākou he mana kahiko kahiko. No ka laʻana, ma CentOS7 he 3.10.*, ma CentOS8 he 4.19. A makemake mākou i kahi kernel o ka liʻiliʻi o 5.3 (a i ʻole 5.4) a ʻoi aku ka hou. No ke aha mai? No ka mea, ma ka maʻamau, loaʻa i nā kiʻi Ceph kahi hoʻonohonoho o nā koho i hiki ʻole ke kūpono me nā kernels kahiko. ʻO ia ke kumu e hoʻohui mākou i kahi waihona me kahi kernel hou no kā mākou hāʻawi ʻana (no ka laʻana, no CentOS kēia elrepo), e hoʻokomo i ka kernel hou a hoʻomaka hou i ka ʻōnaehana e hana me ka kernel hou:

  • Hoʻohui i ka mea nānā i koho ʻia no ka hoʻokolohua
  • Hoʻopili mākou i nā waihona elrepo e like me nā kuhikuhi - elrepo.org/tiki/tiki-index.php
  • E hoʻokomo i ka kernel: yum -y —enablerepo=elrepo-kernel e hoʻokomo i ka kernel-ml
  • E hoʻomaka hou i ka server me ka monitor (ʻekolu kā mākou nānā, pololei?)

Hoʻohui i ke kiʻi ma ke ʻano he mea poloka

# rbd map mypool/myimage
/dev/rbd0

ʻO ka mea i koe e hoʻonohonoho i ka pahuhopu. Ma kēia hiʻohiʻona, e hoʻonohonoho wau i ka pahuhopu i ka mea i kapa ʻia. mode demo - me ka hōʻoia ʻole, ʻike ʻia a hiki i nā mea āpau. I loko o kahi hoʻolālā hana, makemake paha ʻoe e hoʻonohonoho i ka hōʻoia - akā ʻaʻole ia i waho o ka pae no ka hoʻomaʻamaʻa leʻaleʻa o kēia lā.

E hana i kahi backend i kapa ʻia ʻo disk1 pili me ka faila /dev/rbd/mypool/myimage. ʻO ka faila i kuhikuhi ʻia he loulou hōʻailona i hana ʻia e ka udev daemon i /dev/rbd0. Hoʻohana mākou i kahi loulou hōʻailona no ka mea hiki ke hoʻololi ka inoa o ka mea rbd ma muli o ke ʻano o nā kiʻi Ceph e pili ana i ka mea hoʻokipa.

E hana i kahi hope:

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

E hana i kahi pahuhopu iSCSI:

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

Hoʻohui mākou i ka hope ma ke ʻano he LUN i ka pahuhopu:

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

E hoʻonohonoho i ka pahuhopu no ke ʻano demo:

# 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

E mālama i ka hoʻonohonoho:

# targetcli saveconfig

Ke nānā nei i ka loaʻa o ka pahuhopu:

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

Hoʻohui mākou i ka pahuhopu:

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

Inā hana pololei ʻoe i nā mea āpau, e ʻike ʻia kahi disk hou ma ka kikowaena, e like me kahi mea SCSI, akā he kiʻi maoli nō ia mai Ceph, i loaʻa ma o kahi pahuhopu iSCSI. No ka pale ʻana i nā pilikia boot, ʻoi aku ka maikaʻi o ka wehe ʻana i ka disk pili a me ka mea i ʻike ʻia mai ka mea hoʻomaka kūloko:

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

ʻO nā mea a pau i koe, ʻo ia ka hoʻomau ʻana i ka hoʻonohonoho ʻana i pili pono ke kiʻi a, ma hope o ka hoʻopili ʻana, ua stratified ka pahuhopu. ʻO ka hoʻokuʻu ʻana i kahi pahuhopu he ʻelua ʻanuʻu - hoʻopili i ka RBD a hoʻomaka maoli i ka pahuhopu.

ʻO ka mea mua, e hoʻonohonoho i ka pilina maʻalahi o nā kiʻi RBD i ka mea hoʻokipa. Hana ʻia kēia ma ka hoʻohui ʻana i kēia mau laina i ka faila /etc/ceph/rbdmap:

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

ʻOi aku ka paʻakikī o ka hoʻihoʻi ʻana i ka hoʻonohonoho ʻana - pono mākou e kākau i kahi ʻāpana no systemd e hoʻihoʻi i ka hoʻonohonoho:

# 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

ʻO ka hoʻāʻo hope loa e hoʻihoʻi hou i kā mākou monitor (ʻo ia ka iSCSI target). Pono e hoʻomaopopo ʻia inā ʻaʻole mākou i holoi i ka waihona o ka mea hoʻomaka me ke kauoha iscsiadm -n discoverydb -o holoi ... hiki iā ʻoe ke hoʻopau me kahi kikowaena ʻaʻole hoʻouka a lōʻihi paha ka manawa e hoʻouka ai.

He aha ke koena?

E hoʻonohonoho i ka mea hoʻomaka ma ka kikowaena kahi a mākou e makemake ai e hoʻouna i ka pahuhopu.

Pehea e hōʻoia ai i ka hoʻomanawanui hewa o kā mākou pahuhopu?

Hiki iā ʻoe ke hoʻonohonoho like i nā pahuhopu ma nā mākaʻikaʻi ʻē aʻe a hoʻonohonoho i ka multipath (e hoʻomaopopo ʻo vmware i kēia a hiki i ka hana, ʻaʻole maopopo ʻo Hyper-V - pono ia i nā laka SCSI). No ka mea ʻaʻole hoʻohana ka mea kūʻai Ceph mai ka kernel i ka caching, hiki ke hana. A i ʻole kekahi koho ʻē aʻe, ʻo ia ka hana ʻana i kahi punawai puʻupuʻu o ʻekolu mau ʻāpana - kahi helu IP i hoʻolaʻa ʻia a me ka rbdmap a me nā lawelawe scsi-target, a hoʻokele i kēia kumuwaiwai ma o nā mea hana clustering (na wai i ʻōlelo i ka pacemaker?)

Ma kahi o ka'ōlelo

E like me ka mea i maopopo, he mea ʻakaʻaka kēia ʻatikala - akā i loko o ia mea ua hoʻāʻo wau e "wikiwiki a me nā hiʻohiʻona" e noʻonoʻo i kekahi mau kumuhana kaulana loa i ka manawa like - iSCSI target, ʻaʻole paha e hoʻokuʻu aku i nā kiʻi Ceph - akā no ka laʻana, e hoʻokuʻu aku i nā puke LVM, nā kumu o ka hana ʻana me kahi mea hoʻomaka iSCSI (pehea e nānā ai i kahi pahuhopu, pehea e hoʻopili ai i kahi pahu hopu, wehe, holoi i kahi komo ʻana mai ka waihona), kākau i kāu ʻāpana ponoʻī no systemd a me nā mea ʻē aʻe.

Manaʻo wau ʻoiai inā ʻaʻole ʻoe e hana hou i kēia hoʻokolohua holoʻokoʻa i ka piha, ma ka liʻiliʻi loa kekahi mea mai kēia ʻatikala e pono iā ʻoe.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka