RAID 0, 1, 5, 0+1 의 이해

RAID 0
RAID-0는 전형적인 Parity가 없는 striped disk drive들의 non-redundant group으로 정의된다. RAID-0 array는 보통 I/O intensive application을 위한 large stripes로 구성되는데, 종종 data intensive application의 single-user를 위한 synchronized spindle drive들을 이용한 sector-stripe으로 구성할 수도있다.
RAID-0는 redundancy를 지원하지 않기 때문에 만일 Array내의 하나의 drive가 장애를 일으키면, Array 전체가 장애를 일으키게 된다. 그러나 RAID-0는 모든 Array type중 가장 빠르고 data저장 효율이 높다.
RAID 1
Disk Mirroring이라 불리는 RAID-1은 data를 중복 저장하도록 디스크드라이브들을 쌍로 구성한 것으로 서버쪽으로는 하나의 드라이브로 인식된다. RAID-1은 striping은 사용되지 않는 반면, 여러개의 RAID-1 array들이 서로 striped되어 mirrored drives pair들로 구성된 하나의 대용량 array로 구성 시킬 수 있으며, 이를 "Dual-level array" 또는 RAID-10이라 부른다.
Write는 Mirrored Pair인 두개의 Drive에 동시에 저장되어 각 Drive가 동일한 정보를 저장하게 된다. 그러나 각 Drive는 Simultaneous Read Operation을 수행할 수 있다. 따라서, 각 Drive의 Read Performance는 두배로 되고 Write Performance는 변화가 없게 된다. RAID-1은 Redundant를 가진 Array중에서는 최고의 Performance를 보이며, 특히 Multi-user Environment에서 유용하다.
RAID 3
RAID-3는 RAID-2처럼 Sector-striped data를 Drive Group에 걸쳐 저장하지만, Group내의 하나의 Drive는 Parity Information만을 저장하도록 지정된다. RAID-3는 Error Detection을 위해서는 각 sector에 embbed된 ECC에 의존한다.
Hard Drive가 장애를 일으킬 경우, Data 복구는 남아있는 Drive상에 기록된Information의 Exclusive OR(XOR)연산을 통하여 이루어진다.
Records는 전형적으로 모든 Drive에 걸쳐 있기때문에, Data Intensive 환경에 적합하다. 각 I/O은 Array내의 모든 Drive들을 액세스하기 때문에, RAID-3 Array는 I/O을 Overlap시킬 수가 없고 따라서, RAID-3는 long record의 Single-user, Single-tasking 환경에 적합하다. 그러므로 Short record에서의 성능 저하를 피하기 위해서는, RAID-3는 Synchronized-spindle drives가 필요하다.
RAID 5
종종 Rotating Parity Array라 불리는 RAID-5는 RAID-4에서 하나의 전용Parity Drive를 설정함으로써, Parity Update가 한 Drive에서 이루어지므로 생기는 Write Bottleneck을 피하기 위하여 만들어진 RAID Array이다.
RAID-5는 RAID-4처럼 large-stripe이 사용되어 multiple I/O operation이 overlap되도록 하고 있다. 그러나, RAID-4와는 다르게, 각 Drive들이 일련의 서로다른 stripes들에 대한 parity를 돌아가면서 저장하게 된다.
따라서, 전용 parity Drive가 없기 때문에 모든 drive들이 데이타를 저장할 수 있고, Read operation이 모든 drive에 걸쳐 overlap될 수 있다.Write Operation은 전형적으로 single data drive를 액세스하며 그 record에 대한 parity drive를 액세스한다.
따라서, RAID-4와는 달리 서로 다른 records들이 해당 parity들을 서로 다른 drive들에 저장하기 때문에, Write Operation도 overlap이 가능하다. RAID-5는 RAID-1이 모든 데이타를 redundant copy하는 것과는 달리, parity information만을 저장하기 때문에 RAID-1에 비하여 Storage Efficiency를 높일 수 있다. 결과적으로 RAID-5 Array는 어떤 수의 Drive도 연결이 가능하고, 각 Drive들은 Parity information 저장 부분만을 제외하고는 모두 data storage로 활용될 수 있다. 즉, RAID-5는 RAID-1보다 저장 장치를 효율적으로 극대화 시킬 수 있다. 그러나 performance에서는 손실을 감수 하여야 한다.
Data가 RAID-5 Array에 쓰여질 때, Parity information 또한 Update되어야 하는데, 이는 Write Operation에 의하여 어떤 data bit들이 바뀌었는지를 찾아내어 이에 해당하는 parity bits들을 바꾸므로서 Update된다.
이는 overwritten될 old data를 먼저 읽고, 이 것이 새로 overwrite될 새로운 데이타와 XOR 연산을 하므로써 수행된다. 이 것은 바뀐 모든 bit의 position에서 1이 되는 bit mask를 만들게 되고, 이 bit mask가 parity drive로 부터읽어 들인 old parity information과 XOR연산을 수행한다. 이 결과, Parity information내에 있는 해당 bit를 변화 시킨다. 이렇게 하여 Update된 Parity는 Parity Drive에 write back된다.
그러므로, write-request하는 모든 Application에 대하여 RAID-5 Array는 두개 의 Read, 두개의 Write와 두개의 XOR operation을 수행하여야 만이 원래의 write가 완료된다.
RAID-1에서의 redundant data에 비하여, Parity를 저장하는 RAID-5는 위와 같이 보다 많은 연산을 행하게 되며, write operation 중에 parity information을 재생하는데 추가적으로 시간이 소요된다. 이러한 이유 때문에 RAID-5는 RAID-1에 비하여 write performance가 약 3/5~1/3 수준밖에 되지 않는다. 이때문에, RAID-5 Array는 결코 Software적으로 사용되지 않으며, 아울러 디지탈 비디오 캡쳐와 같이 write performance가 중요한 Application에는 사용되지 않는다.
 
Level 0
Level 1
Level 5
Level 0 + 1
장점
- DISK I/O가 분산이 된다.
- RAID level중 가장 빠르다.
- DATA 저장 효율이 높다.
- 안정적이다.
- redundant해서 Fault Tolerance를 보장한다.
- simultaneous-read가 되기 때문에 기존의 방법에 2배정도 읽기 효과를 준다.
- Write-bottleneck 현상을 줄일 수 있다.
- 안정적이다.
- disk I/O를 줄일 수 있다.
- hot-swap, hot-fix, hot-spare, hot-plug등이 가능하다.
- Level 0과 Level 1의 장점을 가진다.
 
단점
- Fault Tolerance가 보장되지 않는다.
- 안정적이?못하다.
- redundant가 없다.
- 비용이 비싸다.
- Striping이 되지를 않기 때문에 disk I/O bottleneck 현상에 대해 효율적이지 못하다.
- level 1에 비해서 읽기 성능이 떨어진다.
- level 0에 비해 저장효율이 떨어진다.
- 비용이 비싸다.
- disk 저장 효율성이 그리 높지 않다.

'SQL Server 2005' 카테고리의 다른 글

SQL 2000 master db 복구 방법이 뭐란 말인가 ㅠ.ㅠ  (0) 2008.04.01
SQL Disk 구성  (0) 2008.03.14
RAID 10 vs. RAID 5 Performance  (0) 2008.03.14
RAID 0+1 VS RAID 10  (0) 2008.03.14
Query Tunning - 3월 12일 Study  (0) 2008.03.12