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
|
|
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 \ --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
|
-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,但是比后者占用的资源要少的多.
相关推荐
KVM(Kernel-based Virtual Machine)是一种开源的系统虚拟化模块,自 Linux 2.6.20 版本以后集成在 Linux 的主要发行版本中。KVM 使用 Linux 自身的调度器进行管理,因此相比 Xen,其核心源码很少。 KVM 的虚拟化...
在 Linux 中使用 KVM 硬件支持的最低限度的虚拟机监视器。 使用make构建,它将编译 VMM 并组装“BIOS”。 这将创建一个具有 16MB 内存的 VM,并将实模式 BIOS 加载到来宾内存中的 0xf0000,该内存也映射到 0xffff...
本文档主要介绍了Linux KVM的知识点,包括KVM的定义、虚拟化概念、完全虚拟化、准虚拟化、KVM的系统结构、KVM与Linux内核的关系等。 KVM的定义 KVM(Kernel-based Virtual Machine)是传统的Linux操作系统内核(v...
KVM(Kernel-based Virtual Machine)是Linux内核中的一个模块,允许在Linux系统上创建并运行虚拟机,而NVIDIA GRID 驱动则是为了让这些虚拟机能够充分利用NVIDIA GPU的硬件加速功能。 描述中的“vgpu驱动”进一步...
在KVM中,QEMU主要负责I/O模拟和其他设备的支持,而KVM专注于处理核心的CPU虚拟化任务。 **硬件需求** 要运行KVM,需要一个支持x86/x86-64架构的处理器,并带有AMD或Intel的虚拟化扩展。至少1GB的系统内存是必需的...
Linux环境下KVM虚拟化平台的构建
"Linux-KVM虚拟机GPU透传操作步骤" 一、KVM虚拟机GPU透传概述 KVM虚拟机GPU透传是指将物理机上的GPU设备分配给虚拟机使用,虚拟机可以直接访问和使用物理机上的GPU设备,从而提高虚拟机的计算能力和图形处理能力。...
KVM 是 Linux 的一个模块,可以使用 modprobe 加载 KVM 模块,但仅有 KVM 模块是不够的,因为用户无法直接控制内核模块去做事情,还需要一个用户空间的工具来控制 KVM。 KVM 使用 QEMU 作为用户空间的工具,QEMU 是...
在Linux系统下,基于KVM创建虚拟机时,网络配置是一项关键步骤,特别是涉及到网络网桥的设置。本文主要介绍了如何在Red Hat Enterprise 5.0环境下配置网桥,以便虚拟机可以顺利接入网络。 首先,理解网桥的概念至关...
Linux系统上安装基于KVM的WIN10虚拟机_WIN10_KVM
Linux 下 KVM 虚拟化环境部署和使用 KVM(Kernel-based Virtual Machine)是 Linux 内核虚拟化解决方案,提供了一个基于硬件的虚拟化环境。下面是 KVM 虚拟化环境的安装、搭建和使用方法: 一、环境要求 * 操作...
在KVM中,Guest OS的调度执行需要通过ioctl系统调用进入内核模式,在KVM Driver中获取当前物理CPU的引用。之后将Guest状态从VMCS中读出,并装入物理CPU中。执行VMLAUCH指令使得物理处理器进入非根操作环境,运行客户...
KVM首次出现在Linux 2.6.20内核中,并且自那时以来,随着Linux内核的发展不断完善和成熟。它允许在一台物理机器上运行多个独立的操作系统实例,每个实例都被视为一个虚拟机(VM)。KVM的引入标志着Linux内核虚拟化...
KVM是一个基于linux内核的虚拟机解决方案。本文介绍KVM的使用方法,以及注意要点。
KVM中的GuestOS调度执行依赖于硬件虚拟化技术的支持。当需要调度GuestOS执行时,QEMU通过ioctl系统调用进入内核模式。在内核模式下,KVMDriver会获取物理CPU的引用,并读取Guest状态到物理CPU中,随后执行VMLAUNCH...
Linux KVM on ARM64的讨论集中在ARM架构上如何实现虚拟化技术,尤其涉及KVM(Kernel-based Virtual Machine)在ARM64(64位ARM架构)上的应用和实现机制。ARM64是目前非常流行的一种处理器架构,特别是在移动设备、...
Linux KVM虚拟化架构实战指南(带目录),作者:何坤源。
Linux-KVM平台vGPU驱动,支持RTX6000/RTX8000/M60/A10/A16/A40等显卡,版本号:NVIDIA-GRID-Linux-KVM-525.60.12-525.60.13-527.41
本文将详细探讨NVIDIA-Linux-x86_64-470.63-vgpu-kvm.rar压缩包中的内容,以及如何在KVM(Kernel-based Virtual Machine)环境下安装和使用NVIDIA vGPU驱动。 NVIDIA vGPU驱动是NVIDIA针对其GPU硬件开发的一种虚拟...
KVM依赖于Linux内核中的特定功能。因此,确认当前Linux内核版本至关重要。可以通过命令 `uname -r` 查看内核版本。如果内核版本低于2.6.20,建议升级内核以确保KVM可以正常工作。 #### 二、KVM的安装 根据不同的...