Aracılığıyla paylaş


SQL Server için RHEL yük devretme kümesi örneğini (FCI) çalıştırma

Şunlar için geçerlidir:Linux üzerinde SQL Server

Bu belgede, Red Hat Enterprise Linux ile paylaşılan bir disk yük devretme kümesinde SQL Server için aşağıdaki görevlerin nasıl gerçekleştirleneceği açıklanmaktadır.

  • Kümenin yük devretmesini el ile gerçekleştir
  • SQL Server yük devretme kümesi hizmetini izleme
  • Küme düğümü ekleme
  • Küme düğümünü kaldırma
  • SQL Server kaynak izleme sıklığını değiştirme

Mimari açıklaması

Kümeleme katmanı, Pacemakerüzerinde oluşturulan Red Hat Enterprise Linux (RHEL) HA eklentisi temel alır. Corosync ve Pacemaker, küme iletişimlerini ve kaynak yönetimini koordine ediyor. SQL Server örneği bir düğümde veya diğerinde etkindir.

Aşağıdaki diyagramda SQL Server içeren bir Linux kümesindeki bileşenler gösterilmektedir.

Red Hat Enterprise Linux 7 Paylaşılan Disk SQL Kümesinin Diyagramı.

Küme yapılandırması, kaynak aracıları seçenekleri ve yönetimi hakkında daha fazla bilgi için RHEL başvuru belgeleriniziyaret edin.

Küme failover işlemini manuel olarak gerçekleştirme

resource move komutu, kaynağı hedef düğümde başlamaya zorlayan bir kısıtlama oluşturur. move komutunu yürüttkten sonra, kaynak clear yürütülürse, kaynağın yeniden taşınması veya kaynağın otomatik olarak yük devretmesinin mümkün olması için kısıtlama kaldırılır.

sudo pcs resource move <sqlResourceName> <targetNodeName>
sudo pcs resource clear <sqlResourceName>

Aşağıdaki örnek, mssqlha kaynağını sqlfcivm2adlı bir düğüme taşır ve sonra kaynağın daha sonra farklı bir düğüme geçebilmesi için kısıtlamayı kaldırır.

sudo pcs resource move mssqlha sqlfcivm2
sudo pcs resource clear mssqlha

SQL Server yük devretme kümesi hizmetini izleme

Geçerli küme durumunu görüntüleyin:

sudo pcs status

Kümenin ve kaynakların canlı durumunu görüntüleyin:

sudo crm_mon

Kaynak aracısı günlüklerini /var/log/cluster/corosync.log'da görüntüleyin.

Kümeye düğüm ekleme

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

    ip addr show
    
  2. Yeni düğümün 15 karakter veya daha kısa benzersiz bir ada sahip olması gerekir. Varsayılan olarak Red Hat Linux'ta bilgisayar adı localhost.localdomain. Bu varsayılan ad benzersiz olmayabilir ve çok uzun olabilir. Yeni düğümün bilgisayar adını ayarlayın. Bilgisayar adını /etc/hosts'a ekleyerek ayarlayın. Aşağıdaki betik, /etc/hostsile vi düzenlemenizi sağlar.

    sudo vi /etc/hosts
    

    Aşağıdaki örnek, /etc/hosts ile sqlfcivm1, sqlfcivm2, ve sqlfcivm3 adlı üç düğüm için eklemeleri gösterir.

    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
    

    Dosya her düğümde aynı olmalıdır.

  3. Yeni düğümde SQL Server hizmetini durdurun.

  4. Veritabanı dosya dizinini paylaşılan konuma bağlamak için yönergeleri izleyin:

    NFS sunucusundan nfs-utils yükleyin

    sudo yum -y install nfs-utils
    

    İstemcilerde ve NFS sunucusunda güvenlik duvarını açma

    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
    

    /etc/fstab dosyasını bağlama komutunu içerecek şekilde düzenleyin:

    <IP OF NFS SERVER>:<shared_storage_path> <database_files_directory_path> nfs timeo=14,intr
    

    Değişikliklerin geçerli olması için mount -a çalıştırın.

  5. Yeni düğümde, 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/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
    

    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.

  6. Yeni düğümde 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:

    • Bağlantı noktaları TCP: 2224, 3121, 21064
    • UDP: Bağlantı Noktası 5405
  7. Pacemaker paketlerini yeni düğüme yükleyin.

    sudo yum install pacemaker pcs fence-agents-all resource-agents
    
  8. Pacemaker ve Corosync paketleri yüklenirken oluşturulan varsayılan kullanıcının parolasını ayarlayın. Mevcut düğümler ile aynı parolayı kullanın.

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

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

    sudo yum install mssql-server-ha
    
  11. Kümeden var olan bir düğümde yeni düğümün kimliğini doğrulayın ve kümeye ekleyin:

    sudo pcs cluster auth <nodeName3> -u hacluster
    sudo pcs cluster node add <nodeName3>
    

    Aşağıdaki örnek, kümeye vm3 adlı bir düğüm ekler.

    sudo pcs cluster auth
    sudo pcs cluster start
    

Kümeden düğümleri kaldırma

Kümeden bir düğümü kaldırmak için aşağıdaki komutu çalıştırın:

sudo pcs cluster node remove <nodeName>

sqlservr kaynak izleme aralığının sıklığını değiştirme

sudo pcs resource op monitor interval=<interval>s <sqlResourceName>

Aşağıdaki örnek, mssql kaynağı için izleme aralığını 2 saniye olarak ayarlar:

sudo pcs resource op monitor interval=2s mssqlha

SQL Server için Red Hat Enterprise Linux paylaşılan disk kümesi sorunlarını giderme

Küme sorunlarını giderdiğinizde, üç daemon'un küme kaynaklarını yönetmek için birlikte nasıl çalıştığını anlamanıza yardımcı olur.

Arka Plan İşlemi Açıklama
Corosync Küme düğümleri arasında çoğunluk üyeliği ve mesajlaşmayı sağlar.
Kalp pili Corosync'in üzerinde yer alır ve kaynaklar için durum yönetim sistemleri sağlar.
PCSD pcs araçlarıyla hem Pacemaker hem de Corosync'i yönetir.

pcs araçlarını kullanabilmek için PCSD'nin çalışıyor olması gerekir.

Geçerli küme durumu

sudo pcs status her düğüm için küme, çekirdek, düğümler, kaynaklar ve daemon durumu hakkında temel bilgileri döndürür.

Sağlıklı bir kalp pili çoğunluk çıkışına örnek olarak aşağıdakiler gösterilebilir:

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

Örnekte partition with quorum, düğümlerin çoğunluğunun çevrimiçi olduğu anlamına gelir. Küme, düğümlerin çoğunluğunu kaybederse, pcs statuspartition WITHOUT quorum döndürür ve tüm kaynaklar durdurulur.

online: [sqlvmnode1 sqlvmnode2 sqlvmnode3], şu anda kümeye katılan tüm düğümlerin adını döndürür. Hiçbir düğüm katılmıyorsa, pcs statusOFFLINE: [<nodename>]döndürür.

PCSD Status her düğümün küme durumunu gösterir.

Düğümün çevrimdışı olmasının nedenleri

Bir düğüm çevrimdışı olduğunda aşağıdaki öğeleri denetleyin.

  • güvenlik duvarı

    Pacemaker'ın iletişim kurabilmesi için aşağıdaki bağlantı noktalarının tüm düğümlerde açık olması gerekir.

    • **TCP: 2224, 3121, 21064
  • Pacemaker veya Corosync hizmetleri çalışıyor

  • Düğüm iletişimi

  • Düğüm adı eşlemeleri