Linux'ta failover kümesi örnekleri

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

Bu makalede, Linux üzerinde SQL Server yük devretme kümesi örnekleri (FCI) ile ilgili kavramlar açıklanmaktadır.

Linux'ta SQL Server FCI oluşturmak için Linux'ta failover kümesi örneğini yapılandır (RHEL) bölümüne bakınız.

Kümeleme katmanı

Hem RHEL HA eklentisi hem de SUSE HAE Pacemaker üzerine kurulmuştur.

Aşağıdaki diyagramda gösterildiği gibi, depolama iki sunucuya sunulur. Kümeleme bileşenleri - Corosync ve Pacemaker - iletişim ve kaynak yönetimini koordine eder. Sunuculardan birinin depolama kaynaklarına ve SQL Server'a etkin bağlantısı vardır. Pacemaker bir hata algıladığında, kaynakların diğer düğüme taşınması kümeleme bileşenlerinin sorumluluğundadır.

Linux'ta paylaşılan bir disk SQL Server failover kümesinin diyagramı.

Linux'ta SQL Server'ın Pacemaker ile entegrasyonu, Windows'taki Windows Server Failover Clustering (WSFC) kadar uyumlu değil. SQL Server'ın kümenin varlığı hakkında bilgisi yoktur. Tüm orkestrasyon dışarıdan içeriye doğrudur ve hizmet, Pacemaker tarafından bağımsız bir örnek olarak denetlenir. Ayrıca, sanal ağ adı Pacemaker'da eşdeğeri olmayan WSFC'ye özgüdür. @@SERVERNAME ve sys.servers'in düğüm adını döndürmesi beklenirken, küme DMV'leri sys.dm_os_cluster_nodes ve sys.dm_os_cluster_properties'ün hiçbir kayıt döndürmemesi beklenir. Sunucu adına işaret eden ve IP'yi kullanmayan bir bağlantı dizesi kullanmak için, DNS sunucusuna sanal IP kaynağını oluşturmak için kullanılan IP'yi (aşağıdaki bölümlerde açıklandığı gibi) seçilmiş sunucu adıyla kaydetmeleri gerekir.

SQL Server 2025 (17.x) ve Cumulative Update (CU) 3 ve daha sonraki sürümlerde, pakette Red Hat Enterprise Linux (RHEL) ve Ubuntu mssql-server-ha için yeni bir Pacemaker HA agent v2 mevcuttur.

Pacemaker HA aracısı v2, aşağıdakiler dahil olmak üzere önceki aracıya göre güvenilirlik ve performans geliştirmeleri sunar:

  • Hem planlanan hem de planlanmamış yük devretme sürelerini azaltmak için iyileştirilmiş yük devretme performansı.

  • Sistem durumu denetimi zaman aşımı ve hata koşulu düzeyinin yapılandırması da dahil olmak üzere esnek otomatik yük devretme ilkeleri desteği.

  • Pacemaker kümesi ile SQL Server arasındaki iletişim için TLS 1.3 desteği.

Pacemaker HA aracısı v2 şu anda önizleme aşamasındadır. Mevcut Pacemaker HA aracısı (v1), üretim dağıtımları için tam olarak desteklenmektedir.

Örneklerin ve düğümlerin sayısı

Linux'ta SQL Server ile arasındaki temel farklardan biri, Linux sunucusu başına yalnızca bir SQL Server yüklemesi olmasıdır. Bu yükleme bir örnek olarak adlandırılır. Windows Server'ın WSFC başına 25'e kadar FCI desteklemesinin aksine, Linux tabanlı bir FCI yalnızca tek bir örnek olur. Bu tek örnek de varsayılan bir örnektir; Linux'ta adlandırılmış örnek kavramı yoktur.

Pacemaker kümesi, Corosync söz konusu olduğunda en fazla 16 düğüme sahip olabileceği için tek bir FCI en fazla 16 sunucuya yayılabilir. SQL Server Standard Edition ile uygulanan bir FCI, Pacemaker kümesi en fazla 16 düğüme sahip olsa bile bir kümenin en fazla iki düğümlerini destekler.

Bir SQL Server FCI'da, SQL Server örneği aynı anda yalnızca bir düğümde aktiftir.

IP adresi ve adı

Linux Pacemaker kümesinde her SQL Server FCI'nin kendi benzersiz IP adresine ve adına ihtiyacı vardır. FCI yapılandırması birden çok alt ağa yayılıyorsa, alt ağ başına bir IP adresi gerekir. Uygulamaların ve son kullanıcıların Pacemaker kümesinin hangi temel sunucusunu bilmesi gerekmeyecek şekilde FCI'ye erişmek için benzersiz ad ve IP adresleri kullanılır.

DNS'deki FCI'nin adı Pacemaker kümesinde oluşturulan FCI kaynağının adıyla aynı olmalıdır. Hem ad hem de IP adresi DNS'de kayıtlı olmalıdır.

Paylaşılan depolama alanı

İster Linux ister Windows Server'da olsun tüm FC'ler bir tür paylaşılan depolama alanı gerektirir. Bu depolama, FCI'yi barındırabilecek tüm sunuculara sunulur, ancak herhangi bir zamanda FCI için depolamayı yalnızca tek bir sunucu kullanabilir. Linux altında paylaşılan depolama için kullanılabilen seçenekler şunlardır:

  • iSCSI
  • Ağ Dosya Sistemi (NFS)
  • Sunucu İleti Bloğu (SMB)

Windows Server'ın altında biraz farklı seçenekler vardır. Linux tabanlı FCI'ler için şu anda desteklenmeyen bir seçenek, tempdb, düğümde yerel olan bir disk kullanma yeteneğidir; bu disk, SQL Server'ın geçici çalışma alanıdır.

Birden çok konuma yayılan bir yapılandırmada, bir veri merkezinde depolananlar diğeriyle eşitlenmelidir. Olası bir başarısızlık durumunda, FCI etkin hale gelir ve depolama alanı aynı kalır. Bunu başarmak için, ister temel alınan depolama donanımıyla ister yazılım tabanlı bir yardımcı program aracılığıyla olsun, depolama çoğaltması için bazı dış yöntemler gerekir.

Note

SQL Server için, doğrudan sunucuya sunulan diskler kullanılarak Linux tabanlı dağıtımlar XFS veya ext4 ile biçimlendirilmelidir. Diğer dosya sistemleri şu anda desteklenmiyor.

Paylaşılan depolama sunma işlemi desteklenen farklı yöntemler için aynıdır:

  • Paylaşılan depolamayı yapılandırma
  • Depolamayı, FCI için Pacemaker kümesinin düğümleri olarak görev yapacak sunuculara bir klasör olarak bağlayın
  • Gerekirse, SQL Server sistem veritabanlarını paylaşılan depolama alanına taşıyın
  • SQL Server'ın paylaşılan depolamaya bağlı her sunucudan çalışıp çalışmadığını test etme

Linux üzerinde SQL Server ile arasındaki en önemli farklardan biri, varsayılan kullanıcı verilerini ve günlük dosyası konumunu yapılandırabilmenize karşın sistem veritabanlarının her zaman konumunda /var/opt/mssql/datamevcut olmasıdır. Windows Server'da, dahil olmak üzere tempdbsistem veritabanlarını taşıyabilirsiniz. Bu olgu, paylaşılan depolamanın bir FCI için nasıl yapılandırıldığını gösterir.

Sistem dışı veritabanları için varsayılan yollar yardımcı programı kullanılarak mssql-conf değiştirilebilir. Varsayılan ayarların nasıl değiştirileceği hakkında bilgi için bkz. Varsayılan veri veya log dizin konumunu değiştir. SQL Server verilerini ve işlem kayıtlarını, varsayılan konum olmasa bile uygun güvenlik sağlandığı sürece başka konumlarda da depolayabilirsiniz; konumun belirtilmesi gerekir.