Az infrastruktúra meghibásodásainak hatása az Amazon OpenSearch szolgáltatás szilánkjára

Az infrastruktúra meghibásodásainak hatása az Amazon OpenSearch szolgáltatás szilánkjára

Forrás csomópont: 1783553

Amazon OpenSearch szolgáltatás egy felügyelt szolgáltatás, amely megkönnyíti az OpenSearch és a régi Elasticsearch-fürtök biztonságossá tételét, telepítését és üzemeltetését az AWS felhőben. Az Amazon OpenSearch Service biztosítja az összes erőforrást a fürt számára, elindítja azt, és automatikusan észleli és kicseréli a meghibásodott csomópontokat, csökkentve ezzel az önállóan kezelt infrastruktúrák többletköltségét. A szolgáltatás megkönnyíti az interaktív naplóelemzések, a valós idejű alkalmazásfigyelés, a webhelykeresések és egyebek végrehajtását az OpenSearch legújabb verzióinak, az Elasticsearch 19 verziójának támogatásával (1.5-7.10 verziók), valamint a vizualizációs képességekkel. OpenSearch irányítópultok és Kibana (1.5–7.10 verzió).

A legújabb szervizszoftver-kiadásban frissítettük a szilánkok kiosztási logikáját, hogy az a terhelés tudatában legyen, így a szilánkok újraelosztása csomóponthiba esetén a szolgáltatás megakadályozza, hogy a túlélő csomópontokat túlterheljék a korábban a meghibásodott csomóponton tárolt szilánkok. Ez különösen fontos a Multi-AZ tartományok esetében a konzisztens és kiszámítható fürtteljesítmény biztosítása érdekében.

Ha többet szeretne megtudni a szilánkok elosztási logikájáról általában, tekintse meg a következőt Az Elasticsearch szilánkok elosztásának megfejtése.

A kihívás

Egy Amazon OpenSearch Service tartományról azt mondják, hogy „kiegyensúlyozott”, ha a csomópontok száma egyenlően oszlik el a konfigurált elérhetőségi zónák között, és a szilánkok teljes száma egyenlően oszlik el az összes elérhető csomópont között anélkül, hogy egyetlen index szilánkjait bármelyikre koncentrálnák. csomópont. Ezenkívül az OpenSearch rendelkezik egy „Zóna tudatosság” nevű tulajdonsággal, amely engedélyezése esetén biztosítja, hogy az elsődleges szilánk és a megfelelő replika különböző elérhetőségi zónákban legyen lefoglalva. Ha egynél több adatpéldánya van, a több rendelkezésre állási zóna jobb hibatűrést és rendelkezésre állást biztosít. Abban az esetben, ha a tartomány ki van méretezve vagy méretezve, vagy a csomópont(ok) meghibásodása során, az OpenSearch automatikusan újraosztja a szilánkokat az elérhető csomópontok között, miközben betartja a zóna tudatosságon alapuló kiosztási szabályokat.

Míg a szilánkok kiegyenlítési folyamata biztosítja, hogy a szilánkok egyenletesen oszlanak el a rendelkezésre állási zónák között, bizonyos esetekben, ha váratlan hiba történik egyetlen zónában, a szilánkok átcsoportosításra kerülnek a túlélő csomópontokhoz. Ez azt eredményezheti, hogy a túlélő csomópontok túlterheltek, ami befolyásolja a fürt stabilitását.

Például, ha egy három csomópontból álló fürt egyik csomópontja leáll, az OpenSearch újraelosztja a hozzá nem rendelt szilánkokat, amint az a következő ábrán látható. Itt a „P” egy elsődleges szilánkmásolat, míg az „R” egy replika szilánkmásolat.

A tartomány ezen viselkedése két részben magyarázható – meghibásodás és helyreállítás során.

A kudarc során

A több rendelkezésre állási zónára telepített tartomány életciklusa során többféle típusú meghibásodásba ütközhet.

Teljes zónahiba

Egy fürt számos ok miatt elveszíthet egyetlen elérhetőségi zónát, valamint az adott zónában lévő összes csomópontot is. Ma a szolgáltatás megpróbálja az elveszett csomópontokat a fennmaradó egészséges elérhetőségi zónákba helyezni. A szolgáltatás megpróbálja újra létrehozni az elveszett szilánkokat a fennmaradó csomópontokban, miközben továbbra is követi az elosztási szabályokat. Ez nem kívánt következményekkel járhat.

  • Amikor az érintett zóna szilánkjait átcsoportosítják az egészséges zónákba, szilánkok helyreállítását indítják el, ami növelheti a késéseket, mivel további CPU-ciklusokat és hálózati sávszélességet fogyaszt.
  • Egy n-AZ, n-copy beállításnál (n>1) a fennmaradó n-1 rendelkezésre állási zóna az n-edik szilánkmásolathoz van hozzárendelve, ami nemkívánatos lehet, mivel torzulást okozhat a szilánk elosztásában, ami szintén kiegyensúlyozatlan forgalom a csomópontok között. Ezek a csomópontok túlterhelhetők, ami további meghibásodásokhoz vezethet.

Részleges zónahiba

Részleges zónahiba esetén, vagy ha a tartomány csak néhány csomópontot veszít el egy elérhetőségi zónában, az Amazon OpenSearch Service megpróbálja a lehető leggyorsabban kicserélni a meghibásodott csomópontokat. Abban az esetben azonban, ha túl sokáig tart a csomópontok cseréje, az OpenSearch megpróbálja hozzárendelni a zóna hozzá nem rendelt szilánkjait a rendelkezésre állási zóna fennmaradó csomópontjaihoz. Ha a szolgáltatás nem tudja lecserélni a csomópontokat az érintett elérhetőségi zónában, akkor kioszthatja őket a másik konfigurált elérhetőségi zónába, ami tovább torzíthatja a szilánkok eloszlását mind a zónában, mind a zónán belül. Ennek ismét nem várt következményei vannak.

  • Ha a tartomány csomópontjainak nincs elegendő tárterületük a további szilánkok elhelyezéséhez, a tartomány írási blokkolható, ami befolyásolja az indexelési műveletet.
  • A szilánkok ferde eloszlása ​​miatt a tartomány torz forgalmat is tapasztalhat a csomópontok között, ami tovább növelheti az olvasási és írási műveletek várakozási idejét vagy időtúllépéseit.

felépülés

Ma a tartomány kívánt csomópontszámának fenntartása érdekében az Amazon OpenSearch Service adatcsomópontokat indít el a fennmaradó, egészséges elérhetőségi zónákban, hasonlóan a fenti hibaszakaszban leírt forgatókönyvekhez. Annak érdekében, hogy egy ilyen incidenst követően biztosítsák a csomópontok megfelelő elosztását az összes rendelkezésre állási zónában, manuális beavatkozásra volt szükség az AWS-nek.

Mi változik

Az általános hibakezelés javítása és a hiba tartomány állapotára és teljesítményére gyakorolt ​​hatásának minimalizálása érdekében az Amazon OpenSearch Service a következő változtatásokat hajtja végre:

  • Kényszer zóna tudatosság: Az OpenSearch már létező szilánkkiegyenlítő konfigurációval rendelkezik, amelyet kényszerfigyelésnek hívnak, és amely az elérhetőségi zónák beállítására szolgál, amelyekhez szilánkokat kell kiosztani. Például, ha rendelkezik egy zóna nevű tudatossági attribútummal, és konfigurálja a csomópontokat zone1 és a zone2, a kényszerített tudatosság segítségével megakadályozhatja, hogy az OpenSearch replikákat rendeljen hozzá, ha csak egy zóna áll rendelkezésre:
cluster.routing.allocation.awareness.attributes: zone
cluster.routing.allocation.awareness.force.zone.values: zone1,zone2

Ezzel a példakonfigurációval, ha két csomópontot indít el a node.attr.zone állítva zone1 és hozzon létre egy indexet öt szilánkból és egy replikából, az OpenSearch létrehozza az indexet, és lefoglalja az öt elsődleges szilánkot, de nem replikákat. A replikák csak egyszer vannak lefoglalva a csomópontokkal node.attr.zone állítva zone2 rendelkezésre állnak.

Az Amazon OpenSearch Service a kényszerített éberségi konfigurációt fogja használni a Multi-AZ tartományokon annak biztosítására, hogy a szilánkok csak a zónafigyelés szabályai szerint kerüljenek kiosztásra. Ez megakadályozná az egészséges elérhetőségi zónák csomópontjainak hirtelen megnövekedését.

  • Load-Aware Shard Allokation: Az Amazon OpenSearch Service olyan tényezőket vesz figyelembe, mint a kiépített kapacitás, a tényleges kapacitás és az összes szilánkmásolat annak kiszámításához, hogy valamelyik csomópont túlterhelt-e több szilánkkal a csomópontonkénti várható átlagos szilánkok alapján. Megakadályozná a szilánkok hozzárendelését, ha bármely csomópont olyan szilánkszámot foglalt le, amely meghaladja ezt a korlátot.

Megjegyzések hogy bármely hozzá nem rendelt elsődleges másolás továbbra is engedélyezett a túlterhelt csomóponton, hogy megakadályozza a fürt közvetlen adatvesztését.

Hasonlóképpen, a kézi helyreállítási probléma megoldása érdekében (a fenti Helyreállítás szakaszban leírtak szerint) az Amazon OpenSearch Service is módosítja a belső méretezési összetevőjét. Az újabb változtatásokkal az Amazon OpenSearch Service nem indít csomópontokat a fennmaradó elérhetőségi zónákban, még akkor sem, ha a korábban leírt hibaforgatókönyvön megy keresztül.

A jelenlegi és az új viselkedés vizualizálása

Például egy Amazon OpenSearch Service tartomány 3-AZ-vel, 6 adatcsomóponttal, 12 elsődleges szilánkkal és 24 replikaszilánkkal van konfigurálva. A tartomány az AZ-1, AZ-2 és AZ-3 között van kiépítve, két-két csomóponttal a zónák mindegyikében.

Jelenlegi szilánk kiosztás:
Szilánkok teljes száma: 12 elsődleges + 24 replika = 36 szilánk
Elérhetőségi zónák száma: 3
A szilánkok száma zónánként (a zóna felismerés igaz): 36/3 = 12
Csomópontok száma elérhetőségi zónánként: 2
A szilánkok száma csomópontonként: 12/2 = 6

Az alábbi diagram a tartomány beállításának vizuális ábrázolását mutatja be. A körök a csomóponthoz rendelt szilánkok számát jelölik. Az Amazon OpenSearch Service hat szilánkot oszt ki csomópontonként.

Részleges zónahiba során, amikor az AZ-3 egyik csomópontja meghibásodik, a meghibásodott csomópont hozzá van rendelve a fennmaradó zónához, és a zónában lévő szilánkok újraelosztásra kerülnek a rendelkezésre álló csomópontok alapján. A fent leírt változtatások után a fürt nem hoz létre új csomópontot és nem osztja el újra a szilánkokat a csomópont meghibásodása után.


A fenti ábrán az AZ-3 egyik csomópontjának elvesztésével az Amazon OpenSearch Service megpróbálja elindítani a cserekapacitást ugyanabban a zónában. Néhány kimaradás miatt azonban a zóna károsodhat, és nem sikerül elindítani a cserét. Ilyen esetben a szolgáltatás egy másik egészséges zónában próbál hiánykapacitást elindítani, ami zóna kiegyensúlyozatlansághoz vezethet a rendelkezésre állási zónák között. Az érintett zónán lévő szilánkok az ugyanabban a zónában lévő túlélő csomóponton tömődnek. Az új viselkedéssel azonban a szolgáltatás megpróbálja kapacitást indítani ugyanabban a zónában, de elkerüli a hiányos kapacitás elindítását más zónákban, hogy elkerülje az egyensúlyhiányt. A szilánkkiosztó azt is biztosítja, hogy a túlélő csomópontok ne legyenek túlterhelve.


Hasonlóképpen, ha az AZ-3 összes csomópontja elveszik, vagy az AZ-3 meghibásodik, az Amazon OpenSearch Service előhozza az elveszett csomópontokat a fennmaradó elérhetőségi zónában, és újraelosztja a szilánkokat a csomópontokon. Az új változtatások után azonban az Amazon OpenSearch Service nem oszt ki csomópontokat a fennmaradó zónához, vagy megpróbálja újra kiosztani az elveszett szilánkokat a fennmaradó zónába. Az Amazon OpenSearch Service megvárja, amíg megtörténik a helyreállítás, és a tartomány a helyreállítás után visszatér az eredeti konfigurációhoz.

Ha a domainje nem rendelkezik elegendő kapacitással ahhoz, hogy ellenálljon egy Elérhetőségi zóna elvesztésének, előfordulhat, hogy a domain átviteli sebessége csökken. Ezért erősen ajánlott a bevált gyakorlatok követése a tartomány méretezésekor, ami azt jelenti, hogy elegendő erőforrással kell rendelkeznie ahhoz, hogy ellenálljon egyetlen elérhetőségi zóna meghibásodásának.


Jelenleg, amint a tartomány helyreáll, a szolgáltatás kézi beavatkozást igényel, hogy kiegyensúlyozza a kapacitást az elérhetőségi zónák között, ami a szilánkok mozgatásával is jár. Az új viselkedéssel azonban nincs szükség beavatkozásra a helyreállítási folyamat során, mivel a kapacitás visszatér az érintett zónába, és a szilánkok is automatikusan hozzárendelődnek a helyreállított csomópontokhoz. Ez biztosítja, hogy a fennmaradó erőforrásokon ne legyenek egymással versengő prioritások.

Mire lehet számítani

Miután frissítette az Amazon OpenSearch Service tartományát a legújabb szolgáltatási szoftverkiadásra, azokat a tartományokat, amelyek korábban bevált gyakorlatokkal konfigurálva kiszámíthatóbb teljesítménye lesz még egy vagy több adatcsomópont elvesztése után is egy Elérhetőségi zónában. Csökkenteni fog a szilánkok általános elosztásának esetei egy csomópontban. Jó gyakorlat, ha elegendő kapacitást kell biztosítani ahhoz, hogy elviselje az egyetlen zóna meghibásodását

Időnként előfordulhat, hogy egy tartomány sárgára vált az ilyen váratlan hibák során, mivel nem rendelünk replikaszilánkokat a túlterhelt csomópontokhoz. Ez azonban nem jelenti azt, hogy egy jól konfigurált tartományban adatvesztés következik be. Továbbra is gondoskodunk arról, hogy a kimaradások alatt minden elsődleges kiosztásra kerüljön. Létezik egy automatikus helyreállítás, amely gondoskodik a tartomány csomópontjainak kiegyensúlyozásáról, és biztosítja, hogy a replikák hozzárendelésre kerüljenek a hiba helyreállítása után.

Frissítse Amazon OpenSearch Service tartományának szolgáltatási szoftverét, hogy alkalmazza ezeket az új változtatásokat a domainjén. A szervizszoftver-frissítési folyamatról további részletek a következő helyen találhatók: Az Amazon OpenSearch szolgáltatás dokumentációja.

Következtetés

Ebben a bejegyzésben láthattuk, hogy az Amazon OpenSearch Service a közelmúltban hogyan fejlesztette a csomópontok és szilánkok elosztásának logikáját az elérhetőségi zónák között a zónakimaradások során.

Ez a változás segíti a szolgáltatást abban, hogy konzisztensebb és kiszámíthatóbb teljesítményt biztosítson csomóponti vagy zónahibák esetén. A tartományok nem tapasztalnak megnövekedett késéseket vagy írási blokkokat az írások és olvasások feldolgozása során, amelyek időnként korábban jelentek meg a csomópontokon lévő szilánkok túlzott kiosztása miatt.


A szerzőkről

Bukhtavar kán vezető szoftvermérnök, aki az Amazon OpenSearch szolgáltatáson dolgozik. Az elosztott és autonóm rendszerek érdeklik. Aktív közreműködője az OpenSearch-nek.

Anshu Agarwal vezető szoftvermérnök, aki az AWS OpenSearch-en dolgozik az Amazon Web Servicesnél. Szenvedélyesen foglalkozik a méretezhető és rendkívül megbízható rendszerek építésével kapcsolatos problémák megoldásában.

Shourya Dutta Biswas szoftvermérnök, aki az AWS OpenSearch-en dolgozik az Amazon Web Servicesnél. Szenvedélye a rendkívül rugalmas elosztott rendszerek építése.

Rishab Nahata az Amazon Web Services OpenSearch-en dolgozó szoftvermérnök. Lenyűgözi az elosztott rendszerek problémáinak megoldása. Aktív közreműködője az OpenSearch-nek.

Ranjith Ramachandra mérnöki menedzser, aki az Amazon OpenSearch szolgáltatáson dolgozik az Amazon Web Servicesnél.

Jon Handler vezető megoldási építész, az AWS keresési technológiákra szakosodott – Amazon CloudSearch és Amazon OpenSearch szolgáltatás. Palo Altóban található, és az ügyfelek széles körét segíti abban, hogy a keresési és naplózási elemzési terhelések megfelelően és jól működjenek.

Időbélyeg:

Még több AWS Big Data