Motive

  • 케이스도 없이 신발장에 누드 상태로 처박아 둔 서버의 건강이 걱정됨.
  • 하스웰이라서 노후화. 안정성이 중요한 서버이므로 하드웨어 교체 사이클(약 5년)이라고 생각됨.
  • 시놀로지 나스를 별로도 운영중인데, 관리하기도 불편하고 확장성도 떨어져서(2베이) 웹 서버와 파일 서버를 합쳐서 싱글 머신으로 통합 운영을 하고 싶음.
  • 이사를 갈 것을 대비해 인테리어로도 손색없는 서버의 외관을 만들고 싶음.
  • 이상의 이유로 보드만 ITX 사이즈로 바꾸려 했으나, 하스웰을 지원하는 80, 90시리즈 칩셋 보드의 ITX 사이즈는 중고 시장에서 거의 찾을 수 없었음.

등의 이유로 서버를 새로 꾸몄다.

Spec

요구 스펙은 다음과 같이 잡았다.

  • CPU: 4코어 8스레드 이상에 벤치마크 상으로 i5-4690(구 서버의 CPU)을 유의미하게 넘길 것. (욕심같아선 AMD 에픽을 쓰고 싶으나, 나의 가난이 허락지 않았다.)
  • RAM: 16GB 이상, XMP 가능. (이상은 수년간 웹 서버와 레이드 서버를 운영해보면서 감으로 얻은 최소 스펙이다.)
  • M/B: ITX 중에 제일 싼거. NVMe 지원. (여기에서 중고를 거의 포기하게 되었다. 옛날 보드들은 NVMe가 안되므로.)
  • Case: 3.5인치가 4베이 이상이며 ATX 파워를 지원하는 것 중에 가장 작은 것. 색상은 화이트.
PartModelAmtPriceDateNote
CPUIntel i3-101001₩ 121,4302021-01-25벌크
M/BAsus Prime H410i-plus1₩ 106,5702021-01-25
RAMG.SKILL 8GB 2666MHz2₩ 109,9802021-01-25CL15-15-15-35
SSDPM981a 512GB1₩ 70,0002020-12-28벌크, 미사용 중고
SSDMicron MX200 250GB1₩ 5,0002019-08-19중고
HDDHGST Deskstar 4TB2₩ 384,1202015-06-20
HDDWD Ultrastar 4TB1₩ 157,5002021-01-25
PSUSF-650F12MT1₩ 85,0002015-07-09
CaseFractal Design Node 304 White1₩ 63,0002020-12-31중고
Specification

CPU쿨러는 인텔 초코파이 기쿨이 집에 굴러다니길래 그냥 주워다 박았다. 쓰고 있던 NOFAN CR-80EH를 옮겨 박을까 했는데, 지스킬램 방열판 및 후편팬과 간섭이 심하여 사용이 불가했다. 팬 스피드는 바이오스 상에서 가장 느리게 하여 소음을 최소로 하였다. 이래도 풀로드시 60도를 유지한다.

CPU와 RAM은 호갱맞은 느낌이 크다. 각각 최소 만 원은 더 싸야 제값인 느낌이나, 값이 떨어지는 거 기다리기 귀찮아 그냥 구입. 원래는 라이젠 4350G 정도를 고민했으나, 돈이 모자라서… (나같은 가난뱅이는 성능 좋고 비싼 AMD를 못사고 가성비의 인텔을 살 수밖에 없음)

소프트웨어 방식으로 RAID5를 구성하기 위해 NAS에서 쓰던 하드 2개에 더해 하나를 추가로 구매하였다. Ultrastar는 HGST가 WD에 인수되었으나 브랜드가 유지되고 있다. 개인적으로 HGST를 가장 신뢰하므로 좀 비싸더라도 울트라스타를 구입.

CPU, M/B, RAM, WD하드를 제외한 나머지는 중고로 구했거나, 기존의 부품을 재활용.

Software Setup

BIOS

  • 바이오스 최신 버전 업데이트.
  • 하이퍼쓰레드, 터보 부스트 작동 해제. 24시간 켜놓아야 하므로 전기료를 최대한 줄이기 위해. 따라서 전력 관리 기능은 활성화. 이후 시스템 로드를 모니터링하여 필요시 다시 기능을 활성화할 예정이다.
  • 안쓰는 포트(예를 들어 시리얼, 오디오 등)는 싹다 해제.
  • 다만 XMP는 활성화.

OS

Ubuntu Server 20.04.1 LTS 설치.

Migration: WordPress, Piwigo

구 서버에서 MySQL DB를

$ mysqldump -u [user_name] -p [db_name] > [file_name].sql

와 같이 백업한다. [user_name]에는 WordPress가 사용하는 mysql 계정, 혹은 관리자 계정을 넣으면 되고, [db_name]에는 WordPress가 사용하고 있는 데이터베이스의 이름을 넣는다. 파일 이름은 아무렇게나 해도 무방. 구글에 검색하면 phpMyAdmin으로 DB를 백업하는 방법도 나온다. 어떤 방법이든, 백업만 잘 되면 된다. 이 파일을 새 서버로 복사한다. 이제 새 서버에 db를 복원해주면 된다. 물론 mysql 서버가 설치되어 있다는 가정 하에

$ mysql -u [user_name] -p [db_name] < [file_name].sql

를 실행한다. 단, WordPress가 DB를 사용하기 위한 계정과 DB가 이미 추가되어 있어야 에러가 나지 않을 것이다. 복원 역시 나처럼 쉘에서 명령어를 입력하든 phpMyAdmin으로 하든, 잘 해주기만 하면 된다. 마지막으로, 설치 디렉토리를 통째로 새 서버로 복사하면 끝. WordPress의 경우 PHP 버전이 새 서버로 오면서 7.4로 올라갔는데, 약간의 트러블이 있었으나 수작업으로 디버깅을 해주었다.

Piwigo 역시 동일한 방식으로 하여 별 문제 없이 성공.

Migration: TWiki

CPAN 모듈들을 새 서버에 모두 설치해주고, 설치 디렉토리를 통째로 복사했다. 문제 없이 잘 작동.

Samba

새 서버는 NAS의 역할을 겸용해야 하므로 Samba 필요.

$ apt install samba

로 Samba 패키지를 설치한다. 이제 설정 파일을

$ vi /etc/samaba/samba.conf

와 같이 열어 설정을 적절히 해준다. 나는 프린터 관련 설정은 필요치 않아 모두 코멘트 처리했음. 설정 파일의 가장 하단에

[raid]
comment = raid directory
path = /mnt/raid01
valid users = id1,id2
writeable = yes
read only = no
create mode = 0777
directory mode = 0777

의 내용을 추가하였다. 4TB 하드 3개를 묶은 raid 디렉토리를 공유하는 설정이다. 이제

systemctl restart smbd

로 Samba 데몬을 재시작 해주면 된다.

Etc

  • 4TB 하드 3개를 raid5로 묶어줌. mdadm으로 소프트웨어 레이드 방식 사용. 하드웨어 레이드 카드까지 돈써서 사고 싶진 않았다.
  • SSL 인증서 재발행.
  • APM 설치. (는 사실 웹 서비스 마이그레이션 이전에 했음.)
  • Grafana, Plex 등 추가 어플레케이션 설치.
  • NAS 자료 백업.
  • 기타 등등.

Conclusion

글은 짧게 적었으나 하루 꼬박 써서 서버 리뉴얼 작업 완료. 미래의 나 자신을 위해 문서화 하기 위해 이 포스트를 적기 시작했으나, 귀차니즘으로 매우 짧은 요약글이 되어버렸다. 나중에 한가할 때 디테일을 기억 나는 대로 이 포스팅에 추가해보자.

카테고리: HardwareLinux

0개의 댓글

답글 남기기

Avatar placeholder

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다