반응형
RAID
Redundant Array of Inexpensive Disk or Redundant Array of Independent Disk
- 여러 물리적 디스크를 묶어서 그룹으로 만들어 하나의 논리적인 디스크처럼 사용하는 기술
- 논리적 디스크를 LU(Local Unit)이라고 한다.
효과
안정성 확보
- HDD에 장애가 발생해도 데이터가 손실되지 않도록 데이터 기록을 이중화한다.
성능 향상
- RAID에서는 RAID 컨트롤러가 미리 정해 놓은 길이로 I/O를 분할해서 복수의 HDD에 대해 병렬로 I/O 처리를 한다.
- 참고로, 이 고정 길이를 RAID의 스트라이프 크기라고 부른다.
용량 확장
- 논리 HDD는 HDD의 물리적 한계 (용량적)를 넘어서 자유롭게 용량을 결정할 수 있다.
RAID 수준
RAID 수준에는 여러 수준이 있는데, 각 RAID 수준은 데이터 스트라이핑과 중복성으로 특징 짓는다.
RAID 0
- 스트라이핑
- 동일한 디스크 여러 대를 병렬 방식으로 구성.
빠른 성능
- 데이터를 사용할 때 I/O 성능이 향상된다.
낮은 안전성
- 디스크의 수가 증가할 수록 디스크가 고장날 확률도 증가하기 때문이다.
(병렬로 구성된 디스크 중 하나의 디스크라도 문제가 발생할 경우, 전체 RAID가 깨지는 문제가 존재) - 게다가, 디스크에 오류가 발생하였을 때, 오류를 복구할 수 없음. (미러링 및 장애 내구성을 제공하기 위한 오버헤드도 존재하지 않음)
RAID 1
- 미러링 (디스크 이중화)
- 모든 디스크에 데이터를 N개로 복제하여 각 디스크에 저장.
높은 안전성
- RAID 수준 중 가장 안정성이 높음. (높은 장애 내구성)
높은 비용
- 하지만, 디스크 공간이 두 배가 필요하므로 비용이 드는 비용 문제가 있음. (고비용)
- 미러링으로 빠른 평균 읽기 전송률을 제공하지만, 평균 쓰기 전송률은 느릴 수 밖에 없다.
RAID 2
- 비트 수준 해밍 ECC 패리티.
- 디스크들 간의 RAID 0 처럼 스트라이핑 구성을 하지만 몇몇 디스크들은 오류 검사 및 수정을 위한 ECC (Error Correcting Code) 정보가 저장되어 있음.
- 해밍 오류 정정 코드라는 기술을 사용: 패리티 비트를 사용해 디스크로부터 전송된 데이터에 오류가 있는지 확인하고, 가능하면 오류를 정정하기도 한다.
- 오늘날 시스템에서 RAID 2를 구현하지 않는 이유는 현재 사용하는 디스크 드라이브들이 해밍 ECC나 이에 버금가는 장애 내구성 매커니즘을 내장하고 있기 때문.
RAID 3
- 비트 수준 XOR ECC 패리티
- XOR ECC는 패리티 정보를 보관하기 위해 배열의 크기에 상관없이 디스크 하나만 사용한다.
- RAID2와 같이 디스크들 간의 스트라이핑 구성을 하지만, RAID 2와 달리 여러 개의 패리티 디스크가 아닌 하나의 패리티 드라이브를 구성.
RAID 4
- RAID 3와 유사하게 하나의 패리티 드라이브를 사용.
- 차이점은 RAID 3은 데이터를 바이트 단위로 나누어서 디스크에 분산 저장하는 반면, RAID 4의 경우에는 데이터를 블록 단위로 나누어서 디스크에 분산 저장을 수행.
RAID 5
- RAID 4와 같이, 블록 단위로 스트라이핑을 구성
- 단 RAID 4는 별도의 패리티 디스크를 두는 대신, RAID 5는 모든 드라이브에 패리티 정보를 분산 저장
RAID 6
- RAID 5와 비슷한 구성이지만, (용량을 줄이고, 안정성을 높인 RAID 구성)
- RAID 5는 패리티 정보를 하나의 드라이브에 두는 반면, RAID 6는 패리티 정보를 2개의 드라이브에 둔다.
RAID 10
- RAID 0 + RAID 1
- 스트라이핑 + 미러링 방식을 혼합해서 구성하는 형태.
RAID 구성 시의 장애 복구 과정
- HDD가 고장나면 RAID 구성에 포함된 데이터는 망가지지 않지만, 이중화 구조가 망가진다.
- 이 이중화 회복을 위해 핫 스페어라고 하는 디스크를 이용한다.
- 한 대의 HDD가 고장 나면 자동적으로 핫 스페어가 RAID에 포함돼서 이중화 구조를 회복한다.
RAID의 한계
- RAID를 이용해서 이중화를 하더라도 다중 장애 시에는 복구할 수 없는 경우가 있다.
- 이러한 이유로 데이터 백업도 반드시 해 두어야 한다.
반응형
'공통 > 인프라 & 시스템 설계' 카테고리의 다른 글
[대규모 서비스를 지탱하는 기술] 메모리와 디스크 (0) | 2021.07.07 |
---|---|
[대규모 서비스를 지탱하는 기술] 대규모 서비스의 어려움 (0) | 2021.07.07 |
[그림으로 공부하는 IT인프라 구조] 8장 정리 (0) | 2021.05.21 |
[그림으로 공부하는 IT인프라 구조] 7장 정리 (0) | 2021.05.20 |
[그림으로 공부하는 IT인프라 구조] 6장 정리 (0) | 2021.05.18 |