본문 바로가기
리눅스/서버운영

RAID란?

by 상달군 2024. 2. 23.
728x90

 


RAID [ Redundant Array of Inexpensive/Independent Disk ]

저장장치 여러 개를 묶어 고용량 고성능 저장 장치 한 개와 같은 효과를 얻기 위해 개발된 기법이다.

초기에는 업그레이드 후 '폐기하면 아깝고, 그렇다고 단독으로 쓰기에는 성능이 부족한 (Inexpensive)' 저장장치를

재활용 할 목적으로 사용하였다. 저장장치 기술이 발전한 현재는 Inexpensive 보다는 Independent로 해석하는 추세이다.

 

✨ RAID의 주요 목적은 데이터 손실을 방지하고 서버의 가용성과 안정성을 확보하는 것입니다. 

  • 데이터 안정성: RAID는 데이터를 여러 디스크에 분산 저장하거나 미러링하여 단일 디스크의 고장으로 인한 데이터 손실을 방지합니다. 이는 중요한 데이터나 개인 파일과 같은 정보의 보호를 강화합니다.
  • 고가용성: RAID는 디스크의 고장이 발생해도 시스템의 작동을 유지할 수 있도록 합니다. 미러링 및 패리티 기술을 사용하여 데이터를 복제하거나 복구하여 서비스의 중단을 최소화합니다.
  • 성능 향상: 일부 RAID 레벨은 데이터를 병렬로 읽고 쓰기 때문에 성능을 향상시킵니다. 이는 데이터베이스 서버나 파일 서버와 같이 높은 입출력 요구를 가진 응용 프로그램에서 특히 유용합니다.
  • 용량 확장: RAID를 사용하면 여러 디스크를 하나의 논리적인 볼륨으로 결합할 수 있으므로, 필요에 따라 저장 공간을 증가시킬 수 있습니다. 이는 데이터가 계속해서 증가하는 환경에서 유용합니다.

🎈 따라서 RAID 구성을 통해 하드디스크의 가용성을 높이고 서버 데이터의 안정성을 확보할 수 있습니다. 이를 통해 데이터 손실 없이 서버의 성능을 향상시키고 무중단 운영도 보장할 수 있습니다.


RAID 0

RAID 0은 드라이브를 두 개 이상 결합하여 성능과 용량을 향상시키지만 장애 허용 기능을 제공하지 않습니다. 단일 드라이브 오류로 인해 배열에 있는 모든 데이터가 손실됩니다. RAID 0은 고비용/성능 간 균형이 크게 중요하지 않은 시스템에 유용합니다.

  • Striping (스트라이핑) 이라고도 부르는 방식입니다.
  • 구성하기 위해서는 최소 2개의 디스크가 필요합니다. 
  • RAID를 구성하는 모든 디스크에 데이터를 분할하여 저장합니다.
  • 전체 디스크를 모두 동시에 사용하기 때문에 성능은 단일 디스크의 성능의 N배 입니다.
  • 단일 디스크의 용량의 N배가 됩니다.
  • 하나의 디스크라도 문제가 발생 할 경우 전체 RAID가 깨지는 불상사가 발생합니다.


RAID 1

RAID 1은 주로 드라이브 두 개로 구현됩니다. 드라이브의 데이터가 미러링되므로 드라이브 오류 발생 시 장애 허용 기능을 제공합니다. 읽기 성능은 향상되지만 쓰기 성능은 단일 드라이브의 쓰기 성능과 유사합니다. 데이터 손실 없이 오류가 발생한 단일 드라이브를 견딜 수 있습니다. RAID 1은 주로 장애 허용이 중요하지만 공간이나 성능이 크게 중요하지 않는 경우에 사용됩니다.

  • Mirroring (미러링) 이라고도 부르는 방식 입니다.
  • 구성하기 위해서는 최소 2개의 디스크가 필요합니다. 
  • RAID 컨트롤러에 따라서 2개의 디스크로만 구성 가능할 수도, 그 이상의 개수를 사용 하여 구성 할 수도 있습니다.
  • RAID 1은 모든 디스크에 데이터를 복제하여 기록합니다.
  • 여러 개의 디스크로 RAID를 구성해도, 실제 사용 가능한 용량단일 디스크의 용량과 동일합니다.
  • RAID 1의 최대 강점안정성이 높다는 것 입니다.
    (N-1개의 디스크가 고장나도 데이터 사용이 가능합니다.)


RAID 2

  • 현재는 사용하지 않는 RAID Level 입니다.
  • RAID2는 RAID 0처럼 striping 방식이지만 에러 체크와 수정을 할 수 있도록 Hamming code를 사용하고
    있는 것이 특징입니다. 
  • 하드 디스크에서 ECC(Error Correction Code)를 지원하지 않기 때문에 ECC를 별도의 드라이브에 저장하는
    방식으로 처리됩니다.
  • bit 단위로 striping을 하고, error correction을 위해 Hamming code 를 사용합니다.
    (striping=기본적으로 데이터를 분할하는것을 의미, error correction= 에러 검출(?))
  • 구성하기 위해서는 최소 3개의 디스크가 필요합니다. 
  • 1개의 디스크 에러 시 복구 가능합니다. (2개 이상의 디스크 에러 시 복구 불가능)

 


RAID 3

RAID 3 구성은 striping을 사용하고 하나의 드라이브를 패리티 정보를 저장하는데 사용된다. 내장 된 ECC 정보는 오류를 감지하는 데 사용된다. 데이터 복구는 다른 드라이브에 기록된 정보의 배타적 OR (XOR)을 계산하여 수행된다. I/O 작업은 동시에 모든 드라이브를 처리하므로 RAID 3은 I/O를 중첩 할 수 없습니다. 이러한 이유 때문에 RAID 3은 수행시간이 긴 응용 프로그램이 있는 단일 사용자 시스템에 가장 적합하다.

  • 현재는 사용하지 않는 RAID Level 입니다.
  • Byte 단위로 striping을 하고, error correction을 위해 패리티 디스크를 1개 사용합니다.
  • 용량 및 성능이 단일 디스크 대비 (N-1) 배 증가합니다.
  • Byte 단위로 striping 하기 때문에 너무 작게 쪼개져 현재는 사용하지 않는다고 합니다.
  • 구성하기 위해서는 최소 3개의 디스크가 필요합니다.
  • 1개의 디스크 에러 시 복구 가능합니다. (2개 이상의 디스크 에러 시 복구 불가능)


RAID 4

RAID 4 구성은 RAID 3 구성과 거의 동일하다고 보면 되며, 스트라이프를 사용하므로 단일 드라이브에서 읽을 수 있다. 그리고 모든 쓰기 작업은 패리티 드라이브를 업데이트 해야하지만 별도의 디스크이기 때문에 I/O 충돌이 발생하지 않는다. 
RAID3과 RAID 4를 정리하면 RAID 0, RAID1의 문제점을 보완하기 위해 설계되었으며 3,4로 나뉘긴 하지만 그림 처럼 RAID 구성 방식은 거의 같습니다. RAID 3,4는 기본적으로 RAID0과 같은 스트라이핑 구성을 하고 있어서 성능을 보안하고 디스크 용량을 완전히 사용할 수 있게 해줍니다. 그리고 에러 체크 및 수정을 위해서 패리티 정보를 별도의 디스크에 따로 저장합니다.

 

RAID3은 데이터를 바이트 단위로 나누어 디스크에 동등하게 분산 기록하며 RAID 4는 데이터를 블록 단위로 나눠서 기록하므로 약간의 차이는 존재합니다.
RAID 3은 디스크 동기화가 필수적이라 많이 사용되지 않고 RAID 4 역시 RAID 5로 대체되었습니다.

  • 현재는 (거의) 사용하지 않는 RAID Level 입니다.
  • Block 단위로 striping을 하고, error correction을 위해 패리티 디스크를 1개 사용합니다.
  • 용량 및 성능이 단일 디스크 대비 (N-1) 배 증가합니다.
  • 구성하기 위해서는 최소 3개의 디스크가 필요합니다. 
  • 1개의 디스크 에러 시 복구 가능합니다. (2개 이상의 디스크 에러 시 복구 불가능)
  • Block 단위로 striping 하는 것은 RAID 5, RAID 6와 동일하지만,패리티 코드를 동일한 디스크에 저장하기 때문에,패리티 디스크의 사용량이 높아 해당 디스크의 수명이 줄어든다고 합니다.


RAID 5

RAID 5는 장애 허용과 향상된 읽기 성능을 제공합니다. 드라이브가 최소 세 개 이상 필요합니다. RAID 5는 단일 드라이브 손실을 견딜 수 있습니다. 드라이브에 오류가 발생한 경우 오류가 발생한 드라이브의 데이터는 나머지 드라이브에 스트라이핑된 패리티에서 다시 구성됩니다. 그 결과, RAID 5 배열이 저하된 상태이면 읽기와 쓰기 성능 모두 심각한 영향을 받습니다. RAID 5는 공간과 비용이 성능보다 더 중요한 경우에 적합합니다.

  • 제일 사용 빈도가 높은 RAID Level 입니다.
  • 구성하기 위해서는 최소 3개의 디스크가 필요합니다. 
  • Block 단위로 striping을 하고, error correction을 위해 패리티를 1개의 디스크에 저장하는데,
    패리티 저장 하는 디스크를 고정하지 않고, 매 번 다른 디스크에 저장합니다.
    (striping=기본적으로 데이터를 분할하는것을 의미, error correction= 에러 검출(?), 패리티(Parity)비트= 정보전달하는 과정에서 오류가 생겼는지를 검사하기 위해 추가된 비트 )
  • 용량 및 성능이 단일 디스크 대비 (N-1) 배 증가합니다.
  • 1개의 디스크 에러 시 복구 가능합니다. (2개 이상의 디스크 에러 시 복구 불가능)
  • RAID 0에서 성능, 용량을 조금 줄이는 대신 안정성을 높인 RAID Level이라 보시면 됩니다.


RAID 6

RAID 6은 RAID 5와 유사하지만 또 다른 스트라이핑 레이어를 제공하고 오류가 발생한 드라이브 두 개를 견딜 수 있습니다. 드라이브가 최소 4개 이상 필요합니다. RAID 6 성능은 이 추가 장애 허용으로 인해 RAID 5보다 낮습니다. RAID 6은 공간과 비용이 중요하고 여러 드라이브 오류를 견뎌야 하는 경우에 적합합니다.

  • RAID 5에서 성능, 용량을 좀 더 줄이고, 안정성을 좀 더 높인 RAID Level 입니다.
  • 구성하기 위해서는 최소 4개의 디스크가 필요합니다.
  • Block 단위로 striping을 하고, error correction을 위해 패리티를 2개의 디스크에 저장하는데,패리티 저장 하는 디스크를 고정하지 않고, 매 번 다른 디스크에 저장합니다.
  • 용량 및 성능이 단일 디스크 대비 (N-2) 배 증가합니다.
  • 2개의 디스크 에러 시 복구 가능합니다. (3개 이상의 디스크 에러 시 복구 불가능)
  • RAID 5에서 성능, 용량을 조금 줄이는 대신 안정성을 높인 RAID Level이라 보시면 됩니다.


RAID 10

RAID 10에는 RAID 1과 RAID 0의 이점이 결합되어 있습니다. 읽기와 쓰기 성능이 향상되지만 전체 공간의 절반만 데이터 저장에 사용될 수 있습니다. 드라이브가 4개 이상 필요하므로 비용이 상대적으로 비싸지만 고성능과 동시에 장애 허용을 제공합니다. RAID 10은 동일한 하위 그룹에서 오류가 발생하지 않는 한 여러 드라이브 오류를 견딜 수 있습니다. RAID 10은 데이터베이스 서버와 같은 I/O 수요가 높은 응용 프로그램에 적합합니다.


RAID F1

RAID F1은 RAID 5의 메커니즘을 적용하여 장애 허용과 향상된 읽기 성능을 제공합니다. 그러나 시스템은 RAID F1을 통해 특정 드라이브에 더 많은 패리티 정보를 쓰므로 해당 드라이브 수명이 빠르게 단축됩니다. 이를 통해 동시에 모든 드라이브 내구성이 종료되는 것이 방지됩니다. 이는 RAID 5와 비교 시 성능에 미미한 영향을 미칠 수 있습니다. 드라이브가 최소 세 개 이상 필요합니다. RAID F1은 단일 드라이브 손실을 견딜 수 있습니다. 드라이브에 오류가 발생한 경우 오류가 발생한 드라이브의 데이터는 나머지 드라이브에 스트라이핑된 패리티에서 다시 구성됩니다. 그 결과, RAID F1 배열이 저하된 상태이면 읽기와 쓰기 성능 모두 심각한 영향을 받습니다. RAID F1은 올플래시 배열에 적합합니다.

 


출처:https://kb.synology.com/ko-kr/DSM/help/DSM/StorageManager/storage_pool_what_is_raid?version=7

 

 

RAID 유형 선택 | DSM - Synology 지식 센터

 

kb.synology.com

출처:https://lipcoder.tistory.com/511

 

RAID 개념과 종류 그리고 구성방식

RAID는 왜 사용하는 것인가? 서버 사용자가 서버 운영에 있어 가장 당혹스러울 때는 하드디스크 장애로 인한 데이터 손실일 것이다. 하드디스크는 사실상 소모품이며 I/O 작업이 많은 서버에서는

lipcoder.tistory.com

출처:https://blog.naver.com/PostView.naver?blogId=suin2_91&logNo=223035488810

 

0~ 10까지 RAID 구조 종류 및 구성방식

오늘은 저장장치를 효과적으로 적용할 수 있는 RAID에 대해 설명해 보도록 하겠습니다. RAID란 무...

blog.naver.com

 

728x90

댓글