서버 관리 삽질

by Joongi Kim

지난 일요일 오후부터 연구실 gateway 서버 때문에 한참 삽질했다. 가끔씩 서버에 들어가서 패키지 업데이트나 보안패치를 해주는데, 이번에는 들어가보니 HWE (hardware enablement kit) 지원이 종료됐다면서 더 이상 커널 보안 업데이트가 안 되기 때문에 major upgrade를 수행하라고 메시지가 나왔다. 비슷한 세팅(SW 레이드가 어설프게 켜져있던)의 다른 서버를 전에 업그레이드했을 때 grub 설치 오류가 났었지만 이후 사용과 재부팅에 전혀 문제가 없었기 때문에 그대로 진행했는데, 아뿔싸 이번에는 부팅이 안 되는 사태가 발생했다. 결국 서버실에 와서 확인해보니 grub bootloader가 손상되어 있었고--- grub rescue> 프롬프트가 뙇---구글링해서 그 상태로 부팅 진입하기 위한 모듈 탑재를 시도했으나 모듈 파일을 못 읽길래 다시 구글링한 정보를 바탕으로 Ubuntu 복구CD를 이용해서 복구모드에 진입, grub 설치 메뉴를 선택했다. 그런데... 이게 그만 (나한테 물어보거나 경고하지도 않고) 시스템을 완전히 초기화해버렸다. -_-; 그러니까, home 디렉토리들은 그대로 두고 etc, var, usr 등의 시스템 소프트웨어·패키지가 깔리는 디렉토리들이 싹 초기화된 것이다.

결국 긴급하게 연구실 사람들에게 공지 메일을 돌리고 월요일 아침에 나와서 home 디렉토리에 백업된 내용을 바탕으로 복구(라기보다는 사실상 재설치)를 진행했는데, 모든 설정을 마치고 재부팅을 딱 하는 순간 분명히 일요일 밤에 grub 복구 후 여러 번 해도 잘 되던 재부팅이 또 SW 레이드 관련 문제로 진행이 안 되는 것이었다. initramfs> 프롬프트를 보니 부들부들.

이걸 어찌할까 생각해보니, SW 레이드 걸린 상태에서 부트로더를 제대로 잡도록 고치는 삽질---해본 적이 없어서 구글링해가며 이것저것 시도해봐야 하고 까딱 잘못하면 파티션 정보를 잘못 건드려 데이터를 접근할 수 없게 되어버릴 수도 있는---을 할 것이냐, 아니면 SW 레이드가 어차피 하드디스크 나갈까봐 미러링만 걸어서 써온 것인데 데이터만 꺼내서 걍 SSD 박아버리고 grub이 꼬이지 않을 안전한 설정으로 재설치해버릴 것이냐를 두고 결정을 해야 했다.

나는 다음의 이유로 후자를 선택했다:

  • 이미 이 서버는 연구실의 최중요 서버 중 하나라 UPS로 순간정전에 대응이 되어 있고 주로 계정정보(LDAP)를 읽기만 하는 read-only 서버 역할이다. 따라서 SSD를 쓰면 서버 자체가 망가질 확률과 디스크가 망가질 확률이 비슷해질 것이다.
  • 통상 연구실이나 동아리의 서버관리자들은 한 관리자가 2~3년 정도 하고 나면 새 관리자로 바뀌는데, 그 관리자들의 스킬·능력이 일정치 않기 때문에 최대한 단순하고 고치기 쉬운 설정으로 만드는 게 장기적으로 좋다.
  • hot-spare 서버를 두고 장애 발생 시 바로 교체해서 사용할 수 있도록 구축하는 것이 가장 이상적이지만, 하루 정도 서버 접속을 못한다고 연구실 운영에 막대한 지장이 오는 것은 아니다. 설치매뉴얼을 잘 만들어놓았기 때문에 백업이 잘 되어 있고 대체 하드웨어만 있다면 한나절만에 복구가 가능하다.

실제로 새 디스크에 완전히 처음부터 다시 설치하는 데 걸린 시간은 3시간 정도였다. 이후 있었던 문제들은 LDAP 데이터베이스가 일부 롤백되면서 group 권한이 제대로 설정되지 않았거나 설정을 바꾼 후 cache 때문에 바로 반영되지 않는 이슈였고, 또 일부 서버에서 NIC 올리고 내리고 하면서 default gateway route가 빠졌거나 이런 자잘한 것들이었다.

이런 류의 삽질이 1년에 한두번씩은 꼭 있는 것 같은데, 이게 참 삽질을 줄이기 위해서 노력을 많이 들이는 게 좋을지 아니면 그냥 그때만 참고 삽질하는 게 나은지... 이런 부분은 그때그때 관리자의 성향에 따라 달라지는 부분이기도 하고, 딱히 정답도 없는 문제라서 더 귀찮은 것 같다.