본문 바로가기
IT 기본지식

RAID(레이드) 란 무엇인가? RAID 0/1/5/6/1+0

by 내기록 2022. 2. 19.
반응형

RAID(Redundant Array of Independent Disk)

여러 개의 하드 디스크에 일부 중복된 데이터를 나눠서 저장하는 기술
-> 소용량의 저장장치를 여러 대로 묶어서 대용량 저장장치를 만들어서 사용하는 기술

 

RAID는 여러 개의 작은 디스크들을 배열 구조로 연결하고 하나의 unit으로 패키지 함으로써 액세스 속도를 크게 향상시켰고 신뢰도 또한 높였다. RAID는 최근 대규모 저장 용량을 필요로 하는 중대형급 컴퓨터 시스템에서 널리 사용되고 있다.

 

출현 배경

디스크는 컴퓨터의 프로그램 실행 속도에 직접적으로 영향을 주는 온라인 보조저장장치이기 때문에 액세스 속도와 신뢰도 향상또한 용량의 증가만큼 중요하게 생각된다. 디스크의 속도를 향상시키기 위해서는 액세스 시간을 줄이고 데이터 전송 속도를 높여야 하는데, 용량을 늘리기 위하여 배열 구조로 연결한 다수의 작은 디스크들에 데이터를 분산 저장하게 되면 동시 액세스(concurrnet access)가 가능해진다.

 

예를 들어, 어떤 파일을 구성하고 있는 데이터 블록들을 서로 다른 디스크들에 분산 저장한다면, 그 블록들을 여러 디스크들로부터 동시에 읽거나 쓸 수 있는 것이다. 또한, 디스크마다 별도의 전송 채널을 가지므로 병렬 전송이 가능해져서 데이터 전송 시간도 크게 단축시킬 수 있게 된다.

 


RAID의 목적

  1. 여러 개의 디스크 모듈을 하나의 대용량 디스크처럼 사용할 수 있도록 한다.
  2. 여러 개의 디스크 모듈에 데이터를 나눠서 한번에 쓰고 한 번에 읽는 방식으로 입출력 속도를 높인다.
  3. 여러 개의 디스크를 모아서 하나의 디스크로 만들고 그 중 하나 혹은 그 이상의 디스크에 장애가 나더라도 최소한 데이터가 사라지는 것을 방지한다.

 

데이터를 나누고 중복해서 저장하는 이유는 데이터를 안전하게 보호하기 위함이다.

데이터를 나누는 다양한 방법이 있고 이 방법들을 레벨이라 하는데 레벨에 따라 저장장치의 신뢰성을 높이거나 전체적인 성능을 향상하는 등 다양한 목적이 있다.

 

 

여러 종류의 RAID Level

RAID 0

출처 : https://www.prepressure.com/library/technology/raid

데이터의 빠른 입출력을 위해 데이터를 여러 디스크에 분산 저장한다.

어느 한 디스크(drive) 에서 장애가 발생하면 데이터는 모두 손실된다.(실제로 0으로 구성된 것은 별로 없음)

 

 

 

RAID 1

https://www.prepressure.com/library/technology/raid

RAID1은 Mirror 구성 또는 Shadowing이라고 불린다.

최소 2개의 디스크(drive)로 구성할 수 있는데 디스크 장애를 대비하여 백업 용으로 다른 디스크를 동일하게 구성하는 것이다.

디스크에 기록되는 모든 데이터를 다른 디스크에 복사하는 방법으로 복구 능력을 제공한다.

복구 능력은 높지만 전체 용량의 절반이 복구 데이터를 가지고 있으므로 용량 당 단가가 비싸다.

 

RAID1은 쓰기 동작은 항상 두 디스크들에서 동시에 수행되어야 하기 때문에 쓰기 동작은 더 오래 걸리는 디스크에서의 쓰기가 완료되어야 끝난다. 반면에 읽기 동작은 원하는 데이터가 저장되어 있는 두 디스크들 중에서 더 짧은 탐색 시간과 회전 지연시간이 요구되는 디스크를 선택하여 수행하면 된다.

 

주요 단점은 가격이 높다는 것이다. 그 이유는 전체 디스크에서 사용 가능한 용량이 절반으로 줄어들기 때문이다. 그렇기 때문에 RAID-1은 높은 신뢰도를 요구하는 결함허용시스템에 주로 사용된다.

 

RAID 5

https://www.prepressure.com/library/technology/raid

 

가장 일반적인 보안 RAID 수준이다. 최소 3개의 드라이브가 필요하고 최대 16개의 드라이브가 작동할 수 있다.

하나의 드라이브에 모든 블록 데이터의 parity checksum이 기록되며 parity data는 모든 드라이브에 분산되어 있다.

 

Parity 정보를 모든 디스크에 나눠서 기록하는데, Parity란 드라이브 장애 시 데이터를 재구축하는 데 사용할 수 있는 사전에 계산된 값이다.

Parity 데이터는 모든 드라이브에 분산되어 있고 Parity 데이터를 사용하여 장애 난 드라이브의 데이터를 복구한다.

 

RAID 5는 각각의 하드디스크에 자료를 분산하여 보관하고 복구 정보도 같이 보관한다.
0,1의 장점을 모두 가져온 것으로 속도도 빠르고 한 대가 고장이 나도 복구할 수 있으며 용량의 낭비도 적다.

 

* 추가 설명

parity block들을 모든 디스크들에 분산 저장한다. parity 갱신을 위한 디스크 액세스들이 분산되어 parity disk에 대한 병목 현상이 완화될 뿐 아니라 쓰기 동작들을 병렬로 수행할 수도 있게 된다.

 

예를 들어, block1a에 대한 쓰기 동작이 수행될 때는 첫번째 디스크와 parity 갱신을 위해 네번째 디스크가 액세스된다.

(parity b1: block 1a, 1b, 1c 에 대한 패리티 코드를 가지고 있다고 가정했을 때)

그 쓰기 동작과 동시에 block2b에 대한 쓰기 동작도 요구되었다면, 그 블록에 대한 패리티 블록은 세번째에 저장되어 있으므로 세 번째 디스크와 두 번째 디스크를 액세스하여 쓰기 동작을 수행할 수 있다.

 

따라서 데이터 블록 block1a와 block2b에 대한 쓰기 동작들이 동시에 이루어질 수 있게 되는 것이다.

결과적으로, 데이터 디스크들의 수가 G개라면, 최대 (G+1)/2번의 쓰기 동작들이 동시에 수행될 수 있다. 그리고 패리티 정보고 분산 저장되어 있으므로, 액세스 요구들이 모든 디스크에 적절히 분배된다. 따라서 이 구조는 액세스할 데이터 블록의 크기 및 입출력 요구의 패턴에 관계없이 좋은 성능을 보여준다.

 

 

* 참고

 

TCP 체크섬(checksum) 계산법 예제

개념 TCP는 TCP Segment data 송신도중 발생될 수 비트 오류를 검출하기 위해 체크섬을 사용한다. 송신자는 체크섬 계산알고리즘에 의해 계산한 체크섬을 TCP 체크섬 헤더에 삽입하여 송신하게 되며,

slowknight.tistory.com

 

RAID 6

출처 : https://www.prepressure.com/library/technology/raid

RAID5와 유사하지만 다른 디스크 값에 2차 Parity 구성을 포함하여 더 높은 장애 대비 능력을 제공한다.
디스크가 최대 2개까지 장애가 나더라도 데이터의 손실이 발생하지 않는다.

 

 

RAID 1+0

출처 : https://www.prepressure.com/library/technology/raid

RAID 0의 빠른 속도와 RAID 1의 안정적인 복구 기능을 합쳐놓은 방식이다.

데이터가 입력되면 두 개 이상의 디스크에 나눠서 저장하고 동시에 같은 형태로 다른 드라이브에도 동일하게 저장한다.

하지만 RAID1의 단점으로 전체 용량의 50%만 사용 가능하다.

 

 

 

References

Computer Architecture(컴퓨터 구조론) 개정5판, 저자 김종현

https://www.dknyou.com/blog/?q=YToxOntzOjEyOiJrZXl3b3JkX3R5cGUiO3M6MzoiYWxsIjt9&bmode=view&idx=7342927&t=board 

https://jjanggu1612.tistory.com/entry/RAID-%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EB%A9%B0-RAID-%EC%A2%85%EB%A5%98%EB%8A%94

 

반응형

댓글