在這邊,先暫時不考慮系統安全性的問題,單純就只是要架構一個可以Zero Downtime Live Migration的環境,以下是一些注意事項。
首先,準備三台PC,分別是HostA, HostB, and NFS,其中HostA以及HostB型號要一樣,因為它們是要做Live Migration的兩台伺服器。也就是我們建立的VM要能夠在HostA和HostB之間任意地Live Migration。至於NFS則不要求。
我們使用192.168.1.*的內網,其中HostA配置為192.168.1.10,HostB配置為192.168.1.11,VM配置為192.168.1.99,而NFS則配置在192.168.1.103。
HostA和HostB使用的作業系統是CentOS 7,而NFS我們用的是Ubuntu,VM外是安裝Fedora 22,並啟用Apache2網頁伺服器。
在建立KVM虛擬機之前,安裝CentOS時需要先做一些設定的工作,以下是設定工作的摘要:
- HostA以及HostB安裝CentOS
- 更新 /etc/hostname 以及 /etc/hosts 兩個檔案,設定正確的主機名稱,然後reboot
- 執行系統更新 yum -y update
- 安裝圖形化桌面 yum -y groupinstall “GNOME Desktop”
- 使用systemctl set-default graphical.target指令,將圖形化桌面設定為開機啟動,然後reboot
- 編輯 /etc/selinux/config,把SELINUX設為disabled
- 執行 systemctl disable firewalld,關閉firewall
- reboot
- 使用以下指令安裝 kvm
- yum -y install qemu-kvm libvirt virt-install bridge-utils virt-manager
- 把所有的.iso以及qcow2檔案均放在NFS的/var/images資料夾中
- mount -t nfs 192.168.1.103:/var/images /var/lib/libvirt/images
- 使用 yum -y remove NetworkManager移除NetworkManger,以避免網路設定上的干擾
- 修改/etc/sysconfig/network-script/ifcfg-eno1的內容,並新增/etc/sysconfig/network-script/ifcfg-bridge檔案
- reboot
- 以virt-manager指令進入Virtual Machine Manager
- 建立VM,進入VM的details設定中,找出IDE Diske 1,然後到Performance設定中,設定Cache mode為none
- 確定Virutal Machine Mangager中的Virtual Machine所使用的NIC是Bridge bridge (Host device eno1)
你需參考你的ifcfg-ens1修改和新增以下這兩個檔案:
ifcfg-ens1改為
[code]
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno1"
UUID="8bf6b734-0c6f-4cdd-b738-981e132deb3b"
DEVICE="eno1"
ONBOOT="yes"
IPADDR="192.168.1.11"
PREFIX="24"
GATEWAY="192.168.1.1"
DNS1="168.95.1.1"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_PRIVACY="no"
BRIDGE=bridge
NM_CONTROLLED="no"
USERCTL="no"
[/code]
ifcfg-bridge的內容則為:
[code]
TYPE="Bridge"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="eno1"
DEVICE="bridge"
ONBOOT="yes"
IPADDR="192.168.1.11"
PREFIX="24"
GATEWAY="192.168.1.1"
DNS1="168.95.1.1"
NM_CONTROLLED="no"
USERCTL="no"
[/code]