반응형
RAID
RAID란?
RAID
(Redundant Array of Independent Disk 또는 Redundant Array of Inexpensive Disk) : 여러 개의 디스크를 묶어 하나의 디스크처럼 사용하는 기술
RAID 사용 시 기대 효과
- 대용량의 단일 볼륨을 사용하는 효과
- 디스크 I/O 병렬화로 인한 성능 향상(RAID 0, 5, 6 등)
- 데이터 복제로 인한 안정성 향상(RAID 1 등)
RAID는 컴퓨터를 구성하는 여러 부품 중 기계적인 특성 때문에 상대적으로 속도가 많이 느린 하드디스크를 보완하기 위해 만든 기술이다.
RAID를 구성하는 디스크의 개수가 같아도 구성 방식에 따라 성능 및 용량이 바뀐다. 이러한 구성 방식을 RAID Level
이라고 부른다. 각각의 RAID Level에 대해 알아보자.
Standard RAID Level
- RAID를 구성하는 디스크의 종류와 크기는 같다고 가정(실제로도 같은 크기, 종류의 디스크를 사용하는 것을 권장함)
- 성능의 경우 RAID 컨트롤러의 연산으로 인한 성능 저하는 제외하고, Sequential I/O 시만 가정
- RAID를 구성하는 디스크의 개수는 N으로 표현
1) RAID 0
- Striping (스트라이핑)이라고도 부르는 방식
- RAID 0을 구성하기 위해서는 최소 2개의 디스크가 필요(min(N) == 2)
- RAID를 구성하는 모든 디스크에 데이터를 분할하여 저장
- 전체 디스크를 모두 동시에 사용하기 때문에 성능은 단일 디스크 성능의 N배. 마찬가지로 용량 역시 단일 디스크 용량의 N배
- 하지만 하나의 디스크라도 문제가 발생할 경우 전체 RAID가 깨짐. 즉, 안정성은 1/N으로 줄어듦
정리해보면, RAID 0
은 성능 및 용량은 최대한으로 사용하는 대신 안정성은 좋지 않다. (실제 서버 환경에서는 거의 사용하지 않음)
2) RAID 1
- Mirroring(미러링) 이라고도 부르는 방식
- RAID 1을 구성하기 위해서는 최소 2개의 디스크 필요(min(N) == 2)
- RAID 컨트롤러에 따라서 2개의 디스크로만 구성 가능할 수도, 혹은 그 이상의 개수를 사용하여 구성할 수도 있음
- RAID 1은 모든 디스크에 데이터를 복제하여 기록함. 즉, 동일한 데이터를 N개로 복제하여 각 디스크에 저장함
- 따라서, 여러 개의 디스크로 RAID를 구성해도, 실제 사용 가능한 용량은 단일 디스크의 용량과 동일
- Write 시, 데이터를 복제하여 기록하기 때문에 RAID 컨트롤러가 복제, 연산하는 시간을 감안하면 단일 디스크의 Write 성능보다 낮게 나올 수 있음
- 하지만 Read 시엔 전체 디스크에서 읽어오기 때문에 단일 디스크의 N배의 성능이 나옴
- RAID 1의 최대 강점은 안정성이 높은 것. N-1개의 디스크가 고장나도 데이터 사용 가능
- 안정성이 중요한 시스템에서 사용할 수 있겠으나, 비용 문제로 인해 거의 사용하지 않음
3) RAID 2 - 현재는 사용하지 않는 RAID Level
- Bit 단위로 striping을 하고, error correction을 위해
Hamming code
를 사용함- m+1 개의 데이터 디스크와 m 개의 패리티 디스크로 구성 (N == (m+1) + m)
- 최소 3개의 디스크로 구성 가능
- 1개의 디스크 에러 시 복구 가능(2개 이상의 디스크 에러 시 복구 불가능)
4) RAID 3 - 현재는 사용하지 않는 RAID Level
- Byte 단위로 스트라이핑을하고, error correction을 위해 패리티 디스크를 1개 사용함
- 용량 및 성능이 단일 디스크 대비 (N-1)배 증가함
- Byte 단위로 스트라이핑하기 때문에 너무 작게 쪼개져 현재는 사용하지 않는다고 함
- 최소 3개의 디스크로 구성 가능
- 1개의 디스크 에러 시 복구 가능(2개 이상의 디스크 에러 시 복구 불가능)
5) RAID 4 - 현재는 거의 사용하지 않는 RAID Level
- Block 단위로 striping을 하고, error correction을 위해패리티 디스크 1개 사용
- 용량 및 성능이 단일 디스크 대비 (N-1)배 증가
- 최소 3개의 디스크로 구성 가능
- 1개의 디스크 에러 시 복구 가능(2개 이상의 디스크 에러 시 복구 불가능)
- Block 단위로 striping 하는 것은 RAID 5, 6과 동일하지만, 패리티 코드를 동일한 디스크에 저장하기 때문에, 패리티 디스크의 사용량이 높아 해당 디스크의 수명이 줄어듦
- RAID 4의 단점을 개선시킨 것이 RAID 5
6) RAID 5
- 제일 사용 빈도가 높은 RAID Level
- Block 단위로 striping을 하고, error correction을 위해 패리티를 1개의 디스크에 저장함.
- 패리티 저장 디스크를 고정하지 않고, 매 번 다른 디스크에 저장
- 용량 및 성능이 단일 디스크 대비 (N-1)배 증가
- 최소 3개의 디스크로 구성 가능
- 1개의 디스크 에러 시 복구 가능(2개 이상의 디스크 에러 시 복구 불가능)
RAID 0에서 성능, 용량을 조금 줄이는 대신 안정성을 높인 RAID Level이라 볼 수 있다.
7) RAID 6
- RAID 5에서 성능, 용량을 좀 더 줄이고, 안정성을 좀 더 높인 RAID Level
- Block 단위로 striping을 하고, error correction을 위해 패리티를 2개의 디스크에 저장함
- 패리티 저장 디스크를 고정하지 않고, 매 번 다른 디스크에 저장
- 용량 및 성능이 단일 디스크 대비 (N-2)배 증가
- 최소 4개의 디스크로 구성 가능
- 2개의 디스크 에러 시 복구 가능(3개 이상의 디스크 에러 시 복구 불가능)
RAID 5에서 성능, 용량을 조금 줄이는 대신 안정성을 높인 RAID Level이라 보면 되고, 조금 더 안정성을 높여야 하는 서버 환경에서 주로 사용함
반응형
'데이터베이스 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] LVM(Logical Volume Manager) 정리 (0) | 2021.05.10 |
---|---|
데이터베이스((데이터베이스(DB) - 트랜잭션(Transaction)) (0) | 2017.09.05 |
데이터베이스(데이터베이스(DB)의-관계형 데이터베이스의 계층) (0) | 2017.08.24 |
데이터베이스(데이터베이스(DB)의 아키텍처-Shared Disk & Shared Nothing) (0) | 2017.08.22 |
데이터베이스(데이버베이스(DB)의 아키텍처-리플리케이션) (1) | 2017.08.22 |