daybreaker.info

서버 관리 삽질

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