Dovecot, virtuelle Domänen und LDAP

Anders als in vielen Dokumentationen dargestellt sollte der Parameter pass_attrs in der Dovecot-Konfiguration nicht mit uid=user sondern mit uid=username gesetzt werden, da Dovecot intern im ersten Fall aus dem Dovecot-Benutzer user@domain.tld den Dovecot-Benutzer user macht.

Dies kann bei entsprechender Dovecot Konfiguration z.B mit mail_location = maildir:/var/vmail/%d/%n/Maildir dazu führen, dass das Postfach des Benutzer an der falschen Stelle im Filesystem abgelegt bzw. gesucht wird, da %d nicht belegt ist.

Konvertieren einer .vmdk in ein für KVM nutzbares Format

[google_authorship]In der aktuellen Version von Proxmox ist eine KVM-Version enthalten, die bestimmte .vmdk-files direkt importieren kann. Probleme gibt es aber beispielsweise immer noch bei gesplitteten vmdk.

Das Tool vmware-vdiskmanager welches bei VMWare kostenlos zum Download bereitsteht (Registrierung erforderlich), konvertiert diese vmdk-files in ein einzelnes:

vmware-vdiskmanager -r whatever.vmdk -t 2 whatever-pve.vmdk

wobei whatever.vmdk in diesem Fall die Textdatei ist, die die tatsächlichen diskfiles aufführt. Der Parameter -t gibt an in welchen Disktype das File konvertiert werden soll.

Disk types:
0                   : single growable virtual disk
1                   : growable virtual disk split in 2GB files
2                   : preallocated virtual disk
3                   : preallocated virtual disk split in 2GB files
4                   : preallocated ESX-type virtual disk
5                   : compressed disk optimized for streaming
6                   : thin provisioned virtual disk - ESX 3.x and above

 

In diesem Fall wird das vmdk-file also in ein einzelnes vmdk-file namens whatever-pve.vmdk der Größe der Platte wie sie in der VM angegeben wurde konvertiert. vmdk-files dieses Typs lassen sich erfahrungsgemäß direkt in KVM nutzen.

deutsche Fehlermeldungen in Zend Framework Formularen

Diese Methode schien mir für deutsche Fehlermeldungen in den Formularen noch am schnellsten zu sein.

Dabei gehe ich davon aus, daß die Website durchgehend in einer Sprache ist, und die Anzahl der Übersetzungen sich nur auf Meldungen der Standart-Dekoratoren und Fehlermeldungen beschränkt.

Die Idee nutzt die Tatsache, daß die Formulare auf einen Default-Translator zurückgreifen, falls dieser vorhanden. Weiterlesen >>

Virtualisierung mit Proxmox

Die Leistungsfähigkeit von Computern nimmt ständig zu. Server mit dutzenden von Kernen und vielen GB RAM sind mittlerweile erschwinglich. Ein Server mit 16 Kernen und 32 GB Ram kostet aktuell (Q1/2012) knapp 3000€. Diese Rechenleistung erlaubt es gleich mehrere Systeme virtuell auf der Hardware laufen zu lassen.

Virtualisierung ist nichts neues. Wir haben uns viele Virtualisierungs-Lösungen angesehen. Die kommerziellen Lösungen VMWare und VirtualBox bieten einen einfachen Einstieg. Die Planung komplexer Setups sollte aber genügend Zeit für das Studium der aktuellen Lizenzmodelle beinhalten.

Einen guten Einstieg in die Virtualisierung bietet Proxmox. Proxmox ist eine Linux Distribution, welche die Voll-Virtualisierung mittels kvm/qemu und die Para-Virtualisierung mittels OpenVZ über ein Frontend erlaubt. Eine Proxmox Node läßt sich per heartbeat/pacemaker clustern. Virtuelle Maschinen können zwischen den Nodes verschoben werden.

Es folgt ein Erfahrungsbericht mit Proxmox: Weiterlesen >>

Zend Viewhelper und Resource-Autoloader

Die View-Verwaltung verfügt über eine eigene Auflösung von Namespaces für die Viewhelper. Diese Auflösung wird mit Plugin-Loader-Klassen erledigt, im Gegensatz zu Resource-Loader-Klassen, die für die Auflösung von Klassennamen zuständig sind.

Wird ein Viewhelper angefordert, so versucht die View den Helper zuerst mit den Plugin-Loadern zu ermitteln, erst danach werden die Resource-Loader verwendet. Der Vorteil der Plugin-Loader ist neben dem (geringfügigen) Geschwindigkeitsgewinn auch die Möglichkeit, die vorgegebenen Viewhelper-Pfade besser zu manipulieren.

Aber gerade hier entsteht ein Problem, denn meist werden die Viewhelper nur über die Plugin-Loader gefunden, um aber eine Basis-Klasse zu finden braucht man zusätzlich einen entsprechenden Resource-Loader. Weiterlesen >>