Frage: Funktionsweise von HDD Cache (Single / RAID)
GrandAdmiralThrawn 23.04.2007 - 14:15 1186 7
GrandAdmiralThrawn
Lord of Derailment
|
Was mich Mal interessieren würde, und wozu ich keine rechten Infos finden will: Wie genau arbeitet eigentlich HDD Cache? Da die HDD kaum etwas von Filesystemen verstehen wird, wird's so etwas hoch entwickeltes, wie ganze Files zu cachen ja wohl kaum spielen...
Gibts da auch so etwas wie eine Sprungvorhersage bei sich wiederholenden Leseoperationen (Sprung zu wahrscheinlich folgendem Block mit Hit-/Miss-Logik wie bei CPU Cache?!)?
Schreibcache ist ja noch recht logisch, aber wir funzt da der Lesecache? Oder ist das ganze völlig dumm, legt alles rein bis der Cache voll ist, und hofft, daß davon etwas wiederverwendet wird, und wenn nicht, haut er gewisse Daten mit Timeout wieder raus, ganz ohne wirklich intelligente Logik?
Das wäre mal interessant zu erfahren, u.a. auch, wie sich der platteneigene Cache dann in RAID verhält.
Weiß irgendjemand etwas dazu?
|
ingomar
Big d00d
|
Lesecache: Puffer gegenüber dem Bus, behält die letzten Daten Schreibcache: meist deaktiviert; die Daten werden in den cache geschrieben und in einem geeigneten Moment in einem Block auf die Mechanik heruntergeschrieben.
ich kann zu den disken selbst nicht viel sagen, ausser bei den grossen boxen (tagmastore bzw. hp XP12000/10000, XP128):
Der Cache auf den Disken selbst ist aus 3 Gründen komplett deaktiviert: 1, Hat die Box mit maximal 128 bzw. 256 GB mirrored Cache mehr als genug 2, können die Mechanismen des Controllers nicht den Plattencache beeinflussen und 3, kann ein Schreibcache bei Ausfall der Disk Datenverlust provozieren.
letzteres ist übrigens seit jeher auch bei einzelnen scsi-disken so: der schreibcache ist quasi immer abgedreht, da bei z.b. Stromausfall Datenverlust sein würde.
|
Umlüx
Huge Metal Fan
|
lesecache ist imho ein einfacher dummer cache der die zuletzt gelesenen daten noch behält und fifo mässig wieder raushaut. schreibcache wird bei unseren maschinen enbenfalls aus genannten gründen deaktiviert.
|
GrandAdmiralThrawn
Lord of Derailment
|
Kann man den Schreibcache einzelner HDDs überhaupt ein-/ausschalten? Ich mein, am Controller ists ja einfach dank Battery Backup Units für den Cache, da wird schon nichts verloren gehen, aber haben Einzelplatten überhaupt Schreibcache bzw. wie schaltet man den ein oder aus?
Oder haben gewöhnliche SATA/PATA/SCSI HDDs so ein Feature gar nicht?
|
Smut
takeover&ether
|
den schreibcache kannst nur über den controller deaktivieren.
z.b. unter windows im gerätemanager.
|
Umlüx
Huge Metal Fan
|
schreibcache kannst doch normal im gerätemanager bei jeder platte deaktivieren? zumindest hab ich sogar bei meinem laptop ein hackerl zu setzen. sonst vielleicht über hersteller software (seatools etc) oder smart tools? wir machen es über die HP eigene Software des Controllers
|
ingomar
Big d00d
|
übrigens noch ein interessanter teilaspekt: der cache auf den grossen hobeln der klasse XP ist der Cache in "Global mirrored Cache" und "Shared Memory" eingeteilt bzw. getrennt. Shared Memory: das mapping - welche LUN auf welchen disken liegt, wo die blöcke hinkommen, usw... global Cache: fürs lesen FIFO, fürs schreiben macht er zuerst den cache und geht dann erst geblockt zu iirc 256k auf die mechanik. bandbreite ist max. 68 GB/sec...  bei den kleineren RAIDs - etwa smart arrays - ist das alles in dem einen cache zu z.b. 512 mb untergebracht. das aktivieren des schreibcache geht mit tools des entsprechenden herstellers am einfachsten - für meine quantum atlas etwa war das ein einfaches 12kb dos-utility. wenns allerdings im treiber implementiert ist, gehts auch über die systemsteuerung.
|
GrandAdmiralThrawn
Lord of Derailment
|
Ok, thx schon Mal, bleibt nur eine Frage..
Wenn ich einen HW RAID Controller einsetze, kann ich ja im Treiber (wie hier schon gesagt wurde) den Schreibcache aktivieren, soweit so gut. Betrifft dies nur den Controllercache oder auch den HDD Cache? Weil die Verwaltung wird ja getrennt sein, nehme ich Mal an.
Wenn ich also (praktisches Beispiel) bei meinem Promise SuperTrak SX6000 Write Caching aktiviere, schreibt er dann in den Controllercache UND den HDD Cache oder nur in den Controllercache? Weil wenn er auch in den Plattencache schreiben würde, könnte man trotz BBU am Controller ja immer noch Datenverlust beim Schreiben kriegen, wenn plötzlich der Saft weg ist..
Also wird der on-HDD-Schreibcache wohl bei RAID Systemen aus sein?
|