RAID

다른 뜻에 대해서는 RAID (정신 건강) 문서를 참고하십시오.

복수 배열 독립 디스크(Redundant Array of Independent Disks 혹은 Redundant Array of Inexpensive Disks) 또는 RAID는 데이터를 하나 이상의 보조 기억 장치에 기록하는 컴퓨터 데이터 저장에 대한 조직적인 접근 방식이다. 모든 데이터를 단일 하드 디스크 드라이브나 솔리드 스테이트 드라이브에 저장하는 대신, RAID는 두 개 이상의 장치를 하나의 디스크 어레이로 조정한다. 컴퓨터가 보조 기억 장치에 데이터를 기록할 때, RAID 시스템은 어레이 전반에 데이터를 분산시킨다. 이를 수행하는 방법에는 여러 가지가 있으며, 이러한 다양한 구성을 RAID 레벨이라고 부른다.

RAID 레벨은 제공하는 중복성의 양과 필요한 최소 드라이브 수뿐만 아니라, 상대적인 복잡성, 성능, 에너지 효율성, 결함 허용 범위 및 가용성에 따라 구분된다. RAID에서 사용되는 핵심 기술은 1970년대와 1980년대에 고안되었다. 읽기/쓰기 효율을 높이기 위한 데이터 스트라이핑과 데이터 복구를 위한 디스크 미러링 또는 패리티 드라이브가 그것이다. RAID 1을 제외한 모든 표준 RAID 레벨은 스토리지 가상화를 사용하여 여러 저장 장치를 하나의 논리적 스토리지 볼륨으로 추상화한다.

원래 RAID는 저렴한 디스크의 중복 어레이(redundant array of inexpensive disks)의 두문자어로 만들어졌다. 이후 RAID 자문위원회(1992년 설립)는 이 두문자어를 독립된 디스크의 중복 어레이(redundant array of independent disks)로 재정의했다. 데이터 스트라이핑과 중복된 온라인 디스크가 등장하기 전에는 고용량, 고가용성 데이터 저장을 위해 메인프레임에 연결된 소위 SLED("단일 대형 고가 디스크", single, large, expensive disks)에 의존하는 것이 일반적이었다. RAID는 메인프레임 컴퓨터뿐만 아니라 개인용 컴퓨터, 슈퍼컴퓨터, 파일 서버, 데이터베이스 서버, 웹 서버 및 네트워크 결합 스토리지 장치에 배포되었다.

역사

RAID라는 용어는 1987년 캘리포니아 대학교 버클리의 데이비드 패터슨, 가스 깁슨, 랜디 카츠에 의해 만들어졌다. 1988년 6월 SIGMOD 컨퍼런스에서 발표된 "저렴한 디스크의 중복 어레이(RAID)에 대한 사례"라는 논문에서, 그들은 당시 최고 성능의 메인프레임 컴퓨터 디스크 드라이브가 성장하는 개인용 컴퓨터 시장을 위해 제조된 (상대적으로 저렴한) 디스크 드라이브 어레이에 의해 성능이 추월될 수 있다고 주장했다. 하드 디스크 드라이브 오류 발생률은 사용되는 드라이브 수에 비례하여 증가하지만, 데이터를 둘 이상의 디스크에 자동으로 기록하도록 구성하여 컴퓨터 저장 시스템에 중복성을 구축한다면 어레이의 신뢰성은 단일 고용량 드라이브의 신뢰성을 훨씬 초과할 수 있다.

비록 당시에는 해당 용어를 사용하지 않았으나, 1988년 6월 논문에서 명명된 다섯 가지 레벨의 RAID 기술은 논문 발표 이전에도 다음과 같은 다양한 제품에서 사용되고 있었다.

업계 제조사들은 나중에 RAID 두문자어를 "독립된 디스크의 중복 어레이"를 의미하도록 재정의했다.

개요

RAID는 디스크 어레이 내의 각 저장 장치에 역할을 할당하여 보조 기억 장치를 모듈화한다. 어레이의 RAID 레벨은 이러한 구성 장치들의 역할과 관계에 의해 정의된다. 일부 RAID 레벨은 패리티 데이터를 사용하여 결함 허용 범위를 높인다. 대부분의 패리티 데이터는 XOR을 사용하여 계산되지만, RAID 6는 특정 갈루아 필드에서의 덧셈과 곱셈 또는 리드-솔로몬 오류 정정을 사용한다.

RAID는 또한 전체 SSD 시스템의 비용 부담 없이 솔리드 스테이트 드라이브(SSD)를 사용하여 데이터 보안을 제공할 수 있다. 예를 들어, 빠른 SSD를 느린 기계식 하드 디스크 드라이브와 미러링할 수 있다. 이 구성이 상당한 속도 이점을 제공하려면 모든 읽기 작업에 빠른 SSD를 사용하는 적절한 컨트롤러가 필요하다. 아답텍은 이를 "하이브리드 RAID"라고 부른다.

표준 레벨

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

원래 RAID에는 5가지 표준 레벨이 있었지만, 여러 중첩된 레벨과 많은 비표준 레벨(대부분 독점 소프트웨어)을 포함하여 많은 변형이 진화했다. RAID 레벨과 관련 데이터 형식은 스토리지 네트워킹 산업 협회(SNIA)의 공통 RAID 디스크 드라이브 형식(DDF) 표준으로 표준화되어 있다.

반면, 파일을 순차적으로 저장하는 스팬 볼륨은 고장 난 드라이브에 저장된 데이터는 잃지만 나머지 드라이브에 저장된 데이터는 보존한다. 그러나 드라이브 고장 후 파일을 복구하는 것은 어려울 수 있으며 종종 파일 시스템의 세부 사항에 따라 달라진다. 어쨌든 고장 난 드라이브에 걸쳐 있거나 그 드라이브에서 시작/종료되는 파일은 영구적으로 손실된다.
반대로 RAID 0의 장점은 스팬 볼륨과 달리 읽기 및 쓰기가 병행으로 수행되기 때문에 모든 파일에 대한 읽기 및 쓰기 작업의 처리량이 드라이브 수만큼 배가된다는 것이다. 대가는 드라이브 고장에 대한 취약성 증가이다. RAID 0 설정에서 드라이브 하나가 고장 나면 전체 볼륨이 손실되므로, 볼륨의 평균 고장률은 연결된 드라이브 수에 따라 상승한다. 이로 인해 RAID 0은 데이터 신뢰성이나 결함 허용이 필요한 시나리오에서는 좋지 않은 선택이 된다.

중첩 (하이브리드) RAID

원래 하이브리드 RAID라고 불렸던 기술로, 많은 스토리지 컨트롤러가 RAID 레벨을 중첩할 수 있도록 허용한다. RAID의 구성 요소는 개별 드라이브이거나 어레이 자체일 수 있다. 어레이는 1단계 이상 깊이 중첩되는 경우가 드물다.

최종 어레이는 최상위 어레이로 알려져 있다. 최상위 어레이가 RAID 0일 때(예: RAID 1+0 및 RAID 5+0), 대부분의 벤더는 "+"를 생략한다(각각 RAID 10 및 RAID 50이 됨).

비표준 레벨

기본적인 번호가 매겨진 RAID 레벨 외에도 많은 구성이 가능하며, 많은 회사, 조직 및 그룹이 소규모 틈새 그룹의 특수한 요구 사항을 충족하도록 설계된 자체 비표준 구성을 만들었다. 이러한 구성에는 다음이 포함된다.

구현

여러 드라이브에 걸친 데이터 분산은 전용 컴퓨터 하드웨어 또는 소프트웨어에 의해 관리될 수 있다. 소프트웨어 솔루션은 운영체제의 일부이거나, 표준 드라이브 컨트롤러와 함께 제공되는 펌웨어 및 드라이버의 일부이거나(소위 "하드웨어 지원 소프트웨어 RAID"), 하드웨어 RAID 컨트롤러 내에 완전히 상주할 수 있다.

하드웨어 기반

하드웨어 RAID 컨트롤러는 운영체제가 부팅되기 전에 카드 바이오스 또는 옵션 ROM을 통해 구성할 수 있으며, 운영체제가 부팅된 후에는 각 컨트롤러 제조사에서 제공하는 독점 구성 유틸리티를 사용할 수 있다. 유닉스의 Ifconfig처럼 일반적인 운영체제 패러다임을 통해 완전히 구성 및 서비스될 수 있고 타사 도구가 필요 없는 이더넷용 네트워크 인터페이스 컨트롤러와 달리, 각 RAID 컨트롤러 제조사는 일반적으로 지원하기로 결정한 각 운영체제에 대해 자체 독점 소프트웨어 도구를 제공하여 공급업체 종속을 유도하고 신뢰성 문제에 기여한다.

예를 들어 FreeBSD에서 아답텍 RAID 컨트롤러의 구성에 접근하려면 사용자가 리눅스 호환 레이어를 활성화하고 아답텍의 리눅스 도구를 사용해야 하므로, 특히 장기적인 관점에서 볼 때 설정의 안정성, 신뢰성 및 보안을 저해할 잠재적 위험이 있다.

일부 다른 운영체제는 모든 RAID 컨트롤러와 인터페이스하기 위한 자체 범용 프레임워크를 구현하고, RAID 볼륨 상태를 모니터링하는 도구뿐만 아니라 재부팅하여 카드 바이오스로 들어갈 필요 없이 운영체제 내에서 LED 깜박임을 통한 드라이브 식별, 알람 관리 및 핫 스페어 지정을 용이하게 하는 도구를 제공한다. 예를 들어, 이는 OpenBSD가 2005년에 bio(4) 의사 장치와 bioctl 유틸리티를 통해 취한 접근 방식이며, 이는 볼륨 상태를 제공하고 LED/알람/핫스페어 제어뿐만 아니라 상태 모니터링을 위한 센서(드라이브 센서 포함)를 허용한다. 이 접근 방식은 이후 2007년에 NetBSD에 의해서도 채택 및 확장되었다.

소프트웨어 기반

소프트웨어 RAID 구현은 많은 현대 운영체제에서 제공된다. 소프트웨어 RAID는 다음과 같이 구현될 수 있다.

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

ZFS RAID-Z1 구성의 5 TB 하드 디스크 3개. 이 어레이에는 GBIF, iDigBio 및 BioCASe 네트워크에 등록된 생물 다양성 데이터 기록의 가장 큰 종단적 아카이브 사본이 보관되어 있다.

다음을 포함하여 많은 운영체제가 RAID 구현을 제공한다.

부팅 드라이브가 고장 나면 시스템은 남은 드라이브에서 부팅할 수 있을 만큼 정교해야 한다. 예를 들어 디스크가 RAID 1(미러링된 드라이브)로 구성된 컴퓨터를 가정해 보자. 어레이의 첫 번째 드라이브가 고장 나면 1단계 부트로더는 장애 발생 시 두 번째 드라이브에서 2단계 부트로더를 로드하려 시도할 만큼 정교하지 않을 수 있다. FreeBSD의 2단계 부트로더는 이러한 어레이에서 커널을 로드할 수 있다.

펌웨어 및 드라이버 기반

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

소프트웨어로 구현된 RAID가 항상 시스템의 부팅 프로세스와 호환되는 것은 아니며, 일반적으로 데스크톱 버전 윈도우에서는 실용적이지 않다. 그러나 하드웨어 RAID 컨트롤러는 비싸고 독점적이다. 이 간극을 메우기 위해 전용 RAID 컨트롤러 칩이 포함되어 있지 않고 단순히 표준 드라이브 컨트롤러 칩이나 독점 펌웨어 및 드라이버가 포함된 칩셋 내장 RAID 기능을 사용하는 저가형 "RAID 컨트롤러"가 도입되었다. 초기 부팅 시에는 펌웨어에 의해 RAID가 구현되고, 운영체제가 완전히 로드되면 드라이버가 제어권을 인계받는다. 따라서 호스트 운영체제에 드라이버 지원이 제공되지 않으면 이러한 컨트롤러는 작동하지 않을 수 있다. 많은 소비자용 메인보드에 구현된 Intel Rapid Storage Technology가 그 예이다.

일부 최소한의 하드웨어 지원이 수반되기 때문에 이 구현은 "하드웨어 지원 소프트웨어 RAID", "하이브리드 모델" RAID, 또는 심지어 "가짜 RAID"(fake RAID)라고도 불린다. RAID 5가 지원되는 경우 하드웨어가 하드웨어 XOR 가속기를 제공할 수 있다. 순수 소프트웨어 RAID에 비해 이 모델의 장점은 중복성 모드를 사용하는 경우 운영체제의 드라이버가 인계받기 전의 부팅 프로세스 중에도 (펌웨어 덕분에) 부팅 드라이브가 고장으로부터 보호된다는 것이다.

무결성

데이터 스크러빙(일부 환경에서는 패트롤 리드라고 함)은 RAID 컨트롤러가 달리 액세스되지 않는 블록을 포함하여 어레이의 모든 블록을 주기적으로 읽고 확인하는 작업이다. 이를 통해 사용 전에 불량 블록을 감지한다. 데이터 스크러빙은 어레이의 각 저장 장치에서 불량 블록을 확인하지만, 어레이의 중복성을 사용하여 단일 드라이브의 불량 블록을 복구하고 복구된 데이터를 드라이브의 다른 곳에 있는 예비 블록에 재할당하기도 한다.

자주 RAID 컨트롤러는 드라이브가 8초 정도 응답하지 않으면 구성 드라이브를 "드롭"(즉, 구성 드라이브가 고장 났다고 가정)하도록 설정된다. 이로 인해 드라이브에 내부 오류 복구 절차를 완료할 충분한 시간이 주어지지 않아 컨트롤러가 정상적인 드라이브를 드롭할 수 있다. 따라서 소비자 시장용 드라이브를 RAID와 함께 사용하는 것은 위험할 수 있으며, 이른바 "기업용" 드라이브는 이러한 오류 복구 시간을 제한하여 위험을 줄인다. 웨스턴 디지털의 데스크톱 드라이브에는 과거에 특정 해결책이 있었다. WDTLER.exe라는 유틸리티는 드라이브의 오류 복구 시간을 제한했다. 이 유틸리티는 오류 복구 시간을 7초로 제한하는 TLER (시간 제한 오류 복구)를 활성화했다. 2009년 9월경 웨스턴 디지털은 데스크톱 드라이브(캐비어 블랙 라인 등)에서 이 기능을 비활성화하여 해당 드라이브를 RAID 구성에 부적합하게 만들었다. 그러나 웨스턴 디지털 기업용 드라이브는 TLER이 활성화된 상태로 공장에서 출하된다. 씨게이트, 삼성, 히타치에서도 유사한 기술이 사용된다. 비 RAID 용도의 경우, 변경할 수 없는 짧은 오류 복구 타임아웃을 가진 기업용 드라이브는 데스크톱 드라이브보다 적합하지 않다. 2010년 하반기에 Smartmontools 프로그램이 ATA 오류 복구 제어 구성을 지원하기 시작하면서, 이 도구를 통해 많은 데스크톱 급 하드 드라이브를 RAID 설정에서 사용할 수 있도록 구성할 수 있게 되었다.

RAID가 물리적 드라이브 고장으로부터 보호할 수는 있지만, 데이터는 여전히 작업자, 소프트웨어, 하드웨어 및 바이러스 파괴에 노출되어 있다. 많은 연구에서 서버 작업자가 결함이 있는 RAID에서 잘못된 드라이브를 교체하여 그 과정에서 (일시적으로라도) 시스템을 무력화하는 것과 같은 작업자 과실을 오작동의 흔한 원인으로 꼽는다.

어레이는 복구 능력을 초과하는 파괴적인 고장에 압도될 수 있으며, 전체 어레이가 화재, 자연재해 및 인위적 힘에 의한 물리적 손상 위험에 처할 수 있으나 백업은 오프사이트에 저장할 수 있다. 또한 데이터 손실 없이 새로운 다른 컨트롤러로 마이그레이션하는 것이 항상 가능한 것은 아니기 때문에 어레이는 컨트롤러 고장에도 취약하다.

약점

상관된 고장

실제로 드라이브들은 종종 수명이 같고(마모도가 비슷함) 동일한 환경에 처해 있다. 많은 드라이브 고장이 기계적 문제(오래된 드라이브에서 발생 가능성이 높음)로 인해 발생하므로, 이는 드라이브 간의 독립적이고 동일한 고장률 가정을 위반한다. 고장은 사실 통계적으로 상관되어 있다. 실제로 첫 번째 고장이 복구되기 전의 두 번째 고장 가능성(데이터 손실 유발)은 무작위 고장 가능성보다 높다. 최소 4개의 서로 다른 벤더로부터 수집된 약 100,000개의 드라이브를 대상으로 한 연구에서, 동일한 클러스터 내의 두 드라이브가 1시간 이내에 고장 날 확률은 사건이 일정한 평균 속도로 지속적이고 독립적으로 발생하는 과정을 특징짓는 지수 분포에 의해 예측된 것보다 4배 더 컸다. 동일한 10시간 기간 내에 두 번의 고장이 발생할 확률은 지수 분포에 의해 예측된 것보다 2배 더 컸다.

피할 수 있는 상관된 디스크 고장 모드는 배치 상관 디스크 고장으로, 어레이가 동일한 배치에서 생산된 디스크들로 구축되어 디스크들이 짧은 간격으로 연달아 고장 나는 경우이다. 이러한 사건은 드물지만 없는 일은 아니다. 표준 권장 사항은 서로 다른 배치의 디스크, 가능하면 서로 다른 제조사의 디스크를 섞어서 사용하는 것이다. 2021년 연구에 따르면 알리바바의 여러 SSD 기반 데이터 센터에서 배치 상관 고장 패턴이 나타났으며, 최소 2개의 SSD가 있는 노드의 88.6%가 동일한 모델을 사용하고 있었다.

상관된 디스크 고장의 또 다른 원인은 디스크가 아니라 상호 연결, CPU 또는 메모리에 있다. 지앙 외 연구진(2008)은 스토리지 시스템 고장의 20~55%만이 디스크 때문임을 보여주었다. 이러한 부품들 또한 일시적으로 집중되는 상관된 고장 모드를 가지고 있다.

재구축 중 복구 불가능한 읽기 오류

복구 불가능한 읽기 오류(URE)는 섹터 읽기 실패로 나타나며 잠재 섹터 오류(LSE)라고도 한다. 관련 미디어 평가 척도인 복구 불가능한 비트 오류(UBE) 속도는 일반적으로 기업용 드라이브(SCSI, FC, SAS 또는 SATA)의 경우 1015비트당 1비트 미만, 데스크톱 급 드라이브(IDE/ATA/PATA 또는 SATA)의 경우 1014비트당 1비트 미만으로 보장된다. 드라이브 용량의 증가와 대규모 RAID 5 인스턴스로 인해, RAID 세트 재구축 중에 나머지 드라이브 중 하나 이상에서 이러한 오류가 발생할 가능성이 높아졌기 때문에 최대 오류 속도만으로는 성공적인 복구를 보장하기에 불충분하게 되었다. 재구축 시 RAID 5와 같은 패리티 기반 방식은 URE가 발생한 섹터뿐만 아니라 패리티 계산을 위해 해당 섹터를 사용하는 재구성된 블록에도 영향을 미치므로 URE의 영향에 특히 취약하다.

RAID 6와 같은 이중 보호 패리티 기반 방식은 이중 드라이브 고장을 허용하는 중복성을 제공하여 이 문제를 해결하려고 시도한다. 단점으로는 이러한 방식은 단일 쓰기 작업 중에 저장 매체에 액세스해야 하는 횟수인 쓰기 페널티가 높다는 점이 있다. RAID 1 및 RAID 10과 같이 데이터를 드라이브 대 드라이브 방식으로 복제(미러링)하는 방식은 패리티 계산이나 스트라이프 세트 간 미러링을 사용하는 방식보다 URE로 인한 위험이 낮다. 백그라운드 프로세스로서의 데이터 스크러빙은 URE를 감지하고 복구하는 데 사용될 수 있으며, RAID 재구축 중에 URE가 발생하여 이중 드라이브 고장을 일으키는 위험을 효과적으로 줄여준다. URE의 복구에는 드라이브의 섹터 재매핑 풀을 활용하여 영향을 받은 기본 디스크 섹터를 재매핑하는 작업이 포함된다. 백그라운드 스크러빙 중에 URE가 감지되는 경우, 완전히 작동하는 RAID 세트가 제공하는 데이터 중복성을 통해 누락된 데이터를 재구성하고 재매핑된 섹터에 다시 기록할 수 있다.

재구축 시 URE 발생에 따른 RAID 구현의 동작도 중요하다. 일부 구현은 URE 발생 시 어레이에 "펑크"(puncture)를 내어 해당 섹터/블록을 접근 불가로 표시하고 재구축을 계속한다. 다른 구현은 단순히 절차를 중단할 수도 있다.

재구축 시간 증가 및 고장 확률

드라이브 용량은 전송 속도보다 훨씬 빠른 속도로 성장했으며, 이에 비해 오류 속도는 조금밖에 떨어지지 않았다. 따라서 대용량 드라이브는 재구축에 며칠은 아니더라도 몇 시간이 걸릴 수 있으며, 그동안 다른 드라이브가 고장 나거나 아직 감지되지 않은 읽기 오류가 나타날 수 있다. 전체 어레이가 여전히 축소된 용량으로 작동 중인 경우에도 재구축 시간은 제한된다. 하나의 중복 드라이브만 있는 어레이(RAID 레벨 3, 4, 5 및 "클래식" 2드라이브 RAID 1에 해당)의 경우, 두 번째 드라이브 고장은 어레이의 완전한 고장을 초래한다. 개별 드라이브의 평균 고장 간격(MTBF)은 시간이 지남에 따라 증가했지만, 이 증가는 드라이브의 저장 용량 증가 속도를 따라가지 못했다. 단일 드라이브 고장 후 어레이를 재구축하는 시간과 재구축 중 두 번째 고장이 발생할 가능성은 시간이 지남에 따라 증가했다.

일부 평론가들은 RAID 6가 문제를 조금 더 뒤로 미룰 뿐이라는 점에서 단지 "임시방편"일 뿐이라고 선언했다. 그러나 베리만 외 연구진의 2006년 넷앱 연구에 따르면, 범용 드라이브를 사용하더라도 제대로 된 RAID 6 구현의 경우 고장 확률은 (RAID 5에 비해) 약 3,800배 감소한다. 그럼에도 불구하고 현재 관찰되는 기술 추세가 변하지 않는다면, 2019년의 RAID 6 어레이는 2010년의 RAID 5 어레이와 동일한 고장 확률을 갖게 될 것이다.

RAID 10과 같은 미러링 방식은 어레이 세트 내 모든 드라이브의 블록 복사가 필요한 RAID 6와 같은 패리티 방식에 비해 단일 고장 드라이브의 복사만 필요하므로 복구 시간이 제한적이다. 이러한 긴 재구축 시간 동안 추가 드라이브 고장에 대한 복원력을 높이기 위한 한 가지 방법으로 삼중 패리티 방식이나 삼중 미러링이 제안되었다.

원자성

시스템 충돌이나 기타 쓰기 작업 중단은 쓰기 프로세스의 비원자성으로 인해 패리티가 데이터와 일치하지 않는 상태를 초래할 수 있으며, 이 경우 디스크 고장 시 복구에 패리티를 사용할 수 없다. 이를 흔히 쓰기 홀(write hole)이라고 하며, 이는 디스크로의 쓰기 배출(destaging) 중단으로 인해 발생하는 구형 및 저가형 RAID의 고질적인 데이터 손상 문제이다. 쓰기 홀은 몇 가지 방법으로 해결될 수 있다.

쓰기 홀은 트랜잭션 기능을 활용하지 않는 중복 저장 시스템에서 제대로 이해되지 않고 거의 언급되지 않는 고장 모드이다. 데이터베이스 연구원인 짐 그레이는 관계형 데이터베이스 상용화 초기 시절에 "제자리 업데이트는 독이 든 사과이다"(Update in Place is a Poison Apple)라고 썼다.

쓰기 캐시 신뢰성

쓰기 캐시 신뢰성, 특히 후행 쓰기 캐시(데이터가 비휘발성 저장 매체에 기록될 때가 아니라 캐시에 기록되는 즉시 기록된 것으로 보고하는 캐싱 시스템)가 장착된 장치와 관련된 우려가 있다. 시스템에 전원 손실이나 기타 중대한 고장이 발생하면 데이터가 비휘발성 저장소에 도달하기 전에 캐시에서 영구적으로 손실될 수 있다. 이러한 이유로 우수한 후행 쓰기 캐시 구현은 시스템 고장(전원 고장 포함) 시에도 캐시 내용을 보존하고 시스템 재시작 시 캐시를 비우기 위해 중복 배터리 전원과 같은 메커니즘을 포함한다.

같이 보기

각주

  1. 1 2 3 Patterson, David; Gibson, Garth A.; Katz, Randy (1988). 《A Case for Redundant Arrays of Inexpensive Disks (RAID)》 (PDF). SIGMOD Conferences. 2024년 1월 3일에 확인함.
  2. 1 2 3 Gupta, Meeta (2002). 〈RAID Technology and Fibre Channel Vendors〉. 《Storage Area Network Fundamentals》. Cisco Press Networking Technology. Indianapolis: Cisco Press. 261쪽. ISBN 978-1-58705-065-7. OCLC 52356423. 2026년 1월 27일에 확인함 – Google Books 경유. Originally referred to as Redundant Array of Inexpensive Disks, the term RAID was first published in the late 1980s by Patterson, Gibson, and Katz of the University of California at Berkeley. (The RAID Advisory Board has since substituted the term Inexpensive with Independent.)
  3. 1 2 Katz, Randy H. (October 2010). “RAID: A Personal Recollection of How Storage Became a System” (PDF). 《eecs.umich.edu》. IEEE Computer Society. 2015년 1월 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 (2003년 11월 17일). “The Story So Far”. 《Computerworld》. 2018년 11월 27일에 원본 문서에서 보존된 문서. 2016년 11월 18일에 확인함. 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. ↑ US patent 4092732, Norman Ken Ouchi, "System for Recovering Data Stored in Failed Memory Unit", issued 1978-05-30
  6. ↑ “HSC50/70 Hardware Technical Manual” (PDF). DEC. July 1986. 29, 32쪽. 2016년 3월 4일에 원본 문서 (PDF)에서 보존된 문서. 2014년 1월 3일에 확인함.
  7. ↑ US patent 4761785, Brian E. Clark, et al., "Parity Spreading to Enhance Storage Access", issued 1988-08-02
  8. ↑ US patent 4899342, David Potter et al., "Method and Apparatus for Operating Multi-Unit Array of Memories", issued 1990-02-06 See also The Connection Machine (1988)
  9. ↑ “IBM 7030 Data Processing System: Reference Manual” (PDF). 《bitsavers.trailing-edge.com》. IBM. 1960. 157쪽. 2015년 1월 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년 6월 18일. 2018년 1월 9일에 원본 문서에서 보존된 문서. 2015년 1월 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. 1 2 3 4 5 6 7 8 9 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》 2판. Glasgow: SYBEX.
  13. ↑ Howe, Denis (편집). “Redundant Arrays of Independent Disk”. 《Free On-line Dictionary of Computing (FOLDOC)》. Imperial College Department of Computing. 2011년 11월 10일에 확인함.
  14. ↑ Dawkins, Bill and Jones, Arnold. "Common RAID Disk Data Format Specification" 보관됨 2009-08-24 - 웨이백 머신 [Storage Networking Industry Association] Colorado Springs, 28 July 2006. Retrieved on 22 February 2011.
  15. ↑ “Adaptec Hybrid RAID Solutions” (PDF). 《Adaptec.com》. Adaptec. 2012. 2012년 11월 9일에 원본 문서 (PDF)에서 보존된 문서. 2013년 9월 7일에 확인함.
  16. ↑ “Common RAID Disk Drive Format (DDF) standard”. 《SNIA.org》. SNIA. 2012년 8월 26일에 확인함.
  17. ↑ “SNIA Dictionary”. 《SNIA.org》. SNIA. 2010년 1월 9일에 원본 문서에서 보존된 문서. 2010년 8월 24일에 확인함.
  18. ↑ Tanenbaum, Andrew S. 《Structured Computer Organization 6th ed.》. 95쪽.
  19. ↑ Hennessy, John; Patterson, David (2006). 《Computer Architecture: A Quantitative Approach, 4th ed》. Morgan Kaufmann. 362쪽. ISBN 978-0123704900.
  20. ↑ “FreeBSD Handbook, Chapter 20.5 GEOM: Modular Disk Transformation Framework”. 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”. 2013년 3월 2일에 확인함.
  22. 1 2 3 Newman, Henry (2009년 9월 17일). “RAID's Days May Be Numbered”. 《EnterpriseStorageForum》. 2010년 12월 6일에 원본 문서에서 보존된 문서. 2010년 9월 7일에 확인함.
  23. ↑ “Why RAID 6 stops working in 2019”. 《ZDNet》. 2010년 2월 22일. 2010년 8월 15일에 원본 문서에서 보존된 문서.
  24. 1 2 Lowe, Scott (2009년 11월 16일). “How to protect yourself from RAID-related Unrecoverable Read Errors (UREs). Techrepublic.”. 2012년 12월 1일에 확인함.
  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. I–146ff쪽. ISBN 978-0-8493-2615-8 – Google Books 경유.
  26. ↑ “Why is RAID 1+0 better than RAID 0+1?”. 《aput.net》. 2016년 5월 23일에 확인함.
  27. ↑ “RAID 10 Vs RAID 01 (RAID 1+0 Vs RAID 0+1) Explained with Diagram”. 《www.thegeekstuff.com》. 2016년 5월 23일에 확인함.
  28. ↑ “Comparing RAID 10 and RAID 01 | SMB IT Journal”. 《www.smbitjournal.com》. 2014년 7월 30일. 2016년 5월 23일에 확인함.
  29. 1 2 Jeffrey B. Layton: "Intro to Nested-RAID: RAID-01 and RAID-10", Linux Magazine, January 6, 2011
  30. ↑ “Performance, Tools & General Bone-Headed Questions”. tldp.org. 2013년 12월 25일에 확인함.
  31. ↑ “Main Page – Linux-raid”. osdl.org. 2010년 8월 20일. 2008년 7월 5일에 원본 문서에서 보존된 문서. 2010년 8월 24일에 확인함.
  32. ↑ “Hdfs Raid”. Hadoopblog.blogspot.com. 2009년 8월 28일. 2010년 8월 24일에 확인함.
  33. 1 2 “3.8: "Hackers of the Lost RAID"”. 《OpenBSD Release Songs》. OpenBSD. 2005년 11월 1일. 2019년 3월 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년 9월 9일). “RAID management support coming in OpenBSD 3.8” (메일링 리스트). 《misc@》 (OpenBSD).
  36. ↑ Murenin, Constantine A. (2010년 5월 21일). 〈1.1. Motivation; 4. Sensor Drivers; 7.1. NetBSD envsys / sysmon〉 (학위논문). 《OpenBSD Hardware Sensors — Environmental Monitoring and Fan Control.》. 워털루 대학교: UWSpace. hdl:10012/5234. Document ID: ab71498b6b1a60ff817b29d56997a418.
  37. ↑ “RAID over File System”. 2013년 11월 9일에 원본 문서에서 보존된 문서. 2014년 7월 22일에 확인함.
  38. ↑ “ZFS Raidz Performance, Capacity and Integrity”. 《calomel.org》. 2017년 6월 26일에 확인함.
  39. ↑ “ZFS -illumos”. illumos.org. 2014년 9월 15일. 2019년 3월 15일에 원본 문서에서 보존된 문서. 2016년 5월 23일에 확인함.
  40. ↑ “Creating and Destroying ZFS Storage Pools – Oracle Solaris ZFS Administration Guide”. Oracle Corporation. 2012년 4월 1일. 2014년 7월 27일에 확인함.
  41. ↑ “20.2. The Z File System (ZFS)”. 《freebsd.org》. 2014년 7월 3일에 원본 문서에서 보존된 문서. 2014년 7월 27일에 확인함.
  42. ↑ “Double Parity RAID-Z (raidz2) (Solaris ZFS Administration Guide)”. Oracle Corporation. 2014년 7월 27일에 확인함.
  43. ↑ “Triple Parity RAIDZ (raidz3) (Solaris ZFS Administration Guide)”. Oracle Corporation. 2014년 7월 27일에 확인함.
  44. ↑ Deenadhayalan, Veera (2011). “General Parallel File System (GPFS) Native RAID” (PDF). 《UseNix.org》. IBM. 2014년 9월 28일에 확인함.
  45. ↑ “Btrfs Wiki: Feature List”. 2012년 11월 7일. 2012년 11월 16일에 확인함.
  46. ↑ “Btrfs Wiki: Changelog”. 2012년 10월 1일. 2012년 11월 14일에 확인함.
  47. ↑ Trautman, Philip; Mostek, Jim. “Scalability and Performance in Modern File Systems”. 《linux-xfs.sgi.com》. 2015년 4월 22일에 원본 문서에서 보존된 문서. 2015년 8월 17일에 확인함.
  48. ↑ “Linux RAID Setup – XFS”. 《kernel.org》. 2013년 10월 5일. 2015년 8월 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”. 2010년 1월 4일에 확인함.
  51. ↑ “Apple Mac OS X Server File Systems”. 2008년 4월 23일에 확인함.
  52. ↑ “FreeBSD System Manager's Manual page for GEOM(8)”. 2009년 3월 19일에 확인함.
  53. ↑ “freebsd-geom mailing list – new class / geom_raid5”. 2006년 7월 6일. 2009년 3월 19일에 확인함.
  54. ↑ “FreeBSD Kernel Interfaces Manual for CCD(4)”. 2009년 3월 19일에 확인함.
  55. ↑ “The Software-RAID HowTo”. 2008년 11월 10일에 확인함.
  56. ↑ “mdadm(8) – Linux man page”. 《Linux.Die.net》. 2014년 11월 20일에 확인함.
  57. ↑ “Windows Vista support for large-sector hard disk drives”. 《Microsoft》. 2007년 5월 29일. 2007년 7월 3일에 원본 문서에서 보존된 문서. 2007년 10월 8일에 확인함.
  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. 2011년 9월 14일. 2011년 3월 3일에 원본 문서에서 보존된 문서. 2009년 12월 17일에 확인함.
  59. ↑ “Using Windows XP to Make RAID 5 Happen”. Tom's Hardware. 2004년 11월 19일. 2010년 8월 24일에 확인함.
  60. ↑ Sinofsky, Steven (2012년 1월 5일). “Virtualizing storage for scale, resiliency, and efficiency”. Building Windows 8 blog. 2013년 5월 9일에 원본 문서에서 보존된 문서. 2012년 1월 6일에 확인함.
  61. ↑ Metzger, Perry (1999년 5월 12일). “NetBSD 1.4 Release Announcement”. 《NetBSD.org》. The NetBSD Foundation. 2013년 1월 30일에 확인함.
  62. ↑ “OpenBSD softraid man page”. 《OpenBSD.org》. 2018년 2월 3일에 확인함.
  63. ↑ “FreeBSD Handbook”. 《Chapter 19 GEOM: Modular Disk Transformation Framework》. 2009년 3월 19일에 확인함.
  64. ↑ “SATA RAID FAQ”. Ata.wiki.kernel.org. 2011년 4월 8일. 2012년 8월 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. 90쪽. ISBN 978-0-7356-5670-3 – Google Books 경유.
  67. ↑ Block, Warren. “19.5. Software RAID Devices”. 《freebsd.org》. 2014년 7월 27일에 확인함.
  68. 1 2 “Hardware RAID vs. Software RAID: Which Implementation is Best for my Application? Adaptec Whitepaper” (PDF). 《adaptec.com》.
  69. ↑ Smith, Gregory (2010). 《PostgreSQL 9.0: High Performance》. Packt Publishing Ltd. 31쪽. ISBN 978-1-84951-031-8 – Google Books 경유.
  70. ↑ Ulf Troppens, Wolfgang Mueller-Friedt, Rainer Erkens, Rainer Wolafka, Nils Haustein. Storage Networks Explained: Basics and Application of Fibre Channel SAN, NAS, ISCSI, InfiniBand and FCoE. John Wiley and Sons, 2009. p.39
  71. ↑ Dell Computers, Background Patrol Read for Dell PowerEdge RAID Controllers, By Drew Habas and John Sieber, Reprinted from Dell Power Solutions, February 2006 http://www.dell.com/downloads/global/power/ps1q06-20050212-Habas.pdf
  72. 1 2 3 “Error Recovery Control with Smartmontools”. 2009. 2011년 9월 28일에 원본 문서에서 보존된 문서. 2017년 9월 29일에 확인함.
  73. ↑ Gray, Jim (Oct 1990). “A census of Tandem system availability between 1985 and 1990” (PDF). 《IEEE Transactions on Reliability》 (IEEE) 39 (4): 409–418. Bibcode:1990ITR....39..409G. doi:10.1109/24.58719. S2CID 2955525. 2019년 2월 20일에 원본 문서 (PDF)에서 보존된 문서.
  74. ↑ 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.
  75. ↑ “The RAID Migration Adventure”. 2007년 7월 10일. 2010년 3월 10일에 확인함.
  76. ↑ Disk Failures in the Real World: What Does an MTTF of 1,000,000 Hours Mean to You? Bianca Schroeder and Garth A. Gibson
  77. ↑ Pâris, Jehan-François; Long, Darrell D. E. (2006년 10월 30일). 〈Using device diversity to protect data against batch-correlated disk failures〉. 《Proceedings of the second ACM workshop on Storage security and survivability》. 47–52쪽. doi:10.1145/1179559.1179568. ISBN 1-59593-552-5.
  78. ↑ Han, Shujie; Lee, Patrick P. C.; Xu, Fan; Liu, Yi; He, Cheng; Liu, Jiongzhou (2021). 《An In-Depth Study of Correlated Failures in Production SSD-Based Data Centers》 (영어). FAST '21. 417–429쪽.
  79. ↑ Rosenthal, David. “Correlated Failures (summary of Shujie Han et al.'s paper FAST '21)” (영어).
  80. ↑ 《Are Disks the Dominant Contributor for Storage Failures? A Comprehensive Study of Storage Subsystem Failure Characteristics》. 6th USENIX Conference on File and Storage Technologies (FAST '08).
  81. ↑ Harris, Robin (2010년 2월 27일). “Does RAID 6 stop working in 2019?”. 《StorageMojo.com》. TechnoQWAN. 2013년 12월 17일에 확인함.
  82. ↑ J.L. Hafner, V. Dheenadhayalan, K. Rao, and J.A. Tomlin. "Matrix methods for lost data reconstruction in erasure codes. USENIX Conference on File and Storage Technologies, Dec. 13–16, 2005.
  83. ↑ Miller, Scott Alan (2016년 1월 5일). “Understanding RAID Performance at Various Levels”. 《Recovery Zone》. StorageCraft. 2016년 7월 22일에 확인함.
  84. ↑ Kagel, Art S. (2011년 3월 2일). “RAID 5 versus RAID 10 (or even RAID 3, or RAID 4)”. 《miracleas.com》. 2014년 11월 3일에 원본 문서에서 보존된 문서. 2014년 10월 30일에 확인함.
  85. ↑ 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》. 221–234쪽. doi:10.1145/1217935.1217957. ISBN 1595933220. S2CID 7655425.
  86. ↑ 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》. 289–300쪽. doi:10.1145/1254882.1254917. ISBN 9781595936394. S2CID 14164251.
  87. ↑ Patterson, D., Hennessy, J. (2009). Computer Organization and Design. New York: Morgan Kaufmann Publishers. pp 604–605.
  88. 1 2 3 Leventhal, Adam (2009년 12월 1일). “Triple-Parity RAID and Beyond. ACM Queue, Association for Computing Machinery”. 2012년 11월 30일에 확인함.
  89. ↑ “"Write Hole" in RAID5, RAID6, RAID1, and Other Arrays”. ZAR team. 2012년 2월 15일에 확인함.
  90. 1 2 Danti, Gionatan. “write hole: which RAID levels are affected?” (영어). 《Server Fault》.
  91. ↑ “ANNOUNCE: mdadm 3.4 - A tool for managing md Soft RAID under Linux [LWN.net]”. 《lwn.net》.
  92. ↑ Brown, Neil (2015년 11월 24일). “A journal for MD/RAID5 [LWN.net]”. 《lwn.net》.
  93. ↑ “RAID 4/5/6 cache — The Linux Kernel documentation”. 《docs.kernel.org》.
  94. ↑ md(4) – 리눅스 프로그래머의 매뉴얼 – Special Files
  95. ↑ “Partial Parity Log”. 《The Linux Kernel documentation》.
  96. ↑ Bonwick, Jeff (2005년 11월 17일). “RAID-Z”. 《Jeff Bonwick's Blog》. Oracle Blogs. 2014년 12월 16일에 원본 문서에서 보존된 문서. 2015년 2월 1일에 확인함.
  97. 1 2 Overstreet, Kent (2021년 12월 18일). “bcachefs: Principles of Operation” (PDF). 2023년 5월 10일에 확인함.
  98. ↑ Gray, Jim (2008년 6월 11일). “The Transaction Concept: Virtues and Limitations (Invited Paper)”. VLDB [Very Large Data Bases] 1981. 144–154쪽. 2008년 6월 11일에 원본 문서에서 보존된 문서.
  99. ↑ “Definition of write-back cache at SNIA dictionary”. 《snia.org》.

외부 링크