클라우드 스토리지 서버를 자동으로 최대 절전 모드로 전환하려면 어떻게해야합니까?


13

연중 무휴 24 시간 사용할 수없고 전원 관리 솔루션이 필요한 Ubuntu 16.04 lts 및 NextCloud / OwnCloud를 실행하는 클라우드 스토리지 데이터 센터가 있습니다. 서버는 Dell PowerEdge 1950 Gen II 및 Dell PowerEdge 2950 Gen II입니다.

전반적인 목표

최대 20 분의 유휴 시간이 지난 최대 절전 모드 클라우드 서버는 WOL을 통해 최대 절전 모드를 해제하여 데이터 센터에서만 연간 6272.09 킬로그램의 이산화탄소를 6680kw로 줄였습니다. 자세한 에너지 감사를 통해 측정 된 수치입니다.

효과적인 솔루션 시도

경치

온 프레미스 / 크론 작업은 예정된 시작 및 종료 만 제공하므로 달성 할 수 없습니다.

파워 냅

powernap은 갈 길이지만 Ubuntu 16.04에서 서비스가 시작되지 않습니다

XXXXXXX ~ $ sudo 서비스 파워 냅 상태
● powernap.service-PowerNap
   로드 됨 :로드 됨 (/lib/systemd/system/powernap.service; 비활성화 됨; 공급 업체 사전 설정
   활성 : 비활성 (죽음)

ponwernap은 더 이상 Ubuntu 16.04에서 사용할 수없는 network.service와 같은 감가 상각 서비스를 사용하는 것 같습니다

달성 가능한 목표

WOL (Wake On LAN)

링크 에서 수동 설정을 수행하면 WOL을 쉽게 사용할 수 있습니다. 또는 powewake를 사용하여

서버 최대 절전 모드

지금까지는 sudo systemctl hibernateand를 사용하여 서버를 최대 절전 모드로 전환했습니다.sudo systemctl hibernate-sleep

  1. powernap-고갈 된 종속성을 제거하기 위해 버그 보고서를 제출하고 있습니다.
  2. systemctl-어딘가로 이어질 수 있습니다
  3. 오후 유틸리티-어딘가로 이어질 수 있습니다

하드웨어 업그레이드

Dell 1950 Gen II 듀얼 Xeon E5335의 CPU를 Xeon X5365 CPU로 업그레이드했습니다. X5365는 전원 관리를 활성화하고 BIOS에서 전원 관리를 설정합니다. 솔직히 말해서, X5365가 CPU 당 70 와트를 E5335보다 더 많이 소비하는 것과 같은 업그레이드를 선호하지 않았지만 최대 절전 모드 테스트를 선호했습니다.

업데이트 1

지금이 순간 에는 nic의 pm-utils설정과 분리되는 유일한 방법 wol입니다. 현재 유휴 시간 동안 AC 설정을위한 전원 후크를 만들기 위해 최적의 구성을 탐색 중입니다.

모든 권장 사항을 참조하십시오.


1
Ask Ubuntu에 오신 것을 환영합니다. 질문이 뭐에요? 제발 더 구체적으로 .
MadMike

유휴 시간이 지난 최대 절전 모드 클라우드 서버는 WOL을 통해 최대 절전 모드를 해제했습니다. 추가 세부 사항은 실제 시나리오 예제를 제공하는 것입니다.
Fab

1
나는 당신의 걸림돌이 무엇인지 알 수 없었습니다. 작동하지 않는 것이 무엇인지, 또는 구체적으로 이해하는 데 도움이 필요한 것은 무엇입니까?
잔나

3
실용적이지 않습니까? RAM 크기와 디스크 읽기 / 쓰기 속도에 따라 최대 절전 모드와 다시 시작하는 데 몇 분이 걸릴 수 있습니다. 그 시간 동안 요청은 어떻게 처리됩니까? 사용자가 그렇게 오래 기다리기를 원하십니까? 일시 중단은 민첩성을 유지하면서 전력을 절약하기위한 타협점 일 수 있습니다. 또한 서버를 가상화하고 하나의 강력한 시스템 또는 클러스터에서 서버를 호스팅하여 부품을 일시 중단 / 다시 시작하는 한편 다른 장비의 부하를 분산시키는 것도 전력 절약에 도움이 될 수 있습니다. 그러나 대규모 서버 시스템에 대한 경험은 없지만 추측합니다.
바이트 사령관

1
Byte Commander와 동의합니다. 실제 데이터 센터 운영 경험이있는 사람들의 의견을 들어 보려면 Server Fault를 요청해야합니다 .
David Foerster

답변:


0

나는 매 15 분마다 또는 시스템 타이머를 사용하여 cronjob에서 실행할 수있는 작은 스크립트를 모았습니다.

#/bin/bash

NActiveUsers=$(who -q | awk -F'#' '{printf $2}' | awk -F'=' '{printf $2}')
AvgLoad15Min=$(cat /proc/loadavg | awk -F' ' '{print $3}')

ActiveUsersThresh=2
AvgLoadThresh=0.15

if [ "$NActiveUsers" -lt "$ActiveUsersThresh" ]
then
    LoadBelowThresh=$(echo $AvgLoad15Min'<'$AvgLoadThresh | bc -l)
    if [ "$LoadBelowThresh" -eq 1 ]
    then
        systemctl hibernate
    fi
fi

먼저 시스템에 로그인 한 사용자 수와 지난 15 분 동안의 평균로드를 얻습니다. 을 사용하여 유휴 평균 시스템로드를 찾을 수 있어야합니다 cat /proc/loadavg. 세 번째 부동 소수점 숫자는 지난 15 분 동안의 평균을 나타냅니다. 이 값은 변수에 설정된 임계 값을 정의하는 데 도움이됩니다 AvgLoadThresh. 이것은 반드시 튜닝이 필요합니다. 정의 할 수있는 다른 것은 로그인 할 수있는 사용자 수와 시스템이 최대 절전 모드로 전환되는 것입니다. 에 설정되어 ActiveUsersThresh있습니다. 유지 관리 또는 기타 작업을 수행 할 때 시스템이 항상 최대 절전 모드로 전환되지 않도록하십시오.

더 지능적인 검사를 수행 할 수 있다고 생각합니다. 첫 번째 간단한 사고 방식으로보십시오. 예를 들어, 고유 한 클라우드 설치에 어떤 데이터베이스 또는 웹 서버가 사용되는지 모르지만 최대 절전 모드 명령 전에 정상적으로 중지하려고하면 아무도 갑자기 연결을 느슨하게하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.