Ceph pinaagi sa iSCSI - o pag-ski samtang nagbarog sa duyan

Aduna bay uban kanato (tsefovodov) nga dili ganahan sa "propesyonal nga sobra"?

Dili tingali - kung dili, dili kami maglibog sa kini nga labi ka makapaikag ug kataw-anan nga produkto.

Daghan sa mga nalambigit sa operasyon sa Ceph nakit-an ang usa nga dili kaayo kanunay (o labi pa nga dili kaayo kanunay) apan usahay sa kaso sa panginahanglan - nagkonektar sa Ceph pinaagi sa iSCSI o FC. Para unsa? Aw, pananglitan, isumite ang usa ka imahe gikan sa Ceph sa usa ka Windows o Solaris server nga wala pa ma-virtualize tungod sa pipila ka hinungdan. O usa ka virtualized, apan gamit ang usa ka hypervisor nga dili makahimo sa Ceph - ug, ingon sa nahibal-an namon, adunay daghan niini. Pananglitan? Aw, pananglitan, ang HyperV o ESXi, nga aktibo nga gigamit. Ug kung ang tahas moabut sa pag-alagad sa usa ka imahe gikan sa Ceph ngadto sa usa ka bisita nga makina, kini nahimo nga usa ka kulbahinam nga buluhaton.

Busa, gihatag:

  1. usa na ka nagdagan nga Ceph cluster
  2. usa ka naa na nga imahen nga kinahanglan isilbi pinaagi sa iSCSI
  3. Ngalan sa pool akong pool, ngalan sa hulagway akong hulagway

Magsugod?

Una sa tanan, kung maghisgot kita bahin sa FC o iSCSI, aduna kitay mga entidad sama sa initiator ug target. Ang target sa tinuud usa ka server, ang initiator usa ka kliyente. Ang among tahas mao ang pagsumite sa imahe sa Ceph sa initiator nga adunay gamay nga paningkamot. Kini nagpasabot nga kinahanglan natong palapdan ang target. Apan asa, sa unsa nga kompyuter?

Maayo na lang, sa usa ka cluster sa Ceph kita adunay labing menos usa ka sangkap kansang IP address gitakda ug diin ang usa sa labing hinungdanon nga sangkap sa Ceph gi-configure, ug kana nga sangkap mao ang monitor. Tungod niini, nag-instalar kami og target sa iSCSI sa monitor (ug usa ka initor sa samang higayon, labing menos alang sa mga pagsulay). Gibuhat nako kini sa CentOS, apan ang solusyon angay usab alang sa bisan unsang ubang pag-apod-apod - kinahanglan nimo nga i-install ang mga pakete sa paagi nga madawat sa imong pag-apod-apod.

# yum -y install iscsi-initiator-utils targetcli

Unsa ang katuyoan sa gi-install nga mga pakete?

  • targetcli - usa ka gamit alang sa pagdumala sa target sa SCSI nga gitukod sa Linux kernel
  • iscsi-initiator-utils β€” usa ka pakete nga adunay mga gamit nga gigamit sa pagdumala sa iSCSI initiator nga gitukod sa Linux kernel

Aron sa pagsumite sa usa ka larawan pinaagi sa iSCSI ngadto sa initiator, adunay duha ka mga kapilian alang sa kalamboan sa mga panghitabo - sa paggamit sa userspace backend sa target o ikonektar ang larawan ingon nga block device nga makita sa operating system ug export kini pinaagi sa iSCSI. Moadto kami sa ikaduhang paagi - ang backend sa userspace anaa pa sa usa ka "eksperimento" nga kahimtang ug medyo dili andam alang sa produktibo nga paggamit. Dugang pa, adunay mga lit-ag uban niini, nga mahimo nimong hisgutan ang daghan ug (oh kalisang!) makiglalis.

Kung mogamit kita bisan usa ka medyo lig-on nga pag-apod-apod nga adunay taas nga siklo sa suporta, nan ang kernel nga naa kanato usa ka karaan, karaan nga bersyon. Pananglitan, sa CentOS7 kini 3.10.*, sa CentOS8 kini 4.19. Ug kami interesado sa usa ka kernel nga labing menos 5.3 (o hinoon 5.4) ug mas bag-o. Ngano man? Tungod kay pinaagi sa default ang mga imahe sa Ceph adunay usa ka hugpong sa mga kapilian nga gipalihok nga dili katugma sa mga tigulang nga kernels. Kini nagpasabot nga atong ikonektar ang usa ka repositoryo sa usa ka bag-ong kernel alang sa atong pag-apod-apod (pananglitan, alang sa CentOS kini mao ang elrepo), i-install ang bag-ong kernel ug i-reboot ang sistema aron magtrabaho uban ang bag-ong kernel:

  • Sumpaysumpaya ang monitor nga gipili para sa eksperimento
  • Gikonektar namon ang mga repositoryo sa elrepo sumala sa mga panudlo - elrepo.org/tiki/tiki-index.php
  • I-install ang kernel: yum -y β€”enablerepo=elrepo-kernel install kernel-ml
  • I-reboot ang server gamit ang monitor (adunay tulo ka monitor, di ba?)

Pagkonektar sa hulagway isip block device

# rbd map mypool/myimage
/dev/rbd0

Ang nahabilin mao ang pag-configure sa target. Sa kini nga pananglitan, akong i-configure ang target sa gitawag nga. demo mode - walay authentication, makita ug accessible sa tanan. Sa usa ka palibot sa produksiyon, lagmit gusto nimo nga i-configure ang panghimatuud - apan kana usa ka gamay nga wala’y sakup alang sa karon nga pag-ehersisyo alang sa kalingawan.

Paghimo og backend nga ginganlag disk1 nga nalangkit sa file /dev/rbd/mypool/myimage. Ang espesipikong payl kay simbolikong sumpay nga awtomatikong gihimo sa udev daemon ngadto sa /dev/rbd0. Gigamit namo ang simbolikong sumpay tungod kay ang ngalan sa rbd device mahimong mausab depende sa han-ay diin ang mga hulagway sa Ceph konektado sa host.

Paghimo og backend:

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

Paghimo usa ka target sa iSCSI:

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

Gikonektar namo ang backend isip LUN sa target:

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

Atong i-configure ang target para sa 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

I-save ang configuration:

# targetcli saveconfig

Pagsusi sa presensya sa target:

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

Gikonektar namon ang target:

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

Kung imong gibuhat ang tanan sa husto, usa ka bag-ong disk ang makita sa server, nga morag SCSI device, apan sa pagkatinuod usa ka imahe gikan sa Ceph, nga gi-access pinaagi sa usa ka target sa iSCSI. Aron malikayan ang mga problema sa boot, mas maayo nga tangtangon ang konektado nga disk ug ang nakit-an nga target gikan sa lokal nga initiator:

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

Ang nahabilin mao ang pagpadayon sa pag-configure aron ang imahe awtomatiko nga konektado ug, pagkahuman sa koneksyon, ang target gi-stratified. Ang paglansad sa usa ka target naglangkob sa duha ka mga lakang - pagkonektar sa RBD ug aktwal nga paglansad sa target.

Una, atong i-configure ang awtomatik nga koneksyon sa RBD nga mga imahe sa host. Gihimo kini pinaagi sa pagdugang sa mosunod nga mga linya sa /etc/ceph/rbdmap file:

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

Ang pagpasig-uli sa target nga pagsumpo usa ka gamay nga mas komplikado - kita kinahanglan nga magsulat og usa ka yunit alang sa systemd nga magpasig-uli sa configuration:

# 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

Ang katapusan nga pagsulay mao ang pag-reboot sa among monitor pag-usab (kini karon usa ka target sa iSCSI). Kinahanglan nga hinumdoman nga kung wala pa namon gilimpyohan ang database sa initiator gamit ang mando iscsiadm -n discoverydb -o delete ... mahimo ka nga adunay usa ka server nga wala magkarga o dugay nga makarga.

Unsa na lang?

I-configure ang initiator sa server diin gusto namon ipadala ang target.

Giunsa pagsiguro ang pagtugot sa sayup sa among target?

Mahimo nimong i-configure ang parehas nga mga target sa ubang mga monitor ug i-set up ang multipath (makasabot niini ang vmware ug bisan magtrabaho, dili masabtan sa Hyper-V - nanginahanglan kini mga kandado sa SCSI). Tungod kay ang kliyente sa Ceph gikan sa kernel wala mogamit sa caching, kini mahimo’g magamit. O laing kapilian mao ang paghimo og cluster resource sa tulo ka component - usa ka dedikado nga target IP address ug rbdmap ug scsi-target nga mga serbisyo, ug pagdumala niini nga kahinguhaan pinaagi sa clustering tools (kinsay nag-ingon nga pacemaker?)

Imbis nga bakak

Ingon sa tin-aw, kini nga artikulo usa ka gamay nga komedya - apan niini akong gisulayan nga "dali ug uban ang mga panig-ingnan" ikonsiderar ang daghang mga medyo popular nga mga hilisgutan sa parehas nga oras - target sa iSCSI, nga dili kinahanglan nga i-export ang mga imahe sa Ceph - apan pananglitan, i-export ang mga volume sa LVM, ang mga sukaranan sa pagtrabaho kauban ang usa ka iSCSI initiator ( kung giunsa ang pag-scan sa usa ka target, kung giunsa ang pagkonektar sa usa ka target, pagdiskonekta, pagtangtang sa usa ka target nga entry gikan sa database), pagsulat sa imong kaugalingon nga yunit alang sa systemd ug uban pa

Nanghinaut ko nga bisan kung dili nimo balik-balikon ang tibuuk nga eksperimento, labing menos usa ka butang gikan sa kini nga artikulo mahimong mapuslanon kanimo.

Source: www.habr.com

Idugang sa usa ka comment