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增加了第三种模式:客户模式(有自己的内核和用户模式)。

1 KVM 虚拟机的管理工具

准确的来说, 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,如需转载请自行联系原作者
相关文章
|
21天前
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
|
1月前
|
关系型数据库 MySQL Linux
通过虚拟机进行安装Centos7.0并且安装MySQL
通过虚拟机进行安装Centos7.0并且安装MySQL
42 0
|
2月前
|
Linux KVM 数据库
服务器数据恢复—服务器误删除KVM虚拟机数据恢复案例
服务器数据恢复环境: 一台服务器安装Linux操作系统+EXT4文件系统。服务器上运行数台KVM虚拟机,每台虚拟机包含一个qcow2格式的磁盘文件和一个raw格式的磁盘文件。 服务器故障: 工作人员操作失误删除了服务器上的3台KVM虚拟机,虚拟机中运行数据库,需恢复误删除虚拟机中raw格式的磁盘文件。
服务器数据恢复—服务器误删除KVM虚拟机数据恢复案例
|
2月前
|
关系型数据库 MySQL Linux
一次虚拟机centos7系统崩溃恢复记录
一次虚拟机centos7系统崩溃恢复记录
99 0
|
21天前
|
关系型数据库 MySQL Linux
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
|
21天前
|
Linux
部署09--虚拟机快照,我们无法避免损坏Linux操作系统 ,如果重新装一下就太过麻烦,推荐在关机下制作快照,关机制作效率好,机房要靠近地址,动不动崩溃
部署09--虚拟机快照,我们无法避免损坏Linux操作系统 ,如果重新装一下就太过麻烦,推荐在关机下制作快照,关机制作效率好,机房要靠近地址,动不动崩溃
|
21天前
|
Linux 虚拟化
部署04-ncpa.cpl 虚拟机介绍,什么是虚拟机,怎样使用虚拟机,安装VMWARE,WorkStation,VMWARE这款软件是收费软件,可以在一个月期间进行使用,成功看VMWARE高级网络设置
部署04-ncpa.cpl 虚拟机介绍,什么是虚拟机,怎样使用虚拟机,安装VMWARE,WorkStation,VMWARE这款软件是收费软件,可以在一个月期间进行使用,成功看VMWARE高级网络设置
|
1月前
|
Java Linux
IDEA远程调试Centos部署的jar包
IDEA远程调试Centos部署的jar包
25 0
|
1月前
|
Java Linux
杨校老师课堂之CentOS7部署开发环境Jdk1.8【Linux】
杨校老师课堂之CentOS7部署开发环境Jdk1.8【Linux】
34 0
|
2月前
|
Shell Linux 应用服务中间件
centos系统内容器部署服务访问不到是因为run后面加了bash
centos系统内容器部署服务访问不到是因为run后面加了bash