Ubuntu 클러스터와 가용성 그룹 리소스 구성Configure Ubuntu Cluster and Availability Group Resource

이 항목은 다음에 적용됩니다. 아니요Windows의 SQL Server예Linux의 SQL Server아니요Azure SQL Database아니요Azure SQL Data Warehouse아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: noSQL Server on WindowsyesSQL Server on LinuxnoAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

이 문서에서는 ubuntu 3 개 노드 클러스터를 만들고 이전에 만든된 가용성 그룹에 클러스터 리소스로 추가 하는 방법을 설명 합니다.This document explains how to create a three-node cluster on Ubuntu and add a previously created availability group as a resource in the cluster. 고가용성을 위해 Linux에서 가용성 그룹에 노드가 3 개 필요-참조 가용성 그룹 구성에 대 한 높은 가용성 및 데이터 보호합니다.For high availability, an availability group on Linux requires three nodes - see High availability and data protection for availability group configurations.

참고

이 시점에서 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. sql에서 클러스터의 존재에 대 한 지식이 없는, 외부 모든 오케스트레이션은 되며 서비스는 독립 실행형 인스턴스로 Pacemaker에 의해 제어 됩니다.From within SQL, there is no knowledge about the presence of the cluster, all orchestration is outside in and the service is controlled as a standalone instance by Pacemaker. 또한 가상 네트워크 이름은 WSFC 관련, Pacemaker에는 동일한 동등한 옵션이 없습니다.Also, virtual network name is specific to WSFC, there is no equivalent of the same in Pacemaker. Always On 동적 관리 뷰 클러스터 정보를 쿼리 하는 빈 행을 반환 합니다.Always On dynamic management views that query cluster information will return empty rows. 장애 조치 후 투명 하 게 다시 연결에 사용할 수신기를 만들 수 있지만 (아래 설명 됨) 가상 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).

다음 섹션에서는 장애 조치 클러스터 솔루션을 설정 하는 단계를 안내 합니다.The following sections walk through the steps to set up a failover cluster solution.

로드맵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.

    Linux 클러스터 펜싱을 사용 하 여 알려진 상태로 클러스터를 반환 합니다.A Linux 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. 참조 RHEL 높은 가용성 클러스터-가상화 플랫폼에 대 한 지원 정책을 자세한 정보에 대 한 합니다.See Support Policies for RHEL High Availability Clusters - Virtualization Platforms for more information.

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

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

  1. 모든 노드에서 방화벽 포트를 엽니다.On all nodes open the firewall ports. Pacemaker 가용성이 높은 서비스, SQL Server 인스턴스 및 가용성 그룹 끝점에 대 한 포트를 엽니다.Open the port for the Pacemaker high-availability service, SQL Server instance, and the availability group endpoint. SQL Server를 실행 하는 서버에 대 한 기본 TCP 포트는 1433입니다.The default TCP port for server running SQL Server is 1433.

    sudo ufw allow 2224/tcp
    sudo ufw allow 3121/tcp
    sudo ufw allow 21064/tcp
    sudo ufw allow 5405/udp
    
    sudo ufw allow 1433/tcp # Replace with TDS endpoint
    sudo ufw allow 5022/tcp # Replace with DATA_MIRRORING endpoint
    
    sudo ufw reload
    

    또는 방화벽을 해제할 수 있습니다.Alternatively, you can just disable the firewall:

    sudo ufw disable
    
  2. Pacemaker 패키지를 설치 합니다.Install Pacemaker packages. 모든 노드에서 다음 명령을 실행 합니다.On all nodes, run the following commands:

    sudo apt-get install pacemaker pcs fence-agents resource-agents
    
  3. Pacemaker 및 Corosync 패키지를 설치할 때 생성된 기본 사용자의 암호를 설정합니다.Set the password for the default user that is created when installing Pacemaker and Corosync packages. 모든 노드에서 동일한 암호를 사용 합니다.Use the same password on all nodes.

    sudo passwd hacluster
    

사용 하도록 설정 하 고 pcsd 서비스 및 Pacemaker 시작Enable and start pcsd service and Pacemaker

다음 명령을 사용 하도록 설정 하 고 pcsd 서비스 및 pacemaker를 시작 합니다.The following command enables and starts pcsd service and pacemaker. 모든 노드에서 실행 됩니다.Run on all nodes. 따라서 노드를를 다시 부팅 한 후 클러스터에 다시 연결할 수 있습니다.This allows the nodes to rejoin the cluster after reboot.

sudo systemctl enable pcsd
sudo systemctl start pcsd
sudo systemctl enable pacemaker

참고

'기본 시작 pacemaker 중단 없는 runlevels를 포함 합니다.' 사용 pacemaker 명령을 오류와 함께 완료 됩니다.Enable pacemaker command will complete with the error 'pacemaker Default-Start contains no runlevels, aborting.' 이 무시 해도, 클러스터 구성을 계속 수 있습니다.This is harmless, cluster configuration can continue. 우리는 다음과 같습니다. 클러스터 공급 업체와이 문제를 해결 합니다.We are following up with cluster vendors for fixing this issue.

클러스터 만들기Create the Cluster

  1. 모든 노드의 모든 기존 클러스터를 구성을 제거 합니다.Remove any existing cluster configuration from all nodes.

    실행 중인 'sudo apt get 설치 pc' pacemaker, corosync, 및 pc를 동시에 설치 하 고 서비스의 모든 3을 실행을 시작 합니다.Running 'sudo apt-get install pcs' installs pacemaker, corosync, and pcs at the same time and starts running all 3 of the services. 템플릿이 생성 corosync 시작 ' / etc/cluster/corosync.conf' 파일입니다.Starting corosync generates a template '/etc/cluster/corosync.conf' file. 다음 단계가 성공이 파일에 존재할 수 없는 – pacemaker 중지 하려면이 문제를 해결 하도록 / corosync 삭제 ' / etc/cluster/corosync.conf', 다음 단계 성공적으로 완료 됩니다.To have next steps succeed this file should not exist – so the workaround is to stop pacemaker / corosync and delete '/etc/cluster/corosync.conf', and then next steps will complete successfully. 동일한 작업을 수행 pc 클러스터 destroy 하 고 한으로 사용할 수 있습니다 시간 초기 클러스터 설치 단계입니다.'pcs cluster destroy' does the same thing, and you can use it as a one time initial cluster setup step.

    다음 명령은 기존 클러스터 구성 파일을 제거 하 고 모든 클러스터 서비스를 중지 합니다.The following command removes any existing cluster configuration files and stops all cluster services. 이 클러스터를 영구적으로 제거합니다.This permanently destroys the cluster. 사전 프로덕션 환경에서 첫 번째 단계로 실행 합니다.Run it as a first step in a pre-production environment. 참고로 'pc 클러스터 손상' pacemaker 서비스와 다시 활성화할 수 있습니다에 사용할 수 없습니다.Note that 'pcs cluster destroy' disabled the pacemaker service and needs to be reenabled. 모든 노드에서 다음 명령을 실행 합니다.Run the following command on all nodes.

    경고

    이 명령은 모든 기존 클러스터 리소스 삭제 됩니다.The command will destroy any existing cluster resources.

    sudo pcs cluster destroy 
    sudo systemctl enable pacemaker
    
  2. 클러스터를 만듭니다.Create the cluster.

    경고

    클러스터링 공급 업체는 조사 하 고, 시작 하는 알려진된 문제로 인해 클러스터 ('pc 클러스터 start') 아래의 오류 하면서 실패 합니다.Due to a known issue that the clustering vendor is investigating, starting the cluster ('pcs cluster start') will fail with below error. 즉, /etc/corosync/corosync.conf에 구성 된 로그 파일이 잘못 되었습니다.This is because the log file configured in /etc/corosync/corosync.conf is wrong. 이 문제를 해결 하려면 로그 파일을 변경할: /var/log/corosync/corosync.log 합니다.To workaround this issue, change the log file to: /var/log/corosync/corosync.log. 또는 /var/log/cluster/corosync.log 파일을 만들 수 있습니다.Alternatively you could create the /var/log/cluster/corosync.log file.

    Job for corosync.service failed because the control process exited with error code. 
    See "systemctl status corosync.service" and "journalctl -xe" for details.
    

다음 명령은 세 개 노드 클러스터를 만듭니다.The following command creates a three-node cluster. 스크립트를 실행 하기 전에 사이의 값을 대체 **< ... >**합니다.Before you run the script, replace the values between **< ... >**. 주 노드에서 다음 명령을 실행 합니다.Run the following command on the primary node.

sudo pcs cluster auth **<node1>** **<node2>** **<node3>** -u hacluster -p **<password for hacluster>**
sudo pcs cluster setup --name **<clusterName>** **<node1>** **<node2…>** **<node3>**
sudo pcs cluster start --all

참고

이전에 같은 노드에서 클러스터를 구성한 경우 'pcs cluster setup'을 실행할 때 '--force' 옵션을 사용해야 합니다.If you previously configured a cluster on the same nodes, you need to use '--force' option when running 'pcs cluster setup'. 이 방법은 'pcs cluster destroy'를 실행하는 것과 같고 'sudo systemctl enable pacemaker'를 사용하여 Pacemaker 서비스를 다시 사용하도록 설정해야 합니다.Note this is equivalent to running 'pcs cluster destroy' and pacemaker service needs to be reenabled using 'sudo systemctl enable pacemaker'.

펜스 (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 클러스터펜싱 및 StonithFor more details, see Pacemaker Clusters from Scratch and Fencing and Stonith

노드 수준 구성 방어 사용자 환경에 따라 크게 달라 집니다, 때문에 중이지만 (구성할 수 있습니다는 나중에)이이 자습서에 대 한 비활성화 됩니다.Because the node level fencing configuration depends heavily on your environment, we will disable it for this tutorial (it can be configured at a later time). 주 노드에서 다음 스크립트를 실행 합니다.Run the following script on the primary node:

sudo pcs property set stonith-enabled=false

중요

테스트 목적으로 하는 데 않습니다 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. 이 시점에서 펜스 에이전트가 없는 모든 클라우드 환경 (Azure 포함) 또는 Hyper-v에 대 한 참고 합니다.Note that at this point there are no 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.

클러스터 속성을 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 demote the replica to secondary and it will automatically rejoin the availability group.

속성 값을 업데이트 하려면 false 다음 스크립트를 실행 합니다.To update the property value to false run the following script:

sudo pcs property set start-failure-is-fatal=false

경고

자동 장애 조치 후 때 start-failure-is-fatal = true 리소스 관리자 리소스를 시작 하려고 합니다.After an automatic failover, when start-failure-is-fatal = true the resource manager will attempt to start the resource. 수동으로 실행 해야 하는 첫 번째 시도에 실패 하면 pcs resource cleanup <resourceName> 정리 리소스 오류 발생 횟수 및 구성 다시 설정 합니다.If it fails on the first attempt you have to manually run pcs resource cleanup <resourceName> to cleanup the resource failure count and reset the configuration.

Pacemaker와 통합에 대 한 SQL Server 리소스 에이전트를 설치 합니다.Install SQL Server resource agent for integration with Pacemaker

모든 노드에서 다음 명령을 실행 합니다.Run the following commands on all nodes.

sudo apt-get install mssql-server-ha

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 로그인에는 가용성 그룹 관리를 위한 변경, 제어 및 보기 정의 권한을 비롯하여 로그인을 통해 sp_server_diagnostics를 실행하기 위한 서버 상태 보기가 필요합니다.The Pacemaker login requires ALTER, CONTROL, and VIEW DEFINITION PERMISSION for managing the availability group as well as VIEW SERVER STATE for the login to be able to run sp_server_diagnostics. 자세한 내용은 가용성 그룹 사용 권한 부여(Transact SQL)sp_server_diagnostic 권한을 참조하세요.For more information, see GRANT Availability Group Permissions (Transact-SQL) and sp_server_diagnostic permissions.

    다음 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
    GRANT VIEW SERVER STATE 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
    

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

가용성 그룹 리소스를 만들려면 사용 pcs resource create 명령 및 리소스 속성을 설정 합니다.To create the availability group resource, use pcs resource create command and set the resource properties. 아래의 명령을 만듭니다는 ocf:mssql:ag 형식 리소스 이름의 가용성 그룹에 대 한 마스터/슬레이브 ag1합니다.Below command creates a ocf:mssql:ag master/slave type resource for availability group with name ag1.

sudo pcs resource create ag_cluster ocf:mssql:ag ag_name=ag1 --master meta notify=true

참고

리소스를 만들 때와 이후 정기적으로 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 주소 리소스를 만들려면 노드 하나에서 다음 명령을 실행 합니다.To create the virtual IP address resource, run the following command on one node. 네트워크에서 사용 가능한 고정 IP 주소를 사용 합니다.Use an available static IP address from the network. 스크립트를 실행 하기 전에 사이의 값을 대체 **< ... >** 유효한 IP 주소입니다.Before you run the script, replace the values between **< ... >** with a valid IP address.

sudo pcs resource create virtualip ocf:heartbeat:IPaddr2 ip=**<10.128.16.240>**

Pacemaker에서 지정 된 동일한 가상 서버 이름이 없습니다.There is no virtual server name equivalent in Pacemaker. 문자열 서버 이름이를 가리키는 연결 문자열을 사용 하는 IP 주소를 사용 하지 IP 리소스 주소와 원하는 가상 서버 이름이 DNS에 등록 합니다.To use a connection string that points to a string server name and not use the IP address, register the IP resource address and desired virtual server name in DNS. DR 구성에 대 한 주 데이터베이스와 DR 사이트 모두에서 DNS 서버와 함께 원하는 가상 서버 이름 및 IP 주소를 등록 합니다.For DR configurations, register the desired virtual server name and IP address with the DNS servers on both primary and DR site.

공동 배치 제약 조건 추가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. 공동 배치 제약 조건에 추가 하려면 노드 하나에서 다음 명령을 실행 합니다.To add the colocation constraint, run the following command on one node.

sudo pcs constraint colocation add virtualip ag_cluster-master INFINITY with-rsc-role=Master

순서 지정 제약 조건 추가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. 사용자 문제 pcs resource move 가용성 그룹에 주 노드 1에서 노드 2로 합니다.User issues pcs resource move to the availability group primary from node1 to node2.
  2. 노드 1에 가상 IP 리소스를 중지합니다.The virtual IP resource stops on node1.
  3. 가상 IP 리소스 노드 2에서 시작합니다.The virtual IP resource starts on node2.

    참고

    이 시점에서 IP 주소 일시적으로 node2 가리키는 node2는 여전히 이전 장애 조치 하는 동안 보조 합니다.At this point, the IP address temporarily points to node2 while node2 is still a pre-failover secondary.

  4. 노드 1에서 기본 가용성 그룹 보조로 강등 됩니다.The availability group primary on node1 is demoted to secondary.

  5. 노드 2에서 보조 가용성 그룹 주 승격 됩니다.The availability group secondary on node2 is promoted to primary.

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:

sudo pcs constraint order promote ag_cluster-master then start virtualip

중요

클러스터를 구성 하 고를 클러스터 리소스로 가용성 그룹을 추가한 후 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. RHEL 또는 Ubuntu에서 사용 하 여 pcs합니다.In RHEL or Ubuntu use pcs.

다음 단계Next steps

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