Configurare Cluster SLES per gruppo di disponibilità di SQL ServerConfigure SLES Cluster for SQL Server Availability Group

QUESTO ARGOMENTO SI APPLICA A: SìSQL Server (solo Linux)nonDatabase SQL di AzurenonAzure SQL Data Warehousenon Parallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (Linux only)noAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

Questa guida fornisce istruzioni per creare un cluster a tre nodi per SQL Server su SUSE Linux Enterprise Server (SLES) 12 SP2.This guide provides instructions to create a three-node cluster for SQL Server on SUSE Linux Enterprise Server (SLES) 12 SP2. Per la disponibilità elevata, un gruppo di disponibilità in Linux richiede tre nodi, vedere la elevata disponibilità e protezione dei dati per le configurazioni di gruppo di disponibilità.For high availability, an availability group on Linux requires three nodes - see High availability and data protection for availability group configurations. Il livello di clustering si basa su SUSE estensione a disponibilità elevata (Georgiano) costruita basandosi su Pacemaker.The clustering layer is based on SUSE High Availability Extension (HAE) built on top of Pacemaker.

Per altre informazioni su configurazione del cluster, opzioni dell'agente di risorsa, gestione, le procedure consigliate e indicazioni, vedere SUSE Linux Enterprise ad alta disponibilità estensione 12 SP2.For more information on cluster configuration, resource agent options, management, best practices, and recommendations, see SUSE Linux Enterprise High Availability Extension 12 SP2.

Nota

A questo punto, l'integrazione con Pacemaker in Linux SQL Server non è accoppiato come con WSFC per Windows.At this point, SQL Server's integration with Pacemaker on Linux is not as coupled as with WSFC on Windows. Servizio SQL Server in Linux non è compatibile con i cluster.SQL Server service on Linux is not cluster aware. Pacemaker controlla tutti l'orchestrazione delle risorse del cluster, tra cui la risorsa del gruppo di disponibilità.Pacemaker controls all of the orchestration of the cluster resources, including the availability group resource. In Linux, è consigliabile limitarsi a sempre nella disponibilità gruppo di viste a gestione dinamica (DMV) che forniscono informazioni sul cluster, ad esempio 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. Inoltre, nome di rete virtuale è specifico al cluster WSFC, è disponibile un equivalente dello stesso in Pacemaker.Also, virtual network name is specific to WSFC, there is no equivalent of the same in Pacemaker. È comunque possibile creare un listener per usarlo per la riconnessione dopo il failover trasparente, ma si dovrà registrare manualmente il nome del listener nel server DNS con l'indirizzo IP usato per creare la risorsa IP virtuale (come illustrato nelle sezioni seguenti).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 in the following sections).

Guida di orientamentoRoadmap

La procedura per la creazione di un gruppo di disponibilità per la disponibilità elevata varia tra i server Linux e un cluster di failover di Windows Server.The procedure for creating an availability group for high availability differs between Linux servers and a Windows Server failover cluster. L'elenco seguente descrive i passaggi generali:The following list describes the high-level steps:

  1. Configurare SQL Server nei nodi del cluster.Configure SQL Server on the cluster nodes.

  2. Creare il gruppo di disponibilità.Create the availability group.

  3. Configurare un cluster di resource manager, ad esempio Pacemaker.Configure a cluster resource manager, like Pacemaker. Queste istruzioni sono in questo documento.These instructions are in this document.

    Il modo per configurare un gestore di risorse cluster dipende la distribuzione Linux specifica.The way to configure a cluster resource manager depends on the specific Linux distribution.

    Importante

    Gli ambienti di produzione richiedono un agente di isolamento, ad esempio STONITH per la disponibilità elevata.Production environments require a fencing agent, like STONITH for high availability. Gli esempi in questo articolo non usano gli agenti di fencing.The examples in this article do not use fencing agents. Sono per i test e convalida solo.They are for testing and validation only.

    Un cluster Pacemaker Usa fencing per restituire il cluster a uno stato noto.A Pacemaker cluster uses fencing to return the cluster to a known state. Il modo per configurare l'isolamento varia a seconda della distribuzione e l'ambiente.The way to configure fencing depends on the distribution and the environment. A questo punto, l'isolamento non è disponibile in alcuni ambienti cloud.At this time, fencing is not available in some cloud environments. Visualizzare estensione di disponibilità elevata di SUSE Linux Enterprise.See SUSE Linux Enterprise High Availability Extension.

  4. Aggiungere il gruppo di disponibilità come una risorsa in cluster.Add the availability group as a resource in the cluster.

PrerequisitiPrerequisites

Per completare lo scenario end-to-end seguente, è necessario tre macchine virtuali da distribuire il cluster di tre nodi.To complete the following end-to-end scenario, you need three machines to deploy the three nodes cluster. I passaggi seguenti illustrano come configurare questi server.The following steps outline how to configure these servers.

Installare e configurare il sistema operativo in ogni nodo del clusterSetup and configure the operating system on each cluster node

Il primo passaggio consiste nel configurare il sistema operativo nei nodi del cluster.The first step is to configure the operating system on the cluster nodes. Per questa procedura dettagliata, usare SLES 12 SP2 con una sottoscrizione valida per il componente aggiuntivo a disponibilità elevata.For this walk through, use SLES 12 SP2 with a valid subscription for the HA add-on.

Installare e configurare il servizio SQL Server in ogni nodo del clusterInstall and configure SQL Server service on each cluster node

  1. Installare e configurare il servizio SQL Server in tutti i nodi.Install and setup SQL Server service on all nodes. Per istruzioni dettagliate, vedere installare SQL Server in Linux.For detailed instructions, see Install SQL Server on Linux.

  2. Designare un nodo primari e di altri nodi come repliche secondarie.Designate one node as primary and other nodes as secondaries. Usare questi termini all'interno di questa Guida.Use these terms throughout this guide.

  3. Assicurarsi che i nodi che faranno parte del cluster possono comunicare tra loro.Make sure nodes that are going to be part of the cluster can communicate to each other.

    L'esempio seguente mostra /etc/hosts con aggiunte per tre nodi denominati SLES1, SLES2 e 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
    

    Tutti i nodi del cluster devono essere in grado di accedere reciprocamente tramite SSH.All cluster nodes must be able to access each other via SSH. Strumenti come hb_report o crm_report (per la risoluzione dei problemi) e History Explorer di Hawk richiedono l'accesso a SSH tra i nodi, in caso contrario, essi possono raccogliere dati solo dal nodo corrente.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. Nel caso in cui si usa una porta SSH non standard, usare l'opzione -X (vedere man pagina).In case you use a non-standard SSH port, use the -X option (see man page). Ad esempio, se la porta SSH è 3479, richiamare un crm_report con:For example, if your SSH port is 3479, invoke a crm_report with:

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

    Per altre informazioni, vedere la Guida all'amministrazione di SLES - sezione varie.For more information, see the SLES Administration Guide - Miscellaneous section.

Creare un account di accesso di SQL Server per PacemakerCreate a SQL Server login for Pacemaker

  1. In tutte le istanze di SQL Server creare un account di accesso server per Pacemaker.On all SQL Servers, create a Server login for Pacemaker. Il codice Transact-SQL seguente crea un account di accesso: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]
    

    In alternativa, è possibile impostare le autorizzazioni a un livello più granulare.Alternatively, you can set the permissions at a more granular level. L'account di accesso Pacemaker richiede l'autorizzazione ALTER, CONTROL e VIEW DEFINITION per gestire il gruppo di disponibilità. Richiede anche l'autorizzazione VIEW SERVER STATE perché l'account di accesso possa eseguire 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. Per altre informazioni, vedere GRANT, autorizzazioni del gruppo di disponibilità (Transact-SQL) e le autorizzazioni sp_server_diagnostic.For more information, see GRANT Availability Group Permissions (Transact-SQL) and sp_server_diagnostic permissions.

    Il codice Transact-SQL seguente concede solo le autorizzazioni necessarie per l'account di accesso di Pacemaker.The following Transact-SQL grants only the required permission to the Pacemaker login. Nell'istruzione seguente "ag1" è il nome del gruppo di disponibilità che verrà aggiunto come risorsa cluster.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. In tutte le istanze di SQL Server salvare le credenziali per l'account di accesso di 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
    

Configurare un gruppo di disponibilità Always OnConfigure an Always On Availability Group

Nei server Linux, configurare il gruppo di disponibilità e quindi configurare le risorse del cluster.On Linux servers, configure the availability group and then configure the cluster resources. Per configurare il gruppo di disponibilità, vedere Configura gruppo di disponibilità AlwaysOn per SQL Server in LinuxTo configure the availability group, see Configure Always On Availability Group for SQL Server on Linux

Installare e configurare Pacemaker in ogni nodo del clusterInstall and configure Pacemaker on each cluster node

  1. Installare l'estensione di disponibilità elevataInstall the High Availability extension

    Per riferimento, vedere installazione SUSE Linux Enterprise Server e l'estensione per la disponibilità elevataFor reference, see Installing SUSE Linux Enterprise Server and High Availability Extension

  2. Installa pacchetto dell'agente di risorse SQL Server su entrambi i nodi.Install SQL Server resource agent package on both nodes.

    sudo zypper install mssql-server-ha
    

Configurare il primo nodoSet up the first node

Fare riferimento a istruzioni di installazione di SLESRefer to SLES installation instructions

  1. Accedere come root per la macchina fisica o virtuale da usare come nodo del cluster.Log in as root to the physical or virtual machine you want to use as cluster node.
  2. Avviare lo script di bootstrap eseguendo:Start the bootstrap script by executing:

    sudo ha-cluster-init
    

    NTP non è stato configurato per l'esecuzione all'avvio, verrà visualizzato un messaggio.If NTP has not been configured to start at boot time, a message appears.

    Se si decide di continuare comunque, lo script genera le chiavi per l'accesso SSH e per lo strumento di sincronizzazione Csync2 automaticamente e avvia i servizi necessari per entrambi.If you decide to continue anyway, the script automatically generates keys for SSH access and for the Csync2 synchronization tool and start the services needed for both.

  3. Per configurare il livello di comunicazione del cluster (Corosync):To configure the cluster communication layer (Corosync):

    A.a. Immettere un indirizzo di rete a cui associarsi.Enter a network address to bind to. Per impostazione predefinita, lo script viene proposto l'indirizzo di rete di eth0.By default, the script proposes the network address of eth0. In alternativa, immettere un indirizzo di rete diversi, ad esempio l'indirizzo di bond0.Alternatively, enter a different network address, for example the address of bond0.

    B.b. Immettere un indirizzo multicast.Enter a multicast address. Lo script viene proposto un indirizzo casuale che è possibile utilizzare come valore predefinito.The script proposes a random address that you can use as default.

    c.c. Immettere una porta di multicast.Enter a multicast port. Lo script viene proposto 5405 come predefinito.The script proposes 5405 as default.

    d.d. Per configurare SBD (), immettere un percorso persistente per la partizione del dispositivo di blocco che si desidera utilizzare per SBD.To configure SBD (), enter a persistent path to the partition of your block device that you want to use for SBD. Il percorso deve essere coerente in tutti i nodi del cluster.The path must be consistent across all nodes in the cluster. Infine, lo script avvierà il servizio Pacemaker per connettere il cluster a nodo singolo e abilitare l'interfaccia di gestione Web Hawk2.Finally, the script will start the Pacemaker service to bring the one-node cluster online and enable the Web management interface Hawk2. L'URL da utilizzare per Hawk2 viene visualizzato sullo schermo.The URL to use for Hawk2 is displayed on the screen.

  4. Per i dettagli del processo di installazione, controllare /var/log/sleha-bootstrap.log.For any details of the setup process, check /var/log/sleha-bootstrap.log. È ora disponibile un cluster in esecuzione un nodo.You now have a running one-node cluster. Controllare lo stato del cluster con lo stato di crm:Check the cluster status with crm status:

    sudo crm status
    

    È anche possibile visualizzare la configurazione del cluster con crm configure show xml o crm configure show.You can also see cluster configuration with crm configure show xml or crm configure show.

  5. La procedura di bootstrap viene creato un utente di Linux denominato hacluster con la password per linux.The bootstrap procedure creates a Linux user named hacluster with the password linux. Sostituire la password predefinita con una protezione appena possibile:Replace the default password with a secure one as soon as possible:

    sudo passwd hacluster
    

Aggiungere nodi al cluster esistenteAdd nodes to the existing cluster

Se si dispone di un cluster in esecuzione con uno o più nodi, aggiungere più nodi del cluster con lo script di bootstrap a disponibilità elevata-cluster-join.If you have a cluster running with one or more nodes, add more cluster nodes with the ha-cluster-join bootstrap script. Lo script necessita esclusivamente l'accesso a un nodo del cluster esistente e verrà completata automaticamente la configurazione di base sul computer corrente.The script only needs access to an existing cluster node and will complete the basic setup on the current machine automatically. Usare la procedura seguente:Use the following steps:

Se sono stati configurati i nodi del cluster esistente con il YaST modulo di cluster, assicurarsi che siano soddisfatti i prerequisiti seguenti prima di eseguire 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:

  • L'utente radice sui nodi esistenti include le chiavi SSH per l'accesso senza password.The root user on the existing nodes has SSH keys in place for passwordless login.
  • Csync2 è configurato sui nodi esistenti.Csync2 is configured on the existing nodes. Per altre informazioni, vedere configurazione Csync2 con YaST.For more information,see Configuring Csync2 with YaST.
  1. Accedere come utente root per la macchina fisica o virtuale dovrebbe essere aggiunti al cluster.Log in as root to the physical or virtual machine supposed to join the cluster.
  2. Avviare lo script di bootstrap eseguendo:Start the bootstrap script by executing:

    sudo ha-cluster-join
    

    NTP non è stato configurato per l'esecuzione all'avvio, verrà visualizzato un messaggio.If NTP has not been configured to start at boot time, a message appears.

  3. Se si decide di continuare comunque, verrà richiesto per l'indirizzo IP di un nodo esistente.If you decide to continue anyway, you will be prompted for the IP address of an existing node. Immettere l'indirizzo IP.Enter the IP address.

  4. Se non si è già configurato un accesso a SSH senza password tra entrambi i computer, è anche richiederà la password radice del nodo esistente.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.

    Dopo l'accesso al nodo specificato, lo script copia la configurazione di Corosync, configura SSH e Csync2e riporta online il computer corrente come nuovo nodo del cluster.After logging in to the specified node, the script copies the Corosync configuration, configures SSH and Csync2, and brings the current machine online as new cluster node. A parte ciò, viene avviato il servizio richiesto perché Hawk.Apart from that, it starts the service needed for Hawk. Se è stata configurata l'archiviazione condivisa con OCFS2, viene creato automaticamente anche la directory del punto di montaggio per i OCFS2 file system.If you have configured shared storage with OCFS2, it also automatically creates the mountpoint directory for the OCFS2 file system.

  5. Ripetere i passaggi precedenti per tutti i computer da aggiungere al cluster.Repeat the previous steps for all machines you want to add to the cluster.

  6. Per informazioni dettagliate del processo, controllare /var/log/ha-cluster-bootstrap.log.For details of the process, check /var/log/ha-cluster-bootstrap.log.

  7. Controllare lo stato del cluster con sudo crm status.Check the cluster status with sudo crm status. Se il secondo nodo è stato aggiunto correttamente, l'output sarà simile al seguente: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
    

    Nota

    admin_addr è la risorsa cluster IP virtuale configurata durante l'installazione iniziale del cluster a nodo singolo.admin_addr is the virtual IP cluster resource which is configured during initial one-node cluster setup.

Dopo aver aggiunto tutti i nodi, controllare se è necessario modificare i criteri di quorum no nelle opzioni di cluster globale.After adding all nodes, check if you need to adjust the no-quorum-policy in the global cluster options. Ciò è particolarmente importante per i cluster a due nodi.This is especially important for two-node clusters. Per altre informazioni, vedere sezione 4.1.2, opzione no-quorum-policy.For more information,see Section 4.1.2, Option no-quorum-policy.

Impostare proprietà di cluster del cluster-Ricontrolla-intervalloSet cluster property cluster-recheck-interval

cluster-recheck-interval indica l'intervallo di polling in corrispondenza del quale il cluster controlla modifiche nei parametri delle risorse, i vincoli o altre opzioni di cluster.cluster-recheck-interval indicates the polling interval at which the cluster checks for changes in the resource parameters, constraints or other cluster options. Se una replica diventa inattiva, il cluster tenta di riavviare la replica in base all'intervallo è associato mediante il failure-timeout valore e il cluster-recheck-interval valore.If a replica goes down, the cluster tries to restart the replica at an interval that is bound by the failure-timeout value and the cluster-recheck-interval value. Ad esempio, se failure-timeout è impostato su 60 secondi e cluster-recheck-interval è impostato su 120 secondi, il riavvio viene eseguito un tentativo in base all'intervallo è maggiore di 60 secondi ma inferiore a 120 secondi.For example, if failure-timeout is set to 60 seconds and cluster-recheck-interval is set to 120 seconds, the restart is tried at an interval that is greater than 60 seconds but less than 120 seconds. È consigliabile impostare timeout errore 60s e controlla di nuovo-cluster-interval su un valore maggiore di 60 secondi.We recommend that you set failure-timeout to 60s and cluster-recheck-interval to a value that is greater than 60 seconds. Non è consigliabile impostare intervallo-cluster-nuova verifica su un valore ridotto.Setting cluster-recheck-interval to a small value is not recommended.

Per aggiornare il valore della proprietà da 2 minutes eseguire:To update the property value to 2 minutes run:

crm configure property cluster-recheck-interval=2min

Importante

Se si dispone già di una risorsa gruppo di disponibilità gestita da un cluster Pacemaker, tenere presente che tutte le distribuzioni che usano la versione più recente disponibile Pacemaker pacchetto 1.1.18-11.el7 introducano un cambiamento di comportamento per il cluster iniziale-errore-è-errore irreversibile impostazione quando relativo il valore è false.If you already have an availability group resource managed by a Pacemaker cluster, note that all distributions that use the latest available Pacemaker package 1.1.18-11.el7 introduce a behavior change for the start-failure-is-fatal cluster setting when its value is false. Questa modifica interessa il flusso di lavoro di failover.This change affects the failover workflow. Se una replica primaria si verifica un'interruzione, il cluster è previsto per il failover su una delle repliche secondarie disponibili.If a primary replica experiences an outage, the cluster is expected to failover to one of the available secondary replicas. Al contrario, gli utenti noteranno che il cluster insiste avviare la replica primaria non riuscita.Instead, users will notice that the cluster keeps trying to start the failed primary replica. Se tale database primario non torna online (a causa di un'interruzione dell'alimentazione permanente), il cluster mai effettua il failover a un'altra replica secondaria disponibile.If that primary never comes online (because of a permanent outage), the cluster never fails over to another available secondary replica. Grazie a questa modifica, una configurazione consigliata in precedenza per impostare start-errore-è-errore irreversibile non è più valida e l'impostazione deve essere ripristinato il valore predefinito di true.Because of this change, a previously recommended configuration to set start-failure-is-fatal is no longer valid and the setting needs to be reverted back to its default value of true. Inoltre, la risorsa del gruppo di disponibilità deve essere aggiornato per includere il failover-timeout proprietà.Additionally, the AG resource needs to be updated to include the failover-timeout property.

Per aggiornare il valore della proprietà da true eseguire:To update the property value to true run:

crm configure property start-failure-is-fatal=true

Aggiornare le proprietà della risorsa del gruppo di disponibilità esistente failure-timeout al 60s eseguire (sostituire ag1 con il nome della risorsa gruppo di disponibilità):Update your existing AG resource property failure-timeout to 60s run (replace ag1 with the name of your availability group resource):

crm configure edit ag1
# In the text editor, add `meta failure-timeout=60s` after any `param`s and before any `op`s

Per altre informazioni sulle proprietà del cluster Pacemaker, vedere configurazione di risorse Cluster.For more information on Pacemaker cluster properties, see Configuring Cluster Resources.

Configurare l'isolamento (STONITH)Configure fencing (STONITH)

I fornitori del cluster pacemaker richiedono STONITH deve essere abilitata e un dispositivo di fencing configurato per l'installazione del cluster supportate.Pacemaker cluster vendors require STONITH to be enabled and a fencing device configured for a supported cluster setup. Quando cluster resource manager non è possibile determinare lo stato di un nodo o di una risorsa in un nodo, l'isolamento consente di visualizzare di nuovo il cluster a uno stato noto.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.

Isolamento a livello di risorsa principalmente assicura che non vi sia alcun danneggiamento dei dati durante un'interruzione del servizio tramite la configurazione di una risorsa.Resource level fencing ensures mainly that there is no data corruption during an outage by configuring a resource. È possibile utilizzare l'isolamento a livello di risorsa, ad esempio, con DRBD (Distributed replicati blocco dispositivo) per contrassegnare il disco in un nodo come obsoleta quando il collegamento di comunicazione si arresta.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.

Isolamento a livello di nodo assicura che un nodo non viene eseguita alcuna risorsa.Node level fencing ensures that a node does not run any resources. In tal caso, reimpostare il nodo e l'implementazione di Pacemaker di esso viene chiamato STONITH (che è l'acronimo di "girare in altro nodo nell'intestazione").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 supporta una vasta gamma di dispositivi, ad esempio un uninterruptible power supply o gestione schede di interfaccia di per i server di conflitti.Pacemaker supports a great variety of fencing devices, such as an uninterruptible power supply or management interface cards for servers.

Per altre informazioni, vedere cluster Pacemaker da zero, Fencing e Stonith e documentazione SUSE a disponibilità elevata: Fencing e STONITH.For more information, see Pacemaker Clusters from Scratch, Fencing and Stonith and SUSE HA documentation: Fencing and STONITH.

In fase di inizializzazione del cluster, se non viene rilevata alcuna configurazione di STONITH è disabilitata.At cluster initialization time, STONITH is disabled if no configuration is detected. Può essere abilitata in un secondo momento usando il comando seguente:It can be enabled later by running following command:

sudo crm configure property stonith-enabled=true

Importante

La disabilitazione di STONITH è solo a scopo di test.Disabling STONITH is just for testing purposes. Se si prevede di utilizzare Pacemaker in un ambiente di produzione, è necessario pianificare un'implementazione di STONITH a seconda dell'ambiente e lasciarla abilitata.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 fornisce gli agenti di fencing per tutti gli ambienti cloud (tra cui Azure) o Hyper-V.SUSE does not provide fencing agents for any cloud environments (including Azure) or Hyper-V. Consequentially, il fornitore del cluster non offre il supporto per l'esecuzione di cluster di produzione in questi ambienti.Consequentially, the cluster vendor does not offer support for running production clusters in these environments. Microsoft sta lavorando a una soluzione per questo divario che sarà disponibile nelle versioni future.We are working on a solution for this gap that will be available in future releases.

Configurare le risorse del cluster per SQL ServerConfigure the cluster resources for SQL Server

Fare riferimento a SLES amministrazione GuidRefer to SLES Administration Guid

Crea risorsa gruppo di disponibilitàCreate availability group resource

Il comando seguente crea e configura la risorsa del gruppo di disponibilità per tre repliche del gruppo di disponibilità [ag1].The following command creates and configures the availability group resource for three replicas of availability group [ag1]. Le operazioni di monitoraggio e i timeout devono essere specificate in modo esplicito in SLES basata sul fatto che i timeout sono altamente dipendente dal carico di lavoro e devono essere attentamente regolato per ogni distribuzione.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. Eseguire il comando in uno dei nodi del cluster:Run the command on one of the nodes in the cluster:

  1. Eseguire crm configure aprire il prompt dei comandi di crm:Run crm configure to open the crm prompt:

    sudo crm configure 
    
  2. Nel prompt di crm, eseguire il comando seguente per configurare le proprietà della risorsa.In the crm prompt, run the following command to configure the resource properties.

    primitive ag_cluster \
       ocf:mssql:ag \
       params ag_name="ag1" \
       meta failure-timeout=60s \
       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
    

Nota

Quando si crea la risorsa, e periodicamente dopo la creazione, l'agente delle risorse Pacemaker imposta automaticamente il valore di REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT nel gruppo di disponibilità in base alla configurazione del gruppo di disponibilità.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. Se ad esempio il gruppo di disponibilità contiene tre repliche sincrone, l'agente imposterà REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT su 1.For example, if the availability group has three synchronous replicas, the agent will set REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT to 1. Per informazioni dettagliate e altre opzioni di configurazione, vedere High availability and data protection for availability group configurations (Disponibilità elevata e protezione dati per le configurazioni del gruppo di disponibilità).For details and additional configuration options, see High availability and data protection for availability group configurations.

Creare una risorsa IP virtualeCreate virtual IP resource

Se non è stato creato la risorsa IP virtuale durante l'esecuzione ha-cluster-init è possibile creare questa risorsa ora.If you did not create the virtual IP resource when you ran ha-cluster-init you can create this resource now. Il comando seguente crea una risorsa IP virtuale.The following command creates a virtual IP resource. Sostituire <**0.0.0.0**> con un indirizzo disponibile dalla rete e <**24**> con il numero di bit nella maschera di subnet 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. Eseguire in un nodo.Run on one node.

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

Aggiungi vincolo di condivisione del percorsoAdd colocation constraint

Quasi ogni decisione di in un cluster Pacemaker, come scegliere in cui deve essere eseguita una risorsa, viene eseguita confrontando i punteggi.Almost every decision in a Pacemaker cluster, like choosing where a resource should run, is done by comparing scores. I punteggi vengono calcolati per ogni risorsa e cluster resource manager sceglie il nodo con il punteggio più alto per una determinata risorsa.Scores are calculated per resource, and the cluster resource manager chooses the node with the highest score for a particular resource. (Se un nodo ha un punteggio negativo per una risorsa, la risorsa non è possibile eseguire su tale nodo.) È possibile gestire le decisioni del cluster con vincoli.(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. I vincoli hanno un punteggio.Constraints have a score. Se un vincolo ha un punteggio inferiore a infinito, è solo un'indicazione.If a constraint has a score lower than INFINITY, it is only a recommendation. Un punteggio pari a infinito significa che è indispensabile.A score of INFINITY means it is a must. Microsoft vuole garantire che primaria del gruppo di disponibilità e virtuale risorsa ip vengono eseguiti nello stesso host, quindi viene definito un vincolo di condivisione del percorso con un punteggio pari a infinito.We want to ensure that primary of the availability group and the virtual ip resource are run on the same host, so we define a colocation constraint with a score of INFINITY.

Per impostare il vincolo di condivisione percorso per l'indirizzo IP virtuale per l'esecuzione nello stesso nodo master, eseguire il comando seguente in un nodo: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

Aggiungi vincolo di ordinamentoAdd ordering constraint

Il vincolo di condivisione percorso ha un vincolo di ordinamento implicito.The colocation constraint has an implicit ordering constraint. Sposta la risorsa IP virtuale prima di spostare la risorsa del gruppo di disponibilità.It moves the virtual IP resource before it moves the availability group resource. Per impostazione predefinita è la sequenza di eventi:By default the sequence of events is:

  1. Risorsa utente di problemi la migrazione da node1 a node2 a principale del gruppo di disponibilità.User issues resource migrate to the availability group master from node1 to node2.
  2. La risorsa IP virtuale viene arrestata nel nodo 1.The virtual IP resource stops on node 1.
  3. La risorsa IP virtuale verrà avviata nel nodo 2.The virtual IP resource starts on node 2. A questo punto, l'indirizzo IP temporaneamente punti al nodo 2 mentre il nodo 2 è ancora un pre-failover secondario.At this point, the IP address temporarily points to node 2 while node 2 is still a pre-failover secondary.
  4. Viene abbassato di livello principale del gruppo di disponibilità nel nodo 1 per slave.The availability group master on node 1 is demoted to slave.
  5. Lo slave di gruppo di disponibilità nel nodo 2 venga innalzato di livello master.The availability group slave on node 2 is promoted to master.

Per evitare temporaneamente che puntano al nodo con il database secondario pre-failover l'indirizzo IP, aggiungere un vincolo di ordinamento.To prevent the IP address from temporarily pointing to the node with the pre-failover secondary, add an ordering constraint. Per aggiungere un vincolo di ordinamento, eseguire il comando seguente in un nodo: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

Importante

Dopo aver configurato il cluster e aggiungere il gruppo di disponibilità come risorsa cluster, è possibile usare Transact-SQL per eseguire il failover le risorse di gruppo di disponibilità.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. Risorse del cluster SQL Server in Linux non sono collegate come strettamente con il sistema operativo perché sono in un Server Failover Cluster WSFC (Windows).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). Servizio SQL Server non riconosce la presenza del cluster.SQL Server service is not aware of the presence of the cluster. Tutte le orchestrazioni vengono eseguite mediante gli strumenti di gestione di cluster.All orchestration is done through the cluster management tools. SLES usare crm.In SLES use crm.

Eseguire manualmente il failover il gruppo di disponibilità con crm.Manually fail over the availability group with crm. Non avviare il failover con Transact-SQL.Don't initiate failover with Transact-SQL. Per altre informazioni, vedere Failover.For more information, see Failover.

Per altre informazioni, vedere:For more information, see:

Passaggi successiviNext steps

Funzionamento di gruppo di disponibilità elevataOperate HA availability group