E D R S I H C RSS
May 08, 2008 #
디스크, 쿨링시스템, 케이스 교체 #
Submitted by J @ 05-08 [04:01 am]
24시간 돌아가는 서버 소음을 줄이기 위해 케이스와 쿨링시스템을 교체했다. 또 데이터 안정성과 용량 문제를 해결하기 위해 고용량 하드 디스크 두 개로 미러링했다.

방문을 열어두면 마루까지 컴퓨터 소음이 들렸는데, 이제는 컴퓨터 가까이 있어도 소리를 크게 느낄 수가 없다.

구입 부품
  • 디스크 : WD SATA2 750G (7200/16M) WD7500AACS * 2
  • 케이스 : Antec Solo
  • 쿨링시스템
    • CPU 냉각 수퍼챠저 - 바동D(규격 및 색상 / DS-70 노란색)
    • 바동 팬앰프 80mm - 120mm(규격 및 색상 / 파란색)
    • FAN : Noctua NF-P12
    • 노스브리지 히트싱크 : 잘만 ZM-NB47J

디스크
  • 750GB WD7500AACS 두 개(ad4,ad8)를 gmirror로 미러링(gm0)로 구성
  • 파티션 구성

    /dev/mirror/gm0s1a    496M   /
    /dev/mirror/gm0s1b    496M   swap
    /dev/mirror/gm0s1d     14G   /usr
    /dev/mirror/gm0s1e    9.7G   /var
    /dev/mirror/gm0s1f    989M   /tmp
    /dev/mirror/gm0s1g    650G   /home
    
  • 기존 250GB 하드를 싱글 모드로 dump

쿨링시스템
  • 케이스
    • 방진, 방음 효과가 좋은 케이스로 교체 -> 디스크 소음이 획기적으로 감소
    • 전면 92mm 팬 * 2 (1개만 가동)
  • 노스브리지 쿨링
    • 소음이 심한 노스브리지 쿨러와 히트싱크를 떼어냄
    • 쿨러가 필요없는 잘만 ZM-NB47J로 교체 -> 노스브리지 온도는 조금 올라갈 수 있으나 케이스 전체 냉각효과가 나아져서 시스템 안정성에는 큰 무리 없음
  • CPU 덕트
    • 번들 AMD 쿨러에 Badong DS-70 덕트를 연결하고 공기유입을 위해 Noctua NF-P12 120mm 팬을 달아줌, 팬 속도는 최저인 800RPM으로 설정
    • CPU 쿨러로 공기 유입이 원활해져, CPU 팬 속도가 획기적으로 떨어지고 팬 소음 감소

Mar 01, 2008 #
FreeBSD 7.0 업그레이드 #
Submitted by JongYeob @ 03-01 [07:16 am]
2008-02-27자로 [http]FreeBSD 7.0이 릴리즈되었다.

2년만에 6.x에서 7.0으로 업그레이드를 단행했다. SystemBlog#20051111

  • stable-supfile에서 tag를 RELENG_7로 변경
  • rebuild 실행
  • 각 포트 업그레이드

6.3 환경에서 7.0으로 변경하니 어떤 포트는 제대로 작동을 하지 않는다. 그래서 모든 포트를 업그레이드한다. 꼬박 하루 넘게 포트 업그레이드가 돌아갈 듯하다. 아직도 도는 중.

Jan 09, 2008 #
네트워크 설정 변경 #
Submitted by JongYeob @ 01-08 [04:10 pm]
보안 등 이유로 내부망을 서버와 공유기로 분리해둔 채로 썼는데, XBOX에서 서버로 접속해서 영화를 보거나 파일 전송할 때 속도가 많이 떨어지는 현상을 참을 수 없게 되었다.

공유기의 NAT 기능 등을 제거하고 스위칭 허브로만 사용하게 전환했다. 그 대신 서버에서 dhcpd 기능이 추가했다.
네트워크 구성도 간단하지고 속도도 빨라졌다. 진작에 이럴 걸. 내부네트워크 IP가 192.168.10로 한 이유는 하나TV 셋탑박스가 반드시 192.168.10.2로 설정해야하기 때문.

 +-------------+
 |   HANARO    |
 +-------------+
        |
        | dhcp, nve0 
 +------+------+
 |   FreeBSD   |
 +------+------+
        | 192.168.10.1/24, rl0
        |
  +-----+-----+
  |   WRT54G  |
  +-----+-----+
        |
        |
|---Wired/Wireless LAN --|
  192.168.10.

Apr 28, 2007 #
내외부 네트워크 인터페이스 변경 #
Submitted by J @ 04-27 [03:05 pm]
이삼일전부터 외부에서 서버 접속이 불안했다. 의심되는 것은 네트워크 카드와 하나로망 문제 두가지로 추정해 볼 수 있다. FreeBSD 6.0 pre release에서 Asus A8N 관련 보드에서 nve0에 문제가 있었으나 그 뒤로 문제가 없어졌다. 오래된 RealTek 8139가 조금 의심스럽기는 하나 로그상 물리적인 문제점은 발견할 수 없었다.

로그에는 dhcp 서버로부터 주소를 다시 받아온 것만 보인다. 추정할 수 있는 것은 rl0에서 일시적인 문제 발생이거나 하나로망의 라우터/스위치 이상으로 인해 접속이 단절 되었다가 다시 살아나면서 dhcp에서 주소를 다시 받아 오는 것이다.

Apr 27 18:10:28 rebma dhclient: New Broadcast Address (rl0): 222.238.224.127
Apr 27 18:10:28 rebma dhclient: New IP Address (rl0): 222.238.224.110
Apr 27 18:10:28 rebma dhclient: New Routers (rl0): 222.238.224.65
Apr 27 18:10:28 rebma dhclient: New Subnet Mask (rl0): 255.255.255.192

일단, 네트워크 카드의 이상여부 확인을 해 보는 차원에서 rl0와 nve0를 바꿨다.

  • 변경전 : 하나로-- rl0/nve0 -- 내부망
  • 변경후 : 하나로-- nve0/rl0 -- 내부망

2-3일 뒤에도 같은 문제가 발생하면 하나로망 이상으로 간주하고 AS 요청해야겠다.

하나로에서 랜 배선판을 관리 제대로 안 해서 생긴 문제 같다. 이전 전화 배선판에 랜선을 연결하는데 배선판을 열어 보니 절연테이프로 엉성하게 선을 연결해 놓은 것을 알게 되었다. 살짝씩 만져 줬더니 그 뒤부터는 별 문제가 없다. -- [J] 2007-05-16 10:58:17

Mar 16, 2007 #
Subversion 으로 문서 저장 방식을 바꾸다 #
Submitted by J @ 03-16 [09:20 am]
집과 사무실에서 쓰는 노트북이 다르고 어디서든 내 자료를 사용할 수 있도록 문서와 자료를 저장하고 관리할 수 있도록 Subversion을 사용하기로 했다.

목적
  1. 어디서든 전체 자료를 사용할 수 있게 한다
  2. 자료를 일관성 있게 관리하고 동기화한다
  3. 안정적으로 자료를 보관한다

Server Reopsitory
  • 저장소 /home/svn/repos/jongyeob

Client Repository
  • ./repos

Win32 환경에서는 TortoiseSVN을 사용한다.

Mar 09, 2007 #
xorg 6.9에서 7.2로 전환 #
Submitted by J @ 03-09 [07:24 am]
xorg를 6.9에서 7.2로 전환했다.
전환을 위해 포트 관리를 cvs와 portsnap에서 git로 변경했다.

참고

Jan 17, 2007 #
initial-j.com 등록 #
Submitted by J @ 01-17 [05:08 am]

J라는 이름을 써 먹을 도메인을 등록했다.

initailJ.com이 선점되어 있어 "-"를 붙였다. initail-J 를 쓰는데 별 어려움이 없고 잠시 쉬었다 J가 나타나니 J가 강조된다.

어디에 써 먹을고?

Sep 22, 2006 #
ADSL Pro + 고정 IP 시대를 막내리다 #
Submitted by JongYeob @ 09-21 [03:18 pm]
2006년 9월 19일자로 몇 년간 ADSL에서 고정 IP 서비스를 추가하여 서버를 운영하던 방식을 끝냈다. 지금은 광랜으로 교체했다.

광랜으로 전환할 때, 고정 IP를 사용할 수 없는 문제점이 있지만 다음과 같은 이유로 교체를 단행했다.

  1. 느린 ADSL에서 좀 더 빠른 광랜 혜택을 보고자 함
  2. 외부 호스팅, VPN 등 대안이 있음
  3. 고정 IP 서비스가 다른 대안 대비 비용이 크고 좀더 경제적인 방법으로 호스팅을 고려함

비용 효과는 대략 이렇다. (VAT 별도)
  • 변경 전 : 약 70천원
    • ADSL Pro + 고정 IP + 전화기본료
  • 변경 후 : 약 29천원
    • 광랜 : 약 26천원 : 교체 할인 16% + 기존 2년 약정 할인 승계 5%
    • 전화 기본료 : 약 3천원
  • 절감액 : 약 40천원

대안
4만원이면 얼마든지 호스팅할 수 있는 대안을 만들 수 있다.
  • 해외 호스팅
    해외 호스팅 업체에서 월 7~10불에 넉넉한 트래픽과 저장 공간을 제공하는 서비스를 사용할 수 있다. (단, 경로에 따른 속도 감소 고려)
  • VPN/PPTP
    VPN 서비스를 활용하면 터널링을 통해서 고유한 IP를 할당받을 수 있다.
    우리나라에 월 만원 ~ 3만원 가격으로 이런 서비스를 제공하는 업체가 있다. ADSL 경우에 1만원대. 그 이상이면 2만원 이상을 염두해야 함.
    또는, 외부에 VPN 서버를 설치하는 방법도 있다.

임시 방편으로 서버가 돌아갈 수 있게 하고, 안정적이고 지속적인 방법은 테스트하고 구현할 수 있는 충분한 시간이 있을 때 결정할 예정이다.

내가 살고 있는 아파트에도 광랜이 들어왔더라고...
지금 문의 메일 보내놓은 상태인데...

왜 ddns를 사용하지 않는지? ddns로 돌리면 되지 않아? -- 그리운 2006-09-23 10:52:45

이미 dyndns 로 매핑해 놨답니다. 서버를 늘 켜 놓으니 고정 IP 상태입니다. 다행인 건, 포트가 살아 있다는 겁니다. 빙고~

문제가 있습니다.
  • dyndns는 CNAME 으로 domain 자체를 매핑할 수 없습니다. www.domainname 이런식으로만 매핑됩니다.
  • 고정IP화 되어버린, 할당받은 IP로 domainname을 할당했습니다. 그런데, dhcp에서 15분 또는 30분 간격으로 갱신합니다. 계속 켜 놓으면 됩니다만, 리부팅이나 어떤 문제로 인해 변경될 가능성이 생기면 조금 귀찮아집니다. 물론 네임서버에서 갱신기간을 30분으로 해 놔서 지연은 30분 정도니 큰 문제는 없을 듯.

가장 괜찮은 솔루션은 VPN으로 보고 있습니다. 형 혹시 VPN 가능하면 ... ^^ -- JongYeob 2006-09-23 13:35:28

뭔가...

dnsever.com을 사용하고 있는데 도메인 자체를 매핑하고 쓰고 있는데?

jejunetwork.co.kr, www.jejunetwork.co.kr 둘다 현재 같은 kt adsl라인 ip로 돌고 있고...

아래 추가 하는 곳에 이렇게 도움말이...
 다이나믹 DNS 추가 | 도움말
내 도메인 또는 하위 도메인에 IP주소를 지정할 수 있습니다.
호스트이름 없이 도메인에 IP주소를 지정하려면 "호스트이름" 입력란을 공백으로 비워두세요.

그리고 갱신 주기는 5분에 한번 꼴로 해둬서... 라인이 죽지 않는 이상 못 들어가본 적 없는 걸...

VPN도 설치되어 있는데... VPN되는 공유기 이용해서.. ^^;
VPN은 내부망의 자원을 활용하는 도구 아닌가? 그걸 이용해서 호스팅을 하는 건 좀 이해가?

조금 생각해보면 어찌 어찌 되게 하긴 하겠는데...
요즘은 심플하게 해놓지 않으면 서비스 유지가 힘들어진다는 생각때문에... -- 그리운 2006-09-23 14:18:05

진작에 이 서비스 알았으면 썼을 건데 ... ^^
바로 이 서비스로 옮겼습니다. 좋은 정보 땡큐입니다. -- JongYeob 2006-09-24 13:33:00

Aug 07, 2006 #
약 10시간 downtime 2006-08-07 08:30 ~ 18:40 #
Submitted by JongYeob @ 08-07 [02:20 pm]
10:00경 사무실에서 내 홈페이지에 접속을 해 보니 페이지를 찾을 수 없다고 한다. ssh로도 접속이 안 된다.
16:38 서버 사용자(익명 절대 보장!?)로 부터 서버가 죽었다는 메시지를 받았다. (18:30분경 메시지를 확인)
메시지 내용은 이렇다.
또 머피의 법칙이야?
서버죽었네. 집이셈?

2005년 9월 서버 이전 뒤에, HW나 SW 문제로 인해 서비스 중지가 된 적이 거의 없고 단전이나 전기적인 문제가 없었다. 게다가 집을 나오기전에 서버가 무사히 돌고 있음을 보고 나왔다.

다운타임 원인을 다음과 같이 예상하였다.

case 1) 청소하는 과정에서 ADSL 연결부위(전화)가 느슨해지거나 빠졌다.
case 2) 서버 LAN 선에 발이 걸린 적이 있어, 중간 연결 부위 또는 서버의 RJ45 잭부분이 빠졌다.

집에 들어와 진짜 다운타임 이유를 파악했다. 너무나 자명한 사실로 인한 서비스 중지였다.

ADSL 장비 전원이 연결된 멀티탭 스위치가 OFF로 되어 있었다.

이는 어머니와 같이 집을 나서면서 어머니가 이 스위치를 꺼 놓았던 것이었다!!!!

집에 돌아와 이 사실을 파악하고 전원을 넣고 사이트 접속이 되는지 확인하고 샤워를 하고 어머니에게 지나가는 말로 이렇게 말했다.

어머니, 우리 집은 그냥 전기 꽂혀 있는 거 그대로 두세요.
부모님댁처럼 나갈 때 끄지 마세요. plz~~~~
집에 컴퓨터가 돌아가고 있어서 전원 끄면 밖에서 컴퓨터에 접속할 수 없습니다.
그냥 두시면 감사하겠습니다.

쓸쩍, 어머니에게 집에 나가시면서 TV와 연결된 탭 전원 내리셨지요? 하고 물었더니, 글쎄 ... 하고 대답하신다. 거의 무의식적으로 눈에 보이는 전기를 끄신 것이었던 것이었다!!!

서비스를 정상으로 복구하고 서비스 이용자(역시 익명처리)에게 이 사실을 알렸더니. "나도 그 가능성이 의심스러웠는데. 역시. 어머니들은 다 똑같으시군." 이런 답신이 온다.

역시 어머니들이다.

아래는, 트래픽상에서 다운타임 시간을 볼 수 있는 로그이다. 5분 간격 그래프이고 접속이 되고 있더라도 트래픽이 0에 근접하는 경우가 있기에 추정할 수 있는 다운타임 시간은 대략 08:30 ~ 18:40 구간으로 10시간 정도로 볼 수 있다.
Downtime-20060807.png


Jun 30, 2006 #
php extensions 주의 사항 #
Submitted by JongYeob @ 06-30 [07:04 am]
extensions.ini 에서 다음 순서로 모듈이 나와야 apache 대몬이 정상으로 구동된다.

  • recode.so 는 imap.so 와 mysql.so 앞에
  • eaccelerator.so 는 session.so 뒤에

Feb 26, 2006 #
Disk Mirroring 계획 #
Submitted by JongYeob @ 02-25 [07:09 pm]
6년 가량 서버를 운영하고 있다. 지금까지 아주 사소한 실수를 뺀다면, 사고나 장비이상으로 시스템이 정지된 적이 없다. 120GB 디스크를 백업용으로 사용하고 있지만, 관리적인 실수와 고의적인 삭제로 인해 일어날 수 있는 사고에 대해서는 대응이 안 되고 있다.

물리적 보완을 위해서, 시스템이 운영되는 디스크를 미러링 - RAID 1 로 구성할 계획이다.

준비 사항 #

  • [http]ST3250824AS x 2 EA
    • 기존 ST3250823AS 는 데이터용 또는 백업용으로 사용

절차 #

  1. 자료 백업
  2. 기존 디스크(old disk)에 미러링 관련된 세팅
  3. 미러용 디스크 (new disk 1,2) 장착
  4. 미러링 : old disk - new disk1
  5. old disk를 데이터용으로 전환하고 new disk 1,2 를 미러링되게 함
    1. ST3250824AS 는 SATA II 임. 미러링은 동일한 스펙/속도의 제품을 사용하는 게 유리
    2. old disk는 혹시 모르니 안정화되기 전까지 데이터용으로는 전환하지 않음


Dec 05, 2005 #
Apache 2.0.x 에서 2.2.0 으로 업그레이드 #
Submitted by JongYeob @ 12-05 [02:44 pm]
대대적인(?) 업그레이드를 단행했다.

업그레이드 절차는 다음과 같다.

  1. 2.0.x를 삭제 : pkg_delete -f 패키지명
  2. 2.2.0 설치
  3. 의존성 변경 : pkgdb -F
  4. 관련있는 패키지 재 설치 : portupgrade -f 패키지명
  5. 설정 변경

2.2.0 으로 가면서 설정파일이 분리되었다.

httpd.conf 는 기본 사항만 관리하고 Include 형식으로 별도로 분리하여 설정할 수 있게 되었다.
분리된 설정 파일은 extra/ 디렉토리에 있다.

재가동하면 다음과 같은 메시지가 나타난다.

[Tue Dec 06 10:57:56 2005] [warn] (2)No such file or directory:Failed to enable the 'httpready' Accept Filter

구글링해보니 다음과 같은 해결책을 제시하고 있다. 그리고 kldload 로 해당 모듈을 로딩하고 아파치서버를 재가동하니 위와 같은 메시지는 사라졌다.

on FreeBSD, you need to add a kernelmodule

kldload accf_http

grep accf /boot/defaults/loader.conf
accf_data_load="NO" # Wait for data accept filter
accf_http_load="NO" # Wait for full HTTP request accept filter

add the second to /boot/loader.conf with 'YES' to enable this permenately.

from [http]http://www.issociate.de/board/post/280676/warning_:_Failed_to_enabl%5C_e_the_'httpready'_Accept_Filter.html -- JongYeob 2005-12-06 02:08:53

Cacti 설치 #
Submitted by JongYeob @ 12-05 [02:40 pm]

이전 서버에서 MRTG로 시스템 모니터링을 했다. 서버 교체와 FreeBSD 6.0으로 업그레이드하고 나서 시스템 모니터링 툴을 Cacti로 변경하였다. 일단은 기본적은 것만 해 놓았다.

추가할 모니터링 항목은 다음과 같다.
  • M/B 온도/팬 상태
  • httpd, mysqld 등 상태

Nov 11, 2005 #
FreeBSD 6.0 stable #
Submitted by JongYeob @ 11-11 [06:17 am]

FreeBSD 6.0이 2005-11-04일자로 정식 릴리즈되었다. source tree로 당연히 커널 업그레이드 완료.

아래와 같은 메시지를 뿌리며 기능이 멈추던 nve0 도 제대로 돌아간다.


nve0: device timeout (64)
nve0: link state changed to DOWN
nve0: link state changed to UP

6.0-BETA5 A8N-E nVidia nForce4 Ultra / Socket 939 On-board nForce ethernet controller (nve(4)) works fine. SATA works fine.
See http://www.freebsd.org/platforms/amd64/motherboards.html

rl1 를 nve0 로 바꾸고 다시 가동~

Nov 02, 2005 #
사용자 계정 정리 #
Submitted by JongYeob @ 11-01 [03:14 pm]
접속이 거의 없는 사용자 계정을 정리하다.

계정 현황은 ServerUsers 에 정리되어 있음.

Oct 15, 2005 #
동적으로 CPU 소비전력 조정 #
Submitted by JongYeob @ 10-15 [12:23 pm]

FreeBSD 에서 소비 전력을 자동으로 바뀌도록 설정을 했다.
설정방법은 여기에 기술되어 있다. : FreeBSD_AMD64_Cool'n'QueitTip

서버 이전 #
Submitted by JongYeob @ 10-15 [07:49 am]
2005년 9월부터 10월까지 단계적으로 서버 이전을 하였다.
  • 기존 시스템 : AMD Thunderbird 750
  • 신규 시스템 : AMD Athlon64 Venice 3000+

절차 #


  1. 새 시스템 설치
    1. 파티셔닝
    2. FreeBSD 6.x 설치
    3. 패키지 설치
    4. 각종 대몬 설정
  2. 기존 시스템 백업
    1. 설정 파일
    2. 사용자 관련 (/home) 파일
    3. 각종 데이터/로그
    4. mysql dump
  3. 데이터 이전
    1. 설정 파일
    2. 사용자 데이터
    3. mysql restore
  4. 안정화
  5. 이전 완료와 시스템 대체

Package List #

현재 돌아가는 서비스를 유지하기 위해서 핵심적으로 설치해야할 패키지 목록이다.
주요 패키지만 설치하면 의존성에 따라 추가로 설치되는 패키지가 있어서 세부적인 패키지는 생략한다.

dns #

* bind9

lang #

* php5
* php5-*
* perl5.8
* p5-*
* ruby18
* tcl84

database #

* mysql-client
* mysql-server

ftp #

* ncftp3
* proftpd
* wget

mail #

* courier-imap
* isoqlog
* mailgraph
* mutt
* postfix
* procmail
* tmda

net #

* rrdtool
* samba3

net-mgmt #

* mrtg
* net-snmp

security #

* courier-authlib
* courier-authlib-base
* cyrus-sasl-2
* cyrus-sasl-saslauthd-2
* openssh
* openssl

sysutils #

* pkg_remove
* pkg_tree
* portaudit
* portsnap
* portupgrade

www #

* apache2
* webalizer


Partitioning #


PARTITION Previous System Usage New System Size REMARKS
/ 100MB 512MB
/usr 5,120MB 10,240MB 5GB 할당해도 용량 부족했었음
/var 1,024MB 4,096MB log, mysql db 용량부족으로 다른 파티션에 할당했음
/tmp 1,024MB
/home all left all left
SWAP 512MB 1,024MB

MYSQL 이전 #


버전 #

- Previous System Usage New System Size REMARKS
/ 3.22 4.1 추후 5.x로 이전 고려

이전 절차 #

  1. mysql dump
    1. 전체 database 덤프 (실제 일별 backup된 sql 파일 사용)
      mysqldump -u root -p --all-databases > mysql-yyyymmdd
    2. 또는 각 database별로
      mysqldump -u root -p database_name > databasename.sql
  2. mysql 4.0 설치
  3. dump_file을 mysql 4.0 으로 넣기
    • 전제 dump 파일을 사용할 경우 mysql database을 덤프시에 key 값이나 스키마 차이로 인해 오류가 발생함.
    • 따라서, 1.2. 에서 실사용자의 database만 선별하여 넣음
  4. mysql 4.1 설치
    • 권한 설정 등



Sep 12, 2005 #
서버 업그레이드 #
Submitted by JongYeob @ 09-12 [03:37 am]
서버를 새로 구입했다. OS는 FreeBSD 4.x 에서 FreeBSD 6.0 으로 바꿀 예정이다. FreeBSD 6.0 이 현재 Beta 상태라서 시스템이 안정화되면 제반 데이터를 옮기고 공개할 작정이다.

시스템 사양은 다음과 같다.

기존에 서버로 사용하는 AMD Thunderbird 750MHz 시스템에서 다음과 같은 시스템으로 업그레이드를 단행할 예정이다.

2005-09-09 에 구입한 시스템 사양은 다음과 같다.

부품 사양
CPU AMD Athlon64 Venice 3000+ (1.8GHz/512KB/1GHz/939)
MAIN BOARD ASUS A8N-E (nForce4 Ultra) (939/PCI-Express)
MEMORY SAMSUNG 512MB DDR SDRAM (PC3200/DDR400) x 2
HDD SEAGATE SATA 7200.8 250GB 8MB/NCQ
VGA 유니텍 라데온 X300SE SENSATION(센세이션) (128MB/64Bit) PCI-Express
POWER 스카이디지탈 PowerStation2 450NF4
CASE ASUS TA-581 케이스(블랙/파워별매)


아래는 이전에 고려했던 시스템 사양이다.

It's a wishlist

(unit:KRW, 2005-03-26)
Category Spec. Desc. Price Ref.
CPU AMD Athlon™ 64 Winchester 3000+ 160,000 [http]3000+ [http]3200+ ?
MAIN BOARD MSI K8N Neo4 Platinum 160,000 [http]link
MAIN BOARD DFI LANPARTY UT nF4 ULTRA-D 140,000 [http]link
MEMORY SAMSUNG 512M PC3200 x 2 104,000 [http]link
VGA TBA 150,000
HDD N/A
ODD N/A
FDD N/A
CASE 마이크로닉스 A/S 9000 III 블랙 115,000 [http]link
POWER SEVENTEEM 400W ST-402HLP 108,000 [http]link
LCD LG전자 L1740P 413,000 [http]link
KEY BOARD ARON KB-A106S+ black nonclick 30,000 [http]link



Sep 01, 2005 #
MoniWiki 1.1.0 으로 업그레이드 #
Submitted by JongYeob @ 09-01 [10:59 am]
2005-08-08 자로 릴리즈된 MoniWiki 1.1.0으로 업그레이드를 했다.

업그레이드를 한 이유로는 2005-09-01 부터 스팸 공격이 시작되어 이번 버전부터 적용된 안티스팸 기능이 필요해졌기 때문이다.
1.1.0을 설치하고 나니 다음과 같은 문제가 발견되어 CVS 에서 wiki.php 와 wikilib.php를 업데이트했다.

  • icon 관련하여 페이지마다 에러 메시지 출력
  • RecentChangesTitleIndex 등에서 diff, update 등의 아이콘이 텍스트로 나오는 현상

안티스팸 기능을 사용하기 위해서는 다음과 같은 조치가 필요하다.
  • config.php 에서 $spam_filter='antispam';
  • BadContent 에 리스트 등록

여전히 fullsearch action 에서 해당하는 스트링을 다 검색하지 못하는 버그는 여전하다. php 설정과 관련되었건데 건드리기가 싫다.

Aug 08, 2005 #
Apache MPM을 worker에서 다시 prefork로 변경 #
Submitted by JongYeob @ 08-08 [09:07 am]
MPM을 worker로 했더니 프로세스가 별로 안 뜨고 성능이 좀 나아진 듯하여 만족하고 있었다. 그런데 MoniWiki 의 특정 페이지 (plugin이나 특수한 파싱이 있는 경우)에 페이지 이동이 안 되는 버그가 있었다.

게다가 이런 경우 httpd-error.log 에 아래와 같은 에러 메시지가 생성되었다.


[Mon Aug 08 16:27:51 2005] [notice] child pid 53845 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:10 2005] [notice] child pid 53875 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:14 2005] [notice] child pid 53951 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:30 2005] [notice] child pid 53955 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:30 2005] [notice] child pid 53954 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:36 2005] [notice] child pid 53959 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:36 2005] [notice] child pid 53956 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:38 2005] [notice] child pid 53960 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:39 2005] [notice] child pid 53961 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:40 2005] [notice] child pid 53962 exit signal Illegal instruction (4)
[Mon Aug 08 16:28:51 2005] [notice] child pid 53963 exit signal Illegal instruction (4)
[Mon Aug 08 16:29:18 2005] [notice] child pid 53965 exit signal Illegal instruction (4)
[Mon Aug 08 16:29:18 2005] [notice] child pid 53964 exit signal Illegal instruction (4)

FreeBSD 6.0 으로 시스템을 업그레이드하면 worker 를 다시 도전해 보기로 하고 일단 정신 건강을 위하여 다시 perfork 로 돌아간다.

고맙습니다. worker로 바꾼 건 생각지도 않고 php 쪽 버그만 찾을 뻔 했습니다. :) 저도 prefork로 다시 바꿔서 일단 잘 도네요. -- kz 2008-07-13 03:23:03

Jul 15, 2005 #
Apache MPM을 prefork 에서 worker로 변경 #
Submitted by JongYeob @ 07-15 [10:45 am]
성능 개선이 있다 하여 Apache MPM 설정을 prefork 에서 worker 로 바꿨다.

변경한 사항은 다음과 같다.

  • /etc/make.conf

    WITH_MPM=       worker
    

  • php 관련된 포트 재컴파일

  • /usr/local/etc/php.ini

    extension_dir = "/usr/local/lib/php/20041030-zts/"
    
    특히 여기에서 문제가 발생했다 이전은 /usr/local/lib/php/20041030/ 이었는데 -zts 가 더 붙었다. 왜 그럴까? 계속 에러가 나길래 확인하다가 extension_dir 이 변경되었다는 걸 알게 되었다.

바꾸고 나니 httpd가 10개에서 3개로 줄어있다. 성능은 어떨지 모르겠지만 한동안 두고 볼 일이다.

May 01, 2005 #
유무선 네트워크 재구성 #
Submitted by JongYeob @ 04-30 [05:20 pm]
네트워크를 다음과 같이 재구성하였다.

Network Architecture

 +-------------+
 |   HANARO    |
 +-------------+
        | 218.50,164.1
        |
 +-------------+
 | ADSL MODEM  |
 +-------------+
        | 
        | 218.50.164.98/24, rl0 
 +------+------+
 |   FreeBSD   |
 +------+------+
        | 192.168.0.1/24, rl1
        |
 |------LAN ----------+-------|
                      |
                      | 192.168.0.2/24, vlan0
                +-----+-----+
                |   WRT54G  |
                +-----+-----+
                      | 192.168.1.1/24, br0
                      | 
            |------Wired/Wireless LAN ------|
               192.168.1.101 ~ 192.168.1.150

/etc/rc.conf 추가

######
# Static Route
######
static_routes="wlan"
# WRT54G Wireless Gateway Route Setting
route_wlan="-net 192.168.1.0/24 192.168.0.2"

/etc/hosts 변경

127.0.0.1               localhost.jongyeob.com localhost
218.50.164.1            gw-hanaro
192.168.0.1             gw-default frodo
192.168.0.2             gw-wlan
218.50.164.98           frodo.jongyeob.com
192.168.1.10            xbox

WRT54G 설정
* Firmware Version: Alchemy-V1.0 v3.37.6.8sv upgrade
* Routing Table Entry List 추가

Destination LAN IP  	Subnet Mask  	Gateway  	Interface
192.168.0.0	        255.255.255.0	192.168.0.1	WAN (Internet)

Mar 21, 2005 #
무선랜 장착 #
Submitted by JongYeob @ 03-21 [01:36 pm]
벼르고 벼르다가

LynkSysWRT54G 유무선공유기를 구입해서 집에 설치를 했다. (구입일은 3/9쯤 장착일은 3/19)

100M 4포트 스위칭 허브를 제거하고 AP를 설치했다.

유무선공유기가 GW 또는 Router 역할을 하게 됨에 따라서 네트워크 구성이 다음과 같이 바뀌었다.


Server rl0 (192.168.0.1) ---- (192.168.0.100) AP (192.168.1.1) --- 유무선랜


보안은 WEB으로 설정.

현재 서버(192.168.0.1)에서 192.168.1.0 망으로 연결이 안 된다. 좀더 세팅을 해 봐야겠다.

Feb 24, 2004 #
MoniWiki 미러링 #
Submitted by JongYeob @ 02-24 [02:08 pm]

혹시나 하는 마음에 MoniWiki 미러링을 한다. 미러링은 Monolith:종협이 알려준 rsync를 이용했다.


rsync -ruvtz -e ssh hanbyeol@jongyeob.com:/home/hanbyeol/public_html/moniwiki /home/hanbyeol/public_html/

단 한줄로 완벽 미러링.
Thx insel ~

Feb 12, 2004 #
방명록과 GuestBook을 Blog 방식으로 바꾸다 #
Submitted by JongYeob @ 02-12 [11:27 am]
WikiWiki 방식으로 방명록을 만들었더니 쓰는 사람들 대개가 어렵다고 난리다. 내가 대중적이지 못한 인간이기에 그런 사람을 닮은 홈페이지도 그러하다.

방명록을 쓰는 사람이 많지 않겠지만 그래도 조금이나마 쉽게 사용할 수 있도록 Blog 방식으로 바꾸었다.

Feb 10, 2004 #
메뉴 인코딩이 깨지는 문제 #
Submitted by JongYeob @ 02-10 [01:33 pm]
MoniWiki 1.0.7 에서 한글 메뉴와 설명이 깨지는 문제가 있다. 영어로 메뉴와 설명이 나오다가 검색이나 페이지 수정 따위의 어떤 작업을 하면 메뉴나 설명이 euc-kr로 바뀐다. 브라우저에서 UTF-8으로 설정되어 있으니 UTF-8 본분은 정상으로 보이지만 메뉴는 깨져 나오게 된다.

locale 디렉토리에서 euc-kr로된 po 파일 등을 utf-8으로 바꿔 보기도 했고 심지어 한글이 들어간 locale관련 파일을 삭제하기까지 했다. 곧 moniwiki 디렉토리에는 euc-kr로 된, 메뉴나 설명 따위와 관련된 파일은 하나도 없다. 그런데도 euc-kr로 된 메뉴나 설명을 어디에서 갖고와서 깨져 보이게 하는지 영문을 알 수가 없다. 혹시 moniwiki 사이트에서 가져올까?

config.php 설정은 다음과 같다
$lang='en';
$charset='UTF-8';

gettext 에서 po화일을 이용해서 번역을 한 후 mo로 바꿔서 사용을 하게 됩니다..
그래서 영향을 받지 않은 듯 하군요..

흠 하지만..
$lang='ko_KR.UTF-8' 로 해보시는게 어떨까 싶군요..

저렇게 하면.. UTF-8로 변환까지 해주거든요..
효과가 없다면 아래와 같이 하면 될겁니다.. ;)



moniwiki/locale/ko/LC_MESSAGES
에서..

iconv -f uhc -t UTF-8 moniwiki.php > moniwiki_new.php
mv moniwiki_new.php moniwiki.php

앗.. 이름 쓸려다가 뭔가 좀 잘못된듯 한데 죄송합니다 ㅠ0ㅠ 도망 =3=33
written by [http]정태영

-- 211.249.100.13 2004-02-11


Jan 17, 2004 #
TurckMMCache 설치로 PHP 성능 향상 #
Submitted by JongYeob @ 01-16 [04:13 pm]

MoniWiki:Ko~TurekMMCache에서 TurckMMCache 를 알게 되었다. MoniWikiFullSearch 속도에 불만이 있는터라 혹시나 하는 기대를 하고 설치를 했다. - 책목록 경우 로딩시간이 6-7초 이상 걸렸다.

오호라,TurckMMCache 설치하고 나시 로딩 속도가 1-2초가 나오지 않는가.

ZeroBoard, SquirrelMail 이 이상없이 돌아가는 게 확인되었고 성능도 조금 나아졌다. 오래간만에 서버 삽질을 하고 나서 좋은 결과가 나왔군.

Jul 16, 2003 #
하나로 접속 장애 두번째 #
Submitted by JongYeob @ 07-16 [10:53 am]

4월 10일 일어났던 일이 또 생겼다. 이노무 시키들 뭔 짓을 하는건지 ... 임의로 IP를 변경하고 내게 통보도 하지 않고, 게다가 엉뚱한 IP가 등록된 IP인양 그리고 제대로 세팅했다고 빡빡 우기고 ... 26시간 만에 복구. 배상받아야겠다.

Apr 10, 2003 #
하나로 접속 장애 #
Submitted by JongYeob @ 04-10 [02:52 pm]

사무실에서 서버에 접속을 하는데 인내심을 시험하듯이 속도가 느려졌다. 급기야 오후 6시 전후로 종엽닷컴에 접속이 불가능한게 아닌가.

집에 와서 서버를 점검해 보니 서버는 말짱 그자체다. 이상한 점은 [http]MRTG에 저녁 정각 6시부터 트래픽이 전혀 없다. 하나로 통신에 장애 신고를 했다. 한번, 두번.두번째 폭발해버렸다. 혹시 구로지역에 작업 사실이 있는지 변경사항이 있는지 물었는데 그건 운영팀 소관이라 모른다고 발뺌만 해대지 않는가. 분명 뭔가 조치가 있었으니 그런 현상이 있을터.

노트북에서 XP로 부팅하여 연결을 시도했으나 마찬가지, 혹시나 하고 ADSL 프로그램으로 돌리니 유동IP로 접속. 이런.

짜식들 분명 어떤 작업을 했군.

반쯤 조져놨던 담당자에게 확인 연락이 왔다. 조치를 했다고 한다. 난 배상을 받아야겠고 분명 이런 일이 재발할 가능성이 있으니 운영팀의 공식적인 해명을 듣고 싶다고 했다. 그리고 다시 연락. 구로지역에 1.25 대란과 비슷한 지역장애가 발생해서 IP를 변경했다고 한다. 누구마음대로. 나만을 위해 임시로 IP를 열어줬다고 한다. 정상적으로 사용하려면 IP를 변경해야 한다고 한다. 누구마음대로. IP변경되면 NS도 바꿔야 하고 결국 2-3일 서비스를 못하게 되고 내게는 분명 장애인 셈이라고 못 박았다. 기사가 방문한다나 ... 올테면 와라 집에 없으니. 마음대로 IP 바꾸면 가만 있지 않겠다고 했다.

또 IP를 바꿔야 하나.... 망 관리 좀 잘 하지.

Apr 06, 2003 #
드디어 4.8-Stable 로 업그레이드 #
Submitted by JongYeob @ 04-06 [01:50 pm]

  • 4.8 출시가 2주가량 연기되다가 4월 6일 출시되었다. 되자마자 CVS업데이트하고 make kernel ; make world ; mergemaster ; reboot
  • 그러나 4.8로 업그레이드하고 나서 portupgrade -a 하면 make가 무한 생성되고 모든 메모리를 다 써버리고 swap까지 가득 채운 다음에 mysqld, httpd 등을 죽이는 상황까지 발생했다. 아마도 의존성 체크 과정에서 무한루프가 돌아서 생긴 현상 같았다. portsdb -uU 로 ports index를 갱신하고 나서 이 문제를 해결했다.

Feb 25, 2003 #
서버를 집에서 ADSL 망으로 돌리다 #
Submitted by JongYeob @ 02-25 [01:28 am]

서버를 회사, 기숙사 등에 전전하면 운영하다가 그냥 관리 편하게 집으로 옮겨 왔다.

ADSL Pro + 고정IP 방식으로 서버를 운영한다.

Lite 속도에 만족하지만 고정IP를 사용하기 위해서는 Pro로 업그레이드 해야 했다. 결국 5-6만원 추가 비용이 발생했다. 게다가 전기료까지 감안하면 ... 아 골아프다.

서버를 집에 갖고 오니 내 마음대로 관리할 수 있어서 좋다. 이참에 make kernel을 1년만에 시도해 봤다.

Feb 18, 2003 #
노트북 하드 사망 #
Submitted by JongYeob @ 02-17 [09:14 pm]

어제부터 노트북에서 리눅스로 부팅하니 커널 패닉 증상이 있더니 XP로 부팅 속도가 무지 느려졌다. 결국 하드를 쓰지 못할 상황이 되어버렸다.

40GB 하드가 18만원선에다 램까지 업그레이드하면 근 25-30만원이 깨지게 생겼구나.

Feb 03, 2003 #
위키위키에서 VisualTour 기능 구현 #
Submitted by JongYeob @ 02-03 [02:36 pm]

GraphVizWebDot을 설치하고 moindot.cgi, webot.py, VisualTour.py 설정을 해서 VisualTour 기능을 구현했다.

Jan 28, 2003 #
Submitted by JongYeob @ 01-28 [02:07 am]

가이드겸해서 작성했다. 흠 이걸 보고 사용할 사람이 얼마나 될까?

Jan 27, 2003 #
BackupScript를 만들다 #
Submitted by JongYeob @ 01-27 [03:35 am]

기존에 얼기설기 만든 고쳐서 BackupScript를 만들었다.

하드디스크로 일단 백업하고 다른 서버로 백업파일을 전송하게 했으니 여차해서 내 시스템에 문제가 생겨도 조금은 안심할 수 있게 되었다.

Oct 13, 2002 #
하루 가량 위키가 멈추다. 퍼미션 변경으로 인한 실수 #
Submitted by JongYeob @ 10-13 [06:59 am]

보안을 강화할 요량으로 다음과 같은 조치를 취했다.

  • 개인 홈의 그룹소유권을 개인으로 변경, $HOME의 접권권한을 711로 변경
  • /var 아래 일반 사용자 접근권한 제거

그런데 /var 을 잘 못 건드려서 MoinMoin 위키가 실행이 안 되었다. 또한 mysql을 재가동이 안 되었다. 아래는 jongyeob.com-error_log 내용이다.

[Sun Oct 13 04:09:48 2002] [error] [client 63.214.218.119] Client sent malformed Host header
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] Premature end of script headers: moin.cgi
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] Traceback (most recent call last):
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249]   File "/usr/local/share/moin/home/moin.cgi", line 32, in ?
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249]     cgimain.run()
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249]   File "/usr/local/lib/python2.2/site-packages/MoinMoin/cgimain.py", line 90, in run
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249]     import cgi, os, sys, string
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249]   File "/usr/local/lib/python2.2/cgi.py", line 39, in ?
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249]     import urllib
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249]   File "/usr/local/lib/python2.2/urllib.py", line 26, in ?
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249]     import socket
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249]   File "/usr/local/lib/python2.2/socket.py", line 41, in ?
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249]     from _socket import *
[Sun Oct 13 04:17:55 2002] [error] [client 147.46.209.249] ImportError: Shared object "libssl.so.3" not found

원인은 /var 과 /var/tmp 권한 때문이었다. 한참을 헤매다가 접근 권한을 원상 복구했다.
  • chmod 755 /var
  • chmod 1777 /var/tmp
오늘의 교훈 1. 쓸데없이 삽질하지 말자! 2. 삽질하더라도 이전 정보는 남겨 두자.

Oct 03, 2002 #
''System Log'' - log rotationg code #
Submitted by JongYeob @ 10-02 [07:12 pm]

#!/bin/sh
# Rotate www logs. DON'T RUN THIS IF YOU AREN'T ROOT. IT WON'T WORK.
cd /home/web/www/server/logs/
today=`date "+%m%d%y"`
if ( test -f access_log ) then
  if ( test -f error_log ) then
    mv access_log access_log.$today ; 
    mv error_log error_log.$today ; 
    kill -1 `cat httpd.pid`
  else
    mv access_log access_log.$today ; 
    kill -1 `cat httpd.pid`
  fi
else
  if ( test -f error_log ) then
    mv error_log error_log.$today ; 
    kill -1 `cat httpd.pid`
  fi
fi
if ( test -f access_log.$today ) then
  gzip access_log.$today
  chown web access_log.$today.gz
fi
if ( test -f error_log.$today ) then
  gzip error_log.$today
  chown web error_log.$today.gz
fi

''Apache'' - 특정 HTTPd 프로세스 병목 현상 해결 #
Submitted by JongYeob @ 10-02 [02:49 pm]

Apache 문제는 대충 감이 잡힌다. MaxRequestsPerChild 세팅을 기본값 0으로 하면 process가 생성된 뒤에 소멸되지 않고 계속 남아 있는다. 적절한 값을 주면 그 숫자만큼 request를 처리하고 process가 소멸된다.

결국 MaxRequestsPerChild 문제였다. 해결 봤음. -- JongYeob 2002-10-03 06:33:10

# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
StartServers         5
MinSpareServers      5
MaxSpareServers     10
MaxClients         150
MaxRequestsPerChild 10000

''Apache'' - 특정 HTTPd 프로세스 병목 현상 #
Submitted by JongYeob @ 10-02 [04:56 am]

Apache 한 프로세스에만 심한 로드가 걸린다. 왜 이렇지?

last pid: 60148;  load averages:  1.05,  1.02,  0.95   up 20+23:38:29  04:51:33
64 processes:  2 running, 62 sleeping
CPU states: 99.6% user,  0.0% nice,  0.4% system,  0.0% interrupt,  0.0% idle
Mem: 48M Active, 338M Inact, 73M Wired, 22M Cache, 61M Buf, 20M Free
Swap: 512M Total, 504K Used, 511M Free

  PID USERNAME   PRI NICE  SIZE    RES STATE    TIME   WCPU    CPU COMMAND
55771 www         59   0 10556K  7360K RUN     90:36 98.44% 98.44% httpd
59900 www          2   0 10140K  6900K accept   0:00  0.00%  0.00% httpd
59901 www          2   0  9216K  5764K accept   0:00  0.00%  0.00% httpd
59896 www          2   0  9248K  5780K accept   0:00  0.00%  0.00% httpd
59906 www          2   0  9276K  5800K accept   0:00  0.00%  0.00% httpd
59891 www          2   0  9256K  5796K accept   0:00  0.00%  0.00% httpd
59892 www          2   0  9256K  5792K accept   0:00  0.00%  0.00% httpd
59903 www          2   0  9256K  5804K accept   0:00  0.00%  0.00% httpd
59893 www          2   0  9208K  5740K accept   0:00  0.00%  0.00% httpd
59902 www          2   0  9240K  5772K accept   0:00  0.00%  0.00% httpd
59897 www          2   0  9192K  5728K accept   0:00  0.00%  0.00% httpd

로그파일 커져서? 겨우 50MB도 안 된다. 특정 스크립트 오류? 일단 생각난김에 로그파일 로테이션이나 시켜 봐야겠다.
  • 방법 1 : newsyslog 사용 - newsyslog(8) 참조

    % cat /etc/newsyslog.conf
    
    # Rotate and compress web logs at 10 megs, compress, and HUP apache.
    # Keep 15 old logs around.
    /var/log/httpd.log   644  15 10000  * Z /var/run/httpd.pid 1
    

  • 방법 2 : rotatelogs 사용 - rotatelogs(8) 참조

    CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common
    

  • 방법 3 : metalogs 사용 - 젠투리눅스로 인해 알게된 로그 시스템... - GriUn

    메타로그는 자동으로 로그 로테이션을 지원함.  기타 여러가지 장점이 있으나, 나중에 다시 추가하기로...
    이외에 syslog-ng라는 로그 시스템이 있는데, 이는 로그를 MySQL DB에 저장해서 분석할 수 있는 기능등이 있음.  가장 가볍고 머리 안 아픈 건 역시 메타로그라고 생각합니다.
    

이제 부터 종엽닷컴에서 관리하는 시스템에 대한 관리일지를 쓴다. #
Submitted by JongYeob @ 10-02 [04:56 am]

2년 가까이 FreeBSD를 관리하고 있다. 시스템 설정하고 새로운 툴을 설치할 때마다 인터넷을 뒤져서 각종 문서를 찾고 관련 사이트 게시판을 훑어 보고 뉴즈넷 Q&A를 찾아 본다. 결국 문제를 해결하지만 그 노하우는 머리에 남았다가 이내 사라져 버린다. 다시 세팅하려면 지난번 고생을 반복한다. 이제는 더 이상 그러지 말자. 내가 경험과 각종 정보를 일지 형식으로 정리해 보자.



powered by MoniWiki Powered by FreeBSD DNS Powered by DNSEver.com
last modified 2008-07-13 12:23:03
Processing time 7.8272 sec