ESX 3.5 资源组

Guy*_*Guy 2 resource-management vmware-esx

我是一名 DBA,管理着一个主要托管 SQL Server 和一些应用程序服务器的 vmware ESX 3.5 集群,我有一个关于如何设置资源组的问题,但我与 ESX 系统管理员之一发生冲突来管理资源

集群(3 个节点,每个节点 32GB)当前托管 33 个来宾,配置为消耗 77GB 的 RAM,尽管 ESX 报告只有 44GB 处于活动状态。集群托管实时、测试、开发服务器和其他一些杂项。

我想做的是简化服务器资源的管理,能够管理和报告相关服务器的性能。

例如,Live SQL 服务器、SharePoint 服务器、CRM 服务器等消耗的资源(RAM、磁盘、CPU)。

我接下来要做的是创建 4 个“顶级”资源组。

1-High    - For the most mission critical services (ie. the live SQL server)
  32768 memory shares
2-Normal  - For the majority of the remaining live systems (CRM, Sharepoint etc)
  16384 memory shares
3-Dev     - Test and development systems
  8192 memory shares
4-Low     - Non supported servers (no sla, temporary build servers etc)
  1024 memory shares
Run Code Online (Sandbox Code Playgroud)

我已将服务器分组到它们自己的“应用程序”资源组(SQL Live、SQL 测试、CRM Live、CRM 测试等)中,但没有对这些组设置任何明确的资源限制。

然后我将“应用程序”组放入适当的“顶级”资源组中。

例如,每个子组有4个guest,每个1个CPU和1GB RAM

1-High               32768 shares
    SQL Live         4 guests
2-Normal             16384 shares
    CRM Live         4 guests
    Sharepoint Live  4 guests
3-Dev                16384 shares
    CRM Test         4 guests
    SQL Test         4 guests
    Sharepoint test  4 guests
4-Low 
    Remaining cruft  4 guests
Run Code Online (Sandbox Code Playgroud)

系统管理员告诉我“Sharepoint 只能获得它所需资源的 50% 的 28%!”

在我回复他之前,我能不能得到一些建议并检查一下我的假设:

  • 在正常操作中,集群不会过度使用 RAM(或 CPU),因此没有资源限制应用于任何来宾,无论是 CPU 还是 RAM。
  • 如果其中一台主机出现故障,则只有 64GB 的 RAM 可用。随着来宾重新启动(我们启用了 HA 和 DRS),其余主机将开始重新启动来宾,这将过度使用 RAM。
  • 我想确保最高优先级的服务保持他们的服务
  • 我不想对每个客人进行微观管理!

你有什么想法和经验??

Hel*_*ick 6

如果我正确地阅读了这篇文章,那么您对环境的正常运行是正确的,但我不确定你们中的任何一个人是否对发生争用时的工作方式是正确的。

如果没有争用(争用在资源利用率超过 80% BTW 时开始),则共享无效。因此,就您环境中的正常操作而言,资源组将是装饰性的。

当出现争用时,CPU 资源将受到限制,正如您的系统管理员所指出的那样,但如果您丢失主机,则不一定会发生这种情况。

您没有说明您是否修改了子资源池上的共享。我将假设这些都设置为正常。

假设虽然共享的工作方式存在争用,但每个资源池获得的资源比例等于其在该级别共享总数的比例。对于你的第一级,你有大约 58k 股,所以高池获得大约 56%,正常获得 28%,开发获得 14%,低获得 1.7%。在每个池中,子池平等地共享该池的资源,除非您在该级别明确设置了额外的份额,如果您有相同的规则适用但池的总数不受影响。

因此,在出现争用的情况下,Live Sharepoint 系统将获得 28% 的争用资源中的 50%,即 14%。

您可以通过为每个系统所需的 CPU 和 RAM 的绝对最小值分配预留空间来帮助解决问题。保留值保证分配给您将它们分配到的系统\资源池,而不是按份额分配。它们的主要缺点是,如果值太高,集群甚至可能无法尝试重新启动 VM,因为无法保证资源。

还请记住,即使您的系统在 Windows 系统的正常操作下仅消耗约 44GB,100% 的内存会在 VM 启动时(短暂地)分配。这可能会在故障转移期间触发内存争用情况,即使系统在运行后实际上有足够的 RAM。需要注意的不仅仅是担心太多,但它可能会在 HA 重新启动期间导致问题。

编辑添加
如果您没有对单个虚拟机或子资源组的默认共享设置进行任何更改,则分配给单个虚拟机的资源比例不会改变,当您将所有虚拟机在结构中向上移动一个级别时,只有一个单个子 RG 并将它们直接放置在父级中。但是,如果有多个子 RG 且每个子代中有不同数量的 VM,则情况并非如此。

在您的示例中,假设我们在其子 RG 中有 4 个 Sharepoint VM,在其子组中有 2 个 CRM VM。Sharepoint VM 各占 3.5%(28% / 4 的 50%),CRM 虚拟机各占 7%(28% / 2 的 50%)。如果您现在将它们全部移至父 RG 并删除空的子 RG,则现在有 6 个 VM 共享普通 RG 可用资源的 28%,每个虚拟机将获得约 4.7% (28% / 6)。

当然,如果您更改子资源组或单个 VM 上的份额,这一切都会改变。