mystor_storage

필자가 사용하는 레이드용 디스크와 백업디스크, OS용 SSD

기본적으로 홈서버는 스토리지 서버를 기반으로 데이터의 저장소 역활을 하는게 대부분의 1차적인 목적이기 때문에 스토리지에 많은 투자를 합니다.

예산에서 대부분을 차지하는게 스토리지 이기 때문에 하드웨어 개론 – 레이드편 에서는 아직 홈서버를 도입하지 않거나 또는 홈서버를 개선하기 위해 정보를 모으고 있는 유저를 위해 레이드에 대한 특징을 소개하고 자신에게 필요한 하드웨어를 금액의 낭비 없이 구성하는 것을 목표로 작성하였습니다.

레이드의 개념과 백업의 차이점

홈서버에 대해 정보를 모으다 보면 많이 접하는 키워드가 ‘레이드’ (Redundant Array of Independent Disk) 입니다. 레이드는 디스크를 다수 묶어 정해놓은 레이드 레벨을 일련의 연산을 통해 데이터를 처리하고 저장합니다. 레이드의 최우선 목표는 시스템의 무정지에 기반하며 다수의 디스크를 통한 성능향상과 큰 단일 볼륨을 만들수 있는 이점이 있습니다. 여기서 오해가 한가지 생깁니다.

‘데이터를 영구보존 하고 싶은데 어떤 레이드 컨트롤러를 사용해야 되며 어떤 레이드 레벨을 선택해야 하나요?’
우선 답변은 ‘백업에 레이드를 사용하지 마세요.’

RAID 5,6의 구조적 특성때문에 ‘디스크가 하나 고장나도 안전하구나’ 라고 생각하는 사용자는 이걸 백업의 용도로 사용하려 하는데 아쉽게도 레이드를 백업으로 사용하기 꺼려지는 이유 역시 레이드의 구조에 있습니다.

레이드의 이론적인 구조는 데이터를 분할해서 저장하고 페리티(Parity) 정보를 남겨 복구에 이점을 가지지만 이 연산을 관장하는 컨트롤러의 도움이 필요하기 때문에, 반대로 얘기하면 볼륨을 묶었던 레이드 컨트롤러가 없다면 데이터를 뽑아내지 못하는 사태가 생깁니다. 또한 레이드 정보가 디스크의 헤더에 정보로 남겨지고 데이터가 일련의 연산을 통해 처리되기 때문에 다른 컴퓨터에 물렸을때 데이터를 불러올수 없습니다. 예외적으로는 메인보드의 사우스브릿지 (Southbridge) 에서 제공하는 내장 레이드를 통해 RAID1로 묶은 디스크는 단일 디스크로도 다른 컴퓨터에 물렸을때 데이터를 불러올수 있지만 공인된 방법은 아닙니다.

정리하자면 백업 데이터는 시스템의 특성을 타지 않게 저장되어야 하며 어떠한 시스템에 물려도 쉽게 불러올수 있어야 하기 때문에 레이드를 하지 않습니다. 자신이 구축한 레이드 시스템이 언제 어떤식으로 고장날지는 아무도 모르니까요.

레이드 특성

대표적인 레이드 레벨로 RAID 0, 1, 10, 5, 6, 50, 60이 있으며 두자리 레벨은 한자리 레벨을 이중으로 구성해 그 효율성을 높인 레이드 구조입니다.

116b_ill_raid_0

RAID 0

스트라이핑 (striping) 구조로 여러 디스크를 하나의 볼륨으로 만들고 하나의 데이터를 디스크의 갯수(n) 개 만큼 쪼개 나누어 저장합니다. 속도 또한 이론적으로 디스크 하나의 속도 x(n)이 되어 RAID 레벨중 가장 빠른 속도를 내지만 데이터에 대한 안전장치(오류 검출)가 없어 위험도 또한 그만큼 증가합니다. 그리고 하나의 디스크에 오류가 생기면 모든 데이터는 유실됩니다. 이러한 특성으로 무조건적인 고성능이 요구될때, 예를 들어 동영상 편집의 스크래치 디스크로 사용한다던가 하는 고성능 임시 저장소의 목적으로 주로 사용합니다.

117_ill_raid_1

RAID 1

미러링 (mirroring) 구조로 하나의 데이터가 볼륨에 속한 디스크의 갯수 만큼 저장됩니다. 그만큼 디스크의 쓰기 성능은 단일 디스크보다 떨어지지만 구조적 특성때문에 안정성이 크게 증가하는게 특징입니다. 서버의 OS 디스크 구성에 주로 사용되며 2개의 디스크를 묶는 것이 일반적입니다.

119_ill_raid_10

RAID 10

RAID 0와 1의 장점을 결합한 구조로 1차 적으로 디스크를 쌍으로 RAID 1로 묶어 안정성을 높이고 RAID 1로 묶은 다수의 디스크를 RAID 0으로 다시 묶어 성능을 높입니다. 장점으로는 빠른 IOPS (input output per second) 로 파일 사이즈가 작은 데이터를 처리한다면 유리한 구조입니다. 하지만 디스크 대비 볼륨 사이즈가 반토막이 나기 때문에 비용이 비싼 RAID 레벨이고 장애 발생시 디스크가 1:1 대응 (RAID 1의 구조) 이기 때문에 디스크의 장애 대처가 유기적이지 않습니다. 이런 이유로 편하게 사용하려면 핫스페어가 필요한 구성입니다.

118a_ill_raid_5

RAID 5

볼륨의 디스크 전체와 데이터 블록당 하나의 패리티(Parity) 정보를 남겨 하나의 디스크에 장애가 생겨도 패리티 정보를 기반으로 데이터를 리빌딩(Rebuilding)해 데이터를 보존합니다.

RAID 5는 최소 3개의 디스크가 필요하며 두개의 디스크에 장애가 생기면 모든 데이터는 유실됩니다. XOR 연산을 이용해 데이터를 기록하므로 연산의 복잡도가 증가하며 그만큼의 레이드 컨트롤러의 칩셋과 캐시 메모리의 크기에 따라 성능이 천차만별이 됩니다. 이런 이유로 메인보드의 사우스브릿지에서 제공하는 RAID 5이상의 레벨은 엉망인 수준의 성능이며 실제로 사용하기에 꽤나 무리가 있습니다.

레이드 컨트롤러가 캐시 메모리에 데이터를 임시 저장 후 디스크에 처리하는 과정에서 중간에 전원이 끊기면 데이터가 유실될 우려가 있어 레이드 컨트롤러 제조사에서는 BBU(Battery Backup Unit)을 통해 해결하고 있습니다. 그리고 데이터당 하나의 패리티 정보에 의존하고 있어 다수의 디스크로 구성한 볼륨에서는 위험도가 상당히 높아져 5개 이상의 디스크에는 어울리지 않는 구성입니다.

118b_ill_raid_6

RAID 6

볼륨의 디스크 전체와 데이터 블록당 두개의 패리티(Parity) 정보를 남겨 두개의 디스크에 장애가 생겨도 패리티 정보를 기반으로 데이터를 리빌딩(Rebuilding)해 데이터를 보존합니다. 최소 4개의 디스크가 필요하며 RAID 5와 같은 특성을 가지지만 안정성을 조금더 보장 받는 레벨이 되겠습니다.

RAID_50

RAID 50, 60

RAID 5로 구성한 동일 볼륨 두개 이상을 RAID 0 으로 하나의 볼륨으로 한번 더 구성한 레이드 레벨. 기존의  RAID 5,6 에서 IOPS 를 높이기 위해 구성합니다. 홈서버 레벨에서는 잘 사용하지 않지만 하드디스크를 통한 가상화를 다수 사용한다면 고려해볼 법한 구성입니다.

120_ill_raid_spare

Hot Spare

예비 디스크로 각 레이드의 구성에서 디스크 오류가 발생시 오류가 발생한 디스크를 대신해 핫스페어에 등록된 디스크가 대신 역활을 수행합니다. 디스크의 장애가 생겼을때 별도의 대처가 필요 없다는 점이 장점입니다.

레이드의 실전 적용

사실 레이드의 특성은 약간의 검색으로도 얻을수 있는 정보이기 때문에 작성하지 않으려 했지만 실제 사용시 어떻게 구성하는게 가격대비 좋은가를 설명할때 필요한 부분이라 작성해봤습니다.

이제부터 본론입니다. ‘홈서버에 가격대비 성능을 끌어내려면 어떤 레이드 레벨을 사용해야 하는가.’

필자의 답은 이렇습니다.

  • 가상화를 사용한다. – RAID 10
  • 가상화를 사용하고 디스크 갯수가 6개 이상이다. – RAID 10 + 핫스페어
  • 다용도 이고 디스크의 갯수가 4개 미만이다. – RAID 5
  • 다용도 이고 디스크의 갯수가 8개 미만이다. – RAID 6
  • 다용도 이고 디스크의 갯수가 9개 이상이다. – RAID 6 + 핫스페어 / 혹은 RAID 6 다수 볼륨 구성

물론 위의 답이 100%는 아니지만 보편적으로 사용하는 구성이고 가상화를 사용하는 경우는  다수의 가상 시스템이 돌아가기 때문에 최대 속도 보다는 IOPs 가 중요시 되므로 RAID 10 이 이점을 갖습니다. 물론 Cachecade 같은 하드웨어적 기술이 있기도 하지만 여기서는 레이드 레벨 한정으로 얘기하겠습니다.

그리고 RAID 10 같은 경우는 디스크 4개 정도에서는 하드웨어 레벨의 레이드 컨트롤러를 사용하지 않아도 어느정도의 성능을 뽑아 주기 때문에 가격대비 성능으로도 이점을 갖습니다.

RAID 5  이상의 경우 레이드 컨트롤러가 필수로 사용되어야 하며 레이드 컨트롤러의 성능에 따라 속도 또한 차이가 나기 때문에 고성능을 목표로 한다면 최신의 레이드 컨트롤러를 구입하는게 중복투자를 피하는 길입니다.

사실 이 글에 레이드 컨트롤러와 레이드에 대해 한번에 포스팅하려 했는데 내용이 길어지는 감이 있어서 나눠 작성하려 합니다. 다음편은 이 글에 연관된 레이드 컨트롤러에 대해 다뤄 보겠습니다.

이미지 출처

  • http://www.seagate.com/kr/ko/manuals/network-storage/business-storage-nas-os/raid-modes/
  • http://www.nasexpert.fr/nas-stockage-les-differents-types-de-raid/guideachat-raid.html

PG

익스트림 매뉴얼 주인장 PG입니다. 다방면의 디지털 기술에 관심이 많고 삽질을 즐겨합니다. 포스트 내용중 궁금한 점이 있다면 댓글로 남겨주세요.

익스트림 매뉴얼의 모든 내용은 불펌금지 입니다. 자세한 내용은 링크를 참조하세요.

4 댓글이 있습니다.

댓글이 없습니다.