Die 01/01/1601 Frage

Immer wenn ich über ein Script eine Zeitwert aus dem Active Directory abfrage wundere ich mich über das Ergebnis :-). Heute war es wieder soweit. Eigentlich wollte ich nur von allen Benutzern das Datum der letzten Anmeldung wissen. In VB Script ein “Dreizeiler” doch die Umrechnung des Rückgabewertes in etwas “lesbares” war dann wieder länger als die eigentliche Abfrage.

Ok – stimmt nicht ganz, aber trotzdem. Wer selbst schon einmal mit den Windows Timestamps gearbeitet hat dem ist sicher aufgefallen dass es SEHR lange Zahlen gibt die umgerechnet werden wollen. Für jeden Zeitstempel aus dem AD bekommt man als Rückgabe die Anzahl der vergangenen 100 Nanosekunden Intervalle seit dem 01. Januar 1601.

Genau an dieser Stelle frage ich mich dann immer – warum der 01. Januar 1601. Um ein historisches Datum aus der Microsoft Geschichte kann es sich nicht handeln, ebensowenig um sonst eine Person die etwas mit der modernen Datenverarbeitung zu tun hat. Wikipedia gibt auch nicht wirklich viel her.

Heute Abend habe ich etwas recherchiert und folgendes gefunden:

This is to do with leap years having 400 years cycle and 1st of January 1601 being a Monday. If modulo (MOD) function is performed in a date integer mod 7 the result will be the day of the week.

Aha. Also so gesehen war es Zufall – oder viel mehr Mathematik. Der 1. Januar 1601 wurde also gewählt weil 1600 ein Schaltjahr war. Allerding war es ein besonderes Schaltjahr. Denn ein Schaltjahr ist immer wenn die Jahreszahl durch vier teilbar ist. Die vollen Jahrhunderte sind aber wiederum kein Schaltjahr. Es sei denn das Jahr ist durch 400 teilbar. So wie eben 1600 und auch das Jahr 2000. Zufälligerweise war der 01. dann auch noch ein Montag was die Berechnung des Wochentags sehr einfach macht.

Eigentlich clever gemacht – doch kommt da ein kleines Problemchen auf uns zu. Da es sich beim Timestamp um ein 64-bit Wert handelt ist im Jahr 2038, also in nicht einmal 28 Jahren, ende. Dann läuft der Wert über und wir sind wieder im Jahr 1601.

Unter Unix wird der 01. Januar 1970 als Basis für den Timestamp genommen, dort hat man also noch 370 Jahre Zeit bis man eine Lösung finden muss :-).

 

Wer die aktuelle Zeit in einen Timestamp umrechnen will / muss – hier ein Link

Advertisements

Distributed virtual Switch für den XenServer

Citrix_XenServer Heute hat Citrix eine Betaversion angekündigt die zumindest im direkten Feature vergleich mit VMware wieder etwas aufholt.

Bisher musste, wie in der Vergangenheit auch bei VMware, auf jedem XenServer das Netzwerk identisch konfiguriert werden um eine LiveMigration problemlos durchzuführen. Waren Netzwerkports auf dem jeweiligen virtuellen Switch z.B. anders benannt dann hat die Maschine nach dem Verschieben auf einen anderen Host nicht mehr funktioniert – bzw. war nicht mehr erreichbar.

In entsprechend großen XenServer Resource Pools kann dies zum einen lästig, zum anderen auch eine möglich Fehlerquelle sein. Bei VMware wurde dies mit der Einführung von vSphere (ESX 4.x) mittels des so genannte Distributed Virtual Switch (DVS) gelöst. Ein Modul dass allerdings nur in der "Enterprise Plus" Version vorhanden ist. Durch den DVS wird an einer zentralen Stelle das Netzwerk konfiguriert und alle Hosts übernehmen diese Einstellung.
Dieses Feature fehlt Citrix bisher noch. Aber wie es scheint ist auch hier Abhilfe in Sicht. Heute wurde auf der Citrix Community Blog Seite eine "Private Beta" angekündigt in der es um einen XenServer distributed virtual switch geht. Genauere Informationen sind leider noch nicht bekannt, aber zumindest ist die Ankündigung spannend.

iXenLite

iXenLiteVor einigen Monaten hatte ich bereits über eine iPhone App zur XenServer Verwaltung berichtet. Doch leider wurde es wohl nie zu Ende entwickelt, denn seit diesem Eintrag im vergangen Jahr hat sich nichts mehr getan. Doch jetzt habe ich iXenLite gefunden. Eine kostenlose App mit der sich eine XenServer Umgebung prima verwalten lässt.
Die Anwendung kann mehrere Pools unterschiedlicher XenServer Versionen (4.1, 5.0, 5.5) verwalten, VMs starten, stoppen und neustarten. Weiterhin können Status- und Performanceinformationen wie z.B. Memory und CPU Nutzung angezeigt werden.