Tags: Storage, vSphere, Performance
VMwares hyperkonvergente Storage-Lösung Virtual SAN (vSAN), aber auch die Storage-Technologie Virtual Volumes (VVOLs) setzen richtlinienbasiertes Speicher-Management (Policy Based Storage Management, PBSM) um. Das System platziert VMs dann automatisch auf Datastores, die den definierten Policies genügen.
Um zu verstehen, was PBSM bringt und welche Rolle dabei die vStorage APIs for Storage Awareness (VASA) spielen, ist es nützlich, sich zu vergegenwärtigen, wie man ein richtlinienbasiertes Storage-Management auf Basis traditioneller Storage-Konzepte realisiert. Dabei stellt sich zuerst die Frage, wozu man eigentlich Speicherrichtlinien braucht.
Eine Frage der Workloads
In einer gewachsenen Virtualisierungsumgebung existieren naturgemäß diverse virtuelle Server, die ihrerseits ganz unterschiedliche Anforderungen an das Storage stellen. Dies ist neben Sicherheit und Verfügbarkeit auch ein wesentlicher Grund dafür, auf ein und demselben virtuellen Server nicht mehrere Applikationen parallel auszuführen. Rein technisch wäre dies möglich, indem man die VM entsprechend dimensioniert.
Wenn man sich schon zu parallel laufenden Services in einer VM entschließt, dann sollten es solche mit einer ähnlichen Workload-Charakteristik sein, wie beispielsweise mehrere Worker-Instanzen auf einem Web Server.
Hinsichtlich dieser Charakteristik könnte man mehrere Typen von Anwendungen unterscheiden:
- Ausgewogen: Darunter fielen etwa Cache-Farmen, Back-End-Systeme für SAP, Microsoft SharePoint.
- CPU-intensiv: beispielsweise Cluster-Computing, verteilte Analysen, wissenschaftliche und technische Anwendungen, Ad-Serving, Stapelverarbeitung, Video-Codierung
- RAM-intensive: Dazu zählen etwa In-Memory-Datenbanken, SAP HANA, Datenverarbeitungs-Engines wie Apache Spark oder speicherintensive Workloads wie NoSQL-Datenbanken (Cassandra, MongoDB und Redis), Transaktionsdatenbanken oder Data Warehouses.
Daher ist es meist besser, für jeden Anwendungsdienst einen eigenen virtuellen Server bereitzustellen, ein Ansatz der auch bei Containern und noch mehr bei Microservices zum Einsatz kommt.
Isolierung auf VM-Ebene reicht nicht
Doch selbst wenn man Workloads mit unterschiedlichen Charakteristiken voneinander isoliert, indem man sie in separaten VMs ausführt, beeinflussen sich diese Systeme immer noch. Das gilt vor allem dann, wenn ihre VMDKs gemeinsam auf einem Shared Datastore liegen, der am Backend auf der gleichen LUN basiert (Tiering).
Bei klassischen SAN-Architekturen definiert nämlich die LUN die Eigenschaft des Datastores. Daher versteht es sich von selbst, dass verschiedenartige Workloads nicht auf die gleiche LUN gehören.
Ein anderes Thema sind Service Level Agreements. Angenommen, Sie möchten einem Kunden für das Speichern seiner VM einen gewissen Durchsatz (IOPS) oder eine gewisse Verfügbarkeit garantieren. Dann müssen Sie eine Lösung erarbeiten, die dafür sorgt, dass die betreffende VM immer auf einem Datastore liegt, dessen zugrunde liegende LUN die geforderten Eigenschaften auch erfüllt.
So etwas lässt sich nur bis zu einem gewissen Grad manuell gewährleisten. Denn was ist zum Beispiel, wenn Storage-DRS die betreffenden VMs für einen Kapazitäts- oder Last-Ausgleich (I/O) in einen Datastore im Cluster verschiebt, der vSphere Admin die VM für Wartungsaufgaben auf einen anderen Datastore migriert oder der Storage-Admin aus einem ähnlichen Grund die LUN verschiebt bzw. deren Eigenschaften im Storage-Array ändert? Hier kommen Speicherrichtlinien ins Spiel.
Was bringen Speicherrichtlinien?
Mit Speicherrichtlinien können Sie grob gesagt dafür sorgen, dass eine VMDK stets auf einem Datastore zu liegen kommt, der mit den Speicherrichtlinien einer VM kompatibel ist. Richtig komfortabel funktioniert das allerdings nur, wenn der Speicher VMwares vStorage APIs for Storage Awareness (VASA) unterstützt.
Hierbei handelt es sich um einen Satz von Programmierschnittstellen (APIs), der es vCenter ermöglicht, die Fähigkeiten des Speicher-Arrays zu erkennen. Eingeführt mit vSphere 5.0 im Jahre 2011 (VASA 1.0), erlaubte das API zunächst nur eine unidirektionale Kommunikation. Dabei sorgt der so genannte VASA-Provider dafür, dass das Storage-Array seine Fähigkeiten publizieren kann.
Erst mit VASA 1.5 in vSphere 5.5 und der Vorstellung von Virtual SAN war es notwendig und möglich geworden, VASA auf eine bidirektionale Kommunikation zu trimmen. Dadurch kann auch die vCenter-Seite dem Storage mitteilen, welche Speicheranforderungen für eine bestimmte VM gewünscht sind, wobei VMware vSAN den VASA-Provider selbst mitbringt und installiert.
Täglich Know-how für IT-Pros mit unserem Newsletter
Seine Themenschwerpunkte sind Virtualisierung und Cloud Computing, speziell VMware, Amazon Web Services, Google Cloud und Microsoft Azure. Thomas ist zertifizierter VMware Professional, Advanced Professional und wurde von VMware in den Jahren 2016, 2017, 2018, 2019 und 2020 mit dem Blogger-Status vExpert ausgezeichnet.
Thomas ist außerdem zertifizierter AWS Solutions Architect, Sysops Engineer und Devops Engineer sowie Microsoft Certified Azure Administrator.
Thomas führt aktuell jeden zweiten Montag einen 4-tägigen Grundlagenkurs in Cloud Computing mit AWS via Zoom-Meeting durch. Weitere Informationen und Anmeldung über sein AWS-Blog.
Ähnliche Beiträge
- Leistung von vSphere-Speicher überprüfen mit VMware Storage Performance Tester
- Virtuelle Disk-Controller für VMs auf VMware ESXi: LSI-Logic SAS oder VMware Paravirtual?
- Performance von VMware vSAN testen mit Hyper-Converged Infrastructure Benchmark (HCIBench)
- Leistung von VMware vSAN mit dem kostenlosen Performance Monitor auswerten
- Integrität und Leistung von VMware vSAN mit vRealize Operations Manager prüfen
Weitere Links