2024-05-23 13:34:44
728x90
728x90

1. RAID의 정의


Redundant Array of Inexpensive Disk(저렴한 디스크의 복수 배열) 혹은
Redundant Array of Independent Disk(독립 디스크의 복수 배열)의 약자이다.
말 그대로 RAID는 여러개의 디스크를 묶어 하나의 디스크 처럼 사용하는 기술이다.

RAID를 사용하였을 때 기대 효과는 다음과 같다.
 - 대용량의 단일 볼륨을 사용하는 효과
 - 디스크 I/O 병렬화로 인한 성능 향상 (RAID 0, RAID 5, RAID 6 등)
 - 데이터 복제로 인한 안정성 향상 (RAID 1등)

RAID는 컴퓨터를 구성하는 여러 부품중 기계적인 특성 때문에 상대적으로 속도가 느린 하드디스크를 보완하기 위해 만든 기술이다.

RAID를 구성하는 디스크의 개수가 같아도, RAID의 구성 방식에 따라 성능, 용량이 바뀌게 된다.
이 구성 방식을 RAID Level이라고 부른다. RIAD 0 ~ RAID 6까지 있지만, 최근 출시되는 RAID 컨트롤러에서 사용 가능 한 RAID Level은 RAID 0, RAID 1, RAID 5, RAID 6이다.

 

RAID로 묶는 방법에는 하드웨어적인 방법과 소프트웨어적인 방법이 있다.

하드웨어적인 방법 :
별도의 어댑터 카드나 메인보드 속 내장 칩을 통해 RAID를 구성하는 경우를 말한다.
하드웨어적인 방법으로 RAID를 구성할 경우, 운영 체제에 이 디스크가 하나의 디스크처럼 보이게 한다.

소프트웨어적인 방법 :
소프트웨어적인 방법은 주로 운영체제 안에서 구현되며, 사용자에게 디스크를 하나의 디스크처럼 보이게 한다. 운영체제는 여러 개의 디스크로 인식한다. 하드웨어적 구성에 비해 성능 향상 폭이 작고 안정성도 떨어진다.

RAID로 묶기 위해서는 우선 여러 개의 하드디스크를 준비해야 한다. 여기서 디스크란 물리적 디스크,
즉 실제로 메인보드에 연결되는 하드웨어를 의미한다. 따라서 하나의 디스크를 논리적으로 나눈 '파티션'을 대상으로는 레이드를 구성할 수 없다.

 

2. RAID Level

2.1.Standard Level

2.1.1. RAID 0

*Striping(스트라이핑) 이라고도 부르는 방식이다.
RAID 0를 구성하기 위해서는 최소 2개의 디스크가 필요하다.
RAID를 구성하는 모든 디스크에 데이터를 분할하여 저장한다.
전체 디스크를 모두 동시에 사용하기 때문에 성능은 단일 디스크의 성능의 N배 이다.
마찬가지로 용량 역시 단일 디스크의 용량의 N배가 된다.
하지만 하나의 디스크라도 문제가 발생 할 경우 전체 RAID가 깨지는 불상사가 발생한다.
즉, 안전성은 1/N으로 줄어든다 할 수 있다.
성능과 용량은 최대한으로 사용하는 대신, 안정성은 극악이라 할 수 있다.
주의해야 할 사항으로는 용량이 다른 하드디스크를 사용할 경우, 용량이 작은 디스크의 용량으로 하향되어 묶여진다. 예를 들면, 500GB와 1TB 하드를 RAID 0로 묶을 경우 1.5TB가 되는게 아니라 1TB가 된다.

 

*Striping(스트라이핑) : 하나의 Disk에 모두 기록할 수 없는 Data를 여러개의 Disk에 분배 기록할 수 있는 기술로 큰 용량을 만들어 사용하는데 사용된다.

 

 

 

2.1.2. RAID 1

*Mirroring(미러링) 이라고도 부르는 방식이다.

RAID 1을 구성하기 위해서는 최소 2개의 디스크가 필요하다.

RAID 컨트롤러에 따라서 2개의 디스크로만 구성 가능할 수도, 그 이상의 개수를 사용하여 구성 할 수도 있다.

RAID 1은 모든 디스크에 데이터를 복제하여 기록한다. , 동일한 데이터를 N개로 복제하여 각 디스크에 저장한다.

때문에 여러 개의 디스크로 RAID를 구성해도, 실제 사용 가능한 용량은 단일 디스크의 용량과 동일하다.

Write 시엔 데이터를 복제하여 기록하기 때문에, RAID 컨트롤러가 복제, 연산하는 시간을 감안하면 단일 디스크의 Write 성능보다 낮게 나올 수도 있다.

하지만 Read 시엔 전체 디스크에서 읽어오기 때문에 단일 디스크의 N배의 성능이 나온다.

그리고 RAID 1의 최대 강점은 안정성이 높다는 것이다. N-1개의 디스크가 고장나도 데이터 사용이 가능하다. 주로 OS 설치시에 사용한다.

 

*Mirroring(미러링) : 장비가 고장나는 사고가 발생하였을 때 데이터가 손실되는 것을 막기 위하여, 데이터를 하나 이상의 장치에 중복 저장하는 것이다.

 

2.1.3. RAID 5

RAID5는 Block 단위로 Striping을 하고, *Error Correction을 위해 *패리티를 1개의 디스크에 저장하는데, 패리티를 저장하는 디스크를 고정하지 않고, 매 번 다른 디스크에 저장한다.
용량 및 성능이 단일 디스크 대비 (N-1) 배 증가 한다.
최소 3개의 디스크로 구성 가능하다.
그리고 1개의 디스크 에러 시 복구가 가능하다.(2개 이상의 디스크 에러 시 복구 불가능)
RAID 0 에서 성능, 용량을 조금 줄이는 대신 안정성을 높인 RAID Level 이라 보면 된다.

 

*Error Correction Code(ECC) : 데이터의 에러 발생여부를 감지하여 수정까지 하는 장치로 고도의 데이터 신뢰성을 요구하는 서버 시스템에서 메모리 반도체의 에러를 감지하고 수정하여 시스템을 보호하는 기능.


*Parity(패리티) : 컴퓨터 공학에서 패리티는 기존의 정보와 동등한 상태인지를 확인할 때 사용된다. 가장 대표적으로는 오류가 났는지 검사하기 위해 사용된다. 패리티는 보통 패리티 비트라는 방식으로 구현된다. 패리티 비트는 홀수 패리티 비트와 짝수 패리티 비트로 나뉘는데, 짝수 패리티 비트는 0과 1중 1이 짝수가 되도록 비트를 추가하는 것을 의미하고 홀수 패리티 비트는 0과 1중 1이 홀수가 되도록 비트를 추가하는 것이다.

 

2.1.4. RAID 6

RAID 6는 최소 4개의 디스크로 구성이 가능하고 성능, 용량을 조금 더 줄이고, 안정성을 조금 더 높인 RAID Level이다.
Block 단위로 striping을 하고, error correction을 위해 패리티를 2개의 디스크에 저장하는데 패리티를 저장하는 디스크를 고정하지 않고, 매 번 다른 디스크에 저장한다.
용량 및 성능이 단일 디스크 대비(N-2)배 증가한다. 그리고 2개의 디스크 에러 시 복구가 가능하다.(3개 이상의 디스크 에러 시 복구 불가능)

 

2.2. Nested RAID(중첩 레이드)

Nested RAID는 Standard RAID를 여러개 중첩하여 사용한다.
즉, 복수의 Standard RAID 를 또 RAID로 묶는다.

 

2.2.1. RAID 0+1

최소 4개의 디스크로 구성이 가능하고,
디스크의 수 / (RAID 0로 묶는 디스크 개수) * 디스크의 용량이 최대 용량이다.
RAID 0으로 먼저 묶고, 그 다음 RAID 1로 묶는 방법이다. 디스크 N개를 A개씩 RAID 0로 묶고, RAID 0로 스트라이핑 된 볼륨 N/A개를 RAID 1로 미러링 한다.

장점 : RAID 0의 속도와 RAID 1의 안정성이라는 각 장점을 합쳤다. RAID 10에 비해 기술적으로 단순하다.
단점 : RAID 10에 비해 확률적으로 안정성이 떨어진다. 복구 시간이 오래 걸린다.

 

2.2.2. RAID 10

최소 4개의 디스크로 구성이 가능하고,
디스크의 수 / (RAID 1로 묶는 디스크 개수) * 디스크의 용량이 최대 용량이다.
RAID 1으로 먼저 묶고, 그 다음 RAID 0로 묶는 방법이다. 디스크 N개를 A개씩 RAID 1로 묶고, RAID 1로 미러링 된 볼륨 N/A개를 RAID 0으로 스트라이핑 한다.

장점 : RAID 0의 속도와 RAID 1의 안정성이라는 각 장점을 합쳤다. RAID 0+1에 비해 디스크 장애 발생시 복구가 수월하다.
단점 : 기술적으로 복잡하다.

728x90

'System' 카테고리의 다른 글

HPE iLO  (0) 2024.05.06
IBM(Lenovo) IMM  (0) 2024.05.05
DELL PowerEdge, IDRAC  (0) 2024.05.04
DIMM의 종류  (0) 2024.05.03
레거시 BIOS와 UEFI 모드의 차이점  (0) 2024.05.03