Suġġerimenti u tricks biex taħdem ma' Ceph fi proġetti impenjattivi
Meta tuża Ceph bħala ħażna tan-netwerk fi proġetti b'tagħbijiet differenti, nistgħu niltaqgħu ma 'diversi kompiti li mal-ewwel daqqa t'għajn ma jidhrux sempliċi jew trivjali. Pereżempju:
migrazzjoni tad-dejta minn Ceph l-antik għal waħda ġdida b'użu parzjali ta 'servers preċedenti fil-cluster il-ġdid;
Nittrattaw problemi bħal dawn, aħna qed iħabbtu wiċċna mal-ħtieġa li tneħħi b'mod korrett l-OSD mingħajr ma nitilfu d-dejta, li hija speċjalment importanti meta nittrattaw ammonti kbar ta 'dejta. Dan se jiġi diskuss fl-artiklu.
Il-metodi deskritti hawn taħt huma rilevanti għal kwalunkwe verżjoni ta' Ceph. Barra minn hekk, se jitqies il-fatt li Ceph jista 'jaħżen ammont kbir ta' dejta: biex jiġi evitat it-telf tad-dejta u problemi oħra, xi azzjonijiet se "jinqasmu" f'diversi oħrajn.
Prefazju dwar l-OSD
Peress li tnejn mit-tliet riċetti diskussi huma ddedikati għall-OSD (Oġġett Ħażna Daemon), qabel ma tgħaddas fil-parti prattika - fil-qosor dwar x'inhu f'Ceph u għaliex huwa daqshekk importanti.
L-ewwelnett, għandu jingħad li l-cluster Ceph kollu jikkonsisti f'ħafna OSDs. Iktar ma jkun hemm, iktar ikun kbir il-volum tad-dejta b'xejn f'Ceph. Huwa faċli li tifhem minn hawn funzjoni ewlenija tal-OSD: Taħżen id-dejta tal-oġġett Ceph fuq is-sistemi tal-fajls tan-nodi kollha tal-clusters u tipprovdi aċċess għan-netwerk għaliha (għall-qari, il-kitba, u talbiet oħra).
Fl-istess livell, il-parametri tar-replikazzjoni huma stabbiliti billi jiġu kkupjati oġġetti bejn OSDs differenti. U hawn tista 'tiltaqa' ma 'diversi problemi, li s-soluzzjonijiet għalihom se jiġu diskussi hawn taħt.
Każ Nru 1. Neħħi l-OSD minn Ceph cluster mingħajr ma titlef id-dejta
Il-ħtieġa li jitneħħa l-OSD tista 'tkun ikkawżata billi s-server jitneħħa mill-cluster - pereżempju, biex jiġi sostitwit b'server ieħor - li huwa dak li ġara lilna, li ta lok għall-kitba ta' dan l-artikolu. Għalhekk, l-għan aħħari tal-manipulazzjoni huwa li jiġu estratti l-OSDs u l-mons kollha fuq server partikolari sabiex ikun jista 'jitwaqqaf.
Għall-konvenjenza u biex tiġi evitata sitwazzjoni fejn, waqt li nwettqu kmandi, nagħmlu żball meta nindikaw l-OSD meħtieġ, aħna nissettjaw varjabbli separata, li l-valur tagħha jkun in-numru tal-OSD li għandu jitħassar. Ejja nsejħulha ${ID} — hawn u hawn taħt, tali varjabbli tissostitwixxi n-numru tal-OSD li qed naħdmu miegħu.
Ejja nħarsu lejn il-kundizzjoni qabel ma nibdew ix-xogħol:
root@hv-1 ~ # ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0.46857 root default
-3 0.15619 host hv-1
-5 0.15619 host hv-2
1 ssd 0.15619 osd.1 up 1.00000 1.00000
-7 0.15619 host hv-3
2 ssd 0.15619 osd.2 up 1.00000 1.00000
Biex tibda t-tneħħija tal-OSD, ser ikollok bżonn twettaq bla xkiel reweight fuqha għal żero. B'dan il-mod innaqqsu l-ammont ta 'dejta fl-OSD billi nibbilanċjawha ma' OSDs oħra. Biex tagħmel dan, mexxi l-kmandi li ġejjin:
Ibbilanċjar bla xkiel meħtieġsabiex ma titlef id-data. Dan hu veru speċjalment jekk l-OSD ikun fih ammont kbir ta’ dejta. Biex tiżgura li wara li tesegwixxi l-kmandi reweight kollox mar tajjeb, tista 'tlestiha ceph -s jew f'tieqa tat-terminal separata ceph -w sabiex josservaw il-bidliet f'ħin reali.
Meta l-OSD jitbattal, tista 'tipproċedi bl-operazzjoni standard biex tneħħiha. Biex tagħmel dan, ittrasferixxi l-OSD mixtieq lill-istat down:
ceph osd down osd.${ID}
Ejja "ġbid" l-OSD mill-cluster:
ceph osd out osd.${ID}
Ejja nwaqqfu s-servizz OSD u nneħħu l-partizzjoni tiegħu fl-FS:
Innota: Jekk qed tuża Ceph Luminous verżjoni jew ogħla, allura l-passi tat-tneħħija tal-OSD ta 'hawn fuq jistgħu jitnaqqsu għal żewġ kmandi:
ceph osd out osd.${ID}
ceph osd purge osd.${ID}
Jekk, wara li tlesti l-passi deskritti hawn fuq, tmexxi l-kmand ceph osd tree, allura għandu jkun ċar li fuq is-server fejn sar ix-xogħol m'għadx hemm OSDs li għalihom twettqu l-operazzjonijiet ta 'hawn fuq:
root@hv-1 ~ # ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0.46857 root default
-3 0.15619 host hv-1
-5 0.15619 host hv-2
-7 0.15619 host hv-3
2 ssd 0.15619 osd.2 up 1.00000 1.00000
Tul it-triq, innota li l-istat tal-cluster Ceph se jmur HEALTH_WARN, u se naraw ukoll tnaqqis fin-numru ta 'OSDs u l-ammont ta' spazju disponibbli fuq id-diska.
Dan li ġej se jiddeskrivi l-passi li se jkunu meħtieġa jekk trid twaqqaf kompletament is-server u, għaldaqstant, tneħħih minn Ceph. F'dan il-każ, huwa importanti li tiftakar li Qabel ma tagħlaq is-server, trid tneħħi l-OSDs kollha fuq dan is-server.
Jekk ma jibqax aktar OSDs fuq dan is-server, imbagħad wara li tneħħihom trid teskludi s-server mill-mappa OSD hv-2billi tħaddem il-kmand li ġej:
ceph osd crush rm hv-2
Ħassar mon mis-server hv-2billi tħaddem il-kmand hawn taħt fuq server ieħor (jiġifieri f'dan il-każ, fuq hv-1):
ceph-deploy mon destroy hv-2
Wara dan, tista 'twaqqaf is-server u tibda azzjonijiet sussegwenti (skjerament mill-ġdid, eċċ.).
Każ Nru 2. Distribuzzjoni ta 'spazju tad-diska fi cluster Ceph diġà maħluq
Nibda t-tieni storja bi prefazju dwar PG (Gruppi ta' Pjazzament). Ir-rwol ewlieni ta 'PG f'Ceph huwa primarjament li jaggrega oġġetti Ceph u jirreplikahom aktar f'OSD. Il-formula li biha tista' tikkalkula l-ammont meħtieġ ta' PG tinsab fiha sezzjoni rilevanti Dokumentazzjoni Ceph. Din il-kwistjoni hija diskussa wkoll hemmhekk b'eżempji speċifiċi.
Allura: waħda mill-problemi komuni meta tuża Ceph hija n-numru żbilanċjat ta 'OSD u PG bejn pools f'Ceph.
L-ewwelnett, minħabba dan, tista 'tqum sitwazzjoni meta jkunu speċifikati wisq PGs f'ġabra żgħira, li essenzjalment huwa użu irrazzjonali tal-ispazju tad-disk fil-cluster. It-tieni, fil-prattika hemm problema aktar serja: id-data overflow f'wieħed mill-OSDs. Dan jinvolvi l-cluster l-ewwel transizzjoni għall-istat HEALTH_WARN, imbagħad HEALTH_ERR. Ir-raġuni għal dan hija li Ceph, meta tikkalkula l-ammont disponibbli ta 'dejta (tista' ssibha billi MAX AVAIL fl-output tal-kmand ceph df għal kull pool separatament) hija bbażata fuq l-ammont ta’ data disponibbli fl-OSD. Jekk ma jkunx hemm biżżejjed spazju f'mill-inqas OSD wieħed, ma tistax tinkiteb aktar dejta sakemm id-dejta titqassam sew fost l-OSDs kollha.
Ta 'min iċċara li dawn il-problemi huma fil-biċċa l-kbira deċiżi fl-istadju tal-konfigurazzjoni tal-cluster Ceph. Waħda mill-għodod li tista 'tuża hija Ceph PGCalc. Bl-għajnuna tagħha, l-ammont meħtieġ ta 'PG huwa kkalkulat b'mod ċar. Madankollu, tista 'wkoll tirrikorri għaliha f'sitwazzjoni fejn il-grupp Ceph diġà ikkonfigurat ħażin. Ta' min niċċara hawnhekk li bħala parti mix-xogħol ta' tiswija x'aktarx ikollok bżonn tnaqqas in-numru ta' PGs, u din il-karatteristika mhix disponibbli f'verżjonijiet eqdem ta' Ceph (deher biss fil-verżjoni Nautilus).
Allura, ejja nimmaġinaw l-istampa li ġejja: il-cluster għandu status HEALTH_WARN minħabba li wieħed mill-OSD jispiċċa bla spazju. Dan ikun indikat bi żball HEALTH_WARN: 1 near full osd. Hawn taħt hemm algoritmu biex toħroġ minn din is-sitwazzjoni.
L-ewwelnett, għandek bżonn tqassam id-dejta disponibbli bejn l-OSDs li jifdal. Aħna diġà għamilna operazzjoni simili fl-ewwel każ, meta aħna "xxotta" n-nodu - bl-unika differenza li issa ser ikollna nnaqqsu ftit reweight. Pereżempju, sa 0.95:
ceph osd reweight osd.${ID} 0.95
Dan jillibera spazju tad-diska fl-OSD u jiffissa l-iżball fis-saħħa ceph. Madankollu, kif diġà ssemma, din il-problema sseħħ prinċipalment minħabba konfigurazzjoni mhux korretta ta 'Ceph fl-istadji inizjali: huwa importanti ħafna li ssir rikonfigurazzjoni sabiex ma tidhirx fil-futur.
Fil-każ partikolari tagħna, kollox niżel għal:
valur għoli wisq replication_count f'wieħed mill-pixxini,
wisq PG f’pool u ftit wisq f’ohra.
Ejja nużaw il-kalkolatur diġà msemmi. Juri biċ-ċar dak li jeħtieġ li jiddaħħal u, fil-prinċipju, m'hemm xejn ikkumplikat. Wara li ssettja l-parametri meħtieġa, aħna jkollna r-rakkomandazzjonijiet li ġejjin:
Innota: Jekk qed twaqqaf cluster Ceph mill-bidu, funzjoni utli oħra tal-kalkolatur hija l-ġenerazzjoni ta 'kmandi li se joħolqu pools mill-bidu bil-parametri speċifikati fit-tabella.
L-aħħar kolonna tgħinek tinnaviga - Għadd PG suġġerit. Fil-każ tagħna, it-tieni wieħed huwa utli wkoll, fejn il-parametru tar-replikazzjoni huwa indikat, peress li ddeċidejna li nibdlu l-multiplikatur tar-replikazzjoni.
Allura, l-ewwel għandek bżonn tibdel il-parametri tar-replikazzjoni - dan ta 'min jagħmel l-ewwel, peress li billi tnaqqas il-multiplikatur, aħna se nilliberaw spazju fuq id-diska. Hekk kif tesegwixxi l-kmand, tinduna li l-ispazju tad-diska disponibbli se jiżdied:
ceph osd pool $pool_name set $replication_size
U wara t-tlestija tiegħu, nibdlu l-valuri tal-parametri pg_num и pgp_num kif ġej:
ceph osd pool set $pool_name pg_num $pg_number
ceph osd pool set $pool_name pgp_num $pg_number
Huwa importanti: irridu nibdlu n-numru ta 'PGs sekwenzjali f'kull pool u ma nbiddlux il-valuri f'pools oħra sakemm jisparixxu t-twissijiet "Redundancy tad-dejta degradata" и "n-numru ta' pgs degradati".
Tista 'wkoll tiċċekkja li kollox mar tajjeb billi tuża l-outputs tal-kmand ceph health detail и ceph -s.
Każ Nru 3. Migrazzjoni ta 'magna virtwali minn LVM għal Ceph RBD
F'sitwazzjoni fejn proġett juża magni virtwali installati fuq servers bare-metal mikrija, ħafna drabi tqum il-kwistjoni tal-ħażna li tollera l-ħsarat. Huwa wkoll mixtieq ħafna li jkun hemm biżżejjed spazju f'din il-ħażna... Sitwazzjoni komuni oħra: hemm magna virtwali b'ħażna lokali fuq is-server u għandek bżonn tespandi d-diska, iżda m'hemm imkien fejn tmur, għax m'hemmx spazju ħieles disk fadal fuq is-server.
Il-problema tista 'tiġi solvuta b'modi differenti - pereżempju, billi temigra għal server ieħor (jekk hemm wieħed) jew billi żżid diski ġodda mas-server. Iżda mhux dejjem ikun possibbli li tagħmel dan, għalhekk il-migrazzjoni minn LVM għal Ceph tista 'tkun soluzzjoni eċċellenti għal din il-problema. Billi nagħżlu din l-għażla, nissimplifikaw ukoll il-proċess ulterjuri ta 'migrazzjoni bejn is-servers, peress li mhux se jkun hemm bżonn li ċċaqlaq il-ħażna lokali minn hypervisor għal ieħor. L-unika qabda hija li jkollok twaqqaf il-VM waqt li jkun qed isir ix-xogħol.
Ir-riċetta li ġejja hija meħuda minn artiklu minn dan il-blog, li l-istruzzjonijiet tagħhom ġew ittestjati fl-azzjoni. Mill-mod, il-metodu ta 'migrazzjoni bla tbatija huwa deskritt hemm ukoll, madankollu, fil-każ tagħna sempliċement ma kienx meħtieġ, għalhekk ma ċċekkjajniex. Jekk dan huwa kritiku għall-proġett tiegħek, aħna nkunu ferħanin li nisimgħu dwar ir-riżultati fil-kummenti.
Ejja ngħaddu għall-parti prattika. Fl-eżempju nużaw virsh u, għaldaqstant, libvirt. L-ewwel, kun żgur li l-grupp Ceph li għalih id-dejta se tiġi emigrata huwa konness ma 'libvirt:
virsh pool-dumpxml $ceph_pool
Id-deskrizzjoni tal-grupp għandu jkun fiha dejta tal-konnessjoni ma’ Ceph b’dejta tal-awtorizzazzjoni.
Il-pass li jmiss huwa li l-immaġni LVM tiġi kkonvertita għal Ceph RBD. Il-ħin tal-eżekuzzjoni jiddependi primarjament fuq id-daqs tal-immaġni:
Wara l-konverżjoni, se tibqa 'immaġni LVM, li tkun utli jekk il-migrazzjoni tal-VM għal RBD tfalli u trid tirreġġa' lura l-bidliet. Barra minn hekk, biex tkun tista 'tneħħi malajr il-bidliet, ejja nagħmlu backup tal-fajl tal-konfigurazzjoni tal-magna virtwali:
... u editja l-oriġinal (vm_name.xml). Ejja nsibu blokk b'deskrizzjoni tad-diska (jibda bil-linja <disk type='file' device='disk'> u tispiċċa bi </disk>) u naqqasha għall-forma li ġejja:
Għall-protokoll source l-indirizz għall-ħażna f'Ceph RBD huwa indikat (dan huwa l-indirizz li jindika l-isem tal-ġabra Ceph u l-immaġni RBD, li ġiet iddeterminata fl-ewwel stadju).
Fil-blokka secret tip huwa indikat ceph, kif ukoll l-UUID tas-sigriet biex tikkonnettja miegħu. Uuid tiegħu jista 'jinstab bl-użu tal-kmand virsh secret-list.
Fil-blokka host indirizzi għall-moniters Ceph huma indikati.
Wara li teditja l-fajl ta 'konfigurazzjoni u tlesti l-konverżjoni LVM għal RBD, tista' tapplika l-fajl ta 'konfigurazzjoni modifikat u tibda l-magna virtwali:
virsh define $vm_name.xml
virsh start $vm_name
Wasal iż-żmien li tivverifika li l-magna virtwali bdiet b'mod korrett: tista 'ssir taf, pereżempju, billi tikkonnettja magħha permezz ta' SSH jew permezz virsh.
Jekk il-magna virtwali qed taħdem b'mod korrett u ma sibtx problemi oħra, allura tista' tħassar l-immaġni LVM li m'għadhiex tintuża:
lvremove main/$vm_image_name
Konklużjoni
Iltqajna mal-każijiet deskritti kollha fil-prattika - nittamaw li l-istruzzjonijiet se jgħinu amministraturi oħra jsolvu problemi simili. Jekk għandek kummenti jew stejjer oħra simili mill-esperjenza tiegħek bl-użu ta’ Ceph, inkunu ferħanin li narawhom fil-kummenti!