云计算大数据:Xen、KVM、VMware、hyper

您所在的位置:网站首页 kvm和vmware性能比较 云计算大数据:Xen、KVM、VMware、hyper

云计算大数据:Xen、KVM、VMware、hyper

#云计算大数据:Xen、KVM、VMware、hyper| 来源: 网络整理| 查看: 265

1、Xen、KVM、VMware、hyper-v等虚拟化技术的比较,xen和kvm,是开源免费的虚拟化软件。

vmware是付费的虚拟化软件。

hyper-v比较特别,是微软windows 2008 R2附带的虚拟化组件,如果你买了足够的授权,hyper-v(包括hyper-v 2008 core)都可以免费使用。

如果是vmware或hyper-v虚拟windows系统,不管是虚拟化软件本身,还是其中的子系统,都要支付许可费用。

如果是vmware或hyper-v虚拟linux,虚拟化软件本身要支付许可费用,子系统可以用linux来节省成本。

如果是xen或kvm虚拟windows,其中的子系统要支付许可费用。

如果是xen或kvm虚拟linux,那么虚拟化软件本身和其中的子系统无需产生任何费用。

从性能上来讲,虚拟windows,如果都能得到厂商的支持,那么,性能优化可以不用担心。这几款软件全都能达到主系统至少80%以上的性能(磁盘,CPU,网络,内存),这时建议使用hyper-v来虚拟windows,微软自身的产品,虚拟windows是绝对有优势的。

如果是虚拟linux,建议首先使用xen,支持linux的半虚拟化,可以直接使用主系统的cpu和磁盘及网络资源,达到较少的虚拟化调度操作,可以达到非常高的性能,但xen操作复杂,维护成本较高。其次我们推荐kvm来虚拟linux,linux本身支持kvm的virtio技术,可以达到少量的虚拟化调度操作,得到较高的系统性能。

不推荐使用hyper-v来虚拟linux,太多的不兼容性导致linux基本无法在hyper-v上跑。

如果以上产品我们不打算买厂商支持,其中vmware和hyper-v,是不建议使用的,主要是授权问题。

这时就剩下kvm和xen了,如果虚拟windows,建议使用kvm,我们可以从redhat那里免费拿到针对windows优化过的磁盘和网络的驱动程序,可以达到较高的性能(几乎与hyper-v性能持平)。而xen的windows优化驱动不是那么容易就能拿到的(由于redhat以后不支持xen了,看看novell是否放水了,呵呵,就开放程度上来讲,redhat要好于novell)。

综上所述, 在有授权的情况下,虚拟windows,建议使用hyper-v 在有授权的情况下,虚拟linux,建议使用xen,如考虑到需要降低管理维护和学习成本,建议使用kvm。

在没有授权的情况下,虚拟windows,建议使用KVM

2、KVM基本介绍

在2010年4月发布的RHEL6.0版本中,去掉了XEN,这也许是第一个不包含Xen Hypervisor的知名linux发行版。KVM是指基于Linux内核的虚拟机(Kernel-base Virtual Machine),增加到Linux内核是Linux发展的一个重要里程碑,这也是第一个整合到Linux主线内核的虚拟化技术。在KVM模型中,每一个虚拟机都是一个由Linux调度程序管理的标准进程,你可以在用户空间启动客户机操作系统,一个普通的Linux进程有两种运行模式:内核和用户,KVM增加了第三种模式:客户模式(有自己的内核和用户模式)。

1 KVM虚拟机的管理工具

准确的来说,KVM仅仅是Linux内核的一个模块,管理和创建完整的KVM虚拟机,需要更多的辅助工具。

QEMU-KVM:在Linux系统中,首先我们可以用modprobe命令加载KVM模块,如果用RPM安装KVM软件包,系统会在启动时自动加载模块,QEMU是一个强大的虚拟软件,它可以虚拟不同的构架。

Virt-manager:尽管QEMU-KVM工具可以创建和管理KVM虚拟机,RedHat为KVM开发了更多的辅助工具,比如 libvirt libguestfs等,原因是QEMU工具效率不高,不易于使用。

2 安装配置KVM相关软件

2.1系统要求:

处理器需求:需要一台可以运行最新linux内核的Intel处理器(含VT虚拟化技术)或AMD处理器(含SVM安全虚拟机技术的AMD处理器,也叫AMD-V)

[root@vfeelit ~]# cat /etc/redhat-release

CentOS release 6.4 (Final)

2.2检查CPU:

[root@vfeelit ~]# egrep ‘vmx|svm’ /proc/cpuinfo

如果输出的结果包含VMX,它是Intel处理器虚拟机技术标志:如果包含SVM,它是AMD处理器虚拟机技术的标志,如果你什么都没有得到,那应你的系统并没有支持虚拟化的处理,不能使用KVM,另处linux发行版本必须在64bit环境中才能使用KVM。

3 更新系统

yum update

yum upgrade

4 安装KVM

[root@vfeelit ~]#yum -y install kvm python-virtinst libvirt bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v

[root@vfeelit ~]#vi /etc/sysconfig/selinux

SELINUX=disabled

[root@vfeelit ~]#reboot

5 重启后确认libvirtd是否正常启动

[root@vfeelit ~]# /etc/init.d/libvirtd restart

正在关闭 libvirtd 守护进程: [确定]

启动 libvirtd 守护进程:2013-05-19 03:12:52.694+0000: 3070: info : libvirt version: 0.10.2, package: 18.el6_4.5 (CentOS BuildSystem , 2013-05-16-14:53:18, c6b7.bsys.dev.centos.org)

2013-05-19 03:12:52.694+0000: 3070: warning : virGetHostname:2265 : getaddrinfo failed for 'vfeelit': 未知的名称或服务

[确定]

6 检查KVM是否加载成功

显示结果如下表示kvm模块已经加载,如果没有输出信息,则表示没有加载成功:

[root@vfeelit ~]# lsmod | grep kvm

kvm_intel 53484 0

kvm 316506 1 kvm_intel

7 检查KVM是否成功安装

[root@vfeelit ~]# virsh list --all ##--all关闭的也会显示

Id 名称 状态

----------------------------------------------------

8 各版本查询

[root@vfeelit ~]# kvm --version

bash: kvm: command not found

[root@vfeelit ~]# virt-install --version

0.600.0

[root@vfeelit ~]# virsh --version

0.10.2

9 修改qemu.conf配置

[root@vfeelit ~]# vi /etc/libvirt/qemu.conf

vnc_listen = "0.0.0.0"修改vnc监听端口

二 配置网络桥接

参考:http://www.techotopia.com/index.php/Creating_an_RHEL_6_KVM_Networked_Bridge_Interface

1 安装tunctl:

yum install -y tunctl

2 禁用网络管理器:

chkconfig NetworkManager off ##和桥接有冲突,要关闭

service NetworkManager stop

3 修改eth0为物理网口,br0为桥接网口配置文件:

[root@vfeelit network-scripts]# cat ifcfg-br0

DEVICE=br0

TYPE=Bridge

BOOTPROTO=static

IPV6INIT=no

ONBOOT=yes

IPADDR=192.168.1.66

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

DNS1=8.8.8.8

DELAY=0

[root@vfeelit network-scripts]# cat ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

BRIDGE=br0

BOOTPROTO=none

IPV6INIT=no

ONBOOT=yes

附加说明:这里配置成桥接方式,实际上本机的数据包发送是通过br0发送的,br0的TYPE是Bridge,其它的信息跟配置一个物理网卡一样,本机的eth0通过桥接到br0(通过BRIDGE指定)进行通信,它根本不需要配置IP信息,实际上数据发送还是通过本机的物理网卡。

4 最后重启网络

[root@vfeelit network-scripts]# service network restart

5 查看桥接网络

[root@vfeelit ~]# brctl show

bridge name bridge id STP enabled interfaces

br0 8000.0021cc6b6f2c no eth0

virbr0 8000.525400ac7ebe yes virbr0-nic

接口eth0通过br0进行桥接。birbr0-nic通过virbr0进行桥接,这个是默认的设置,当使用NAT时使用。

三 使用virt-install 工具安装guest 系统

[root@vfeelit /]# virt-install --name=centos64 --ram 1024 --vcpus=2 --disk path=/var/lib/libvirt/images/centos64.img,size=10 --accelerate --cdrom /mnt/CentOS64.iso --graphics vnc,password=123456,port=5920 --network bridge=br0 --force --autostart

使用virt-install 工具,工具自动创建磁盘,默认是raw格式。

[root@vfeelit]# qemu-img info centos.img

image: centos.img

file format: raw

virtual size: 10G (10737418240 bytes)

disk size: 1.4G

1 可以通过virt-viewer查看安装状态:

[root@vfeelit virtual]# virt-viewer name

2 使用virt-install 工具安装虚拟机后,在目录/etc/libvirt/qemu/下生成xml 配置文件。

[root@vfeelit ~]# cd /etc/libvirt/qemu

[root@vfeelit ~]# cat centos64.xml

虚拟机类型

centos 虚拟机名称

54da30ed-150d-514e-9803-4dc01bd50488 uuid唯一标示

1048576 指定虚拟机内存大小,给出了单位

2 虚拟机占用虚拟cpu个数,这里指物理cpu的核心数量

hvm 指定虚拟系统架构

启动类型,从硬盘启动

/usr/libexec/qemu-kvm 驱动程序,同上,使用的是qemu-kvm

指定磁盘类型

指定磁盘格式,这里是raw,也支持qcow2.

img文件路径

磁盘文件标示,驱动类型

自动生成,可以手动指定。

桥接到哪一个接口

3 使用virsh工具管理生成的虚拟机

[root@vfeelit ~]# virsh start centos64 启动虚拟机 reboot start shutdown

[root@vfeelit ~]# virsh list 列出当前运行的虚拟机

Id Name State

----------------------------------------------------

1 centos64 running

[root@vfeelit ~]# ll /var/lib/libvirt/qemu

total 12

srwxr-xr-x 1 root root 0 Aug 22 09:53 centos.monitor ##这里的文件,是libvirtd在重启后,虚拟机也随着自动重启。

动态查询kvm资源占用情况,每一台VM,对应一个qemu-kvm进程

[root@vfeelit ~]# top -d 1 | grep kvm

4 截取的kvm进程信息

[root@vfeelit ~]# ps -aux | grep kvm

其他问题

1、图形化配置:从菜单中启动,或者运行virt-manager进入图形管理界面,比较简单,不过img的位置需要注意一下,kvm安装后会有一个默认位置,不注意的话容易占满空间。或者直接硬盘分区时单独给/var分一个区。

2、虚拟机重新配置:

虚拟机的配置文件保存在/etc/libvirt/qemu目录下,扩展名是xml。修改相应的文件即可重新配置虚拟机。

3、虚拟机备份及恢复:

备份:拷贝/etc/libvirt/qemu目录下的xml配置文件,以及xml中设置的img文件。

恢复:进入virsh,执行define 目录下的xml文件路径

virsh # define /etc/libvirt/qemu/winxp.xml

4、开机自动启动虚拟机:

[root@vfeelit qemu]# virsh autostart Winxp

5、克隆KVM虚拟机:

[root@vfeelit ~]# virt-clone -o Winxp -n winxpclong -f /var/lib/libvirt/images/winxpclong.img

(-o 原始客体的名称,-n新客户端的名称,-f作为新客户端磁盘映像的新文件)

6、虚拟机意外关机报下述错误:

[root@vfeelit qemu]# virsh start winxp

错误:开始域 winxp 失败

错误:Unable to read from monitor: Connection reset by peer

解决方法:virsh managedsave-remove winxp

Virsh语法参考:

Autostart 自动开始一个域

Create 从一个 XML 文件创建一个域

Define 从一个 XML 文件定义(但不开始)一个域

edit 编辑某个域的 XML 配置

shutdown 关闭一个域

start 开始一个(以前定义的)非活跃的域

reboot 重新启动一个域

suspend 挂起一个域

resume 重新恢复一个域

vncdisplay vnc 显示

使用save来备份当前虚拟机的状态:

[root@vfeelit images]# virsh save –bypass-cache RedHat /var/lib/libvirt/images/test.img –running

上面这个命令将RedHat的当前状态保存到/opt/vm2_save文件中。–running参数表示下次restore回来的时候能够自动启动RedHat。

这个命令会导致RedHat被关闭。

现在还原:必须先关闭虚拟机

[root@vfeelit images]# virsh shutdown RedHat

[root@vfeelit images]# virsh restore /var/lib/libvirt/images/test.img –bypass-cache –running (还原时不要指定虚拟机名称)

3、KVM自动部署及基本操作

随着 IT 产业的不断发展, IT 技术的不断革新,近几年虚拟化、云计算技术火热,那我们今天来研究一下虚拟化技术,到底什么是虚拟化技术呢?我们为什么要使用虚拟化呢?

虚拟化 是指计算元件在虚拟的基础上而不是真实的基础上运行,是一个为了简化管理,优化资源的解决方案。

虚拟化技术 可以扩大硬件的容量,简化 软件 的重新配置过程。 CPU 的 虚拟化技术 可以单 CPU 模拟多 CPU 并行,允许一个平台同时运行多个操作系统,并且 应用程序 都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

目前主流的虚拟化技术主要有: KVM 、 Xen 、 VMware 、 VirtualBox ,虚拟化技术也越来越广泛的应用在企业中,今天我们来研究和复习一下 KVM 虚拟化集群的搭建。

1、系统版本:

CentOS 6.4 x86_64

2、处理器需求:

需要一台可以运行最新 linux 内核的 Intel 处理器(含 VT 虚拟化技术)或 AMD 处理器(含 SVM 安全虚拟机技术的 AMD 处理器,也叫 AMD-V )

[root@kvm~]# cat /etc/redhat-release

CentOSrelease 6.4 (Final)

3、CPU 支持需求 :

[root@localhost~]# egrep 'vmx|svm' /proc/cpuinfo

如果输出的结果包含 VMX ,它是 Intel 处理器虚拟机技术标志:如果包含 SVM ,它是 AMD 处理器虚拟机技术的标志,如果你什么都没有得到,那应你的系统并没有支持虚拟化的处理,不能使用 KVM ,另处 linux 发行版本必须在 64bit 环境中才能使用 KVM 。

4、KVM正式安装:

这里直接使用脚本,比较方便快捷,了解更多可以参官方网站。(仅供参考,后期不断优化)

#!/bin/sh

#Auto Make KVM Virtualization

#Author wugk 2013-12-06

#Defined Path

DAY_DIR=/data/backup/`date +%Y%m%d`

cat

>/dev/null

if

[ "$?" -eq "0" ];then

echo 'Congratulations, your system success supports virtualization !'

else

echo -e 'OH,your system does not support virtualization !\nPlease modify the BIOS virtualization options (Virtualization

Technology)'

exit 0

fi

if

[ -e /usr/bin/virsh ];then

echo "Virtualization is already installed ,Please exit ...." ;exit 0

fi

yum -y install ${KVM_SOFT[@]}

/sbin/modprobe kvm

lsmod | grep kvm >>/dev/null

if

[ "$?" -eq "0" ];then

echo 'KVM installation is successful !'

else

echo 'KVM installation is falis,Please check ......'

exit 1

fi

cd /etc/sysconfig/network-scripts/

mkdir -p $DAY_DIR

if [ ! -e $DAY_DIR/ifcfg-eth0 ];then

cp ifcfg-eth* $DAY_DIR/

fi

if

[ -e /etc/sysconfig/network-scripts/ifcfg-br0 ];then

echo "The ifcfg-br0 already exist ,Please wait exit ......"

exit 2

else

cat >ifcfg-eth0

ifcfg-br0

PropertIEs -> Hardware -> Device Manager -> [Whatever under Computer] -> Properties -> Update Driver -> Not at this time -> Next -> Install from a list -> Next -> Don’t search -> Next -> Standard PC -> Next.

“Standard PC”是无acpi支持的HAL.

18.Qumranet提供哪些产品?

umranet是一家由Qequoia Capital和Norwest Venture Partners (NVP)投资的初创公司,当前公司处于准备运营当中(正在加紧开发公司的产品)。(T002)

5、KVM使用经验

虚拟化技术已经成为未来计算机技术的一个重要的发展方向。linux在虚拟化方面已经有了很多中解决方案: VMware、 VirtualBox、Xen和KVM。KVM是一个全虚拟化的解决方案。可以在x86架构的计算机上实现虚拟化功能。但KVM需要CPU中虚拟化功能的支持,只可在具有虚拟化支持的CPU上运行。Xen也是Linux下的一个虚拟化解决方案,也将很快被编入内核中。Xen的实现方法是,运行支持Xen功能的kernel……

一.KVM简介

虚拟化技术已经成为未来计算机技术的一个重要的发展方向.linux在虚拟化方面已经有了很多中解决方案,:VMware,VirtualBox,Xen和KVM。

KVM是一个全虚拟化的解决方案。可以在x86架构的计算机上实现虚拟化功能。但KVM需要CPU中虚拟化功能的支持,只可在具有虚拟化支持的CPU上运行,即具有VT功能的Intel CPU和具有AMD-V功能的AMD CPU。

Xen与KVM的比较

Xen也是Linux下的一个虚拟化解决方案,也将很快被编入内核中。Xen的实现方法是,运行支持Xen功能的kernel,这个kernel是工作在Xen的控制之下,叫做Domain0,使用这个kernel启动机器后,你可以在这个机器上使用qemu软件,虚拟出多个系统。Xen的缺点是,如果你需要更新Xen的版本,你需要重新编译整个内核,而且,稍有设置不慎,系统就无法启动。

相比较,KVM就简化的多了。它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载的.ko模块。它结构更加精简,代码量更小,所以,出错的可能性更小。并且在某些方面,性能比Xen更胜一筹。

二.KVM的使用

现在以Turbolinux 11版本为基础,介绍KVM的使用方法。

在安装之前,你需要先确认,你的CPU是否支持虚拟化技术,执行:

# egrep '^flags.*(vmx|svm)' /proc/cpuinfo

如果有输出返回,则表示,你的CPU支持虚拟化技术。

1.KVM的安装

从官方网站下载KVM源码包:http://kvm.qumranet.com/

我们使用KVM-33版本

# tar zxf kvm-33.tar.gz

# cd kvm-33

# ./configure --prefix=/usr/local/kvm-33

# make

# make install

make install后,kvm的模块会安装到/lib/modules/$KernelVersion/extra/目录下.其他相关文件会安装到/usr/local/kvm-33/目录下。

将kvm相关目录连接到系统目录中

# ln -s /usr/local/kvm-33/bin/* /usr/bin/

# ln -s /usr/local/kvm-33/lib/* /usr/lib/

(若为x86_64系统,则执行: ln -s /usr/local/kvm-33/lib64/* /usr/lib64/)

# ln -s /usr/local/kvm-33/include/kvmctl.h /usr/include/

# ln -s /usr/local/kvm-33/include/linux/* /usr/include/linux/

# ln -s /usr/local/kvm-33/share/qemu /usr/share/

2.KVM的使用

a.你需要先建立一个映像文件,作为虚拟系统的硬盘

# mkdir /images

# cd /images

# /usr/bin/qemu-img -f qcow gtes11.img 20G

b.创建网络配置脚本

# echo '/sbin/ifconfig $1 10.0.1.1 netmask 255.255.255.0' > /etc/qemu-ifup

c.加载KVM模块

Intel CPU使用:

# modprobe kvm-intel

AMD CPU使用:

# modprobe kvm-amd

d.安装虚拟系统

# /usr/bin/qemu-i386 -m 512 -k en-us -M pc -hda /images/gtes11.img -cdrom /iso/zuma-SP3-rc3-6-

disc1-20061031.iso -net nic,vlan=1,model=rtl8139,macaddr=00:00:00:00:99:01 -net tap,vlan=1,ifname=tap0,

script=/etc/qemu-ifup -vnc localhost:1 -boot d

在另一个终端执行:

# vncviewer localhost:1

参数分析:

我们为虚拟系统分配512MB内存.使用gtes11.img作为它的第一块硬盘,使用Turbolinux10.5的disc1作为它的光盘。

并从光盘引导.它有一块rtl8139的网卡,MAC地址为:00:00:00:00:99:01,并把这个网卡与主机的tap0接口连接。

tap0接口使用/etc/qemu-ifup脚本进行初始化.虚拟系统的输出作为一个vnc服务器,绑定在主机的localhost:1上。

注:

1.若为x86_64系统,则使用/usr/bin/qemu-system-x86_64 代替qemu-i386

2.在64位系统上,可以安装32位和64位的虚拟系统.但在32位系统上,只能安装32位的虚拟系统。

qemu参数介绍:

-da 映像文件: 使用映像文件作为虚拟系统的第一块硬盘.同样还可以使用hdb,hdc,hdd指定第2,3,4块硬盘。

-drom 光盘映像文件: 使用光盘映像文件作为虚拟系统的光盘。

-oot [a|c|d|n]: 设置虚拟系统的引导顺序,a为软驱,c为硬盘,d为光驱,n为网络。

- 内存大小: 设置虚拟系统使用的内存大小,单位为MB。

- 语言: 设置虚拟系统键盘类型。

-et nic[,vlan=n][,macaddr=addr][,model=type]

建立一个虚拟网卡,并把它连接到VLAN的n端口上。

-net tap[,vlan=n][,fd=h][,ifname=name][,script=file]

把主机的TAP网络接口连接到VLAN的n端口上,并使用script指定的脚本进行初始化。

6、VNC Viewer 连接成功后闪退的解决方法

2013年12月3日Linux技术VNCVNC ViewerVNC闪退1 Comment

VNC是个不错的工具,今天掏出VNC Viewer来连接一台N久没登陆的服务器看看,输入密码连上后直接闪退,可能是ColourLevel的问题。

依次点Option-->Advanced-->Expert找到ColourLevel,默认值是pal8,修改为rgb222或full。

重新连接,没有问题了。

yum grouplist 检查已安装的组

yum groupinstall "X Window System"

yum groupinstall "GNOME Desktop Environment"

startX

7、CentOS用yum安装X Window

安装CentOS 5.6系统的时候我没有先装任何组件,现在用X Window,需要再安装X Window,就可以启动图形界面了,但是默认的图形界面是很简陋的界面,可以根据需要再安装GNOME或KDE桌面环境

安装X图形界面

#可查询哪些组件是否已经安装(可用来对照组件名称)

yum grouplist

#安装X图形界面系统

yum list 列出所有可安装的软件包 可以通过 yum grouplist 来查看可能批量安装哪些列表 比如 #yum groupinstall "DNS Name Server" //安装 bind 及 bind-chroot 套件

yum groupinstall "X Window System" -y

#安装GNOME桌面环境

yum groupinstall "GNOME Desktop Environment" -y

#安装KDE桌面环境

yum groupinstall "KDE (K Desktop Environment)"

卸载

卸载GNOME桌面环境

yum groupremove GNOME Desktop Environment'

卸载KDE桌面环境

yum groupremove 'K Desktop Environment'

启动X图形界面的方法

1、startx

2、设置开机自动启动,修改/etc/inittab

id:3:initdefault: ------> id:5:initdefault:

3、init 5

默认桌面环境选择

一、设置GNOME或者KDE为默认的启动桌面环境

方法1:修改/etc/sysconfig/desktop,根据需要将“DESKTOP”后面的参数设置为KDE或GNOME。

方法2:在当前用户目录下建立“.xinitrc”这个文件,文件的内容就一行startkde或gnome-session。

二、GNOME和KDE的切换

1、如果需要切换到GNOME:

#switchdesk gnome

2、如果需要切换到KDE:

#switchdesk kde

2、如果需要切换到KDE:

#startkde

图形界面与字符界面的切换

在Linux中是有多控制台的,其中前6个是字符界面,第七个是图形界面。

如果你需要切换到字符界面,可以使用CTRL+ALT+Fn来实现,其中Fn是F1-F6中的任何一个,

当然如果你是在字符界面之间互相切换就没必要CTRL了,直接ALT Fn

8、安装VNC

yum -y install vnc *vnc-server*

vim /etc/sysconfig/vncservers

vncpasswd

/etc/init.d/vncserver start

9、vCPU数量配置

vCPU,顾名思义,是虚拟CPU。 创建虚拟机时,需要配置vCPU资源。 因此vCPU是虚拟机的部件。 因此脱离VM,谈论vCPU是没有意义的。

虚拟化管理系统如何调度vCPU,取决于系统内的虚拟机数目以及虚拟机配置的vCPU的情况。

大致的情况如下:

1、当系统内VM所需的vCPU总数少于物理CPU的核数(包括超线程Core)时,虚拟化管理系统为vCPU分配的资源不超过一个物理CPU核。 vCPU与物理核的分配关系可以是绑定的,也可能是动态的。

比如服务器有20个核心,你创建了2个VM,每个VM 4个vCPU,那么这两个VM最多能够使用服务器的8个核心。

2、当系统内的VM所需要的vCPU核大于物理CPU核数时,虚拟化管理系统首先按照时间片轮流调度一遍,然后如果还有剩余的CPU资源,则给所需要的vCPU。 比如系统配置了40个vCPU,只有20个物理核。那么平均每个vCPU获取一个核心50%的资源。由于一些VM忙,一些VM空闲,虚拟化系统会在一个调度周期内,划分出若干时间片,轮流给每个vCPU使用。忙的vCPU可以使用完整个时间片,而闲的vCPU用不完整个时间片,会提前释放资源。这样在一个调度周期内,对每个vCPU都调度一遍后还有空闲的时间,调度器会把用这剩余的资源去调度忙的vCPU。 这样兼顾公平和效率。 这中调度算法具体下来,大致是如下效果:系统有1个CPU 2.0 Ghz,两个VM,分配1个vCPU。 如果VM1 和 VM2都忙,那么各自相当于拥有一个1.0 Ghz的CPU。 如果VM1很忙,VM1只需要 500Mhz的处理能力,那么在VM1看来,相当于暂时获得了 1.5Ghz的处理器。

3、通过对Xen的测试,系统所有虚拟机的vCPU的总数目小于和等于CPU核数时,VM的性能是比较稳定的。 VM的vCPU基本上绑定到了一个CPU核。 当vCPU数目大于物理核数时,VM的性能稳定性变差。

本文版权归传智播客云计算大数据学院所有,欢迎转载,转载请注明作者出处。谢谢! 作者:传智播客云计算大数据学院 首发:http://www.itcast.cn/javayun


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3