Ceph site na iSCSI - ma ọ bụ ski mgbe ị na-eguzo na hammock

Enwere ndị n'etiti anyị (tsefovodov) ndị na-adịghị amasị "ọkachamara oke"?

O yighị ka - ma ọ bụghị ya, anyị agaghị eji ngwaahịa a na-adọrọ mmasị ma na-atọ ọchị.

Ọtụtụ n'ime ndị na-etinye aka na ọrụ Ceph na-ahụtaghị nke na-adịghị adịkarị (ma ọ bụ ọbụna na-adịkarị obere) ma mgbe ụfọdụ na-achọ - ijikọ Ceph site na iSCSI ma ọ bụ FC. Maka gịnị? Ọ dị mma, dịka ọmụmaatụ, nyefee onyonyo sitere na Ceph gaa na sava Windows ma ọ bụ Solaris nke emebebeghị nke ọma maka ihe ụfọdụ. Ma ọ bụ nke ọma, mana iji hypervisor nke na-enweghị ike ime Ceph - na, dịka anyị maara, enwere ọtụtụ n'ime ha. Ọmụmaatụ? Ọfọn, dịka ọmụmaatụ, HyperV ma ọ bụ ESXi, nke a na-arụsi ọrụ ike. Ma ọ bụrụ na ọrụ ahụ bilitere nke ijere ihe onyonyo sitere na Ceph gaa na igwe ndị ọbịa, nke a na-aghọ ọrụ na-atọ ụtọ nke ukwuu.

Ya mere, nyere:

  1. ụyọkọ Ceph na-agba ọsọ ugbua
  2. onyonyo dịlarị nke a ga-enyerịrị site na iSCSI
  3. Aha ọdọ mmiri ọdọ mmiri, oyiyi aha ihe onyonyo

Malite?

Nke mbụ, mgbe anyị na-ekwu maka FC ma ọ bụ iSCSI, anyị nwere ụlọ ọrụ dị ka onye mbido na ebumnuche. Ebumnuche bụ ihe nkesa, onye mbido bụ onye ahịa. Ọrụ anyị bụ iji obere mbọ nyefee onyonyo Ceph n'aka onye mbido. Nke a pụtara na anyị ga-agbasarịrị ebumnuche. Ma olee ebe, na kọmputa?

Ọ dabara nke ọma, na ụyọkọ Ceph anyị nwere opekata mpe otu akụrụngwa nke edobere adreesị IP ya yana nke ahaziri otu n'ime akụkụ kachasị mkpa nke Ceph, yana akụkụ ahụ bụ nyocha. N'ihi ya, anyị na-etinye ihe iSCSI lekwasịrị anya na onye nleba anya (na onye mbido n'otu oge, opekata mpe maka ule). Emere m nke a na CentOS, mana azịza ya dịkwa mma maka nkesa ọ bụla - naanị ị ga-etinye ngwugwu ahụ n'ụzọ a na-anabata na nkesa gị.

# yum -y install iscsi-initiator-utils targetcli

Gịnị bụ nzube nke ngwugwu arụnyere?

  • targetcli - ngwa maka ijikwa ebumnuche SCSI arụnyere n'ime kernel Linux
  • iscsi-onye mbido-uils - ngwugwu nwere akụrụngwa eji jikwaa onye mbido iSCSI wuru n'ime kernel Linux

Iji nyefee ihe onyonyo site na iSCSI na onye mbido, enwere nhọrọ abụọ maka mmepe nke ihe omume - jiri backend userspace nke ebumnuche ma ọ bụ jikọọ onyonyo dị ka ngwaọrụ mgbochi a na-ahụ anya na sistemụ arụmọrụ wee bupụ ya site na iSCSI. Anyị ga-aga n'ụzọ nke abụọ - backend userspace ka nọ na ọnọdụ “nnwale ma ọ dịchaghị njikere maka iji rụpụta ihe. Na mgbakwunye, enwere ọnyà na ya, nke ị nwere ike ikwu ọtụtụ ihe na (oh egwu!) Na-arụ ụka.

Ọ bụrụ na anyị ejiri nkesa kwụsiri ike nke nwere ogologo nkwado okirikiri, mgbe ahụ kernel anyị nwere bụ ụdị ochie ochie. Dịka ọmụmaatụ, na CentOS7 ọ bụ 3.10.*, na CentOS8 ọ bụ 4.19. Ma anyị nwere mmasị na kernel opekata mpe 5.3 (ma ọ bụ karịa 5.4) na nke ọhụrụ. Gịnị kpatara? N'ihi na na ndabara onyonyo Ceph nwere usoro nhọrọ enyere ndị na-adabaghị na kernel ochie. Nke a pụtara na anyị jikọtara ebe nchekwa na kernel ọhụrụ maka nkesa anyị (dịka ọmụmaatụ, maka CentOS nke a bụ elrepo), wụnye kernel ọhụrụ wee malitegharịa sistemụ iji rụọ ọrụ na kernel ọhụrụ:

  • Jikọọ na onye nleba anya ahọpụtara maka nnwale ahụ
  • Anyị na-ejikọta elrepo repositories dị ka ntuziaka si dị - elrepo.org/tiki/tiki-index.php
  • Wụnye kernel: yum -y —enablerepo=elrepo-kernel tinye kernel-ml
  • Tinyegharịa ihe nkesa ahụ na ihe nleba anya (anyị nwere nlekota atọ, nri?)

Ijikọ onyonyo dị ka ngwaọrụ ngọngọ

# rbd map mypool/myimage
/dev/rbd0

Naanị ihe fọdụrụ bụ ịhazi ebumnuche. Na ihe atụ a, m ga-ahazi lekwasịrị anya na nke a na-akpọ. ọnọdụ ngosi - na-enweghị nkwenye, anya na ịnweta onye ọ bụla. N'ebe a na-emepụta ihe, ọ ga-abụ na ị ga-achọ ịhazi njirimara - mana nke ahụ abaghị uru maka mmega ahụ maka ihe ọchị taa.

Mepụta azụ azụ aha disk1 jikọtara ya na faịlụ /dev/rbd/mypool/myage. Faịlụ akọwapụtara bụ njikọ ihe atụ nke udev daemon mebere na-akpaghị aka na /dev/rbd0. Anyị na-eji njikọ ihe atụ n'ihi na aha ngwaọrụ rbd nwere ike ịgbanwe dabere n'usoro ejikọrọ ihe oyiyi Ceph na onye ọbịa.

Mepụta azụ azụ:

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

Mepụta ebumnuche iSCSI:

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

Anyị jikọtara azụ azụ ka Lun na ebumnuche:

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

Ka anyị hazie ebumnuche maka ọnọdụ ngosi:

# 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

Chekwa nhazi ahụ:

# targetcli saveconfig

Na-enyocha ịdị adị nke ebumnuche:

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

Anyị jikọtara ebumnuche:

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

Ọ bụrụ na ịmere ihe niile nke ọma, diski ọhụrụ ga-apụta na sava ahụ, nke dị ka ngwaọrụ SCSI, mana n'ezie bụ onyonyo sitere na Ceph, enwetara site na ebumnuche iSCSI. Iji zere nsogbu buut, ọ ka mma iwepu diski ejikọrọ na ebumnuche achọpụtara site na onye mbido mpaghara:

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

Naanị ihe fọdụrụ bụ ịnọgide na-ahazi nhazi ahụ ka ejikọta ya na ihe oyiyi ahụ na-akpaghị aka na, mgbe njikọ gasịrị, a na-ekewa ihe mgbaru ọsọ ahụ. Ịmalite ebumnuche nwere usoro abụọ - ijikọ RBD na ịmalite ebumnuche.

Nke mbụ, ka anyị hazie njikọ akpaka nke onyonyo RBD na onye ọbịa. Emere nke a site na ịgbakwunye ahịrị ndị a na faịlụ /etc/ceph/rbdmap:

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

Iweghachi nhazi ebumnuche bụ ntakịrị mgbagwoju anya - anyị kwesịrị ide otu maka sistemu nke ga-eweghachi nhazi ahụ:

# 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

Nnwale ikpeazụ bụ ịmalitegharị nyocha anyị ọzọ (ọ bụzi ebumnuche iSCSI). Ekwesiri iburu n'uche na ọ bụrụ na anyị ewepụghị nchekwa data onye mmalite na iwu ahụ iscsiadm -n discoverydb -o ihichapụ ... ị nwere ike nweta ihe nkesa na-adịghị ebu ma ọ bụ were ogologo oge ibu.

Kedu ihe fọdụrụ?

Hazie onye mbido na sava ebe anyị chọrọ izipu ebumnuche.

Kedu otu esi achọpụta nnabata mmejọ nke ebumnuche anyị?

Ị nwere ike ịhazi ebumnuche ndị ọzọ na nlekota ndị ọzọ wee guzobe multipath (vmware ga-aghọta nke a ma rụọ ọrụ, Hyper-V agaghị aghọta - ọ chọrọ mkpọchi SCSI). Ebe onye ahịa Ceph sitere na kernel anaghị eji caching, nke a nwere ike ịrụ ọrụ nke ọma. Ma ọ bụ nhọrọ ọzọ bụ ịmepụta ụyọkọ akụrụngwa nke akụrụngwa atọ - adreesị IP raara onwe ya nye na ọrụ rbdmap na scsi-target, wee jikwaa akụrụngwa a site na ngwa nchịkọta mkpokọta (onye kwuru na onye na-eme ngwa ngwa?)

Kama ịkọwa okwu

Dị ka o doro anya, isiokwu a bụ ntakịrị ihe ọchị - mana n'ime ya agbalịrị m "ngwa ngwa na ihe atụ" tụlee ọtụtụ isiokwu ndị a ma ama n'otu oge - iSCSI lekwasịrị anya, nke nwere ike ọ gaghị ebupụ ihe oyiyi Ceph - mana dịka ọmụmaatụ, Mbupụ mpịakọta LVM, ihe ndabere nke ịrụ ọrụ na onye mbido iSCSI (otu esi enyocha ebumnuche, otu esi ejikọ na ebumnuche, kwụpụ, hichapụ ntinye ebumnuche na nchekwa data), na-ede otu nke gị maka sistemu na ụfọdụ ndị ọzọ.

Enwere m olileanya na ọbụlagodi na ị naghị emeghachi nnwale a dum, ma ọ dịkarịa ala ihe dị n'isiokwu a ga-abara gị uru.

isi: www.habr.com

Tinye a comment