Provozujte instanci RHEL clusteru s podporou převzetí služeb při selhání (FCI) pro SQL Server
platí pro:SQL Server – Linux
Tento dokument popisuje, jak provádět následující úlohy pro SQL Server na clusteru s podporou převzetí služeb při selhání sdíleného disku s Red Hat Enterprise Linuxem.
- Ruční převzetí řízení clusteru při selhání
- Monitorování služby SQL Serveru clusteru s podporou převzetí služeb při selhání
- Přidání uzlu clusteru
- Odebrání uzlu clusteru
- Změna frekvence monitorování prostředků SQL Serveru
Popis architektury
Vrstva pro clustering je založená na Red Hat Enterprise Linux (RHEL) HA doplňku, který je postaven na Pacemaker. Corosync a Pacemaker koordinuje komunikaci clusteru a správu prostředků. Instance SQL Serveru je aktivní buď na jednom uzlu, nebo na druhém.
Následující diagram znázorňuje komponenty v clusteru s Linuxem s SQL Serverem.
Další informace o konfiguraci clusteru, možnostech agentů prostředků a správě najdete v referenční dokumentaci RHEL.
Ruční přepnutí při selhání clusteru
Příkaz resource move
vytvoří omezení, které vynutí spuštění prostředku na cílovém uzlu. Po spuštění příkazu move
bude provedením příkazu clear
odstraněno omezení, takže bude možné prostředek znovu přesunout nebo nechat prostředek automaticky převzít služby při selhání.
sudo pcs resource move <sqlResourceName> <targetNodeName>
sudo pcs resource clear <sqlResourceName>
Následující příklad přesune prostředek mssqlha do uzlu s názvem sqlfcivm2a pak odebere omezení, aby se prostředek mohl později přesunout na jiný uzel.
sudo pcs resource move mssqlha sqlfcivm2
sudo pcs resource clear mssqlha
Monitorování služby SQL Serveru s podporou převzetí služeb při selhání v clusteru
Zobrazení aktuálního stavu clusteru:
sudo pcs status
Zobrazení živého stavu clusteru a prostředků:
sudo crm_mon
Zobrazte protokoly agenta prostředků na /var/log/cluster/corosync.log
Přidání uzlu do clusteru
Zkontrolujte IP adresu pro každý uzel. Následující skript ukazuje IP adresu vašeho aktuálního uzlu.
ip addr show
Nový uzel potřebuje jedinečný název, který má 15 znaků nebo méně. Ve výchozím nastavení v Systému Red Hat Linux je název počítače
localhost.localdomain
. Tento výchozí název nemusí být jedinečný a je příliš dlouhý. Nastavte název počítače pro nový uzel. Nastavte název počítače tak, že ho přidáte do/etc/hosts
. Následující skript umožňuje upravovat/etc/hosts
pomocívi
.sudo vi /etc/hosts
Následující příklad ukazuje
/etc/hosts
s dodatky pro tři uzly:sqlfcivm1
,sqlfcivm2
asqlfcivm3
.127.0.0.1 localhost localhost4 localhost4.localdomain4 ::1 localhost localhost6 localhost6.localdomain6 10.128.18.128 fcivm1 10.128.16.77 fcivm2 10.128.14.26 fcivm3
Soubor by měl být stejný na každém uzlu.
Zastavte službu SQL Serveru na novém uzlu.
Podle pokynů připojte adresář databázového souboru ke sdílenému umístění:
Ze serveru NFS nainstalujte
nfs-utils
sudo yum -y install nfs-utils
Otevřete bránu firewall na klientech a serveru NFS
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
Upravte soubor
/etc/fstab
tak, aby zahrnoval příkaz mount:<IP OF NFS SERVER>:<shared_storage_path> <database_files_directory_path> nfs timeo=14,intr
Spusťte
mount -a
, aby se změny projevily.Na novém uzlu vytvořte soubor pro uložení uživatelského jména a hesla SQL Serveru pro přihlášení Pacemaker. Následující příkaz vytvoří a naplní tento soubor:
sudo touch /var/opt/mssql/passwd sudo echo "<loginName>" >> /var/opt/mssql/secrets/passwd sudo echo "<password>" >> /var/opt/mssql/secrets/passwd sudo chown root:root /var/opt/mssql/passwd sudo chmod 600 /var/opt/mssql/passwd
Opatrnost
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.
Na novém uzlu otevřete porty firewallu Pacemaker. Pokud chcete tyto porty otevřít pomocí
firewalld
, spusťte následující příkaz:sudo firewall-cmd --permanent --add-service=high-availability sudo firewall-cmd --reload
Pokud používáte jinou bránu firewall, která nemá integrovanou konfiguraci vysoké dostupnosti, je potřeba otevřít následující porty, aby Pacemaker mohl komunikovat s jinými uzly v clusteru.
- TCP: porty 2224, 3121, 21064
- UDP: port 5405
Nainstalujte balíčky Pacemaker na nový uzel.
sudo yum install pacemaker pcs fence-agents-all resource-agents
Nastavte heslo pro výchozího uživatele, který se vytvoří při instalaci balíčků Pacemaker a Corosync. Použijte stejné heslo jako existující uzly.
sudo passwd hacluster
Povolte a spusťte službu
pcsd
a Pacemaker. To umožní novému uzlu, aby se po restartování znovu připojí ke clusteru. Na novém uzlu spusťte následující příkaz.sudo systemctl enable pcsd sudo systemctl start pcsd sudo systemctl enable pacemaker
Nainstalujte agenta prostředků FCI pro SQL Server. Na novém uzlu spusťte následující příkazy.
sudo yum install mssql-server-ha
Na existujícím uzlu z clusteru ověřte nový uzel a přidejte ho do clusteru:
sudo pcs cluster auth <nodeName3> -u hacluster sudo pcs cluster node add <nodeName3>
Následující příklad přidá do clusteru uzel s názvem vm3.
sudo pcs cluster auth sudo pcs cluster start
Odebrání uzlů z clusteru
Pokud chcete odebrat uzel z clusteru, spusťte následující příkaz:
sudo pcs cluster node remove <nodeName>
Změna frekvence intervalu monitorování prostředků sqlservr
sudo pcs resource op monitor interval=<interval>s <sqlResourceName>
Následující příklad nastaví interval monitorování na 2 sekundy pro prostředek mssql:
sudo pcs resource op monitor interval=2s mssqlha
Řešení potíží se sdíleným diskový clusterem Red Hat Enterprise Linux pro SQL Server
Při řešení potíží s clusterem vám pomůže pochopit, jak tři démony spolupracují na správě prostředků clusteru.
Démon | Popis |
---|---|
Corosync | Poskytuje členství v kvoru a zasílání zpráv mezi uzly clusteru. |
Kardiostimulátor | Nachází se nad Corosync a poskytuje stavové stroje pro prostředky. |
PCSD | Spravuje pacemaker i Corosync prostřednictvím nástrojů pcs . |
PCSD musí být spuštěné, aby bylo možné používat nástroje pcs
.
Aktuální stav clusteru
sudo pcs status
vrátí základní informace o clusteru, kvoru, uzlech, prostředcích a stavu služby pro každý uzel.
Příkladem výstupu kvora pacemakeru, který je v pořádku, by byl:
Cluster name: MyAppSQL
Last updated: Wed Oct 31 12:00:00 2016 Last change: Wed Oct 31 11:00:00 2016 by root via crm_resource on sqlvmnode1
Stack: corosync
Current DC: sqlvmnode1 (version 1.1.13-10.el7_2.4-44eb2dd) - partition with quorum
3 nodes and 1 resource configured
Online: [ sqlvmnode1 sqlvmnode2 sqlvmnode3 ]
Full list of resources:
mssqlha (ocf::sql:fci): Started sqlvmnode1
PCSD Status:
sqlvmnode1: Online
sqlvmnode2: Online
sqlvmnode3: Online
Daemon Status:
corosync: active/disabled
pacemaker: active/enabled
V tomto příkladu partition with quorum
znamená, že kvórum většiny uzlů je online. Pokud cluster ztratí kvórum většiny uzlů, pcs status
vrátí partition WITHOUT quorum
a všechny prostředky se zastaví.
online: [sqlvmnode1 sqlvmnode2 sqlvmnode3]
vrátí název všech uzlů, které se aktuálně účastní clusteru. Pokud se některé uzly nezúčastní, pcs status
vrátí OFFLINE: [<nodename>]
.
PCSD Status
zobrazuje stav clusteru pro každý uzel.
Důvody, proč může být uzel offline
Pokud je uzel offline, zkontrolujte následující položky.
firewall
Aby pacemaker mohl komunikovat, musí být na všech uzlech otevřené následující porty.
- **TCP: 2224, 3121, 21064
Služby Pacemaker nebo Corosync, na kterých běží
komunikace Node
mapování názvů uzlů