環境
系統 centos6.2-x86_64
IP地址 192.168.0.99
1、KVM宿主機安裝:
一、安裝條件:
1)含有KVM的Linux 發行版本必須在64bit環境中才能使用。
2)KVM須要一臺能夠運行最新linux內核的Intel處理器(VT虛擬化技術)或AMD處理器(含SVM安全虛擬機技術的AMD處理器, 也叫AMD-V)。
可使用以下命令檢查:
[root@kvm ~]# grep -Po "(vmx|svm)" --color=always /proc/cpuinfo
vmx
vmx
若是輸出的結果包含 vmx,它是 Intel處理器虛擬機技術標誌;若是包含 svm則說明是 AMD處理器虛擬機技術標誌。若是你甚麼都得不到,那應你的系統並無支持虛擬化的處理,不能使用kvm。
3)打開CPU支持虛擬化(以DELL服務器爲例):
服務器啓動後,按F2鍵進入BIOS設置,按上下鍵找到」PROCESSOR SETTINGS」--〉回車--〉找到「Virtualization Technology」,按空格鍵,選擇ENABLED--〉esc保存退出
二、安裝KVM
1)在現有系統中安裝 KVM 軟件包
這部分論述了要在正常工做的 Centos6.2 系統中安裝 KVM 管理程序的步驟。
要在 Centos6.2 中使用虛擬化,您須要有 kvm 軟件包。kvm 軟件包中含有 KVM 內核模塊,它可在默認Linux 內核中提供 KVM 管理程序。
To install the kvm package, run:
# yum install kvm
安裝其它推薦的虛擬化軟件包:
# yum install virt-manager libvirt libvirt-python python-virtinst
三、安裝後驗證
1)測試KVM加載成功
運行命令 lsmod | grep kvm 檢查 KVM 模塊是否成功安裝。若是結果相似於如下輸出,那麼 KVM 模塊已成功安裝:
[root@kvm ~]# lsmod | grep kvm
kvm_intel 50380 6
kvm 305113 1 kvm_intel
2)確認KVM安裝成功
關閉SELinux:
修改/etc/selinux/config文件中的SELINUX=disabled,而後重啓。
若是不想重啓系統,使用命令setenforce 0
———————————————————————————————————
修改虛擬化配置文件:vi /etc/libvirt/libvirtd.conf, 否則對應服務不能啓動
listen_tcp = 1
mdns_adv = 0
[root@kvm ~]# virsh -c qemu:///system list
Id Name State
———————————-
因本機初始安裝,因此虛擬機列表爲空,若是在這裏顯示的是一個錯誤的信息,說明有些東西出現了問題。
四、宿主機網絡設置
1)安裝必要的軟件
宿主服務器安裝完後先要設定網絡,通常設置爲bridge模式,即橋接模式,橋接模式須要手動設置。
首先安裝bridge-utils和tunctl
yum install bridge-utils tunctl
而後查看tun模塊是否已經被加載
lsmod | grep tun
若是沒有,則須要手動加載tun模塊
modprobe tun
2)修改宿主服務器網卡文件
方法1:使用命令行配置
[root@kvm ~]#cd /etc/sysconfig/network-scripts/
[root@kvm network-scripts]#cp ifcfg-eth0 ifcfg-br0
修改拷貝的文件配置
[root@kvm network-scripts]# sed -i -e ‘s/DEVICE=eth0/DEVICE=br0/’
/etc/sysconfig/network-scripts/ifcfg-br0
echo TYPE=Bridge >>/etc/sysconfig/network-scripts/ifcfg-br0
echo BRIDGE=br0 >> /etc/sysconfig/network-scripts/ifcfg-eth0
方法2:手動配置
配置以後文件爲:
[root@kvm ~]#cd /etc/sysconfig/network-scripts/
[root@kvm network-scripts]# vi ifcfg-br0
填入:
DEVICE=br0
ONBOOT=yes
TYPE=Bridge
IPADDR=192.168.0.99
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
[root@kvm network-scripts]# vi ifcfg-eth0
填入:
DEVICE=eth0
HWADDR=18:03:73:CC:23:2F
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
BRIDGE=br0
配置好好,重啓宿主網卡:
Service network restart
若是有多個網卡須要使用橋接方式,按此方法,依次增長
五、防火牆設置
Vi /etc/sysconfig/iptables
-I FORWARD -m physdev –physdev-is-bridged -j ACCEPT
Service iptables restart
六、系統參數設置
Vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
Sysctl -p
七、重啓libvirt
Service libvirtd restartpython
2、建立虛擬機
linux
1. 創建虛擬機磁盤鏡像文件windows
qcow2格式是kvm支持的標準格式,raw格式爲虛擬磁盤文件通用格式。有測試數據代表raw格式的I/O性能略高於qcow2格式,可是在加密,容量,快照方面qcow2格式有優點centos
qemu-img create -f qcow2 test.qcow2 20G //創建qcow2格式磁盤文件安全
qemu-img create -f raw test.raw 20G //創建raw格式磁盤文件服務器
qemu-img info test.qcow2 //查看已經建立的虛擬磁盤文件網絡
2. 創建虛擬機示例dom
建立1G內存、2核CPU、單網卡,磁盤和網絡驅動使用virtio的linux虛擬機tcp
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 指定虛擬機開機自動啓動
5.經過VNC安裝虛擬機
下載windows客戶端
http://sourceforge.net/projects/tigervnc/files/
根據vncPort鏈接進入後和正常安裝系統同樣
安裝完成後用virsh start domain-name 啓動指定虛擬機