Megosztás a következőn keresztül:


Hibatűrés és tárolási hatékonyság azure-beli helyi és Windows Server-fürtökön

Ez a cikk ismerteti a rendelkezésre álló rugalmassági lehetőségeket, és ismerteti a méretezési követelményeket, a tárolási hatékonyságot, valamint az egyes eszközök általános előnyeit és kompromisszumoit.

Overview

A Közvetlen tárolóhelyek hibatűrést, más néven "rugalmasságot" biztosítanak az adatokhoz. Implementációja hasonló a RAID-hez, kivéve a kiszolgálók közötti elosztást és a szoftverben való implementálást.

A RAID-hez hasonlóan a Storage Spaces is többféleképpen teheti ezt meg, amelyek különböző kompromisszumokat tesznek a hibatűrés, a tárolási hatékonyság és a számítási összetettség között. Ezek nagyjából két kategóriába sorolhatók: a "tükrözés" és a "paritás", az utóbbit néha "törléskódolásnak" is nevezik.

Mirroring

A tükrözés hibatűrést biztosít az összes adat több másolatának megőrzésével. Ez leginkább a RAID-1-hez hasonlít. Az adatok csíkozásának és elhelyezésének módja nem triviális (további információért tekintse meg ezt a blogot ), de teljesen igaz, hogy a tükrözéssel tárolt adatok teljes egészében többször is meg vannak írva. Minden példány különböző fizikai hardverre kerül rögzítésre (különböző kiszolgálók különböző meghajtóira), amelyek feltételezhetően egymástól független meghibásodásra hajlamosak.

Választhat a tükrözés két íze közül : "kétirányú" és "háromirányú".

Kétirányú tükör

A kétirányú tükrözés mindenből két másolatot ír. Tárolási hatékonysága 50 százalék – 1 TB adat írásához legalább 2 TB fizikai tárolási kapacitásra van szükség. Hasonlóképpen, legalább két hardveres "tartalék tartományra" van szüksége – a Közvetlen tárolóhelyek szolgáltatással, ami két kiszolgálót jelent.

two-way-mirror

Warning

Ha kétnál több kiszolgálóval rendelkezik, javasoljuk, hogy inkább háromutas tükrözést használjunk.

Háromutas tükör

A háromutas tükrözés mindent három példányban másol. Tárolási hatékonysága 33,3 százalék – 1 TB adat írásához legalább 3 TB fizikai tárolókapacitásra van szükség. Hasonlóképpen, legalább három hardverhibatartományra van szükség – a Közvetlen tárolóhelyek esetén ez három kiszolgálót jelent.

A háromutas tükrözés egyszerre legalább két hardverproblémát (meghajtó vagy kiszolgáló) biztonságosan elvisel. Ha például újraindít egy kiszolgálót, amikor hirtelen egy másik meghajtó vagy kiszolgáló meghibásodik, minden adat biztonságos és folyamatosan elérhető marad.

three-way-mirror

Parity

A paritáskódolás, amelyet gyakran "törléskódolásnak" is neveznek, bitenkénti aritmetika használatával hibatűrést biztosít, ami rendkívül bonyolulttá teheti. Ennek működése kevésbé nyilvánvaló, mint a tükrözés, és számos nagyszerű online forrás áll rendelkezésre (például ez a külső Dummies Guide to Erasure Coding), amelyek segíthetnek az ötlet beszerzésében. Elég azt mondani, hogy jobb tárolási hatékonyságot biztosít a hibatűrés veszélyeztetése nélkül.

A Tárolóhelyek a paritás két ízét kínálja – az "egy" paritást és a "kettős" paritást, az utóbbi egy speciális technikát, az úgynevezett "helyi rekonstrukciós kódokat" alkalmaz nagyobb méretekben.

Important

Javasoljuk, hogy tükrözést használ a legtöbb teljesítményérzékeny számítási feladathoz. A teljesítmény és a kapacitás számítási feladattól függően történő kiegyensúlyozásáról további információt a kötetek tervezése című témakörben talál.

Egyetlen paritás

Az egyetlen paritás csak egy bitenkénti paritásszimbólumot tart meg, amely hibatűrést biztosít egyszerre csak egy hibával szemben. Leginkább a RAID-5-höz hasonlít. Egyetlen paritás használatához legalább három hardverhibatartományra van szükség – a Közvetlen tárolóhelyek esetén ez három kiszolgálót jelent. Mivel a háromutas tükrözés nagyobb hibatűrést biztosít ugyanabban a skálán, nem javasoljuk, hogy egyetlen paritást használjunk. De ott van, ha ragaszkodik annak a használatához, és teljes mértékben támogatott.

Warning

Elriasztjuk az egyetlen paritás használatát, mert egyszerre csak egy hardverhibát képes biztonságosan elviselni: ha az egyik kiszolgálót újraindítja, amikor hirtelen egy másik meghajtó vagy kiszolgáló meghibásodik, állásidőt fog tapasztalni. Ha csak három kiszolgálóval rendelkezik, javasoljuk, hogy háromirányú tükrözést használjunk. Ha négy vagy több van, tekintse meg a következő szakaszt.

Kettős paritás

A kettős paritás Reed-Solomon hibajavító kódokat implementál a két bitenkénti paritásszimbólum megtartásához, így ugyanazt a hibatűrést biztosítja, mint a háromirányú tükrözés (azaz akár két hiba egyszerre), de jobb tárolási hatékonysággal. Leginkább a RAID-6-ra hasonlít. A kettős paritás használatához legalább négy hardverhibatartományra van szükség – a Közvetlen tárolóhelyek esetén ez négy kiszolgálót jelent. Ebben a skálában a tárolási hatékonyság 50% – 2 TB adat tárolásához 4 TB fizikai tárolási kapacitásra van szükség.

dual-parity

A kettős paritás tárolási hatékonysága nő a hardveres hibaterületek számának növekedésével, 50 százalékról 80 százalékra. Például hétnél (a Közvetlen tárolóhelyek esetében ez hét kiszolgálót jelent) a hatékonyság 66,7 százalékra ugrik – 4 TB adat tárolásához mindössze 6 TB fizikai tárolókapacitásra van szükség.

dual-parity-wide

A kettős féltől származó és a helyi rekonstrukciós kódok hatékonyságáról az Összegzés szakaszban olvashat.

Helyi rekonstrukciós kódok

A Tárolóhelyek a Microsoft Research által kifejlesztett, "helyi rekonstrukciós kódoknak" vagy LRC-nek nevezett speciális technikát vezet be. Nagy léptékben a kettős paritás az LRC használatával osztja fel a kódolást/dekódolást néhány kisebb csoportra, hogy csökkentse az írások készítéséhez vagy a hibák utáni helyreállításhoz szükséges többletterhelést.

Merevlemez-meghajtók (HDD) esetén a csoport mérete négy szimbólum; A szilárdtest-meghajtók (SSD) esetén a csoportméret hat szimbólum. Így néz ki például az elrendezés merevlemez-meghajtókkal és 12 hardverhibás tartománnyal (azaz 12 kiszolgálóval) – két csoport négy adatszimbólumból áll. 72,7 százalékos tárolási hatékonyságot ér el.

local-reconstruction-codes

Javasoljuk ezt a részletes, mégis jól olvasható útmutatót, amelyet Claus Joergensen írt, és amely bemutatja, hogy a helyi rekonstrukciós kódok hogyan kezelik a különböző hibaforgatókönyveket, és miért vonzóak.

Tükörrel gyorsított paritás

A Storage Spaces Direct kötet részben lehet tükör és részben paritás. Először az adatokat a tükrözött szakaszba írják, majd később fokozatosan áthelyezik őket a paritásszakaszba. Ez tulajdonképpen tükrözést használ, hogy felgyorsítsa a törléskódolást.

A háromutas tükrözés és kettős paritás kombinációjához legalább négy meghibásodási tartományra van szükség, ami négy kiszolgálót jelent.

A tükrözött paritás tárolási hatékonysága a teljes tükrözés és a teljes paritás használata közötti tartományba esik, és attól függ, hogy milyen arányokat választ.

Important

Javasoljuk, hogy tükrözést használ a legtöbb teljesítményérzékeny számítási feladathoz. A teljesítmény és a kapacitás számítási feladattól függően történő kiegyensúlyozásáról további információt a kötetek tervezése című témakörben talál.

Summary

Ez a szakasz összefoglalja a Közvetlen tárolóhelyekben elérhető rugalmassági típusokat, az egyes típusok minimális méretezési követelményeit, az egyes típusok által tolerálható hibák számának és a megfelelő tárolási hatékonyságot.

Rugalmassági típusok

Resiliency Hibatűrés Tárolási hatékonyság
Kétirányú tükör 1 50.0%
Háromutas tükör 2 33.3%
Kettős paritás 2 50,0% – 80,0%
Mixed 2 33.3% – 80.0%

Minimális méretezési követelmények

Resiliency Minimálisan szükséges hiba-tartományok
Kétirányú tükör 2
Háromutas tükör 3
Kettős paritás 4
Mixed 4

Tip

Ha nem váz- vagy állványhiba tűrésthasznál, a hiba tartományok száma a kiszolgálók számának felel meg. Az egyes kiszolgálók meghajtóinak száma nem befolyásolja a használható rugalmassági típusokat, mindaddig, amíg megfelel a Közvetlen tárolóhelyek minimális követelményeinek.

Kettős paritásos hatékonyság hibrid telepítésekhez

Ez a táblázat a kettős paritás és a helyi rekonstrukciós kódok tárolási hatékonyságát mutatja be minden olyan hibrid telepítésnél, amely merevlemez-meghajtókat (HDD- és SSD-meghajtókat) is tartalmaz.

Tartalék tartományok Layout Efficiency
2
3
4 RS 2+2 50.0%
5 RS 2+2 50.0%
6 RS 2+2 50.0%
7 RS 4+2 66.7%
8 RS 4+2 66.7%
9 RS 4+2 66.7%
10 RS 4+2 66.7%
11 RS 4+2 66.7%
12 LRC (8, 2, 1) 72.7%
13 LRC (8, 2, 1) 72.7%
14 LRC (8, 2, 1) 72.7%
15 LRC (8, 2, 1) 72.7%
16 LRC (8, 2, 1) 72.7%

Kettős paritás hatékonyság minden flash-alapú telepítéshez

Ez a táblázat a kettős paritás és a helyi rekonstrukciós kódok tárolási hatékonyságát mutatja be minden skálán a kizárólag SSD-t tartalmazó rendszereknél. A paritáselrendezés nagyobb csoportméreteket alkalmazhat, és jobb tárolási hatékonyságot érhet el egy teljesen flash alapú konfigurációban.

Tartalék tartományok Layout Efficiency
2
3
4 RS 2+2 50.0%
5 RS 2+2 50.0%
6 RS 2+2 50.0%
7 RS 4+2 66.7%
8 RS 4+2 66.7%
9 RS 6+2 75.0%
10 RS 6+2 75.0%
11 RS 6+2 75.0%
12 RS 6+2 75.0%
13 RS 6+2 75.0%
14 RS 6+2 75.0%
15 RS 6+2 75.0%
16 LRC (12, 2, 1) 80.0%

Examples

Ha csak két kiszolgálóval rendelkezik, javasoljuk, hogy háromirányú tükrözést és/vagy kettős paritást használ, mert jobb hibatűrést biztosítanak. Pontosabban biztosítják, hogy minden adat biztonságos és folyamatosan elérhető maradjon akkor is, ha két tartalék tartományt – a Közvetlen tárolóhelyeket, vagyis két kiszolgálót – egyidejű hibák érintenek.

Példák arra, hogy minden online marad

Ez a hat példa azt mutatja be, hogy a háromirányú tükrözés és/vagy a kettős paritás milyen tűrő képességgel bír .

  • 1. Egy meghajtó elveszett (a gyorsítótár-meghajtókat is beleértve)
  • 2. Egy kiszolgáló elveszett

fault-tolerance-examples-1-and-2

  • 3. Egy kiszolgáló és egy meghajtó elveszett
  • 4. Két meghajtó elveszett a különböző kiszolgálókon

fault-tolerance-examples-3-and-4

  • 5. Több mint két meghajtó elveszett, amíg legfeljebb két kiszolgáló érintett
  • 6. Két kiszolgáló elveszett

fault-tolerance-examples-5-and-6

... minden esetben minden kötet online marad. (Győződjön meg arról, hogy a klaszter kvórumot tart fenn.)

Példák arra, hogy minden offline állapotba kerül

A Tárolóhelyek élettartama során bármilyen számú hibát eltűrhet, mivel mindegyik után teljes rugalmasságot biztosít, megfelelő idő biztosításával. Azonban legfeljebb két hibatartományt érinthetnek biztonságosan a hibák bármely adott pillanatban. Az alábbiakban tehát példákat mutatunk be arra, hogy a háromirányú tükrözés és/vagy a kettős paritás mit nem tud tolerálni.

  • 7. Három vagy több kiszolgálón egyszerre elveszett meghajtók
  • 8. Egyszerre három vagy több kiszolgáló elveszett

fault-tolerance-examples-7-and-8

Usage

Tekintse meg a Kötetek létrehozása című cikket.

Következő lépések

A cikkben említett témákról a következő témakörökben olvashat bővebben: