본문 바로가기

OS & Server/윈도우 서버

RAID (Redundant Arrays of Independent Disks)

🐱‍👤RAID


다수의 디스크를 관리하는 디스크 구성 기술이다.

병렬의 여러 디스크를 사용하여 high capacity와 high speed 및 데이터가 중복 저장돼서 high reliability를 보장. 

또한, 디스크 fail가 발생해도 데이터를 복구할 수 있는 기술이다.

RAID Levels는

  • 0 (Block Striping; non-redundant)
  • 1 (Mirrored disks with block striping)
  • 2  (Memory-Style Error-Correcting-Codes(ECC)) <- striping
  • 3 (Bit-Interleaved Parity)
  • 4 (Block-Interleaved Parity)
  • 5 (Block-Interleaved Distributed Parity)
  • 6 (P+Q Redundancy)
  • 0+1 (0 과 1의 조합)
  • 1+0 (1과 0의 조합) 등이 있다.

각 레벨의 특성을 알아보기 전에 몇 가지 알아야 할 것들이 있다.

Redundancy(중복성) - 디스크 실패로 인해 손실된 정보를 rebuild 하는데 필요한 추가 정보를 저장한다.



Mirroring(또는 Shadowing) - 하나의 디스크가 아니라 두 개의 디스크에 모든 write가 수행된다. 만약 2개 중 하나의 디스크에서 디스크 실패가 발생해도 나머지 하나의 디스크에서 데이터를 이용할 수 있다.

데이터의 손실은 디스크 실패가 일어날 때만 발생하며 당연히 시스템을 복구하기 전에 미러 디스크는 고장 상태다.



Stripe 방식 (보통 RAID 0 방식) - 데이터를 2개 이상의 디스크 드라이브에 병렬로 저장하는 기술이다.

이 방식은 하나의 디스크에서 데이터를 읽고 쓰는 방식보다 빠르다.



Striping에는 Bit-Level Striping과 Block-Level Striping이 있다.

Bit-Level Striping은 각 바이트의 비트를 여러 디스크에 나눈다.

8개의 디스크의 배열 안에서, 각 바이트의 i번째 bit은 disk i에 쓰이고 각 액세스는 단일 디스크의 8배 속도로 데이터를 읽을 수 있다.

하지만 단일 디스크보다 seek time과 access time이 느리므로 요즘에는 더는 쓰이지 않는 방식이다.



Block-Level Striping은 n개의 디스크에서 파일의 i번째 블록은 disk (i mod n ) + 1 에 쓰인다.

블록이 서로 다른 디스크에 있는 경우 여러 블록에 대한 요청이 병렬로 실행될 수 있다.

 

🎈RAID 0


(Block Striping; non-redundant)

RAID 0 개념으로 100% 공간 효율과 뛰어난 성능을 보인지만 안정성은 보장되지 않는다. 데이터 손실이 중요하지 않은 고성능 애플리케이션에서 사용한다.

 

🧨RAID 1


Mirrored disks with block striping

미러링은 RAID 1 개념으로 양방향 및 3방향 미러를 지원한다. (디스크 동기화)

양방향은 최소 2개, 3방향은 최소 5개의 디스크가 필요하며 50% 또는 33% 미만의 공간 효율을 갖는다. 

공간효율을 떨어지지만 데이터의 안정성이 뛰어나다.

또한, 가장 좋은 쓰기 성능을 제공하며 데이터베이스 시스템에서 로그 파일과 같은 애플리케이션에 널리 사용한다.

 

🎊RAID 2


Memory-Style Error-Correcting-Codes(ECC)

RAID 0처럼 Striping 방식을 사용하지만, 에러를 체크하고 수정할 수 있도록 해밍코드를 사용한다.

하지만 하드 디스크는 ECC(Error Correcting Codes)를 지원하지 않아서 ECC를 위한 별도의 드라이브가 필요하다.

또한, ECC를 저장한 드라이브가 손상될 경우 문제가 발생할 수 있고 RAID 4 방식 이후로 거의 사용되지 않고 있다.

 

🎋RAID 3


(Bit-Interleaved Parity)

단일 패리티 비트는 어떤 디스크가 고장이 났는지 알고 있어서 단순한 탐지가 아니라 오류 수정에 충분하다.

데이터를 쓸 때, 해당 패리티 비트를 패리티 비트 디스크에도 반드시 기록해야 한다.

손상된 Disk에서 데이터를 복구하려면 패리티 비트 디스크를 포함한 다른 Disk에서 비트를 XOR 하면 된다.

단일 디스크보다 데이터 전송은 빠르다. 그러나 모든 디스크는 모든 입출력에 참여해야 하기 때문에 I/Os per second는 더 느리다.

 

🎏RAID 4


(Block-Interleaved Parity)

RAID 3과 유사하나 Block-level striping을 사용한다. 패리티 블록을 N개의 다른 디스크에 대응하는 블록을 별도의 디스크에 저장한다.

때문에, 레벨 3보다 독립적인 블록 읽기에 높은 입출력 속도를 제공한다.

또한, striping을 지원하지 않은 방식보다 여러 블록의 읽기 전송 속도가 빠르다. 

 

 

🧧RAID 5


(Block-Interleaved Distributed Parity)

RAID 3, 4 에서 패리티 비트 저장을 위한 디스크를 사용하여 발생할 수 있는 문제점을 보완하기 위한 방식으로 패리티 비트를 stripe 형태로 디스크에 저장한다.

위 예처럼 5개의 디스크에서 n 번째 블록 세트의 패리티 블록은 다른 4개의 디스크에 저장된 데이터 블록과 함께 디스크((n mod 5) + 1)에 저장된다.

최소 3개 이상의 디스크가 필요한다.

RAID 4보다 I/O 속도가 좋고 안전성이 어느 정도 올라가지만, 용량은 약간 감소한다.

-> 업데이트 속도가 느리고 많은 양의 데이터가 있는 응용 프로그램에는 수준 5가 선호된다.

 

🎫RAID 6


(P+Q Redundancy)

RAID 5와 유사하지만, 다중 disk 실패로부터 보호하기 위한 추가 중복 정보(2차 패리티 정보)를 저장한다. 그 때문에 Level 5보다 안전성은 좋지만, 더 큰 비용이 들어간다. 널리 사용되지는 않는 방식이다

 

 

🎢사용


RAID 0은 데이터 안전이 중요하지 않은 경우에만 사용한다.

Level 2와 4는 거의 사용되지 않는데 그 이유는 Level 3과 5가 2, 4의 기능을 포함하고 있기 때문이다.

Level 1과 Level 5는 대부분의 어플리케이션에 적절한 안전성을 제공하므로 레벨 6은 거의 사용되지 않고 있다.

Level 1은 Level 5보다 쓰기 속도가 빠르지만, 스토리지 비용이 많이 든다.

 

 

'OS & Server > 윈도우 서버' 카테고리의 다른 글

Active Directory 개체에 대한 관리 액세스 권한 위임  (0) 2020.02.09
그룹 정책(2)  (0) 2020.02.09
그룹 정책 (1)  (0) 2020.02.09
Disk 관리  (0) 2020.02.08
모니터링  (0) 2020.02.08