DRS Affinity Rules by Tag

Kürzlich habe ich mich mit dem Thema Lizenzoptimierung für Gast Betriebssysteme in VMware vSphere Umgebungen auseinandergesetzt. Die Anforderung war es, möglichst wenige ESXi Hosts mit RHEL oder SLES zu lizenzieren. Die simple Lösung ist, diese Betriebssysteme auf bestimmten, möglichst wenigen ESXi Hosts in den Clustern zusammenzuhalten. Der Cluster kann und soll dabei noch mehr Hosts beinhalten als die lizenzierten. Da für mich nur eine automatisierte Lösung in Frage kam, habe ich mich für den Ansatz DRS Affinity Rules by Tag entschieden.

Ich muss ganz ehrlich sagen ich war etwas verwundert, dass es in VMware vSphere out of the box nicht möglich ist, DRS Gruppen per Tag zu bilden, ähnlich wie bei Storage Policys. Aber mit VMware PowerCLI ist ja fast alles möglich.

Die Umsetzung der Anforderung sollte dann wie folgt aussehen:

DRS Affinity Rules by Tag - Diagram

DRS Affinity Rules by Tag – Diagram

  1. An den VMs mit lizenzpflichtigen Gastbetriebssystemen wird das entsprechende Tag angelegt
  2. Pro Cluster bekommt mindestens ein ESXi Host pro Lizenztyp ebenfalls das oder die jeweiligen Tags
  3. Anhand dieser Tags werden automatisiert DRS Gruppen gebildet
  4. Diese Gruppen werden dann wiederum automatisiert in einer VM to Host Affinity Rule verwendet

Hört sich erst einmal etwas aufwendig an, hat jedoch langfristig enorme Vorteile:

  • Beim Provisionieren muss nur der Tag an die VM geheftet werden und der Automatismus kümmert sich um die Platzierung
  • Der gleiche Automatismus greift auch für den Host. Es muss nur das Tag gesetzt oder entfernt werden anstatt die Gruppe zu verändern
  • Compliance Audit ist anhand der Tags jederzeit möglich
  • Die Tags können in Drittprodukten wie vRealize Operatrions Manager ebenfalls verwendet werden

Voraussetzungen:

  • DRS ist in allen Clustern mindestens auf Teilautomatisiert gestellt, besser auf Vollautomatisiert (auch bereits auf ganz Konservativ)
  • Nur ein Lizenz Tag pro VM, Hosts gerne mehrere
  • Bei Stretched Clustern (über mehrere Datacenter) muss in jedem Datacenter mindestens ein Host pro Lizenztyp vorhanden  sein

Umsetzung DRS Affinity Rules by Tag

Ich habe für die initiale Umsetzung erst einmal PowerCLI gewählt. Später wird das Ganze wohl auf vRealize Orchestrator portiert werden.

VMs Klassifizieren

Als erster Schritt ist es notwendig die bestehenden VMs für die Lizenzgruppen zu identifizieren.

Tags den VMs zuweisen

Das gehört ebenfalls noch zum initialen Prozess um die bestehenden VMs zu erfassen.

Kleiner Test

Um einen Eindruck zu bekommen wie praktisch die Tags sind, ist dieser Codeschnipsel sehr aussagekräftig:

Gruppen und Regeln erzeugen

Nun kommen wir zum Hauptteil der initialen Klassifizierung. In jedem vSphere Cluster in dem sich VMs befinden müssen die jeweiligen Gruppen und Regeln erzeugt werden.

Um die Gruppen und Regeln zu erzeugen ist allerdings zusätzlich das DRSRule PowerShell module von Matt Boren und Luc Dekens erforderlich.

In meinem Beisiel wird ein Host pro Cluster mit allen Lizenz Tags versehen.

Auch zu beachten ist, dass ich die Regeln initial als Soft-Rule angelegt habe. Das ist bezüglich der Lizenz Compliance etwas fraglich aber für die Handhabe wesentlich einfacher.

Mehr Infos zu den beiden Regel Typen findet man in diesen Artikeln:

Mandatory DRS Rules and HA

Should or Must VM-Host affinity rules?

Ergebnis DRS Affinity Rules by Tag

Auf der vSphere Cluster Ebene wurden nun durch das Skript als erstes mehrere VM und Host Gruppen erzeugt.

Innerhalb eines Clusters darf es keine Identischen Gruppen Namen geben, auch wenn es Host und VM Gruppen sind.

Cluster übergreifend können identische Namen jedoch existieren

DRS Affinity Rules by Tag - VM/Host Groups

Dann wurden die „zusammengehörigen“ Gruppen in einer VM to Host Affinity Rule verbunden.

DRS Affinity Rules by Tag - VM/Host Rules

Reporting DRS Affinity Rules by Tag

Das Reporting für diese Anforderung ist ein essentieller Bestandteil.

Folgendes muss geprüft werden können:

  • Welche Hosts haben welche Lizenzen (bzw. Lizenz Tags)
  • VM Tag zu Host Tag Compliance (sind die VMs auf den korrekten Hosts)
  • VM Group Compliance (sind die VMs in den Gruppen auch korrekt ge-Tagged)
  • Host Group Compliance (sind die Hosts in den Gruppen auch korrekt ge-Tagged)

Welche Hosts haben welche Lizenzen

DRS Affinity Rules by Tag - License Report

Reporting per vSphere vCheck

Diesen Report ich zusätzlich auch noch als Beispiel für die Integration in den vSphere vCheck von Alan Renouf hergenommen.

Der Plugin Code ist aktuell nur ein Test und wird so nur in meiner Umgebung funktionieren!

DRS Affinity Rules by Tag - vCheck License Report

Welche Hosts haben welche Lizenzen mit Auslastung

DRS Affinity Rules by Tag - Host Usage Detailed

Reporting per vSphere vCheck

Auch dieser Report kann extrem sinnvoll für den vSphere vCheck von Alan Renouf sein.

DRS Affinity Rules by Tag - vCheck Host Usage

 

VM Tag zu Host Tag Compliance

DRS Affinity Rules by Tag - VM/Host Tag Compliance

VM Group Compliance

DRS Affinity Rules by Tag - VM Group Compliance

Host Group Compliance

DRS Affinity Rules by Tag - Host Group Compliance

Monitoring DRS Affinity Rules by Tag

Da durch das Bilden von kleinere Host Gruppen innerhalb der Cluster das Monitoring und Forecasting etwas komplexer wird, sollten man hier zusätzlich auf den vRealize Operations Manager setzen.

Wie bereits schon vorher erwähnt, lassen sich die Tags hier auch wunderbar weiter verwenden.

Gruppe per Tag bilden:

DRS Affinity Rules by Tag - vROPs Group

Beispiel für eine Analyse:

DRS Affinity Rules by Tag - vROPs Analysis

Beispiel für einen Report:

Externe Infos zu Tags:

 

Hat Ihnen der Beitrag gefallen?

Nutzen Sie gerne für Ihren nächsten Amazon Einkauf diesen Affiliate Link und unterstützt Sie damit den Author des Artikels: http://amzn.to/2pAgZOD

Vielen Dank!

Leave a Reply

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen