AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 39851
Accepted
Hanno Fietz
Hanno Fietz
Asked: 2009-07-14 05:28:08 +0800 CST2009-07-14 05:28:08 +0800 CST 2009-07-14 05:28:08 +0800 CST

如何在低负载期间关闭(关闭)集群节点?

  • 772

我正在为能源咨询业务开发软件并监控数据中心的能源使用情况,我注意到数据中心的典型电力负载“模式”只是一条直线,因为所有设备都 24/7 全天候运行。如果您将其与我们所做的实际使用模式(网络负载、CPU 使用率等)进行比较,您通常会经历很长一段时间,使用量很少,但可用的容量却是全部。

这些模式在许多情况下是非常可预测的,为了节省能源,定期或在低负载条件下关闭部分设备(服务器、交换机、存储)会很棒。但是,我可以想到必须考虑的几个方面,包括

  • 处理峰值负载或突然的峰值
  • 节点间数据一致性
  • 与节点的平均正常运行时间相比,启动(可能还有同步)时间长

可能还有更多。是否有软件可以处理这种情况,还有什么需要注意的?这是一个可行的建议吗?

出于我的目的,集群不一定意味着在操作系统级别上对机器进行集群,通过负载平衡器(即应用程序级别集群)接收请求的相同主机也将计算在内。我不确定 MySQL 集群或类似的工作是如何工作的,但我可能也会算上这些。

我正在寻找任何操作系统的建议。

另请参阅我在 Stack Overflow上关于能源效率的帖子,该帖子提出了这个问题。

cluster
  • 7 7 个回答
  • 1954 Views

7 个回答

  • Voted
  1. Kevin Kuphal
    2009-07-14T08:38:34+08:002009-07-14T08:38:34+08:00

    VMware

    其企业产品的最新版本 VSphere 4 可以关闭不需要满足容量需求的主机,并在需要时通过实时分发虚拟机来唤醒它们。将此与通过在虚拟化平台上整合硬件所获得的电力/能源节约相结合,您可以获得显着的能源节约。

    • 4
  2. Coops
    2009-07-14T08:44:56+08:002009-07-14T08:44:56+08:00

    刚才在 Planet Ubuntu 上提到了这一点。帖子可以在这里找到。它讨论了使用PowerNap在云中按需启动/关闭机器的实用解决方案的开发。

    • 3
  3. Michael Henry
    2009-07-14T06:56:25+08:002009-07-14T06:56:25+08:00

    这个问题有一百万个答案,其中大多数都不适合你。

    它是特定于操作系统、特定于硬件和特定于负载的。

    如果这个解决方案是响应式的,即。快速降低功耗并快速返回您应该查看具有 ACPI 睡眠功能的硬件,而不是关闭。如上所述,wakeonlan 只有在硬件处于睡眠状态时才能正常工作。

    这个问题的第二部分是控制。何时让系统进入睡眠状态以及何时再次唤醒它。在不知道您的集群如何管理工作负载的情况下,您真的不会得到答案。

    我个人运行一个前面有负载均衡器的网络农场。流量被定向到一对主机直到某个级别,然后循环其余的主机。当那些其他服务器在一小时内或 18:00 后没有显示任何活动时,它们将进入睡眠状态。当 snmp 脚本显示负载均衡器上的用户量正在增加时,那些休眠的主机会收到一个 wakeonlan 魔术包,并且集群会恢复到最大强度。它可以更细粒度,但我真的只能在现场进行实验,所以这是我有信心的小动作。

    干杯M。

    • 2
  4. Best Answer
    lukecyca
    2009-07-14T08:36:07+08:002009-07-14T08:36:07+08:00

    力量

    使用交换式 PDU,以便您可以在带外打开和关闭服务器和开关。这是独立于操作系统和设备的,这将大大简化启动和关闭设备的配置和逻辑。如果您的服务器都具有启用网络的 IPMI 接口,您可以使用这些接口。我建议不要尝试使用 LAN 唤醒等更高级别的东西来打开和关闭东西。

    上电/断电逻辑

    这可以采取多种形式。一些集群软件(例如Moab)有一个内置的解决方案。否则,您可以使用以下伪代码编写一些脚本:

    1. 检查整体集群负载
    2. 如果集群负载>阈值1,打开一些节点
    3. 如果集群负载<threshold2,关闭部分节点

    把它放在cron中,让它每半小时运行一次。

    集群软件栈

    显然,您需要确保您的集群软件堆栈能够始终处理这些设备的上下波动。在这里进行大量测试,考虑模糊的时间问题(启动需要时间)以及任何会在您使用的加电/断电逻辑中蔓延的竞争条件。

    • 1
  5. Eric Petroelje
    2009-07-14T06:31:50+08:002009-07-14T06:31:50+08:00

    好吧,对于服务器而言,SHUTDOWN.EXE 命令可用于远程关闭 Windows 框。使用 telnet/ssh 脚本可以在 Unix 上轻松完成相同的操作。

    更大的问题是如何重新启动它们。你需要Wake-on-LAN或类似的东西。

    这样做的难点在于验证您要关闭的机器实际上并没有做一些重要的事情。就像没有人真正确定它应该去哪里的 cron 作业一样,所以他们只是将它放在其中一个集群 Web 服务器上。现在您关闭了那台机器,并且该作业不再像预期的那样运行。

    如果环境受到严格控制,并且您确切地知道每台机器在做什么,那将很有意义。

    • 0
  6. conny
    2010-01-12T08:26:44+08:002010-01-12T08:26:44+08:00

    在今天,远程打开和关闭机器应该不是问题,因为几乎所有的服务器硬件都实现了IPMI,并且开始使用这些工具非常容易。

    WoL在其他用例中非常有用,例如当您的台式计算机进入睡眠状态并且您希望它在备份作业运行之前唤醒它。

    “sleep-on-LAN”没有标准接口。IPMI 旨在解决此类问题,从而为您提供更高的一致性和更好的控制。

    (更新:请注意,如果您使用dm-suspend打个盹而不是关闭,您可能可以使用 WoL 来唤醒......可能会做出一个有趣的妥协。)


    (搜索引擎注意:如果它的标题更像“自动化,集群节点的负载自适应电源循环”,我会更早发现这个线程)

    • 0
  7. pfo
    2010-01-23T09:03:11+08:002010-01-23T09:03:11+08:00

    Sun 的 SGE (Sun Grid Engine) 是一个集群调度/批量排队系统,在它的最新版本中,它支持通过根据某些队列/工作负载规范关闭当前不需要的节点来省电。请记住,这是一个类似于 HPC 的专用系统。关闭数据中心的某些部分可能是一个巨大的依赖性问题。

    • 0

相关问题

  • 使用 Nagios 监视 Novell 集群服务

  • SQL Server 群集选项

  • 构建 Beowulf 集群时的问题 [关闭]

  • SQL Server 的廉价集群

  • 从 2003 年迁移到 2008 年 Microsoft 群集技术

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve