2012. 3. 13. 16:25ㆍ살아가는 이야기
집에서 사용하는 N36L 서버의 속도 향상 및 다용도 사용을 위해....
기존에 쓰던 Window 2008 을 버리고 FreeBSD로 OS변경을 하기로 마음먹었습니다.
일단 Storage, iTunes Media Server, TimeMachine, FTP, 웹서버 이렇게 사용할예정입니다.
N36L 사양이야 뭐 많이 알려진 놈이라.. 일단 사양은 아래와 같습니다.
기술 사양 | |
---|---|
사양 개요 |
» PDF » HTML |
프로세서 |
AMD Athlon II 모델 NEO N36L(2코어, 1.30GHz, 1MB L2, 15W) |
프로세서 수 | 1 |
기본 메모리 |
1GB |
프로세서 코어 지원 |
2 |
메모리 슬롯 |
DIMM 슬롯 2개 |
메모리 |
PC3 DDR3 |
확장 슬롯 |
절반 높이, 절반 길이 PCIe x16 Gen 2 1개 절반 높이, 절반 길이 PCIe x1 Gen 2 1개 |
네트워크 컨트롤러 |
1GbE NC107i 1 포트 |
표준 스토리지 연결 |
핫 플러그 미지원 8.89cm SATA |
스토리지 컨트롤러 |
통합 4 포트 SATA RAID |
전원 공급장치 유형 |
200W 내장형 전원 공급장치 1개 |
프로세서 캐시 |
2MB L2 |
광학 드라이브 유형 |
기본 구성 없음 |
보증서 (부품-공임-현장방문) |
1/1/1 |
저는 여기에 램을 8기가로 업그레이드 하고 WD Green 3TB * 4박았습니다.
원래 달려있던 150GB하드는 OS용으로 ODD쪽으로 보냈습니다. ㅎ
램을 8기가나 박은 이유는 ZFS를 쓸려고 하는데 이게 생각보다 램을 많이 먹는것 같더군요.
그리고 램값이 싸서 --; 램업은 지금이 적기 ㅎㅎ
일단 작업전에 사전작업으로 핫스왑및 eSATA활성화 시켜줍니다.
아래 패치를 적용하면 기타 SATA속도 향상도 있습니다.
패치는 아래 링크 참조 하셔서 적용하시면 됩니다.
http://clien.career.co.kr/cs2/bbs/board.php?bo_table=lecture&wr_id=99910&sca=&sfl=wr_subject&stx=n36l
http://www.dmmart.kr/bbs/board.php?bo_table=b_02&wr_id=2
핫스왑이 지원되면 무지 편하나 패치관련해서는 책임질수 없습니다.
알아서 하시기를..
뭐 FreeBSD설치 관련이야 워낙 인터넷에 많은 지라 생략합니다.
저는 9.x로 설치 하였습니다.
이런 OS류 (Linux/ FreeBSD등 ) 를 설치하려면 일단 기본적인 명령어 정도는 알고 있어야 됩니다.
아무 생각없이 따라하실꺼면 그냥 Window나 FreeNAS를 쓰심이 --;
나중에 문제 생기면 진짜 손도 못댑니다.
일단 프로그램설치에 대한 간단한 시스템 설명및 방법을 설명드리자면..
FreeBSD에서는 port collection을 이용합니다.
FreeBSD Ports
"FreeBSD 포트 콜렉션은 최소의 노력으로 수많은 종류의 어플리케이션을 컴파일하고 설치할 수 있도록 합니다." 라고 사이트에 나와 있네요.
간단하게 이야기하면 설치 가능한 프로그램 목록이 있고 거기서 간단한 명령어만 실행해주면 설치가 됩니다.
물론 골치아픈 의존성 문제도 모두 해결해줍니다.
해당 포트로 cd명령으로 이동한다음 make install clean 이면 자기가 알아서 소스받고 바로 설치가 되는 놀라운 시스템입니다.
프로그램설치 방법은 크게 2가지 인데..
1. port로 설치 - 소스를 받아와서 환경설정후 컴파일을 해서 설치.
-> 시간이 오래걸리나 개별 컴파일 옵션 설정이 가능.
2. pkg_add로 설치 - 이미 컴파일된 바이너리를 받아와서 설치.
-> 시간은 얼마 안걸리나 옵션설정이 불가능.
저는 포트설치를 선호하는 편입니다.
일단 포트 설치시에는 몇가지만 아시면 됩니다.
2. 해당 폴더로 이동해서 make config 로 환경설정 또는 cat Makefile 으로 옵션확인
여기서 cat Makefile 로 옵션을 어떻게 확인하느냐 하면....
Makefile 내용중
.if defined(WITH_DEBUG)
이런것들이 옵션인데 설치 하실때..
# make WITH_DEBUG=yes install clean
의 형식으로 하시면 됩니다. 옵션이 여러개 이면
# make WITH_DEBUG=yes WITH_OPTION_B=yes install clean
이런식으로 하면 됩니다. WITH... 의 위치는 뒤로 오나 앞으로 오나 크게 상관은없습니다.
# make install clean WITH_DEBUG=yes WITH_OPTION_B=yes
요즘은 거의 make config를 지원해주니 고급사용자가 아니면 신경을 안 쓰셔도 됩니다.
참 쉽죠~
일단 OS설치가 끝났으면 순서대로 환경설정을 해보도록 하겠습니다.
CVSup 설치
이 넘이 뭐하는 거냐 하면 FreeBSD의 port / 소스등을 업데이트 해줍니다.
FreeBSD를 설치하면 필수로 까는 놈입니다.
cvsup은 GUI 포함 여부의 차이로 두개의 port가 존재 합니다.
X는 필요가 없으니 /usr/ports/net/cvsup-without-gui 을 설치하면 됩니다.
컴파일 하면 상당히 귀찮으니 걍 pkg_add로 쓱삭 (pkg_add 는 만들어진 바이너리를 가져와서 설치해줍니다.)
컴파일 돌리면 N36L CPU가 구려서 약 4시간 정도 소요됩니다. --;
위치는 /usr/ports/net/cvsup 에 있습니다.
# pkg_add -r cvsup-without-gui
환경설정을 위해 sample 파일을 가져와서 환경설정 파일을 만듭니다.
# mkdir /root/cvsup
# chmod +w /root/cvsup/*
위에서 복사한 파일을 열어 필요한 부분을 수정합니다.
일반적으로 서버주소만 수정하고 사용하시면 됩니다.
서버가 많지만 일반적으로 메인서버인 cvsup.freebsd.org 서버가 가장 빠릅니다.
port 를 위한 설정 수정.
# vi /root/cvsup/ports-supfile
*default host=cvsup.FreeBSD.org
SRC 도 수정.
# vi /root/cvsup/standard-supfile
*default host=cvsup.FreeBSD.org
우선적으로 port만 update하고 src는 나중에 하는것이 좋습니다.
이거 한번 할때 시간이 좀 걸립니다.
# cvsup -g -L 2 /root/cvsup/standard-supfile
# cvsup -g -L 2 /root/cvsup/ports-supfile
위의 과정이 귀찮으면 아래와 같이 해도 된다.
-h 옵션으로 Server 지정.
# cvsup -g -L 2 -h cvsup.freebsd.org /usr/share/examples/cvsup/ports-supfile
portupgrade 설치.
이넘은 뭐하는 거냐 하면 프로그램 자동업그레이드(?) 라고 생각하시면 됩니다.
나중에 설치하기도 귀찮으므로 미리 설치합니다. 역시 pkg_add로 ㅎㅎ
# pkg_add -r portupgrade
HDD 설정 (ZFS사용)
일단 위에서 말씀 드렸듯이 3TB * 4(Data 용) + 150GB(System용) HDD가 박혀 있는 상태입니다.
150Gb 짜리는 ODD 들어 가는 자리에 설치 했습니다. OS설치는 뭐 USB DVD-Rom을 이용해서 설치 했습니다.
시스템 쪽은 그냥 UFS를 사용하고 Data 쪽은 ZFS를 사용할려고 합니다.
뭐 위의 설명보다는 UFS가 생각보다 안 빠릅니다 --;
그나마 UFS보다는 ZFS가 빨라서... 관리도 쉽고 ^^
zfs사용을 위해 /etc/rc.conf 에 다음의 구문을 추가합니다.
일단 장치 인식여부를 확인 합니다.
WD Green 3TB 짜리 하드가 ada0~3 으로 150Gb하드가 ada4로 잡혀있습니다.
ODD자리에 꼽은 하드는 항상 맨뒤로 잡힙니다. 그래서 ODD 자리에 꼽은 하드를 시스템 하드로 이용시 하드 추가시마다 부팅시 에러메세지 + /etc/fstab을 수정해줘야 되는 귀찮음이 --;
저는 3TB 하드 4개를 묶어서 하나로 쓸생각입니다.
1. 일단 하드를 깨끗하게 밀어 버립니다.
# dd if=/dev/zero of=/dev/ada0 count=4096
# dd if=/dev/zero of=/dev/ada1 count=4096
# dd if=/dev/zero of=/dev/ada2 count=4096
# dd if=/dev/zero of=/dev/ada3 count=4096
2. gpart를 이용해 GUID Partition Table 를 잡아 줍니다.
GUID Partition Table 로 쓰는 이유는 3TB HDD라 MBR로 는 안 잡힙니다. --;
gpart 명령어에 대한 설명.
http://www.freebsd.org/cgi/man.cgi?query=gpart&apropos=0&sektion=0&manpath=FreeBSD+9.0-RELEASE&arch=default&format=html
GUID Partition Table
http://ko.wikipedia.org/wiki/GUID_%ED%8C%8C%ED%8B%B0%EC%85%98_%ED%85%8C%EC%9D%B4%EB%B8%94
3. zpool을 생성합니다.
zpool 에 대한 명령어 설명
http://www.freebsd.org/cgi/man.cgi?query=zpool&apropos=0&sektion=0&manpath=FreeBSD+9.0-RELEASE&arch=default&format=html
일단 zpool을 생성합니다.
zpool create Storage raidz ada0 ada1 ada2 ada3
저는 iSCSI 를 사용할것은 아니라 그냥 묶기만 했습니다.
(사실 raidz 옵션을 빼먹었는데.. 데이터를 다 올린뒤에 알았습니다 --;)
zpool create Storage ada0 ada1 ada2 ada3
zpool삭제는 아래와 같이 하시면 됩니다.
zpool destroy Storage
생성된 결과를 확인 합니다.
FreeBSD로 OS를 변경한 목적이 친구들과의 파일공유도 있는지라..
일단 현재 상태를 확인 합니다.
친구들에게 공유할 영역과 개인 영역 두개로 쪼갭니다.
제가 이렇게 한이유는 추후 ftp나 Web Share사용시 개인자료가 보이는게 싫은 관계로 작업한 내용입니다.
이렇게 해도 두개가 따로 용량이 잡히는 것이 아니고 같이 사용합니다.
그냥 영역만 나눠서 쓴다고 생각하시면 됩니다.
mount상태를 확인해 보면 아래와 같이 됩니다.
Storage on /Storage (zfs, local, nfsv4acls)
일단 여기서 Storage는 mount를 시키지 않고 Storage/MyData는 /MyData로 Storage/Public은 /Strage 로 마운드 시켜 보겠습니다.
일단 모두 unmount를 시킵니다.
# zfs unmount -a
각각의 Mount point를 정해 줍니다.
설정 결과를 확인 합니다.
일단 리부팅을 시켜서 정상적으로 다시 올라오는지 확인해 봅니다.
예전에는 proftpd를 많이 사용했는데 요즘은 pure-ftpd가 대세인것 같습니다.
사용해본 결과 설정이 간단합니다. 또 다양한 옵션을 지원합니다. sftp, mysql 연동등등
설치는 간단합니다.
# cd /usr/ports/ftp/pure-ftpd
# make install clean
WITH_LANG=korean 옵션으로 pure-ftpd 에서 접속 할때 한글로 접속 상황을 보여 줄수도 있습니다.
근데 한글이 깨져보이는 경우가 왕왕발생해서 비추합니다.
# make install clean WITH_LANG=korean
환경설정 파일을 복사한 뒤에 쓰기권한 부여합니다.
# cp /usr/local/etc/pure-ftpd.conf.sample /usr/local/etc/pure-ftpd.conf
# chmod +w /usr/local/etc/pure-ftpd.conf
IPV4Only yes 주석을 해제하여 IPv4에서 동작하도록 합니다.
이건 뭐 IP V6지원이 될려면 아직 한참 남은지라.. ㅎ
# vi
/usr/local/etc/pure-ftpd.conf
# Listen only to IPv4 addresses in standalone mode (ie. disable IPv6)
# By default, both IPv4 and IPv6 are enabled.
IPV4Only yes
# Listen only to IPv6 addresses in standalone mode (ie. disable IPv4)
# By default, both IPv4 and IPv6 are enabled.
부팅시 자동으로 시작시키기 위해 /etc/rc.conf 에 아래 구문을 추가해줍니다.
# vi /etc/rc.conf
pureftpd_enable="YES"
Apache 설치
# make WITH_MPM=worker install clean
또는
# make install clean
* WITH_MPM=worker?
정상적으로 설치 되었는지 점검합니다.
# rehash
# apachectl start
정상적으로 구동이 되지 않을시 아래파일을 확인해 봅니다.
# cat /var/log/httpd-error.log
/boot/loader.conf 에 아래 구문 추가.
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
부팅시 자동으로 시작시키기 위해 /etc/rc.conf 에 아래 구문을 추가해준다.
# vi /etc/rc.conf
apache22_enable="YES"
Mysql Server 설치
기본적으로 DB사용을 위해 mysql을 설치 합니다.
문자셋을 utf-8로 설치하기 위해 아래와 같이 옵션을 주고 설치 합니다.
# cd /usr/ports/databases/mysql55-server
# make WITH_CHARSET=utf8 WITH_COLLATION=utf8_general_ci install clean
mysql 설정 파일을 복사해줍니다.
# cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf
부팅시 자동으로 시작시키기 위해 /etc/rc.conf 에 아래 구문을 추가해줍니다.
# vi /etc/rc.conf
mysql_enable="YES"
안해주면 보안에 구멍이 딱!!
#/usr/local/bin/mysqladmin -u root password [패스워드]
캐릭터셋을 점검합니다.
위에서 설치히 UTF-8로 했는데 잘되어 있는지를 확인해 봅니다.
만약 정상적으로 캐릭터셋이 올라오지 않을경우 아래와 같이 수정 / 추가해주면 됩니다.
# vi /etc/my.cnf
PHP5 설치
php를 설치해야 제로보드 같은것을 사용가능하기 때문에 php를 설치 합니다.
일단 먼저 php 환경설정을 해줍니다. (아파치 모듈이 아닙니다.)
php가 웹에서만 쓰는 언어는 아니기에 기본적으로 php5 포트에 의존성이 있습니다.
# cd /usr/ports/lang/php5
# make config
* apache에는 반드시 체크하고 나머지는 알아서 하시면 됩니다.
# cd /usr/ports/lang/php5-extensions
# make config install clean
* SPL은 반드시 체크! 다른 추가 모듈은 알아서 체크할것
환경파일을 복사 합니다.
php.ini 를 수정합니다.
# vi /usr/local/etc/php.ini
* short_open_tag=On ?
<? ?> 을 사용가능하게 해줌
apache에서 php를 사용하기 위해 type지정을 해준다.
http.conf를 수정하면 됩니다.
AddType application/x-httpd-php .php .inc .html .htm
기본 파일를 변경합니다.
http://google.com/ 과 같이 뒤에 정확한 파일명이 없이 주소로 접근할때 자동으로 읽어 들이는 파일 리스트입니다.
# vi /usr/local/etc/apache22/httpd.conf
DirectoryIndex index.html index.php
아래와 같은 내용의 페이지를 만들어 정상적으로 php가 동작하는지 확인합니다.
# touch /usr/local/www/apache22/data/phpinfo.php
<?php
phpinfo();
?>
* FreeBSD에서 apache22의 기본 root는 /usr/local/www/apache22/data/ 입니다.
정상적으로 php관련 정보가 뜬다면 위에서 생성한 파일은 바로 삭제 합니다.
보안문제가 발생할 소지가 있습니다.
# rm /usr/local/www/apache22/data/phpinfo.php
'살아가는 이야기' 카테고리의 다른 글
핀으로 내려먹는 베트남식커피 (0) | 2012.10.16 |
---|---|
iTunes Match 가입실패 T.T (0) | 2012.04.21 |
Ubuntu / Debian에서 sudo 할때 암호 입력안하고 한방에 끝내기 (0) | 2012.04.20 |
[N36L에 FreeBSD 9.x설치] 2. 맥에서 사용하기. (0) | 2012.04.12 |
Arai SZ-RAM4 (0) | 2012.04.12 |
남옹한테 사진 뺏아옴..ㅋㅋ (0) | 2012.02.24 |
안녕 픽시.... (0) | 2012.02.09 |
버즈런 11-12 바라사 더블 보아 부츠 (0) | 2012.02.09 |
컬렉션 보강중.. (2) | 2012.02.07 |
업자모드로 변신중 --; (0) | 2012.01.28 |