행위

RAID

조무위키

주의. 이 문서는 공머생들이 좋아하는 주제 혹은 공머생 그 자체에 대해 다룹니다.
본 문서가 다루는 내용에 지나치게 탐닉할 경우 필연적으로 여성들과 멀어지게 됩니다.
이는 조무위키가 책임지지 않습니다.

개요[편집]

RAID는 Redundant Array of Inexpensive/Independent Disks의 축약어이다.

RAID 기술은 비교적 값이 싼 디스크(저장장치) 여러개를 이용하여 대용량 또는 고성능 장치의 성능을 내고자 하여 개발된 기법이다.

저장장치 기술이 발달한 현재에는 Inexpensive 보단 Independent라는 뜻으로도 많이 쓰인다.

RAID의 구성 목적으로는 크게 고 안정성 환경과, 고성능 환경 2가지가 있다.

RAID는 여러가지 기법이 존재하며, 각각의 특성이 다르다.

JBOD같은 기법은 귀찮아서 안썼다.

Standard RAID[편집]

RAID Level 0[편집]

RAID 0는 여러개의 멤버 디스크를 병렬로 배치하여 거대한 하나의 디스크처럼 사용하는 기술이다.

데이터 I/O(Input/Output)가 각각의 멤버 디스크에게 공평하게 분배되며, N개의 드라이브를 사용한다고 하면 이론상 읽기 쓰기 속도는 N배가 된다.

2048KB(=2MB)의 데이터를 저장한다고 하자. Stripe Size가 64KB 이고, 디스크가 8개라고 한다면, 데이터를 64KB씩 각각의 디스크에 돌려가면서 쓰게 된다.

그러면 각각의 디스크가 쓴 횟수를 총합하면 32번이 되지만, 디스크당 4회의 쓰기만 한 것이 되며, 돌려가면서 썼기 때문에 속도는 매우 빠르게 된다.

설명이 좀 이상한 듯 하지만 대략 이러한 원리로 동작한다고 생각하면 된다.

여러개의 SSD를 RAID 0 구성하여 초당 2GB 쓰기를 찍는 경우도 보인다.

RAID 0는 속도와 용량의 측면에서 아주 강력한 기법이라고 할 수 있다.

하지만, RAID 0의 치명적인 단점으로는 안정성이 있다. 멤버 디스크중 단 하나라도 문제가 생기면 데이터 전체가 손실되어버린다.

RAID Level 1[편집]

RAID 1은 미러링 기법이다.

여러개의 멤버 디스크에 동일한 데이터를 저장시키는 것이다.

10MB짜리 데이터 하나를 저장하라는 명령이 들어오면, 데이터를 모든 하드디스크에 똑같이 저장시킨다.

따라서, 하드디스크의 용량은 항상 멤버디스크 하나의 용량과 같다. 즉, 아무리 멤버 디스크를 늘려도 용량은 같다.

또한 각각의 디스크가 모두 저장해야 한다는 특성때문에 쓰기 속도가 약간 느려지게 된다.

읽기속도는 멤버가 많다는 이점으로 더 빠를 수 있다.

이러한 단점을 가지고 있지만, RAID 1의 큰 장점으로는 멤버 디스크가 하나 빼고 다 뻗어버려도 데이터는 그대로 남아있게 된다는 것이다.

다소 무식한 방법이지만 필연적으로 RAID 1 기법은 매우 높은 안정성을 갖는다.

사실 우리가 흔히 알고 있는 그 미러링도 일베가 뻗기 전에 다른 곳에 똥글을 복사해놓은 것이ㄷ

틀:심플/메읍읍

RAID Level 2~4[편집]

ECC(Error Correcting Code, 오류 정정 부호)를 기록하는 전용의 하드디스크를 이용해서 안정성을 확보한다.

RAID 2는 비트 단위에 Hamming code를 적용하며, RAID 3, 4는 각각 바이트, 워드 단위로 패리티를 저장한다.

하나의 멤버 디스크가 고장나도 ECC를 이용하여 정상적으로 작동할 수 있지만, 추가적인 연산이 필요하므로 I/O 속도가 현저히 떨어진다는 단점이 있으며, 모든 I/O에 ECC 연산이 필요하여 병목현상이 발생하고, ECC 데이터를 기록하는 하드디스크의 수명이 타 멤버에 비해 더 짧아진다는 단점이 있어 현재 잘 사용하지 않는 방식이다.

RAID Level 5[편집]

기본 원리는 RAID 4와 비슷하다. 다만 차이점이 좀 존재하는 방식이다.

패리티를 각 멤버 디스크에 순환적으로 저장하여 I/O 병목현상을 해결한다. N개의 디스크를 사용하면 N-1배의 저장 공간을 사용할 수 있다.

RAID 4처럼 하나의 멤버 디스크 고장에는 견딜 수 있으나, 디스크가 두 개 이상 고장나면 데이터가 모두 손실된다.

매번 쓰기 작업 때마다 패리티 연산 과정이 추가된다. 따라서 성능을 보장하려면 패리티 연산 전용 프로세서와 메모리를 사용해야 한다. 멤버 디스크도 최소 3개 이상 사용해야 한다.

RAID Level 6[편집]

RAID 5와 원리는 같으며, 서로 다른 방식의 패리티 2개를 동시에 사용한다.

RAID 5보다는 안정성이 더 높지만 저장공간이 더 적다. N개의 디스크를 사용하면 N-2배의 저장 공간을 사용할 수 있다.

RAID 5보다 높은 안정성과 유지보수 용이성이 필요한 환경에서 주로 사용된다. 컨트롤러가 RAID 5보다 더 비싸고, 멤버 디스크도 기본 4개 이상 확보해야 하므로 RAID 5보다 초기 비용이 더 많이 들어간다.

Nested RAID[편집]

레이드 볼륨의 멤버로 하위 레이드 볼륨을 사용하는 형태로, 상위, 하위 레이드 멤버가 존재하게 된다.

표기방법은 [하위배열 상위배열]의 형식이다. 예제로, 상위배열이 1이고 하위배열이 0이면 RAID 0+1이다(하위배열이 0인 경우에는 0+상위배열 의 방식으로 쓴다).

대표적인 Nested RAID 기법으로는 0+1, 10, 15, 50, 0+5, 51이 있다.

1TB 디스크를 6개 사용한다는 전제하에 어떻게 되는지를 기술한다.

RAID 10[편집]

RAID 1로 미러링된 볼륨을 RAID 0으로 스트리핑하는 방식으로, 디스크가 6개이니 2가지의 경우가 있다.

첫번째로는 2개의 디스크가 미러링된 RAID 1 볼륨 3개를 RAID 0 으로 스트리핑하는 방법이고, 두번째로는 3개의 디스크가 미러링된 RAID 1 볼륨 2개를 RAID 0 으로 스트리핑 하는 방법이다.

전자는 후자에 비해 용량이 높고 고성능이지만 안정성이 떨어진다.

볼륨당 디스크의 개수와 안정성은 정비례 관계라고 볼 수 있다.

RAID 01보다는 복구 용이성이 높다고 평가된다.

RAID 0+1[편집]

RAID 0으로 스트리핑한 볼륨을 RAID 1으로 미러링하는 기법이다. 역시 2가지의 경우가 있다만, 위에서 0과 1 숫자만 바꿔주면 된다...

RAID 10보다 복구 용이성이 떨어진다.

RAID 0의 특성상 멤버 하나가 다운되면 RAID 0 어레이 구성이 박살 나버린다는 점이다. 디스크 하나가 고장나면 교체작업 후 RAID 0 어레이를 재구성한 후 다시 미러링해야 하므로 복구 용이성이 떨어지는 기법이다.

RAID 15[편집]

RAID 1으로 미러링된 볼륨을 RAID 5로 묶는 기법. RAID 5에는 멤버가 3개 이상 요구되므로 경우의 수는 1개 뿐이다.

멤버 디스크가 2개인 RAID 1 볼륨 3개를 RAID 5로 묶는 방법이다. 총 용량은 2TB가 된다.

RAID 50[편집]

RAID 5로 묶인 볼륨을 RAID 0으로 스트리핑 하는 기법. 경우의 수는 역시 1개이다.

멤버 디스크가 3개인 RAID 5 볼륨 2개를 RAID 0으로 스트리핑한다. 총 용량은 4TB이다.

RAID 0+5[편집]

RAID 0으로 스트리핑된 볼륨을 RAID 5로 묶는 기법. 경우의 수는 역시 1개이다.

멤버 디스크가 2개인 RAID 0 볼륨 3개를 RAID 5로 묶는 방법이다. 총 용량은 4TB가 된다.

하지만 설명했듯이 RAID 0는 멤버 하나만 다운돼도 어레이가 깨져버리기 때문에 RAID 50에 비해 복구가 어렵다.

RAID 51[편집]

RAID 5로 묶인 볼륨을 RAID 1로 미러링 하는 기법. 경우의 수는 역시 1개이다.

멤버 디스크가 3개인 RAID 5 볼륨 2개를 RAID 1로 미러링하는 기법이다. 총 용량은 2TB.

RAID 15나 51이나 디스크 장애 발생시 복구비용은 비슷하다.

구성하기 전에 준비할 것[편집]

RAID 볼륨을 구성하고자 하는 위키러들은 읽어보면 도움이 될거라고 생각한다.

RAID 구성 방법으로는 크게 소프트웨어 RAID와 하드웨어 RAID가 있다.

하드웨어 RAID는 별도의 RAID 카드를 이용하게 되며, 보다 높은 성능과 안정성을 보장하지만, 가격이 더 비싸다.

소프트웨어 RAID는 OS나 마더보드 RAID로 갈린다.

FakeRAID라는 것도 있다. 이는 저렴한 RAID카드 대부분을 말한다. 물론 가격만 저렴한게 아니라 성능과 안정성, 구성까지 저렴해서 그렇다... RAID를 구현하기 위한 프로세서와 메모리가 없는 경우는 FakeRAID로 구분한다.

하드웨어 RAID를 구성할때에는 아래의 사항을 염두에 둬야한다.

  • RAID 카드가 매우 비싸다. 이거 살려고 돈 퍼붓는 경우는 흔치 않다. 서버가 아닌 이상...
  • 출시후 상당한 기간이 지난 RAID 카드가 문제를 일으켰을 경우, 동일 RAID 카드를 구하지 못한다면 RAID 1(미러링)을 제외하고는 데이터 복구를 못할 가능성이 높다.

소프트웨어 RAID는 하드웨어 RAID보다 성능과 안정성면에서 뒤쳐진다는 문제점이 있다.

OS RAID의 특징은 다음과 같다.

  • OS RAID는 마더보드 변경과 같은 하드웨어 변경이 있어도 OS만 동일하다면 어레이 유지가 가능하다.
  • OS를 변경하는 경우(예: 윈도우 -> 리눅스) 어레이를 유지할 수 없을 가능성이 매우 높다.

마지막으로 마더보드 RAID는 아래의 특징을 가진다.

  • OS가 변경되어도 RAID 어레이는 유지된다.
  • 마더보드가 변경되면 RAID 어레이는 깨질 가능성이 높다.

이러한 특성을 모두 고려하여 알맞는 방식을 선택하길 바란다.

그리고 가장 중요한 것이 있다.

  • RAID를 구성할때, 같은 주차를 가진 동일 모델(성능도 물론 동일)의 디스크 여러개를 이용하여 구성하는 것이 권장된다. 주차까지는 안맞추더라도 모델은 맞추는게 좋다.
  • RAID는 백업이 아니다.

RAID 1으로 구성했다고 하더라도, 백업보다는 그 안정성이 훨씬 떨어진다.

백업된 자료가 있는 곳이 폭파되거나 백업용 매체가 유실되는 경우가 아닌 이상 백업이 가장 안전하고 가장 근본적인 데이터 손실에 대한 대책이다.

드물긴 하지만 동일 주차 동일 모델인 경우 하나가 문제를 일으키는 경우 나머지도 비슷한 시기에 문제를 일으킬 가능성이 있어 멤버에게 무리를 줄 수 있는 작업인 Rebuild시 갑자기 문제를 일으켜 데이터가 손실될 가능성이 존재한다.

그러니까 알아서 잘 RAID 볼륨을 구성해라. 데이터의 안정성이 중요하면 어떤 상황에서든지 백업인 필수다.

만약 딸쟁이가 현자타임이 와서 파일을 실수로 지우는 경우에는 RAID는 당연히 지워버리지만 백업용 드라이브까지 꺼내서 지우지 않는 이상은 지켜준다. 그러니까 제발 백업좀 하고 살아라!