公司開始部署KVM,KVM的全稱是kernel base virtual machine,對KVM虛擬化技術研究了一段時間,java
KVM是基於硬件的徹底虛擬化,跟vmware、xen、hyper-v是同一個級別的,並且已經內置在Linux內核python
並且KVM是開源產品,最新的虛擬化技術都會優先應用在KVM上,KVM的定製和配置項也不少,比封閉的hyper-v好玩多了linux
一直以爲微軟的產品太封閉,以前一直用hyper-v,可配置項相比於KVM實在太少,並且KVM性能比hyper-v要好windows
KVM各個組件的關係centos
libvirt(virt-install,API,服務,virsh)-》qemu(qemu-kvm進程,qemu-img)-》KVM虛擬機-》kvm.ko 內核模塊 網絡
libvirt:紅帽提供的一個管理KVM虛擬機的API庫,提供了virsh命令和一些python APIsession
qemu:KVM的用戶空間管理工具,用於管理內核空間kvm.ko工具
kvm.ko:KVM的核心,提供了虛擬CPU的工具,centos6系統安裝的時候默認已經自帶kvm.ko,只須要加載這個內核模塊性能
安裝流程ui
物理機部署流程
安裝KVM組件
一、首先檢查系統是否支持kvm,有兩個先決條件
a、系統是x86的,經過命令
uname -a
b、CPU 支持虛擬化技術
egrep 'vmx|svm' /proc/cpuinfo
其中intel cpu支持會有vmx,amd cpu支持會有svm
若是看到有輸出結果,即證實cpu 支持虛擬化。同時特別注意須要檢查 BIOS 中是否開啓VT,若是沒有啓用,虛擬機將會十分慢。
二、使用yum安裝kvm
安裝kvm內核
yum install -y qemu-kvm.x86_64 qemu-kvm-tools.x86_64 qemu-img
安裝virt管理工具
yum -y install libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarch libvirt-python.x86_64 python-virtinst bridge-utils
說明:
kvm:軟件包中含有KVM內核模塊,它在默認linux內核中提供kvm管理程序
libvirts:安裝虛擬機管理工具,使用virsh等命令來管理和控制虛擬機。
bridge-utils:設置網絡網卡橋接。
qemu-img:安裝qemu組件,使用qemu命令來建立磁盤等。
加載kvm 內核
modprobe kvm modprobe kvm-intel
查看kvm內核模塊是否加載成功
modprobe -ls | grep kvm
三、配置網絡橋接,
進入目錄 /etc/sysconfig/network-scripts,複製一份原有的ifcfg-eth0 爲 ifcfg-br0
cp ifcfg-eth0 ifcfg-br0
修改ifcfg-br0,內容以下:
DEVICE="br0" BOOTPROTO=static ONBOOT="yes" TYPE="Bridge" IPADDR=10.11.30.52 NETMASK=255.255.255.0 GATEWAY=10.11.30.1 DEFROUTE=yes
IPADDR、GATEWAY、NETMASK根據本身的實際狀況修改。
修改 ifcfg-em1 內容以下:
DEVICE="em1" BOOTPROTO=none NM_CONTROLLED="no" ONBOOT=yes TYPE=Ethernet BRIDGE="br0" HWADDR=34:17:EB:F0:01:1F DEFROUTE=yes IPV4_FAILURE_FATAL=yes NAME="System em1"
重啓網絡服務便可。
/etc/init.d/network restart
若是出現問題,關閉 NetworkManager 後重試。
chkconfig NetworkManager off
service NetworkManager stop
四、啓動或重啓libvirtd服務和messagebus 服務
/etc/init.d/libvirtd start
/etc/init.d/messagebus restart
此時能夠查看網絡接口列表
brctl show 結果以下:
bridge name bridge id STP enabled interfaces
br0 8000.000c2955a70a no eth0
virbr0 8000.52540014efd5 yes virbr0-nic
生成虛擬機流程(在物理機上執行)
1 安裝screen 工具
yum install -y screen
2 生成qcow2 格式的鏡像文件
qemu-img create -f qcow2 /data/kvmimg/gzwtest01.qcow2 60G
3 在screen裏面新開一個session
screen -S instSys
4 安裝一臺Windows虛擬機
virt-install --name=gzwtest01 --ram 4096 --vcpus=16 --autostart --hvm \ --disk path=/data/kvmimg/gzwtest01.qcow2,size=60,format=qcow2 \ --cdrom /data/download/cn_windows_server_2012_r2_with_update_x64_dvd_6052725.iso \ --graphics vnc,listen=0.0.0.0,port=5902 \ --network bridge=br0,model=e1000 --force --connect qemu:///system
說明
name:虛擬機名稱
ram:內存,單位MB
vcpus:邏輯CPU數
autostart:隨母雞開機啓動而啓動,母雞開機,虛擬機也一塊兒開機
hvm:徹底虛擬化
model:指定網卡爲千兆
disk path:鏡像文件位置
size:虛擬機磁盤大小,單位GB
format:鏡像文件格式
accelerate:
force:跳過全部交互提示,至關於yum install -y裏的-y選項
cdrom:操做系統安裝文件路徑
graphics: 指定安裝經過哪一種類型,能夠是vnc,也能夠沒有圖形,這裏是VNC,若是是文本graphics none
listen:0.0.0.0表示偵聽全部來源地址,能夠修改/etc/libvirt/qemu.conf
port:vnc端口號
vncport:VNC端口
network:指定網絡類型
bridge:宿主機的橋接網卡是br0
connect:鏈接到一個非默認的hypervisor
5 使用VNC軟件鏈接虛擬機進行系統安裝
VNC軟件名稱 vnc-4_1_2-x86_win32_viewer
10.11.30.53:5902
10.11.30.53:物理機的IP
5902:虛擬機對應端口
至此,一臺Windows的KVM虛擬機部署完畢
本文版權歸做者全部,未經做者贊成不得轉載。