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

Xeno's Study Blog (http://xenostudy.tistory.com)
- 글쓴이 : Xeno
- 원본출처 : 본문에 없으면 직접작성.
- 기타사항 :
   * 틀린사항 및 문의사항은 댓글달아주세요.
   * 퍼가실땐 댓글달아주시고, 출처는 밝혀주세요.ㅎ


이전글...


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


이전글에 이어서...

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


....



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


OS 선정


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


  1. 빠르다. ==> 부팅시간부터 실제 동작시간등등 가볍기때문에 빠릅니다. 

  2. 무료다. ==> web server 를 설치하기 위해 이것저것 설치하는 여러 패키지들이 모두 무료입니다!

  3, 주변 강좌가 많다 ==> 여러가지 사이트에서 온갖 강좌들을 쉽게 찾을수있습니다.

  4. 외부 제어가 쉽다 ==> 외부에서 콘솔창 한개만 있으면 온갖 동작을 자유롭게 할수있습니다.

  5. 커스터마이징이 가능하다 ==> 필요없는 기능 제거 등등 OS커스터 마이징이 가능합니다.


일단... 여러가지 linux 배포판이 있지만...

가장 설치하기 쉽고 자료가 많은것으로 살펴보니..

ubuntu 가 가장 만만하더군요.


Ubuntu 설치!!


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

http://www.ubuntu.com/desktop




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



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


다음의 사이트를 보면서 설치를 진행합니다.

 ==> http://comgoblin.tistory.com/183


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


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


이미 구형노트북을 파워를 고친다거나 HW 뜯어고쳐서 저전력으로 사용하기는 불가능합니다.

제가 저전력으로 구동시키기 위해서 선택한 방법은...


1. 필요할때 켜고, 필요없으면 끄게 하자 

2. 리눅스를 최대한 가볍게 만들어서 sleep 상태로 많이 빠지게 하자.


위의 두가지 입니다.


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


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

  ==> WOL 기능은 (http://www.terms.co.kr/WOL.htm) 을 참고해주세요.  


일단 사용하고있는 노트북의 bios 화면에 들어가서 WOL 기능을 활성화시킵니다.


그다음은 공유기의 WOL 기능을 세팅합니다.

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

  ==> http://snoopybox.co.kr/1449

      ㄴ 위의 사이트에 DDNS 설정까지 나와있으니 바로 따라하면 될것 같습니다.

  

일단, 여기까지 오셨으면...

공유기와 컴터의 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 들을 설치해서 웹서버에 날개를 달아보겠습니다!!;;;


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







TAGS.

Comments 11

  • 황YG | 댓글주소 | 수정/삭제

    안녕하세요~ 최근 빅데이타 관련 공부하는 도중에 서버를 만들어보고자 조사하던 중 들르게 되었습니다. 올려주신 포스트 잘 읽었구요~ 질문이 하나 있습니다. 서버 작성시 처음부터 리눅스를 활용하셧는데요, 그러면 컴퓨터를 전부 포멧하고 os도 없는 상태에서 리눅스를 설치하고 말씀하신 과정을 밟으면 되는 건가요? 아직 프로그래밍 초짜라 리눅스에 대한 개념도 확실치 않은 상태입니다 ㅠ 감사합니다.

  • momoai | 댓글주소 | 수정/삭제

    안녕하세요. NAS 구성관련 문서를 찾다 여기까지 흘러들어오게 됐네요
    노는 컴퓨터를 이용해 NAS를 구성하는내용에 대해 자세히 알 수 있어서
    감사했습니다.
    //황YG님
    가상머신을 이용한 리눅스 설치도 가능하지만 이건 서버용 컴터를 만드는것
    이기에 리눅스만 설치하는게 맞을겁니다(쉽게말해 하드 포맷 후 리눅스 설치)
    리눅슬 설치에 관한 내용은 구글or네이버 검색해보면 쉽게 찾을 거에요. 무료랍니다.

  • Che | 댓글주소 | 수정/삭제

    반갑습니다. 저도 NAS를 구매할려다 만만치 않은 비용으로 개인 서버를 구축할려고 하다가 방문하게 됐어요. 정말 좋은 정보에 감동받았습니다.
    저의 고물 컴퓨터의 RAM사양이 256밖에 되지 않아 우분투는 어려워 우분투가상머신+LXDE환경을 깔았는데 여기에도 위방식대로 원격 서버가 가능한지요?

    • BlogIcon . . . | 댓글주소 | 수정/삭제

      가상머신의 환경은 추천하지 못하겠네용;;
      아무래도 가상머신을 사용한다는것 자체가 조금 무거우니까요.

      그냥 윈도우를 포기하시고...
      아예 리눅스를 까시는걸 추천드립니다.
      ubuntu 가 약간 무겁다고 생각하신다면, kubuntu 도 추천드려요^^

  • 헬로헬로 | 댓글주소 | 수정/삭제

    안녕하세요.
    노는 컴터로 NAS구축할려고 하는데요, 현재 이 이상의 글이 올라와 있지 않아서요.

    혹시 다른데 글을 쓰신거면 링크좀 주실 수 있나 해서요.

  • 허헛 | 댓글주소 | 수정/삭제

    NAS4Free(www.freenas.org)를 모르는 듯 하네요.
    그리고, 비슷한 태생인 FreeNAS(www.freenas.org)도 ..
    차이는 기반이 되는 OS인 FreeBSD의 버전 차이로 .. NAS4Free가 윗버전입니다.

    오픈소스 기반의 NAS 솔루션으로 실제 NAS보다 기능은 훨씬 많고 ..
    ISO이미지나 USB부팅을 지원하므로 별다른 수정없이 ..
    바로 NAS를 제작이 가능한데 ..
    찾아보면 오픈소스로 진행하는 이런 프로젝트가 인터넷에는 널려 있지요.

    현재도 IT분야 연구개발자로 적극 활동중인 IT분야 25년차가 알려드립니다.

    • 지나가던이 | 댓글주소 | 수정/삭제

      NAS 배포판이 있는걸 알아도 직접 만듭니다.
      NAS 외의 용도로도 쓸 수 있거든요. 이럴땐 리눅스 배포판을 쓰는게 훨씬 편합니다. - IT분야 10년차

    • 참견쟁이 | 댓글주소 | 수정/삭제

      IT 부심 짜증나네요.
      님처럼 생각하면 시놀로지 NAS 구입하라고 하는게 맞는거 같네요.
      리눅스 배포판으로 직접 수정과정을 거치면서 배우는게 있죠.
      25년차? 그런건 상관없습니다. 님과 다른 길을 걷는다고 훈수두지 마세요.
      도전정신도 없는 코딩기계 같아요.

    • 계발자 | 댓글주소 | 수정/삭제

      ㅋㅋㅋㅋ 허헛님 덕분에 웃고갑니다.
      담부턴 '적극' 활동중인 25년차라 길게 적지마시고
      그냥 꼰대 라고 적으시면 다들 빠르게 이해할거 같습니다.

  • 하핫 | 댓글주소 | 수정/삭제

    안녕하세요?
    시중에서 파는 NAS를 사서 구축하려다가 비싸서 집에 노는 노트북이 있어서 찾다가 오게되었습니다.
    제 노트북이 5년전 모델인데, 롤이나 살짝이라도 무거운 걸 돌리면 발열이 너무 심하게 나고 그상태로 5분이상 지속되면 노트북 자체적으로 전원이 나갑니다.

    혹시 이 노트북으로 NAS를 구축하여도 노트북에 발열이 많이 안날까요??