Support DPDK & non-DPDK since DPDK needs special cpu features

Change-Id: I1a2d704bf66aafa66d81a1f233ea4312430d809a
Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
This commit is contained in:
Guo Ruijing 2016-08-09 00:39:41 -07:00
parent e3814c9362
commit 62d85e89b0
3 changed files with 119 additions and 19 deletions

View File

@ -1,6 +1,7 @@
#!/bin/bash
DNS_SERVER=${DNS_SERVER:-10.248.2.1}
SUPPORT_DPDK=${SUPPORT_DPDK:-false}
#setup ntp server
sudo service ntp restart
@ -17,9 +18,12 @@ sudo brctl delbr br-eth1
sudo brctl addbr br-eth1
sudo ifconfig br-eth1 172.16.0.1/24 up
sudo ifconfig br-dpdk down
sudo brctl delbr br-dpdk
sudo brctl addbr br-dpdk
if [ $SUPPORT_DPDK = 'true' ]
then
sudo ifconfig br-dpdk down
sudo brctl delbr br-dpdk
sudo brctl addbr br-dpdk
fi
sudo iptables -t nat -D PREROUTING -j PRE_FUEL
sudo iptables -t nat -N PRE_FUEL
@ -74,13 +78,19 @@ do
sleep 20
done
if [ $SUPPORT_DPDK = 'true' ]
then
fuel_slave='fuel-slave-dpdk'
else
fuel_slave='fuel-slave'
fi
#setup slave
for i in {1..4}; do
sudo virsh destroy fuel-slave-$i
sudo rm -rf /var/lib/libvirt/images/fuel-slave-${i}.img
sudo qemu-img create -f qcow2 /var/lib/libvirt/images/fuel-slave-${i}.img 200G
sed "s/FUEL_SLAVE/fuel-slave-$i/g" fuel-slave.xml > vms/fuel-slave-${i}.xml
sudo virsh create vms/fuel-slave-${i}.xml
sudo rm -rf /var/lib/libvirt/images/$fuel_slave-${i}.img
sudo qemu-img create -f qcow2 /var/lib/libvirt/images/$fuel_slave-${i}.img 200G
sed "s/FUEL_SLAVE/fuel-slave-$i/g" $fuel_slave.xml > vms/$fuel_slave-${i}.xml
sudo virsh create vms/$fuel_slave-${i}.xml
done
#setup web browser

102
demo/fuel-slave-dpdk.xml Normal file
View File

@ -0,0 +1,102 @@
<domain type='kvm' id='75'>
<name>FUEL_SLAVE</name>
<memory unit='KiB'>4194304</memory>
<currentMemory unit='KiB'>4194304</currentMemory>
<vcpu placement='static'>4</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-i440fx-trusty'>hvm</type>
<boot dev='network'/>
<bootmenu enable='no' />
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<cpu mode='custom' match='exact'>
<model fallback='allow'>SandyBridge</model>
<vendor>Intel</vendor>
<feature policy='require' name='aes'/>
<feature policy='require' name='avx'/>
<feature policy='require' name='avx2'/>
<feature policy='require' name='f16c'/>
<feature policy='require' name='fsgsbase'/>
<feature policy='require' name='pclmuldq'/>
<feature policy='require' name='rdrand'/>
<feature policy='require' name='sse'/>
<feature policy='require' name='sse2'/>
<feature policy='require' name='ssse3'/>
<feature policy='require' name='sse4.1'/>
<feature policy='require' name='sse4.2'/>
</cpu>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/FUEL_SLAVE.img'/>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>
<controller type='usb' index='0'>
<alias name='usb0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pci-root'>
<alias name='pci.0'/>
</controller>
<interface type='bridge'>
<source bridge='br-eth0'/>
<model type='e1000' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<interface type='bridge'>
<source bridge='br-eth1'/>
<model type='e1000' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</interface>
<interface type='bridge'>
<source bridge='br-dpdk'/>
<model type='e1000' />
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/20'/>
<target port='0'/>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/20'>
<source path='/dev/pts/20'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5900' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<sound model='ich6'>
<alias name='sound0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</sound>
<video>
<model type='cirrus' vram='9216' heads='1'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</memballoon>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'>
</seclabel>
</domain>

View File

@ -19,18 +19,6 @@
<cpu mode='custom' match='exact'>
<model fallback='allow'>SandyBridge</model>
<vendor>Intel</vendor>
<feature policy='require' name='aes'/>
<feature policy='require' name='avx'/>
<feature policy='require' name='avx2'/>
<feature policy='require' name='f16c'/>
<feature policy='require' name='fsgsbase'/>
<feature policy='require' name='pclmuldq'/>
<feature policy='require' name='rdrand'/>
<feature policy='require' name='sse'/>
<feature policy='require' name='sse2'/>
<feature policy='require' name='ssse3'/>
<feature policy='require' name='sse4.1'/>
<feature policy='require' name='sse4.2'/>
</cpu>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>