서버가 랙에 있고 예비 전원 공급 장치가 2 개의 APC Smart-UPS 3000 XLM에 연결되어 있습니다. 각 UPS는 서로 다른 두 개의 주 전원에 연결되어 있습니다.
두 개의 apcupsd 인스턴스가 실행 중이며 각 인스턴스는 자체 UPS에 연결되어 있습니다. UPS는 배터리가 켜져있을 때를 감지 할 수 있으며 각 UPS는 서버에서 종료를 트리거 할 수 있습니다.
질문 : UPS에 배터리가 부족한 경우 어떻게 종료하지 않습니까?
참고 : Smart-UPS 3000 XLM에는 피어에 연결하고 상태를 감지 할 수있는 “전원 동기화”기능이 있습니다. 그러나 그중 하나에서 플러그를 뽑으면 종료 명령이 전송되었습니다. 다른 업이 다운 된 경우 “apcaccess”로 확인하도록 종료 스크립트를 수정하려고합니다. 이것에 대한 모든 경험을 부탁드립니다!
답변
현재 두 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
되었습니다.
답변
NUT를보십시오. 잘 처리합니다. 각 UPS의 전원 공급 장치 수와 필요한 전원 공급 장치 수를 정의하십시오. UPS에 충분한 전원 공급 장치가없는 한 종료가 트리거되지 않습니다.