Hosted Exchange 2010 Kurulumu Bölüm 2
İlk makalemizde, yedekli Hosted Exchange yapımızı oluşturabilmek amacıyla iki adet Client Access Server (CAS) ve Mailbox Server ile iki adet Hub Transport Server kurulumu yapmıştık. Makalemizin ikinci bölümünde, ilk bölümde kurduğumuz iki Mailbox sunucu arasında Database Availability Group oluşturacağız. Böylece iki Mailbox sunucumuzun da yedekli çalışır olmasını sağlayacağız. DAG yapıları ile birlikte, Mailbox database’i, Cluster üzerinde tutulur ve High Availability sağlanmış olur. Yalnız DAG’ın bir avantajı, mailbox database’in ortak bir diskte (shared volume) üzerinde tutulmaması, replication ile iki kopya oluşturmasıdır. Böylece bir sunucudaki mailbox database’ini tamamen kaybetseniz bile, diğer sunucuda replication ile bir yedeği her zaman hazır halde bulunmuş olacak. Hosted Exchange’te müşterilere maksimum erişilebilirlik sunmak için DAG yapısı kurmak zorundayız.
DAG kurulumunu gerçekleştirmeden önce, iki CAS sunucumuz üzerinde de Failover Cluster özelliğini aktif hale getirmemiz gerekiyor. Ben kurulumu CAS üzerinde yapıyorum çünkü Mailbox database’im ve Mailbox rolüm, CAS sunucular üzerinde. Eğer elinizde daha geniş kaynaklar varsa ve CAS ile Mailbox rollerini farklı sunucular üzerine dağıttıysanız, Failover Cluster özelliğini de Mailbox sunucuları üzerinden aktifleştirmelisiniz. Tabii Failover Cluster özelliğini aktif hale getirdikten sonra bir de Witness sunucu tanımlamamız gerekir. Eğer witness sunucu tanımlamazsanız, High Availability sağlayamazsınız. Exchange, file share olarak Witness seçmemize izin veriyor. Fakat Witness sunucu olarak bir Exchange sunucusu seçmelisiniz ve bu sunucu Mailbox rolüne sahip olmamalıdır. Bizim yapımızda da en uygun sunucu Hub Transport sunucusu olarak görülüyor. Zaten Microsoft’un da tavsiye ettiği sunucu, Hub Transport sunucusudur. Bu yüzden Witness sunucu olarak EXGW01 isimli sunucumu seçiyorum.
New-DatabaseAvailabilityGroup -Name ‘RadoreDAG’ -WitnessServer ‘EXGW01’ -WitnessDirectory ‘C:RadoreDAG’
Yukardaki komutu Exchange Management Shell üzerinde çalıştırmalısınız. Komutu çalıştırdıktan sonra DAG’ı kontrol edelim.
Gördüğünüz gibi şuan DAG’a üye olan bir sunucum bulunmuyor. Şimdi Mailbox sunucularımızı DAG’a üye yapalım.
Add-DatabaseAvailabilityGroupServer -Identity ‘RadoreDAG’ -MailboxServer ‘EXCAS01’
İlk Mailbox sunucumuzu ekledikten sonra witness klasörünü inceleyebilirsiniz. Exchange DAG tarafından otomatik olarak oluşturulmuş olmalı. Yine Cluster’ın da oluşturulmuş olduğunu görebilirsiniz. Şimdi ikinci Mailbox sunucumuzu da DAG’a üye yapalım.
Fakat görebileceğiniz üzere şuan hiç network’ümüz bulunmuyor. Hemen bir tane ekleyebilmek için gerekli kontrollerimizi yapalım.
IPv4 durumuna bakalım:
Get-DatabaseAvailabilityGroup | FL Name,*IP*
Name : RadoreDAG
DatabaseAvailabilityGroupIpv4Addresses : {}
DatabaseAvailabilityGroupIpAddresses : {}
Görüldüğü üzere DAG için aktif bir network görünmüyor. Şimdi eklemeye başlayalım.
En az iki farklı network’e sahip olmamız gerekiyor. Bunlardan bir tanesi Public, diğeri ise Replication network olarak ayarlanmalı. Kurduğum yapıda, Backup Network’u Replication Network olarak kullanacağım. İlerdeki bölümlerde, yine Microsoft System Center Data Protection Manager 2010 kullanarak Exchange sunucularımı bu Backup Network üzerinden yedekleyeceğim. Şimdi Public ve Replication Network’lerimi görelim:
Public Network: 94.101.92.0/24
Replication Network: 192.168.0.0/16
Şimdi Network’leri oluşturma vakti geldi. Public network için:
New-DatabaseAvailabilityGroupNetwork -DatabaseAvailabilityGroup RadoreDAG -Name Internet -Description “Internet Network” -Subnets 94.101.92.0/24 -ReplicationEnabled:$False
Replication network için:
New-DatabaseAvailabilityGroupNetwork -DatabaseAvailabilityGroup RadoreDAG -Name Backup -Description “Backup Network” -Subnets 192.168.0.0/16 -ReplicationEnabled:$True
Network ayarlarından sonra Group IP’sini ayarlamamız gerekiyor.
Set-DatabaseAvailabilityGroup -Identity RadoreDAG -DatabaseAvailabilityGroupIPAddresses 94.101.92.10
Şimdi Failover Cluster Manager üzerinden bir kontrol edelim:
Gördüğünüz gibi DAG ismi aktif durumda. Ayrıca Network’lerimiz de aktif haldeler.
Şimdi DAG’a ikinci sunucumuzu ekleyebiliriz.
Add-DatabaseAvailabilityGroupServer -Identity ‘RadoreDAG’ -MailboxServer ‘EXCAS02’
Evet, ikinci sunucumuz da DAG’ta aktif durumda.
İkinci sunucunun yapıya dahil edilmesinden sonra, Witness’ın da aktif hale geldiğini göreceksiniz.
DAG ve network’leri yarattık. Şimdi müşterilerimiz için 3 farklı database yaratalım.
New-MailboxDatabase -Server ‘EXCAS01’ -Name ‘Database01’ -EdbFilePath ‘C:Program FilesMicrosoftExchange ServerV14MailboxDatabase01Database01.edb’ -LogFolderPath ‘C:Program FilesMicrosoftExchange ServerV14MailboxDatabase01’
New-MailboxDatabase -Server ‘EXCAS01’ -Name ‘Database02’ -EdbFilePath ‘C:Program FilesMicrosoftExchange ServerV14MailboxDatabase02Database02.edb’ -LogFolderPath ‘C:Program FilesMicrosoftExchange ServerV14MailboxDatabase02’
New-MailboxDatabase -Server ‘EXCAS01’ -Name ‘Database03’ -EdbFilePath ‘C:Program FilesMicrosoftExchange ServerV14MailboxDatabase03Database03.edb’ -LogFolderPath ‘C:Program FilesMicrosoftExchange ServerV14MailboxDatabase03’
Database’lerimizi kontrol edelim:
Get-MailboxDatabase
Database’lerimizin yaratılmış olduğunu görüyoruz. Şimdi Database’lerimizin durumlarına bakalım:
Get-MailboxDatabaseCopyStatus
Şimdi bu database’leri mount etmemiz gerekiyor:
Mount-Database -Identity ‘Database01’
Mount-Database -Identity ‘Database02’
Mount-Database -Identity ‘Database03’
Tekrar kontrol edelim:
Database’ler hazır olduğuna göre artık replikasyonu başlatabiliriz.
Add-MailboxDatabaseCopy -Identity ‘Database01’ -MailboxServer ‘EXCAS02’ -ActivationPreference ‘2’
Add-MailboxDatabaseCopy -Identity ‘Database02’ -MailboxServer ‘EXCAS02’ -ActivationPreference ‘2’
Add-MailboxDatabaseCopy -Identity ‘Database03’ -MailboxServer ‘EXCAS02’ -ActivationPreference ‘2’
Operasyon sırasında aşağıdaki hatayı alabilirsiniz:
A source-side operation failed. Error An error occurred while performing the seed operation. Error: An error occurred w
hile processing a request on server ‘EXCAS01′. Error: Database ‘bb1e972e-a343-4cfe-8544-39f18facd816′ was not active on
source server ‘EXCAS01′.. [Database: Database01, Server: EXCAS02.vpool.radore.net]
+ CategoryInfo : InvalidOperation: (:) [Add-MailboxDatabaseCopy], SeedInProgressException
+ FullyQualifiedErrorId : E25C52CD,Microsoft.Exchange.Management.SystemConfigurationTasks.AddMailboxDatabaseCopy
Bu başlangıçtaki bir replikasyon problemidir, korkulacak bir durum yok.
Öncelikle replikasyon durumlarını kontrol edelim:
Get-MailboxDatabaseCopyStatus -Identity ‘Database01’
Get-MailboxDatabaseCopyStatus -Identity ‘Database02’
Get-MailboxDatabaseCopyStatus -Identity ‘Database03’
Görüldüğü üzere replikasyonları başlatmamız gerekiyor:
Resume-MailboxDatabaseCopy -Identity ‘Database01EXCAS02’
Resume-MailboxDatabaseCopy -Identity ‘Database02EXCAS02’
Resume-MailboxDatabaseCopy -Identity ‘Database03EXCAS02’
DAG database’lerimiz yaratıldığına göre, şimdi default mailbox’larımızı DAG’a taşıyabiliriz.
Get-Mailbox | New-MoveRequest -TargetDatabase “Database01”
Move Request durumunu kontrol edebilmek için aşağıdaki komutu kullanıyoruz:
Get-MoveRequest
Eğer “Completed” bilgisini görüyorsanız, request’leri kaldırabilirsiniz demektir.
Get-MoveRequest | Remove-MoveRequest
Default mailbox’larımızı taşıdıktan sonra sıra gizli mailbox’ları taşımaya geldi. Öncelikle gizli mailbox’lara bir göz atalım:
Get-Mailbox –Arbitration
Şimdi bu gizli mailbox’larımızı DAG’ta bulunan database’imize taşıyalım.
Get-Mailbox -Arbitration | New-MoveRequest -TargetDatabase “Database01”
Aynı işlemleri bu taşıma sırasında da yapmaya devam ediyoruz.
Get-MoveRequest
Get-MoveRequest | Remove-MoveRequest
Tüm mailbox’larımızı taşıdığımıza göre artık default mailbox database’imizi sistemden kaldırabiliriz.
Kurulum adımlarımızı tamamladık. Şimdi final adımı olarak replikasyon durumunu kontrol edelim.
Test-ReplicationHealth ‘EXCAS01’
Test-ReplicationHealth ‘EXCAS02’
Şuan DAG yapısında çalışan 3 adet aktif database’imiz mevcut. Gelecek bölümde, CAS sunucularımızı nasıl Load Balance yapabileceğimizi göreceğiz.