歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Centos 6.3 64bit安裝KVM總結

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

Copyright © Linux教程網 All Rights Reserved