부하가 낮은 동안 클러스터 노드를 종료(전원 끄기)하려면 어떻게 해야 합니까?

부하가 낮은 동안 클러스터 노드를 종료(전원 끄기)하려면 어떻게 해야 합니까?

저는 에너지 컨설팅 사업을 위한 소프트웨어를 개발하고 데이터 센터의 에너지 사용을 모니터링하면서 모든 장비가 연중무휴로 작동하기 때문에 데이터 센터의 일반적인 전기 부하 "패턴"이 단지 직선이라는 것을 알게 되었습니다. 이를 실제 사용 패턴(네트워크 로드, CPU 사용량 등)과 비교해 보면 일반적으로 사용량이 거의 없지만 전체 용량을 사용할 수 있는 긴 시간이 소요됩니다.

이러한 패턴은 많은 경우 매우 예측 가능하며 에너지 절약을 위해 정기적으로 또는 저부하 조건에서 장비의 일부(서버, 스위치, 스토리지)를 끄는 것이 좋습니다. 그러나 다음을 포함하여 살펴봐야 할 여러 측면을 생각해 볼 수 있습니다.

  • 최대 부하 또는 갑작스러운 급증 처리
  • 노드 간 데이터 일관성
  • 노드의 평균 가동 시간에 비해 긴 시작(및 동기화) 시간

아마 더 있을 겁니다. 그러한 시나리오를 처리하는 소프트웨어가 있습니까? 또 무엇을 주의해야 합니까? 이것이 실행 가능한 제안입니까?

내 목적에 따르면 클러스터는 반드시 OS 수준의 클러스터 시스템을 의미하는 것은 아니며 로드 밸런서를 통해 요청을 수신하는 동일한 호스트(예: 애플리케이션 수준 클러스터링)도 포함됩니다. MySQL 클러스터 또는 유사한 작업이 어떻게 작동하는지 잘 모르겠지만 아마도 그것도 포함할 것입니다.

모든 운영 체제에 대한 조언을 찾고 있습니다.

내 것도 참조하세요에너지 효율 포스팅이 질문을 제기한 Stack Overflow에 있습니다.

답변1

사용스위치 PDU대역 외에서 서버와 스위치를 켜고 끌 수 있도록 합니다. 이는 OS 및 장치 독립적이므로 전원을 켜고 끄는 구성과 논리가 크게 단순화됩니다. 서버에 모두 네트워크 지원 IPMI 인터페이스가 있는 경우 이를 대신 사용할 수 있습니다. Wake-on-LAN과 같은 더 높은 수준의 기능을 사용하여 전원을 켜거나 끄는 것은 권장하지 않습니다.

전원 켜기/끄기 논리

이는 다양한 형태를 취할 수 있습니다. 일부 클러스터링 소프트웨어(예:모압)에는 이에 대한 솔루션이 내장되어 있습니다. 그렇지 않으면 다음 의사 코드를 사용하여 일부 스크립트를 작성할 수 있습니다.

  1. 전체 클러스터 로드 확인
  2. 클러스터 로드 > 임계값1인 경우 일부 노드를 켭니다.
  3. 클러스터 로드 < 임계값2인 경우 일부 노드를 끕니다.

cron에 넣고 30분마다 실행되도록 하세요.

클러스터링 소프트웨어 스택

분명히 클러스터링 소프트웨어 스택이 이러한 장치의 항상 작동 및 작동 중지를 처리할 수 있는지 확인해야 합니다. 여기에서 많은 테스트를 수행하고 모호한 타이밍 문제(부팅에 시간이 걸림)와 사용하는 전원 켜기/끄기 논리에서 서서히 발생하는 경쟁 조건을 고려하십시오.

답변2

VM웨어

엔터프라이즈 제품의 최신 버전인 VSphere 4는 가상 머신을 실시간으로 배포하여 용량을 충족하는 데 필요하지 않은 호스트의 전원을 끄고 필요할 때 깨울 수 있습니다. 이를 가상화된 플랫폼에 하드웨어를 통합하여 얻을 수 있는 전력/에너지 절감 효과와 결합하면 상당한 전력 절감 효과를 얻을 수 있습니다.

답변3

이것은 바로 오늘 Planet Ubuntu에서 언급되었습니다. 해당 게시물을 확인하실 수 있습니다여기. 다음을 사용하여 클라우드에서 필요에 따라 기계의 전원을 켜고 끄는 실용적인 솔루션의 개발에 대해 설명합니다.파워냅.

답변4

서버의 경우 SHUTDOWN.EXE 명령을 사용하여 Windows 상자를 원격으로 종료할 수 있습니다. Telnet/ssh 스크립트를 사용하면 Unix에서도 동일한 작업을 쉽게 수행할 수 있습니다.

더 큰 문제는 다시 백업을 시작하는 방법입니다. 당신은 필요합니다Wake-on-LAN또는 그와 비슷한 것.

이를 수행할 때 어려운 부분은 종료하려는 시스템이 실제로 중요한 작업을 수행하고 있지 않은지 확인하는 것입니다. 아무도 그것이 어디로 가야 할지 확신할 수 없는 크론 작업처럼 클러스터된 웹 서버 중 하나에 배치하기만 하면 됩니다. 이제 해당 머신을 종료하면 예상했던 대로 작업이 더 이상 실행되지 않습니다.

하지만 환경이 엄격하게 제어되고 각 기계가 수행하는 작업을 정확히 알고 있다면 많은 의미가 있습니다.

관련 정보