1.[root@kvmtest ~]#egrep 'vmx|svm' /proc/cpuinfo//首先確定你的cpu是否支持vmx或者svm虛擬化,vmx屬於inter處理器,svm屬於amd處理器,或者用cpu-z查看你的處理器是否支持vt-x虛擬化,bios中開啟vt支持。
2.系統安裝利用kickstart安裝KVM,最主要是添加4個組包
@virtualization //提供虛擬機的環境,主要包含qumu-kvm
@virtualization-client//管理和安裝虛擬機實例的客戶端,主要有python-virtinst,virt-manager,virt-viewer
@virtualization-platform//提供訪問和控制虛擬客戶端的接口,主要有libvirt,libvirt-client
@virtualization-tools //管理離線虛擬機鏡像的工具,主要有libguestfs根據需求選擇軟件包,一般都安裝1,2,3 利用yum groupinstall "Virtualization" "Virtualization Client""Virtualization Platform"
3.[root@kvmtest ~]# lsmod|grep kvm //以下說明已經加載了kvm和kvm_intel的模塊。
kvm_intel 52570 3
kvm 314739 1 kvm_intel
4.使用下列命令檢查KVM是否成功安裝
[root@kvmtest ~]#virsh -c qemu:///system list //以下表示正常
將會顯示如下結果:
Id Name State
-------
5.[root@kvmtest ~]# service libvirtd status //查看libvirtd API工具是否啟動
libvirtd (pid 1607) is running...
[root@kvmtest ~]# chkconfig --list libvirtd //查看libvirtd 開機啟動runlevel為3,4,5級別
libvirtd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
6.KVM Bridge上網配置
橋模式簡介
關於橋的模式:
其實我們在虛擬機搭建的時候,我們最終關心的網卡是: eth0, br0, vnet0,vnet1… 其中,我們的eth0是原來的物理網卡,br0是我們虛擬出來的橋設備,而vnetXXX就是橋接映射到虛擬機裡面用到的網
卡。當配置完了之後,我們使用ifconfig,查看起來的話,eth0是沒有ip地址的,而br0仿佛是虛擬出來的一個原來eth0的訪問接口,它具有ip地址,可以代替原來的eth0被訪問,而vnetXX的地址可以在
建立虛擬機之後在虛擬機裡面配置,橋接後可以被外部訪問。
雖然不知道我的表述是否的標准,但是大概就是這麼個意思。
注意:將已有的物理網卡添加到網橋,此時物理網卡工作於混雜模式,所以不需要IP了,因為網橋是工作在鏈路層的。br0就提供了IP地址,來模擬原來的物理網卡的訪問接口.關於混雜模式:查了一些
資料,原因是根據以太網的原理,包是在整個子網裡面廣播發送的,當網卡發現這個數據幀不是發給自己的也不是廣播包的時候,就直接把它丟掉,而不傳送到上層內核去處理;而當網卡處於混雜模式
的時候,網卡就不會丟掉幀,而是全部向上提交到內核,讓內核處理這些幀結構。通常的,混雜模式使用來進行網絡調試的,不是正常的工作狀態。
目標:
讓虛擬機和物理機有相同的網段,使得辦公局域網內能訪問虛擬機。
這樣可以在一台性能較好的台式機上虛擬出kvmtest1,kvmtest2,kvmtest3,kvmtest4等服務器 各種服務之間不會相互干擾,只要物理機不down掉,虛擬機之間相對獨立,已經安裝橋接bridge-utils和
虛擬機接口創建工具tunctl,添加修改配置文件來更簡單,eth0為物理接口br0為橋接網口,使用下列同樣的方法配置eth1為第二塊物理接口br1為橋接網口。
7. [root@kvmtest ~]#cat ifcfg-br0 //查看ifcfg-br0配置文件
DEVICE=br0 //網卡接口名稱
TYPE=Bridge //網卡類型
BOOTPROTO=static //啟動地址協議static靜態,bootp協議和dhcp協議
NM_CONTROLLED=no //是否允許networkManager管理
ONBOOT=yes //啟動系統是否自動加載
IPADDR=192.168.xx.xxx //網卡ip地址
NETMASK=255.255.255.0 //網卡網絡地址
GATEWAY=192.168.xx.xx //網卡網關地址
8. [root@kvmtest ~]##cat ifcfg-eth0 //查看ifcfg-eth0配置文件
DEVICE=eth0 //網卡接口名稱
TYPE=Ethernet //網卡類型
BOOTPROTO=none //啟動地址協議static靜態,bootp協議和dhcp協議
HWADDR=8C:89:A5:65:B8:3D //網卡mac物理地址
NM_CONTROLLED=no //是否啟動networkmanager管理
ONBOOT=yes //啟動系統是否自動加載
BRIDGE=br0 //橋接為br0名字可以自定
9. [root@kvmtest ~]#service network restart //重啟網絡讓br0 和br1橋生效。
Shutting down interface br0: [ OK ]
Shut Shutting down interface br0: [ OK ]
Shutting down interface eth1: [ OK ]
Shutting down interface eth1: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
Bringing up interface br0: [ OK ]
Bringing up interface eth1: [ OK ]
Bringing up interface br1: [ OK ]
10. [root@kvmtest ~]# brctl show //查看全部橋接信息
bridge name bridge id STP enabled interfaces
br0 8000.8c89a565b83d no eth0
br1 8000.00e04cefb385 no eth1
virbr0 8000.5254001daa20 yes virbr0-nicvirbr0//系統默認生成接口主要用於NAT,如果要刪除可以先ifconfig virbr0 down接口,然後利用brctl delbr virbr0刪除掉
即可。
11.安裝宿主機host中的guest系統
virt-install是一個使用“libvirt” hypervisor 管理庫構建新虛擬機的命令行工具,此工具使用串行控制台,SDL(Simple DirectMedia Layer)圖形或者VNC客戶端/服務器,支持基於命令行和圖形
安裝。
所建立的客戶機(在虛擬化中,把運行運行虛擬機服務器稱為host,把虛擬機稱為guest)能夠配置使用一個或多個虛擬磁盤、網卡、音頻設備和物理安裝媒介可以本地或基於NFS、HTTP、FTP服務器遠程
連接,基於後者,virt-install將提取必要的最小限度的文件開始安裝過程,在安裝過程中,允許客戶機根據需要提取其他的文件,也支持PXE引導和導入已有的磁盤映像(此操作跳過安裝階段)。
給予適合的命令行變量,“virt-install”具有完全無人值守安裝的能力,這允許更容易的客戶機自動化安裝。本工具也支持,互模式通過提供 --prompt選項,但是這種方式只要求最小的必要選項。安裝guest系統默認使用virt-install工具創建磁盤為raw格式,利用virt-install工具來安裝.無GUI使用virt-install安裝guest,有圖形界面用virt-manager工具當你的CentOS沒有桌面環境時,可以使用virt-install命令安裝,如:
1、輸入虛擬機名稱
2、分配多少內存
3、處理器的個數
4、此步可以直接輸入iso的位置或是url
5、虛擬機類型KVM
6、定義虛擬機磁盤映像的位置
7、磁盤的大小
6、指定哪個橋或者可以指定多個橋
7、額外的控制台和KS文件
8、連接到系統參數
12.[root@localhost ~]#virt-install -v -n kvmtest1 -r 512 --vcpus=1 -l http://mirrors.163.com/centos/6.3/os/x86_64/ --nographics --virt-type=kvm -f /home/vmimages/kvmtest1.img -s
10 -w bridge:br0 –w bridge:br1 --extra-args='console=tty0 console=ttyS0,115200n8 ks=http://192.168.xx.xx/test1.cfg' --connect qemu:///system
參數說明注意每行都要空格
-n 虛擬機名稱
-r 分配虛擬機內存大小
--vcpus 分配虛擬cpu個數
-c 鏡像文件位置
--vnc --vncport=5901 --vnclisten=0.0.0.0 啟動圖形安裝界面
--virt-type 虛擬機模式
-f 虛擬機系統文件存儲目錄
-s 分配磁盤大小(GB)
-w 聯網方式(birdge bridge:br0/nat bridge:virbr0)
--os-type='windows' --os-variant=win2k3 安裝windows最好加上這個否則會報錯
virt-install工具安裝虛擬機後,在目錄/etc/libvirt/qemu/下生成xml配置文件
-s 用來指定虛擬磁盤的大小單位為GB
-m 指定虛擬網卡的硬件地址默認virt-install自動產生
-p 以半虛擬化方式建立虛擬機
-l 指定安裝來源
-x EXTRA, --extra-args=EXTRA當執行從"--location"選項指定位置的客戶機安裝時,附加內核命令行參數到安裝程序。
-v, --hvm 設置全虛擬化
13.利用virsh工具管理生成虛擬機,virt-manager是RedHat共享的一個開源虛擬化管理軟件,它是用Python編寫的GUI程序,底層使用了Libvirt對各類Hypervisor進行管理。
[root@kvmtest kvmks]# virsh list //查看虛擬機信息
Id Name State
----------------------------------------------------
1 kvmtest1 running
2 kvmtest2 running
3 kvmtest3 running
4 kvmtest4 running
14.[root@kvmtest ~]# virsh destroy kvmtest1 //virsh destroy ID/NAME刪除虛擬機
Domain kvmtest1 destroyed
15.[root@kvmtest ~]# virsh start kvmtest1 //virsh start NAME啟動虛擬機
Domain kvmtest1 started
16.[root@kvmtest ~]# virsh console kvmtest1 //virsh console ID/NAME控制台連接虛擬機
Connected to domain kvmtest1
Escape character is ^]
CentOS release 5.8 (Final)
Kernel 2.6.18-308.el5 on an x86_64
kvm1 login:
//利用ctrl+]切換到host主機,host主機利用virsh console ID/NAME切換到guest系統。
help 顯示該命令的說明
quit 結束 virsh,回到 Shell
connect 連接到指定的虛擬機服務器
create 啟動一個新的虛擬機
destroy 刪除一個虛擬機
start 開啟(已定義的)非啟動的虛擬機
define 從 XML 定義一個虛擬機
undefine 取消定義的虛擬機
dumpxml 轉儲虛擬機的設置值
list 列出虛擬機
reboot 重新啟動虛擬機
save 存儲虛擬機的狀態
restore 回復虛擬機的狀態
suspend 暫停虛擬機的執行
resume 繼續執行該虛擬機
dump 將虛擬機的內核轉儲到指定的文件,以便進行分析與排錯
shutdown 關閉虛擬機
setmem 修改內存的大小
setmaxmem 設置內存的最大值
setvcpus 修改虛擬處理器的數量
17.虛擬機重新配置
虛擬機的配置文件保存在/etc/libvert/qemu目錄下,擴展名是xml,這文件只能用virsh edit來編輯用vi無效,修改相應的文件即可重新配置虛擬機。
- <!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
virsh edit kvmtest1
or other application using the libvirt API.
-->
- <domain type="kvm">
<name>kvmtest1</name>
<uuid>1e29c67f-2d4f-ecaf-4eed-c1727fea6fbc</uuid>
<memory unit="KiB">524288</memory>
<currentMemory unit="KiB">524288</currentMemory>
<vcpu placement="static">1</vcpu>
- <os>
<type arch="x86_64" machine="rhel6.3.0">hvm</type>
<boot dev="hd" />
</os>
- <features>
<acpi />
<apic />
<pae />
</features>
<clock offset="utc" />
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
- <devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
- <disk type="file" device="disk">
<driver name="qemu" type="raw" cache="none" />
<source file="/home/sda4/kvmtest1.img" /> //這裡主要是guest系統磁盤的路徑
<target dev="vda" bus="virtio" />
<address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x0" />
</disk>
- <controller type="usb" index="0">
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x2" />
</controller>
- <interface type="bridge"> //橋接地址br0對應eth0
<mac address="52:54:00:42:e2:0f" />
<source bridge="br0" />
<model type="virtio" />
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0" />
</interface>
- <interface type="bridge"> //橋接br1對應eth1
<mac address="52:54:00:2c:78:9f" />
<source bridge="br1" />
<model type="virtio" />
<address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0" />
</interface>
- <serial type="pty">
<target port="0" />
</serial>
- <console type="pty">
<target type="serial" port="0" />
</console>
- <memballoon model="virtio">
<address type="pci" domain="0x0000" bus="0x00" slot="0x06" function="0x0" />
</memballoon>
</devices>
</domain>
18. 虛擬機備份及恢復
備份:拷貝/etc/libvert/qemu目錄下的xml配置文件,以及xml中設置的img文件。
恢復:進入virsh,執行define
19.安裝windows2003 guest系統
首先修改/etc/libvirt/qemu.conf把vnclisten 0.0.0.0前面的#去掉。
virt-install -v -n windows2003 -r 512 --vcpus=1 -c /media/2003x64.iso --vnc --vncport=5900 --vnclisten=0.0.0.0 --virt-type=kvm -f /home/kvmimage/windows2003.img -s 5 -w bridge:br0 --os-type='windows' --os-variant=win2k3 --connect qemu:///system
[root@centos6 tasks]# sh 2003.sh
Starting install...
Creating storage file windows2003.img | 5.0 GB 00:00
Creating domain... | 0 B 00:00
Cannot open display:
Run 'virt-viewer --help' to see a full list of available command line options
Domain installation still in progress. Waiting for installation to complete.
20.下載http://www.tightvnc.com/download.html#stable for windows tightVNC
21.利用TightVNC Connection連接KVM 宿主機HOST br0的ip加上::端口號
22.系統2003 64bit系統安裝好如下所示。
本文出自 “有志者事竟成!” 博客,請務必保留此出處http://zh888.blog.51cto.com/1684752/1062362