클러스터 서비스가 디스크를 예약하고 디스크를 온라인으로 가져오는 방법

이 문서에서는 Microsoft 클러스터 서비스가 클러스터 서비스 및 관련 드라이버에서 관리하는 온라인 디스크를 예약하고 가져오는 방법을 설명합니다.

적용 대상: Windows Server 2003
원래 KB 번호: 309186

추가 정보

클러스터 서비스는 SCSI 프로토콜만 사용하여 공유 버스의 디스크를 관리합니다.

참고

즉, 모든 디스크가 SCSI 형식이 아니라 SCSI라고 하는 하드웨어 인터페이스를 지정하는 것이 아니라 스토리지 단위가 SCSI 프로토콜 및 명령을 올바르게 해석하고 처리할 수 있어야 합니다.

다음 명령 목록은 디스크가 클러스터형 환경에 있을 때 사용되는 추가 SCSI 프로토콜 기능입니다.

  • reserve: 이 명령은 SCSI 디바이스의 소유권을 가져오거나 유지하기 위해 호스트 버스 어댑터에서 실행됩니다. 예약된 디바이스는 처음에 예약한 디바이스인 초기자를 제외한 다른 모든 호스트 버스 어댑터에서 모든 명령을 거부합니다.

  • release: 디스크 리소스를 오프라인으로 전환할 때 소유 호스트 버스 어댑터에서 이 명령을 실행합니다. 다른 호스트 버스 어댑터를 예약할 수 있도록 SCSI 디바이스를 해제합니다.

  • reset: 이 명령은 대상 디바이스의 예약을 중단합니다. 이 명령은 버스 재설정(전체 버스의 경우) 또는 Storport 드라이버를 사용하여 버스의 특정 디바이스에 대한 대상 재설정일 수 있습니다. 다음 절차에서는 서버 클러스터가 공유 디스크를 시작하고 제어하는 방법을 설명합니다. 이 시나리오에서는 한 번에 하나의 노드만 켜져 있다고 가정합니다.

컴퓨터가 시작되면 클러스터 디스크 드라이버(Clusdisk.sys)는 다음 로컬 레지스트리 키를 읽어 클러스터 관리에서 공유 디스크의 서명 목록을 가져옵니다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ClusDisk\Parameters \Signatures

목록을 가져온 후 클러스터 서비스는 공유 SCSI 버스의 모든 디바이스를 검사하여 일치하는 디스크 서명을 찾으려고 시도합니다.

클러스터의 첫 번째 노드가 시작되면 클러스터 디스크 드라이버는 먼저 서명 키를 오프라인 볼륨과 일치하는 모든 LUN(LUN: 논리 단위 번호, 동일한 버스를 공유하는 디바이스를 구분하기 위해 SCSI 버스에 사용되는 고유 식별자)을 표시합니다. 클러스터 리소스를 오프라인으로 전환할 때와는 다릅니다. 볼륨은 여러 노드가 동시에 볼륨에 대한 쓰기 액세스 권한을 갖지 못하도록 오프라인으로 표시됩니다. 클러스터가 공유 디스크 클러스터인 경우 디스크 중 하나가 클러스터 서비스에 의해 쿼럼 디스크로 지정됩니다. 쿼럼 디스크는 클러스터 서비스가 클러스터를 구성하려고 할 때 온라인으로 가져온 첫 번째 리소스입니다.

형성 노드의 클러스터 서비스가 시작되면 먼저 쿼럼 디스크로 지정된 물리적 디바이스를 온라인 상태로 전환하려고 시도합니다. 쿼럼 디스크에서 디스크 중재 알고리즘을 실행하여 소유권을 얻습니다. 성공적인 중재 시 클러스터 서비스는 clusdisk에 요청을 보내서 주기적 예약을 디스크에 보내기 시작합니다(소유권 유지 관리). 그런 다음 클러스터 서비스는 쿼럼 디스크에 대한 액세스를 차단 해제하기 위해 clusdisk에 요청을 보내고 디스크에 볼륨을 탑재합니다. 볼륨을 성공적으로 탑재하면 온라인 프로시저가 완료되고 클러스터 서비스가 클러스터 양식 프로세스를 계속 진행합니다. 요청은 클러스터 디스크 드라이버에서 Microsoft 스토리지 드라이버 스택으로 전달되고 마지막으로 디스크와 통신하는 HBA와 관련된 드라이버에 전달됩니다. 스토리지 스택에서 실행되는 모든 다중 경로 소프트웨어에 전달될 수도 있습니다.

스토리지 컨트롤러/디바이스 드라이버가 디바이스가 성공적으로 예약되었다고 보고한 후 클러스터 서비스는 드라이브를 읽고 쓸 수 있도록 합니다. 디스크가 이러한 모든 테스트를 통과하면 디스크 리소스가 온라인으로 표시되고 클러스터 서비스가 다른 모든 리소스를 계속 온라인 상태로 만듭니다.

클러스터의 각 노드는 3초마다 소유하는 모든 LUN에 대한 예약을 갱신합니다. 클러스터의 노드가 서로 네트워크 통신을 잃으면(예: 프라이빗 또는 공용 네트워크를 통한 통신이 없는 경우) 노드는 중재라는 프로세스를 시작하여 쿼럼 디스크의 소유권을 확인합니다. 클러스터 노드 간의 총 통신 손실에서 쿼럼 디스크 리소스의 소유권을 획득하는 노드는 계속 작동합니다. 통신할 수 없고 쿼럼 디스크의 소유권을 유지 관리하거나 획득할 수 없는 노드는 클러스터 서비스를 종료하고 노드가 호스팅하는 모든 리소스는 클러스터의 다른 노드로 이동됩니다.

  1. 현재 쿼럼 디스크를 소유하는 노드는 방어 노드입니다. Defender는 통신할 수 없고 종료 알림을 받지 못한 클러스터 노드에 대해 방어하고 있다고 가정합니다. Defender는 3초마다 LUN에 SCSI 예약을 배치하도록 요청하여 쿼럼에 대한 예약을 지속적으로 갱신합니다.

  2. 다른 모든 노드(쿼럼 디스크를 소유하지 않고 쿼럼 리소스를 소유한 노드와 통신할 수 없는 노드)는 어려운 노드가 됩니다.

  3. 챌린저가 모든 통신의 손실을 감지하면 즉시 버스 전체 SCSI 재설정을 요청하여 기존 예약을 중단합니다.

  4. SCSI 재설정이 요청된 후 7초 후에 챌린저가 쿼럼 디스크를 예약하려고 시도합니다. Defender 노드가 온라인 상태이고 작동하는 경우 일반적으로 3초마다 수행되므로 쿼럼 디스크가 이미 예약되어 있습니다. 챌린저는 쿼럼을 예약할 수 없음을 감지하고 클러스터 서비스를 종료합니다. Defender가 제대로 작동하지 않으면 챌린저가 쿼럼 디스크를 성공적으로 예약할 수 있습니다. 10초 후에 챌린저는 쿼럼을 온라인으로 가져오고 클러스터의 모든 리소스에 대한 소유권을 갖습니다. 방어 노드가 쿼럼 디바이스의 소유권을 잃으면 방어 노드의 클러스터 서비스가 즉시 종료됩니다.

클러스터 노드가 디스크 리소스를 오프라인으로 전환하면 SCSI 예약을 해제한 다음 운영 체제에서 드라이브를 다시 사용할 수 없도록 요청합니다. 디스크 리소스가 클러스터에서 오프라인 상태일 때마다 리소스가 가리키는 볼륨(일치하는 서명이 있는 디스크)은 클러스터 노드의 운영 체제에 액세스할 수 없습니다.