Ceph via iSCSI - atanapi ski bari nangtung dina ayunan

Naha aya diantara urang (tsefovodov) anu henteu resep "ekstrim profésional"?

Teu mungkin - upami henteu, urang moal bakal tumbling sareng produk anu pikaresepeun sareng lucu ieu.

Loba jalma anu aub dina operasi Ceph geus datang di sakuliah salah teu pisan sering (atawa rada malah pisan jarang) tapi kadang dina kasus paménta - nyambungkeun Ceph via iSCSI atanapi FC. Kanggo naon? Nya, contona, kirimkeun gambar ti Ceph ka server Windows atanapi Solaris anu henteu acan virtualisasi pikeun sababaraha alesan. Atawa hiji virtualized, tapi ngagunakeun hypervisor nu teu bisa ngalakukeun Ceph - na, sakumaha urang terang, aya nyatu aranjeunna. Salaku conto? Nya, contona, HyperV atanapi ESXi, anu aktip dianggo. Sareng upami aya tugas pikeun ngalayanan gambar ti Ceph ka mesin tamu, ieu janten tugas anu pikaresepeun pisan.

Ku kituna, dibikeun:

  1. hiji geus ngajalankeun Ceph klaster
  2. hiji gambar geus aya nu kudu dilayanan via iSCSI
  3. Ngaran kolam renang mypool, ngaran gambar gambar abdi

Mimiti?

Anu mimiti, nalika urang ngobrol ngeunaan FC atanapi iSCSI, urang gaduh éntitas sapertos inisiator sareng target. Target saleresna mangrupikeun server, inisiator mangrupikeun klien. Tugas urang nyaéta ngalebetkeun gambar Ceph ka inisiator kalayan usaha minimal. Ieu hartosna urang kedah ngalegaan target. Tapi dimana, dina komputer naon?

Untungna, dina klaster Ceph urang boga sahanteuna hiji komponén anu alamat IP dibereskeun na on nu salah sahiji komponén pangpentingna Ceph geus ngonpigurasi, sarta komponén éta monitor. Sasuai, urang masang target iSCSI dina monitor (sareng initor dina waktos anu sami, sahenteuna pikeun tés). Kuring ngalakukeun ieu dina CentOS, tapi solusina ogé cocog pikeun distribusi anu sanés - anjeun ngan ukur kedah masang bungkusan ku cara anu ditampi dina distribusi anjeun.

# yum -y install iscsi-initiator-utils targetcli

Naon tujuan tina bungkusan anu dipasang?

  • targetcli - utilitas pikeun ngatur udagan SCSI diwangun kana kernel Linux
  • iscsi-initiator-utils - pakét sareng utilitas anu dianggo pikeun ngatur inisiator iSCSI diwangun kana kernel Linux

Dina raraga ngalebetkeun hiji gambar via iSCSI mun initiator nu, aya dua pilihan pikeun ngembangkeun acara - ngagunakeun backend userspace tina udagan atawa sambungkeun gambar salaku alat block katempo ku sistem operasi sarta ngekspor eta via iSCSI. Urang bakal jalan anu kadua - backend userspace masih dina kaayaan "ékspérimén" jeung rada teu siap pikeun pamakéan produktif. Sajaba ti éta, aya pitfalls kalawan eta, ngeunaan nu bisa loba ngobrol jeung (oh horor!) ngajawab.

Upami urang nganggo distribusi anu rada stabil sareng siklus dukungan anu panjang, teras kernel anu urang gaduh sababaraha versi kuno. Contona, dina CentOS7 éta 3.10.*, dina CentOS8 éta 4.19. Sarta kami museurkeun kernel a sahanteuna 5.3 (atawa rada 5.4) sarta leuwih anyar. Naha? Kusabab sacara standar gambar Ceph gaduh sakumpulan pilihan anu diaktipkeun anu henteu cocog sareng kernels anu langkung lami. Ieu ngandung harti yén urang nyambungkeun gudang sareng kernel anyar pikeun distribusi urang (contona, pikeun CentOS ieu elrepo), pasang kernel énggal sareng reboot sistem pikeun damel sareng kernel énggal:

  • Sambungkeun ka monitor nu dipilih pikeun percobaan
  • Kami nyambungkeun repositori elrepo numutkeun petunjuk - elrepo.org/tiki/tiki-index.php
  • Pasang kernel: yum -y —enablerepo=elrepo-kernel install kernel-ml
  • Reboot server nganggo monitor (urang gaduh tilu monitor, leres?)

Nyambungkeun gambar salaku alat block

# rbd map mypool/myimage
/dev/rbd0

Sadaya anu tetep nyaéta pikeun ngonpigurasikeun target. Dina conto ieu, kuring baris ngonpigurasikeun udagan dina disebut. modeu demo - tanpa auténtikasi, katingali sareng tiasa diaksés ku sadayana. Dina lingkungan produksi, anjeun kamungkinan bakal hoyong ngonpigurasikeun auténtikasi - tapi éta rada kaluar-of-wengkuan pikeun latihan ngan-for-fun ayeuna.

Jieun backend ngaranna disk1 pakait sareng file / dev / rbd / mypool / myimage. Berkas anu ditetepkeun mangrupikeun tautan simbolis anu otomatis diciptakeun ku daemon udev ka /dev/rbd0. Kami nganggo tautan simbolis sabab nami alat rbd tiasa robih gumantung kana urutan dimana gambar Ceph disambungkeun ka host.

Jieun backend:

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

Jieun udagan iSCSI:

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

Urang sambungkeun backend salaku LUN ka udagan:

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

Hayu urang ngonpigurasikeun target pikeun mode 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

Simpen konfigurasi:

# targetcli saveconfig

Mariksa ayana udagan:

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

Urang sambungkeun 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.

Lamun ngalakukeun sagalana neuleu, bakal disk anyar muncul dina server, nu Sigana mah alat SCSI, tapi sabenerna mangrupa gambar ti Ceph, diaksés ngaliwatan hiji udagan iSCSI. Pikeun ngahindarkeun masalah boot, langkung saé miceun disk anu disambungkeun sareng target anu dideteksi tina inisiator lokal:

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

Sadaya anu tetep nyaéta pikeun terus-terusan konfigurasi supados gambar disambungkeun sacara otomatis sareng, saatos sambungan, targétna stratified. Ngaluncurkeun udagan diwangun ku dua léngkah - ngahubungkeun RBD sareng leres-leres ngaluncurkeun udagan.

Mimiti, hayu urang ngonpigurasikeun sambungan otomatis gambar RBD ka host. Hal ieu dilakukeun ku nambahkeun garis handap kana file /etc/ceph/rbdmap:

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

Malikkeun konfigurasi targét rada rumit - urang kedah nyerat unit pikeun systemd anu bakal mulangkeun konfigurasi:

# 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

Tes ahir nyaéta reboot monitor urang deui (ayeuna mangrupikeun target iSCSI). Ieu kudu dicatet yén lamun urang geus teu diberesihan database inisiator urang jeung paréntah iscsiadm -n discoverydb -o ngahapus ... Anjeun bisa ngeureunkeun nepi ka server nu teu muka atawa nyokot lila pikeun muka.

Naon deui?

Konpigurasikeun inisiator dina server dimana urang hoyong ngirim udagan.

Kumaha mastikeun kasabaran kasalahan tina udagan urang?

Anjeun ogé tiasa ngonpigurasikeun target dina monitor anu sanés sareng nyetél multipath (vmware bakal ngartos ieu sareng tiasa dianggo, Hyper-V moal ngartos - peryogi konci SCSI). Kusabab klien Ceph tina kernel henteu nganggo cache, ieu tiasa dianggo. Atawa pilihan séjén nyaéta nyieun sumberdaya klaster tina tilu komponén - alamat IP target dedicated na rbdmap sarta jasa scsi-target, sarta ngatur sumberdaya ieu ngaliwatan parabot clustering (saha ceuk pacemaker?)

tinimbang hiji epilog

Sakumaha anu jelas, tulisan ieu sakedik guyonan - tapi di jerona kuring nyobian "gancang sareng conto" mertimbangkeun sababaraha topik anu cukup populér dina waktos anu sami - target iSCSI, anu henteu kedah ngékspor gambar Ceph - tapi contona. volume ékspor LVM, dasar gawé bareng hiji inisiator iSCSI (kumaha carana nyeken udagan, kumaha nyambungkeun ka udagan, megatkeun sambungan, ngahapus hiji entri target tina database), nulis Unit sorangan pikeun systemd jeung sababaraha batur.

Abdi ngarepkeun sanaos anjeun henteu ngulang sadayana percobaan ieu sacara lengkep, sahenteuna hal tina tulisan ieu bakal mangpaat pikeun anjeun.

sumber: www.habr.com

Tambahkeun komentar