kvm:雙網卡做bond+橋接


一,KVM基礎

kvm是一種技術,雲計算是一種模式,虛擬化是利用相應的技術方法在一台物理機器上將其按照不同的需求划分成多個相同或者不同的虛擬操作系統,並且各個虛擬系統可以同時運行,互不干擾,其中任何一個虛擬系統的損壞都不影響同一物理服務器上的其他虛擬系統。

虛擬化分類

服務器虛擬化-虛擬服務器

桌面虛擬化-瘦客戶機連接win7 實現普通辦公

存儲虛擬化-SAN(基於磁盤)/NAS(NFS/Samba)/GlusterFS

應用虛擬化-將辦公軟件虛擬化,最典型的就是office

網絡虛擬化-SDN

更多待補

二,KVM實驗

 

1,網絡

使用kvm 安裝虛擬機后,需要為客戶機設置網絡接口,2種方式:

KVM 客戶機網絡連接有兩種方式:

  • 用戶網絡(User Networking):讓虛擬機訪問主機、互聯網或本地網絡上的資源的簡單方法,但是不能從網絡或其他的客戶機訪問客戶機,性能上也需要大的調整。NAT方式

NAT方式是kvm安裝后的默認方式。它支持主機與虛擬機的互訪,同時也支持虛擬機訪問互聯網,但不支持外界訪問虛擬機

 由於虛擬接口和物理接口之間沒有連接關系,所以虛擬機只能在通過虛擬的網絡訪問外部世界,無法從網絡上定位和訪問虛擬主機。virbr0是一個橋接器 ,使用 brctl show 及 route 查看

  • 虛擬網橋(Virtual Bridge):這種方式要比用戶網絡復雜一些,但是設置好后客戶機與互聯網,客戶機與主機之間的通信都很容易。

以網橋方式連接,客戶機可以與子網里面的機器互相通信,可以使虛擬機成為網絡中具有獨立IP的主機,橋接網絡(也叫物理設備共享)被用作把一個物理設備復制到一台虛擬機。網橋多用作高級設置,特別是主機多個網絡接口的情況

網橋的基本原理就是創建一個橋接接口br0,在物理網卡和虛擬網絡接口之間傳遞數據,適用於主機虛擬化

2,架構如上圖

大坑:

實驗用的是 CentOS Linux release 7.4.1708 (Core) :

1,yum 安裝  libvirt   的版本  libvirt version: 4.5.0, package: 10.el7

systemctl  start  libvirtd 報錯:

error : virModuleLoadFile:53 : internal error: Failed to load module '/usr/lib64/libvirt/storage-backend/libvirt_storage_backend_rbd.so': /usr/lib64/libvirt/storage-backend/libvirt_storage_backend_rbd.so: undefined symbol: rbd_diff_iterate2

處理:

mv  libvirt_storage_backend_rbd.so{,.bk}

然后可以正常啟動。

2,在做網絡bond和橋接時總是出錯,橋接配置地址后無法正常與外界公網連接

    折騰了一天,后來換了系統,centos 7.6 后正常配置bond和橋,kvm 。

三,操做

1,宿主機准備

四個網卡,2個橋接,一個僅主機模式(可自動分配ip)

# 1,vmware 宿主機cpu開啟虛擬化
# 2,確認指令集是否支持kvm
grep -E "vmx|svm" /proc/cpuinfo | wc -l
2
# 3,安裝kvm 工具包
yum install qemu-kvm qemu-kvm-tools libvirt virt-manager virt-install  acpid  
systemctl   start/enable libvirtd  
ifconfig virbr0    #查看生成的網卡

grep "192.168.122.1" /etc/lib   #查看ip 地址
grep "192.168.122.1" /etc/libvirt/ -R   #查看ip所在文件,可以修改為指定內網ip

 

2,創建NAT模式虛擬機

##  提前上傳鏡像   
ll /usr/local/src/CentOS-7-x86_64-Minimal-1810.iso 

##創建磁盤
ll /var/lib/libvirt/images/ #默認保存虛擬機磁盤的路徑

##創建一個格式為raw大小為10G的裸磁盤
qemu-img create -f raw /var/lib/libvirt/images/CentOS-7-x86_64.raw 10G 

##qcow2格式
qemu-img create -f qcow2 /var/lib/libvirt/images/centos.qcow2 10G
#創建默認網絡虛擬機,默認為nat模式
virt-install --virt-type kvm --name centos7 --ram 1024 --vcpus 2 \
--cdrom=/usr/local/src/CentOS-7-x86_64-Minimal-1810.iso  \
--disk path=/var/lib/libvirt/images/centos.qcow2 \ 
--network network=default  \
--graphics    vnc,listen=0.0.0.0   --noautoconsole

#--network network=default   網絡默認NAT模式

3,創建bond+橋接

#創建br0橋接網卡,雙網卡綁定+ 橋接
#多個網卡綁定,高可用或帶寬疊加   宿主機按裝   
yum  -y isntall  bridge-utlis   
本機配置  
外網:eth0   eth1
內網:eth2   eth3 
cd  /etc/sysconfig/network-scripts 

##bond0配置
1,vim  ifcfg-bond0
TYPE=Bond
BOOTPROTO=none
DEVICE=bond0
NAME=bond0
ONBOOT=yes
USERCTL=no
BONDING_MASTER=yes
BONDING_OPTS="mode=1 miimon=100"
BRIDGE=br0
#橋接到br0

2,vim  ifcfg-br0
TYPE=Bridge
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=172.20.134.7
#宿主機ip
NETMASK=255.255.0.0
GATEWAY=172.20.0.1
DNS1=114.114.114.114

3,eth0 配置
vim   ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
DEVICE=eth0
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes

4,eth1配置
vim  ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
DEVICE=eth1
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes

#bond1 配置
1,vim  ifcfg-bond1
BOOTPROTO=static
NAME=bond1
DEVICE=bond1
ONBOOT=yes
BONDING_MASTER=yes
BONDING_OPTS="mode=1 miimon=100"
BRIDGE=br1
 
2,vim  ifcfg-br1
TYPE=Bridge
BOOTPROTO=static
NAME=br1
DEVICE=br1
ONBOOT=yes
IPADDR=10.20.200.4  
#宿主機私網ip
NETMASK=255.255.255.0
 

3,eth2 配置
vim   ifcfg-eth2
BOOTPROTO=static
NAME=eth2
DEVICE=eth2
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond1
USERCTL=no
SLAVE=yes

4,eth3配置
vim  ifcfg-eth3
BOOTPROTO=static
NAME=eth3
DEVICE=eth3
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond1
USERCTL=no
SLAVE=yes

##第一個kvm虛擬機
#創建磁盤
qemu-img create -f qcow2 /var/lib/libvirt/images/centos7-bridge.qcow2  10G

#創建橋接網絡虛擬機
virt-install --virt-type kvm --name bridge-2 --ram 1024 --vcpus 2  \
--cdrom=/data/CentOS-7-x86_64-Minimal-1810.iso \
--disk  path=/var/lib/libvirt/images/centos1.qcow2  --network  bridge=br0  \
--graphics  vnc,listen=0.0.0.0 --noautoconsole

##第二個虛擬機按步驟重復操做
注意第二台主機的網絡模式為--network  bridge=br1
或創建成功后使用virt-manager 圖型化更改網卡模式。選擇br1

##對於第二台宿主機,可以將第一台的網卡配置文件及鏡像復制過去,更改ip,啟動虛機后立刻poweroff  后重新啟動

  

 筆記本承載不了,開第二台虛擬機kvm卡住。更多后補。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM