스트라이프 크기는 스트립 크기와 RAID 집합에 있는 데이터 디스크 개수의 곱이다. 예를 들어, 스트라이핑된 RAID에 5개의 디스크가 있고 스트립 크기가 64KB라면, 스트라이프의 크기는 320KB(64KB X 5)가 된다. 스트라이프 너비(stripe width)는 스트라이프 안에 있는 데이터 스트립의 개수를 말한다. 바로 다음에 설명할 패리티나 미러링을 사용하지 않는 경우 스트라이프 RAID 자체는 데이터 보호 기능을 제공하지 않는다.

 

 미러링(mirroring)은 같은 데이터를 2개의 디스크에 저장해 데이터 사본을 2개 만드는 기술이다. 한 디스크 드라이브가 고장 나더라도 살아 있는 디스크 드라이브의 데이터는 손상되지 않고 컨트롤러는 미러 쌍의 살아 있는 디스크를 사용해 호스트의 데이터를 요청을 계속 처리할 수 있다.

 

 고장 난 디스크를 새 디스크로 교환하면 컨트롤러는 미러 쌍의 살아 있는 디스크에서 데이터를 복사한다. 이 작업은 호스트가 알지 못하게 수행된다.

 

 완전한 데이터 중복을 제공하는 거 외에도 미러링은 디스크 고장으로부터 빠르게 복구할 수 있게 해준다. 그러나 디스크 미러링은 데이터 보호를 제공하는 것이지 데이터 백업을 대체하기 위한 것은 아니다. 미러링은 데이터 변경 사항을 계속 감시하는 반면에 데이터 백업은 특정 시간의 데이터를 저장하는 것을 말한다.

 

 미러링은 데이터 중복을 발생시켜, 데이터를 저장하는 데 저장 용량이 두 배가 필요하다. 따라서 미러링은 비용이 많이 들며, 데이터 손실의 위험을 감수할 수 없는 중요한 애플리케이션에서 사용한다. 미러링을 사용하면 두 디스크에서 읽기 요청을 처리할 수 있어 읽기 성능을 향상시킬 수 있다. 그러나 쓰기 요청을 두 디스크에서 수행해야 하기 때문에 쓰기 성능은 약간 저하될 수 있다. 미러링은 스트라이프 RAID와 동일한 수준의 쓰기 성능을 제공하지 못한다.

 

패리티(parity)는 미러링 비용 없이 디스크 드라이브 고장으로부터 스트라이핑된 데이터를 보호하기 위한 방법이다. 손상된 데이터를 복구하기 위한 수학적인 요소인 패리티를 저장할 디스크 드라이브가 1개 추가된다. 패리티는 데이터 전체의 복사본을 유지하지 않고도 데이터를 보호할 수 있는 중복 기술이다. RAID 컨트롤러가 패리티를 계산한다.

 

 패리티 정보는 별도의 전용 디스크 드라이브에 저장되거나 RAID 집합의 모든 드라이브에 분산해 저장할 수 있다. '데이터 디스크'라고 돼 있는 디스크는 데이터를 저장한다. '패리티 디스크'라고 돼 있는 디스크는 패리티 정보를 저장한다. 각 행에 있는 요소의 합을 저장하기도 한다. 이제 한 데이터 디스크가 고장 나면 손상된 값은 패리티 값에서 나머지 요소 값의 합을 빼서 계산할 수 있다. 여기서는 간단히 설명하기 위해 데이터의 합으로 패리티 값의 계산을 표현했다. 그러나 패리티 계산은 XOR 비트 연산을 사용한다.

 

 패리티 기술은 미러링에 비해 저렴한 비용으로 구현할 수 있다. 4개의 데이터 디스크와 1개의 패리티 디스크로 구성된 패리티 RAID를 생각해보자. 100%의 추가 공간을 필요로 하는 미러링에 비해 이런 패리티 구성은 25%의 추가 디스크 공간만을 필요로 한다. 그러나 패리티에도 몇 가지 단점이 있다. 패리티 정보는 데이터 디스크의 데이터를 사용해 만들어진다. 따라서 데이터가 변경될 때마다 패리티를 다시 계산해야 한다. 이 재계산은 시간이 걸리며 RAID 어레이의 성능에 영향을 미친다.

 

 패리티 RAID에서 스트라이프 크기를 계산할 때는 패리티 스트립을 포함하지 않는다. 예를 들어 64KB 스트립 크기의 5개(4 + 1) 디스크 패리티 RAID 집합에서 스트라이프 크기는 256KB(64KB X 4)이다.

 

-RAID 레벨

 

 RAID 레벨을 선택할 때는 애플리케이션 성능과 데이터 가용성 요구 조건, 비용을 고려해야 한다. RAID 레벨은 스트라이핑과 미러링, 패리티 기술로 결정된다. 어떤 RAID 레벨은 한 기술만 사용하는 반면에, 또 어떤 레벨은 여러 기술을 조합해 사용한다.

 

레벨 설명
RAID 0 장애 복구 기능이 없는 스트라이핑된 집합
RAID 1 디스크 미러링
중첩 RAID 레벨의 조합. 예: RAID 1 + RAID 0
RAID 3 병렬 액세스가 가능한 스트라이핑된 집합과 전용 패리티 디스크
RAID 4 독립 디스크 액세스를 사용하는 스트라이핑된 집합과 전용 패리티 디스크
RAID 5 독립 디스크 액세스를 사용하는 스트라이핑된 집합과 분산 패리티
RAID 6 독립 디스크 액세스를 사용하는 스트라이핑된 집합과 듀얼 분산 패리티

 RAID 0은 데이터가 RAID 집합의 모든 디스크에 데이터를 스트라이핑하는 구성이다. 따라서 RAID 집합의 모든 디스크 공간을 사용할 수 있다. 데이터를 읽을 때는 컨트롤러가 모든 스트립을 모으는 역할을 한다. RAID 집합의 드라이브 개수를 늘리면 동시에 읽거나 쓸 수 있는 데이터의 양이 증가하기 때문에 성능이 향상된다. RAID 0은 높은 I/O 처리량이 필요한 애플리케이션에 적합하다. 그러나 디스크 고장 시에도 높은 가용성이 필요한 경우 RAID 0은 데이터 보호나 가용성을 제공하지 못한다.

 

 RAID 1은 미러링 기술을 사용한다. 이 RAID 구성에서는 장애 복구 기능을 제공하기 위해 데이터를 미러링한다. RAID 1 집합은 2개의 디스크 드라이브로 구성되며, 모든 쓰기는 두 디스크에 모두 기록된다. 미러링은 호스트가 알지 못하게 이뤄진다. 디스크 고장이 발생하는 경우 RAID 1은 모든 RAID 구성 중에서 데이터 복구의 부하가 가장 작다. 이는 데이터 복구는 RAID 컨트롤러가 미러 디스크를 사용하는 것으로 이뤄지기 때문이다. RAID 1은 높은 고가용성이 요구되며 비용 제한이 없는 경우에 적합하다.

'IT > Storage' 카테고리의 다른 글

컴퓨트 가상화와 연결  (0) 2022.06.29
파일 시스템 -2-  (0) 2022.06.29
RAID  (0) 2022.06.29
볼륨 매니저와 파일 시스템  (0) 2022.06.29
DBMS와 호스트  (0) 2022.06.29

 

 

 1980년대 후반에 비즈니스 프로세스에 컴퓨터를 많이 사용하면서 새로운 애플리케이션과 데이터베이스가 등장했고, 이에 스토리지 용량과 성능에 대한 수요가 빠르게 증가했다. 그 당시에는 단일 대용량 고비용 드라이브(SLED, Single Large Expensive Drive)라는 크고 비싼 디스크 드라이브 1개를 사용해 데이터를 저장했다. 단일 드라이브는 제한된 수의 I/O를 제공할 수밖에 없기 때문에 필요한 성능 수준을 맞출 수 없었다.

 

 오늘날의 데이터 센터는 수백 개의 디스크 드라이브를 사용한다. 디스크 드라이브는 기계적인 수명과 환경적인 요인으로 인해 장애가 발생하며, 이는 데이터 손실을 의미한다. 스토리지 어레이에 디스크 드라이브의 개수가 늘어날수록 디스크 고장의 확률도 증가한다. 예를 들어 평균 기대 수명이 750,000시간인 디스크 드라이브 100개를 가진 스토리지 어레이를 생각해보자. 이 어레이의 평균 기대 수명은 750,000/100, 즉 7,500시간이다. 이는 이 어레이의 디스크 드라이브 중 1개가 최소 7,000시간 내에 고장 날 것임을 의미한다.

 

 RAID는 디스크 고장으로부터 데이터를 보호하기 위해 여러 드라이브를 집합으로 사용하는 기술이다. 일반적으로 RAID 구성은 여러 디스크로부터 I/O를 동시에 수행해 스토리지 시스템의 성능도 향상시킨다. 최신 플래시 메모리를 사용하는 어레이도 RAID를 사용해 데이터 보호와 성능 향상을 얻고 있다.

 

 1987년 캘리포니아대학교 버클리 캠퍼스의 패터슨(Patterson)과 깁슨(Gibson), 카츠(Katz)는 'A Case for Redundant Arrays of Inexpensive Disks(RAID)'라는 제목의 논문을 발표했다. 이 논문은 작은 용량의 저렴한 디스크 드라이브를 메인프레임에서 많이 사용하는 대용량 드라이브를 대체하는 방법을 제안했다. 그 후 RAID 용어는 최신 스토리지 기술의 발전을 반영하기 위해 독립적인(independent) 디스크로 변경됐다. RAID 기술은 현재 학계의 아이디어에서 산업 표준으로 발전했으며, 오늘날 스토리지 어레이를 구현하는 데 많이 사용된다.

 

 RAID를 구현하는 방법으로 하드웨어와 소프트웨어 두 가지가 있다. 두 방법 모두 각기 장단점이 있다.

 

1. 소프트웨어 RAID

 

 소프트웨어 RAID는 호스트 기반 소프트웨어를 사용해 RAID 기능을 제공한다. 운영체제 레벨에서 구현되며, RAID 어레이를 제어하기 위해 전용 하드웨어 컨트롤러를 사용하지 않는다.

 

 소프트웨어 RAID는 하드웨어 RAID에 비해 비용이 저렴하고 단순하다는 장점이 있다. 그러나 다음과 같은 제한이 있다.

 

- 성능

소프트웨어 RAID는 전체 시스템 성능에 영향을 끼친다. 이는 RAID 계산을 위해 부가적인 CPU 사이클을 사용하기 때문이다.

 

- 기능

소프트웨어 RAID는 모든 RAID 레벨을 지원하진 않는다.

 

- 운영체제 호환성

소프트웨어 RAID는 호스트 운영체제와 긴밀하게 연결돼 있다. 따라서 소프트웨어 RAID나 운영체제를 업그레이드할 때는 호환성을 검증해야 한다. 이는 데이터 프로세싱 환경의 유연성을 떨어뜨린다.

 

2. 하드웨어 RAID

 

 하드웨어 RAID에서는 호스트나 어레이에 전용 하드웨어 컨트롤러를 사용한다. 컨트롤러 카드 RAID는 호스트 기반 하드웨어 RAID로, 전용 RAID 컨트롤러를 호스트에 설치하고 디스크 드라이브를 이곳에 연결한다. 제조사는 RAID 컨트롤러를 마더보드에 통합하기도 한다. 호스트 기반 RAID 컨트롤러는 많은 호스트를 사용하는 데이터 센터에는 효율적이지 않다.

 

 외장 RAID 컨트롤러는 어레이 기반 하드웨어 RAID이다. 이는 호스트와 디스크 사이의 인터페이스로 동작한다. 호스트에 스토리지 볼륨을 제공하며, 호스트는 이 볼륨을 물리적 드라이브로 취급한다. RAID 컨트롤러의 주요 기능은 다음과 같다.

 

 - 디스크 집합(aggregation)의 관리와 제어

 - 논리적 디스크와 물리적 디스크 사이의 I/O 요청 변환

 - 디스크 고장 시 데이터 복구

 

 RAID 어레이(RAID array)는 여러 개의 디스크 드라이브와 RAID를 구현하기 위한 하드웨어로 구성된다. RAID 어레이의 디스크를 그룹화해 RAID 집합 또는 RAID 그룹이라고 하는 논리적 어레이를 형성할 수 있다.

 

 스트라이핑과 미러링, 패리티 같은 RAID 기술은 여러 RAID 레벨을 정의하는 데 기초가 된다. 이 기술은 RAID 집합의 데이터 가용성과 성능을 결정한다.

 

 스트라이핑(striping)은 데이터를 1개 이상의 드라이브에 저장해 드라이브를 병렬로 사용할 수 있게 하는 기술을 말한다. 여러 읽기/쓰기 헤드가 동시에 일을 하기 때문에 1개의 디스크를 사용했을 때보다 데이터를 좀 더 빠르게 처리하고 성능을 향상시킬수 있다.

 

 RAID 집합의 각 디스크에서 정해진 개수의 연속적인 주소 디스크 블록을 스트립(strip)으로 정의한다. RAID 집합에 있는 모든 디스크의 같은 위치의 스트립을 스트라이프(stripe)라고 한다.

 

 스트립 크기(strip size[스트라이프 깊이 stripe depth라고도 함])는 스트립에 있는 블록의 개수를 말하고, 액세스하려는 데이터가 스트립의 시작 위치에 있다고 가정하면 한 디스크에서 읽거나 쓸 수 있는 데이터의 최대량이 된다. 스트라이프의 모든 스트립은 같은 개수의 블록을 갖는다. 스트립의 크기가 작을수록 데이터를 더 작은 크기로 잘라 분산시킨다.

'IT > Storage' 카테고리의 다른 글

파일 시스템 -2-  (0) 2022.06.29
미러링과 패리티  (0) 2022.06.29
볼륨 매니저와 파일 시스템  (0) 2022.06.29
DBMS와 호스트  (0) 2022.06.29
가상화와 클라우드 컴퓨팅  (0) 2022.06.29

+ Recent posts