Ceph nipasẹ iSCSI - tabi sikiini nigba ti o duro ni a hammock

Njẹ awọn kan wa laarin wa (tsefovodov) ti ko fẹran “aṣeju iwọn-ọjọgbọn”?

Ko ṣeeṣe - bibẹẹkọ a kii yoo ni itusilẹ pẹlu ọja ti o nifẹ pupọ ati ẹrin.

Pupọ ninu awọn ti o ni ipa ninu iṣẹ ti Ceph ti wa kọja ọkan ti kii ṣe loorekoore (tabi dipo paapaa loorekoore) ṣugbọn nigbakan ni ọran ibeere - sisopọ Ceph nipasẹ iSCSI tabi FC. Fun kini? O dara, fun apẹẹrẹ, fi aworan kan silẹ lati Ceph si Windows tabi olupin Solaris ti ko tii ti ni agbara fun idi kan. Tabi ọkan ti o ni agbara, ṣugbọn lilo hypervisor ti ko le ṣe Ceph - ati, bi a ti mọ, ọpọlọpọ wọn wa. Fun apere? O dara, fun apẹẹrẹ, HyperV tabi ESXi, eyiti a lo ni itara. Ati pe ti iṣẹ-ṣiṣe ba dide ti sisẹ aworan kan lati Ceph si ẹrọ alejo, eyi yipada si iṣẹ-ṣiṣe moriwu pupọ.

Nitorina, fun:

  1. iṣupọ Ceph ti nṣiṣẹ tẹlẹ
  2. aworan ti o wa tẹlẹ ti o gbọdọ wa nipasẹ iSCSI
  3. Orukọ adagun omi mypool, aworan orukọ aworan mi

Berè?

Ni akọkọ, nigba ti a ba sọrọ nipa FC tabi iSCSI, a ni iru awọn nkan bii olupilẹṣẹ ati ibi-afẹde. Ifojusi jẹ olupin gangan, olupilẹṣẹ jẹ alabara. Iṣẹ-ṣiṣe wa ni lati fi aworan Ceph silẹ si olupilẹṣẹ pẹlu ipa diẹ. Eyi tumọ si pe a gbọdọ faagun ibi-afẹde. Ṣugbọn nibo, lori kọnputa wo ni?

Ni akoko, ninu iṣupọ Ceph a ni o kere ju paati kan ti adiresi IP rẹ wa titi ati lori eyiti ọkan ninu awọn paati pataki julọ ti Ceph ti tunto, ati pe paati naa jẹ atẹle naa. Nitorinaa, a fi ibi-afẹde iSCSI sori ẹrọ atẹle (ati olupilẹṣẹ ni akoko kanna, o kere ju fun awọn idanwo). Mo ṣe eyi lori CentOS, ṣugbọn ojutu tun dara fun eyikeyi pinpin miiran - o kan nilo lati fi sori ẹrọ awọn idii ni ọna ti o jẹ itẹwọgba ninu pinpin rẹ.

# yum -y install iscsi-initiator-utils targetcli

Kini idi ti awọn idii ti a fi sori ẹrọ?

  • afojusuncli - IwUlO kan fun ṣiṣakoso ibi-afẹde SCSI ti a ṣe sinu ekuro Linux
  • iscsi-initiator-utils - package kan pẹlu awọn ohun elo ti a lo lati ṣakoso olupilẹṣẹ iSCSI ti a ṣe sinu ekuro Linux

Lati le fi aworan kan silẹ nipasẹ iSCSI si olupilẹṣẹ, awọn aṣayan meji wa fun idagbasoke awọn iṣẹlẹ - lo aaye ẹhin aaye olumulo ti ibi-afẹde tabi so aworan naa pọ bi ẹrọ dina ti o han si ẹrọ ṣiṣe ati gbejade nipasẹ iSCSI. A yoo lọ ni ọna keji - ẹhin aaye olumulo tun wa ni ipo “esiperimenta” ati pe ko ti ṣetan fun lilo iṣelọpọ. Ni afikun, awọn ipalara wa pẹlu rẹ, nipa eyiti o le sọrọ pupọ ati (oh ẹru!) jiyan.

Ti a ba lo paapaa pinpin iduroṣinṣin diẹ pẹlu iyipo atilẹyin gigun, lẹhinna ekuro ti a ni jẹ diẹ ninu atijọ, ẹya atijọ. Fun apẹẹrẹ, ni CentOS7 o jẹ 3.10.*, ni CentOS8 o jẹ 4.19. Ati pe a nifẹ si ekuro ti o kere ju 5.3 (tabi dipo 5.4) ati tuntun. Kí nìdí? Nitori nipa aiyipada awọn aworan Ceph ni ṣeto awọn aṣayan ti o ṣiṣẹ ti ko ni ibamu pẹlu awọn kernel agbalagba. Eyi tumọ si pe a so ibi ipamọ kan pọ pẹlu ekuro tuntun fun pinpin wa (fun apẹẹrẹ, fun CentOS eyi ni elrepo), fi ekuro tuntun sori ẹrọ ki o tun atunbere eto lati ṣiṣẹ pẹlu ekuro tuntun:

  • Sopọ si atẹle ti o yan fun idanwo naa
  • A so awọn ibi ipamọ elrepo ni ibamu si awọn itọnisọna - elrepo.org/tiki/tiki-index.php
  • Fi ekuro naa sori ẹrọ: yum -y —enablerepo=elrepo-kernel fi kernel-ml sori ẹrọ
  • Tun atunbere olupin naa pẹlu atẹle (a ni awọn diigi mẹta, otun?)

Nsopọ aworan naa bi ẹrọ idinamọ

# rbd map mypool/myimage
/dev/rbd0

Gbogbo ohun ti o ku ni lati tunto ibi-afẹde naa. Ni apẹẹrẹ yii, Emi yoo tunto ibi-afẹde ninu eyiti a pe. Ipo demo - laisi ìfàṣẹsí, han ati wiwọle si gbogbo eniyan. Ni agbegbe iṣelọpọ, o ṣeeṣe ki o fẹ lati tunto ìfàṣẹsí - ṣugbọn iyẹn ko ni iwọn diẹ fun ere idaraya-fun-fun-fun oni.

Ṣẹda backend ti a npè ni disk1 ni nkan ṣe pẹlu faili /dev/rbd/mypool/myimage. Faili pato jẹ ọna asopọ aami ti a ṣẹda laifọwọyi nipasẹ udev daemon si /dev/rbd0. A lo ọna asopọ aami nitori orukọ ẹrọ rbd le yipada da lori aṣẹ ti awọn aworan Ceph ti sopọ mọ agbalejo naa.

Ṣẹda ẹhin:

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

Ṣẹda ibi-afẹde iSCSI kan:

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

A so ẹhin ẹhin pọ bi Lun si ibi-afẹde:

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

Jẹ ki a tunto ibi-afẹde fun ipo 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

Ṣafipamọ iṣeto naa:

# targetcli saveconfig

Ṣiṣayẹwo wiwa ti ibi-afẹde:

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

A sopọ mọ ibi-afẹde:

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

Ti o ba ṣe ohun gbogbo ni deede, disk tuntun yoo han lori olupin naa, eyiti o dabi ẹrọ SCSI, ṣugbọn jẹ aworan gangan lati Ceph, ti o wọle nipasẹ ibi-afẹde iSCSI kan. Lati yago fun awọn iṣoro bata, o dara lati yọ disiki ti a ti sopọ ati ibi-afẹde ti a rii lati olupilẹṣẹ agbegbe:

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

Gbogbo ohun ti o ku ni lati tẹsiwaju iṣeto ni ki aworan naa ti sopọ laifọwọyi ati, lẹhin asopọ, ibi-afẹde naa jẹ stratified. Ifilọlẹ ibi-afẹde kan ni awọn igbesẹ meji - sisopọ RBD ati ifilọlẹ gangan ibi-afẹde naa.

Ni akọkọ, jẹ ki a tunto asopọ aifọwọyi ti awọn aworan RBD si agbalejo naa. Eyi ni a ṣe nipa fifi awọn laini wọnyi kun si faili /etc/ceph/rbdmap:

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

mimu-pada sipo iṣeto ibi-afẹde jẹ idiju diẹ diẹ sii - a nilo lati kọ ẹyọ kan fun eto ti yoo mu atunto naa pada:

# 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

Idanwo ikẹhin ni lati tun atunbere atẹle wa (o jẹ ibi-afẹde iSCSI ni bayi). O yẹ ki o ṣe akiyesi pe ti a ko ba ti pa data data olupilẹṣẹ kuro pẹlu aṣẹ naa iscsiadm -n discoverydb -o parẹ... o le pari pẹlu olupin ti ko ṣe fifuye tabi gba akoko pipẹ lati fifuye.

Kini o ku?

Ṣe atunto olupilẹṣẹ lori olupin nibiti a fẹ fi ibi-afẹde naa ranṣẹ.

Bawo ni a ṣe le rii daju ifarada aṣiṣe ti ibi-afẹde wa?

Bakanna o le tunto awọn ibi-afẹde lori awọn diigi miiran ati ṣeto multipath (vmware yoo loye eyi ati paapaa ṣiṣẹ, Hyper-V kii yoo loye - o nilo awọn titiipa SCSI). Niwọn igba ti alabara Ceph lati ekuro ko lo caching, eyi jẹ iṣẹ ṣiṣe pupọ. Tabi aṣayan miiran ni lati ṣẹda awọn orisun iṣupọ kan ti awọn paati mẹta - adiresi IP ibi-afẹde kan ti a ṣe iyasọtọ ati rbdmap ati awọn iṣẹ ibi-afẹde scsi, ati ṣakoso awọn orisun yii nipasẹ awọn irinṣẹ ikojọpọ (ẹniti o sọ apilẹṣẹ?)

Dipo ti ọrọ lẹhin

Gẹgẹbi o ti han gbangba, nkan yii jẹ awada diẹ - ṣugbọn ninu rẹ Mo gbiyanju lati “ni iyara ati pẹlu awọn apẹẹrẹ” gbero ọpọlọpọ awọn akọle olokiki olokiki ni akoko kanna - ibi-afẹde iSCSI, eyiti o le ma ṣe okeere awọn aworan Ceph dandan - ṣugbọn fun apẹẹrẹ, Awọn ipele LVM okeere, awọn ipilẹ ti ṣiṣẹ pẹlu olupilẹṣẹ iSCSI (bii o ṣe le ṣayẹwo ibi-afẹde kan, bii o ṣe le sopọ si ibi-afẹde kan, ge asopọ, paarẹ titẹsi ibi-afẹde kan lati ibi ipamọ data), kikọ apakan tirẹ fun systemd ati diẹ ninu awọn miiran

Mo nireti pe paapaa ti o ko ba tun gbogbo idanwo yii ṣe ni kikun, o kere ju nkankan lati inu nkan yii yoo wulo fun ọ.

orisun: www.habr.com

Fi ọrọìwòye kun