2.6 规划虚拟化

2.6  规划虚拟化

  服务器虚拟化已经非常普及,但 SQL Server 虚拟化普及度比较低。一般来说,SQL Server 虚拟化的主要顾虑在于 I/O 竞争。数据库管理员应当意识到 SQL Server 虚拟化技术所带来的优点的缺点。


2.6.1 处理器的数目

  在虚拟化环境中,计算能力限制基于逻辑处理器的数目,而不是内核数目,这是因为处理器体系结构对客户机应用程序不可见。 例如,如果服务器的四个插槽中插入了四核处理器,同时该服务器每个内核可支持两个超线程,这样在启用超线程时就有 32 个逻辑处理器,在禁用超线程时只有 16 个逻辑处理器。 这些逻辑处理器可映射到服务器上的虚拟机,而这些虚拟机在该逻辑处理器上的计算负载映射到主机服务器中物理处理器上的执行线程。

  如果每个虚拟处理器的性能很重要,则最好禁用超线程。 用户可以在 BIOS 设置中启用或禁用超线程,但这通常是服务器范围内的操作,该操作将影响运行在该服务器上的所有工作负荷。这就可能要求将要运行在虚拟化环境中的工作负荷与会受益于物理操作系统环境中的超线程性能提升的工作负荷分隔开。


2.6.2 虚拟化的通用场景

  其中一个主要的场景是将很多台独立的 SQL Server 服务器合并到一台更强的物理服务器中。这种合并可以带来提高物理磁盘的利用率、节省电力等好处。

  另一种常用的场景是将旧版操作系统上的旧的 SQL Server 产品迁移到新版操作系统上。例如,旧的操作系统不能兼容某些应用程序,或者旧的计算机已经不能继续使用,这时候可以借助 PTV(Physical to Virtual)工具将其迁移到虚拟机。

  虚拟化同时也支持在多台物理服务器上实现高可用,避免单点故障影响虚拟机和 SQL Server 运行。。

  虚拟化环境提供方便的动态资源分配。如果不能确定每台虚拟机所需的资源时,管理员可以动态调整每台虚拟机的资源,例如,CPU、内存、磁盘空间等,以便找到最佳的平衡点。

  将虚拟化用于部署测试环境,能够简化测试过程。例如,通过快照功能提供快速回滚,使应用程序的安装过程和执行过程变得更简单。



2.6.3 虚拟化的注意事项

  为确保虚拟化满足业务需求,建议在虚拟化之前执行 POC(Proof Of Concept),用典型的示例数据库和典型的工作负荷验证虚拟化方案的可行性。

  作为 SQL Server 虚拟化最重要的一项资源,I/O资源很容易成为瓶颈。通常的观点认为虚拟化将需要更少的资源,实际上对 SQL Server 不尽如此。建议避免使用仿真的硬盘设备,考虑为 SQL Server 提供最佳的 I/O 通道。例如,使用直连的磁盘设备、应用最佳实践、使用 SQLIO预先测试目标磁盘等。

  与那些未曾虚拟化的服务器相比,虚拟化的服务器倾向于使用更多的 CPU 资源。建议分配合适的 CPU 资源,例如,为集中化程度较高的网络系统提供额外的 CPU。

  动态内存分配可能会是 SQL Server 虚拟化之后的性能瓶颈。

wKioL1T9f3rg4fxaAADpCapV9RU715.jpg

  根据上图所示,这台虚拟机(也称客户机,Guest)的启动后只用了少量的内存,如果超过了保留值,仍可以继续增加直到最大配置值。当物理机的内存已经被分配完毕,而其它虚拟机还在继续申请动态内存时,物理机会让这台虚拟机将一部分动态内存(图中的最上方区域)转移到虚拟机的内存交换文件(通常位于磁盘上)。这部分动态内存也因此被称为可交换内存(Swappable Memory)。当这台虚拟机再次需要这些内存时又会从交换文件中取回并重新加载到物理内存,此时往往会导致 SQL Server 出现短暂的“假死”状态,因此一般建议在虚拟化配置时将 SQL Server 虚拟机指定为静态内存管理。

wKioL1T9gzfAD_dhAAPMpTh_090767.jpg


本文出自 “SQL Server 管理员指南” 博客,谢绝转载!

你可能感兴趣的:(规划,虚拟化)