开发者社区> 技术小阿哥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

CentOS 6.3部署KVM虚拟机 V1.0

简介:
+关注继续查看

 20104月发布的RHEL6.0版本中,去掉了XEN,这也许是第一个不包含Xen Hypervisor的知名linux发行版。KVM是指基于Linux内核的虚拟机(Kernel-base Virtual Machine),增加到Linux内核是Linux发展的一个重要里程碑,这也是第一个整合到Linux主线内核的虚拟化技术。在KVM模型中,每一个虚拟机都是一个由Linux调度程序管理的标准进程,你可以在用户空间启动客户机操作系统,一个普通的Linux进程有两种运行模式:内核和用户,KVM增加了第三种模式:客户模式(有自己的内核和用户模式)。

1KVM虚拟机的管理工具

准确的来说,KVM仅仅是Linux内核的一个模块,管理和创建完整的KVM虚拟机,需要更多的辅助工具。

QEMU-KVM:在Linux系统中,首先我们可以用modprobe命令加载KVM模块,如果用RPM安装KVM软件包,系统会在启动时自动加载模块,QEMU是一个强大的虚拟软件,它可以虚拟不同的构架

Virt-manager:尽管QEMU-KVM工具可以创建和管理KVM虚拟机,RedHat KVM开发了更多的辅助工具,比如 libvirt libguestfs等,原因是QEMU工具效率不高,不易于使用。

2、安装配置KVM相关软件

2.1系统要求:

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

[root@kvm ~]# cat /etc/redhat-release

CentOS release 6.3 (Final)

2.2检查CPU

[root@kvm ~]# egrep 'vmx|svm'   --color=always/proc/cpuinfo

如果输出的结果包含VMX,它是Intel处理器虚拟机技术标志:如果包含SVM,它是AMD处理器虚拟机技术的标志,如果你什么都没有得到,那应你的系统并没有支持虚拟化的处理,不能使用KVM,另处linux发行版本必须在64bit环境中才能使用KVM

3、安装centos 6.2 后下载163源配置文件

http://mirrors.163.com/.help/CentOS6-Base-163.repo

# cd /etc/yum.repos.d/  #进入源目录

# cp CentOS-Base.repo CentOS-Base.repo.bak #备份源文件

用下载的163源配置文件替换CentOS-Base.repo文件内容

# yum update 系统升级

如果不提示错误,CentOS-Base.repo文件中

gpgcheck=0

4、安装KVM

[root@kvm ~]#yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v

[root@kvm ~]#vi /etc/sysconfig/selinux

SELINUX=disabled

[root@kvm ~]#reboot

5、重启后确认libvirtd是否正常启动、重启。

[root@kvm ~]# /etc/init.d/libvirtd restart

Stopping libvirtd daemon:                               [FAILED]

Starting libvirtd daemon:                                [  OK  ]

6、检查KVM是否加载成功

显示结果如下表示kvm模块已经加载,如果没有输出信息,则表示没有加载成功:

[root@kvm yum.repos.d]# lsmod | grep kvm

kvm_intel              52570  6

kvm                   314739  1 kvm_intel

7、检查KVM是否成功安装

[root@kvm ~]# virsh  list   --all --all关闭的也会显示)

Id    名称                         状态

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

 1     Win7                           running

 2     RedHat                         running

8、各版本查询

[root@kvm ~]# kvm --version
QEMU PC emulator version 0.12.1 (qemu-kvm-0.12.1.2), Copyright (c) 2003-2008 FabriceBellard

[root@kvm ~]# virt-install  --version
0.600.0
[root@kvm ~]# virsh --version
0.9.10
9、修改qemu.conf配置

[root@kvm ~]#vi /etc/libvirt/qemu.conf

vnc_listen = "0.0.0.0"修改vnc监听端口

 
二、配置网络桥接

http://www.techotopia.com/index.php/Creating_an_RHEL_6_KVM_Networked_Bridge_Interface

已安装bridge-utils,添加修改配置文件来的更简单。以下是实际配置文件,eth0为物理网口,br0为桥接网口。

1、安装tunctl

# yum install -y tunctl

2、禁用网络管理器:

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

# service  NetworkManager stop

3、修改eth0为物理网口,br0为桥接网口配置文件:

[root@CY-S01 network-scripts]# cat ifcfg-br0

DEVICE="br0"

TYPE="Bridge"

ONBOOT="yes"

BOOTPROTO=static

IPADDR=192.168.50.190

PREFIX=24

GATEWAY=192.168.50.1

DNS1=8.8.8.8

DELAY=0 

 
[root@CY-S01 network-scripts]#cat ifcfg-eth0

DEVICE="eth0"

NM_CONTROLLED="yes"

ONBOOT=yes

TYPE=Ethernet

BRIDGE="br0"

BOOTPROTO=none

IPADDR=192.168.50.190

PREFIX=24

GATEWAY=192.168.50.1

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth0"

UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03

DNS1=202.106.46.151

HWADDR=00:1E:67:07:EC:30

[root@CY-S01 network-scripts]#

4、最后重启网络

[root@CY-S01 network-scripts]# service network restart

5、查看桥接网络

[root@CY-S01 network-scripts]# brctl show

bridge name     bridge id               STP enabled     interfaces

br0             8000.0025901b11a2       no              eth0

                                                        vnet0

virbr0          8000.525400aba808       yes             virbr0-nic

 
三、使用virt-install 工具安装guest 系统

[root@kvm /]# virt-install --name=qxm  --ram 1024 --vcpus=2

> --disk path=/var/lib/libvirt/images/qxm.img,size=20  --accelerate

> --cdrom /mnt/cn_windows_7_ultimate_with_sp1_x86_dvd_u_677408.iso

> --graphics vnc,password=123456,port=5920,  --network bridge=br0  --force  --autostart

使用virt-install 工具,工具自动创建磁盘,默认是raw格式。

[root@CY-S01 vms]# qemu-img info centos.img
image: centos.img
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 1.4G
1
、可以通过virt-viewer查看安装状态:
[root@kvm virtual]# virt-viewer name

2、使用virt-install 工具安装虚拟机后,在目录/etc/libvirt/qemu/下生成
[root@kvm virtual]# virt-viewer name

2、使用virt-install 工具安装虚拟机后,在目录/etc/libvirt/qemu/下生成xml 配置文件。

[root@kvm ~]# cd /etc/libvirt/qemu
[root@kvm ~]# cat centos.xml
<domain type='kvm'>                                 
虚拟机类型
  <name>centos</name>                             
虚拟机名称
  <uuid>54da30ed-150d-514e-9803-4dc01bd50488</uuid>      uuid
唯一标示
  <memory unit='KiB'>1048576</memory>             
指定虚拟机内存大小,给出了单位
   <vcpu placement='static'>2</vcpu>           
虚拟机占用虚拟cpu个数,这里只物理cpu

的核,给的多。占用的物理资源越充裕

  <os>
    <type arch='x86_64' machine='rhel6.3.0'>hvm</type>         
指定虚拟系统架构
    <boot dev='hd'/>                                                  
启动类型,从硬盘启动
  </os>
   <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>    
驱动程序,同上,使用的是qemu-kvm
    <disk type='file' device='disk'>                                         
指定磁盘类型
      <driver name='qemu' type='raw' cache='none'/>                    
指定磁盘格式,这里是raw,也支持qcow2.
      <source file='/home/vms/centos.img'/>                              img
文件路径
      <target dev='hda' bus='ide'/>                              
磁盘文件标示,驱动类型
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
       <interface type='bridge'>
      <mac address='52:54:00:11:57:e6'/>                  
自动生成,可以手动指定。
      <source bridge='br0'/>                                  
桥接到哪一个接口
    </domain>
3
、使用virsh工具管理生成的虚拟机

A[root@kvm ~]# virsh start centos            启动虚拟机 reboot  start  shutdown

B[root@kvm ~]# virsh list                      列出当前运行的虚拟机
Id    Name                           State
----------------------------------------------------
1     centos                         running
3     centos6332                     running
C
[root@kvm ~]# ll  /var/lib/libvirt/qemu

total 12
srwxr-xr-x 1 root root    0 Aug 22 09:53 centos.monitor

这里的文件,是libvirtd在重启后,虚拟机也随着自动重启。

D动态查询kvm资源占用情况,每一台VM,对应一个qemu-kvm进程

[root@CY-S01 vms]# top -d 1 | grep kvm


4
、截取的kvm进程信息

[root@kvm ~]# ps -aux | grep  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@kvm qemu]# virsh autostart Winxp

5、克隆KVM虚拟机:

[root@kvm ~]# virt-clone -o Winxp -n winxpclong -f /var/lib/libvirt/images/winxpclong.img

-o  原始客体的名称,-n新客户端的名称,-f作为新客户端磁盘映像的新文件)

6、虚拟机意外关机报下述错误:

[root@kvm 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@kvm images]# virsh  save  --bypass-cache RedHat  /var/lib/libvirt/images/test.img  --running

上面这个命令将RedHat的当前状态保存到/opt/vm2_save文件中,这个文件我看了一下,597M.

--running参数表示下次restore回来的时候能够自动启动RedHat

这个命令会导致RedHat被关闭。

 

现在还原:必须先关闭虚拟机

[root@kvm images]# virsh shutdown RedHat

[root@kvm images]# virsh restore /var/lib/libvirt/images/test.img --bypass-cache --running (还原时不要指定虚拟机名称)



本文转自 freeterman 51CTO博客,原文链接:http://blog.51cto.com/myunix/1118963,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
CentOS在虚拟机的安装
CentOS在虚拟机的安装
71 0
虚拟机安装CentOS
虚拟机安装CentOS详细教程
930 0
CentOS7安装VMware Tools
CentOS7安装VMware Tools 安装依赖包[root@localhost ~]# yum -y install perl gcc make kernel-headers kernel-devel 加载vmware tools 到CentOS7光驱CD-ROM点击菜单 虚拟机 ——> 安装VMware Tools(T).
3461 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
3D/AR技术在新零售商业场景中的应用
立即下载
新零售时代, 特步的供应链转型升级之路
立即下载
ECS系统指南之Linux系统诊断
立即下载