1. 程式人生 > >centos KVM 搭建

centos KVM 搭建

如何在Centos上搭建kvm虛擬化環境,示例虛擬機器的建立,安裝,快照,刪除等管理操作

KVM介紹

KVM 是 kernel-based Virtual Machine 的簡稱,是一個開源的系統虛擬化模組,自 Linux 2.6.20 之後整合在Linux的各個主要發行版本中。它使用Linux自身的排程器進行管理,所以相對於Xen,其核心原始碼很少。KVM已成為學術界的主流VMM之一。KVM的虛擬化需要硬體支援(如Intel VT技術或者AMD V技術)。是基於硬體的完全虛擬化。而Xen早期則是基於軟體模擬的Para-Virtualization,新版本則是基於硬體支援的完全虛擬化。但Xen本身有自己到程序排程器,儲存管理模組等,所以程式碼較為龐大。廣為流傳的商業系統虛擬化軟體VMware ESX系列也是基於軟體模擬的Para-Virtualization。
KVM (全稱是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬體平臺上的全功能虛擬化解決方案,包含一個可載入的核心模組 kvm.ko 提供和虛擬化核心架構和處理器規範模組。
使用 KVM 可允許執行多個虛擬機器,包括 Linux 和 Windows作業系統。每個虛擬機器有私有的硬體,包括網絡卡、磁碟以及圖形適配卡等。

環境需求

1
2
3
4
5
#演示環境
Centos6.5 minimal x86_64 CPU開啟虛擬化支援
#確認支援CPU支援虛擬化
grep 'vmx|svm' /proc/cpuinfo
#vmx是INTEL,svm是AMD

安裝依賴環境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#KVM核心模組
qemu-kvm
#KVM除錯工具
qemu-kvm-tools
#qemu元件
qemu-img
#python元件
python-virtinst.noarch
#網路橋接工具
bridge-utils

#虛擬機器管理工具
libvirt-devel
#如果需要桌面環境想看到介面(本文件是全命令操作,沒有用到介面)
#安裝GNOME桌面環境,已經有就不用裝了
yum -y groupinstall “Desktop”
#圖形介面管理虛擬機器
yum -y install virt-manager
1
2
3
#安裝依賴元件
yum -y install qemu-kvm qemu-kvm-tools qemu-img python-virtinst.noarch bridge-utils libvirt-devel
yum -y upgrade device-mapper-libs

配置網絡卡橋接

1
2
3
4
#複製網絡卡配置檔案
cd /etc/sysconfig/network-srtipts/
cp ifcfg-eth0 ifcfg-eth0.bak
cp ifcfg-eth0 ifcfg-br0
1
2
3
4
5
6
7
8
#修改 ifcfg-eth0 檔案
DEVICE=eth0
HWADDR=00:0C:29:5E:F9:9A
TYPE= Ethernet
UUID=c97c8098-21d4-4f3a-ac85-a18a8a0edd3d
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0
1
2
3
4
5
6
7
8
9
10
11
12
#修改 ifcfg-br0 檔案
DEVICE=br0
#HWADDR=00:0C:29:5E:F9:9A
TYPE=Bridge
#UUID=c97c8098-21d4-4f3a-ac85-a18a8a0edd3d
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.5.40
NETMASK=255.255.255.0
GATEWAY=192.168.5.1
DNS1=222.85.85.85
DNS2=222.88.88.88
1
2
3
4
5
6
7
8
9
#配置完成後建議直接重啟
reboot
#或者通過以下方式啟動和重啟相關服務
#重啟網路服務
service network restart
#啟動libvirtd
/etc/init.d/libvirtd start
#檢視kvm模組是否載入到核心
lsmod | grep kvm

建立虛擬機器

1
2
#建立qcow2磁碟檔案,kvm只支援這種格式來使用快照功能
qemu-img create -f qcow2 -o preallocation=metadata /data/annda.img 10G
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#虛擬機器名稱
--name annda
#虛擬機器記憶體(單位:MB)
--ram 1024
#虛擬機器CPU
--vcpus 2
#虛擬機器磁碟檔案路徑,格式,大小,匯流排型別
--disk path=/data/annda.img,format=qcow2,size=10,bus=virtio
#系統型別(支援型別: linux,unix,windows)
--os-type linux
#系統版本(檢視詳細支援的版本: virt-install --os-variant list)
--os-variant rhel6
#網絡卡橋接
--network bridge=br0
#圖形化介面(linux:none,windows:vnc)
--graphics none
#映象源
--pxe 網路啟動
--cdrom 光碟機/光碟
--location 本地資料來源
#虛擬機器配置檔案路徑
/etc/libvirt/qemu/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#建立Linux虛擬機器
virt-install \
--name annda \
--ram 512 \
--disk path=/data/annda.img,format=qcow2,size=10,bus=virtio \
--vcpus 2 \
--os-type linux \
--os-variant rhel6 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location /opt/CentOS-6.5-x86_64-bin-DVD1.iso \
--extra-args 'console=ttyS0,115200n8 serial'
#執行命令後會通過當前SSH開啟一個console視窗
#退出console視窗的快捷鍵: CTRL+]
#連線console的命令: virsh console annda (虛擬主機名)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#建立Windows虛擬機器
virt-install \
--name annda \
--ram 2048 \
--disk path=/data/annda.img,format=qcow2,size=10,bus=ide \
--vcpus 2 \
--os-type windows \
--os-variant win2k8 \
--network bridge=br0 \
--graphics vnc,port=5910,listen=0.0.0.0 \
--cdrom /opt/win2008.iso \
--noautoconsole
#然後通過VNC連線上述配置中的5910埠,IP是KVM主機的地址
#如果VNC出現連線閃退現象解決方法如下:
#在VNC高階選項中expert-->ColorLevel的值為“full”即可
#注:rgb111--8 colors,rgb222--64 colors,pal8--256 colors,full--full colors

管理虛擬機器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#檢視所有虛擬機器
virsh list --all
#檢視指定虛擬機器
virsh dominfo annda
#檢視虛擬機器CPU
virsh vcpuinfo annda
#檢視虛擬機器狀態
virsh domstate annda
#檢視虛擬機器網絡卡狀態
virsh domifstat annda vnet0
#檢視虛擬機器XML檔案
virsh dumpxml annda
#主機ID轉換UUID
virsh domuuid annda
#編輯虛擬機器配置
virsh edit annda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#隨系統自動啟動虛擬機器
virsh autostart annda
#啟動虛擬機器
virsh start annda
#關閉虛擬機器(要使用此功能需要在虛擬機器安裝:acpid)
virsh shutdown annda
#重新虛擬機器
virsh reboot annda
#掛起虛擬機器
virsh suspend annda
#恢復虛擬機器
virsh resume annda
#編輯虛擬機器引數
virsh edit annda
#強制關閉虛擬機器
virsh destroy annda
#刪除虛擬機器(該命令只是刪除了虛擬主機檔案,磁碟檔案需要手動刪除)
virsh undefine annda
1
2
3
4
5
6
7
8
9
10
#建立快照
virsh snapshot-create-as annda annda_backup
#檢視快照
virsh snapshot-list annda
#檢視快照詳細資訊
virsh snapshot-info annda annda_backup
#恢復快照
virsh snapshot-revert annda annda_backup
#刪除快照
virsh snapshot-delete annda annda_backup
Author:  Annda Link:  https://www.annda.cn/2017/04/12/linux-centos-kvm-simple-install-manage/ Copyright Notice:  All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.