예비 전원 공급 장치에 서버 1 개, APC UPS 2 개 : 종료를 트리거하는 방법은 무엇입니까?


10

서버가 랙에 있고 예비 전원 공급 장치가 2 개의 APC Smart-UPS 3000 XLM에 연결되어 있습니다. 각 UPS는 서로 다른 두 개의 주 전원에 연결되어 있습니다.

두 개의 apcupsd 인스턴스가 실행 중이며 각 인스턴스는 자체 UPS에 연결되어 있습니다. UPS는 배터리가 켜져있을 때를 감지 할 수 있으며 각 UPS는 서버에서 종료를 트리거 할 수 있습니다.

질문 : UPS에 배터리가 부족한 경우 어떻게 종료하지 않습니까?

참고 : Smart-UPS 3000 XLM에는 피어에 연결하고 상태를 감지 할 수있는 "전원 동기화"기능이 있습니다. 그러나 그중 하나에서 플러그를 뽑으면 종료 명령이 전송되었습니다. 다른 업이 다운 된 경우 "apcaccess"로 확인하도록 종료 스크립트를 수정하려고합니다. 이것에 대한 모든 경험을 부탁드립니다!

답변:


13

현재 두 UPS 중 하나가 죽으면 doshutdown 이벤트가 트리거되고 apccontrol을 통해 기본 스크립트를 실행합니다 . doshutdown의 가 이벤트에 연결하지 않고, 종료와 함께 정상적으로 진행으로 스크립트는 두 번째 UPS를 무시합니다.

doshutdown 이벤트를 어느 정도 연결 하려면 apcupsd 의 두 인스턴스에 특별히 사용자 정의 된 구성 파일이 필요합니다. 차이점은 이벤트 스크립트를 실행해야하는 디렉토리에 있습니다.

첫 업의 주요 속성 /etc/apcupsd/apcupsd.ups0.conf

SCRIPTDIR /etc/apcupsd/ups0
UPSNAME ups0
DEVICE /dev/ups0
PWRFAILDIR /etc/apcupsd/ups0
NOLOGINDIR /etc/apcupsd/ups0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.0.events

그리고 ups1의 경우 /etc/apcupsd/apcupsd.ups1.conf

SCRIPTDIR /etc/apcupsd/ups1
UPSNAME ups1
DEVICE /dev/ups1
PWRFAILDIR /etc/apcupsd/ups1
NOLOGINDIR /etc/apcupsd/ups1
NISPORT 3552
EVENTSFILE /var/log/apcupsd.1.events

scriptdir 은 기본 스크립트의 사본을 가져와야 합니다. 기계를 직접 종료하지는 않지만 다른 UPS가 여전히 켜져 있는지 또는 종료 모드인지 확인 해야하는 doshutdown 스크립트
를 사용자 정의하려고 합니다.

doshutdown 스크립트 상단에 다음과 같은 내용을 추가 할 수 있습니다.

업 0

if [ ! -f /tmp/ups1.is.down ]
then
  touch /tmp/ups0.is.down
  exit 99
fi

업 1

if [ ! -f /tmp/ups0.is.down ]
then
  touch /tmp/ups1.is.down
  exit 99
fi

상태 99는 특별한 의미를 가지며, 이는 apccontrol 에게 진행중인 작업을 중지하도록 지시 합니다. 다섯 줄은 다른 UPS 다운 파일이 작성되었는지 확인합니다. 아니오 인 경우 , 다운 파일은 다운 된 파일에 대해 작성되고 종료됩니다. 예인 경우 다른 UPS가 다운되었다는 의미입니다.이 UPS도 다운되므로 스크립트가 계속 진행되고 머신이 종료됩니다.

파일 /tmp/usp[01].is.down은 ups [01]이 현재 작동 중지되었는지 표시합니다.

중요 : apcupsd의 init.d 시작 스크립트가 이전 세션에서 작성된 파일을 제거해야합니다.

rm -f /tmp/usp[01].is.down

마지막으로 위에서 생성 한 / etc / apcupsd / ups [01] 디렉토리는 apcupsd 사용자 (또는 인스턴스를 실행하는 관련 사용자) 에게 액세스 권한을 부여해야합니다 .

chown -R apcupsd /etc/apcupsd/ups[01]

상기 봐 제발 자세한 설명서를 .

/tmp/ups[01].is.down이름을 수정하여 수정.is 되었습니다.


1
일반 사용자는 /tmp/ups1.is.down 터치로 서버를 중지 할 수 있습니다. touch /tmp/ups0.is.down : D 예를 들어 / var / run을 사용하는 것이 좋습니다. Btw. 누군가 잘라서 솔루션을 붙여 넣는 경우 rm -f /tmp/usp[01].is.down은 오타입니다. 그런데 전원이 다시 들어 오면 apccontrol의 배터리 교체 사례에서 /tmp/ups[01].is.down을 삭제해야합니다.
Harka Gyozo

1
다른 파일을 확인하기 전에 자신의 is.down 파일을 터치하는 것이 좋습니다. 지금과 같은 방식으로 두 경기가 동시에 동시에 진행되면 경합 조건 창이 작은 것 같습니다.
Michael Kohne

4

NUT를보십시오. 잘 처리합니다. 각 UPS의 전원 공급 장치 수와 필요한 전원 공급 장치 수를 정의하십시오. UPS에 충분한 전원 공급 장치가없는 한 종료가 트리거되지 않습니다.

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