Category Archives: Clustering

Microsoft SQL Server 2017 on Linux AG Cluster Type None and External

Merhaba,

Bu makale Pacemaker ve Microsoft SQL Server on Linux yazılarının devamı niteliğinde olup, öncesinde bir göz atmanızda fayda olacağı düşüncesindeyim çünkü ilgili yazılardaki cluster kurulumu veMicrosoft SQL Server kurulumları bu makalede yok. Biraz uzun ama keyifli bir yazı olduğunu düşünüyorum.

Windows üzerindeki Availability Group (AG) yaratabilmek için Windows Server Failover Cluster (WSFC), Linux üzerinde ise WSFC’e karşılık Pacemaker kullanılıyor.

Windows üzerinde WSFC rolü çok büyük;  failover, health monitoring ve resource management dışında metadata bilgisinin ki içersinde hem WSFC konfigürasyonu, host edilen uygulama konfigürasyonu, node’lardaki değişikliklerin güncellenmesi ve bunların cluster’a yayılması gibi işlevleri var.

Linux üzerinde Microsoft SQL Server 2017 AG konfigürasyonu için iki tip cluster tipi mevcut, bunlardan biri EXTERNAL diğeri ise NONE. Aralarındaki fark ise kısaca ;

  • NONE, pacemaker ihtiyacı olmadan, sadece read scale ve manuel failover için kullanılıyor.
  • EXTERNAL, pacemaker kullanarak, otomatik failover sağlamak ve devamlığı artırmak için kullanılıyor.

Linux üzerinde WSFC servisi olmadığından bu konfigürasyon bilgileri (metadata) SQL Server instance tarafından master database’inde tutulmaya başlıyor buda bize herhangi bir witness olmadığında (file-share witness gibi) konfigürasyonun tutulacağı problem anında cluster’ın ayakta kalmasını sağlayacak üçüncü bir üyenin olması gerekliliğini yaratıyor, böylece bu üç node’a dağıtık bir metadata bilgisinin olmasını sağlıyor.

Yani kısacası, EXTERNAL tipinde yani Linux üzerinde otomatik failover olacak şekilde bir AG kuracaksanız, üç adet node’a ihtiyacınız var. Buda size üç adet lisans anlamına geleceğinden gözleriniz parlayabilir fakat şöyle bir hinlik yapılmış 🙂

Read the rest of this entry

Pacemaker

Merhaba,

Pacemaker uzun süredir bakmak istediğim fakat bir türlü bakamadığım sonra biraz keepalived derken yollarımız iki yerde yine kesişti.

Bunlardan biri Microsoft SQL Server on Linux çünkü Linux üzerinde Microsoft Clustering Service diye birşey yok ve Microsoft SQL Server on Linux çıktığında Always ON desteği ile geldi, haliyle clustering servisi için birşey kullanılaması gerekiyordu, o da pacemaker oldu, diğeri ise Openstack Queen sürümü ile beraber gelen instance ha özelliği, SUSE gibi Openstack sürümlerinde controller node’lar üzerinde çalışan servisler için kullanılıyordu fakat artık instance’lar içinde kullanılabilir durumda.

Linux tarafında hatırlarım eskiden iki node, her biri iscsi ile storage’a bağlı, Redhat’in luci-ricci araçları vardı, nfs servisini ve iscsi üzerinden atanan lun’u bir node’a bağlar ve servis çalıştırılır sonra problem anında APC switch’ler vardı yönetilebilir bunlar fence işlemini gerçekleştirir aradan çıkan node’u kapatır sonra ilgili LUN diğerine bağlanır ve servis tekrardan çalışır hale getirilirdi.

Aslında çokta değişen birşey yok, mantık aynı, sadece belki daha iyisi yazılıyor veya farklı düşünceler ortaya atılıyor, belki pacemaker bile hikaye eğer container yapısında çalışıyorsanız K8s, Docker Swarm veya Mesos bunları container bazında kendine özgü bir şekilde ele alıyor, neyse konuya girelim …

Read the rest of this entry