brunch

You can make anything
by writing

C.S.Lewis

by Sunny the New Jul 13. 2023

부록 : 디스크를 묶는 방법

[연재] 스토리지 A to Z

스토리지가 어떤 것이다~라는 것을 어느 정도 이해하고 넘어오신 분들은, 이제 디스크를 PC처럼 그냥 꽂으면 되는지, 아니면 내가 모르는 뭔가를 해줘야 하는지(?) 궁금해하실 겁니다. 업체에 주문을 넣으실 때 구성까지 부탁해야 한다거나, 직접 구성을 해야 한다면 어떻게 구성해야 할까? 같은 것들이 머릿속에 안 떠오르시는 분들이 있을 것 같아, 디스크의 구성 방법에 대해 간단하게 설명해 보고자 합니다.

DELL사의 PowerStore


일단, 회사에서의 스토리지 장비들은 거의 (대부분) 1개의 디스크만으로 이루어져 있지 않습니다. 스토리지를 도입하는 목적 자체가 회사 데이터를 한곳에 집중시키거나, 서버의 모자란 용량을 채워주는 역할이기 때문에 1개의 디스크만으로는 안정성도, 용량도 부족할 수밖에 없죠. 그래서 회사에서는 적어도 2개 이상의 디스크를 사용한 스토리지를 도입하게 됩니다.


[1] 디스크

데이터를 저장하는 하드디스크와 SSD


기업에서 사용하는 스토리지에 사용되는 하드 디스크 (이하 HDD)나 SSD는 일반 PC에서 사용하는 디스크와 구조상의 차이가 거의 없습니다. 단, 내구성이 일반 PC들에 비해 좀 더 좋고, 사용하는 스토리지와 호환이 된다는 정도입니다. 현재는, 디스크의 뒷면 커넥터 (전송규격)에 따라 세 가지 정도로 나뉘는데, 이는 구조의 몸통을 담당하는 스토리지의 메인보드나 컨트롤러에서 해당 규격을 지원해야 합니다. 간단하게 정리해 보면 다음과 같습니다.


1. SATA (Serial ATA)

SATA Cable

Serial ATA의 약자, 직렬 ATA 방식으로, 일반 PC에서 가장 많이 쓰이는 규격입니다.


2. SAS (Serial Attached SCSI)

SAS 케이블

엔터프라이즈 스토리지 또는 서버에서 가장 많이 사용하는 규격입니다. 속도가 빠르고 (SAS3 기준 SATA3의 두 배) Fail Over 기능을 지원합니다.


3. M.2 (SATA 또는 NVMe)

M.2의 규격 사이즈

SSD가 급격히 발전하면서 대중화된 규격. PC, 서버, 스토리지 제품군들의 소형화를 이룬 주범(?)입니다.

M.2라는 규격은 생김새(?)와 관련된 규격이고, 속도와 관련된 규격도 두 가지가 있습니다. 전통적인 방식인 SATA 방식과, PCI-e 규격인 NVMe 규격을 지원하며, 모두 M.2라는 폼 펙터 위에서 작동하게 됩니다. HDD는 해당되지 않고, SSD만 해당 규격으로 생산됩니다.




[2] RAID

스토리지에 들어가는 디스크들은 일반 윈도우 PC에서 보듯이 1번 디스크가 C드라이브, 2번 디스크가 D드라이브와 같은 방식으로 구성되는 경우가 거의 없습니다. 물론 단일디스크 구성으로 디스크 1개당 1개의 볼륨을 생성할 수도 있겠지만, 그렇게 사용한다면 스토리지를 도입하는 것보다 PC에 디스크 한 개를 추가하여 그곳에 저장하는 것이 더 편하고, 간단합니다. 그럼, 스토리지는 그 많은 디스크들을 어떻게 쓰는 걸까요?


여러 스토리지 업체들의 방식이 다 다르기는 하겠지만, 가장 많이 쓰이는 방식은 레이드 (RAID / Redundant Array of Independent Disks) 기술을 통한 여러 개의 디스크를 하나의 볼륨으로 만들어 큰 용량의 볼륨을 사용할 수 있게 만드는 방법이 가장 많이 쓰이고 있습니다. 또한, 여러 개의 디스크에 파일들을 분산하여 저장하는 (실제로는 비트나 블록이나 불리는 데이터 단위를 각 디스크에 나누어서 저장합니다.) 방식을 통하여 속도의 향상도 노리며, 디스크가 장애가 발생하면 새 디스크 교체를 통해 데이터를 보호할 수 있는 능력도 갖추고 있습니다.


RAID는 버전에 따라 0,1,2,3,4,5,6,10,01,50,60으로 나뉘게 됩니다. 여기서는, 업체들이 가장 많이 쓰이는 0, 1, 5, 6, 10, 01에 대해서 간단하게 설명하겠습니다.



1. RAID0 (스트라이프)

RAID 0 스트라이핑, 속도가 빠르지만 안정성이 낮은 구조

데이터를 스토리지에 저장할 때 디스크 개수만큼 쪼갠 후 각 디스크에 한 조각씩 저장하는 방식입니다. 구성에 필요한 최소 디스크 개수는 2개입니다.


・ 장점 : 병렬로 쪼개서 저장하는 방식이기 때문에 디스크 개수만큼 속도가 증가하며, 디스크 2개 이상부터 스토리지가 지원하는 디스크 개수까지 한 볼륨으로 구성이 가능합니다.

・ 단점 : 복구에 대한 그 어떤 정보도 없기 때문에, RAID로 묶인 디스크들 중에 단 하나라도 고장이 나면 모든 데이터를 잃어버립니다. 장애가 생겼을 경우에 아무 대비도 못하는 가장 최악의 RAID 버전이지만, 현존하는 RAID 중에 가장 속도가 빠른 버전이지요.



2. RAID1 (미러링)

RAID 1 미러링, 용량과 성능이 떨어지지만 안전한 구조


데이터를 스토리지에 저장할 때 양쪽의 디스크에 동일하게 저장합니다. 즉, 2개의 디스크가 동일한 데이터를 가지게 됩니다. 구성에 필요한 디스크 개수는 2개입니다.


・ 장점 : 장애 복구 시 가장 편리하고 간단한 복구를 자랑합니다. 1개가 망가지면 다른 1개가 데이터를 그대로 가지고 있기 때문이지요.

・ 단점 : RAID1은 디스크 2개로만 구성이 가능합니다. 만약 10개의 디스크가 있다면, 5개의 RAID1 볼륨을 구성할 수 있습니다.



3. RAID5

RAID 5  구조, 디스크를 복구할 수 있는 패리티 영역이 디스크 1개 분량


데이터 이외에 XOR 연산을 통한 패리티를 1개씩 추가로 저장함으로써 디스크 1개가 망가져 쓸 수 없게 된 경우 이 패리티 정보를 이용하여 역산하여 복구하는 방식입니다. 구성에 필요한 최소 디스크 개수는 3개입니다.

・ 장점 : 변종 버전 (10 이나 01 이나 50등)을 제외한 버전들 중에서 RAID0 다음으로 속도가 빠르며, 원하는 만큼 디스크 개수를 증가시킬 수 있습니다.

・ 단점 : 디스크 3개를 RAID5로 만들 때도, 30개를 RAID5로 만들 때도 데이터 보호는 디스크 1개가 망가질 때까지 만이며, 1개 이상의 디스크 오류가 발생하면 모든 데이터는 소실됩니다.



4. RAID6

RAID 6  구조, 패리티가 디스크 2개 분량


RAID5의 업그레이드 버전입니다. 패리티를 두 개씩 생성하여 각 디스크에 저장하고, 디스크 2개의 장애가 발생하여도 데이터 보호를 할 수 있습니다. 구성에 필요한 최소 디스크 개수는 3개입니다.


・ 장점 : 가장 높은 보호레벨을 자랑합니다. 디스크 수가 많을 때 더욱 빛을 발휘합니다.

・ 단점 : 디스크 4개로 RAID6을 구성하면, 가용한 용량이 디스크 2개 용량밖에 되지 않습니다. 예를 들어, 4TB 디스크 4개를 RAID6로 구성하면 이론적으로 8TB의 용량만 사용하실 수 있습니다. 또한, 속도가 RAID1 다음으로 느립니다. 이는, 패리티 2개를 생성하는 프로세스가 주 원인입니다.



5. RAID10 / 01

RAID 10  구조, 미러링 구성 후 스트라이핑으로 묶는 형태


RAID 1과 0의 장점을 최대한 살려 구성하는 이중 RAID 방식입니다. RAID10은 두 개의 하드디스크를 RAID1로 묶은 뒤 RAID1들을 모아서 RAID0으로 한번 더 묶어주는 방식입니다. 01은 반대로 RAID0으로 먼저 묶은 뒤 RAID0들을 RAID1로 묶어주는 방식입니다.


・ 장점 : RAID0가 포함되어 있기 때문에 속도가 빠릅니다. 인접한 디스크의 장애가 아니라면 (예를 들어 10개의 하드디스크를 RAID10 /01로 구성할 경우 1,2번 디스크가 장애 거나 3,4 디스크가 망가지는 등의 오류) 최대 디스크 개수의 반정도가 망가져도 데이터가 살아날 가능성이 있습니다.

・ 단점 : 인접한 디스크 2개가 망가지면 모든 데이터를 잃습니다. 또한 전체 디스크 용량의 50%만 가용하여 쓸 수 있습니다.



6. RAID 50/60

RAID 60 구조, 디스크 4개씩을 RAID6로 묶은 후 0으로 다시 묶는 형태


RAID 50과 60은 대규모 디스크 세트에서 많이 사용하는 방법이며, 최대 1/2개만 보호할 수 있는 RAID5/6에서 보효율을 더욱 높이기 위해 고안된 기술입니다. 하위 디스크 세트를 5나 6으로 묶고, 그것을 다시 0으로 묶어 보호할 수 있는 디스크 개수를 비약적으로 증가시킵니다.


예를 들어, 총 100개의 디스크를 한 POOL로 묶는다고 가정했을 경우, 100개를 RAID5로 묶으면 2개의 디스크 장애 시 전체 데이터를 소실하게 되지만, 10개의 디스크씩 RAID5로 묶은 후 총 10개의 RAID5 세트를 0으로 묶어 RAID50을 만들었다면, 10개의 RAID5 세트 내에서 2개 이상 동시에 장애가 발생하지 않는 한, 총 10개의 디스크가 망가져도 데이터를 보호할 수 있게 됩니다.


・ 장점 : 대규모 디스크 세트에서 보호율이 비약적으로 높아집니다.

・ 단점 : 패리티를 생산하는데 부하가 발생하므로, 전체적으로 속도가 하향됩니다.




[3] 브랜드별 RAID


각 브랜드들에서는 사용자들에게 편의성과 안정성을 가미하기 위해 자신들만의 RAID 버전을 탑재하고 있는데요, 몇 가지 브랜드의 RAID 버전을 살펴보도록 하죠.


1. Synology - SHR (Synology Hibrid RAID) / Netgear X-RAID

이 두 가지 브랜드의 공통된 특징은, "자동 RAID"라는 점입니다. 기존의 RAID는 디스크 개수를 사용자가 정한 뒤, 버전을 선택하여 구성하는 방식으로 진행되었었다면, 이 RAID들은 디스크를 넣고 SHR 또는 X-RAID를 선택하면 알아서 버전을 정하고, 남는 용량이 있다면 놀지 않게 남은 용량도 같이 구성해 준다는 점입니다. 단, 특별한 기능 (Synology의 경우 이중화 구성)을 사용하거나 특정 모델에서는 사용할 수가 없습니다.

Synology의 SHR



2. QNAP - RAID-TP

QNAP만의 특정한 RAID는 아니지만, ZFS 포맷 형식의 특징인 RAID-Z를 기반으로 한 포맷 형식입니다. 패리티를 총 세 개 만듦으로써 총 3개의 디스크가 장애가 발생해도 데이터를 보호할 수 있는 것이 특징입니다. 특정 소수 모델에서만 지원됩니다.

QNAP ES 시리즈에서 RAID-TP를 구성하는 모습.




3. NetApp의 RAID-DP

NetApp은 자신들의 OS에 특화된 RAID 모델을 개발하였습니다. RAID6처럼 RAID그룹 자체에 부담을 주지 않고 별도의 패리티 디스크 2개를 만들어, RAID4에서 향상된 RAID DP 모드가 있습니다. 이는, 디스크에 부담을 덜어주고 성능을 향상하며 오류율을 줄여 줍니다.


NetApp의 RAID-DP



4. NetApp의 RAID-TEC

NetApp은 또 다른 RAID 버전을 발표하고 ONTAP9 버전에 적용했는데, 이는 RAID-DP의 업그레이드 버전이라고 생각하시면 될 듯합니다.


3개의 패리티 디스크를 보유하고, 평행 패리티 방식이 아닌 대각선 패리티 방식을 채택하여 더욱 높은 RAID 안정성을 보여 줍니다.


NetApp의 RAID-TEC




[4] JBOD

JBOD는 Just a Bunch of Disks (Drives)의 약자이며, JBOD도 RAID와 같이 여러 개의 디스크를 하나로 묶는 방식이긴 하나 RAID와는 구조가 다르기 때문에 Non-RAID라고도 불립니다. JBOD 구성의 가장 큰 특징은, 데이터를 각 디스크에 나눠서 한 번에 저장하는 것이 아니라, 1개의 디스크의 용량을 모두 사용하면 다음 디스크에 저장하는 순차적 저장 방식입니다. 중저가 NAS나 SAN에서는 JBOD 방식은 잘 사용하지 않고, 스토리지 내의 가용한 디스크 수(베이)를 초과하여 구성하고자 할 때, 스토리지 회사에서 공급되는 확장 장비를 스토리지 본체와 연결할 때 JBOD 방식을 많이 사용합니다.



JBOD 구성도, 디스크에 순차적으로 저장




[5] Erasure Coding

Erasure Coding이라는 디스크 구성 방식은 최근 엔터프라이즈급에서 자주 나오는 구성 방식입니다. RAID는 장애허용 디스크 개수가 규약에 의해 정해져 있지만, Erasure Coding은 “데이터 블록 N+장애복구용 연산 결과 K”라는 방식을 통해 제조사마다 정해서 서비스할 수 있습니다. 보통 중저가형 스토리지에서 사용하는 방식은 아니며, 장애복구를 위해 데이터를 통째로 복구해 놓는 클라우드용 스토리지 (예: AZURE)나 CEPH 같은 엔터프라이즈급 솔루션에 도입하는 방식입니다. 기존 방식보다 공간 효율이 높으며, 자체적으로 Self Healing(디스크 장애 발생 시 각 패리티 비트 및 데이터를 조합해 각 디스크에 분산 저장하여 자동 복구하는 방식) 같은 기능을 구현하기에 최적화되어 있습니다. Erasure Coding은 연산 방식에 따라 여러 가지 종류가 있는데, 업체에서 가장 많이 사용하는 방식은 Reed-Solomon 방식입니다.




Erasure Coding, 이레이저 코딩



이렇게 스토리지의 디스크 구조 방식에 대해 알아보았습니다. 디스크와 RAID 구조의 특징을 이해하다 보면, 스토리지의 특징들을 살펴볼 수 있습니다. 이는 자신의 데이터가 어떻게 저장되고 있는지를 잘 알아볼 수 있는 정보가 될 수 있습니다.

작가의 이전글 스토리지란 무엇인가요?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari