目錄
00-檢視是否開啟硬體虛拟化支援
01-安裝QEMU
02-安裝libvirt
03-執行個體網絡配置
03-01安裝openvswitch(二選一)
openvswitch建立linux bridge03-01-01
通過腳本配置03-01-02
03-02Linux自帶(二選一)
centos6
centos8
centos7
00-檢視是否開啟硬體虛拟化支援
如未有值,需要在主機BIOS啟動
egrep --color '(vmx|svm )' /proc/cpuinfo
或者
egrep -c '(vmx|svm)' /proc/cpuinfo
執行# lsmod |grep kvm檢視kvm子產品是否已經加載,如果沒有加載,且CPU是Intel,則使用# modprobe kvm-intel 指令加載;AMD CPU執行# modprobe kvm-amd。
01-安裝QEMU
yum -y install qemu-kvm
02-安裝libvirt
yum -y install libvirt
systemctl start libvirtd
systemctl enable libvirtd
03-執行個體網絡配置
我們可以通過Linux自帶bridge進行網絡配置,也可以通過openvswitch,二選一即可。
03-01安裝openvswitch(二選一)
yum -y install centos-release-openstack-train
yum clean all
yum makecache
yum -y install openvswitch
systemctl enable openvswitch
systemctl start openvswitch
openvswitch建立linux bridge03-01-01
ovs-vsctl add-br br-ext
ip link set br-ext up
ip addr add 192.168.x.x/24 dev br-ext
ip route add default via 192.168.x.x dev br-ext
ip addr flush dev enp3s0f0
ovs-vsctl add-port br-ext enp3s0f0
通過腳本配置03-01-02
如果将管理IP所在interface綁定到網橋,需要将該interface上的IP位址配置到網橋上。否則,會斷網。
## 配置網橋
# cat switch2bridge.sh
#!/bin/bash
if [ -f /etc/profile ]; then
. /etc/profile
fi
if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi
script_abs=$(readlink -f "$0")
script_dir=$(dirname $script_abs)
if [ $(ip add show br-ext|grep 'global br-ext'|grep 192|wc -l) -eq 0 ]; then
ip addr flush dev enp3s0f0
ip link set br-ext up
ip addr add 192.168.x.x/24 dev br-ext
ip route add default via 192.168.x.x dev br-ext
fi
if [ $(ovs-vsctl list-ports br-ext |grep enp3s0f0 |wc -l) -eq 0 ]; then
ovs-vsctl add-port br-ext enp3s0f0
fi
sleep 5s
$script_dir/recover.sh
## 恢複原有區域網路設定
# cat recover.sh
#!/bin/bash
if [ -f /etc/profile ]; then
. /etc/profile
fi
if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi
script_abs=$(readlink -f "$0")
script_dir=$(dirname $script_abs)
isConnected=$(ping www.baidu.com -c 2 |grep '2 packets transmitted' |wc -l)
if [ $isConnected -eq 0 ]; then
nmcli c reload && nmcli c up enp3s0f0
if [ $(ovs-vsctl list-ports br-ext |grep enp3s0f0 |wc -l) -eq 1 ]; then
ovs-vsctl del-port br-ext enp3s0f0
fi
if [ $(ip add show br-ext|grep 'global br-ext'|grep 192|wc -l) -eq 1 ]; then
ip route del default via 192.168.x.x dev br-ext
ip addr del 192.168.x.x/23 dev br-ext
ip link set br-ext down
fi
fi
## 注冊服務
# cat /usr/lib/systemd/system/bridge-network.service
[Unit]
Description=Bridge Network Service
After=network.target NetworkManager.service
Wants=NetworkManager.service
ConditionFileIsExecutable=/root/switch2bridge.sh
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/root/switch2bridge.sh
TimeoutSec=0
[Install]
WantedBy=multi-user.target
ConditionFileIsExecutable= 檢測指定的路徑是否存在并且是一個可執行檔案,必須使用絕對路徑。可以在路徑前面加上感歎号(!)字首,表示邏輯反轉。
03-02Linux自帶(二選一)
centos6
方法一:/etc/sysconfig/network-scripts/下不會建立檔案
建立網橋并添加port
brctl addbr br0
brctl addif br0 eth0
設定流量鏡像
brctl setageing br1 0
brctl setfd br1 0
檢視網橋及其properties
brctl showstp br0
方法二:/etc/sysconfig/network-scripts/下會建立檔案,通過brctl delbr删除網橋之後,需要手動去該目錄下删除相應的網絡配置檔案。
建立網橋并添加port
virsh iface-bridge eth0 br0 [--no-stp] [--delay <number>] [--no-start]
--no-stp do not enable STP for this bridge
--delay <number> number of seconds to squelch traffic on newly connected ports
--no-start don't start the bridge immediately
centos8
建立網橋:/etc/sysconfig/network-scripts/下面會建立檔案
nmcli c add type bridge con-name br0 ifname br0 autoconnect yes
添加port到網橋
nmcli c add type bridge-slave ifname ens33 master br0
設定流量鏡像
nmcli c modify br0 bridge.forward-delay 2 bridge.ageing-time 0
檢視網橋及其properties
nmcli c show br0
重新開機網卡,令配置生效
nmcli c down ens33
nmcli c up br0
centos7
相容centos8和centos6的所有方法