* RAID(Redundant Array of Independent Disks)
RAID는 프로세서의 속도와 상대적으로 느린 디스크 드라이브의 속도 차이를 줄이기 위해서 제안되었다.
RAID는 대용량의 디스크 드라이브를 여러 개의 소용량 드라이브들로 교체하고,
데이터를 여러 개의 디스크들로부터 동시에 액세스 할 수 있도록 분산시키는 기술이다.
RAID는 독립적으로 병렬 동작하는 디스크 배열이다.
여러 개의 디스크가 있으면 I/O 요구가 원하는 데이터가 서로 다른 디스크 상에 존재하는 경우에 병렬로 처리 가능하고,
액세스 될 데이터가 여러 개의 디스크들에 분산되어 있으면 하나의 입출력 요구가 병렬로 수행될 수 있다.
또한 RAID는 신뢰도 향상을 위해 여분(redundancy)의 디스크를 추가할 수 있고, 신뢰도 저하를 막기 위해 저장된 패리티 정보를 이용하여 손실된 정보를 복구할 수 있다.
RAID의 특성
- RAID는 운영체제에 의해 하나의 논리적 드라이브로 보여지는 물리적 디스크 드라이브들의 집합이다.
- 데이터는 스트라이핑(striping)이라는 방법으로 배열을 이루고 있는 물리적 디스크 드라이브들에 분산된다.
- 여분의 디스크 용량은 디스크 오류 발생 시 데이터 복구를 보장하기 위해 패리티 정보를 저장하는 데 사용된다.
RAID 0(block-level striping)
RAID 0은 여분의 디스크가 없으며, 데이터가 사용 가능한 모든 디스크들에 나누어 저장된다.
논리적으로 연속적인 스트립(strip)의 집합을 스트라이프(stripe)라고 한다.
스트립은 물리적 블록이나 섹터 등이 될 수 있으며, 배열 내에 연속적으로 배치된 디스크들에 라운드로빈 방식으로 저장된다.
하나의 I/O 요구가 여러 개의 연속적인 논리적 스트립으로 구성될 경우 n개의 스트립들이 병렬로 처리될 수 있다.
RAID 1
RAID 1은 모든 데이터들을 여분의 디스크에 복사하여 저장한다.(Mirrored Disk)
즉, 논리적 스트립이 2개의 물리 디스크로 사상된다. → 오류 복구가 간단하지만 비싸다.
읽기 요구 시, 두 디스크 중 접근 시간(탐색 시간 + 회전 시간)이 짧은 디스크가 사용되고,
쓰기 요구 시, 양쪽 디스크에 동시에 기록된다.
RAID 2(bit-level striping)
RAID 2는 병렬 액세스 기법을 사용하며, 각 I/O 요구 처리에 모든 디스크들이 참여한다.
드라이브들의 회전은 동기화되기 때문에 각 디스크 헤드는 어느 시간에든 디스크 상의 동일한 위치에 있다.
오류 정정 코드는 각 데이터 디스크의 대응되는 비트들에 대하여 계산된다.
코드 비트(해밍코드 규칙)들은 여러 개의 패리티 디스크들에 대응되는 비트 위치에 저장된다.
RAID 2는 디스크 오류가 많은 환경에서 사용된다.
따라서 디스크와 디스크 드라이브의 신뢰성이 높으면 RAID 2는 지나친 구성이다.
RAID 3(byte-level striping)
RAID 2와 마찬가지로 병렬 액세스 기법을 사용한다.
배열이 아무리 크더라도 여분 디스크는 1개만 사용하며, 같은 위치에 있는 비트들에 대해 패리티 비트를 사용한다.
한 드라이브에 결함이 발생한 경우 패리티 드라이브가 액세스 되고, 남아 있는 다른 장치들을 이용하여 데이터를 재구성한다.
패리티를 이용한 오류 복구 방식은 RAID 3 ~ RAID 6까지 사용된다.
RAID 3은 큰 전송을 하는 높은 데이터 전송률에 적합하지만, 빈번한 I/O 요구 상황에는 불리하다.
RAID 4(block-level striping)
RAID 4는 독립적인 액세스 기법을 사용한다.
각 디스크가 독립적으로 작동하며, 독립적인 I/O 요구들이 병렬로 처리된다.
따라서 높은 I/O 요구율을 필요로 하는 상황에는 적합하지만 높은 데이터 전송률에는 불리하다.
비트 단위 패리티 스트립은 각 데이터 디스크 상의 대응되는 스트립에 대해 계산한다.
패리티 비트들은 패리티 디스크의 대응되는 스트립에 저장된다.
RAID 5(block-level striping)
RAID 5는 패리티 스트립들이 모든 디스크들에 분산 저장된다.
RAID 4에서 나타나는 I/O 병목 현상을 피할 수 있다.
주로 네트워크 서버에 사용된다.
RAID 6(block-level striping)
2가지 서로 다른 패리티 계산이 수행되어 서로 다른 디스크들의 별도 블록에 저장된다.
따라서 N+2개의 디스크들로 구성되어 있다.
P와 Q는 2가지 데이터 검사 알고리즘이다.
이렇게 하면 사용자 데이터가 저장된 디스크들 중에서 2개가 고장 나더라도 데이터 복원이 가능해진다.
RAID 6은 2개의 디스크가 고장 나더라도 복원이 가능하기에 높은 데이터 가용성을 제공하지만,
매 쓰기 동작마다 2개의 패리티 블록을 갱신해야 하기에 RAID 5에 비해 쓰기 성능이 30% 저하된다.
성결대학교 정보통신공학과 컴퓨터구조 강의(2023)
William Stallings, 「컴퓨터시스템구조론(10판)」
본 게시물은 위 강의 및 교재를 기반으로 정리한 글입니다.
'전공수업 > 컴퓨터 구조' 카테고리의 다른 글
Operating System (0) | 2024.04.09 |
---|---|
[컴퓨터 구조] I/O 모듈, I/O 동작 기법 (0) | 2023.12.12 |
[컴퓨터 구조] 외부 기억장치 - 자기 디스크 (1) | 2023.12.10 |
[컴퓨터 구조] 내부 기억장치 #2 - 오류 정정 (1) | 2023.11.28 |
[컴퓨터 구조] 내부 기억장치 - 반도체 주기억장치, 향상된 DRAM 조직 (1) | 2023.11.27 |
댓글