CentOS 7
- 版本
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-862.3.3.el7.x86_64 #1 SMP Fri Jun 15 04:15:27 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
- 關閉 SElinux (Security-Enhanced Linux: 對所有資源的訪問控制)
vi /etc/sysconfig/selinux
SELINUX=disabled
- 系統升級:
yum update
安裝
-
KVM 是最底層的 Hypervisor, 用來模擬 CPU 的運行, Linux 內核默認支持 KVM,可以通過
modprobe kvm
進行加載,通過lsmod | grep kvm
進行查看。 -
Qemu-kvm 是一個完整的模擬器,運行在用戶層,構建在 KVM 之上,調用 KVM 接口,並且提供了完整的網絡和I/O支持,安裝 qemu-kvm:
yum install qemu-kvm
-
Libvirt 是通過調用 qemu-kvm 管理虛擬機的工具,它提供了一套虛擬機操作 API,可以通過
virsh
調用,安裝 libvirt:yum install libvirt
-
Libvirt-python 是 libvirt 爲 python 提供的 API,安裝 libvirt-python:
yum install libvirt-python
-
安裝 libvirt 的客戶端:
yum install libvirt-client
-
安裝 基於 libvirt 的虛擬機創建命令行工具:
yum install virt-install
-
安裝 基於 libvirt 的圖形化虛擬機管理工具:
yum install virt-manager
-
安裝 基於 libvirt 用於顯示 guest OS 圖形化 console 的工具:
yum install virt-viewer
-
安裝 基於 libvirt 用於查看虛擬機資源使用情況的工具:
yum install virt-top
-
安裝 基於 libvirt 的使用 python 安裝虛擬機的工具:
yum install python-virtinst
-
安裝 虛擬機磁盤管理工具:
yum install libguestfs-tools
-
啓動 libvirtd 並設置其爲開機啓動
systemctl start libvirtd
systemctl enable libvirtd
[root@localhost ~]# virsh -c qemu:///system list
Id Name State
----------------------------------------------------
- 安裝 openvswitch:
yum install openvswitch
KVM 網絡配置 – Bridge
-
前往 CentOS 網絡配置文件目錄:
cd /etc/sysconfig/network-scripts/
-
添加網橋設備腳本文件:
vi ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=none
ONBOOT=yes
NM_CONTROLLED=no
也可以在該網橋上配置宿主機的靜態 IP 地址:
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.2.6
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DEFROUTE=yes
ONBOOT=yes
NM_CONTROLLED=no
- 關閉網卡設備,並修改網卡設備腳本文件:
ifdown enp133s0f0
,vi ifcfg-enp133s0f0
HWADDR=00:0C:BD:00:DE:20
TYPE=Ethernet
BOOTPROTO=none
NM_CONTROLLED=no
DEVICE=enp133s0f0
ONBOOT=yes
BRIDGE=br0
- 啓動網卡,啓動網橋:
ifup enp133s0f0
,ifup br0
[root@localhost network-scripts]# ip add
...
4: enp133s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
link/ether 00:0c:bd:00:de:20 brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:bdff:fe00:de20/64 scope link
valid_lft forever preferred_lft forever
...
17: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:bd:00:de:20 brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:bdff:fe00:de20/64 scope link
valid_lft forever preferred_lft forever
...
如果網橋上有配置靜態 IP 地址,會在 br0 上顯示。
- 查看網橋:
[root@localhost network-scripts]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000cbd00de20 no enp133s0f0
br1 8000.000cbd00de21 no enp133s0f1
br2 8000.000cbd00de22 no enp133s0f2
br3 8000.000cbd00de23 no enp133s0f3
KVM 網絡配置 – vSwitch
-
啓動 openvswitch 並設置其爲開機啓動:
systemctl start openvswitch
,systemctl enable openvswitch
-
在
/etc/sysconfig/network-scripts
目錄下, 配置 OVS Bridge 腳本:vi ifcfg-br20
DEVICE=br20
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=none
ONBOOT=yes
NM_CONTROLLED=no
- 關閉網卡,修改網卡腳本:
ifdown enp7s0f0
,vi ifcfg-enp7s0f0
HWADDR=00:0C:BD:06:43:8A
DEVICETYPE=ovs
TYPE=OVSPort
DEVICE=enp7s0f0
NM_CONTROLLED=no
ONBOOT=yes
OVS_BRIDGE=br20
- 啓動網卡,啓動 OVS Bridge:
ifup enp7s0f0
,ifup br20
[root@localhost network-scripts]# ip add
...
11: enp7s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP group default qlen 1000
link/ether 00:0c:bd:06:43:8b brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:bdff:fe06:438b/64 scope link
valid_lft forever preferred_lft forever
...
14: br20: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether 00:0c:bd:06:43:8a brd ff:ff:ff:ff:ff:ff
inet6 fe80::60d0:9eff:fea0:b263/64 scope link
valid_lft forever preferred_lft forever
...
- 查看 vswitch:
[root@localhost network-scripts]# ovs-vsctl show
7cb9a643-bff7-4d85-8f4d-1cb8077bb117
Bridge "br20"
Port "br20"
Interface "br20"
type: internal
Port "vnet4"
Interface "vnet4"
Port "enp7s0f0"
Interface "enp7s0f0"
Bridge "br11"
Port "ens65f1"
Interface "ens65f1"
Port "br11"
Interface "br11"
type: internal
Bridge mgmt
Port "enp1s0f0"
Interface "enp1s0f0"
Port "vnet0"
Interface "vnet0"
Port mgmt
Interface mgmt
type: internal
Bridge "br21"
Port "enp7s0f1"
Interface "enp7s0f1"
Port "vnet10"
Interface "vnet10"
Port "br21"
Interface "br21"
type: internal
Port "vnet7"
Interface "vnet7"
ovs_version: "2.0.0"
- 重啓 network 失敗,並提示 bridge 已存在,可以通過
ovs-vsctl del-br BRIDGE
後,重啓 network 解決。
WebVirtMgr 部署見: WebVirtMgr + NGINX 環境 在 CentOS 7 上的部署