RAID

RAID

RAID(/reded/; "저렴한 디스크의 중복 어레이"[1] 또는 "독립 디스크의 중복 어레이")[2]는 데이터 중복, 성능 향상 또는 둘 다를 목적으로 여러 물리적 디스크 드라이브 구성 요소를 하나 이상의 논리적 단위로 결합하는 데이터 스토리지 가상화 기술입니다.이는 신뢰성이 높은 메인프레임 디스크 드라이브의 이전 개념인 "큰 값비싼 단일 디스크"(SLED)와는 대조적입니다.[3][1]

데이터는 필요한 이중화 및 성능 수준에 따라 여러 방식 중 하나인 RAID 레벨로 드라이브에 분산됩니다.다양한 방식 또는 데이터 배포 레이아웃은 "RAID"라는 단어 다음에 RAID 0 또는 RAID 1과 같은 숫자로 명명됩니다. 각 방식 또는 RAID 레벨은 신뢰성, 가용성, 성능용량과 같은 주요 목표 간에 서로 다른 균형을 제공합니다.RAID 0보다 큰 RAID 레벨은 복구할 수 없는 섹터 읽기 오류 및 전체 물리적 드라이브의 장애로부터 보호합니다.

역사

"RAID"라는 용어는 David Patterson, Garth A에 의해 발명되었습니다. 1987년캘리포니아 대학교 버클리에서 깁슨과 랜디 캐츠.1988년 6월 SIGMOD Conference에서 발표한 논문 "A Case for Redundant Arrays of Inspensive Disks (RAID)"에서 당시 최고 성능을 자랑하는 메인프레임 디스크 드라이브는 성장하는 개인용 컴퓨터 시장을 위해 개발된 저렴한 드라이브의 배열로 인해 성능 면에서 우위를 점할 수 있다고 주장했습니다.드라이브 수에 비례하여 장애가 증가하기는 하지만 이중화를 위해 구성하면 어레이의 신뢰성은 대형 단일 드라이브의 신뢰성을 훨씬 능가할 수 있습니다.[4]

아직 이 용어를 사용하지는 않았지만, 1988년 6월 논문에 수록된 5가지 레벨의 RAID 기술은 다음을 포함한 다양한 제품에 사용되었습니다.[3]

  • 미러링(RAID 1)은 탠덤 논스톱 시스템(Tandem NonStop Systems) 등 1970년대에 잘 확립되었습니다.
  • 1977년 IBM의 Norman Ken Ouchi는 RAID 4로 명명된 것을 공개하는 특허를 제출했습니다.[5]
  • 1983년경 DEC는 서브시스템 미러링 RA8X 디스크 드라이브(현재 RAID 1로 알려져 있음)를 HSC50 서브시스템의 일부로 공급하기 시작했습니다.[6]
  • 1986년 IBM의 Clark et al. 은 RAID 5로 명명된 것을 공개하는 특허를 제출했습니다.[7]
  • 1988년경 Thinking Machine의 DataVault는 디스크 드라이브 배열에 오류 수정 코드(현재 RAID 2로 알려져 있음)를 사용했습니다.[8]유사한 접근 방식이 1960년대 초 IBM 353에서 사용되었습니다.[9][10]

업계 제조업체들은 나중에 RAID 머리글자를 "독립 디스크의 중복 배열"을 나타내는 것으로 재정의했습니다.[2][11][12][13]

개요

많은 RAID 레벨에서 "패리티"라고 불리는 오류 보호 체계를 사용하는데, 이는 주어진 데이터 집합에서 내결함성을 제공하기 위해 정보 기술에서 널리 사용되는 방법입니다.대부분 단순 XOR을 사용하지만 RAID 6는 특정 Galois 필드 또는 Reed-Solomon 오류 수정에서 덧셈과 곱셈을 기준으로 두 개의 개별 패리티를 사용합니다.[14]

또한 RAID는 SSD(Solid State Drive)로 데이터 보안을 제공할 수 있으며, SSD 시스템을 사용하지 않아도 됩니다.예를 들어, 빠른 SSD를 기계식 드라이브와 미러링할 수 있습니다.이 구성이 상당한 속도의 이점을 제공하기 위해서는 모든 읽기 작업에 빠른 SSD를 사용하는 적절한 컨트롤러가 필요합니다.Adaptec은 이를 "하이브리드 RAID"라고 부릅니다.[15]

표준수준

각각 24개의 하드 디스크 드라이브와 다양한 RAID 레벨을 지원하는 내장 하드웨어 RAID 컨트롤러를 갖춘 스토리지 서버

원래는 5개의 표준 RAID 레벨이 있었지만, 여러 중첩 레벨과 여러 비표준 레벨(대부분 독점적)을 포함한 많은 변형이 진화했습니다.RAID 레벨 및 관련 데이터 형식은 공통 RAID Disk 드라이브 형식(DDF) 표준에서 SNIA(Storage Networking Industry Association)에 의해 표준화됩니다.[16][17]

  • RAID 0은 블록 레벨 스트라이핑으로 구성되지만 미러링이나 패리티는 없습니다.스팬 볼륨과 비교하면 RAID 0 볼륨의 용량은 동일하며, 세트 내 드라이브 용량의 합입니다.그러나 스트라이핑은 각 파일의 내용을 세트 내의 모든 드라이브에 분산시키므로 드라이브가 고장나면 전체 RAID 0 볼륨과 모든 파일이 손실됩니다.이에 비해 확장 볼륨은 장애가 없는 드라이브의 파일을 보존합니다.RAID 0의 장점은 모든 파일에 대한 읽기 및 쓰기 작업의 처리량에 드라이브 수를 곱한다는 점입니다. 이는 확장 볼륨과 달리 읽기와 쓰기가 동시에 수행되기 때문입니다.[11]RAID 0 셋업에 실패한 드라이브는 전체 볼륨을 손실하므로 드라이브 장애에 대한 비용이 증가합니다. 드라이브에 연결된 드라이브 수에 따라 볼륨의 평균 장애율이 증가합니다.
  • RAID 1은 패리티나 스트라이핑 없이 데이터 미러링으로 구성됩니다.데이터는 두 개 이상의 드라이브에 동일하게 기록되므로 "미러링된 드라이브 집합"이 생성됩니다.따라서 모든 읽기 요청은 해당 세트의 모든 드라이브에서 처리할 수 있습니다.요청이 세트 내의 모든 드라이브로 브로드캐스트되는 경우, 탐색 시간과 회전 지연 시간에 따라 데이터에 먼저 액세스하는 드라이브가 요청을 처리할 수 있으므로 성능이 향상됩니다.지속적인 읽기 처리량은 컨트롤러나 소프트웨어가 최적화되어 있다면 RAID 0과 마찬가지로 집합 내의 모든 드라이브의 처리량의 합에 가깝습니다. 대부분의 RAID 1 구현의 실제 읽기 처리량은 가장 빠른 드라이브보다 느립니다.모든 드라이브를 업데이트해야 하므로 쓰기 처리량이 항상 느리고 가장 느린 드라이브는 쓰기 성능을 제한합니다.적어도 하나의 드라이브가 작동하는 한 어레이는 계속 작동합니다.[11]
  • RAID 2는 전용 해밍 코드 패리티를 갖는 비트 레벨 스트라이핑으로 구성됩니다.모든 디스크 스핀들 회전이 동기화되고 데이터가 스트라이프되어 순차적 비트가 각각 다른 드라이브에 저장됩니다.해밍 코드 패리티는 해당 비트 간에 계산되며 적어도 하나의 패리티 드라이브에 저장됩니다.[11]이 수준은 역사적 의미만 있습니다. 일부 초기 기계(예: Thinking Machine CM-2)에서 사용되었지만 2014년 현재 상용화된 시스템에서는 사용되지 않습니다.[18][19]
  • RAID 3은 전용 패리티가 있는 바이트 레벨 스트라이핑으로 구성됩니다.모든 디스크 스핀들 회전이 동기화되고 데이터가 스트라이프되어 각 순차 바이트가 서로 다른 드라이브에 저장됩니다.패리티는 해당 바이트 간에 계산되며 전용 패리티 드라이브에 저장됩니다.[11]구현이 있기는 하지만 실제로는 RAID 3이 일반적으로 사용되지는 않습니다.[20]
  • RAID 4는 전용 패리티가 있는 블록 레벨 스트라이핑으로 구성됩니다.이 레벨은 이전에 NetApp에서 사용했지만 현재는 RAID-DP라는 2개의 패리티 Disk로 RAID 4를 독점적으로 구현한 것으로 대체되었습니다.[21]RAID 2 및 3에 비해 RAID 4의 가장 큰 장점은 I/O 병렬성입니다. RAID 2 및 3에서는 단일 읽기 I/O 작업으로 전체 데이터 드라이브 그룹을 읽어야 하는 반면, RAID 4에서는 하나의 I/O 읽기 작업이 모든 데이터 드라이브로 확산될 필요가 없습니다.따라서 더 많은 I/O 작업을 병렬로 실행할 수 있어 소규모 전송 성능이 향상됩니다.[1]
  • RAID 5는 분산 패리티를 갖는 블록 레벨 스트라이핑으로 구성됩니다.RAID 4와 달리 패리티 정보는 드라이브들 사이에 분산되어 있기 때문에 하나를 제외한 모든 드라이브가 작동해야 합니다.단일 드라이브에 장애가 발생하면 데이터가 손실되지 않도록 분산 패리티에서 후속 판독값을 계산할 수 있습니다.RAID 5에는 최소 3개의 디스크가 필요합니다.[11]모든 단일 패리티 개념과 마찬가지로 대규모 RAID 5 구현도 어레이 리빌드 시간 및 리빌드 시 드라이브 장애 가능성에 관한 추세 때문에 시스템 장애에 취약합니다(아래의 "리빌드 시간장애 확률 증가" 섹션 참조).[22]어레이를 재구성하려면 모든 디스크에서 모든 데이터를 읽어야 하며, 제2의 드라이브 장애 및 전체 어레이의 손실 가능성이 있습니다.
  • RAID 6는 이중 분산 패리티를 갖는 블록 레벨 스트라이핑으로 구성됩니다.이중 패리티는 최대 2개의 고장 드라이브까지 내결함성을 제공합니다.따라서 대용량 드라이브를 복원하는 데 더 오랜 시간이 걸리기 때문에 특히 고가용성 시스템의 경우 더 큰 RAID 그룹을 더욱 실용적으로 활용할 수 있습니다.RAID 6에는 최소 4개의 디스크가 필요합니다.RAID 5의 경우와 마찬가지로 단일 드라이브 장애로 인해 장애가 발생한 드라이브를 교체할 때까지 전체 어레이의 성능이 저하됩니다.[11]RAID 6 어레이를 사용하면 여러 소스 및 제조업체의 드라이브를 사용하여 RAID 5와 관련된 대부분의 문제를 완화할 수 있습니다.드라이브 용량이 커지고 어레이 크기가 커질수록 RAID 5 대신 RAID 6을 선택하는 것이 더욱 중요해집니다. RAID 10은 이러한 문제도 최소화합니다.[23][24]

중첩(하이브리드) RAID

원래 하이브리드 RAID라고 불리던 것에서는 [25]많은 스토리지 컨트롤러가 RAID 레벨을 중첩할 수 있도록 허용합니다.RAID의 구성 요소는 개별 드라이브 또는 어레이 자체일 수 있습니다.배열은 한 레벨 이상 깊이로 중첩되는 경우가 거의 없습니다.

최종 배열을 최상위 배열이라고 합니다.상위 어레이가 RAID 0인 경우(예: RAID 1+0 및 RAID 5+0), 대부분의 벤더는 "+"를 생략합니다(각각 RAID 10과 RAID 50을 제공).

  • RAID 0+1: 두 개의 스트라이프를 만들어 미러링합니다.단일 드라이브 장애가 발생하면 미러 중 하나에 장애가 발생한 것이며, 이 시점에서 이중화 없이 RAID 0으로 효과적으로 실행됩니다.RAID 1+0보다 리빌드 과정에서 훨씬 높은 위험이 발생할 수 있습니다. 하나의 드라이브에서만 데이터를 읽는 것이 아니라 나머지 스트라이프에 있는 모든 드라이브에서 데이터를 읽어야 하기 때문에 복구 불가능한 읽기 오류(URE)가 발생할 가능성이 높아지고 리빌드 기간이 크게 늘어납니다.[26][27][28]
  • RAID 1+0:(RAID 10 참조) 일련의 미러링된 드라이브로부터 스트라이프 세트를 생성합니다.미러가 드라이브를 모두 잃지 않는 한 어레이는 여러 개의 드라이브 손실을 지속할 수 있습니다.[29]
  • JBOD RAID N+N: JBOD(단, 디스크 묶음)를 사용하면 디스크 연결은 물론 RAID 세트와 같은 볼륨을 연결할 수 있습니다.드라이브 용량이 커지면 쓰기 지연과 재구축 시간이 크게 늘어납니다(위에서 설명한 대로 RAID 5 및 RAID 6의 경우).더 큰 RAID N 집합을 더 작은 하위 집합으로 분할하여 선형 JBOD와 연결하면 쓰기 및 재구축 시간이 단축됩니다.[clarification needed]하드웨어 RAID 컨트롤러가 선형 JBOD를 RAID N과 중첩할 수 없는 경우, 하나 이상의 하드웨어 RAID 컨트롤러 내에서 생성된 별도의 RAID N 서브셋 볼륨과 함께 OS 레벨 소프트웨어 RAID를 사용하여 선형 JBOD를 달성할 수 있습니다.속도를 크게 향상시킬 뿐만 아니라, 선형 JBOD를 작은 디스크 세트로 시작할 수 있고 나중에 크기가 다른 디스크로 전체 세트를 확장할 수 있다는 장점도 있습니다(시간이 지나면 더 큰 디스크를 시장에서 사용할 수 있게 됩니다).재해 복구의 형태는 또 다른 장점이 있습니다(RAID N 서브셋에 장애가 발생하면 다른 RAID N 서브셋의 데이터가 손실되지 않으므로 복구 시간이 단축됩니다).[citation needed]

비표준수준

기본 번호가 매겨진 RAID 레벨 이외의 많은 구성이 가능하며, 많은 기업, 조직 및 그룹이 소규모 틈새 그룹의 전문화된 요구사항을 충족시키기 위해 자체적으로 비표준 구성을 만들어 왔습니다.이러한 구성은 다음과 같습니다.

  • Linux MD RAID 10은 "근접" 레이아웃에서 드라이브가 2개인 표준 RAID 1과 드라이브가 4개인 표준 RAID 1+0으로 기본 설정되는 일반 RAID 드라이버를 제공합니다. 그러나 홀수를 포함하여 드라이브 수는 얼마든지 포함할 수 있습니다.MD RAID 10은 "멀리" 레이아웃을 통해 스트라이프와 미러링을 모두 실행할 수 있으며, 2개의 드라이브만 내장되어 있습니다.f2레이아웃, 스트라이프 읽기로 미러링을 실행하여 RAID 0의 읽기 성능을 제공합니다. Linux 소프트웨어 RAID에서 제공하는 일반 RAID 1은 읽기를 스트라이프하지 않지만 병렬로 읽기를 수행할 수 있습니다.[29][30][31]
  • Hadoop에는 단일 HDFS 파일에 블록의 스트라이프를 xoring하여 패리티 파일을 생성하는 RAID 시스템이 있습니다.[32]
  • 병렬 파일 시스템인 BeGFS는 내부 스트라이핑(파일 기반 RAID0와 비교) 및 복제(파일 기반 RAID10과 비교) 옵션을 통해 여러 서버의 처리량과 용량을 통합할 수 있으며, 일반적으로 기본 RAID를 기반으로 디스크 장애를 투명하게 처리합니다.
  • 디커스터드 RAID는 스토리지 서브시스템의 모든 디스크(약 수백 개)에 걸쳐 데이터의 이중(또는 그 이상) 복사본을 분산시키고, 몇 개의 디스크에 장애가 발생할 수 있을 만큼 충분한 여유 용량을 유지합니다.산란은 임의성의 외관을 제공하는 알고리즘을 기반으로 합니다.하나 이상의 디스크에 장애가 발생하면 누락된 복사본은 다시 임의로 해당 여유 용량으로 재구축됩니다.리빌드는 나머지 모든 디스크에서 그리고 모든 디스크로 재구축이 이루어지므로 기존 RAID보다 훨씬 더 빠르게 작동하여 스토리지 시스템의 클라이언트에 미치는 전반적인 영향을 줄입니다.

구현

여러 드라이브에 걸친 데이터 분산은 전용 컴퓨터 하드웨어 또는 소프트웨어로 관리할 수 있습니다.소프트웨어 솔루션은 운영 체제, 펌웨어 및 표준 드라이브 컨트롤러(이른바 "하드웨어 지원 소프트웨어 RAID")와 함께 제공되는 드라이버의 일부일 수도 있으며, 하드웨어 RAID 컨트롤러 내에 전체적으로 존재할 수도 있습니다.

하드웨어 기반

하드웨어 RAID 컨트롤러는 운영 체제가 부팅되기 전에 카드 BIOS 또는 Option ROM을 통해 구성할 수 있으며, 운영 체제가 부팅된 후에는 각 컨트롤러의 제조업체에서 전용 구성 유틸리티를 사용할 수 있습니다.일반적으로 유닉스의 ifconfig와 같은 일반적인 운영 체제 패러다임을 통해 전적으로 구성하고 서비스할 수 있는 이더넷용 네트워크 인터페이스 컨트롤러와는 달리, 각 RAID 컨트롤러의 각 제조업체는 일반적으로 각 운영 체제에 대해 고유한 소프트웨어 툴링을 제공합니다.지원하고, 공급업체에 대한 고정을 보장하며, 신뢰성 문제에 기여할 것으로 기대됩니다.[33]

예를 들어, FreeBSD에서 Adaptec RAID 컨트롤러의 구성에 액세스하려면 사용자가 Linux 호환성 계층을 활성화하고 Adaptec의 Linux 툴링을 사용해야 하므로 특히 장기적 관점에서 볼 때 설정의 안정성, 신뢰성 및 보안이 손상될 가능성이 있습니다.[34][33]

일부 다른 운영 체제는 RAID 컨트롤러와의 인터페이스를 위한 자체 일반 프레임워크를 구현했으며, RAID 볼륨 상태를 모니터링하고 LED 깜박임을 통해 드라이브를 쉽게 식별할 수 있는 도구를 제공합니다.카드 BIOS로 재부팅할 필요 없이 운영 체제 내에서 경보 관리 및 핫 스페어 디스크 지정 기능을 제공합니다.예를 들어, 이것은 OpenBSD가 2005년에 바이오(4) 의사 장치와 바이오ctl 유틸리티를 사용하여 수행한 접근 방식으로, 볼륨 상태를 제공하고 LED/경보/핫스페어 제어 및 상태 모니터링을 위한 센서(드라이브 센서 포함)를 허용했습니다.[35] 이 접근 방식은 이후 2007년 NetBSD에 의해 채택 및 확장되었습니다.[36]

소프트웨어 기반

소프트웨어 RAID 구현은 많은 최신 운영 체제에서 제공됩니다.소프트웨어 RAID는 다음과 같이 구현할 수 있습니다.

  • 여러 디바이스를 추상화하여 단일 가상 디바이스(예: Linux 커널md 및 OpenB)를 제공하는 계층SD의 소프트 레이드)
  • 보다 일반적인 논리 볼륨 관리자(Veritas 또는 LVM과 같은 대부분의 서버급 운영 체제에서 제공)
  • 파일 시스템의 구성 요소(ZFS, Spectrum Scale 또는 Btrfs 등)
  • 모든 파일 시스템 위에 위치하며 사용자 데이터(예: RAID-F)[37]에 대한 패리티 보호를 제공하는 계층

일부 고급 파일 시스템은 타사 논리 볼륨 관리자의 도움 없이 여러 스토리지 장치에 걸쳐 직접 데이터를 구성하도록 설계되었습니다.

  • ZFS는 RAID 0, RAID 1, RAID 5(RAID-Z1) 싱글 패리티, RAID 6(RAID-Z2) 더블 패리티 및 RAID 7이라고도 하는 트리플 패리티 버전(RAID-Z3)과 동등한 기능을 지원합니다.[38] 항상 최상위 vdevs에 스트라이프되므로 1+0, 5+0과 동등한 기능을 지원합니다.6+0 중첩 RAID 레벨(스트라이프 트리플 패리티 세트도 포함)을 제공하지만 다른 중첩 조합은 제공하지 않습니다.ZFS는 SolarisIllumos의 기본 파일 시스템이며 FreeBSD 및 Linux에서도 사용할 수 있습니다.오픈 소스 ZFS 구현은 OpenZ 하에서 적극적으로 개발됩니다.FS 우산 프로젝트.[39][40][41][42][43]
  • 처음에 IBM이 미디어 스트리밍 및 확장 가능한 분석을 위해 개발한 Spectrum Scale은 최대 n+3까지 디커스터된 RAID 보호 체계를 지원합니다.특히 데이터 청크가 n+0 이중화에 도달할 때까지 백그라운드에서 영향이 적은 상태로 실행되는 동적 재구축 우선 순위입니다. 이 경우 이 청크는 n+1 이상으로 빠르게 재구축됩니다.또한 스펙트럼 스케일(Spectrum Scale)은 메트로 거리 RAID 1을 지원합니다.[44]
  • Btrfs는 RAID 0, RAID 1 및 RAID 10을 지원합니다(RAID 5 및 6은 개발 중임).[45][46]
  • XFS는 원래 여러 물리적 스토리지 장치의 연결, 미러링 및 스트라이핑을 지원하는 통합 볼륨 관리자를 제공하도록 설계되었습니다.[47]그러나 리눅스 커널에서 XFS를 구현하면 통합 볼륨 관리자가 부족합니다.[48]

많은 운영 체제는 다음과 같은 RAID 구현을 제공합니다.

  • 휴렛패커드의 OpenVMS 운영체제는 RAID 1을 지원합니다.미러링된 Disk는 "섀도 세트"라고 불리며 재해 복구를 지원하기 위해 서로 다른 위치에 있을 수 있습니다.[49]
  • 애플의 macOSmacOS 서버는 RAID 0, RAID 1, RAID 1+0을 지원합니다.[50][51]
  • FreeBSDGEOM 모듈과 ccd를 통해 RAID 0, RAID 1, RAID 3, RAID 5를 지원합니다.[52][53][54]
  • Linuxmd는 RAID 0, RAID 1, RAID 4, RAID 5, RAID 6 및 모든 네스팅을 지원합니다.[55]특정 재구성/크기 조정/확장 작업도 지원됩니다.[56]
  • Microsoft Windows는 다양한 소프트웨어 구현을 사용하여 RAID 0, RAID 1 및 RAID 5를 지원합니다.Windows 2000에 도입된 논리적 디스크 관리자는 동적 디스크를 사용하여 RAID 0, RAID 1 및 RAID 5 볼륨을 생성할 수 있도록 허용하지만, Windows 8이 출시되기 전까지는 Windows의 프로페셔널 버전과 서버 버전에만 국한되었습니다.[57][58]Windows XP는 RAID 0, 1, 5에 대한 지원을 해제하도록 수정할 수 있습니다.[59]Windows 8 Windows Server 2012에서는 스토리지 공간(Storage Spaces)이라는 RAID와 유사한 기능을 도입하여 폴더 단위로 미러링, 패리티 또는 중복 없음을 지정할 수 있습니다.이러한 옵션은 RAID 1 및 RAID 5와 유사하지만 추상화 수준이 더 높습니다.[60]
  • NetBSD는 RAID 프레임이라는 소프트웨어 구현을 통해 RAID 0, 1, 4, 5를 지원합니다.[61]
  • OpenBSD는 softraid라는 소프트웨어 구현을 통해 RAID 0, 1, 5를 지원합니다.[62]

부팅 드라이브에 장애가 발생할 경우 시스템이 충분히 정교해야 나머지 드라이브나 드라이브에서 부팅할 수 있습니다.예를 들어 디스크가 RAID 1(미러링 드라이브)로 구성된 컴퓨터를 예로 들 수 있습니다. 어레이의 첫 번째 드라이브에 장애가 발생할 경우 1단계 부트 로더가 두 번째 드라이브에서 폴백으로 로드하기에 충분하지 않을 수 있습니다.FreeB용 2단계 부트로더SD는 이러한 배열로부터 커널을 로드할 수 있습니다.[63]

펌웨어 및 드라이버 기반

전용 펌웨어 및 드라이버를 통해 RAID 기능을 제공하는 SATA 3.0 컨트롤러

소프트웨어로 구현된 RAID는 시스템의 부팅 프로세스와 항상 호환되는 것은 아니며, 데스크톱 버전의 Windows에서는 일반적으로 실행 불가능합니다.그러나 하드웨어 RAID 컨트롤러는 값이 비싸고 독점적입니다.이러한 공백을 메우기 위해 전용 RAID 컨트롤러 칩이 아닌 전용 펌웨어와 드라이버가 포함된 표준 드라이브 컨트롤러 칩이 도입된 저렴한 "RAID 컨트롤러"는 저렴한 가격에 출시되었습니다.초기 부팅 시 RAID는 펌웨어에 의해 구현되며, 운영 체제가 보다 완벽하게 로드되면 드라이버가 제어권을 넘겨받습니다.따라서 호스트 운영 체제에서 드라이버 지원을 사용할 수 없는 경우에는 이러한 컨트롤러가 작동하지 않을 수 있습니다.[64]를 들면 Intel Rapid Storage Technology는 많은 소비자 수준의 마더보드에 구현되어 있습니다.[65][66]

일부 최소한의 하드웨어 지원이 수반되기 때문에 이 구현을 "하드웨어 지원 소프트웨어 RAID",[67][68][69] "하이브리드 모델" RAID 또는 [69]"가짜 RAID"라고도 합니다.[70] RAID 5가 지원되는 경우 하드웨어에서 하드웨어 XOR 가속기를 제공할 수 있습니다.순수 소프트웨어 RAID에 비해 이 모델의 장점은 이중화 모드를 사용하는 경우 운영 체제의 드라이버가 교체되기 전이라도 부팅 과정에서 (펌웨어로 인한) 장애로부터 부팅 드라이브를 보호할 수 있다는 점입니다.[69]

무결성

데이터 스크러빙(일부 환경에서는 패트롤 리드라고 함)은 어레이의 모든 블록(다른 방식으로는 액세스되지 않은 블록을 포함)을 RAID 컨트롤러가 주기적으로 읽고 확인하는 작업을 포함합니다.사용 전에 불량 블록을 탐지합니다.[71]데이터 스크러빙은 어레이의 각 스토리지 장치에서 불량 블록을 검사할 뿐만 아니라 어레이의 이중화 기능을 사용하여 단일 드라이브의 불량 블록을 복구하고 복구된 데이터를 드라이브의 다른 곳에 있는 예비 블록에 재할당합니다.[72]

RAID 컨트롤러는 드라이브가 8초 정도 응답하지 않는 경우 구성 요소 드라이브를 "드롭"(즉, 구성 요소 드라이브에 장애가 발생했다고 가정)하도록 구성되는 경우가 많습니다. 이로 인해 드라이브가 내부 오류 복구 절차를 완료하기에 충분한 시간이 주어지지 않았기 때문에 어레이 컨트롤러가 양호한 드라이브를 드롭할 수 있습니다.따라서 소비자용 드라이브를 RAID와 함께 사용하는 것은 위험할 수 있으며, 이른바 "엔터프라이즈 클래스" 드라이브는 이러한 오류 복구 시간을 제한하여 위험을 줄입니다.[citation needed]웨스턴 디지털의 데스크톱 드라이브는 특정한 수정 사항을 가지고 있었습니다.WDTLER.exe라는 유틸리티로 인해 드라이브의 오류 복구 시간이 제한되었습니다.이 유틸리티는 TLER(time limited error recovery)를 활성화하여 오류 복구 시간을 7초로 제한했습니다.2009년 9월경 Western Digital은 데스크톱 드라이브(Caviar Black 제품군 등)에서 이 기능을 사용하지 않도록 설정하여 RAID 구성에 사용하기에 적합하지 않았습니다.[73]그러나 Western Digital 엔터프라이즈급 드라이브는 TLER가 활성화된 상태로 공장에서 출고됩니다.씨게이트, 삼성, 히타치 등도 비슷한 기술을 사용하고 있습니다.RAID 이외의 용도에서는 변경할 수 없는 짧은 오류 복구 시간을 가진 엔터프라이즈급 드라이브가 데스크탑 드라이브보다 적합하지 않습니다.[73]2010년 말, Smartmontools 프로그램은 ATA Error Recovery Control의 구성을 지원하기 시작했으며, 이를 통해 RAID 설정에 사용할 많은 데스크탑급 하드 드라이브를 구성할 수 있게 되었습니다.[73]

RAID는 물리적 드라이브 장애를 방지할 수 있지만 데이터는 여전히 운영자, 소프트웨어, 하드웨어 및 바이러스 파괴에 노출되어 있습니다.많은 연구에서 오퍼레이터 장애를 오작동의 일반적인 원인으로 꼽고 있습니다.[74][75] 예를 들어 서버 운영자가 결함이 있는 RAID에서 잘못된 드라이브를 교체하고 프로세스 중에 시스템을 일시적으로 비활성화하는 경우도 있습니다.[76]

어레이는 복구 용량을 초과하는 치명적인 장애로 인해 전체 어레이가 화재, 자연 재해 및 인력에 의한 물리적 손상의 위험에 노출될 수 있지만 백업은 외부에 저장할 수 있습니다.어레이는 데이터 손실 없이 항상 새로운 다른 컨트롤러로 마이그레이션할 수 있는 것은 아니기 때문에 컨트롤러 장애에도 취약합니다.[77]

약점

상관 고장

실제로는 드라이브가 동일한 연식(마모가 유사한 경우)을 가지므로 동일한 환경에 종속되는 경우가 많습니다.많은 드라이브 고장은 기계적인 문제(이전 드라이브에서는 더 많이 발생할 수 있음)로 인해 발생하기 때문에, 이는 드라이브 간의 동일한 고장률과 독립적이라는 가정에 위배됩니다. 고장은 사실상 통계적으로 상관관계가 있습니다.[11]실제로는 첫 번째 고장이 복구되기 전에 두 번째 고장이 발생할 가능성이 랜덤 고장보다 높습니다.약 100,000개의 드라이브를 대상으로 한 연구에서, 동일한 클러스터에 있는 두 개의 드라이브가 1시간 내에 고장날 확률이 지수 통계 분포에 의해 예측된 것보다 4배 더 컸습니다. 지수 통계 분포는 일정한 평균 속도로 이벤트가 연속적이고 독립적으로 발생하는 프로세스를 특징짓는 것입니다.동일한 10시간 동안 두 번의 고장이 발생할 확률은 지수 분포에서 예측한 것보다 두 배나 컸습니다.[78]

재구축 중에 복구할 수 없는 읽기 오류 발생

섹터 읽기 실패(잠재 섹터 오류(LSE)라고도 함)로 복구할 수 없는 읽기 오류(URE)가 있습니다.관련 미디어 평가 척도인 복구 불가능 비트 오류(UBE) 비율은 일반적으로 엔터프라이즈급 드라이브(SCSI, FC, SAS 또는 SATA)의 경우 10분의15[disputed ] 1비트 미만이 보장되고 데스크톱급 드라이브(IDE/ATA/PATA 또는 SATA)의 경우 10분의14[disputed ] 1비트 미만이 보장됩니다.드라이브 용량이 증가하고 RAID 5 인스턴스가 커지면 RAID 세트를 재구축하는 동안 하나 이상의 나머지 드라이브에서 이러한 오류가 발생할 가능성이 높기 때문에 최대 오류율은 성공적인 복구를 보장하기에 충분하지 못합니다.[11][obsolete source][79]재구성할 때 RAID 5와 같은 패리티 기반 체계는 URE가 발생하는 섹터뿐만 아니라 패리티 계산을 위해 해당 섹터를 사용하는 재구성된 블록에도 영향을 미치기 때문에 특히 URE의 영향을 받기 쉽습니다.[80]

RAID 6과 같은 이중 보호 패리티 기반 체계는 이중 드라이브 장애를 허용하는 이중화를 제공함으로써 이 문제를 해결하려고 합니다. 단점으로는 단일 쓰기 작업 중에 스토리지 미디어에 액세스해야 하는 횟수인 쓰기 벌칙이 증가합니다.[81]RAID 1 및 RAID 10과 같이 드라이브 대 드라이브 방식으로 데이터를 복제(미러링)[24][82]하는 방식은 패리티 계산이나 스트라이프 세트 간 미러링을 사용하는 방식보다 URE로 인한 위험이 낮습니다.배경 프로세스로서 데이터 스크러빙을 사용하여 URE를 탐지하고 복구할 수 있으므로 RAID 재구축 중에 URE가 발생하고 이중 드라이브 장애가 발생할 위험을 효과적으로 줄일 수 있습니다.URE의 복구에는 영향을 받는 기본 디스크 섹터를 재매핑하는 작업이 포함되며, 드라이브의 섹터 재매핑 풀을 사용하여 백그라운드 스크러빙 중에 URE가 감지되는 경우 완전 작동 RAID 세트에 의해 제공되는 데이터 중복성을 통해 누락된 데이터를 재구성하고 재매핑된 섹터에 다시 기록할 수 있습니다.[83][84]

재구축 시간 및 실패 확률 증가

드라이브 용량은 전송 속도보다 훨씬 빠른 속도로 증가했으며, 오류율은 그에 비해 약간 떨어졌을 뿐입니다.따라서 대용량 드라이브의 경우 재구축하는 데 며칠이 아니더라도 몇 시간이 걸릴 수 있으며, 이 시간 동안 다른 드라이브에 장애가 발생하거나 인식되지 않는 읽기 오류가 발생할 수 있습니다.전체 어레이가 여전히 감소된 용량으로 작동 중인 경우에도 재구축 시간이 제한됩니다.[85]중복 드라이브가 하나만 있는 어레이(RAID 레벨 3, 4, 5 및 "클래식" 2-드라이브 RAID 1에 적용됨)를 고려할 때, 두 번째 드라이브 장애는 어레이의 완전한 장애를 야기합니다.개별 드라이브의 평균 고장 시간(MTBF)이 시간이 지남에 따라 증가했지만, 이러한 증가는 드라이브의 증가된 스토리지 용량에 보조를 맞추지 못하고 있습니다.단일 드라이브 장애 후 어레이를 재구축하는 시간과 재구축 중에 두 번째 장애가 발생할 가능성이 시간이 지남에 따라 증가했습니다.[22]

일부 논평가들은 RAID 6가 문제를 좀 더 멀리 날려버릴 뿐이기 때문에 이 점에서 "밴드 보조 장치"에 불과하다고 선언했습니다.[22]그러나 Berriman 등의 2006년 NetApp 연구에 따르면 일반 드라이브를 사용하는 경우에도 RAID 6을 제대로 구현할 경우 장애 발생 가능성이 약 3,800배(RAID 5에 비해) 감소하는 것으로 나타났습니다.[86][citation not found]그럼에도 불구하고, 현재 관찰되고 있는 기술 동향이 변하지 않는다면, 2019년에는 RAID 6 어레이가 2010년 RAID 5와 동일한 장애 가능성을 갖게 될 것입니다.[86][unreliable source?]

RAID 10과 같은 미러링 방식은 하나의 장애가 발생한 드라이브의 복사본을 필요로 하기 때문에 제한된 복구 시간을 갖지만, RAID 6과 같은 패리티 방식은 어레이 세트에 있는 드라이브의 모든 블록의 복사본을 필요로 합니다.이와 같이 많은 재구축 시간 동안 추가적인 드라이브 장애에 대한 복원력을 향상시키기 위한 하나의 방법으로 트리플 패리티 계획 또는 트리플 미러링이 제시되고 있습니다.[86][unreliable source?]

원자성

시스템 충돌이나 기타 쓰기 작업 중단으로 인해 쓰기 프로세스의 비원자성으로 인해 패리티가 데이터와 일치하지 않는 상태가 발생할 수 있습니다. 따라서 Disk 장애의 경우 복구에 패리티를 사용할 수 없습니다.이를 일반적으로 쓰기 구멍(write hole)이라고 하는데, 오래된 RAID와 로우엔드 RAID에서 알려진 데이터 손상 문제로 디스크에 쓰기가 중단되어 발생합니다.[87]쓰기 구멍은 다음과 같은 몇 가지 방법으로 해결할 수 있습니다.

  • 미리 쓰기 기록.
    • 하드웨어 RAID 시스템은 이를 위해 온보드 비휘발성 캐시를 사용합니다.[88]
    • 이를 위해 mdadm은 전용 저널링 장치(일반적으로 SSDNVM이 선호됨)를 사용할 수 있습니다.[89][90]
  • write intent logging. mdadm은 "write-intent-bitmap"을 사용합니다.시작할 때 불완전하게 작성된 것으로 표시된 위치를 찾으면 다시 동기화합니다.쓰기 구멍을 닫지만 전체 WAL과 달리 전송 중인 데이터의 손실을 방지하지는 못합니다.[88][91]
  • partial parity. mdadm은 수정된 청크와 결합하면 원래의 패리티를 복구하는 "partial parity"를 저장할 수 있습니다.이렇게 하면 쓰기 구멍이 닫히지만 전송 중인 데이터의 손실을 방지하지는 못합니다.[92]
  • 역동적인 스트라이프 사이즈.RAID-Z는 각 블록이 고유의 스트라이프(stripe)임을 보장하여 모든 블록이 완성됩니다.COW 트랜잭션 시맨틱스는 스트라이프와 연관된 메타데이터를 보호합니다.[93]단점은 IO 조각화입니다.[94]
  • 사용된 스트라이프를 덮어쓰지 않도록 합니다. 복사 가비지 수집기를 사용하는 bcachefs는 이 옵션을 선택합니다.COW는 스트라이프 데이터에 대한 참조를 다시 보호합니다.[94]

쓰기 구멍은 트랜잭션 기능을 사용하지 않는 중복 스토리지 시스템의 경우 약간 이해되고 거의 언급되지 않는 오류 모드입니다.데이터베이스 연구가 짐 그레이는 관계형 데이터베이스 상용화 초기에 "Update is a Poison Apple"이라고 썼습니다.[95]

쓰기 캐시 신뢰성

쓰기-캐시 신뢰성(write-cache reliability)에 대한 우려가 있는데, 특히 쓰기-백 캐시(write-back cache)가 장착된 장치(write-cache reliability)에 대한 우려가 있습니다.시스템에 전력 손실이나 기타 중대한 장애가 발생하면 비휘발성 스토리지에 도달하기 전에 캐시에서 데이터가 되돌릴 수 없게 손실될 수 있습니다.이러한 이유로 쓰기-백 캐시 구현에는 중복 배터리 전원과 같은 메커니즘이 포함되어 시스템 장애(전원 장애 포함) 전반에 걸쳐 캐시 내용을 보존하고 시스템 재시작 시 캐시를 플러시할 수 있습니다.[96]

참고 항목

참고문헌

  1. ^ a b c Patterson, David; Gibson, Garth A.; Katz, Randy (1988). A Case for Redundant Arrays of Inexpensive Disks (RAID) (PDF). SIGMOD Conferences. Retrieved 2006-12-31.
  2. ^ a b "원래는 Redundant Array of Infensive Disks로 불리던 RAID라는 용어는 1980년대 후반에 캘리포니아 대학교 버클리 캠퍼스의 Patterson, Gibson, Katz에 의해 처음 발표되었습니다. (이후 RAID Advisory Board는 Infensive라는 용어를 Independent로 대체했습니다.)" "스토리지 영역 네트워크 기본, Meeta Gupta, Cisco Press, ISBN 978-1-58705-065-7, 부록 A.
  3. ^ a b Katz, Randy H. (October 2010). "RAID: A Personal Recollection of How Storage Became a System" (PDF). eecs.umich.edu. IEEE Computer Society. Retrieved 2015-01-18. We were not the first to think of the idea of replacing what Patterson described as a slow large expensive disk (SLED) with an array of inexpensive disks. For example, the concept of disk mirroring, pioneered by Tandem, was well known, and some storage products had already been constructed around arrays of small disks.
  4. ^ Hayes, Frank (November 17, 2003). "The Story So Far". Computerworld. Retrieved November 18, 2016. Patterson recalled the beginnings of his RAID project in 1987. [...] 1988: David A. Patterson leads a team that defines RAID standards for improved performance, reliability and scalability.
  5. ^ 미국 특허 4092732, Norman Ken Ouchi, "실패한 메모리 유닛에 저장된 데이터를 복구하기 위한 시스템", 1978-05-30 발표
  6. ^ "HSC50/70 Hardware Technical Manual" (PDF). DEC. July 1986. pp. 29, 32. Retrieved 2014-01-03.
  7. ^ 미국 특허 4761785, Brian E. Clark 등, "스토리지 액세스를 향상시키기 위한 패리티 확산", 1988-08-02 발행
  8. ^ 미국 특허 4899342, David Potter et al., "메모리의 다중 단위 어레이의 동작 방법장치", 1990-02-06 공개, 또한 연결 기계(1988) 참조
  9. ^ "IBM 7030 Data Processing System: Reference Manual" (PDF). bitsavers.trailing-edge.com. IBM. 1960. p. 157. Retrieved 2015-01-17. Since a large number of bits are handled in parallel, it is practical to use error checking and correction (ECC) bits, and each 39 bit byte is composed of 32 data bits and seven ECC bits. The ECC bits accompany all data transferred to or from the high-speed disks, and, on reading, are used to correct a single bit error in a byte and detect double and most multiple errors in a byte.
  10. ^ "IBM Stretch (aka IBM 7030 Data Processing System)". brouhaha.com. 2009-06-18. Retrieved 2015-01-17. A typical IBM 7030 Data Processing System might have been comprised of the following units: [...] IBM 353 Disk Storage Unit – similar to IBM 1301 Disk File, but much faster. 2,097,152 (2^21) 72-bit words (64 data bits and 8 ECC bits), 125,000 words per second
  11. ^ a b c d e f g h i Chen, Peter; Lee, Edward; Gibson, Garth; Katz, Randy; Patterson, David (1994). "RAID: High-Performance, Reliable Secondary Storage". ACM Computing Surveys. 26 (2): 145–185. CiteSeerX 10.1.1.41.3889. doi:10.1145/176979.176981. S2CID 207178693.
  12. ^ Donald, L. (2003). MCSA/MCSE 2006 JumpStart Computer and Network Basics (2nd ed.). Glasgow: SYBEX.
  13. ^ Howe, Denis (ed.). Redundant Arrays of Independent Disks from FOLDOC. Retrieved 2011-11-10. {{cite book}}: work=무시됨(도움말)
  14. ^ 도킨스, 빌, 존스, 아놀드"Common RAID Disk Data Format Specification" Wayback Machine [Storage Networking Industry Association] Colorado Springs, 2006년 7월 28일에 아카이브됨2011년 2월 22일 회수.
  15. ^ "Adaptec Hybrid RAID Solutions" (PDF). Adaptec.com. Adaptec. 2012. Retrieved 2013-09-07.
  16. ^ "Common RAID Disk Drive Format (DDF) standard". SNIA.org. SNIA. Retrieved 2012-08-26.
  17. ^ "SNIA Dictionary". SNIA.org. SNIA. Retrieved 2010-08-24.
  18. ^ Tanenbaum, Andrew S. Structured Computer Organization 6th ed. p. 95.
  19. ^ Hennessy, John; Patterson, David (2006). Computer Architecture: A Quantitative Approach, 4th ed. p. 362. ISBN 978-0123704900.
  20. ^ "FreeBSD Handbook, Chapter 20.5 GEOM: Modular Disk Transformation Framework". Retrieved 2012-12-20.
  21. ^ White, Jay; Lueth, Chris (May 2010). "RAID-DP:NetApp Implementation of Double Parity RAID for Data Protection. NetApp Technical Report TR-3298". Retrieved 2013-03-02.
  22. ^ a b c Newman, Henry (2009-09-17). "RAID's Days May Be Numbered". EnterpriseStorageForum. Retrieved 2010-09-07.
  23. ^ "Why RAID 6 stops working in 2019". ZDNet. 22 February 2010.
  24. ^ a b Lowe, Scott (2009-11-16). "How to protect yourself from RAID-related Unrecoverable Read Errors (UREs). Techrepublic". Retrieved 2012-12-01.
  25. ^ Vijayan, S.; Selvamani, S.; Vijayan, S (1995). "Dual-Crosshatch Disk Array: A Highly Reliable Hybrid-RAID Architecture". Proceedings of the 1995 International Conference on Parallel Processing: Volume 1. CRC Press. pp. I–146ff. ISBN 978-0-8493-2615-8 – via Google Books.
  26. ^ "Why is RAID 1+0 better than RAID 0+1?". aput.net. Retrieved 2016-05-23.
  27. ^ "RAID 10 Vs RAID 01 (RAID 1+0 Vs RAID 0+1) Explained with Diagram". www.thegeekstuff.com. Retrieved 2016-05-23.
  28. ^ "Comparing RAID 10 and RAID 01 SMB IT Journal". www.smbitjournal.com. 30 July 2014. Retrieved 2016-05-23.
  29. ^ a b 제프리 B.Layton: "Intro to Nested-RAID: RAID-01RAID-10",[Usurped!] Linux Magazine, 2011년 1월 6일
  30. ^ "Performance, Tools & General Bone-Headed Questions". tldp.org. Retrieved 2013-12-25.
  31. ^ "Main Page – Linux-raid". osdl.org. 2010-08-20. Archived from the original on 2008-07-05. Retrieved 2010-08-24.
  32. ^ "Hdfs Raid". Hadoopblog.blogspot.com. 2009-08-28. Retrieved 2010-08-24.
  33. ^ a b "3.8: "Hackers of the Lost RAID"". OpenBSD Release Songs. OpenBSD. 2005-11-01. Retrieved 2019-03-23.
  34. ^ Long, Scott; Adaptec, Inc (2000). "aac(4) — Adaptec AdvancedRAID Controller driver". BSD Cross Reference. FreeBSD., "aac -- Adaptec AdvancedRAID Controller driver". FreeBSD Manual Pages. FreeBSD.
  35. ^ Raadt, Theo de (2005-09-09). "RAID management support coming in OpenBSD 3.8". misc@ (Mailing list). OpenBSD.
  36. ^ Murenin, Constantine A. (2010-05-21). "1.1. Motivation; 4. Sensor Drivers; 7.1. NetBSD envsys / sysmon". OpenBSD Hardware Sensors — Environmental Monitoring and Fan Control (MMath thesis). University of Waterloo: UWSpace. hdl:10012/5234. Document ID: ab71498b6b1a60ff817b29d56997a418.
  37. ^ "RAID over File System". Retrieved 2014-07-22.
  38. ^ "ZFS Raidz Performance, Capacity and Integrity". calomel.org. Retrieved 26 June 2017.
  39. ^ "ZFS -illumos". illumos.org. 2014-09-15. Archived from the original on 2019-03-15. Retrieved 2016-05-23.
  40. ^ "Creating and Destroying ZFS Storage Pools – Oracle Solaris ZFS Administration Guide". Oracle Corporation. 2012-04-01. Retrieved 2014-07-27.
  41. ^ "20.2. The Z File System (ZFS)". freebsd.org. Archived from the original on 2014-07-03. Retrieved 2014-07-27.
  42. ^ "Double Parity RAID-Z (raidz2) (Solaris ZFS Administration Guide)". Oracle Corporation. Retrieved 2014-07-27.
  43. ^ "Triple Parity RAIDZ (raidz3) (Solaris ZFS Administration Guide)". Oracle Corporation. Retrieved 2014-07-27.
  44. ^ Deenadhayalan, Veera (2011). "General Parallel File System (GPFS) Native RAID" (PDF). UseNix.org. IBM. Retrieved 2014-09-28.
  45. ^ "Btrfs Wiki: Feature List". 2012-11-07. Retrieved 2012-11-16.
  46. ^ "Btrfs Wiki: Changelog". 2012-10-01. Retrieved 2012-11-14.
  47. ^ Trautman, Philip; Mostek, Jim. "Scalability and Performance in Modern File Systems". linux-xfs.sgi.com. Retrieved 2015-08-17.
  48. ^ "Linux RAID Setup – XFS". kernel.org. 2013-10-05. Retrieved 2015-08-17.
  49. ^ Hewlett Packard Enterprise. "HPE Support document - HPE Support Center". support.hpe.com.
  50. ^ "Mac OS X: How to combine RAID sets in Disk Utility". Retrieved 2010-01-04.
  51. ^ "Apple Mac OS X Server File Systems". Retrieved 2008-04-23.
  52. ^ "FreeBSD System Manager's Manual page for GEOM(8)". Retrieved 2009-03-19.
  53. ^ "freebsd-geom mailing list – new class / geom_raid5". 6 July 2006. Retrieved 2009-03-19.
  54. ^ "FreeBSD Kernel Interfaces Manual for CCD(4)". Retrieved 2009-03-19.
  55. ^ "The Software-RAID HowTo". Retrieved 2008-11-10.
  56. ^ "mdadm(8) – Linux man page". Linux.Die.net. Retrieved 2014-11-20.
  57. ^ "Windows Vista support for large-sector hard disk drives". Microsoft. 2007-05-29. Archived from the original on 2007-07-03. Retrieved 2007-10-08.
  58. ^ "You cannot select or format a hard disk partition when you try to install Windows Vista, Windows 7 or Windows Server 2008 R2". Microsoft. 14 September 2011. Archived from the original on 3 March 2011. Retrieved 17 December 2009.
  59. ^ "Using Windows XP to Make RAID 5 Happen". Tom's Hardware. 19 November 2004. Retrieved 24 August 2010.
  60. ^ Sinofsky, Steven. "Virtualizing storage for scale, resiliency, and efficiency". Microsoft.
  61. ^ Metzger, Perry (1999-05-12). "NetBSD 1.4 Release Announcement". NetBSD.org. The NetBSD Foundation. Retrieved 2013-01-30.
  62. ^ "OpenBSD softraid man page". OpenBSD.org. Retrieved 2018-02-03.
  63. ^ "FreeBSD Handbook". Chapter 19 GEOM: Modular Disk Transformation Framework. Retrieved 2009-03-19.
  64. ^ "SATA RAID FAQ". Ata.wiki.kernel.org. 2011-04-08. Retrieved 2012-08-26.
  65. ^ "Red Hat Enterprise Linux – Storage Administrator Guide – RAID Types". redhat.com.
  66. ^ Russel, Charlie; Crawford, Sharon; Edney, Andrew (2011). Working with Windows Small Business Server 2011 Essentials. O'Reilly Media, Inc. p. 90. ISBN 978-0-7356-5670-3 – via Google Books.
  67. ^ Block, Warren. "19.5. Software RAID Devices". freebsd.org. Retrieved 2014-07-27.
  68. ^ Krutz, Ronald L.; Conley, James (2007). Wiley Pathways Network Security Fundamentals. John Wiley & Sons. p. 422. ISBN 978-0-470-10192-6 – via Google Books.
  69. ^ a b c "Hardware RAID vs. Software RAID: Which Implementation is Best for my Application? Adaptec Whitepaper" (PDF). adaptec.com.
  70. ^ Smith, Gregory (2010). PostgreSQL 9.0: High Performance. Packt Publishing Ltd. p. 31. ISBN 978-1-84951-031-8 – via Google Books.
  71. ^ 울프 트로펜스, 볼프강 뮐러-프리트, 라이너 에르켄스, 라이너 볼라프카, 닐스 하우스타인.스토리지 네트워크 설명:Fibre Channel SAN, NAS, ISC, InfiniBand 및 FCoE의 기본 및 응용 프로그램.존 와일리 앤 선즈, 2009. p.39
  72. ^ Dell 컴퓨터, Dell PowerEdge RAID 컨트롤러용 백그라운드 패트롤 읽기, Drew Habas and John Sieber, Dell Power Solutions에서 재인쇄, 2006년 2월 http://www.dell.com/downloads/global/power/ps1q06-20050212-Habas.pdf
  73. ^ a b c "Error Recovery Control with Smartmontools". 2009. Archived from the original on September 28, 2011. Retrieved September 29, 2017.
  74. ^ Gray, Jim (Oct 1990). "A census of Tandem system availability between 1985 and 1990" (PDF). IEEE Transactions on Reliability. IEEE. 39 (4): 409–418. doi:10.1109/24.58719. S2CID 2955525. Archived from the original (PDF) on 2019-02-20.
  75. ^ Murphy, Brendan; Gent, Ted (1995). "Measuring system and software reliability using an automated data collection process". Quality and Reliability Engineering International. 11 (5): 341–353. doi:10.1002/qre.4680110505.
  76. ^ 패터슨, D., 헤네시, J. (2009), 574.
  77. ^ "The RAID Migration Adventure". 10 July 2007. Retrieved 2010-03-10.
  78. ^ 실제 Disk 장애: 1,000,000시간의 MTTF가 귀사에 어떤 의미가 있습니까?비앙카 슈뢰더와 가스 A. 깁슨
  79. ^ Harris, Robin (2010-02-27). "Does RAID 6 stop working in 2019?". StorageMojo.com. TechnoQWAN. Retrieved 2013-12-17.
  80. ^ J.L. 하프너, V.디나드하얀, K. 라오, J.A.톰린."삭제 코드에서 손실된 데이터 복원을 위한 매트릭스 방법. USENIX Conference on File and Storage Technologies, 2005년 12월 13일 ~ 16일
  81. ^ Miller, Scott Alan (2016-01-05). "Understanding RAID Performance at Various Levels". Recovery Zone. StorageCraft. Retrieved 2016-07-22.
  82. ^ Kagel, Art S. (March 2, 2011). "RAID 5 versus RAID 10 (or even RAID 3, or RAID 4)". miracleas.com. Archived from the original on November 3, 2014. Retrieved October 30, 2014.
  83. ^ Baker, M.; Shah, M.; Rosenthal, D.S.H.; Roussopoulos, M.; Maniatis, P.; Giuli, T.; Bungale, P (April 2006). "A fresh look at the reliability of long-term digital storage". Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006. pp. 221–234. doi:10.1145/1217935.1217957. ISBN 1595933220. S2CID 7655425.
  84. ^ Bairavasundaram, L.N.; Goodson, G.R.; Pasupathy, S.; Schindler, J. (June 12–16, 2007). "An analysis of latent sector errors in disk drives" (PDF). Proceedings of the 2007 ACM SIGMETRICS international conference on Measurement and modeling of computer systems. pp. 289–300. doi:10.1145/1254882.1254917. ISBN 9781595936394. S2CID 14164251.
  85. ^ 패터슨, D., 헤네시, J. (2009)컴퓨터 조직과 디자인.뉴욕: 모건 카우프만 출판사. 604-605쪽.
  86. ^ a b c Leventhal, Adam (2009-12-01). "Triple-Parity RAID and Beyond. ACM Queue, Association for Computing Machinery". Retrieved 2012-11-30.
  87. ^ ""Write Hole" in RAID5, RAID6, RAID1, and Other Arrays". ZAR team. Retrieved 15 February 2012.
  88. ^ a b Danti, Gionatan. "write hole: which RAID levels are affected?". Server Fault.
  89. ^ "ANNOUNCE: mdadm 3.4 - A tool for managing md Soft RAID under Linux [LWN.net]". lwn.net.
  90. ^ "A journal for MD/RAID5 [LWN.net]". lwn.net.
  91. ^ md(4) Linux 프로그래머 설명서 – 특수 파일
  92. ^ "Partial Parity Log". The Linux Kernel documentation.
  93. ^ Bonwick, Jeff (2005-11-17). "RAID-Z". Jeff Bonwick's Blog. Oracle Blogs. Archived from the original on 2014-12-16. Retrieved 2015-02-01.
  94. ^ a b Overstreet, Kent (18 Dec 2021). "bcachefs: Principles of Operation" (PDF). Retrieved 10 May 2023.
  95. ^ 짐 그레이: 트랜잭션 개념: Wayback Machine(초청논문) VLDB 1981:144-154에서 2008-06-11 보관덕목한계
  96. ^ "Definition of write-back cache at SNIA dictionary". www.snia.org.

외부 링크