it-swarm-eu.dev

Jaká je doporučená konfigurace RAID pro databázi Oracle?

RAID (redundantní pole levných disků) přichází s různými konfiguracemi (RAID-0, RAID-1 ...). Jaká je doporučená konfigurace RAID, kterou bych měl nastavit a použít při instalaci databáze Oracle. Databáze bude sloužit hlavně jako datový sklad.

16
Eddie Awad

Závisí to. Při pohledu na datový sklad, pokud nemáte na mysli konkrétní návrh, může být automatická správa úložiště vynikající cestou.

Zvažte diskusi na AskTom , Fóra OTN , Fóra OTN 2 a Fóra OTN .

Neexistuje žádný správný způsob, jak se vypořádat s věcmi, a odpovědi se mění na základě řady hardwarových a síťových faktorů. Chcete-li zjistit sami, předem nahrajte ukázkový datový sklad (pouze koncert nebo dva, dost na hraní) na počítači založeném na ASM, na SAN) s Raidem virtualizovaným linuxem a na hardwarovém raidovém stroji.

Načasováním výsledků dotazů ve všech třech prostředích budete moci zjistit, která metodologie je pro vás výkonově nejvýhodnější. Nasadil jsem databáze pomocí ASN a linuxových virtuálních náletů a virtuální nálet se choval o něco lépe (před několika lety.) Mám však podezření, že to bylo částečně způsob, jakým byly disky nastaveny.

Neexistuje žádná jedinečná správná odpověď. Pokud nám můžete poskytnout více podrobností o požadavcích na velikost a výkon, je možné prozkoumat různé testovací případy.

--Upravit--

Každý " skupina disků " může být tvořen jedním nebo více disky, adresáři nebo soubory v příslušném subsystému. Oracle doporučuje "Pro nejlepší výkon a spolehlivost zvolte zařízení RAID nebo logický svazek na více než jednom fyzickém zařízení a implementujte metodologii strip-and-mirror-everything (SAME)." při umísťování souborů do souborového systému. To zní, jako by Oracle doporučuje RAID 1 + 0.

Skupiny disků spravované společností ASM však: „Normální skupina redundantních disků vyžaduje minimálně dvě skupiny selhání (nebo dvě disková zařízení), pokud používáte obousměrné zrcadlení. Efektivní místo na disku v normální skupině redundantních disků je polovina součtu místo na disku ve všech jeho zařízeních “zřejmě automaticky poskytuje zrcadlení.

Tato zařízení mohou být tvořena RAID zařízeními atd. V praktických testech, když jsem nastavoval datové sklady RAID, jednoduchý virtuální RAID 5 v souborovém systému poskytoval přijatelný výkon a další ASM nepřinesl žádné výhody z výkonu. V tomto druhu optimalizační úlohy nejprve identifikujte své zdroje a poté otestujte všechny možné konfigurace, protože někdy mohou být výsledky extrémně kontraintuitivní.

13

Pokud máte dvě fyzické jednotky:

RAID0: Rychlá, ale žádná redundance. Jakákoli chyba jednotky zabije celé pole. Někteří lidé ukládají dočasné úložiště na RAID0 (tj. Tempdb pod MSSQL), ale přesto bych to považoval za nebezpečné, zatímco když ztratíte všechna smysluplná data, pokud pole spadne, bude mít výpadek serveru, dokud nebude opravena.

RAID1: Jděte na to, pokud máte dvě jednotky. Neexistuje žádná výhoda pro zápisový výkon, i když se může stát, že s dobrým kontrolérem zaznamenáte zvýšení výkonu čtení. Klíčovou vlastností RAID1 je přežívání jednoho z disků umírajících.

Pokud máte tři fyzické jednotky:

Vaše možnosti jsou RAID5, nestandardní 3-diskový RAID10 (nebo RAID1E, jak na něj odkazují řadiče IBM), pokud jsou podporovány. Samozřejmě byste mohli použít RAID1 a ponechat si další disk jako náhradní pro případ, kdy jeden z ostatních selže, ale přesto byste měli zachránit náhradní díly v kritickém prostředí mise, takže to samozřejmě platí.

RAID5 nabízí více místa než RAID10 (dva disky stojí namísto jedné a půl), ale má potenciální problém s výkonem zápisu, protože pro každý zapsaný blok musí správce číst paritní blok, aktualizovat ho a zapsat zpět. Tento problém s výkonem zápisu lze zdvojnásobit pro zápisy do databáze, protože pro každou aktualizaci existují nejméně dva zápisy: jeden do protokolu transakcí a jeden do skutečných datových oblastí. Vzhledem k tomu, že prostor je v dnešní době levný, doporučuji 3-disk RAID10, pokud je podporován pro lepší výkon zápisu. Linuxový software RAID to nabízí, stejně jako mnoho řadičů IBM (nazývají se RAID1E). Můžete jej také najít pod jinými jmény, protože se nepovažuje za standardní uspořádání, takže nemá standardní název.

Oba R5 a R10 nad tři dávají stejnou redundanci (kterýkoli disk může selhat najednou a pole přežije) a podobné metriky výkonu čtení (podobné jako pole RAID0 se dvěma disky).

Pokud máte čtyři fyzické jednotky:

Pokud vytváříte pouze jedno pole, existují dvě možnosti (ignorování variant „s horkými náhradními“): RAID6 a „tradiční“ RAID10 (RAID0 RAID1s).

Oba dávají stejný prostor (dvě jednotky vašich čtyř). RAID6 poskytuje lepší redundanci, protože kterékoli dva disky mohou selhat v době, kdy RAID10 dokáže přežít pouze čtyři ze šesti možných situací, kdy jsou dva disky pryč. Oba poskytují simialr výkon čtení, ale RAID6 má problém s výkonem zápisu podobný RAID5 (stejný u dobrého řadiče, i když může být pomalejší než RAID5 u špatného řadiče nebo se softwarovým RAID v závislosti na OS a I/O regulačních schopnostech. obvykle preferován pro databáze z důvodu výkonu - pokud potřebujete další redundanci, můžete použít šest jednotek a mít RAID0 nebo 2 3-jednotky RAID1.

Jakmile máte čtyři nebo více jednotek, věci se stávají zajímavějšími, protože můžete mít samostatný pár polí RAID1. To může nabídnout významné výhody výkonu u rotujících disků udržováním vašich datových úložišť v jednom poli a protokolů transakcí v jiném - to může v některých případech výrazně snížit pohyby hlavy a časy vyhledávání díky „náhodnému“ přístupu jsou skutečným zabijákem výkonu. U datového skladu se předpokládá, že to bude vidět jen velmi málo zápisů. Rozdělení protokolů transakcí z datových souborů může být omezenější, ale přesto byste mohli chtít zvážit více polí a namísto toho rozdělit svá data, aby bylo možné lépe číst .

Pokud máte více než čtyři jednotky:

Zde se vám otevírají možnosti a záleží to na tom, jaká jsou vaše data a jaké jsou vaše očekávané aktualizace/načtení/vzory. Například jednou z našich služeb běží na jednotkách 12 ~ 70Gb:

  • 4x jako RAID10 pro systémové oblasti (OS, SQL Server (v našem případě MSSQL), swap, tempdb).
  • 4x jako RAID10 pro datové soubory
  • 4x jako RAID10 pro protokoly transakcí

Tempdb je uložen v systémovém poli. Mohli bychom ji přesunout do dalších dvou polí a spustit pouze systémové pole jako 2 jednotky v RAID1, protože pro jednotky systému není příliš velká rychlost (protože to je opravdu důležité během spouštění nebo při výměně a zajišťujeme, že existuje dost RAM na to, aby se nikdy nemuselo vyměňovat), ale s tím, jak platíme poskytovateli hostingu za tuto sadu počítačů, by nás to ani nestálo za to, že tyto dva disky vypustíme. přejděte do systémového pole a poté je zkopírujte na off-server, off-site a off-line zálohovací umístění.

U některých databází to samozřejmě znamená nadměrné množství (takto by malý webový server neměl smysl!), Ale naše hlavní aplikace s tímto uspořádáním funguje velmi dobře.

Pokud máte šest jednotek, můžete zvážit tři pole RAID1 nebo dvě pole RAID10 se třemi jednotkami.

Obecně

Bohužel neexistuje žádná skutečná jednoduchá „osvědčená praxe“, protože velmi záleží na velikosti a způsobu používání vašeho systému. Jediná obecná pravidla, která mohu myslet nebo jsou:

  • vyhněte se RAID5 a 6, pokud víte problém s výkonem zápisu vás nebude mít významný vliv na vás
  • se čtyřmi nebo více jednotkami založenými na rotujících discích zváží rozdělení věcí na více polí, aby se snížily pohyby hlavy (plná výhoda více polí se nebude vztahovat na dobré SSD, protože neexistují žádné fyzické pohyby hlavy, které je třeba zvážit, i když v závislosti na strategie kombinující zápis SSD disků a tak dále)
  • vyzkoušejte, vyzkoušejte a znovu vyzkoušejte: vždy je dobré zkusit najít čas a ověřit, zda je vaše zvolené uspořádání skutečně optimální

RAID hardwaru nebo softwaru?

Bývalo to, že výkon softwarového RAID byl pod výkonem hardwarového RAID pro RAID 5 kvůli výpočtům parity a pro všechna uspořádání kvůli pomalým rozhraním mezi jednotkami a CPU. U moderních procesorů není problém s výpočtem parity opravdu problémem, ale pokud máte velmi rychlé disky, hardware RAID může stále vyhrát, pokud se celková rychlost jednotek může přiblížit kdekoli blízko (v rámci objednávky) o velikosti, podle odhadu), jak rychle může stroj mluvit s diskovým řadičem. Pokud máte pole RAID1 se čtyřmi jednotkami (tj. Čtyři kopie stejných dat pro mnoho redundance) se softwarovým RAID, každá operace zápisu povede k tomu, že operační systém odešle čtyři velké množství dat do I/O řadiče, případně postupně - s hardwarem řadič OS pouze pošle jednu žádost o zápis a ovladač ji odešle na čtyři jednotky, pravděpodobně paralelně.

Dobrý hardwarový RAID může také nabídnout další výhody: některé řadiče vysoké specifikace mají mezipaměť zápisu se záložní baterií, takže čekající zápisy se při výpadku napájení neztratí, i když například UPS selže.

Softwarový RAID je zjevně levnější a přenosnější, takže nejste vázáni na konkrétní ovladač, pokud musíte přesouvat pole kvůli selhání řadiče/stroje.

Levný hardwarový RAID obvykle kombinuje negativy softwarového a hardwarového RAID s několika (nebo žádnými) výhodami jednoho z nich, je tedy nejlepší se vyhnout.

Mám tendenci používat software RAID na našich dev, testovacích a UAT serverech a dobrý hardwarový RAID pro servery provozující živé služby zaměřené na zákazníka/veřejnost.

10
David Spillett

Příručka pro optimalizaci výkonu databáze Oracle“ obsahuje kapitolu věnovanou konfigurace I/O . Ve zkratce:

  • Použít pruhování (hardwarové RAID, softwarové RAID, ASM)
  • Nepoužívejte RAID5 pro archivaci a opakované protokoly
  • Zarovnat velikost bloku souborového systému a velikost bloku DB
5
Benoit

V některých případech je správná odpověď JBOD (tj. ne RAID).

Problém je, že pokud máte příliš velké skupiny RAID, nemáte flexibilitu při určování, jak je fyzické úložiště rozloženo v databázi, jako je například zajištění toho, aby indexy a záznamy pro tabulku byly uloženy na samostatných vřetenech, a ujistěte se, že vyrovnáváte zápisy na všech vašich discích.

Můžete použít pruhování (RAID0) k vyvážení zápisů, ale pokud je to celá jedna velká skupina, nemůžete oddělit indexy vs. záznamy.

Zrcadlení (RAID1) je odolné vůči chybám a pro čtení je rychlejší (protože můžete číst z toho, co vřeteno není zaneprázdněno), ale pro zápisy může být pomalejší, protože musíte čekat, až budou zapsány obě kopie.

Nikdy bych nešel RAID5 nebo RAID6 na databázi. Pokud jsou data důležitá, kupte více disků a jděte s RAID1; RAID5/6 je pomalý (zejména v softwaru) as dnešními velikostmi pevných disků může trvat dní , než dojde k výměně neúspěšných disků za velkou skupinu disků. .. nemluvě o tom, že většina systémů RAID5/6 se zabývá paritními chybami, je pouze přepočítat paritu ... ale šance jsou, chyba je v datech, nikoli parita, ale nemáte tušení, kde byla chyba. (Bohužel si nemyslím, že existuje něco jako LOCKSS pro databáze)

...

Nejzajímavější rozložení, jaké jsem viděl na databázi, vlastně mělo dvě oddíly na vřeteno - nejvnitřnější část disku byla použita pro produkční databázi, přes oddíly disku byly použity pro zálohování. (a zajistili, aby oddíl nebyl zálohován na stejné vřeteno; myslím, že existovalo více databází, takže každá byla zálohována na disky z jiné). To jim poskytlo výhodu šíření věcí přes více vřeten během pracovního dne a pak v noci spouštěli zálohy.

Hádám, že by došlo k pomalejšímu zotavení, pokud by se něco pokazilo a bylo by potřeba obnovit, protože byste měli nějaké čtení z vnějšího disku, zatímco se databáze používají po celý den, ale ve všech je vždy kompromis.

...

Takže se každopádně snažím zdůraznit - neexistuje žádná odpověď, která by vyhovovala každé situaci. Pokud by tomu tak bylo, DBA by byly bez práce a společnosti by kupovaly předem zabudovaná databázová zařízení.

Databáze, se kterými se zabývám, jsou tím, co můj šéf nazývá 'WORN': Write Once, Read Never; žertuje, ale "datový sklad" může znamenat jakoukoli úroveň aktivity ... Viděl jsem některé, které byly načteny z pásky každý den/týdně (a byly to jen kopie instance OLTP= a nám pomohly ověřit, že pásky byly dobré) a byly na nich spuštěny rozsáhlé analytické práce, a další, kde existuje neustálý proud vstupních a příležitostných čtení, ale žádná skutečná konkurence o zdroje.

4
Joe

Moje doporučení pro servery jsou vždy RAID 5 . Čas a úsilí vynaložené na obnovu prvního selhaného pevného disku bude vždy nezapomenutelné. Pokud nastavíte pole RAID, důrazně doporučujeme, abyste standardizovali jednu velikost disku a uložili 2 náhradní pevné disky do serverové místnosti. Jedna jízda jde špatně? Vložte jednu z náhrad (a nechte sestavit pole). Viděl jsem, jak RAID pole klesá tvrdě , protože druhá jednotka ztroskotala, zatímco čekali, až dorazí první (příští den bylo doručení příliš pozdě) ).

3
Tangurena

Kolik dat plánujete používat a jak často budete číst vs zápis ze systému? Existuje mnoho plánů, které s tím souvisí, natolik, že někteří lidé věnují tomuto předmětu celou akademickou kariéru.

Normálně bych vám řekl, abyste si prošli Wikipedii a přečetli si článek, než budete pokračovat, protože existuje poměrně málo typů RAID a každý z nich se nejlépe používá na jiném místě.

Základy jdou takto:

RAID0

Dobré pro video hráče. Špatné pro kohokoli jiného. Nebylo by špatné použít toto pro server pro ukládání do mezipaměti, který nemusí uchovávat data po dlouhou dobu. Jakmile disk selže, systém je vypnutý. Konec hry.

RAID1

Skvělé pro spolehlivost. Není moc rozšiřitelnost. Velmi dobrá rychlost.

RAID5

Preferovaná kombinace mezi RAID0 a RAID1 (druh).

Nyní, po tomto, se to opravdu stává téměř něčím, co by mělo být položeno na ServerFault, protože je to konfigurace serveru moreso než návrh databáze. Výkon serveru vždy diskutujte s administrátorem serveru. To jsou tam, pro co jsou. Pokud se nejedná o soukromou beta verzi, hlasoval bych pro to, abych vás tam migroval.

2
jcolebrand