장애 조치(failover) 클러스터 인스턴스 - SQL Server on Linux

적용 대상:SQL Server - Linux

이 문서에서는 Linux의 SQL Server FCI(장애 조치(failover) 클러스터 인스턴스)와 관련된 개념을 설명합니다.

Linux에서 SQL Server FCI를 만들려면 Linux에서 SQL Server FCI 구성을 참조 하세요.

클러스터링 계층

  • RHEL(Red Hat Enterprise Linux)에서 클러스터링 계층은 RHEL(Red Hat Enterprise Linux) HA 추가 기능을 기반으로 합니다.

    참고 항목

    Red Hat HA 추가 기능 및 설명서에 액세스하려면 구독이 필요합니다.

  • SLES(SUSE Linux Enterprise Server)에서 클러스터링 계층은 SUSE Linux ENTERPRISE HAE(고가용성 확장)를 기반으로 합니다.

    클러스터 구성, 리소스 에이전트 옵션, 관리, 모범 사례 및 권장 사항에 대한 자세한 내용은 SUSE Linux Enterprise 고가용성 확장 15를 참조하세요.

RHEL HA 추가 기능과 SUSE HAE는 모두 Pacemaker를 기반으로 빌드됩니다.

다음 다이어그램에 표시된 대로 스토리지는 두 개의 서버에 제공됩니다. 클러스터링 구성 요소( Corosync 및 Pacemaker) - 통신 및 리소스 관리를 조정합니다. 서버 중 하나에 스토리지 리소스 및 SQL Server에 대한 활성 연결이 있습니다. Pacemaker에서 오류를 감지하면 클러스터링 구성 요소는 리소스를 다른 노드로 이동하는 작업을 담당합니다.

Diagram of Red Hat Enterprise Linux 7 shared disk SQL Server cluster.

Sql Server와 Linux의 Pacemaker 통합은 Windows의 WSFC와 결합되지 않습니다. SQL Server는 클러스터의 존재에 대해 전혀 알지 않습니다. 모든 오케스트레이션은 외부에 있으며 서비스는 Pacemaker에 의해 독립 실행형 인스턴스로 제어됩니다. 또한 가상 네트워크 이름은 Pacemaker에 해당하는 이름이 없는 WSFC와 관련이 있습니다. @@SERVERNAMEsys.servers 클러스터 DMV sys.dm_os_cluster_nodes 가 레코드를 반환하지 않는 동안 노드 이름을 반환해야 합니다sys.dm_os_cluster_properties. 문자열 서버 이름을 가리키고 IP를 사용하지 않는 연결 문자열 사용하려면 선택한 서버 이름으로 가상 IP 리소스를 만드는 데 사용되는 IP를 DNS 서버에 등록해야 합니다(다음 섹션에 설명된 대로).

인스턴스 및 노드 수

Linux의 SQL Server와 한 가지 주요 차이점은 Linux 서버당 하나의 SQL Server 설치만 있을 수 있다는 것입니다. 해당 설치를 인스턴스라고 합니다. WSFC(Windows Server 장애 조치(failover) 클러스터당 최대 25개의 FCI를 지원하는 Windows Server와 달리 Linux 기반 FCI에는 단일 인스턴스만 있습니다. 이 단일 인스턴스는 기본 인스턴스이기도 합니다. Linux에는 명명된 인스턴스의 개념이 없습니다.

Corosync가 관련된 경우 Pacemaker 클러스터에는 최대 16개 노드만 포함될 수 있으므로 단일 FCI는 최대 16개 서버에 걸쳐 있을 수 있습니다. Sql Server Standard Edition으로 구현된 FCI는 Pacemaker 클러스터에 최대 16개의 노드가 있더라도 클러스터의 노드를 최대 2개까지 지원합니다.

SQL Server FCI에서 SQL Server 인스턴스는 한 노드 또는 다른 노드에서 활성화됩니다.

IP 주소 및 이름

Linux Pacemaker 클러스터에서 각 SQL Server FCI에는 고유한 IP 주소와 이름이 필요합니다. FCI 구성이 여러 서브넷에 걸쳐 있는 경우 서브넷당 하나의 IP 주소가 필요합니다. 애플리케이션 및 최종 사용자가 Pacemaker 클러스터의 기본 서버를 알 필요가 없도록 고유 이름 및 IP 주소는 FCI에 액세스하는 데 사용됩니다.

DNS의 FCI 이름은 Pacemaker 클러스터에서 생성되는 FCI 리소스의 이름과 동일해야 합니다. 이름과 IP 주소는 모두 DNS에 등록해야 합니다.

공유 스토리지

Linux 또는 Windows Server에 있는 모든 FCI에는 어떤 형태의 공유 스토리지가 필요합니다. 이 스토리지는 FCI를 호스트할 수 있는 모든 서버에 제거되지만, 단일 서버에서만 특정 시점에 FCI에 스토리지를 사용할 수 있습니다. Linux에서 공유 스토리지에 사용할 수 있는 옵션은 다음과 같습니다.

  • iSCSI
  • NFS(네트워크 파일 시스템)
  • SMB(서버 메시지 블록) Windows Server에는 약간 다른 옵션이 있습니다. 현재 Linux 기반 FCI에서 지원되지 않는 한 가지 옵션은 SQL Server의 임시 작업 영역인 노드 tempdb에 로컬인 디스크를 사용하는 기능입니다.

여러 위치에 걸쳐 있는 구성에서 한 데이터 센터에 저장된 항목은 다른 데이터 센터와 동기화되어야 합니다. 장애 조치(failover)가 발생할 경우 FCI는 온라인 상태가 될 수 있으며 스토리지는 동일하게 표시됩니다. 이를 위해서는 기본 스토리지 하드웨어 또는 일부 소프트웨어 기반 유틸리티를 통해 수행되든 스토리지 복제본(replica)tion에 대한 몇 가지 외부 방법이 필요합니다.

참고 항목

SQL Server의 경우 서버에 직접 제공된 디스크를 사용하는 Linux 기반 배포는 XFS 또는 EXT4로 포맷되어야 합니다. 다른 파일 시스템은 현재 지원되지 않습니다. 모든 변경 내용은 여기에 반영됩니다.

공유 스토리지를 표시하는 프로세스는 지원되는 다양한 메서드에 대해 동일합니다.

  • 공유 스토리지 구성
  • 스토리지를 FCI용 Pacemaker 클러스터의 노드로 사용할 서버에 폴더로 탑재
  • 필요한 경우 SQL Server 시스템 데이터베이스를 공유 스토리지로 이동합니다.
  • 공유 스토리지에 연결된 각 서버에서 SQL Server가 작동하는지 테스트합니다.

SQL Server on Linux의 한 가지 주요 차이는 기본 사용자 데이터와 로그 파일 위치는 구성 가능하지만 시스템 데이터베이스는 항상 /var/opt/mssql/data에 있어야 한다는 것입니다. Windows Server에서는 다음을 포함하여 tempdb시스템 데이터베이스를 이동할 수 있습니다. 이 사실은 공유 스토리지가 FCI에 대해 구성된 방식에 영향을 줍니다.

비시스템 데이터베이스의 기본 경로는 mssql-conf 유틸리티를 사용하여 변경할 수 있습니다. 기본값을 변경하는 방법에 대한 자세한 내용은 기본 데이터 또는 로그 디렉터리 위치를 변경합니다. SQL Server 데이터 및 트랜잭션은 기본 위치가 아니더라도 적절한 보안이 유지되는 한 다른 위치에 저장할 수도 있습니다. 위치를 명시해야 합니다.