一,KVM基礎
kvm是一種技術,雲計算是一種模式,虛擬化是利用相應的技術方法在一台物理機器上將其按照不同的需求划分成多個相同或者不同的虛擬操作系統,並且各個虛擬系統可以同時運行,互不干擾,其中任何一個虛擬系統的損壞都不影響同一物理服務器上的其他虛擬系統。
虛擬化分類
服務器虛擬化-虛擬服務器
桌面虛擬化-瘦客戶機連接win7 實現普通辦公
應用虛擬化-將辦公軟件虛擬化,最典型的就是office
網絡虛擬化-SDN
更多待補
二,KVM實驗
1,網絡
使用kvm 安裝虛擬機后,需要為客戶機設置網絡接口,2種方式:
-
用戶網絡(User Networking):讓虛擬機訪問主機、互聯網或本地網絡上的資源的簡單方法,但是不能從網絡或其他的客戶機訪問客戶機,性能上也需要大的調整。NAT方式
NAT方式是kvm安裝后的默認方式。它支持主機與虛擬機的互訪,同時也支持虛擬機訪問互聯網,但不支持外界訪問虛擬機
-
虛擬網橋(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卡住。更多后補。