听讲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,但是比后者占用的资源要少的多.

Linux 中使用 KVM相关推荐

  1. linux中kvm配置文件,如何在linux中通过kvm安装虚拟机

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 在centOS中通过kvm安装虚拟机 环境搭建 虚拟机安装 按照常规步骤安装即可,唯一需要注意的点是需要在cpu选项处, ...

  2. linux 中添加kvm虚拟化,一文告诉你Linux如何配置KVM虚拟化--安装篇

    KVM全称"Kernel-based Virtual Machine",即基于内核的虚拟机,在linux内启用kvm需要硬件,内核和软件(qemu)支持,这篇文章教你如何配置并安装 ...

  3. linux 中添加kvm虚拟化,在 Centos7 的KVM上启用嵌套虚拟化

    嵌套虚拟化意味着在虚拟机内配置虚拟化环境.换句话说,我们可以说嵌套虚拟化是虚拟机管理程序hypervisor的一个特性,它允许我们通过虚拟化管理程序(宿主机)的硬件加速在虚拟服务器内安装和运行虚拟机. ...

  4. linux重启kvm服务命令,linux中kvm的安装及快照管理

    一.kvm的安装及状态查看 1.安装软件 yum -y install kvm virt-manager libvirt 2.启动libvirtd 报错,升级device-mapper-libs yu ...

  5. linux搭建虚拟化平台报告,CentOS 7中搭建KVM虚拟化平台的方法步骤

    什么是虚拟化 虚拟化就是把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,并且允许1台物理机上同时运行多个操作系统,以实现资源利用率最大化和灵活管理的一项技术. 虚拟化 ...

  6. 在LINUX系统中安装KVM虚拟化

    在LINUX系统中安装KVM虚拟化 首先CPU要支持虚拟化(Intel是vmx,AMD是svm) [root@localhost ~]# egrep '(vmx|svm)' --color /proc ...

  7. openstack的qcow2镜像制作、linux系统中安装kvm虚拟机并导出为qcow2虚拟机、virt-manager制作qocw2镜像和转为raw格式——2.6w字超详细说明所有流程。

    文章目录 说明 环境准备 虚拟机中安装kvm虚拟机 1.确保支持cpu虚拟化 2.安装qemu-kvm.libvirt.virt-install包和权限调整 3.开启libvirtd服务病开机自启 4 ...

  8. Linux中mod相关的命令 内核模块化 mod相关命令都是用来动态加载内核模块/驱动程序模块...

    Linux中mod相关的命令 内核模块化   mod相关命令都是用来动态加载内核模块/驱动程序模块 http://baike.baidu.com/link?url=lxiKxFvYm-UfJIxMjz ...

  9. linux 查找py文件命令_在 Linux 中如何从命令行查找 VirtualBox 版本

    如果你想知道如何在 Linux 中从命令行查找 VirtualBox 版本,可以采用以下几种方法. -- Sk(作者) 我使用 Oracle VirtualBox 和 KVM 虚拟化程序 测试不同的 ...

最新文章

  1. 你离距离算法只差零点几毫米!
  2. 半世纪全球顶级学者迁移图(附视频、亿级学术信息)| 数据院科技大数据研究中心发布
  3. Windchill的web中的Spring
  4. linux文件cache的框框架架以及相关的数据结构
  5. 项目实战丨某高校校园网络升级改造方案
  6. TCP穿透NAT的C++版
  7. 公众平台模板消息所在行业_第三方工具微信公众号模板消息群发如何操作?
  8. 问题贴 jQuery插件nicescroll问题
  9. Excel技巧——从身份证号码里提取员工性别
  10. Python安装shapely包出现WindowsError: [Error 126]解决方案
  11. html设置为壁纸win10,Win10让桌面壁纸自动换的设置方法(图文教程)
  12. c语言else if函数的使用方法,excel if函数怎么用?excel中if函数的使用方法图文详解...
  13. Python爬虫实战之五:requests-re多页爬取链家成都地区租房市场信息
  14. 小米会升级鸿蒙系统吗,小米要自研系统对鸿蒙有何影响
  15. 一些学习经验总结和分享
  16. centos 硬盘挂载
  17. 开放redis指定端口连接方法
  18. PMP备考指南之第十一章:项目风险管理
  19. his系统服务器安全方案,HIS网络安全和防范措施、备份及应急方案
  20. [电商实时数仓] 数据仓库建模过程分析

热门文章

  1. Response 输出文件流过程中的等待效果
  2. 澎湖县地产泡沫的破灭
  3. 操作系统开发第一人去世,曾获图灵奖启发Linux和C语言
  4. DWORD dwSendTime =::GetTickCount();
  5. imp 只导入索引_使用imp导入表和索引至不同表空间方法
  6. JAVA程序禁用Hbase中的表_HBase禁用表
  7. 联想微型计算机2005款配置,2005款联想43厘米液晶显示屏,55寸液晶屏价格
  8. tomcat容器是如何创建servlet类实例?用到了什么原理?
  9. 为什么需要消息队列?
  10. 025_CSS框模型概述