注:本文內容均由本人在工作、學習、實踐中總結後發佈,文中少部分內容來源自“MAN 文檔”、“官方幫助手冊”或摘抄自網絡,但文中主體內容、結構編排均有本人獨立編寫完成,不涉及版權糾紛;請編輯勿修改“創作類型”!致謝!
KVM作爲linux內核的一部分,有着無法比擬的優勢,相信KVM的大範圍企業應用指日可待。
一、KVM宿主服務器環境配置
1. 查看CPU是否支持VT技術
- cat /proc/cpuinfo | egrep 'vmx|svm'
- flags : fpu vme de pse tsc msr pae mce cx8 apic
- mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2
- ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts
- rep_good aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16
- xtpr pdcm dca sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority
如果執行指令後有類似返回,則證明CPU支持VT
2. 安裝KVM組件
- yum groupinstall Virtualization
- yum groupinstall "Virtualization Platform"
3. 檢查KVM模塊加載
- lsmod | grep kvm
- kvm_amd 37434 4
- kvm 292815 1 kvm_amd
如果執行指令後有類似返回,則證明KVM模塊加載正常,否則檢查BIOS中是否開啓了CPU VT支持
4. 安裝virtsh virt-install 管理工具
- yum install libvirt-client python-virtinst
二、虛擬機安裝
1. 建立虛擬機磁盤鏡像文件
qcow2格式是kvm支持的標準格式,raw格式爲虛擬磁盤文件通用格式。有測試數據表明raw格式的I/O性能略高於qcow2格式,但是在加密,容量,快照方面qcow2格式有優勢
- qemu-img create -f qcow2 test.qcow2 20G //建立qcow2格式磁盤文件
- qemu-img create -f raw test.raw 20G //建立raw格式磁盤文件
- qemu-img info test.qcow2 //查看已經創建的虛擬磁盤文件
2. 建立虛擬機示例
創建1G內存、2核CPU、單網卡,磁盤和網絡驅動使用virtio的linux虛擬機
- virt-install --name rhel5.4 \
- --boot network,cdrom,menu=on \
- --ram 1024 --vcpus=2 \
- --os-variant=rhel5.4 \
- --accelerate \
- --cdrom=/troodon/ISO/CentOS-6.2-x86_64-bin-DVD1.iso \
- --disk path=/troodon/KVM/test01/test01.img,size=30,format=qcow2,bus=virtio \
- --bridge=br0,model=virtio --mac=54:52:00:01:79:e9 \
- --vnc --vncport=5991 --vnclisten=0.0.0.0.
創建8G內存、4核CPU、雙網卡,磁盤和網絡驅動使用virtio的linux虛擬機
- virt-install --name rhel5.2 \
- --boot network,cdrom,menu=on \
- --ram 8192 --vcpus=4 \
- --os-variant=rhel6 \
- --cdrom=/troodon/ISO/CentOS-6.2-x86_64-bin-DVD1.iso \
- --disk path=/troodon/KVM/test01/test01.img,format=qcow2,bus=virtio \
- --bridge=br0,model=virtio --mac=54:52:00:0b:8b:79 \
- --bridge=br1,model=virtio --mac=54:52:00:7e:8e:cd \
- --vnc --vncport=5991 --vnclisten=0.0.0.0
創建1G內存、1核CPU、單網卡,磁盤和網絡驅動使用virtio的windows虛擬機
- virt-install --name win2k3 \
- --ram 1024 --vcpus=1 \
- --os-variant=win2k3 \
- --accelerate \
- --cdrom=/troodon/ISO/Windows/2003/win2k3sp1.iso \
- --disk path=/troodon/KVM/win2k3/win2k3.img,size=5,format=qcow2,bus=virtio \
- --bridge=br0,model=virtio \
- --vnc --vncport=5991 --vnclisten=0.0.0.0
一些解釋:
virtio驅動對於磁盤和網絡I/O性能有很大提升(默認qemu驅動),linux虛擬機安裝完成後自動加載virtio驅動,windows虛擬機需要下載virtio驅動後安裝
--mac參數指定網卡mac地址,如果不指定系統會自動分配
虛擬機配置文件存儲在 /etc/libvirt/qemu 目錄,配置文件爲XML格式
開機自啓動的虛擬機配置可以通過鏈接放到 /etc/libvirt/qemu/autostart 目錄,配置文件爲XML格式
3. 虛擬機安裝指令 virt-install 簡介
- --name 指定虛擬機名稱,virsh操作指定虛擬機時所需要的參數,不可以重複。
- --ram 分配內存大小,安裝完成後可以用 virsh 調整。
- --vcpus 分配CPU核心數,最大與實體機CPU核心數相同,安裝完成後也可以用 virsh 調整。
- --disk 指定虛擬機鏡像, size 指定分配大小單位爲G。
- --network 網絡類型,此處用的是默認,一般用的應該是 bridge 橋接。
- --os-variant 指定操作系統類型,此處使用的是標準Linux 2.6,其他的可以通過 man virt-install 詳細查看。
- --accelerate 加速,具體什麼原理還不太清楚。
- --cdrom 指定安裝鏡像所在。
- --vnc 啓用VNC遠程管理,一般安裝系統都要啓用。
- --vncport 指定 VNC 監控端口,默認端口爲 5900,端口不能重複。
- --vnclisten 指定 VNC 綁定IP,默認綁定127.0.0.1,這裏將其改爲 0.0.0.0 以便可以通過外部連接。
4. 虛擬機管理指令 virsh 簡介
- virsh list 列出當前虛擬機列表,不包括未啓動的
- virsh list --all 列出所有虛擬機,包括所有已經定義的虛擬機
- virsh start domain-name 啓動指定虛擬機
- virsh shutdown domain-name 停止指定虛擬機
- virsh reboot domain-name 重新啓動指定虛擬機
- virsh autostart domain-name 指定虛擬機開機自動啓動