Inhaltsverzeichnis

Server fungiert als KVM-Host für Firewall und weitere Clients

Wird von linuxmuster.net ab 6.1 unterstützt, mit einem kleinen Patch auch für 6.0 durchführbar.

Ziel dieser Anleitung:

Vorteile

Nachteile

Vorgehensweise Installation/Wiederherstellung

Im Vergleich zur Installation nach dem Handbuch, muss eine leicht veränderte Reihenfolge eingehalten werden:

Installation des Servers

Erfolgt wie im Handbuch server, beispielhaft mit folgender Partitionierung über LVM:

Partitionierung (nicht relevant aber interessant als Beispiel)

Spezifische Netzwerkkonfiguration

/etc/network/interfaces
auto lo
iface lo inet loopback
 
auto br0
iface br0 inet static
        bridge-ports eth0
        bridge-stp off
        bridge-maxwait 5
	address 10.16.1.1
	netmask 255.240.0.0
	network 10.16.0.0
	broadcast 10.31.255.255
	gateway 10.16.1.254
	# dns-* options are implemented by the resolvconf package, if installed
	dns-nameservers 10.16.1.1
	dns-search linuxmuster-net.lokal
 
auto br1
iface br1 inet manual
        bridge-ports eth1
        bridge-stp off
        bridge-maxwait 5
Jetzt noch die Datei durch
cp /etc/network/interfaces /etc/network/interfaces.kvm 

sichern, da die Konfiguration von der linuxmuster-setup Routine überschrieben wird.

Hinweise zur KVM/qemu Konfiguration des IPFire

Im Programm virt-manager kann man den IPfire einrichten. Die relevante Konfiguration zu qemu/kvm/libvirt liegt unter /etc/libvirt/qemu/ipfire.xml und die relevanten Teile zu storage und Netzwerk lauten in der XML Schreibweise:

 <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/vgserver/ipfire'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <interface type='bridge'>
      <mac address='08:00:27:4b:e9:b3'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <interface type='bridge'>
      <mac address='08:00:27:73:df:21'/>
      <source bridge='br1'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </interface>
    <interface type='network'>
      <mac address='08:00:27:2d:a5:71'/>
      <source network='blau'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </interface>

Jetzt kann der IPFire regulär per eingebundenem CD-Image aufgesetzt und vorkonfiguriert werden (siehe ipfire und ipfire.preconfiguration) oder wenn der IPFire schon installiert war, per setup als root modifiziert werden.

Alternativ kann ein vorgefertigtes Image (z.B. virtualappliance) auf das LVM-Storage kopiert und eingerichtet werden:

# qemu-img convert -p -O raw ipfire.img /dev/vgserver/ipfire
# virsh start ipfire
# ssh ipfire -p 222
[root@ipfire ~]# setup

Hinweis zum folgenden Setup des Servers

Beim Befehl linuxmuster-setup --first oder linuxmuster-setup --modify kann das Setup des Servers wie im Handbuch beschrieben nur dann funktionieren, wenn die oben eingerichteten Bridges auch als Netzwerk„karten“ ausgewählt werden können.

Nach dem Setup muss die spezielle Netzwerkkonfiguration überprüft werden und am einfachsten durch
cp /etc/network/interfaces.kvm /etc/network/interfaces

die gesicherte Datei wiederhergestellt werden.

Hack, damit linuxmuster.net 6.0 funktioniert

#################
# nic setup     #
#################
discover_nics() {
 
 n=0
 # fetch all interfaces and their macs from /sys
 for i in /sys/class/net/bond* /sys/class/net/eth* /sys/class/net/br* /sys/class/net/wlan* /sys/class/net/intern /sys/class/net/extern /sys/class/net/d
mz; do

Vorgehensweise Backup und Restore

Folgende Strategie wird beschrieben:

Wenn eine Historie und Versionierung des Backups gewünscht ist, bietet sich an

Während die Migration und die Images der VM eine Schnelle Disaster-Recovery Aktion erlauben, erlaubt die Synchronisation via rsnapshot Zugriff auf einzelne Dateien. Werden beide Verfahren angewandt, lässt sich eine schnelle Rekonstruktion eines (z.B. alten) Images durch eine Synchronisation eines tagesaktuellen „rsnapshots“ aktualisieren.

Backup durch Migration und Komplettsicherung

Ein Backup des Servers durch Migration nach z.B. /srv/backup/server wird als Standardlösung im Handbuch beschrieben.

Hier wird beschrieben, wie man darüberhinaus über die komplette Sicherung der Festplatten-Images und der Konfiguration zu einem Backup mit schnellem Disaster-Recovery kommt:

Recovery auf dem selben Rechner

Recovery auf einem anderen Rechner

Versionierung durch Backup auf Filesystemebene und rsnapshot

++++ Zum Aufklappen des Skript-Beispiels, bitte hier klicken |

# Ziel auf dem NAS/NFS/USB-Festplatte:
snapshot_root     /srv/backup/rsnapshot/
no_create_root    1
retain    daily   61
retain    monthly 12
link_dest 1
 
backup    /srv/ipfire  ipfire/
backup    /srv/chapman chapman/
backup_only_kvmclients.sh
#!/bin/bash
 
function prep {
kvmclient=$1
partition=$2
lvcreate -s /dev/vgserver/${kvmclient} -L 200M  -n ${kvmclient}-backup
kpartx -a /dev/vgserver/${kvmclient}-backup
mount /dev/mapper/vgserver-${kvmclient}--backup${partition} /srv/${kvmclient}
}
 
function pop {
kvmclient=$1
umount /srv/${kvmclient}
kpartx -d /dev/vgserver/${kvmclient}-backup 
lvremove -f /dev/vgserver/${kvmclient}-backup
}
 
function check {
c=0
for i in "$@" ; do
    if [ -z "$(ls -A /srv/$i 2>/dev/null)" ]; then
        c=1
        echo WARNING: Abbruch, weil /srv/$i leer erscheint
    fi 
done
[ $c -eq 1 ] && return 1 || return 0
}
 
 
prep ipfire 1
prep chapman 1
 
# check for empty dirs
check ipfire chapman
# backup using rsnapshot
if [ $? -eq 0 ]; then
    rsnapshot daily
fi
 
# normalzustand herstellen
pop chapman
pop ipfire

++++

1)
später in /etc/default/grub rootdelay=5 einfügen, siehe hier, oder /boot als eigene Partition einfügen
3)
Quelle: hier oderhier
4)
es ginge auch ein Herunterfahren der Datenbanken innerhalb des Clients und dann ein Pausieren der VM, aber ich bin für Herunterfahren, das geht unkompliziert und die Datenbanken werden sauber geschlossen.