Kas meie seas (cephide kasutajad) on kedagi, kes ei armasta "professionaalset ekstreemi"?
TĂ”enĂ€oliselt mitte â muidu me ei tegeleks selle erakordselt huvitava ja lĂ”busa tootega.
Paljud neist, kes on tegelenud Cephi haldamisega, on kokku puutunud ĂŒhe mitte kuigi sagedase (pigem isegi vĂ€ga harva esineva) kuid mĂ”nikord nĂ”utud juhtumiga â Cephi ĂŒhendamine iSCSI vĂ”i FC kaudu. Miks? No nĂ€iteks, et edastada pilt Cephist veel virtualiseerimata Windowsi vĂ”i Solaris serverisse. VĂ”i virtualiseeritud serverisse, kuid hyperviisoriga, mis Cephi ei toeta â neid on, nagu me teame, piisavalt. NĂ€iteks? No nĂ€iteks HyperV vĂ”i ESXi, mida aktiivselt kasutatakse. Ja kui tekib ĂŒlesanne edastada pilt Cephist kĂŒlgmisse masinasse, muutub see ĂŒsna huvitavaks ĂŒlesandeks.
Nii, antud on:
- juba töötav Cephi klaster
- juba olemasolev pilt, mille tuleb edastada iSCSI kaudu
- Pula nimi mypool, pildi nimi myimage
Alustame?
Esiteks, kui me rÀÀgime FC-st vĂ”i iSCSI-st, siis on meil sellised mĂ”isted nagu algataja (initiator) ja sihtkoht (target). Target on tegelikult server, initiator â klient. Meie ĂŒlesanne on minimaalse tööjĂ”ukulu korral edastada Cephi pilt algatajale. See tĂ€hendab, et peame seadistama targeti. Kuid kus, millises arvutis?
Ănneks on Cephi klastris meil vĂ€hemalt ĂŒks komponent, mille IP-aadress on fikseeritud ja millel on konfigureeritud ĂŒks Cephi kĂ”ige olulisemaid komponente, ja see komponent on monitor. SeetĂ”ttu installime monitorile iSCSI targeti (ja algataja vĂ€hemalt testide jaoks). Ma tegin seda CentOS-is, kuid iga teise distributsiooni jaoks sobib lahendus samuti â piisab, kui installida paketid viisil, mis on teie distributsioonile vastuvĂ”etav.
# yum -y install iscsi-initiator-utils targetcli
Mis on installitavate pakettide eesmÀrk?
- targetcli â utiliit Linuxi tuumasse integreeritud SCSI-targeti haldamiseks
- iscsi-initiator-utils â pakett utiliite, mida kasutatakse samuti Linuxi tuumasse integreeritud iSCSI algataja haldamiseks
iSCSI kaudu pildi esitamiseks algatajaga on kaks vĂ”imalust: kasutada kasutusruumi taustaprogrammi sihti vĂ”i ĂŒhendada pilt blokiseadmeks, mis on operatsioonisĂŒsteemile nĂ€htav ja eksportida see iSCSI kaudu. Me valime teise variandi â kasutusruumi taustaprogramm on veel «eksperimentaalses» seisundis ja tootmiseks veidi ebamugav. Lisaks on sellega mitmeid takistusi, millest saab palju rÀÀkida ning (oh Ă”udust!) vaidleda.
Kui kasutame stabiilset ja pikka aega toetatud distributsiooni, siis on meil tuum mingisuguse iidse versiooniga. NĂ€iteks CentOS7 puhul on see 3.10.*, CentOS8 puhul 4.19. Meid huvitab vĂ€hemalt 5.3 (ja tĂ”enĂ€oliselt 5.4) vĂ”i uuem tuum. Miks? Sest vaikimisi on Ceph'i piltidel aktiivsed valikute komplektid, mis ei ĂŒhildu vanade tuumadega. See tĂ€hendab, et peame lisama oma distributsioonile uue tuuma reposi (nĂ€iteks CentOS jaoks elrepo), installima uue tuuma ja taaskĂ€ivitama sĂŒsteemi, et töötada uue tuumaga:
- Ăhendume valitud katse monitoriga
- Ăhendame elrepo reposid juhendi jĂ€rgi â
- Installeerime tuuma: yum -y --enablerepo=elrepo-kernel install kernel-ml
- TaaskÀivitame monitoriga serveri (meil on ju kolm monitori, eks?)
Ăhendame pildi blokiseadmeks
# rbd kaart mypool/myimage
/dev/rbd0
JÀÀb vaid sihtmĂ€rki konfigureerida. Selles nĂ€ites konfigureerin sihtmĂ€rgi nn demo-reĆŸiimis â autentimiseta, nĂ€htav ja kĂ”igile kergesti ligipÀÀsetav. Tootmiskeskkonnas sooviksite tĂ”enĂ€oliselt konfigureerida autentimise â aga see on tĂ€na veidi off-topic lĂ”busate katsete kontekstis.
Loome tausta nimega disk1, mis on seotud failiga /dev/rbd/mypool/myimage. Antud fail on automaatselt loodud demon udev sĂŒmboolne link /dev/rbd0. Kasutame just sĂŒmboolset linki, kuna rbd-seadmise nimi vĂ”ib muutuda sĂ”ltuvalt Ceph piltide ĂŒhendamise jĂ€rjekorrast hostiga.
Loome tausta:
# targetcli /backstores/block create disk1 /dev/rbd/mypool/myimage
Loome iSCSI sihtmÀrgi:
# targetcli /iscsi create iqn.2020-01.demo.ceph:mypool
Ăhendame tausta LUN-ina sihtmĂ€rgiga:
# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/luns create /backstores/block/disk1
Seadistame sihtmĂ€rgi demo-reĆŸiimiks:
# 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
Salvesta konfigureerimine:
# targetcli saveconfig
Kontrollime sihtmÀrgi olemasolu:
# iscsiadm -m discovery -t st -p 127.0.0.1:3260
127.0.0.1:3260,1 iqn.2020-01.demo.ceph:mypool
Ăhendame sihtmĂ€rgi:
# iscsiadm -m node --login
Siss sisse [iface: default, target: iqn.2020-01.demo.ceph:mypool, portal: 127.0.0.1,3260] (mitmed)
Sisse logimine [iface: default, target: iqn.2020-01.demo.ceph:mypool, portal: 127.0.0.1,3260] Ônnestus.
Kui olete kĂ”ik Ă”igesti teinud, siis ilmub serverisse uus ketas, mis nĂ€eb vĂ€lja nagu SCSI-seade, aga tegelikult on see Ceph'i pilt, millele pÀÀseb ligi iSCSI sihtpunkti kaudu. Probleemide vĂ€ltimiseks laadimisel on parem eemaldada ĂŒhendatud ketas ja avastatud sihtpunkt kohalikult algatajatelt:
# iscsiadm -m node --logout
# iscsiadm -m discoverydb -o delete -t st -p 127.0.0.1:3260
KĂŒsimus on nĂŒĂŒd konfiguratsiooni pĂŒsivuses, et pilt ĂŒhenduks automaatselt ja pĂ€rast ĂŒhendamist sihtpunkt kĂ€ivituks. Sihtpunkti kĂ€ivitamine koosneb kahest sammust â RBD ĂŒhendamisest ja sihtpunkti tegelikust kĂ€ivitamisest.
Esmalt konfigureerime RBD piltide automaatse ĂŒhendamise hostiga. Seda tehakse, lisades read faili /etc/ceph/rbdmap:
# cat /etc/ceph/rbdmap
# RbdDevice Parameters
mypool/myimage id=admin
# systemctl enable rbdmap
Sihtpunkti konfiguratsiooni taastamine on veidi keerulisem â peame kirjutama systemd unit'i, mis taastab konfiguratsiooni:
# cat /usr/lib/systemd/system/scsi-target.service
[Unit]
Description=KĂ€ivita iSCSI sihtpunkt
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
LĂ”plik test â taaskĂ€ivitame veel kord meie monitori (mis on nĂŒĂŒd iSCSI sihtpunkt). Tuleb mĂ€rkida, et kui me ei oleks algataja andmebaasi kĂ€suga iscsiadm -n discoverydb -o delete ⊠vĂ”inud saada mittelaadiva vĂ”i pika laadimisega serveri.
Mis on jÀÀnud?
Konfigureerida algataja sellele serverile, kuhu soovime sihtpunkti edastada.
Kuidas tagada meie sihtpunkti talitlushÀirete tÔttu vastupidavus?
Saame sarnaselt konfigureerida sihtpunkte teistel monitoridel ja korraldada multipath'i (vmware mĂ”istab seda ja töötab, Hyper-V ei mĂ”ista â seal on vajalikud SCSI lukud). Kuna Ceph'i klient ei kasuta tuumal töötamisel vahemĂ€lusid, siis on see tĂ€iesti toimiv. VĂ”i teine variant â luua kolmest komponendist klastriteenus â eraldatud IP-aadressid sihtpunkt ja teenused rbdmap ja scsi-target, ning hallata seda ressurssi klastritehaldusvahendiga (kes ĂŒtles pacemaker?)
LÔpetuseks
Kuidas aru saada, et see artikkel on natuke naljakas â aga ma pĂŒĂŒdsin "kiiresti ja nĂ€idete kaudu" kĂ€sitleda samaaegselt mitut ĂŒsna populaarset teemat â iSCSI sihtpunkt, mis ei pea tingimata eksportima Ceph'i pilte â vaid nĂ€iteks eksportima LVM mahtusid, iSCSI algataja töötamise alused (kuidas sihtpunkti skaneerida, sihtpunktiga ĂŒhendada, lahti ĂŒhendada, kustutada kirje sihtpunktist andmebaasis), oma unit'i kirjutamine systemd jaoks ja mĂ”ned muud asjad.
Loodan, et isegi kui te ei kavatse kogu seda katset tÀielikult korrata, on sellest artiklist vÀhemalt mÔned asjad teile kasulikud.
Allikas: habr.com
