`

<转>[Linux 虚拟化] Linux 中使用 KVM

 
阅读更多
听讲XEN很快就要从LINUX内核中去掉,redhat和Ubuntu也大力的在推广KVM,所以在Ubuntu下整了一下KVM,相当容易使用,基本比Vmware还要容易,但性能好上很多倍,因为他是半虚拟的,很大程序上可以直接使用真实的硬件.
RedHat 红帽CTO Brian Steven在一次记者招待会说:“我们致力于Xen,RHEL 5有10年的生命周期,因此会有一个较大的交叉过渡.我们将在Red Hat 6中全面使用KVM,但KVM目前已经准备就绪,完全可以正式投入到数据中心和云中,不用再等待了!”

KVM要使用2.6.20以上的内核才行.Ubuntu到是不用担心,它基本一直使用的是最新的内核.

需要关心一点就是,你的硬件,CPU是不是支持半虚拟(VT/AMD-V),使用下面的命令可以查看是否支持

1
grep -E '(vmx|svm)'   /proc/cpuinfo

  在ubuntu中安装KVM

我原来以为KVM很难装,没想到现在容易成这样了.太方便了

1
sudo apt-get install kvm libvirt-bin ubuntu-vm-builder  bridge-utils kvm-pxe uml-utilities
安装KVM在ubuntu中的GUI管理软件,象我,拿ubuntu当桌面,就不使用命令…呵呵

1
sudo apt-get install virt-manager virt-viewer
需要设置一下网桥

1
sudo /etc/init.d/networking stop
我们来修改一下配置

1
sudo vim /etc/network/interfaces
静态IP和使用DHCP是不一样的,DHCP修改成下面这样

1
2
3
4
5
6
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_fd 5
bridge_maxwait 5

static:

01
02
03
04
05
06
07
08
09
10
11
auto br0
iface br0 inet static
address 192.168.0.xxx
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_stp off
bridge_fd 5
bridge_maxwait 5

完事后
进入ubuntu的“应用程序”-> “系统工具” -> “虚拟系统管理”就可以全GUI来玩kvm啦



RedHat Centos 安装 KVM
在 Centos 中安装 kvm 也一样很容易,

1. 安装 KVM 和 virtinst (一个创建 virtual machines 的工具 )

1
yum install kvm kmod-kvm qemu libvirt python-virtinst


2. 装完后记的重起,重起后检查模块是否有加载

1
2
3
$ lsmod | grep kvm
kvm_amd                50452  0
kvm                   109264  1 kvm_amd
也可以使用 virsh 来测试

1
virsh -c qemu:///system list


3. 安装桥接管理的工具

1
yum install bridge-utils


4. 安装 GUI 的管理软件

1
yum install virt-manager


KVM 的高级管理
KVM 现在相当成熟,在三个比较常用管理程序(我所知道的),大家平时玩玩的话,就用 GUI 来管理就好了,GUI 都会我就不详细写了:
virt-manager: 这个我最常用,是 GUI 的,需要 x windows 的支持.这个是 RedHat 开发,大家想了解可以到  http://virt- manager.et.redhat.com/ 上看看
virt-install:python 写的文字介面的管理 kvm 的程序,这个也是Red Hat 开发的哦.
ubuntu-vm-builder:这个是 Canonical (Ubuntu)开发的文字的管理程序.



virt-install 的基本使用
(1. 安装 virt-install 和 图形化的连接软件 virt-viewer



1
sudo apt-get install python-virtinst virt-viewer

详细使用可以 man virt-install



(2. virt-install 安装虚拟系统

例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ virt-install \
--connect qemu:///system \
--name= 虚拟机器的名字 \
--ram=设置内存的大小 [MB] \
--os-type=操作系统的类型 [linux ] \
--os-variant=操作系统的版本 [centos 5.4] \
--hvm [全虚拟化( hvm )与半虚拟化( paravirt  )选择其一] \
--paravirt  [全虚拟化( hvm )与半虚拟化( paravirt  )选择其一] \
--accelerate  [KVM 加速器] \
--cdrom=系统安装的CD路径 [*.iso] \
--file=虚拟硬盘的路径 [*.qcow2] \
--file-size=虚拟硬盘的大小 [GB] \
--bridge=br0 \
--vnc \
--noautoconsole  \
--debug
注意 Windows 只能用有全虚拟化( hvm )与半虚拟化( paravirt  )中选择 hvm.hvm 的意思是指硬件辅助的虚拟化,就是需要所谓的 VT 支持的.

建出来的虚拟机会在 /etc/libvirt/qemu/虚拟机器名称.xml 有个配置文件

(3. 使用 virt-install  启动虚拟的机器

进入 virsh 中,所有 virsh 的操作都要先进入这个

1
virsh
管理启动

1
2
3
virsh# start 虚拟机器名字
virsh# list  --all
virsh# quit


(4. 安装管理查看 virt-install 安装后的系统是否正常

1
virt-viewer --connect qemu+ssh://帐号@虚拟机实体主机IP    要连接的虚拟机器名字


virt-install 的其它使用
在原来的基础上复制一个新的虚拟机器

1
2
virt-clone  --connect=qemu:///system \
-o 旧的虚拟机器名称  -n 新的虚拟机器名称  -f  新的虚拟硬碟路径 [*.qcow2]
查看所有虚拟出的机器

1
virsh# list --all
dump 虚拟出的机器配置文件

1
virsh# dumpxml 虚拟出的机器名称  /tmp/虚拟出的机器配置文件 [*.xml]
使用现有的虚拟出的机器配置文件建立虚拟新机器

1
virsh# define  /etc/libvirt/qemu/虚拟出的机器配置文件 [*.xml]
移除虚拟出的机器

1
virsh# undefine 虚拟出的机器名称
关闭虚拟出的机器

1
virsh# shutdown 虚拟出的机器名称

关掉虚拟出的机器的电源

1
virsh# destory 虚拟出的机器名称
KVM的小技巧

1.提升KVM的网络和硬盘IO在linux中的性能
官方提供了一个叫kvm-guest-drivers-windows的网卡驱动很不错,虚拟机的启动参数那里加上model=virtio这个参数,界面中也是可以设置的.硬盘也有virtio的驱动,记的使用.在Virt-manager 中可以选择 virtio disk.获得高性能的网络和磁盘操作
virtio的网卡驱动的地址: http://sourceforge.net/project/showfiles.php?group_id=180599&package_id=267943
virtio的硬盘驱动的地址:http://www.linux-kvm.com/sites/default/files/viostor.iso

2.和真实机器中资料共享
这个是超级方便的,不需要象VBox搞个文件夹,只要在Host的设置中直接给真实的Dev的块设备直接设定到Guest的配置中,然后在进入kvm中的系统,直接mount就行

3.转换VMWare的image让KVM能使用
我们先要安装一个小软件virt-goodies.

1
sudo apt-get install virt-goodies
然后使用vmware2libvirt来给VMWare VM的基本资料vmx转成KVM可以读入的XML. 如

1
vmware2libvirt -f myvm.vmx > myvm.xml
在转VMWare VM的disk image, 使用qemu-img转成KVM能读的文件.

1
qemu-img convert -f vmdk myvm.vmdk -O qcow2 myvm.qcow2
可能还需要修改一下vmx转成的xml,

disk中的target dev,在VMWARE是ide(target dev=’hda’ bus=’ide’)可能要修改成scsi(target dev=’sda’ bus=’scsi’),我们看能不能找到ROOT就知道是不是用对了;
bridge mode, 给interface type=’network’修改成interface type=’bridge’, 而source network=’default’修改成source bridge=’br0′.

qcow选项,则会创建QCOW(写时复制)格式
修改后给VM的配置加入到libvirtd中.

1
2
virsh -c qemu:///system define myvm.xml
virsh -c qemu:///system list --all

FAQ:
1.如果在安装的时候见到"FATAL: Error inserting kvm_intel"
这是因为没有在BIOS中打开virtualization.需要进入BIOS中打开,然后断电重起.进入系统后打modprobe kvm-intel来加载模块



   先在虚拟机中打开windows自己的远程桌面,然后给用户设定密码,然后运行 rundll32 netplwiz.dll,UsersRunDll 启 用windows的自动登录.(这三步必不可少,否则rdesktop是无法连上winxp的)
   重新启动虚拟机,当听到winxp后台登录的声音后,即可用rdesktop远程登录:

rdesktop localhost:3389 -u *** -p *** -g 1280×700 -r sound:local





-u winxp的用户名, -p winxp的密码, -r sound:local  启用声音

现在可以看到桌面了吧.是不是灰常流畅呢?鼠标、键盘 都非常完美啊,剪贴板也可以公用哦.堪比装了tools的virtualbox,但是比后者占用的资源要少的多.



转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2010/02/22/ubutnu-kvm-vmware.html
分享到:
评论

相关推荐

    Linux KVM虚拟化架构

    Linux KVM 虚拟化架构 ...Linux KVM 虚拟化架构是基于 CPU 硬件支持的虚拟化技术,依赖 KVM 模块和 QEMU 工具,使用 libvirt 来屏蔽掉不同类型的虚拟化工具的差异,提供了 virsh 命令和 VMM 图形界面来管理虚拟机。

    linux下KVM虚拟化总结

    Linux 下 KVM 虚拟化环境部署和使用 KVM(Kernel-based Virtual Machine)是 Linux 内核虚拟化解决方案,提供了一个基于硬件的虚拟化环境。下面是 KVM 虚拟化环境的安装、搭建和使用方法: 一、环境要求 * 操作...

    Linux KVM虚拟化架构实战指南(带目录)

    Linux KVM虚拟化架构实战指南(带目录),作者:何坤源。

    linux 虚拟化kvm

    KVM(Kernel-based Virtual Machine)是一种开源的系统虚拟化模块,自 Linux 2.6.20 版本以后集成在 Linux 的主要发行版本中。KVM 使用 Linux 自身的调度器进行管理,因此相比 Xen,其核心源码很少。 KVM 的虚拟化...

    KVM虚拟化高级实战课程-网盘链接提取码下载 .txt

    KVM虚拟化高级课程包括了KVM课程概述,KVM虚拟网络高级特性,KVM共享存储的动态迁移,Linux HA群集体系结构,基于NFS的KVM群集构建,基于iSCSI的KVM群集构建,基于DRBD的KVM群集构建,P2V、V2V迁移,KVM嵌套虚拟化,...

    Linux_KVM虚拟化源代码分析文档

    KVM通过在Linux内核中集成虚拟化功能来实现,具体结构如下: - **KVMDriver**:作为Linux内核的一部分,主要负责虚拟机的创建、虚拟内存的分配、虚拟CPU寄存器的读写以及虚拟CPU的运行等任务。 - **QEMU**:经过...

    Linux内核虚拟化.pdf

    KVM(Kernel-based Virtual Machine)是 Linux 内核中的一种虚拟化引擎,它可以提供高效、可靠的虚拟化服务。KVM 使用基于硬件的虚拟化技术,可以直接使用硬件提供的虚拟化功能,从而提高虚拟化的性能和可靠性。 ...

    Linux KVM的虚拟化性能.pdf

    随着Linux内核的不断更新,比如2.6.22及以后的版本,KVM的性能将进一步提升,尤其是在比较AMD和Intel硬件虚拟化性能的环境中。因此,KVM成为了一个值得考虑的虚拟化解决方案,特别是在那些对性能敏感且不希望修改...

    虚拟化kvm虚拟

    KVM虚拟化技术 KVM(Kernel-based Virtual Machine)是一种开源的虚拟化技术,允许用户在物理机器上运行多个虚拟机。KVM虚拟化技术可以在满足一定条件的硬件上运行,包括支持虚拟化的CPU、内存和磁盘空间等。 1. ...

    kvm虚拟化系统linux模块

    linux本身已经有kvm模块,想尝试自己安装的可以将 kvm虚拟化系统模块重新在linux上集成

    虚拟化技术KVM.pdf

    - **集成性**:自Linux内核版本2.6.20起,KVM就已经集成到Linux内核中,这意味着用户无需安装额外的虚拟化管理程序。 - **硬件虚拟化支持**:KVM依赖于硬件虚拟化技术,如Intel VT-x和AMD-V,这些技术大大提升了...

    KVM虚拟化技术.ppt

    1. 嵌入到 Linux 正式内核:KVM 虚拟化技术直接嵌入到 Linux 内核中,提高了系统的兼容性和可靠性。 2. 代码级资源调用:KVM 虚拟化技术可以直接调用 Linux 内核的资源,提高系统的性能和效率。 3. 虚拟机即进程:...

    Linux内核虚拟化KVM详解

    KVM(Kernel-based Virtual Machine),即基于内核的虚拟机,是一种嵌入在Linux内核中的全虚拟化技术。KVM首次出现在Linux 2.6.20内核中,并且自那时以来,随着Linux内核的发展不断完善和成熟。它允许在一台物理机器...

    基于Redhat 8.2 KVM虚拟化环境的vGPU部署手册

    在当前信息技术领域中,NVIDIA虚拟计算服务器(NVIDIA Virtual Compute Server)与Redhat Enterprise Linux 8.2结合使用KVM(Kernel-based Virtual Machine)进行虚拟化部署已成为一个重要的话题。这种技术配置能够...

    发现Linux KVM.pdf

    KVM的出现改变了Linux虚拟化的风景。 虚拟化的应用 虚拟化的应用非常广泛,如服务器虚拟化、存储虚拟化、网络虚拟化等。虚拟化可以提高服务器的_utilization率,提高存储的灵活性和可扩展性,提高网络的安全性和...

    kvm创建Centos7.5虚机

    在IT行业中,虚拟化技术是不可或缺的一部分,而KVM(Kernel-based Virtual Machine)是Linux内核中的一个全虚拟化解决方案,允许用户在单个物理主机上运行多个独立的操作系统实例。本篇将深入探讨如何使用KVM创建一...

    linux 虚拟化 相关资料

    Linux虚拟化是现代数据中心和云计算环境中的核心技术,它允许在一个单一的物理服务器上运行多个独立的操作系统实例,每个实例称为一个虚拟机(VM)。这项技术极大地提高了硬件资源的利用率,降低了运营成本,并提供...

    浅析Linux虚拟化技术.pdf

    Linux虚拟化技术的实现方法有多种,如Xen、KVM、VMware等,它们都有其自己的优缺点和应用场景。选择合适的虚拟化技术和平台对企业的信息化建设和技术发展具有重要的意义。 Linux虚拟化技术是当今计算机及网络领域的...

    使用libvirt管理kvm虚拟机.txt

    其中,KVM(Kernel-based Virtual Machine)作为Linux内核的一个模块,为用户提供了全虚拟化的功能。而libvirt作为一个强大的管理工具,不仅支持KVM,还支持多种其他的虚拟化技术,如Xen和QEMU等。本文将详细介绍...

    NVIDIA-Linux-x86_64-470.63-vgpu-kvm.rar

    KVM是Linux内核中的一个模块,它使得Linux操作系统能够作为一款全功能的虚拟化平台。NVIDIA vGPU驱动与KVM结合,可以提供高性能的GPU虚拟化服务,让每个虚拟机都能享受到接近物理GPU的性能。 在安装过程中,首先...

Global site tag (gtag.js) - Google Analytics