Moin alerseits nach langer Stille. sorry meine Studienarbeiten rufen
Evt noch meinen Senf zum Tema Cache. Gibt es ja als lese, schreib oder lese-schreib cache im QTS. QES und QTSHero nur als Lese Cache wegen ZFS struktur und daher total anderst.
Warum führt es in der Praxis auch zum Datenverlust im QTS? Mögliche Lösung und Ursache ist folgende:
Wie wird dein Cache angelegt?
Der Cache wird über eine eigenständige Disk oder Raidverbund angelegt und bindet sich in dein Dateisystem ein. Im optimalsten fall, hat der zur Verfügung stehende Superblock natürlich einen hohen Duchsatz (Bandbreite/IOPS) durch gute Disks und/oder dedizierte Schnitstellen. Daraus natürlich die abgeleiteten Rechte: Schreiben, lesen oder beides
Warum geht dein Cache überhaupt kaput ? Dein QTS entscheidet selbst, wenn du den Cache "ON" hast ob er eine Datei XY in den Cache legt. Daher weiss nur dein ex4 Dateisystem auf dem QTS aufgebaut ist welcher superblock Berreich für "Cache" ist und welcher für "Data" zur Verfügung steht.
Logischerweise stellt es dein Dateisystem für das du gerne Cache haben willst unter Dauerstress, und zwingt es im iNode register des Dateisystems die Register umzuflaggen, wenn jetzt eine Datei in "Cache" oder in "Data" verlegt wird und erzeugt somit viel Leistung.
Daher ist auch ZFS viel effizienter da das ZIL in das Ram geladen wird und wie eine Datenbank lesend abhandelt. Daher auch bei Benchmarks ZFS viel effizienter im lesen aber schwächer als ext4 im schreiben. Da vermutlich heutzutage die meisten 70-80% lesevorgänge haben eine gutze Wahl aber eben das ist wie Äpfel mit Birnen zu vergleichen....
nun zurück zum möglichen Crash Szenario:
Da deine Volume die du erzeugst "Virtuele gebunden Verzeichnisse im QTS sind" die sich über X Raids und Volumes hinwegziehen geht logischerweise beim Ausfall des einen oder anderen physischen Volumen oder gleich dem Raid das Virtuelle gebilde flöten. Daher Datenverlust und Systemcrash...!
Ich bin aber mit der Aussage einig, dass wenn noch ein superblock eines Raids intakt ist ein Recovery einer Datei aus dem caches möglich ist.
Es ist leider nicht immer alles stabil was Dynamisch/virtuell erstellt wird. Ich persöndlich empfehle auch eher QTier zu verwenden, da es besser Einstellbar ist und die oberste Ebene (Raid/superblock) eher der treibende Trigger ist, dass birgt weniger Risiken im iNode Register vom ext4 Dateisystem aber ist natürlich hier auch der gleiche Crash möglich.
Cache ist eher dazu gedacht die Schreib- Lese Latenzzeit von ext4 zu verkürzen (Gap zwischen dem Ext4 Dateisystem zum Server Memory, CPU und der Weitergabe an Periferie) und gerade bei IOPS lastigen Anwendungen wie bei Datenbanken und Streaming ein Gamechanger.