본문 바로가기
컴퓨터 지식창고

디스크 확장 RAID의 개념과 방식에 대하여 알아보자.

by 재미보장 2021. 12. 11.

RAID는 보통 사람들에게는 익숙하지 않은 개념이다. 이번 포스팅에서는 RAID의 개념과 구조에 에 대하여 자세히 알아보겠다.

RAID의 개념

RAID라는 것은 이러한 하드디스크를 여러개 연결해서 쓰는 방식의 디스크를 말한다. 데이터를 분할해서 복수의 자기 디스크 장치에 대해 병렬로 데이터를 읽는 장치 또는 읽는 방식으로 여러 디스크를 병렬로 연결하여 사용하는 기법으로 접근 속도와 가용성이 증가되며 물리적 디스크 용량의 제약을 벗어나 하나 대용량 디스크처럼 사용 가능하도록 하는 기법이다.

 

다시말해 RAID는 여러 개의 하드디스크를 하나의 하드디스크처럼 사용하는 방식이다. 4TB의 하드디스크가 필요한데 2TB 하드디스크가 2개라면, 직접 각 하드디스크에 파일을 잘 분배해야한다. 무척 번거롭다!! 이럴 때 필요한 것이 RAID! RAID로 2TB 하드디스크 2개를 하나의 4TB 하드디스크처럼 사용할 수 있다.

RAID의 종류

RAID의 종류는 하드웨어 RAID와 소프트웨어 RAID로 나눌 수 있다

하드웨어 RAID 

하드웨어 제조업체에서 여러 개의 하드디스크를 연결한 장비를 만들어서 그 자체를 공급하는 것. 하드웨어 RAID는 좀 더 안정적이고 각 제조업체에서 기술지원을 받을 수 있어 많이 선호하는 방법이다. 하지만 안정적이고 성능이 좋은 제품은 상당히 고가다.

소프트웨어 RAID

고가 하드웨어 RAID의 대안으로, 하드디스크만 여러개 있으면 운영체제에서 지원하는 방식으로 RAID를 구성하는 방법이다. 하드웨어 RAID보다는 신뢰성이나 속도 등이 떨어질 수 있지만, 아주 저렴한 비용으로 데이터를 저장할 수 있다는 게 장점이다.

RAID 활용 이유

과거 하나의 하드디스크의 용량에 한계가 있는데, 이러한 디스크를 한계보다 많은 대용량이 필요했을 것이다. 이를 해결하기 위한 방법으로 사용했다. 물론 진짜로 하드디스크를 여러개 붙혔다고 생각하면 안되고, 그러한 방식으로 연결 되어 있다고 이쯤해서 약어를 얘기하면 기억이 될 것으로 생각된다.

 

RAID(redundant array of inexpensive disks) 저렴한 디스크의 연결의 의미이다. 또는 redundant array of independent disks 독립된 디스크들의 어레이이다. 어레이는 프로그램에서 병렬로 선언된 공간을 의미한다.패리티 비트 (오류를 체크하기 위한 비트)나 미러이미지(복제된 이미지)를 저장한다고 해서 컴퓨터 쪽에서 리던던트는 예비 여분이란말에 쓰인다고 한다.

 

RAID 기술을 활용했을 초기에도 고용량의 디스크는 있었을 것이다. 하지만 고용량의 디스크를 이용하면 사용가격이 매우 상승한다 싼 값의 디스크 여러개를 활용함으로써 비용을 줄일 수 있었다.

 

또한 고장에 대비하기 위함도 있었다. 패리티 비트, 미러 이미지라는 것이 디스크를 여러개 두면서도 상호간에 어떤 방식으로 백업을 해두는 의미이다. 물론 동일한 이미지를 한군데 둔다기 보다는 여러 곳에 둠으로써 리스크를 줄이는 것이다.

RAID 방식

RAID에는 여러가지 방식이 있다. 이 방식에 따라서 구성이 조금씩 달라지게 된다.

RAID 0 Level

–Striping 중복이 없이 데이터를 여러 개의 디스크에 분할하여 저장하는 방식이다. 단순 Disk Striping, 즉 하나의 파일을 여러 블록으로 나누어 여러 디스크에 저장 저비용이나 장애 대처 기능이 없다. 데이터를 Segment 단위로 각각의 디스크에 분산 저장한다.

 

높은 I/O 성능, 데이터는 병렬로 Write, 디스크는 비동기 동작한다. 중복 저장 및 오류 교정정보를 위한 검사 디스크를 두지 않았다. 패리티가 없어서 일부 디스크 고장 시 복구할 수 없다. 단순 데이터 블록의 손실을 생각하지 않고 I/O성능만 생각한 방법이다. 장애발생에 대비한 여분의 공간을 갖지 않으므로 데이터 복구 기능 부재하다. 여러 가지 응용 프로그램을 동작시키는데 있어서 I/O성능을 높이기 위하여 사용되는 일종의 Mapping 기법이다. 가용 용량이 전체 용량의 100%이다. 대용량 객체의 병렬 입출력이 가능하며 저 비용이고 빠른 성능요구 업무 대용량 구현에 적합하다.

RAID 1 Level

– Mirroring and Duplexing모든 디스크마다 하나의 중복 디스크를 설치하여 동일 데이터를 중복으로 저장하는 방식이다. 데이터를 Physical Disk에 복사하여 저장하므로 높은 데이터의 가용성을 보장하고 동시에 빠른 I/O성능을 보장한다.

 

디스크 고장 시 자동 전환 가능, 최소한의 Array 구성으로 되어 있다. 장애에 대한 대책 기능이 가장 안정적이다. 하지만 경제성을 고려하지 않은 구조이다. 가격이 고가, 이중 데이터 저장한다. 데이터 읽기에 대한 성능 향상을 시킨 구조이다. 1차 Disk가 Busy일 때 2차 Disk이용할 수 있다.

 

최소 2개의 드라이브로 구성된다. 가용 용량이 전체 용량의 50%이다. 고비용이지만 데이터의 이중화로 장애 시 안정성을 확보할 수 있다. 높은 신뢰도를 필요로 하는 고장 허용성(Fault Tolerant) 응용에 적합하다. 금융 기관 등 Mission Critical한 업무를 진행하는데 적합하다.

 

RAID 2 Level

– Hamming Code ECC(Error Correction) 자료를 비트별로 각 디스크에 순서적으로 저장하는 방식이다. 비트 수준에서 모든 드라이브의 Parity는 오류를 식별하는 해밍코드와 함께 저장한다. 오류 정정을 위해서 해밍 코드를 사용하며 이를 위해 여러 개의 검사 디스크가 존재한다.

 

데이터의 분할하여 Bit단위의 Interleaving으로 검사 Disk를 사용한다. 다중 전용 패리티 디스크 사용한다. 한 개의 Disk 고장 시 패리티 디스크 사용으로 데이터 복구한다. 오버헤드 낮으나 Random I/O시에 패리티 디스크에 병목 현상이 발생할 수 있다. 모든 디스크들이 Lock-Step으로 동작한다.

 

자료 분실을 막기 위해서 Hamming오류정정 코드를 사용한다. 4개의 저장 디스크를 위해 3개의 오류 정정디스크 사용한다. Hamming Code를 이용한 오류 검출과 정정을 위한 것으로 검사에 많은 Overhead와 SCSI 드라이브의 경우 에러 검출 능력이 있으므로 사용되지 않고 개념만 있다. 대용량 객체의 병렬 입출력하며 오류 교정이 가능하므로 높은 신뢰도를 필요로 하는 응용분야에 사용된다. 상업적으로 구현이 고안되어 있다.

RAID 3 Level

– Single Check Disk Per Group RAID, Parallel transfer with parity 한 개의 그룹당 중복디스크를 하나만 할당하는 방식이다. 여러 개의 디스크에 데이터에 관련된 정보를 저장하고 독립적으로 단일 Parity 디스크를 사용하는 방식이다.

 

데이터 디스크에 Segment 단위로 저장하며 별도의 디스크에 Parity 데이터를 저장한다. 데이터에 대한 모든 요청을 동기화된 디스크에서 병렬로 Read/Write한다. 각각의 Disk에 데이터를 Bit단위로 Stripping하여 기록하며 안정성 확보를 위해 별도의 Disk에 Parity Disk를 저장한다. Management S/W가 Disk Array를 통합적으로 관리한다. 최소 3개의 드라이브가 필요하다. 대용량데이터 처리에 적합하다.

 

세그먼트 단위로 I/O발생하며 Bit/Byte Interleaving을 하며 특정 검사 디스크 지정한다. 모든 디스크들이 Lock-Step으로 동작한다. 그룹당 한 개의 패리티 디스크 할당한다. 모든 드라이브에 걸쳐 있는 데이터 Stripping과 한 드라이브 상에 유지되는 Parity데이터 생성한다.

RAID 4 Level

- Independent Data disks with shared Parity disk / Independent Disk Array RAID 3 Level과 비슷한 방식으로 별도의 디스크에 Block 단위로 저장한다. RAID 3 Level과 데이터 MAPPING 과 보호 방식이 비슷하다. 차이점은 RAID 3 Level은 Management S/W 가 disk array 를 통합적으로 관리하고 RAID 4 Level은 각각의 디스크 그룹들을 독립적으로 관리하는 차이가 있다. 한 디스크로 Read/Write시 그룹의 모든 디스크로 Read/Write가 필요하다.

 

독립적인 입출력을 가지며 블록단위로 I/O가 발생된다. 단일 검사 디스크가 존재한다. 그룹당 한 개의 별도 패리티 디스크 할당한다. 대용량 객체의 병렬 입출력이 가능하며 소량 데이터를 사용하는 정보 검색응용에 가능하다. 단일 오류 교정 기능이 가능하며 NAS에 적용되고 있다.

RAID 5 Level

- Rotating Independent Disk Array / Independent Data disks with distributed parity blocks RAID 4의 Parity의 병목현상을 해결하기 위한 방식으로 데이터와 Parity를 함께 Striping하여 각 디스크에 저장하는 방식이다.

 

하나의 Parity Chunk 를 여러 개의 데이타 Chunk 와 같은 Level 에 저장하여 데이터를 보호한다. 패리티 디스크가 별도로 있지 않고, 패리티 데이터를 데이터 디스크에 다른 데이터들과 함께 저장한다는 특징이다. 최소 3개 이상의 디스크 필요이다. 가용 용량이 전체 용량의 약 75%이다. Parity 구성에 따라 가변적이다.

 

분산 검사 디스크를 사용하며 패리티 정보를 위한 블록을 분산하여 저장한다. 패리티는 모든 드라이브에 기록, 패리티 계산시 XOR알고리즘 사용하고 단일 실패지점 존재하지 않는다. 대용량 객체의 병렬 입출력 가능하며 높은 처리속도를 보장하며 I/O가 빈번한 곳에 적합하다. 소량 데이터를 사용하는 온라인 트랜잭션에 적합하다. OLPT성 업무, 일반 기업 업무에 사용된다.

RAID 0+1

Level RAID 0의 장점인 빠른 처리속도와 RAID 1의 Mirroring을 이용한 구성방식이다. RAID DP(Dual Parity) DP는 이중 패리티(Dual Parity)의 약자인데, RAID-DP라는 것은 넷앱이 독자적 기술로 개발해 새로 발표한 기술이다. 즉, 속도의 향상과 안정성의 향상이라는 두가지를 합쳐둔것입니다. 

 

RAID0으로 구성한 다음 RAID1으로 미러링을 하는 구조입니다. 
RAID0+1로 10개의 HDD를 묶는다고 하면,
1) RAID0으로 5개씩 묶습니다.
RAID0[1,2,3,4,5], RAID0[6,7,8,9,10] 이렇게 2개의 묶음을 R0, R1이라고 이름짓습니다.
2) RAID1으로 2개를 묶습니다.
RAID1[R0,R1]
이것을 풀어서 보시면
RAID1[RAID0[1,2,3,4,5],RAID0[6,7,8,9,10]] 이렇게 들어가는것을 알수 있습니다.

 

RAID-DP

RAID 6와 비슷한 RAID DP(Double Parity) 역시 2차 Parity 정보를 넣고 있다. 약간의 다른 점이라면 Parity 정보를 분산시켜 넣는 RAID 6와 달리 2개의 디스크에 Parity 정보를 몰아 넣는 방법을 활용한다. 특정 Vender의 스토리지 제품에서 사용하는 RAID 구성이다.

 

RAID-DP는 기본적으로 RAID-4가 가지는 모든 장점을 그대로 가져간다. RAID-DP가 RAID-4를 기반으로 만들어졌기 때문이다. 이중 패리티라는 말 자체가 알려주듯이 패리티를 이중으로 가져간다는 것이다. 좀 더 정확히 말하면 패리티 디스크가 하나의 RAID 그룹에 두 개가 들어간다. 그렇다면 두 개의 디스크에 장애가 발생해도 데이터는 멀쩡히 살아 있을 수 있다. 한 개의 디스크에 장애가 생기면 RAID-4나 RAID-5에는 보통 여유분의 디스크인 스페어 디스크(Spare Disk)가 있기 때문에 자동으로 이 스페어 디스크에 기존의 데이터 정보를 기초로 한 패리티 연산을 통해 그대로 원래의 데이터를 100% 살려 낼 수 있다.

 

RAID-DP를 적용할 때에는 데이터디스크 12개에 패리티디스크 2개를 하나의 RAID그룹으로 묶는 것이 권장 사항이다. 그렇다면 결국 가용할 수 있는 데이터 공간은 동일하고 안정성은 훨씬 향상되는 두 마리 토끼를 동시에 잡을 수 있게 된다.

 

연관정보 : 컴퓨터 메모리 동작원리

 

컴퓨터 메모리의 동작원리와 과정

일반적으로 메모리라고 하면 기억이라는 개념이다. 컴퓨터에서 말하는 메모리는 기억소자 즉 반도체를 의미한다. 반도체는 특성상 전류를 흐르게도 하고 흐르지 않게도 하는 특징이 있다. 이를

gguljaem.tistory.com

연관정보 : 캐시메모리 매핑기법 설명

 

캐시메모리의 개념과 매핑기법에 대한 설명

Cache Memory는 메인 메모리와 CPU간의 데이터 속도 향상을 위한 중간 버퍼 역할을 하는 CPU내 또는 외에 존재하는 메모리이다. 전체 시스템의 성능의 개선을 시킬 수 있는 메모리이다. 이번 포스팅에

gguljaem.tistory.com

 

댓글