Computer >> 컴퓨터 >  >> 시스템 >> Windows Server

Windows Server 2016 스토리지 공간 다이렉트(S2D) 구성 완벽 가이드

스토리지 공간 다이렉트(Storage Spaces Direct, S2D)는 Windows Server 2016에서 새롭게 도입된 분산형 데이터 스토리지 기술입니다. S2D를 활용하면 여러 서버의 로컬 드라이브를 하나로 묶어 개별 디스크는 물론 서버 전체 장애에도 대응할 수 있는 내결함성·확장 가능한 스토리지를 구축할 수 있습니다. SAN이나 NAS와 비교해 소프트웨어 기반으로 구축 비용이 크게 절감되며, 최대 16대의 서버와 400개의 드라이브까지 간편하게 확장할 수 있습니다. 또한 SSD나 NVMe 등 다양한 드라이브를 조합해 뛰어난 성능을 끌어낼 수 있다는 점도 큰 장점입니다.

스토리지 공간 다이렉트(S2D)란 무엇인가?

S2D는 기존 Storage Spaces 기술의 발전된 형태로, Hyper-V 클러스터 노드들의 로컬 드라이브를 스토리지 풀(Storage Pool)로 통합할 수 있게 해줍니다. 이렇게 만든 풀 위에 가상 볼륨(디스크)을 생성하고, 이를 클러스터 공유 볼륨(CSV, Cluster Shared Volume)으로 사용하여 Hyper-V 가상 머신 파일이나 SOFS 파일 공유 저장소로 활용할 수 있습니다. 스토리지 용량을 늘려야 할 때는 새 서버나 디스크를 추가하기만 하면 됩니다. 요약하면, Storage Spaces Direct는 Microsoft가 VMware vSAN에 대응하기 위해 내놓은 솔루션이라고 할 수 있습니다.

Storage Spaces Direct 시스템 요구 사항

S2D는 다음과 같은 스토리지 장치 유형을 지원합니다.

  • 일반 HDD(SAS)
  • SATA / SAS SSD
  • NVMe(Non-Volatile Memory Express): 기존 SATA/SAS 인터페이스 대신 더 빠른 PCI Express 버스를 통해 연결되는 SSD

서로 다른 종류의 디스크를 속도나 용량별로 조합하여 다양한 배열을 구성할 수도 있습니다. 예를 들어 캐시와 애플리케이션 트랜잭션 로그는 빠른 NVMe SSD에 배치하고, 고성능 접근이 필요 없는 대용량 파일은 상대적으로 느리고 저렴한 디스크에 저장하는 방식이 효율적입니다.

S2D를 구동하려면 다음 요구 사항을 충족하는 노드들로 장애 조치(failover) 클러스터를 먼저 생성해야 합니다.

S2D 클러스터 노드 요구 사항:

  1. Windows Server 2016 Datacenter 에디션
  2. 서버에 Hyper-V, 파일 서비스 역할 및 장애 조치 클러스터링(Failover Clustering) 기능 설치
    참고: SMB 1.0은 반드시 비활성화하세요. Remove-WindowsFeature –Name FS-SMB1 -Verbose –Restart
  3. 클러스터에 최소 2대 이상의 서버 (높은 내결함성을 보장하려면 4대 이상 권장)
  4. 시스템 드라이브 외에 각 노드에 최소 1개의 물리 디스크가 있어야 하며, S2D에 추가할 모든 디스크는 포맷되지 않은 상태(파티션과 파티션 테이블이 없는 상태)여야 합니다.

여기서는 Windows Server 2016으로 구성된 2대의 서버 장애 조치 클러스터가 이미 만들어져 있다고 가정합니다(워크그룹 환경에서도 생성 가능합니다).

참고: 클러스터 노드 수가 짝수인 경우 감시자(witness) 노드를 구성해야 합니다. 홀수 개의 노드로 구성된 경우에는 감시자가 필요하지 않습니다.

S2D를 활성화하기 전에, 디스크들이 스토리지 풀에 포함될 수 있는지 먼저 확인합니다.

Get-PhysicalDisk –CanPool $True | Sort Model

Windows Server 2016 스토리지 공간 다이렉트(S2D) 구성 완벽 가이드

Storage Spaces Direct 활성화 방법

다음 cmdlet을 실행하여 S2D를 활성화합니다.

Enable-ClusterStorageSpacesDirect

이 cmdlet은 실행에 상당한 시간이 걸립니다(약 10분). 실행되면 사용 가능한 모든 디스크와 그 성능이 분석되고, 클러스터 풀이 자동으로 생성됩니다. 동시에 Performance와 Capacity라는 두 개의 계층(tier)이 자동으로 만들어지며, 각각 미러(mirror)와 패리티(parity) 방식의 내결함성을 제공합니다.

S2D에서 지원하는 데이터 내결함성 유형은 3가지입니다.

  1. 미러(Mirrored, 3) – 데이터가 3개(최소 구성에서는 2개)의 노드 간에 동기식으로 복제됩니다. 모든 서버에 읽기 작업이 분산되어 높은 읽기 속도를 얻을 수 있습니다.
  2. 패리티(Parity, 2) – 패리티 정보를 포함한 데이터가 여러 디스크에 분산 저장됩니다. 동일한 데이터를 여러 벌 저장할 필요가 없어 저장 효율이 높습니다.
  3. 계층화(Tiered, 1) – 위 두 방식을 결합한 형태입니다.
Windows Server 2016 스토리지 공간 다이렉트(S2D) 구성 완벽 가이드

참고 1. Enable-ClusterS2D 명령 실행 중 "no disks with supported bus types found to be used for S2D" 오류가 발생한다면, 디스크의 버스 타입(BusType)이 RAID로 인식되고 있을 가능성이 높습니다(RAID는 S2D에서 지원하지 않는 구성입니다). 버스 타입을 확인해 보겠습니다.
Get-Disk | select Number, FriendlyName, OperationalStatus, Size, PartitionStyle, BusType | sort Number | ft -AutoSize
Windows Server 2016 스토리지 공간 다이렉트(S2D) 구성 완벽 가이드

실제로 모든 디스크가 RAID로 표시됩니다. 해결책은 컨트롤러의 드라이버나 펌웨어를 업데이트하는 것입니다(HP 서버라면 최신 HPE Support Pack을 설치하세요). 업데이트 후 BusType을 다시 확인하면 SAS로 변경된 것을 볼 수 있습니다.

Windows Server 2016 스토리지 공간 다이렉트(S2D) 구성 완벽 가이드

또한 특정 유형의 컨트롤러에서 버스 타입을 SATA로 강제 변경하는 레지스트리 트릭도 있습니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\arcsas\Parameters
"BusType"=dword:0000000b (기존 값 00000008 대신)

참고 2. 배열에 SSD나 NVMe 디스크가 감지되면 자동으로 캐시 스토리지로 사용됩니다. 해당 디스크가 없으면 S2D 생성 과정에서 경고가 표시되는데, 이 경우 -CacheState Disabled 매개변수를 사용해 캐시를 비활성화할 수 있습니다.

장애 조치 클러스터 관리자(Failover Cluster Manager)를 열어 Storage 섹션에 Cluster Pool 1이 생성되었는지 확인합니다.

Windows Server 2016 스토리지 공간 다이렉트(S2D) 구성 완벽 가이드

풀을 선택하면 어떤 디스크로 구성되어 있는지 확인할 수 있습니다.

Windows Server 2016 스토리지 공간 다이렉트(S2D) 구성 완벽 가이드

필요하다면 풀 이름을 변경할 수 있습니다.

Set-StoragePool –FriendlyName "Cluster Pool 1" –NewFriendlyName "S2D"

특정 디스크만으로 볼륨을 만들어야 한다면 아래 명령을 사용합니다. 먼저 LUN 3 디스크들을 모두 선택해 새 풀로 묶습니다.

$HDDs = Get-PhysicalDisk | ? PhysicalLocation -like "*LUN 3"
New-StoragePool -StorageSubSystemFriendlyName *Cluster* -FriendlyName S2DPool -ProvisioningTypeDefault Fixed -PhysicalDisk $HDDs

풀에 포함된 디스크 목록을 표시합니다.

Get-StoragePool -FriendlyName S2D | Get-PhysicalDisk | ft PhysicalLocation

Windows Server 2016 스토리지 공간 다이렉트(S2D) 구성 완벽 가이드

새 디스크를 풀에 추가합니다.

$HDDs = Get-PhysicalDisk | ? PhysicalLocation -like "*LUN 4"
Add-PhysicalDisk -PhysicalDisks $HDDs -StoragePoolFriendlyName S2D

S2D로 지정된 디스크는 더 이상 디스크 관리(Disk Management) 콘솔에 표시되지 않으며, 이것은 정상적인 동작입니다.

Windows Server 2016 스토리지 공간 다이렉트(S2D) 구성 완벽 가이드

여러 종류의 드라이브를 사용하는 경우 스토리지 계층화(storage tiering)를 활용할 수 있습니다(선택 사항). SSD로 미러 방식 계층을 만드는 방법은 다음과 같습니다.

New-StorageTier -StoragePoolFriendlyName S2D -FriendlyName "Mirror_Tier" -MediaType SSD -ResiliencySettingName Mirror

일반 HDD로 패리티 방식 계층을 만듭니다.

New-StorageTier -StoragePoolFriendlyName S2D -FriendlyName "Parity_Tier" -MediaType HDD -ResiliencySettingName Parity

이제 CSV(클러스터 공유 볼륨)를 생성할 수 있습니다.

New-Volume –StoragePoolFriendlyName S2D –FriendlyName CSV001 –PhysicalDiskRedudancy 2 -FileSystem CSVFS_ReFS -Size 200GB

볼륨 목록과 각 볼륨의 중복성 유형은 다음과 같이 확인할 수 있습니다.

Get-VirtualDisk | ft FriendlyName, ResiliencySettingName, PhysicalDiskRedundancy

Windows Server 2016 스토리지 공간 다이렉트(S2D) 구성 완벽 가이드

새로 만든 CSV는 디스크 관리 콘솔에 나타납니다.

Windows Server 2016 스토리지 공간 다이렉트(S2D) 구성 완벽 가이드

이 볼륨은 Hyper-V 가상 머신 호스팅이나 스케일아웃 파일 서버(Scale-out File Server) 공유에 활용할 수 있습니다.

이처럼 로컬 디스크를 장착한 여러 대의 서버로 Storage Spaces Direct를 구성하면 손쉽게 소프트웨어 기반 네트워크 스토리지를 만들 수 있습니다. S2D는 임의의 디스크 쌍 또는 서버(4노드 이상 클러스터) 장애에 대한 내결함성을 제공하며, 디스크나 서버에 장애가 감지되면 자동으로 나머지 장치들 간 데이터 재배치 프로세스를 시작합니다. 실제 테스트 환경에서 임의의 두 디스크를 분리해도 스토리지는 계속 사용 가능하고 그 위의 VM도 정상 작동하는 것을 확인할 수 있습니다. S2D 스토리지에서 고장 난 드라이브를 교체하는 방법은 다음 글에서 다루겠습니다.