本文目录
- 如何在 KVM 虚拟机上运行 KVM
- KVM虚拟机装完系统之后,怎么重装系统
- centos7创建kvm虚拟机有几种方法
- kvm虚拟机启动之后如何配置IP地址
- KVM他说的基于内核的虚拟机是什么意思呢
- 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 nestedparm: nested:bool# cat /sys/module/kvm_intel/parameters/nestedY如果上面的显示结果不是 Y 的话需要开启 nested:# modprobe -r kvm-intel# modprobe kvm-intel nested=1# cat /sys/module/kvm_intel/parameters/nestedY然后在 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-okINFO: /dev/kvm does not existHINT: sudo modprobe kvm_intelINFO: Your CPU supports KVM extensionsKVM acceleration can be used# modinfo kvm_intelERROR: 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 -aLinux 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-okINFO: /dev/kvm existsKVM acceleration can be used# modinfo kvm_intelfilename: /lib/modules/3.2.0-30-generic/kernel/arch/x86/kvm/kvm-intel.kolicense: GPLauthor: Qumranetsrcversion: 3BAF54F96ECD4B02292CAA0depends: kvmintree: Yvermagic: 3.2.0-30-generic SMP mod_unload modversionsparm: vpid:boolparm: flexpriority:boolparm: ept:boolparm: unrestricted_guest:boolparm: emulate_invalid_guest_state:boolparm: vmm_exclusive:boolparm: yield_on_hlt:boolparm: fasteoi:boolparm: nested:boolparm: ple_gap:intparm: ple_window:int现在应该可以在这个虚拟机上创建另一个虚拟机了
KVM虚拟机装完系统之后,怎么重装系统
:按照正常的装机方式装机即可,在需要插入U盘或光盘时,虚拟机的界面菜单栏上有CDroom的选项,点开将要装机的镜像文件加载即可。 正常装机步骤如下: 首先要有光驱或USB插口,用系统安装光盘或U盘装机盘来重做系统。 要用光盘或U盘启动得先确认光.
centos7创建kvm虚拟机有几种方法
步骤 一、准备环境: 1、检查是否支持虚拟化 Centos6.2_x864 KVM 需要有 CPU 的支持(Intel vmx 或 AMD svm),在安装 KVM 之前检查一下 CPU 是否提供了虚拟技术的支持: egrep ’^flags.*(vmx|svm)’ /proc/cpuinfo有显示, 有显示则说明处理器具有VT功能 2、检查BIOSS是否开启虚拟化 二、安装KVM相关软件 1、复制即可(首先确认yum配置是否正常) yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager libvirt libvirt-python python-virtinst 2、检查kvm模块是否安装 # lsmod |grep kvm kvm_intel 55496 32 kvm 337772 1 kvm_intel 三、启动服务并开机启动 /etc/init.d/libvirtd chkconfig libvirtd on #以上就是KVM的安装,很简单。但是我们需要通过桌面去安装系统和偶尔的配置。所以需要在Server端安装桌面:Gnome 四、安装gonme桌面 并配置VNC桌面连接到 virtual-server服务器上 1、安装virtual-server 桌面 yum -y groupinstall “Gnome“ “Desktop“ 如果不安装桌面在使用svn登录服务器的时候会报错: 2、安装VNC-server端软件 yum -y install vnc *vnc-server* 3、修改VNCServer主配置文件 vim /etc/sysconfig/vncservers 跳至最后并去掉倒数第二行注释符,然后修改为 VNCSERVERS=“1:root“ 4、使用vncpasswd设置VNC登录密码 如下:输入两次密码即可 # vncpasswd Password: Verify: # 设置完密码会在root宿主目录下生成.vnc开头的隐藏目录,该目录下面的文件就是root用户的VNC桌面配置文件。打开xstartup配置桌面 #vim /root/.vnc/xstartup 将最后一行改为 gnome & #这将启用gnome桌面 6、启动vncserver服务并设置为开机启动 /etc/init.d/vncserver start chkconfig vncserver on 7、通过VNC客户端连接virtual-server 下载一个小的VNC客户端,如下图: 输入IP和端口,这个端口是在当时设置VNC-server时设置的! 结果如下: 五、配置桥接 这样安装完了之后就可以使用了,但是虚拟机不能和外面通信,只能和virtual-server内的虚拟机通信。 如果需要和外面的服务器通信需要配置桥接很简单。 临时:设置桥接网卡:KVM#设置br0与eth0桥接brctl addif br0 eth0#清空eth0IP地址ifconfig eth0 0.0.0.0#设置br0地址ifconfig br0 192.168.7.241 255.255.252.0 up 永久: 永久设置DEVICE=br0ONBOOT=yesBOOTPROTO=staticTYPE=BridgeIPADDR=192.168.9.47NETMASK=255.255.248.0GATEWAY=192.168.8.1DEVICE=eth0ONBOOT=yesBOOTPROTO=staticTYPE=EthernetBRIDGE=br0 IPV6INIT=no 注: 在桥接网卡里设置是需要注意:TYPE=Bridge 在屋里网卡要指定桥接的网卡名:BRIDGE=br0
kvm虚拟机启动之后如何配置IP地址
linux系统安装完成后启动网卡会自动获取一个ip。如果需要静态ip,则需要用vim 器修改配置文件,重启网络后生效。#vim /etc/sysconfig/network-script/ifcfg-eth0然后对网卡文件修改DEVICE=eth0 #物理设备名IPADDR=192.168.1.100 #IP地址NETMASK=255.255.255.0 #掩码值NETWORK=192.168.1.0 #网络地址(可不要)BROADCAST=192.168.1.255 #广播地址(可不要)GATEWAY=192.168.1.1 #网关地址ONBOOT=yes # (引导时是否激活设备)USERCTL=no #(非root用户是否可以控制该设备)BOOTPROTO=static #(引导时不使用协议|静态分配|BOOTP协议|DHCP协议)
KVM他说的基于内核的虚拟机是什么意思呢
这个问题很有趣,下面我来谈谈我的理解。
虚拟化技术
一般来说,它是在操作系统之上模拟另一个操作系统的执行环境。各种游戏模拟器,我们看到,和CPU的仿真开发的仿真程序,是早期常见的虚拟化解决方案,其工作原理是非常简单的:所有的CPU寄存器写入一组变量(这组变量我们称为cpufile),然后用一段记忆作为一个模拟的CPU内存(内存这里简称VMEM),然后用一些数据结构表示IO设备的状态(称为VIO),三的数据结构,是一个虚拟的环境中具有代表性的(这里称为VM),依次读取一段指令,根据该指令语义数据结构的变化,虚拟机的状态(如果硬件仿真,而且硅基础硬件的行为,如记忆被发现在一个虚拟的屏幕显示一点写一个值,等等),使虚拟方案的实施相当于虚拟程序模拟一台电脑,我称之为“解释虚拟化技术”。指令是由解释执行的。
在这个方案中,我们有三个对象
主持人:仿真系统的实现:虚拟虚拟程序实现,程序在主客体运行:系统虚拟出来的,运行软件(如操作系统)的VM这些概念将在这一过程中技术进化的读者应该注意这一点变化,记得原来的意义,它是混乱很容易。
解释性虚拟化是简单、直接和容易理解的
但显然效率很低。优化是比较成功的QEMU,它使用一个所谓的“编译”技术,每个虚拟设备的指令是一个C语言编写的代码,使用这个代码修改cpufile VM的数据,然后使用编译器编译的C代码,使用编译器的优化能力,最后在客人的指示解释,一个“翻译”,C代码一起编译,然后直接执行。
该方法有效地提高了效率的“解释”,但效率很明显或很低。Android的SDK仿真是基于ARM的手机,这是在这项技术中使用的。
KVM他说的基于内核的虚拟机是什么意思
意思就是: 我是virtualization,不是emulation!所谓virtualization vs emulation,是针对‘如何虚拟化 CPU和memory而言’的。emulation:VM中一条CPU指令,被翻译成host上一段代码执行。运行效率可想而知。代表有 不开启kvm的qemu ,不开启VT-x的VMWare。当然好处也有,那就跨硬件模拟 -- 我在x86上,可以模拟出ARM的机器。virtualization: VM中一条CPU指令,不经过翻译,直接在host上CPU上执行,也就是‘全速执行’。要求host CPU支持VT-x (有兴趣的同学还可以了解一下,EPT, VT-d)。真正实用的IaaS,必然是virtualization。而kvm,就是一个模块,让上层hypervisor(一般来说就是qemu)比较方便地使用VT-x功能。除了‘如何虚拟化 CPU和memory’,VM还要面对另一大类问题‘如何虚拟化硬盘,网卡等外设’。这就是full-virtualization 和 para-virtualization之争了。经常有人把两类问题搞混,kvm与否,其实和para与否没有必然关系:)