一、KVM簡介
KVM是開源軟件,全稱是kernel-based virtual machine(基於內核的虛擬機),是一個開源的系統虛擬化模塊,基於硬件的完全虛擬化,不過需要硬件支持(如Intel VT技術或者AMD V技術)。自Linux 2.6.20之後集成在Linux的各個主要發行版本中。它使用Linux自身的調度器進行管理,所以相對於Xen,其核心源碼很少。KVM目前已成爲學術界的主流VMM之一。
二、KVM安裝
1. 準備工作
關閉iptables防火牆
BIOS開啓CPU支持虛擬化(一般默認是開啓的)
查看CPU是否支持KVM完全虛擬化
查看方法:
# cat /proc/cpuinfo | egrep --color=always 'vmx|svm' #如有信息輸出則可判斷支持
2. 安裝虛擬化相關軟件包
系統yum升級
#yum update #或是用yum upgrade
安裝虛擬化和圖形桌面軟件包組
#yum -y groupinstall "Virtualization" "Desktop" "X Window System" "Desktop Platform"
安裝KVM相關
#yum -y install kvm libvirt libvirt-python python-virtinst virt-manager qemu-kvm-tools virt-viewer virt-v2v
安裝完成後重啓系統
#reboot
3. 查看加載的KVM模塊
# lsmod|grep kvm kvm_intel 55656 6 kvm 345659 1 kvm_intel
# stat /dev/kvm File: "/dev/kvm" Size: 0 Blocks: 0 IO Block: 4096 character special file Device: 5h/5d Inode: 10640 Links: 1 Device type: a,e8 Access: (0666/crw-rw-rw-) Uid: ( 0/ root) Gid: ( 36/ kvm) Access: 2016-04-21 17:20:39.789558372 +0800 Modify: 2016-04-21 17:20:39.789558372 +0800 Change: 2016-04-21 17:20:39.789558372 +0800
4. 查看libvirtd運行狀態
#/etc/init.d/libvirtd status libvirtd (pid 2491) is running...
5. 配置網絡橋接
備份ifcfg-eth0
#cp /etc/sysconfig/network-scripts/ifcfg-eth0 /root
創建br0
#cd /etc/sysconfig/network-scripts/ #cp ifcfg-eth0 ifcfg-br0
查看配置的內容,這裏選擇了自動獲取IP地址,
[root@node4 network-scripts]# cat ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BRIDGE=br0 [root@node4 network-scripts]# cat ifcfg-br0 DEVICE=br0 TYPE=Bridge ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=dhcp
6.禁用網絡過濾器
編輯/etc/sysctl.conf添加如下內容
#sysctl -p ... net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
7.重啓網絡服務
#/etc/init.d/network restart
三、安裝虛擬機
在/data/vm目錄下創建2個用於安裝虛擬機的磁盤鏡像:
#qemu-img create -f raw /data/vm/vm01.img 10G #用於圖形化安裝虛擬機 #qemu-img create -f qcow2 /data/vm/vm02.img 10G #用於命令行安裝虛擬機 #qemu-img info /data/vm/vm01.img #查看鏡像信息
1. 用virt-manager圖形化安裝虛擬機
打開應用程序->系統工具->虛擬系統管理器
點擊創建虛擬機按鈕,輸入虛擬機名稱,點前進,
選擇掛載的CD光盤和操作系統選項,點前進,
確定虛擬機的內存和CPU,點前進,
爲虛擬機啓用已經建好的存儲硬盤,點前進,
下一步確認虛擬機的信息,點擊完成後就進入到安裝系統的界面,安裝系統步驟這裏就不介紹了。
2. 命令行安裝虛擬機的命令如下:
#virt-install --virt-type kvm -n vm02 -r 1024 --disk path=/data/vm/vm02.img,size=10,format=qcow2 -w bridge:br0 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel6 --location=http://192.168.1.166/centos6
--virt-type kvm #The hypervisor to install on. Example choices are kvm, qemu, xen, or kqemu.
-n --name= #虛擬機實例名稱,即虛擬機的name
-r --ram= #給虛擬機分配的內存大小,單位爲M
--disk #Specifies media to use as storage for the guest
-w --network= #設置使用的網絡
--graphics 確定圖形展示的類型,默認就是VNC,監聽在0.0.0.0
--os-type= #系統類型
--os-variant= #確定系統系列類型,以優化虛擬機的配置,--os-variant list可查看支持哪些類型值
-l --location= #確定安裝介質或是說安裝源,這裏用了http服務做了系統的安裝源,就是把光盤掛載目錄鏈接到了網站根目錄下。
命令執行後可以用VNC客戶端軟件訪問VNC界面,就是正常安裝系統的界面。
查看 vnc 啓動在哪個端口
#virsh vncdisplay vm02
不用VNC,直接在命令行啓動一個console用文本狀態的界面安裝,命令:
#virt-install --virt-type kvm -n vm03 -r 1024 --vcpus 1 --os-variant=rhel6 --accelerate -v -w bridge:br0 --disk path=/data/vm/vm03.img,size=10,format=qcow2 --location=http://192.168.1.166/centos6 --nographics -x "console=ttyS0"
virt-install 相關參數可以查看幫助,
#man virt-install #virt-install -h
3. virsh 管理虛擬機的命令
virsh list 列出當前虛擬機列表,不包括沒有啓動的
virsh list --all 列出所有虛擬機列表,包含沒有啓動的
virsh start vm01 啓動虛擬機vm01
virsh shutdown vm01 正常關閉虛擬機vm01
virsh destroy vm01 強制關閉虛擬機vm01,相當於斷電式關機
virsh undefine vm01 刪除虛擬機vm01,即刪除對vm01的定義,vm01鏡像文件並沒刪除
virsh reboot vm01 重啓vm01
virsh autostart vm01 虛擬機隨宿主機啓動
virsh# 查看dominfo的子命令
domid 查看虛擬機的標識符
domname 查看虛擬機的名稱
domuuid 查看虛擬機的 UUI
domstate 查看虛擬機目前的狀
dominfo 查看虛擬機的信息
virsh dumpxml vm01 > file.xml 導出虛擬機vm01的配置到一個xml文件
virsh define file.xml 從xml文件從新定義一個虛擬機實例,file.xml需要修改相關配置以避免與vm01衝突