목차

, , ,

RAID (redundant array of independent disks)

RAID[레이드]는 중요한 데이터를 가지고 있는 서버에 주로 사용되며, 여러 대의 하드디스크가 있을 때 동일한 데이터를 다른 위치에 중복해서 저장하는 방법이다. 데이터를 여러 대의 디스크에 저장함에 따라 입출력 작업이 균형을 이루며 겹치게 되어 전체적인 성능이 개선된다. 여러 대의 디스크는 MTBF를 증가시키기 때문에 데이터를 중복해서 저장하면 고장에 대비하는 능력도 향상된다.

하나의 RAID는 운영체계에게 논리적으로는 하나의 하드디스크로 인식된다. RAID는 스트라이핑 기술을 채용하여 각 드라이브의 저장공간을 1 섹터(512 바이트)의 크기에서부터 수 MB에 이르는 공간까지 다양한 범위로 파티션할 수 있다. 모든 디스크의 스트라이프는 인터리브되어 있으며, 차례대로 어드레싱된다.

의료 및 기타 과학분야의 사진 등 대형 레코드가 저장된 단일 사용자용 시스템에서, 스트라이프는 512 바이트 정도의 적은 량으로 설정되는데, 이를 통하여 하나의 레코드가 모든 디스크들에 걸쳐있게 되고, 또 모든 디스크를 동시에 읽음으로써 빠르게 접근할 수 있게된다.

다중 사용자시스템에서는 최대크기의 레코드를 넣을 수 있을 정도로 충분히 넓은 스트라이프를 확보함으로써 더 나은 성능을 발휘하게 되는데, 이는 드라이브간의 디스크 입출력을 중첩시켜준다.

RAID에는 중복되지 않는 어레이인 RAID-0를 제외하더라도, 9가지 형태가 더 있다.

레이드 용량계산기

구현방식

소프트웨어 RAID 는 위의 RAID-0, RAID-1, RAID-4, RAID-5를 지원함.

하드웨어 RAID 대 소프트웨어 RAID의 차이점은 다음과 같다.

하드웨어 RAID

하드웨어-기반 시스템은 호스트에서 RAID 하부 시스템을 독립적으로 관리하며, 호스트에는 RAID 어레이를 하나의 디스크로 나타냅니다. 하드웨어 RAID 장치의 한 예로서 SCSI 제어 장치에 연결되어 RAID 어레이를 단독 SCSI 드라이브처럼 나타내는 장치가 있다. 외부 RAID 시스템은 데이터를 저장하는 모든 RAID를 외부 디스크 하부 시스템에 위치한 한개의 컨트롤러로 이동시킵니다. 따라서 일반 SCSI 컨트롤러를 통해 호스트로 연결된 전체 하부 시스템은 호스트에서 하나의 디스크로 보여진다. RAID 컨트롤러는 카드 형식으로도 판매되며, 이 카드는 운영 체제에서는 SCSI 컨트롤러처럼 작동하지만 실제로는 스스로 모든 드라이브 통신을 처리함. 이러한 카드를 구입한 경우, 여러분은 SCSI 컨트롤러와 마찬가지로 드라이브를 RAID 컨트롤러에 꽂으신 후 드라이브를 RAID 컨트롤러의 설정에 추가시키면, 운영 체제는 그 차이를 절대로 인식하지 못함.

RAID-0

이 방식은 스트라이프를 가지고는 있지만 데이터를 중복해서 기록하지 않는다. 따라서, 가장 높은 성능을 기대할 수 있지만, 고장대비 능력이 전혀 없다.

RAID-1

이 형식은 흔히 디스크 미러링이라고도 하는데, 중복 저장된 데이터를 가진 적어도 두 개의 드라이브로 구성된다. 스트라이프는 없으며, 각 드라이브를 동시에 읽을 수 있으므로 읽기 성능은 향상된다. 쓰기 성능은 단일 디스크 드라이브의 경우와 정확히 같다. RAID-1은 다중 사용자 시스템에서 최고의 성능과 최고의 고장대비 능력을 발휘한다.

RAID-2

이 형식은 디스크들간에 스트라이프를 사용하며, 몇몇 디스크들은 에러를 감지하고 수정하는데 사용되는 ECC 정보가 저장되어 있다. 이 방식은 RAID-3에 비해 장점이 없다.

이 레벨은 더 이상 사용되지 않는다

RAID-3

이 형식은 스트라이프를 사용하며, 패리티 정보를 저장하기 위해 별도의 드라이브 한 개를 쓴다. 내장된 ECC 정보가 에러를 감지하는데 사용된다. 데이터 복구는 다른 드라이브에 기록된 정보의 XOR를 계산하여 수행된다. 입출력 작업이 동시에 모든 드라이브에 대해 이루어지므로, RAID-3은 입출력을 겹치게 할 수 없다. 이런 이유로 RAID-3는 대형 레코드가 많이 사용되는 업무에서 단일 사용자시스템에 적합하다.

RAID-4

이 형식은 대형 스트라이프를 사용하며, 이는 사용자가 어떤 단일 드라이브로부터라도 레코드를 읽을 수 있다는 것을 의미한다. 이것은 데이터를 읽을 때 중첩 입출력의 장점을 취할 수 있도록 한다. 모든 쓰기 작업은 패리티 드라이브를 갱신해야하므로, 입출력의 중첩은 불가능하다. RAID-4는 RAID-5에 비해 장점이 없다.

RAID-5

RAID5 방식은 RAID0와 RAID1 방식의 장점들을 갖도록 하는 방식이다. 즉, RAID0는 속도가 높고 공간 효율성이 높으나 안정성을 보장하지 못한 반면, RAID1은 안정성을 보장하는 장점이 있다. 이들 두 방식의 장점들을 포용한 것이 RAID5 방식이다.

RAID5 방식은 최소 3개 이상의 하드디스크가 있어야 하며 일반적으로 5개 이상의 하드디스크로 구성된다. 하드디스크 오류가 발생할 경우에는 Parity를 이용하여 데이터를 복구할 수 있다.

이 형식은 회전식 패리티 어레이를 포함한다. 그러므로 RAID-4에서의 쓰기 제한을 주소 지정한다. 그러므로 모든 읽기/쓰기 동작은 중첩될 수 있다. RAID-5는 패리티 정보를 저장하지만 데이터를 중복저장하지는 않는다 (그러나 패리티 정보는 데이터를 재구성하는데 사용될 수 있다). RAID-5는 보통 3 ~ 5개의 디스크를 어레이로 요구한다. RAID-5는 성능이 그리 중요하지 않고 쓰기 작업이 많지 않은 다중 사용자시스템에 적합하다.

RAID-6

RAID5 방식은 하나의 디스크가 고장나도 복구가 가능하다. 하지만 두 개의 디스크가 동시에 고장난 경우에는 복구할 수가 없다. RAID6 방식은 RAID5를 개선한 방법으로 2개의 디스크가 동시에 고장나도 데이터에는 이상이 없도록 하는 방식이다. RAID6 방식은 2개의 Parity를 사용함으로써 RAID5의 단점을 보완하고 있다. 그러나 RAID5에 비해 공간 효율은 떨어진다.

이 형식은 RAID-5와 비슷하지만, 다른 드라이브들 간에 분포되어 있는 2차 패리티 구성을 포함함으로써 매우 높은 고장대비 능력을 제공한다. 현재로서는 RAID-6의 상용 모델은 거의 없다.

RAID-7

이 형식은 컨트롤러로서 내장되어 있는 실시간 운영체계를 사용하며, 속도가 빠른 버스를 통한 캐시, 독자적인 컴퓨터의 여러 가지 특성들을 포함하고 있다. 현재 단 하나의 업체만이 이 시스템을 제공한다.

RAID-10

RAID10 방식은 RAID1 방식으로 데이터를 미러링을 하고 이를 다시 RAID0의 Stripping하는 방식이다. RAID0+1과 비슷하지만 성능은 더 뛰어나다.

이 형식은 각 스트라이프는 RAID-1 드라이브 어레이인 스트라이프 어레이를 제공한다. 이 방식은 RAID-1보다 높은 성능을 제공하지만, 값이 더 비싸다.

RAID-53

이 형식은 각 스트라이프는 RAID-3 디스크 에레이인 스트라이프 어레이를 제공한다. 이 방식은 RAID-3보다 높은 성능을 제공하지만, 값이 더 비싸다.

소프트웨어 RAID

소프트웨어 RAID는 커널 디스크 (블록 장치) 코드로 다양한 RAID 레벨을 실현함. 소프트웨어 RAID는 비싼 디스크 컨트롤러 카드나 핫-스왑 새시 (hot-swap chassis)를 사용하지 않기 때문에 가장 저렴한 솔루션을 제공함. 최신 CPU의 성능이 점점 빨라지면서, 소프트웨어 RAID의 성능이 하드웨어 RAID의 성능을 능가하게 되었다.

Linux 커널에 있는 MD 드라이버는 완전히 하드웨어 독립적인 RAID 솔루션의 한 예이다. 소프트웨어 기반 어레이의 성능은 서버 CPU의 성능과 로드에 의해 좌우된다.

소프트웨어 RAID의 기능 :