SSD-k szerverben: kell nekem a RAID mirror?

Egy szerverbe tennék SSD-t. Napok óta azon töröm a fejem, hogy kell-e nekem a raid-1 vagy sem (szoftveres, mdadm).

Nem egyértelmű nekem, hogy mennyit dob az üzembiztonságon az SSD raid-1 a sima SSD-hez képest. Hátrányai viszont vannak:
- nincs TRIM, valószínűleg(*) lassabb
- kétszer drágább v. 1 db. kétszer akkora SSD sokkal gyorsabb

Szóval volt-e valakinek olyan tapasztalata, hogy az SSD-re húzott RAID-1 mentette meg a rendszert?

*: próbálom kimérni az otthoni SSD-men, eddig ellentmondó eredmények születtek.

Hozzászólások

Meglátásom szerint függetlenül a lemez fajtájától a hibatűrő kiépítés alapvető fontosságú akkor, ha szolgáltatásban vállal részt a rendszer. Mindegy, milyen lemez, ha csak egy van belőle, ami meghal éppen, a rendszered le fog borulni. Mentés okvetlen kell, de az sem mindegy, vissza kell-e állni mentésből, és mikor, valamint mennyi idő alatt teheted ezt meg... Ezt a kérdést vizsgálnám én inkább...

/etc/lib/lu/plugins/lupi_bebasic

"Mentés okvetlen kell ..."

Backup az van, helyben is, távoli szerveren is.

"... de az sem mindegy, vissza kell-e állni mentésből ..."

És pont ez az ami nem világos, hogy van-e reális esélye annak, hogy az egyik SSD feldobja a talpát, a másik meg állva marad, így megmentve a rendszert.

Hangosan gondolkozom: lehet két hasonló teljesítményű/méretű de külön márkájú és eltérő vezérlővel rendelkező SSD-ben kéne gondolkodni. Sajnos ez lerontja a teljesítményt, mert minden írás akkor lesz kész, amikor a lassabb SSD végez.

"Egy szerverbe tennék SSD-t. Napok óta azon töröm a fejem, hogy kell-e nekem a raid-1 vagy sem (szoftveres, mdadm).
Nem egyértelmű nekem, hogy mennyit dob az üzembiztonságon az SSD raid-1 a sima SSD-hez képest. Hátrányai viszont vannak:
- nincs TRIM, valószínűleg(*) lassabb
- kétszer drágább v. 1 db. kétszer akkora SSD sokkal gyorsabb
Szóval volt-e valakinek olyan tapasztalata, hogy az SSD-re húzott RAID-1 mentette meg a rendszert?
*: próbálom kimérni az otthoni SSD-men, eddig ellentmondó eredmények születtek."

Itt hol írja hogy nem otthoni NAS ba kell neki.Szevasz nem kell kirohanni.

"Nem 99% rendelkezésre állás de szerintem bőven jó."
Itt nem írtam hogy éles produce rendszernek ajánlot..Szal még mindig nem értem.

Elég az 1 is, mindig a célhoz kell méretezni. Backup meg minimum 2. Legközelebb szerverhez ne a gány minimumot ajánlj, a végén még megfogadja valaki. ... Egy régi munkahelyemen mielőtt odakerültem egy új sbs kiszolgáló megrendelése a vez ig elé került, aki meglátta, hogy 2 hdd lett beírva, nagyokosan az egyiket gyorsan kihúzta, majd jött a vas, anyu meg csuklott..

> És pont ez az ami nem világos, hogy van-e reális esélye annak, hogy az egyik SSD feldobja a talpát, a másik meg állva marad, így megmentve a rendszert.

Miert merul fel benned, h nincs?

> lehet két hasonló teljesítményű/méretű de külön márkájú és eltérő vezérlővel rendelkező SSD-ben kéne gondolkodni.

Bizonyos korulmenyek kozott ez alap.

Ez a tema nagyreszt fuggetlen az SSD-ktol.

tompos

Nyilván van erre is ipari best practice és/vagy gyártói ajánlás. Csak a saját hobby-rendszeremen használok ilyen megoldást, ott is csak saját kútfőből, de eddig nincs bajom vele. Elhiszem a ZFS-nek, hogy a megfelelő módon kezeli a lemezeket; adott körülmények között elég nekem ennyi - menni pedig megy szépen. Nálam egyébként pont úgy adódott (hangsúlyozom, hogy nem tudatosan/szándékosan), hogy a két lemez gyártástechnológiája és tárolókapacitása egyaránt eltér, noha a gyártó ugyanaz. Ez további következtetések alapjául is szolgálhat, amennyiben valamelyik feladja majd, de jelenleg works as designed. Nem nevezném követendő példának, de egy általános példának elmegy ez is.

/etc/lib/lu/plugins/lupi_bebasic

Így van. A TRIM-ről nem tudok nyilatkozni; nem foglalkoztam vele eddig. Mindkét típusból van a gépben; eddig nem észleltem problémát egyikkel sem - mi több, ahogy fentebb említettem, az rpool alatti tükör még ilyen tekintetben is hibrid. Jelenleg az NC360T kártya e1000g driverével küzdök; ZFS problémám mindezidáig nem adódott.

UPDATE: utánanéztem, néhány hónapja a helyzet úgy állt: a lemezkezelés már egy ideje igen, de a ZFS nem tudta, de nem nyomoztam komolyabban az azóta beállt esetleges fejleményeit.

/etc/lib/lu/plugins/lupi_bebasic

flashcache a kulcsszó.
nekem nagyon bejött eddig, bár csak pár hete használom.
facebook is ezt használja, nagyon szar nem lehet :)

--
Gábriel Ákos

Szerintem nem egyértelmű, hogy mi van ha kiesik az SSD.

A flashcache 3 módban tud dolgozni, a különböző módok azt szabályozzák hogy írás esetén mikor/milyen módon kerüljön az adat a HDD-re. A "writethrough" esetén mindig minden írás a HDD-re történik, majd onnan visszaolvasva az SSD-re. (ebből adódik, hogy az SSD-k gyors írási képessége így gyak. nem létezik).

Viszont a fentiek semmit nem mondanak arról, hogy mi történik ha mondjuk kiég az SSD elektronika, vagy elkezd hibás adatokat visszaadni.

Processzorból is kettő különbözőt teszel a gépekbe, amiből az egyik ellenőrzi a másikat?

A HDD raid azért terjedt el mert a HDD fizikai meghibásodása egy gyakori probléma. Ha olyan magas üzembiztonság kell, hogy az elektronika hibáját is eltűrd, akkor oda két gépet kell felállítani, mert tönkremehet éppen a hálókártya vagy az alaplapi busz is...

Ha létezne olyan szerver (nem tudom van-e ilyen) ami tovább tud működni akkor, ha megsül egy CPU, és egyszerre tudna kezelni különböző CPU-kat, akkor igen, lenne értelme különbözőket beletenni. Szerintem.

Flashcache: amit a flashcache és a writethrough mód működéséről írtam, az nettó hülyeség. Akit érdekel, hogy működik, az olvassa el a leírásokat, az a tuti:
https://github.com/facebook/flashcache/blob/master/doc/flashcache-doc.t…
https://github.com/facebook/flashcache/blob/master/doc/flashcache-sa-gu…

Nempécé kategóriában van ilyen: minden műveletet több cpu hajt végre, komparátor a kimenetre, ha azonos jó, ha nem, akkor újra, ha akkor sem, akkor egy másik párosra átpakol mindent, az aktuálisat meg kukázza, és beszól a supportnak, hogy hiba van, jöhetnek cserélni.

Mondjuk megsülni csak akkor sül meg egy félvezető, ha megdöglik a hűtés. Normális szerverekben minimum redundáns, monitorozott fordulatszámú ventilátorok vannak, bónuszként ha nagyon melege van, a megsülés előtt leállítja magát a gép, ergo megsülni nem igazán tud, legfeljebb többszörös hiba esetén.

Milyen környezetben használod?

Én Linux alatt 3 megoldást nézegettem "SSD-vel gyorsítjuk a HDD-t" témakörben:
- flashcache
- bcache
- zfsonlinux zil + l2arc

Nyilván ez eléggé almát krumplival összehasonlítás, de végül a ZFS mellett döntöttem, mert bár az is experimentalnak tekinthető Linux alatt, a többi feature kárpótol valamelyest, és nagyon kényelmes "apt-get install" módon telepíthető. Mielőtt Linux + zfs lett, próbáltam FreeNAS-t. Ugyanazon a HW-n a Linuxos ZFS sokkal gyorsabban muzsikált nekem, ráadásul a FreeNAS-ban régebbi a ZFS, és pl. ZIL eltávolítás emiatt nehézkes ott.

A célgép egy HP N40L MicroServer, 4 HDD + 2*60GB SSD. A 2 SSD így van partícionálva:
10 GB system, mdadm RAID 1 a 2 SSD
16 GB ZIL, mirrorként hozzáadva a poolhoz (állítólag elég kevesebb is, de inkább lötyögjön benne az adat mint kevés legyen)
maradék, L2ARC nem tükrözve hozzáadva.

Teljesítményben ugyanazt hozza, mint a NexentaStor itt: http://blog.xorp.hu/hp-microserver-es-nexentastor

Megbízhatóságról nem nyilatkoznék, még tesztüzemben megy, eddig leállás nem volt.

Üdv,
Gergely

> Szóval volt-e valakinek olyan tapasztalata, hogy az SSD-re húzott RAID-1 mentette meg a rendszert?
csak olyan friss elmenyem van, ahol ennek hianya boritotta be. szoval ha csak a raid1-nemraid1 között kene döntenem, elöbbit valasztanam.

Fontos lenne definiálni, hogy:

Mi a cél az adott kiszolgálóval?
Miért is kiszolgáló az adott gép?
Miért kéne SSD HDD helyett?

RAID1 minimum mindenképpen.
Brand server mindenképpen.
HW raid mindenképpen.
A TRIM működni fog.

Ha azt hiszed, hogy az SSD megbízhatóbb, mint a HDD, akkor ki kell ábrándítsalak. Innentől kezdve, az SSD-alapú RAID1-nek pont ugyanakkora a létjogosultsága, mint a HDD-s RAID1-nek.

En azt hiszem ertem mi a problemaja.

SSD-nel sokkal konnyebben elofordulhat, hogy 2 egyforma darab pont egyszerre doglik meg, mint HDD-nel.

Egyreszt, determinisztikusabban "kopik" a flash, mint a mechanika, ugyanazzal az irasi terhelessel nagyjabol egyszerre fognak az eletuk vegere erni.

Masreszt a gyakorlatban az SSD elhalalozasok tulnyomo tobbsege nem a flash kikopasa, hanem firmware bug miatt tortenik, az meg valoszinuleg tokeletesen pontosan egyszerre fog triggerelodni mindket peldanyon, ha ugyanazokat a parancsokat kapjak.

Tehat igen, szerintem van ertelme ket kulonbozo gyarto SSD-jebol epiteni RAID-1-et.
---
Internet Memetikai Tanszék

Igen, de a FW bug esetére jó a flashcache is, nem? Én egy FW hibáról tudok, ott áramszünet után eltűnt a fájlrendszer az SSD-ről. Szerintem az olyan fajta hibákat flashcache-sel (vagy hasonlóval) ki lehet védeni.
Tud valaki egyáltalán olyan FW hibáról, amelyik miatt normál üzemben (azaz nem áramszünet után) pusztult el az SSD? Mert arra tényleg nem lenne jó a flashcache.

"Masreszt a gyakorlatban az SSD elhalalozasok tulnyomo tobbsege nem a flash kikopasa, hanem firmware bug miatt tortenik, az meg valoszinuleg tokeletesen pontosan egyszerre fog triggerelodni mindket peldanyon, ha ugyanazokat a parancsokat kapjak.
"

Nagyon jó meglátás, ez egy nagyon hasznos gondolat, adom a +1-et

Mindenképpen javasolnám a RAID1-et, legalábbis saját szerverben semmiképpen sem tennék másképp.
Minden további nélkül előfordulhat, hogy megadja magát egy SSD de ekkor a RAID1 teszi a dolgát, a szerver egy pillanatra sem áll le, gond nélkül megy tovább a másik SSD-ről.

OKé, látom egyöntetű a vélemény a RAID1 mellett, akkor is ha lassabb. Szerintetek érdemes két külön típusú SSD-vel megoldani, vagy jó az azonos is, és az egyiket "bejáratom" néhány napig előtte.

gabrielakos: a flashcache már nekem is ezsembe jutott, de még nem mélyedtem el benne. Azt be lehet lőni szoftveres RAID1 HDD-k elé is (1 SSD cache és 2 HDD raid1-ben)?

Mindenképp jóféle SSD-t válassz. Ha Linux vagy BSD és software RAID-el tükrözöl, akkor simán add hozzá 2-3-4 héttel később a második diszket. A normálisabb SSD-ken van egy Wear Leveling Count (ez speciel a Samsungon van), ami megmondja hogy a P/E ciklusokból épp mennyinél tart.

--
Apache Solr Druplahoz és Wordpresshez: http://solr.vpspro.hu

Minden további nélkül mehet két azonos, még az sem baj, ha nagyon hasonló az SN#.
Nagyon-nagyon kicsi az esélye, hogy a két eszköz pontosan egyidőben megy majd tönkre.

Amit viszont tényleg érdemes lenne: tartani egy tartalék SSD-t a fiókban. Tudom, drága. De tuti, hogy mikor gyorsan cserélni kéne, biztos nem lesz azonnal elérhető: hétvége van, nincs raktáron, pont elfogyott, stb...

Az első részével (kicsi az esély, hogy pont egyszerre megy tönkre) nem értek egyet.

Már HDD-nél is mindig úgy építettem RAID-et, hogy legalább különböző időben, külön boltból vettem a winyót. Gondold el: bemész a boltba, kérsz két winyót. Eladó hátrafordul, a polcról leemel kettőt. Fizetsz, hazaviszed, örülsz. De ez a két winyó valószínűleg egy csomagban jött, egy szállítmánnyal, egy gyárból, egy futószalagról, ugyanazon forrásból származó nyers alapanyagok felhasználásával készült. Közben a szállításnál egymás mellett voltak, ugyanaz a sugárzás/rázkódás/stb érte őket. Majd fogod és beteszed egy raid1-be, ahol bitre ugyanazokat az adatokat kell ki/be olvasniuk (minimális eltéréssel, a superblock-ok eltérőek). Igen, szerintem nagyon is megdobják az egyszerre meghibásodás esélyét a fentiek.

A neten sok ilyen sztori van, főleg raid5 esetén, ahol N winyóból (N sok, akár 6-8, vagy mégtöbb) egy kiesését elviselné még a rendszer, mégis gyakran kiesik a második, sőt akár 3. is.

+1
Én is láttam már egyidős winyókat gyakorlatilag egyszerre meghalni, 12 egyforma gépből 8 olyat aminek pár hét eltéréssel halt meg a tápja, 14 monitorból olyat amiből kettő él már csak a többi pár hónap alatt sorra megdöglött, stb....

Rózsár Gábor (muszashi)

Ha itthon veszel vinyót kb. ugyanakkor akkor marhára jó esélyed van hasonlóak megvételére, hacsak nem raktárról jön. Szervervinyóknál a raktárkészlet elég ismeretlen fogalom itthon, ha meg van, akkor A és B bolt is ugyanabból a nagykerből fogja neked hozni. Elég sok vinyóval és RAID tömbbel találkozom nap mint nap és teljesen véletlenszerűen jönnek diszk halálók, amik egyébként bőven nem olyan sűrűek, mint ahogy várnám. Például van olyan SCA diszkünk üzemben ami már 65e óra felett jár és nem unatkozik és volt olyan 600GB-os 15k-s SAS diszk, ami egy év után kidölt a 9 hasonló mellől.

A rendes mentést semmiképpen sem úszod meg, csak a rendelkezésre állást tudod növelni mondjuk RAID6-al vagy hot/coldspare második szerverrel. A RAID5 vs. RAID6-nál ha sok diszk van, akkor inkább a RAID6-ot ajánlják, mert tömb újraépítéskor nagyobb az esélye egy második diszk kihalásának.

--
Apache Solr Druplahoz és Wordpresshez: http://solr.vpspro.hu

Be lehet. Tulképp nem más, mint a device-mapper infrastruktúrában még egy réteget "húz" a diszkek elé.
Maga a "flashcache device " is lehet egy raid akármi (persze raid 0 is :) ) tömb, amit a másik device (tipikusan egy md) elé húzol.

Nálam a vm-ek klónozásának idejét kb. tizedére csökkentette, mindezt úgy, hogy a rendszer persze teljesen reszponzív maradt. Gyakorlatilag lassúzik az ssd, mert a 4 sata diszk raid10-ben nem bírja azt a tranzakciós sebességet amit emez tudna. Mondjuk egy OCZ Vertex4-ről van szó, szóval nem gagyi :)

--
Gábriel Ákos

Köszi az infókat, egyre inkább hajlok a flashcache megoldás felé. Azt még meg tudnád mondani, hogy van-e valami eszköz/tool amivel azt tudod ellenőrizni, hogy az ssd mérete mennyire van kihasználva? Mondjuk valami hit/miss arány amiből látod, hogy elbírna egy nagyobb SSD-t is.

Ilyen van:

dmsetup status cachedev
0 293601280 flashcache stats:
reads(100203238), writes(21143227)
read hits(85554886), read hit percent(85)
write hits(15052800) write hit percent(71)
dirty write hits(1893242) dirty write hit percent(8)
replacement(96681), write replacement(781635)
write invalidates(0), read invalidates(1)
pending enqueues(57326), pending inval(57326)
metadata dirties(19195486), metadata cleans(19982901)
metadata batch(36369382) metadata ssd writes(2809005)
cleanings(19982895) fallow cleanings(818380)
no room(164) front merge(17046867) back merge(1613826)
disk reads(14648695), disk writes(20037533) ssd reads(105537785) ssd writes(38543554)
uncached reads(2858), uncached writes(54632), uncached IO requeue(0)
uncached sequential reads(0), uncached sequential writes(0)
pid_adds(0), pid_dels(0), pid_drops(0) pid_expiry(0)

Általában nem a nagyobb ssd a kérdés, hanem a flashcache "aggresszivitásának" tuningolása, de ehhez még nem értek eléggé, teljesen alap beállításokkal használom. Futás közben az iostat figyelése mutatja gyönyörűen, hogy mikor "dolgozza ki" az ssd az adatokat ténylegesen a diszkre.

Itt pl:

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 39.20 0.00 3209.60 0 16048
sdb 39.00 0.00 3209.60 0 16048
sdc 36.60 0.00 3174.40 0 15872
sdd 38.20 0.00 3174.40 0 15872
sde 147.40 4923.20 17753.60 24616 88768

látszik, hogy az sde az ssd, és miközben kapja az ívet a filerendszer, szépen tolja ki a diszkekre (kicsit lassabban mint ahogy lehetne, mert 80 tps-t is bírnának a diszkek, de csak 40-et tol) de amit kap azt meg írja fel magának, bőven többet mint amit a diszkek valaha is tudni fognak.

--
Gábriel Ákos

gabrielakos: köszi az eddigi infókat, most már nagyon úgy néz kis flashcache lesz, de kérdés még foglalkoztat.

Melyik módban használjátok a 3 közül (back, thru vagy around)? CPU-t mennyire zabálja, vmi overhead biztos van. Esetleg nem próbáltad ki az SSD-t önmagában mit tud és ez milyen viszonyban van azzal amit a flashcache tol ki magából?

Az az adat, ami egy eszközön van meg, az nincs meg. Neked kell eldöntened, hogy mennyit állhat a cucc, mennyi az az idő, aminek az adatai elveszhetnek - ha nem lehet sokat ácsorogni, nem veszhet el mondjuk egy napi változás, akkor kell a raid. Ha elég az, hogy a tegnapi állapotra bármikor vissza tudsz állni, miután beraktál egy új SSD-t a régi, döglött helyére, akkor csak az a kérdés, hogy a mentés napi teljes legyen-e (ekkor gyorsabb és egyszerűbb visszatölteni, ellenben naponta sok adatot kell ki/áttolni a mentőeszközre/másik gépre), vagy x naponta teljes, közben pedig inkrementális mentés is jó.
Természetesen a mentés is adat, tehát ha egy eszközön van meg - akkor nincs meg :-D

kicsit offtopic kerdes: mdadm attolja mar a TRIM-et? LKML-t nezegettem, de nem talaltam friss infokat, se kernelnewbieson.

van egy uj jatszos gepem SSD-s RAID10-el, jol megy, de azert nem bannam, ha lenne TRIM.

Hivatalos infót nem találtam, 3.2-es kernellel próbáltam, az még nem viszi át TRIM-et.

Vicces volt kisakkozni :) A házi SSD-mre két partícióra raktam raid1-et, majd teleraktam a winyót 0xFF-el. hdparm-mal keretem pár sectort, ahol látszik a csupa 1111. Majd töröltem az adott fájlt. Mivel nem tűntek el az 1111-ek, ezért nincs trim. Hasonló módon ext4-en eltűnnek az 1111-ek.

Egyébként a trim-nél előírászerűen azonnal "el kell tűnnie" az adatnak (értsd: az SSD kontroller csupa 0x00-kat vagy 0xff-eket kell, hogy visszaadjon, függetlenül, hogy fizikailag mi van a flashen), vagy egyszerűen csak nemdeterminisztikus, hogy mit ad vissza, ha ráolvasunk (akár az eredeti adat is lehet)?
---
Internet Memetikai Tanszék

Az SSD-k nem fizikailag nem tudják felülírni az adatot, csak akkor ha 0x00 van a flash memóriában. És sajnos a legkisebb átírható egység elég nagy, általában 512Kib. Ezért felülíráskor nem oda írják vissza ahonnan olvasták, hanem keresnek egy üres helyet. Így sokkal gyorsabb, mert megspórolják a törlést. De az üres helyek elfogynak, mert nem régi verziót nem törlik le, hanem otthagyják a szemetet. Erre jó a TRIM, üresjáratban gyorsan nullázza a régi pozíciót, hogy aztán gyorsan bele lehessen írni.

Tehát igen, 0x00-át kell visszaadjon a kontroller. Itt egy jó cikk, amiben le van írva hogy lehet tesztelni:

http://askubuntu.com/questions/18903/how-to-enable-trim

Csak sajnos ez raid fölött nem ilyen egyszerű, mert a hdparm -i nem tud egy fájlhoz sector számot mondani. Ezért kell kell egy 0xff-es fájlllal teleírni a winyót, akkor próbálgatva könnyű találni sectort.

Igen, tudom, hogy hogyan mukodik az SSD belul. Az viszont szerintem nem feltetlen igaz, hogy a TRIM muvelet hatasara azonnal vagy legalabbis zaros hataridon belul fizikailag torlodik a regi pozicion levo adat. Csak valami belso page tablaban feljegyzi a kontroller, hogy az ott levo szemetet nem kell megmenteni, amikor legkozelebb indokolt lesz a teljes erase block torlese, de ez lehet, hogy csak nagyon sokara tortenik meg. Amig van ures hely _vagy_ van masik kevesebb irasi ciklust kapott torlerse kijelolt blokk, addig nem fogja bantani. Egyebkent lehet, hogy te is erre gondoltal, csak a mondataidbol nem volt egyertelmu.

A kerdes arra vonatkozott, hogy egeszen biztos-e, hogy a kontroller firmware "elrejti" az esetleg fizikailag meg ott levo szemetet az olyan blokkokbol, amire TRIM-et adtunk ki, vagy elofordulhat, hogy megis lathato marad a szemet a host felol? Nem szuksegszeru, hogy az elobbi legyen, bar ketsegkivul igy lenne korrekt. Amilyen szir-szar firmware-ek forognak a piacon, nem mernek merget venni ra, hogy nem tudsz olyan tipussal osszefutni, amelyik igenytelenul implementalja a TRIM utani READ-et.
---
Internet Memetikai Tanszék

Én úgy tudom hogy a flash memóriára ráírni nem lehet, előtte fizikailag törölni kell. Ergó fel sem merül, amit kérdeztél.

Biztosat egy típusról tudok állítani: Intel X25-M G2. Itt a TRIM után biztosan 0x00 jön vissza. Egészen pontosan így teszteltem:


rm randfile && hdpram --read-sector 123456789 /dev/sda && sync && hdpram --read-sector 123456789 /dev/sda

Ez az első sector kiolvasásra még visszaadta a random értékeket, sync után már 0x00 jött.

Igazából vissza a kályhához.

Milyen kiszolgálón miért szeretnél gyorsítani ssdvel? Milyen kiszolgálást végzel rajta? Virtualizálnál? Lamp? Db? Cache? Proxy? Smb?

Nagyon nem biztos, hogy az ssd az ami kell neked a célhoz.

Ez már egy meglévő szerver, a CPU magok unatkoznak, a 8GB ram 3/4 csak file cache-re van használva, viszont az MySQL InnoDB műveletek elég lassuak. Ráadásul a winyók már öregek is, így mindenképpen megértek a cserére.

Nagyon köszönöm mindenkinek a tanácsokat, azt hiszem most már fogok tudni dönteni.

Sok lehetőséget felvázoltam magamnak:

a) 1 db. SSD
b) 2 db. SSD RAID1-ben
c1) 2 db. HDD RAID1-ben 10K Velociraptorokkal
c2) 2 db. HDD RAID1-ben 7200-as normál winyókkal
d) Flashcache (1 SSD + HDD RAID1-ben)

Majd felírtam mindegyiknél, hogy
- gyors-e (ssd igen/hdd nem/raptor közepes)
- megbízható-e (raid1 van/nincs)
- nagy tárkapacitás van-e (normál hdd igen/ssd és raptor nem)
- mennyibe kerül (saját zsebre megy a játék, nem más pénzét költöm)

A Flashcache tetszik a legjobban, mert ez az egyetlen, ahol mind a 4 paraméter adott. Elég olcsó a kiépítése is: ha a háttérben egy jó RAID1-es HDD pár ül, akkor elé akár a leggányabb SSD-t is be lehet tenni. Ha kiesik az SSD minimális config állítgatással és 1 reboot-tal azonnal át lehet állni a HDD RAID1 párosra.

A flashcache egyik hátránya lehet, hogy nem elég érett. Mondjuk cukorhegy elég sok gépen futtatja. Igaz, náluk nem akkora gond egy adatvesztés.
A flashcache másik hátránya, hogy új tekknologia, amit tanulni kell.

Rövid távra szimpatikus még az a) opció is, mert b)-re és d)-re is továbbfejleszthető.

Most ott tartok, hogy a Flashcache-t próbálom VirtualBox-ban összehegeszteni. Nem vagyok egy device mapper/mdadm/initramfs/grub guru, így egyelőre elakadtam. Ha nagyon nem megy, majd kérdezek.

Mégegyszer köszönöm mindenkinek a segítséget!

Nezd meg a mysqltuner.pl-el, hogy mit ajanl az innodb-hez es 3-4 nap mulva ujra. Ha ennyire csak cache-el a memoria, akkor tuti lesz mit ugykodni. Ha nem hasznalod az innodbfilepertable opciot akkor erdemes atallni arra is.

Ha megtobb kraft kell es nem bizol az ssd-ben, akkor vennek egy 4 portos sas hba-t es Raid1-be vagy raid 1+0-ba kotnek 10 vagy 15k-s vinyokat, amik akar hasznaltak is lehetnek.

--
Apache Solr Druplahoz és Wordpresshez: http://solr.vpspro.hu

Szerintem a SSD jobb megoldás :>
Nekünk a monitorozó szerver alatt 4G ram dual QC xeon meg 2 db 15k rpm sas disk volt.
Volt már mikor 15 másodpercig is generálta a weboldalt. mysql adatbázisában 115 millió sor van. Cseréltem 2 db 128G-s OCZ vertex-re raid1-ben. Azóta az oldal generálás. 0.1-0.3 másodperc. Többszörösére gyorsult. Szóval inkább 2 SSD mint 4 db SAS szerintem.

Fedora 16, Thinkpad x61s

Lásd a "ha az ssd-ben nem bízol" kitételt. :) Az SSD viszont elég hamar le fog fáradni, ha sokszor újrageneráltok vele ilyesmit. Minden esetre mielőtt MySQL ügyben bármerre indul valaki tényleg érdemes a mysqltuner.pl -el megnézni, hogy mi a helyzet, mert aztán csodálkozás jön fejlesztés után is.

--
Apache Solr Druplahoz és Wordpresshez: http://solr.vpspro.hu

Az igazság az, hogy sw oldalon bőven van mit optimalizálni, nem csak a mysql-nél hanem a két fő alkalmazásban is bőven van még tartalék.

De először a HW-t akarom rendbetenni, mert a mostani két HDD már tényéeg nagyon csereérett, és egyértelmű hogy az IO a szűk keresztmetszet.

A mysqltuner-t ismerem és használom, de vetek rá egy újabb pillantást, néha tényleg 5-10 perc "munkával" csodákat lehet elérni.

Annyi friss infóm van a flashcahce-ről, talán érdekel valakit, hogy ha a root particiót akarod így használni (én így szeretteme volna) akkor az "apt-get dist-upgrade" el fognak hasalni, az update-grup nem megy (oldal alja):
https://github.com/facebook/flashcache/blob/master/README-DKMS

Egyébként azért szimpatikus ez a flashcache nekem, mert pont az innodb műveletek gyorsítása volt a fő céljuk a készítőinek. És nekem is pont ez kell.

Vetek majd egy pillantást a bcache-re is, az is ígéretesnek tűnik.

Csodát nem lehet tenni, de jó tippeket ad. Szerintem fordítva ülsz a lovon. :) Elsőre azt kéne látni, hogy optimális esetben mekkora erőforrás igénye van a cuccnak és utána tudsz diszk cserét meg bármit kitűzni. :)

--
Apache Solr Druplahoz és Wordpresshez: http://solr.vpspro.hu

Írod, hogy van mit optimalizálni az alkalmazásban. Attól, hogy egyre több sz@rul megírt modul/kódrészlet kerül bele, attól még az optimalizálásra IS kell erőforrás a fejlesztői oldalon is. (Ha nem így tesztek, akkor a sz@rkupac is növekedni fog...) Sajnálatos tapasztalat, hogy a sz@r kód alatt ha vasat cserél az ember, és meglódul a teljesítmény, akkor a fejlesztés nem fog erőforrást szánni az optimalizálásra, hiszen az elvárt performanciát hozza az egész cucc - közben meg te, mint OS/DB admin szívsz, mint ama szibériai fehér farkú torkos borz.

Alkalmazástól is függ, hogy mit lehet teljesítményfokozásra bevetni - néha egy-egy apró memcahed vagy redis rendszerbe állítása is csodákra képes, bár az lehet, hogy jóval több fejlesztői munkát igényel, mint a jelenleg használatos query-halmazt és DB-struktúrát gatyába rázni.

+1 :) Én sokszor szélmalom harcnak érzem a T. Fejlesztőket rávenni arra, hogy értelmes kódot írjanak, mert nem a vas gyenge, hanem a kód szar. :) Természetesen kb. képtelenség a vas erősségéről meggyőzni őket, mert sokszor elfelejtik, hogy attól hogy a teszt gépen (ami mondjuk akár még erősebb is, mint a szerver) egy szálon, egy klienssel remek a sebesség, de amikor 5-en rámozdulnak akkor jön a pofára esés.

--
Apache Solr Druplahoz és Wordpresshez: http://solr.vpspro.hu

zeller, andrej_: átérzem a problémát :) Bár én általában a túl oldalon ülök, kódolni szoktam, mindig ügyelek arra hogy ne legyen erőforrás pazarló amit írok.

Jelen esetben viszont one-man-army van: én bütykölöm a szervert, én is veszem meg, és az appokat is én írom rá. Így ha lassú, akkor biztos én vagyok a hibás :D

Egyébként a redis-sel fején találtad a szöget, tervben van egy DB intenzív funkció átírása redis alapokra. Tökéletes lenne rá, hasítana mint állat.

A prioritások eldöntése szerintem nem a rendszergazda dolga, hanem a projektmanageré.

Rendszergazdaként pl. annyit tehetsz (bár ez sem feltétlenül a te dolgod), hogy írsz egy jó kis jmeter-es tesztet (esetleg egy kis seleniummal megtűzdelve) aztán rádobod a tesztszerverre és nézitek együtt ahogy összedől.

Aztán lehet magyarázkodni a fejlesztő uraknak ... :)

--
Gábriel Ákos

Mi is tettük, aztán az ahhoz képest harmatgyenge tesztgép többet sajtolt ki magából, mint az éles oldal, ugyanazokkal az adatokkal.

Aztán kiderült, hogy nem a mi rendszerünk a rossz, hanem a másik, ami még mellette futott. (Sors iróniája, hogy azt is nekem kellett helyrepofozni. :)

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Azt még azért hozzátenném, hogy nem triviális tényleg jó (a valóságot tükröző) teszteket összehozni. Hogy mást ne mondjak, az "ab" pl. engem először csúnyán átvert (2005-ben :) ), mert ugyan lekérte a HTML headert, de a tartalmat már nem várta meg, így persze jóval nagyobb számokat mondott mint amit a rendszer ténylegesen a userek felé szolgáltatni tudott. Aztán persze erre rájöttem, és onnan kezdődött az igazi munka :)

--
Gábriel Ákos
http://i-logic.hu

Igen, egyetértek. Egy dolgot hiányolok (vagy még nem találtam meg) belőle, a javascript futtatás. Erre pl. a Selenium jó.
Bár a Selenium meg inkább funkcionális tesztre való szerintem.

Én is most ismerkedem behatóbban ezekkel az eszközökkel, eddig még csak éppenhogy használtam ... :)

--
Gábriel Ákos
http://i-logic.hu

Én csak annyit tudok hozzátenni, hogy mint minden eszköz esetében az ssd is meghibásodhat. Ismerősöm hozott egy ssd-t hogy nem tud vele mit kezdeni, nézzem már meg. A disket felismerte a rendszer, de íráskor mindenféle baja volt. Mondtam neki, hogy nem jó. Később hívott, hogy kicsit megmelegítette a lábakat a panelen és elndult, megy. Majd két hónap múlva, hogy megint meghibásodott és elmentek az adatai. :( Egyébként nem gagyi ssd-ről van szó, de nem említek márkanevet, mert szerintem ez csak egy véletlen, ezerből egy.

---
OS: Fedora 17

Raid1 1db SSD-vel és 1db hdd-vel. Olvasás -> ssd sebesség, írás hdd sebesség. Egyszer próbáltam, működik, látványos.

Hamár így felbukkant ez a topic, jelzem (bár off) hogy végül raid mirrorba tettem két hdd-t és elé bepakoltam egy ssd-t facebook féle flashcache-sel. Eddig maximálisan elégedett vagyok, nagyon gyors, és nagy a tárhely is.

Valószínűleg elég hamar el fog használódni az ssd, de könnyű kicserélni, és távolról kiiktatható az ssd amíg nem viszem be a cserét.

Kiváncsi lennék hogy amikor elromlik a flash az hogy jelentkezik. Én azt gondolnám ha nem tudja írni akkor keres másik helyet a flashen amíg van tartalék. Keletkezik ilyenkor hibajelzés vagy s.m.a.r.t.-tal észrevehető? A flashcache ki tudja magát kapcsolni ha write error van, továbbmegy kiesés nélkül?

A flashcache 3 féle módban tud működni, a leggyorsabb módban íráskor csak ssd-re ír, de van olyan mód is amivel hdd-re is és ssd-re is ír.

Automatikusan nem fog továbbmenni szerintem ha az ssd elpukkan. Viszont ha kiszedem a flashcache-t, a mögötte lévő hdd mirror simán fel lehet mountolni, a flashcache is csak annyit lát belőle, hogy egy block device.

Én most nézegetem az SDD+mdadm+trim témakört és nem látok konkrétumot, hogy az mdadm már támogatja-e. Van erről valakinek infója?

https://github.com/Cyberax/mdtrim

Az 'lsblk -D' -vel tudod megnezni, h engedi-e a block device.

Ill. ubuntuban van egy 'fstrim' parancs is, az is ezt csinalja.

A kernelbe vmikor mar bekerult, de nem talalom, mikor.

Viszont ha nem supported a tiedben meg, akkor ki kell irnia vmi ilyet:

EXT4-fs warning (device md1): ext4_issue_discard:2619: discard not supported, disabling

Vhol itt kezdtek el hozzaadni:
http://lkml.indiana.edu/hypermail/linux/kernel/1203.2/00049.html

https://lkml.org/lkml/2013/7/16/691

FYI:

Sangwhan Moon, A. L. Narasimha Reddy: Don’t Let RAID Raid the Lifetime of Your SSD Array

"Abstract
Parity protection at system level is typically employed to compose reliable storage systems. However, careful consideration is required when SSD based systems employ parity protection. First, additional writes are required for parity updates. Second, parity consumes space on the device, which results in write amplification from less ef- ficient garbage collection at higher space utilization. This paper analyzes the effectiveness of SSD based RAID and discusses the potential benefits and drawbacks in terms of reliability. A Markov model is presented to estimate the lifetime of SSD based RAID systems in different environments. In a single array, our preliminary results show that parity protection provides benefit only with considerably low space utilizations and low data access rates. However, in a large system, RAID improves data lifetime even when we take write amplification into
account."