## UPS를 통해 (갑작스런 정전시 파일시스템 장애, 복전시 과전류와 과전압으로 인한 HDD고장) 시스템 장애 방지
서버가 원격지에 있어서 정전이 된지 모르는 시스템 관리자.. 정전 후 배터리가 모두 소진되기 전에 전기가 다시 들어오진 않는다면??
정전시 UPS의 배터리 전원이 소진되기전에 시스템으로 셧다운 신호를 보내서 안전하게 전원을 끄는 기능이 있다면 걱정을 덜을 수 있다. 해당 기능은 UPS와 시스템이 USB로 통신하면서 UPS에서 이벤트 신호를 보내어 시스템을 보호한다. 물론 UPS에서 지원이 되어야 사용가능한 기술이다. 보통 APC UPS를 사용하면 문제없이 된다.
아래는 리눅스시스템과의 연동한 간단한 문서이다.
- 테스트 결과 배터리 타임 약 5분 정도를 남겨두고 shutdown 이벤트가 발생하고 정상적으로 꺼졌다.

0. System 정보
OS : CentOS 4.7 32Bit 2.6.9-78.0.22.ELsmp
UPS : APC Smart-UPS 1000(SUA1000I) - 해당 UPS로 70W급 시스템 한대가 약 90분 간 버텼다.

1. apcups 데몬 설치
http://www.apcupsd.org 사이트에서 최신 rpm 버젼을 다운 받아서 설치.
설치하면 바로 서비스리스트에 on 상태로 올라간다.
rpm -ivh apcupsd-3.14.10-1.el4.i386.rpm

2. 데몬 구동
/etc/init.d/apcupsd start

3. USB로 연결
UPS와 USB로 연결

4. 구동 현황 확인 명령어.
/sbin/apcaccess
/sbin/apctest   --->  명령어 실행 시 apctest.output 파일이 생성됨.

5. config 파일
/etc/apcupsd/apcupsd.conf      ---> 설정 파일임.
/etc/apcupsd/apccontrol          ---> UPS에 의해 전원이 꺼지기 전 이 이벤트 명령어 셋에 의해 시스템이 꺼짐.

6. 전기 복구시
전기가 다시 복구됐을때 시스템이 자동으로 다시 켜지게 하려면 메인보드 바이오스의 Power Management 메뉴에서
정전보상(?) 기능을 활성화 시켜 놓으면 된다. 서버급 메인보드는 기본으로 활성화 되어있고 데스크탑용 메인보드는 따로 활성화를 시켜야만작동 된다. 보통 Force(또는 Enable), Last State(또는 Memory), Disable 세가지 모드인데 Last State가 가장 적당하다.
참고로 Asrock 메인보드는 Last State가 대부분 없다. Force(Enable)로 하면된다.
* 테스트 결과 Last State(Memory) 기능으로는 켜지지 않는게 확인되었다. 이유는 정상적으로 Shutdown을 하였기 때문에 그렇다.
Last State(Memory) 옵션은 정상적으로 시스템을 종료한 경우 해당 사항이 없기 때문이다.
따라서 Force 옵션으로 설정을 해놓아야 복전시 시스템이 켜질 수 있다.
- Force는 정상/비정상 종료 가리지 않고 파워서플라이로 전원이 다시 인가되면 무조건 켠다.
- 다시 정리하자면 Memory는 UPS가 없거나 UPS를 통한 전원종료 기능이 없는 UPS로 운영중인 시스템에 적용.
Force는 UPS를 통한 전원종료 기능이 있는 UPS로 운영중인 시스템에 적용하면 되겠다.

* 이 문서에서 사용한 UPS는 한대의 시스템만 USB로 연결하여 시스템 이벤트 처리가 가능하다.
그렇지만 apcupsd 데몬 스크립트를 일부 수정하거나 별도의 데몬이나 쉘스크립트를 이용하여 같은 건물내의 같은 UPS(다른 UPS에 물린 시스템도 가능)에 물려 있는 다른 리눅스서버들에게도 ssh등을 통해 이벤트를 보내서 안전하게 shutdown을 할 수 있을 것이다. 그리고 메인보드의 정전보상 기능을 이용하여 복전시 자동으로 다시 시스템이 가동되게 할 수 있을 것이다.

APC UPS 데몬 활용 - 리눅스

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다