Aracılığıyla paylaş


SQL Server için SLES paylaşılan disk kümesini yapılandırma

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

Bu kılavuz, SUSE Linux Enterprise Server (SLES) üzerinde SQL Server için iki düğümlü bir paylaşılan disk kümesi oluşturmaya yönelik yönergeler sağlar. Kümeleme katmanı, Pacemakerüzerine kurulu SUSE Yüksek Kullanılabilirlik Uzantısı (HAE) temel alır.

Küme yapılandırması, kaynak aracısı seçenekleri, yönetimi, en iyi yöntemler ve öneriler hakkında daha fazla bilgi için bkz. SUSE Linux Enterprise Yüksek Kullanılabilirlik Uzantısı 12 SP5.

Önkoşullar

Aşağıdaki uçtan uca senaryoyu tamamlamak için iki düğüm kümesini dağıtmak için iki makineye ve NFS paylaşımını yapılandırmak 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.

Her küme düğümünde işletim sistemini ayarlama ve yapılandırma

İlk adım, küme düğümlerinde işletim sistemini yapılandırmaktır. Bu rehberde, HA eklentisi için geçerli bir abonelikle SLES kullanın.

Her küme düğümüne SQL Server yükleme ve yapılandırma

  1. Sql Server'ı her iki düğüme de yükleyin ve kurun. 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ılavuzda 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 sırasında, SQL Server örneği için bir Sunucu Ana Anahtarı oluşturulur ve /var/opt/mssql/secrets/machine-keyyerleştirilir. Linux'ta SQL Server her zaman mssql adlı yerel bir hesap olarak çalışır. Yerel bir hesap olduğundan kimliği düğümler arasında paylaşılmamaktadır. Bu nedenle, her yerel mssql hesabının Sunucu Ana Anahtarının şifresini çözmek için bu anahtara erişebilmesi için şifreleme anahtarını birincil düğümden her ikincil düğüme kopyalamanız gerekir.

  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
    

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

    USE [master]
    GO
    CREATE LOGIN [<loginName>] with PASSWORD= N'<password>'
    GRANT VIEW SERVER STATE TO <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.

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

  6. Her bir küme düğümü için konak dosyasını yapılandırmak ve güncelleştirmek amacıyla SUSE belgelerindeki yönergelerini izleyin. hosts dosyası, her küme düğümünün IP adresini ve adını içermelidir.

    Geçerli düğümün IP adresini denetlemek için şunu çalıştırın:

    sudo ip addr show
    

    Her düğümde bilgisayar adını ayarlayın. Her düğüme 15 karakter veya daha az benzersiz bir ad verin. /etc/hostname ekleyip YAST kullanarak veya el ile bilgisayar adını ayarlayın.

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

    127.0.0.1      localhost
    10.128.18.128  SLES1
    10.128.16.77   SLES2
    

    Tüm küme düğümlerinin SSH aracılığıyla birbirine erişebilmesi gerekir. hb_report veya crm_report (sorun giderme için) ve Hawk's History Explorer gibi araçlar düğümler arasında parolasız SSH erişimi gerektirir, aksi takdirde yalnızca geçerli düğümden veri toplayabilirler. Standart olmayan bir SSH bağlantı noktası kullanıyorsanız, -X seçeneğini kullanın (bkz. Diğer Gereksinimler ve Öneriler). Örneğin, SSH bağlantı noktanız 3479 ise aşağıdakilerle crm_report çağır:

    crm_report -X "-p 3479" [...]
    

    Daha fazla bilgi için bkz. yönetim kılavuzu .

Sonraki bölümde paylaşılan depolamayı yapılandıracak ve veritabanı dosyalarınızı bu depolama alanına taşıyacaksınız.

Paylaşılan depolamayı yapılandırma ve veritabanı dosyalarını taşıma

Paylaşılan depolama sağlamak için çeşitli çözümler vardır. Bu kılavuzda NFS ile paylaşılan depolamanın yapılandırılması gösterilmektedir. NFS'nin güvenliğini sağlamak için aşağıdaki en iyi yöntemleri kullanmanızı ve Kerberos'u kullanmanızı öneririz:

Bu yönergeleri izlemezseniz, ağınıza erişebilen ve bir SQL düğümünün IP adresini sahtekarlık edebilen herkes veri dosyalarınıza erişebilir. Her zaman olduğu gibi, üretim ortamında kullanmadan önce sisteminizi tehdit modeli yaptığınızdan emin olun.

Başka bir depolama seçeneği de SMB dosya paylaşımını kullanmaktır:

NFS sunucusunu yapılandırma

NFS sunucusunu yapılandırmak için SUSE belgelerinde aşağıdaki adımlara bakın: NFS Sunucusuyapılandırma.

Tüm küme düğümlerini NFS paylaşılan depolama alanına bağlanacak şekilde yapılandırma

İstemci NFS'sini SQL Server veritabanı dosyaları yolunu paylaşılan depolama konumuna işaret etmek üzere bağacak şekilde yapılandırmadan önce, veritabanı dosyalarını daha sonra paylaşımda kopyalayabilmek için geçici bir konuma kaydettiğinizden emin olun:

  1. Veritabanı dosyalarını yalnızcabirincil düğümde geçici bir konuma kaydedin. Aşağıdaki betik, yeni bir geçici dizin oluşturur, veritabanı dosyalarını yeni dizine kopyalar ve eski veritabanı dosyalarını kaldırır. SQL Server yerel kullanıcı mssql olarak çalıştığından, bağlı paylaşıma veri aktarımından sonra yerel kullanıcının paylaşıma okuma-yazma erişimi olduğundan emin olmanız gerekir.

    su mssql
    mkdir /var/opt/mssql/tmp
    cp /var/opt/mssql/data/* /var/opt/mssql/tmp
    rm /var/opt/mssql/data/*
    exit
    

    Tüm küme düğümlerinde NFS istemcisini yapılandırın:

    Not

    Yüksek Oranda Kullanılabilir NFS depolama alanıyla ilgili SUSE'nin en iyi yöntemlerini ve önerilerini izlemeniz gerekir: DRBD ve Pacemaker ile Yüksek Oranda Kullanılabilir NFS Depolama.

  2. SQL Server'ın yeni dosya yolu ile başarıyla başlatıldığını doğrulayın. Bunu her düğümde yapın. Bu noktada SQL Server'ı aynı anda yalnızca bir düğüm çalıştırmalıdır. Her ikisi de veri dosyalarına aynı anda erişmeye çalışacağından aynı anda çalışamaz (her iki düğümde de YANLıŞLıKLA SQL Server'ı başlatmayı önlemek için, paylaşımın farklı düğümler tarafından iki kez bağlanmadığından emin olmak için bir Dosya Sistemi küme kaynağı kullanın). Aşağıdaki komutlar SQL Server'ı başlatır, durumu denetler ve SQL Server'ı durdurur.

    sudo systemctl start mssql-server
    sudo systemctl status mssql-server
    sudo systemctl stop mssql-server
    

Bu noktada, SQL Server'ın her iki örneği de paylaşılan depolamadaki veritabanı dosyalarıyla çalışacak şekilde yapılandırılır. Sonraki adım Pacemaker için SQL Server'ı yapılandırmaktı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çmaiçin 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 '<password>' >> /var/opt/mssql/secrets/passwd
    sudo chown root:root /var/opt/mssql/secrets/passwd
    sudo chmod 600 /var/opt/mssql/secrets/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.

  2. Tüm küme düğümlerinin SSHaracılığıyla birbirine erişebilmesi gerekir. hb_report veya crm_report (sorun giderme için) ve Hawk's History Explorer gibi araçlar düğümler arasında parolasız SSH erişimi gerektirir, aksi takdirde yalnızca geçerli düğümden veri toplayabilirler. Standart olmayan bir SSH bağlantı noktası kullanıyorsanız -X seçeneğini kullanın (erkek sayfasına bakın). Örneğin, SSH bağlantı noktanız 3479 ise şununla bir hb_report çağır:

    crm_report -X "-p 3479" [...]
    

    Daha fazla bilgi için SUSE belgelerinde ,Sistem Gereksinimleri ve Önerileri bölümüne bakın.

  3. Yüksek Kullanılabilirlik uzantısını yükleyin. Uzantıyı yüklemek için aşağıdaki SUSE makalesindeki adımları izleyin:

    Yükleme ve Kurulum Hızlı Başlangıç

  4. SQL Serveriçin FCI kaynak aracısını yükleyin. Her iki düğümde de aşağıdaki komutları çalıştırın:

    sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/12/mssql-server-2017.repo
    sudo zypper --gpg-auto-import-keys refresh
    sudo zypper install mssql-server-ha
    
  5. ilk düğümü otomatik olarak ayarlayın. Sonraki adım, ilk düğüm olan SLES1'i yapılandırarak çalışan tek düğümlü bir küme ayarlamaktır. SUSE makalesindeki ilk düğümü ayarlamayönergelerini izleyin.

    İşiniz bittiğinde, crm statusile küme durumunu denetleyin:

    crm status
    

    Bir düğümün (SLES1) yapılandırıldığını göstermelidir.

  6. Var olan bir kümeye düğüm ekleme. Ardından SLES2 düğümünü kümeye birleştirin. SUSE makalesindeki İkinci Düğüm Eklemetalimatlarını izleyin.

    İşiniz bittiğinde, crm statuskomutuyla küme durumunu kontrol edin. İkinci bir düğümü başarıyla eklediyseniz, çıkış aşağıdakine benzer:

    2 nodes configured
    1 resource configured
    Online: [ SLES1 SLES2 ]
    Full list of resources:
    admin_addr     (ocf::heartbeat:IPaddr2):       Started SLES1
    

    Not

    admin_addr, ilk tek düğümlü küme kurulumu sırasında yapılandırılan sanal IP kümesi kaynağıdır.

  7. Kaldırma prosedürleri. Kümeden bir düğümü kaldırmanız gerekiyorsa ha-cluster-remove bootstrap betiğini kullanın. Daha fazla bilgi için bkz. Bootstrap Betiklerine Genel Bakış.

SQL Server için küme kaynaklarını yapılandırma

Aşağıdaki adımlarda SQL Server için küme kaynağını yapılandırma adımları açıklanmaktadır. Özelleştirmeniz gereken iki ayar vardır.

  • SQL Server Kaynak Adı: Kümelenmiş SQL Server kaynağının adı.
  • Zaman Aşımı Değeri: Zaman aşımı değeri, bir kaynağın çevrimiçi duruma getirilmesi sırasında kümenin beklediği süredir. SQL Server için, SQL Server'ın master veritabanını çevrimiçine getirmesini beklediğiniz zamandır.

Ortamınız için aşağıdaki betikten değerleri güncelleştirin. Kümelenmiş hizmeti yapılandırmak ve başlatmak için bir düğümde çalıştırın.

sudo crm configure
primitive <sqlServerResourceName> ocf:mssql:fci op start timeout=<timeout_in_seconds>
colocation <constraintName> inf: <virtualIPResourceName> <sqlServerResourceName>
show
commit
exit

Örneğin, aşağıdaki betik mssqlhaadlı bir SQL Server kümelenmiş kaynağı oluşturur.

sudo crm configure
primitive mssqlha ocf:mssql:fci op start timeout=60s
colocation admin_addr_mssqlha inf: admin_addr mssqlha
show
commit
exit

Yapılandırma işlendikten sonra, SQL Server sanal IP kaynağıyla aynı düğümde başlatılır.

Daha fazla bilgi için bkz. Küme Kaynaklarını Yapılandırma ve Yönetme (Komut Satırı).

SQL Server'ın başlatıldığını doğrulayın

SQL Server'ın başlatıldığını doğrulamak için crm status komutunu çalıştırın:

crm status

Aşağıdaki örnekte Pacemaker'ın kümelenmiş kaynak olarak başarıyla başlamasının sonuçları gösterilmektedir.

2 nodes configured
2 resources configured

Online: [ SLES1 SLES2 ]

Full list of resources:

 admin_addr     (ocf::heartbeat:IPaddr2):       Started SLES1
 mssqlha        (ocf::mssql:fci):       Started SLES1

Küme kaynaklarını yönetme

Küme kaynaklarınızı yönetmek için aşağıdaki SUSE makalesine bakın: Küme Kaynaklarını Yönetme

Manuel yük devretme

Kaynaklar, donanım veya yazılım hatası durumunda kümenin diğer düğümlerine otomatik olarak yük devredecek (veya geçirebilecek) şekilde yapılandırılmış olsa da, Pacemaker GUI veya komut satırını kullanarak bir kaynağı kümedeki başka bir düğüme el ile de taşıyabilirsiniz.

Bu görev için migrate komutunu kullanın. Örneğin, SQL kaynağını SLES2 adlı bir küme düğümüne geçirmek için şu işlemi gerçekleştirin:

crm resource
migrate mssqlha SLES2