SQL Server 가용성 그룹에 대 한 SLES 클러스터를 구성 합니다.Configure SLES Cluster for SQL Server Availability Group

이 가이드를 SQL Server에서 SUSE Linux Enterprise Server (SLES) 12 s p 2에 대 한 3 개 노드 클러스터를 만드는 지침을 제공 합니다.This guide provides instructions to create a three-node cluster for SQL Server on SUSE Linux Enterprise Server (SLES) 12 SP2. 고가용성을 위해 Linux에서 가용성 그룹에 노드가 3 개 필요-참조 가용성 그룹 구성에 대 한 높은 가용성 및 데이터 보호합니다.For high availability, an availability group on Linux requires three nodes - see High availability and data protection for availability group configurations. 클러스터링 레이어 SUSE 기반 높은 가용성 확장 (HAE) 기반으로 구축 Pacemaker합니다.The clustering layer is based on SUSE High Availability Extension (HAE) built on top of Pacemaker.

클러스터 구성, 리소스 에이전트 옵션, 관리, 모범 사례 및 권장 사항에 대 한 자세한 내용은 참조 하십시오. SUSE Linux Enterprise 높은 가용성 확장 12 SP2합니다.For more details on cluster configuration, resource agent options, management, best practices, and recommendations, see SUSE Linux Enterprise High Availability Extension 12 SP2.

참고

이 시점에서 linux Pacemaker와 SQL Server의 통합 Windows에서 WSFC와으로으로 결합 된 않습니다.At this point, SQL Server's integration with Pacemaker on Linux is not as coupled as with WSFC on Windows. Linux에서 SQL Server 서비스의 클러스터를 인식할 수 없는 경우SQL Server service on Linux is not cluster aware. Pacemaker 모든 가용성 그룹 리소스를 포함 하 여 클러스터 리소스의 오케스트레이션을 제어 합니다.Pacemaker controls all of the orchestration of the cluster resources, including the availability group resource. Linux에서 항상에 가용성 그룹 동적 관리 뷰 (Dmv) sys.dm_hadr_cluster 같은 클러스터 정보를 제공 하는에 되지는지 않습니다.On Linux, you should not rely on Always On Availability Group Dynamic Management Views (DMVs) that provide cluster information like sys.dm_hadr_cluster. 또한 가상 네트워크 이름은 WSFC 관련, Pacemaker에는 동일한 동등한 옵션이 없습니다.Also, virtual network name is specific to WSFC, there is no equivalent of the same in Pacemaker. 장애 조치 후 투명 하 게 다시 연결에 사용할 수신기를 만들 수 있지만 (아래 설명 됨) 가상 IP 리소스를 만드는 데 IP와 함께 DNS 서버에서 수신기 이름은 수동으로 등록 해야 합니다.You can still create a listener to use it for transparent reconnection after failover, but you will have to manually register the listener name in the DNS server with the IP used to create the virtual IP resource (as explained below).

로드맵Roadmap

고가용성을 위해 Linux 서버에 가용성 그룹을 만드는 단계는 Windows Server 장애 조치 클러스터에는 단계와에서 다릅니다.The steps to create an availability group on Linux servers for high availability are different from the steps on a Windows Server failover cluster. 다음 목록에서는 고급 단계를 설명합니다.The following list describes the high level steps:

  1. SQL Server 클러스터 노드에서 구성합니다.Configure SQL Server on the cluster nodes.

  2. 가용성 그룹 만들기합니다.Create the availability group.

  3. Pacemaker 같은 클러스터 리소스 관리자를 구성 합니다.Configure a cluster resource manager, like Pacemaker. 이러한 지침은이 문서에 나와 있습니다.These instructions are in this document.

    클러스터 리소스 관리자를 구성 하는 방법은 특정 Linux 배포에 따라 달라 집니다.The way to configure a cluster resource manager depends on the specific Linux distribution.

    중요

    프로덕션 환경에서는 고가용성을 위해 STONITH 같은 펜스 에이전트를 해야 합니다.Production environments require a fencing agent, like STONITH for high availability. 이 설명서에서 데모 펜싱 에이전트를 사용 하지 마십시오.The demonstrations in this documentation do not use fencing agents. 데모는 테스트 및 유효성 검사에만 적용 됩니다.The demonstrations are for testing and validation only.

    Pacemaker 클러스터 펜싱을 사용 하 여 알려진 상태로 클러스터를 반환 합니다.A Pacemaker cluster uses fencing to return the cluster to a known state. 펜싱을 구성 하는 방법은 배포 및 환경에 따라 달라 집니다.The way to configure fencing depends on the distribution and the environment. 이때 펜싱 일부 클라우드 환경에서 사용할 수 없는 경우At this time, fencing is not available in some cloud environments. 참조 SUSE Linux Enterprise 고가용성 확장합니다.See SUSE Linux Enterprise High Availability Extension.

  4. 가용성 그룹에 클러스터 리소스로 추가합니다.Add the availability group as a resource in the cluster.

필수 구성 요소Prerequisites

아래 종단 간 시나리오를 완료 하려면 세 컴퓨터 3 개 노드 클러스터 배포를 해야 합니다.To complete the end-to-end scenario below you need three machines to deploy the three nodes cluster. 다음 단계에는 이러한 서버를 구성 하는 방법을 간략하게 설명 합니다.The steps below outline how to configure these servers.

설정 하 고 각 클러스터 노드에서 운영 체제를 구성 합니다.Setup and configure the operating system on each cluster node

클러스터 노드에서 운영 체제를 구성 하는 첫 번째 단계가입니다.The first step is to configure the operating system on the cluster nodes. 이 연습 과정에 대 한 HA 추가 기능에 대 한 유효한 구독으로 SLES 12 s p 2를 사용 합니다.For this walk through, use SLES 12 SP2 with a valid subscription for the HA add-on.

설치 하 고 각 클러스터 노드에서 SQL Server 서비스를 구성 합니다.Install and configure SQL Server service on each cluster node

  1. 모든 노드의 SQL Server 서비스 설치 및 설정 합니다.Install and setup SQL Server service on all nodes. 자세한 내용은 참조 Linux에서 SQL Server 설치합니다.For detailed instructions see Install SQL Server on Linux.

  2. 기본 및 다른 노드가 보조 복제본으로으로 노드 하나를 지정 합니다.Designate one node as primary and other nodes as secondaries. 이 가이드 전체에서 이러한 용어를 사용 합니다.Use these terms throughout this guide.

  3. 클러스터의 일부가 될 노드는 서로 통신할 수 있는지 확인 합니다.Make sure nodes that are going to be part of the cluster can communicate to each other.

    다음 예제와 /etc/hosts SLES1, SLES2 및 SLES3 이라는 세 개의 노드를 추가 합니다.The following example shows /etc/hosts with additions for three nodes named SLES1, SLES2 and SLES3.

    127.0.0.1   localhost
    10.128.16.33 SLES1
    10.128.16.77 SLES2
    10.128.16.22 SLES3
    

    모든 클러스터 노드에 SSH를 통해 서로 액세스할 수 있어야 합니다.All cluster nodes must be able to access each other via SSH. 도구와 같은 hb_report 또는 crm_report (에 대 한 문제 해결) 매의 기록 탐색기 노드간 passwordless SSH 액세스를 해야 하 고, 그렇지 않으면 이러한만 데이터를 수집할 수 현재 노드에서 합니다.Tools like hb_report or crm_report (for troubleshooting) and Hawk's History Explorer require passwordless SSH access between the nodes, otherwise they can only collect data from the current node. 비표준 SSH 포트를 사용 하는 경우-X 옵션을 사용 합니다. (참조 man 페이지).In case you use a non-standard SSH port, use the -X option (see man page). SSH 포트 3479 이면 호출 예를 들어 한 crm_report 사용:For example, if your SSH port is 3479, invoke a crm_report with:

    sudo crm_report -X "-p 3479" [...]
    

    자세한 내용은 참조는 SLES 관리 가이드-기타 섹션합니다.For additional information, see the SLES Administration Guide - Miscellaneous section.

Pacemaker에 대 한 SQL Server 로그인 만들기Create a SQL Server login for Pacemaker

  1. 모든 SQL Server에서 Pacemaker를 위한 서버 로그인을 만듭니다.On all SQL Servers, create a Server login for Pacemaker. 다음 Transact-SQL이 로그인을 만듭니다.The following Transact-SQL creates a login:

    USE [master]
    GO
    CREATE LOGIN [pacemakerLogin] with PASSWORD= N'ComplexP@$$w0rd!'
    
    ALTER SERVER ROLE [sysadmin] ADD MEMBER [pacemakerLogin]
    

    또는 더 세부적인 수준에서 권한을 설정할 수 있습니다.Alternatively, you can set the permissions at a more granular level. Pacemaker 로그인에는 ALTER, CONTROL 및 VIEW DEFINITION 권한이 필요합니다.The Pacemaker login requires ALTER, CONTROL, and VIEW DEFINITION PERMISSION. 자세한 내용은 가용성 그룹 사용 권한 부여(Transact-SQL)를 참조하세요.For more information, see GRANT Availability Group Permissions (Transact-SQL).

    다음 Transact-SQL은 Pacemaker 로그인에 필요한 권한을 부여합니다.The following Transact-SQL grants only the required permission to the Pacemaker login. 이 문에서 아래 'ag1'은 클러스터 리소스로 추가될 가용성 그룹의 이름입니다.In the statement below 'ag1' is the name of the availability group that will be added as a cluster resource.

    GRANT ALTER, CONTROL, VIEW DEFINITION ON AVAILABILITY GROUP::ag1 TO pacemakerLogin
    
  2. 모든 SQL Server에서 SQL Server 로그인을 위한 자격 증명을 저장합니다.On all SQL Servers, save the credentials for the SQL Server login.

    echo 'pacemakerLogin' >> ~/pacemaker-passwd
    echo 'ComplexP@$$w0rd!' >> ~/pacemaker-passwd
    sudo mv ~/pacemaker-passwd /var/opt/mssql/secrets/passwd
    sudo chown root:root /var/opt/mssql/secrets/passwd
    sudo chmod 400 /var/opt/mssql/secrets/passwd # Only readable by root
    

Always On 가용성 그룹 구성Configure an Always On Availability Group

Linux 서버에 가용성 그룹을 구성 하 고 클러스터 리소스를 구성 합니다.On Linux servers configure the availability group and then configure the cluster resources. 가용성 그룹을 구성 하려면 참조 구성 Always On 가용성 그룹 Linux에서 SQL Server에 대 한To configure the availability group, see Configure Always On Availability Group for SQL Server on Linux

설치 하 고 각 클러스터 노드에서 Pacemaker 구성Install and configure Pacemaker on each cluster node

  1. 항상 사용 가능한 확장을 설치Install the High Availability extension

    참조를 참조 하세요. SUSE Linux Enterprise Server를 설치 하 고 높은 가용성 확장For reference, see Installing SUSE Linux Enterprise Server and High Availability Extension

  2. 두 노드에서 모두 SQL Server 리소스 에이전트 패키지를 설치 합니다.Install SQL Server resource agent package on both nodes.

    sudo zypper install mssql-server-ha
    

첫 번째 노드를 설정 합니다.Set up the first node

참조 SLES 설치 지침Refer to SLES installation instructions

  1. 로 로그인 root 물리적 컴퓨터 또는 클러스터 노드로 사용 하려면 가상 컴퓨터에 있습니다.Log in as root to the physical or virtual machine you want to use as cluster node.
  2. 부트스트랩 스크립트를 실행 하 여 시작 합니다.Start the bootstrap script by executing:

    sudo ha-cluster-init
    

    NTP 부팅 시간에 시작 하도록 구성 되지 않았습니다, 메시지가 나타납니다.If NTP has not been configured to start at boot time, a message appears.

    그래도 계속 하려는 경우 스크립트 자동으로 대 한 SSH 액세스 하며 Csync2 동기화 도구에 대 한 키를 생성 하 고 둘 다에 대해 필요한 서비스를 시작 합니다.If you decide to continue anyway, the script will automatically generate keys for SSH access and for the Csync2 synchronization tool and start the services needed for both.

  3. 구성 하려면 클러스터 통신 계층 (Corosync):To configure the cluster communication layer (Corosync):

    a.a. 바인딩할 네트워크 주소를 입력 합니다.Enter a network address to bind to. 기본적으로 스크립트는 t h 0의 네트워크 주소를 제안 합니다.By default, the script will propose the network address of eth0. 또는 bond0의 주소 예를 들어 다른 네트워크 주소를 입력 합니다.Alternatively, enter a different network address, for example the address of bond0.

    b.b. 멀티 캐스트 주소를 입력 합니다.Enter a multicast address. 스크립트는 기본으로 사용할 수 있는 한 임의의 주소를 제안 합니다.The script proposes a random address that you can use as default.

    c.c. 멀티 캐스트 포트를 입력 합니다.Enter a multicast port. 스크립트는 기본값으로 5405을 제안합니다.The script proposes 5405 as default.

    d.d. 구성 하려면 SBD (), SBD에 대 한 사용 하려는 차단 장치 파티션에 영구 경로 입력 합니다.To configure SBD (), enter a persistent path to the partition of your block device that you want to use for SBD. 경로 클러스터의 모든 노드에서 일치 해야 합니다.The path must be consistent across all nodes in the cluster. 마지막으로 스크립트를 1 개 노드 클러스터를 온라인 상태로 전환 하 고 Hawk2의 웹 관리 인터페이스를 사용 하려면 Pacemaker 서비스를 시작 합니다.Finally, the script will start the Pacemaker service to bring the one-node cluster online and enable the Web management interface Hawk2. Hawk2에 사용할 URL은 화면에 표시 됩니다.The URL to use for Hawk2 is displayed on the screen.

  4. 설치 프로세스에 대 한 세부 정보에 대 한 확인 /var/log/sleha-bootstrap.log합니다.For any details of the setup process, check /var/log/sleha-bootstrap.log. 실행 1 노드 클러스터를 만들었습니다.You now have a running one-node cluster. Crm 상태와 함께 클러스터 상태를 확인 합니다.Check the cluster status with crm status:

    sudo crm status
    

    또한 구성 된 클러스터를 볼 수 있습니다 crm configure show xml 또는 crm configure show합니다.You can also see cluster configuration with crm configure show xml or crm configure show.

  5. 부트스트랩 절차에서는 암호 linux로 hacluster 라는 Linux 사용자를 만듭니다.The bootstrap procedure creates a Linux user named hacluster with the password linux. 가능한 한 빨리 기본 암호를 안전한 것으로 바꿉니다.Replace the default password with a secure one as soon as possible:

    sudo passwd hacluster
    

기존 클러스터에 노드 추가Add nodes to the existing cluster

하나 이상의 노드를 실행 하는 클러스터를 설정한 경우 ha 클러스터-조인 부트스트랩 스크립트와 함께 더 많은 클러스터 노드를 추가 합니다.If you have a cluster running with one or more nodes, add more cluster nodes with the ha-cluster-join bootstrap script. 만 필요한 스크립트는 기존 클러스터 노드에 대 한 액세스 하 고 현재 컴퓨터에 기본 설치를 자동으로 완료 됩니다.The script only needs access to an existing cluster node and will complete the basic setup on the current machine automatically. 다음 단계를 수행 합니다.Follow the steps below:

사용 하 여 기존 클러스터 노드를 구성한 경우는 YaST 모듈 클러스터를 실행 하기 전에 다음 선행 조건을 충족 되는지 확인 ha-cluster-join:If you have configured the existing cluster nodes with the YaST cluster module, make sure the following prerequisites are fulfilled before you run ha-cluster-join:

  • 기존 노드에서 상의 루트 사용자에 SSH 키에 대 한 passwordless 로그인 합니다.The root user on the existing nodes has SSH keys in place for passwordless login.
  • Csync2기존 노드에서 구성 됩니다.Csync2 is configured on the existing nodes. 자세한 내용은 구성 Csync2 YaST 가리킵니다.For details, refer to Configuring Csync2 with YaST.
  1. 물리적 컴퓨터 또는 가상 컴퓨터 클러스터에 가입 해야 하는 경우에 루트로 로그인 합니다.Log in as root to the physical or virtual machine supposed to join the cluster.
  2. 부트스트랩 스크립트를 실행 하 여 시작 합니다.Start the bootstrap script by executing:

    sudo ha-cluster-join
    

    NTP 부팅 시간에 시작 하도록 구성 되지 않았습니다, 메시지가 나타납니다.If NTP has not been configured to start at boot time, a message appears.

  3. 그래도 계속 하려는 경우 기존 노드의 IP 주소에 대해 묻는 메시지가 나타납니다.If you decide to continue anyway, you will be prompted for the IP address of an existing node. IP 주소를 입력 합니다.Enter the IP address.

  4. 두 컴퓨터 간의 passwordless SSH 액세스를 아직 구성 하지 있을 경우 기존 노드의 루트 암호 라는 메시지가 표시도 됩니다.If you have not already configured a passwordless SSH access between both machines, you will also be prompted for the root password of the existing node.

    지정 된 노드에 로그인 한 후 스크립트는 Corosync 구성을 복사, SSH를 구성 하 고 Csync2, 새 클러스터 노드로 온라인 현재 컴퓨터를 제공 합니다.After logging in to the specified node, the script will copy the Corosync configuration, configure SSH and Csync2, and will bring the current machine online as new cluster node. 별개로 하더라도 매에 필요한 서비스를 시작 됩니다.Apart from that, it will start the service needed for Hawk. 공유 저장소를 구성한 경우 OCFS2에 대 한 탑재 지점 디렉터리가 자동으로 만들어집니다는 OCFS2 파일 시스템입니다.If you have configured shared storage with OCFS2, it will also automatically create the mountpoint directory for the OCFS2 file system.

  5. 클러스터에 추가 하려는 모든 컴퓨터에 대해 위의 단계를 반복 합니다.Repeat the steps above for all machines you want to add to the cluster.

  6. 확인 프로세스의 자세한 /var/log/ha-cluster-bootstrap.log합니다.For details of the process, check /var/log/ha-cluster-bootstrap.log.

  7. 에 대해 클러스터 상태를 확인 sudo crm status합니다.Check the cluster status with sudo crm status. 두 번째 노드를 성공적으로 추가한 경우 출력이 다음과 같이 표시됩니다.If you have successfully added a second node, the output will be similar to the following:

    sudo crm status
    
    3 nodes configured
    1 resource configured
    Online: [ SLES1 SLES2 SLES3]
    Full list of resources:   
    admin_addr     (ocf::heartbeat:IPaddr2):       Started node1
    
    참고

    admin_addr초기 1 노드 클러스터 설치 중 구성 된 가상 IP 클러스터 리소스가입니다.admin_addr is the virtual IP cluster resource which is configured during initial one-node cluster setup.

모든 노드를 추가한 후의 아니요-쿼럼-정책 전역 클러스터 옵션을 조정 해야 하는 경우를 확인 합니다.After adding all nodes, check if you need to adjust the no-quorum-policy in the global cluster options. 이 2 노드 클러스터에 대 한 특히 중요 합니다.This is especially important for two-node clusters. 자세한 내용은 4.1.2, 옵션 no 쿼럼 정책 섹션을 참조 합니다.For more information, refer to Section 4.1.2, Option no-quorum-policy.

클러스터 속성을 false 시작 실패-은-치명적이 지 설정Set cluster property start-failure-is-fatal to false

Start-failure-is-fatal노드의 리소스를 시작 하지 해당 노드에서 시작 시도 하면 추가 하는지 여부를 나타냅니다.Start-failure-is-fatal indicates whether a failure to start a resource on a node prevents further start attempts on that node. 로 설정 하면 false, 클러스터 리소스의 현재 오류 개수 및 마이그레이션 임계값에 따라 다시 동일한 노드에서 시작을 시도할 것인지 결정 합니다.When set to false, the cluster will decide whether to try starting on the same node again based on the resource's current failure count and migration threshold. 따라서 장애 조치 발생 후 Pacemaker로 다시 시작의 가용성 그룹 리소스가 이전에 기본 SQL 인스턴스를 사용할 수 있는 합니다.So, after failover occurs, Pacemaker will retry starting the availability group resource on the former primary once the SQL instance is available. 보조 복제본의 수준을 내립니다 pacemaker 하므로 및 가용성 그룹 자동으로 다시 연결 됩니다.Pacemaker will take care of demoting the replica to secondary and it will automatically rejoin the availability group. 또한 경우 start-failure-is-fatal 로 설정 된 false, 클러스터 마이그레이션 임계값에 따라 업데이트 됩니다 기본 있는지 확인 해야 하므로 마이그레이션 임계값을 사용 하 여 구성 된 구성된 failcount 제한으로 대체 됩니다.Also, if start-failure-is-fatal is set to false, the cluster will fall back to the configured failcount limits configured with migration-threshold so you need to make sure default for migration threshold is updated accordingly.

업데이트 하려면 속성 값을 false 실행:To update the property value to false run:

sudo crm configure property start-failure-is-fatal=false
sudo crm configure rsc_defaults migration-threshold=5000

속성의 기본값에 있으면 true리소스 실패, 사용자 작업을 시작 하려면 첫 번째 시도 정리 리소스 실패 횟수를 자동 장애 조치 후와 사용 하 여 구성을 다시 설정 하는 경우: sudo crm resource cleanup <resourceName> 명령입니다.If the property has the default value of true, if first attempt to start the resource fails, user intervention is required after an automatic failover to cleanup the resource failure count and reset the configuration using: sudo crm resource cleanup <resourceName> command.

Pacemaker 클러스터 속성에 대 한 자세한 내용은 참조 클러스터 리소스 구성합니다.For more details on Pacemaker cluster properties see Configuring Cluster Resources.

펜스 (STONITH) 구성Configure fencing (STONITH)

Pacemaker 클러스터 공급 업체를 사용 하도록 설정할 STONITH와 지원 되는 클러스터 설치에 대해 구성 된 펜싱 장치에 필요 합니다.Pacemaker cluster vendors require STONITH to be enabled and a fencing device configured for a supported cluster setup. 클러스터 리소스 관리자 상태 노드 또는 노드에 있는 리소스의을 확인할 수 없는 경우 펜싱 클러스터도 알려진 상태로 다시 전환 하는 데 사용 됩니다.When the cluster resource manager cannot determine the state of a node or of a resource on a node, fencing is used to bring the cluster to a known state again. 리소스 수준 펜싱 하면 주로 리소스를 구성 하 여 중단 시 데이터 손상 되지 않습니다.Resource level fencing ensures mainly that there is no data corruption in case of an outage by configuring a resource. 리소스 수준 펜싱을 사용할 수 있습니다 예를 들어, 오래 된 경우 처럼 노드에서 디스크를 표시 하려면 (복제 블록 장치 Distributed) DRBD와 통신 링크의 작동이 중지 합니다.You can use resource level fencing, for instance, with DRBD (Distributed Replicated Block Device) to mark the disk on a node as outdated when the communication link goes down. 노드 수준 펜싱 하면 노드 모든 리소스를 실행 하지 않습니다.Node level fencing ensures that a node does not run any resources. 노드를 다시 설정 하 여 이렇게 및는 Pacemaker 구현의 STONITH (있음 "헤드에 있는 다른 노드가 해결"에 대 한 의미) 라고 합니다.This is done by resetting the node and the Pacemaker implementation of it is called STONITH (which stands for "shoot the other node in the head"). 예를 들어 무정전 전원 공급 장치 또는 관리 서버에 대 한 카드 인터페이스, pacemaker 매우 다양 한 펜싱 장치를 지원 합니다.Pacemaker supports a great variety of fencing devices, e.g. an uninterruptible power supply or management interface cards for servers. 자세한 내용은 참조 하십시오. 처음부터 Pacemaker 클러스터, 펜싱 및 StonithSUSE HA 설명서: 펜싱 및 STONITH합니다.For more details, see Pacemaker Clusters from Scratch, Fencing and Stonith and SUSE HA documentation: Fencing and STONITH.

클러스터 초기화 시 STONITH 구성이 없는 검색 된 경우 비활성화 됩니다.At cluster initialization time, STONITH is disabled if no configuration is detected. 아래의 명령 실행 하 여 나중에 활성화할 수 있습니다.It can be enabled later by running below command

sudo crm configure property stonith-enabled=true
중요

테스트 목적으로 하는 데 않습니다 STONITH를 사용 하지 않도록 설정 합니다.Disabling STONITH is just for testing purposes. Pacemaker 프로덕션 환경에서 사용 하려는 경우 환경에 따라 STONITH 구현을 계획 하 고 사용 하도록 설정 유지 해야 합니다.If you plan to use Pacemaker in a production environment, you should plan a STONITH implementation depending on your environment and keep it enabled. 참고 SUSE 모든 클라우드 환경 (Azure 포함) 또는 Hyper-v에 대 한 펜스 에이전트를 제공 하지 않습니다.Note that SUSE does not provide fencing agents for any cloud environments (including Azure) or Hyper-V. 검사가 클러스터 공급 업체는 이러한 환경에서 실행 중인 프로덕션 클러스터에 대 한 지원을 제공 하지 않습니다.Consequentially, the cluster vendor does not offer support for running production clusters in these environments. 제작 하는 이후 릴리스에서 사용할 수 있는 이러한 차이 대 한 솔루션입니다.We are working on a solution for this gap that will be available in future releases.

SQL Server에 대 한 클러스터 리소스를 구성 합니다.Configure the cluster resources for SQL Server

참조 SLES 관리 GuidRefer to SLES Administration Guid

가용성 그룹 리소스 만들기Create availability group resource

다음 명령의 만들고 가용성 그룹 [ag1]의 복제본 3 개에 대 한 가용성 그룹 리소스를 구성 합니다.The following command creates and configures the availability group resource for 3 replicas of availability group [ag1]. 작업 모니터 및 시간 제한 기반으로 인지 시간 제한은 항상 종속 작업 부하 및 각 배포에 대해 신중 하 게 조정 해야 할 SLES에 명시적으로 지정할 수 있어야 합니다.The monitor operations and timeouts have to be specified explicitly in SLES based on the fact that timeouts are highly workload dependent and need to be carefully adjusted for each deployment. 클러스터의 노드 중 하나에서 명령을 입력 합니다.Run the command on one of the nodes in the cluster:

  1. 실행 crm configure crm 프롬프트를 엽니다.Run crm configure to open the crm prompt:

    sudo crm configure 
    
  2. Crm 프롬프트에서 리소스 속성을 구성 하려면 아래 명령을 실행 합니다.In the crm prompt, run the command below to configure the resource properties.

    primitive ag_cluster \
    ocf:mssql:ag \
    params ag_name="ag1" \
    op start timeout=60s \
    op stop timeout=60s \
    op promote timeout=60s \
    op demote timeout=10s \
    op monitor timeout=60s interval=10s \
    op monitor timeout=60s interval=11s role="Master" \
    op monitor timeout=60s interval=12s role="Slave" \
    op notify timeout=60s
    ms ms-ag_cluster ag_cluster \
    meta master-max="1" master-node-max="1" clone-max="3" \
    clone-node-max="1" notify="true" \
    commit
    
참고

리소스를 만들 때와 이후 정기적으로 Pacemaker 리소스 에이전트는 가용성 그룹에서 REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT의 값을 가용성 그룹의 구성을 바탕으로 자동으로 설정합니다.When you create the resource, and periodically afterwards, the Pacemaker resource agent automatically sets the value of REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT on the availability group based on the availability group's configuration. 예를 들어 가용성 그룹에 세 개의 동기 복제본이 있는 경우 에이전트는 REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT1로 설정합니다.For example, if the availability group has three synchronous replicas, the agent will set REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT to 1. 자세한 내용 및 추가 구성 옵션은 High availability and data protection for availability group configurations(가용성 그룹 구성을 위한 고가용성 및 데이터 보호)를 참조하세요.For details and additional configuration options, see High availability and data protection for availability group configurations.

가상 IP 리소스 만들기Create virtual IP resource

경우 만들지 않은 가상 IP 리소스를 실행할 때 ha-cluster-init 이제이 리소스를 만들 수 있습니다.If you did not create the virtual IP resource when you ran ha-cluster-init you can create this resource now. 다음 명령은 가상 IP 리소스를 만듭니다.The following command creates a virtual IP resource. 대체 <**0.0.0.0**> 네트워크에서 사용 가능한 주소와 및 <**24**> 와 CIDR 서브넷 마스크의 비트 수입니다.Replace <**0.0.0.0**> with an available address from your network and <**24**> with the number of bits in the CIDR subnet mask. 노드 하나에서 실행 합니다.Run on one node.

crm configure \
primitive admin_addr \
   ocf:heartbeat:IPaddr2 \
   params ip=<**0.0.0.0**> \
      cidr_netmask=<**24**>

공동 배치 제약 조건 추가Add colocation constraint

Pacemaker 클러스터에서 리소스를 실행할 위치를 선택 하는 등 거의 모든 의사 결정은 점수를 비교 하 여 수행 됩니다.Almost every decision in a Pacemaker cluster, like choosing where a resource should run, is done by comparing scores. 리소스 당 점수가 계산 되 고 클러스터 리소스 관리자가 특정 리소스에 대 한 점수가 가장 높은 있는 노드를 선택 합니다.Scores are calculated per resource, and the cluster resource manager chooses the node with the highest score for a particular resource. (한 노드에 리소스에 대 한 음수 점수 있으면 리소스 실행할 수 없습니다 해당 노드에서.) 제약 조건 사용 하 여 클러스터의 결정을 조작할 수 있습니다.(If a node has a negative score for a resource, the resource cannot run on that node.) We can manipulate the decisions of the cluster with constraints. 제한에는 점수는.Constraints have a score. 제약 조건에 무한대 보다 낮은 점수를 경우만 권장 사항입니다.If a constraint has a score lower than INFINITY, it is only a recommendation. 무한대의 점수는 필수 사항 의미 합니다.A score of INFINITY means it is a must. 원하는 실행 되도록 하기 위해 주 가용성 그룹 및 가상 ip 리소스는 동일한 호스트에 있으므로 무한대의 점수는 공동 배치 제약 조건을 정의 합니다.We want to ensure that primary of the availability group and the virtual ip resource are run on the same host, so we will define a colocation constraint with a score of INFINITY.

마스터와 같은 노드에를 실행 하는 가상 IP에 대 한 공동 배치 제약을 설정 하려면 노드 하나에서 다음 명령을 실행 합니다.To set colocation constraint for the virtual IP to run on same node as the master, run the following command on one node:

crm configure
colocation vip_on_master inf: \
    admin_addr ms-ag_cluster:Master
commit

순서 지정 제약 조건 추가Add ordering constraint

공동 배치 제약 조건을는 암시적 순서 지정 제약 합니다.The colocation constraint has an implicit ordering constraint. 가용성 그룹 리소스를 이동 하기 전에 가상 IP 리소스를 이동 합니다.It moves the virtual IP resource before it moves the availability group resource. 기본적으로 이벤트의 순서는 같습니다.By default the sequence of events is:

  1. 사용자 문제 리소스 노드 2로 노드 1에서 가용성 그룹 마스터 마이그레이션합니다.User issues resource migrate to the availability group master from node1 to node2.
  2. 노드 1에서 가상 IP 리소스를 중지합니다.The virtual IP resource stops on node 1.
  3. 가상 IP 리소스 노드 2에서 시작합니다.The virtual IP resource starts on node 2. 이 시점에서 IP 주소 일시적으로 노드 2 가리키는 노드 2는 여전히 이전 장애 조치 하는 동안 보조 합니다.At this point, the IP address temporarily points to node 2 while node 2 is still a pre-failover secondary.
  4. 노드 1에서 가용성 그룹 마스터 슬레이브 강등 합니다.The availability group master on node 1 is demoted to slave.
  5. 노드 2에서 가용성 그룹 슬레이브 승격를 마스터 합니다.The availability group slave on node 2 is promoted to master.

IP 주소를 장애 조치 이전 보조 서버와 노드를 가리키는 일시적으로 방지 하려면 정렬 제약 조건을 추가 합니다.To prevent the IP address from temporarily pointing to the node with the pre-failover secondary, add an ordering constraint. 정렬 제약을 추가 하려면 노드 하나에서 다음 명령을 실행 합니다.To add an ordering constraint, run the following command on one node:

crm crm configure \
   order ag_first inf: ms-ag_cluster:promote admin_addr:start
중요

클러스터를 구성 하 고를 클러스터 리소스로 가용성 그룹을 추가한 후 TRANSACT-SQL 장애 조치할 가용성 그룹 리소스를 사용할 수 없습니다.After you configure the cluster and add the availability group as a cluster resource, you cannot use Transact-SQL to fail over the availability group resources. Linux에서 SQL Server 클러스터 리소스 Windows Server 장애 조치 클러스터 (WSFC)에 운영 체제와 엄격히 결합 되지 됩니다.SQL Server cluster resources on Linux are not coupled as tightly with the operating system as they are on a Windows Server Failover Cluster (WSFC). SQL Server 서비스가 클러스터의 사용 여부 인식 하지 않습니다.SQL Server service is not aware of the presence of the cluster. 모든 오케스트레이션 클러스터 관리 도구를 통해 수행 됩니다.All orchestration is done through the cluster management tools. SLES에서 사용 하 여 crm합니다.In SLES use crm.

수동으로 가용성 그룹을 장애 조치할 crm합니다.Manually fail over the availability group with crm. TRANSACT-SQL로 장애 조치를 시작 하지 마십시오.Do not initiate failover with Transact-SQL. 자세한 내용은 장애 조치합니다.For instructions, see Failover.

자세한 내용은 참조 하세요.For additional details see:

다음 단계Next steps

HA 가용성 그룹 동작Operate HA availability group