적용 대상:SQL Server on Linux
이 문서에서는 Linux에서 SQL Server FCI(장애 조치(failover) 클러스터 인스턴스)와 관련된 개념을 설명합니다.
Linux에서 SQL Server FCI를 생성하려면 Configure failover cluster instance on Linux(RHEL)를 참조하세요.
클러스터링 계층
Red Hat Enterprise Linux(RHEL)에서는 클러스터링 계층이 RHEL 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에서 오류를 감지하면 클러스터링 구성 요소는 리소스를 다른 노드로 이동하는 작업을 담당합니다.
리눅스에서 SQL Server와 Pacemaker의 통합은 Windows의 Windows Server Failover Clustering(WSFC)만큼 밀접하게 연동되지 않습니다. SQL Server는 클러스터의 존재 여부를 알지 못합니다. 모든 오케스트레이션은 외부에서 수행되며 서비스는 Pacemaker에 의해 독립 실행형 인스턴스로 제어됩니다. 또한 가상 네트워크 이름은 WSFC에만 해당되며, Pacemaker에는 동일한 항목이 없습니다.
@@SERVERNAME 및 sys.servers는 노드 이름을 반환하는 반면 클러스터 DMV sys.dm_os_cluster_nodes 및 sys.dm_os_cluster_properties는 레코드를 반환하지 않을 것으로 예상됩니다. 서버 이름을 가리키는 연결 문자열을 사용하고 IP를 사용하지 않으려면, 가상 IP 자원을 생성하는 데 사용한 IP를 DNS 서버에 선택한 서버 이름으로 등록해야 합니다(다음 섹션에서 설명하는 대로).
SQL Server 2025 (17.x) 및 Cumulative Update(CU) 3 이후 버전에서는 Red Hat Enterprise Linux(RHEL)와 Ubuntu용 새로운 Pacemaker HA 에이전트 v2가 패키지 내에 mssql-server-ha 제공됩니다.
Pacemaker HA 에이전트 v2는 다음을 포함하여 이전 에이전트에 비해 안정성 및 성능이 향상되었습니다.
계획된 장애 조치(failover) 시간과 계획되지 않은 장애 조치(failover) 시간을 모두 줄이기 위해 장애 조치(failover) 성능이 향상되었습니다.
상태 검사 시간 제한 및 오류 조건 수준의 구성을 포함하여 유연한 자동 장애 조치(failover) 정책을 지원합니다.
Pacemaker 클러스터와 SQL Server 간의 통신을 위한 TLS 1.3 지원.
Pacemaker HA 에이전트 v2는 현재 미리 보기로 제공됩니다. 기존 Pacemaker HA 에이전트(v1)는 프로덕션 배포에 대해 완벽하게 지원됩니다.
인스턴스 및 노드 수
SQL Server on Linux와 한 가지 주요 차이점은 Linux 서버당 SQL Server를 하나만 설치할 수 있다는 것입니다. 해당 설치를 인스턴스라고 합니다. Windows Server가 WSFC당 최대 25개의 FCI를 지원하는 것과 달리, 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용 노드에 로컬인 디스크를 사용하는 기능입니다.
여러 위치에 걸쳐 있는 구성에서는 한 데이터 센터에 저장된 항목이 다른 데이터 센터와 동기화되어야 합니다. 장애 조치가 발생하면 FCI가 온라인 상태로 전환되고, 스토리지가 동일한 것으로 인식됩니다. 이를 위해서는 기본 스토리지 하드웨어를 통해 수행하든 일부 소프트웨어 기반 유틸리티를 통해 수행하든 스토리지 복제를 위한 몇 가지 외부 방법이 필요합니다.
메모
SQL Server의 경우, 서버에 직접 제공되는 디스크를 사용하는 리눅스 기반 배포는 XFS 또는 ext4로 포맷되어야 합니다. 다른 파일 시스템은 현재 지원되지 않습니다.
공유 스토리지를 표시하는 프로세스는 지원되는 다양한 메서드에 대해 동일합니다.
- 공유 스토리지 구성
- 스토리지를 FCI용 Pacemaker 클러스터의 노드로 사용할 서버에 폴더로 탑재
- 필요한 경우 SQL Server 시스템 데이터베이스를 공유 스토리지로 이동합니다.
- 공유 스토리지에 연결된 각 서버에서 SQL Server가 작동하는지 테스트합니다.
SQL Server on Linux의 한 가지 주요 차이는 기본 사용자 데이터와 로그 파일 위치는 구성 가능하지만 시스템 데이터베이스는 항상 /var/opt/mssql/data에 있어야 한다는 것입니다. Windows Server에서는 tempdb를 포함한 시스템 데이터베이스를 이동할 수 있습니다. 이러한 사실은 공유 스토리지가 FCI에 대해 구성되는 방식에 영향을 줍니다.
비시스템 데이터베이스의 기본 경로는 mssql-conf 유틸리티를 사용하여 변경할 수 있습니다. 기본값 변경 방법에 대한 정보는 ' 기본 데이터 또는 로그 디렉터리 위치 변경'을 참조하세요. SQL Server 데이터와 트랜잭션 로그는 기본 위치가 아니더라도 적절한 보안이 보장된 다른 위치에 저장할 수도 있습니다; 위치는 반드시 명시되어야 합니다.