https://www.cnblogs.com/g2thend/p/11033024.html
一,KVM基礎
kvm是一種技術,雲計算是一種模式,虛擬化是利用相應的技術方法在一臺物理機器上將其按照不同的需求劃分成多個相同或者不同的虛擬操作系統,並且各個虛擬系統可以同時運行,互不干擾,其中任何一個虛擬系統的損壞都不影響同一物理服務器上的其他虛擬系統。
虛擬化分類
服務器虛擬化-虛擬服務器
桌面虛擬化-瘦客戶機連接win7 實現普通辦公
存儲虛擬化-SAN(基於磁盤)/NAS(NFS/Samba)/GlusterFS
應用虛擬化-將辦公軟件虛擬化,最典型的就是office
網絡虛擬化-SDN
更多待補
二,KVM實驗
1,網絡
使用kvm 安裝虛擬機後,需要爲客戶機設置網絡接口,2種方式:
KVM 客戶機網絡連接有兩種方式:
NAT方式是kvm安裝後的默認方式。它支持主機與虛擬機的互訪,同時也支持虛擬機訪問互聯網,但不支持外界訪問虛擬機
由於虛擬接口和物理接口之間沒有連接關係,所以虛擬機只能在通過虛擬的網絡訪問外部世界,無法從網絡上定位和訪問虛擬主機。virbr0是一個橋接器 ,使用 brctl show 及 route 查看
以網橋方式連接,客戶機可以與子網裏面的機器互相通信,可以使虛擬機成爲網絡中具有獨立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
2
3
4
5
6
7
8
9
10
11
|
# 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模式虛擬機
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
## 提前上傳鏡像
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+橋接
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
#創建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 後重新啓動
|