데스크탑 옷장 속에 밀어넣기 프로젝트

또 난 뭔가 변화를 필요로 하는 것인지, 책상 위 아래에 뭔가 주렁주렁 달려있는 것들이 꼴보기가 싫어져서 계속 업에는 작업 중이다. 소형 GbE 스위치를 놓고 무선 라우터와 그 주변에 있던 NAS 등등을 모두 옷장속으로 밀어넣는 것에 성공했다. 멀티탭과 GbE 스위치는 책상 상판 바로 밑에 밀착시키는데 성공해서 이제 책상 위에 올라와 있는 것은 audio interface와 회사 노트북, 그리고 mac mini 뿐이다.

이런 작업을 할 때마다 기존에 누리던 서비스들은 하나도 포기하지 않으려고 하다보니 결국 이것 저것 꺼내와서 작업을 하게 되고, 그래서 책상은 더 어지럽혀지고 더 오래 컴퓨터에 매달리게 된다는 것은 배보다 배꼽이 더 커진 경우라고 할 수도 있다만.

마지막으로 용도가 애매해진, 그리고 큰 부피때문에 시각적으로 부정적인 포스를 내뿜는 기존 데스크탑도 옷장에 쳐박아두기로 했다. 이 데스크탑의 용도는 x86 docker와 가상머신을 필요에 따라 불러서 쓰는 것인데, 이를 가능하게 하기 위해서는 WOL (wake on lan, lan으로 특정 패킷을 보내서 컴퓨터를 켤 수 있는 기능)이 필요하다. 그런데, 이게 생각보다 쉽지 않다. 왜? 알아가보자.

먼저 컴퓨터를 원격으로 끄는 (shutdown하는) 방법은 쉽다. 다만 OS가 GUI 기반인데다 윈도우처럼 애매한 놈일 경우 끝까지 업데하겠다고 꺼지지 않고 버티거나 셧다운 과정 중에 뭔가가 실패했다며 질질 끄는 애물단지가 아닌 믿을만한 linux여야 한다. 거의 백발백중 꺼진다. 또 docker나 qemu를 돌릴 때 linux만한 성능 + 신뢰도가 있는 OS는 없다. ssh로 shutdown시키는 것을 alias해놓든가 script로 만들어놓으면 거의 단번에 꺼진다. 실패한 적이 한번도 없다.

회사로 복귀하게 되면 mac mini를 개인적으로 구매해서 쓰고 회사컴은 마찬가지로 옷장에 쳐박아두고 linux를 올려서 docker/VM 전용 머신으로 전환할 생각이다. 가뜩이나 성능도 떨어지는데 (i7 8700) 귀찮게 MacOS를 올려둘 이유가 없다 (내 인생에서 이제 더 이상의 해킨은 없다!). linux는 PC의 HW 성능이 좀 떨어진다 싶을 때 올려두고 쓰면 그 신뢰도와 빠릿함에 탄복하게 된다. command line으로 하지 못할 일도 없을 뿐더러.

WOL은 두 가지 설정이 필요하다. 하난 BIOS에서 WOL을 쓰겠다고 설정하는 것과 나머지는 ethernet device(네트워크 카드?)에 WOL을 설정하는 것이다. 윈도우즈 같으면 ethernet 설정용 dialog에서 설정해놓으면 늘 알아서 잘 해주는 반면 linux에서는 부팅할 때마다 계속해서 주지시켜주어야 한다. 그렇게 하지 않으면 설정값이 매번 날아가기 때문에 공들여 설정했더라도 무의미해진다. 따라서 systemctl 이든 rc든 init.d든 이 사실을 주지시키는 스크립트를 넣어주어야 한다.

문제는 여기서 다 끝나는 게 아니라는 것이다.

예를 들어 이렇게 WOL을 잘 설정해놓고 여러 번 시험해봤을 때 잘 동작했다고 하자. 그런데, 갑자기 정전이 일어나서 잠시라도 컴퓨터에 아무런 전원이 주어지지 않았다거나 하면 WOL 설정이 날아간다. 어디서? 컴퓨터 내부 어딘가 (내가 보기로는 BIOS와 연결된 어떤 장치의 register일 것으로 추정된다)에서.

그러면 어떻게 해야되는가? 전원을 다시 넣어주면 OS가 부트할 때 network device에게 WOL 사항을 주지시켜줄테니 그 다음부턴 되지 않을까 싶지만 그렇지 않다. 다시 WOL가 동작하게끔 설정을 해주려면 bios에 들어가서 해당 사항을 다시 주지시키고 save/exit해야 한다. 분명히 BIOS 상에 보면 WOL이 활성화 되어있는 것으로 나오지만 보드 전원이 꺼져있던 적이 있었다면 실질적인 기능은 disabled되어있다.

잘은 알 수 없으나, (내가 사용하는) BIOS에서 보안을 고려해서 이렇게 했거나 원래 이런 것이거나 둘 중 하나라고 본다. 특히 BIOS의 erP라는 기능 (컴퓨터를 되도록이면 저전력소모 상태로 두는 기능)을 WOL을 할 때는 꺼두라고 하는 것으로 보아서는 bios 상에서 아무리 WOL 기능을 활성화해두었다고 하더라도 보드 전원이 나가버리거나 아니면 거의 전류소모가 0에 가까운 상태로 갔다고 하면 WOL 설정이 무력화되는 것임을 알 수 있다.

그런데 이게 상당히 번거로운 일이다. 옷장속에 쳐박아 두고 일부러 headless로 필요할 때마다 쓰는 건데, 어쩌다 정전이 되었다거나 해서 설정이 날아가면 귀찮게 모니터/키보드 꺼내다가 연결해서 BIOS에 WOL 설정 사항을 다시 주지시켜야 하기 때문이다. 일단은 처음이니까 그렇게 해보는데, 만약 정전이 일어난다거나 해서 설정이 날아가버린다면 다시 모니터/키보드 연결해서 BIOS를 재설정하는 인내심이 생길지 의문이다.

소형 HDMI 모니터는 이럴 때 필요한 것이라는 것도 새삼깨닫게 된다.

추가: 전원이 꺼지거나 하지 않아도 WOL이 이상스레 disable된다. 여러 가지 의견이 아주 분분한데 분석하지 말고 쓰지 않기로 했다. 그냥 게으른 몸을 움직여서라도 수동으로 켜기로 했다. 2021년에 WOL 기능도 제대로 동작하지 않는 PC라니.