Linux I/O Error(Input/output error)가 발생하는 원인과 디스크 진단 방법

Linux 서버를 운영하다 보면 파일을 읽거나 복사하는 과정에서 Input/output error 또는 I/O Error가 발생하는 경우가 있습니다. 단순한 파일 오류처럼 보일 수 있지만 실제로는 디스크 불량, 파일 시스템 손상, 케이블 문제, RAID 장애 등 심각한 하드웨어 문제의 신호일 수도 있습니다.

특히 데이터베이스 서버나 파일 서버에서는 이러한 오류를 무시하면 데이터 손실로 이어질 수 있으므로 즉시 원인을 분석해야 합니다.

이번 글에서는 Linux에서 Input/output error가 발생하는 원인과 디스크를 진단하는 방법을 실무 중심으로 알아보겠습니다.

Input/output error란 무엇인가?

Input/output error는 운영체제가 디스크나 저장 장치에서 데이터를 읽거나 쓰는 과정에서 정상적으로 처리하지 못했을 때 발생하는 오류입니다.

대표적인 오류는 다음과 같습니다.

cp: cannot stat 'data.txt': Input/output error

또는

ls: reading directory .: Input/output error

또는

Input/output error

이 오류는 단순한 권한 문제가 아니라 저장 장치 자체의 문제일 가능성이 높습니다.

Input/output error가 발생하는 대표적인 원인

다음과 같은 경우에 자주 발생합니다.

  • HDD 배드 섹터
  • SSD 불량
  • 파일 시스템 손상
  • RAID 장애
  • SATA/SAS 케이블 불량
  • USB 저장장치 오류
  • NFS 저장소 장애
  • 디스크 컨트롤러 오류
  • 전원 공급 불안정
  • 커널 드라이버 문제

실무에서는 디스크 상태를 가장 먼저 확인해야 합니다.

1. 커널 로그 확인하기

가장 먼저 커널 로그를 확인합니다.

dmesg | grep -i error

또는

dmesg | grep -i "I/O"

예시

Buffer I/O error on device sda

또는

blk_update_request: I/O error

디스크 장치 이름을 함께 확인합니다.

2. 시스템 로그 확인하기

journalctl -xe

또는

journalctl -k

디스크 관련 오류가 반복적으로 발생하는지 확인합니다.

3. 디스크 사용량 확인하기

df -h

용량이 가득 찼거나 읽기 전용(Read-only) 상태인지 확인합니다.

4. SMART 상태 확인하기

SMART는 디스크 상태를 확인하는 가장 중요한 도구입니다.

smartctl -H /dev/sda

전체 정보를 확인하려면

smartctl -a /dev/sda

다음 항목을 확인합니다.

  • Reallocated Sector Count
  • Pending Sector
  • Offline Uncorrectable
  • Power-On Hours
  • Overall Health

이 값이 증가하고 있다면 디스크 교체를 고려해야 합니다.

5. 배드 섹터 검사하기

배드 섹터를 검사합니다.

badblocks -sv /dev/sda

운영 중인 디스크에서는 시간이 오래 걸릴 수 있으므로 유지보수 시간에 수행하는 것이 좋습니다.

6. 파일 시스템 검사하기

파일 시스템 손상을 확인합니다.

fsck /dev/sda1

운영 중인 루트 파일 시스템에서는 직접 실행하지 말고 복구 모드나 라이브 환경에서 수행하는 것이 안전합니다.

7. RAID 상태 확인하기

소프트웨어 RAID라면 상태를 확인합니다.

cat /proc/mdstat

하드웨어 RAID라면 제조사 관리 도구를 이용해 디스크 상태를 확인합니다.

8. 블록 장치 확인하기

현재 연결된 디스크를 확인합니다.

lsblk

또는

fdisk -l

디스크가 정상적으로 인식되고 있는지 확인합니다.

9. 디스크 성능 확인하기

읽기 속도를 확인합니다.

hdparm -t /dev/sda

비정상적으로 속도가 낮다면 디스크나 컨트롤러 문제를 의심할 수 있습니다.

10. 케이블 및 하드웨어 점검

소프트웨어상 문제가 없다면 다음 항목도 확인해야 합니다.

  • SATA 케이블 교체
  • SAS 케이블 점검
  • 전원 케이블 확인
  • RAID Controller 로그 확인
  • SSD 펌웨어 업데이트

실무에서는 케이블 불량만으로도 I/O Error가 발생하는 사례가 적지 않습니다.

Input/output error 문제를 확인하는 순서

실무에서는 다음 순서대로 점검하는 것이 가장 효율적입니다.

  1. dmesg 확인
  2. journalctl 확인
  3. df -h 확인
  4. smartctl -H 확인
  5. smartctl -a 확인
  6. badblocks 검사
  7. fsck 실행
  8. RAID 상태 확인
  9. lsblk 확인
  10. 케이블 및 하드웨어 점검

이 순서대로 점검하면 대부분의 원인을 빠르게 파악할 수 있습니다.

오류를 예방하는 방법

Input/output error는 대부분 저장 장치 이상과 관련이 있으므로 예방이 매우 중요합니다.

다음과 같은 관리 방법을 권장합니다.

  • SMART 상태 정기 점검
  • RAID 구성 운영
  • 정기 백업
  • SSD 수명 모니터링
  • UPS 사용
  • 디스크 온도 관리
  • 커널 로그 모니터링
  • 예비 디스크 준비

특히 운영 서버에서는 SMART 경고가 발생하면 즉시 백업 후 디스크를 교체하는 것이 안전합니다.

자주 묻는 질문

Input/output error가 발생하면 디스크를 바로 교체해야 하나요?

반드시 그렇지는 않습니다. 먼저 smartctl, fsck, badblocks 등을 통해 실제 디스크 이상 여부를 확인한 후 판단하는 것이 좋습니다.

SSD에서도 발생하나요?

네. SSD 역시 수명 초과, 컨트롤러 오류, 펌웨어 문제 등으로 인해 동일한 오류가 발생할 수 있습니다.

fsck만 실행하면 해결되나요?

파일 시스템 손상은 복구될 수 있지만, 디스크 자체에 물리적인 문제가 있다면 오류가 다시 발생할 가능성이 높습니다.

마무리

Input/output error는 Linux에서 저장 장치 문제를 나타내는 가장 중요한 오류 중 하나입니다. dmesg, journalctl, smartctl, badblocks, fsck 등을 활용하면 디스크와 파일 시스템 상태를 종합적으로 진단할 수 있습니다. 특히 SMART 경고나 배드 섹터가 확인된다면 즉시 백업을 수행하고 저장 장치 교체를 준비하는 것이 안전합니다.

댓글 남기기