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

Windows Server에서 '관리자가 설정한 정책으로 인해 디스크가 오프라인 상태입니다' 오류 해결 방법

Windows Server 2016이 설치된 서버 중 하나에서 FC(Fibre Channel)를 통해 SAN LUN으로 연결된 추가 디스크(시스템 디스크가 아닌 데이터 디스크)가 서버를 재시작할 때마다 자동으로 오프라인 상태로 전환되는 문제가 발생할 수 있습니다.

디스크 관리 콘솔(diskmgmt.msc)을 열어보면 해당 디스크가 오프라인(Offline) 상태로 표시되는 것을 확인할 수 있습니다.

디스크를 사용하려면 마우스 오른쪽 버튼을 클릭해 '온라인'으로 전환하면 되지만, 문제는 서버를 재시작할 때마다 이 작업을 반복해야 한다는 점입니다. 매번 수동으로 처리하는 것은 번거롭고 비효율적일 것입니다.

문제의 원인: SAN Policy

처음에는 서버실의 정전 후 스토리지 시스템이 물리적 서버보다 늦게 부팅되어 발생하는 문제라고 의심했습니다. 하지만 서버를 소프트웨어적으로 재부팅했을 때도 디스크가 오프라인 상태로 돌아가는 것을 확인했습니다.

디스크 관리 화면에는 다음과 같은 팝업 메시지가 표시됩니다:

오프라인(관리자가 설정한 정책으로 인해 디스크가 오프라인 상태입니다 / The disk is offline because of policy set by an administrator)

조사 결과, 이 문제는 장애 조치(failover) 클러스터 환경이나 여러 운영체제가 공유 디스크에 접근할 수 있는 가상 머신 환경에서 주로 나타나는 것으로 밝혀졌습니다. 원인은 Windows Server 2008부터 도입된 SAN Policy에 있습니다.

SAN Policy는 외부 디스크의 자동 마운트를 제어하는 정책으로, 여러 서버가 동시에 접근하는 공유 디스크를 보호하기 위한 목적으로 사용됩니다. 기본적으로 Windows Server에서는 모든 SAN 디스크에 Offline Shared(VDS_SP_OFFLINE_SHARED) 정책이 적용됩니다. 이 정책을 Diskpart를 통해 OnlineAll로 변경하면 문제를 해결할 수 있습니다.

Diskpart로 SAN Policy 변경하기

먼저 명령 프롬프트를 관리자 권한으로 실행한 후 diskpart 명령을 입력합니다. Diskpart 컨텍스트에서 현재 SAN 정책을 확인하려면 다음 명령을 실행합니다:

DISKPART> san
SAN Policy : Offline Shared

현재 정책이 'Offline Shared'로 설정되어 있는 것이 확인됩니다. 이제 SAN 정책을 변경합니다:

DISKPART> san policy=OnlineAll
DiskPart successfully changed the SAN policy for the current operating system.

변경이 완료되면 다시 한번 현재 정책을 조회하여 정상적으로 적용되었는지 확인합니다:

DISKPART> san
SAN Policy : Online All

디스크 속성 확인 및 읽기 전용 해제

다음으로 대상 디스크를 선택합니다. (여기서는 예시로 디스크 인덱스 2번을 선택합니다.)

DISKPART> select disk 2

선택한 디스크의 속성을 확인합니다:

DISKPART> attributes disk

여기서 Read-Only(읽기 전용) 속성이 활성화되어 있지 않은지 반드시 확인하세요. 만약 읽기 전용 속성이 켜져 있다면, 디스크에 데이터를 쓰려고 할 때 '디스크가 쓰기 금지되어 있습니다(The disk is write protected)'라는 오류 메시지가 표시됩니다. 읽기 전용 속성이 설정되어 있다면 다음 명령으로 해제합니다:

DISKPART> attributes disk clear readonly

디스크 온라인 전환

이제 디스크를 온라인 상태로 전환합니다:

DISKPART> online disk
DiskPart successfully onlined the selected disk

PowerShell을 이용한 대체 방법

디스크 관리는 Diskpart뿐만 아니라 Windows에 내장된 PowerShell Storage 모듈을 통해서도 가능합니다. 예를 들어 디스크를 온라인으로 전환하려면 다음 명령을 실행하면 됩니다:

Set-Disk 2 -IsOffline 0

모든 작업이 완료되면 Diskpart를 종료하고 서버를 재시작한 후, 부팅 후에도 디스크가 정상적으로 온라인 상태를 유지하는지 확인합니다.

Windows 10에서도 동일한 문제 발생 가능

흥미로운 점은 이러한 디스크 접근 불가 문제가 Windows Server뿐만 아니라 일반 데스크톱용 Windows 버전에서도 발생할 수 있다는 것입니다. 예를 들어 Windows 10에서 외장 USB 드라이브나 SSD를 연결했을 때도 장치 관리자에서 동일한 디스크 상태(오프라인 – 관리자가 설정한 정책으로 인해 디스크가 오프라인 상태입니다)를 확인할 수 있습니다.

Windows 10에서도 해결 방법은 동일합니다. SAN 정책을 OnlineAll로 변경하면 됩니다. 참고로 새로 연결한 디스크라면 추가로 디스크 초기화와 파일 시스템 파티션 생성 작업이 필요할 수 있습니다.