这是一个很难问的问题,因为我对这个话题知之甚less。 请多多包涵。
从我的angular度来看,支持相对较less的机器,虚拟化的概念有一个有趣的好处:硬件独立性。 也许这不是正确的说法,但我真的很喜欢能够把整个机器拿到任何一个硬件上的想法。
当然,我知道这是可能的,但是当涉及到虚拟磁盘和性能时,事情似乎变得棘手。 如果您使用传递到磁盘,那么您的虚拟机仍然绑定到某个硬件上。
今天有没有技术可以让一个人轻松地打包一台机器和磁盘,并将它们移动到不同的硬件上,这样I / O性能就不会受到很大的影响? 像将虚拟磁盘映像复制到新机器一样简单? 这是可能的免费解决scheme从VMware,微软等?
(当我谈到性能的时候,我不是在谈论什么大的事情……只是标准的中小型企业解决scheme:ERP,邮件等)
我不认为你在问VMotion等实时迁移function。 我想你只是问:
我如何做我的虚拟机(“IO传递”)的原始块设备/ LUN的暴露,我听说提供更好的性能比在pipe理程序pipe理的文件系统内使用虚拟磁盘文件W / O放弃硬件 – 我的VM的独立性?
您已经确定了一个权衡scheme。 去除抽象层可以使事情运行得更快,但是你这样做放弃了抽象的好处。 如果出于性能方面的考虑,您需要将原始块设备展示给您的虚拟机,那么要么计划与这些块设备“绑定”,要么使用类似于SAN级别的复制来获得某个设备在较低级别上的独立性与自己的一套性能权衡)。
就个人而言,我尽可能地尝试并保持在虚拟磁盘的舒适世界中。 抽象提供了显着的好处。
硬件独立性正是看待它的正确方式 – 将您依赖的服务与硬件分开是虚拟化带来的一大好处。
你关于可移植性和IO性能的问题并不完全清楚,但是我想我可以看到你在做什么。
几乎所有的虚拟机pipe理程序,当然所有的主stream虚拟机(VMware,Microsoft,Xen,KVM)都允许closures虚拟机并将其移动到不同的存储或完全不同的主机,没有任何问题,唯一的问题将是处理事实上你通常是复制大量的数据。 大多数厂商都有一些虚拟化pipe理程序,总的来说,把虚拟机从VMware Workstation迁移到VMware Server到VMware ESX是相当直接的。 在虚拟机pipe理程序供应商之间移动有点困难,需要进行一些转换,但所有主要供应商在一定程度上都支持这一点。 一般情况下,如果虚拟机closures,可以移动而不用复制大文件。
以最小(或不停)的时间移动虚拟机是困难的,但所有的主要厂商都提供了这个版本。 VMware称之为VMotion,微软称之为Live Migration,Citrix(Xen)称之为XenMotion或Live Motion。 所有这些都需要共享存储(SAN或NAS),并对群集中可用的各种硬件执行相当严格的限制,但它们将允许您将正在运行的VM从一个主机移动到受pipe群集中的另一个主机接近零(毫秒\亚毫秒范围)服务中断。 这是一个非常理想的function,并且往往需要昂贵的许可证,因为Bart Silverstrim在他的回答中指出,但是微软的HyperV 2008 R2服务器允许你只使用免费的(如啤酒)组件来构build这样的群集,这与思杰 相当有趣 。 如果我记得正确的话,最便宜的VMware许可证支持这个价格大约是每个CPU 2k美元,但是如果你想构build一些小的东西,你不能真正与Citrix或微软的价格点争论。 VMware可以说是最好的,但你必须付出相当大的代价,Xen比Hyper-V更成熟,但微软在过去的18-24个月里取得了巨大的进步,所以不应该打折扣。 Vmotion \ Live Migration对磁盘IO性能没有重大影响。
VMotion \ Live Migration的一个变种是让虚拟机在同一台主机上运行,但是不移动虚拟机而移动底层存储位置。 这是来自VMware的更加昂贵的许可选项(他们称之为Storage VMotion),微软有一个“快速存储迁移”,就我所知,它类似但不完全无缝。 请注意,复制过程仍然需要很长时间,并且在迁移过程中对整体存储性能产生影响,可能会产生重大影响。
在虚拟机硬盘性能方面,你应该记住一些事情。 虚拟机pipe理程序都非常好 – 即使在极端条件下,大部分情况下,您也应该能够看到80%以上的本机性能,除非您有非常奇怪的存储IO模式,您可以安全地假设95%或更高。 基本上,一个有良好存储子系统的计划好的实现应该很难从本地解决scheme中分离出来。 您需要知道您的虚拟机将需要多less性能,然后您需要提供额外的性能,以便提供额外的任何额外性能(如实时迁移\故障转移容量等)。 与其他任何东西(CPU,内存,networking带宽)一样,如果您无法提供足够的存储容量(顺序带宽,空间,IOPS),那么您的解决scheme将performance不佳。 对这些scheme进行规划的最好方法是对需要的总存储特性(可用空间,峰值总IOPS,峰值带宽)进行一个好的概念,以增加即将到来的增长需求,并确保存储解决scheme你放在哪里可以提供。
作为虚拟机托pipe环境的一般规则花费在内存上,确保你有足够的CPU能力和存储(至less在我们得到廉价的SSD存储之前)购买一个好的RAID控制器\ SAN \ NAS,并尝试购买尽可能多的磁盘您可以 – 来自8x250GB磁盘的2TB存储将远远超过2x1TB磁盘,其他条件相同。
VMWare ESXi是免费的。 具体与它的硬件要求虽然。 大部分是。
Xen可以安装半自动故障转移。 (我的意思是Xen,而不是Citrix公司的xen产品…这是指使用Heartbeat和fencing以及大量的Linux手动解决scheme来获得故障转移支持)。
这一切都取决于你所期望的“快速移动”。 Vmotion是作为一个附加组件付费的,并且从VMWare来看并不便宜,但是可以让VM无缝中断地将VM从服务器1移动到服务器2,并且通常需要在两台服务器之间采用一些共享存储的方式。
我们有一个相对快速的服务器系统,但是需要将虚拟机的快照复制到另一个位置,然后从那里运行VMWare。 复制(备份)需要几个小时才能完成,而且我通常会在周末的部分时间将服务器脱机。 虽然我们的服务器的性质让我们脱离了那段时间的离线。 如果你正在谈论一些必须全天候起来的事情,这绝对不行。
对于一个廉价的设置,你可以尝试组装一个“白色盒子”服务器(谷歌是你的朋友),每个约500美元,将与VMWare ESXi兼容,以免费运行,然后你可以在备份解决scheme上复制VM (Veeam有一些免费的复制实用程序,不知道VMWare是否要求他们现在为ESXi产品禁用它)。 那么如果你有硬件故障,你可以快速的在网上进行相当的备份。 或者如果你有快速的外部存储,你可以使用它来在两台服务器之间共享,所以如果服务器死了,你可以很快地启动第二台服务器。
我所知道的大多数解决scheme(如VMotion)都是在Xen和VMWare解决scheme中支付的。 企业function是他们的赚钱者。 无缝移动虚拟机正是市场愿意为这些function付费。 无论采用哪种方式,您都需要有适当的备份计划来备份虚拟机本身,或者与虚拟化服务器上的备份代理配合使用,至less可以在另一台虚拟机上创build新的空白备份服务器,并从备份的虚拟服务器恢复如果他们是裸机。 如果使用共享存储,则应计划在发生驱动器故障时进行良好的备份。
您应该期待类似的磁盘性能,特别是在SAN上使用原始LUN时。
磁盘性能受到影响的常见情况是分区未alignment的情况。 Windows 2003和更早的版本在创build一个新的分区时做了一些大脑受损的事情,它将从第64个分区开始。 结果是OS分区与物理卷没有alignment。 结果是单个用户数据簇被写入RAID的多个条带单元。 每第n个操作都受到影响(n取决于文件分配单元(簇)大小和条带单元大小)。 在VMWare和微软的网站上,这一切都被logging得很清楚。
分区正确alignment时,将性能提高20-40%并不罕见。
您还可以通过使用更大的NTFS分配单元大小(如8k)来提高性能。 但是你必须使用4k作为系统分区(ntldr驻留的地方)。
更多信息:
http://msdn.microsoft.com/en-us/library/dd758814.aspx
另外检查Windows 7 / Windows 2008 R2的新function,从vhd启动: