본문 바로가기

devops/infra

RAID란 무엇인가?

RAID란?

여러 개의 디스크를 하나로 묶어 하나의 논리적 디스크인 것 처럼 작동하게 하는 것을 RAID라고 한다. 

RAID 레벨

기본적으로 RAID 레벨은 0~6까지 일곱 가지의 레벨을 가지고 있다. 

또한 RAID0 과 조합하여 RAID10(1+0), RAID50(5+0), RAID60(6+0)의 레벨도 존재한다. 

RAID 설명 용도
0 내장애성이 없는 디스크 어레이(스트라이핑) 디스크 I/O 성능을 높여야 할 때 사용, 내장애성이 낮다. 로그 집계 등의 임시 저장 영역에 사용
1 이중화 (미러링) 내장애성이 높다. 운영체제가 설치된 파티션 등에 사용
2 비트 단위 전용 오류 보정 부호 드라이브(ECC) 거의 사용 안됨
3 비트/바이트 단위 전용 패리티 드라이브 거의 사용 안됨
4 블록단위 전용 패리티 드라이브 거의 사용 안됨
5 블록 단위 패리티 정보 기록 저장 용량을 넉넉하게 확보하고자 할 때 사용, 예) 파일 서버, 로그 저장 등
6 블록 단위 두 가지 패리티 정보 기록 RAID5와 용도는 같지만 RAID5보다 내장애성이 높다
10 RAID1을 스트라이핑한 것 내장애성과 디스크 I/O 성능을 모두 만족해야 할 때 사용, 예) 데이터베이스
50 RAID5를 스트라이핑한 것 저장 용량 확보와 디스크 I/O 성능을 모두 만족해야 할 때 사용, 예) 파일 서버, 로그 저장 등
60 RAID6을 스트라이핑한 것 저장 용량 확보와 디스크 I/O 성능을 모두 만족해야 할 때 사용, 예) 파일 서버, 로그 저장 등

RAID 사용 예

500GB 디스크 12개로 구성하는 RAID

RAID 계산식 실제 용량
0 500GB x 12 개 60TB
1 구성 불가 RAID10으로 구성 -
5 500GB x (12-1)개 5.5TB
6 500GB x (12-1)개 5TB
10 500GB x ((3-1)x4)개 3TB
50 500GB x ((3-1)x4)개 4TB
500GB x ((3-1)x4)개 4.5TB
500GB x ((3-1)x4)개 5TB

2TB용량을 준비하기 위한 500GB 디스크의 개수

RAID 수량 스트라이핑 개수 비용 내장애성
0 4개 4개 가장 쌈 없다
1 구성 불가능
RAID10으로 구성
- - -
5 5개 5개 중간 약간 낮음
6 6개 5개 중간 높음
10 8개 4세트 가장 비쌈 높음
50 6개 2세트 x 3개 중간 조금 낮음

RAID의 성능

RAID를 구성하면 디스크 I/O 성능을 높일 수 있다. 디스크 I/O 성능은 서버와 스토리지 사이의 초당 처리할 수 있는 수치로 IOPS(Input/Output Per Second)라고 한다. 

디스크 하나보다는 두 개를 병렬로 연결하면 이론상 I/O 속도가 두 배가 된다. 이처럼 디스크를 병렬로 여러 개 사용하는 것을 스트라이핑이라고 한다. 

스트라이핑의 개수를 늘릴수록 디스크 I/O 성능은 좋아진다. 

RAID5와 RAID10

대용량의 디스크가 필요할 때는 전반적으로 RAID5나 RAID10이 사용된다. 

일반적으로 RAID5가 실제 용량이 가장 많이 확보할 수 있는 대신 속도가 느리고, RAID10은 용량이 줄어드는 대신 속도가 빠르다.