15. 장애 대응 — 스토리지 트러블슈팅 실전
디스크/컨트롤러/경로/성능/공간 부족 5가지 장애 시나리오별 대응 흐름, 벤더 서포트 콜 준비와 심각도 분류, 펌웨어 NDU 절차와 리스크, 실제 장애 사례 3가지에서 배운 교훈, RCA 작성법과 재발 방지 대책까지. 새벽 3시에 전화가 왔을 때 뭘 어떤 순서로 확인하는가.
- 112. 데이터 효율화 — 중복제거, 압축, 씬 프로비저닝
- 21. 스토리지, 왜 어렵고 왜 중요한가
- 32. 스토리지 아키텍처 기초 — DAS / NAS / SAN / Object Storage
- 43. 병렬 파일 시스템과 분산 스토리지 — Lustre, GPFS, HDFS
- 54. 프로토콜 깊이 파기 — FC / iSCSI / NFS / SMB / S3
- 65. RAID와 데이터 보호 — 전통 RAID부터 이레이저 코딩까지
- 76. 도입 검토 — 요구사항 분석과 벤더 선정
- 87-1. 설계 — 인프라 편 (이중화, 플랫폼, Tier)
- 97-2. 설계 — 데이터 편 (LUN 배치, 스냅샷, DR)
- 108. 구축 — 초기 설정과 호스트 연결
- 119. 인수시험(SAT) — 장비를 내 것으로 만드는 과정
- 1210. 일상 운영 1: 볼륨 할당과 변경 관리
- 1311. 일상 운영 2: 모니터링, 성능 튜닝, 용량 관리
- 1413. 백업과 아카이빙
- 1514. 보안과 랜섬웨어 대응
- 1615. 장애 대응 — 스토리지 트러블슈팅 실전
새벽 3시에 전화가 온다.
"스토리지 알람이요. 디스크 장애래요." 괜찮다. RAID가 있으니까. "컨트롤러 페일오버 알람이요." 긴장된다. IO 중단이 있었을 수 있다. "볼륨 오프라인이요. DB가 멈췄어요." 심장이 뛴다.
스토리지 장애 대응은 경험이 쌓일수록 빨라진다. 하지만 경험이 없어도, "어떤 순서로 뭘 확인하는가"를 알고 있으면 패닉에 빠지지 않는다. 이번 편에서는 시나리오별 대응 흐름, 벤더 서포트 콜 준비, 펌웨어 업그레이드, 장애 후속 조치까지 다룬다.
장애 대응의 기본 원칙
장애 시 행동 순서:
① 상황 파악 "뭐가 어떻게 됐는가?"
│ 알람 내용, 영향 범위, 시작 시각
▼
② 영향 확인 "서비스에 영향이 있는가?"
│ IO 중단 여부, 성능 저하 여부
▼
③ 1차 대응 "당장 할 수 있는 건?"
│ 경로 전환, 페일오버 확인, 서비스 정상화
▼
④ 원인 분석 "왜 이렇게 됐는가?"
│ 로그 분석, 벤더 서포트 콜
▼
⑤ 근본 조치 "재발을 막으려면?"
│ 부품 교체, 설정 변경, 펌웨어 패치
▼
⑥ 후속 조치 "기록과 개선"
RCA 작성, 재발 방지 대책
핵심: ②와 ③이 먼저다.
원인 분석(④)은 서비스가 정상화된 후에 해도 된다.
새벽 3시에 "왜 이런 거지?"를 고민하느라 서비스 복구가 늦어지면 안 된다.시나리오별 장애 대응
시나리오 1: 디스크/SSD 장애
가장 흔한 장애다. 디스크 수십~수백 대를 운영하면 월 1~2건은 자연스럽다.
단일 디스크 장애:
알람: "Disk 0a.01.5 failed"
│
▼
확인: RAID 상태
· RAID Degraded 상태인가?
· Hot Spare가 자동으로 투입됐는가?
· 리빌드가 시작됐는가?
│
├── Hot Spare 투입 + 리빌드 시작됨 → 정상 동작
│ 서비스 영향 없음 (올플래시: 레이턴시 미세 증가)
│ → 벤더에 디스크 교체 요청 (SR 오픈)
│ → 리빌드 완료 후 교체 디스크를 새 Hot Spare로
│
└── Hot Spare 없음 → 주의!
RAID는 Degraded 상태. 추가 디스크 장애 시 데이터 유실 위험.
→ 벤더에 긴급(Sev1) 교체 요청
→ 리빌드 완료까지 모니터링 강화
서비스 영향:
┌──────────────────────────────────────────────────────┐
│ 올플래시 + 분산 RAID (Dell ADAPT, Pure 등): │
│ 리빌드가 전체 디스크에 분산. 영향 미미. │
│ 레이턴시 5~15% 증가 정도. │
│ │
│ 전통 RAID + HDD: │
│ 리빌드 시간 수시간~수일. 리빌드 중 성능 저하 큼. │
│ 레이턴시 2~5배 증가 가능. │
│ → 리빌드 중에는 배치 작업을 미루는 게 좋다. │
└──────────────────────────────────────────────────────┘ 이중 디스크 장애 (RAID 5에서 2번째 디스크 장애):
이건 비상 상황이다.
RAID 5: 디스크 1개 장애 허용. 2개째 나가면 데이터 유실.
RAID 6 / RAID-DP / RAID-TEC: 2~3개까지 허용. 여유 있음.
분산 RAID (Dell ADAPT, Pure): 내부적으로 이중 패리티 이상.
┌──────────────────────────────────────────────────────┐
│ RAID 5에서 리빌드 중 2번째 장애: │
│ → 데이터 유실. 복구 불가. │
│ → 백업에서 복원해야 한다. │
│ → 이게 5편에서 "RAID 5가 위험하다"고 한 이유. │
│ │
│ RAID 6 / RAID-DP에서 리빌드 중 2번째 장애: │
│ → 아직 버틸 수 있다. 하지만 3번째가 나가면 끝. │
│ → 벤더에 최우선(Sev1) 요청. 즉시 교체. │
└──────────────────────────────────────────────────────┘시나리오 2: 컨트롤러 장애 / 페일오버
컨트롤러 장애 발생:
알람: "Controller A offline" / "Storage failover takeover"
│
▼
자동 페일오버가 됐는가?
│
├── Yes → Controller B가 인수
│ · IO 중단 시간 확인 (수초~수십초)
│ · 서비스 영향 확인 (DB 타임아웃 발생 여부)
│ · multipath -ll에서 경로 상태 확인
│ · 벤더에 SR 오픈
│ · Controller A 원인 분석 (벤더와 함께)
│ · 복구 후 Giveback 실행
│
└── No → 수동 대응 필요!
· HA Interconnect가 끊어져 있을 수 있음
· 수동 Takeover 시도
· 안 되면 벤더 긴급 콜
페일오버 후 주의사항:
┌──────────────────────────────────────────────────────┐
│ · 페일오버 상태에서는 성능이 떨어진다. │
│ Controller B가 자기 볼륨 + A의 볼륨을 다 처리. │
│ CPU/캐시 부하가 2배. 평소 대비 레이턴시 증가. │
│ │
│ · 페일오버 상태에서 추가 장애가 나면 더 위험하다. │
│ Controller B도 죽으면 전체 IO 중단. │
│ → 페일오버 상태를 오래 유지하지 않는다. │
│ 원인 해결 후 빨리 Giveback. │
│ │
│ · Giveback(원복) 시에도 순간 IO 영향이 있을 수 있다. │
│ NDG(Non-Disruptive Giveback)를 지원하는지 확인. │
└──────────────────────────────────────────────────────┘시나리오 3: 경로 단절
FC 경로 단절:
알람: "FC link down on port 0a" / multipath에서 faulty
│
▼
몇 개 경로가 끊겼는가?
│
├── 1~2개 (4개 중) → 서비스 영향 없음 (멀티패스 동작)
│ · multipath -ll로 상태 확인
│ · 끊긴 경로 원인: 케이블? Switch 포트? SFP?
│ · FC Switch에서 해당 포트 로그 확인
│ · 물리적으로 케이블/SFP 점검
│ · 교체 후 경로 자동 복구 확인
│
└── 전체 경로 단절 → 서비스 중단!
· 모든 IO가 멈춤. 즉시 대응.
· 원인: Switch 전체 장애? 스토리지 포트 전체 장애?
· 두 Fabric이 동시에 죽었으면 → PDU/전원 문제?
· 호스트에서 no_path_retry 설정에 따라
IO가 큐에 쌓이거나(queue) 에러를 리턴(fail)
· 경로 복구 후 IO 자동 재개 확인
iSCSI 경로 단절:
· FC보다 감지가 느리다 (TCP 타임아웃 의존)
· ping으로 네트워크 연결 확인
· iscsiadm -m session으로 세션 상태 확인
· MTU 불일치가 간헐적 단절의 원인인 경우가 있다
→ ping -M do -s 8972 <target_ip>로 Jumbo Frame 확인시나리오 4: 성능 급감
"스토리지가 갑자기 느려졌어요"
│
▼
11편의 성능 병목 분석 흐름을 따른다:
호스트 → 네트워크 → 컨트롤러 → 디스크
장애 상황에서 추가로 확인할 것:
┌──────────────────────────────────────────────────────┐
│ · 페일오버 중인가? │
│ 한쪽 컨트롤러가 양쪽 볼륨을 다 처리하면 느려진다. │
│ │
│ · RAID 리빌드 중인가? │
│ 리빌드 IO가 서비스 IO와 경합. │
│ │
│ · 특정 볼륨이 IO를 독점하고 있는가? (Noisy Neighbor) │
│ QoS로 상한을 걸어야 한다 (11편 참고). │
│ │
│ · 씬 프로비저닝 공간이 부족한가? │
│ 물리 공간 90% 이상이면 성능 저하가 발생할 수 있다. │
│ 컨트롤러가 공간 확보를 위해 내부 작업을 하면서 느려짐│
│ │
│ · 백업/복제가 동시에 돌고 있는가? │
│ 야간 백업이 아침까지 밀려서 서비스와 겹치는 경우. │
└──────────────────────────────────────────────────────┘시나리오 5: 볼륨 오프라인 / 공간 부족
"DB가 멈췄어요. 쓰기가 안 돼요."
│
▼
볼륨 상태 확인
│
├── 볼륨 오프라인 → 왜?
│ · 씬 프로비저닝 물리 공간 소진 (12편)
│ · 스냅샷 공간 초과
│ · 컨트롤러 장애
│ · LUN Masking 변경 실수
│
└── 볼륨 온라인인데 쓰기 안 됨 → 왜?
· 파일시스템 Full (호스트 측)
· Read-Only로 변경됨 (파일시스템 에러)
· 스토리지 측 볼륨 Full (씬 프로비저닝)
공간 부족 긴급 대응 (11편에서 상세히 다뤘지만 여기서 재정리):
┌──────────────────────────────────────────────────────┐
│ 즉시 할 수 있는 것 (시간 벌기): │
│ 1. 오래된 스냅샷 삭제 → 공간 회수 │
│ 2. 미사용 볼륨 오프라인 → 공간 확보 │
│ 3. UNMAP/TRIM 실행 → 호스트가 삭제한 공간 회수 │
│ 4. QoS로 쓰기 속도 제한 → 급격한 증가 억제 │
│ │
│ 근본 해결: │
│ · 디스크/쉘프 증설 │
│ · 데이터 이전 (다른 스토리지로) │
│ · 아카이빙 (오래된 데이터를 저비용 매체로 이동) │
└──────────────────────────────────────────────────────┘벤더 서포트 콜 — 준비가 반이다
장애가 나면 벤더 서포트에 SR(Service Request)을 연다. 이때 준비가 되어있으면 해결이 빨라진다.
서포트 콜 전에 준비할 것:
┌──────────────────────────────────────────────────────┐
│ 기본 정보: │
│ · 장비 모델, 시리얼, 펌웨어 버전 │
│ · 유지보수 계약 번호 │
│ · 장애 발생 시각 (정확히) │
│ · 장애 증상 (에러 메시지, 알람 내용) │
│ · 서비스 영향 여부와 범위 │
│ │
│ 로그: │
│ · 스토리지 이벤트 로그 (최근 24시간) │
│ · AutoSupport / Call Home 데이터 │
│ (벤더가 원격으로 받을 수 있으면 가장 빠름) │
│ · 호스트 측: /var/log/messages, dmesg, multipath -ll │
│ · FC Switch: errshow, porterrshow │
│ │
│ 벤더별 로그 수집: │
│ NetApp: autosupport invoke -node * -type all │
│ Dell: 서포트 어시스트 자동 수집 또는 GUI에서 다운로드│
│ Pure: phonehome 자동 전송 (기본) │
│ HPE: InfoSight 연동 또는 수동 로그 번들 │
└──────────────────────────────────────────────────────┘심각도(Severity) 분류:
┌──────────┬────────────────────────┬──────────────────┐
│ 심각도 │ 상황 │ 벤더 대응 │
├──────────┼────────────────────────┼──────────────────┤
│ Sev 1 │ 서비스 중단. │ 24x7 즉시 대응. │
│ (긴급) │ 데이터 유실 위험. │ 4시간 현장 대응. │
│ │ 우회 방법 없음. │ │
├──────────┼────────────────────────┼──────────────────┤
│ Sev 2 │ 서비스 성능 심각 저하. │ 4시간 내 원격 │
│ (높음) │ 이중화 Degraded. │ 대응 시작. │
│ │ 우회 가능하지만 불안정. │ │
├──────────┼────────────────────────┼──────────────────┤
│ Sev 3 │ 기능 일부 문제. │ 익일 대응. │
│ (보통) │ 서비스 영향 없음. │ 이메일/전화. │
├──────────┼────────────────────────┼──────────────────┤
│ Sev 4 │ 문의, 정보 요청. │ 일반 대응. │
│ (낮음) │ │ │
└──────────┴────────────────────────┴──────────────────┘
Sev를 낮게 잡으면 대응이 느려진다.
서비스 중단인데 Sev 3으로 열면 "내일 연락드리겠습니다."
서비스 중단이면 반드시 Sev 1. 과장할 필요 없지만 축소도 안 된다.
벤더 대응이 느릴 때:
┌──────────────────────────────────────────────────────┐
│ · 에스컬레이션 요청: "매니저와 통화하겠다." │
│ · 계약서의 SLA를 근거로 대응 시간 요구. │
│ · 영업 담당에게 동시에 연락. 영업 채널이 기술 지원 │
│ 에스컬레이션에 효과적인 경우가 있다. │
│ · 로그를 최대한 수집해서 먼저 보내둔다. 벤더가 │
│ "로그 보내주세요"로 시간을 끄는 걸 방지. │
└──────────────────────────────────────────────────────┘펌웨어 업그레이드 — 가장 긴장되는 변경 작업
펌웨어 업그레이드는 High 위험도 변경 작업이다. NDU(Non-Disruptive Upgrade)라 서비스에 영향이 없다고 하지만, 그래도 긴장된다.
펌웨어 업그레이드 절차:
┌──────────────────────────────────────────────────────┐
│ 1. 업그레이드 매트릭스 확인 │
│ 현재 버전 → 목표 버전으로 직접 업그레이드 가능? │
│ 중간 버전을 거쳐야 하는 경우가 있다. │
│ (예: 9.8 → 9.12 직접 불가. 9.8 → 9.10 → 9.12) │
│ │
│ 2. 호환 매트릭스 재확인 │
│ 목표 펌웨어와 호스트 OS/HBA 드라이버 호환? │
│ 호환 안 되면 호스트 업데이트를 먼저 해야 할 수 있음│
│ │
│ 3. 릴리스 노트 확인 │
│ 알려진 이슈(Known Issues) 확인. 우리 환경에 │
│ 해당하는 버그가 있는지. │
│ │
│ 4. 사전 건강 체크 │
│ · HA 상태 정상? │
│ · RAID 상태 정상? (Degraded면 업그레이드 금지) │
│ · 디스크 장애 없는가? │
│ · 페일오버 가능 상태인가? │
│ · 충분한 여유 공간 (펌웨어 이미지 저장용)? │
│ │
│ 5. 백업/스냅샷 │
│ 설정 백업 (스토리지 구성 export) │
│ 중요 볼륨 스냅샷 │
│ │
│ 6. 업그레이드 실행 (NDU) │
│ 보통 Controller A 업그레이드 → 페일오버 → 복구 │
│ → Controller B 업그레이드 → 페일오버 → 복구 │
│ 전체 소요: 30분~2시간 (벤더/버전에 따라) │
│ │
│ 7. 업그레이드 후 확인 │
│ · 펌웨어 버전 확인 │
│ · HA/RAID 상태 정상 │
│ · 모든 서비스 IO 정상 │
│ · 모니터링 알람 없는지 │
└──────────────────────────────────────────────────────┘
NDU의 장단점:
┌──────────────────────────────────────────────────────┐
│ 장점: 서비스 중단 없이 업그레이드 가능. │
│ │
│ 단점/리스크: │
│ · "Non-Disruptive"가 "Zero-Impact"는 아니다. │
│ 페일오버/Giveback 과정에서 순간 레이턴시 증가. │
│ 민감한 DB에서 체감할 수 있다. │
│ │
│ · 업그레이드 중 추가 장애가 나면 대응이 복잡해진다. │
│ 한쪽 컨트롤러가 업그레이드 중인데 다른 쪽도 문제? │
│ → 업그레이드 시간대에 다른 변경 작업을 금지한다. │
│ │
│ · 롤백이 안 되는 경우가 있다. │
│ 일부 벤더/버전에서 다운그레이드 불가. │
│ → 업그레이드 전에 "롤백 가능한가?" 벤더에 확인. │
│ → 불가능하면 그 사실을 승인권자에게 고지. │
└──────────────────────────────────────────────────────┘장애 사례에서 배운 교훈들
사례 1: 케이블 한 가닥 때문에
┌──────────────────────────────────────────────────────┐
│ 상황: 데이터센터 정리 작업 중 FC 케이블 1개를 │
│ 실수로 뽑음. Fabric A의 경로가 끊김. │
│ │
│ 영향: 멀티패스가 동작해서 서비스 영향은 없었음. │
│ 하지만 이 상태에서 Fabric B마저 문제가 생기면 │
│ 전체 IO 중단이었음. │
│ │
│ 발견: 2주 뒤 모니터링 점검에서 "경로 1개 degraded" │
│ 를 발견. 그 사이 이중화가 깨진 채로 운영. │
│ │
│ 교훈: │
│ · 경로 장애 알람이 즉시 오도록 설정해야 한다. │
│ · "이중화니까 괜찮아"가 아니라 "이중화가 깨졌으니 │
│ 빨리 복구해야"가 맞는 대응이다. │
│ · 케이블에 라벨이 없어서 어떤 케이블인지 찾는 데 │
│ 1시간 걸렸다. 라벨링의 중요성 (8편 참고). │
└──────────────────────────────────────────────────────┘
사례 2: 펌웨어 버그로 인한 데이터 정합성 문제
┌──────────────────────────────────────────────────────┐
│ 상황: 특정 펌웨어 버전에서 드물게 발생하는 │
│ Silent Data Corruption 버그. │
│ 데이터가 깨졌는데 에러가 안 나옴. │
│ │
│ 발견: DB 체크섬 검증에서 불일치 발견. │
│ │
│ 교훈: │
│ · 벤더 보안 권고(Security Advisory)를 정기 확인. │
│ · AutoSupport/Call Home를 켜놓으면 벤더가 먼저 │
│ "이 버전에 알려진 이슈가 있으니 업그레이드하세요" │
│ 라고 알려준다. │
│ · 체크섬(Data at Rest integrity)이 있는 파일시스템 │
│ (ZFS, ONTAP WAFL)이 이런 문제를 잡아줄 수 있다. │
└──────────────────────────────────────────────────────┘
사례 3: 리빌드 중 두 번째 디스크 장애
┌──────────────────────────────────────────────────────┐
│ 상황: HDD 환경. RAID 5 구성. 디스크 1개 장애 후 │
│ 리빌드 중(36시간째)에 두 번째 디스크 장애. │
│ │
│ 결과: RAID 그룹 전체 데이터 유실. 백업에서 복원. │
│ 복원에 18시간. 총 서비스 중단 20시간+. │
│ │
│ 교훈: │
│ · 대용량 HDD에서 RAID 5는 위험하다 (5편). │
│ · RAID 6 / RAID-DP / RAID-TEC를 써야 한다. │
│ · 올플래시로 전환하면 리빌드 시간이 수 분으로 줄어든다│
│ · 백업이 없었으면 데이터를 완전히 잃을 뻔했다. │
└──────────────────────────────────────────────────────┘장애 후속 조치 — RCA와 재발 방지
장애가 끝나면 RCA(Root Cause Analysis)를 작성한다. "해결됐으니 됐지"가 아니다. 같은 장애가 다시 나지 않도록 하는 게 목적이다.
RCA 보고서 구조:
┌──────────────────────────────────────────────────────┐
│ 1. 개요 │
│ 장애 일시, 영향 범위, 서비스 중단 시간 │
│ │
│ 2. 타임라인 │
│ 장애 발생 → 감지 → 1차 대응 → 원인 파악 → 복구 │
│ 각 단계의 시각과 소요 시간 │
│ │
│ 3. 근본 원인 (Root Cause) │
│ "왜 이 장애가 발생했는가?" │
│ 직접 원인 + 근본 원인 구분 │
│ (직접: 디스크 장애, 근본: RAID 5 구성 + 대용량 HDD)│
│ │
│ 4. 대응 과정 │
│ 뭘 했고, 뭐가 효과가 있었고, 뭐가 안 됐는지 │
│ │
│ 5. 재발 방지 대책 │
│ · 단기: 즉시 적용 (모니터링 임계치 조정 등) │
│ · 중기: 계획 수립 (RAID 레벨 변경, 증설 등) │
│ · 장기: 구조 개선 (장비 교체, 아키텍처 변경 등) │
│ │
│ 6. 담당자 / 이행 기한 │
│ 대책별 담당자와 완료 기한을 명시. │
│ 기한 없는 대책은 안 한다. │
└──────────────────────────────────────────────────────┘
장애 이력을 기록해두면 패턴이 보인다.
"매달 같은 디스크 쉘프에서 장애가 난다" → 환경 문제(열, 진동)?
"특정 벤더 펌웨어에서만 이 에러가 난다" → 벤더에 보고.
장애 이력 DB(스프레드시트라도)를 유지하면 장기적으로 큰 도움이 된다.스토리지 장애 대응에서 가장 중요한 건 평소의 준비다. 모니터링이 잘 되어 있으면 장애를 빨리 감지하고(11편), 인수시험에서 Baseline을 잡아뒀으면 "원래와 다른 상태"를 판단할 수 있고(9편), 백업이 검증되어 있으면 최악의 상황에서도 복구할 수 있다(13편).
다음 편에서는 유지보수 계약과 수명 관리를 다룬다. 스토리지도 수명이 있다. EOS/EOL이 오기 전에 뭘 준비해야 하는지.
이 글이 어떠셨나요?
관련 포스트
9. 인수시험(SAT) — 장비를 내 것으로 만드는 과정
스토리지 인수시험(SAT)의 전체 절차. 하드웨어/라이선스 검증, 스냅샷 복원 테스트, 컨트롤러 페일오버 IO 중단 시간 판정 기준(30초 근거), 경로/전원/디스크 장애 시뮬레이션, fio 레이턴시 프로파일 해석법, 벤더 스펙 대비 실측 비교 방법, 성능 저하 시 5단계 원인 추적, 인수 결과 문서와 조건부 합격의 실무적 의미, 초기 안정화 기간 활용법까지.
2026. 06. 01. PM 10:00Infrastructure14. 보안과 랜섬웨어 대응
스토리지 암호화(SED/볼륨/KMS), 전송 암호화(NFS TLS/SMB 3.0/iSCSI IPSec), RBAC와 MFA, 랜섬웨어 대응 3단계(예방/탐지/복구), Immutable 스냅샷 벤더별 비교, 에어갭, 비정상 IO 패턴 탐지와 한계, 감염 후 클린 복구 절차, 관리 네트워크 격리, 보안 감사 대응까지.
2026. 07. 06. PM 10:00Infrastructure13. 백업과 아카이빙
3-2-1 백업 원칙, Full/Incremental/Differential 비교, 백업 방식 4가지(에이전트/스냅샷/이미지/NDMP)의 장단점, 백업 매체(디스크/테이프/클라우드) 비교, 테이프가 아직 살아있는 이유, 백업 SW 생태계, WORM과 컴플라이언스, 복구 테스트의 중요성, 백업과 아카이빙의 차이까지. 데이터의 마지막 보루.
2026. 06. 29. PM 10:00뉴스레터 구독
새 글이 올라오면 이메일로 알려드려요.