Počet pevných disků v RAID a IOPS

j

Re:Závislost počtu pevných disků v RAID na výkonu IOPS
« Odpověď #15 kdy: 07. 01. 2013, 08:34:47 »
Sten: to není teorie, RAID opravdu nezvyšuje IOPS. Raid zvyšuje pouze sekvenční čtení. U náhodného čtení se sice může stát, že budou požadována data z různejch disků, ale taky nemusí a pokud se čtou soubory větší než velikost jednoho raid bloku, tak na defragmentovanejch discích k nárůstu rychlosti v podstatě nedojde. Protože seeků, který jsou největší brzdou, bude úplně stejně.

Přikláněl bych se k Rumu, ve výsledku daleko větší poměr cena/výkon bude mít, když vytypuješ aplikace, co nejvíce brzdí, a přesuneš je na SSD, nebo alespoň rozhodíš na různá pole.

Nepis kraviny ... RAID IOps samo zveda ... jinak by se nedalo postavit databazovy pole ...

Je to celkem jednoduchy, jedno dvoudiskovy zrcadlo ma +- 150IOps pro zapis (zapisuje se na oba disky) a cca 300 pro cteni (ctou se ruzna data - z kazdeho disku jina). => 4 disky v R10 budou mit 300/600, 6 disku 450/900 atd. Samo jde o teoreticke optimalni hodnoty, v realu to bude trochu horsi.


j

Re:Závislost počtu pevných disků v RAID na výkonu IOPS
« Odpověď #16 kdy: 07. 01. 2013, 08:41:36 »
Dekuju moc za nazory ale rekneme ze se trochu rozchazeji.

Proto jeste uvedu ze se jedna o stream server na zpusob youtube. Pocet navstevniku je dene cca 50 000.

Ja osobne zvolil 4x disky s 15 000ot/s v RAID5.

Ale jaky typ RAID zvolit a jake uloziste pro maximalni IOPS.... SSD se nebranim protoze se jedna hlavne o cteni... ale zase o data uzivatelu nechci prijit a pouzivat SSD v RAID je trochu nebezpecne rekl bych protoze muzou odejit vsechny naraz.

Uvedom si, ze R5 ti pujde dohaje v pripade rebuildu pole a to na nekolik hodin (je ulpne sumak jestli mas nebo nemas HW radic). R5/6 je obecne pole vhodny spis na ne moc vyuzivana data, vykonostni pole se stavi vpodstatne vyhradne jako R10. IOps budes mit samo nizsi nez na R10. A to jak pri zapisu tak pri cteni.

A jestli z tech 4 disku chces obslouzit 50k lidi a  streamovat jim video ... tak bys spis mel zacit uvazovat o nejakym poradnym poli.

Sten

Re:Závislost počtu pevných disků v RAID na výkonu IOPS
« Odpověď #17 kdy: 07. 01. 2013, 13:15:25 »
Mám dojem, že všichni píšeme totéž, akorát z jiný strany. Já píšu, že apriory nezvyšuje, protože existují scénáře, kde se to nezvýší, vy píšete že zvyšuje, protože existují scénáře, kde se to zvýší. Tak bych se na tom shodnul, ne?

Pro tazatele z toho vyplývá, že musí zjistit charakter IO, než se rozhodne co tam dát. Schermer: Dát tam RAID samozřejmě neuškodí, ale něco to stojí, tak by měl vědět, že to nedělá jen pro dobrej pocit :-) - byť 10 samozřejmě zvedne i bezpečnost.

Ne tak úplně. To worst case scenario je hodně teoretické, osobně neznám aplikace, co by v jediném vlákně četly náhodné části souboru po 128 KiB (standardní velikost stripe bývá 64 KiB), většinou když už čtou náhodně, tak po ½ KiB, 1 KiB nebo 4 KiB (tedy hodně pod stripe size) nebo si celý soubor namapují a pak to jádro načítá po stránkách (4 KiB). Naopak to best case scenario se týká většiny případů, kdy disk drtí několik (≥ počet disků) různých vláken paralelně, což je na serveru jedna z nejběžnějších situací.

Dekuju moc za nazory ale rekneme ze se trochu rozchazeji.

Proto jeste uvedu ze se jedna o stream server na zpusob youtube. Pocet navstevniku je dene cca 50 000.

Ja osobne zvolil 4x disky s 15 000ot/s v RAID5.

Ale jaky typ RAID zvolit a jake uloziste pro maximalni IOPS.... SSD se nebranim protoze se jedna hlavne o cteni... ale zase o data uzivatelu nechci prijit a pouzivat SSD v RAID je trochu nebezpecne rekl bych protoze muzou odejit vsechny naraz.

RAID 5 na něco takového fakt ne, to je spíše na domácí úložiště, kde je hlavní obří celkový prostor a rychlost je vedlejší.

Pokud to bude streamovat 50 000 videí denně, tak je to průměrně (každé video cca 20 až 30 minut) nějakých 1 000 videí paralelně, a pokud bych bral křivku zátěže velkých českých serverů, tak ve špičce to bude až 5 000 videí paralelně, to takové malinké pole nezvládne ani náhodou. Videa na YouTube ve standardní kvalitě mívají kolem 600 kbps, takže by to ve špičce zabralo jen pro čtení cca 3 Gbps, tak počítejte na celé pole tak 500 MBps pro čtení + jednou tolik pro zápisy (jeden 15k SAS disk dá kontinuálně kolem 150 MBps, 7200 rpm HDD polovinu, sčítání rychlostí je stejné jako u IOps).

Btw. jak to bude připojené?

j

Re:Počet pevných disků v RAID a IOPS
« Odpověď #18 kdy: 07. 01. 2013, 18:05:39 »
Hmm, pro zajimavost, pri 1k soucasne bezicich videi a (pro jednoduchost) 1Mbit/video to hodi nejakych rekneme 256k IOps na 4k sektorech => 2k disku v R10. Pocitam neco blbe?

creco

Re:Závislost počtu pevných disků v RAID na výkonu IOPS
« Odpověď #19 kdy: 07. 01. 2013, 18:12:16 »
Mám dojem, že všichni píšeme totéž, akorát z jiný strany. Já píšu, že apriory nezvyšuje, protože existují scénáře, kde se to nezvýší, vy píšete že zvyšuje, protože existují scénáře, kde se to zvýší. Tak bych se na tom shodnul, ne?

Pro tazatele z toho vyplývá, že musí zjistit charakter IO, než se rozhodne co tam dát. Schermer: Dát tam RAID samozřejmě neuškodí, ale něco to stojí, tak by měl vědět, že to nedělá jen pro dobrej pocit :-) - byť 10 samozřejmě zvedne i bezpečnost.

Ne tak úplně. To worst case scenario je hodně teoretické, osobně neznám aplikace, co by v jediném vlákně četly náhodné části souboru po 128 KiB (standardní velikost stripe bývá 64 KiB), většinou když už čtou náhodně, tak po ½ KiB, 1 KiB nebo 4 KiB (tedy hodně pod stripe size) nebo si celý soubor namapují a pak to jádro načítá po stránkách (4 KiB). Naopak to best case scenario se týká většiny případů, kdy disk drtí několik (≥ počet disků) různých vláken paralelně, což je na serveru jedna z nejběžnějších situací.

Dekuju moc za nazory ale rekneme ze se trochu rozchazeji.

Proto jeste uvedu ze se jedna o stream server na zpusob youtube. Pocet navstevniku je dene cca 50 000.

Ja osobne zvolil 4x disky s 15 000ot/s v RAID5.

Ale jaky typ RAID zvolit a jake uloziste pro maximalni IOPS.... SSD se nebranim protoze se jedna hlavne o cteni... ale zase o data uzivatelu nechci prijit a pouzivat SSD v RAID je trochu nebezpecne rekl bych protoze muzou odejit vsechny naraz.

RAID 5 na něco takového fakt ne, to je spíše na domácí úložiště, kde je hlavní obří celkový prostor a rychlost je vedlejší.

Pokud to bude streamovat 50 000 videí denně, tak je to průměrně (každé video cca 20 až 30 minut) nějakých 1 000 videí paralelně, a pokud bych bral křivku zátěže velkých českých serverů, tak ve špičce to bude až 5 000 videí paralelně, to takové malinké pole nezvládne ani náhodou. Videa na YouTube ve standardní kvalitě mívají kolem 600 kbps, takže by to ve špičce zabralo jen pro čtení cca 3 Gbps, tak počítejte na celé pole tak 500 MBps pro čtení + jednou tolik pro zápisy (jeden 15k SAS disk dá kontinuálně kolem 150 MBps, 7200 rpm HDD polovinu, sčítání rychlostí je stejné jako u IOps).

Btw. jak to bude připojené?


Beru tvoje pripominky jako spravne. A co bys navrhoval za diskove pole pro takovou zatez?

Tedka to mam resene kompletne dvema servery. Jeden U2 8x 2TB HDD 7200ot/s. v RAID 10. A druhy server ten novy 4x 450GB 15000ot./s v RAID 5.

Do budoucna bych to videl na diskove pole na zpusob HP StorageWorks D2700 a do toho nacpat 25x 300GB 10000ot./s (nebo SSD) ale rekneme ze to neni tak uplne zadarmo a vubec nevim kolik by toho takove pole zvladlo.

Nejradsi bych jedno velke diskove pole pro vsechny servery ale vubec nevim co.


PanKapitánRUM

Re:Závislost počtu pevných disků v RAID na výkonu IOPS
« Odpověď #20 kdy: 07. 01. 2013, 18:47:32 »
...

Jestli to chápu, jde hlavně o streamování videa, něco jako bys provozoval službu uloz.to.
Zkus uvážit i sofistikovanější možnosti.
Řekněme, že cca 30% provozu budou tvořit stejné položky, nestálo by za to 1x za den vyhodnotit nejvíce stahované položky a přesunout je na SSD?

Postup:
1. Spočítat počet stažení pro každou položku za dobu X a vložit to do tabulky.
2. Projíždíš tabulku toho, co je na SSD a pokud je daná položka řekněme mimo top 1000, pak jí smažeš a odstraníš si v DB flag, že je na CACHE.
3. Zjistíš uvolněné místo a podle nějakého klíče to místo obsadíš (buď tam naprdíš malé soubory, nebo prostě první co není v cache), položku z původního umístění NEMAŽEŠ!! Pouze v DB PŘIDÁŠ další náhradní odkaz (vedoucí na CACHE) a nastavíš flag.

Například:
http://www.alza.cz/intel-520-180gb-ssd-bulk-d298675.htm
Je poměrně dobré v poměru cena - výkon.

Pak můžeš postupovat analogicky, například položky málo stahované, kde počet stažení je roven mrazu, odmigruješ na nějakou lacinou herku:
http://www.alza.cz/western-digital-caviar-av-green-power-3000gb-64mb-cache-d249188.htm
(Pokud ti k souboru přistupuje cca 1 člověk za den, může takových ležet na hromadě plno a budou k dispozici možná rychleji než z toho pole!)

Výsledek?
Nejvíc vytížené věci máš na SSD,
Nezajímavé věci na které nikdo moc neleze máš na disku mimo pole.
A pole je pak vytížené dle možností!

Pokud to ve tvém případě jde, může tohle být optimální varianta!
Obecné pravidlo tvrdí, že často 20% něčeho tvoří 80% něčeho.
20% obchodníků tvoří 80% zisku.
20% souborů tvoří 80% provozu.
Jistě, nemusí to tak být vždy, je to velmi obecné a přesto velmi často platné pravidlo.
Proto tvrdím, šoupnout těch 20% někam vedle a pole bude mít o 80% méně práce!

Byť tyto věci potřebují na vymyšlení hlavu, nejedná se jen o tupé přidání výkonu dalším diskem, takže nevím, jestli to oceníš.  ::)

PanKapitánRUM

Re:Počet pevných disků v RAID a IOPS
« Odpověď #21 kdy: 07. 01. 2013, 18:59:41 »
Jestli na to máš, zkusil bych jako Cache použít tohle: http://www.alza.cz/ocz-revodrive-3-480gb-d252852.htm
Těch zápisů nebude až tolik, aby ses musel bát, že ti hned chcípne.
Pokud jde o videa, tak různá videa jsou tuším v permamenci vždy cca 1-4 měsíce, podle typu služby.
Takže podle toho, jak si nastavíš filtr, bys měl mít SSD obsazené tím, k čemu je hodně přístupů.
V zásadě je jedno, jestli máš na SSD věci, na které vede 40 nebo 50 přístupů, pořád jsi svému diskovému poli ušetřil 40 přístupů.
Tj. nemusíš mazat z SSD hned všechno.
Navíc tohle je pro SSD ideální scénář, kdy na něj zapíšeš něco, nějakou dobu to tam necháš a pak to smažeš.
Jen bych neobsazoval celou kapacitu SSD, ale vytvořil disk třeba o kapacitě 440GB.

Pokud bys provozoval něco jako www.zvraceny.cz, pak bych ti řekl, abys videa nahrával přímo na pole a rovnou dělal odkaz na SSD.
Videa na prvních cca 5-ti stranách budou v permanenci, pak už bude počet přístupů zřejmě klesat a klasické vyhodnocování ti řekne, co je oblíbené a co ne.

Pokud budeš dělat něco jako uloz.to, pak bych ti řekl, ať to nejprve šoupeš na pomalý disk, protože hromada kravin si prostě nezaslouží se na pole vůbec dostat a až po cca 5-ti přístupech do přesuneš na pole, teprve pak na SSD.

PanKapitánRUM

Re:Počet pevných disků v RAID a IOPS
« Odpověď #22 kdy: 07. 01. 2013, 19:18:29 »
Taky uvaž kompresi, pokud tě brzdí výkon diskového systému, komprese zvýší propustnost.
To by samozřejmě víc platilo pro služby typu Uloz.to protože ISO soubory jsou často celkem slušně komprimovatelné.
Video vesměs moc komprimovatelné není, tak rozdíl nebude velký.

Další kouzlení se dá provádět s velikostí sektorů.
Je to jako když si servírku pošleš desetkrát za sebou pro štamprle piva.
Ta hloupá běhá, běhá, běhá, běhá a nestíhá obsluhovat ostatní hosty.
Chytrá ti rovnou přinese půl litr a zle se na tebe zatváří.
Podle typu "podávací aplikace", tj. toho, co ti podává data, se dá rovnou nastavit i velikost cache.
Jsem toho názoru, že pro video má smysl vytvořit souborový systém s co největšími bloky.
Velkých bloků bude nejspíš méně a nemůže tedy dojít k tak velké fragmentaci.
Mimo to se celý blok načte do paměti řadiče, takže i když si klient řekne řekněme jen o 4KB ze 64KB bloku (64KB bloky jsou doporučené pro ukládání videa) dost možná si o další blok stihne říct dříve, než se ten blok z cache uvolní a ušetříš tím řekněme řadu čtení. Pole nezatěžuje čtení, ale seek!!!

Obecně se tedy můžeš honit za IOPS jako pes za vlastním ocasem a budeš k smíchů.
Otázka by neměla znít, jak zvýšit IOPS, ale: "Jak maximalizovat propustnost, jde to jedině zvýšením IOPS?"
Někdy může znít odpověď: "Tohle nejde nijak rozdělit, zkus tam přidat disk a získáš cca 1/10 výkonu navíc (10%)."
Nebo může znít: "Tak to reorganizuj, pole bude mít o 50% méně práce (jako bys zvýšil IOPS o 100%)."

Hlavu, používejte HLAVU!

bw

Re:Počet pevných disků v RAID a IOPS
« Odpověď #23 kdy: 07. 01. 2013, 19:19:58 »
tak s podobnymi poziadavkami a predpokladom, kolko $$$ vygeneruje 50 000 prehranych videi denne, by som siel do krabic od oraclu a v nich nastavil trojite zrkadla. so 48 diskami na 15 000 rpm dostavas ~9 000 IOPS. k tomu nejau tu RAM (96 GB+) a l2arc na SSDcka, aby sa pre najnavstevovanejsie videa nemuselo na disky a mas hotovo.
btw na zaciatok by som povedzme 5% videi hodil na stroj, kde budu vyhradne SSD (alebo este lepsie len kopec RAM a v nej ramdisk), tam vysledovat IOPS, potom extrapolovat a podla toho dimenzovat storage s diskami.

ondro

Re:Počet pevných disků v RAID a IOPS
« Odpověď #24 kdy: 07. 01. 2013, 20:42:49 »
to bw : trosku drahe a bezhlave riesenie. Tvoje riesenie urcite bude fungovat ale trochu overkill na to, co potrebuje. Vo finale zistis, ze sa ti to pole flaka a zbytocne si vyhodil kopu penazi za nieco, co nevyuzijes.

Kapitan RUM na to ide lepsie. Zvladne to iste ale s neporovnatelne nizsimi nakladmi. Odporucam ti ist touto cestou, ta je najlesia.

PanKapitánRUM

Re:Počet pevných disků v RAID a IOPS
« Odpověď #25 kdy: 07. 01. 2013, 21:17:53 »
Kapitan RUM na to ide lepsie. Zvladne to iste ale s neporovnatelne nizsimi nakladmi. Odporucam ti ist touto cestou, ta je najlesia.

Dík!
To mě dost těší  ;D


Ono se s tím dá totiž ještě víc kouzlit.
Příklad souboru, který je v permanenci, tj. dostal se jak na SSD tak zůstal na poli (na SSD je vždy jen kopie):
Zjistím, že SSD je vytížené na 100%, v takovém případě mohu některým uživatelům podávat data i z pole!

Třeba:
Připojí se mi najednou 20 000 uživatelů (je špička) a všichni se chtějí dívat na Gangnam style
http://www.youtube.com/watch?v=9bZkp7q19f0
Zbytek dalších mají rozkoukaného Hobita.
Pokud bych měl jen jedno pole, tak to půjde celé do hajzlu.
Takhle můžu například zjistit vytížení SSD (lze i z PHP) i diskového pole, zjistím, že SSD je právě v háji, ale pole na tom tak hrozně není, tak budu vracet pro nová připojení odkazy na jejich umístění v poli. Možná to není nejgeniálnější load balance, ale určitě to bude fungovat.

Podobný smysl může mít i ramdisk, pokud by mi většinu zátěže tvořilo třeba 5-10GB videí, nejspíš bych je nakopíroval na ramdisk.
Ten by měl velký smysl hlavně v případě, kdy se opravdu jedná o omezený počet kousků, které máš ohodnocené nějakým testem a máš předpoklad, že to bude stahovat tolik a tolik lidí.

Některé SSD disky mají 1GB cache, pro tvůj případ mi takové přijdou jako užitečné.
Levné SSD, které použiješ jako cache (je na nich kopie).
Při určitém typu zátěže bys mohl mít na obou SSD discích stejné video a prostě vracet cestu ke stažení/prohlížení napřeskáčku.
(Pro stejný soubor dostane klient 1 odkaz na první SSD, druhý na druhé SSD, třetí opět na první SSD....)
Cílem není rovnoměrná zátěž, protože třeba uživatelé číslo 3,5,7,9 se odpojí, ale pokud to takhle budeš praktikovat pro všechny soubory na SSD (CACHE), pak se ti stejně v celkovém průměru zátěž zprůměruje.

Jak jednou víš, kolik lidí to video bude chtít stahovat, můžeš se už spolehlivě postarat o to, aby to proběhlo v pořádku a pole ti nedoutnalo jak hlavičky cvičí.

Logik

  • *****
  • 1 022
    • Zobrazit profil
    • E-mail
Re:Počet pevných disků v RAID a IOPS
« Odpověď #26 kdy: 08. 01. 2013, 20:16:07 »
Následuj RUMA: jakákoli SSD i paměťová cache (do serveru dneska nacpeš klidně 128GB RAM) Ti to zrychlí mnohem víc, než RAID.

Jinak jestli to bude pole, kde se bude velká převaha read operací, tak by stálo za to nezahazovat RAID5. Protože narozdíl od 10 má sice zoufalej zápis (což ovšem pro ukládání velkejch videí nevadí), ale při čtení může těžit z toho, že data jsou při sekvenčním čtení rozházený po všech discích ale přitom (na rozdíl od radidu 10) se nečte nic zbytečnýho. Viz např.
http://www.kendalvandyke.com/2009/02/disk-performance-hands-on-part-5-raid.html

V takovém případě ale zcela určitě dej databázi a logy na jiný pole (což je rozumný asi i tak) - na RAID5 patří pouze "readonly" operace.

bw

Re:Počet pevných disků v RAID a IOPS
« Odpověď #27 kdy: 08. 01. 2013, 23:20:30 »
inak k otazke IOPS na takyto server, za predpokladu idealneho rozlozenia pristup v celom dni, velkosti videa 50 MB za minutu a pouzitom bloku 64 kB (zfs ma variabilnu velkost bloku az do 1024kB, co by sa dalo v tomto pripade pekne vyuzit), dostavam IOPS (50 MB * 16 blokov na MB/60 sekund)*(86400 sekund denne/50000 pristupov) ~= 23. s rastucou velkostou bloku toto cislo dalej padne. takze vlastne cele nahananie sa za IOPS v tomto vlakne je zbytocne. budem rad, ak ma niekto opravi :)

a este by ma zaujimalo, ako presne sa da v linuxe pouzit ssd cache? bcache?

Sten

Re:Počet pevných disků v RAID a IOPS
« Odpověď #28 kdy: 09. 01. 2013, 00:23:18 »
inak k otazke IOPS na takyto server, za predpokladu idealneho rozlozenia pristup v celom dni, velkosti videa 50 MB za minutu a pouzitom bloku 64 kB (zfs ma variabilnu velkost bloku az do 1024kB, co by sa dalo v tomto pripade pekne vyuzit), dostavam IOPS (50 MB * 16 blokov na MB/60 sekund)*(86400 sekund denne/50000 pristupov) ~= 23. s rastucou velkostou bloku toto cislo dalej padne. takze vlastne cele nahananie sa za IOPS v tomto vlakne je zbytocne. budem rad, ak ma niekto opravi :)

a este by ma zaujimalo, ako presne sa da v linuxe pouzit ssd cache? bcache?

Ten výpočet je špatně, počítáte totiž, že každé video trvá jednu sekundu. Vynásobte to nějakými 30 minutami a zjistíte ten problém :-)

Sten

Re:Počet pevných disků v RAID a IOPS
« Odpověď #29 kdy: 09. 01. 2013, 00:31:12 »
inak k otazke IOPS na takyto server, za predpokladu idealneho rozlozenia pristup v celom dni, velkosti videa 50 MB za minutu a pouzitom bloku 64 kB (zfs ma variabilnu velkost bloku az do 1024kB, co by sa dalo v tomto pripade pekne vyuzit), dostavam IOPS (50 MB * 16 blokov na MB/60 sekund)*(86400 sekund denne/50000 pristupov) ~= 23. s rastucou velkostou bloku toto cislo dalej padne. takze vlastne cele nahananie sa za IOPS v tomto vlakne je zbytocne. budem rad, ak ma niekto opravi :)

a este by ma zaujimalo, ako presne sa da v linuxe pouzit ssd cache? bcache?

Ten výpočet je špatně, počítáte totiž, že každé video trvá jednu sekundu. Vynásobte to nějakými 30 minutami a zjistíte ten problém :-)

Oprava: počítáte, že každé video trvá jednu minutu (má 50 MB)