Ceph ta iSCSI - ko kuma yin ski yayin da yake tsaye a cikin hamma

Shin akwai waɗanda a cikinmu (tsefovodov) waɗanda ba sa son "masu ƙwarewa"?

Ba zai yuwu ba - in ba haka ba ba za mu kasance cikin tsaka mai wuya da wannan samfurin mai ban sha'awa da ban dariya ba.

Yawancin waɗanda ke da hannu a cikin aikin Ceph sun ci karo da wanda ba sau da yawa ba (ko ma ma da yawa) amma wani lokacin a cikin buƙatun yanayin - haɗa Ceph ta iSCSI ko FC. Don me? Da kyau, alal misali, ƙaddamar da hoto daga Ceph zuwa uwar garken Windows ko Solaris wanda har yanzu ba a daidaita shi ba saboda wasu dalilai. Ko kuma wanda aka sani, amma ta amfani da hypervisor wanda ba zai iya yin Ceph ba - kuma, kamar yadda muka sani, akwai su da yawa. Misali? To, misali, HyperV ko ESXi, waɗanda ake amfani da su sosai. Kuma idan aikin ya taso na hidimar hoto daga Ceph zuwa na'urar baƙo, wannan ya zama aiki mai ban sha'awa.

Don haka, an ba:

  1. gungu na Ceph yana gudana
  2. Hoton da ya riga ya kasance wanda dole ne a yi aiki ta iSCSI
  3. Sunan tafkin mypool, sunan hoto myimage

Fara?

Da farko, lokacin da muke magana game da FC ko iSCSI, muna da irin waɗannan ƙungiyoyi kamar masu farawa da manufa. Target haƙiƙa uwar garken ne, mai ƙaddamarwa abokin ciniki ne. Ayyukanmu shine ƙaddamar da hoton Ceph ga mai farawa tare da ƙaramin ƙoƙari. Wannan yana nufin dole ne mu fadada manufa. Amma a ina, akan wace kwamfuta?

Abin farin ciki, a cikin gungun Ceph muna da aƙalla sassa guda ɗaya wanda adireshin IP ɗinsa aka gyara kuma akan wanda aka saita ɗayan mahimman abubuwan Ceph, kuma wannan ɓangaren shine mai duba. Saboda haka, muna shigar da manufa iSCSI akan mai saka idanu (da kuma mai gabatarwa a lokaci guda, aƙalla don gwaje-gwaje). Na yi wannan akan CentOS, amma mafita kuma ta dace da kowane rarraba - kawai kuna buƙatar shigar da fakitin ta hanyar da aka yarda da ita a cikin rarraba ku.

# yum -y install iscsi-initiator-utils targetcli

Menene manufar shigar da kunshin?

  • manufacli - kayan aiki don sarrafa maƙasudin SCSI da aka gina a cikin kernel na Linux
  • iscsi-initiator-utils - kunshin tare da kayan aiki da ake amfani da su don sarrafa mai ƙaddamar da iSCSI da aka gina a cikin kwayayen Linux

Don ƙaddamar da hoto ta iSCSI ga mai ƙaddamarwa, akwai zaɓuɓɓuka guda biyu don haɓaka abubuwan da suka faru - yi amfani da bayanan bayanan mai amfani na manufa ko haɗa hoton azaman na'urar toshe da ke bayyane ga tsarin aiki kuma fitarwa ta iSCSI. Za mu bi hanya ta biyu - bayan fage mai amfani har yanzu yana cikin “gwajin” yanayin kuma ba a shirya don amfani mai amfani ba. Bugu da ƙari, akwai matsala tare da shi, game da abin da za ku iya magana da yawa kuma (oh tsoro!) jayayya.

Idan muka yi amfani da ko da ɗan barga rarraba tare da dogon goyon bayan sake zagayowar, sa'an nan kwaya da muke da wani tsoho, tsohon siga. Misali, a cikin CentOS7 shine 3.10.*, a cikin CentOS8 shine 4.19. Kuma muna sha'awar kwaya ta aƙalla 5.3 (ko wajen 5.4) da kuma sabo. Me yasa? Domin ta tsohuwa Hotunan Ceph suna da saitin zaɓuɓɓukan da aka kunna waɗanda basu dace da tsofaffin kernels ba. Wannan yana nufin cewa mun haɗa wurin ajiya tare da sabon kwaya don rarraba mu (misali, na CentOS wannan shine elrepo), shigar da sabon kwaya kuma sake kunna tsarin don aiki tare da sabon kwaya:

  • Haɗa zuwa duban da aka zaɓa don gwaji
  • Muna haɗa wuraren ajiyar elrepo bisa ga umarnin - elrepo.org/tiki/tiki-index.php
  • Shigar da kernel: yum -y —enablerepo=elrepo-kernel shigar da kernel-ml
  • Sake kunna uwar garken tare da mai duba (muna da masu saka idanu guda uku, daidai?)

Haɗa hoton azaman na'urar toshewa

# rbd map mypool/myimage
/dev/rbd0

Duk abin da ya rage shine saita manufa. A cikin wannan misali, zan saita manufa a cikin abin da ake kira. Yanayin demo - ba tare da tantancewa ba, bayyane kuma mai isa ga kowa. A cikin yanayin samarwa, ƙila za ku so ku saita ingantaccen aiki - amma wannan ya ɗan fita daga aikin motsa jiki na yau kawai don nishaɗi.

Ƙirƙiri abin baya mai suna disk1 mai alaƙa da fayil /dev/rbd/mypool/myage. Fayil ɗin da aka ƙayyade shine hanyar haɗin kai ta alama ta udev daemon ta atomatik zuwa /dev/rbd0. Muna amfani da hanyar haɗin yanar gizo na alama saboda sunan na'urar rbd na iya canzawa dangane da tsarin da aka haɗa hotunan Ceph zuwa mai watsa shiri.

Ƙirƙiri abin baya:

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

Ƙirƙirar manufa ta iSCSI:

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

Muna haɗa bangon baya azaman LUN zuwa manufa:

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

Bari mu saita manufa don yanayin 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

Ajiye tsari:

# targetcli saveconfig

Duban samuwar manufa:

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

Muna haɗa manufa:

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

Idan kun yi komai daidai, sabon faifai zai bayyana akan uwar garken, wanda yayi kama da na'urar SCSI, amma ainihin hoto ne daga Ceph, ana samun dama ta hanyar iSCSI manufa. Don guje wa matsalolin taya, yana da kyau a cire faifan da aka haɗa da abin da aka gano daga mai ƙaddamar da gida:

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

Abin da ya rage shi ne a dage da daidaitawa don a haɗa hoton ta atomatik kuma, bayan haɗin, an ƙetare makasudin. Ƙaddamar da manufa ta ƙunshi matakai biyu - haɗa RBD da ƙaddamar da manufa.

Da farko, bari mu saita haɗin kai tsaye na hotunan RBD zuwa mai masaukin baki. Ana yin wannan ta ƙara layin masu zuwa zuwa fayil ɗin /etc/ceph/rbdmap:

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

Mayar da saitin manufa ya ɗan fi rikitarwa - muna buƙatar rubuta naúrar don tsarin da zai dawo da tsarin:

# 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

Gwajin ƙarshe shine sake kunna mai duba mu (yanzu shine manufa iSCSI). Ya kamata a lura cewa idan ba mu share bayanan mai farawa tare da umarnin ba iscsiadm -n discoverydb -o share... za ka iya ƙarewa da uwar garken da ba ya lodi ko ɗaukar lokaci mai tsawo don lodawa.

Me ya rage?

Sanya mai farawa akan uwar garken inda muke son aika manufa.

Ta yaya za a tabbatar da haƙurin kuskuren manufa?

Hakanan zaka iya saita manufa akan sauran masu saka idanu kuma saita multipath (vmware zai fahimci wannan har ma yayi aiki, Hyper-V ba zai fahimta ba - yana buƙatar makullin SCSI). Tun da abokin ciniki na Ceph daga kernel baya amfani da caching, wannan yana da sauƙin aiki. Ko kuma wani zaɓi shine ƙirƙirar albarkatun gungu na abubuwa uku - adireshi na IP mai sadaukarwa da rbdmap da ayyukan scsi-target, da sarrafa wannan albarkatu ta hanyar kayan aikin tari (wanda ya ce mai bugun zuciya?)

Maimakon kalmomin bayanan

Kamar yadda a bayyane yake, wannan labarin ɗan wasa ne - amma a ciki na yi ƙoƙarin "sauri kuma tare da misalai" la'akari da batutuwan da suka shahara sosai a lokaci guda - iSCSI manufa, wanda ba lallai ba ne a fitar da hotunan Ceph - amma alal misali, Fitar da kundin LVM, abubuwan da ake buƙata na aiki tare da mai ƙaddamar da iSCSI (yadda ake bincika manufa, yadda ake haɗawa da manufa, cire haɗin kai, share shigarwar manufa daga bayanan bayanai), rubuta naúrar ku don tsarin da wasu wasu.

Ina fatan cewa ko da ba ku sake maimaita wannan gwajin gaba ɗaya ba, aƙalla wani abu daga wannan labarin zai kasance da amfani a gare ku.

source: www.habr.com

Add a comment