스토리지풀에서 문제가 발생한 디스크 교체하기

테스트 환경

  • Virtual Environment: Windows Server 2019 DataCenter KO, Hyper-V
  • Guest OS: Windows Server 2012R2 DataCenter EN
  • VM Role: AD 1EA, SMB 2EA
  • Server Role
  • AD Server: ADDS, DNS
  • SMB Server: File Server, Failover Clustering, Multipath I/O
  • Cluster Info
  • Cluster Name: SMB-Cluster
  • StoragePool Name: SMB-Pool
  • Physical Disk: 256GB 5EA
  • Virtual Disk Name: VM-Data01
  • Virtual Disk Layout: Two-way Mirror

시나리오

  • 실서비스 운영 중 PhysicalDisk2에 문제가 발생해 Disk 교체
  • 문제발생이 되어 교체된 Disk 이름: PhysicalDisk-1
  • 신규 Disk 이름: PhysicalDisk2
  1. 서버관리자에서 조회시 문제된 Disk를 이미 신규 Disk로 물리적인 조치는 진행되었으며, 기존에 문제되었던 PhysicalDisk2는 PhysicalDisk-1로 변경된 상황, 신규 Disk는 PhysicalDisk2로 인식

  2. Get-PhysicalDisk 로 조회시 PhysicalDisk-1의 경우 연결이 끊긴 것으로 확인

  3. PhysicalDisk-1에 대해 변수로 지정 및 상태를 Retired 로 변경

$misDisk = Get-PhysicalDisk | Where-Object {$_.OperationalStatus -eq 'Lost Communication'}
$misDisk | Set-PhysicalDisk -Usage Retired
  1. PhysicalDisk2에 대해 변수로 지정 및 스토리지 풀에 편입
$repDisk = Get-PhysicalDisk -FriendlyName 'PhysicalDisk2'
Add-PhysicalDisk -PhysicalDisks $repDisk -StoragePoolFriendlyName 'smb-pool'
  1. VirtualDisk를 확인하여 Warninf인 경우에 Repair 진행
Get-VirtualDisk | Where-Object {$_.HealthStatus -eq 'Warning'} | Repair-VirtualDisk
  1. 문제되었던 PhysicalDisk-1을 제거, CLI로 제거 불가시 서버관리자에서 제거
Remove-PhysicalDisk -PhysicalDisks $misDisk -StoragePoolFriendlyName 'smb-pool'

Powershell 명령어 정리

# Get-PhysicalDisk 명령어로 Didks를 조회해서 OperationalStatus 항목에 Lost Communication 메시지가 있는 Disk를 $misDisk로 변수 지정
$misDisk = Get-PhysicalDisk | Where-Object {$_.OperationalStatus -eq 'Lost Communication'}
# $misDisk로 변수 지정된 Disk의 상태를 Retired로 변경
$misDisk | Set-PhysicalDisk -Usage Retired

# 신규로 교체된 Disk명을 $repDisk로 변수 지정
$repDisk = Get-PhysicalDisk -FriendlyName 'PhysicalDisk2'
# smb-pool에 신규 Disk 추가
Add-PhysicalDisk -PhysicalDisks $repDisk -StoragePoolFriendlyName 'smb-pool'

# VirtualDisk 중 HealthStatus에 Warning으로 표기된 Disk를 Repair 진행
Get-VirtualDisk | Where-Object {$_.HealthStatus -eq 'Warning'} | Repair-VirtualDisk
# smb-pool에서 문제가 발생한 Disk를 제거, 제거가 안될시 GUI에서 해당 Disk 제거
Remove-PhysicalDisk -PhysicalDisks $misDisk -StoragePoolFriendlyName 'smb-pool'