다음을 통해 공유


장애 조치(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(High Availability Extension)를 기반으로 합니다.

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

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

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

Red Hat Enterprise Linux 7 공유 디스크 SQL 서버 클러스터의 다이어그램.

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

인스턴스 및 노드 수

SQL Server on Linux와 한 가지 주요 차이점은 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 주소가 필요합니다. FCI에 액세스하는 데 고유 이름 및 IP 주소가 사용되므로 애플리케이션 및 최종 사용자는 Pacemaker 클러스터의 기본 서버를 알 필요가 없습니다.

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는 온라인 상태가 될 수 있으며 스토리지도 동일한 것으로 표시됩니다. 이를 위해서는 기본 스토리지 하드웨어를 통해 수행하든 일부 소프트웨어 기반 유틸리티를 통해 수행하든 스토리지 복제를 위한 몇 가지 외부 방법이 필요합니다.

참고 항목

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 데이터 및 트랜잭션은 기본 위치가 아니더라도 적절한 보안만 갖추면 다른 위치에 저장할 수도 있습니다. 위치를 명시해야 합니다.