Centos6.5裝KVM虛擬機

1、檢查環境java

一、系統要求:
處理器需求:須要一臺能夠運行最新linux內核的Intel處理器(含VT虛擬化技術)或AMD處理器(含SVM安全虛擬機技術的AMD處理器,也叫AMD-V)。python

[root@laks ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)

二、檢查CPU:linux

[root@laks ~]# egrep 'vmx|svm' /proc/cpuinfo
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush 
dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc up arch_perfmon pebs bts 
xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 fma cx16 
pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer xsave avx f16c rdrand hypervisor 
lahf_lm abm 3dnowprefetch ida arat epb xsaveopt pln pts dts tpr_shadow vnmi ept vpid fsgsbase 
bmi1 avx2 smep bmi2 invpcid

若是輸出的結果包含VMX,它是Intel處理器虛擬機技術標誌:若是包含SVM,它是AMD處理器虛擬機技術的標誌,若是你什麼都沒有獲得,那應你的系統並無支持虛擬化的處理,不能使用KVM,另處linux發行版本必須在64bit環境中才能使用KVM。centos

有的新手親,輸入這個沒有任何反應,那你注意一下你的虛擬機是否開啓虛擬化api

OK!個人有vmx,表示它支持虛擬化安全

2、更新系統網絡

$ yum update
$ yum upgrade

3、安裝KVMapp

$ yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v

禁用防火牆dom

[root@laks ~]# vi /etc/sysconfig/selinux
SELINUX=disabled
[root@laks ~]# reboot
重啓

重啓後確認libvirtd是否正常啓動ide

[root@laks ~]# /etc/init.d/libvirtd restart
正在關閉 libvirtd 守護進程:                               [肯定]
啓動 libvirtd 守護進程:2015-12-17 07:53:45.880+0000: 2791: info : libvirt version: 0.10.2, package: 54.el6_7.3 (CentOS BuildSystem <http://bugs.centos.org>, 2015-12-15-15:28:08, c6b8.bsys.dev.centos.org)
2015-12-17 07:53:45.880+0000: 2791: warning : virGetHostname:2279 : getaddrinfo failed for 'laks': 域名解析暫時失敗
                                                           [肯定]

檢查KVM是否加載成功

顯示結果以下表示kvm模塊已經加載,若是沒有輸出信息,則表示沒有加載成功:

[root@laks ~]# lsmod | grep kvm
kvm_intel              55656  0 
kvm                   345460  1 kvm_intel

檢查KVM是否成功安裝

[root@laks ~]# virsh list --all
 Id    名稱                         狀態
----------------------------------------------------

各版本查詢

[root@laks ~]# virt-install --version
0.600.0
[root@laks ~]#  virsh --version
0.10.2

修改qemu.conf配置

[root@laks ~]# vi /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"

4、配置網絡橋接

一、 安裝tunctl:

$ yum install -y tunctl

二、禁用網絡管理器:

$ chkconfig NetworkManager off  ##和橋接有衝突,要關閉
$ service NetworkManager stop

三、修改eth0爲物理網口,br0爲橋接網口配置文件:

[root@laks ~]# cd /etc/sysconfig/network-scripts/
[root@laks network-scripts]# cp ifcfg-eth0 ifcfg-br0
[root@laks network-scripts]# cat ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPV6INIT=no
ONBOOT=yes
IPADDR=10.0.0.4
NETMASK=255.255.255.0
GATEWAY=10.0.0.2
DNS1=8.8.8.8
DELAY=0
[root@laks network-scripts]# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
BRIDGE=br0
BOOTPROTO=none
IPV6INIT=no
ONBOOT=yes

附加說明:這裏配置成橋接方式,實際上本機的數據包發送是經過br0發送的,br0的TYPE是Bridge,其它的信息跟配置一個物理網卡同樣,本機的 eth0經過橋接到br0(經過BRIDGE指定)進行通訊,它根本不須要配置IP信息,實際上數據發送仍是經過本機的物理網卡。

四、重啓網絡

[root@laks network-scripts]# service network restart

五、查看橋接網絡

[root@laks network-scripts]# brctl show
bridge name    bridge id        STP enabled    interfaces
br0            8000.000c29b3f99b    no         eth0
pan0           8000.000000000000    no        
virbr0         8000.5254003d8618    yes        virbr0-nic

接口eth0經過br0進行橋接。birbr0-nic經過virbr0進行橋接,這個是默認的設置,當使用NAT時使用。

5、安裝vnc

$ yum install vnc-server tigervnc -y
$ vncpasswd
Password:
Verify://這個是重複一遍密碼的意思

6、使用virt-install 工具安裝guest 系統

$ virt-install --name=centos64 --ram 1024 --vcpus=2 --disk path=/var/lib/libvirt/images/centos64.img,size=10 --accelerate --cdrom /mnt/CentOS64.iso --graphics vnc,password=123456,port=5920 --network bridge=br0 --force --autostart

開始安裝......
建立域......                                                                                                 |    0 B     00:00     
沒法打開顯示:
運行 'virt-viewer --help' 來查看可用命令行選項的完整列表
域安裝仍在進行。您能夠從新鏈接
到控制檯以便完成安裝進程。

查看啓動的虛擬機

[root@laks ~]# virsh list
 Id    名稱                         狀態
----------------------------------------------------
 1     centos64                       running

而後進入虛擬機顯示界面,打開終端,執行


[root@laks ~]# vncviewer 10.0.0.4:5920

輸入密碼後將出現虛擬機安裝引導,是圖形界面的,在此不作贅述

若是安裝的很差,你想要刪除某個虛擬機,執行

$ virsh destroy centos64
$ virsh undefine centos64

這就將這個虛擬機刪除了

若是想自定義安裝虛擬機的安裝地址,以下操做

$ mkdir -p /kvm/images
[root@laks images]# qemu-img create -f qcow2 -o preallocation=metadata /kvm/images/centos.qcow2 10G
Formatting '/kvm/images/centos.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 preallocation='metadata'

在/kvm/images下安裝虛擬機

$ virt-install --name=centos64 --ram 1024 --vcpus=2 -f /kvm/images/centos.qcow2 --cdrom /mnt/CentOS64.iso --graphics vnc,password=123456,port=5920 --network bridge=br0 --force --autostart

開始安裝......
建立域......                                                                                                                                                                                                                                        |    0 B     00:00     
沒法打開顯示:
運行 'virt-viewer --help' 來查看可用命令行選項的完整列表
域安裝仍在進行。您能夠從新鏈接
到控制檯以便完成安裝進程。

重複上面動做,安裝虛擬機

7、查看guest 系統

當咱們安裝完成後,guest系統進行重啓,個人電腦不知道爲何沒有重啓起來,經過virsh list查看,發現虛擬機沒有了,查看/etc/libvirt/qemu,發現有centos64.xml,說明虛擬機還在,我想應該是沒有啓動起來,因此執行

[root@laks qemu]# virsh start centos64
域 centos64 已開始
[root@laks qemu]# virsh list
 Id    名稱                         狀態
----------------------------------------------------
 2     centos64                       running

OK!再次在guest系統中進行鏈接

$ vncviewer 10.0.0.4:5920

OK!成功看到登陸界面了,自此,guest系統創建完成。

8、一些經常使用操做

一、能夠經過virt-viewer查看安裝狀態:

$ virt-viewer name

二、使用virt-install 工具安裝虛擬機後,在目錄/etc/libvirt/qemu/下生成xml 配置文件。

$ cd /etc/libvirt/qemu
$ cat centos64.xml
<!--
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 centos64
or other application using the libvirt API.
-->

<domain type='kvm'>
  <name>centos64</name>
  <uuid>fa518652-d19a-040e-3544-54cfd8c33c28</uuid>
  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <os>
    <type arch='x86_64' machine='rhel6.6.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='/kvm/images/centos.qcow2'/>
      <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>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/>
    </controller>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:d2:8d:4f'/>
      <source bridge='br0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='5920' autoport='no' passwd='123456'/>
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
</domain>

啓動虛擬機

$ virsh start centos64            啓動虛擬機 reboot  start  shutdown
$ virsh list                      列出當前運行的虛擬機
$ setenforce 0                    關閉防火牆
[root@laks qemu]#  ll  /var/lib/libvirt/qemu
總用量 12
srwxr-xr-x 1 qemu qemu    0 12月 18 11:44 centos64.monitor
drwxr-xr-x 2 root root 4096 12月 17 15:52 dump
drwxr-xr-x 2 qemu qemu 4096 12月 17 15:52 save
drwxr-xr-x 2 qemu qemu 4096 12月 17 15:52 snapshot
##這裏的文件,是libvirtd在重啓後,虛擬機也隨着自動重啓。
[root@laks ~]# top -d 1 | grep kvm
 36714 qemu      20   0 1453m 461m 5628 S  2.0 47.1   2:34.44 qemu-kvm                                                                                                                                                                                                        
 36714 qemu      20   0 1453m 461m 5628 S  3.0 47.1   2:34.47 qemu-kvm                                                                                                                                                                                                        
 36714 qemu      20   0 1453m 461m 5628 S  3.0 47.1   2:34.50 qemu-kvm
 ##動態查詢kvm資源佔用狀況,每一臺VM,對應一個qemu-kvm進程
[root@laks ~]# ps -aux | grep kvm
## 截取的kvm進程信息

9、其餘問題
一、圖形化配置:從菜單中啓動,或者運行virt-manager進入圖形管理界面,比較簡單,不過img的位置須要注意一下,kvm安裝後會有一個默認位置,不注意的話容易佔滿空間。或者直接硬盤分區時單獨給/var分一個區。
二、虛擬機從新配置:
虛擬機的配置文件保存在/etc/libvirt/qemu目錄下,擴展名是xml。修改相應的文件便可從新配置虛擬機。
三、虛擬機備份及恢復:
備份:拷貝/etc/libvirt/qemu目錄下的xml配置文件,以及xml中設置的img文件。
恢復:進入virsh,執行define 目錄下的xml文件路徑
virsh # define /etc/libvirt/qemu/winxp.xml
四、開機自動啓動虛擬機:
[root@vfeelit qemu]# virsh autostart Winxp
五、克隆KVM虛擬機:
[root@vfeelit ~]# virt-clone -o Winxp -n winxpclong -f /var/lib/libvirt/images/winxpclong.img
(-o 原始客體的名稱,-n新客戶端的名稱,-f做爲新客戶端磁盤映像的新文件)
六、虛擬機意外關機報下述錯誤:
[root@vfeelit qemu]# virsh start winxp
錯誤:開始域 winxp 失敗
錯誤:Unable to read from monitor: Connection reset by peer
解決方法:virsh managedsave-remove winxp

Virsh語法參考:

Autostart                         自動開始一個域
Create                            從一個 XML 文件建立一個域
Define                            從一個 XML 文件定義(但不開始)一個域
edit                              編輯某個域的 XML 配置
shutdown                          關閉一個域
start                             開始一個(之前定義的)非活躍的域
reboot                            從新啓動一個域
suspend                           掛起一個域
resume                            從新恢復一個域
vncdisplay                        vnc 顯示

使用save來備份當前虛擬機的狀態:
[root@vfeelit images]# virsh save –bypass-cache RedHat /var/lib/libvirt/images/test.img –running
上面這個命令將RedHat的當前狀態保存到/opt/vm2_save文件中。–running參數表示下次restore回來的時候可以自動啓動RedHat。
這個命令會致使RedHat被關閉。

如今還原:必須先關閉虛擬機[root@vfeelit images]# virsh shutdown RedHat[root@vfeelit images]# virsh restore /var/lib/libvirt/images/test.img –bypass-cache –running (還原時不要指定虛擬機名稱)

相關文章
相關標籤/搜索