용량이 부족해지면 가장 먼저 떠오르는 답이 USB 외장 디스크다. 싸고, 꽂으면 바로 쓰고, 부담이 없다. 그런데 데스크톱에서의 경험을 서버에 그대로 가져오면 안 된다. 가끔 꽂아 쓰는 것과 24시간 연결해두고 매일 읽고 쓰는 것은 완전히 다른 운용이고, 후자에서 USB 외장 디스크는 생각보다 자주 말썽을 일으킨다.
이 글은 실제로 운영 중인 서버에서 외장 디스크가 한밤중에 read-only로 돌아서는 장애를 겪고 정리한 내용이다.
문제는 디스크가 아니라 ‘다리’다
외장 디스크는 [디스크 본체] ↔ [USB-SATA 브리지 칩] ↔ [서버 USB 포트]의 3단 구조다. 장애의 주범은 대부분 가운데의 브리지 칩이다. 디스크 자체(SMART 수치)는 멀쩡한데 연결이 불안정한, 가장 헷갈리는 형태의 장애가 여기서 나온다.
전형적인 증상과 그 의미:
| 증상 | 의미 |
|---|---|
| 갑자기 파일시스템이 read-only로 전환 | 쓰기 중 브리지가 응답하지 않아 커널이 손상 방지를 위해 쓰기를 차단함 |
dmesg에 reset SuperSpeed USB device, timeout | 브리지 끊김·재연결 — 절전, 케이블, 전원 어딘가의 문제 |
| 어느 날 마운트가 사라져 있음 | 끊김 후 재연결되며 디바이스 이름이 바뀌었거나 마운트 실패 |
특히 USB **자동 절전(autosuspend)**은 커널이 유휴 USB 장치를 절전시키는 정상 기능이지만 (커널 USB 전원 관리 문서), 일부 브리지 칩이 절전에서 깨어나는 과정을 제대로 처리하지 못하면 끊김으로 이어진다.
내가 겪은 사례를 그대로 적으면 이렇다. 올해 4월, 서버에 상시 연결해둔 USB 외장 SSD(sdb)에서 슈퍼블록 쓰기 실패가 발생했다. SMART는 재할당 섹터 0으로 디스크 본체가 멀쩡하다고 말하고 있었고, 정황상 USB 브리지가 약 180초 동안 응답을 멈춘 것이 원인으로 추정됐다 — 위에서 말한 “디스크는 멀쩡한데 다리가 문제”의 전형이었다. 이 일 이후 해당 디스크의 역할을 재생성 가능한 중간파일 전용으로 강등하고, 실시간 쓰기(로그, 진행 중 인코딩)와 100GB 이상 연속 쓰기를 금지하는 운영 규칙을 만들었다. 두 달째 같은 증상은 재발하지 않았지만, 신뢰가 아니라 감시로 유지되는 평화라고 생각한다.
장애가 났을 때의 진단 순서
- dmesg부터:
dmesg | grep -iE "usb|sd[b-z]|error|timeout"— 커널이 본 사실이 가장 정확하다. reset/timeout이 보이면 연결 계층, I/O error가 보이면 더 심각한 단계다. - SMART 확인:
sudo smartctl -A /dev/sdb에서Reallocated_Sector_Ct(재할당 섹터),Current_Pending_Sector(보류 섹터) 수치를 본다. 0이면 디스크 본체는 건강할 가능성이 높고, 늘어나는 중이면 디스크 자체의 수명 문제다. - read-only 복구: 원인을 확인하기 전에는 강제 remount보다 언마운트 →
fsck(파일시스템 점검) → 재마운트 순서가 안전하다.
절전이 원인으로 의심될 때의 임시 확인법: /sys/bus/usb/devices/*/power/control 값이 auto(절전 허용)인지 on(상시 활성)인지 본다. 해당 장치만 on으로 바꿔 증상이 사라지는지 확인하면 원인 분리가 된다. 다만 이것은 진단이지 처방이 아니다 — 증상이 사라졌어도 브리지 품질 문제라는 본질은 남아 있으므로, 아래의 운영 원칙으로 리스크 자체를 낮추는 것이 정도다.
그래도 써야 한다면 — 운영 원칙
USB 외장 디스크를 서버에서 완전히 배제할 필요는 없다. 신뢰 등급을 낮춰서 운용하면 된다.
- 용도 제한: 사라져도 재생성 가능한 데이터(백업 사본, 중간 산출물)만 둔다. 원본·DB·서비스 상태 파일은 두지 않는다. 백업의 원본이 아니라 스냅샷 백업의 수신처로 쓰는 것은 합리적인 타협이다 — 단, 그 백업이 유일한 사본이 되지 않게 3-2-1 구조 안에서.
- fstab에 nofail: 디스크가 빠져도 부팅이 멈추지 않게 한다 (자동 복구 글의 2층).
- 유전원(외부 전원) 제품 우선: 버스 전원만 쓰는 2.5인치 제품은 전력 부족이 끊김의 원인이 되기 쉽다. 3.5인치 유전원 또는 전원 공급되는 USB 허브가 안정적이다.
- 감시를 붙인다: read-only 전환과 마운트 해제는 조용히 일어난다. dmesg 에러·마운트 상태·용량을 주기적으로 점검해 알리는 스크립트를 걸어두면, 백업이 며칠째 조용히 실패하고 있는 최악의 시나리오를 막을 수 있다. 구현은 텔레그램 알림 글에서.
결론: 등급에 맞는 일을 맡기자
USB 외장 디스크는 서버 부품으로서는 2군이다. 2군에게 1군의 일(원본 보관, 상시 쓰기)을 맡기면 사고가 나고, 2군의 일(재생성 가능한 사본 보관)을 맡기면 값싸고 유용하다. 디스크를 탓하기 전에 역할 배정을 점검하자 — 어디에 무엇을 두어야 하는지는 NAS와 홈서버의 역할 분담에서 더 넓게 다룬다.