Computer/Network

RAID와 백업 장비 ①

알찬돌삐 2010. 8. 16. 23:00
스토리지 시스템의 가장 기본적인 장비는 디스크와 테이프 백업 장비다. 대용량 스토리지 시스템의 경우 RAID 구성은 안정성과 성능을 향상시키기 위한 가장 기본적인 요소 중 하나며, 백업 장비의 가장 대표적인 요소는 바로 테이프 백업 장비다. 이번에는 스토리지 시스템의 가장 기본적인 요소인 디스크의 RAID 구성과 각종 테이프 백업 장비에 대해 알아보자.



신동윤 기자 

RAID(Redundant Array of Inexpensive Disks)는 여러개의 저용량 저가격의 하드디스크를 모아 논리적으로 하나의 대형 드라이브처럼 사용하거나 혹은 장애 발생시 데이터를 안전하게 복구할 수 있도록 하는 장비다.
RAID는 1987년 버클리 대학의 데이비드 패터슨, 가스 깁슨, 랜디 카츠가 SIGMOD에서 ‘A Case for Redundant Array of Inexpensive Disks'라는 논문을 발표하면서부터 관심을 모으게 됐다. 이 논문은 데이터와 패리티 정보를 디스크에 배치하는 방법에 따라 디스크 어레이를 분류했으며, 이것은 나중에 RAID 레벨이라고 불리게 됐다.
RAID의 가장 큰 장점으로는 시스템에 있는 디스크의 수가 증가함에 따라 디스크가 장애를 일으킬 가능성이 높아가고 있는 상황에서 미러링이나 패리티 정보를 이용해 디스크 장애에 대비할 수 있다는 것이다. 또한 여러 개의 물리적인 하드디스크를 하나의 논리적인 드라이브로 인식함으로써, 용량과 드라이브 수의 제한을 극복할 수 있다. 이외에도 하나의 디스크에 대한 입출력 요구에 비해 여러 디스크에 데이터를 분산시키고 병렬로 입출력을 처리함으로써 속도와 효율성을 증가시킬 수 있다는 것도 장점이다.

RAID의 목적
RAID의 목적은 크게 세 가지로 볼 수 있다. 첫째는 여러 개의 디스크 모듈을 하나의 대용량 디스크처럼 사용할 수 있도록 하는 것이고, 두번째는 여러 개의 디스크 모듈에 데이터를 나누어서 한꺼번에 쓰고 한꺼번에 읽는 식으로 입출력 속도를 높인다는 것이다. 마지막으로 여러 개의 디스크를 모아서 하나의 디스크로 만들었으니 그 중 하나 혹은 그 이상의 디스크에 장애가 나더라도 최소한 데이터가 사라지는 것은 방지하자는 것이다. 
이같은 RAID에는 몇 가지 종류가 있다. RAID 레벨이라고 하는 것이 그것인데, RAID-0, RAID-1 이런 식으로 뒤에 번호가 붙는다. RAID 레벨에는 0부터 7까지가 있고 이들을 조합한 것이 몇 가지가 있다. 
RAID 시스템 가운데 어떤 것은 시스템을 끄지 않고서도 몇 가지 작업을 할 수 있는 주요 기능을 지니고 있다. 먼저 '핫 애드(hot add)'가 있다. 이 기능을 이용하면 시스템을 켠 상태에서 어레이 내에 있는 디스크를 추가할 수 있다. 그리고 '핫 스왑(hot swap)' 기능을 이용하면 작동하지 않는 디스크를 다른 디스크로 교체할 수 있다. '핫 스페어(hot spare)'는 배열 내에 한 개 이상의 디스크를 예비 디스크로 지정할 수 있는데, 이렇게 하면 손상된 디스크의 데이터가 예비 디스크에 자동으로 복사된다. 
이 기능은 서버를 지속적으로 관리하기 어려운 곳에서 사용하기에 적합하다. 일부 RAID 장치는 동적인 확장(dynamic expansion)으로 알려져 있는 '핫 RAID 레벨 변환' 기능도 갖고 있다. 이것은 가령 RAID 레벨 1 시스템의 용량이 다 됐을 때 즉석에서 RAID 5 시스템으로 환경을 재설정해 부족한 디스크 공간을 메워주는 기능이다. 
하드디스크는 질과 성능이 크게 향상되긴 했지만 아직도 컴퓨터 시스템 가운데 가장 취약한 부분으로 남아 있다. 때로는 회복이 불가능할 정도로 손상되기도 하는데 시스템이 다운되면 회사로서는 큰 낭패가 아닐 수 없다. 그리고 네트워크에서 병목현상이 가장 심하게 일어나는 부분도 바로 하드디스크다. RAID 시스템은 그런 하드디스크의 결함을 비교적 저렴한 비용으로 해결할 수 있는 솔루션이다.
예전에는 채널당 여러개의 하드디스크를 장착할 수 있는 SCSI 방식을 인터페이스로 많이 사용했지만, 최근에는 로우엔드는 ATA 방식을, 하이엔드는 파이버채널 인터페이스를 주로 채용하고 있다.

RAID 레벨
버클리 대학의 연구팀은 RAID를 여섯개의 레벨로 분류했으며, RAID의 각 레벨은 서로 다른 용도를 위해 최적화된 시스템을 구현할 수 있다.

· RAID 0(stripping)
RAID 0은 데이터의 빠른 입출력을 위해 데이터를 여러 드라이브에 분산 저장한다. 데이터의 복구를 위한 추가 정보를 기록하지 않기 때문에 성능은 뛰어나지만, 어느 한 드라이브에서 장애가 발생하면 데이터는 모두 손실된다. 실제로 RAID 0만으로 구성된 스토리지는 주변에서 찾기 쉽지 않다.

· RAID 1(mirroring)
빠른 기록 속도와 함께 장애 복구 능력이 요구되는 경우에 사용되며, 2대의 드라이브 만으로도 구성할 수 있다. RAID 1은 한 드라이브에 기록되는 모든 데이터를 다른 드라이브에 복사해 놓는 방법으로 복구 능력을 제공한다. RAID 1은 하나의 드라이브를 사용하는 것에 비해 약간 나은 정도의 성능을 제공한다. 읽을 때는 조금 빠른 속도를 제공하지만, 저장할 때는 속도가 약간 느려진다. 하지만 ECC를 계산하지 않기 때문에 RAID 4나 5보다는 빠르다. 두 개의 디스크에 데이터가 동일하게 기록되므로 데이터의 복구 능력은 높지만, 전체 용량의 절반이 여분의 데이터를 기록하기 위해 사용되기 때문에 저장용량당 단가가 비싸다.

· RAID 2
RAID 2는 ECC 기능이 없는 드라이브를 위해 해밍(hamming) 오류정정코드를 사용하는 방식이다. SCSI 디스크 드라이브는 기본적으로 에러검출능력을 갖고 있기 때문에 SCSI 디스크 드라이브를 사용할 경우에는 사용하지 않는다. 또한 RAID 3에 비해 장점이 없기 때문에 거의 사용되지 않는다.

· RAID 3
RAID 3은 한 드라이브에 패리티 정보를 저장하고, 나머지 드라이브들 사이에 데이터를 바이트 단위로 분산한다(Block Striping: 전용 패리티를 이용한 블록 분배). 만약 하나의 드라이브에 문제가 생기면, 컨트롤러가 전용 패리티 드라이브로부터 문제가 생긴 드라이브의 손실된 데이터를 가져와 복구/재생한다. RAID 3은 RAID 4와 유사하나 바이트 단위의 분산 저장을 경제적으로 수행하기 위해 하드웨어적인 지원이 요구되며 효율적인 동작을 위해 동기 가능한(synchronized-spindle) 드라이브를 사용해야 한다. 입출력 작업이 동시에 모든 드라이브에 대해 이루어지는 RAID 3은 입출력을 겹치게 할 수 없기 때문에 대형 레코드가 많이 사용되는 업무에서 단일 사용자 시스템에 적합하다.

· RAID 4(parity)
RAID 4는 한 드라이브에 패리티 정보를 저장하고 나머지 드라이브 사이에 데이터를 블럭 단위로 분산하는 방식이다. 패리티 정보는 어느 한 드라이브에 장애가 발생했을 때 데이터를 복구할 수 있게 한다. RAID 4는 데이터를 읽어들일 때 RAID 0에 필적하는 우수한 성능을 보이나, 저장할 때는 매번 패리티 정보를 갱신하기 때문에 추가적인 시간이 필요하다. 실제적으로는 작고 랜덤하게 기록할수록 느리며, 크고 순차적인 기록을 행할 때는 속도 저하가 거의 없다. 여러 드라이브들 중에서 한대의 드라이브만 여분의 패리티 정보를 기록하는데 사용되기 때문에 RAID 4의 용량당 비용은 그리 높지 않다.
또한 데이터 디스크와 패리티 디스크가 독립적이기 때문에 볼륨을 확장할 때 별도의 데이터 백업과 복구 과정을 거치지 않는 유연성을 제공한다. 하지만 하나의 디스크 장애에 대해서는 완벽하게 대처할 수 있지만, 두개 이상의 디스크에 장애가 발생할 경우에는 데이터 손실이 발생한다. 또한 패리티 디스크에 병목 현상이 발생해 전체 스토리지의 성능 저하를 가져올 수 있다는 것이 단점이다.

· RAID 5(distributed parity)
RAID 5는 패리티 정보를 모든 드라이브에 나눠 기록한다. 따라서 문제가 발생할 경우, 컨트롤러가 정상적으로 운영되고 있는 다른 드라이브로부터 손실된 데이터를 가져와 복구/재생한다. 패리티를 담당하는 디스크가 병목현상을 일으키지 않기 때문에 RAID 5는 멀티프로세스 시스템과 같이 작은 데이터 기록이 수시로 발생할 경우 더 빠르다. 하지만 읽기 작업일 경우 각 드라이브에서 패리티 정보를 건너뛰어야 하기 때문에 RAID 4보다 느리다.
작고 랜덤한 입출력이 많은 경우 더 나은 성능을 제공하며, 빠른 기록속도가 필수적이지 않다면 일반적인 다중 사용자 환경을 위해 가장 좋은 선택이다. 그러나 최소한 3대, 일반적으로는 5대 이상의 드라이브가 필요하다.
RAID 4와 마찬가지로 두개 이상의 디스크에 장애가 발생할 경우에는 데이터 손실이 발생하며, RAID 4가 제공하는 볼륨 확장의 유연성도 제공하지 못한다. 하지만 현재 가장 많이 사용되는 RAID 방식이다.

· RAID 6 
RAID 5와 비슷하지만, 다른 드라이브들 간에 분포되어 있는 2차 패리티 구성을 포함함으로써 매우 높은 장애 대비 능력을 제공한다. RAID 6를 채택한 상용 디스크 어레이는 찾아보기 힘들다.

· RAID 7
이 형식은 컨트롤러에 내장된 실시간 운영체계를 사용하며, 속도가 빠른 버스를 통한 캐시, 독자적인 컴퓨터의 여러 가지 특성을 포함하고 있다. RAID 7을 상용 제품에 적용한 업체는 한 곳에 불과하다.

· RAID 0+1(Striping & Mirroring)
RAID 0+1은 RAID 0의 빠른 속도와 RAID 1 의 안정적인 복구 기능을 합쳐 놓은 방식이다. 최소 4대의 디스크로 구성되는 방식으로서, 데이터가 입력되면 스트라이핑 방식으로 두 개 이상의 디스크에 나눠서 저장하며 동시에 같은 형태로 다른 하드디스크에도 동일하게 저장된다.
4개의 디스크로 RAID 0 + 1 방식으로 구성하면 2개의 디스크로 스트라이핑할 때와 같은 쓰기 속도가 나오며 읽기 속도는 4개의 디스크에서 나눠서 읽어오기 때문에 보다 빠른 속도를 갖게 된다. 그리고 미러링으로 똑같은 디스크 복사본을 갖고 있기 때문에 장애가 발생했을 때도 완벽한 복구가 가능하다.



출처 : 
on the NET

.