İngilizce dilinde oku

Aracılığıyla paylaş


Yük devretme kümesi örneğini yapılandırma - Linux üzerinde SQL Server (RHEL)

Şunlar için geçerlidir:SQL Server - Linux

SQL Server iki düğümlü paylaşılan disk yük devretme kümesi örneği, yüksek kullanılabilirlik için sunucu düzeyinde yedeklilik sağlar. Bu öğreticide, Linux üzerinde SQL Server'ın iki düğümlü yük devretme kümesi örneğini oluşturmayı öğreneceksiniz. Tamamlayacağınız belirli adımlar şunlardır:

  • Linux'ı ayarlama ve yapılandırma
  • SQL Server'ı yükleme ve yapılandırma
  • Hosts dosyasını yapılandırın
  • Paylaşılan depolamayı yapılandırma ve veritabanı dosyalarını taşıma
  • Her küme düğümüne Pacemaker'ı yükleme ve yapılandırma
  • Yük devretme kümesi örneğini yapılandırma

Bu makalede, SQL Server için iki düğümlü paylaşılan disk yük devretme kümesi örneğinin (FCI) nasıl oluşturulacağı açıklanmaktadır. Makale, Red Hat Enterprise Linux (RHEL) için yönergeler ve betik örnekleri içerir. Ubuntu dağıtımları RHEL'e benzer, bu nedenle betik örnekleri normalde Ubuntu üzerinde de çalışır.

Kavramsal bilgi için bkz. Yük Devretme Kümesi Örnekleri - Linux'ta SQL Server.

Önkoşullar

Aşağıdaki uçtan uca senaryoyu tamamlamak için iki düğüm kümesini dağıtmak için iki makineye ve depolama için başka bir sunucuya ihtiyacınız vardır. Aşağıdaki adımlarda bu sunucuların nasıl yapılandırılacağı açıklanmıştır.

Linux'ı ayarlama ve yapılandırma

İlk adım, küme düğümlerinde işletim sistemini yapılandırmaktır. Kümedeki her düğümde bir linux dağıtımı yapılandırın. Her iki düğümde de aynı dağıtımı ve sürümü kullanın. Aşağıdaki dağıtımlardan birini veya diğerini kullanın:

  • HA eklentisi için geçerli bir aboneliğe sahip RHEL

SQL Server'ı yükleme ve yapılandırma

  1. HER iki düğümde de SQL Server'ı yükleyin ve ayarlayın. Ayrıntılı yönergeler için bkz. linux sql server için yükleme kılavuzu.

  2. Yapılandırma amacıyla bir düğümü birincil, diğerini ikincil olarak belirleyin. Bu kılavuzu takip etmek için bu terimleri kullanın.

  3. İkincil düğümde SQL Server'ı durdurun ve devre dışı bırakın. Aşağıdaki örnek SQL Server'ı durdurur ve devre dışı bırakır:

    sudo systemctl stop mssql-server
    sudo systemctl disable mssql-server
    

    Not

    Kurulum zamanında, SQL Server örneği için bir Sunucu Ana Anahtarı oluşturulur ve var/opt/mssql/secrets/machine-keyyerleştirilir. Linux, SQL Server'da her zaman mssqladlı yerel bir hesap olarak çalışır. Yerel bir hesap olduğundan kimliği düğümler arasında paylaşılmamaktadır. Bu nedenle, birincil düğümden her ikincil düğüme şifreleme anahtarını kopyalamanız gerekir, böylece her yerel mssql hesabı Sunucu Anahtarının şifresini çözebilir.

  4. Birincil düğümde Pacemaker için bir SQL Server oturumu oluşturun ve sp_server_diagnosticsçalıştırmak için oturum açma izni verin. Pacemaker, hangi düğümün SQL Server çalıştırdığını doğrulamak için bu hesabı kullanır.

    sudo systemctl start mssql-server
    

    sa hesabıyla SQL Server master veritabanına bağlanın ve aşağıdakileri çalıştırın:

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

    Dikkat

    Parolanız, SQL Server varsayılanparola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın.

    Alternatif olarak, izinleri daha ayrıntılı bir düzeyde ayarlayabilirsiniz. Pacemaker oturum açma işlemi, VIEW SERVER STATE ile sağlık durumunu sorgulamak ve sp_server_diagnostics, setupadminile sp_dropserver ve sp_addserverçalıştırarak kaynak adıyla FCI örneği adını güncelleştirmek için ALTER ANY LINKED SERVER gerektirir.

  5. Birincil düğümde SQL Server'ı durdurun ve devre dışı bırakın.

Hosts dosyasını konfigüre et

Her küme düğümünde hosts dosyasını yapılandırın. Hosts dosyası, her küme düğümünün IP adresini ve adını içermelidir.

  1. Her düğümün IP adresini denetleyin. Aşağıdaki betik, geçerli düğümünüzün IP adresini gösterir.

    sudo ip addr show
    
  2. Her düğümde bilgisayar adını ayarlayın. Her düğüme 15 karakter veya daha az benzersiz bir ad verin. Bilgisayar adını /etc/hostsekleyerek ayarlayın. Aşağıdaki betik, viile /etc/hosts düzenlemenizi sağlar.

    sudo vi /etc/hosts
    

    Aşağıdaki örnekte, sqlfcivm1 ve sqlfcivm2adlı iki düğüm için eklemeler içeren /etc/hosts gösterilmektedir.

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

Depolamayı yapılandırma ve veritabanı dosyalarını taşıma

Her iki düğümün de erişebileceği bir depolama alanı sağlamanız gerekir. iSCSI, NFS veya SMB kullanabilirsiniz. Depolamayı yapılandırın, depolamayı küme düğümlerine sunun ve ardından veritabanı dosyalarını yeni depolama alanına taşıyın. Aşağıdaki makalelerde her depolama türü için adımlar açıklanmaktadır:

Her küme düğümüne Pacemaker'ı yükleme ve yapılandırma

  1. Her iki küme düğümünde de Pacemaker oturum açma bilgilerinin SQL Server kullanıcı adını ve parolasını depolamak için bir dosya oluşturun.

    Aşağıdaki komut bu dosyayı oluşturur ve doldurur:

    sudo touch /var/opt/mssql/secrets/passwd
    sudo echo '<loginName>' >> /var/opt/mssql/secrets/passwd
    sudo echo '<loginPassword>' >> /var/opt/mssql/secrets/passwd
    sudo chown root:root /var/opt/mssql/secrets/passwd
    sudo chmod 600 /var/opt/mssql/secrets/passwd
    
  2. Her iki küme düğümünde de Pacemaker güvenlik duvarı bağlantı noktalarını açın. Bu bağlantı noktalarını firewalldile açmak için aşağıdaki komutu çalıştırın:

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

    Yerleşik yüksek kullanılabilirlik yapılandırmasına sahip olmayan başka bir güvenlik duvarı kullanıyorsanız Pacemaker'ın kümedeki diğer düğümlerle iletişim kurabilmesi için aşağıdaki bağlantı noktalarının açılması gerekir:

    • TCP : portlar 2224, 3121, 21064
    • UDP: Bağlantı Noktası 5405
  3. Her düğüme Pacemaker paketlerini yükleyin.

    sudo yum install pacemaker pcs fence-agents-all resource-agents
    
  4. Pacemaker ve Corosync paketleri yüklenirken oluşturulan varsayılan kullanıcının parolasını ayarlayın. Her iki düğümde de aynı parolayı kullanın.

    sudo passwd hacluster
    
  5. pcsd hizmetini ve Pacemaker'ı etkinleştirin ve başlatın. Bu, düğümlerin yeniden başlatmadan sonra kümeye yeniden katılmasını sağlar. Her iki düğümde de aşağıdaki komutu çalıştırın.

    sudo systemctl enable pcsd
    sudo systemctl start pcsd
    sudo systemctl enable pacemaker
    
  6. SQL Server için FCI kaynak aracısını yükleyin. Her iki düğümde de aşağıdaki komutları çalıştırın.

    sudo yum install mssql-server-ha
    

Yük devretme kümesi örneğini yapılandırma

FCI bir kaynak grubunda oluşturulur. Kaynak grubu kısıtlamalara olan ihtiyacı azalttığından bu biraz daha kolaydır. Ancak, kaynakları başlamaları gereken sırayla kaynak grubuna ekleyin. Başlamaları gereken sıra:

  1. Depolama kaynağı
  2. Ağ kaynağı
  3. Uygulama kaynağı

Bu örnek, NewLinFCIGrp grubunda bir FCI oluşturur. Kaynak grubunun adı Pacemaker'da oluşturulan tüm kaynaklardan benzersiz olmalıdır.

  1. Disk kaynağını oluşturun. Bir sorun yoksa yanıt alamazsınız. Disk kaynağını oluşturmanın yolu depolama türüne bağlıdır. Aşağıdaki bölümde her depolama türüne (iSCSI, NFS ve SMB) yönelik örnekler gösterilmektedir. Kümelenmiş depolamanız için depolama türüne uygulanan örneği kullanın.

    sudo pcs resource create <iSCSIDiskResourceName> Filesystem device="/dev/<VolumeGroupName>/<LogicalVolumeName>" directory="<FolderToMountiSCSIDisk>" fstype="<FileSystemType>" --group RGName
    
    • <iSCSIDIskResourceName>, iSCSI diskiyle ilişkilendirilmiş kaynağın adıdır
    • <VolumeGroupName> birim grubunun adıdır
    • <LogicalVolumeName>, oluşturulan mantıksal birimin adıdır
    • <FolderToMountiSCSIDIsk> diskin bağlanacağı klasördür (sistem veritabanları ve varsayılan konum için /var/opt/mssql/data)
    • <FileSystemType>, öğelerin nasıl biçimlendirildiğine ve dağıtımın neleri desteklediğine bağlı olarak EXT4 veya XFS olabilir.

  1. FCI tarafından kullanılacak IP adresini oluşturun. Bir sorun yoksa yanıt alamazsınız.

    sudo pcs resource create <IPResourceName> ocf:heartbeat:IPaddr2 ip=<IPAddress> nic=<NetworkCard> cidr_netmask=<NetMask> --group <RGName>
    
    • <IPResourceName>, IP adresiyle ilişkilendirilmiş kaynağın adıdır
    • <IPAddress>, FCI'nın IP adresidir
    • <NetworkCard>, alt ağ ile ilişkili ağ kartıdır (yani eth0)
    • <NetMask> alt ağın ağ maskesidir (yani 24)
    • <RGName> kaynak grubunun adıdır
  2. FCI kaynağını oluşturun. Bir sorun yoksa yanıt alamazsınız.

    sudo pcs resource create FCIResourceName ocf:mssql:fci op defaults timeout=60s --group RGName
    
    • <FCIResourceName> yalnızca kaynağın adı değil, FCI ile ilişkili kullanıcı dostu addır. Kullanıcılar ve uygulamalar bağlanmak için bunu kullanır.
    • <RGName>, kaynak grubunun adıdır.
  3. komutunu sudo pcs resourceçalıştırın. FCI çevrimiçi olmalıdır.

  4. FCI'nin DNS/kaynak adını kullanarak SSMS veya sqlcmd ile FCI'ye bağlanın.

  5. Açıklamayı SELECT @@SERVERNAMEyayınlayın. FCI'nın adını döndürmelidir.

  6. SELECT SERVERPROPERTY('ComputerNamePhysicalNetBIOS')açıklamasını yayınla. FCI'nin üzerinde çalıştığı düğümün adını döndürmelidir.

  7. FCI'yi diğer düğümlere elle aktarın. Yük devretme kümesi örneğini çalıştırma - Linux'ta SQL Server altındaki yönergelere bakın.

  8. Son olarak, FCI'yi özgün düğüme geri gönderin ve birlikte bulundurma kısıtlamasını kaldırın.

Özet

Bu öğreticide aşağıdaki görevleri tamamladınız.

  • Linux'ı ayarlama ve yapılandırma
  • SQL Server'ı yükleme ve yapılandırma
  • Hosts dosyasını yapılandır
  • Paylaşılan depolamayı yapılandırma ve veritabanı dosyalarını taşıma
  • Her küme düğümüne Pacemaker'ı yükleme ve yapılandırma
  • Yük devretme kümesi örneğini yapılandırma