장비 네 대를 IDC 에 넣게 됐고 무엇을 어디에 둘지 정하는 일을 맡았는데 처음에는 사양만 보면 되는 줄 알았다.
Table of contents
Open Table of contents
사양과 역할을 맞췄다
네 대의 사양이 달랐다.
장비 1 CPU 8코어 RAM 32G SSD 480G
장비 2 CPU 8코어 RAM 32G SSD 480G
장비 3 CPU 4코어 RAM 16G HDD 2T
장비 4 CPU 4코어 RAM 16G HDD 2T
SSD 를 단 둘은 빠르고 HDD 2T 를 단 둘은 용량이 크다. 무엇을 올릴지도 적었다.
웹 서버 CPU 를 쓴다
DB RAM 과 디스크 속도를 쓴다
파일 저장 용량을 쓴다
배치 CPU 와 시간을 쓴다
SSD 장비에 MySQL 을 두고 HDD 장비에 파일을 두는 것까지는 쉬웠다. 여기까지는 사양만 보고 정할 수 있었다.
위치가 걸렸다
랙에 넣는 자리도 정해야 했다. 같은 랙에 두면 선이 짧아 통신이 빠르고 다른 랙에 두면 한 랙이 죽어도 나머지가 산다.
MySQL 을 두 대로 하고 하나는 대기로 두기로 했는데 둘을 같은 랙에 두면 랙 전원이 나갈 때 둘 다 죽는다.
랙 A 웹1, DB주
랙 B 웹2, DB대기
web01 과 db01 을 랙 A 에, web02 와 db02 를 랙 B 에 넣으니 랙 하나가 죽어도 서비스가 산다. 나눠 둔 이유가 위치에서 무너지면 나눈 의미가 없다.
랙마다 쓸 수 있는 전력도 정해져 있었다.
랙당 허용 3.0 kW
장비 1대 약 0.5 kW
네 대면 2.0 kW 라 여유가 있었다. 나중에 늘릴 것을 생각하면 랙당 두 대씩이 맞았다.
앞뒤 방향도 확인했는데 공기가 들어오는 쪽과 나가는 쪽이 있어서 반대로 넣으면 열이 안 빠진다. 이런 것은 미리 안 물어보면 현장에서 알게 된다.
사전 준비 — 경로와 확인 목록
붙는 경로를 그렸다.
인터넷 → 방화벽 → 스위치 → 웹1, 웹2
↓
DB주, DB대기
↓
파일 서버
웹만 밖에서 닿게 하고 나머지는 안쪽에 뒀다.
공인 IP 웹1, 웹2 만
사설 IP 나머지 전부
db01 에 공인 주소를 안 주니 밖에서 붙을 방법이 없다. 관리는 ssh 로 웹 서버를 거쳐서 한다. 서비스 경로와 관리 경로를 같이 두면 하나를 막을 때 다른 하나도 막힌다.
현장에 가서 빠뜨리면 다시 가야 하므로 확인할 것도 적었다.
- 랙 위치와 U 번호
- 전원 케이블 개수 (이중화면 2개씩)
- 네트워크 케이블 길이
- IP 와 게이트웨이
- 원격 관리 포트 설정
- OS 설치 매체
원격 관리를 안 켜고 오면 다음에 또 가야 한다. 실제로 그것 때문에 한 번 다시 갔다.
넣고 나서 확인했다
전부 켜고 나서 하나씩 봤다.
# 서로 붙는가
$ for h in db01 db02 file01 web02; do
ping -c 1 -W 1 $h > /dev/null && echo "$h OK" || echo "$h FAIL"
done
# 밖에서 웹만 닿는가
$ nmap -Pn <공인IP>
붙어야 할 것이 붙고 안 붙어야 할 것이 안 붙는지 둘 다 봤는데 앞만 보면 열려 있으면 안 되는 포트가 열린 것을 못 본다.
실제로 3306 이 밖에서 열려 있었다. iptables 규칙 하나가 빠져 있었다.
무엇을 어디에 뒀는지도 적어 뒀다.
장비 1 web01 랙 A-12U 웹1 (공인 할당)
장비 2 web02 랙 B-12U 웹2 (공인 할당)
장비 3 db01 랙 A-14U DB주
장비 4 db02 랙 B-14U DB대기
장애가 났을 때 어디로 가야 하는지가 이 표로 갈리고 적어 두지 않으면 현장에서 찾게 된다.
호스트 이름도 규칙 없이 시작했더니 제각각이 됐다.
server1, db-main, FILE_SRV, web02
web01 과 db01 처럼 역할과 번호를 붙이는 것으로 정했다. 대문자와 밑줄을 안 쓴 것은 명령에서 다루기 번거로워서였고 역할이 이름에 있으니 접속했을 때 어디인지 바로 보인다. 프롬프트에도 나오게 해서 잘못된 서버에서 명령을 치는 것을 줄였다.
정리
- 무엇을 어디에 둘지는 사양만이 아니라 위치로도 갈린다
- 같이 죽으면 안 되는 것은 다른 랙에 넣는다
- 나눠 둔 이유가 위치에서 무너지면 의미가 없다
- 전원 용량과 공기 방향을 확인한다. 안 물어보면 현장에서 알게 된다
- 밖에서 닿아야 하는 것에만 공인 주소를 준다
- 서비스 경로와 관리 경로를 나눈다
- 현장에 가기 전에 확인할 것을 적는다. 빠뜨리면 다시 간다
nmap으로 붙어야 할 것과 안 붙어야 할 것을 둘 다 확인한다- 무엇이 어디에 있는지 적어 둔다. 장애 때 이 표로 갈린다
- 호스트 이름에 역할과 번호를 넣으면 접속했을 때 어디인지 보인다