Man kann es kaum glauben, aber da Kommandozeilentools ja bekanntlich nicht lügen, muss es ja so gewesen sein. Dieser Server läuft offenbar schon seit 29 (!) Jahren ohne Reboot durch. Da kann sich die Unix-Welt nochmal was abschauen 🙂

ugg.li Schnelle Hilfe für schnelle Admins
Nicht immer schön, aber effektiv. Schnelle Hilfe für schnelle Admins.
Man kann es kaum glauben, aber da Kommandozeilentools ja bekanntlich nicht lügen, muss es ja so gewesen sein. Dieser Server läuft offenbar schon seit 29 (!) Jahren ohne Reboot durch. Da kann sich die Unix-Welt nochmal was abschauen 🙂

Der Durchschnittsadministrator erhofft sich auf ein
Get-PublicFolder | Get-PublicFolderStatistics
in der Regel eine Liste der Öffentlichen Ordner und die zugehörige Statistik der Inhalte. Exchange 2010 quittiert diesen Versuch in der Regel mit einem Fehler:
Get-PublicFolder | Get-PublicFolderStatistics Der Öffentliche Ordner "" wurde auf Server "<foobar>" nicht gefunden.< + CategoryInfo : InvalidData: (:PublicFolderIdParameter) [Get-PublicFolderStatistics], InvalidOperationE xception + FullyQualifiedErrorId : 73C4D20B,Microsoft.Exchange.Management.MapiTasks.GetPublicFolderStatistics
Die Lösung lautet: das Ergebnis dieser Abfrage könnte ja theoretisch groß sein und daher … wird die Abfrage nicht ausgeführt. Das aufheben der Default-beschränkung (ob sie zuschlägt oder nicht) führt sofort zum gewünschten Ergebnis:
Get-PublicFolder "" -Recurse | Get-PublicFolderStatistics -ResultSize unlimited
Und weil wir grade dabei sind, diesen Schnipsel benutze ich öfter um mir eine grafische Übersicht über alle Öffentlichen Ordner, deren Inhalt und Eckdaten zu erstellen (erfordert das ISE):
Get-PublicFolder "" -Recurse | Get-PublicFolderStatistics -ResultSize unlimited | Select-Object FolderPath,AdminDisplayName,ItemCount,TotalItemSize,LastAccessTime | Out-GridView
Führt man ein entsprechendes Update durch, und erweitert anschließend das Array des datastores um weitere HDDs, kann die Größe des datastores im vSphere Client nicht erhöht werden, obwohl die neue Größe korrekt angezeigt wird.
Hier hilft die gute alte SSH Konsole 🙂
SSH einschalten:
oder
Nun verbindet man sich mit dem favorisierten SSH Client (z.B. PuTTY).
Nach dem root login helfen die folgenden Befehle (Pfade, etc. bitte anpassen):
vmkfstools -P "/vmfs/volumes/datastore"
=> Partiton span ermitteln (für partedUtil)
partedUtil get "/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0"
partedUtil getUsableSectors "/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0"
=> Letzten Sektor notieren
partedUtil resize "/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0" <partition> <startsektor> <endsektor>
z.B: partedUtil resize "/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0" 2 10229760 213196319
vmkfstools --growfs "/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0:<partition>" "/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0:<partition>"
=> GROWEN 😉
Der vSphere Client hat Administratoren
ja zu eine rleichen gelb-Allergie erzogen, und das ist auch gut so.
Im vSphere Client sieht man bei einer VM schon mal folgende Warnung:
Virtual machine disks consolidation is needed
oder in Landessprache:
Die Festplatten der Virtuellen Maschine müssen konsolidiert werden.
Normalerweise geht der nächste Click direkt in den Snapshot-Manager, aber dieser ist leer: Im Manager der VM wird kein einziger Snapshot angezeigt. Im Datastore hingegen sind durchaus ein bis mehrere -vtk.vmdk Dateien zu sehen.
Man wird die Snapshots über den vSphere-Client auch direkt wieder los: Snapshots -> Konsolidieren

Möglicherweise gibt es auch nach einigen Sekunden eine Warnmeldung, die Disk sei aber gelockt. In diesem Fall hat warscheinlich eine andere VM oder ein anderer Prozess die Snapshot Datei als Disk eingebunden oder geladen.
Das passiert schonmal bei Backups im Hot-Add Modus, z.B. von Veeam Backup im “Appliance” Modus. Dabei wird – technisch gesehen – ein Snapshot der zu sichernden VM generiert und direkt an den Veeam-Proxy angehängt.
Tipp: Welche VMs das Probelm haben ist in der VM-Übersicht schnell zu sehen, wenn man die Spalte „Konsolidierung erforderlich“ einblendet.
Wie finde ich den Benutzer (oder das Objekt) zu dem eine Exchange E-Mailadresse gehört?
get-recipient -results unlimited | where {$_.emailaddresses -match "[email protected]"} | select name,emailaddresses,recipienttype
(dies ist nur eine Notiz weil ich ständig das -match(ing) vergesse) 🙂