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