3년, 4년 전에 신입개발자들을 데리고 IDC에 다녀온 적이 있다.

 

IDC의 현장에서 일하는 IDC 직원 분들도 보고, 어떻게 일하는지도 보고, 셋팅은 어떻게 했는지 볼 수 있었다.

또한 수천 대의 서버를 어떻게 배선하는지. 회사에서 쓰고 있는 L7 네트웍 스위치들과 DB 장비들, 서버 장비들을 보여주었다. 인프라 담당자와 함께 신입개발자들을 데리고 나오니. 마치 유치원 선생님이 어디 견학 다녀온 것 같았다. PPT나 툴로 만나는 DB나 서버 Component가 아닌 “실재”를 만날 수 있었다. 신입개발자들은 다들 놀라면서 새로운 세상을 알 것처럼 좋아했다.

 

IDC 에서 12시간 교대로 근무했던 운영자들이 있었기에 지금 멋진 세상을 살고 있다는 느낌을 받았다. 그들의 수고에 대해서 감사하게 생각하고 있다..

 

 

 

 

전 직장 A 회사에서 나는 개발자로 입사했지만, 사람 시키기 어려우면 UTP 케이블, UTF Cross 케이블, 케이블 선 사서 endpoint 만들고 배선도 하라고 시켰다. 한 때는 5평 쯤 되는 서버실의 랙 앞에서 하루 종일 서서 Mpeg/Muxer, Emulator, Solaris, Dell 서버들과 함께 살았다. 환기도 잘 안 되는 서버실에서는 탁한 공기를 마시며 허리 통증을 느끼며 일했던 순간들이 주마등처럼 스쳐 지나갔다. 군대에서 행보관이 제초작업을 하기 위해서 작업자를 뽑을 때 해당 부서에서 가장 일이 적다고 느껴지는 사람이 차출 나가 작업하는 것처럼 내가 꼽혔던 것 같다.

 

시간이 지나면서 많이 능숙해졌다.

하드웨어 문제나 물리 전송 단 문제인지, 소프트웨어 문제인지 조금씩 눈이 보이기 시작했다.

 

저 서버의 속은 어떻게 구성되어 있을까? 남는 서버들을 Rack에서 빼서 하나씩 분해해서 cpu, memory, hdd 위치도 파악하기도 했다. 좀 더 특이한 서버들이 올 때마다 껍데기를 분해해서 어떻게 구성되어있는지 확인해봤다.

 

새로운 랙이 왔다며 랙을 옮기라고 했다. 개발하다 뛰쳐나가 랙을 이동하는데.. 죽을 뻔했다. 1 년동안 깡냉이 먹을만한 무게였다. 랙을 옮기면서 무게 바닥에 대해서 고민하기 시작했다. 일반 사무실에서 랙을 한쪽으로 모는 것을 최대한 방지하고 적당히 옮길 수 있도록 해야겠다는 생각을 하게 되었다.

 

이번에는 전원문제가 발생했다. 한쪽으로 랙을 쏠리면 특정 서버군에서 전력이 떨어져 전력을 확보해야 하는 이슈가 생겼다. 멀티탭을 사서 여러 전원 소스로부터 전원을 뽑고 전력을 겨우 겨우 확보했다.

 

그러다 보며 배선 문제가 심각했다. 직원들이 길을 가다 넘어져서 서버의 전원이 나가거나 네트웍이 끊기는 일이 빈번하게 되었다. 사무실 바닥을 다 꺼내서 UTF 케이블, 방송 케이블, 전원 케이블을 한번에 묶어서 각 파트별로 나눠서 쉽게 연결할 수 있게 했다.

 

이런 것들을 해보니, 3년 전이긴 하지만 IDC의 기술이 얼마나 튼튼한지 새삼스럽게 느꼈다.

 

초기 IDC 는 얼마나 힘들었을까? 시행착오를 똑같이 겪지 않았을까? 사무실에서도 이렇게 힘들었었는데…

 

생각해보니 아래 문제들을 가장 고민했었던 거 같다.

(책을 전혀 보지 않고 쓰고 경험적으로 쓴 거라 틀릴 수 있다.)

 

1. 전력 문제 : 언제나 동일한 전류, 전압이 서버로 흘러가야 했다. Capacity 확보는 언제나 중요한 문제였다.

2. 배선 문제 : 배선을 바닥 또는 천정으로 잘 따야 한다. 전원이나 케이블등이 빠져 나가서 발에 걸려 문제를 일으키지 않도록 해야 한다. 결국은 바닥보다는 천정방식으로 가는 게 더 좋은 모델이었던 거 같다.

3. 안정성 : 랙의 길이, 무게를 잘 디자인해야 했다. 무턱 대고 샀다가 빌딩 무너질 수 있다. 층마다 적절하게 무게를 배분해야 하고 해당 층에서 버틸 수 있는 총용량을 넘지 않도록 해야 할 것 같다. 또한 비상 전원은 늘 돌아가게 해야 한다. DB 장비 (Sun) 는 일반 랙과 달라서 로봇 같았다. 조심스럽게 다뤄야 했다.

4. 모니터링 : 모든 장비가 디지털 장비가 아니다. 아날로그 신호를 디지털로 바꾸는 장비도 있고, UTP 케이블만 꽂아 하는 장비도 있다. 다양한 장비를 한번에 모니터링할 필요가 있다. 전원 공급량부터 해서 네트웍까지.

5. 서버 배치 : IP 별로 서버 배치를 잘 하는 게 중요한 거 같다. 이 장비들이 묶을 수 있는 장비가 따로 있어서, 항상 배치를 신경써 야 했다.

6. 서버 이름 : 리눅스의 hostname과 같다. 물리 장비 배치 순서에 맞게 정할지, 그냥 서비스 이름에 맞게 구성할지가 관건이었다. 서비스 이름에 맞게 구성하면 기억하기 훨씬 편했다. 따라서 케이블 선에 네임 태그만 넣으면 알아서 끼고 테스트할 수 있었다.

 

 

지저분한 바닥에서 했던 모든 것들이 어제 일처럼 생생하다. 코딩 하면서 희열을 느낀 순간보다 힘든 시간이 더 기억나기 마련인 것 같다. 그런 순간들을 아무 말 없이 성실하게 일을 진행했다. 그 때는 어쩌면 개발에 대한 스트레스가 커서 그런 일을 즐겼는지도 모르겠다.

 

시스템 담당을 직접 하지는 않았지만, 주어진 일을 하다보니.. 세상을 보는 눈도 약간 넓어지는 것 같기도 하다.

Posted by '김용환'
,