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 (还原时不要指定虚拟机名称)

相关文章
相关标签/搜索