ClearCenter taucht inzwischen bei Zarafa als ISV-Partner auf

20.02.13

Zumindest auf der deutschen Zarafaseite ist das relativ neu:
http://www.zarafaserver.de/inhalt/isv-partners

Proxmox: Eigene Festplatte für virtuelle Maschine

17.02.13

Mit folgendem Befehl auf der Proxmoxmaschine:
qm set VM-ID -scsiNUMBER DEVICE
kann man einer virtuellen Maschine eine zuordnen. Also beispielsweise:
qm set 100 -scsi2 /dev/sdb
Stellt der Maschine mit der ID 100 das Laufwerk /dev/sdb als scsi-Festplatte mit der id2 zur Verfügung.

Die virtuelle Maschine muss dann neu gestartet werden.

Neue ClearOS-Appliance im Vergleich zur QNAP TS-219P II

11.02.13

Auf meiner Firmenhomepage gibt es seit paar Tagen diesen besonders kompakten Server mit bis zu 4 Wechselfestplatten(2,5”) zu kaufen:
Mit 2 Festplatten je 500GB kostet er 390,00€. Ich möchte hier mal einen kleinen Vergleich zu einer QNAP anstellen. Auch eine NAS von QNAP eignet sich hervorragend als gemeinsamer Dateispeicher in kleinen Firmen, der Vorteil ist das die Hardware sehr genau auf die Funktionalität angepasst ist, mit einem Standardserver hat man mehr Flexibilität.
Mein Hardwarepreis läge bei 220€ zzgl. UmsSt., was ich allerdings nicht anbiete da ich ja ClearOS immer vorinstalliere.

Meine Appliance QNAP TS-219P II
Preis zzgl. UmsSt. 220,00 € 263,00 € (Amazon 11.2.2013)
Prozessor AMD DualCore Zacate E350 2×1,6 GHz 1 x Marvell 2 GHz
Hauptspeicher 4 GB DDR3 512 MB DDR3
Festplatten möglich Bis 4x 2,5” Bis 2x 2,5”oder 3,5”
Netzwerk 2x GBit 1xGBit
eSata 1x 2x

Die Unterschiede sind nicht groß, aber mit einem ClearOS-System kann man einen echten Domaincontroller aufsetzen. Demnächst mit Samba4 sogar komplett mit Gruppenrichtlinien. Und Zarafa als Groupware ist auch dabei.

Nächste Woche werde ich das gleiche Gehäuse mit einem Core i5 zusammenstellen. Da kommt die QNAP dann nicht mehr ganz mit. Preislich wirds aber immer noch günstig sein.

Die Weboberfläche der QNAP ist natürlich genau für eine NAS ausgelegt und die Funktionen die Verfügbar sind kann man damit besonders komfortabel verwalten.

Ubuntu 12.04 Grub startet nicht mehr automatisch

6.02.13

Bei unsauberem Neustart (Stromausfall) bekommt man das Auswahlmenü von Grub zu sehen, man muss allerdings Enter drücken sonst gehts nicht weiter.
Bei alleinstehenden Servern natürlich sehr ärgerlich.
Die Lösung fand ich hier:
http://monkeyadmin.blogspot.de/2011/12/after-power-failure-ubuntu-server-boots.html
Die Datei hat sich aber scheinbar geändert, so habs ich jetzt:

#if [ "\${recordfail}" = 1 ]; then
# set timeout=-1
#else
set timeout=${2}
#fi
EOF

Also das komplette if einfach auskommentiert.

Pacemaker auf Ubuntu:apache no listening sockets available

2.02.13

Das hat mich ganz schon viel Zeit gekostet. Die Lösung war aber simple: Die Konfigurationsfile von apache heisst bei apache2.conf und nicht httpd.conf. Auch wenn letztere im System evtl. (leer) vorhanden ist.

pacemaker auf ubuntu 12.04 Teil4 GUI

28.01.13

Für ein bisschen mehr Komfort installieren wir die GUI für .
Auf den Servern installiert man

root@node2:~# apt-get install pacemaker-mgmt

In der Datei /etc/corosync/corosync.conf fügt man in der service-Sektion use_mgmtd: 1 ein:

service {
	# Load the Pacemaker Cluster Resource Manager
	name: pacemaker
	ver:  0
        <strong>use_mgmtd: 1</strong>
}

Und dem Benutzer hacluster muss man noch ein passwort geben:
root@crmnode1:~# passwd hacluster
Geben Sie ein neues UNIX-Passwort ein:
Geben Sie das neue UNIX-Passwort erneut ein:
passwd: password updated successfully

Und corosync neu starten:

 
 Auf einem Client mit X muss man jetzt nur noch den client installieren:
<pre lang="BASH">
root@hp-625:~# apt-get install pacemaker-mgmt-client

Und danach aufrufen. Abgefragt wird die IP-Adresse der Benutzername (hacluster) und das soeben vergebene Passwort.

pacemaker auf ubuntu 12.04 Teil3 DRBD

26.01.13

Bevor wir hochverfügbare Dienste zur Verfügung stellen können benötigen wir erstmal einen Datenspeicher, der natürlich ähnlich hoch verfügbar sein sollte.
Wenn man ein hochverfügbares NAS hat so kann man dies als iSCSI-Laufwerk einbinden und für die Dienste als Storage verwenden. Ich möchte hier aber ein =Distributed Replicated Block Device verwenden.
Das ist eine Art RAID1 deren beiden Festplatten auf je einer Maschine sind und über das Netzwerk synchron gehalten werden.

Als erstes installiere ich hierfür dir drbd-utils:

 apt-get install drbd8-utils

und lade das modul, das im Kernel bereits beinhaltet ist:

modprobe drbd

Und damit das Modul auch beim nächsten mal vorhanden ist und drbd auch gestartet wird:

  echo 'drbd' >> /etc/modules
  update-rc.d drbd defaults

Im Verzeichnis /etc/drbd.d/ befindet sich die Datei global_common.conf die ,wie der Name sagt die globale Konfiguration von DRBD enthält. Hier sollte man die evtl. die synchronisationsgeschwindigkeit in der Sektion syncer anpassen:

syncer {
		# rate after al-extents use-rle cpu-mask verify-alg csums-alg
		rate 100M;
	}

Das M hinter der hundert steht für Megabyte, also fast ein GBit.

Für jedes DRBD-Device erstellt man eine weitere Datei, zum Beispiel r0.res.

root@pacemaker2:/etc/drbd.d# nano /etc/drbd.d/r0.res 
 
resource r0{
 on pacemaker1 {
    ### Optionen für Master-Server ###
    # Name des bereitgestellten Blockdevices
    device     /dev/drbd0;
    # dem DRBD zugrunde liegendes Laufwerk
    disk       /dev/sdb;
    # Adresse und Port, über welche die Synchr. läuft
    address    192.168.178.191:7788;
    # Speicherort der Metadaten, hier im Laufwerk selbst
    meta-disk  internal;
  }
 on pacemaker2 {
    ### Optionen für Master-Server ###
    # Name des bereitgestellten Blockdevices
    device     /dev/drbd0;
    # dem DRBD zugrunde liegendes Laufwerk
    disk       /dev/sdb;
    # Adresse und Port, über welche die Synchr. läuft
    address    192.168.178.192:7788;
    # Speicherort der Metadaten, hier im Laufwerk selbst
    meta-disk  internal;
  }

Mit dem Befehl drbdadm wird das Blockgerät jetzt initialisiert:

root@pacemaker2:/etc/drbd.d# drbdadm create-md r0

Alles was bisher gemacht wurde muss auch auf dem 2. Server erledigt werden bzw. muss die Datei /etc/drbd.d/r0.res kopiert werden. Die drbd-Konfigurationsdateien sind stets auf beiden Servern gleich. Der folgende Befehl muss ebenfalls auf beiden Servern ausgeführt werden, hier ist darauf zu achten den Befehl ungefähr gleichzeitig auszuführen da es ein Timeout gibt.

drbdadm up r0

Den status des drbd-Gerätes kann man mit

root@pacemaker2:/etc/drbd.d# cat /proc/drbd

abrufen. Es wurde allerdings noch nicht festgelegt wer Master und wer Slave ist. Dies wird auf dem jetzigen Master mit

root@pacemaker1:/etc/drbd.d# drbdadm -- --overwrite-data-of-peer primary r0

erledigt.
Jetzt syncronisiert der drbd die Daten was man wieder mit
root@2:/etc/drbd.d# cat /proc/drbd
sehen kann:

root@pacemaker1:/etc/drbd.d# cat /proc/drbd 
version: 8.3.13 (api:88/proto:86-96)
srcversion: 697DE8B1973B1D8914F04DB 
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
    ns:1843328 nr:0 dw:0 dr:1843992 al:0 bm:112 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:3399356
	[======&gt;.............] sync'ed: 35.3% (3316/5116)Mfinish: 0:43:12 speed: 1,292 (1,280) K/sec

man sieht hier also auch den Fortschritt der Syncronisation.
Das wars eigentlich schon. Ist die Synchronisation abgeschlossen hat man ein Blockgerät das man nur noch formatieren muss und dann mounten kann:

mkfs.ext3 /dev/drbd0

pacemaker auf ubuntu 12.04 Teil2

23.01.13

Fortsetzung von
Ich habe bisher meine beiden Rechner auf den ip-adressen 192.168.178.191 und …192 am laufen. Mit folgendem Befehl lege ich eine weitere Netzwerkschnittstelle im Cluster an:

crm(live)configure# primitive p_ip1 ocf:heartbeat:IPaddr2 params ip=192.168.178.193 cidr_netmask=24
crm(live)configure# commit

Diese Adresse verweist immer auf den aktiven node:

root@pacemaker1:~# crm_mon
============
Last updated: Tue Jan 22 15:37:27 2013
Last change: Tue Jan 22 15:36:33 2013 via cibadmin on pacemaker1
Stack: openais
Current DC: pacemaker2 - partition with quorum
Version: 1.1.7-ee0730e13d124c3d58f00016c3376a1de5323cff
2 Nodes configured, 2 expected votes
1 Resources configured.
============
 
Online: [ pacemaker1 pacemaker2 ]
 
p_ip1   (ocf::heartbeat:IPaddr2):       Started pacemaker1

Alle Adressen lassen sich anpingen, bei 191 und 193 antwortet 1, bei 192 2.
Wenn ich jetzt aber pacemaker herunterfahre:

root@pacemaker1:~# poweroff

Sieht man sofort das pacemaker2 active wird:

root@pacemaker2:~# crm_mon
============
Last updated: Tue Jan 22 15:42:37 2013
Last change: Tue Jan 22 15:36:33 2013 via cibadmin on pacemaker1
Stack: openais
Current DC: pacemaker2 - partition WITHOUT quorum
Version: 1.1.7-ee0730e13d124c3d58f00016c3376a1de5323cff
2 Nodes configured, 2 expected votes
1 Resources configured.
============
 
Online: [ pacemaker2 ]
OFFLINE: [ pacemaker1 ]
 
p_ip1   (ocf::heartbeat:IPaddr2):       Started pacemaker2

Ein ping auf 191 wird nicht mehr erwidert, bei 192 antwortet wie gehabt pacemaker2 aber auch die 193 laesst sich pingen, hier antwortet jetzt also pacemaker2. Der pingservice ist, wenn man so will, schonmal hochverfügbar.

PACEMAKER auf ubuntu 12.04 installieren

22.01.13

Auf einem jungfräulichen System erstmal installieren:

root@pacemaker1:~# apt-get install pacemaker
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Statusinformationen werden eingelesen... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
  cluster-glue corosync libccs3 libcfg4 libcib1 libcman3 libconfdb4 libcoroipcc4 libcoroipcs4 libcpg4 libcrmcluster1 libcrmcommon2 libesmtp6
  libevs4 libfence4 liblogsys4 liblrm2 libltdl7 libnet1 libnspr4 libnss3 libopenhpi2 libopenipmi0 libpe-rules2 libpe-status3 libpengine3
  libperl5.14 libpils2 libpload4 libplumb2 libplumbgpl2 libquorum4 libsam4 libsensors4 libsnmp-base libsnmp15 libstonith1 libstonithd1
  libtotem-pg4 libtransitioner1 libvotequorum4 libxslt1.1 openhpid resource-agents
Vorgeschlagene Pakete:
  lm-sensors snmp-mibs-downloader
Die folgenden NEUEN Pakete werden installiert:
  cluster-glue corosync libccs3 libcfg4 libcib1 libcman3 libconfdb4 libcoroipcc4 libcoroipcs4 libcpg4 libcrmcluster1 libcrmcommon2 libesmtp6
  libevs4 libfence4 liblogsys4 liblrm2 libltdl7 libnet1 libnspr4 libnss3 libopenhpi2 libopenipmi0 libpe-rules2 libpe-status3 libpengine3
  libperl5.14 libpils2 libpload4 libplumb2 libplumbgpl2 libquorum4 libsam4 libsensors4 libsnmp-base libsnmp15 libstonith1 libstonithd1
  libtotem-pg4 libtransitioner1 libvotequorum4 libxslt1.1 openhpid pacemaker resource-agents
0 aktualisiert, 45 neu installiert, 0 zu entfernen und 2 nicht aktualisiert.
Es müssen 6.776 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 22,7 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren [J/n]? J

Man sieht das corosync gleich mitinstalliert wird, das macht auch Sinn: Pacemaker kann man garnicht selbstständig starten, er wird von corosync oder alternativ heartbeat gestartet.
Wir sind aber mit corosync einverstanden. In der Konfigurationsdatei muss man nur die bindnetaddr auf die Netzwerkadresse ändern. Wenn die beiden Rechner in einem typischen Fritzbox-Netwerk stehen wäre die Adresse also 192.168.178.0:

root@pacemaker1:/etc/corosync# nano /etc/corosync/corosync.conf
 
        interface {
                # The following values need to be set based on your environment
                ringnumber: 0
                bindnetaddr: 192.168.178.0
                mcastaddr: 226.94.1.1
                mcastport: 5405
        }

Dann muss noch ein Key erzeugt werden:

root@pacemaker1:/etc/corosync# corosync-keygen 
Corosync Cluster Engine Authentication key generator.
Gathering 1024 bits for key from /dev/random.
Press keys on your keyboard to generate entropy.
 
Writing corosync key to /etc/corosync/authkey.

Wenn man per ssh eingeloggt ist bringt es übrigens nichts wie wild auf der Tastatur herumzudrücken, man muss es am Server direkt machen. Alternativ kann man durch eine erhöhte I/O-Last dem Zufall auf die Sprünge helfen. Beispielweise mit "find /" auf einer weiteren Konsole. Auch der Parameter -l für lesser security kann helfen. Erklärung auch hier:http://www.mynakedgirlfriend.de/corosync-keygen-ohne-tastendruck-nutzen/

Und damit corosync automatisch startet wird die Datei /etc/default/corosync bearbeitet und START auf yes gesetzt.

root@pacemaker1:/etc/corosync# nano /etc/default/corosync
# start corosync at boot [yes|no]
START=yes

Auf dem 2. Rechner wird praktisch alles gleich installiert, er bekommt allerdings einen anderen Hostnamen, und eine andere IP-Adresse (im gleichen Netzwerk). Die Datei /etc/corosync/authkey wird vom ersten Rechner kopiert. Auch die corosync.conf sieht auf beiden Rechnern exakt gleich aus.
Mit dem tool crm_mon kann man jetzt auf beiden Rechnern sehen das sie voneinander wissen:

root@pacemaker1:~# crm_mon
============
Last updated: Tue Jan 22 15:17:45 2013
Last change: Tue Jan 22 14:12:23 2013 via cibadmin on pacemaker2
Stack: openais
Current DC: pacemaker2 - partition with quorum
Version: 1.1.7-ee0730e13d124c3d58f00016c3376a1de5323cff
2 Nodes configured, 2 expected votes
0 Resources configured.
============
 
Online: [ pacemaker1 pacemaker2 ]

Jetzt geht es an die Heartbeat-Konsole, sie wird mit crm aufgerufen und ist sehr komfortabel: Mit help bekommt man verfügbare Befehle und auch Autovervollständigung mit TAB ist verfügbar.

root@pacemaker2:~# crm
crm(live)# help
 
This is the CRM command line interface program.
 
Available commands:
 
	cib              manage shadow CIBs
	resource         resources management
	configure        CRM cluster configuration
	node             nodes management
	options          user preferences
	ra               resource agents information center
	status           show cluster status
	quit,bye,exit    exit the program
	help             show help
	end,cd,up        go back one level

Mit configure wechseln wir in die Konfiguration und setzen gleich mal 2 Werte:

crm(live)# configure
crm(live)configure# property no-quorum-policy="ignore"
crm(live)configure# property stonith-enabled="false"
crm(live)configure# commit

Die quorum-policy soll ignoriert werden weil wir erstmal nur 2 Rechner haben. Mit dieser policy legt man fest wieviele Rechner mindestens vorhanden sein müssen, sonst werden die Dienste heruntergefahren. Bei 2 Rechnern macht das keinen Sinn. Und auch um STONITH(= Shoot the other node in the head) lassen wir vorerst abgeschaltet.
Das commit aktiviert die soeben angegebenen properties.

Heartbeat läuft jetzt theoretisch, bringt uns aber noch nicht viel. Mehr dazu im Teil 2.

Proxmox internes Netzwerk erstellen

14.01.13

Unter Umständen möchte man ein komplett eigenes Netzwerk in proxmox erstellen. Zum Beispiel um Testmaschinen hinter einen virtuellen Router zu stellen.

Dazu erstell man unter dem Reiter Netzwerk-> Erstellen eine neue Bridge vmbr1, vergibt eine IP-Adresse und Netmask -fertig.

Alle virtuelle Maschinen die jetzt eine Netzwerkkarte auf vmb1 spendiert bekommen können sich untereinander in diesem Netzwerk sehen. Dann kann man einen virtuellen Router erstellen der an vmbr0 und vmbr1 hängt. Ideal für routertests.
Quelle:http://forum.proxmox.com/threads/7747-Enable-2nd-NIC-with-another-subnet