KVM部署及硬件參數更改


一.kvm虛擬化環境搭建准備

1.硬件環境

       kvm只能部署在物理機上面。

2.BIOS開啟VT

Virtualization Tech [Enabled]

3.查看cpu 是否支持kvm 全虛擬化

    # grep "flags" /proc/cpuinfo|uniq

flags : fpu vme de pse tsc msr pae mce cx8 apic sepmtrr pge mca cmov pat

pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tmsyscall nx pdpe1gb rdtscp lm

constant_tsc nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16xtpr sse4_1 sse4_2 popcnt lahf_lm

如果輸出的結果包含VMX,它是Intel 處理器虛擬機技術標志,如果包含SVM,它是AMD 處

理器虛擬機技術的標志,看到VMX 或SVM,說明支持全虛擬化。另處linux 發行版本必須在64bit 環境中才能使用KVM。

 

二.虛擬化環境部署

 

1.安裝kvm 和虛擬化管理軟件包

    yum -y install kvm virt-* libvirts bridge-utils qemu-img

 

       kvm 軟件包。kvm 軟件包中含有 KVM 內核模塊,它可在默認 Linux 內核中

提供 KVM 管理程序。

libvirts 安裝虛擬機管理工具,使用virsh 等命令來管理和控制虛擬機

bridge-utils 安裝網絡支持,設置橋接

virt-* 創建、克隆虛擬機等命令,以及圖形化管理工具virt-manager

qemu-img 安裝qemu 組件,使用qemu 命令來創建磁盤等

2.加載kvm 模塊

    # modprobe kvm-intel

3.查看kvm 模塊是否被加載

# lsmod |grep kvm

kvm_intel 85256 0

kvm225952 1 kvm_intel

4.reboot 並確認

確認kvm 模塊是否被加載

# lsmod |grep kvm

kvm_intel 85256 0

kvm 225952 2 ksm,kvm_intel

#如出現以上內容,說明kvm 模塊正確加載

 

    kvm 相關模塊的路徑

# cd /lib/modules/2.6.18-348.1.1.el5/weak-updates/kmod-kvm/

# pwd

/lib/modules/2.6.18-348.1.1.el5/weak-updates/kmod-kvm

[root@wg-vm-s2 kmod-kvm]# ls

ksm.ko kvm-amd.ko kvm-intel.kokvm.ko

5.檢查物理主機虛擬化完成情況

# virsh list

Id Name State

----------------------------------

#如出現以上提示說明虛擬化被正確安裝

6.關閉防火牆和selinux

    由於防火牆和selinux會阻止libvirt為虛擬機創建網絡設備。

    關閉防火牆

# /etc/init.d/iptables stop

    關閉selinux

[root@test22~]# cat /etc/selinux/config

#This file controls the state of SELinux on the system.

#SELINUX= can take one of these three values:

#     enforcing - SELinux security policy isenforced.

#     permissive - SELinux prints warningsinstead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled    #更改為disabled

#SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes areprotected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted   

然后命令行執行:setenforce0

 

7.配置網絡橋接

# cat /etc/sysconfig/network-scripts/ifcfg-eth0

# Broadcom Corporation NetXtreme BCM5720 GigabitEthernet PCIe

DEVICE=eth0

HWADDR=90:B1:1C:2A:A4:40

ONBOOT=yes

BOOTPROTO=none

TYPE=Ethernet

BRIDGE=br0

#注意不要寫錯。

 

# cat /etc/sysconfig/network-scripts/ifcfg-br0

# Broadcom Corporation NetXtreme BCM5720 GigabitEthernet PCIe

DEVICE=br0

#HWADDR=90:B1:1C:2A:A4:40

ONBOOT=yes

BOOTPROTO=static

TYPE=Bridge

IPADDR=192.168.3.200

NETMASK=255.255.255.0

GATEWAY=192.168.3.254

 

配置完eth0 和br0 重啟網卡:serivce network restart

查看已有橋接:

# brctl show

bridge name bridge id STP enabled interfaces

br0 8000.90b11c2aa440 no eth0     (配置正確的橋接是有mac地址的)

br1 8000.90b11c2aa441 no eth1

錯誤橋接:

# brctl show

bridge name bridge id STP enabled interfaces

br0 8000.000000000000 no eth0

8.修改vnc 監聽端口

    # cd /etc/libvirt/

# ls

libvirtd.conf nwfilter qemu qemu.conf

# cp qemu.conf qemu.conf.panglu-$(date +%F)

# vi qemu.conf+12

11 #

12 # vnc_listen ="0.0.0.0" #把前面的#注釋去掉,開啟vnc 監聽

13

14

15 # Enable use of TLS encryption on the VNC server.This requires

16 # a VNC client which supports the VeNCryptprotocol extension.

17 # Examples include vinagre, virt-viewer,virt-manager and vencrypt

9.開啟相應的服務

# /etc/init.d/messagebusstart #linux ICP 服務

Starting system message bus:[ OK ]

 

       # /etc/init.d/libvirtd restart#啟動virbr0

libvirtd (pid 3665) is running...

添加到開機啟動

# chkconfig messagebus on

echo “/etc/init.d/libvirtdstart”>>/etc/rc.local

 

到此,kvm 服務端安裝完成。

 

三.安裝虛擬機

1.創建虛擬機磁盤目錄

#mkdir /data/vmdisk -p

2.創建iso文件目錄

#mkdir /iso

把光盤放入到光驅,dd 命令把iso 文件拷貝到/iso目錄下

# dd if=/dev/cdromof=/iso/centos5.iso

 

3.創建虛擬磁盤文件

    qemu-img create -f qcow2 -opreallocation=metadata  dev_5931.img 300G

    重要參數:-opreallocation=metadata 預分配磁盤,硬盤空間不會立即占用

    注意:ext3不支持此參數,ext4支持。

4.安裝虛擬機命令及參數

    virt-install --name=dev_5934_44 --ram 8192--vcpus=2 -f dev_5934_44.img  --cdrom../iso/CentOS-6.4-x86_64-bin-DVD1to2/CentOS-6.4-x86_64-bin-DVD1.iso   --graphics vnc,listen=0.0.0.0,port=5934, --force  --autostart

注意端口號設定值,用vnc連接時需要用。

5.接下來客戶端vnc去連接。

spacer.gif

#192.168.3.200 是宿主機IP,5900 是安裝命令指定的vnc 端口

##vnc viewer連接閃退解決方法

只需修改vnc option里面Advanced–>expert–>ColourLevel的值為“rgb222” or “full”即可。

 

 

四. 虛擬機硬件配置更改篇

 

1.解決kvm環境下可以使用shutdown命令讓虛擬機關機,但不生效。

    進入不能關機的虛擬機中:

[root@localhost ~]# yum -y  installacpid           ;安裝acpid服務

[root@localhost ~]# service acpid restart           ;啟動服務

[root@localhost ~]# chkconfig acpid on             ;加入開機啟動

通過以上步驟后就可以讓虛擬機響應shutdown 和reboot命令了

 

2.修改kvm中虛擬機的內存大小及cpu數量。

a.查看虛擬機

virsh # list --all

 Id    名稱                         狀態

----------------------------------------------------

 2     test_centos                    running

 4     qishi                          running

 13    qishi2                         running

 14    cloud_monitor_5921             running

 20    test22                         running

-     test33                         關閉

b.更改要修改的配置文件

[root@nfs ~]# virsh edittest22  ##注意vi直接編輯不生效

<domain type='kvm'>

  <name>test22</name>

 <uuid>eb342f67-e70c-194b-5291-e91010ed996f</uuid>

  <memory unit='KiB'>5120000</memory>

<currentMemory unit='KiB'>5120000</currentMemory>  #512000à為內存大小,單位為K 修改此數字,例如要調整為8G 則設置為8192000

  <vcpu placement='static'>4</vcpu> #4à為cpu數量,更改為5個則將4修改為5

  <os>

    <type arch='x86_64'machine='rhel6.5.0'>hvm</type>

    <boot dev='hd'/>

  </os>

    修改完保存à關閉虛擬機à啟動虛擬機(注意直接重啟不生效)

[root@nfs ~]# virsh  shutdown test22

Domain vm01 is being shutdown

[root@nfs ~]# virsh  start test22

檢查:

啟動后登錄虛擬機,查看內存及cpu,發現已經更改。

查看內存:# free -m

查看cpu數量 # cat/proc/cpuinfo

3.虛擬機網卡mac沖突的解決辦法:

        a.連接上虛擬機。

        b.關掉沖突主機。

         #ifdown eth0

        c.修改eth0的mac

#sbin/ifconfig eth0 hw ether 00:AA:BB:CC:11:22 ##-->分一個盡量不易出現的mac

d.修改eth0配置文件中的mac

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Hwaddr: 00:AA:BB:CC:11:22

e.重啟網卡

service network restart

f.我們用命令行更改的mac在當前生效,重啟后失效,所以需要加入到開機啟動。

echo “ifdown eth0”>>/etc/rc.local

echo “sbin/ifconfig eth0 hw ether 00:AA:BB:CC:11:22”

echo “ifup eth0”

 

好了,網卡mac沖突解決了!

 

4.給虛擬機增加硬盤。

    1、給當前磁盤擴容

        a.找到需要擴容的磁盤文件。

        [root@qishi_test qemu]# cd /data/VHOST/

[root@qishi_test VHOST]# ll

總用量 318393772

-rw-r--r-- 1 qemu qemu322171961344 6月  2 12:33 cloud_monitor_5921.img

-rw-r--r-- 1 root root  32212254720 5月  30 16:54 jia_qishi2.img

-rw-r--r-- 1 qemu qemu  64432963584 6月   2 12:33 test2.img

-rwxr-xr-x 1 root root  53695545344 6月   2 10:05 test33.img

-rw-r--r-- 1 qemu qemu  21474836480 5月  30 18:53 test_jia.img

        b.我們現在給test22增加10G空間,他的磁盤文件對應的test2.img。

        qemu-img resize test2 +10G

        c.關閉虛擬機test22à啟動虛擬機test22(注意:重啟不生效)

        檢查:

登陸虛擬機,fdisk -l 發現磁盤增加了10G的空間,我們可以對其進行分區掛載等操作了。

 

    2、給虛擬機添加一塊磁盤。

    a.創建文件硬盤的鏡像

    qemu-img create -f raw /disk/sdb6/c1d6.img 10G #指定路徑、名稱、及大小。

Formatting '/disk/sdb6/c1d6.img', fmt=raw size=10737418240

b.打開虛擬機列表

virsh # list --all

 Id    名稱                         狀態

----------------------------------------------------

 2     test_centos                    running

 4     qishi                          running

 13    qishi2                         running

 14    cloud_monitor_5921             running

 20    test22                         running

-     test33                         關閉

c.在此test22硬盤擴容

virsh # edit test22

#找到硬盤配置(原來的系統硬盤)

<disk type='file' device='disk'>

      <driver name='qemu'type='raw' cache='none'/>

      <sourcefile='/data/VHOST/test2.img'/>

      <target dev='hda' bus='ide'/>

      <address type='drive'controller='0' bus='0'target='0' unit='0'/>

 </disk>

#新加磁盤配置  

    <disk type='block'device='cdrom'>

      <driver name='qemu'type='raw'/>

      <target dev='hdc' bus='ide'/>

      <readonly/>

      <address type='drive'controller='0' bus='1'target='0' unit='0'/>

    </disk>

注意:dev 名稱設定不能一樣。 bus不能一樣。一般源為“0”則加一個數字+1,即1,2,3….

#保存退出

    d.關閉虛擬機à啟動虛擬機(注意:重啟不能生效)

[root@nfs ~]# virsh  shutdown test22

Domain vm01 is being shutdown

[root@nfs ~]# virsh  start test22

    檢查:

    虛擬機啟動后,登陸進去使用命令#fdisk -l 查看新加的磁盤。

 

   

 

五 centos 6.0 克隆虛擬機步驟

宿主機:192.168.3.100

模版機web-1:192.168.3.102

克隆機web-5:192.168.3.110

1) 關閉/暫停模版虛擬機進行克隆,(注意新克隆的虛擬磁盤文件的名字不能與模版機相同)

virt-clone -o web-1 -n web-5 -f /data/vmdisk/web-5.qcow2

2)然后手動更改xml 配置文件的vnc 端口。

vi /etc/libvirt/qemu/web-5.xml

3)重啟libvirtd 服務使更改的端口生效。

/etc/init.d/libvirtd restart

4)啟動新克隆的虛擬機

virsh start web-5

5)然后客戶端vnc 去連。

6)更改web-5 的eth0 的ip

7)重啟network服務

六拷貝xml 文件方式安裝新虛擬機

安裝新虛機web-10

1)制作虛擬機鏡像

cd /data/vmdisk/

cp web-1.qcow2web-10.qcow2

2)創建xml 文件

Cd/etc/libvirt/qemu

cp web-1.xmlweb-10.xml

修改相應的參數

uuid mac vnc 硬盤文件位置 虛擬機名字

uuid:隨意更改,保證唯一

mac:隨意更改,保證唯一

vnc:指定端口號,別和其他虛擬機沖突

虛擬磁盤文件位置:/data/vmdisk/web-10.qcow2

#<sourcefile='/data/vmdisk/web-10.qcow2'/>

虛擬機名字:web-10

vi web-10.xml

:%S/web-1/web-10/g

3)創建虛擬機

virsh defineweb-10.xml

4)啟動虛擬機

virsh start web-10

七 設置虛擬機自啟動

#virsh autostart 虛擬機名(例如web-1)

在/etc/libvirt/qemu/network/autostart目錄下會出現 web-1.xml

此時,如果重啟宿主機,web-1 虛擬機是不會自動啟動的,需要重啟libvirtd 服務

所以記得把libvirtd 服務設置成開機自啟動,這樣宿主機重啟,虛擬機就會自啟動。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM