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 문제를 확인하는 순서
실무에서는 다음 순서대로 점검하는 것이 가장 효율적입니다.
- dmesg 확인
- journalctl -k 확인
- df -h 확인
- SMART 정보 확인
- fsck 검사
- mount 상태 확인
- iostat 확인
- RAID 상태 확인
- 물리 연결 확인
- 데이터 백업 및 디스크 교체 검토
이 순서대로 확인하면 대부분의 원인을 빠르게 파악할 수 있습니다.
오류를 해결할 때 주의할 점
I/O Error가 발생했다고 해서 무조건 파일 시스템만 복구하는 것은 바람직하지 않습니다.
디스크 자체에 물리적인 문제가 있는 경우에는 fsck를 반복 실행해도 근본적인 해결이 되지 않습니다.
특히 SMART 경고가 발생했다면 데이터를 먼저 백업한 후 저장 장치를 교체하는 것이 안전합니다.
자주 묻는 질문
Input/output error는 디스크가 고장 난 것인가요?
반드시 그런 것은 아니지만 디스크 또는 저장 장치 문제일 가능성이 높으므로 SMART 정보와 시스템 로그를 함께 확인해야 합니다.
fsck만 실행하면 해결되나요?
파일 시스템 오류는 복구할 수 있지만 디스크 자체가 손상된 경우에는 동일한 문제가 다시 발생할 수 있습니다.
SSD에서도 I/O Error가 발생하나요?
네. SSD도 수명이 다했거나 컨트롤러에 문제가 생기면 동일한 오류가 발생할 수 있습니다.
마무리
Input/output error는 Linux 서버에서 비교적 심각한 오류 중 하나로, 저장 장치나 파일 시스템에 문제가 있다는 신호일 가능성이 높습니다. dmesg, journalctl, smartctl, fsck, iostat 등을 활용하여 원인을 정확히 분석하고, 필요한 경우 데이터를 먼저 백업한 후 디스크를 교체하는 것이 안전한 운영 방법입니다.