標籤:
目標:構造CentOS6高速虛擬機器平台
特點:KVM支援、大頁記憶體、記憶體預分配、virtio存放裝置、橋接網卡(或VFIO直接分配物理網卡)
1 #!/bin/bash 2 mkdir -p /mnt/hugepages 3 mount -t hugetlbfs hugetlbfs /mnt/hugepages 4 sysctl vm.nr_hugepages=2048 5 /*以上內容為Guest機啟用2M大頁內容支援*/ 6 qemu-system-x86_64 7 -enable-kvm \ /*啟用kvm*/ 8 -machine accel=kvm,usb=off \ /*Guest機加速方式選擇kvm*/ 9 -cpu host \ /*Guest機cpu特性最大程度繼承Host機cpu*/10 -smp sockets=1,cores=2,threads=1 \ /*虛擬出1顆物理cpu,這顆物流cpu上有2個核心,每個核心支援1個線程*/11 -m 2048 -mem-path /mnt/hugepages -mem-prealloc \ /*記憶體設定為2G,佔用大頁記憶體,而且是預分配,不是動態分配*/12 -net nic,model=virtio,macaddr=66:66:66:66:66:66 -net tap,ifname=tap6,script=bridge.sh,downscript=no,vhost=on \ /*橋接方式網卡*/13 -boot order=dcn \ /*Guest機啟動順序:光碟片、硬碟、網路*/14 -drive file=/home/f/Downloads/ISO_files/CentOS_6.8_x64.iso,media=cdrom \ /*指定虛擬存放裝置*/15 -drive file=C600.img,if=virtio,cache=writeback,media=disk 16 -rtc base=localtime,clock=host \ /*Guest機時鐘與Host機保持同步*/17 -display none \ /*啟動後不顯示虛似機畫面,可通過SSH串連*/18 -monitor stdio /*Qemu monitor管理介面顯示在當前輸入輸出介面*,方面監控、Hotplug及Dynamic Migration/19 #-vnc :6 -daemonize /*若選擇VNC串連Guest機,則啟用本行*,且注釋掉17、18行/
bridge.sh內容如下:
1 #!/bin/env bash 2 del_IP() { 3 interfaces=$(ip addr | grep -oP ‘\w+(?=:\s+<)‘ | grep -v ‘lo‘) 4 local y 5 for y in $interfaces 6 do 7 local x 8 local ips=$(ip addr | sed -n "/$y$/p" | grep -oP ‘(\d+\.){3}\d+/\d+‘) 9 for x in $ips10 do11 ip addr del $x dev $y12 done13 done14 #All interfaces‘ IPs have been deleted except "lo".15 }16 17 set_IP() {18 brctl addbr br019 ip link set br0 up20 brctl addif br0 eth021 ip addr add $ipaddr dev br022 if [[ $gateway == "" ]]23 then24 x=$(echo $ipaddr | grep -oP ‘(\d+\.){3}(?=\d+\/\d+)‘)125 ip route replace default via $x dev br026 else27 ip route replace default via $gateway dev br028 #brctl stp br0 on29 fi30 }31 32 echo -n "Your desired IP ? (example: 10.1.0.10/8): "33 read ipaddr34 echo -n "Your Gateway ? (example: 10.1.0.1): "35 read gateway36 del_IP37 set_IP 2>/dev/null38 39 ip link set $1 up40 sleep 141 brctl addif br0 $1
Qemu/KVM虛機機日常應用案例