Exchange Server 2016 ve 2019 Sürümlerinde DAG Kurulumu
Microsoft Exchange Server‘ın DAG (Database Availability Groups) özelliği, modern iş dünyasının kesintisiz ve yüksek erişilebilirlik taleplerini karşılamak için hayati öneme sahiptir. Yüksek veri hacimli finans, sağlık, e-ticaret ve devlet kurumları gibi sektörlerde bu tür yapılandırmalar oldukça yaygındır.
Fakat DAG nedir, nasıl çalışır ve en önemlisi, bu yapıyı iş sürekliliğiniz için nasıl etkin bir şekilde kullanabilirsiniz? Bu makalede bu sorulara detaylı bir şekilde yanıt vereceğiz.
Exchange Server DAG (Database Availability Groups) Nedir?
DAG, Database Availability Groups‘ın kısaltmasıdır ve Exchange Server‘ın sunabileceği en yüksek erişilebilirlik ve veri dayanıklılığını sağlamak için tasarlanmış bir özelliktir. Bir DAG, iki veya daha fazla posta kutusu sunucusundan oluşur. Bu sunucular, aynı posta kutusu veritabanını bir veya daha fazla kopya olarak saklakmaktadır.
DAG, oluşturma işlemi en az 2 en fazla 16 Mailbox sunucusu ile sağlanmaktadır.
DAG, high availability ve site esnekliği sağmaka için sürekli replikasyon ve Windows Failover Cluster teknolojilerini kullanmaktadır. DAG içerisinde bulunan her mailbox sunucusu hatalar için birbirlerini izlemektedir.(Bu işlem Active Manager tarafından takip edilmektedir.)
DAG tek başına görev süreçlerini tamamlamamaktadır, belirli kurallara uymak zorundadır. DAG karşılaştığı hata ve DOWN durumlarında failover işlemlerini sürdürebilmek için Active Manager (SAM)’a istek yapması gerekmektedir.(SAM trafik polisi görevini üstlenerek sunucular üzerindeki tüm Veritabanı isteklerini ve hareketlerini takip etmektedir.) Aslında burda DAG’ın uyması gereken kuralların ve Active Manager’in DAG için bir trafik polisi görevi üstlenmektedir.
DAG oluşturma işlemini gerçekleştirdiğiniz zaman ilk başta boş olarak gelmektedir. DAG içerisine ilk eklediğiniz sunucular sonrası bir yük devretme node oluşturulmaktadır ve bu işlemle birlikte Network, sunucu hatalarını izleyen bir altyapı da başlamaktadır.
DAG ve Site Resilience
DAG kavramı duyunca genel de aynı SITE içerisinde bulunan 2 veya daha fazla sunucu geliyor ama DAG kavramı geniştir ve içerisinde Site Resilience kavramını da barındırmaktadır. Konumuz Site Resilince için olmadığı için sadece genel bir tanım yapacağız.
Database Availability Groups (DAG) genellikle Exchange Server çözümlerinde yüksek kullanılabilirlik ve veri dayanıklılığı için ilk akla gelen özelliktir. Ancak, DAG’lerin işlevi yalnızca bu kadarla sınırlı değildir. Aslında, DAG’ler coğrafi olarak farklı veri merkezleri arasında bir felaket sonrası iyileşme (Disaster Recovery) stratejisinin de temel taşlarından biri olabilir. Bu, “Site Resilience” olarak adlandırılan kavramın tam da merkezine oturmaktadır.
Site Resilience, bir organizasyonun tüm IT altyapısını, doğal afetler, güç kesintileri veya diğer büyük felaketler karşısında korumayı hedefler. DAG’ler, bu tür senaryolarda, veri kaybını önlemek ve iş sürekliliğini sağlamak için kritik bir rol oynamaktadır.
Exchange Server DAG için Örneklendirme
Bir banka için çalışıyorsunuz ve mail, takvim bilgileri Exchange Server üzerinde saklanıyor. Single Node üzerinde çalışan bir Exchange Server‘da Donanım arızası, yazılım hatası veya diğer kesintiler her zaman yüksek bir risk oluşturmaktadır. Single Node olarak çalışan sunucular da bu tarz durumlar her zaman iş sürekliliği kesintisi yaratabiliriz
DAG içerisinde çalışan ortamlarda bu tarz kesintiler de; DAG devreye girer ve gerekli olan tüm bileşenlere istek göndererek mevcut verilerinizi birden fazla sunucu üzerinde dağıtır ve iş sürekliliği içerisinde kesinti olmadan çalışmaya devam edebilir.
Exchange Server DAG için Ön Gereksinimler
Exchange Server‘da DAG oluşturma için bazı ön gereksinimler bulunmaktadır;
- En az 2 mailbox sunucusu gerekmektedir
- Sunucuların Exchange Server sürümleri aynı olması gerekmektedir
- Sunucuların Windows sürümleri aynı olması tercih edilir.
- Sunucular aynı Domain üyesi olması gerekmektedir. (Exchange Server AD’ye bağımlı olarak çalışmaktadır.)
- Her sunucuda yeterli disk alanı ve yedekleme kapasitesi olmalıdır
- DNS ayarlarının doğru bir şekilde yapılandırılmış olması gerekmektedir.
- Witness Server gereksinimi vardır. Bu sunucu Exchange suncusu ve DC sunucusu dışında bir sunucu olması gerekmektedir.
Bu makale DAG kurulum yönergelerinden bahsettiği için Exchange Server ve gereksinimlerinden bahsetmeden sadece Witness server ve DAG kurulum yönergelerini anlatacağız.
Witness Server Yapılandırma Adımları
Not: Witness Server çift sayıda Exchange Sunucusu olduğunda kullanışlıdır.
Witness Server Nedir?
Witness Server, DAG üyeleri arasında çoğunluk kararının nasıl alınacağına yardımcı olacak bir sunucudur. DAG’da üye sunucuların sayısının çift olduğu durumlarda, çoğunluk sağlanamadığında Witness Server oy kullanarak kararın alınmasına yardımcı olur.
Not: Witness klasörüne sadece ilgili DAG üyelerinin erişim hakkı vardır.
Witness Server Senaryosu
Exchange Server altyapısında yüksek erişilebilirlik sağlamak amacıyla Database Availability Group (DAG) kullanıldığında karşımıza Witness Server kavramı çıkar. Bu makalede, iki farklı datacenter’da konumlandırılmış sunucular arasında Witness Server’ın ne şekilde görev aldığını ve bu süreçte nasıl bir katkı sağladığını örnek bir senaryo üzerinden açıklayacağız..
Senaryo Tanımı:
- Datacenter 1: İstanbul’da konumlandırılmış ve içerisinde 5 Exchange Server bulunan bir datacenter.
- Datacenter 2: Ankara’da konumlandırılmış ve yine 5 Exchange Server içeren bir datacenter.
- Aktif Site: İstanbul.
İstanbul’daki datacenter (Aktif Site) ani bir elektrik kesintisi nedeniyle tamamen devre dışı kaldı. Bu durumda, İstanbul’daki 5 sunucunun tamamı çalışmaz hale geldi.
Ankara’da ise 5 sunucumuz çalışır durumda. Ancak, 10 sunuculu bir yapıda (5’i İstanbul’da, 5’i Ankara’da), çoğunluğun sağlanabilmesi için en az 6 sunucunun çalışıyor olması gerekmektedir. İşte bu kritik anda Witness Server devreye giriyor.
Bu kesinti anında, Ankara’daki sunucular Witness Server’a başvurur. Witness Server, İstanbul’daki sunucularla iletişim kurmayı dener ancak başarısız olur. Bu durumda Witness Server, Ankara’daki sunuculara ekstra bir oy hakkı verir. Bu sayede Ankara’daki sunucular, 5 sunucu + 1 ekstra oy ile toplamda 6 oya ulaşır. Bu, 10 sunuculu yapıda çoğunluğun sağlanması için gereken oy sayısıdır. Böylece, Ankara’daki sunucular otomatik olarak aktif hale gelir ve hizmet kesintisi yaşanmadan çalışmaya devam eder.
İstanbul’daki sunuculardan herhangi bir problem yaşandığında, Ankara’daki sunucular Witness Server’a başvurarak İstanbul’daki sunucularla iletişim kurup kuramadığını kontrol eder. Eğer İstanbul’daki sunucular erişilemez durumdaysa ve Witness Server da bu sunucularla iletişim kuramıyorsa, Ankara’daki sunucular çoğunluğu sağlayarak aktif hale gelir.
Senaryomuzda, Witness Server’ı İstanbul’da konumlandırmış olsaydık, bu elektrik kesintisinden etkilenecekti. Bu, potansiyel bir site kesintisinin hem sunucuları hem de Witness Server’ı aynı anda etkilemesini engeller.
Birden fazla lokasyonda sunucularınız varsa ve yüksek erişilebilirlik istiyorsanız, Witness Server’ın doğru konumlandırılması ve çalışması hayati öneme sahiptir.
Witness Server Yapılandırma İşlemleri
Witness server yapılandırma işlemi için öncelikle “Computer Management” arayüzüne girmemiz gerekiyor, ilgili sunucu için Exchange Trusted Subsystem‘i local Admin olarak eklememiz gerekmektedir.
Exchange Server DAG Yapılandırma Adımları
DAG için 2 çeşit yapılandırma bulunmaktadır bunlar; IPBased (Cluster Administrative Access Point (CAAP),) ve IPLess (No Administrative Access Point and IP-Less)
IPBased ve IP-Less DAG
IPLess ve IPbased için farklı yönergeler mevcut olsa da IPLess DAG’da ön gereksinimler bulunmamaktadır ve burda bir CNO oluşturma işlemi gerçekleşmedi için Failover Cluster’da yönetim gerçekleşmemektedir. Biliyorsunuz ki Failover Cluster CNO ile çalışmaktadır. IPLess DAG’da yönetim tamamen Exchange Server tarafından yapılmaktadır siz müdaha etmek isterseniz Powershell kullanılması gerekmektedir.
IPBased DAG’da bir MAPI ağında olması gereken boş bir IP adresi ile DAG IP adresi belirlenmesi gerekirken, IP-Less DAG’da IP Adresi bölümüne 255.255.255.255 yazılması yeterli olacaktır.
IPBased DAG tüm işlemleri CNO üzerinden yürütmektedir – IP-Less DAG’da CNO gereksinimi bulunmamaktadır.
Not: IP-Less DAG sizin ortamınız için uygunsa DAG yapılandırmanızı IP-Less olarak yapabilirsiniz, mevcut bir IP adresi gereksinimi olmayacağı için bu durum yüzeysel saldırı riskini de azaltabilir.
Biz bu yazıda sadece IPBased (Cluster Administrative Access Point CAAP) olarak kurulum gerçekleştireceğiz. Yukarıda bahsetmiş olduğum IPLess kurulumlar için ortamınızı iyi şekillendirip karar vermeniz gerekmektedir.
DAG için gerekli tanımlamaları ve Witness Server için Yapılandırmaları sağladıktan sonra ortamımız da bulunan Exchange Server sunucuları için DAG yapılandırmasını gerçekleştirebiliriz.
DAG Network Yapılandırılması
Exchange Server 2016’ya kadar sunucuların üzerinde 2 tane NIC olması gerekmekteydi ve Microsoft bu şekilde öneriyordu. REPLICATION ve MAPI trafiği ayrı NIC üzerinden geçiyordu. Exchange Server 2016 ile birlikte değişen mimari arasında NIC isteği de sistem yöneticilerinin ihtiyaçlarına bırakıldı. MAPI ve REPLICATION trafiğini tek NIC üzerinden (10G olması şartı ile) çalıştırabiliyorsunuz.
Büyük ve karmaşık bir yapınız var ise MAPI ve REPLICATION için ayrı NIC ve ayrı VLAN’lar kullanabilirsiniz. REPLICATION NIC’i üzerinde bir takım değişiklikler yapmanız gerekmektedir.
(Ben kendi projelerim de MAPI ve REPLICATION için ayrı NIC ve ayrı VLAN’lar kullanmaktayım)
Not: REPLICATON için kullandığınız VLAN kendi içerisinde haberleşmesi gerekmektedir.
Exchange Server DAG Yapılandırılması Adımları
Exchange sunucumuz üzerinden (EAC’ın dışarıya kapalı olduğunu varsayıyorum 🙂 ) EAC’ı açıyoruz
EAC – servers – database availability groups adımlarını takip ediyoruz.
“+” simgesi ile beraber yeni bir DAG grubu oluşturmamız gerekmektedir,
Database availability group name: DAG için kullanacağımız grup ismi olacak, burası aynı zaman da Failover Cluster için CNO ismimiz olacaktır.
Witness Server: Oluşturmuş olduğumuz witness server’ın FQDN girmemiz gerekmektedir
Witness Directory: Witness server’da oluşacak directory ismini girmemiz gerekmektedir
Database availability group IP addresses: Buraya DAG için kullanılması gereken IP adresini girmemiz gerekmektedir. MAPI ve REPLICATION için ayrı VLAN kullanılıyorsa eğer MAPI ağından bir IP adresi girilmesi gerekmektedir. IPLess olarak kurulum yapmak isterseniz 255.255.255.255 girmeniz yeterli olacaktır.
Save işlemi ile grup oluşturma işlemini bitiriyoruz.
Görsel de görmüş olduğunuz gibi DAG için ilk işlemi tamamladık, ilk önce bu şekilde boş gelmektedir. Şimdi DAG içerisine sunucularımızı JOIN etmemiz gerekmektedir.
DAG içerisine sunucularımızı JOIN edebilmemiz için yine bu pencere de bulunan “Manage DAG Membership” butonunu kullanmamız gerekmektedir.
Add or remove Servers yanında bulunan “+” simgesi ile sunucularımızı eklemeye başlayabiliriz. EX1 ve EX2 adında 2 tane aynı sürüm Exchange sunucum bulunmakta. İki sunucuya seçerek Add yapıyorum ve DAG oluşturma işlemlerini başlatıyorum.
Bu işlem gerçekleşirken ADUC üzerinde bir CNO oluşturuyor, ilgili CNO için bir DNS kaydı oluşturuyor ve IP adresi olarak Group oluştururken kullandığımız IP adresini belirliyor.
Tüm işlemler sorunsuz tamamlandığında DAG oluşturma işlemimiz tamamlanmış oluyor.
EAC üzerinde JOIN edilmiş sunucuları görüntüleyebilirsiniz.
Normal şartlda EAC üzerinden yaptığınız bu işlem ADUC üzerinden CNO oluşturma ve DNS işlemlerini tamamlıyor. Bazı durumlarda ADUC üzerinden CNO oluşturma işlemini sizin yapmanız gerekebilir, bu tarz durumlarda EAC üzerinden oluşturmuş olduğunuz DAG ismi ile ADUC üzerinden CNO oluşturmanız gerekmektedir ve oluşturduğunuz CNO’yu Disable duruma getirmeniz gerekmektedir.
Oluşturmuş olduğunuz CNO’yu Exchange Trusted Subsystem üyesi yapıyoruz ve Security adımından Full Access erişim izni vermemiz gerekiyor.
Bu işlemler sizin tarafınızdan gerçekleştirilirse oluşturulan CNO’nun Disable olması çok önemlidir.
DAG içerisine sunucularımız eklediğimize göre Database’leride DAG içerisinde çalıştırmamız ve replikasyon yaptırmamız gerekmektedir.
EAC- servers – databases adımına geliyoruz.
Burda mevcut veritabanlarımızı pasif sunuculara replikasyon olması için database copy işlemi başlatmamız gerekmektedir. Benim Ex2 ve Ex1 sunucularım üzerinde 1 tane veritabanım bulunuyor, öncelikle EX2’de bulunan veritabanı için pasif replikasyon yapacağım sonra aynı işlemi EX1’de bulunan veritabanım için gerçekleştireceğim.
add database copy adımı ile pasif sunucu seçimi yapmamız gerekmektedir.
Not: Bu işlemi gerçekleştirirken “Circular Logging” kapalı olması gerekmektedir.
Add mailbox database copy penceresi içerisinde;
Mailbox Database name: Kopyası oluşturulacak veritabanın adı
Specify Mailbox Server: Veritabanının replikasyonu barınacağı sunucu seçimi yapmamız gerekmektedir. 2 nodelu bir DAG yapım olduğu için aktif veritabanım daa EX2 olduğu burda sadece EX1 sunucusunu seçebilmekteyiz.
Activation prefence number: Activation Preference Number, Exchange Server’da Database Availability Group (DAG) yapılandırması içindeki veritabanlarının failover (başarısızlık durumunda otomatik geçiş) sırasını belirlemek için kullanılan bir numaradır. Her veritabanı kopyası için bir Activation Preference Number atanır. Bu numara, ideal durumda hangi sunucuda veritabanının aktif olmasını tercih ettiğinizi belirtir. 1 numarası genellikle bir veritabanının aktif olarak tutulmasını istediğiniz sunucu için kullanılır. Yani, en düşük numara (1) en yüksek tercihi belirtir.
Mailbox sunucu seçimimi yaptıktan sonra save yapıyorum ve mevcut veritabanımın bir kopyasını seçmiş olduğum sunucu üzerinde oluşturmaya başlıyor.
Şimdi aynı işlemi EX1 sunucusnun üzerinde bulunan veritabanı için gerçekleştireceğim.
Aktif veritabanı EX2 pasif veritabanı ise EX1 üzerinde.
Aktif veritabanı EX1 pasif veritabanı ise EX2 üzerinde bulunmaktadır ve Pasif sunucu üzerinde Resynchorizing işlemi devam etmektedir. Burası tamamlandığında her iki sunucu Healty durumda çalışmaya devam edecektir.
Veritabanlarımız DAG yapılandırılması ile çalışıyor ve aktif sunucuların birinde herhangi bir kesinti yaşandığı zaman pasif veritabanı üzerinden çalışmaya devam edecektir.
Özet: Bu makalede, Exchange Server’daki Database Availability Group (DAG) kavramını derinlemesine inceledik. DAG’ın, yüksek erişilebilirlik ve veri sürekliliği sağlama kapasitesi sayesinde kritik e-posta altyapılarının kesintisiz çalışmasında nasıl kilit bir rol oynadığını gördük. Activation Preference Number gibi özelliklerin, otomatik failover sırasında veritabanı kopyalarının nasıl hareket edeceğini belirlemede ne kadar önemli olduğunu öğrendik. Her organizasyonun, veri kaybını önlemek ve sürekli erişilebilirlik sağlamak için DAG gibi teknolojilere nasıl ihtiyaç duyduğunu daha iyi anladık.
Eline sağlık.
Teşekkürler hocam.