Wer sein vCenter über mehrere Generationen migriert hat und keinen vollwertigen SQL-Server betreibt, der kennt sicher diese Problematik: Die ursprünglich mitgelieferte SQL-Express 2005 Datenbank ist auf 4 GB limitiert und für heutige Anforderungen des vCenters etwas zu knapp. Besonders dann, wenn viele Ereignisse protokolliert werden wie zum Beispiel regelmäßige Backups, oder durch Bereitstellung von VDI Maschinen.
Nun gibt es neuere Vesionen der Express Version, deren Datenbanken auf immerhin 10 GB beschräkt sind. Dies gilt ab SQL-Express 2008 R2. Interessanterweise wird diese installiert, sobald man das vCenter um den Single-Sign-On Dienst erweitert. Und genau diese Instanz kann man nutzen, wenn einem auf der alten SQL-Express 2005 das Wasser bis zum Halse steht.
Ablauf der Migration
Der Umzug erfordert eine gewisse Downtime. Dies gilt es zu berücksichtigen bei der Planung. Falls das vCenter in einer VM läuft, so sollte man unbedingt ein Replikat (z.B. mit Veeam B&R) davon haben oder zumindest einen Snapshot. Wenn möglich sollte dieser im ausgeschalteten Zustand der VM erzeugt werden. Das geht schneller, ist sauberer und man kann leichter dorthin zurück springen.
Tools
Für die Migration benötigen wir Management Studio Express 2008 R2. Es ist möglich, dass sich dieses auf dem vCenter nicht installieren lässt. Letztlich ist dies aber kein Problem, da man auch von einem anderen System auf die Datenbanken des vCenter zugreifen kann.
vCenter Dienst anhalten
Zuerst benötigen wir einen Dump der alten Datenbank. Dazu muss vCenter gestoppt werden, damit keine Zugriffe auf die alte Datenbank erfolgen.
DB verbinden
Über Management Studio Express (MMSE) stellt man eine Verbindung zur alten vCenter Datenbank her. Hier muss man genau aufpassen! Wenn die alte und neue Instanz von SQL-Express auf dem System nebeneinander bestehen, dann haben diese ähnliche Namen. In meinem konkreten Beispiel waren die Bezeichnungen SQLEXP_VIM bzw. VIM_SQLEXP. (Achtung! das kann auf anderen System durchaus anders sein! Genau prüfen)
SQLEXP_VIM: alte Instanz des vCenter unter SQL-Express 2005
VIM_SQLEXP: neuere Instanz der SSO Datenbank unter SQL-Express 2008 R2
Der Nutzer, welcher die Verbindung aufbaut, muss Rechte auf die SQL-Express 2005 DB haben. Idealerweise der Nutzer, unter welchen vCenter ursprünglich installiert wurde.
In vielen Fällen sind die Management-Studio Installationen 2005 und 2008 auf dem selben System unverträglich. Meist ist die MMSE 2005 Version installiert. Das genügt jedoch für die Sicherung der alten vCenter Datenbank. Die weiteran Arbeiten können dann über MMSE 2008 von einem anderen System im LAN getätigt werden.
DB Dump
Die Sicherung der vCenter Datenbank erfolgt über MMSE.
Datenbank auswählen > Tasks > Backup.
Als Ziel eine Datei auswählen, den Pfad angeben (z.B. D:\temp).
Restore DB
In diesem Schritt wird der Dump der vCenter Datenbank auf die neue SQL Instanz (z.B. 2008 R2) übertragen. Mit dem MMSE 2008 stellt man eine Verbindung zu SQL Express 2008 auf vCenter her. Hier ist der Instanzname wichtig (vgl. oben). Im beschriebenen Fall lautete er: VIM_SQLEXP.
Auch hier muss das Benutzerkonto der Verbindung auch volle Rechte auf die SQL-Express 2008 Datenbank haben.
DB erzeugen
Unter Datenbanken eine neue Datenbank erstellen mit dem Namen der ursprünglichen vCenter DB (2005) erstellen. Rechtsklick auf die neu erzeugte Datenbank und “Restore” wählen (Task > Restore > Database).
Quelle wähen (from device) und zum Backupfile navigieren.
Hier den Pfad zum Backupfile hinzufügen.
Beim Importdialog die Option “Overwrite the existing database” wählen und den Import fortsetzen.
ODBC anpassen
Auf dem vCenter System die ODBC Verbindung zur neuen Datenbank umleiten.
Verwaltung > Datenquellen ODBC > System DSN > VMware Virtual Center > Konfigurieren
Den Instanznamen umstellen auf die neue SQL-Express Instanz.
Nacharbeiten
Dieser Schritt ist optional, dient aber der Erfolgskontrolle. Es wird sicher gestellt, daß vCenter auch wirklich auf die neue Datenbank zugreift.
- alte DB auf Readonly schalten Properties > Options > State > Database Read-only = True
- Properties > Options > State > Restrict access = single user
vCenter Dienst starten
Startet man nun den vCenter Dienst, so verwendet dieser künftig die neue Datenbank.
Probleme mit Leistungsdaten im vSphere Client
Möglicherweise erhält man keine Leistungsdaten im vSphere Client. Wenn dies der Fall ist, so liegt es sicherlich daran, daß der alte SQL-Server noch den TCP Port belegt, über welchen der vSphere Client mit dem vCenter Webdient kommuniziert. Diese Einstellung kann im SQL Server Configuration Manager der alten SQL Installation korrigiert werden. VMware beschreibt in KB1012812, wie dieses zu erledigen ist. Nach Umstellung des Ports der alten Instanz müssen die Management Webservices neu gestartet werden. Danach sollten sich die Leistungdaten wieder korrekt darstellen lassen.
Links
- VMware KB 7960893 – Moving the vCenter Server SQL database
- VMware vSphere Documentation Center – Back Up and Move a Local vCenter Server Database
- VMware KB 1012812 – Performance Overview charts fail with STATs Report service internal error