지난 글에서는 Windows Server 2016에 새롭게 도입된 분산 스토리지 기술인 Storage Spaces Direct(S2D)를 소개했습니다. S2D를 사용하면 클러스터 서버의 로컬 디스크를 활용하여 네트워크 장애 조치(failover) 기반의 분산 가상 데이터 스토리지를 구축할 수 있습니다. 이번 글에서는 S2D 클러스터에서 고장 난 물리적 디스크를 감지하고 교체하는 전체 과정을 단계별로 살펴보겠습니다.
S2D 스토리지의 복원력 유형 이해하기
먼저 복습 차원에서 S2D에서 생성할 수 있는 스토리지 유형을 정리해 보겠습니다.
- Mirror(미러) 유형(RAID 1과 유사): 디스크 2개 구성(권장하지 않음)에서는 디스크 1개의 고장을 견딜 수 있으며, 풀에 디스크가 3개 이상 있으면 2개의 디스크가 동시에 고장 나도 데이터 손실 없이 운영이 가능합니다.
- Parity(패리티) 유형(RAID 5와 유사): 디스크 3개 구성에서는 1개의 디스크 고장을, 디스크 7개 구성에서는 2개의 디스크 고장을 동시에 견딜 수 있습니다.
1단계: 스토리지 상태 확인 및 고장 디스크 진단
S2D 클러스터의 스토리지 하위 시스템 상태는 다음 PowerShell 명령어로 확인할 수 있습니다.
Get-StorageSubSystem *Cluster* | Get-StorageJob
스토리지 풀 내 디스크 고장은 GUI 도구인 장애 조치 클러스터 관리자(Failover Cluster Manager)에서도 확인할 수 있습니다. Storage → Storage Pool 메뉴로 이동하면, 풀 내 물리적 디스크 중 하나가 Unhealthy(비정상) 상태로 표시되는 것을 볼 수 있습니다.
PowerShell로 풀 내 디스크의 상태 정보를 조회하려면 다음 명령어를 사용합니다.
Get-StoragePool *S2D* | Get-PhysicalDisk
2단계: 고장 디스크 격리 및 풀에서 제거
문제가 있는 디스크 객체를 변수에 저장합니다. 예를 들면 다음과 같습니다.
$Disk = Get-PhysicalDisk |? OperationalStatus -Notlike ok
이후 해당 디스크에 대한 추가 쓰기 시도를 차단합니다.
Set-PhysicalDisk -InputObject $Disk -Usage Retired
이제 스토리지 풀에서 고장 디스크 제거를 시도합니다.
Get-StoragePool *S2D* | Remove-PhysicalDisk –PhysicalDisk $Disk
잠시 후 해당 장치가 응답하지 않는다는 경고 메시지가 나타날 수 있습니다. 이는 정상적인 동작이므로 그대로 진행하면 됩니다.
3단계: LED 식별 조명으로 고장 디스크 찾기
서버 랙에서 해당 디스크를 쉽게 찾을 수 있도록 디스크의 LED 식별 조명을 켭니다.
Get-PhysicalDisk |? OperationalStatus -Notlike OK | Enable-PhysicalDiskIdentification
참고: LED 조명을 이용한 디스크 식별 기능은 Windows Server 2016부터 지원되며, 물리적 서버 측에서 SCSI Enclosure Services(SES)를 지원해야 합니다.
이제 서버실로 이동하여 앞서 켜둔 백라이트를 이용해 문제의 디스크를 찾아냅니다.
고장 난 디스크를 새 디스크로 물리적으로 교체한 후, 식별 조명을 끕니다.
Get-PhysicalDisk |? OperationalStatus -like OK | Disable-PhysicalDiskIdentification
4단계: 새 디스크 인식 확인 및 풀에 추가
운영체제가 새 디스크를 정상적으로 인식했는지 확인합니다.
$Disk = Get-PhysicalDisk | ? CanPool –eq True
참고: 일부 저가형 서버에서는 디스크를 올바르게 인식시키기 위해 서버를 재시작해야 할 수도 있습니다.
새 디스크를 스토리지 풀에 추가합니다.
Get-StoragePool *S2D* | Add-PhysicalDisk –PhysicalDisks $Disk –Verbose
5단계: 자동 데이터 재분배 및 동기화 완료 확인
여기까지 완료하면 S2D가 자동으로 클러스터 내 디스크 간 데이터 재분배를 시작합니다. Windows Server 2012의 Storage Spaces에서는 Repair-VirtualDisk 명령을 수동으로 실행해야 했지만, Windows Server 2016의 S2D에서는 이 과정이 자동화되어 훨씬 편리해졌습니다.
동기화 소요 시간은 디스크 용량과 풀의 부하에 따라 달라지며, 테스트 환경에서는 약 30분 정도 걸렸습니다. 동기화가 완료되면 마지막으로 풀 상태를 다시 확인하여 모든 디스크가 정상(Healthy) 상태로 복구되었는지 점검하면 됩니다.