虚拟化环境

Vertica 支持在符合 vioperfvnetperfvcpuperf 性能要求的任何虚拟化环境中运行。

Vertica 不支持 VM 快照。

Vertica 对 VMware 进行了测试,如果基础硬件配置正确,VMWare 即可有效运行。客户还成功部署了其他虚拟化配置。如果您选择在其他虚拟化配置上运行 Vertica 并遇到问题,Vertica 支持团队可能会要求您使用裸机环境再现该问题,以便开展故障排除。根据案例的详细信息,支持团队也可能会要求您输入虚拟化供应商提供的支持工单。

虚拟机管理程序和虚拟机配置指导原则

当今市场上充斥着大量企业级虚拟机管理程序,其中大部分支持基于 Linux 的虚拟机 (VM) 以支持 Vertica。选择和配置虚拟环境时,请参考以下指导原则。

  • 请勿超额订阅托管硬件的物理资源(CPU、内存和网络)。很多虚拟机管理程序允许通过超额订阅资源来利用横向扩展解决方案,例如,部署的虚拟 CPU 超出实际安装在主机硬件中的 CPU。但是,此类部署会对 Vertica 群集的性能产生负面影响。

  • 配置虚拟机管理程序运行低延迟、高性能应用程序。这意味着,应在虚拟机管理程序硬件上禁用节能功能和 CPU 频率调整,因为这些技术会引发应用程序延迟。

  • 为 Vertica 和正在使用的虚拟机管理程序支持的 Vertica VM 选择操作系统。对于某些虚拟机管理程序,某些操作系统的性能可能优于其他操作系统。Vertica 建议您与虚拟机管理程序供应商共同调查这些选项。

  • 配置附加存储,实现高 I/O 性能。虚拟化 Vertica 节点需要与非虚拟化节点实现等量磁盘 I/O 性能。Vertica 建议客户使用 vioperf 实用程序来验证每个 VM 将会实现的实际性能吞吐量。

  • 如果使用共享存储设备提供存储,请确保基于整个群集验证磁盘 I/O 性能,以避免共享资源产生瓶颈。要实现此验证,请在所有群集节点上同时运行 vioperf 实用程序,以确定高 I/O 负载时段每个 VM 都能实现的最大磁盘 I/O 性能。

  • 在虚拟化环境中运行的 Vertica 的内存建议与在非虚拟化环境中运行没有什么不同。Vertica 建议您为每个虚拟核心分配 8 GB 内存。同样,请勿超额订阅虚拟机管理程序中的可用内存,因为这会导致物理资源争用,引发负面性能影响,而且可能导致 VM 崩溃。

  • 虚拟化 Vertica 群集的网络要求与非虚拟化群集相同。群集中的每个节点必须能够与所有其他节点通信,这些通信延迟可能会对群集性能产生负面影响。当您在单个主机服务器上运行多个虚拟机时,网络通信速度极快。这是因为网络流量在虚拟机管理程序的内存空间进行虚拟化,而且永远不会脱离物理服务器。但是,如果群集扩展到单个主机之外,则该主机的物理网络可能成为群集的瓶颈。如果部署到虚拟环境中,则该环境具有强大的网络基础架构,可以在物理主机之间提供必要的连接速度。在大多数情况下,将有多个 10 GBE 网络连接。使用 vnetperf 实用程序验证 Vertica 群集中节点之间的实际网络性能速度。

  • 每个物理主机部署多个 Vertica VM 时,数量越少越好。虚拟化的目标在于整合工作负载,缩小硬件占用的整体空间。但是,在同一主机上运行多个 Vertica VM 可能会使 Vertica 群集陷入困境,即单一硬件故障可能导致群集中的多个节点乃至群集本身发生瘫痪。Vertica 建议,对 Vertica 群集进行虚拟化时,将 VM 分散到尽可能多的物理主机上,理想的目标是每个物理主机部署一个 Vertica VM。

  • 虽然虚拟网络非常强大,但 Vertica 发现,在大多数虚拟环境中,spread 守护程序中使用的 UDP 广播流量可能不够可靠,特别是当这些环境分散在多个物理主机上时尤其不可靠。为使 Vertica 在虚拟化环境中有效运行,请在执行 /opt/vertica/sbin/install_vertica 脚本时使用 --point-to-point 标记。此标记可配置 spread 守护程序直接相互通信。