Serverseitiger Cache

Fill in the Form to Continue

PUBLISHED/UPDATED: May 14th, 2015

EINLEITUNG

I/O führt zu guten oder schlechten Systemen, deshalb ist die Speicherleistung immer eine wichtige Frage, besonders in virtualisierten Umgebungen, in denen VMs hungrig nach IOPS sind. Da die komplette Umstellung auf Flash sehr kostenintensiv ist und erst recht bei kompletten RAM-Speichersystemen, sind beide Optionen nicht realisierbar. Deshalb wird in der Branche gewöhnlich eine Kombination aus langsamerer Spindel, schneller Flash und viel schnelleren RAM-Level gewählt.

PROBLEM

Der Ansatz mit Mehrfachlevel wirft einige Probleme auf. Schnellere und zuverlässigere Speicher sind kostspieliger. Hochleistungsfähige oder permanente Speicher erhöhen den Preis des Systems gewaltig. Bei Flash-Speichern sind SLC-Flash-Speicher sehr kostspielig. MLC-Flash-Speicher sind zwar günstiger, haben jedoch eine kürzere Lebensdauer, da die Schreib- und Löschvorgangslimits zehn Mal niedriger sind.

Der VM-Workload wird von zufälligen I/O dominiert, die schwer vorherzusagen sind. Unzureichender Cache-Speicher führt zu im Durchschnitt niedriger Cache-Ratio. Bei zusätzlichem Cache-Speicher erhöhen sich ebenfalls die Kosten. Darüber hinaus führen bestimmte Prozesse wie das Starten von bewegten VMs auf einem Zielknoten nach vMotion, Live Migration oder XenMotion zu reduzierter Leistung, da die VMs einen Kaltstart ausgeführt haben. Das bedeutet, dass die VM ohne Daten im Cache gestartet wurden und das hat einen dramatischen Leistungsverlust zur Folge.

Mit konventionellem RAM statt einem permanenten Speicher wird der Cache fehleranfällig, da die Daten im Cache verloren gehen, wenn die Hardware oder die Stromversorgung versagt. Andererseits kostet ein energieunabhängiger Speicher mehr Geld, wie oben bereits angemerkt.

LÖSUNG

Der Preis des System ist niedriger, da StarWind Standardhardware nutzt z. B. herkömmliche RAM, SATA SSD, MLC, FLASH oder ähnliche Produkte für den Cache. Kostenintensive Flash-Speicher haben eine längere Lebensdauer, da die SSD-Nutzung entweder im Write-Through- oder Write-Back-Modus möglich ist. StarWind verwendet konventionellen RAM als Schreibpuffer und Level1-Cache zur Vermeidung von Schreibvorgängen. Bei diesem Ansatz werden Flash-Speicher in Level2-Cache umgewandelt, sodass die Anzahl der Schreibläufe reduziert wird und sich die Lebensdauer verlängert. Zusätzlich zur Technologie für Speicherplatzreduzierung, darunter Inline-Deduplizierung und Komprimierung, senken sie das tatsächlich zu schreibende Datenvolumen, sodass der Flash-Speicher länger hält und somit Ersatzkosten eingespart werden können.

StarWind erhöht die Leistung durch größeren Cache für dasselbe Geld. Es wird preiswerte Standardsoftware wird – MLC-Flash – anstelle von teurem SLC-Flash, sodass mehr Speicher erworben werden kann, um die Workload-Anforderungen zu erfüllen. Zusätzlich beeinflusst der Startvorgang einer VM nach der Integration nicht die Leistung. Alle bewegten VMs führen einen Kaltstart aus, weil die Caches kohärent bleiben – damit ist eine Synchronisation zwischen den Knoten gemeint. Das bedeutet, dass der Zielknoten die notwendigen Daten im Cache bereitstellt, sodass die VM ohne Leistungsverlust starten kann.

Zuverlässigkeit wird groß geschrieben – StarWind spiegelt praktisch die Daten im Cache zwischen mehreren Knoten und erstellt damit einen verteilten Cache. Wenn der Strom ausfällt, sind die Daten sicher, weil redundante Replika auf allen Knoten gespeichert sind. Dazu sind Cache-Blöcke auf digital signiert, was die Möglichkeit stummer Datenkorruption vermeidet – Bit Rot. Zusätzlich verlängern die Technologien der Speicherplatzreduktion auch den Nutzungszeitraum des Flash-Speichers und senken damit das Fehlerrisiko.

FAZIT

StarWind verwendet Standardhardware, die preisgünstig – DRAM, SATA, MLC – und leistungsstark – PCIe, DIMM Flash – ist, damit die maximal mögliche Leistung und Zuverlässigkeit ohne Kostenexplosion möglich ist.