Öğretici: Azure'da RHEL sanal makinelerinde SQL Server için kullanılabilirlik gruplarını yapılandırma
Şunlar için geçerlidir: Azure VM'de SQL Server
Not
Bu öğreticide RHEL 7.6 ile SQL Server 2017 (14.x) kullanıyoruz, ancak yüksek kullanılabilirliği yapılandırmak için RHEL 7 veya RHEL 8'de SQL Server 2019 (15.x) kullanmak mümkündür. RHEL 8'de Pacemaker kümesi ve kullanılabilirlik grubu kaynaklarını yapılandırma komutları değişmiştir ve doğru komutlar hakkında daha fazla bilgi için Kullanılabilirlik grubu kaynağı ve RHEL 8 kaynakları oluşturma makalesine göz atabilirsiniz.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Yeni bir kaynak grubu, kullanılabilirlik kümesi ve Linux sanal makineleri (VM) oluşturma
- Yüksek kullanılabilirliği etkinleştirme (HA)
- Pacemaker kümesi oluşturma
- STONITH cihazı oluşturarak eskrim aracısını yapılandırma
- RHEL'de SQL Server ve mssql-tools yükleme
- SQL Server Always On kullanılabilirlik grubunu yapılandırma
- Pacemaker kümesindeki kullanılabilirlik grubu (AG) kaynaklarını yapılandırma
- Yük devretmeyi ve eskrim aracısını test etme
Bu öğreticide, Azure'da kaynakları dağıtmak için Azure CLI kullanılır.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Önkoşullar
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.
Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
- Bu makale, Azure CLI'nın 2.0.30 veya sonraki bir sürümünü gerektirir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.
Kaynak grubu oluşturma
Birden fazla aboneliğiniz varsa, bu kaynakları dağıtmak istediğiniz aboneliği ayarlayın.
Bir bölgede kaynak grubu <resourceGroupName>
oluşturmak için aşağıdaki komutu kullanın. değerini, seçtiğiniz bir adla değiştirin <resourceGroupName>
. Bu öğretici için kullanıyoruz East US 2
. Daha fazla bilgi için aşağıdaki Hızlı Başlangıç'a bakın.
az group create --name <resourceGroupName> --location eastus2
Kullanılabilirlik kümesi oluşturma
Sonraki adım bir kullanılabilirlik kümesi oluşturmaktır. Azure Cloud Shell'de aşağıdaki komutu çalıştırın ve öğesini kaynak grubu adınızla değiştirin <resourceGroupName>
. için <availabilitySetName>
bir ad seçin.
az vm availability-set create \
--resource-group <resourceGroupName> \
--name <availabilitySetName> \
--platform-fault-domain-count 2 \
--platform-update-domain-count 2
Komut tamamlandıktan sonra aşağıdaki sonuçları almanız gerekir:
{
"id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/availabilitySets/<availabilitySetName>",
"location": "eastus2",
"name": "<availabilitySetName>",
"platformFaultDomainCount": 2,
"platformUpdateDomainCount": 2,
"proximityPlacementGroup": null,
"resourceGroup": "<resourceGroupName>",
"sku": {
"capacity": null,
"name": "Aligned",
"tier": null
},
"statuses": null,
"tags": {},
"type": "Microsoft.Compute/availabilitySets",
"virtualMachines": []
}
Kullanılabilirlik kümesi içinde RHEL VM'leri oluşturma
Uyarı
Kullandıkça Öde (PAYG) RHEL görüntüsü seçerseniz ve yüksek kullanılabilirlik (HA) yapılandırdıysanız aboneliğinizi kaydetmeniz gerekebilir. Bu durum, vm için Microsoft Azure RHEL aboneliği ve Red Hat aboneliği için sizden ücret alınacağından abonelik için iki kez ödeme yapılmasına neden olabilir. Daha fazla bilgi için bkz. https://access.redhat.com/solutions/2458541.
"Çift faturalandırılmaktan" kaçınmak için Azure VM'yi oluştururken RHEL HA görüntüsü kullanın. RHEL-HA görüntüleri olarak sunulan görüntüler, HA deposu önceden etkinleştirilmiş PAYG görüntüleridir.
HA ile RHEL sunan sanal makine görüntülerinin listesini alın:
az vm image list --all --offer "RHEL-HA"
Aşağıdaki sonuçları görmeniz gerekir:
[ { "offer": "RHEL-HA", "publisher": "RedHat", "sku": "7.4", "urn": "RedHat:RHEL-HA:7.4:7.4.2019062021", "version": "7.4.2019062021" }, { "offer": "RHEL-HA", "publisher": "RedHat", "sku": "7.5", "urn": "RedHat:RHEL-HA:7.5:7.5.2019062021", "version": "7.5.2019062021" }, { "offer": "RHEL-HA", "publisher": "RedHat", "sku": "7.6", "urn": "RedHat:RHEL-HA:7.6:7.6.2019062019", "version": "7.6.2019062019" }, { "offer": "RHEL-HA", "publisher": "RedHat", "sku": "8.0", "urn": "RedHat:RHEL-HA:8.0:8.0.2020021914", "version": "8.0.2020021914" }, { "offer": "RHEL-HA", "publisher": "RedHat", "sku": "8.1", "urn": "RedHat:RHEL-HA:8.1:8.1.2020021914", "version": "8.1.2020021914" }, { "offer": "RHEL-HA", "publisher": "RedHat", "sku": "80-gen2", "urn": "RedHat:RHEL-HA:80-gen2:8.0.2020021915", "version": "8.0.2020021915" }, { "offer": "RHEL-HA", "publisher": "RedHat", "sku": "81_gen2", "urn": "RedHat:RHEL-HA:81_gen2:8.1.2020021915", "version": "8.1.2020021915" } ]
Bu öğreticide RHEL 7 örneği için görüntüyü
RedHat:RHEL-HA:7.6:7.6.2019062019
ve RHEL 8 örneğini seçiyoruzRedHat:RHEL-HA:8.1:8.1.2020021914
.RHEL8-HA görüntülerine önceden yüklenmiş SQL Server 2019 (15.x) seçeneğini de belirleyebilirsiniz. Bu görüntülerin listesini almak için aşağıdaki komutu çalıştırın:
az vm image list --all --offer "sql2019-rhel8"
Aşağıdaki sonuçları görmeniz gerekir:
[ { "offer": "sql2019-rhel8", "publisher": "MicrosoftSQLServer", "sku": "enterprise", "urn": "MicrosoftSQLServer:sql2019-rhel8:enterprise:15.0.200317", "version": "15.0.200317" }, { "offer": "sql2019-rhel8", "publisher": "MicrosoftSQLServer", "sku": "enterprise", "urn": "MicrosoftSQLServer:sql2019-rhel8:enterprise:15.0.200512", "version": "15.0.200512" }, { "offer": "sql2019-rhel8", "publisher": "MicrosoftSQLServer", "sku": "sqldev", "urn": "MicrosoftSQLServer:sql2019-rhel8:sqldev:15.0.200317", "version": "15.0.200317" }, { "offer": "sql2019-rhel8", "publisher": "MicrosoftSQLServer", "sku": "sqldev", "urn": "MicrosoftSQLServer:sql2019-rhel8:sqldev:15.0.200512", "version": "15.0.200512" }, { "offer": "sql2019-rhel8", "publisher": "MicrosoftSQLServer", "sku": "standard", "urn": "MicrosoftSQLServer:sql2019-rhel8:standard:15.0.200317", "version": "15.0.200317" }, { "offer": "sql2019-rhel8", "publisher": "MicrosoftSQLServer", "sku": "standard", "urn": "MicrosoftSQLServer:sql2019-rhel8:standard:15.0.200512", "version": "15.0.200512" } ]
Sanal makineleri oluşturmak için yukarıdaki görüntülerden birini kullanırsanız, SQL Server 2019 (15.x) önceden yüklenmiştir. Bu makalede açıklandığı gibi SQL Server ve mssql-tools yükleme bölümünü atlayın.
Önemli
Kullanılabilirlik grubunu ayarlamak için makine adlarının 15 karakterden kısa olması gerekir. Kullanıcı adı büyük harf karakter içeremez ve parolaların 12 karakterden fazla olması gerekir.
Kullanılabilirlik kümesinde 3 VM oluşturmak istiyoruz. Aşağıdaki komutta bu değerleri değiştirin:
<resourceGroupName>
<VM-basename>
<availabilitySetName>
<VM-Size>
- Örnek olarak "Standard_D16_v3" olabilir<username>
<adminPassword>
for i in `seq 1 3`; do az vm create \ --resource-group <resourceGroupName> \ --name <VM-basename>$i \ --availability-set <availabilitySetName> \ --size "<VM-Size>" \ --image "RedHat:RHEL-HA:7.6:7.6.2019062019" \ --admin-username "<username>" \ --admin-password "<adminPassword>" \ --authentication-type all \ --generate-ssh-keys done
Yukarıdaki komut VM'leri oluşturur ve bu VM'ler için varsayılan bir sanal ağ oluşturur. Farklı yapılandırmalar hakkında daha fazla bilgi için az vm create makalesine bakın.
Her VM için komut tamamlandıktan sonra aşağıdakine benzer sonuçlar almalısınız:
{
"fqdns": "",
"id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/<VM1>",
"location": "eastus2",
"macAddress": "<Some MAC address>",
"powerState": "VM running",
"privateIpAddress": "<IP1>",
"publicIpAddress": "",
"resourceGroup": "<resourceGroupName>",
"zones": ""
}
Önemli
Yukarıdaki komutla oluşturulan varsayılan görüntü varsayılan olarak 32 GB işletim sistemi diski oluşturur. Bu varsayılan yüklemeyle büyük olasılıkla alanınız tükenebilir. Yukarıdaki komuta eklenen aşağıdaki parametreyi az vm create
kullanarak örnek olarak 128 GB'lık bir işletim sistemi diski oluşturabilirsiniz: --os-disk-size-gb 128
.
Ardından, yüklemenize uyum sağlamak için uygun klasör birimlerini genişletmeniz gerekiyorsa Mantıksal Birim Yöneticisi'ne (LVM) yapılandırabilirsiniz.
Oluşturulan VM'lere bağlantıyı test etme
Azure Cloud Shell'de aşağıdaki komutu kullanarak VM1'e veya diğer VM'lere bağlanın. VM IP'lerinizi bulamıyorsanız Azure Cloud Shell'de bu Hızlı Başlangıcı izleyin.
ssh <username>@publicipaddress
Bağlantı başarılı olursa Linux terminalini temsil eden aşağıdaki çıkışı görmeniz gerekir:
[<username>@<VM1> ~]$
SSH oturumundan çıkmak için yazın exit
.
Yüksek kullanılabilirliği etkinleştirme
Önemli
Öğreticinin bu bölümünü tamamlamak için RHEL ve Yüksek Kullanılabilirlik Eklentisi aboneliğiniz olmalıdır. Önceki bölümde önerilen bir görüntü kullanıyorsanız başka bir abonelik kaydetmeniz gerekmez.
Her VM düğümüne bağlanın ve HA'yı etkinleştirmek için bu kılavuzu izleyin. Daha fazla bilgi için bkz . RHEL için yüksek kullanılabilirlik aboneliğini etkinleştirme.
İpucu
Aynı komutların makale boyunca her VM'de çalıştırılması gerektiğinden, vm'lerin her birine aynı anda bir SSH oturumu açarsanız daha kolay olur.
Birden çok sudo
komutu kopyalayıp yapıştırıyorsanız ve parola istenirse, ek komutlar çalışmaz. Her komutu ayrı ayrı çalıştırın.
Pacemaker güvenlik duvarı bağlantı noktalarını açmak için her VM'de aşağıdaki komutları çalıştırın:
sudo firewall-cmd --permanent --add-service=high-availability sudo firewall-cmd --reload
Aşağıdaki komutları kullanarak Pacemaker paketlerini tüm düğümlere güncelleştirin ve yükleyin:
Not
nmap , ağınızdaki kullanılabilir IP adreslerini bulmak için bu komut bloğunun bir parçası olarak yüklenir. nmap yüklemeniz gerekmez, ancak bu öğreticinin ilerleyen bölümlerinde yararlı olacaktır.
sudo yum update -y sudo yum install -y pacemaker pcs fence-agents-all resource-agents fence-agents-azure-arm nmap sudo reboot
Pacemaker paketlerini yüklerken oluşturulan varsayılan kullanıcının parolasını ayarlayın. Tüm düğümlerde aynı parolayı kullanın.
sudo passwd hacluster
Konaklar dosyasını açmak ve ana bilgisayar adı çözümlemesini ayarlamak için aşağıdaki komutu kullanın. Daha fazla bilgi için bkz . Konak dosyasını yapılandırma konusunda AG'yi yapılandırma.
sudo vi /etc/hosts
Vi düzenleyicisinde, metin eklemek için girin
i
ve boş bir satıra karşılık gelen VM'nin Özel IP'sini ekleyin. Ardından, VM adını IP'nin yanındaki bir alanın arkasına ekleyin. Her satırın ayrı bir girişi olmalıdır.<IP1> <VM1> <IP2> <VM2> <IP3> <VM3>
Önemli
Önceki örnekte Özel IP adresinizi kullanmanızı öneririz. Bu yapılandırmada Genel IP adresinin kullanılması kurulumun başarısız olmasına neden olur ve VM'nizin dış ağlara açık olmasını önermeyiz.
Vi düzenleyicisinden çıkmak için önce Esc tuşuna basın ve ardından dosyayı yazmak ve çıkmak için komutunu
:wq
girin.
Pacemaker kümesini oluşturma
Bu bölümde pcsd hizmetini etkinleştirip başlatıp kümeyi yapılandıracaksınız. Linux üzerinde SQL Server için küme kaynakları otomatik olarak oluşturulmaz. Pacemaker kaynaklarını el ile etkinleştirmeniz ve oluşturmanız gerekir. Daha fazla bilgi için RHEL için yük devretme kümesi örneğini yapılandırma makalesine bakın.
Pcsd hizmetini ve Pacemaker'ı etkinleştirme ve başlatma
Komutları tüm düğümlerde çalıştırın. Bu komutlar, düğümlerin her düğüm yeniden başlatıldıktan sonra kümeye yeniden katılmasını sağlar.
sudo systemctl enable pcsd sudo systemctl start pcsd sudo systemctl enable pacemaker
Tüm düğümlerden mevcut küme yapılandırmasını kaldırın. Şu komutu çalıştırın:
sudo pcs cluster destroy sudo systemctl enable pacemaker
Kümeyi ayarlamak için birincil düğümde aşağıdaki komutları çalıştırın.
- Küme düğümlerinin
pcs cluster auth
kimliğini doğrulamak için komutunu çalıştırırken parola girmeniz istenir. Daha önce oluşturulan hacluster kullanıcısının parolasını girin.
RHEL7
sudo pcs cluster auth <VM1> <VM2> <VM3> -u hacluster sudo pcs cluster setup --name az-hacluster <VM1> <VM2> <VM3> --token 30000 sudo pcs cluster start --all sudo pcs cluster enable --all
RHEL8
RHEL 8 için düğümlerin kimliğini ayrı olarak doğrulamanız gerekir. İstendiğinde hacluster kullanıcı adını ve parolasını el ile girin.
sudo pcs host auth <node1> <node2> <node3> sudo pcs cluster setup <clusterName> <node1> <node2> <node3> sudo pcs cluster start --all sudo pcs cluster enable --all
- Küme düğümlerinin
Tüm düğümlerin çevrimiçi olup olmadığını denetlemek için aşağıdaki komutu çalıştırın.
sudo pcs status
RHEL 7
Tüm düğümler çevrimiçiyse, aşağıdaki örneğe benzer bir çıkış görürsünüz:
Cluster name: az-hacluster WARNINGS: No stonith devices and stonith-enabled is not false Stack: corosync Current DC: <VM2> (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum Last updated: Fri Aug 23 18:27:57 2019 Last change: Fri Aug 23 18:27:56 2019 by hacluster via crmd on <VM2> 3 nodes configured 0 resources configured Online: [ <VM1> <VM2> <VM3> ] No resources Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled
RHEL 8
Cluster name: az-hacluster WARNINGS: No stonith devices and stonith-enabled is not false Cluster Summary: * Stack: corosync * Current DC: <VM2> (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum * Last updated: Fri Aug 23 18:27:57 2019 * Last change: Fri Aug 23 18:27:56 2019 by hacluster via crmd on <VM2> * 3 nodes configured * 0 resource instances configured Node List: * Online: [ <VM1> <VM2> <VM3> ] Full List of Resources: * No resources Daemon Status: * corosync: active/enabled * pacemaker: active/enabled * pcsd: active/enabled
Canlı kümedeki beklenen oyları 3 olarak ayarlayın. Bu komut yalnızca canlı kümeyi etkiler ve yapılandırma dosyalarını değiştirmez.
Tüm düğümlerde, aşağıdaki komutla beklenen oyları ayarlayın:
sudo pcs quorum expected-votes 3
Eskrim aracısını yapılandırma
Bir eskrim aracısını yapılandırmak için, bu öğreticide aşağıdaki yönergeler değiştirilir. Daha fazla bilgi için bkz . STONITH cihazı oluşturma.
Güncelleştirildiğinden emin olmak için Azure Çit Aracısının sürümünü denetleyin. Aşağıdaki komutu kullanın:
sudo yum info fence-agents-azure-arm
Aşağıdaki örneğe benzer bir çıkış görmeniz gerekir.
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
Installed Packages
Name : fence-agents-azure-arm
Arch : x86_64
Version : 4.2.1
Release : 11.el7_6.8
Size : 28 k
Repo : installed
From repo : rhel-ha-for-rhel-7-server-eus-rhui-rpms
Summary : Fence agent for Azure Resource Manager
URL : https://github.com/ClusterLabs/fence-agents
License : GPLv2+ and LGPLv2+
Description : The fence-agents-azure-arm package contains a fence agent for Azure instances.
Microsoft Entra Id'de yeni bir uygulama kaydetme
Microsoft Entra Id'ye (eski adıYla Azure Active Directory) yeni bir uygulama kaydetmek için şu adımları izleyin:
- Şuraya git: https://portal.azure.com .
- Microsoft Entra ID Özellikleri bölmesini açın ve yazın
Tenant ID
. - Uygulama kayıtları’nı seçin.
- Yeni kayıt öğesini seçin.
- gibi
<resourceGroupName>-app
bir Ad girin. Desteklenen hesap türleri için Yalnızca bu kuruluş dizinindeki hesaplar 'ı seçin (yalnızca Microsoft - Tek kiracı). - Yeniden Yönlendirme URI'si için Web'i seçin ve bir URL (örneğin,
http://localhost
) girin ve Ekle'yi seçin. Oturum açma URL'si herhangi bir geçerli URL olabilir. İşiniz bittiğinde Kaydet'i seçin. - Yeni Uygulama kaydınız için Sertifikalar ve gizli diziler'i ve ardından Yeni istemci gizli dizisi'ni seçin.
- Yeni anahtar (istemci gizli dizisi) için bir açıklama girin ve Ekle'yi seçin.
- Gizli dizinin değerini not edin. Hizmet sorumlusunun parolası olarak kullanılır.
- Genel bakış'ı seçin. Uygulama Kimliğini not edin. Hizmet sorumlusunun kullanıcı adı (aşağıdaki adımlarda oturum açma kimliği) olarak kullanılır.
Çit aracısı için özel rol oluşturma
Azure CLI kullanarak Azure özel rolü oluşturma öğreticisini izleyin.
JSON dosyanız aşağıdaki örneğe benzer görünmelidir:
- değerini, seçtiğiniz bir adla değiştirin
<username>
. Bu, bu rol tanımını oluştururken yinelenenleri önlemektir. - değerini Azure Abonelik Kimliğiniz ile değiştirin
<subscriptionId>
.
{
"Name": "Linux Fence Agent Role-<username>",
"Id": null,
"IsCustom": true,
"Description": "Allows to power-off and start virtual machines",
"Actions": [
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/powerOff/action",
"Microsoft.Compute/virtualMachines/start/action"
],
"NotActions": [
],
"AssignableScopes": [
"/subscriptions/<subscriptionId>"
]
}
Rolü eklemek için aşağıdaki komutu çalıştırın:
- değerini dosyanın adıyla değiştirin
<filename>
. - Komutu dosyanın kaydedildiği klasörden farklı bir yoldan yürütüyorsanız, komutuna dosyanın klasör yolunu ekleyin.
az role definition create --role-definition "<filename>.json"
Aşağıdaki çıkışı görmeniz gerekir:
{
"assignableScopes": [
"/subscriptions/<subscriptionId>"
],
"description": "Allows to power-off and start virtual machines",
"id": "/subscriptions/<subscriptionId>/providers/Microsoft.Authorization/roleDefinitions/<roleNameId>",
"name": "<roleNameId>",
"permissions": [
{
"actions": [
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/powerOff/action",
"Microsoft.Compute/virtualMachines/start/action"
],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleName": "Linux Fence Agent Role-<username>",
"roleType": "CustomRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
Özel rolü Hizmet Sorumlusuna atama
Son adımda oluşturulan özel rolü Linux Fence Agent Role-<username>
Hizmet Sorumlusu'na atayın. Artık Sahip rolünü kullanmayın.
- Şuraya gidin: https://portal.azure.com
- Tüm kaynaklar bölmesini açma
- İlk küme düğümünün sanal makinesini seçin
- Erişim denetimi (IAM) öğesini seçin
- Rol ataması ekle'yi seçin
- Rol listesinden rolü
Linux Fence Agent Role-<username>
seçin - Seç listesinde, daha önce oluşturduğunuz uygulamanın adını girin,
<resourceGroupName>-app
- Kaydet'i seçin.
- Tüm küme düğümleri için bu adımları yineleyin.
STONITH cihazlarını oluşturma
Düğüm 1'de aşağıdaki komutları çalıştırın:
- değerini
<ApplicationID>
uygulama kaydınızdaki kimlik değeriyle değiştirin. - değerini
<servicePrincipalPassword>
istemci gizli dizisinden gelen değerle değiştirin. - öğesini
<resourceGroupName>
, bu öğretici için kullanılan aboneliğinizdeki kaynak grubuyla değiştirin. - ve değerini
<tenantID>
<subscriptionId>
Azure Aboneliğinizden değiştirin.
sudo pcs property set stonith-timeout=900
sudo pcs stonith create rsc_st_azure fence_azure_arm login="<ApplicationID>" passwd="<servicePrincipalPassword>" resourceGroup="<resourceGroupName>" tenantId="<tenantID>" subscriptionId="<subscriptionId>" power_timeout=240 pcmk_reboot_timeout=900
HA hizmetine ()--add-service=high-availability
izin vermek için güvenlik duvarımıza zaten bir kural eklediğimizden, tüm düğümlerde şu güvenlik duvarı bağlantı noktalarını açmanız gerekmez: 2224, 3121, 21064, 5405. Ancak, HA ile ilgili herhangi bir bağlantı sorunu yaşıyorsanız, HA ile ilişkili bu bağlantı noktalarını açmak için aşağıdaki komutu kullanın.
İpucu
Zaman kazanmak için isteğe bağlı olarak bu öğreticideki tüm bağlantı noktalarını aynı anda ekleyebilirsiniz. Açılması gereken bağlantı noktaları, izleyen ilgili bölümlerinde açıklanmıştır. Tüm bağlantı noktalarını şimdi eklemek isterseniz ek bağlantı noktalarını ekleyin: 1433 ve 5022.
sudo firewall-cmd --zone=public --add-port=2224/tcp --add-port=3121/tcp --add-port=21064/tcp --add-port=5405/tcp --permanent
sudo firewall-cmd --reload
SQL Server ve mssql-tools'u yükleme
Not
SQL Server 2019 (15.x) ile VM'leri RHEL8-HA'da önceden yüklenmiş olarak oluşturduysanız, SQL Server ve mssql-tools'u yüklemek için aşağıdaki adımları atlayabilir ve tüm VM'lerde sa parolasını ayarladıktan sonra tüm VM'lerde komutunu sudo /opt/mssql/bin/mssql-conf set-sa-password
çalıştırarak Kullanılabilirlik Grubu Yapılandırma bölümünü başlatabilirsiniz.
VM'lere SQL Server ve mssql-tools yüklemek için aşağıdaki bölümü kullanın. RHEL 7'ye SQL Server 2017 (14.x) veya RHEL 8'de SQL Server 2019 (15.x) yüklemek için aşağıdaki örneklerden birini seçebilirsiniz. Bu eylemlerin her birini tüm düğümlerde gerçekleştirin. Daha fazla bilgi için bkz . Red Hat VM'sinde SQL Server yükleme.
VM'lere SQL Server yükleme
SQL Server'ı yüklemek için aşağıdaki komutlar kullanılır:
SQL Server 2017 ile RHEL 7
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo
sudo yum install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
sudo yum install mssql-server-ha
SQL Server 2019 ile RHEL 8
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo
sudo yum install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
sudo yum install mssql-server-ha
Uzak bağlantılar için güvenlik duvarı bağlantı noktası 1433'i açın
Uzaktan bağlanmak için VM'de 1433 numaralı bağlantı noktasını açmanız gerekir. Her vm'nin güvenlik duvarında 1433 numaralı bağlantı noktasını açmak için aşağıdaki komutları kullanın:
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload
SQL Server komut satırı araçlarını yükleme
SQL Server komut satırı araçlarını yüklemek için aşağıdaki komutlar kullanılır. Daha fazla bilgi için bkz . SQL Server komut satırı araçlarını yükleme.
RHEL 7
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
sudo yum install -y mssql-tools unixODBC-devel
RHEL 8
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo
sudo yum install -y mssql-tools unixODBC-devel
Not
Kolaylık sağlamak için PATH ortam değişkeninize /opt/mssql-tools/bin/ ekleyin. Bu, tam yolu belirtmeden araçları çalıştırmanızı sağlar. Hem oturum açma oturumları hem de etkileşimli/oturum açma dışı oturumlar için PATH'i değiştirmek için aşağıdaki komutları çalıştırın:echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
SQL Server'ın durumunu denetleme
Yapılandırmayı tamamladıktan sonra SQL Server'ın durumunu denetleyebilirsiniz ve çalıştığını doğrulayabilirsiniz:
systemctl status mssql-server --no-pager
Aşağıdaki çıkışı görmeniz gerekir:
● mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2019-12-05 17:30:55 UTC; 20min ago
Docs: https://learn.microsoft.com/sql/linux
Main PID: 11612 (sqlservr)
CGroup: /system.slice/mssql-server.service
├─11612 /opt/mssql/bin/sqlservr
└─11640 /opt/mssql/bin/sqlservr
Kullanılabilirlik grubunu yapılandırma
VM'leriniz için bir SQL Server Always On kullanılabilirlik grubu yapılandırmak için aşağıdaki adımları kullanın. Daha fazla bilgi için bkz . Linux'ta yüksek kullanılabilirlik için SQL Server Always On kullanılabilirlik gruplarını yapılandırma.
Always On kullanılabilirlik gruplarını etkinleştirme ve mssql-server'ı yeniden başlatma
Sql Server örneğini barındıran her düğümde Always On kullanılabilirlik gruplarını etkinleştirin. Ardından mssql-server'ı yeniden başlatın. Şu betiği çalıştırın:
sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
sudo systemctl restart mssql-server
Sertifika oluşturma
Şu anda AG uç noktasında AD kimlik doğrulamasını desteklemiyoruz. Bu nedenle AG uç nokta şifrelemesi için bir sertifika kullanmalıyız.
SQL Server Management Studio (SSMS) veya sqlcmd kullanarak tüm düğümlere bağlanın. AlwaysOn_health oturumunu etkinleştirmek ve bir ana anahtar oluşturmak için aşağıdaki komutları çalıştırın:
Önemli
SQL Server örneğine uzaktan bağlanıyorsanız güvenlik duvarınızda 1433 numaralı bağlantı noktasının açık olması gerekir. Ayrıca her VM için NSG'nizdeki 1433 numaralı bağlantı noktasına gelen bağlantılara izin vermeniz gerekir. Daha fazla bilgi için bkz . Gelen güvenlik kuralı oluşturmak için güvenlik kuralı oluşturma.
- öğesini
<Master_Key_Password>
kendi parolanızla değiştirin.
ALTER EVENT SESSION AlwaysOn_health ON SERVER WITH (STARTUP_STATE=ON); GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Master_Key_Password>';
- öğesini
SSMS veya sqlcmd kullanarak birincil çoğaltmaya bağlanın. Aşağıdaki komutlar birincil SQL Server çoğaltmanızda bir sertifika
/var/opt/mssql/data/dbm_certificate.cer
ve konumundavar/opt/mssql/data/dbm_certificate.pvk
özel anahtar oluşturur:- öğesini
<Private_Key_Password>
kendi parolanızla değiştirin.
CREATE CERTIFICATE dbm_certificate WITH SUBJECT = 'dbm'; GO BACKUP CERTIFICATE dbm_certificate TO FILE = '/var/opt/mssql/data/dbm_certificate.cer' WITH PRIVATE KEY ( FILE = '/var/opt/mssql/data/dbm_certificate.pvk', ENCRYPTION BY PASSWORD = '<Private_Key_Password>' ); GO
- öğesini
komutunu çalıştırarak sqlcmd oturumundan exit
çıkın ve SSH oturumunuza geri dönün.
Sertifikayı ikincil çoğaltmalara kopyalayın ve sunucuda sertifikalar oluşturun
Oluşturulan iki dosyayı kullanılabilirlik çoğaltmalarını barındıracak tüm sunucularda aynı konuma kopyalayın.
Birincil sunucuda aşağıdaki
scp
komutu çalıştırarak sertifikayı hedef sunuculara kopyalayın:- ve
<VM2>
değerini kullandığınız kullanıcı adı ve hedef VM adıyla değiştirin<username>
. - Tüm ikincil çoğaltmalar için bu komutu çalıştırın.
Not
komutunu çalıştırmanız
sudo -i
gerekmez ve bu da size kök ortamı sağlar. Bu öğreticidesudo
daha önce yaptığımız gibi komutu her komutun önünde çalıştırabilirsiniz.# The below command allows you to run commands in the root environment sudo -i
scp /var/opt/mssql/data/dbm_certificate.* <username>@<VM2>:/home/<username>
- ve
Hedef sunucuda aşağıdaki komutu çalıştırın:
- değerini kullanıcı adınız ile değiştirin
<username>
. - Komut,
mv
dosyaları veya dizini bir yerden diğerine taşır. - Komutu
chown
dosya, dizin veya bağlantı sahibini ve grubunu değiştirmek için kullanılır. - Tüm ikincil çoğaltmalar için bu komutları çalıştırın.
sudo -i mv /home/<username>/dbm_certificate.* /var/opt/mssql/data/ cd /var/opt/mssql/data chown mssql:mssql dbm_certificate.*
- değerini kullanıcı adınız ile değiştirin
Aşağıdaki Transact-SQL betiği, birincil SQL Server çoğaltması üzerinde oluşturduğunuz yedeklemeden bir sertifika oluşturur. Betiği güçlü parolalarla güncelleştirin. Şifre çözme parolası, önceki adımda .pvk dosyasını oluşturmak için kullandığınız parolayla aynıdır. Sertifikayı oluşturmak için tüm ikincil sunucularda sqlcmd veya SSMS kullanarak aşağıdaki betiği çalıştırın:
CREATE CERTIFICATE dbm_certificate FROM FILE = '/var/opt/mssql/data/dbm_certificate.cer' WITH PRIVATE KEY ( FILE = '/var/opt/mssql/data/dbm_certificate.pvk', DECRYPTION BY PASSWORD = '<Private_Key_Password>' ); GO
Tüm çoğaltmalarda veritabanı yansıtma uç noktalarını oluşturma
sqlcmd veya SSMS kullanarak tüm SQL Server örneklerinde aşağıdaki betiği çalıştırın:
CREATE ENDPOINT [Hadr_endpoint]
AS TCP (LISTENER_PORT = 5022)
FOR DATABASE_MIRRORING (
ROLE = ALL,
AUTHENTICATION = CERTIFICATE dbm_certificate,
ENCRYPTION = REQUIRED ALGORITHM AES
);
GO
ALTER ENDPOINT [Hadr_endpoint] STATE = STARTED;
GO
Kullanılabilirlik grubunu oluşturma
sqlcmd veya SSMS kullanarak birincil çoğaltmayı barındıran SQL Server örneğine bağlanın. Kullanılabilirlik grubunu oluşturmak için aşağıdaki komutu çalıştırın:
- değerini istediğiniz Kullanılabilirlik Grubu adıyla değiştirin
ag1
. <VM1>
,<VM2>
ve<VM3>
değerlerini çoğaltmaları barındıran SQL Server örneklerinin adlarıyla değiştirin.
CREATE AVAILABILITY GROUP [ag1]
WITH (DB_FAILOVER = ON, CLUSTER_TYPE = EXTERNAL)
FOR REPLICA ON
N'<VM1>'
WITH (
ENDPOINT_URL = N'tcp://<VM1>:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'<VM2>'
WITH (
ENDPOINT_URL = N'tcp://<VM2>:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'<VM3>'
WITH(
ENDPOINT_URL = N'tcp://<VM3>:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
);
GO
ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;
GO
Pacemaker için SQL Server oturumu oluşturma
Tüm SQL Server örneklerinde Pacemaker için bir SQL Server oturumu oluşturun. Aşağıdaki Transact-SQL bir oturum açma bilgisi oluşturur.
- değerini kendi karmaşık parolanızla değiştirin
<password>
.
USE [master]
GO
CREATE LOGIN [pacemakerLogin] with PASSWORD= N'<password>';
GO
ALTER SERVER ROLE [sysadmin] ADD MEMBER [pacemakerLogin];
GO
Tüm SQL Server örneklerinde, SQL Server oturum açma bilgileri için kullanılan kimlik bilgilerini kaydedin.
Dosyayı oluşturun:
sudo vi /var/opt/mssql/secrets/passwd
Dosyaya aşağıdaki satırları ekleyin:
pacemakerLogin <password>
Vi düzenleyicisinden çıkmak için önce Esc tuşuna basın ve ardından dosyayı yazmak ve çıkmak için komutunu
:wq
girin.Dosyayı yalnızca kök tarafından okunabilir hale getirin:
sudo chown root:root /var/opt/mssql/secrets/passwd sudo chmod 400 /var/opt/mssql/secrets/passwd
İkincil çoğaltmaları kullanılabilirlik grubuna ekleme
İkincil çoğaltmaları AG'ye eklemek için tüm sunucular için güvenlik duvarında 5022 numaralı bağlantı noktasını açmanız gerekir. SSH oturumunuzda aşağıdaki komutu çalıştırın:
sudo firewall-cmd --zone=public --add-port=5022/tcp --permanent sudo firewall-cmd --reload
İkincil çoğaltmalarınızda aşağıdaki komutları çalıştırarak bunları AG'ye ekleyin:
ALTER AVAILABILITY GROUP [ag1] JOIN WITH (CLUSTER_TYPE = EXTERNAL); GO ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE; GO
Birincil çoğaltmada ve her ikincil çoğaltmada aşağıdaki Transact-SQL betiğini çalıştırın:
GRANT ALTER, CONTROL, VIEW DEFINITION ON AVAILABILITY GROUP::ag1 TO pacemakerLogin; GO GRANT VIEW SERVER STATE TO pacemakerLogin; GO
İkincil çoğaltmalar birleştirildikten sonra, Always On Yüksek Kullanılabilirlik düğümünü genişleterek bunları SSMS Nesne Gezgini görebilirsiniz:
Kullanılabilirlik grubuna veritabanı ekleme
Veritabanı eklemeyle ilgili kullanılabilirlik grubunu yapılandırma makalesini takip ediyoruz.
Bu adımda aşağıdaki Transact-SQL komutları kullanılır. Birincil çoğaltmada şu komutları çalıştırın:
CREATE DATABASE [db1]; -- creates a database named db1
GO
ALTER DATABASE [db1] SET RECOVERY FULL; -- set the database in full recovery model
GO
BACKUP DATABASE [db1] -- backs up the database to disk
TO DISK = N'/var/opt/mssql/data/db1.bak';
GO
ALTER AVAILABILITY GROUP [ag1] ADD DATABASE [db1]; -- adds the database db1 to the AG
GO
Veritabanının ikincil sunucularda oluşturulduğunu doğrulayın
Her ikincil SQL Server çoğaltmasında aşağıdaki sorguyu çalıştırarak db1 veritabanının oluşturulup oluşturulmadığını ve EŞITLENDİ durumda olup olmadığını denetleyin:
SELECT * FROM sys.databases WHERE name = 'db1';
GO
SELECT DB_NAME(database_id) AS 'database', synchronization_state_desc FROM sys.dm_hadr_database_replica_states;
synchronization_state_desc
listeleri için db1
EŞITLENDİyse, bu çoğaltmaların eşitlenmiş olduğu anlamına gelir. İkinciller birincil çoğaltmada gösteriliyor db1
.
Pacemaker kümesinde kullanılabilirlik grubu kaynakları oluşturma
Pacemaker kümesinde kullanılabilirlik grubu kaynaklarını oluşturmak için kılavuzu takip ediyoruz.
Not
Tarafsız iletişim
Bu makalede, Microsoft'un bu bağlamda kullanıldığında rahatsız edici olarak değerlendiren bağımlı terimine yönelik başvurular yer alır. Terim şu anda yazılımda göründüğünden bu makalede görünür. Terim yazılımdan kaldırıldığında, bunu makaleden kaldıracağız.
AG küme kaynağını oluşturma
Kullanılabilirlik grubunda
ag1
kaynağıag_cluster
oluşturmak için daha önce seçilen ortama göre aşağıdaki komutlardan birini kullanın.RHEL 7
sudo pcs resource create ag_cluster ocf:mssql:ag ag_name=ag1 meta failure-timeout=30s master notify=true
RHEL 8
sudo pcs resource create ag_cluster ocf:mssql:ag ag_name=ag1 meta failure-timeout=30s promotable notify=true
Devam etmeden önce aşağıdaki komutu kullanarak kaynaklarınızın çevrimiçi olduğundan emin olun:
sudo pcs resource
Aşağıdaki çıkışı görmeniz gerekir:
RHEL 7
[<username>@VM1 ~]$ sudo pcs resource Master/Slave Set: ag_cluster-master [ag_cluster] Masters: [ <VM1> ] Slaves: [ <VM2> <VM3> ]
RHEL 8
[<username>@VM1 ~]$ sudo pcs resource * Clone Set: ag_cluster-clone [ag_cluster] (promotable): * ag_cluster (ocf::mssql:ag) : Slave VMrhel3 (Monitoring) * ag_cluster (ocf::mssql:ag) : Master VMrhel1 (Monitoring) * ag_cluster (ocf::mssql:ag) : Slave VMrhel2 (Monitoring)
Sanal IP kaynağı oluşturma
Sanal IP kaynağı oluşturmak için ağınızdan kullanılabilir bir statik IP adresi kullanın. Komut aracını
nmap
kullanarak bir tane bulabilirsiniz.nmap -sP <IPRange> # For example: nmap -sP 10.0.0.* # The above will scan for all IP addresses that are already occupied in the 10.0.0.x space.
Stonith özellikli özelliği false olarak ayarlayın:
sudo pcs property set stonith-enabled=false
Aşağıdaki komutu kullanarak sanal IP kaynağını oluşturun. yerine kullanılmayan bir IP adresi yazın
<availableIP>
.sudo pcs resource create virtualip ocf:heartbeat:IPaddr2 ip=<availableIP>
Kısıtlama ekleme
IP adresinin ve AG kaynağının aynı düğümde çalıştığından emin olmak için birlikte bulundurma kısıtlamasının yapılandırılması gerekir. Şu komutu çalıştırın:
RHEL 7
sudo pcs constraint colocation add virtualip ag_cluster-master INFINITY with-rsc-role=Master
RHEL 8
sudo pcs constraint colocation add virtualip with master ag_cluster-clone INFINITY with-rsc-role=Master
AG kaynağının IP adresinden önce çalışır durumda olduğundan emin olmak için bir sıralama kısıtlaması oluşturun. Birlikte bulundurma kısıtlaması bir sıralama kısıtlaması anlamına gelir, ancak bu bunu zorlar.
RHEL 7
sudo pcs constraint order promote ag_cluster-master then start virtualip
RHEL 8
sudo pcs constraint order promote ag_cluster-clone then start virtualip
Kısıtlamaları doğrulamak için aşağıdaki komutu çalıştırın:
sudo pcs constraint list --full
Aşağıdaki çıkışı görmeniz gerekir:
RHEL 7
Location Constraints: Ordering Constraints: promote ag_cluster-master then start virtualip (kind:Mandatory) (id:order-ag_cluster-master-virtualip-mandatory) Colocation Constraints: virtualip with ag_cluster-master (score:INFINITY) (with-rsc-role:Master) (id:colocation-virtualip-ag_cluster-master-INFINITY) Ticket Constraints:
RHEL 8
Location Constraints: Ordering Constraints: promote ag_cluster-clone then start virtualip (kind:Mandatory) (id:order-ag_cluster-clone-virtualip-mandatory) Colocation Constraints: virtualip with ag_cluster-clone (score:INFINITY) (with-rsc-role:Master) (id:colocation-virtualip-ag_cluster-clone-INFINITY) Ticket Constraints:
Stonith'i yeniden etkinleştirme
Test için hazırız. Düğüm 1'de aşağıdaki komutu çalıştırarak kümede stonith'i yeniden etkinleştirin:
sudo pcs property set stonith-enabled=true
Küme durumunu denetleme
Küme kaynaklarınızın durumunu denetlemek için aşağıdaki komutu kullanabilirsiniz:
[<username>@VM1 ~]$ sudo pcs status
Cluster name: az-hacluster
Stack: corosync
Current DC: <VM3> (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum
Last updated: Sat Dec 7 00:18:38 2019
Last change: Sat Dec 7 00:18:02 2019 by root via cibadmin on VM1
3 nodes configured
5 resources configured
Online: [ <VM1> <VM2> <VM3> ]
Full list of resources:
Master/Slave Set: ag_cluster-master [ag_cluster]
Masters: [ <VM2> ]
Slaves: [ <VM1> <VM3> ]
virtualip (ocf::heartbeat:IPaddr2): Started <VM2>
rsc_st_azure (stonith:fence_azure_arm): Started <VM1>
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
Yük devretme testi
Yapılandırmanın şu ana kadar başarılı olduğundan emin olmak için yük devretme testi yapıyoruz. Daha fazla bilgi için bkz . Linux'ta Always On kullanılabilirlik grubu yük devretmesi.
Birincil çoğaltmaya el ile yük devretmek için
<VM2>
aşağıdaki komutu çalıştırın. değerini sunucu adınızın değeriyle değiştirin<VM2>
.RHEL 7
sudo pcs resource move ag_cluster-master <VM2> --master
RHEL 8
sudo pcs resource move ag_cluster-clone <VM2> --master
Ayrıca, kaynağı istenen düğüme taşımak için oluşturulan geçici kısıtlamanın otomatik olarak devre dışı bırakılması ve aşağıdaki yönergelerde 2. ve 3. adımları gerçekleştirmeniz gerekmesi için ek bir seçenek belirtebilirsiniz.
RHEL 7
sudo pcs resource move ag_cluster-master <VM2> --master lifetime=30S
RHEL 8
sudo pcs resource move ag_cluster-clone <VM2> --master lifetime=30S
Kaynak taşıma komutundaki geçici kısıtlamayı temizleyen 2. ve 3. adımları otomatikleştirmenin bir diğer alternatifi de birden çok komutu tek bir satırda birleştirmektir.
RHEL 7
sudo pcs resource move ag_cluster-master <VM2> --master && sleep 30 && pcs resource clear ag_cluster-master
RHEL 8
sudo pcs resource move ag_cluster-clone <VM2> --master && sleep 30 && pcs resource clear ag_cluster-clone
Kısıtlamalarınızı yeniden denetlerseniz, el ile yük devretme nedeniyle başka bir kısıtlama eklendiğini görürsünüz:
RHEL 7
[<username>@VM1 ~]$ sudo pcs constraint list --full Location Constraints: Resource: ag_cluster-master Enabled on: VM2 (score:INFINITY) (role: Master) (id:cli-prefer-ag_cluster-master) Ordering Constraints: promote ag_cluster-master then start virtualip (kind:Mandatory) (id:order-ag_cluster-master-virtualip-mandatory) Colocation Constraints: virtualip with ag_cluster-master (score:INFINITY) (with-rsc-role:Master) (id:colocation-virtualip-ag_cluster-master-INFINITY) Ticket Constraints:
RHEL 8
[<username>@VM1 ~]$ sudo pcs constraint list --full Location Constraints: Resource: ag_cluster-master Enabled on: VM2 (score:INFINITY) (role: Master) (id:cli-prefer-ag_cluster-clone) Ordering Constraints: promote ag_cluster-clone then start virtualip (kind:Mandatory) (id:order-ag_cluster-clone-virtualip-mandatory) Colocation Constraints: virtualip with ag_cluster-clone (score:INFINITY) (with-rsc-role:Master) (id:colocation-virtualip-ag_cluster-clone-INFINITY) Ticket Constraints:
Aşağıdaki komutu kullanarak id
cli-prefer-ag_cluster-master
ile kısıtlamayı kaldırın:RHEL 7
sudo pcs constraint remove cli-prefer-ag_cluster-master
RHEL 8
sudo pcs constraint remove cli-prefer-ag_cluster-clone
komutunu
sudo pcs resource
kullanarak küme kaynaklarınızı denetleyin ve birincil örneğin artık<VM2>
olduğunu görmeniz gerekir.[<username>@<VM1> ~]$ sudo pcs resource Master/Slave Set: ag_cluster-master [ag_cluster] ag_cluster (ocf::mssql:ag): FAILED <VM1> (Monitoring) Masters: [ <VM2> ] Slaves: [ <VM3> ] virtualip (ocf::heartbeat:IPaddr2): Started <VM2> [<username>@<VM1> ~]$ sudo pcs resource Master/Slave Set: ag_cluster-master [ag_cluster] Masters: [ <VM2> ] Slaves: [ <VM1> <VM3> ] virtualip (ocf::heartbeat:IPaddr2): Started <VM2>
Test eskrim
Aşağıdaki komutu çalıştırarak eskrim test edebilirsiniz. için <VM3>
aşağıdaki komutu çalıştırmayı <VM1>
deneyin.
sudo pcs stonith fence <VM3> --debug
Not
Varsayılan olarak, çit eylemi düğümü kapatıp açar. Düğümü yalnızca çevrimdışına almak istiyorsanız komuttaki seçeneğini --off
kullanın.
Aşağıdaki çıkışı almalısınız:
[<username>@<VM1> ~]$ sudo pcs stonith fence <VM3> --debug
Running: stonith_admin -B <VM3>
Return Value: 0
--Debug Output Start--
--Debug Output End--
Node: <VM3> fenced
Çit cihazını test etme hakkında daha fazla bilgi için aşağıdaki Red Hat makalesine bakın.