Öğretici: Azure'da SLES 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 SUSE Linux Enterprise Server (SLES) v15 ile SQL Server 2022 (16.x) kullanıyoruz, ancak yüksek kullanılabilirliği yapılandırmak için SLES v12 veya SLES v15 ile SQL Server 2019 (15.x) kullanmak mümkündür.
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
- SLES'e 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 öğreticide East US 2
kullanılır. 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": []
}
Sanal ağ ve alt ağ oluşturma
Önceden atanmış ip adresi aralığına sahip adlandırılmış bir alt ağ oluşturun. Aşağıdaki komutta bu değerleri değiştirin:
<resourceGroupName>
<vNetName>
<subnetName>
az network vnet create \ --resource-group <resourceGroupName> \ --name <vNetName> \ --address-prefix 10.1.0.0/16 \ --subnet-name <subnetName> \ --subnet-prefix 10.1.1.0/24
Önceki komut bir sanal ağ ve özel IP aralığı içeren bir alt ağ oluşturur.
Kullanılabilirlik kümesi içinde SLES VM'leri oluşturma
BYOS ile SLES v15 SP4 sunan sanal makine görüntülerinin listesini alın (kendi aboneliğinizi getirin). SUSE Enterprise Linux 15 SP4 + Düzeltme Eki Uygulama VM'sini (
sles-15-sp4-basic
) de kullanabilirsiniz.az vm image list --all --offer "sles-15-sp3-byos" # if you want to search the basic offers you could search using the command below az vm image list --all --offer "sles-15-sp3-basic"
BYOS görüntülerini ararken aşağıdaki sonuçları görmeniz gerekir:
[ { "offer": "sles-15-sp3-byos", "publisher": "SUSE", "sku": "gen1", "urn": "SUSE:sles-15-sp3-byos:gen1:2022.05.05", "version": "2022.05.05" }, { "offer": "sles-15-sp3-byos", "publisher": "SUSE", "sku": "gen1", "urn": "SUSE:sles-15-sp3-byos:gen1:2022.07.19", "version": "2022.07.19" }, { "offer": "sles-15-sp3-byos", "publisher": "SUSE", "sku": "gen1", "urn": "SUSE:sles-15-sp3-byos:gen1:2022.11.10", "version": "2022.11.10" }, { "offer": "sles-15-sp3-byos", "publisher": "SUSE", "sku": "gen2", "urn": "SUSE:sles-15-sp3-byos:gen2:2022.05.05", "version": "2022.05.05" }, { "offer": "sles-15-sp3-byos", "publisher": "SUSE", "sku": "gen2", "urn": "SUSE:sles-15-sp3-byos:gen2:2022.07.19", "version": "2022.07.19" }, { "offer": "sles-15-sp3-byos", "publisher": "SUSE", "sku": "gen2", "urn": "SUSE:sles-15-sp3-byos:gen2:2022.11.10", "version": "2022.11.10" } ]
Bu öğreticide
SUSE:sles-15-sp3-byos:gen1:2022.11.10
kullanılır.Önemli
Kullanılabilirlik grubu ayarlamak için makine adlarının uzunluğu 15 karakterden kısa olmalıdır. Kullanıcı adları büyük harf karakter içeremez ve parolalar 12 ile 72 karakter arasında olmalıdır.
Kullanılabilirlik kümesinde üç VM oluşturun. Aşağıdaki komutta bu değerleri değiştirin:
<resourceGroupName>
<VM-basename>
<availabilitySetName>
<VM-Size>
- Örnek olarak "Standard_D16s_v3" olabilir<username>
<adminPassword>
<vNetName>
<subnetName>
for i in `seq 1 3`; do az vm create \ --resource-group <resourceGroupName> \ --name <VM-basename>$i \ --availability-set <availabilitySetName> \ --size "<VM-Size>" \ --os-disk-size-gb 128 \ --image "SUSE:sles-15-sp3-byos:gen1:2022.11.10" \ --admin-username "<username>" \ --admin-password "<adminPassword>" \ --authentication-type all \ --generate-ssh-keys \ --vnet-name "<vNetName>" \ --subnet "<subnetName>" \ --public-ip-sku Standard \ --public-ip-address "" done
Önceki komut, önceden tanımlanmış sanal ağı kullanarak VM'leri oluşturur. Farklı yapılandırmalar hakkında daha fazla bilgi için az vm create makalesine bakın.
Komut ayrıca 128 GB'lık özel bir işletim sistemi sürücüsü boyutu oluşturmak için parametresini de içerir --os-disk-size-gb
. Bu boyutu daha sonra büyütürseniz, yüklemenize uyum sağlamak için uygun klasör birimlerini genişletin, Mantıksal Birim Yöneticisi'ni (LVM) yapılandırı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/sles1",
"location": "westus",
"macAddress": "<Some MAC address>",
"powerState": "VM running",
"privateIpAddress": "<IP1>",
"resourceGroup": "<resourceGroupName>",
"zones": ""
}
Oluşturulan VM'lere bağlantıyı test etme
Azure Cloud Shell'de aşağıdaki komutu kullanarak sanal makinelerin her birine 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>@sles1 ~]$
SSH oturumundan çıkmak için yazın exit
.
SUSEConnect'e kaydolma ve yüksek kullanılabilirlik paketleri yükleme
Bu öğreticiyi tamamlamak için vm'lerinizin güncelleştirmeleri ve desteği almak için SUSEConnect'e kayıtlı olması gerekir. Daha sonra Yüksek Kullanılabilirlik Uzantısı modülünü veya HA'yı etkinleştiren bir paket kümesi olan deseni yükleyebilirsiniz.
Aynı komutların makale boyunca her vm üzerinde çalıştırılması gerektiğinden, vm'lerin (düğümlerin) her birinde aynı anda bir SSH oturumu açmak daha kolaydır.
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.
Aşağıdaki adımları çalıştırmak için her vm düğümüne bağlanın.
VM'yi SUSEConnect ile kaydetme
VM düğümünüzü SUSEConnect'e kaydetmek için aşağıdaki komuttaki bu değerleri tüm düğümlerde değiştirin:
<subscriptionEmailAddress>
<registrationCode>
sudo SUSEConnect
--url=https://scc.suse.com
-e <subscriptionEmailAddress> \
-r <registrationCode>
Yüksek Kullanılabilirlik Uzantısını Yükleme
Yüksek Kullanılabilirlik Uzantısı'nı yüklemek için tüm düğümlerde aşağıdaki komutu çalıştırın:
sudo SUSEConnect -p sle-ha/15.3/x86_64 -r <registration code for Partner Subscription for High Availability Extension>
Düğümler arasında parolasız SSH erişimini yapılandırma
Parolasız SSH erişimi, VM'lerinizin SSH ortak anahtarlarını kullanarak birbirleriyle iletişim kurmasını sağlar. Her düğümde SSH anahtarları yapılandırmanız ve bu anahtarları her düğüme kopyalamanız gerekir.
Yeni SSH anahtarları oluşturma
Gerekli SSH anahtarı boyutu 4.096 bittir. Her VM'de klasörüne /root/.ssh
geçin ve aşağıdaki komutu çalıştırın:
ssh-keygen -t rsa -b 4096
Bu adım sırasında, mevcut bir SSH dosyasının üzerine yazmanız istenebilir. Bu istemi kabul etmeniz gerekir. Parola girmeniz gerekmez.
Genel SSH anahtarlarını kopyalama
Her VM'de, komutunu kullanarak ssh-copy-id
yeni oluşturduğunuz düğümden ortak anahtarı kopyalamanız gerekir. Hedef VM'de hedef dizini belirtmek istiyorsanız parametresini -i
kullanabilirsiniz.
Aşağıdaki komutta <username>
hesap, VM'yi oluştururken her düğüm için yapılandırdığınız hesapla aynı olabilir. Hesabı da kullanabilirsiniz root
, ancak bu bir üretim ortamında önerilmez.
sudo ssh-copy-id <username>@sles1
sudo ssh-copy-id <username>@sles2
sudo ssh-copy-id <username>@sles3
Her düğümden parolasız erişimi doğrulama
SSH ortak anahtarının her düğüme kopyalandığını onaylamak için her düğümden komutunu kullanın ssh
. Anahtarları doğru kopyaladıysanız, parola girmeniz istenmez ve bağlantı başarılı olur.
Bu örnekte, ilk VM'den (sles1
) ikinci ve üçüncü düğümlere bağlanıyoruz. Bir kez daha hesap, <username>
VM'yi oluştururken her düğüm için yapılandırdığınız hesapla aynı olabilir
ssh <username>@sles2
ssh <username>@sles3
Her düğümün parola gerektirmeden diğerleriyle iletişim kurabilmesi için bu işlemi üç düğümden de yineleyin.
Ad çözümlemeyi yapılandırma
Ad çözümlemesini DNS kullanarak veya dosyayı her düğümde etc/hosts
el ile düzenleyerek yapılandırabilirsiniz.
DNS ve Active Directory hakkında daha fazla bilgi için bkz . Linux konağındaki SQL Server'ı Active Directory etki alanına ekleme.
Ö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'nizi dış ağlarda kullanıma sunar.
Bu örnekte kullanılan VM'ler ve IP adresleri aşağıdaki gibi listelenir:
sles1
: 10.0.0.85sles2
: 10.0.0.86sles3
: 10.0.0.87
Kümeyi yapılandırma
Bu öğreticide ilk VM'niz (sles1
) düğüm 1, ikinci VM'niz (sles2
) düğüm 2 ve üçüncü VM'niz (sles3
) düğüm 3'tür. Küme yükleme hakkında daha fazla bilgi için bkz . Azure'da SUSE Linux Enterprise Server'da Pacemaker'ı ayarlama.
Küme yüklemesi
Aşağıdaki komutu çalıştırarak
ha-cluster-bootstrap
paketi düğüm 1'e yükleyin ve ardından düğümü yeniden başlatın. Bu örnekte vm'dirsles1
.sudo zypper install ha-cluster-bootstrap
Düğüm yeniden başlatıldıktan sonra aşağıdaki komutu çalıştırarak kümeyi dağıtın:
sudo crm cluster init --name sqlcluster
Aşağıdaki örneğe benzer bir çıkış görürsünüz:
Do you want to continue anyway (y/n)? y Generating SSH key for root The user 'hacluster' will have the login shell configuration changed to /bin/bash Continue (y/n)? y Generating SSH key for hacluster Configuring csync2 Generating csync2 shared key (this may take a while)...done csync2 checking files...done Detected cloud platform: microsoft-azure Configure Corosync (unicast): This will configure the cluster messaging layer. You will need to specify a network address over which to communicate (default is eth0's network, but you can use the network address of any active interface). Address for ring0 [10.0.0.85] Port for ring0 [5405] Configure SBD: If you have shared storage, for example a SAN or iSCSI target, you can use it avoid split-brain scenarios by configuring SBD. This requires a 1 MB partition, accessible to all nodes in the cluster. The device path must be persistent and consistent across all nodes in the cluster, so /dev/disk/by-id/* devices are a good choice. Note that all data on the partition you specify here will be destroyed. Do you wish to use SBD (y/n)? n WARNING: Not configuring SBD - STONITH will be disabled. Hawk cluster interface is now running. To see cluster status, open: https://10.0.0.85:7630/ Log in with username 'hacluster', password 'linux' WARNING: You should change the hacluster password to something more secure! Waiting for cluster..............done Loading initial cluster configuration Configure Administration IP Address: Optionally configure an administration virtual IP address. The purpose of this IP address is to provide a single IP that can be used to interact with the cluster, rather than using the IP address of any specific cluster node. Do you wish to configure a virtual IP address (y/n)? y Virtual IP []10.0.0.89 Configuring virtual IP (10.0.0.89)....done Configure Qdevice/Qnetd: QDevice participates in quorum decisions. With the assistance of a third-party arbitrator Qnetd, it provides votes so that a cluster is able to sustain more node failures than standard quorum rules allow. It is recommended for clusters with an even number of nodes and highly recommended for 2 node clusters. Do you want to configure QDevice (y/n)? n Done (log saved to /var/log/crmsh/ha-cluster-bootstrap.log)
Aşağıdaki komutu kullanarak düğüm 1'de kümenin durumunu denetleyin:
sudo crm status
Başarılı olursa çıkışınız aşağıdaki metni içermelidir:
1 node configured 1 resource instance configured
Tüm düğümlerde, aşağıdaki komutu kullanarak parolasını
hacluster
daha güvenli bir şeyle değiştirin. Kullanıcı parolanızıroot
da değiştirmeniz gerekir:sudo passwd hacluster
sudo passwd root
İlk olarak paketi yüklemek
crmsh
için düğüm 2 ve düğüm 3'te aşağıdaki komutu çalıştırın:sudo zypper install crmsh
Şimdi komutunu çalıştırarak kümeye katılın:
sudo crm cluster join
Beklemesi gereken etkileşimlerden bazıları şunlardır:
Join This Node to Cluster: You will be asked for the IP address of an existing node, from which configuration will be copied. If you have not already configured passwordless ssh between nodes, you will be prompted for the root password of the existing node. IP address or hostname of existing node (e.g.: 192.168.1.1) []10.0.0.85 Configuring SSH passwordless with root@10.0.0.85 root@10.0.0.85's password: Configuring SSH passwordless with hacluster@10.0.0.85 Configuring csync2...done Merging known_hosts WARNING: scp to sles2 failed (Exited with error code 1, Error output: The authenticity of host 'sles2 (10.1.1.5)' can't be established. ECDSA key fingerprint is SHA256:UI0iyfL5N6X1ZahxntrScxyiamtzsDZ9Ftmeg8rSBFI. Are you sure you want to continue connecting (yes/no/[fingerprint])? lost connection ), known_hosts update may be incomplete Probing for new partitions...done Address for ring0 [10.0.0.86] Hawk cluster interface is now running. To see cluster status, open: https://10.0.0.86:7630/ Log in with username 'hacluster', password 'linux' WARNING: You should change the hacluster password to something more secure! Waiting for cluster.....done Reloading cluster configuration...done Done (log saved to /var/log/crmsh/ha-cluster-bootstrap.log)
Tüm makineleri kümeye kattırdıktan sonra, tüm VM'lerin çevrimiçi olup olmadığını görmek için kaynağınızı denetleyin:
sudo crm status
Aşağıdaki çıkışı görmeniz gerekir:
Stack: corosync Current DC: sles1 (version 2.0.5+20201202.ba59be712-150300.4.30.3-2.0.5+20201202.ba59be712) - partition with quorum Last updated: Mon Mar 6 18:01:17 2023 Last change: Mon Mar 6 17:10:09 2023 by root via cibadmin on sles1 3 nodes configured 1 resource instance configured Online: [ sles1 sles2 sles3 ] Full list of resources: admin-ip (ocf::heartbeat:IPaddr2): Started sles1
Küme kaynak bileşenini yükleyin. Tüm düğümlerde aşağıdaki komutu çalıştırın.
sudo zypper in socat
azure-lb
Bileşeni yükleyin. Tüm düğümlerde aşağıdaki komutu çalıştırın.sudo zypper in resource-agents
İşletim sistemini yapılandırın. Tüm düğümlerde aşağıdaki adımları izleyin.
Yapılandırma dosyasını düzenleyin:
sudo vi /etc/systemd/system.conf
değerini
4096
olarakDefaultTasksMax
değiştirin:#DefaultTasksMax=512 DefaultTasksMax=4096
Vi düzenleyicisini kaydedin ve çıkın.
Bu ayarı etkinleştirmek için aşağıdaki komutu çalıştırın:
sudo systemctl daemon-reload
Değişikliğin başarılı olup olmadığını test edin:
sudo systemctl --no-pager show | grep DefaultTasksMax
Kirli önbelleğin boyutunu küçültün. Tüm düğümlerde aşağıdaki adımları izleyin.
Sistem denetimi yapılandırma dosyasını düzenleyin:
sudo vi /etc/sysctl.conf
Dosyaya aşağıdaki iki satırı ekleyin:
vm.dirty_bytes = 629145600 vm.dirty_background_bytes = 314572800
Vi düzenleyicisini kaydedin ve çıkın.
Azure Python SDK'sını aşağıdaki komutlarla tüm düğümlere yükleyin:
sudo zypper install fence-agents # Install the Azure Python SDK on SLES 15 or later: # You might need to activate the public cloud extension first. In this example, the SUSEConnect command is for SLES 15 SP1 SUSEConnect -p sle-module-public-cloud/15.1/x86_64 sudo zypper install python3-azure-mgmt-compute sudo zypper install python3-azure-identity
Eskrim aracısını yapılandırma
STONITH cihazı bir eskrim aracısı sağlar. Bu öğretici için aşağıdaki yönergeler değiştirilmiştir. Daha fazla bilgi için bkz . Azure çit aracısı 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 zypper info resource-agents
Aşağıdaki örneğe benzer bir çıkış görmeniz gerekir.
Information for package resource-agents:
----------------------------------------
Repository : SLE-Product-HA15-SP3-Updates
Name : resource-agents
Version : 4.8.0+git30.d0077df0-150300.8.37.1
Arch : x86_64
Vendor : SUSE LLC <https://www.suse.com/>
Support Level : Level 3
Installed Size : 2.5 MiB
Installed : Yes (automatically)
Status : up-to-date
Source package : resource-agents-4.8.0+git30.d0077df0-150300.8.37.1.src
Upstream URL : http://linux-ha.org/
Summary : HA Reusable Cluster Resource Scripts
Description : A set of scripts to interface with several services
to operate in a High Availability environment for both
Pacemaker and rgmanager service managers.
Yeni uygulamayı Microsoft Entra Id'ye 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 girin (örneğin, http://localhost) 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 sorumlusuna atayın. Tüm düğümler için bu adımları yineleyin.
Uyarı
Bundan sonra 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 atamaları ekle'yi seçin
- Rol listesinden rolü
Linux Fence Agent Role-<username>
seçin - Erişim ata'yı varsayılan
Users, group, or service principal
olarak bırakın. - Seç listesinde, daha önce oluşturduğunuz uygulamanın adını girin, örneğin
<resourceGroupName>-app
. - Kaydet'i seçin.
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.
- değerini
Crm istemini açmak için komutunu çalıştırın
crm configure
:sudo crm configure
Crm isteminde aşağıdaki komutu çalıştırarak kaynak özelliklerini yapılandırın ve bu komut aşağıdaki örnekte gösterildiği gibi adlı
rsc_st_azure
kaynağı oluşturur:primitive rsc_st_azure stonith:fence_azure_arm params subscriptionId="subscriptionID" resourceGroup="ResourceGroup_Name" tenantId="TenantID" login="ApplicationID" passwd="servicePrincipalPassword" pcmk_monitor_retries=4 pcmk_action_limit=3 power_timeout=240 pcmk_reboot_timeout=900 pcmk_host_map="sles1:sles1;sles2:sles2;sles3:sles3" op monitor interval=3600 timeout=120 commit quit
Eskrim aracısını yapılandırmak için aşağıdaki komutları çalıştırın:
sudo crm configure property stonith-timeout=900 sudo crm configure property stonith-enabled=true sudo crm configure property concurrent-fencing=true
STONITH'in etkinleştirildiğini görmek için kümenizin durumunu denetleyin:
sudo crm status
Aşağıdaki metne benzer bir çıktı görmeniz gerekir:
Stack: corosync Current DC: sles1 (version 2.0.5+20201202.ba59be712-150300.4.30.3-2.0.5+20201202.ba59be712) - partition with quorum Last updated: Mon Mar 6 18:20:17 2023 Last change: Mon Mar 6 18:10:09 2023 by root via cibadmin on sles1 3 nodes configured 2 resource instances configured Online: [ sles1 sles2 sles3 ] Full list of resources: admin-ip (ocf::heartbeat:IPaddr2): Started sles1 rsc_st_azure (stonith:fence_azure_arm): Started sles2
SQL Server ve mssql-tools'u yükleme
SQL Server ve mssql-tools'u yüklemek için aşağıdaki bölümü kullanın. Daha fazla bilgi için bkz . SUSE Linux Enterprise Server'a SQL Server yükleme.
Bu bölümdeki tüm düğümlerde bu adımları gerçekleştirin.
VM'lere SQL Server yükleme
SQL Server'ı yüklemek için aşağıdaki komutlar kullanılır:
Microsoft SQL Server 2019 SLES depo yapılandırma dosyasını indirin:
sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/15/mssql-server-2022.repo
Depolarınızı yenileyin.
sudo zypper --gpg-auto-import-keys refresh
Sisteminizde Microsoft paket imzalama anahtarının yüklü olduğundan emin olmak için aşağıdaki komutu kullanarak anahtarı içeri aktarın:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
SQL Server'ı yüklemek için aşağıdaki komutları çalıştırın:
sudo zypper install -y mssql-server
Paket yüklemesi tamamlandıktan sonra komutunu çalıştırın
mssql-conf setup
ve istemleri izleyerek SA parolasını ayarlayın ve sürümünüzü seçin.sudo /opt/mssql/bin/mssql-conf setup
Not
SA hesabı için güçlü bir parola belirttiğinizden emin olun (Büyük ve küçük harfler, temel 10 basamak ve/veya alfasayısal olmayan simgeler dahil olmak üzere en az uzunluk 8 karakter).
Yapılandırma tamamlandıktan sonra hizmetin çalıştığını doğrulayın:
systemctl status mssql-server
SQL Server komut satırı araçlarını yükleme
Aşağıdaki adımlar SQL Server komut satırı araçlarını (sqlcmd ve bcp) yükler.
Microsoft SQL Server deposunu Zypper'a ekleyin.
sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/15/prod.repo
Depolarınızı yenileyin.
sudo zypper --gpg-auto-import-keys refresh
Geliştirici paketiyle mssql-tools'u
unixODBC
yükleyin. Daha fazla bilgi için bkz . SQL Server (Linux) için Microsoft ODBC sürücüsünü yükleme.sudo zypper install -y mssql-tools unixODBC-devel
Kolaylık sağlamak için ortam değişkeninize PATH
ekleyebilirsiniz/opt/mssql-tools/bin/
. Bu, tam yolu belirtmeden araçları çalıştırmanızı sağlar. PATH ortam değişkenini hem oturum açma bilgileriyle başlatılan oturumları hem de etkileşimli/oturum açma bilgisi olmadan başlatılan oturumları için değiştirmek üzere 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 yüksek kullanılabilirlik aracısı yükleme
SQL Server için yüksek kullanılabilirlik aracısı paketini yüklemek için tüm düğümlerde aşağıdaki komutu çalıştırın:
sudo zypper install mssql-server-ha
Yüksek kullanılabilirlik hizmetleri için bağlantı noktalarını açma
SQL Server ve HA hizmetleri için tüm düğümlerde aşağıdaki güvenlik duvarı bağlantı noktalarını açabilirsiniz: 1433, 2224, 3121, 5022, 5405, 21064.
sudo firewall-cmd --zone=public --add-port=1433/tcp --add-port=2224/tcp --add-port=3121/tcp --add-port=5022/tcp --add-port=5405/tcp --add-port=21064 --permanent sudo firewall-cmd --reload
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
Kullanılabilirlik gruplarını etkinleştirme ve SQL Server'ı yeniden başlatma
SQL Server örneğini barındıran her düğümde kullanılabilirlik gruplarını etkinleştirin. Ardından hizmeti yeniden başlatın mssql-server
. Her düğümde aşağıdaki komutları çalıştırın:
sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
sudo systemctl restart mssql-server
Sertifika oluşturma
Microsoft, AG uç noktasında Active Directory kimlik doğrulamasını desteklemez. Bu nedenle, AG uç nokta şifrelemesi için bir sertifika kullanmanız gerekir.
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
<MasterKeyPassword>
kendi parolanızla değiştirin.
ALTER EVENT SESSION AlwaysOn_health ON SERVER WITH (STARTUP_STATE = ON); GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<MasterKeyPassword>'; GO
- öğ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
<PrivateKeyPassword>
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 = '<PrivateKeyPassword>' ); 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
sles2
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. Bunun yerine komutu her komutun önünde çalıştırabilirsinizsudo
.# The below command allows you to run commands in the root environment sudo -i
scp /var/opt/mssql/data/dbm_certificate.* <username>@sles2:/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 = '<PrivateKeyPassword>' ); 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 AG adıyla değiştirin
ag1
. sles1
,sles2
vesles3
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'sles1'
WITH (
ENDPOINT_URL = N'tcp://sles1:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'sles2'
WITH (
ENDPOINT_URL = N'tcp://sles2:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'sles3'
WITH (
ENDPOINT_URL = N'tcp://sles3: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 iki satırı 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ı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
Bu bölüm, kullanılabilirlik grubuna veritabanı ekleme makalesini izler.
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;
GO
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
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.
Bu makalede Pacemaker kümesinde kullanılabilirlik grubu kaynakları oluşturma kılavuzuna başvuruda bulunulanmaktadır.
Pacemaker'i etkinleştirme
Pacemaker'ın otomatik olarak başlatılmasını sağlayın.
Kümedeki tüm düğümlerde aşağıdaki komutu çalıştırın.
sudo systemctl enable pacemaker
AG küme kaynağını oluşturma
Crm istemini açmak için komutunu çalıştırın
crm configure
:sudo crm configure
Crm isteminde aşağıdaki komutu çalıştırarak kaynak özelliklerini yapılandırın. Aşağıdaki komutlar kullanılabilirlik grubunda
ag1
kaynağıag_cluster
oluşturur.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 quit
İpucu
Crm isteminden çıkmak için yazın
quit
.Sanal IP için ortak konum kısıtlamasını, birincil düğümle aynı düğümde çalışacak şekilde ayarlayın:
sudo crm configure colocation vip_on_master inf: admin-ip ms-ag_cluster: Master commit quit
IP adresinin geçici olarak yük devretme öncesi ikincil düğüme işaret etmesini önlemek için sıralama kısıtlamasını ekleyin. Sıralama kısıtlaması oluşturmak için aşağıdaki komutu çalıştırın:
sudo crm configure order ag_first inf: ms-ag_cluster:promote admin-ip:start commit quit
komutunu kullanarak kümenin durumunu denetleyin:
sudo crm status
Çıktı aşağıdaki örneğe benzer olmalıdır:
Cluster Summary: * Stack: corosync * Current DC: sles1 (version 2.0.5+20201202.ba59be712-150300.4.30.3-2.0.5+20201202.ba59be712) - partition with quorum * Last updated: Mon Mar 6 18:38:17 2023 * Last change: Mon Mar 6 18:38:09 2023 by root via cibadmin on sles1 * 3 nodes configured * 5 resource instances configured Node List: * Online: [ sles1 sles2 sles3 ] Full List of Resources: * admin-ip (ocf::heartbeat:IPaddr2): Started sles1 * rsc_st_azure (stonith:fence_azure_arm): Started sles2 * Clone Set: ms-ag_cluster [ag_cluster] (promotable): * Masters: [ sles1 ] * Slaves: [ sles2 sles3 ]
Kısıtlamaları gözden geçirmek için aşağıdaki komutu çalıştırın:
sudo crm configure show
Çıktı aşağıdaki örneğe benzer olmalıdır:
node 1: sles1 node 2: sles2 node 3: sles3 primitive admin-ip IPaddr2 \ params ip=10.0.0.93 \ op monitor interval=10 timeout=20 primitive ag_cluster ocf:mssql:ag \ params ag_name=ag1 \ meta failure-timeout=60s \ op start timeout=60s interval=0 \ op stop timeout=60s interval=0 \ op promote timeout=60s interval=0 \ op demote timeout=10s interval=0 \ 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 interval=0 primitive rsc_st_azure stonith:fence_azure_arm \ params subscriptionId=xxxxxxx resourceGroup=amvindomain tenantId=xxxxxxx login=xxxxxxx passwd="******" cmk_monitor_retries=4 pcmk_action_limit=3 power_timeout=240 pcmk_reboot_timeout=900 pcmk_host_map="sles1:sles1;les2:sles2;sles3:sles3" \ op monitor interval=3600 timeout=120 ms ms-ag_cluster ag_cluster \ meta master-max=1 master-node-max=1 clone-max=3 clone-node-max=1 notify=true order ag_first Mandatory: ms-ag_cluster:promote admin-ip:start colocation vip_on_master inf: admin-ip ms-ag_cluster:Master property cib-bootstrap-options: \ have-watchdog=false \ dc-version="2.0.5+20201202.ba59be712-150300.4.30.3-2.0.5+20201202.ba59be712" \ cluster-infrastructure=corosync \ cluster-name=sqlcluster \ stonith-enabled=true \ concurrent-fencing=true \ stonith-timeout=900 rsc_defaults rsc-options: \ resource-stickiness=1 \ migration-threshold=3 op_defaults op-options: \ timeout=600 \ record-pending=true
Yük devretme testi
Yapılandırmanın şu ana kadar başarılı olduğundan emin olmak için yük devretmeyi test edin. 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
sles2
aşağıdaki komutu çalıştırın. değerini sunucu adınızın değeriyle değiştirinsles2
.sudo crm resource move ag_cluster sles2
Çıktı aşağıdaki örneğe benzer olmalıdır:
INFO: Move constraint created for ms-ag_cluster to sles2 INFO: Use `crm resource clear ms-ag_cluster` to remove this constraint
Kümenin durumunu denetleyin:
sudo crm status
Çıktı aşağıdaki örneğe benzer olmalıdır:
Cluster Summary: * Stack: corosync * Current DC: sles1 (version 2.0.5+20201202.ba59be712-150300.4.30.3-2.0.5+20201202.ba59be712) - partition with quorum * Last updated: Mon Mar 6 18:40:02 2023 * Last change: Mon Mar 6 18:39:53 2023 by root via crm_resource on sles1 * 3 nodes configured * 5 resource instances configured Node List: * Online: [ sles1 sles2 sles3 ] Full List of Resources: * admin-ip (ocf::heartbeat:IPaddr2): Stopped * rsc_st_azure (stonith:fence_azure_arm): Started sles2 * Clone Set: ms-ag_cluster [ag_cluster] (promotable): * Slaves: [ sles1 sles2 sles3 ]
Bir süre sonra vm
sles2
artık birincil, diğer iki VM ise ikincildir. Bir kez daha çalıştırınsudo crm status
ve aşağıdaki örneğe benzer şekilde çıktıyı gözden geçirin:Cluster Summary: * Stack: corosync * Current DC: sles1 (version 2.0.5+20201202.ba59be712-150300.4.30.3-2.0.5+20201202.ba59be712) - partition with quorum * Last updated: Tue Mar 6 22:00:44 2023 * Last change: Mon Mar 6 18:42:59 2023 by root via cibadmin on sles1 * 3 nodes configured * 5 resource instances configured Node List: * Online: [ sles1 sles2 sles3 ] Full List of Resources: * admin-ip (ocf::heartbeat:IPaddr2): Started sles2 * rsc_st_azure (stonith:fence_azure_arm): Started sles2 * Clone Set: ms-ag_cluster [ag_cluster] (promotable): * Masters: [ sles2 ] * Slaves: [ sles1 sles3 ]
kullanarak
crm config show
kısıtlamalarınızı yeniden denetleyin. El ile yük devretme nedeniyle başka bir kısıtlama eklendiğini gözlemleyin.Aşağıdaki komutu kullanarak id
cli-prefer-ag_cluster
ile kısıtlamayı kaldırın:crm configure delete cli-prefer-ms-ag_cluster commit
Test eskrim
Aşağıdaki komutu çalıştırarak STONITH'i test edebilirsiniz. için sles3
aşağıdaki komutu çalıştırmayı sles1
deneyin.
sudo crm node fence sles3
Sonraki adım
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin