Nach der Einführung in RHCS geht es jetzt ins Eingemachte: die Installation von RHCS unter Debian, um einzelne KVM-Gäste als Dienst anzubieten.
Die Hintergründe von RHCS haben wir bereits erklärt. Die konkrete Umsetzung wird am Beispiel zweier Hosts mit einem Shared Storage erklärt, die als Service verschiedene KVM-Gäste anbieten.
In diesem Setup sind die Nodes die Maschinen, auf denen KVM läuft. Jeder darauf laufende KVM-Gast ist wiederum ein über RHCS verwalteter Dienst. Bei der Installation der KVM-Hosts ist auf mehrere Punkte zu achten:
Ein zentrales Element des RHCS ist das Shared Sotrage, auf das die Nodes gemeinsame zugreifen. In diesem Beispiel nehmen wir einen „normalen“ Rechner, und installieren auf diesem ein iSCSI-Target:
apt-get install iscsitarget iscsitarget-source echo 'ISCSITARGET_ENABLE=true' > /etc/default/iscsitarget m-a a-i iscsitarget
Hier ist zu beachten, dass das iscsi-Target korrekt bauen muss, siehe auch #566740. Eingerichtet wird die Maschine, welche das Shared Storage bereit stellt, via /etc/ietd.conf:
IncomingUser discovery_in YourSecurePwd1 OutgoingUser discovery_out YourSecurePwd2 Target YOURMACHINE:clvm1 IncomingUser node_in YourSecurePwd1 OutgoingUser node_out YourSecurePwd2 Lun 0 Path=/dev/sdx1,Type=blockio
Auf den Nodes muss das Target korrekt angesprochen werden. Dies wird in der /etc/iscsi/iscsid.conf definiert:
discovery.sendtargets.auth.authmethod = CHAP discovery.sendtargets.auth.username = discovery_in discovery.sendtargets.auth.password = YourSecurePwd1 discovery.sendtargets.auth.username_in = discovery_out discovery.sendtargets.auth.password_in = YourSecurePwd2 node.startup = automatic node.session.auth.authmethod = CHAP node.session.auth.username = node_in node.session.auth.password = YourSecurePwd1 node.session.auth.username_in = node_out node.session.auth.password_in = YourSecurePwd2
Gestartet wird der Dienst mit /etc/init.d/open-iscsi start. Vorhandene Targets werden mit den folgenden Befehlen gesucht, gelöscht oder hinzugefügt:
# discovering the targets iscsiadm -m discovery -t st -p YOURMACHINE -P 1 # deleting target on wrong interface iscsiadm -m node -p 192.168.0.100:3260,1 -o delete # opening the portal iscsiadm -m node --targetname "iqn.2010-03.YOURMACHINE:clvm1" --portal "YOURMACHINE:3260" --
Die virtuellen Maschinen werden via KVM bereit gestellt. Dafür muss zuerst die passende Software installiert werden:
apt-get install linux-image-2.6.32-bpo.2-amd64 kvm libvirt-bin virtinst -t lenny-backports
Bei der Einrichtung der Bridge für die Gäste muss darauf geachtet werden, dass der Bridge-Name für alle Nodes gleich sein muss. Auch die libvirt-Konfiguration muss gleich sein, es ist daher hilfreich, auf git und vergleichbare Techniken zurück zu greifen. Danach können die Gäste mit
virt-install -n <NAME> -r 256 --vcpus=1 --disk path=/dev/vg_cluster#/<LV> \ -c /root/debian-<VERSION>-amd64-netinst.iso --vnc --noautoconsole --os-type linux \ --os-variant debianLenny --accelerate --network=bridge:bridge0 --hvm -k de
installiert und mit virt-viewer -c qemu+ssh://:/system angesehen werden.
Der nächste Schritt ist das Aufsetzen von RHCS selbst – dafür müssen in erster Instanz die Programme installiert und aufgerufen werden: apt-get install redhat-cluster-suite. Die dadurch bereit gestellten NFS-Dienste werden aber nicht gebraucht:
invoke-rc.d nfs-kernel-server stop invoke-rc.d nfs-common stop invoke-rc.d portmap stop update-rc.d -f nfs-kernel-server remove update-rc.d -f nfs-common remove update-rc.d -f portmap remove
Ein anderes Problem ist, dass das Programm system-config-cluster nicht unter Lenny zur Verfügung steht. Es wurde von credativ-Mitarbeiter Philipp Hübner paketiert und ist in Debian erst ab Squeeze enthalten. Durch einen Backport kann system-config-cluster aber auch auf Lenny genutzt werden:
wget --no-check-certificate https://www.credativ.com/~phu/lenny-backports/system-config-cluster/system-config-cluster_1.0.53-1_all.deb dpkg -i system-config-cluster_1.0.53-1_all.deb apt-get -f install apt-get install xauth
Damit LVM Locking Cluster-weit funktioniert, muss in der /etc/lvm/lvm.conf im Abschnitt global eine Anpassung vorgenommen werden:
locking_type = 3
Falls wie empfohlen ein neuerer Kernel eingesetzt wird, liegt das Modul lock_dlm nicht mehr vor. Daher muss das Init-Script von CMAN angepasst werden, die Zeile modprobe lock_dlm 2>&1 || return 1 muss auskommentiert werden. Außerdem unterstützt RHCS 2 nur XEN, für libvirt-Unterstützung muss der Ressource Handler vm.sh geladen werden – er liegt für Debian Squeeze bereit:
wget --no-check-certificate https:///www.credativ.com/~phu/vm.sh -O /usr/share/cluster/vm.sh chmod +x /usr/share/cluster/vm.sh
RHCS selbst wird gestartet mittels
/etc/init.d/cman start /etc/init.d/clvm start /etc/init.d/rgmanager start
Fencing beschreibt das automatisierte Neutralisieren von Nodes, die nicht mehr reagieren. Wir setzen in unserem Beispiel dafür eine per Netz steuerbare Steckdose ein, NETIO-230A. Es liegt bisher kein fence agent für dieses Gerät vor, aber mit Hilfe der verfügbaren Python-Bibliothek kann ohne Weiteres ein solcher geschrieben werden.
Dieses Howto zeigt, dass das Einrichten von RHCS unter Debian mit einfachen Schritten möglich ist – wenn auch je nach Einsatz weitere Anpassungen vorgenommen werden müssen. Dabei helfen wir übrigens gerne – Open Source Hochverfügbarkeits-Lösungen gehören zu unseren Spezialitäten, und Services und Support bei KVM-Virtualisierung ist unser Alltagsgeschäft.
Dieser Artikel wurde ursprünglich geschrieben von Roland Wolters.
Kategorien: | HowTos |
---|---|
Tags: | Debian |
Sie sehen gerade einen Platzhalterinhalt von Brevo. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie müssen den Inhalt von reCAPTCHA laden, um das Formular abzuschicken. Bitte beachten Sie, dass dabei Daten mit Drittanbietern ausgetauscht werden.
Mehr InformationenSie müssen den Inhalt von Turnstile laden, um das Formular abzuschicken. Bitte beachten Sie, dass dabei Daten mit Drittanbietern ausgetauscht werden.
Mehr Informationen