http://www.cyworld.com/knfie16/3579531
RAID란 무엇인가?
요 즘 웬만한 메인보드를 보면 RAID(레이드)를 지원한다는 내용을 발견하기가 쉽습니다. RAID는 예전에는 적은 용량을 가진 디스크 여러대를 연결해 하나의 디스크처럼 만들어 사용하는 것이었지만 이제는 하드 디스크 드라이브가 갖는 성능이나 안정성을 더 향상시키기 위해서 사용됩니다.
RAID 란 단어는 'Redundant Array Of Independent(예전에는 Inexpensive) Disk'의 약자로 굳이 해석하자면 복수배열독립 디스크 정도로 풀이할 수 있습니다. RAID는 독립적으로 만들어진 2개 이상의 하드 디스크 사이를 병렬로 처리해서 데이터를 입/출력 하는 것이라 컴퓨터에 2개 이상의 하드 디스크 드라이브가 있을 때에 구성 가능합니다.
물 론 데스크탑용 PC에서 사용되는 3.5인치 하드 디스크가 이제는 단일 제품으로 2TB(테라바이트) 용량까지 출시되었으니 그 동안 용량이 모자랄 때마다 250~500GB 하드 여러 대를 가끔씩 구입해서 사용하는 사람이라면 아직도 RAID의 원래 개념인 '저렴한 하드를 하나로 묶어서 쓰기'로 생각해도 무방하겠습니다.
아 무튼 기술 자체가 하드 여러 개를 지지고 볶는 일이다 보니 인터페이스나 동작이 복잡하고 시스템 자원을 많이 필요로 하기 때문에 처음에는 SCSI 인터페이스를 중심으로 하는 서버시스템에서나 사용되곤 했지만 점차 데스크탑 시스템에서도 IDE와 SATA를 통해 RAID 기능을 지원하더니 이제는 메인보드에 기본으로 포함되기까지 합니다.
※RAID(Redundant Array of Inexpensive Disks)는 88년도에 "A Case for Redundant Arrays of Inexpensive Disks (RAID)" 라는 논문으로부터 시작됩니다. 이 논문을 쓴 David Patterson, Garth Gibson, Randy Katz 이 3사람은 버클리대학 재학중에 데이터와 패리티 정보를 물리디스크에 배치하는 방법에 따라서 디스크 array를 분류하고 있는데, 이것은 발전하여 우리가 흔히 부르는 Raid level라고 불리게 된겁니다. raid는 컴퓨터에서 절대적으로 필요한 데이터의 안정을 위하여 장애 발생요인을 최대한 줄인 안정적인 저장장치와 여러개의 HDD를 하나의 논리드라이브로 구성하여 대용량화와, 다수의 하드에 데이터를 분할, 병렬 전송함으로써 전송속도의 향상과 시스템이 가동중에도 디스크 모듈이 문제가 생겨도 핫 스왑을 응용하여 디스크를 교체 하며, 디스크를 보호하는 기능들을 갖게 됩니다.RAID 성능 향상의 원리
RAID 는 크게 스트라이핑(Strpping)과 미러링(Mirroring)으로 구분할 수 있는데, 뒤에서 설명할 RAID 규격은 모두 이 스트라이핑과 미러링을 어떤 식으로 구성했느냐에 따라 나눈 것이기 때문에 두가지 방식 차이만 잘 알아두면 RAID에 대해 절반은 알고 시작하는 것이라고 하겠습니다.
스트라이핑이 란 논리적으로 연속된 데이터를 물리적으로 여러 개의 저장 장치에 나눠서 저장하는 방식으로 우리가 생각하는 파일 1개씩이 아니라 데이터 단위로 나뉘므로 우리가 볼 때는 하나의 하드로 나타나지만 실제로는 하나의 하드에 들어갈 내용을 여러 개의 디스크에 저장하므로 개별 하드의 데이터는 독립적으로는 쓸모가 없고 스트라이핑 된 모든 하드가 있어야 완전한 저장장치가 됩니다.
스 트라이핑이 좋은 점은 병렬로 하드 디스크를 묶었을 때 각 하드와 데이터를 주고 받는 속도가 단일 하드에 데이터를 주고 받는 속도보다 빠르다는 것입이다. 이로 인해 데이터를 하드 디스크에 쓰거나 읽기 위해서 기다려야 하는 시간에 다른 하드의 데이터를 읽고 쓰는 식으로 액세스 타임을 줄일 수 있으며, 이론상 하드 디스크를 추가할수록 성능은 증가하게 되어있습니다.
미러링은 말 그대로 거울에 비치는 것처럼 같은 데이터를 복수의 장치에 동일하게 저장하는 방식입니다. 이것은 성능과는 관계없는 순수한 데이터 보호를 위한 안정성을 추구하는 방식으로 사용자가 직접 데이터를 백업하는 것이 아니라 데이터 자체를 동일한 형태로 2개 이상의 복수 장치에서 보관하기 때문에 한군데서 데이터가 분실되거나 파손되더라도 보존된 다른 장치에서 같은 데이터를 그대로 복구할 수 있습니다. 이런 특성에 의해 주로 서버에 많이 사용되어집니다.
미 러링의 경우는 스트라이핑처럼 성능 향상과 관계없고 오히려 복수의 하드에 같은 내용을 저장해야 하므로 성능이 같거나 미세하게 떨어질 수 있고 2개의 하드가 같은 데이터를 기록하게 되니 사용 가능한 용량도 절반으로 줄어들게 됩니다. 하지만 데이터 복구가 가능하기 때문에 역시 단독 RAID1 시스템보다는 데이터 유실의 염려가 큰 스트라이핑을 보완하는 식으로 함께 구성됩니다.
스 트라이핑과 미러링을 어떤 식으로 구성하느냐, 그리고 두가지 방식을 보완하기 위해서 어떤 방법을 택하고 있느냐에 따라 RAID의 규격이 바뀌게 되는데 수많은 RAID 규격 가운데 표준 규격으로 사용되는 것들과 비표준 규격이지만 데스크탑 메인보드 제품에서 지원되는 규격들을 살펴보겠습니다.
◎ 레이드 구성시 필히 알아두어야할 용어
이 기술은 프로세서가 하나의 디스크에서 읽어 들이는 것보다 더 빠르게 데이터를 읽거나 쓸 수 있다면 매우 유용하다.
즉, 서로 겹쳐서 읽거나 쓸 수 있도록 설계된 네 개의 드라이브가 있을 경우, 보통 하나의 섹터를 읽을 수 있는 시간에 네 개의 섹터를 동시에 읽을 수 있다.
(2) 미러링(mirroring): 디스크에 에러가 발생할 경우를 대비하여 데이터의 손실을 막기위해, 데이터를 하나 이상의 장치에 중복 저장하는 기술이다.
RAID-0 (Striping)
스트라이핑으로도 불리며, 데이터의 빠른 입출력만을 위한 레벨이다. 데이터를 여러개의 디스크에 분산하여 속도만 빠르게 올린것이며, 단점은 장애발생을 대비한 저장공간을 갖지 않아서 안전성이 떨어집니다.
장단점 RAID-1 (Mirroring) 미러링이라고 불리는 이 레벨은 드라이브에 기록되는 모든 데이터를 다른 드라이브에 복사하여 실제 사용되는 디스크는 논리디스크의 2배가 됩니다. (필요한 용량의 2배의 디스크가 필요) 속도는 Raid0보다는 느리지만 일반 하드디스크를 사용할때 보다는 빠릅니다.(쓰기는 느려요!) 장단점 RAID-2 (Hamming Code ECC) 에러검출 기능이 없는 디스크를 위해 hamming오류정정 ECC를 사용하는 모드입니다. 하지만, 근래에 들어와서 거의 모든 하드디스크에서는 에러검출능력을 갖고 있기 때문에 사용되지 않습니다. 장단점 RAID-3 (Data Striping with a Dedicated Parity Disks) 패리티의 정보를 저장하고, 다른 디스크들 사이에 데이터를 Byte단위로 쪼개어 분산합니다. 패리티 정보는 어느 한 드라이브에 장애가 발생하였을때 데이터들을 복구할수 있도록 해줍니다. 이 레벨을 구성시에는 하드웨어가 많이 따라가야 구성할수 있습니다. 장단점 RAID-4 ( Independ Data Disks with Shared Parity Disk) 하나의 드라이브에 패리티의 정보를 저장하고, 다른 디스크들 사이에 데이터를 블록단위로 쪼개어 분산합니다. 패리티 정보는 어느 한 드라이브에 장애가 발생하였을때 데이터들을 복구할수 있도록 해줍니다. 여러개의 디스크로 스토리지를 구성하였을때, 하나의 디스크만 패리티를 저장하게 하여 속도또한 빠릅니다. 허나 쓰기를 할때마다 패리티의 정보를 갱신하여야 되기 때문에 추가적인 시간이 필요합니다. 장단점 RAID-5 (Independent Data Disk with Distrubuted Parity Blocks) 패리티 정보를 모든 블록의 스토리지에 나누어서 기록을 하게 됩니다. 패리티를 담당하는 디스크의 오류나, 병목현상에 대비하여 만들어진 레벨이며, 쓰기를 할때는 속도가 빠르나, 읽기를 수행할땐 각 블록에서 패리티의 정보를 건너뛰어야 하기 때문에 raid 4보다 상당히 느립니다. 장단점 RAID-6 (Independent Data Disk with Two Independent Distrubuted Parity Schemes) 그리고 모든 Drive를 통해 두번째 Parity set에 계산되고 쓰여진다. 장단점
RAID-7 (Optimized Asynchrony for High I/O Rates as well Hiht Data Transfer Rates) RAID 컨트롤러에 OS가 내장되어 있어 빠른속도의 버스와 캐쉬를 사용하며, 물리적인 컴퓨터의 모든 능력을 RAID 컨트롤러에 구현시켜놓은 레벨입니다. 장단점 RAID-10 (Very High Reliability Combined with High Performance) RAID1로 구성된 드라이브를 한번더 스트라이프 어레이로 묶어 안정성과 속도를 향상시킨 레벨입니다. 장단점 RAID 0+1 (High Data Transfer Performance) 장단점 |
[동아닷컴]
유명한 바퀴벌레약 이름과 똑같은 ‘레이드(RAID)’ 디스크 어레이 기술은 최근 들어 일반 사용자들에게 주목받고 있지만, 실은 서버나 스토리지 분야에서는 이미 십수 년 전부터 사용되던 중요한 기술이다.
디스크 어레이(Disk Array)란 단어 그대로, 각각의 하드디스크를 굴비 엮듯 하나로 엮어 하나 (또는 그 이상)의 논리 드라이브로 구성하는 기술을 의미한다. 어려운가? 하긴 말하는 본인도 어렵다.
예를 들자. 1GB짜리 ‘야동’ 파일이 하나 있다. 이걸 하드로 복사하고 싶은데, 내 컴퓨터 디스크는 500MB, 300MB, 300MB짜리 3개로 되어 있어 어떤 디스크로도 1GB 파일을 복사할 수가 없다. 이런 경우를 일컬어 어처구니가 없다고 한다(참고로 ‘어처구니’는 맷돌의 손잡이 부분을 뜻하는 순우리말이다. 맷돌을 사용하려는데 손잡이인 어처구니가 없다면… 정말 어처구니없는 상황인 것이다).
하여튼 위와 같은 경우에 3개의 디스크를 하나로 묶어 1.1GB짜리 단일 드라이브로 사용할 수 있도록 하는 게 디스크 어레이 기술, 나아가서는 레이드다. 초기에는 'Redundant Array of Inexpensive Disks'의 약자로 통용됐다. 우리말로 하면 '저가 디스크의 다중 배열' 정도의 의미로, 앞서 예로 든 저용량 디스크 여러 개를 연결해 하나의 디스크로 사용케 하는 기술이었다.
그러다 최근에는 'Redundant Array of Independent Disks(독립 디스크의 여분 배열)'의 약자로 바뀌었다. 왜냐하면 하드디스크 용량이 점차 커지면서 저장 용량이 아닌, 데이터 보호 또는 디스크 성능 문제 때문에 적용하는 경우가 많아졌기 때문이다.
자 그럼 이 레이드에 대해 차근차근 알아보도록 하자.
1. 레이드 구성 방식에 따른 분류 - 하드웨어적 레이드 vs 소프트웨어적 레이드
레이드 구성을 사용하기 위해서는 기본적으로 레이드 컨트롤러(제어기)가 필요하다. 서버나 스토리지급에서는 별도의 어댑터 카드를 장착한다. 왜냐하면 레이드를 구성하고 데이터를 처리하는 데 부하가 많이 걸리기 때문이다. 이 때문에 레이드 컨트롤러에는 프로세서와 메모리 등이 따로 달려 있다. 이런 레이드 컨트롤러는 상당히 비싸다.
별도 어댑터 카드 형태가 아닌 메인보드에 내장된 형태도 있다. 요즘 흔히 사용되는 S-ATA용 메인보드가 대개 기본적인 레이드를 지원하고 있다. 물론 제품에 따라 지원하지 않기도 하니 사전 확인이 필요하다.
이렇게 별도의 어댑터 카드나 내장 칩을 통해 레이드를 구성, 설정하는 형태를 ‘하드웨어적 레이드 구성’이라 한다. 이에 따라 레이드를 적용하기 위해서는 별도의 컨트롤러를 구매하거나, 이를 지원하는 메인보드를 준비해야 하겠다.
한편 소프트웨어적 레이드는 별도의 레이드 컨트롤러 없이 운영체계 지원만으로 구성하는 레이드다. 대부분의 운영체계가 이를 지원하고, 특히 윈도우 서버 운영체계나 리눅스 ES/AS 등의 서버용 운영체계가 잘 지원하고 있다. 하지만 소프트웨어는 어디까지나 소프트웨어다. 하드웨어적 구성에 비해 성능향상 폭이 작고 안정성도 떨어진다. 따라서 소프트웨어 레이드는 ‘그냥 이런 게 있구나’하는 정도로만 이해하고, 실제로 적용/사용할 생각은 하지 않는 게 좋다. 특히 중요 업무나 서비스 등에 적용했다간 낭패를 볼 가능성이 매우 크니 주의 바란다.
2. 레이드 레벨(Level)에 따른 분류 - 레이드 0, 레이드 1, 레이드 5 등
레이드는 앞서 말한 대로 여러 개의 디스크를 하나로 묶는 기술이다. 이렇게 디스크를 하나로 연결하는 데는 몇 가지 방법이 있다. 레이드에서는 이를 레벨(Level)이라 하고 있는데, 이 레벨에 따라 구성과 특징이 정확히 구분된다. 현재까지 공개된 레이드 레벨은 약 15가지가 있다. 이 중 일반 사용자에게 유용한 레벨은 레이드 0, 레이드 1, 레이드 5, 레이드 1+0 정도다(나머지 레벨은 특정 서버나 스토리지 등의 기업용 솔루션에 적용된다).
레이드로 묶기 위해서는 우선 여러 개의 하드디스크를 준비해야 한다. 여기서 디스크란 물리적 디스크, 즉 실제로 메인보드에 연결되는 하드웨어를 의미한다. 따라서 하나의 디스크를 논리적으로 나눈 '파티션'을 대상으로는 레이드를 구성할 수 없다.
그리고 레이드 컨트롤러 칩(메인보드 내장)이나 카드가 필요하다. 물론 앞서 언급한 대로 칩/카드가 없어도 운영체계 자체가 지원하는 소프트웨어 레이드도 적용할 수 있지만, 테스트 목적이 아닌 이상 절대 권장하지 않는다. 더욱 확실하고 안정적인 레이드 구성 및 운영을 위해서는 별도의 레이드 컨트롤러 카드를 장착하는 게 역시 바람직하다.
레이드 0 - 스트라이프 세트
레이드 0라고도 하고 '스트라이프 세트'라고도 한다. 스트라이프(stripe)는 우리말로 '줄무늬'나 '줄'을 의미하는데, 그 의미 그대로 여러 개의 디스크를 한 줄로 엮어 하나의 드라이브로 만든다는 소리다.
예 를 들어 500GB 하드 두 개를 레이드 0로 묶으면 1TB짜리 드라이브 하나가 생성된다. 디스크가 몇 개라도 관계 없다. 묶는 대로 용량은 증가한다. 단, 500GB와 1TB 하드를 레이드 0로 묶을 경우 1.5TB가 되는 게 아니라 1TB가 됨을 기억하라. 즉 레이드로 묶이는 하드디스크 용량은 기본적으로 작은놈을 기준에 하향 조절된다(공식으로 풀자면 (500GB+1TB)-500GB=1TB가 되는 것이다).
레이드 0 - 스트라이프 세트
레이드 0라고도 하고 '스트라이프 세트'라고도 한다. 스트라이프(stripe)는 우리말로 '줄무늬'나 '줄'을 의미하는데, 그 의미 그대로 여러 개의 디스크를 한 줄로 엮어 하나의 드라이브로 만든다는 소리다.
예 를 들어 500GB 하드 두 개를 레이드 0로 묶으면 1TB짜리 드라이브 하나가 생성된다. 디스크가 몇 개라도 관계 없다. 묶는 대로 용량은 증가한다. 단, 500GB와 1TB 하드를 레이드 0로 묶을 경우 1.5TB가 되는 게 아니라 1TB가 됨을 기억하라. 즉 레이드로 묶이는 하드디스크 용량은 기본적으로 작은놈을 기준에 하향 조절된다(공식으로 풀자면 (500GB+1TB)-500GB=1TB가 되는 것이다).
레이드 0의 가장 큰 장점은 '데이터 입출력 속도의 향상'이다. 데이터를 블록 단위(데이터 저장의 최소 단위)로 잘게 쪼개, 각각의 하드디스크 분산 전송하기 때문에 입출력 속도가 극대화된다. 따라서 레이드 0는 데이터 입출력 속도가 높아야 하는 환경, 예를 들어 웹 서버나 스트리밍 서버, 그래픽 관련 환경 등에 주로 사용된다.
위 그림에서 보듯 데이터 하나가 여러 개의 블록으로 쪼개져 각 디스크로 분산 저장된다. 데이터를 불러들일 때도 분산 로드하기 때문에 속도가 빠를 수밖에 없다. 저렇게 데이터를 블록으로 쪼개 저장하고 합쳐서 불러오는 작업을 바로 레이드 컨트롤러에서 담당한다. 레이드 0에서는 그냥 쪼개기만 하면 되니, 데이터양이 많아도 레이드 컨트롤러에 걸리는 부하가 크지 않지만, 다른 레벨의 레이드에서는 상당한 부하가 발생한다.
이렇게 레이드 구성 설정에 따른 용량 낭비도 없고 입출력 성능이 특히 탁월하지만, 레이드 0는 결정적으로 '데이터 보호' 기능이 없다(유 식한 말로 '내결함성-Fault Tolerant' 기능을 제공하지 않는다고 한다). 아래 설명할 레이드 1, 레이드 5는 레이드 구성이나 디스크에 문제가 발생해도 데이터 손상이나 유실을 방지할 수 있는데, 레이드 0는 레이드 구성이 깨지거나 디스크에 에러가 생기면 데이터도 곧 황천길이다.
물론 아예 데이터를 살리지 못하는 건 아니다. 하드디스크 복구 업체 등에 의뢰하면 되지만, 레이드로 구성된 디스크는 일반 디스크 경우보다 복구 비용이 훨씬 비싸다.
레이드 1 - 미러링 세트
레이드 1은 간단명료한 구성이다. 디스크 하나의 구성을 그대로 다른 디스크에 복사해 두는 개념이다. 즉 디스크와 디스크 사이에 '거울(미러)'을 세운 것처럼 똑같이 만든다고 해서 붙은 이름이다(이와 유사하게, 특정 웹 사이트와 똑같이 많은 또 다른 사이트를 '미러링 사이트'라 한다).
그럼 왜 똑같이 만들겠는가. 그렇다. 데이터 보호 때문이다. 즉 평소에는 디스크 하나로 운영하다가 이 디스크에 문제가 발생하면 레이드 컨트롤러가 자동으로 미러 디스크를 작동시키는 원리다.
레이드 1 - 미러링 세트
레이드 1은 간단명료한 구성이다. 디스크 하나의 구성을 그대로 다른 디스크에 복사해 두는 개념이다. 즉 디스크와 디스크 사이에 '거울(미러)'을 세운 것처럼 똑같이 만든다고 해서 붙은 이름이다(이와 유사하게, 특정 웹 사이트와 똑같이 많은 또 다른 사이트를 '미러링 사이트'라 한다).
그럼 왜 똑같이 만들겠는가. 그렇다. 데이터 보호 때문이다. 즉 평소에는 디스크 하나로 운영하다가 이 디스크에 문제가 발생하면 레이드 컨트롤러가 자동으로 미러 디스크를 작동시키는 원리다.
위 사진을 보면 데이터 하나가 두 개로 복사돼 각각 디스크에 저장되고 있다. 똑같은 데이터를 동일하게 저장하므로 저장 성능은 그대로지만 로딩 성능은 향상된다. 또한 구성도 단순하고 레이드 컨트롤러에 걸리는 부하도 적고, 데이터도 보호되는데 여기에도 또한 결정적 단점이 있다.
그림에서 보듯 데이터를 복사해서 다른 디스크에 넣어두게 되니, 디스크 용량을 50%밖에 사용하지 못한다는 거다. 무슨 소리냐 하면, 500GB + 500GB 디스크를 레이드 1으로 구성했다면, 1TB 용량이 아닌 500GB만 사용할 수 있다는 뜻이다. 왜냐하면 나머지 500GB는 미러용 디스크로 작동되기 때문이다.
따라서 용량 이슈가 큰 환경이 아니라면, 안정한 데이터 보호를 위해 레이드 1 구성을 고려해 보는 것도 괜찮겠다. 특히나 요즘처럼 디스크 기본 용량이 커진 경우라면 더욱 그러하다. 당연하겠지만, 레이드 1을 구성하려면 짝수 개의 디스크가 준비돼야 한다.
레이드 5 - 패리티가 있는 스트라이프 세트
레이드 5는 일반 사용자보다는 중대형 스토리지 환경에 가장 보편적으로 적용되는 레벨이다. 기본 방식은 앞서 본 레이드 0와 유사한 '데이터 쪼개기' 방식을 따른다. 다만 데이터를 쪼개 각 디스크에 저장할 때 '패리티(Parity)'라는 정보 데이터도 함께 실려 보낸다.
이 '패리티' 정보는 데이터 보호를 위한 일종의 안전장치인 셈인데, 특정 디스크에 저장된 데이터가 손상되거나 유실되면, 그다음 디스크에 저장된 패리티 정보를 토대로 손상/유실 데이터를 복구할 수 있다.
위 사진에서 보듯 데이터는 블록 단위로 쪼개져서 디스크에 저장되지만, 이때 '녹색' 데이터, 즉 패리티 정보 데이터가 함께 저장된다. 여기서 바로 옆 디스크의 정보를 기록하기 위해, 각 디스크에 번갈아 한 번씩 저장되게 된다. 방금 말한 대로, 특정 디스크에 문제가 발생하면 그 옆의 디스크에 저장된 패리티에서 정보를 참조해 데이터를 복구하는 것이다.
그래서 레이드 5를 '패리티가 있는 스트라이프 세트-Stripe set with parity'라고도 한다(앞서 본 레이드 0는 '패리티가 없는 스트라이프 세트-Stripe set without parity'인 것이다).
레이드 5 역시 스트라이프 세트이다 보니 입출력 성능이 향상된다. 단 레이드 0만큼은 아니다. 왜? 바로 패리티 연산 때문이다. 데이터 입출력이 엄청난 환경에서 레이드 5 구성을 사용하려면, 사양이 제법 높은 고가의 레이드 컨트롤러를 사용해야 한다(카드 한 장에 50~100만 원 정도 한다).
그렇긴 해도 가장 확실하고 안전하게 데이터를 보존할 수 있는 레이드 레벨로 인식되어, 데이터베이스 스토리지 구성에 일반적으로 적용되고 있다.
레이드 5 구성을 위해서는 디스크가 최소 3개 이상은 되어야 한다. 즉 2개로는 레이드 5를 구성할 수 없다.
아울러 용량도 전체 용량의 70%, 즉 2/3밖에 사용하지 못한다. 나머지 1/3은 패리티 정보를 저장해야 하기 때문이다. 예를 들어 500GB + 500GB + 500GB 디스크를 레이드5로 묶으면 1TB 밖에 사용하지 못하는 것이다.
레이드 0, 레이드 1, 레이드 5 레벨 이외에도 여러 레벨이 있지만, 일반적으로 사용되는 건 이 3가지다. 다만 레이드 0+1 또는 1+0 레벨이 그나마 알려져 있는데, 앞서 레이드 0과 레이드 1의 특징을 결합한 것이라 보면 된다.
즉 스트라이프 세트로 구성하되 이를 그대로 미러링한다는 의미다. 가끔 사용하긴 하는데 그리 흔치는 않다. 레이드 적용 대비 디스크 낭비도가 높기 때문이겠다. 하지만 디스크 입출력 성능은 최강이다.
자, 그럼 레이드 레벨로 디스크 어레이를 구성해 사용하다가 문제가 발생하면 어떻게 될까?
여기서 문제라 함은, 레이드 구성이 깨졌다거나(더러 발생하기도 한다) 디스크 자체에 불량(배드)이 생겼다거나, 레이드 컨트롤러에 이상이 발생했거나 하는 걸 말한다.
먼저 레이드 0는 방법 없다. 그냥 ‘OUT’이다. 운영체계를 깔았다면 당연히 부팅도 안 된다. 중요한 데이터가 있었다면 복구 업체에 비싼 돈 주고 의뢰하고 기도하는 수밖에 없다. 따라서 중요한 데이터를 처리하는 시스템이라면 절대로 레이드 0로 구성하면 안 된다.
앞서 잠깐 언급한 레이드 0+1이 이런 경우를 대비해 레이드 0 구성을 미러링(레이드 1) 해두는 방식이다.
다음으로 레이드 1 미러링은 일단 원본 디스크에 문제가 발생해도 시스템은 정상 작동을 유지한다. 왜냐면 레이드 컨트롤러가 원본 디스크 이상에 이상이 있음을 감지하면, 자동으로 미러링 디스크로 이동하기 때문이다. 두 디스크는 똑같은 형태로 똑같은 데이터가 들어 있는 쌍둥이 디스크이니….
참고로 한 디스크에 문제가 발생하면 레이드 컨트롤러가 비프음을 울리거나 적색 LED로 표시해 준다.
레이드 5의 경우도 디스크 장애 시 시스템 작동을 유지하 는데, 동시에 2개 디스크에 문제가 발생했다면 역시 데이터는 영면하신다. 즉 최소 구성 디스크 개수가 3개이니 이 중 하나까지는 문제없고, 두 개 이상이면 역시 골로 가신다(인접 디스크에서 패리티 정보를 읽어와야 하는데 그럴 수 없으니까). 사실 두 개 디스크가 동시에 나갈 경우는 잘 없긴 하지만, 그렇다고 아예 없는 것도 아니니 염두에 두자.
이 때문에 레이드 5 구성 시에는 두 개 디스크 동시 장애를 대비해 여분의 디스크를 하나 더 연결해 두기도 한다. 이걸 레이드 5 + S(스페어-spare)라고 하는데, 레이드 5를 지원하는 레이드 컨트롤러 설정 화면을 보면 흔히 'S'로 표기된다. 예를 들어, 디스크 3개를 레이드 5로 묶으면서 나머지 하나를 '스페어'로 구성하면(스페어 디스크는 데이터 저장에 사용될 수 없다), 2개 디스크 장애 시 스페어 디스크가 자동 투입되어 시스템 다운을 방지하게 된다. 물론 이런 경우에는 즉시 장애 디스크를 교체해야 한다.
자, 문제/장애가 발생한 디스크를 새 제품(동일제품)으로 교체해 레이드 컨트롤러에 연결하면, 자동으로 원래의 레이드 레벨 설정으로 재구성(rebuild)한다. 레이드 1이라면 디스크 내용을 그대로 복사해 전송할 것이고, 레이드 5라면 인접 디스크의 패리티 정보를 가지고 데이터를 복원, 저장하는 작업이 백그라운드로 진행된다(디스크 용량에 따라 며칠이 걸리기도 한다).
이 정도면 레이드의 기본적인 개념과 원리는 이해할 수 있을 거로 생각한다. 요즘 출시되는 S-ATA용 메인보드는 대게 레이드 0와 레이드 1까지는 지원하는 편이다. 사실 개인 컴퓨터 환경이라면 데이터의 중요성보다는 ‘성능 향상’이 목적일 텐데, 디스크 2개를 레이드 0로 묶어 입출력 성능을 극대화하는 것도 나름대로 효과 있는 '성능 튜닝법'이다. 당연히 ‘여차하면 운영체계 다시 깐다’는 생각으로 중요 데이터는 별도 백업해야 하겠다.
알 고 있는 대로, 요즘 CPU나 메모리 등의 비약적인 성능 발전에 비해 하드디스크는 십수 년째 거의 제자리걸음이다. 하드디스크 성능이 CPU나 메모리의 성능에 어느 정도 근접해 준다면, 실제로 사용자가 체감하는 성능 향상의 폭은 매우 커진다. 그만큼 디스크의 데이터 입출력 성능은 시스템 전체 성능과 직결하므로, 기회가 된다면 레이드 0 등 구성을 고려해봄 직하다.
글 / IT동아 이문규(munch@itdonga.com)
-첫번째 질문: 레이드하면 빨라진다는데, 레이드가 무엇인가요?
레이드는 Redundant Array of Independent Disk를 줄여 부르는 말로 흔히 RAID라고 씁니다. 하드디스크와 같은 저장장치에서 사용되는 특별한 기술인데요, 한마디로 요약하자면 하드디스크 여러 개를 '협동'하도록 해서 성능과 안전성을 올리는 기술입니다.
예를 들어, 우리가 하드디스크에 A와 B라는 데이터를 기록하라고 명령을 내리면 하드디스크는 A를 기록한 후에 B를 기록하게 됩니다. 또, C와 D데이터를 읽어들이라고 명령하면 C를 읽은후 D를 읽어 들이겠죠. 하드디스크는 아주 빨리 일을 해서 우리가 동시에 하는 것처럼 느끼는 것뿐이지 사실은 순서대로 일하고 있습니다.
RAID기술은 여기에 착안했습니다. 두 개의 일을 하나의 하드디스크에 주지 않고 두 개의 하드디스크에 하나씩 시키는 것이죠. 즉, 1번 하드디스크에는 A를 쓰라 하고 2번 하드디스크에는 B를 쓰라고 하는 겁니다. 혼자 두 개 쓰는 것보다 둘이 하나씩 쓰니 간단하게 속도가 두 배가 되지요.
이는 RAID기술 중 '0'을 설명한 것이고, 이와 함께 자주 쓰이는 RAID1 기술이 있습니다. RAID1은 A라는 데이터를 두개의 하드디스크에 동시에 기록합니다. 즉, 1번과 2번 하드디스크 모두에 A를 기록함으로써, 한쪽의 데이터를 잃어버리더라도 한쪽의 살아 있는 데이터를 이용할 수 있어 중요한 데이터 보호에 유용합니다.
또, RAID5 모드로 자주 쓰입니다. 0,1과 달리 최소 3개의 하드디스크가 필요한 RAID5모드는 0의 단점을 보완한 형태로 데이터를 분산시켜 저장하면서 패리티라 불리는 복구 데이터를 따로 저장합니다. 복구 데이터를 통해 혹시 모를 에러에 대비하는 것으로 RAID0 모드의 속도와 안정성을 높인 기능입니다. 이렇듯 RAID의 여러 모드는 RAID0과 RAID1의 특징을 기초로 이 두 가지의 특징을 혼합한 형태로 되어있습니다.
우와 신기한 기술이네요! 그렇다면 하드디스크가 4개,8개가 되면 그만큼 더 빨라지겠네요?
물론 하드디스크가 늘어날수록 그만큼 빨라집니다. 이론상 4개가 되면 4배, 8개가 되면 8배 더 빨라지지요. 하지만, 몇 가지 문제가 있어서 이론상 최대 속도는 나오지 않습니다. 일하는 사람이 많아져 작업 속도가 빨라지게 되면 일을 시키고 관리하는 사람이 바빠집니다. RAID기술도 마찬가지로 일할 하드디스크가 늘어날수록 지시를 내리는 프로세서가 더 많은 일을 해야 하지요.
또 다른 문제는 안정성입니다. 위에서는 이해하기 쉽도록 A와 B로 나누어서 설명했지만, 실제 PC의 데이터는 A와B처럼 딱딱 끊어지는 것이 아니고 A를 반으로 나누어서 두 하드디스크에 기록해야 하는 일도 일어납니다. 하나의 데이터를 나누게 되면 필연적으로 발생하는 문제가 '신뢰성'입니다. 1%의 오차만 발생하더라도 원래의 A가 사라질 수 있지요. 여러 하드디스크에 데이터가 완벽하게 저장되고 읽힐 수 있도록 많은 기술이 필요합니다. 이런 문제들로 말미암아 RAID기술의 속도가 높아지는 데는 어느 정도 한계가 있습니다.
과거에는 따로 RAID카드와 같은 장비를 구매해야 했지만, 요즘은 기술이 발전해 우리가 쓰는 메인보드들에 RAID기능이 포함되어 있으므로, 몇 가지만 알고 있으면 누구나 RAID를 쓸 수 있습니다. 일단 자신의 메인보드가 RAID를 지원하는지 확인합니다. 아주 구형PC라면 지원이 안될 수 있으니까요. 또, 필요한 RAID모드가 지원되는지 확인합니다. 대부분 개인용도로는 RAID 0,1이 쓰이니 별 문제는 없을 것입니다.
중요한 것은 하드디스크의 구성입니다. RAID를 위한 하드디스크는 반드시 같은 제품을 사용해야 합니다. 용량을 맞추기 위한 것도 있지만, 무엇보다 안정성을 위해서죠, 2개를 쓰던 4개를 쓰던, 반드시 같은 하드디스크로 RAID를 구성하도록 합니다.
예산에 여유가 있거나 중요한 작업에 쓸 것이라면 RAID전용 카드를 구매하는 것이 좋습니다. RAID전용 카드는 RAID에 특화된 컨트롤러와 메모리 등의 보조 기능이 들어있어 보다 빠르고 안정적으로 RAID환경을 만들 수 있게 해줍니다. 기능은 좋은데 가격이 비싼 것이 한 가지 흠이죠. 또 RAID는 SSD(Solid State Drive)를 이용해도 가능합니다. SSD 두개를 RAID 0으로 구성한다면 엄청나게 빠른 저장장치를 만들 수 있지요.
RAID를 쓸 때 유의할 점은 구성된 하드디스크들이 항상 같이 있어야 한다는 점입니다. 데이터가 각각 기록되는 RAID 1의 경우는 상관없지만 RAID 0은 하나의 데이터가 여러 하드디스크에 나누어져 기록되므로 어느 한쪽에라도 문제가 생긴다면 전체 데이터를 잃을 수 있죠. 이 때문에 RAID구성은 관리에 특별히 유의해야 하며 혹 분리할 일이 생기더라도 다시 연결할 때 순서를 잘 맞춰 연결하는 것이 중요합니다.
-두번째 질문: 코어 i5는 듀얼 채널 메모리, 토어 i7은 트리블 채널 메모리라는데, 차이가 무엇인지요?
이 궁금증을 이해하려면 먼저 메모리 채널이 무엇인지 알아야 합니다. 메모리는 프로세서가 필요한 데이터가 보관되는 곳입니다. 메모리가 작업할 데이터를 프로세서로 넘겨주면 프로세서가 작업을 마치고 메모리에 보관하고 또 필요하면 가져다 쓰고 하는 것이죠. 여기서 문제가 하나 있습니다. 메모리가 프로세서 보다 느리다는 것이죠. 프로세서가 데이터를 필요로 하는데 메모리가 이 속도를 잘 따라가지 못하는 것입니다. 이로 말미암아 PC의 고질적인 문제로 지적되는 '병목현상'이 발생합니다. 이 문제를 해결하기 위해 듀얼 채널 메모리 인터페이스가 등장합니다.
여기서 말하는 듀얼 채널이란 프로세서와 메모리가 데이터를 주고받는 통로가 두 개란 뜻입니다. 싱글 채널은 하나가 되겠지요. 두 개의 통로로 주고받게 되니 더 빠른 속도(대역폭이라 합니다.)로 데이터를 처리할 수 있게 되지요. 1차선도로보다 2차선도로가 빠른 것과 같은 이치입니다. 이런 장점이 있어 듀얼 채널 메로리는 현재의 PC라면 모두 채용하고 있는 방식입니다. 인텔 코어 i7 프로세서는 이 메모리 채널이 세 개인 트리플 채널로 3차선 도로가 뚫려 있는 것으로 생각하면 됩니다. 당연히 채널이 두 개인 코어i5보다 더 빠르지요.
트리플 채널이 속도가 빠른것 같기는 한데, 실제로도 많은 차이가 날까요?
전문가들의 분석에 따르면, 같은 코어 i7프로세서에서 듀얼 채널과 트리플 채널 메모리에 따른 성능은 크게는 50%에서 적게는 3%정도 차이가 나는 것으로 알려져 있습니다. 이렇게 차이가 크게 나타나는 이유는, 대역폭은 작동 속도와 달라서 항상 수치 상의 초고 속도가 나오지 않기 때문입니다. 실제 사용하는 프로그램이 대역폭을 얼마나 잘 활용하느냐에 따라 결과가 크게 차이 나므로, 어떻게 쓰냐에 따라 큰 차이를 느낄 수도, 느끼지 못할 수 있습니다.
분명히 트리플 채널이 듀얼 채널보다 성능은 우수합니다. 다만, 전체적으로 아주 월등하게 앞선다고 말하기는 어렵기에, 인텔 코어i7프로세서에 주어진 일종의 보너스라고 생각하면 되겠습니다. 하지만, 작은 차이가 명품을 만들 듯이, 인텔 코어 i7 프로세서에서만 맛볼 수 있는 매력 중 하나이지요.
트리플 채널 메모리를 쓰려면 어떻게 해야 하나요?
듀얼 채널 메모리를 쓰는 방법과 다르지 않습니다. 같은 용량, 같은 속도의 메모리를 세 개 설치하면 됩니다. (이는 기본이지만 꼭 같은 용량, 속도가 아니어도 사실 상관은 없습니다) 예를 들어, 듀얼 채널 메모리에서 2GB면 1GB 두 개, 4GB면 2GB 두 개 혹은 1GB 4개씩을 쓰는데, 프리플 채널 메모리라면 3GB면 1GB세 개, 6GB면 2GB 세 개 혹은 1GB 6개를 설치하는 것이지요. 이렇게 메모리를 세 개씩 설치하면 트리플 채널로 메모리가 작동합니다. 그럼 두 개, 네 개씩 설치하게 되면? 듀얼 채널 메모리로 작동하게 됩니다.
그리고 하나 참고할 점이 있습니다. 인텔 코어 i7프로세서 중에서도 트리플 채널 메모리가 가능한 프로세서는 인텔 코어i7 900시리즈 프로세서에 한정됩니다. 인텔 코어 i7 800시리즈는 트리플 채널을 지원하지 않고 듀얼 채널만 지원하니 메모리를 세 개 설치하더라도 의미가 없습니다. 고급 중에서도 최고급 제품인 인텔 코어 i7 900 시리즈에만 주어지는 프리미엄 기능인 것이지요.
-세번째 질문: 노트북 무선 인터넷 속도는 54Mbps 밖에 안되나요?
아닙니다. 노트북 무선 인터넷 속도도 54Mbps 이상을 낼 수 있습니다. 이 무선 인터넷(무선 네트워크) 속도는 규격에 따라 차이가 나는데, 한 때는 54Mbps가 최고 속도였지만 요즘은 100Mbps 이상의 무선 인터넷 규격도 나와있습니다. 그런데 우리는 흔히 무선 네트워크 속도라 하면 54Mbps를 떠올리게 되죠. 그 이유는 무선인터넷 환경이 대중화되었던 시기에 가장 많이 쓰였던 802,11g규격의 속도였기 때문입니다.
무선 인터넷에 관심을 두었던 분들이라면 이 '802.11'이라는 문구를 자주 보았을 것입니다. 무선 인터넷의국제 표준 규격인 'IEEE 802.11'을 줄여 부르는 것인데요, 세부적으로 802.11a, 802.11b, 802.11g등, 여러 규격이 존재합니다 현재는 802.11g 이후로 등장한 802.11n이 최신 규격으로 최고 속도가 150Mbps에 달하며 40MHz 대역을 이용한다면 최고 300Mbps이상으로 매우 빠른 속도를 자랑합니다. 이 802.11n규격을 지원하는 장비를 이용한다면 얼마든지 54Mbps보다 빠른 무선인터넷을 쓸 수 있지요.
굉장하네요! 실제로도 그렇게 높은 속도로 쓸수 있나요?
우선 802.11n의 사용법은 이전과 다르지 않습니다. 송수신 장치가 모두 802.11n을 지원하면 되지요. 요즘 공유기들은 물론, 와이파이를 지원하는 스마트폰들도 802.11n을 지원하는 경우가 많아 이미 대중화는 시작되었다고 보면 됩니다. 802.11g규격장비와 하위 호환도 가능하므로, 당장활용하기 문제 없으니 특별한 일이 없다면 802.11n 지원 장비를 구매하는 것이 현명합니다.
그렇다면 많은 분들이 궁금증을 갖는 802.11n의 실제 속도는 과연 얼마나 될까요? 실제로 테스트 해보면 802.11n은 90Mbps이상의 속도를 보이고 있습니다. 즉, 100Mbps 광랜 회선도 소화 가능한 충분한 대역폭을 보여준다는 것이죠. 아직 802.11n의 최대 대역폭까지도 여유가 있으니 더 빠른 광랜회선을 이용한다면 더욱 높은 속도도 낼 수 있게 됩니다. 속도 말고도 이점은 또 있습니다. 802.11n은 송수긴 거리가 802.11g보다 두 배 가량 넓어진 250M(미터)에 달합니다. 실내에서도 70m를 전송할 수 있어 거리의 제약이 훨씬 적어졌습니다. 더 빨리지고, 더 넓어진 것이죠.
물론, 주변 환경에 영향을 많이 받는 무선 신호인 만큼, 회선 상태나 신호 상태, 잡음 등에 따라서 속도와 송수신 거리가 변동될 여지는 많습니다. 하지만 802.11g의 54Mbps 속도 보다는 확실히 빠르고 넓다는 점은 분명하기에 사용하는 회선이 100Mbps 광랜급이라면 802.11n 지원 장비로 업그레이드를 하여 더욱 쾌적한 환경을 맛볼 수 있습니다.
801.11n은 안테나를 많이 쓴다는데, 안테나 수가 많을 수록 좋은건가요?
무선 신호는 안테나의 성능에 큰 영향을 받습니다. 안테나 크기가 충분히 크지 못한 USB형식 무선 랜카드들이 실제 송수신 성능이 좋지 못한 것을 예로 들 수 있습니다. 때문에 아무리 802.11n규격이더라도 안테나에 따라 성능이 달라질 수 있습니다. 이 때문에 802.11n 규격을 지원하는 공유기나 무선 랜카드를 보면 여러 개의 안테나가 있는 경우를 쉽게 볼 수 있습니다. MIMO(Muitiple-Input Muitiple-Output)라고 하는데요, 쉽게 말해 안테나 수를 늘려 송수신 효과를 높이는 기술로 802.11n규격 이전에도 쓰였던 방식입니다.
802.11n은 성능을 높이기 위해 MIMO를 이용, 3개의 안테나 사용을 권고하고 있습니다. 충분한 안테나 수로 안정적인 속도를 확보함과 더불어 송수신 거리를 늘려주는 효과도 있지요. 때문에 같은 조건이라면 안테나 수가 많은 제품이 유리합니다. 단, 송신 장치(예:공유기)의 안테나가 MIMO방식이라면 수신 장치(예:랜카드)의 안테나도 MIMO방식이어야 효과를 볼 수 있습니다. 정리하자면 안테나 수는 속도와 송수신 거리 모두에 영향을 미치므로 안테나 수도 잘 고려하시기 바랍니다.
두 단위는 얼핏 같이 보이지만 분명히 다릅니다. Mbps는 Mega bit per second의 약자로 초당 1백만 비트 전송률을 말하고요, MB/s는 Mega Byte per second로 초당 1백만 바이트 전송률을 말합니다. 우리가 주로 쓰는 단위는 바이트로, 인터넷 브라우저가 파일을 주고받는 속도 단위로 바이트로 표시됩니다.
바이트는 비트로 환산하면 8배가 됩니다. 즉, 1바이트는 8비트가 되지요, 그러므로 100Mbps 속도를 우리가 쓰는 PC환경에 대입하면 나누기 8을 해서 12.5MB/s가 됩니다. 난 100Mbps 광랜을 쓰는데 왜 파일을 다운 받는데 12.5MB/s가 나올까? 하는 질문에 대한 해답이죠.
이렇게 비트와 바이트는 분명한 차이가 있으므로, 혼동을 막기 위해 보통 비트는 소문자 b로, 바이트는 대문자B로 사용하는 것이 규칙입니다. 인터넷 회선 광고 중에 '100Mbps'라는 문구를 적기도 하는데, 이는 규칙에 대입하면 구현 불가능한 속도(800Mbps)가 되므로 오류입니다.
댓글 없음:
댓글 쓰기