Minirozhovor s Olegom Anastasyevom: tolerancia chýb v Apache Cassandra

Minirozhovor s Olegom Anastasyevom: tolerancia chýb v Apache Cassandra

Odnoklassniki je najväčším používateľom Apache Cassandra na RuNet a jedným z najväčších na svete. Cassandru sme začali používať v roku 2010 na ukladanie hodnotení fotografií a teraz Cassandra spravuje petabajty údajov na tisíckach uzlov, v skutočnosti sme dokonca vyvinuli vlastné Transakčná databáza NewSQL.
12. septembra v našej kancelárii v Petrohrade budeme konať druhé stretnutie venované Apache Cassandre. Hlavným rečníkom podujatia bude hlavný inžinier Odnoklassniki Oleg Anastasyev. Oleg je odborníkom v oblasti distribuovaných systémov odolných voči poruchám, s Cassandrou spolupracuje viac ako 10 rokov a opakovane hovoril o vlastnostiach používania tohto produktu na konferenciách.

V predvečer stretnutia sme sa s Olegom rozprávali o odolnosti distribuovaných systémov s Cassandrou, opýtali sme sa, o čom bude na stretnutí hovoriť a prečo sa oplatí zúčastniť sa tohto podujatia.

Oleg začal svoju programátorskú kariéru už v roku 1995. Vyvinul softvér v bankovníctve, telekomunikáciách a doprave. Od roku 2007 pracuje ako vedúci vývojár v Odnoklassniki v tíme platformy. Medzi jeho zodpovednosti patrí vývoj architektúr a riešení pre systémy s vysokou záťažou, veľké dátové sklady a riešenie problémov výkonu a spoľahlivosti portálu. V rámci spoločnosti školí aj vývojárov.

- Oleg, ahoj! V máji sa uskutočnilo prvé stretnutie, venovaný Apache Cassandre, účastníci hovoria, že diskusie trvali do neskorej noci, povedzte mi prosím, aké sú vaše dojmy z prvého stretnutia?

Vývojári s rôznym zázemím z rôznych spoločností prišli s vlastnou bolesťou, nečakanými riešeniami problémov a úžasnými príbehmi. Väčšinu stretnutia sa nám podarilo uskutočniť v diskusnom formáte, no diskusií bolo toľko, že sme sa mohli dotknúť len tretiny plánovaných tém. Veľkú pozornosť sme venovali tomu, ako a čo sledujeme na príklade našich reálnych produkčných služieb.

Zaujalo ma to a veľmi sa mi to páčilo.

- Súdiac podľa oznámenia, druhé stretnutie bude celý venovaný tolerancii chýb, prečo ste si vybrali túto tému?

Cassandra je typický zaneprázdnený distribuovaný systém s obrovským množstvom funkcií nad rámec priameho vybavovania požiadaviek používateľov: klebety, detekcia zlyhania, šírenie zmien schémy, rozširovanie/zmenšovanie klastra, antientropia, zálohovanie a obnova atď. Ako v každom distribuovanom systéme, so zvyšujúcim sa množstvom hardvéru sa zvyšuje pravdepodobnosť zlyhania, takže prevádzka produkčných klastrov Cassandra si vyžaduje hlboké pochopenie jeho štruktúry, aby bolo možné predvídať správanie v prípade porúch a činnosti operátora. Po mnohých rokoch používania Cassandry sme nazhromaždili značné odborné znalosti, o ktoré sme pripravení sa podeliť a tiež chceme diskutovať o tom, ako kolegovia v obchode riešia typické problémy.

— Keď príde reč na Cassandru, čo máte na mysli pod pojmom tolerancia chýb?

V prvom rade, samozrejme, schopnosť systému prežiť typické zlyhania hardvéru: stratu strojov, diskov alebo sieťového pripojenia s uzlami/dátovými centrami. Samotná téma je však oveľa širšia a zahŕňa najmä obnovu po zlyhaniach, vrátane porúch, na ktoré sú ľudia málokedy pripravení, napríklad chyby operátora.

— Môžete uviesť príklad najviac zaťaženého a najväčšieho dátového klastra?

Jedným z našich najväčších klastrov je darčekový klaster: viac ako 200 uzlov a stovky TB údajov. Nie je však najviac zaťažený, pretože je pokrytý distribuovanou vyrovnávacou pamäťou. Naše najvyťaženejšie klastre zvládajú desaťtisíce RPS pre zápis a tisíce RPS pre čítanie.

- Wow! Ako často sa niečo zlomí?

Áno stále! Celkovo máme viac ako 6 tisíc serverov a každý týždeň sa vymení niekoľko serverov a niekoľko desiatok diskov (bez zohľadnenia paralelných procesov upgradu a rozšírenia strojového parku). Pre každý typ poruchy existujú jasné pokyny, čo robiť a v akom poradí, všetko je automatizované vždy, keď je to možné, takže poruchy sú rutinné a v 99% prípadov sa vyskytujú bez povšimnutia používateľov.

— Ako riešite takéto odmietnutia?

Od samého začiatku fungovania Cassandry a prvých incidentov sme pracovali na mechanizmoch zálohovania a obnovy z nich, budovali postupy nasadenia, ktoré zohľadňujú stav klastrov Cassandra a napríklad neumožňujú reštart uzlov. ak je možná strata údajov. O tom všetkom sa plánujeme porozprávať na stretnutí.

— Ako ste povedali, neexistujú absolútne spoľahlivé systémy. Na aké zlyhania sa pripravujete a dokážete prežiť?

Ak hovoríme o našich inštaláciách klastrov Cassandra, používatelia si nič nevšimnú, ak stratíme niekoľko strojov v jednom DC alebo jeden celý DC (toto sa stalo). S nárastom počtu DC uvažujeme o tom, že začneme zabezpečovať prevádzkyschopnosť v prípade výpadku dvoch DC.

— Čo si myslíte, že Cassandre chýba z hľadiska odolnosti voči chybám?

Cassandra, rovnako ako mnoho iných skorých NoSQL obchodov, vyžaduje hlboké pochopenie svojej vnútornej štruktúry a prebiehajúcich dynamických procesov. Povedal by som, že jej chýba jednoduchosť, predvídateľnosť a pozerateľnosť. Bude však zaujímavé vypočuť si názory ostatných účastníkov stretnutia!

Oleg, veľmi pekne ďakujem, že si si našiel čas na zodpovedanie otázok!

Všetkých, ktorí chcú komunikovať s odborníkmi v oblasti prevádzky Apache Cassandra, čakáme na meetupe 12. septembra v našej petrohradskej kancelárii.

Príďte, bude to zaujímavé!

Zaregistrujte sa na podujatie.

Zdroj: hab.com

Pridať komentár