<b>1</b><b>、</b><b>KVM</b><b>虛拟機的管理工具</b><b></b>
<b></b>
準确的來說,KVM僅僅是Linux核心的一個子產品,管理和建立完整的KVM虛拟機,需要更多的輔助工具。
QEMU-KVM:在Linux系統中,首先我們可以用modprobe指令加載KVM子產品,如果用RPM安裝KVM軟體包,系統會在啟動時自動加載子產品,QEMU是一個強大的虛拟軟體,它可以虛拟不同的構架
Virt-manager:盡管QEMU-KVM工具可以建立和管理KVM虛拟機,RedHat 為KVM開發了更多的輔助工具,比如 libvirt libguestfs等,原因是QEMU工具效率不高,不易于使用。
<b>2</b><b>、安裝配置</b><b>KVM</b><b>相關軟體</b><b></b>
2.1系統要求:
處理器需求:需要一台可以運作最新linux核心的Intel處理器(含VT虛拟化技術)或AMD處理器(含SVM安全虛拟機技術的AMD處理器,也叫AMD-V)
[root@kvm ~]# cat /etc/redhat-release
CentOS release 6.3 (Final)
2.2檢查CPU:
[root@kvm ~]# egrep 'vmx|svm' --color=always/proc/cpuinfo
如果輸出的結果包含VMX,它是Intel處理器虛拟機技術标志:如果包含SVM,它是AMD處理器虛拟機技術的标志,如果你什麼都沒有得到,那應你的系統并沒有支援虛拟化的處理,不能使用KVM,另處linux發行版本必須在64bit環境中才能使用KVM。
<b>3</b><b>、安裝</b><b>centos 6.2 </b><b>後下載下傳</b><b>163</b><b>源配置檔案</b><b></b>
http://mirrors.163.com/.help/CentOS6-Base-163.repo
# cd /etc/yum.repos.d/ #進入源目錄
# cp CentOS-Base.repo CentOS-Base.repo.bak #備份源檔案
用下載下傳的163源配置檔案替換CentOS-Base.repo檔案内容
# yum update 系統更新
如果不提示錯誤,CentOS-Base.repo檔案中
gpgcheck=0
<b>4</b><b>、安裝</b><b>KVM</b>
[root@kvm ~]#reboot
<b>5</b><b>、重新開機後确認</b><b>libvirtd</b><b>是否正常啟動、重新開機。</b><b></b>
[root@kvm ~]# /etc/init.d/libvirtd restart
Starting libvirtd daemon: [ OK ]
<b>6</b><b>、檢查</b><b>KVM</b><b>是否加載成功</b><b></b>
顯示結果如下表示kvm子產品已經加載,如果沒有輸出資訊,則表示沒有加載成功:
[root@kvm yum.repos.d]# lsmod | grep kvm
kvm_intel 52570 6
kvm 314739 1 kvm_intel
<b>7</b><b>、檢查</b><b>KVM</b><b>是否成功安裝</b><b></b>
[root@kvm ~]# virsh list --all (--all關閉的也會顯示)
Id 名稱 狀态
----------------------------------------------------
1 Win7 running
2 RedHat running
<b>8</b><b>、各版本查詢</b><b></b>
[root@kvm ~]# virt-install --version
0.600.0
[root@kvm ~]# virsh --version
0.9.10
<b>9</b><b>、修改</b><b>qemu.conf</b><b>配置</b><b></b>
<b>二、配置網絡橋接</b><b></b>
http://www.techotopia.com/index.php/Creating_an_RHEL_6_KVM_Networked_Bridge_Interface
已安裝bridge-utils,添加修改配置檔案來的更簡單。以下是實際配置檔案,eth0為實體網口,br0為橋接網口。
<b>1</b><b>、安裝</b><b>tunctl</b><b>:</b><b></b>
# yum install -y tunctl
<b>2</b><b>、禁用網絡管理器:</b><b></b>
# chkconfig NetworkManager off 和橋接有沖突,要關閉
# service NetworkManager stop
<b>3</b><b>、修改</b><b>eth0</b><b>為實體網口,</b><b>br0</b><b>為橋接網口配置檔案:</b><b></b>
[root@CY-S01 network-scripts]# cat ifcfg-br0
DEVICE="br0"
TYPE="Bridge"
ONBOOT="yes"
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
BRIDGE="br0"
BOOTPROTO=none
IPADDR=192.168.50.190
PREFIX=24
GATEWAY=192.168.50.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
DNS1=202.106.46.151
HWADDR=00:1E:67:07:EC:30
[root@CY-S01 network-scripts]#
<b>4</b><b>、最後重新開機網絡</b><b></b>
[root@CY-S01 network-scripts]# service network restart
<b>5</b><b>、檢視橋接網絡</b><b></b>
[root@CY-S01 network-scripts]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0025901b11a2 no eth0
vnet0
virbr0 8000.525400aba808 yes virbr0-nic
<b>三、使用</b><b>virt-install </b><b>工具安裝</b><b>guest </b><b>系統</b><b></b>
[root@kvm /]# virt-install --name=qxm --ram 1024 --vcpus=2
> --disk path=/var/lib/libvirt/images/qxm.img,size=20 --accelerate
> --cdrom /mnt/cn_windows_7_ultimate_with_sp1_x86_dvd_u_677408.iso
> --graphics vnc,password=123456,port=5920, --network bridge=br0 --force --autostart
使用virt-install 工具,工具自動建立磁盤,預設是raw格式。
[root@CY-S01 vms]# qemu-img info centos.img
image: centos.img
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 1.4G
<b>1</b><b>、可以通過</b><b>virt-viewer</b><b>檢視安裝狀态:</b>
[root@kvm virtual]# virt-viewer name
<b>2</b><b>、使用</b><b>virt-install </b><b>工具安裝虛拟機後,在目錄</b><b>/etc/libvirt/qemu/</b><b>下生成</b>
<b>2</b><b>、使用</b><b>virt-install </b><b>工具安裝虛拟機後,在目錄</b><b>/etc/libvirt/qemu/</b><b>下生成</b><b>xml </b><b>配置檔案。</b>
[root@kvm ~]# cd /etc/libvirt/qemu
[root@kvm ~]# cat centos.xml
<domain type='kvm'> 虛拟機類型
<name>centos</name> 虛拟機名稱
<uuid>54da30ed-150d-514e-9803-4dc01bd50488</uuid> uuid唯一标示
<memory unit='KiB'>1048576</memory> 指定虛拟機記憶體大小,給出了機關
<vcpu placement='static'>2</vcpu> 虛拟機占用虛拟cpu個數,這裡隻實體cpu
的核,給的多。占用的實體資源越充裕
<os>
<type arch='x86_64' machine='rhel6.3.0'>hvm</type> 指定虛拟系統架構
<boot dev='hd'/> 啟動類型,從硬碟啟動
</os>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator> 驅動程式,同上,使用的是qemu-kvm
<disk type='file' device='disk'> 指定磁盤類型
<driver name='qemu' type='raw' cache='none'/> 指定磁盤格式,這裡是raw,也支援qcow2.
<source file='/home/vms/centos.img'/> img檔案路徑
<target dev='hda' bus='ide'/> 磁盤檔案标示,驅動類型
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
<b> </b><interface type='bridge'>
<mac address='52:54:00:11:57:e6'/> 自動生成,可以手動指定。
<source bridge='br0'/> 橋接到哪一個接口
</domain>
<b>3</b><b>、使用</b><b>virsh</b><b>工具管理生成的虛拟機</b><b></b>
A、[root@kvm ~]# virsh start centos 啟動虛拟機 reboot start shutdown
B、[root@kvm ~]# virsh list 列出目前運作的虛拟機
Id Name State
1 centos running
3 centos6332 running
C、[root@kvm ~]# ll /var/lib/libvirt/qemu
total 12
srwxr-xr-x 1 root root 0 Aug 22 09:53 centos.monitor
這裡的檔案,是libvirtd在重新開機後,虛拟機也随着自動重新開機。
D、動态查詢kvm資源占用情況,每一台VM,對應一個qemu-kvm程序
[root@CY-S01 vms]# top -d 1 | grep kvm
<b>4</b><b>、截取的</b><b>kvm</b><b>程序資訊</b><b></b>
[root@kvm ~]# ps -aux | grep kvm
<b>附一</b><b>: </b><b>其他問題</b><b></b>
1、圖形化配置:從菜單中啟動,或者運作virt-manager進入圖形管理界面,由于比較簡單,在此不詳述,不過img的位置要好好配置一下,kvm安裝後會有一個預設位置,不注意的話容易占滿空間。或者直接硬碟分區時單獨給/var分一個區。
2、虛拟機重新配置:
虛拟機的配置檔案儲存在/etc/libvirt/qemu目錄下,擴充名是xml。修改相應的檔案即可重新配置虛拟機。
3、虛拟機備份及恢複:
備份:拷貝/etc/libvirt/qemu目錄下的xml配置檔案,以及xml中設定的img檔案。
恢複:進入virsh,執行define 目錄下的xml檔案路徑
virsh # define /etc/libvirt/qemu/winxp.xml
4、開機自動啟動虛拟機:
[root@kvm qemu]# virsh autostart Winxp
5、克隆KVM虛拟機:
[root@kvm ~]# virt-clone -o Winxp -n winxpclong -f /var/lib/libvirt/images/winxpclong.img
(-o 原始客體的名稱,-n新用戶端的名稱,-f作為新用戶端磁盤映像的新檔案)
6、虛拟機意外關機報下述錯誤:
[root@kvm qemu]# virsh start winxp
錯誤:開始域 winxp 失敗
錯誤:Unable to read from monitor: Connection reset by peer
解決方法:virsh managedsave-remove winxp
<b>附二</b><b>: Virsh</b><b>文法參數詳解</b>
Autostart 自動開始一個域
Create 從一個 XML 檔案建立一個域
Define 從一個 XML 檔案定義(但不開始)一個域
edit 編輯某個域的 XML 配置
shutdown 關閉一個域
start 開始一個(以前定義的)非活躍的域
reboot 重新啟動一個域
suspend 挂起一個域
resume 重新恢複一個域
vncdisplay vnc 顯示
<b>使用</b><b>save</b><b>來備份目前虛拟機的狀态:</b><b></b>
[root@kvm images]# virsh save --bypass-cache RedHat /var/lib/libvirt/images/test.img --running
上面這個指令将RedHat的目前狀态儲存到/opt/vm2_save檔案中,這個檔案我看了一下,597M.
--running參數表示下次restore回來的時候能夠自動啟動RedHat
這個指令會導緻RedHat被關閉。
<b>現在還原:必須先關閉虛拟機</b><b></b>
[root@kvm images]# virsh shutdown RedHat
[root@kvm images]# virsh restore /var/lib/libvirt/images/test.img --bypass-cache --running (還原時不要指定虛拟機名稱)
本文轉自 freeterman 51CTO部落格,原文連結:http://blog.51cto.com/myunix/1118963,如需轉載請自行聯系原作者