Zeile 1.259: |
Zeile 1.259: |
| | disabled | | | disabled |
| |} | | |} |
| + | |
| + | |
| + | ===Server=== |
| + | *Modell:HP ProLiant DL380 G5 2x Xeon E5450 |
| + | *Betriebssystem: Ubuntu 16.04 LTS |
| + | *Virtualisierung: KVM/QEMU |
| + | |
| + | ====Netzwerk Config==== |
| + | Installation Open vSwitch |
| + | <source lang='text'> |
| + | apt-get install openvswitch-switch openvswitch-common |
| + | </source> |
| + | |
| + | Anlegen der Open vSwitch Bridges |
| + | <source lang='text'> |
| + | ovs-vsctl add-br br-sw01 |
| + | ovs-vsctl add-port br-sw01 enp2s0f1 |
| + | |
| + | ovs-vsctl add-br br-sw02 |
| + | ovs-vsctl add-port br-sw02 ens1f0 |
| + | |
| + | ovs-vsctl add-br br-sw05 |
| + | ovs-vsctl add-port br-sw05 ens1f1 |
| + | </source> |
| + | |
| + | /etc/network/interfaces |
| + | <source lang='text'> |
| + | # The loopback network interface |
| + | auto lo |
| + | iface lo inet loopback |
| + | |
| + | # The primary network interface |
| + | auto br-ffwi |
| + | iface br-ffwi inet static |
| + | bridge_ports enp2s0f0 |
| + | bridge_stp no |
| + | bridge_fd 0 |
| + | address 10.56.2.139 |
| + | netmask 255.255.192.0 |
| + | gateway 10.56.0.161 |
| + | dns-nameservers 10.56.0.161 10.56.0.23 10.56.0.231 |
| + | |
| + | # Uplink ffmwu-hans-sw01 |
| + | auto enp2s0f1 |
| + | iface enp2s0f1 inet manual |
| + | |
| + | # Uplink ffmwu-hans-sw02 |
| + | auto ens1f0 |
| + | iface ens1f0 inet manual |
| + | |
| + | # Uplink ffmwu-hans-sw05 |
| + | auto ens1f1 |
| + | iface ens1f1 inet manual |
| + | </source> |
| + | |
| + | ====Libvirt Networks==== |
| + | Man legt z.B. nach /tmp/ die Netzwerk Definitionen ab. |
| + | |
| + | Datei /tmp/ovs-sw01.xml |
| + | <source lang='xml'> |
| + | <networkstatus> |
| + | <class_id bitmap='0-2'/> |
| + | <floor sum='0'/> |
| + | <network> |
| + | <name>ovs-sw01</name> |
| + | <uuid>e5992f9c-4dc1-4f7d-b4e5-6865e80c57f0</uuid> |
| + | <forward mode='bridge'/> |
| + | <bridge name='br-sw01'/> |
| + | <virtualport type='openvswitch'/> |
| + | <portgroup name='vlan-all' default='yes'> |
| + | <vlan trunk='yes'> |
| + | <tag id='5'/> |
| + | <tag id='11'/> |
| + | <tag id='12'/> |
| + | <tag id='13'/> |
| + | <tag id='14'/> |
| + | <tag id='15'/> |
| + | <tag id='16'/> |
| + | </vlan> |
| + | </portgroup> |
| + | </network> |
| + | </networkstatus> |
| + | </source> |
| + | |
| + | Datei /tmp/ovs-sw02.xml |
| + | <source lang='xml'> |
| + | <networkstatus> |
| + | <class_id bitmap='0-2'/> |
| + | <floor sum='0'/> |
| + | <network> |
| + | <name>ovs-sw02</name> |
| + | <uuid>3ceae5b0-cdb4-4996-a0d0-be5f206ed3c2</uuid> |
| + | <forward mode='bridge'/> |
| + | <bridge name='br-sw02'/> |
| + | <virtualport type='openvswitch'/> |
| + | <portgroup name='vlan-all' default='yes'> |
| + | <vlan trunk='yes'> |
| + | <tag id='5'/> |
| + | </vlan> |
| + | </portgroup> |
| + | </network> |
| + | </networkstatus> |
| + | </source> |
| + | |
| + | Datei /tmp/ovs-sw05.xml |
| + | <source lang='xml'> |
| + | <networkstatus> |
| + | <class_id bitmap='0-2'/> |
| + | <floor sum='0'/> |
| + | <network> |
| + | <name>ovs-sw05</name> |
| + | <uuid>c22babeb-8513-4b83-b4eb-ea9252500477</uuid> |
| + | <forward mode='bridge'/> |
| + | <bridge name='br-sw05'/> |
| + | <virtualport type='openvswitch'/> |
| + | <portgroup name='vlan-all' default='yes'> |
| + | <vlan trunk='yes'> |
| + | <tag id='5'/> |
| + | <tag id='51'/> |
| + | <tag id='52'/> |
| + | <tag id='53'/> |
| + | <tag id='54'/> |
| + | <tag id='55'/> |
| + | <tag id='56'/> |
| + | </vlan> |
| + | </portgroup> |
| + | </network> |
| + | </networkstatus> |
| + | </source> |
| + | |
| + | Netzwerk-Definitionen einlesen, starten und für den Autostart markieren. |
| + | <source lang='text'> |
| + | virsh net-define /tmp/ovs-sw01.xml |
| + | virsh net-define /tmp/ovs-sw02.xml |
| + | virsh net-define /tmp/ovs-sw05.xml |
| + | |
| + | virsh net-start ovs-sw01 |
| + | virsh net-start ovs-sw02 |
| + | virsh net-start ovs-sw05 |
| + | |
| + | virsh net-autostart ovs-sw01 |
| + | virsh net-autostart ovs-sw02 |
| + | virsh net-autostart ovs-sw05 |
| + | </source> |
| + | |
| + | ====Libvirt Domain Config==== |
| + | <source lang='xml'> |
| + | <domain type='kvm' id='1'> |
| + | <name>ffmwu-hans-core</name> |
| + | <uuid>04502792-af13-41de-9073-a777ec8eea80</uuid> |
| + | <memory unit='KiB'>524288</memory> |
| + | <currentMemory unit='KiB'>524288</currentMemory> |
| + | <vcpu placement='static'>1</vcpu> |
| + | <resource> |
| + | <partition>/machine</partition> |
| + | </resource> |
| + | <os> |
| + | <type arch='x86_64' machine='pc-i440fx-wily'>hvm</type> |
| + | <boot dev='hd'/> |
| + | </os> |
| + | <features> |
| + | <acpi/> |
| + | <apic/> |
| + | <vmport state='off'/> |
| + | </features> |
| + | <cpu mode='host-model'> |
| + | <model fallback='allow'/> |
| + | </cpu> |
| + | <clock offset='utc'> |
| + | <timer name='rtc' tickpolicy='catchup'/> |
| + | <timer name='pit' tickpolicy='delay'/> |
| + | <timer name='hpet' present='no'/> |
| + | </clock> |
| + | <on_poweroff>destroy</on_poweroff> |
| + | <on_reboot>restart</on_reboot> |
| + | <on_crash>restart</on_crash> |
| + | <pm> |
| + | <suspend-to-mem enabled='no'/> |
| + | <suspend-to-disk enabled='no'/> |
| + | </pm> |
| + | <devices> |
| + | <emulator>/usr/bin/kvm-spice</emulator> |
| + | <disk type='file' device='disk'> |
| + | <driver name='qemu' type='raw'/> |
| + | <source file='/var/lib/libvirt/images/ffmwu-hans-core.img'/> |
| + | <backingStore/> |
| + | <target dev='vda' bus='virtio'/> |
| + | <alias name='virtio-disk0'/> |
| + | <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> |
| + | </disk> |
| + | <controller type='usb' index='0' model='ich9-ehci1'> |
| + | <alias name='usb'/> |
| + | <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/> |
| + | </controller> |
| + | <controller type='usb' index='0' model='ich9-uhci1'> |
| + | <alias name='usb'/> |
| + | <master startport='0'/> |
| + | <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/> |
| + | </controller> |
| + | <controller type='usb' index='0' model='ich9-uhci2'> |
| + | <alias name='usb'/> |
| + | <master startport='2'/> |
| + | <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/> |
| + | </controller> |
| + | <controller type='usb' index='0' model='ich9-uhci3'> |
| + | <alias name='usb'/> |
| + | <master startport='4'/> |
| + | <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/> |
| + | </controller> |
| + | <controller type='pci' index='0' model='pci-root'> |
| + | <alias name='pci.0'/> |
| + | </controller> |
| + | <controller type='virtio-serial' index='0'> |
| + | <alias name='virtio-serial0'/> |
| + | <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> |
| + | </controller> |
| + | <interface type='network'> |
| + | <mac address='52:54:00:dd:cc:9d'/> |
| + | <source network='ovs-sw01' portgroup='vlan-all'/> |
| + | <actual type='bridge'> |
| + | <source bridge='br-sw01'/> |
| + | <vlan trunk='yes'> |
| + | <tag id='5'/> |
| + | <tag id='11'/> |
| + | <tag id='12'/> |
| + | <tag id='13'/> |
| + | <tag id='14'/> |
| + | <tag id='15'/> |
| + | <tag id='16'/> |
| + | </vlan> |
| + | <virtualport type='openvswitch'> |
| + | <parameters interfaceid='2aa233d9-3a8e-46db-8230-72ea0b730ee2'/> |
| + | </virtualport> |
| + | </actual> |
| + | <target dev='vnet0'/> |
| + | <model type='virtio'/> |
| + | <alias name='net0'/> |
| + | <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> |
| + | </interface> |
| + | <interface type='network'> |
| + | <mac address='52:54:00:12:3b:c2'/> |
| + | <source network='ovs-sw02' portgroup='vlan-all'/> |
| + | <actual type='bridge'> |
| + | <source bridge='br-sw02'/> |
| + | <vlan trunk='yes'> |
| + | <tag id='5'/> |
| + | </vlan> |
| + | <virtualport type='openvswitch'> |
| + | <parameters interfaceid='c1a010f5-7911-4651-ae41-080b8892e3e5'/> |
| + | </virtualport> |
| + | </actual> |
| + | <target dev='vnet1'/> |
| + | <model type='virtio'/> |
| + | <alias name='net1'/> |
| + | <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> |
| + | </interface> |
| + | <interface type='network'> |
| + | <mac address='52:54:00:93:ba:bb'/> |
| + | <source network='ovs-sw05' portgroup='vlan-all'/> |
| + | <actual type='bridge'> |
| + | <source bridge='br-sw05'/> |
| + | <vlan trunk='yes'> |
| + | <tag id='5'/> |
| + | <tag id='51'/> |
| + | <tag id='52'/> |
| + | <tag id='53'/> |
| + | <tag id='54'/> |
| + | <tag id='55'/> |
| + | <tag id='56'/> |
| + | </vlan> |
| + | <virtualport type='openvswitch'> |
| + | <parameters interfaceid='d0223530-25ae-4649-8103-405ba0e79761'/> |
| + | </virtualport> |
| + | </actual> |
| + | <target dev='vnet2'/> |
| + | <model type='virtio'/> |
| + | <alias name='net2'/> |
| + | <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/> |
| + | </interface> |
| + | <serial type='pty'> |
| + | <source path='/dev/pts/0'/> |
| + | <target port='0'/> |
| + | <alias name='serial0'/> |
| + | </serial> |
| + | <console type='pty' tty='/dev/pts/0'> |
| + | <source path='/dev/pts/0'/> |
| + | <target type='serial' port='0'/> |
| + | <alias name='serial0'/> |
| + | </console> |
| + | <channel type='spicevmc'> |
| + | <target type='virtio' name='com.redhat.spice.0' state='disconnected'/> |
| + | <alias name='channel0'/> |
| + | <address type='virtio-serial' controller='0' bus='0' port='1'/> |
| + | </channel> |
| + | <input type='mouse' bus='ps2'/> |
| + | <input type='keyboard' bus='ps2'/> |
| + | <graphics type='spice' port='5900' autoport='yes' listen='127.0.0.1'> |
| + | <listen type='address' address='127.0.0.1' fromConfig='1'/> |
| + | </graphics> |
| + | <sound model='ich6'> |
| + | <alias name='sound0'/> |
| + | <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> |
| + | </sound> |
| + | <video> |
| + | <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/> |
| + | <alias name='video0'/> |
| + | <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> |
| + | </video> |
| + | <redirdev bus='usb' type='spicevmc'> |
| + | <alias name='redir0'/> |
| + | </redirdev> |
| + | <redirdev bus='usb' type='spicevmc'> |
| + | <alias name='redir1'/> |
| + | </redirdev> |
| + | <watchdog model='i6300esb' action='reset'> |
| + | <alias name='watchdog0'/> |
| + | <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/> |
| + | </watchdog> |
| + | <memballoon model='virtio'> |
| + | <alias name='balloon0'/> |
| + | <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> |
| + | </memballoon> |
| + | </devices> |
| + | <seclabel type='dynamic' model='apparmor' relabel='yes'> |
| + | <label>libvirt-04502792-af13-41de-9073-a777ec8eea80</label> |
| + | <imagelabel>libvirt-04502792-af13-41de-9073-a777ec8eea80</imagelabel> |
| + | </seclabel> |
| + | </domain> |
| + | </source> |
| + | |
| + | ====VM-Watchdog-Script==== |
| + | Wenn die VM unerwartet crasht, kann diese per Remote nicht resettet werden. |
| + | Dies machen wir automatisiert mit diesem Script, das in /usr/local/bin liegt. |
| + | <source lang='bash'> |
| + | #!/bin/bash |
| + | |
| + | count=$( ping6 -c 5 fd56:b4dc:4b1e:0:5054:ff:fedd:cc9d | grep "bytes from" | wc -l ) |
| + | if [ $count -eq 0 ] |
| + | then |
| + | logger "ffmwu-hans-core: Not available -> Reset VM" |
| + | virsh reset ffmwu-hans-core || virsh start ffmwu-hans-core |
| + | exit 0 |
| + | else |
| + | logger "ffmwu-hans-core: Up and running -> nothing to do" |
| + | exit 0 |
| + | fi |
| + | </source> |
| + | |
| + | Per cronjob wird es alle 20 Minuten ausgeführt |
| + | <source lang='text'> |
| + | # m h dom mon dow command |
| + | */20 * * * * /usr/local/bin/vm-watchdog.sh |
| + | </source> |
| | | |
| ===Uplink=== | | ===Uplink=== |