Mtambo umodzi - data center level OS ku Odnoklassniki
Aloha, anthu! Dzina langa ndine Oleg Anastasyev, ndimagwira ntchito ku Odnoklassniki mu gulu la Platform. Kuphatikiza apo, ku Odnoklassniki pali zida zambiri zomwe zimagwira ntchito. Tili ndi ma data anayi omwe ali ndi ma rack 500 okhala ndi ma seva oposa 8 zikwi. Panthawi ina, tidazindikira kuti kukhazikitsidwa kwa dongosolo latsopano loyang'anira kungatipangitse kuti tizinyamula zida bwino, kuwongolera njira zolumikizirana, kuwongolera (kukonzanso) kugawa kwazinthu zamakompyuta, kufulumizitsa kukhazikitsa ntchito zatsopano, ndikufulumizitsa mayankho. ku ngozi zazikulu.
Chinabwera ndi chiyani?
Kupatulapo ine ndi gulu la hardware, palinso anthu omwe amagwira ntchito ndi hardware iyi: mainjiniya omwe ali mwachindunji kumalo osungira deta; ma network omwe amakhazikitsa mapulogalamu apakompyuta; oyang'anira, kapena ma SRE, omwe amapereka mphamvu zokhazikika; ndi magulu a chitukuko, aliyense wa iwo ali ndi udindo pa gawo la ntchito za portal. Mapulogalamu omwe amapanga amagwira ntchito motere:
Zopempha za ogwiritsa ntchito zimalandiridwa kumbali zonse za portal yayikulu www.ok.ru, ndi ena, mwachitsanzo pa nyimbo za API. Kuti agwiritse ntchito malingaliro abizinesi, amatcha seva yofunsira, yomwe, ikakonza zopempha, imayitanitsa ma microservices apadera ofunikira - graph imodzi (graph of social networks), ogwiritsa-cache (cache of user profiles), etc.
Uliwonse wa mautumikiwa umagwiritsidwa ntchito pamakina ambiri, ndipo aliyense wa iwo ali ndi otsogolera omwe ali ndi udindo woyendetsa ma modules, ntchito yawo ndi chitukuko cha zamakono. Ntchito zonsezi zimayendera ma seva a hardware, ndipo mpaka posachedwa tidayambitsa ntchito imodzi yokha pa seva, mwachitsanzo, inali yapadera pa ntchito inayake.
Ndichoncho chifukwa chiyani? Njira imeneyi inali ndi maubwino angapo:
Kumasuka kasamalidwe ka anthu ambiri. Tinene kuti ntchito imafuna malaibulale ena, zoikamo zina. Ndiyeno seva imaperekedwa ku gulu limodzi ndendende, ndondomeko ya cfengine ya gulu ili ikufotokozedwa (kapena yafotokozedwa kale), ndipo kasinthidwe kameneka kamakhala pakati ndipo amangoperekedwa kwa ma seva onse mu gulu ili.
Zosavuta diagnostics. Tiyerekeze kuti mukuyang'ana kuchuluka kwa purosesa yapakati ndikuzindikira kuti katunduyu angopangidwa ndi ntchito yomwe imagwira pa purosesa ya hardware iyi. Kufunafuna wina womuimba mlandu kumatha msanga.
Zosavuta kuyang'anira. Ngati china chake sichili bwino ndi seva, woyang'anira amafotokoza, ndipo mukudziwa yemwe ali ndi mlandu.
Ntchito yokhala ndi zofananira zingapo imaperekedwa ma seva angapo - imodzi pa iliyonse. Ndiye gwero la computing lautumiki limaperekedwa mophweka: chiwerengero cha ma seva omwe utumiki uli nawo, kuchuluka kwazinthu zomwe zingathe kuwononga. "Zosavuta" apa sizikutanthauza kuti ndizosavuta kugwiritsa ntchito, koma m'lingaliro lakuti kugawa kwazinthu kumachitika pamanja.
Njira imeneyi inatithandizanso kuchita masinthidwe apadera achitsulo pa ntchito yomwe ikuyenda pa seva iyi. Ngati ntchitoyi ikusunga deta yambiri, ndiye kuti timagwiritsa ntchito seva ya 4U yokhala ndi galimoto yokhala ndi ma disks 38. Ngati ntchitoyi ndi yowerengera, ndiye kuti titha kugula seva yotsika mtengo ya 1U. Izi ndizothandiza pamakompyuta. Mwa zina, njirayi imatithandiza kugwiritsa ntchito makina ochepera kanayi omwe ali ndi katundu wofanana ndi malo ochezera a pa Intaneti ochezeka.
Kuchita bwino kotereku pakugwiritsa ntchito zida zamakompyuta kuyeneranso kuwonetsetsa kuti chuma chikuyenda bwino, ngati tichokera pamalingaliro akuti chinthu chokwera mtengo kwambiri ndi maseva. Kwa nthawi yayitali, hardware inali yokwera mtengo kwambiri, ndipo tinkayesetsa kwambiri kuchepetsa mtengo wa hardware, kubwera ndi zolakwika zololera zolakwika kuti tichepetse zofunikira zodalirika za hardware. Ndipo lero tafika pamlingo womwe mtengo wa seva wasiya kukhala wotsimikiza. Ngati simuganizira za exotics zaposachedwa, ndiye kuti kasinthidwe kake ka ma seva mu rack alibe kanthu. Tsopano tili ndi vuto lina - mtengo wa malo ogwiritsidwa ntchito ndi seva mu data center, ndiko kuti, malo mu rack.
Pozindikira kuti izi zinali choncho, tinaganiza zowerengera momwe tinkagwiritsira ntchito bwino zoyala.
Tinatenga mtengo wa seva yamphamvu kwambiri kuchokera ku zovomerezeka zachuma, kuwerengera kuchuluka kwa ma seva otere omwe tingawaike muzitsulo, ndi ntchito zingati zomwe tingagwire nawo pogwiritsa ntchito chitsanzo chakale "seva imodzi = ntchito imodzi" ndi zochuluka bwanji. mankhwala akhoza kugwiritsa ntchito. Anawerenga ndikugwetsa misozi. Zinapezeka kuti luso lathu logwiritsa ntchito ma racks ndi pafupifupi 11%. Mapeto ake ndi odziwikiratu: tiyenera kuwonjezera mphamvu zogwiritsira ntchito malo opangira deta. Zikuwoneka kuti yankho ndilodziwikiratu: muyenera kuyendetsa ntchito zingapo pa seva imodzi nthawi imodzi. Koma apa ndi pamene zovuta zimayambira.
Kusintha kwa misa kumakhala kovuta kwambiri - tsopano sikutheka kupatsa gulu lirilonse ku seva. Kupatula apo, tsopano ntchito zingapo zamalamulo osiyanasiyana zitha kukhazikitsidwa pa seva imodzi. Kuphatikiza apo, kusinthika kumatha kukhala kosagwirizana ndi mapulogalamu osiyanasiyana. Kuzindikira kumakhalanso kovuta kwambiri: ngati muwona kuchuluka kwa CPU kapena kugwiritsa ntchito disk pa seva, simukudziwa kuti ndi ntchito iti yomwe ikuyambitsa vuto.
Koma chachikulu ndikuti palibe kudzipatula pakati pa ntchito zomwe zikuyenda pamakina omwewo. Pano, mwachitsanzo, ndi graph ya nthawi yanthawi yoyankhidwa ya ntchito ya seva isanayambe komanso itatha kugwiritsa ntchito makompyuta omwewo pa seva yomweyi, mosagwirizana ndi yoyamba - nthawi yoyankha ntchito yaikulu yawonjezeka kwambiri.
One-cloud masters ndi gulu la failover lomwe limayang'anira nyimbo zamtambo. Wopanga mapulogalamuwa amatumiza chiwonetsero kwa mbuye, chomwe chili ndi zidziwitso zonse zofunika kuchititsa msonkhanowo. Kutengera izi, mbuyeyo amapereka malamulo kwa osankhidwa osankhidwa (makina opangidwa kuti aziyendetsa zotengera). Ma minion ali ndi wothandizira wathu, yemwe amalandira lamulo, amapereka malamulo ake kwa Docker, ndipo Docker amakonza kernel ya linux kuti akhazikitse chidebe choyenera. Kuphatikiza pakuchita malamulo, wothandizirayo amangouza mbuye wake za kusintha kwa makina onse a minion ndi zotengera zomwe zikuyenda pamenepo.
Kugawa Zothandizira
Tsopano tiyeni tiwone vuto la kugawa kwazinthu zovuta kwa ma minion ambiri.
Chida cha makompyuta mumtambo umodzi ndi:
Kuchuluka kwa mphamvu ya purosesa yogwiritsidwa ntchito ndi ntchito inayake.
Kuchuluka kwa kukumbukira komwe kulipo pantchitoyo.
Magalimoto a pa intaneti. Aliyense wa minion ali ndi mawonekedwe apadera a netiweki omwe ali ndi bandwidth yochepa, kotero ndizosatheka kugawa ntchito popanda kuganizira kuchuluka kwa deta yomwe amatumiza pa intaneti.
Ma disks. Kuphatikiza apo, mwachiwonekere, ku danga la ntchitoyi, timagawanso mtundu wa disk: HDD kapena SSD. Ma disks amatha kupereka zopempha zingapo pamphindikati - IOPS. Chifukwa chake, pazinthu zomwe zimapanga ma IOPS ochulukirapo kuposa momwe disk imodzi ingagwiritsire ntchito, timagawanso "spindles" - ndiko kuti, zida za disk zomwe ziyenera kusungidwa kuti zitheke.
Ndiye pa ntchito zina, mwachitsanzo kwa wosuta-cache, tikhoza kulemba zinthu zomwe zagwiritsidwa ntchito motere: 400 processor cores, 2,5 TB of memory, 50 Gbit / s traffic mbali zonse ziwiri, 6 TB ya HDD space yomwe ili pa 100 spindles. Kapena mumawonekedwe odziwika bwino monga awa:
Ntchito zonse mu OK (ndipo mwina kulikonse) zitha kugawidwa m'magulu:
Ntchito Zachidule za Latency - prod. Pazochita ndi ntchito zotere, kuchedwa kuyankha (latency) ndikofunikira kwambiri, momwe pempho lililonse lidzasinthidwa mwachangu ndi dongosolo. Zitsanzo za ntchito: ma intaneti, ma cache, maseva ogwiritsira ntchito, kusungirako kwa OLTP, ndi zina.
Mavuto owerengera - batch. Apa, kuthamanga kwachangu kwa pempho lililonse sikofunikira. Kwa iwo, ndikofunikira kuwerengera zingati zomwe ntchitoyi ingachite mu nthawi yayitali (yanthawi yayitali). Izi zitha kukhala ntchito zilizonse za MapReduce, Hadoop, kuphunzira pamakina, ziwerengero.
Zochita zakumbuyo - zopanda pake. Kwa ntchito zotere, palibe latency kapena throughput ndizofunikira kwambiri. Izi zikuphatikizapo mayesero osiyanasiyana, kusamuka, kuwerengeranso, ndi kusinthidwa kwa deta kuchokera kumtundu wina kupita ku wina. Kumbali imodzi, iwo ali ofanana ndi owerengedwera, kumbali ina, ziribe kanthu kwa ife kuti amatsirizidwa mofulumira bwanji.
Apa kugwiritsa ntchito bwino kumakhala bwinoko kale kuposa ntchito zomwe zimachedwa kuchedwa. Koma phindu lidzakhala lalikulu kwambiri ngati mutagwirizanitsa mitundu yonse ya ntchito pa makina amodzi a minion ndikugawa zinthu zake popita. Ntchito ikachedwa kuchedwa ikufuna purosesa, imalandila nthawi yomweyo, ndipo zinthu zikapanda kufunikira, zimasamutsidwa ku ntchito yowerengera, i.e. chonga ichi:
Koma bwanji?
Choyamba, tiyeni tiwone prod ndi alloc yake: cpu = 4. Tiyenera kusunga ma cores anayi. Mu Docker kuthamanga izi zitha kuchitika m'njira ziwiri:
Kugwiritsa ntchito njira --cpuset=1-4, i.e. perekani makina anayi enieni pamakina ku ntchitoyo.
Gwiritsani ntchito --cpuquota=400_000 --cpuperiod=100_000, perekani gawo la nthawi ya purosesa, mwachitsanzo, sonyezani kuti 100 ms iliyonse yanthawi yeniyeni ntchitoyo siwononga nthawi yopitilira 400 ms ya purosesa. Miyendo inayi yomweyi imapezeka.
Koma ndi njira iti mwa njira izi yomwe ili yoyenera?
cpuset imawoneka yokongola kwambiri. Ntchitoyi ili ndi ma cores anayi odzipatulira, zomwe zikutanthauza kuti ma processor cache azigwira ntchito moyenera momwe angathere. Izi zilinso ndi zovuta zake: tikuyenera kugwira ntchito yogawa mawerengero pamakina osatsitsa m'malo mwa OS, ndipo iyi ndi ntchito yosakhala yaing'ono, makamaka ngati tiyesa kuyika ntchito zamagulu pazida zotere. makina. Mayesero awonetsa kuti kusankha komwe kuli ndi gawo kuli koyenera apa: mwanjira iyi makina ogwiritsira ntchito ali ndi ufulu wambiri posankha pachimake kuti agwire ntchitoyo pakali pano ndipo nthawi ya purosesa imagawidwa bwino kwambiri.
Tiyeni tiwone momwe tingasungire ku Docker kutengera kuchuluka kwa ma cores. Chiwerengero cha ntchito zamagulu sichikugwiranso ntchito, chifukwa palibe chifukwa chochepetsera kuchuluka, ndikwanira kungotsimikizira zochepa. Ndipo apa chisankho chikugwirizana bwino docker run --cpushares.
Tidagwirizana kuti ngati batch ikufuna chitsimikizo chapakati chimodzi, ndiye tikuwonetsa --cpushares=1024, ndipo ngati pali ma cores osachepera awiri, ndiye tikuwonetsa --cpushares=2048. Magawo a Cpu samasokoneza mwanjira iliyonse ndikugawa nthawi ya purosesa bola ngati pali zokwanira. Chifukwa chake, ngati prod sakugwiritsa ntchito ma cores ake onse anayi pakadali pano, palibe cholepheretsa ntchito za batch, ndipo atha kugwiritsa ntchito nthawi yowonjezera purosesa. Koma pakakhala kuchepa kwa ma processor, ngati prod yadya ma cores ake onse anayi ndipo yafika pamlingo wake, nthawi yotsalayo idzagawidwa molingana ndi ma cpushares, mwachitsanzo, pamiyeso itatu yaulere, imodzi idzakhala kupatsidwa ntchito yokhala ndi ma cpushare 1024, ndipo awiri otsalawo adzapatsidwa ntchito yokhala ndi 2048 cpushare.
Koma kugwiritsa ntchito magawo ndi magawo sikukwanira. Tiyenera kuwonetsetsa kuti ntchito yochedwetsa pang'ono imakhala patsogolo kuposa ntchito ya batch pogawa nthawi ya purosesa. Popanda kuyika patsogolo kotere, ntchito ya batch idzatenga nthawi yonse ya purosesa panthawi yomwe ikufunika ndi prod. Palibe zosankha zoyika patsogolo zotengera mu Docker run, koma mfundo za Linux CPU scheduler zimakhala zothandiza. Mukhoza kuwerenga za iwo mwatsatanetsatane apa, ndipo mkati mwa nkhaniyi tikambirana mwachidule:
SCHED_OTHER
Mwachikhazikitso, njira zonse zogwiritsira ntchito makina a Linux zimalandiridwa.
Koma ntchito sizimadya purosesa yokha, komanso magalimoto, zomwe zimakhudza kuchedwa kwa ntchito yapaintaneti kuposa kugawa kolakwika kwazinthu za purosesa. Chifukwa chake, mwachibadwa timafuna kupeza chithunzi chofanana cha magalimoto. Ndiye kuti, ntchito ya prod ikatumiza mapaketi ku netiweki, timachepetsa kuthamanga kwambiri (formula alloc: lan=[*,500mbps) ), yemwe prod angachite izi. Ndipo pa batch timatsimikizira zocheperako zokha, koma osachepetsa (formula alloc: lan=[10Mbps,*) ) Pankhaniyi, kuchuluka kwa magalimoto a prod kuyenera kukhala patsogolo kuposa ntchito zamagulu.
Apa Docker alibe zoyambira zomwe tingagwiritse ntchito. Koma zimatithandiza Linux Traffic Control. Tinatha kukwaniritsa zotsatira zomwe tikufuna ndi chithandizo cha chilango Hierarchical Fair Service Curve. Ndi chithandizo chake, timasiyanitsa magulu awiri a magalimoto: otsogola kwambiri komanso otsika kwambiri batch/osagwira ntchito. Zotsatira zake, kasinthidwe ka magalimoto otuluka ali motere:
apa 1:0 ndi "root qdisc" ya hsfc chilango; 1: 1 - kalasi ya ana ya hsfc yokhala ndi malire a bandwidth a 8 Gbit / s, pomwe magulu a ana a zida zonse amayikidwa; 1: 2 - kalasi ya ana a hsfc ndi yofala kumagulu onse ndi ntchito zopanda pake zomwe zili ndi malire "zamphamvu", zomwe zafotokozedwa pansipa. Makalasi a ana otsala a hsfc ndi makalasi odzipatulira omwe ali ndi zotengera zomwe zili ndi malire ofanana ndi mawonekedwe awo - 450 ndi 400 Mbit/s. Kalasi iliyonse ya hsfc imapatsidwa qdisc queue fq kapena fq_codel, kutengera mtundu wa Linux kernel, kupewa kutayika kwa paketi pakaphulika magalimoto.
Nthawi zambiri, maphunziro a tc amagwira ntchito yoyika patsogolo magalimoto otuluka. Koma tikufunanso kuyika patsogolo kuchuluka kwa magalimoto omwe akubwera - pambuyo pake, ntchito ina yamagulu imatha kusankha njira yonse yomwe ikubwera, kulandira, mwachitsanzo, gulu lalikulu lazolowera zamapu&kuchepetsa. Kwa izi timagwiritsa ntchito module ifb, yomwe imapanga mawonekedwe a ifbX pa mawonekedwe aliwonse a netiweki ndikuwongolera magalimoto omwe akubwera kuchokera ku mawonekedwe kupita kumayendedwe otuluka pa ifbX. Kupitilira apo, kwa ifbX, machitidwe onse omwewo amagwira ntchito kuwongolera magalimoto omwe atuluka, pomwe kasinthidwe ka hsfc kudzakhala kofanana kwambiri:
Pazoyeserera, tidapeza kuti hsfc ikuwonetsa zotsatira zabwino pomwe gulu la 1: 2 la magalimoto osafunikira kwambiri / osagwira ntchito amakhala ochepa pamakina a minion osapitilira njira ina yaulere. Kupanda kutero, kuchuluka kwa magalimoto osafunikira kumakhudza kuchedwa kwa ntchito za prod kwambiri. miniond imatsimikizira kuchuluka kwa bandiwifi yaulere sekondi iliyonse, kuyeza kuchuluka kwa magalimoto omwe amagwiritsidwa ntchito pazantchito zonse za minion yopatsidwa. ndikuchichotsa ku network interface bandwidth ndi malire ang'onoang'ono, i.e.
Magulu amatanthauzidwa paokha pamayendedwe obwera ndi otuluka. Ndipo molingana ndi zikhalidwe zatsopano, miniond imakonzanso malire osafunikira 1: 2.
Chifukwa chake, tidakhazikitsa makalasi onse atatu odzipatula: prod, batch and idle. Maphunzirowa amakhudza kwambiri machitidwe a ntchito. Chifukwa chake, tidaganiza zoyika izi pamwamba pa utsogoleri, kuti tikayang'ana dzina la mzere wotsogola zidziwike nthawi yomweyo zomwe tikuchita:
Anzathu onse Webusaiti ΠΈ nyimbo mbalizo zimayikidwa mu hierarchy pansi pa prod. Mwachitsanzo, pansi pa batch, tiyeni tiyike ntchito nyimbo catalog, yomwe nthawi ndi nthawi imapanga kalozera wama nyimbo kuchokera pamafayilo a mp3 omwe adakwezedwa ku Odnoklassniki. Chitsanzo cha utumiki wosagwira ntchito chingakhale chosinthira nyimbo, zomwe zimasinthiratu kuchuluka kwa nyimbo.
Ndipo tsopano, poyang'ana pa dzina la utumiki, sitimvetsetsa zomwe zimagwira ntchito, komanso gulu lake lodzipatula, lomwe limatanthauza kutsutsa kwake, ndi zina zotero.
Chilichonse ndichabwino, koma pali chowonadi chowawa chimodzi. Sizingatheke kudzipatula kwathunthu ntchito zomwe zikuyenda pa makina amodzi.
Zomwe tidakwanitsa kukwaniritsa: ngati batch idya kwambiri okha Zothandizira za CPU, ndiye kuti makina a Linux CPU omangidwamo amagwira ntchito yake bwino kwambiri, ndipo palibe chilichonse chokhudza ntchito ya prod. Koma ngati batch ntchito ikuyamba kugwira ntchito ndi kukumbukira, ndiye kuti kukopana kumawonekera kale. Izi zimachitika chifukwa ntchito ya prod "yatsukidwa" m'makumbukidwe a purosesa - chifukwa chake, kuphonya kwa cache kumawonjezeka, ndipo purosesa imagwira ntchito ya prod pang'onopang'ono. Ntchito yotereyi imatha kukulitsa latency ya chidebe chathu chodziwika bwino ndi 10%.
Kupatula magalimoto kumakhala kovuta kwambiri chifukwa makhadi amakono a network ali ndi mzere wamkati wamapaketi. Ngati paketi yochokera ku ntchito ya batch ikafika poyamba, ndiye kuti idzakhala yoyamba kufalitsidwa pa chingwe, ndipo palibe chomwe chingachitike.
Kuonjezera apo, takhala tikutha kuthetsa vuto loyika patsogolo magalimoto a TCP: njira ya hsfc siigwira ntchito kwa UDP. Ndipo ngakhale pamtundu wa TCP, ngati ntchito ya batch imapanga magalimoto ambiri, izi zimaperekanso za 10% kuwonjezeka kwa kuchedwa kwa ntchito ya prod.
kulekerera zolakwika
Chimodzi mwazolinga popanga mtambo umodzi chinali kukonza kulolerana kwa zolakwika za Odnoklassniki. Chifukwa chake, chotsatira ndikufuna kulingalira mwatsatanetsatane zochitika za zolephera ndi ngozi. Tiyeni tiyambe ndi zochitika zosavuta - kulephera kwa chidebe.
Vuto lachiwiri lotheka ndikugwa kwa chidebecho. Ndipo apa mfundo zoyambitsanso zimatipulumutsa, aliyense amawadziwa, Docker mwiniwake amachita ntchito yabwino. Pafupifupi ntchito zonse za prod zimakhala ndi mfundo zoyambitsanso. Nthawi zina timagwiritsa ntchito on_failure pa ntchito za batch kapena kukonza zotengera za prod.
Kodi mungatani ngati gulu lonse silikupezeka?
Mwachiwonekere, yendetsani chidebecho pamakina ena. Gawo losangalatsa apa ndizomwe zimachitika ku ma adilesi a IP omwe amaperekedwa ku chidebecho.
Titha kugawira zotengera ma adilesi a IP ofanana ndi makina a minion pomwe zotengerazi zimayendera. Kenako, chidebecho chikayambitsidwa pamakina ena, adilesi yake ya IP imasintha, ndipo makasitomala onse ayenera kumvetsetsa kuti chidebecho chasuntha, ndipo tsopano akuyenera kupita ku adilesi ina, yomwe imafuna ntchito yosiyana ya Service Discovery.
Ndipo chopinga chinanso chachikulu: kuti zida zathu zakale zigwire ntchito ndi zatsopano, tifunika kulembanso ntchito zonse kuti tigwiritse ntchito mtundu wina wa Service Discovery system. Pali ntchito zambiri, ndipo m'malo ena zimakhala zosatheka zikafika pazida zotsika zomwe zimagwira pa OS kernel level kapena mwachindunji ndi hardware. Kugwiritsa ntchito izi pogwiritsa ntchito njira zokhazikitsidwa, monga galimoto yam'mbali zingatanthauze m'malo ena katundu wowonjezera, mwa ena - zovuta za ntchito ndi zochitika zina zolephera. Sitinkafuna kusokoneza zinthu, choncho tinaganiza zogwiritsa ntchito Service Discovery mwakufuna.
Mumtambo umodzi, IP imatsata chidebecho, mwachitsanzo, ntchito iliyonse ili ndi adilesi yake ya IP. Adilesiyi ndi "static": imaperekedwa nthawi iliyonse pamene ntchitoyo imatumizidwa kumtambo. Ngati ntchitoyo inali ndi maulendo angapo pa moyo wake, ndiye kuti pamapeto pake idzapatsidwa ma adilesi ambiri a IP monga momwe zinalili nthawi zambiri.
Pambuyo pake, maadiresi awa sasintha: amapatsidwa kamodzi ndikupitiriza kukhalapo pa moyo wonse wa ntchito yopanga. Maadiresi a IP amatsata zotengera pa netiweki yonse. Ngati chidebecho chisamutsidwa ku minion ina, ndiye kuti adilesi idzatsatira.
Chifukwa chake, kupanga mapu a dzina lautumiki pamndandanda wake wa ma adilesi a IP kumasintha kawirikawiri. Ngati muyang'ananso mayina a zochitika zautumiki zomwe tazitchula kumayambiriro kwa nkhaniyi (1.ok-web.group1.web.front.prod, 2.ok-web.group1.web.front.prod, ...), tiwona kuti amafanana ndi ma FQDN omwe amagwiritsidwa ntchito mu DNS. Ndiko kulondola, kuyika mayina anthawi yantchito kumaadiresi awo a IP, timagwiritsa ntchito protocol ya DNS. Kuphatikiza apo, DNS iyi imabwezeretsa ma adilesi onse a IP osungidwa pazotengera zonse - zonse zomwe zikuyenda ndikuyimitsidwa (tinene kuti zofananira zitatu zimagwiritsidwa ntchito, ndipo tili ndi ma adilesi asanu omwe asungidwa pamenepo - onse asanu abwezedwa). Makasitomala, atalandira chidziwitsochi, ayesa kukhazikitsa kulumikizana ndi zofananira zonse zisanu - ndikuzindikira zomwe zikugwira ntchito. Njira iyi yodziwira kupezeka ndi yodalirika kwambiri; sizimaphatikizapo DNS kapena Service Discovery, zomwe zikutanthauza kuti palibe zovuta zovuta zothetsera pakuwonetsetsa kufunikira kwa chidziwitso ndi kulolerana kolakwika kwa machitidwewa. Komanso, mu mautumiki ovuta omwe ntchito ya portal yonse imadalira, sitingagwiritse ntchito DNS nkomwe, koma ingolowetsani ma adilesi a IP mu kasinthidwe.
Kukhazikitsa kusamutsa kwa IP kuseri kwa zotengera kumatha kukhala kopanda pake - ndipo tiwona momwe kumagwirira ntchito ndi chitsanzo chotsatirachi:
Tinene kuti mbuye wamtambo umodzi amapereka lamulo kwa minion M1 kuthamanga 1.ok-web.group1.web.front.prod ndi adilesi 1.1.1.1. Amagwira ntchito pa minion BIRD, yomwe imatsatsa adilesi iyi kumaseva apadera chowunikira njira. Otsatirawa ali ndi gawo la BGP ndi hardware network, momwe njira ya adiresi 1.1.1.1 pa M1 imamasuliridwa. M1 njira mapaketi mkati mwa chidebe pogwiritsa ntchito Linux. Pali ma seva atatu owonetsera njira, popeza iyi ndi gawo lofunikira kwambiri lachitukuko chamtambo umodzi - popanda iwo, maukonde mumtambo umodzi sangagwire ntchito. Timawayika muzitsulo zosiyana, ngati n'kotheka zomwe zili m'zipinda zosiyanasiyana za data center, kuti muchepetse mwayi wa atatu onse akulephera nthawi imodzi.
Tiyeni tsopano tiyerekeze kuti kugwirizana pakati pa mbuye wamtambo umodzi ndi M1 minion kwatayika. Mbuye wamtambo umodzi tsopano adzachitapo kanthu poganiza kuti M1 yalephera kwathunthu. Ndiye kuti, idzapereka lamulo kwa M2 minion kuti ayambe web.group1.web.front.prod ndi adilesi yomweyo 1.1.1.1. Tsopano tili ndi njira ziwiri zotsutsana pa intaneti za 1.1.1.1: pa M1 ndi pa M2. Kuti tithetse mikangano yotere, timagwiritsa ntchito Multi Exit Discriminator, yomwe yatchulidwa mu chilengezo cha BGP. Iyi ndi nambala yomwe ikuwonetsa kulemera kwa njira yotsatsira. Pakati pa njira zotsutsana, njira yomwe ili ndi mtengo wotsika wa MED idzasankhidwa. Mbuye wamtambo umodzi amathandizira MED ngati gawo lofunikira la ma adilesi a IP. Kwa nthawi yoyamba, adiresi imalembedwa ndi MED = 1. M'malo a chidebe chodzidzimutsa chotere, mbuye amachepetsa MED, ndipo M000 adzalandira kale lamulo lolengeza adiresi 000 ndi MED = 2. Chitsanzo chomwe chikuyenda pa M1.1.1.1 chidzakhalabe pamenepa palibe kugwirizana, ndipo tsogolo lake silinatisangalatse pang'ono mpaka kugwirizana ndi mbuye kubwezeretsedwa, pamene adzayimitsidwa ngati wakale.
ngozi
Machitidwe onse oyang'anira malo a data nthawi zonse amayendetsa zolephera zazing'ono movomerezeka. Kusefukira kwa chidebe ndikofala pafupifupi kulikonse.
Tiyeni tiwone momwe timachitira zadzidzidzi, monga kulephera kwa magetsi muchipinda chimodzi kapena zingapo za data center.
Kodi ngozi imatanthauza chiyani padongosolo la data center? Choyamba, uku ndikulephera kwakukulu kwa nthawi imodzi kwamakina ambiri, ndipo makina owongolera amafunika kusamutsa zida zambiri nthawi imodzi. Koma ngati tsokalo ndi lalikulu kwambiri, ndiye kuti zikhoza kuchitika kuti ntchito zonse sizingaperekedwenso kwa abwenzi ena, chifukwa mphamvu ya data center imatsika pansi pa 100% ya katunduyo.
Nthawi zambiri ngozi limodzi ndi kulephera kwa ulamuliro wosanjikiza. Izi zitha kuchitika chifukwa cha kulephera kwa zida zake, koma nthawi zambiri chifukwa chakuti ngozi sizimayesedwa, ndipo gawo lowongolera lokha limagwa chifukwa cha kuchuluka kwa katundu.
Kodi mungatani pa zonsezi?
Kusamuka kwa anthu ambiri kumatanthawuza kuti pali ntchito zambiri, kusamuka, ndi kutumizidwa komwe kumachitika m'magawo. Kusamuka kulikonse kutha kutenga nthawi kuti apereke ndi kumasula zithunzi za m'chidebe kwa anthu ochepa, kukhazikitsa ndi kukhazikitsa zotengera, ndi zina zotero. Choncho, ndikofunika kuti ntchito zofunika kwambiri ziyambe zisanakhale zofunika kwambiri.
Pa prod timayika zofunikira kwambiri, 0; pa mtanda - pang'ono kutsika, 100; pa zopanda pake - ngakhale kutsika, 200. Zoyambira zimayikidwa mwadongosolo. Ntchito zonse zotsikirako mu utsogoleri wotsogola zizikhala ndi zofunikira zofananira. Ngati tikufuna kuti ma cache mkati mwa prod akhazikitsidwe pamaso pa ma frontends, ndiye kuti timagawira zofunikira ku cache = 0 ndi kutsogolo kwa subqueues = 1. Ngati, mwachitsanzo, tikufuna kuti chitseko chachikulu chikhazikitsidwe kuchokera kutsogolo, ndipo nyimbo kutsogolo kokha. ndiye, ndiye titha kuyika zofunika kwambiri pazomaliza - 10.
Vuto lotsatira ndikusowa kwazinthu. Choncho, zida zambiri, maholo onse a data center, analephera, ndipo tinayambitsanso mautumiki ambiri omwe tsopano palibe zinthu zokwanira kwa aliyense. Muyenera kusankha ntchito zomwe mungadzipereke kuti mupitirize ntchito zofunika kwambiri.
Mosiyana ndi kuyika patsogolo, sitingathe kudzipereka mwachisawawa ntchito zonse zamagulu; zina ndi zofunika pakugwira ntchito kwa portal. Chifukwa chake, tawunikira mosiyana kukhululukidwa patsogolo ntchito. Ikayikidwa, ntchito yofunika kwambiri imatha kuwongolera, mwachitsanzo, kuyimitsa, ntchito yofunika kwambiri ngati kulibenso othandizira aulere. Pankhaniyi, ntchito yokhala ndi zofunikira zochepa mwina ikhalabe yosayikidwa, i.e. sipadzakhalanso minion yoyenera kwa iyo yokhala ndi zida zokwanira zaulere.
Muulamuliro wathu, ndizosavuta kutchula chinthu chofunikira kwambiri kuti ntchito za prod ndi batch zitsogolere kapena kuyimitsa ntchito zopanda pake, koma osati wina ndi mzake, pofotokoza chofunikira kwambiri chopanda ntchito chofanana ndi 200. Monga momwe zimakhalira pakuyika patsogolo, timafunikira titha kugwiritsa ntchito utsogoleri wathu kuti tifotokoze malamulo ovuta kwambiri. Mwachitsanzo, tiyeni tiwonetsere kuti timasiya nyimbo ngati tilibe zida zokwanira pa tsamba lalikulu la intaneti, ndikuyika patsogolo ma node ofananirako pansi: 10.
Ngozi zonse za DC
Chifukwa chiyani malo onse a data angalephereke? Chinthu. Inali positi yabwino mphepo yamkuntho inakhudza ntchito ya data center. Zinthuzo zitha kuonedwa ngati anthu opanda pokhala omwe nthawi ina adawotcha ma optics mosiyanasiyana, ndipo malo opangira data adasiya kulumikizana ndi masamba ena. Chifukwa cholephera chingakhalenso chinthu chaumunthu: wogwiritsa ntchitoyo adzapereka lamulo loti deta yonse idzagwa. Izi zitha kuchitika chifukwa cha vuto lalikulu. Kawirikawiri, kugwa kwa data center sikwachilendo. Izi zimachitika kwa ife kamodzi miyezi ingapo iliyonse.
Njira yoyamba ndiyo kudzipatula. Nthawi iliyonse yamtambo umodzi imakhala yokha ndipo imatha kuyang'anira makina pa data imodzi yokha. Ndiko kuti, kutayika kwa mtambo chifukwa cha nsikidzi kapena malamulo olakwika oyendetsa ndikutayika kwa data imodzi yokha. Ndife okonzekera izi: tili ndi ndondomeko ya redundancy momwe zofananira za ntchito ndi deta zili m'malo onse a deta. Timagwiritsa ntchito nkhokwe zololera zolakwika ndipo nthawi ndi nthawi timayesa zolephera.
Popeza lero tili ndi malo anayi a data, zomwe zikutanthauza zinayi zosiyana, zochitika zapadera za mtambo umodzi.
Njirayi sikuti imangoteteza kulephera kwa thupi, komanso imatha kuteteza ku zolakwika za opareshoni.
Ndi chiyani chinanso chomwe chingachitidwe ndi chinthu chaumunthu? Wogwiritsa ntchito akapatsa mtambo lamulo lachilendo kapena lomwe lingakhale lowopsa, angapemphedwe kuti athetse vuto laling'ono kuti awone momwe analingalirira bwino. Mwachitsanzo, ngati uwu ndi mtundu wina wa kuyimitsidwa kwa ma replicas ambiri kapena lamulo lachilendo - kuchepetsa kuchuluka kwa zofananira kapena kusintha dzina lachithunzicho, osati nambala yachiwonetsero mu chiwonetsero chatsopano.
Zotsatira
Zodziwika za mtambo umodzi:
Hierarchical and visual nameming scheme pazantchito ndi zotengera, zomwe zimakupatsani mwayi wodziwa mwachangu kuti ntchitoyo ndi chiyani, ikukhudzana bwanji ndi momwe imagwirira ntchito komanso omwe ali ndi udindo.
Timayika zathu njira yophatikizira prod- ndi batch-ntchito pa minions kuti apititse patsogolo luso la kugawana makina. M'malo mwa cpuset timagwiritsa ntchito ma CPU quotas, magawo, ndondomeko za CPU scheduler ndi Linux QoS.
Sizinali zotheka kupatula zotengera zomwe zikuyenda pamakina omwewo, koma kukopana kwawo kumakhalabe mkati mwa 20%.
Kufunika koganizira zinthu zomwe zimagwiritsidwa ntchito ndi ntchito, monga:
bandwidth network;
mitundu ndi "spindles" za disks.
Kufunika kosonyeza zofunikira za mautumiki panthawi yachangu, ufulu ndi magawo a malamulo azinthu, zomwe zimathetsedwa pogwiritsa ntchito mizere ya hierarchical mumtambo umodzi.
Kufunika kokhala ndi mayina amunthu kuti achepetse nthawi yoyankha ngozi ndi zochitika
Kusatheka kwa nthawi imodzi kufalikira kwa Service Discovery; kufunikira kokhala nthawi yayitali ndi ntchito zomwe zimagwiridwa ndi makamu a hardware - china chake chomwe chimathetsedwa ndi ma adilesi a "static" a IP kutsatira nkhokwe, ndipo, chifukwa chake, kufunikira kwa kuphatikiza kwapadera ndi ma network akuluakulu.
Ntchito zonsezi zingafune kusinthidwa kwakukulu kwa mayankho omwe alipo kuti agwirizane ndi ife, ndipo, titawunika kuchuluka kwa ntchito, tinazindikira kuti titha kupanga yankho lathu ndi ndalama zofananira zantchito. Koma yankho lanu lidzakhala losavuta kugwiritsa ntchito ndikukulitsa - liribe zotsalira zosafunikira zomwe zimathandizira magwiridwe antchito omwe sitifunikira.
Kwa iwo omwe amawerenga mizere yomaliza, zikomo chifukwa cha kuleza mtima kwanu ndi chidwi chanu!