Na-eji ike dochie diski akpaaka

Na-eji ike dochie diski akpaaka

Ndewo, unu niile. Ana m arụ ọrụ dị ka onye isi njikwa sistemụ na OK ma ọ bụ m na-ahụ maka ịrụ ọrụ nke portal kwụsiri ike. Achọrọ m ikwu maka otu anyị siri wuo usoro maka iji dochie diski na-akpaghị aka, mgbe ahụ ka anyị si wepụrụ onye nchịkwa na usoro a wee jiri bot dochie ya.

Edemede a bụ ụdị ntụgharị asụsụ arụmọrụ na HighLoad+ 2018

Iwuli usoro ngbanwe diski

Mbụ ụfọdụ ọnụọgụ

OK bụ nnukwu ọrụ ọtụtụ nde mmadụ na-eji. Ọ na-eje ozi site na ihe dị ka puku sava 7, nke dị na ebe data 4 dị iche iche. Sava nwere ihe karịrị 70 puku diski. Ọ bụrụ na ị na-ekpokọta ha n'elu ibe gị, ị ga-enweta ụlọ elu karịa 1 km.

Draịvụ ike bụ mpaghara ihe nkesa na-adakarị. Site na mpịakọta ndị dị otú ahụ, anyị ga-agbanwe ihe dị ka diski 30 kwa izu, usoro a aghọwokwa usoro na-adịghị mma.

Na-eji ike dochie diski akpaaka

Ihe omume

Ụlọ ọrụ anyị ewebatala njikwa ihe omume zuru oke. Anyị na-edekọ ihe omume ọ bụla na Jira, wee dozie ma dozie ya. Ọ bụrụ na ihe omume nwere mmetụta na ndị ọrụ, mgbe ahụ, anyị na-ezukọta ọnụ ma chee echiche banyere otu esi emeghachi ngwa ngwa n'ọnọdụ ndị dị otú ahụ, otu esi ebelata mmetụta na, n'ezie, otu esi egbochi nlọghachi.

Ngwa nchekwa adịghị iche. Zabbix na-enyocha ọkwa ha. Anyị na-enyocha ozi na Syslog maka ide/gụ mmejọ, nyochaa ọkwa wakporo HW/SW, nyochaa SMART, wee gbakọọ uwe maka SSDs.

Otu esi agbanwe diski mbụ

Mgbe ihe mkpalite mere na Zabbix, a na-emepụta ihe merenụ na Jira ma kenye ya ndị injinia kwesịrị ekwesị na ebe data. Anyị na-eme nke a na ihe omume HW niile, ya bụ, ndị chọrọ ọrụ anụ ahụ ọ bụla na akụrụngwa na ebe data.
Onye injinia etiti data bụ onye na-edozi okwu metụtara ngwaike ma na-ahụ maka ịwụnye, idowe na ịkwatu sava. N'ịbụ onye natara tiketi, injinia ga-arụ ọrụ. Na diski shelves ọ na-agbanwe diski onwe ya. Ma ọ bụrụ na ọ nweghị ohere ịnweta ngwaọrụ achọrọ, onye injinia na-atụgharị na ndị na-ahụ maka sistemụ na-arụ ọrụ maka enyemaka. Nke mbụ, ịkwesịrị iwepu diski ahụ na ntụgharị. Iji mee nke a, ịkwesịrị ịme mgbanwe ndị dị mkpa na ihe nkesa, kwụsị ngwa, ma wepụ diski ahụ.

Onye na-ahụ maka sistemụ na-arụ ọrụ na-ahụ maka ịrụ ọrụ nke ọnụ ụzọ niile n'oge mgbanwe ọrụ. Ọ na-enyocha ihe merenụ, na-arụzi ihe, ma na-enyere ndị mmepe aka ịrụcha obere ọrụ. Ọ bụghị naanị na draịva siri ike ka ọ na-eme.

Na mbụ, ndị injinia data center na-agwa onye nchịkwa sistemu ozi site na nkata. Ndị injinia zigara njikọ na tiketi Jira, onye nchịkwa soro ha, debere ndekọ ọrụ na ụfọdụ akwụkwọ ndetu. Ma nkata adịghị adaba maka ọrụ ndị dị otú ahụ: ozi ebe ahụ adịghị ahazi ma na-efunahụ ngwa ngwa. Na onye nchịkwa nwere ike ịpụ na kọmpụta ahụ wee ghara ịza arịrịọ ruo oge ụfọdụ, ebe injinia guzoro n'elu ihe nkesa nke nwere nnukwu diski wee chere.

Mana ihe kachasị njọ bụ na ndị nchịkwa ahụghị foto ahụ dum: kedu ihe omume diski dị, ebe nsogbu nwere ike ibili. Nke a bụ n'ihi na anyị na-enyefe ihe omume HW niile n'aka ndị injinia. Ee, enwere ike igosi ihe niile mere na dashboard onye nchịkwa. Ma e nwere ọtụtụ n'ime ha, na onye nchịkwa na-etinye aka naanị maka ụfọdụ n'ime ha.

Na mgbakwunye, onye injinia enweghị ike ịtọ ihe ndị ka mkpa n'ụzọ ziri ezi, n'ihi na ọ maghị ihe ọ bụla gbasara ebumnuche nke sava akọwapụtara ma ọ bụ nkesa ozi n'etiti draịva.

Usoro nnọchi ọhụrụ

Ihe mbụ anyị mere bụ ịkwanye ihe niile mere diski n'ụdị dị iche iche "HW disk" wee gbakwunye mpaghara "block ngwaọrụ aha", "nha" na "ụdị diski" ka e wee chekwaa ozi a na tiketi ma mee ya. ọ dịghị mkpa mgbe niile mgbanwe na nkata.

Na-eji ike dochie diski akpaaka
Anyị kwekọrịtakwara na n'otu oge anyị ga-agbanwe naanị otu diski. Nke a mere ka usoro akpaaka dị mfe, nchịkọta ọnụ ọgụgụ na ọrụ n'ọdịnihu.

Na mgbakwunye, anyị gbakwunyere ubi “onye nchịkwa na-ahụ maka ọrụ”. A na-etinye onye nchịkwa sistemụ na-arụ ọrụ na-akpaghị aka ebe ahụ. Nke a dị nnọọ mma, n'ihi na ugbu a, engineer na-ahụ mgbe niile onye na-ahụ maka ya. Ọ dịghị mkpa ịga na kalenda wee chọọ. Ọ bụ mpaghara a mere ka o kwe omume igosipụta tiketi na dashboard onye nchịkwa nwere ike ịchọ enyemaka ya.

Na-eji ike dochie diski akpaaka
Iji hụ na ndị niile sonyere nwetara uru kachasị site na ihe ọhụrụ, anyị mepụtara nzacha na dashboard ma gwa ụmụ okorobịa banyere ha. Mgbe ndị mmadụ ghọtara mgbanwe, ha adịghị ekewapụ onwe ha n'ebe ha nọ dị ka ihe na-adịghị mkpa. Ọ dị mkpa ka onye injinia mara nọmba rack ebe ihe nkesa dị, nha na ụdị diski. Onye nchịkwa chọrọ, nke mbụ, ịghọta ụdị ụdị sava nke a bụ yana ihe mmetụta nwere ike ịbụ mgbe dochie diski.

Ọnụnọ nke ubi na ihe ngosi ha dị mma, mana ọ zọpụtaghị anyị site na mkpa iji nkata. Iji mee nke a, anyị ga-agbanwe usoro ọrụ.

Na mbụ ọ dị ka nke a:

Na-eji ike dochie diski akpaaka
Nke a bụ ka ndị injinia na-aga n'ihu na-arụ ọrụ taa mgbe ha achọghị enyemaka onye nchịkwa.

Ihe mbụ anyị mere bụ iwebata ọkwa ọhụrụ Nyocha. Tiketi ahụ dị n'ọnọdụ a mgbe injinia ekpebibeghị ma ọ ga-achọ onye nchịkwa ma ọ bụ na ọ chọghị. Site na ọkwa a, onye injinia nwere ike ịnyefe tiketi na onye nchịkwa. Tụkwasị na nke a, anyị na-eji ọkwa a akara tiketi mgbe ọ dị mkpa ka edochie diski, mana diski n'onwe ya adịghị na saịtị. Nke a na-eme n'ihe gbasara CDN na saịtị ndị dịpụrụ adịpụ.

Anyị gbakwunyekwara ọkwa njikere. A na-ebufe tiketi na ya mgbe dochie diski ahụ. Ya bụ, emelarị ihe niile, mana HW/SW RAID na-emekọrịta ihe na sava ahụ. Nke a nwere ike iwe ogologo oge.

Ọ bụrụ na onye nchịkwa na-etinye aka na ọrụ ahụ, atụmatụ ahụ ga-adịkwu mgbagwoju anya.

Na-eji ike dochie diski akpaaka
Site na ọkwa Open Enwere ike ịtụgharị tiketi site na ma onye nchịkwa sistemụ yana injinia. N'ọnọdụ Na-aga n'ihu onye nchịkwa na-ewepụ diski ahụ site na ntụgharị ka onye injinia wee wepụ ya: gbanye ọkụ azụ, wepụ diski ahụ, kwụsị ngwa, dabere na otu sava.

A na-ebufe tiketi na ya Njikere ịgbanwe: Nke a bụ mgbaama nye injinia na enwere ike ịdọrọ diski ahụ. Ejularị ubi niile dị na Jira, injinia maara ụdị na nha diski ahụ. A na-etinye data a na-akpaghị aka na ọkwa gara aga ma ọ bụ onye nchịkwa.

Mgbe dochie diski ahụ, a na-agbanwe ọkwa tiketi ka ọ bụrụ Gbanwere. Ọ na-enyocha na etinyela diski ziri ezi, emela nkewa, ewepụta ngwa ahụ ma malite ọrụ ụfọdụ mgbake data. Enwere ike ibufe tiketi na ọkwa njikere, na nke a onye nchịkwa ga-anọgide na-ahụ maka ya, n'ihi na o tinyere diski n'ime ntụgharị. Eserese zuru ezu dị ka nke a.

Na-eji ike dochie diski akpaaka
Ịgbakwunye ubi ọhụrụ mere ka ndụ anyị dịkwuo mfe karị. Ụmụ okorobịa ahụ malitere ịrụ ọrụ na ozi ahaziri ahazi, ọ bịara doo anya ihe a ga-eme na n'oge nke ọkwa. Ihe ndị dị mkpa adịla mkpa karịa, ebe ọ bụ na onye nchịkwa debere ha ugbu a.

Ọ dịghị mkpa maka nkata. N'ezie, onye nchịkwa nwere ike ịdegara onye injinia akwụkwọ ozi "nke a kwesịrị ka edochie ya ngwa ngwa," ma ọ bụ "ọ bụbu mgbede, ị ga-enwe oge iji dochie ya?" Mana anyị anaghịzi enwe mkparịta ụka kwa ụbọchị n'okwu ndị a.

A malitere ịgbanwe diski na batches. Ọ bụrụ na onye nchịkwa bịara ịrụ ọrụ ntakịrị oge, ọ nwere oge n'efu, ọ dịghịkwa ihe ọ bụla merenụ, ọ nwere ike ịkwadebe ọtụtụ sava maka nnọchi: jupụta n'ọhịa, wepụ diski site na ntụgharị ma nyefee ọrụ ahụ na onye injinia. Onye injinia na-abịa na data data ntakịrị oge, hụ ọrụ ahụ, were draịva ndị dị mkpa site na ụlọ nkwakọba ihe wee dochie ha ozugbo. N'ihi ya, ọnụọgụ ngbanwe abawanyela.

Ihe mmụta ndị a mụtara mgbe a na-ewu usoro ọrụ

  • Mgbe ị na-arụ usoro, ịkwesịrị ịnakọta ozi sitere na isi mmalite dị iche iche.
    Ụfọdụ ndị nchịkwa anyị amaghị na injinia na-agbanwe diski n'onwe ya. Ụfọdụ ndị mmadụ chere na ndị injinia na-ahụ maka mmekọrịta MD RAID, n'agbanyeghị na ụfọdụ n'ime ha enweghịdị ohere ime ya. Ụfọdụ ndị injinia na-edu ndú mere nke a, ma ọ bụghị mgbe nile n'ihi na akọwaghị usoro ahụ n'ebe ọ bụla.
  • Usoro kwesịrị ịdị mfe na nghọta.
    Ọ na-esiri mmadụ ike iburu ọtụtụ nzọụkwụ n'uche. Ekwesịrị idobe statuses agbataobi kacha mkpa na ihuenyo isi. Ị nwere ike ịnyegharị ha aha, dịka ọmụmaatụ, anyị na-akpọ Na-aga n'ihu dị njikere ịgbanwe. Enwere ike zoo ọkwa ndị ọzọ na menu ndọda ka ha wee ghara ịbụ ihe anya. Ma ọ ka mma ịghara igbochi ndị mmadụ, inye ha ohere ịme mgbanwe.
    Kọwaa uru ihe ọhụrụ dị. Mgbe ndị mmadụ ghọtara, ha na-anabata usoro ọhụrụ ahụ. Ọ dị ezigbo mkpa ka anyị na ndị mmadụ adịghị pịa usoro dum, ma soro ya. Mgbe ahụ, anyị wuru akpaaka na nke a.
  • Chere, nyochaa, chọpụta ya.
    O were anyị ihe dị ka otu ọnwa iji wuo usoro, mmejuputa teknụzụ, nzukọ na mkparịta ụka. Na mmejuputa iwu na-ewe ihe karịrị ọnwa atọ. Ahụrụ m ka ndị mmadụ ji nwayọọ nwayọọ malite iji ihe ọhụrụ ahụ. Enwere ọtụtụ ihe na-adịghị mma na mbido mbụ. Ma ọ bụ kpamkpam na-adabere na usoro ahụ n'onwe ya na mmejuputa teknụzụ ya. Dịka ọmụmaatụ, otu onye nchịkwa ejighị Jira, mana Jira plugin in Confluence, na ụfọdụ ihe adịghị ya. Anyị gosiri ya Jira, na mmepụta nke onye nchịkwa mụbara ma maka ọrụ izugbe yana maka dochie diski.

Akpaaka nke nnọchi diski

Anyị na-abịaru nso na akpaaka nke nnọchi diski ọtụtụ oge. Anyị enweela mmepe na scripts, mana ha niile na-arụ ọrụ ma ọ bụ na-emekọrịta ihe ma ọ bụ jiri aka rụọ ọrụ ma chọọ ịmalite. Na naanị mgbe iwebata usoro ọhụrụ ahụ ka anyị ghọtara na nke a bụ kpọmkwem ihe na-efunahụ anyị.

Ebe ọ bụ na ugbu a anyị nnọchi usoro na-ekewa n'ime nkebi, nke ọ bụla n'ime ha nwere kpọmkwem onye na-eme ihe na ndepụta nke omume, anyị nwere ike ime ka akpaaka na nkebi, na ọ bụghị otu mgbe. Dịka ọmụmaatụ, usoro kachasị mfe - Njikere (ịlele RAID/mmekọrịta data) nwere ike nyefee ya na bot ngwa ngwa. Mgbe bot mụtara ntakịrị, ị nwere ike inye ya ọrụ dị mkpa - itinye diski n'ime ntụgharị, wdg.

Nhazi ụlọ ezumike

Tupu anyị ekwu maka bot, ka anyị mee njem dị mkpirikpi n'ime ụlọ nrụnye anyị. Mbụ niile, ọ bụ n'ihi na gigantic size nke anyị akụrụngwa. Nke abụọ, anyị na-agbalị ịhọrọ nhazi ngwaike kachasị mma maka ọrụ ọ bụla. Anyị nwere ụdị RAID ngwaike 20, ọkachasị LSI na Adaptec, mana enwerekwa HP na DELL nke ụdị dị iche iche. Onye njikwa RAID ọ bụla nwere ọrụ njikwa nke ya. Usoro iwu na ịnye ha nwere ike ịdị iche site na ụdị gaa na ụdị maka onye njikwa RAID ọ bụla. Ebe ejighị HW-RAID, enwere ike iji mdraid.

Anyị na-eme ihe fọrọ nke nta ka ọ bụrụ nrụnye ọhụrụ niile na-enweghị ndabere diski. Anyị na-agbalị ịghara iji ngwaike na ngwanrọ RAID, ka anyị na-akwado sistemụ anyị na ọkwa etiti data, ọ bụghị sava. Mana n'ezie enwere ọtụtụ sava ihe nketa kwesịrị ịkwado.

Ebe a na-ebufe diski dị na ndị na-ahụ maka RAID na ngwaọrụ akụrụngwa, ebe a na-eji JBOD. Enwere nhazi na otu diski usoro na ihe nkesa ahụ, ma ọ bụrụ na ọ dị mkpa ka a dochie ya, mgbe ahụ, ị ​​​​ga-etinyeghachi ihe nkesa na ntinye nke OS na ngwa, nke otu nsụgharị ahụ, tinyezie faịlụ nhazi, malite ngwa. Enwekwara otutu nkesa nkesa ebe a na-eme nkwado ndabere na mpaghara ọ bụghị na ọkwa nke diski, kama na ngwa n'onwe ha.

Na mkpokọta, anyị nwere ihe karịrị 400 otu sava pụrụ iche na-agba ihe fọrọ nke nta ka ọ bụrụ 100 ngwa dị iche iche. Iji kpuchie ọnụ ọgụgụ dị ukwuu nke nhọrọ dị otú ahụ, anyị chọrọ ngwá ọrụ akpaaka multifunctional. Ọkacha mma na DSL dị mfe, nke mere na ọ bụghị naanị onye dere ya nwere ike ịkwado ya.

Anyị họọrọ nke nwere ike ime n'ihi na ọ bụ enweghị ọrụ: ọ dịghị mkpa ịkwadebe akụrụngwa, mmalite ngwa ngwa. Na mgbakwunye, edere ya na Python, nke a nabatara dị ka ọkọlọtọ n'ime otu.

Usoro izu

Ka anyị leba anya na atụmatụ akpaaka izugbe na-eji otu ihe omume dịka ọmụmaatụ. Zabbix na-achọpụta na diski sdb adaala, ihe na-akpalite ọkụ, ma mepụta tiketi na Jira. Onye nchịkwa ahụ lere ya anya, chọpụta na ọ bụghị oyiri ma ọ bụghị ihe na-ezighị ezi, ya bụ, diski dị mkpa ka a gbanwee, ma nyefee tiketi na Na-aga n'ihu.

Na-eji ike dochie diski akpaaka
Ngwa DiskoBot, nke edere na Python, na-eme ntuli aka Jira maka tiketi ọhụrụ. Ọ na-achọpụta na tiketi ọhụrụ na-aga n'ihu apụtala, eriri kwekọrọ na-akpalite, nke na-ebupụta akwụkwọ egwu egwu na Ansible (nke a na-eme maka ọkwa ọ bụla na Jira). N'okwu a, a na-ewepụta Prepare2change.

A na-ezigara onye ọbịa nke ọma, wepụ diski ahụ na ntụgharị ma kọọrọ ọkwa na ngwa ahụ site na Callbacks.

Na-eji ike dochie diski akpaaka
Dabere na nsonaazụ ya, bot na-ebufe tiketi na-akpaghị aka na njikere ịgbanwe. Onye injinia na-enweta ọkwa wee gaa ịgbanwe diski ahụ, mgbe nke ahụ gasịrị, ọ na-ebufe tiketi na Changed.

Na-eji ike dochie diski akpaaka
Dị ka atụmatụ a kọwara n'elu, tiketi na-alaghachi na bot, nke na-ebupụta akwụkwọ egwuregwu ọzọ, na-aga na onye ọbịa ma tinye diski ahụ na ntụgharị. Bot ahụ na-emechi tiketi. Hụ!

Na-eji ike dochie diski akpaaka
Ugbu a, ka anyị kwuo banyere ụfọdụ akụkụ nke usoro.

Diskobot

Edere ngwa a na Python. Ọ na-ahọrọ tiketi site na Jira dị ka JQL si dị. Dabere na ọkwa nke tiketi ahụ, nke ikpeazụ na-aga na onye njikwa kwekọrọ, nke n'aka nke ya na-ebupụta akwụkwọ egwu egwu nwere ike kwekọrọ na ọkwa ahụ.

Akọwapụtara JQL na oge ntuli aka na faịlụ nhazi ngwa.

jira_states:
  investigate:
    jql: '… status = Open and "Disk Size" is EMPTY'
    interval: 180

  inprogress:
    jql: '…  and "Disk Size" is not EMPTY and "Device Name" is not EMPTY'
 
  ready:
    jql: '… and (labels not in ("dbot_ignore") or labels is EMPTY)'
    interval: 7200

Dịka ọmụmaatụ, n'etiti tiketi na ọkwa Na-aga n'ihu, ọ bụ naanị ndị nwere oghere diski na aha ngwaọrụ ka ahọpụtara. Aha ngwaọrụ bụ aha ngọngọ ngwaọrụ achọrọ iji mebie akwụkwọ egwuregwu. A chọrọ nha diski ka onye injinia mara ihe nha diski achọrọ.

Na n'etiti tiketi nwere ọkwa Njikere, a na-ehichapụ tiketi ndị nwere akara dbot_ignore. Site n'ụzọ, anyị na-eji akara Jira ma maka nzacha dị otú ahụ yana maka akara tiketi oyiri na ịnakọta ọnụ ọgụgụ.

Ọ bụrụ na akwụkwọ egwu ada ada, Jira na-ekenye akara dbot_failed ka e wee hazie ya ma emechaa.

Mmekọrịta ya na ike

Ngwa a na-ekwurịta okwu na onye nwere ike site na API Python nwere ike ime. Iji playbook_executor anyị na-agafe aha faịlụ na set nke variables. Nke a na-enye gị ohere idobe ihe omume ahụ nwere ike ime n'ụdị faịlụ yml mgbe niile, kama ịkọwa ya na koodu Python.

Ọzọkwa na ike, site na * extra_vars *, aha nke ngọngọ ngwaọrụ, ọnọdụ nke tiketi, yana callback_url, nke nwere isi okwu - a na-eji maka callback na HTTP.

Maka mmalite nke ọ bụla, a na-emepụta ngwa ahịa nwa oge, nke nwere otu onye ọbịa na otu nke onye ọbịa a nwere, ka etinyere group_vars.

Nke a bụ ọmụmaatụ nke ọrụ na-arụ ọrụ ịkpọghachi HTTP.

Anyị na-enweta nsonaazụ nke iji callaback (s) na-eme akwụkwọ egwu. Ha bụ ụdị abụọ:

  • Ngwa mgbakwunye ọkpụkpọ oku nwere ike ime, ọ na-enye data na nsonaazụ nke ogbugbu egwuregwu. Ọ na-akọwa ọrụ ndị ewepụtara, rụchara nke ọma ma ọ bụ enweghị nke ọma. A na-akpọ azụghachi oku a mgbe akwụkwọ egwu gwụchara.
  • Nkpọghachi HTTP ka ị nweta ozi mgbe ị na-akpọ akwụkwọ egwu. N'ime ọrụ enwere ike, anyị na-eme arịrịọ POST/GET na ngwa anyị.

A na-agafe mgbanwe mgbanwe site na okughachi HTTP nke akọwara n'oge a na-eme akwụkwọ egwuregwu yana na anyị chọrọ ịchekwa ma jiri ya mee ihe na-esote. Anyị na-ede data a na sqlite.

Anyị na-ahapụkwa nkọwa ma gbanwee ọkwa tiketi site na ịkpọghachi HTTP.

Nkpọghachi HTTP

# Make callback to Diskobot App
# Variables:
#    callback_post_body: # A dict with follow keys. All keys are optional
#       msg: If exist it would be posted to Jira as comment
#       data: If exist it would be saved in Incident.variables
#       desire_state: Set desire_state for incident
#       status: If exist Proceed issue to that status

  - name: Callback to Diskobot app (jira comment/status)
    uri:
      url: "{{ callback_url }}/{{ devname }}"
      user: "{{ diskobot_user }}"
      password: "{{ diskobot_pass }}"
      force_basic_auth: True
      method: POST
      body: "{{ callback_post_body | to_json }}"
      body_format: json
    delegate_to: 127.0.0.1

Dị ka ọtụtụ ọrụ nke otu ụdị, anyị na-etinye ya na faịlụ nkịtị dị iche iche ma tinye ya ma ọ bụrụ na ọ dị mkpa, ka ọ ghara imegharị ya mgbe niile na akwụkwọ egwuregwu. Nke a gụnyere callback_ url, nke nwere igodo mbipụta na aha nnabata. Mgbe ike mezuru arịrịọ POST a, bot ahụ ghọtara na ọ bịara dịka akụkụ nke ụdị ihe a.

Ma ebe a bụ ọmụmaatụ sitere na akwụkwọ egwuregwu, nke anyị na-ewepụta diski site na ngwaọrụ MD:

  # Save mdadm configuration
  - include: common/callback.yml
    vars:
      callback_post_body:
        status: 'Ready to change'
        msg: "Removed disk from mdraid {{ mdadm_remove_disk.msg | comment_jira }}"
        data:
          mdadm_data: "{{ mdadm_remove_disk.removed }}"
          parted_info: "{{ parted_info | default() }}"
    when:
      - mdadm_remove_disk | changed
      - mdadm_remove_disk.removed

Ọrụ a na-ebufe tiketi Jira na ọkwa "Njikere ịgbanwe" ma tinye nkọwa. Ọzọkwa, mdam_data variable na-echekwa ndepụta nke ngwaọrụ md nke e wepụrụ diski ahụ, ma parted_info na-echekwa ihe nkebi si kewara.

Mgbe injinia na-etinye diski ọhụrụ, anyị nwere ike iji mgbanwe ndị a weghachi ihe mkpofu nkebi, yana itinye diski n'ime ngwaọrụ md nke ewepụrụ ya.

Ọnọdụ nlele nwere ike ime

Ọ dị egwu ịgbanye akpaaka. Ya mere, anyị kpebiri na-agba ọsọ niile playbooks na mode
akọrọ ọsọ, nke Ansible anaghị eme omume ọ bụla na sava, kama ọ na-eṅomi ha.

A na-agba ọsọ dị otú ahụ site na modul azụghachi azụ dị iche, a na-echekwa nsonaazụ nke ogbugbu a na Jira dị ka nkọwa.

Na-eji ike dochie diski akpaaka

Nke mbụ, nke a mere ka o kwe omume ịkwado ọrụ bot na akwụkwọ egwuregwu. Nke abụọ, ọ mụbara ntụkwasị obi nke ndị nchịkwa na bot.

Mgbe anyị gafere nkwado ahụ wee chọpụta na ị nwere ike ịgba ọsọ ọ bụghị naanị na ọnọdụ ịgba ọsọ akọrọ, anyị mere bọtịnụ Run Diskobot na Jira iji malite otu akwụkwọ egwu na otu mgbanwe na otu onye ọbịa, ma na ọnọdụ nkịtị.

Na mgbakwunye, a na-eji bọtịnụ ahụ malitegharịa akwụkwọ egwuregwu ma ọ bụrụ na ọ daa.

Nhazi akwụkwọ egwuregwu

Ekwupụtala m na dabere na ọkwa nke tiketi Jira, bot na-ewepụta akwụkwọ egwuregwu dị iche iche.

Nke mbụ, ọ dị mfe ịhazi ọnụ ụzọ.
Nke abuo, n'ọnọdụ ụfọdụ ọ dị nnọọ mkpa.

Dịka ọmụmaatụ, mgbe ị na-edochi diski sistemu, ị ga-ebu ụzọ gaa na sistemụ ntinye, mepụta ọrụ, na mgbe etinyere ya nke ọma, ihe nkesa ga-enweta site na ssh, ma ị nwere ike ibugharị ngwa ahụ na ya. Ọ bụrụ na anyị mere ihe a niile n'otu akwụkwọ egwu egwu, mgbe ahụ, Ansible agaghị enwe ike imecha ya n'ihi na onye ọbịa ahụ adịghị.

Anyị na-eji ọrụ nwere ike ime maka otu sava ọ bụla. N'ebe a, ị ga-ahụ ka esi ahazi akwụkwọ egwuregwu n'otu n'ime ha.

Na-eji ike dochie diski akpaaka

Nke a dị mma n'ihi na ọ bụ ozugbo doro anya ebe ọrụ dị. Na main.yml, nke bụ ntinye maka ọrụ enwere ike, anyị nwere ike tinye naanị site na ọkwa tiketi ma ọ bụ ọrụ izugbe achọrọ maka onye ọ bụla, dịka ọmụmaatụ, ịgafe njirimara ma ọ bụ ịnweta akara ngosi.

Nnyocha.yml

Na-agba ọsọ maka tiketi na nyocha na ọnọdụ mepere emepe. Ihe kacha mkpa maka akwụkwọ egwuregwu a bụ ngọngọ ngwaọrụ aha. Ozi a anaghị adị mgbe niile.

Iji nweta ya, anyị na-enyocha nchịkọta Jira, uru ikpeazụ sitere na mkpalite Zabbix. Ọ nwere ike ịnwe aha nke ngọngọ ngwaọrụ - kechioma. Ma ọ bụ ọ nwere ike ịnwe ebe mgbago, mgbe ahụ ịkwesịrị ịga na nkesa, tụba ya wee gbakọọ diski achọrọ. Ihe mkpalite ahụ nwekwara ike ibunye adreesị scsi ma ọ bụ ozi ndị ọzọ. Ma ọ na-emekwa na ọ dịghị ihe ngosi, ma ị ga-enyocha ya.

N'ịchọpụta aha nke ngọngọ ngwaọrụ, anyị na-anakọta ozi banyere ụdị na size nke disk si ya mejupụta ubi na Jira. Anyị na-ewepụkwa ozi gbasara onye na-ere ahịa, ihe nlereanya, firmware, ID, SMART, wee tinye ihe a niile na nkwupụta na tiketi Jira. Onye nchịkwa na injinia achọkwaghị ịchọ data a. 🙂

Na-eji ike dochie diski akpaaka

kwadebe2gbanwe.yml

Iwepụ diski ahụ site na ntụgharị, na-akwadebe maka nnọchi. Oge kacha sie ike na nke dị mkpa. Nke a bụ ebe ị nwere ike kwụsị ngwa mgbe ọ na-ekwesịghị ịkwụsị. Ma ọ bụ wepụta diski nke na-enweghị ihe nrụpụta zuru oke, wee si otú ahụ nwee mmetụta na ndị ọrụ, na-efunahụ ụfọdụ data. N'ebe a, anyị nwere nyocha na ọkwa kachasị na nkata.

N'okwu kachasị mfe, anyị na-ekwu maka iwepụ diski na HW/MD RAID.

N'ọnọdụ ndị dị mgbagwoju anya (na usoro nchekwa anyị), mgbe a na-eme nkwado ndabere na mpaghara ngwa ngwa, ịkwesịrị ịga na ngwa ahụ site na API, kọọ ihe mmepụta diski, gbanyụọ ya ma malite mgbake.

Ugbu a, anyị na-akwaga n'ìgwè igwe ojii, ma ọ bụrụ na ihe nkesa ahụ sitere na ígwé ojii, mgbe ahụ Diskobot na-akpọ ígwé ojii API, na-ekwu na ọ ga-arụ ọrụ na minion a - ihe nkesa na-agba ọsọ - wee jụọ "wepụ ihe niile na minion a." Ma n'otu oge ahụ, na-agbanye ọkụ azụ nke diski ahụ ka onye injinia wee hụ ozugbo nke a ga-ewepụ.

gbanwere.yml

Mgbe dochie diski, anyị na-ebu ụzọ lelee na ọ dị.

Ndị injinia anaghị etinye draịva ọhụrụ mgbe niile, yabụ anyị gbakwunyere nlele maka ụkpụrụ SMART na-eju anyị afọ.

Kedu àgwà anyị na-ele anya?Ọnụ ọgụgụ ngalaba akpọgharịrị (5) <100
Ọnụ ọgụgụ ngalaba na-echere ugbu a (107) == 0

Ọ bụrụ na draịva ahụ daa n'ule ahụ, a ga-agwa onye injinia ka ọ dochie ya ọzọ. Ọ bụrụ na ihe niile dị n'usoro, ọkụ azụ na-agbanyụ, a na-etinye akara akara ma tinye diski ahụ n'ime ntụgharị.

njikere.yml

Ikpe kacha mfe: ịlele mmekọrịta HW/SW raid ma ọ bụ imecha mmekọrịta data na ngwa.

Ngwa API

Ekwurula m ọtụtụ oge na bot na-enwetakarị API ngwa. N'ezie, ọ bụghị ngwa niile nwere ụzọ ndị dị mkpa, ya mere a ga-agbanwe ha. Nke a bụ ụzọ kacha mkpa anyị na-eji:

  • Ọnọdụ. Ọnọdụ nke ụyọkọ ma ọ bụ diski iji ghọta ma enwere ike iji ya rụọ ọrụ;
  • Malite/kwụsị. Ịkwalite / gbanyụọ diski;
  • Mbugharị/weghachi. Mbugharị data na mgbake n'oge na mgbe nnọchi.

Ihe mmụta ndị a mụtara n'aka onye ike

Ahụrụ m Ansible n'anya. Mana ọtụtụ mgbe, mgbe m lere anya na ọrụ opensource dị iche iche wee hụ ka ndị mmadụ si ede akwụkwọ egwuregwu, ụjọ na-atụ m. Mkparịta ụka ezi uche dị mgbagwoju anya nke mgbe/loop, enweghị mgbanwe na idempotency n'ihi ojiji shei/iwu ugboro ugboro.

Anyị kpebiri ime ka ihe niile dị mfe dị ka o kwere mee, na-eji uru nke Ansible - modularity. N'ọkwa kachasị elu enwere akwụkwọ egwuregwu; onye nchịkwa ọ bụla nwere ike dee ha, onye nrụpụta nke atọ maara ntakịrị ihe nwere ike ime.

- name: Blink disk
  become: True
  register: locate_action
  disk_locate:
      locate: '{{ locate }}'
      devname: '{{ devname }}'
      ids: '{{ locate_ids | default(pd_id) | default(omit) }}'

Ọ bụrụ na ụfọdụ mgbagha siri ike itinye n'ọrụ na akwụkwọ egwuregwu, anyị na-ebuga ya na modul ma ọ bụ nzacha nwere ike ime. Enwere ike dee script na Python ma ọ bụ asụsụ ọ bụla ọzọ.

Ha dị mfe na ngwa ngwa ide. Dịka ọmụmaatụ, modul backlight diski, ihe atụ nke egosiri n'elu, nwere ahịrị 265.

Na-eji ike dochie diski akpaaka

N'ọkwa kacha ala bụ ọba akwụkwọ. Maka oru ngo a, anyị dere ngwa dị iche, ụdị abstraction n'elu ngwaike na ngwa RAID nke na-eme arịrịọ kwekọrọ.

Na-eji ike dochie diski akpaaka

Ike kachasị ike nke ansible bụ mfe ya na akwụkwọ egwuregwu doro anya. Ekwenyere m na ịkwesịrị iji nke a ma ghara ịmepụta faịlụ yaml na-atụ egwu yana ọnụ ọgụgụ dị ukwuu nke ọnọdụ, koodu shei na loops.

Ọ bụrụ na ịchọrọ ịmegharị ahụmịhe anyị na API Apụrụiche, buru ihe abụọ n'uche:

  • Playbook_executor na akwụkwọ egwu n'ozuzu enweghị ike inye oge nkwụsị. Enwere nkwụsị oge na nnọkọ ssh, mana enweghị oge nkwụsịtụ na akwụkwọ egwuregwu. Ọ bụrụ na anyị na-agbalị ịkwatu diski nke na-adịkwaghị na sistemụ ahụ, akwụkwọ egwuregwu ahụ ga-agba ọsọ na-adịghị agwụ agwụ, yabụ anyị ga-ekechi mwepụta ya na ihe mkpuchi dị iche wee gbuo ya oge.
  • Enwere ike na-agba ọsọ na usoro forked, yabụ API ya abụghị eri eri. Anyị na-eji otu eriri na-agba akwụkwọ egwuregwu anyị niile.

N'ihi ya, anyị nwere ike na-akpaghị aka dochie ihe dị ka 80% nke diski. N'ozuzu, ọnụego nnọchi amụbaala okpukpu abụọ. Taa, onye nchịkwa na-eleba anya na ihe ahụ merenụ wee kpebie ma ọ dị mkpa ka a gbanwee diski ahụ ma ọ bụ na ọ bụghị, wee mee otu pịa.

Mana ugbu a, anyị na-amalite ịbanye na nsogbu ọzọ: ụfọdụ ndị nchịkwa ọhụrụ amaghị ka esi agbanwe draịva. 🙂

isi: www.habr.com

Tinye a comment