SW 개발

홈서버 만들기 2 : 서버(NAS)세팅 하기 기초 : OS선정과 기본 세팅

. . . 2013. 7. 18. 13:44
반응형
  • 마크다운변환 : 20190905

이전글...

[정보모음/IT & 개발정보] - 홈서버 만들기 1 : 서버세팅 준비과정 : NAS 그거 필요해?

이전글에 이어서...구형노트북으로 NAS 및 홈서버 시스템을 구축하기로 했으니... 이제 슬슬 실제 설치를 해봅니다.

....

설치에 앞서... 어떤거를 설치해야할지 결정을 합니다.

OS 선정

결론적으로 Linux 를 선택하기로 합니다. Linux 를 사용하기로 한 이유는 다음과 같습니다.

  1. 빠르다. ==> 부팅시간부터 실제 동작시간등등 가볍기때문에 빠릅니다.
  2. 무료다. ==> web server 를 설치하기 위해 이것저것 설치하는 여러 패키지들이 모두 무료입니다! 3, 주변 강좌가 많다 ==> 여러가지 사이트에서 온갖 강좌들을 쉽게 찾을수있습니다.
  3. 외부 제어가 쉽다 ==> 외부에서 콘솔창 한개만 있으면 온갖 동작을 자유롭게 할수있습니다.
  4. 커스터마이징이 가능하다 ==> 필요없는 기능 제거 등등 OS커스터 마이징이 가능합니다.

일단... 여러가지 linux 배포판이 있지만... 가장 설치하기 쉽고 자료가 많은것으로 살펴보니..

ubuntu 가 가장 만만하더군요.

Ubuntu 설치!!

Ubuntu 는 아래의 사이트에서 공짜로 다운로드가 가능합니다.

http://www.ubuntu.com/desktop

위의 Get Ubuntu now 버튼을 누르면 다운로드가 가능합니다.

일단 12.04 버젼으로 설치합니다. (LTS 버젼이라 버젼지원을 오랫동안해준다고하니 일단 설치..ㅋㅋ)

일단 설치를 하고난다음에 기본세팅을 해봅니다.

저전력 홈서버로 사용하기 위한 기본세팅

이미 구형노트북을 파워를 고친다거나 HW 뜯어고쳐서 저전력으로 사용하기는 불가능합니다. 제가 저전력으로 구동시키기 위해서 선택한 방법은...

  1. 필요할때 켜고, 필요없으면 끄게 하자
  2. 리눅스를 최대한 가볍게 만들어서 sleep 상태로 많이 빠지게 하자.

위의 두가지 입니다.

세팅1-1 : 필요할때 키자

사용할때만 컴퓨터를 켜려면 공유기의 WOL 기능을 이용합니다.

일단 사용하고있는 노트북의 bios 화면에 들어가서 WOL 기능을 활성화시킵니다. 그다음은 공유기의 WOL 기능을 세팅합니다.

저의 경우 IPtime 공유기를 사용하고 있는데요. IPTime의 WOL 기능관련 메뉴얼은 다음URL 을 참고하세용

일단, 여기까지 오셨으면... 공유기와 컴터의 WOL 기능을 활성화 시켰다면, 외부에서 컴퓨터를 켤수있게 세팅이 완료되었습니다.

이제부터 일단 컴퓨터를 꺼놨다가 사용하기 위해서 커퓨터를 켤때는 스마트폰을 이용해서 WOL 신호만 보내주면 됩니다. 하지만, 스마트폰에서 WOL 기능을 사용하려면 매번 공유기의 설정화면에 들어가기가 귀찮더군요..

다행히도 IPtime 에서는 WOL 용 어플을 따로 제공합니다.

  • http://coolpunch.tistory.com/554

최근 버젼에서는 IPTime 의 WOL 어플이 외부 바로가기도 제공합니다.

위의 화면에서...

켜고자 하는 컴퓨터를 길게 누르면 외부 바로가기 생성 매뉴가 있습니다. 해당 메뉴를 이용해서 홈화면에 컴퓨터켜기 바로가기를 생성해놓고 편리하게 WOL 기능을 이용합니다.

이제 편리하게 스마트폰으로 컴퓨터를 켤수있게되었습니다!!!

이제 컴퓨터를 끄는것이 문제입니다...

세팅1-2 : 필요할때 끄자

리눅스는 명령어로 모든 동작을 제어할수있는데요.

그 환경을 만들어줍니다.

SSH 를 통한 리눅스 제어

ssh 세팅 및 사용방법은 아래의 순서대로 하시면 됩니다.

1. ssh 설치

외부에서 리눅스 컴퓨터를 주무르기 위해서 다음의 명령어로 ssh를 설치합니다.

  sudo apt-get install ssh

2. 리눅스의 네트워크 설정

외부에서 리눅스 컴퓨터를 접속하기 위해서 일단 리눅스의 ip 를 static 으로 잡아줍니다.

  • 간단히 UI 로 하시려면 ==> http://logon.tistory.com/4
  • 아님 명령어로 하시려면 ==> http://sunglass9.blogspot.kr/2012/05/1204-lts-ip.html

3. Port Forward

이제 DDNS 를 통해서 외부에서 리눅스 접속을 하기위해서 Port를 열어줍니다.

저는 2020 번으로 열었습니다.

4. Test

일단 다른 컴퓨터에서 putty (http://kldp.net/projects/iputty/) 를 이용하여 해당 포트로 접속한후에 id 와 pass 를 치고 접속하고,다음의 명령어를 쳐봅니다.

    sudo shutdown -h now

여기까지 됐으면 일단 외부에서 컴퓨터를 끄는것도가능해졌습니다.

....

하지만 스마트폰으로 컴퓨터를 끄려면 ssh 에 접속해서 이것저것 명령어 치는것이 너무 귀찮고 힘들더군요;;;

그래서 안드로이드 어플을 찾아보니 다음의 어플이 있습니다.

script kitty 라는 어플인데요, 해당 어플은 미리 정의 한 명령어를 ssh 로 전송합니다.

하지만 문제점이 있습니다.

sudo 같은 root 권한이 필요한 명령어는 수행을 못한다는것이죠 (다음에 다시 루트 비번을 쳐야해서요;;) 그래서 일단 ssh 를 root 로 접속을 하는방법을 다음사이트를 보면서 세팅합니다.

  • http://pirtaja.tistory.com/9

이제 kitty 로 root 명령어까지 날릴수있게 됐습니다.

script kitty 를 간단히 보여드리면...

위와같이 명령어를 추가하고...

추가한 명령어를 누르면 해당 명령어가 실행됩니다.

제 컴퓨터 끄기도 원격에서 편안하게 컴퓨터를 끄는것이!!!! 가능해졌습니다!!!!!

세팅1-3 : 자동으로 꺼지게 하쟈!

근데 문제가 있었습니다!! 가끔 컴퓨터를 끄는것을 깜박하는경우가 있더라구요;;

자동으로 컴퓨터를 끄게할수는 없을까?

리눅스에는 crond 라는 강력한 서비스가있습니다.

crond 를 설정하는것은 아래의 포스팅을 참고해주세요.

  • http://hninja.tistory.com/75

crond를 이용하여 제가 이용하지 않는 시간에는 자동으로 끄게 다음과 같이 세팅하였습니다.

# 매일 새벽에 컴터를 끈다.
0 01,02,03,04,05,06,12,18,20,22 \* \* \* /home/xenostudy/crond\_script/shutdown.sh >/dev/null 2>&1

위의 끄는 스크립트는 다음과 같습니다.

#!/bin/sh
/sbin/shutdown -h now

여기서 주의할점은 해당 스크립트에서 shutdown 명령어를 full path 를 입력을 해줘야하더군요.

위의 스크립트 내용은 01시 02시 03시 04시 05시 06시 12시 18시 20시 22시 에.. 컴퓨터를 꺼라 입니다.

위와같이 세팅한 이유는...

  • 일단 새벽까지 제가 깜박하고 안끄면 자동으로 끄게 했습니다.
  • 또한 회사 점심시간(12시) 에는 컴퓨터를 끄게 하였고...
  • 퇴근시간(18시) 에도 컴퓨터를 끄게 하였습니다.
  • 집에서 잠깐쓰다가, 잠자리에 드는 시점 22시에도 끄게 하였습니다.

자주 꺼지더라도, 스마트폰에서 WOL 바로가기 만 클릭하면 바로 켜지니 사용하는데는 불편함이 없었습니다.

그럼 당장사용하고싶은데, WOL 신호를 보낸후에 많이 기다려야 되지 않나?

위와같이 질문하시는 분들도 있으실꺼라 생각됩니다. 하지만, 실제로 써보면, Ubuntu 가 부팅해서 각종 서비스(웹,FTP등등) 이 올라와서 쓰는데 제 구형노트북 기준 길어야 20초정도 걸리더군요. 이시간도 중고 SSD로 바꿔서 10초이내로 세팅해볼생각입니다. (사실 20초정도 기다리는건 별로 불편하지도 않더군요;;;)

어째튼, 여기까지해서 컴퓨터를 원격에서 자동으로 켜고 끄기가 완성됐습니다.

세팅2-1 : 전원을 덜 먹게 하자.

좀더 컴퓨터를 전원절약을 하기위해서 컴퓨터를 sleep 상태로 자주 빠뜨려야 합니다. 일단, 리눅스의 sleep 의 기본적인 이해가 필요할것 같습니다.

간단하게 설명을 해서...

리눅스는 cpu 나 주변장치가 안쓰이는 상태이면... cpu 나 주변장치의 clock 을 최대한 낮춰서 전력을 아끼게 됩니다.즉, 저전력을 위해서는 cpu 주변 장치나 service 들을 최대한 sleep 상태로 만드는게 중요합니다.

powertop 을 이용한 sleep 상태 측정

ubuntu 에는 powertop 이라는 프로그램이 존재합니다. 다음의 명령으로 powertop 을 설치합니다.

sudo apt-get install powertop

해당 어플을 켜보면 어떤 녀석이 sleep 을 깨뜨리는지 알수있습니다. sudo powertop 명령 으로 파워를 살펴보면... 다음과 같습니다.

Summary: 281.3 wakeups/second,  0.0 GPU ops/second and 0.0 VFS ops/sec

Usage       Events/s    Category       Description
100.0%                      Device         Audio codec hwC0D0: Realtek
2.0 ms/s      33.6        Process        compiz
254.5 µs/s      21.7        Timer          tick\_sched\_timer
2.0 ms/s      17.8        Process        /usr/lib/chromium-browser/chromium-browser
0.7 ms/s      13.8        Process        rsyslogd -c5
0.7 ms/s      11.8        Timer          hrtimer\_wakeup
6.0 ms/s       1.0        Process        powertop
191.9 µs/s       3.0        Interrupt      [3] net\_rx(softirq)
2.3 µs/s       3.0        kWork          blk\_delay\_work

위의 표시한 audio service 가 계속 시스템을 사용해서 sleep을 깨뜨리고 있는것을 확인할수있습니다. 해당 모듈은 인터넷 검색을 해보면 Realtek audio codec 관련 모듈 인데요...즉 오디오 서비스입니다.

해당 문제는 ubuntu 포럼에도 언급이 되더군요.

  • http://askubuntu.com/questions/91359/100-0-usage-by-audio-codec-hwc0d0-realtek

저희는 홈서버로 사용할것이기때문에 오디오가 필요없습니다.

해당 모듈을 삭제합니다.

/etc/modprobe.d/blacklist.conf 파일에서..

     - snd_hda_codec 
     - snd_hda_intel

두개의 모듈을 추가하고 재부팅하면, powertop 에서 audio 관련 내용이 사라져있는것을 확인할수있습니다.

위와같이 powertop 을 이용해서 cpu 를 잡아먹는 쓸때없는 서비스들을 하나하나 제거해 나갑니다.

일단 제가 사용하고있는 컴퓨터의 powertop 은 다음과 같습니다.

보시면 생각보다 audio 내용이 없어졌습니다. 그래서 idle 상태를 보면...

위와같이 그냥 켜놨을때는 거의 상태가 idle 에서만 머무는것을 볼수있습니다.

  • 위의 상태는 웹서버 / FTP 만 돌아가는 상태의 powertop 입니다.

위의 상태라면 절대적인 전력수치로 계산은 힘들지만, 노트북의 CPU 가 최대한 전력을 적게 소비하여 전기세를 아끼게 세팅이 됐다고 볼수도 있겠습니다.


이정도 까지 세팅을 하고 필요할때만 컴퓨터를 켜고 쓰고, 다 쓰고 끈다면, 저 전력 NAS만큼은 될것 같습니다. (실제측정은 해보지 않아서 모르겠네요;;;)

다음은 각종 service 들을 설치해서 웹서버에 날개를 달아보겠습니다!!;;;

혹시 세팅에대해 궁금하신사항은 댓글로 문의해주세용..

반응형