Skip to content

Latest commit

 

History

History
126 lines (115 loc) · 8.4 KB

虚拟化.md

File metadata and controls

126 lines (115 loc) · 8.4 KB

#虚拟化#

##全虚拟化##

简介:主要是在客户操作系统和硬件之间捕捉和处理那些对虚拟化敏感的特权指令,使客户操作系统无需修改就能运行,
速度会根据不同的    实现而不同,但大致能满足用户的需求。这种方式是业界现今最成熟和最常见的,而且属于 Hosted 模式和 Hypervisor 模式的都有,知  名的产品有IBM CP/CMS,VirtualBox,KVM,VMware Workstation和VMware ESX(它在其4.0版,被改名为VMware vSphere)。
优点:Guest OS无需修改,速度和功能都非常不错,更重要的是使用非常简单,不论是 VMware 的产品,还是Sun(Oracle?)的 VirtualBox。
缺点:基于Hosted模式的全虚拟产品性能方面不是特别优异,特别是I/O方面。
未来:因为使用这种模式,不仅Guest OS免于修改,而且将通过引入硬件辅助虚拟化技术来提高其性能,我个人判断,在未来全虚拟化还是主流。

##半虚拟化##

简介:它与完全虚拟化有一些类似,它也利用Hypervisor来实现对底层硬件的共享访问,但是由于在Hypervisor 上面运行的Guest OS已经集成与半虚拟化有关的代码,使得Guest OS能够非常好地配合Hyperivosr来实现虚拟化。通过这种方法将无需重新编译或捕获特权指令,使其性能非常接近物理机,其最经典的产品就是Xen,而且因为微软的Hyper-V所采用技术和Xen类似,所以也可以把Hyper-V归属于半虚拟化。
优点:这种模式和全虚拟化相比,架构更精简,而且在整体速度上有一定的优势。
缺点:需要对Guest OS进行修改,所以在用户体验方面比较麻烦。

##硬件辅助虚拟化##

简介:Intel/AMD等硬件厂商通过对部分全虚拟化和半虚拟化使用到的软件技术进行硬件化(具体将在下文详述)来提高性能。硬件辅助虚拟化技术常用于优化全虚拟化和半虚拟化产品,而不是独创一派,最出名的例子莫过于VMware Workstation,它虽然属于全虚拟化,但是在它的6.0版本中引入了硬件辅助虚拟化技术,比如Intel的VT-x和AMD的AMD-V。现在市面上的主流全虚拟化和半虚拟化产品都支持硬件辅助虚拟化,包括VirtualBox,KVM,VMware ESX和Xen。
优点:通过引入硬件技术,将使虚拟化技术更接近物理机的速度。
缺点:现有的硬件实现不够优化,还有进一步提高的空间。

##KVM ###kvm安装 ####kvm依赖包描述 ======================================================================================================= Package Arch Version Repository Size ======================================================================================================= Installing: qemu-kvm x86_64 2:0.12.1.2-2.415.el6_5.6 updates 1.5 M Installing for dependencies: celt051 x86_64 0.5.1.3-0.el6 base 50 k glusterfs-api x86_64 3.4.0.57rhs-1.el6_5 updates 55 k glusterfs-libs x86_64 3.4.0.57rhs-1.el6_5 updates 240 k gpxe-roms-qemu noarch 0.9.7-6.10.el6 base 220 k qemu-img x86_64 2:0.12.1.2-2.415.el6_5.6 updates 588 k seabios x86_64 0.6.1.2-28.el6 base 92 k sgabios-bin noarch 0-0.3.20110621svn.el6 base 6.6 k spice-server x86_64 0.12.4-6.el6_5.1 updates 344 k usbredir x86_64 0.5.1-1.el6 base 40 k vgabios noarch 0.6b-3.7.el6 base 42 k

Transaction Summary
=======================================================================================================
Install      11 Package(s)

Total download size: 3.1 M
Installed size: 8.3 M
Is this ok [y/N]: y
Downloading Packages:
(1/11): celt051-0.5.1.3-0.el6.x86_64.rpm                                        |  50 kB     00:00     
(2/11): glusterfs-api-3.4.0.57rhs-1.el6_5.x86_64.rpm                            |  55 kB     00:00     
(3/11): glusterfs-libs-3.4.0.57rhs-1.el6_5.x86_64.rpm                           | 240 kB     00:00     
(4/11): gpxe-roms-qemu-0.9.7-6.10.el6.noarch.rpm                                | 220 kB     00:00     
(5/11): qemu-img-0.12.1.2-2.415.el6_5.6.x86_64.rpm                              | 588 kB     00:00     
(6/11): qemu-kvm-0.12.1.2-2.415.el6_5.6.x86_64.rpm                              | 1.5 MB     00:01     
(7/11): seabios-0.6.1.2-28.el6.x86_64.rpm                                       |  92 kB     00:00     
(8/11): sgabios-bin-0-0.3.20110621svn.el6.noarch.rpm                            | 6.6 kB     00:00     
(9/11): spice-server-0.12.4-6.el6_5.1.x86_64.rpm                                | 344 kB     00:00     
(10/11): usbredir-0.5.1-1.el6.x86_64.rpm                                        |  40 kB     00:00     
(11/11): vgabios-0.6b-3.7.el6.noarch.rpm                                        |  42 kB     00:00     
-------------------------------------------------------------------------------------------------------

###kvm安装命令 #####查看CPU是否支持虚拟化 egrep '^flags.*(vmx|svm)' /proc/cpuinfo #####安装kvm相关模块 yum install kvm kmod-kvm #####安装kvm测试库 yum install --disablerepo=* --enablerepo=c5-testing kvm kmod-kvm #####安装kvm靠前的版本 # If an old version of kvm is installed, remove it first to avoid conflicts yum remove kvm # Dependencies are installed explicitly because the KVM RPMs are not installed by yum yum install zlib-devel alsa-lib-devel SDL-devel gnutls-devel dev86 texi2html glibc-devel.i386 # Install RPMs directly because they are not in a repository rpm -i -v http://www.lfarkas.org/linux/packages/centos/5/x86_64/etherboot-roms-kvm-5.4.4-8.x86_64.rpm rpm -i -v http://www.lfarkas.org/linux/packages/centos/5/x86_64/kmod-kvm-84-1.x86_64.rpm rpm -i -v http://www.lfarkas.org/linux/packages/centos/5/x86_64/kvm-84-1.x86_64.rpm # reboot so that the kvm modules are loaded #####安装kvm模拟器 yum install qemu-kvm #####内核加载kvm模板 modprobe kvm-intel、modprobe kvm-amd #####查看是否加载 lsmod |grep kvm #####将模块指定给特定用户 usermod -G kvm -a heidsoft #####创建虚拟机 qemu-img create -f qcow2 disk.img 5G 创建的磁盘文件类型有:raw/qcow2/qcow/cow/vdi/vmdk/vpc/cloop ###kvm-kmod开发 ####编译
./configure make make install git submodule init git submodule update ./configure make sync make ####KVM/QEMU桥接网络设置 配置kvm的网络有2种方法。其一,默认方式为用户模式网络(Usermode Networking),数据包由NAT方式通过主机的接口进行传送。其二,使用桥接方式(Bridged Networking),外部的机器可以直接联通到虚拟机,就像联通到你的主机一样。 ####第一,用户模式 虚拟机可以使用网络服务,但局域网中其他机器包括宿主机无法连接它。比如,它可以浏览网页,但外部机器不能访问架设在它里面的web服务器。 默认的,虚拟机得到的ip空间为10.0.2.0/24,主机ip为10.0.2.2供虚拟机访问。可以ssh到主机(10.0.2.2),用scp来拷贝文件。 ####第二,桥接模式 这种模式允许虚拟机就像一台独立的主机一样拥有网络。这种模式需要网卡支持,一般的有线网卡都支持,绝大部分的无线网卡都不支持。
A) 在主机上创建一个网络桥 1)安装bridge-utils #####Ubuntu sudo apt-get install bridge-utils #####Centos yum install bridge-utils 2)改变网络设置,先停止网络 sudo invoke-rc.d networking stop ###kvm快照 qemu-img create -f qcow2 -b centos-cleaninstall.img snapshot.img ###kvm克隆 virt-clone --connect=qemu:///system -o CurrentVM -n NewVM -f /home/htkh/VMs/NewVM.gcow2 ###参考资料