ubuntu 12.04 kvm?centos7安装kvm

大家好,今天来为大家解答ubuntu 12.04 kvm这个问题的一些问题点,包括centos7安装kvm也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

如何在 KVM 虚拟机上运行 KVM

转载自:

如何在 KVM虚拟机上运行 KVM

上次讨论了如何在 VMware ESXi虚拟机上运行 KVM问题,前不久有读者想“在 kvm上面创建个虚拟机安装 rackspace的 openstack”问到“如何开启虚拟机上的 CPU VT功能以便在 KVM上运行 KVM”,又是一个嵌套应用虚拟机的问题:在 KVM虚拟机上运行 KVM虚拟机。以下步骤在 Ubuntu Server 12.04 LTS 64 bit上测试通过。

首先检查 KVM host(母机)上是否打开了嵌套虚拟机功能(默认是开启的):

# modinfo kvm_intel| grep nested

parm: nested:bool

# cat/sys/module/kvm_intel/parameters/nested

Y

如果上面的显示结果不是 Y的话需要开启 nested:

# modprobe-r kvm-intel

# modprobe kvm-intel nested=1

# cat/sys/module/kvm_intel/parameters/nested

Y

然后在 KVM guest(虚拟机)的 xml配置文件中加入 vmx选项,并启动虚拟机(这里用的是 Ubuntu官方发布的 Ubuntu KVM镜像 ubuntu-12.04-server-cloudimg-amd64-disk1.img):

# vi nestedvm.xml

...

<cpu match='exact'/>

<model>core2duo</model/>

<feature policy='require' name='vmx'//>

</cpu/>

...

# virsh create nestedvm.xml

启动虚拟机后登陆并安装 KVM,执行 kvm-ok和 modinfo均出现错误:

# apt-get install ubuntu-virt-server

# kvm-ok

INFO:/dev/kvm does not exist

HINT: sudo modprobe kvm_intel

INFO: Your CPU supports KVM extensions

KVM acceleration can be used

# modinfo kvm_intel

ERROR: modinfo: could not find module kvm_intel

这是因为我们使用的是 ubuntu-12.04-server-cloudimg-amd64-disk1.img这个官方虚拟机镜像,这个镜像使用的是 linux 3.2.0-23-virtual内核,缺少 KVM模块(kvm-intel.ko),所以我们需要改为 generic内核:

# uname-a

Linux test 3.2.0-23-virtual#36-Ubuntu SMP Tue Apr 10 22:29:03 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

# apt-get install linux-generic

重启后进入虚拟机执行 kvm-ok和 modinfo均成功:

# kvm-ok

INFO:/dev/kvm exists

KVM acceleration can be used

# modinfo kvm_intel

filename:/lib/modules/3.2.0-30-generic/kernel/arch/x86/kvm/kvm-intel.ko

license: GPL

author: Qumranet

srcversion: 3BAF54F96ECD4B02292CAA0

depends: kvm

intree: Y

vermagic: 3.2.0-30-generic SMP mod_unload modversions

parm: vpid:bool

parm: flexpriority:bool

parm: ept:bool

parm: unrestricted_guest:bool

parm: emulate_invalid_guest_state:bool

parm: vmm_exclusive:bool

parm: yield_on_hlt:bool

parm: fasteoi:bool

parm: nested:bool

parm: ple_gap:int

parm: ple_window:int

现在应该可以在这个虚拟机上创建另一个虚拟机了

kvm安装linux系统kvm安装linux

Windows系统能装KVM吗?

因为KVM广泛的兼容性,支持Windows,Linux,和Sun等主流操作系统,并兼容联想、曙光、浪潮、华为、宝德、HP、IBM、戴尔和思科等主流服务器。

所以Windows系统能装KVM。

裸机(服务器)可以直接安装KVM(虚拟机)吗?怎么安装?

两种最流行的裸机开源虚拟化技术是KernelVirtualMachine(KVM)和Xen,所以KVM可以直接在裸机上运行,不需要什么操作系统。KVM几乎支持任何操作系统:Linux、MacOS、Unix、Windows以及你所采用的其他任何操作系统。

KVM怎么连接?

一安装VNC1.安装VNC服务端(1)在Linux系统上安装VNCyum-yinstallvnc-serveryum-yinstalltigervnc-server(2)设置远程登录所需要的密码输入vncserver后会提示输入密码注:此密码是远程登录时所需要输入的密码(3)进行vncserver配置vi/etc/sysconfig/vncservers设置以下配置值VNCSERVRES=10000:root(其中10000为桌面号、root为用户名)VNCSERVERARGS=geometry800x600_nolistentcp_localhost(4)进行防火墙配置允许远程连接VNC服务器vi/etc/sysconfig/iptables_AINPUT_mstate_stateNEW_mtcp_ptcp_dport5901_jACCCEPT(5)重启VNC和防火墙服务servicevncserverrestartserviceiptablesrestart2.安装VNC客户端在Linux上安装vncviewer在Windows上安装TigerVNC软件二创建KVM虚拟机1.创建Linux虚拟机(1)通过qemu-img创建一个7G的映像文件qemu-imgcreate_fqow2Ubuntu1204.img7G(2)创建一个Linux虚拟机qemu-kvm_m1024_cdromubuntu-12.04-desktop-i386.iso_drivefile=Ubuntu1204.img;boot=on_bootd_nographic_vnc:

2注:-vnc与:2之间有空格在另外一台机器上启动TigerVNC,输入192.168.0.123:5902进行连接来进行安装操作和观察安装进度注:192.168.0.123为本机IP,5902为相应端口号(5900+2)2.创建Windows虚拟机(1)制作包含virtio驱动的映像安装UltraISO软件下载win7.iso,virtio-win-1.1.16.vfd,virtio-win-0.1-30.iso将virtio-win-0.1-30.iso解压成文件夹使用UltraISO打开win7.iso,并将virtio-win-0.1-30复制到对应路径将添加了virtio驱动文件夹的新win7.iso文件另存为新的ios文件win7_virtio.isoqemu-imgcreate_frawwin7_virtio.img30Gqemu-kvm_m1024_cdromwin7_virtio.iso_drivefile=win7_virtio.img,if=virtio,boot=on_fdavirtio-win-1.1.6.vfd_bootd_nographic_vnc:

3注:-vnc与:3之间有空格在另外一台机器上启动TigerVNC,输入192.168.0.123:5903进行连接来进行安装操作和观察安装进度注:192.168.0.123为本机IP,5903为相应端口号(5900+3)三远程桌面虚拟化连接在另外一台机器上启动TigerVNC,输入192.168.0.123:593进行win7虚拟机登录

KVM、QEMU和KQemu有什么区别?

KVM只基于内核的虚拟化Qemu本身就是一种虚拟化,也是一种硬件仿真模拟器KQemu是Qemu针对于KVM做优化后和KVM的结合,性能比Qemu本身好很多。。。我们目前说的KVM其实就是qemu-kvm在linux中是以一个/dev/kvm的块设备和qemu-kvm的一个进程存在的

kvm三个组件及应用?

KVM虚拟化架构及三种模式

1、客户模式(guestOS):VM中的OS为GuestOS

客户机在操作系统中运行的模式,客户机分为内核模成和用户模式

2、用户模式:

为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O,Qemu工作在此模式下(Qemu的主要功能)

3、linux内核模式

模拟CPU、内存,实现客户模式切换,处理从客户模式的推出,KVM即运行在此模式下

KVM原理

1、Guest:客户机系统,包括CPU(vCPU)、内存、驱动(Console、网卡、I/O设备驱动等)

被KVM置于一种受限制的CPU模式下运行。

2、KVM内核模块模拟处理器和内存以支持虚拟机运行

3、Qemu主要处理I/O以及为客户提供一个用户空间/dev/kvm工具libvirt来进行虚拟机管理

ioctl(定义)专用于设备输入输出操作的系统调用

libvirt:KVM管理工具

以上构成一个完整的虚拟化平台

简单理解:

KVM驱动提供处理器、内存的虚拟化,以及客户机I/O的拦截,guest的I/O被拦截后,交由Qemu处理

Qemu利用接口libkvm调用(ioctl)虚拟机设备接口/dev/kvm来分配资源、管理、维护虚拟机

KVM工作流程

用户模式的Qemu利用接口libkvm通过ioctl系统调用进入内核模式。KVM驱动为虚拟机创建虚拟CPU和虚拟内存,然后执行VMLAU-NCH指令进入客户模式,装载GuestOS并运行。GuestOS运行过程中如果发生异常,则暂停GuestOS的运行并保存当前状态同时退出到内核模式来处理这些异常。

内核模式处理这些异常时如果不需要V/O则处理完成后重新进入客户模式。如果需要V/O则进入到用户模式,则由Qemu来处理I/O,处理完成后进入内核模式,再进入客户模式

UBuntu系统安装KVM创建虚拟机遭遇故障

现象:

ping不通虚拟机,ssh登录不上,console方式登录不上,虚拟机无法shutdown,貌似电源管理也没有安装成功。

先来解决网络问题:

还好可以通过virt-cat来检查虚拟机内部的文件。

先关闭虚拟机

virsh destroy vm1

然后检查网卡设置文件:

root@dbkvm:~# virt-cat-d vm1/etc/network/interfaces# This file describes the network interfaces available on your system# and how to activate them. For more information, see interfaces(5).# The loopback network interfaceauto loiface lo inet loopback# The primary network interfaceauto eth0iface eth0 inet staticaddress 192.168.1.51netmask 255.255.255.0network 192.168.1.0broadcast 192.168.1.255gateway 192.168.1.1# dns-* options are implemented by the resolvconf package, if installeddns-nameservers 8.8.8.8dns-search localdomain

这个dns-search localdomain看上去很奇怪。一般是defaultdomain。

localdomain是因为host机器的/etc/hosts中配置成了:

127.0.0.1      localhost.localdomain dbkvm

将其换成这种配置:

127.0.0.1  localhost127.0.1.1  dbkvm

再创建虚拟机,网络正常了。可以ping通,可以ssh登录。 console问题还有。

虚拟机里面的网络设置dns-search被设置成了defaultdomain。

因此推测是hosts文件的配置错误,导致虚拟机中网卡设置的dns-search错误,导致无法连接网络,因此不能在创建过程中从网络下载安装openssh-server.

来看一下电源管理

如果不安装电源管理,就不能在host主机通过shutdown关闭虚拟机。

在创建vm的选项中需要补上:

--addpkg=acpid

事后弥补就要登录到虚拟机中,然后运行命令:

apt-get install acpid

再来处理console不能登录的问题。

先停止虚拟机。

virsh stop vm1

准备一个文件ttyS0.conf,内容如下:

# ttyS0.conf- getty# This service maintains a getty on ttyS0 from the point the system is# started until it is shut down again.start on stopped rc RUNLEVEL=[2345]stop on runlevel [!2345]respawn

安装guestfish程序:

apt-get install guestfish

现在用virt-copy-in将文件复制到vm的/etc/init目录中:

virt-copy-in-d vm1 ttyS0.conf/etc/init

然后调用virsh edit vm1来编辑vm1的配置文件,添加下面的内容:

devices...serial type='pty'source path='/dev/pts/2'/target port='0'//serialconsole type='pty' tty='/dev/pts/2'source path='/dev/pts/2'/target port='0'//console/devices

最后试用一下:

virsh start vm1Domain vm1 startedroot@dbkvm:~/kvm_scripts# virsh console vm1Connected to domain vm1Escape character is ^]Ubuntu 12.04.2 LTS vm1 ttyS0vm1 login: rootPassword:Last login: Thu May 2 09:21:03 UTC 2013 from 192.168.1.4 on pts/1Welcome to Ubuntu 12.04.2 LTS(GNU/Linux 3.2.0-41-virtual x86_64)

可以了。所有问题的根源都出在那个不正确的host机器上的/etc/hosts配置。

阅读剩余
THE END