Microsoft Exchange Server SE DAG Serisi – Bölüm 3: DAG Oluşturma ve Node Ekleme

Merhaba

Önceki iki bölümde DAG mimarisini ve tüm önkoşulları ele aldık. Ortamımız artık hazır: İki Mailbox sunucu (W25EXCNOD1, W25EXCNOD2), bir witness sunucu (W25WITNESS) ve sağlıklı bir Active Directory. Bu bölümde nihayet Exchange Management Shell’i açıp DAG’imizi sıfırdan oluşturacak, node’ları ekleyecek ve DAG ağlarını yapılandıracağız. Tüm işlemleri Exchange Management Shell (PowerShell) üzerinden yapacağız; aynı işlemlerin çoğu Exchange Admin Center (EAC) üzerinden de yapılabilir, ancak Shell hem daha hızlı hem de daha net kontrol sağlar.

İlgili Yazı: Burada W25EXCNOD1 ve W25EXCNOD2 üzerinde Exchange Server SE’nin kurulu olduğunu varsayıyoruz. Kurulumu henüz yapmadıysanız, adım adım Windows Server 2025 üzerinde Exchange Server SE Kurulum Gereksinimleri ve Windows Server 2025 üzerinde Exchange Server SE Kurulumu yazılarımıza göz atabilirsiniz.

Burada dikkat çeken nokta şu: Aşağıdaki tüm komutları Organization Management yetkisine sahip bir hesapla, Exchange sunucularından biri üzerinde açılan Exchange Management Shell’de çalıştıracağız.

Adım 1: Witness Sunucuyu Hazırlama

Bölüm 2’de belirttiğimiz gibi, Witness sunucumuz W25WITNESS üzerinde Exchange kurulu değil. Bu nedenle Exchange’in witness paylaşımını oluşturup yönetebilmesi için, Exchange Trusted Subsystem grubunu W25WITNESS‘in yerel Administrators grubuna eklememiz gerekiyor.

W25WITNESS üzerinde, PowerShell’i Run as administrator (Yönetici olarak çalıştır) ile açıp:

W25WITNESS üzerinde çalıştırılır:

Add-LocalGroupMember -Group "Administrators" -Member "BAKICUBUK\Exchange Trusted Subsystem"

Ayrıca File Server rolünün kurulu olduğundan emin olalım:

W25WITNESS üzerinde çalıştırılır:

Install-WindowsFeature FS-FileServer

Bu iki adım, Witness sunucunun DAG tarafından sorunsuz kullanılması için yeterlidir. Witness paylaşım klasörünü elle oluşturmanıza gerek yok; DAG oluşturulduğunda Exchange bunu kendisi yapacak.

Adım 2: DAG’i Oluşturma (IP-less DAG)

Şimdi asıl adıma geldik. Exchange Management Shell’de aşağıdaki komutla, IP adressiz (IP-less) DAG’imizi oluşturuyoruz:

New-DatabaseAvailabilityGroup -Name "EXCDAG" `
  -WitnessServer "W25WITNESS" `
  -WitnessDirectory "C:\DAGFileShareWitnesses\EXCDAG" `
  -DatabaseAvailabilityGroupIpAddresses ([System.Net.IPAddress]::None)

Bu komuttaki parametreleri açıklayalım:

Parametre Açıklama
-Name DAG’in adı. Örneğimizde EXCDAG.
-WitnessServer Tanık sunucu (W25WITNESS). Çift sayılı DAG’da zorunlu.
-WitnessDirectory Witness sunucuda oluşturulacak paylaşım klasörünün yolu.
-DatabaseAvailabilityGroupIpAddresses [System.Net.IPAddress]::None değeri, IP-less DAG oluşturur.

Bu aşamada DAG nesnesi Active Directory’de oluşur; ancak henüz hiçbir üye sunucu eklenmediği için arka planda bir Windows cluster kurulmaz. Cluster, ilk node eklendiğinde oluşacaktır.

Oluşturmayı doğrulayalım:

Get-DatabaseAvailabilityGroup -Identity "EXCDAG" | Format-List Name,Servers,WitnessServer,WitnessDirectory

Adım 3: Mailbox Sunucularını DAG’a Ekleme

Şimdi iki Mailbox sunucumuzu tek tek DAG’a ekliyoruz. İlk node eklendiğinde Exchange arka planda Windows Failover Clustering özelliğini otomatik kurar ve cluster’i oluşturur. Bu, birkaç dakika sürebilir.

İlk üyeyi ekleyelim:

Add-DatabaseAvailabilityGroupServer -Identity "EXCDAG" -MailboxServer "W25EXCNOD1"

Ardından ikinci üyeyi ekleyelim:

Add-DatabaseAvailabilityGroupServer -Identity "EXCDAG" -MailboxServer "W25EXCNOD2"

İkinci node eklendiğinde DAG artık çift sayılı hale gelir ve Quorum modeli otomatik olarak Node and File Share Majority‘ye geçer; işte bu noktada Witness sunucu aktif olarak devreye girer ve Witness paylaşımı W25WITNESS üzerinde oluşturulur.

Üyelerin eklendiğini doğrulayalım:

Get-DatabaseAvailabilityGroup -Identity "EXCDAG" -Status | Format-List Name,Servers,WitnessServer,WitnessShareInUse,OperationalServers

WitnessShareInUse değerinin dolu gelmesi, witness’in aktif olarak kullanıldığını gösterir. OperationalServers alanında her iki sunucuyu da görmelisiniz.

İpucu: Bu aşamada, arka planda oluşan Windows cluster’in sağlığını Get-ClusterNode gibi komutlarla okuma amaçlı kontrol edebilirsiniz; ancak unutmayın, cluster üzerinde değişiklik yapmak için yalnızca Exchange araçlarını kullanmalısınız.

Adım 4: DAG Ağlarını Yapılandırma

Varsayılan olarak Exchange, DAG ağlarını otomatik (automatic) modda keşfeder. Ancak MAPI ve Replication ağlarını net biçiminde ayırmak istiyorsak, manuel ağ yapılandırmasına geçmek daha kontrollü bir sonuç verir.

Önce mevcut DAG ağlarını görelim:

Get-DatabaseAvailabilityGroupNetwork -Identity "EXCDAG" | Format-List Name,Subnets,Interfaces,ReplicationEnabled

Manuel ağ yapılandırmasını etkinleştirelim:

Set-DatabaseAvailabilityGroup -Identity "EXCDAG" -ManualDagNetworkConfiguration $true

Şimdi replikasyon ağını tanımlayalım (örneğimizde 192.168.2.0/24 subnet’i):

New-DatabaseAvailabilityGroupNetwork -DatabaseAvailabilityGroup "EXCDAG" `
  -Name "ReplicationDagNetwork" `
  -Description "Replikasyon trafigi" `
  -Subnets "192.168.2.0/24" `
  -ReplicationEnabled $true

MAPI ağı üzerinde replikasyonu kapatarak, replikasyon trafiğini yalnızca replikasyon ağına yönlendirelim:

Set-DatabaseAvailabilityGroupNetwork -Identity "EXCDAG\MapiDagNetwork" -ReplicationEnabled $false

Böylece üretim (MAPI) trafiği ile replikasyon trafiği birbirinden ayrılmış olur.

Adım 5: (Çok Siteli Ortamlar İçin) DAC Modunu Etkinleştirme

Eğer DAG’iniz birden fazla veri merkezine yayılıyorsa, Bölüm 1’de anlattığımız split-brain riskini önlemek için Datacenter Activation Coordination (DAC) modunu etkinleştirmelisiniz:

Set-DatabaseAvailabilityGroup -Identity "EXCDAG" -DatacenterActivationMode DagOnly

Tek siteli, iki node’lu basit senaryolarda bu adım zorunlu değildir; ancak ilerideki genişlemeler için bilinçli bir tercih olarak değerlendirebilirsiniz.

Adım 6: Kurulumu Doğrulama

DAG iskeletimiz artık hazır. Son olarak genel bir sağlık kontrolü yapalım:

DAG genel durumu:

Get-DatabaseAvailabilityGroup -Identity "EXCDAG" -Status | Format-List

Ağ yapılandırması:

Get-DatabaseAvailabilityGroupNetwork -Identity "EXCDAG"

Replikasyon sağlığı (her üye için):

Test-ReplicationHealth -Identity "W25EXCNOD1"
Test-ReplicationHealth -Identity "W25EXCNOD2"

Test-ReplicationHealth çıktısında tüm kontrollerin Passed durumunda olması beklenir. Bir kontrol Failed dönerse, bir sonraki bölümdeki sorun giderme adımlarına bakabilirsiniz.

Kontrol Beklenen
ClusterService Passed
ReplayService Passed
ActiveManager Passed
TasksRpcListener Passed
QuorumGroup Passed
FileShareQuorum Passed
Beklenen Durum: Bu aşamada Test-ReplicationHealth çıktısında DatabaseRedundancy ve DatabaseAvailability kontrolleri *FAILED* dönebilir (Redundancy Count: 1. Expected Redundancy Count: 2 ... does not have enough copies configured). Bu bir hata değildir: veritabanınız henüz tek kopyadır. Bölüm 4’te Add-MailboxDatabaseCopy ile ikinci kopyayı ekledikten sonra her iki kontrol de Passed durumuna geçer. Cluster, Quorum ve Witness kontrollerinin Passed olması, DAG iskeletinin sağlıklı olduğunu gösterir.

Özet ve Sonraki Bölüm

Bu bölümde DAG’imizi fiilen hayata geçirdik:

  • Witness sunucuyu (W25WITNESS) Exchange Trusted Subsystem ve File Server rolü ile hazırladık.
  • New-DatabaseAvailabilityGroup ile IP-less DAG01’i oluşturduk.
  • Add-DatabaseAvailabilityGroupServer ile W25EXCNOD1 ve W25EXCNOD2‘yi ekledik; ikinci node ile birlikte witness devreye girdi.
  • MAPI ve Replication ağlarını manuel olarak ayırdık.
  • Test-ReplicationHealth ile kurulumu doğruladık.

Genel görünüm

Artık iki node’lu, witness destekli, sağlıklı bir DAG iskeletimiz var. Ancak henüz hiçbir veritabanının ikinci bir kopyası yok; yani yüksek erişilebilirlik (High Availability) henüz fiilen devrede değil. Bir DAG, ancak veritabanı kopyaları eklendiğinde amacına ulaşır.

Bir sonraki bölümde (Bölüm 4), serinin en kritik adımına geliyoruz: Add-MailboxDatabaseCopy ile veritabanı kopyalarını oluşturacak, seeding sürecini izleyecek, Move-ActiveMailboxDatabase ile switchover yapacak, sunucu bakım moduna alma (maintenance mode) ve sorun giderme adımlarını uygulamalı göreceğiz.

Başka bir yazımızda görüşmek dileğiyle…

Bir yanıt yazın

Başa Dön