운영체제/Linux

RAID에 대해서

ahgle 2022. 11. 18. 22:00
728x90
반응형

오늘은 RAID에 대해서 알아보겠습니다.

RAID란

Redundant Array of Independent Disk 의 약어로, 여러 개의 하드디스크가 있을 때 동일한 데이터를 다른 위치에 중복해서 저장하는 방법입니다. 여러 개의 디스크를 하나의 디스크처럼 인식하게하여 사용합니다.

 

번역기(파파고)를 이용해 단순 직역했을 때 의미입니다.

'독립 디스크의 중복 배열', 독립된 디스크(다른 디스크)에 중복된(동일한) 데이터를 배열(저장)한다고 생각할 수 있습니다.

 

데이터를 여러 개의 디스크에 저장하여 입출력 작업이 균형을 이루게 되어 전체적인 성능을 향상시킵니다.

운영체제에서 하나의 RAID는 하나의 디스크로 인식하여 처리됩니다.

 

RAID의 장점

  • 운용 가용성, 데이터 안정성 증대
  • 디스크 용량 증설의 용이성
  • 디스크 I/O 성능 향상

 

RAID에서 사용하는 기술

스트라이핑(Striping)

스트라이핑 기술은 연속된 데이터를 여러 개의 디스크에 라운드로빈 방식으로 기록하는 기술입니다. 라운드로빈 방식이란, 각 디스크마다 조금씩 돌아가면서 저장한다는 정도로 이해하면 될 듯 합니다. 이 기술은 프로세서가 하나의 디스크에서 읽어 들이는 것보다 더 빠르게 데이터를 읽거나 쓸 수 있을 때 매우 유용합니다. 즉, 서로 겹쳐서  읽거나 쓸 수 있도록 설계된 네 개의 드라이브가 있을 경우, 하나의 섹터를 읽을 시간에 네 개의 섹터를 동시에 읽을 수 있기 때문에 유용하다고 하는 것입니다.

 

미러링(Mirroring)

미러링 기술은 디스크에 에러가 발생했을 때 데이터의 손실을 막기 위해 추가적으로 하나 이상의 장치에 중복 저장하는 기술입니다. 두 개의 디스크로 구현했을 경우, 하나의 디스크에 에러가 발생해도 다른 디스크의 데이터는 그대로 보존됩니다.

그래서 미러링 기술을 결함 허용(Fault-tolerance)이라고도 부릅니다. 이 기법은 하드웨어 뿐만 아니라, 소프트웨어적으로도 구현 가능합니다.

 

 

RAID의 종류

1. RAID-0

스트라이핑 기술을 사용하여 빠른 입출력 속도를 제공합니다. 데이터를 중복이나 패리티(parity) 없이 디스크에 분산하여 기록합니다. 처리 속도는 빠르나, 구성된 디스크 중에 하나라도 오류가 발생하면 데이터 복구가 불가능합니다.

여기서, 패리티는 오류검출도구입니다. RAID0은 오류를 검출할 수 있는 패리티가 없기 때문에 오류가 발생해도 이를 인지할 수가 없는 것입니다.

RAID 0

위 RAID 0 그림을 보면, 총 네 개의 디스크에 데이터들이 A,B,C ... 등 각 데이터들이 분산되어 저장돼있는 것을 볼 수가 있습니다. 앞에서 스트라이핑 기술이란 연속된 데이터를 여러 개의 디스크에 분산 저장한다고 했습니다. 이렇게 데이터를  분산 저장하게 되면 I/O(입출력)를 디스크 수만큼 분할하여 쓰기 때문에 I/O속도가 향상되고, I/O Controller나 I/O Board 등 I/O를 담당하는 장치가 별도로 장착된경우, 더 큰 I/O 속도 향상 효과를 볼 수 있습니다.

 

→ 데이터를 읽고 쓸 때 한번에 모든 디스크를 사용할 수 있어 성능이 좋지만, 하나의 디스크라도 깨지면 전체 데이터를 사용 못하게 되어 그다지 많이  쓰는 방식은 아닙니다.(아니라고 합니다)

 

2. RAID-1

미러링 기술을 사용하여 두 개의  디스크에 데이터를 동일하게 기록합니다. 스트라이핑 기술은 사용하지 않으며, 각 드라이브를 동시에 읽을 수 있어서 읽기 성능은 향상되나, 쓰기 성능은 단일 디스크와 같습니다. 중복 저장으로 인한 디스크 낭비가 50%나 됩니다.

RAID 1

3. RAID-2

디스크들은 스트라이핑 기술을 사용하여 구성하고, 디스크들의 에러를 감지하고 수정하기 위해 ECC(Error Check Code) 정보를 사용합니다. 

ECC란 디스크의 에러를 체크하는 기능으로, RAID 2에서는 하드디스크에서 ECC를 지원하지 않기 때문에 아래 그림과 같이, ECC를 위한 별도의 드라이브를 구성하고 해당 드라이브에 ECC를 저장하는 방식으로 처리됩니다.

 

RAID 2

딱 봐도 단점이 보입니다. ECC를 저장하고 있는 드라이브가 깨질 경우, 문제가 발생할 수 있으며 ECC와 비슷한 기능의 패리티 정보를 하나의 하드디스크에 저장하는 RAID 4가 나오면서 지금은 거의 사용되지 않는 방식입니다.

 

→ ECC를 위한 디스크가 별도로 있으며 RAID 4가 나오며 지금은 거의 사용하지 않는 방식입니다.

 

 

4. RAID-3, RAID-4

스트라이핑 기술을 사용하여 디스크를 구성하고, 패리티 정보를 저장하기 위해 별도로 하나의 디스크를 사용합니다. 입출력 작업이 동시에 모든 디스크에 대해 이루어지므로, 입출력을 겹치게 할 수는 없습니다.

RAID 3,4

RAID 3과 RAID 4는 RAID 0, RAID 1의 문제점을 보완하기 위해 만든 방식으로, RAID 구성 방식은 거의 같습니다.

RAID 3과 4는 RAID 0과 같이 striping 방식으로 구성되어 있어 성능을 보완하고 디스크 용량을 온전히 사용할 수 있도록 해줍니다. 또한 에러 체크 및 수정을 위한 패리티 정보를 별도로 하나의 디스크에 저장하고 있습니다.

 

차이점은, RAID 3은 데이터를 바이트 단위로 나누어 디스크에 저장하는 반면, RAID 4는 데이터를 블록 단위로 나눠 기록한다는 것입니다.

 

 

5. RAID-5

RAID 5는 패리티 정보를 이용하여 하나의 디스크가 고장이 발생할 경우에도 사용이 가능한 구성 방식입니다.

최소 3개의 디스크로 구성해야 한다는 특징이 있습니다. 패리티 정보는 별도의 디스크를 사용하지 않고, 기존 구성된 디스크에 분산하여 기록하지만 데이터를 중복 저장하지는 않아 가장 보편적으로 사용됩니다. (RAID 1처럼 중복 저장으로 인한 데이터 낭비가 없습니다)

RAID 5

RAID 5는 RAID 3,4에서 별도의 패리티 정보 디스크를 사용해서 사용하는 문제점(PARITY 디스크가 깨지면 복구가 불가능하니까)을 보완하는 방식으로, 패리티 정보를 stripe로 구성된 디스크 내에서 처리하게 만든 것이 큰 특징입니다.

만약 하나의 디스크가 고장나더라도, 다른 디스크들에 깨진 디스크 데이터의 parity가 나뉘어 담겨있으므로 남은 디스크를 통해 데이터를 복구할 수 있습니다.

 

 

6. RAID 0+1

디스크 두 개를 RAID-0의 스트라이핑 기술로 구성하고,  다시 RAID-1의 미러링으로 구성하는 방식으로, 최소 4개의 디스크가 필요합니다. 만약, 6개의 디스크라면 보통 3개를 RAID-0으로 구성하고 다시 나머지 3개의 디스크를 RAID-1 미러링 방식으로 구성하게 되는 것입니다.

RAID 0+1

 

7. RAID 1+0

RAID 0+1의 반대 개념입니다. 디스크 두 개를 먼저 미러링으로 구성하고, 이를 다시 스트라이핑하는 방식입니다.

RAID 1+0

 

 

지금까지 RAID의 의미와 종류에 대해 알아보았습니다.

 

한 줄 요약

제가 RAID의 핵심은 Striping 기술을 통한 '빠른 속도' 와 Mirroring 기술을  통한 '안정성'입니다.

 

 

 

TMI

지금까지는 평어체(반말)로 글을 작성했으나, 이번 포스팅부터는 경어체(존댓말)로 글을 작성하려고 한다.

평어체는 독백의 뉘앙스가 있어, 글의 기저에 남이 이해하지 못해도 나만 이해하면 된다는 생각이 무의식처럼 깔려있었던 것 같다.

그러나 글 작성을 경어체로 바꾸는 순간, 그 글은 온전히 남에게 설명하는 것이 된다. 

남이 어떡하면 좀 더 글을 편하게 읽을 수 있을까, 어떻게 쓰면 정보 전달이 잘 될까 를 고민하게 되고, 이는 결론적으로 더 '읽기 좋은 글'이 되어 내 블로그가 좀 더 양질의 블로그가 되는 데 도움이 될 것이다.

 

The record makes me strong

728x90