rhel6 kvm完全版

RHEL6 kvm支持条件:

操作系统:64bit:  rhel-server-6.0-x86_64

处理器:cpu支持虚拟化
#cat /proc/cpuinfo | grep vmx
cat /proc/cpuinfo | grep smv

Svm:AMD basic virtualization support

Vmx:Intel basic virtualization support

如果服务器对kvm支持,则可以安装kvm模块虚拟化物理主机

一、在物理主机上安装RHEL6(安装过程略)

二、若要安装其他RPM包,可以先将YUM配置好

三、KVM要用的软件
kvm
模块
    #yum install qemu-kvm.x86_64
kvm
调试工具(可以不安装)
    #yum install qemu-kvm-tools.x86_64
python
组件,主要用来记录创建vm时的xml文件
    #yum install python-virtinst.noarch
qemu
组件,使用qemu命令来创建磁盘,启动虚拟机等(这个可能在安装时qemu-kvm.x86_64已安装)
    #yum install qemu-img.x86_64
网络支持工具
    #yum install bridge-utils.x86_64
虚拟机管理工具,使用virsh来管理虚拟机
    #yum install libvirt

图形界面管理虚拟机(对于远程的被管理主机,可以不安装,用于本地管理)
    #yum install virt-manager

重新启动
四、.检查kvm模块是否安装完成
    #lsmod | grep kvm
会显示两个模块
 kvm_intel/ kvm_amd
 kvm
检查物理主机虚拟化完成情况
 #virsh list
  Id Name                 State
----------------------------------
出现如上表明已装好了

五、网络配置:宿主服务器安装完后先要设定网络,libvirt中运行KVM网络有两种方法:网络地址转换(NAT)和桥接网络。网络地址转换是默认方法;在这里我选择bridge模式,即桥接模式

桥接模式需要手动设置
 rhel
的配置如下:
创建一个ifcfg-br0 文件路径/etc/sysconfig/network-scripts/ifcfg-br0
填写以下内容:
         DEVICE=br0
           TYPE=Bridge
           BOOTPROTO=static
           IPADDR=192.168.1.213
           NETMASK=255.255.255.0
           GATEWAY=192.168.1.10
           ONBOOT=yes
修改eth0的内容:/etc/sysconfig/network-scripts/ifcfg-eth0 成以下的形式:
           DEVICE=eth0
           ONBOOT=yes
           BRIDGE=br0
           NM_CONTROLLED=no
如果是双网卡或是多网卡,照此过程修改即可。然后重启物理机网络
 #service network restart

配置好后重启网络 如果一切无误的话 br0 会接替 eth0 ip

以上都准备好后就可以创建虚拟机了

通过virt-manager图形管理界面创建、管理本地或远程的KVM

安装virt-manager软件包

安装好后:应用程序――系统工具――虚拟系统管理器或在命令行输入virt-manager也可以打开虚拟机管理器

1、连接、管理已存的KVM

文件――添加连接加上主机IP

wKioL1NfsxqygDs4AAF5v1iIM-Q938.jpg

wKioL1Nfs23wDFCnAAH6-mFozMY581.jpg

1、新建虚拟机:

单击工具栏上的“创建新虚拟机”按钮

wKioL1Nfs6Hx-iCBAAH6xPSG12c147.jpg

其他过程略

配置虚拟机在宿主主机每次启动后自动启动

1、应用程序――系统工具――虚拟系统管理器

2、双击要设置的虚拟机

3、在“查看”spacer.gif菜单中选择“详情”

4、在“boot options”选项中勾选“start virtual machine on host boot up”选项

5、单击“应用”

6、修改/etc/sysconfig/libvirt-guests文件:ON_BOOT=ignore

kvm虚拟机克隆后网卡无法启动解决办法:

1 修改/etc/udev/rules.d/70-persistent-net.rules文件,删除第一个网卡记录,并将第二个的NAME="eth1"改为NAME="eth0"

2 如果在/etc/sysconfig/network-scripts/ifcfg-eth0中有配置网卡信息的话,如:HWADDR="00:0C:29:C8:1A:92",将其修改为和70-persistent-net.rules文件中的MAC一致。

3  重新启动系统。

二、

红冒系自带的kvm搭建虚拟机实战

20104月发布的RHEL 6.0 Beta版中 ,去掉了Xen,这也许是第一个不包含Xen Hypervisor的知名Linux发行版,之前有报道过Red Hat有可能会在RHEL 6.0中用KVM完全代替Xen,现在看来以前的消息一点不假。KVM 是指基于 Linux 内核的虚拟机(Kernel-based Virtual Machine)。增加 KVM Linux 内核是 Linux 发展的一个重要里程碑,这也是第一个整合到 Linux 主线内核的虚拟化技术。在 KVM 模型中,每一个虚拟机都是一个由 Linux 调度程序管理的标准进程,你可以在用户空间启动客户机操作系统。一个普通的 Linux 进程有两种运行模式:内核和用户。 KVM 增加了第三种模式:客户模式(有自己的内核和用户模式)

KVM 所使用的方法是通过简单地加载内核模块而将 Linux 内核转换为一个系统管理程序。这个内核模块导出了一个名为 /dev/kvm 的设备,它可以启用内核的客户模式(除了传统的内核模式和用户模式)。有了 /dev/kvm 设备,VM 使自己的地址空间独立于内核或运行着的任何其他 VM 的地址空间。设备树(/dev)中的设备对于所有用户空间进程来说都是通用的。但是每个打开 /dev/kvm 的进程看到的是不同的映射(为了支持 VM 间的隔离)KVM安装 KVM 之后,您可以在用户空间启动客户操作系统。每个客户操作系统都是主机操作系统(或系统管理程序)的一个单个进程。 图 1 提供了一个使用 KVM 进行虚拟化的视图。

wKiom1NftC6AY1sYAACtflpati0106.jpg

1 KVM 原理图

一、KVM 虚拟机的管理工具

   准确来说,KVM 仅仅是 Linux 内核的一个模块。管理和创建完整的 KVM 虚拟机,需要更多的辅助工具。QEMU-KVM:在 Linux 系统中,首先我们可以用 modprobe 命令加载 KVM 模块,如果用 RPM 安装 KVM 软件包,系统会在启动时自动加载模块。加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有 KVM 模块是远远不够的,因为用户无法直接控制内核模块去做事情,还必须有一个用户空间的工具。关于用户空间的工具,KVM 的开发者选择了已经成型的开源虚拟化软件 QEMUQEMU 是一个强大的虚拟化软件,它可以虚拟不同的 CPU 构架。比如说在 x86 CPU 上虚拟一个 Power CPU,并利用它编译出可运行在 Power 上的程序。KVM 使用了 QEMU 的基于 x86 的部分,并稍加改造,形成可控制 KVM 内核模块的用户空间工具 QEMU-KVM。所以 Linux 发行版中分为 内核部分的 KVM 内核模块和 QEMU-KVM 工具。这就是 KVM QEMU 的关系。 Libvirtvirshvirt-manager:尽管 QEMU-KVM 工具可以创建和管理 KVM 虚拟机,RedHat KVM 开发了更多的辅助工具,比如 libvirtlibguestfs 等。原因是 QEMU 工具效率不高,不易于使用。Libvirt 是一套提供了多种语言接口的 API,为各种虚拟化工具提供一套方便、可靠的编程接口,不仅支持 KVM,而且支持 Xen 等其他虚拟机。使用 libvirt,你只需要通过 libvirt 提供的函数连接到 KVM Xen 宿主机,便可以用同样的命令控制不同的虚拟机了。Libvirt 不仅提供了 API,还自带一套基于文本的管理虚拟机的命令 virsh,你可以通过使用 virsh 命令来使用 libvirt 的全部功能。但最终用户更渴望的是图形用户界面,这就是 virt-manager。他是一套用 python 编写的虚拟机管理图形界面,用户可以通过它直观地操作不同的虚拟机。Virt-manager 就是利用 libvirt API 实现的。

二、 安装配置KVM 相关软件

1 系统要求:

  处理器需求:需要一台可以运行最新linux内核的Intel处理器(VT虚拟化技术)AMD处理器(SVM安全虚拟机技术的AMD处理器, 也叫AMD-V)。可以使用如下命令检查:

# egrep "(vmx|svm)" color=always /proc/cpuinfo

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse

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

2 安装软件

  安装KVM模块、管理工具和libvirt (一个创建虚拟机的工 具),我们使用命令行安装:

#yum install kvm virt-manager libvirt

#/sbin/service libvirtd start

3 确定正确加载kvm模块

  运行命令 lsmod | grep kvm 检查 KVM 模块是否成功安装。如果结果类似于以下输出,那么 KVM 模块已成功安装:

# lsmod | grep kvm

kvm_amd 69416 1

kvm 226208 2 ksm,kvm_amd

4 检查KVM是否成功安装

virsh -c qemu:///system list

  将会显示如下结果:

# virsh -c qemu:///system list

Id Name State

  如果在这里显示的是一个错误的信息,说明有些东西出现了问题。

三、 使用virt-manager建立一个KVM虚拟机

virt-manager 是基于 libvirt 的图像化虚拟机管理软件,请注意不同的发行版上 virt-manager 的版本可能不同,图形界面和操作方法也可能不同。本文使用了红帽6企业版的 virt-manager-0.8.4-8。创建KVM虚拟机最简单的方法是通过virt-manager接口。从控制台窗口启动这个工具,从root身份输入virt-manager命令,点击file菜单的"新建"选项virt-manager接口界面如图2

wKioL1NftFazKtvGAADgAGup3yk235.jpg

2 virt-manager接口界面

virt-manager显示两种虚拟化方法:Qemu/KVM或者Xen,这里并选择Qemu/KVM作为hypervisor如图3

wKiom1NftKfwNqDAAAC40IZTKPw787.jpg

3 选择Qemu/KVM作为hypervisor

  红帽企业版 6.0相比上个版本简化了虚拟化配置步骤分成五步:

1 选择虚拟机名称和指定一种安装方法:通过网络安装服务器或者本地CD/DVD驱动包括本地ISO文件(这种方法更简单)

  另外新版本还支持网络启动和导入之前建立的虚拟机磁盘如图4

wKioL1NftJihKkdKAAE5eeoLXic721.jpg

4选择虚拟机名称和指定一种安装方法

2 输入本地ISO文件路径和文件名如图5

wKiom1NftOXhv06nAAE4Z3t8vAU123.jpg

5 输入本地ISO文件路径和文件名选择本地ISO文件

3设置虚拟机使用的内存容量和处理器数量如图6

wKioL1NftN-izuToAADOy1qKNNI646.jpg

6 设置虚拟机使用的内存容量和处理器数量

4配置虚拟机的存储方法。对于存储后端有两种选择:物理存储设备或者使用之前建立磁盘文件。如果出于简单测试,创建文件作为存储后端。当创建虚拟磁盘时,默认的10GB如图7

wKioL1NftQDjXmlpAAFABs4cV54812.jpg

7 对于简易安装,选择一个文件作为存储备份后端

5 网络配置,在这里选择NAT方式。下面最后可看到虚拟机信息的概况如图8

wKiom1NftWew90cUAAFvxhtMS9k057.jpg

8 虚拟机信息

  说明:"在安装前自定义配置"选项提供一些高级自定义配置。在最后窗口点击完成按钮后,安装将自动开启。过程跟平时安装普通操作系统一样,不再赘述,不久之后,你的第一台KVM虚拟机的客户机就启动并运行了。说明这里笔者在KVM 虚拟机中运行的是一个linux 发行版本BackTrackBackTrack是精简版Linux系统以及破解软件。可以利用其破解软件 来搜寻和破解无线网络的密码。运行界面如图9

wKiom1NftfWg9VLVAAHUKVfpw64689.jpg

9 KVM虚拟机的客户机

四、 使用virsh执行高级管理任务

virsh的学习曲线非常陡峭。但是另一种可选方式virt-manager的缺陷还很明显,virt-manager需要在系统内运行,这会浪费资源 并为别有目的的人提供额外的进攻点。virt-manager的另一大缺点是需要通过图形工作站运行远程接入的方式,才能对服务器上的虚拟机进行管理。而 virsh则可以通过命令行执行各种各样的管理任务。如先前所说virsh通过主命令和子命令管理每个虚拟机功能。要学习virsh很困难,因为有许多命 令。virsh通过主命令和子命令管理每个虚拟机功能。要查看所有命令,输入virsh help。你可能发现大量命令,不过每个命令都有帮助指南,只需要输入virsh help。例如使用virsh help uri,就可以看到所有关于virsh uri命令的帮助。不过一旦你获得一个很强的命令功能,就能获得收益。下面是virsh命令实例:

1创建一个名称是myWin7windows 7虚拟机

  使用命令:

# yum install virt-viewer

virt-install name myWin7 hvm ram 1024 disk path=/tmp/win7.img,size=10 network network:default vnc os-variant vista cdrom /dev/hda

Starting install...

Creating storage file... | 10.0 GB 00:00

Creating domain... | 0 B 00:00

Domain installation still in progress. Waiting for installation to complete.

  下面安装将自动开启。过程跟平时安装普通操作系统一样,不再赘述。运行界面如图10

wKioL1NfteiDHzGuAAHjGyIGPXo940.jpg

10 安装windows 7

(2)查看虚拟机

# virsh -c qemu:///system list

Id 名称 状态

1 myWin7 running

(3)关闭虚拟机

#virsh shutdown myWin7

(4)彻底摧毁一个虚拟机

#virsh destroy myWin7