RAID 리빌드 시간 계산기 쉽게 이해하기 — 개념과 원리
RAID 배열의 디스크 하나가 고장 나서 교체하면, 컨트롤러는 사라진 데이터를 새 디스크에 다시 만들어 넣어야 합니다. 이 리빌드가 끝날 때까지 배열은 중복성이 줄어들거나 아예 없는 성능 저하 상태로 동작합니다. 이 계산기는 그 취약한 시간이 얼마나 이어지는지 추정해 RAID 레벨 선택, 핫스페어 준비, 점검 계획에 도움을 줍니다.
계산 방법
리빌드 시간(시간) = 디스크 용량(바이트) ÷ 리빌드 속도(바이트/초) ÷ 3,600
용량은 제조사 표기와 같은 10진 테라바이트(1 TB = 10¹² 바이트), 속도는 10진 메가바이트(1 MB/s = 10⁶ 바이트/초) 기준입니다. 속도에는 디스크의 최대 순차 속도가 아니라 리빌드 중 실제로 유지되는 속도를 넣어야 합니다.
원리
일반적인 하드웨어·소프트웨어 RAID는 데이터가 있든 없든 교체 디스크 전체를 블록 단위로 채웁니다. 각 스트라이프마다 남은 디스크를 읽고, 빠진 조각을 복사(RAID 1/10)하거나 패리티로 다시 계산(RAID 5/6)해 새 디스크에 씁니다. 결국 전체 용량이 이 과정의 가장 느린 단계를 통과해야 하는데, 보통 새 디스크의 쓰기 속도나 서비스 보호를 위해 설정한 리빌드 우선순위가 병목이 됩니다. 용량을 이 지속 속도로 나누면 최소 소요 시간이 나옵니다. ZFS의 리실버처럼 파일 시스템을 아는 방식은 실제로 쓰인 블록만 복사하므로 빈 공간이 많으면 더 빨리 끝날 수 있습니다.
예제 풀이
- 입력값은 디스크 8 TB, 리빌드 속도 150 MB/s입니다.
- 용량을 바이트로 바꾸면 8 × 10¹² 바이트입니다.
- 속도는 150 × 10⁶ = 1.5 × 10⁸ 바이트/초입니다.
- 걸리는 초는 8 × 10¹² ÷ 1.5 × 10⁸ = 53,333초입니다.
- 시간으로 바꾸면 53,333 ÷ 3,600 = 14.81시간입니다.
| 재구성 속도 (MB/s) | 재구성 시간 (시간) |
|---|---|
| 37.5 | 59.25925926 |
| 75 | 29.62962963 |
| 112 | 19.75308642 |
| 150 | 14.81481481 |
| 188 | 11.85185185 |
| 225 | 9.87654321 |
| 300 | 7.407407407 |
결과 해석
결과는 가장 좋은 경우로 보아야 합니다. 사용자 요청을 처리하면서 리빌드하면 속도가 크게 떨어져 실제로는 두 배 이상 걸리기도 합니다. 이 시간 동안 RAID 5는 남은 중복성이 없어서 디스크가 하나 더 고장 나거나 남은 디스크에서 읽을 수 없는 섹터가 나오면 데이터가 손실될 수 있습니다. 대용량 디스크일수록 RAID 6, RAID 10, 소거 코딩을 선호하는 이유이며, 백업이 여전히 필요한 이유이기도 합니다. 같은 속도에서 용량이 두 배가 되면 리빌드 시간도 두 배가 됩니다.
흔한 실수
- 현실적인 리빌드 속도 대신 디스크의 최대 순차 속도를 넣는 경우
- TB와 TiB, MB/s와 Mb/s(메가비트)를 혼동하는 경우
- 리빌드 중에도 배열이 안전하다고 생각하는 경우
자주 묻는 질문
대용량 디스크에서 RAID 5가 위험한 이유는 무엇인가요?
리빌드가 길어지고 남은 디스크의 모든 섹터를 읽어야 하기 때문입니다. 데이터시트의 복구 불가 읽기 오류율은 10¹⁴ 또는 10¹⁵비트당 1회 수준으로 표기되므로, 수 테라바이트를 읽으면 오류를 만날 가능성이 커집니다.
리빌드를 빨리 끝낼 수 있나요?
많은 컨트롤러에서 리빌드 우선순위를 높이거나 한가한 시간에 돌리도록 설정할 수 있지만, 그동안 서비스 속도는 느려집니다.
핫스페어가 있으면 리빌드가 빨라지나요?
복사 자체가 빨라지지는 않지만, 사람이 디스크를 교체할 때까지 기다리지 않고 바로 리빌드를 시작합니다.
출처: D. A. Patterson, G. Gibson, R. H. Katz, A Case for Redundant Arrays of Inexpensive Disks (RAID), ACM SIGMOD 1988 · IEC 80000-13, 정보 과학 및 기술의 양과 단위(10진·2진 접두어)