天天看點

KVM+OpenvSwitch+LinuxBridge 部署虛拟化環境(CentOS7/CentOS8)00-檢視是否開啟硬體虛拟化支援01-安裝QEMU02-安裝libvirt03-執行個體網絡配置

目錄

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的所有方法

繼續閱讀