天天看點

CentOS 6.3部署KVM虛拟機 V1.0

<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

&gt; --disk path=/var/lib/libvirt/images/qxm.img,size=20  --accelerate

&gt; --cdrom /mnt/cn_windows_7_ultimate_with_sp1_x86_dvd_u_677408.iso

&gt; --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

&lt;domain type='kvm'&gt;                                 虛拟機類型

  &lt;name&gt;centos&lt;/name&gt;                             虛拟機名稱

  &lt;uuid&gt;54da30ed-150d-514e-9803-4dc01bd50488&lt;/uuid&gt;      uuid唯一标示

  &lt;memory unit='KiB'&gt;1048576&lt;/memory&gt;             指定虛拟機記憶體大小,給出了機關

   &lt;vcpu placement='static'&gt;2&lt;/vcpu&gt;           虛拟機占用虛拟cpu個數,這裡隻實體cpu

的核,給的多。占用的實體資源越充裕

  &lt;os&gt;

    &lt;type arch='x86_64' machine='rhel6.3.0'&gt;hvm&lt;/type&gt;         指定虛拟系統架構

    &lt;boot dev='hd'/&gt;                                                  啟動類型,從硬碟啟動

  &lt;/os&gt;

   &lt;devices&gt;

    &lt;emulator&gt;/usr/libexec/qemu-kvm&lt;/emulator&gt;    驅動程式,同上,使用的是qemu-kvm

    &lt;disk type='file' device='disk'&gt;                                         指定磁盤類型

      &lt;driver name='qemu' type='raw' cache='none'/&gt;                    指定磁盤格式,這裡是raw,也支援qcow2.

      &lt;source file='/home/vms/centos.img'/&gt;                              img檔案路徑

      &lt;target dev='hda' bus='ide'/&gt;                              磁盤檔案标示,驅動類型

      &lt;address type='drive' controller='0' bus='0' target='0' unit='0'/&gt;

    <b>   </b>&lt;interface type='bridge'&gt;

      &lt;mac address='52:54:00:11:57:e6'/&gt;                  自動生成,可以手動指定。

      &lt;source bridge='br0'/&gt;                                  橋接到哪一個接口

    &lt;/domain&gt;

<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,如需轉載請自行聯系原作者

繼續閱讀