请提供有关在 VMWare ESX 中虚拟化 SQL Server 的提示和最佳实践,我对高级配置和设置感兴趣。
请提供建议背后的理由
编辑:需要澄清的是,我已经在单独的集群中使用 ISCSI equallogic San 部署了超过 70 个虚拟 SQL 服务器 -
我真正寻找的是那些高级配置,例如:
如何配置磁盘/RDM
您是否使用了 Mem.ShareScanGHz 之类的设置 -http://communities.vmware.com/thread/143828- 没有充分记录
答案1
通常我不喜欢链接到供应商白皮书,但 VMware 发布了一份关于此问题的白皮书,出奇的好:
http://www.vmware.com/files/pdf/solutions/sql_server_virtual_bp.pdf
里面的每一项都很重要,我个人可以保证其中的很多内容。虚拟 CPU 越少确实越好:如果您没有让单个 CPU 达到 100% 的饱和度,那么您就不想添加第二个虚拟 CPU。这与 VMware CPU 调度的工作方式有关。
文档中唯一没有明确定义的内容是多路径。使用 ESX 3.5 及更早版本,您无法获得真正的 SAN 主动/主动多路径。如果您需要为单个虚拟机提供多个 HBA 带宽,则它需要保留为物理机,直到 vSphere 4 推出,即使到那时,您也必须获得顶级版本才能获得真正的多路径。
答案2
我们有一个 3 节点的 vmware 集群,每个节点都是一个 HP 365(2xCPU 4 核,1.8Mhz),每个服务器有 32 GB RAM,并通过光纤通道连接到大量磁盘。
我们支持超过 20 个 SQL vm(SQL2000、SQL2005 和 SQL2008、实时、开发和测试)以及其他通用 Windows 2003 服务器(iis6、应用程序、文件和打印等),并且至少还有两倍的服务器需要迁移到它上面,我预计不会有任何性能问题。
三个节点为我们提供了“超强”的冗余和弹性。如果一个节点出现故障(或进行维护),其他两个节点仍可以提供相同的性能。三个节点是一种奢侈(或者他们喜欢称之为最佳实践),两个节点就足够了。
实际的虚拟机非常轻量。通常只有 1vCPU 和 1GB RAM,它们托管 20 或 30 个数据库。其中一两个较繁忙的虚拟机的负载是这个数字的两倍,但这通常是因为编写糟糕的应用程序使用 SQL Server 作为玩具(不使用存储过程等,但这在“其他”网站上讨论得非常透彻!;)
vm 使我们能够灵活地创建更多具有类似使用模式(使大数据移动器远离轻量级网站系统)和/或 SLA 要求(将所有重要内容与通用和标准化的操作实践结合在一起)的“较小”服务器。
由于我们拥有大量 RAM、CPU 和快速磁盘,因此我们无需对系统进行微调。磁盘是多个 RAID 10 阵列(大致分为操作系统、事务日志和数据库),其中有一些大型 RAID% 用于备份和转储。
大量冗余的 1GB 网络连接进入冗余的边缘交换机。
答案3
最近的 VMware 社区播客深入讨论了此主题。请参见此处:http://blogs.vmware.com/vmtn/2009/03/virtualizing-sql-server-podcast-white-paper.html,并在此收听第 42 集:http://www.talkshoe.com/talkshoe/web/talkCast.jsp?masterId=19367