Cluster senaryolarında “Split Brain Syndrome” ve Exchange 2010 çözümü

Exchange 2010 ile birlikte cluster tarafında önemli yenilikler geldiğini şimdiye kadar okuduğunuz makale ve postlardan hatırlıyorsunuzdur.Buradaki en önemli yenilik Database Availability Group’dur.Exchange organizasyonunda tek site yada çok sitelı yapılarda oluşturulan DAG lar içerisinde mailbox sunucular eklenerek sunucu başına database için aktif ve passive ownerlar belirlenebiliyor.

 

MBX1 ““ LOKASYON1

MBX2 –

LOKASYON1

MBX3 –

LOKASYON2

MBX4 –

LOKASYON2

DB1

Active1

Passive1

Passive2

Passive3

DB2

Active1

Passive1

Passive2

Passive3

DB3

Active1

Passive1

Passive2

Passive3

DB4

Active1

Passive1

Passive2

Passive3

DB5

Active1

Passive1

Passive2

Passive3

DB6

Passive1

Active1

Passive3

Passive2

DB7

Passive1

Active1

Passive3

Passive2

DB8

Passive1

Active1

Passive3

Passive2

DB9

Passive1

Active1

Passive3

Passive2

DB10

Passive1

Active1

Passive3

Passive2

 

Mesela yukarıdaki tablodan konuşalım.Bu tabloya göre bizden istenen toplam iki lokasyonda 4 mailbox sunuculu bir yapıda hem database bazında hem sunucu bazında hemde datacenter bazında failover sağlayabilmektedir.Exchange 2010 ile bunu sağlayabiliyoruz.

Tek bir DAG içerisine iki lokasyonumdaki 4 mailbox sunucumu ekliyorum.Toplam 10 olan veritabanlarımı lokasyon1 deki iki mailbox sunucusu üzerinde active ve passive olarak dağıtıyorum.Bu noktada lokasyon1 üzerinde database bazında yada sunucu bazında bir sıkıntı olduğunda aynı lokasyon üzerindeki diğer mailbox sunucuda veritabanları aktif olarak devreye girmektedir.

Datacenter tarafında bir sıkıntı olduğunda ise Lokasyon 2 üzerindeki mailbox sunucularda eşit olarak bu veritabanları aktif hale gelecektir.

Bu Microsoft tarafından önerilen aktif ““ pasif datacenter senaryosudur aslında.

exchange site resillence yapısı

Topolojimiz yukarıdaki gibi.Bu yapıyı Türkiye dahilindeki birçok Enterprise müşterimizde Exchange 2010 projesi kapsamında devreye aldık.

Fakat şimdi size yaşanacak bir sıkıntıdan bahsedeceğim.

Primary datacenter üzerinde yaşanan bir failover durumunu hayal edelim.Bu noktada Failover Datacenter üzerindeki mailboxlar mount edilerek ve dış dünyadaki dns kayıtları bu lokasyona point edilerek kullanıcıların çalışması sağlanabiliyor.Tabi burada forcequorum metodunu uygulamamız lazım.Çünkü dikkat ederseniz varsayılanda file share witness primary datancenterda bulunuyor.Ve failover datacenter bu paylaşıma erişemediği takdirde clusterda n/2 +1 node sayısına ulaşamayacağı için aktif olmayacaktır.Bu noktada clusterı forequorum komutu ile alternate bir file share üzerinden çalıştırmamız gerekliki n/2 +1 sonucunda ulaşmamız gereken sayı olan 3’e iki node+ FSW ile ulaşabilelim.

Peki diyelimki herkes failover datacenter üzerinde çalışmaya devam ediyor.Ancak primary datacenter bir şekilde ayağa kalktı ancak henüz aradaki wan bağlantısı aktif değil.

Bu yüzden varsayılanda yapması gerekeni yapıp kendini otomatik mount edecektir.Çünkü file share witness helan bu lokasyonda duruyor.Bu takdirde iki lokasyonda da dbler aktif olacak ve istenmeyen bir durum ortaya çıkacaktır.

İşte biz buna split brain syndrome diyoruz.

Exchange 2010’da bunu engellemek için varsayılanda kapalı olan çok hoş bir özellik geliyor.Datacenter Activation Coordination Protocol. DAC protokolü sayesinde Active Manager 0 ve 1 bitlerini kullanarak local databaselerin mount edilip edilmeyeceğine karar veriyor.

Varsayılan olarak her seferinde Active Manager DAG üzerine 0 bitini atıyor ve bu şekilde start veriyor.Yani mount edilmesine izin vermiyor.DAC modunda sunucu DAG’ın tüm diğer üyeleri ile iletişime geçmeye çalışıyor.

Yukarıdaki senaryoyu düşünürsek primary datacenter diğer üyeleriylede haberleşebilmek istiyor.Ancak aradaki wan bağlantısı henüz sağlanmadığı için , aslında başka bir sunucudan 1 bit cevabı almadığı için kendisini mount etmiyor.

Ancak aradaki hat gelmiş olsaydı failover datacenter üzerindeki veritabanları 1 bitine geri döndürecekti ve bu sebeple primary datecenter diğer tarafı healty state e alarak kendisini sağlıklı biçimde mount edecekti.

DAC enable işlemi oldukça basit.

set-databaseavailabilitygroup ““identity “œDAG1″ ““datacenteractivationmode dagonly

Tabiki bu sürecin genel dizaynı planlaması risk analizleri ve development fazları bu yazıda bahsedildiği kadar kolay olmuyor bilginiz olsun.

Leave a Reply

Your email address will not be published. Required fields are marked *

33 − 28 =