레이블이 shutdown인 게시물을 표시합니다. 모든 게시물 표시
레이블이 shutdown인 게시물을 표시합니다. 모든 게시물 표시

2016년 5월 9일 월요일

슈퍼캡을 사용해 라즈베리 파이용 간이 UPS 만들기

아두이노같이 OS/파일 시스템이 없는 경우는 갑자기 전원이 끊어져도 크게 망가질 부분은 없다. 하지만 라즈베리 파이의 경우 SD 카드에 파일시스템을 관리하고 있기 때문에 정상적으로 shutdown을 하지 않고 갑자기 전원이 나가는 경우 최악의 경우 파일시스템이 망가져 다음번에 정상 부팅이 안 될 가능성이 있다.

그래서 서버를 운영하는데 필수장비 중에 하나가 UPS(Uninterruptible Power Supply)이다.



 내부 동작 원리는 다음과 같다.


정상적으로 전기가 공급되고 있으면 배터리를 충전하면서 동시에 UPS에 연결되어 있는 장비에 전원을 공급해 준다. 하지만 정전이 되면 배터리에 충전되어 있는 전기를 이용해 장비들에 전원을 공급해주게 된다.

정전이 되면 매우 짧은 시간에 배터리에서 전원이 공급되므로 연결되어 있는 장비들은 끊어지지 않고 계속 전력을 공급받을 수 있게 된다. 물론 배터리에 무한정의 전기를 저장할 수 없으므로 짧은 시간 (서버등이 정상적으로 shutdown을 할 수 있는 시간 정도)만 전원을 공급해 줄 수 있다. 그러므로 위의 그림에는 생략되어 있지만 USB 또는 시리얼 통신 등을 통해 정전이 되었다는걸 서버에 알려 줘 안전하게 shutdown 할 수 있게 해 주는 기능을 가지고 있다.

위와 같은 일반적인 상용 UPS는 무겁고 가격도 비싸며 처음 배터리에 충전되는데에도 꽤 시간이 걸린다.

그래서 라즈베리 파이에 사용할 수 있도록 배터리 대신 슈퍼 캐패시터를 사용해 간이 UPS를 만들어 보았다. 10F  용량의 슈퍼캐패시터를 사용했기 때문에 라즈베리 파이 3의 경우 대략 약 1분 정도의 시간동안 전력을 공급해 줄 수 있다.

회로 구성은 다음과 같다.

회로도는 아래에 있다. 대부분의 슈퍼캡은 내압이 2.7V이기 때문에 내압을 5V 이상으로 올리기 위해 두개의 슈퍼캡을 직렬로 연결해 주었다.

PowerIn 쪽에 5V 전원 아답터를 연결해 주고 PowerOut 쪽을 라즈베리 파이의 전원 커넥터에 연결해 주면 된다. 그리고 PwrFail 커넥터(J3)의 +3V3은 라즈베리 파이 커넥터의 17번 핀, PwrFail은 커넥터의 11번 핀(GPIO17)에 연결해 주면 된다.

정상적으로 전원이 공급되면 PwrFail 신호가 'H'를 유지하지만 전원 공급이 끊어지고 슈퍼 캐패시터에서 전원이 공급되면 PwrFail 신호가 'L'로 바뀌게 된다. 그러므로 라즈베리 파이에서 GPIO17번 핀을 감시하다 'L'가 되면 곧바로 shutdown 명령을 수행하면 정전이 되더라도 정상 종료가 되어 파일 시스템이 망가질 일이 없어진다.


먼저 동작 테스트를 위해 위의 회로를 간단하게 만능기판 위에 꾸며 보았다. 위의 사진에서 아래쪽의 작은 LED가 PwrFail 에 연결된 LED로 전원이 공급되고 있으면 불이 켜지고, 전원이 끊어지면 불이 꺼지게 된다. 큰 LED와 DC 모터는 PowerOut에 연결해 놓은 부하(load)이다. 여기서는 라즈베리 파이 대신 전력을 사용하게 된다.


위의 동작 비디오를 보면 처음에는 작은 LED에 빨간 색 불이 켜져 있다. 즉 전원이 공급되고 있다는 것이다. 전원이 공급되고 있으니 당연히 큰 LED에 불이 들어오고 모터가 돌고 있다. 하지만 약 17초 정도쯤에서 빨간색 LED가 꺼진다. 즉 전원 공급이 중단 된 것이다. 하지만 파란색 LED는 계속 켜져 있고 모터도 계속 돌고 있다. 이 시점에서는 외부에서 전원 공급은 없지만 슈퍼 캐패시터에 충전되어 있는 전기로 출력 단자 쪽으로 전기를 공급하고 있는 것이다. 비디오는 짧게 끊었지만 약 3~4분 정도까지 모터가 회전을 지속하였다.

이제 회로 동작 검증은 끝났고 다음번 포스트에서는 직접 라즈베리 파이에 연결한 다음 전원 공급이 끊어질 때 부터 어느 정도까지 버틸 수 있는지 테스트 해 볼 것이다.

2007년 12월 16일 일요일

윈도우 XP에서 부팅과 셧다운을 빠르게 해 보자.

윈도우를 오래 사용하다 보면 이것저것 다양한 드라이버와 부팅시 실행되는 파일들이 많아지면서 부팅시간이 느려지는걸 느낄 수 있다. 윈도우를 종료할때도 마찮가지로 느려지는 것도 있고 열려있는 어플리케이션이 많으면 각각을 바로 종료시켜 버리는게 아니고 몇초씩 기다리기 때문에 심한 경우 몇분씩 걸리기도 한다.
그래서 윈도우의 시작과 종료를 빠르게 할 수 있는 방법을 알아보겠다.

먼저 시동의 경우 BootVis라는 프리웨어를 이용하면 된다. XP에서만 사용할 수 있는 소프트웨어로 원래 마이크로소프트에서 만들었지만 프리웨어로 된 BootVis는 부팅이 느린 시스템의 문제를 해결하는데 유용하다. BootVis는 윈도우 startup을 분석하고 부팅하면서 로딩하는 드라이버와 자동실행되는 프로그램을 추적해서 부팅을 느리게 해 주는 프로세스가 어떤것인지 보여준다.

사용자 삽입 이미지


사용법도 간단해서 일단 설치한 다음 'Trace'메뉴 옵션중에 하나를 선택하면 BootVis는 자동으로 컴퓨터를 재시동시키고 startup과정을 추적해서 결과를 분석해준다. BootVis가 자동으로 부팅과정을 최적화하게 할수도 있지만 좀 더 세부적으로 최적화하고 싶으면 BootVis로 분석해서 시간을 많이 잡아먹는 프로그램들 중에 확실하게 필요하지 않은 것들을 msconfig를 이용해서 비활성화 시켜버리면 된다.



사용자 삽입 이미지



bootvis.msi

BootVis Download


윈도우 종료의 경우는 실행창을 이용하면 된다.
윈도우에서 Start(시작)->Run(실행)을 선택하면 아래의 그림과 같은 창이 뜨면 shutdown -f -t 0 을 입력해주면 된다. 이렇게 하면 다른 프로세스들을 기다리지 않고 바로 시스템을 종료시켜 버리기 때문에 매우 빠르게 시스템을 종료할 수 있다.

사용자 삽입 이미지