虚拟化之vmware DirectPath I/O
首先Intel这边,必须CPU支持VT-D,基本就是i5/i7的型号,而且部分i5中低端型号还不支持,带K的不支持。同时主板要开启VT-D支持,这些从775时代开始就有了,所以型号搭配复杂。
AMD那边,CPU倒是基本都支持,45nm开始全系列和部分65nm都支持IOMMU,但只有服务器主板才开放,桌面版想用,起码都是890FX开始(IOMMU 1.2),新出的9系列,970/990x/990fx也都针对IOMMU加入默认支持行列,搭配推土机虚拟化性能才得以发挥,但现在价格过高,性价比和intel差不多。
选择的时候,连VMware官方论坛都是将AMD的IOMMU当成实验性质的,也就是性能不可预计,稳定性不可知。
自然intel那边成为了首选,考虑内存优先,那么i7 1366+X58+6x 4/8G 的大内存应该是首选,sandy bridge的i5/i7二代支持vt-d的型号价格都偏高,这就延续了过去775时代Q6600/Q8400 CPU价格功耗过高,而E5200/E6600只支持vt-x的选择性困难。现在看4月发布ivy bridge是否在虚拟化的性能上有所差距,如果只停留在10%范围,那么完全可以考虑上老平台。
(update:X58平台功耗高于sandy bridge 50W平均,不是家庭用户的选择)
存储是虚拟化的基础,所有软raid(南桥,低端raid卡)都不能被esxi支持,而是识别为独立硬盘,所以要考虑稳定的存储管理系统,freenas/openfiler/solaris才是下一步重点学习的方向。
本文讨论的是DirectPath I/O。
让我们由浅入深地通过一些问答来逐步展开DirectPath I/O的世界:
Q: 什么是DirectPath I/O?
A: VMware官方手册这么说:『通过 DirectPath I/O,虚拟机可以使用 I/O 内存管理单元访问平台上的物理 PCI 功能』
其实就是VM绕开了Hypervisor的管理,直接访问I/O设备。而最常见的I/O设备就是网卡。
Q: 为啥要用DirectPath I/O? (DirectPath I/O的优点)
A: 因为它绕开了hypervisor对I/O的处理,所以具有两大优点:
第一,速度快
第二,CPU的开销小
Q: DirectPath I/O的缺点?
A: VMware的手册中说:
配置了 DirectPath 的虚拟机不具有以下功能:
vMotion
虚拟设备的热添加和热移除
挂起和恢复
记录和重放
Fault Tolerance
High Availability
DRS(受限的可用性。虚拟机可以属于某个群集,但不能在主机之间迁移)
快照
Q: 为啥启用了DirectPath I/O,上述那么多功能都没法使用?
A: 以上功能比如vMotion、FT、HA、Snapshot等等,都是Hypervisor通过VMKernel来实现的。而DirectPath I/O绕开了Hypervisor,直接访问了物理网卡,自然这些功能就无法用了。
Q: 哇,这么多重要的功能不能用了!好吧,没有了vMotion,虚拟化还有什么意义!没有了HA,生产应用怎么敢虚拟化?这么看来DirectPath I/O完全就是个废品嘛。
A: 且慢,VMware vSphere 5.1的手册里面还有这么一段描述:
只有在 Cisco 统一计算系统 (UCS) 上通过 Cisco Virtual Machine Fabric Extender (VM-FEX) 分布式交换机配置有 DirectPath I/O 的虚拟机才具有下列功能。
vMotion
虚拟设备的热添加和热移除
挂起和恢复
High Availability
DRS
快照
为啥呢?因为Cisco的UCS系统上的网卡很奇妙,这种被叫做VIC的网卡是一种高级的融合式网卡(CNA),可以虚拟化成多个vNIC。与HP的Flex-10网卡只能最多虚拟化成4个静态vNIC不同,Cisco UCS的VIC可以虚拟化成128个(型号1240)或256个(型号1280)vNIC。而且Cisco支持Dynamic vNIC,这种类型的vNIC不是固定的,可以随着VM的漂移而移动。通过和VMware的结合,Dynamic vNIC在VM移来或虚拟设备热添加时被创建出来,在VM移走或虚拟设备热移除时被删掉。这就解决了问题,即不通过Hypervisor的管理又能同时实现vMotion。解决了vMotion的问题,HA、DRS等等问题也就迎刃而解了。
所以说,应用了Cisco UCS VM-FEX分布式交换机,我们就可以做到既实现了DirectPath I/O的优点,又避免了其致命的缺点。
Q: 那么结合了VM-FEX vDS和DirectPath I/O,是不是就天衣无缝,完全没有缺点了呢?是不是在所有场合下都可以应用DirectPath I/O了呢?
A: No. 还有2个缺点。
首先Dynamic vNIC有数量限制,其数量的上限是IO Module(2204或2208)uplink数量乘以15减去4。
例如配置了2个2204 IO Module的UCS刀箱满配一共有8个上联链路,那么可以配置的Dynamic vNIC的上限就是8×15-4=116个。
实际情况是静态vNIC和vHBA还会占用一些vNIC数,所以116也不一定能达到。
而动态vNIC的总数限制就是一台物理主机上所有VM的所有网卡的数量上限。
116不是一个很大的数字,在某些应用的情况下,一台VM可能会需要2个以上的网卡,也就是会占用2个以上的动态vNIC,这导致了动态vNIC数量非常紧张。当无法创建新的动态vNIC时,新的虚拟机就无法创建出来,也无法向这台主机vMotion迁移虚拟机。
其次,要启用VM-FEX 结合的DirectPath I/O,虚拟机必须做内存保留(memory reservation),而且是所有内存都必须保留。这使得虚拟机插槽(slot)变得非常大,而且也使得主机无法充分利用内存,无法进行内存过量分配(overcommitment)。
结论:由于DirectPath I/O只有在I/O繁重的情况下才能发挥其优势。即使你使用了Cisco UCS,也要根据自己的情况来衡量是否需要采用VM-FEX分布式交换机来启用DirectPath I/O。套用一句老化,没有最好只有最合适。因此在进行架构设计的时候,请选择适合你的组织的方案,而不是盲目追求最快最新。
综合而言,direct i/o 性能绝对是好的,当然,也是牺牲了相关的可用性;用ucs,去补偿
虚拟化之vmware DirectPath I/O的更多相关文章
- VMware vSphere 服务器虚拟化之十六 桌面虚拟化之VMware Horizon View
VMware vSphere服务器虚拟化之十六 桌面虚拟化之VMware Horizon View VMware Horizon View (原VMware View的升级版现在版本5.2)是 ...
- 虚拟化(一):虚拟化和vmware产品描述
由于公司最近取得了虚拟化监控,因此,我们需要虚拟化的认识,总结学习,对于虚拟化的概念.从百度百科,例如下列: 虚拟化.是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上 ...
- 虚拟化系列-VMware vSphere 5.1 简介与安装
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://mabofeng.blog.51cto.com/2661587/1017680 一 ...
- 虚拟化(二):虚拟化及vmware workstation产品使用
虚拟化(一):虚拟化及vmware产品介绍 vmware workstation的最新版本号是10.0.2. 相信大家也都使用过,当中的简单的虚拟机的创建.删除等,都非常easy.这里就不再具体说明了 ...
- 【转】虚拟化(一):虚拟化及vmware产品介绍
由于公司最近在做虚拟化监控,因此就需要把虚拟化方面的知识给学习总结一下,对于虚拟化的概念,摘自百度百科,如下: 虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机 ...
- 虚拟化之vmware虚拟机扩容与克隆
前提条件: 1.在新建虚拟机的时候创建磁盘如下图,之后这个磁盘就可以在虚拟机关机状态下动态扩展大小,否则只能通过添加另外一块硬盘的方式来扩容.
- Vcenter虚拟化三部曲----VMWare ESXi 5.5安装及配置
VMWare ESXi 5.5安装大概过程如下:制作虚拟化ESXi系统的USB启动盘,安装ESXi系统到USB,用USB启动ESXi系统.比较难理解,下面图解过程. 下载UNetbootin (下 ...
- 【转】虚拟化(二):虚拟化及vmware workstation产品使用
vmware workstation的最新版本是10.0.2.相信大家也都使用过,其中的简单的虚拟机的创建,删除等,都很简单,这里就不再详细说明了,下面我将简单介绍下vmware workstatio ...
- vmware安装ubuntu12.04嵌套安装xen server(实现嵌套虚拟化)
环境准备 软件:vmware workstation 9.0 ubuntu-12.04.2-server-amd64(官方下载) 硬件:确认CPU支持虚拟化VM-T vmware设置 vmwar ...
随机推荐
- swift系统学习控件篇:UIbutton+UIlabel+UITextField+UISwitch+UISlider
工作之余,学习下swift大法.把自己的学习过程分享一下.当中的布局很乱,就表在意这些细节了.直接上代码: UIButton+UILabel // // ViewController.swift // ...
- php中cookie+mysql实现的购物车代码
<?php//购物车session的产生代码if(! $session && ! $scid) { /* session用来区别每一个购物车,相当于每个车的身份证号: scid只 ...
- git 恢复工作区删除的所有文件
/********************************************************************* * git 恢复工作区删除的所有文件 * 说明: * 今天 ...
- cJSON_hacking
/****************************************************************************** * cJSON_hacking * * ...
- cron用法
cron用法说明 cron的用法老是记不住,索性写下来备忘.下文内容大部分是根据<Cron Help Guide>翻译而来,有些部分是自己加上的. 全文如下: cron来源于希腊单词chr ...
- vs2013常用快捷键收集
vs2013快捷键: 复制一整行代码: Ctrl+C剪切一整行代码: Ctrl+X删除一整行代码: Ctrl+L跳转到指定的行:ctrl+G 注释:组合键“Ctrl+K+C”取消注释:组合键“Ctrl ...
- PAT (Basic Level) Practise:1009. 说反话
[题目链接] 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字 ...
- [翻译]Java垃圾收集精粹(Java Garbage Collection Distilled)
source URL: http://www.infoq.com/articles/Java_Garbage_Collection_Distilled Name: Java Garbage Colle ...
- CSS table-layout 、border-collapse属性
( table-layout)设置表格布局算法: 可能的值 值 描述 automatic 默认.列宽度由单元格内容设定. fixed 列宽由表格宽度和列宽度设定. inherit 规定应该从父元素继承 ...
- 隐马尔科夫模型(HMM)的概念
定义隐马尔科夫模型可以用一个三元组(π,A,B)来定义:π 表示初始状态概率的向量A =(aij)(隐藏状态的)转移矩阵 P(Xit|Xj(t-1)) t-1时刻是j而t时刻是i的概率B =(bij) ...