Leideanna & cleasanna chun oibriú le Ceph i dtionscadail ghnóthach

Leideanna & cleasanna chun oibriú le Ceph i dtionscadail ghnóthach

Ag baint úsáide as Ceph mar stóráil líonra i dtionscadail le hualaí éagsúla, is féidir linn teacht ar thascanna éagsúla ar an gcéad amharc nach bhfuil cuma simplí nó fánach. Mar shampla:

  • aistriú sonraí ó shean Ceph go ceann nua le húsáid pháirteach as freastalaithe roimhe seo sa bhraisle nua;
  • réiteach ar an bhfadhb a bhaineann le spás diosca a leithdháileadh i Ceph.

Ag déileáil le fadhbanna den sórt sin, táimid ag tabhairt aghaidh ar an ngá a bhaint i gceart an OSD gan chailliúint sonraí, rud atá thar a bheith tábhachtach agus muid ag déileáil le méideanna móra sonraí. Déanfar é seo a phlé san alt.

Tá na modhanna a gcuirtear síos orthu thíos ábhartha d’aon leagan de Ceph. Ina theannta sin, cuirfear san áireamh gur féidir le Ceph cuid mhór sonraí a stóráil: chun caillteanas sonraí agus fadhbanna eile a chosc, déanfar roinnt gníomhartha a “dheighilt” i go leor eile.

Réamhfhocal faoi OSD

Ós rud é go bhfuil dhá cheann de na trí oidis a pléadh tiomnaithe do OSD (Deamhan Stórála Rudaí), sula tumfaidh tú isteach sa chuid phraiticiúil - go hachomair faoina bhfuil i gCeif agus cén fáth a bhfuil sé chomh tábhachtach sin.

Ar an gcéad dul síos, ba chóir a rá go bhfuil go leor OSDanna sa bhraisle Ceph ar fad. Dá mhéad atá ann, is mó an méid sonraí saor in aisce i Ceph. Tá sé éasca a thuiscint as seo príomhfheidhm OSD: Stórálann sé sonraí oibiachta Ceph ar chórais comhaid gach nóid bhraisle agus soláthraíonn sé rochtain líonra air (le haghaidh léamh, scríobh, agus iarratais eile).

Ag an leibhéal céanna, socraítear paraiméadair mhacasamhlú trí rudaí a chóipeáil idir OSDanna éagsúla. Agus anseo is féidir leat teacht ar fhadhbanna éagsúla, na réitigh a bheidh le plé thíos.

Cás Uimh. 1. Bain go sábháilte OSD ó bhraisle Ceph gan sonraí a chailliúint

D'fhéadfadh an gá atá leis an OSD a bhaint a bheith mar chúis leis an bhfreastalaí a bhaint den bhraisle - mar shampla, freastalaí eile a chur ina ionad - agus is é sin an méid a tharla dúinn, rud a d'eascair as scríobh an ailt seo. Mar sin, is é cuspóir deiridh na hionramhála ná gach OSD agus mon a bhaint as freastalaí ar leith ionas gur féidir é a stopadh.

Ar mhaithe le caoithiúlacht agus chun cás a sheachaint, agus muid ag déanamh orduithe, agus muid ag déanamh botún agus an OSD riachtanach á léiriú, socróimid athróg ar leith, agus is é a luach ná uimhir an OSD a scriosfar. Glaoimis uirthi ${ID} — anseo agus thíos, cuirtear athróg den sórt sin in ionad uimhir an OSD lena bhfuilimid ag obair.

Breathnaímid ar an riocht roimh thosú ar an obair:

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

Chun tús a chur le baint OSD, beidh ort feidhmiú go réidh reweight ar sé go nialas. Ar an mbealach seo laghdaítear an méid sonraí san OSD trína chothromú le OSDanna eile. Chun seo a dhéanamh, rith na horduithe seo a leanas:

ceph osd reweight osd.${ID} 0.98
ceph osd reweight osd.${ID} 0.88
ceph osd reweight osd.${ID} 0.78

... agus mar sin de go dtí náid.

Cothromú réidh ag teastáilionas nach a chailleadh na sonraí. Tá sé seo fíor go háirithe má tá cuid mhór sonraí san OSD. Chun a chinntiú go bhfuil tar éis na horduithe a fhorghníomhú reweight chuaigh gach rud go maith, is féidir leat é a chomhlánú ceph -s nó i rith fuinneoige teirminéil ar leith ceph -w chun athruithe a fheiceáil i bhfíor-am.

Nuair a “fholmhaítear an OSD”, is féidir leat dul ar aghaidh leis an oibríocht chaighdeánach chun é a bhaint. Chun seo a dhéanamh, aistrigh an OSD atá ag teastáil go dtí an stát down:

ceph osd down osd.${ID}

Déanaimis “an” OSD a tharraingt amach as an mbraisle:

ceph osd out osd.${ID}

Stopfaimid an tseirbhís OSD agus dífheistímid a dheighilt san FS:

systemctl stop ceph-osd@${ID}
umount /var/lib/ceph/osd/ceph-${ID}

Bain OSD ó Léarscáil CRUSH:

ceph osd crush remove osd.${ID}

Scriosfaimid an t-úsáideoir OSD:

ceph auth del osd.${ID}

Agus ar deireadh, bainimis an OSD féin:

ceph osd rm osd.${ID}

Tabhair faoi deara: Má tá tú ag baint úsáide as leagan Ceph Luminous nó níos airde, ansin is féidir na céimeanna a bhaint OSD thuas a laghdú go dtí dhá ordú:

ceph osd out osd.${ID}
ceph osd purge osd.${ID}

Más rud é, tar éis na céimeanna a thuairiscítear thuas a chríochnú, ritheann tú an t-ordú ceph osd tree, ansin ba chóir go mbeadh sé soiléir nach bhfuil OSDanna a ndearnadh na hoibríochtaí thuas ina leith a thuilleadh ar an bhfreastalaí ina ndearnadh an obair:

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

Chomh maith leis an mbealach, faoi deara go mbeidh an staid an bhraisle Ceph dul go HEALTH_WARN, agus feicfimid laghdú freisin ar líon na OSDanna agus ar an méid spáis diosca atá ar fáil.

Déanfaidh an méid seo a leanas cur síos ar na céimeanna a bheidh ag teastáil más mian leat an freastalaí a stopadh go hiomlán agus, dá réir sin, é a bhaint as Ceph. Sa chás seo, tá sé tábhachtach cuimhneamh air sin Sula múchadh an freastalaí, ní mór duit gach OSD a bhaint ar an bhfreastalaí seo.

Mura bhfuil níos mó OSDanna fágtha ar an bhfreastalaí seo, tar éis duit iad a bhaint ní mór duit an freastalaí a eisiamh ón léarscáil OSD hv-2tríd an ordú seo a leanas a rith:

ceph osd crush rm hv-2

Scrios mon ón bhfreastalaí hv-2tríd an ordú thíos a rith ar fhreastalaí eile (i.e. sa chás seo, ar hv-1):

ceph-deploy mon destroy hv-2

Tar éis seo, is féidir leat an freastalaí a stopadh agus tús a chur le gníomhartha ina dhiaidh sin (é a ath-imscaradh, etc.).

Cás Uimh. 2 . Dáileadh spás diosca i mbraisle Ceph atá cruthaithe cheana féin

Tosóidh mé an dara scéal le réamhrá faoi PG (Grúpaí Socrúcháin). Is é príomhról PG i Ceph go príomha ná réada Ceph a chomhiomlánú agus iad a mhacasamhlú tuilleadh in OSD. Tá an fhoirmle inar féidir leat an méid PG riachtanach a ríomh isteach alt ábhartha doiciméadú Ceph. Pléitear an cheist seo ansin freisin le samplaí sonracha.

Mar sin: ceann de na fadhbanna coitianta nuair a bhíonn Ceph á úsáid ná an líon neamhchothrom OSD agus PG idir linnte i Ceph.

Ar an gcéad dul síos, mar gheall air seo, d'fhéadfadh cás teacht chun cinn nuair a shonraítear an iomarca PGanna i linn beag, rud atá go bunúsach ina úsáid neamhréasúnach de spás diosca sa bhraisle. Ar an dara dul síos, go praiticiúil tá fadhb níos tromchúisí ann: ró-shreabhadh sonraí i gceann de na OSDanna. Ciallaíonn sé seo go n-aistríonn an bhraisle go dtí an stát ar dtús HEALTH_WARN, agus ansin HEALTH_ERR. Is é an chúis atá leis seo ná Ceph, nuair a bhíonn an méid sonraí atá ar fáil á ríomh (is féidir leat é a fháil amach trí MAX AVAIL san aschur ordaithe ceph df do gach comhthiomsú ar leithligh) bunaithe ar an méid sonraí atá ar fáil san OSD. Mura bhfuil go leor spáis in OSD amháin ar a laghad, ní féidir níos mó sonraí a scríobh go dtí go ndéantar na sonraí a dháileadh i gceart i measc gach OSD.

Is fiú a shoiléiriú go bhfuil na fadhbanna seo chinnfear iad den chuid is mó ag céim cumraíochta braisle Ceph. Is é ceann de na huirlisí is féidir leat é a úsáid Ceph PGCalc. Le cabhair uaidh, déantar an méid riachtanach PG a ríomh go soiléir. Mar sin féin, is féidir leat dul i muinín freisin i gcás an bhraisle Ceph cheana féin cumraithe go mícheart. Is fiú a shoiléiriú anseo gur dócha go mbeidh ort líon na PGanna a laghdú mar chuid den obair dheisiúcháin, agus níl an ghné seo ar fáil i leaganacha níos sine de Ceph (ní raibh sé le feiceáil ach sa leagan Nautilus).

Mar sin, déanaimis an pictiúr seo a leanas a shamhlú: tá stádas ag an mbraisle HEALTH_WARN mar gheall ar cheann de na OSD ag rith as spás. Léireofar é seo trí earráid HEALTH_WARN: 1 near full osd. Seo thíos algartam chun éirí as an staid seo.

Ar an gcéad dul síos, ní mór duit na sonraí atá ar fáil a dháileadh idir na OSDanna atá fágtha. Rinneamar oibríocht chomhchosúil cheana féin sa chéad chás, nuair a rinneamar “draenáil” ar an nód - agus is é an t-aon difríocht a chaithfimid a laghdú beagán reweight. Mar shampla, suas le 0.95:

ceph osd reweight osd.${ID} 0.95

Saorann sé seo spás diosca san OSD agus réitíonn sé an earráid i sláinte ceph. Mar sin féin, mar a luadh cheana, tarlaíonn an fhadhb seo go príomha mar gheall ar chumraíocht mícheart Ceph ag na céimeanna tosaigh: tá sé an-tábhachtach athchumrú a dhéanamh ionas nach mbeidh sé le feiceáil sa todhchaí.

Inár gcás ar leith, tháinig sé síos go léir go:

  • luach ró-ard replication_count i gceann de na linnte,
  • an iomarca PG i linn amháin agus ró-bheag i linn eile.

Bainimis úsáid as an áireamhán atá luaite cheana féin. Léiríonn sé go soiléir cad is gá a chur isteach agus, i bprionsabal, níl aon rud casta. Tar éis na paraiméadair riachtanacha a shocrú, faighimid na moltaí seo a leanas:

Tabhair faoi deara: Má tá braisle Ceph á bhunú agat ón tús, feidhm úsáideach eile den áireamhán ná orduithe a ghiniúint a chruthóidh linnte ón tús leis na paraiméadair atá sonraithe sa tábla.

Cuidíonn an colún deiridh leat nascleanúint a dhéanamh - Comhaireamh PG Molta. Is é ár gcás, tá an dara ceann úsáideach freisin, áit a bhfuil an paraiméadar macasamhlú in iúl, ós rud é gur shocraigh muid an t-iolraitheoir macasamhlaithe a athrú.

Mar sin, ar dtús is gá duit na paraiméadair macasamhlú a athrú - is fiú é seo a dhéanamh ar dtús, ós rud é trí laghdú a dhéanamh ar an iolraitheoir, saorfaimid spás diosca. De réir mar a ritheann an t-ordú, tabharfaidh tú faoi deara go méadóidh an spás diosca atá ar fáil:

ceph osd pool $pool_name set $replication_size

Agus tar éis é a chríochnú, athraíonn muid na luachanna paraiméadar pg_num и pgp_num ar an mbealach seo a leanas:

ceph osd pool set $pool_name pg_num $pg_number
ceph osd pool set $pool_name pgp_num $pg_number

Tá sé tábhachtach: ní mór dúinn líon na PGanna a athrú go seicheamhach i ngach linn agus gan na luachanna i linnte eile a athrú go dtí go n-imíonn na rabhaidh "Iomarcaíocht sonraí díghrádaithe" и "n-líon na lch díghrádaithe".

Is féidir leat a sheiceáil freisin go ndeachaigh gach rud go maith ag baint úsáide as na haschuir ordaithe ceph health detail и ceph -s.

Cás Uimh. 3 . Meaisín fíorúil a aistriú ó LVM go Ceph RBD

I gcás ina n-úsáideann tionscadal meaisíní fíorúla atá suiteáilte ar fhreastalaithe lom-mhiotail ar cíos, is minic a thagann an cheist maidir le stóráil locht-fhulangach chun cinn. Tá sé an-inmhianaithe freisin go bhfuil go leor spáis sa stóráil seo ... Staid choitianta eile: tá meaisín fíorúil le stóráil áitiúil ar an bhfreastalaí agus ní mór duit an diosca a leathnú, ach níl aon áit le dul, toisc nach bhfuil aon áit ann. spás diosca saor in aisce fágtha ar an bhfreastalaí.

Is féidir an fhadhb a réiteach ar bhealaí éagsúla - mar shampla, trí aistriú go freastalaí eile (má tá ceann ann) nó dioscaí nua a chur leis an bhfreastalaí. Ach ní i gcónaí is féidir é seo a dhéanamh, mar sin is féidir aistriú ó LVM go Ceph a bheith ina réiteach iontach ar an bhfadhb seo. Tríd an rogha seo a roghnú, déanaimid an próiseas aistrithe breise idir freastalaithe a shimpliú freisin, mar ní bheidh aon ghá le stóráil áitiúil a aistriú ó hypervisor amháin go ceann eile. Is é an t-aon ghabháil amháin ná go mbeidh ort an VM a stopadh agus an obair á déanamh.

Tógtar an t-oideas seo a leanas ó alt ón mblag seo, a tástáladh na treoracha i ngníomh. Dála an scéil, tá cur síos ann freisin ar mhodh na himirce gan stró, áfach, inár gcás nach raibh sé ag teastáil go simplí, mar sin níor sheiceáil muid é. Má tá sé seo ríthábhachtach do do thionscadal, beidh áthas orainn a chloisteáil faoi na torthaí sna tuairimí.

A ligean ar bogadh ar aghaidh go dtí an chuid phraiticiúil. Sa sampla úsáidimid virsh agus, dá réir sin, libvirt. Ar dtús, déan cinnte go bhfuil an linn Ceph a n-aistreofar na sonraí chuici ceangailte le libvirt:

virsh pool-dumpxml $ceph_pool

Ní mór sonraí nasc le Ceph le sonraí údaraithe a bheith sa tuairisc ar an gcomhthiomsú.

Is é an chéad chéim eile ná an íomhá LVM a thiontú go Ceph RBD. Braitheann am forghníomhaithe go príomha ar mhéid na híomhá:

qemu-img convert -p -O rbd /dev/main/$vm_image_name rbd:$ceph_pool/$vm_image_name

Tar éis an chomhshó, fanfaidh íomhá LVM, rud a bheidh úsáideach má theipeann ar aistriú an VM go RBD agus go gcaithfidh tú na hathruithe a rolladh siar. Chomh maith leis sin, le bheith in ann athruithe a rolladh siar go tapa, déanaimis cúltaca de chomhad cumraíochta an mheaisín fíorúil:

virsh dumpxml $vm_name > $vm_name.xml
cp $vm_name.xml $vm_name_backup.xml

... agus cuir an bunleagan in eagar (vm_name.xml). A ligean ar a fháil bloc le cur síos ar an diosca (tosaíonn leis an líne <disk type='file' device='disk'> agus a chríochnaíonn le </disk>) agus laghdaigh go dtí an fhoirm seo a leanas é:

<disk type='network' device='disk'>
<driver name='qemu'/>
<auth username='libvirt'>
  <secret type='ceph' uuid='sec-ret-uu-id'/>
 </auth>
<source protocol='rbd' name='$ceph_pool/$vm_image_name>
  <host name='10.0.0.1' port='6789'/>
  <host name='10.0.0.2' port='6789'/>
</source>
<target dev='vda' bus='virtio'/> 
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>

Breathnaímid ar roinnt sonraí:

  1. Go dtí an prótacal source tá an seoladh chuig an stóras i RBD na Ceph in iúl (seo an seoladh a thugann ainm linn snámha na Ceph agus an íomhá CA, a socraíodh ag an gcéad chéim).
  2. Sa bhloc secret cuirtear an cineál in iúl ceph, chomh maith le UUID an rún chun ceangal leis. Is féidir a uuid a fháil tríd an ordú virsh secret-list.
  3. Sa bhloc host cuirtear seoltaí chuig monatóirí Ceph in iúl.

Tar éis duit an comhad cumraíochta a chur in eagar agus an comhshó LVM go RBD a chomhlánú, is féidir leat an comhad cumraíochta modhnaithe a chur i bhfeidhm agus an meaisín fíorúil a thosú:

virsh define $vm_name.xml
virsh start $vm_name

Tá sé in am seiceáil gur thosaigh an meaisín fíorúil i gceart: is féidir leat a fháil amach, mar shampla, trí nascadh leis trí SSH nó trí virsh.

Má tá an meaisín fíorúil ag obair i gceart agus nach bhfuil aon fhadhb eile aimsithe agat, is féidir leat an íomhá LVM nach n-úsáidtear a thuilleadh a scriosadh:

lvremove main/$vm_image_name

Conclúid

Tháinig muid ar na cásanna go léir a thuairiscítear i gcleachtas - tá súil againn go gcabhróidh na treoracha le riarthóirí eile fadhbanna den chineál céanna a réiteach. Má tá tuairimí nó scéalta eile dá samhail agat ó do thaithí ag baint úsáide as Ceph, beidh áthas orainn iad a fheiceáil sna tuairimí!

PS

Léigh freisin ar ár mblag:

Foinse: will.com

Add a comment