Centos6.5装KVM虚拟机

一、检查环境

1、系统要求:
处理器需求:需要一台可以运行最新linux内核的Intel处理器(含VT虚拟化技术)或AMD处理器(含SVM安全虚拟机技术的AMD处理器,也叫AMD-V)。

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

2、检查CPU:

[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。

有的新手亲,输入这个没有任何反应,那你注意一下你的虚拟机是否开启虚拟化

Centos6.5装KVM虚拟机_第1张图片

OK!我的有vmx,表示它支持虚拟化

二、更新系统

$ yum update
$ yum upgrade

三、安装KVM

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

禁用防火墙

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

重启后确认libvirtd是否正常启动

[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"

四、配置网络桥接

1、 安装tunctl:

$ yum install -y tunctl

2、禁用网络管理器:

$ chkconfig NetworkManager off  ##和桥接有冲突,要关闭
$ service NetworkManager stop

3、修改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信息,实际上数据发送还是通过本机的物理网卡。

4、重启网络

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

5、查看桥接网络

[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时使用。

五、安装vnc

$ yum install vnc-server tigervnc -y
$ vncpasswd
Password:
Verify://这个是重复一遍密码的意思

六、使用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

然后进入虚拟机显示界面,打开终端,执行

Centos6.5装KVM虚拟机_第2张图片

[root@laks ~]# vncviewer 10.0.0.4:5920

Centos6.5装KVM虚拟机_第3张图片

输入密码后将出现虚拟机安装引导,是图形界面的,在此不做赘述

如果安装的不好,你想要删除某个虚拟机,执行

$ 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' 来查看可用命令行选项的完整列表
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。

重复上面动作,安装虚拟机

七、查看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系统建立完成。

八、一些常用操作

1、可以通过virt-viewer查看安装状态:

$ virt-viewer name

2、使用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进程信息

九、其他问题
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@vfeelit qemu]# virsh autostart Winxp
5、克隆KVM虚拟机:
[root@vfeelit ~]# virt-clone -o Winxp -n winxpclong -f /var/lib/libvirt/images/winxpclong.img
(-o 原始客体的名称,-n新客户端的名称,-f作为新客户端磁盘映像的新文件)
6、虚拟机意外关机报下述错误:
[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 (还原时不要指定虚拟机名称)


你可能感兴趣的:(Centos6.5装KVM虚拟机)