Linux Input/output error(I/O Error)가 발생하는 원인과 해결 방법

Linux 서버를 운영하다 보면 파일을 복사하거나 디스크에 데이터를 저장하는 과정에서 Input/output error 또는 I/O Error라는 오류를 만나는 경우가 있습니다. 이 오류는 단순한 프로그램 문제가 아니라 디스크, 파일 시스템, 저장 장치, 하드웨어 등과 관련된 문제일 가능성이 높기 때문에 빠른 확인이 필요합니다.

특히 운영 서버에서 I/O Error가 반복된다면 저장 장치 장애의 초기 신호일 수도 있으므로 단순히 재부팅만 하는 것은 권장되지 않습니다. 이번 글에서는 Linux에서 I/O Error가 발생하는 원인과 해결 방법을 알아보겠습니다.

Input/output error란 무엇인가?

Input/output error는 운영체제가 저장 장치와 데이터를 읽거나 쓰는 과정에서 오류가 발생했음을 의미합니다.

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

cp: error writing 'backup.tar': Input/output error

또는

Input/output error

이 오류는 디스크 자체의 문제일 수도 있고 파일 시스템 손상이나 연결 문제로 인해 발생할 수도 있습니다.

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

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

  • 디스크 불량
  • SSD 수명 저하
  • HDD 배드 섹터
  • 파일 시스템 손상
  • RAID 장애
  • USB 저장장치 오류
  • SATA 케이블 불량
  • 컨트롤러 오류
  • 커널 디스크 오류

원인을 정확히 확인한 후 조치를 진행해야 합니다.

1. 시스템 로그 확인하기

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

dmesg

또는

journalctl -k

I/O Error 관련 메시지가 있는지 확인합니다.

2. 디스크 오류 검색하기

디스크 관련 오류만 검색합니다.

dmesg | grep -i error

또는

dmesg | grep -i "I/O"

오류가 반복적으로 발생하는지 확인합니다.

3. 디스크 사용 상태 확인하기

현재 디스크 상태를 확인합니다.

df -h

마운트가 정상인지도 함께 확인합니다.

4. SMART 정보 확인하기

디스크의 건강 상태를 확인합니다.

smartctl -H /dev/sda

상세 정보도 확인할 수 있습니다.

smartctl -a /dev/sda

Reallocated Sector, Pending Sector 등의 항목을 확인합니다.

5. 파일 시스템 검사하기

파일 시스템 손상이 의심된다면 검사합니다.

fsck /dev/sda1

주의사항

운영 중인 파티션에서는 실행하지 않는 것이 좋으며, 필요 시 복구 모드나 Live 환경에서 수행해야 합니다.

6. 마운트 상태 확인하기

디스크가 정상적으로 마운트되었는지 확인합니다.

mount

또는

cat /proc/mounts

읽기 전용(Read Only)으로 변경되지 않았는지 확인합니다.

7. 디스크 I/O 사용량 확인하기

실시간 디스크 사용량을 확인합니다.

iostat -x 1

또는

iotop

디스크 응답 시간이 지나치게 높은지 확인합니다.

8. RAID 상태 확인하기

RAID 환경에서는 배열 상태도 확인해야 합니다.

cat /proc/mdstat

RAID가 손상되었다면 I/O Error가 발생할 수 있습니다.

9. 디스크 연결 상태 확인하기

물리 서버라면 SATA 케이블이나 SSD 연결 상태도 확인합니다.

가상 서버라면 클라우드 콘솔에서 디스크 상태를 확인하는 것이 좋습니다.

10. 백업 후 디스크 교체 검토하기

SMART 오류가 반복되거나 배드 섹터가 증가하고 있다면 중요한 데이터를 즉시 백업해야 합니다.

디스크는 자연스럽게 복구되지 않으므로 조기에 교체하는 것이 가장 안전합니다.

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

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

  1. dmesg 확인
  2. journalctl -k 확인
  3. df -h 확인
  4. SMART 정보 확인
  5. fsck 검사
  6. mount 상태 확인
  7. iostat 확인
  8. RAID 상태 확인
  9. 물리 연결 확인
  10. 데이터 백업 및 디스크 교체 검토

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

오류를 해결할 때 주의할 점

I/O Error가 발생했다고 해서 무조건 파일 시스템만 복구하는 것은 바람직하지 않습니다.

디스크 자체에 물리적인 문제가 있는 경우에는 fsck를 반복 실행해도 근본적인 해결이 되지 않습니다.

특히 SMART 경고가 발생했다면 데이터를 먼저 백업한 후 저장 장치를 교체하는 것이 안전합니다.

자주 묻는 질문

Input/output error는 디스크가 고장 난 것인가요?

반드시 그런 것은 아니지만 디스크 또는 저장 장치 문제일 가능성이 높으므로 SMART 정보와 시스템 로그를 함께 확인해야 합니다.

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

파일 시스템 오류는 복구할 수 있지만 디스크 자체가 손상된 경우에는 동일한 문제가 다시 발생할 수 있습니다.

SSD에서도 I/O Error가 발생하나요?

네. SSD도 수명이 다했거나 컨트롤러에 문제가 생기면 동일한 오류가 발생할 수 있습니다.

마무리

Input/output error는 Linux 서버에서 비교적 심각한 오류 중 하나로, 저장 장치나 파일 시스템에 문제가 있다는 신호일 가능성이 높습니다. dmesg, journalctl, smartctl, fsck, iostat 등을 활용하여 원인을 정확히 분석하고, 필요한 경우 데이터를 먼저 백업한 후 디스크를 교체하는 것이 안전한 운영 방법입니다.

댓글 남기기