다음을 통해 공유


Azure Elastic SAN에서 클러스터된 애플리케이션 배포

Azure Elastic SAN 볼륨을 여러 컴퓨팅 클라이언트에 동시에 연결할 수 있으므로 클러스터 애플리케이션을 Azure에 배포하거나 마이그레이션할 수 있습니다. 클러스터 관리자를 사용하여 WSFC(Windows Server 장애 조치 클러스터) 또는 Pacemaker를 사용하여 Elastic SAN 볼륨을 공유해야 합니다. 클러스터 관리자는 클러스터 노드 통신 및 쓰기 잠금을 처리합니다. Elastic SAN은 기본적으로 SMB 또는 NFS를 통해 액세스할 수 있는 완전 관리형 파일 시스템을 제공하지 않습니다.

공유 볼륨으로 사용되는 경우 가용성 영역 또는 지역에서 Elastic SAN 볼륨을 공유할 수 있습니다. 영역 간에 로컬 중복 스토리지 SAN에서 볼륨을 공유하면 볼륨과 클라이언트 간의 대기 시간이 증가하여 성능이 저하됩니다.

제한 사항

  • Elastic SAN 연결 스크립트를 사용하여 VMSS의 가상 머신 또는 가용성 집합의 가상 머신에 공유 볼륨을 연결할 수 있습니다. 장애 도메인 맞춤은 지원되지 않습니다.
  • 공유 볼륨에서 지원하는 최대 세션 수는 128개입니다.
    • 개별 클라이언트는 성능 향상을 위해 개별 볼륨에 대한 여러 세션을 만들 수 있습니다. 예를 들어 각 클라이언트에서 32개의 세션을 만드는 경우 4개의 클라이언트만 단일 볼륨에 연결할 수 있습니다.

Elastic SAN의 다른 제한 사항은 Azure Storage 기능 지원을 참조하세요.

작동 방식

Elastic SAN 공유 볼륨은 SCSI-3 영구 예약을 사용하여 초기자(클라이언트)가 공유 Elastic SAN 볼륨에 대한 액세스를 제어할 수 있도록 합니다. 이 프로토콜을 사용하면 초기자가 Elastic SAN 볼륨에 대한 액세스를 예약하고, 다른 초기자의 쓰기(또는 읽기) 액세스를 제한하고, 기본적으로 세션 수명 이후의 볼륨에서 예약을 유지할 수 있습니다.

SCSI-3 PR은 클러스터 시나리오에서 공유 볼륨 내에서 데이터 일관성 및 무결성을 유지하는 데 중요한 역할을 합니다. 클러스터의 컴퓨팅 노드는 클러스터 애플리케이션에서 선택한 예약에 따라 연결된 Elastic SAN 볼륨을 읽거나 쓸 수 있습니다.

영구 예약 흐름

다음 다이어그램은 SCSI-3 PR을 사용해 한 노드에서 다른 노드로 장애 조치할 수 있는 2노드 클러스터된 데이터베이스 애플리케이션 샘플을 보여 줍니다.

클러스터된 애플리케이션을 보여 주는 다이어그램.

흐름은 다음과 같습니다.

  1. Azure VM1 및 VM2 레지스터 둘 다에서 실행되는, 클러스터된 애플리케이션은 Elastic SAN 볼륨에 대한 읽기 또는 쓰기 의도를 등록합니다.
  2. 그러면 VM1의 애플리케이션 인스턴스가 볼륨에 대한 독점 쓰기 예약을 받습니다.
  3. 이 예약은 볼륨에 적용되며 이제 데이터베이스가 볼륨에 독점적으로 데이터를 쓸 수 있습니다. VM2의 애플리케이션 인스턴스 쓰기가 실패하게 됩니다.
  4. VM1의 애플리케이션 인스턴스가 중단되면 VM2의 인스턴스가 이제 데이터베이스 장애 조치를 시작하고 및 볼륨 제어를 인계할 수 있습니다.
  5. 이 예약이 이제 볼륨에 적용되어 VM1에서 쓰기를 허용하지 않습니다. VM2의 쓰기만 허용합니다.
  6. 클러스터된 애플리케이션은 데이터베이스 장애 조치(failover)를 완료하고 VM2의 요청을 처리할 수 있습니다.

다음 다이어그램은 기계 학습 모델 학습과 같은 병렬 프로세스를 실행하기 위해 Elastic SAN 볼륨에서 데이터를 읽는 여러 노드로 구성된 다른 일반적인 클러스터된 워크로드를 보여 줍니다.

기계 학습 클러스터를 보여 주는 다이어그램.

흐름은 다음과 같습니다.

  1. 모든 VM 레지스터에서 실행되는, 클러스터된 애플리케이션은 Elastic SAN 볼륨에 대한 읽기 또는 쓰기 의도를 등록합니다.
  2. VM1의 애플리케이션 인스턴스는 다른 VM에서 디스크에 대한 읽기를 시작할 때 볼륨에 대한 독점 쓰기 예약을 받습니다.
  3. 이 예약은 볼륨에 적용됩니다.
  4. 이제 클러스터의 모든 노드에서 볼륨의 데이터를 읽을 수 있습니다. 클러스터의 모든 노드를 대표하는 하나의 노드만 볼륨에 결과를 다시 씁니다.

지원되는 SCSI PR 명령

다음 명령은 Elastic SAN 볼륨에서 지원됩니다.

볼륨과 상호 작용하려면 적절한 영구 예약 작업으로 시작합니다.

  • PR_REGISTER_KEY
  • PR_REGISTER_AND_IGNORE
  • PR_GET_CONFIGURATION
  • PR_RESERVE
  • PR_PREEMPT_RESERVATION
  • PR_CLEAR_RESERVATION
  • PR_RELEASE_RESERVATION

PR_RESERVE, PR_PREEMPT_RESERVATION 또는 PR_RELEASE_RESERVATION을 사용하는 경우 다음의 영구 예약 형식 중 하나를 제공합니다.

  • PR_NONE
  • PR_WRITE_EXCLUSIVE
  • PR_EXCLUSIVE_ACCESS
  • PR_WRITE_EXCLUSIVE_REGISTRANTS_ONLY
  • PR_EXCLUSIVE_ACCESS_REGISTRANTS_ONLY
  • PR_WRITE_EXCLUSIVE_ALL_REGISTRANTS
  • PR_EXCLUSIVE_ACCESS_ALL_REGISTRANTS

영구 예약 유형은 클러스터의 각 노드에서 볼륨에 대한 액세스를 결정합니다.

영구 예약 유형 예약 소유자 등록됨 기타
예약 없음 해당 없음 읽기/쓰기 읽기-쓰기
쓰기 전용 읽기/쓰기 읽기 전용 읽기 전용
단독 액세스 읽기/쓰기 액세스 없음 액세스 없음
쓰기 전용 - 등록자만 읽기-쓰기 읽기/쓰기 읽기 전용
단독 액세스 - 등록자만 읽기-쓰기 읽기/쓰기 액세스 없음
쓰기 전용 - 모든 등록자 읽기-쓰기 읽기/쓰기 읽기 전용
단독 액세스 - 모든 등록자 읽기-쓰기 읽기/쓰기 액세스 없음

또한 사용 시 영구 예약 키를 제공해야 합니다.

  • PR_RESERVE
  • PR_REGISTER_AND_IGNORE
  • PR_REGISTER_KEY
  • PR_PREEMPT_RESERVATION
  • PR_CLEAR_RESERVATION
  • PR_RELEASE-RESERVATION.