안녕하세요.
Failover Clustering 환경에서는 장애가 발생한 노드에서 Resource Host Monitor가 정상적인 release signal을 받지 못하는 경우, orphaned file handle(고아 파일 핸들)이 남아 있을 수 있습니다. 이러한 lock은 Cluster Shared Volume(CSV) 관리 인터페이스와 PowerShell을 사용하여 확인하고 정리할 수 있습니다.
먼저 다음 명령을 실행하여 현재 어떤 노드가 CSV를 소유하고 있는지와 특정 resource가 stuck 상태인지 확인할 수 있습니다.
Get-ClusterSharedVolume
Get-ClusterSharedVolumeState
또한 다음 명령을 사용하면 Cluster Shared Volume resource의 상세 상태를 확인할 수 있습니다.
Get-ClusterResource -Name "Cluster Shared Volume"
Orphaned handle이 의심되는 경우, Applications and Services Logs > Microsoft > Windows > FailoverClustering 아래의 CsvFs diagnostic log를 확인해 보세요. 해당 로그를 통해 lock을 보유하고 있던 process ID를 확인할 수 있습니다.
Dead handle을 강제로 정리하려면 다음 명령을 사용할 수 있습니다.
Clear-ClusterSharedVolumeState
보다 심각한 경우에는 다음 명령을 사용하여 CSV를 다른 노드로 이동함으로써 ownership을 reset할 수도 있습니다.
Move-ClusterSharedVolume
다만 강제로 state를 clear하거나 CSV ownership을 변경하기 전에 현재 실행 중인 VM에서 active I/O가 발생하고 있지 않은지 반드시 확인해야 합니다. 그렇지 않으면 data corruption이 발생할 수 있습니다.
문제가 계속되는 경우, 해당 노드에서 Cluster service를 restart하면 stale lock이 flush되는 데 도움이 될 수 있습니다.
Best practice로는 cluster node를 최신 patch 상태로 유지하고, event log에서 CSVFS warning을 지속적으로 모니터링하는 것이 좋습니다. 또한 node crash로 인한 downtime을 최소화할 수 있도록 automatic VM failover policy를 적절히 구성하는 것을 권장합니다. 이러한 설정을 함께 적용하면 orphaned lock으로 인해 VM startup이 차단되는 상황을 예방하는 데 도움이 됩니다.
답변이 문제를 해결하는 데 도움이 되었기를 바랍니다. 유용한 답변이었다면 “Accept Answer” 를 눌러 해당 답변이 도움이 되었음을 알려주세요.
Jason