SQL Server에 대 한 Red Hat Enterprise Linux 공유 디스크 클러스터를 구성 합니다.Configure Red Hat Enterprise Linux shared disk cluster for SQL Server

이 가이드를 Red Hat Enterprise Linux에서 SQL Server에 대 한 공유 디스크 2 개 노드 클러스터를 만드는 지침을 제공 합니다.This guide provides instructions to create a two-node shared disk cluster for SQL Server on Red Hat Enterprise Linux. Red Hat Enterprise Linux (RHEL)를 기반으로 클러스터링 레이어 HA 추가 기능 기반으로 구축 Pacemaker합니다.The clustering layer is based on Red Hat Enterprise Linux (RHEL) HA add-on built on top of Pacemaker. SQL Server 인스턴스는 하나의 노드 또는 다른에서 활성입니다.The SQL Server instance is active on either one node or the other.

참고

Red Hat HA 추가 기능 및 문서에 대 한 액세스는 구독이 필요합니다.Access to Red Hat HA add-on and documentation requires a subscription.

아래 다이어그램에서 보듯이으로 두 명의 서버에 저장소가 제공 됩니다.As the diagram below shows storage is presented to two servers. -Corosync 및 Pacemaker-클러스터링 구성 요소는 통신 및 리소스 관리를 조정 합니다.Clustering components - Corosync and Pacemaker - coordinate communications and resource management. 서버 중 하나에 저장소 리소스와 SQL Server에 연결 되어 있습니다.One of the servers has the active connection to the storage resources and the SQL Server. Pacemaker 오류를 발견 하면 클러스터링 구성 요소 관리 하는 리소스를 다른 노드로 이동 합니다.When Pacemaker detects a failure the clustering components manage moving the resources to the other node.

Red Hat Enterprise Linux 7 공유 디스크 SQL 클러스터

클러스터 구성, 리소스 에이전트 옵션 및 관리에 대 한 자세한 내용은 방문 RHEL 참조 설명서합니다.For more details on cluster configuration, resource agents options, and management, visit RHEL reference documentation.

참고

이 시점에서 Pacemaker와 SQL Server의 통합 Windows에서 WSFC와으로으로 결합 된 않습니다.At this point, SQL Server's integration with Pacemaker 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. 또한 예를 들어 클러스터 dmv sys.dm_os_cluster_nodes 및 sys.dm_os_cluster_properties는 레코드가 없습니다.Also for example, cluster dmvs sys.dm_os_cluster_nodes and sys.dm_os_cluster_properties will no records. 문자열 서버 이름이를 가리키는 연결 문자열을 사용 하는 IP를 사용 하지 있습니다 (아래 설명 됨)는 선택한 서버 이름으로 가상 IP 리소스를 만드는 데 IP를 DNS 서버에 등록 해야 합니다.To use a connection string that points to a string server name and not use the IP, they will have to register in their DNS server the IP used to create the virtual IP resource (as explained below) with the chosen server name.

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

필수 구성 요소Prerequisites

아래 종단 간 시나리오를 완료 하려면 두 노드 클러스터와 NFS 서버를 구성 하려면 다른 서버를 배포 하려면 두 컴퓨터 해야 합니다.To complete the end-to-end scenario below you need two machines to deploy the two nodes cluster and another server to configure the NFS server. 아래 단계 이러한 서버는 구성 하는 방법에 대해 간략하게 설명 합니다.Below steps outline how these servers will be configured.

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

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

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

  1. 설치 하 고 SQL Server를 두 노드에 모두 설치 합니다.Install and setup SQL Server on both nodes. 자세한 내용은 참조 Linux에서 SQL Server 설치합니다.For detailed instructions see Install SQL Server on Linux.

  2. 주 서버와 구성의 목적을 위해 보조로 다른으로 노드 하나를 지정 합니다.Designate one node as primary and the other as secondary, for purposes of configuration. 다음에 대 한 이러한 용어를 사용 하 여이 가이드입니다.Use these terms for the following this guide.

  3. 보조 노드에서 중지 하 고 SQL Server를 사용 하지 않도록 설정 합니다.On the secondary node, stop and disable SQL Server.

    다음 예제에서는 중지 하 고 SQL Server를 사용 하지 않도록 설정 합니다.The following example stops and disables SQL Server:

    sudo systemctl stop mssql-server
    sudo systemctl disable mssql-server
    
    참고

    설치 시 서버 마스터 키를 SQL Server 인스턴스에 대해 생성 된 이며 var/옵트인/mssql/보안/시스템 키에 배치 합니다.At setup time, a Server Master Key is generated for the SQL Server instance and placed at var/opt/mssql/secrets/machine-key. Linux에서 SQL Server는 항상 mssql 라는 로컬 계정으로 실행 됩니다.On Linux, SQL Server always runs as a local account called mssql. 로컬 계정을 이기 때문에 해당 id 노드 간에 공유 되지 않습니다.Because it’s a local account, its identity isn’t shared across nodes. 따라서 서버 마스터 키를 해독 하 여 각 로컬 mssql 계정에 액세스할 수 있도록 암호화 키를 주 노드에서 각 보조 노드로 복사 해야 합니다.Therefore, you need to copy the encryption key from primary node to each secondary node so each local mssql account can access it to decrypt the Server Master Key.

  4. 주 노드에서 Pacemaker에 대 한 SQL server 로그인을 만들고 실행에 로그인 권한을 부여 sp_server_diagnostics합니다.On the primary node, create a SQL server login for Pacemaker and grant the login permission to run sp_server_diagnostics. Pacemaker는 SQL Server를 실행 하는 노드를 확인 하려면이 계정을 사용 합니다.Pacemaker will use this account to verify which node is running SQL Server.

    sudo systemctl start mssql-server
    

    SQL Server에 연결 master sa 계정을 사용 하 여 데이터베이스에 있으며 다음 실행:Connect to the SQL Server master database with the sa account and run the following:

    USE [master]
    GO
    CREATE LOGIN [<loginName>] with PASSWORD= N'<loginPassword>'
    
    ALTER SERVER ROLE [sysadmin] ADD MEMBER [<loginName>]
    

    또는 더 세부적인 수준에서 권한을 설정할 수 있습니다.Alternatively, you can set the permissions at a more granular level. Pacemaker 로그인 필요 VIEW SERVER STATE sp_server_diagnostics와 쿼리 상태에 setupadminALTER ANY LINKED SERVER sp_dropserver 및 sp_addserver 실행 하 여 리소스 이름으로의 FCI 인스턴스 이름을 업데이트 합니다.The Pacemaker login requires VIEW SERVER STATE to query health status with sp_server_diagnostics, setupadmin and ALTER ANY LINKED SERVER to update the FCI instance name with the resource name by running sp_dropserver and sp_addserver.

  5. 주 노드에서 중지 하 고 SQL Server를 사용 하지 않도록 설정 합니다.On the primary node, stop and disable SQL Server.

  6. 각 클러스터 노드에 대 한 호스트 파일을 구성 합니다.Configure the hosts file for each cluster node. 호스트 파일에는 IP 주소 및 모든 클러스터 노드의 이름이 포함 되어야 합니다.The host file must include the IP address and name of every cluster node.

    각 노드에 대 한 IP 주소를 확인 합니다.Check the IP address for each node. 다음 스크립트는 현재 노드의의 IP 주소를 보여 줍니다.The following script shows the IP address of your current node.

    sudo ip addr show
    

    각 노드에서 다음 컴퓨터 이름을 설정 합니다.Set the computer name on each node. 각 노드의 고유한 이름을 15 자 이하인 합니다.Give each node a unique name that is 15 characters or less. 컴퓨터 이름을 추가 하 여 설정 /etc/hosts합니다.Set the computer name by adding it to /etc/hosts. 다음 스크립트를 사용 하면 편집할 /etc/hostsvi합니다.The following script lets you edit /etc/hosts with vi.

    sudo vi /etc/hosts
    

    다음 예제와 /etc/hosts 라는 두 개의 노드에 대 한 추가 내용은 sqlfcivm1sqlfcivm2합니다.The following example shows /etc/hosts with additions for two nodes named sqlfcivm1 and sqlfcivm2.

    127.0.0.1   localhost localhost4 localhost4.localdomain4
    ::1       localhost localhost6 localhost6.localdomain6
    10.128.18.128 sqlfcivm1
    10.128.16.77 sqlfcivm2
    

다음 섹션에서 공유 저장소를 구성 하 고 해당 저장소에 데이터베이스 파일 이동 합니다.In the next section you will configure shared storage and move your database files to that storage.

공유 저장소를 구성 하 고 데이터베이스 파일 이동Configure shared storage and move database files

공유 저장소를 제공 하는 솔루션의 여러 가지가 있습니다.There are a variety of solutions for providing shared storage. 이 연습이 NFS를 사용 하 여 공유 저장소를 구성 하는 방법을 보여 줍니다.This walk-through demonstrates configuring shared storage with NFS. 모범 사례를 따르고 NFS를 보호 하기 위해 Kerberos를 사용 하는 것이 좋습니다 (여기에 예제를 찾을 수 있습니다: https://www.certdepot.net/rhel7-use-kerberos-control-access-nfs-network-shares/).We recommend to follow best practices and use Kerberos to secure NFS (you can find an example here: https://www.certdepot.net/rhel7-use-kerberos-control-access-nfs-network-shares/). 그렇지 않으면 데이터 파일에 액세스할 수 SQL 노드의 IP 주소를 스푸핑 하 고 네트워크에 액세스할 수 있는 모든 사용자.If you do not, then anyone who can access your network and spoof the IP address of a SQL node will be able to access your data files. 늘 그렇듯이 위협을 하면 프로덕션 환경에서 사용 하기 전에 시스템을 모델링 해야 합니다.As always, make sure you threat model your system before using it in production. 또 다른 저장소 옵션 SMB 파일 공유를 사용 하는 것입니다.Another storage option is to use SMB fileshare.

Nfs 공유 저장소를 구성 합니다.Configure shared storage with NFS

중요

버전을 사용 하 여 NFS 서버에서 데이터베이스 파일을 호스팅 < 4이 릴리스에서 지원 되지 않습니다.Hosting database files on a NFS server with version <4 is not supported in this release. NFS를 사용 하 여 공유 디스크 장애 조치 클러스터 되지 않은 인스턴스에서 데이터베이스 뿐만 아니라 클러스터링에 대 한 포함 됩니다.This includes using NFS for shared disk failover clustering as well as databases on non-clustered instances. 노력 하 고 있으며 이후 릴리스에서 다른 NFS 서버 버전을 사용 하도록 설정 합니다.We are working on enabling other NFS server versions in the upcoming releases.

NFS 서버에서 다음을 수행 합니다.On the NFS Server do the following:

  1. nfs-utils 설치Install nfs-utils

    sudo yum -y install nfs-utils
    
  2. 설정 및 시작rpcbindEnable and start rpcbind

    sudo systemctl enable rpcbind && systemctl start rpcbind
    
  3. 설정 및 시작nfs-serverEnable and start nfs-server

    systemctl enable nfs-server && systemctl start nfs-server
    
  4. 편집 /etc/exports 내보내려면 공유 하려는 디렉터리입니다.Edit /etc/exports to export the directory you want to share. 원하는 각 공유에 대 한 1 줄이 필요 합니다.You will need 1 line for each share you want. 예를 들어For example:

    /mnt/nfs  10.8.8.0/24(rw,sync,no_subtree_check,no_root_squash)
    
  5. 공유 내보내기Export the shares

    sudo exportfs -rav
    
  6. 경로가 있는지 확인 공유/내보낸, NFS 서버에서 실행Verify that the paths are shared/exported, run from the NFS server

    sudo showmount -e
    
  7. SELinux에서 예외를 추가 합니다.Add exception in SELinux

    sudo setsebool -P nfs_export_all_rw 1
    
  8. 서버 방화벽을 엽니다.Open the firewall the server.

    sudo firewall-cmd --permanent --add-service=nfs
    sudo firewall-cmd --permanent --add-service=mountd
    sudo firewall-cmd --permanent --add-service=rpc-bind
    sudo firewall-cmd --reload
    

NFS 공유 저장소에 연결 하려면 모든 클러스터 노드 구성Configure all cluster nodes to connect to the NFS shared storage

모든 클러스터 노드에서 다음 단계를 수행 합니다.Do the following steps on all cluster nodes.

  1. NFS 서버에서 설치nfs-utilsFrom the NFS server, install nfs-utils

    sudo yum -y install nfs-utils
    
  2. 클라이언트 및 NFS 서버에 방화벽을 열고Open up the firewall on clients and NFS server

    sudo firewall-cmd --permanent --add-service=nfs
    sudo firewall-cmd --permanent --add-service=mountd
    sudo firewall-cmd --permanent --add-service=rpc-bind
    sudo firewall-cmd --reload
    
  3. 클라이언트 컴퓨터에는 NFS 공유를 볼 수 있는지 확인Verify that you can see the NFS shares on client machines

    sudo showmount -e <IP OF NFS SERVER>
    
  4. 모든 클러스터 노드에서 이러한 단계를 반복 합니다.Repeat these steps on all cluster nodes.

NFS를 사용 하는 방법에 대 한 자세한 내용은 다음 리소스를 참조 합니다.For additional information about using NFS, see the following resources:

공유 저장소를 가리키도록 데이터베이스 파일 디렉터리 탑재Mount database files directory to point to the shared storage

  1. 주 노드의, 데이터베이스 파일을 임시 위치에 저장 합니다. 다음 스크립트에서는 새로운 임시 디렉터리를 만듭니다 하 고, 데이터베이스 파일을 새 디렉터리를 복사, 오래 된 데이터베이스 파일을 제거 합니다.On the primary node only, save the database files to a temporary location.The following script, creates a new temporary directory, copies the database files to the new directory, and removes the old database files. SQL Server mssql 로컬 사용자로 실행 되는 탑재 된 공유에 데이터 전송, 후 로컬 사용자가 공유에 대 한 읽기 / 쓰기 액세스 있는지 확인 해야 합니다.As SQL Server runs as local user mssql, you need to make sure that after data transfer to the mounted share, local user has read-write access to the share.

    $ su mssql
    $ mkdir /var/opt/mssql/tmp
    $ cp /var/opt/mssql/data/* /var/opt/mssql/tmp
    $ rm /var/opt/mssql/data/*
    $ exit
    
  2. 모든 클러스터 노드에서 편집 /etc/fstab 파일 탑재 명령을 포함 하도록 합니다.On all cluster nodes edit /etc/fstab file to include the mount command.

    <IP OF NFS SERVER>:<shared_storage_path> <database_files_directory_path> nfs timeo=14,intr 
    

    다음 스크립트에는 편집의 예가 나와 있습니다.The following script shows an example of the edit.

    10.8.8.0:/mnt/nfs /var/opt/mssql/data nfs timeo=14,intr 
    
    참고

    파일 시스템 (FS) 리소스를 사용 하 여 아래 권장 된 대로, 인지 유지 /etc/fstab에 탑재 명령 필요가 없습니다.If using a File System (FS) resource as recomended below, there is no need to preserve the mounting command in /etc/fstab. Pacemaker 하므로 FS 클러스터 리소스를 시작 될 때 폴더를 탑재 합니다.Pacemaker will take care of mounting the folder when it starts the FS clustered resource. 펜싱의 도움을 받아 ensurethe FS 두 번 탑재 되지 됩니다.With the help of fencing, it will ensurethe FS is never mounted twice.

  3. 실행 mount -a 탑재 경로를 업데이트 하는 시스템에 대 한 명령입니다.Run mount -a command for the system to update the mounted paths.

  4. 에 저장 된 데이터베이스 및 로그 파일을 복사 /var/opt/mssql/tmp 새로 탑재 된 공유에 /var/opt/mssql/data합니다.Copy the database and log files that you saved to /var/opt/mssql/tmp to the newly mounted share /var/opt/mssql/data. 만 작업을 수행 해야이 주 노드에서합니다.This only needs to be done on the primary node. 'Mssql' 로컬 사용자 읽기/쓰기 권한을 부여 하는 있는지 확인 합니다.Make sure that you give read write permissions to 'mssql' local user.

    $ chown mssql /var/opt/mssql/data
    $ chgrp mssql /var/opt/mssql/data
    $ su mssql
    $ cp /var/opt/mssql/tmp/* /var/opt/mssql/data/
    $ rm /var/opt/mssql/tmp/*
    $ exit
    
  5. SQL Server 새 파일 경로에 성공적으로 시작을 확인 합니다.Validate that SQL Server starts successfully with the new file path. 각 노드에서이 작업을 수행 합니다.Do this on each node. 이 시점에서 한 번에 하나의 노드만 SQL Server를 실행 해야 합니다.At this point only one node should run SQL Server at a time. 실행할 수 없습니다 둘 다 동시에는 둘 다 동시에 (을 방지 하려면 실수로 두 노드에서 모두 SQL Server를 시작 하는 파일 시스템 클러스터 리소스를 사용 하 여 공유의 다른 노드에 의해 두 번 탑재 되어 있지 않으면 되도록) 데이터 파일에 액세스 하려면 시도 하기 때문에.They cannot both run at the same time because they will both try to access the data files simultaneously (to avoid accidentally starting SQL Server on both nodes, use a File System cluster resource to make sure the share is not mounted twice by the different nodes). 다음 명령을 SQL Server를 시작 하 고 상태를 확인 한 다음 SQL Server를 중지 합니다.The following commands start SQL Server, check the status, and then stop SQL Server.

    sudo systemctl start mssql-server
    sudo systemctl status mssql-server
    sudo systemctl stop mssql-server
    

이 시점에서 SQL Server의 두 인스턴스는 공유 저장소에 있는 데이터베이스 파일을 사용 하 여 실행 하도록 구성 됩니다.At this point both instances of SQL Server are configured to run with the database files on the shared storage. 다음 단계 Pacemaker에 대 한 SQL Server를 구성 하는 것입니다.The next step is to configure SQL Server for Pacemaker.

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

  1. 두 클러스터 노드에서 모두 Pacemaker 로그인을 위한 SQL Server 사용자 이름 및 암호를 저장할 파일을 만듭니다.On both cluster nodes, create a file to store the SQL Server username and password for the Pacemaker login. 다음 명령은 이 파일을 만들고 채웁니다.The following command creates and populates this file:

    sudo touch /var/opt/mssql/secrets/passwd
    sudo echo '<loginName>' >> /var/opt/mssql/secrets/passwd
    sudo echo '<loginPassword>' >> /var/opt/mssql/secrets/passwd
    sudo chown root:root /var/opt/mssql/secrets/passwd 
    sudo chmod 600 /var/opt/mssql/secrets/passwd    
    
  2. 두 클러스터 노드에서 모두 Pacemaker 방화벽 포트를 엽니다.On both cluster nodes, open the Pacemaker firewall ports. firewalld를 사용하여 이러한 포트를 열려면 다음 명령을 실행합니다.To open these ports with firewalld, run the following command:

    sudo firewall-cmd --permanent --add-service=high-availability
    sudo firewall-cmd --reload
    

    기본 제공된 고가용성 구성이 없는 또 다른 방화벽을 사용 중인 경우 Pacemaker가 클러스터의 다른 노드와 통신할 수 있으려면 다음 포트를 열어야 합니다.If you’re using another firewall that doesn’t have a built-in high-availability configuration, the following ports need to be opened for Pacemaker to be able to communicate with other nodes in the cluster

    • TCP: 포트 2224, 3121, 21064TCP: Ports 2224, 3121, 21064
    • UDP: 포트 5405UDP: Port 5405
  3. 각 노드에 Pacemaker 패키지를 설치합니다.Install Pacemaker packages on each node.

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

    sudo passwd hacluster
    
  5. pcsd 서비스 및 Pacemaker를 사용하도록 설정하고 시작합니다.Enable and start pcsd service and Pacemaker. 이렇게 하면 다시 시작된 후 노드가 클러스터에 다시 조인할 수 있습니다.This will allow nodes to rejoin the cluster after the reboot. 두 노드에서 모두 다음 명령을 실행합니다.Run the following command on both nodes.

    sudo systemctl enable pcsd
    sudo systemctl start pcsd
    sudo systemctl enable pacemaker
    
  6. SQL Server용 FCI 리소스 에이전트를 설치합니다.Install the FCI resource agent for SQL Server. 두 노드에서 모두 다음 명령을 실행합니다.Run the following commands on both nodes.

    sudo yum install mssql-server-ha
    

클러스터 만들기Create the cluster

  1. 노드 중 하나에서 클러스터를 만듭니다.On one of the nodes, create the cluster.

    sudo pcs cluster auth <nodeName1 nodeName2 …> -u hacluster
    sudo pcs cluster setup --name <clusterName> <nodeName1 nodeName2 …>
    sudo pcs cluster start --all
    

    RHEL HA 추가 기능에 VMWare 및 KVM에 대 한 에이전트 방어 합니다.RHEL HA add-on has fencing agents for VMWare and KVM. 펜싱 다른 모든 하이퍼바이저에 사용할 수 없게 해야 합니다.Fencing needs to be disabled on all other hypervisors. 펜스 에이전트를 비활성화 하면 프로덕션 환경에서는 권장 되지 않습니다.Disabling fencing agents is not recommended in production environments. RC2 기간을 기준으로 HyperV 또는 클라우드 환경에 대 한 펜스 에이전트가 없는 합니다.As of RC2 timeframe, there are no fencing agents for HyperV or cloud environments. 이러한 구성 중 하나를 실행 중인 경우 펜싱을 사용 하지 않도록 설정 해야 합니다.If you are running one of these configurations, you need to disable fencing. *프로덕션 시스템에서 권장 되지 않습니다!\This is NOT recommended in a production system!*

    다음 명령은 펜스 에이전트를 해제합니다.The following command disables the fencing agents.

    sudo pcs property set stonith-enabled=false
    sudo pcs property set start-failure-is-fatal=false
    
  2. SQL Server, 파일 시스템 및 가상 IP 리소스에 대 한 클러스터 리소스를 구성 하 고 클러스터 구성을 밀어넣습니다.Configure the cluster resources for SQL Server, File System and virtual IP resources and push the configuration to the cluster. 다음과 같은 정보가 필요 합니다.You will need the following information:

    • SQL Server 리소스 이름: 클러스터 된 SQL Server 리소스에 대 한 이름입니다.SQL Server Resource Name: A name for the clustered SQL Server resource.
    • 제한 시간 값: 시간 제한 값은 클러스터에서 대기 하는 시간 동안는 리소스는 온라인 상태가 합니다.Timeout Value: The timeout value is the amount of time that the cluster waits while a a resource is brought online. SQL Server 하기 위해 수행할 수 있어야 하는 경우 SQL server는 master 데이터베이스를 온라인 상태로 있습니다.For SQL Server, this is the time that you expect SQL Server to take to bring the master database online.
    • 부동 IP 리소스 이름: 가상 IP 주소 리소스에 대 한 이름입니다.Floating IP Resource Name: A name for the virtual IP address resource.
    • IP 주소: SQL Server의 클러스터형된 인스턴스에 연결 하려면 클라이언트에서 사용 하는 IP 주소입니다.IP Address: THe IP address that clients will use to connect to the clustered instance of SQL Server.
    • 파일 시스템 리소스 이름: 파일 시스템 리소스에 대 한 이름입니다.File System Resource Name: A name for the File System resource.
    • 장치: The NFS 공유 경로device: The NFS share path
    • 장치: 공유에 탑재 되는 로컬 경로device: The local path that it's mounted to the share
    • fstype: 파일 공유 유형 (즉, nfs)fstype: File share type (i.e. nfs)

    사용자 환경에 대 한 아래의 스크립트에서 값을 업데이트 합니다.Update the values from the script below for your environment. 구성 및 클러스터 된 서비스를 시작 하는 노드 하나에서 실행 합니다.Run on one node to configure and start the clustered service.

    sudo pcs cluster cib cfg 
    sudo pcs -f cfg resource create <sqlServerResourceName> ocf:mssql:fci op defaults timeout=<timeout_in_seconds>
    sudo pcs -f cfg resource create <floatingIPResourceName> ocf:heartbeat:IPaddr2 ip=<ip Address>
    sudo pcs -f cfg resource create <fileShareResourceName> Filesystem device=<networkPath> directory=<localPath>         fstype=<fileShareType>
    sudo pcs -f cfg constraint colocation add <virtualIPResourceName> <sqlResourceName>
    sudo pcs -f cfg constraint colocation add <fileShareResourceName> <sqlResourceName> 
    sudo pcs cluster cib-push cfg
    

    예를 들어 다음 스크립트 라는 SQL Server에서 클러스터 된 리소스를 만듭니다 mssqlha, IP 주소를 가진 부동 IP 리소스 10.0.0.99합니다.For example, the following script creates a SQL Server clustered resource named mssqlha, and a floating IP resources with IP address 10.0.0.99. 또한 파일 시스템 리소스 만들고 모든 리소스는 SQL 리소스와 같은 노드에 배치 된 제약 조건을 추가 합니다.It also creates a Filesystem resource and adds constraints so all resources are colocated on same node as SQL resource.

    sudo pcs cluster cib cfg
    sudo pcs -f cfg resource create mssqlha ocf:mssql:fci op defaults timeout=60s
    sudo pcs -f cfg resource create virtualip ocf:heartbeat:IPaddr2 ip=10.0.0.99
    sudo pcs -f cfg resource create fs Filesystem device="10.8.8.0:/mnt/nfs" directory="/var/opt/mssql/data" fstype="nfs"
    sudo pcs -f cfg constraint colocation add virtualip mssqlha
    sudo pcs -f cfg constraint colocation add fs mssqlha
    sudo pcs cluster cib-push cfg
    

    구성을 밀어넣습니다 후에 SQL Server 노드 하나에서 시작 됩니다.After the configuration is pushed, SQL Server will start on one node.

  3. SQL Server가 시작 되었는지 확인 합니다.Verify that SQL Server is started.

    sudo pcs status 
    

    다음 예제와 Pacemaker가 성공적으로 하는 경우의 결과 SQL Server의 클러스터형된 인스턴스를 시작 합니다.The following examples shows the results when Pacemaker has succesfully started a clustered instance of SQL Server.

    fs     (ocf::heartbeat:Filesystem):    Started sqlfcivm1
    virtualip     (ocf::heartbeat:IPaddr2):      Started sqlfcivm1
    mssqlha  (ocf::mssql:fci): Started sqlfcivm1
    
    PCSD Status:
     slqfcivm1: Online
     sqlfcivm2: Online
    
    Daemon Status:
     corosync: active/disabled
     pacemaker: active/enabled
     pcsd: active/enabled
    

추가 리소스Additional resources

다음 단계Next steps

Red Hat Enterprise Linux 공유 디스크 클러스터에서 SQL Server 동작Operate SQL Server on Red Hat Enterprise Linux shared disk cluster