search
Categories
Sponsors
VirtualMetric Hyper-V Monitoring, Hyper-V Reporting
Archive
Blogroll

Badges
MCSE
Community

Cozumpark Bilisim Portali
Posted in Exchange Server | No Comment | 5,434 views | 18/10/2010 16:51

Bir önceki bölümde, mailbox database’lerini ayarlamıştık. Ayrıca bu database’leri Exchange DAG kullanarak, high available hale getirmiştik. Bu bölümde, OWA load balancing ve sertifika işlemlerini göreceğiz. Load Balancing gereksinimleri için Citrix Netscaler kullanacağım. Fakat Brocade gibi farklı donanımsal load balancing çözümleri ile yazılımsal çözümleri kullanabilirsiniz. Ne de olsa Load Balancing işini hepsi aynı mantıkta yapıyor :)

İlk adım olarak Exchange OWA’nın nasıl Load Balance edilebileceğini göreceğiz.

İlk CAS sunucumuzu servis olarak Citrix’e ekleyelim.

İkinci CAS sunucumuz için de aynı işlemi uygulayalım.

Şimdi EXCAS01’e gidelim ve OWA için sertifika başvurusunu oluşturalım.

Şimdi varsayılan sertifikaları görelim:

Get-ExchangeCertificate -Server 'EXCAS01'

Öyleyse EXCAS01 üzerinde sertifika başvurumuzu yapalım:

New-ExchangeCertificate -FriendlyName 'exchange.radore.com.tr' -GenerateRequest -PrivateKeyExportable $true -KeySize '2048' -SubjectName 'C=TR,S="Metrocity",L="Istanbul",O="Radore Hosting",OU="IT",CN=exchange.radore.com.tr' -DomainName 'exchange.radore.com.tr','autodiscover.radore.com.tr','EXCAS01','EXCAS02','EXGW01','EXGW02' -Server 'EXCAS01'

Ticari sertifikamızı satın aldıktan sonra sertifika kodunu C:\cert.txt içerisine kaydedin.
Sertifikayı EXCAS01 sunucumuza import edelim:

Import-ExchangeCertificate -FileData ([Byte[]]$(Get-Content -Path C:\cert.txt -Encoding byte -ReadCount 0)) -Password:(Get-Credential).password

Sertifikaya IMAP, POP ve IIS servislerini tanımlayalım. Lütfen bu işlem esnasında kendi Thumbprint’inizi kullandığınıza dikkat edin.

Enable-ExchangeCertificate -Server 'EXCAS01' -Services 'IMAP','POP','IIS' -Thumbprint '03BB616D714D04D133FDACEC3B9476'

Sertifika durumunu tekrar kontrol edelim:

Get-ExchangeCertificate -Server 'EXCAS01'

Gördüğünüz gibi yeni SSL sertifikamıza servislerimiz tanımlanmış durumda.
Şimdi bu sertifikamızı export edip, ikinci CAS sunucumuz olan EXCAS02 isimli sunucuya import edeceğiz.

1
2
$File = Export-ExchangeCertificate -Thumbprint '03BB616D714D04D133FDACEC3B9476' -BinaryEncoded:$true -Password (Get-Credential).password
Set-Content -Path "C:\htcert.pfx" -Value $File.FileData -Encoding Byte

Şimdi bu pfx dosyasını EXCAS02 sunucusuna transfer edip, import edelim.

Import-ExchangeCertificate -FileData ([Byte[]]$(Get-Content -Path c:\htcert.pfx -Encoding Byte -ReadCount 0)) -Password:(Get-Credential).password -PrivateKeyExportable $true

Sertifika durumuna tekrar göz atalım:

Get-ExchangeCertificate -Server 'EXCAS02'

Aynı servisleri EXCAS02 üzerinde de tanımlayalım:

Enable-ExchangeCertificate -Server 'EXCAS02' -Services 'IMAP','POP','IIS' -Thumbprint '03BB616D714D04D133FDACEC3B9476'

Şimdi aynı sertifikayı Citrix Netscaler üzerinde tanımlayalım. Bunun için Citrix menüsünden SSL bölümüne giriş yapıp, “import PKCS#12” bağlantısını kullanalım.

Şimdi pfx dosyamızı seçelim ve yerel kullanım için excas_cert gibi bir isim verelim.
Sonrasında tekrar SSL bölümü altından Certificates’e girelim ve Add bağlantısına tıklayalım.

Şimdi Rewrite -> Actions kısmına giriş yapıp, Add bağlantısına tıklayalım.

Rewrite -> Policy kısmına girip, Add bağlantısına tıklayalım.

Gerekli adımları tamamladık. Şimdi Load Balancing -> Virtual Servers menüsüne girip Add bağlantısına tıklayalım.

NLB IP adresimizi tanımlayalım. SSL’i seçip, port olarak 443 tanımlıyoruz. Sonrasında SSL bölümünden OWA sertifikamızı seçip, Add butonuna tıklayalım.

OWA servislerini ekleyelim:

Method and Persistence’ı ayarlayalım:

OWA yönlendirmesini ayarlayalım:

Şimdi Create butonuna tıklayarak, SSL Virtual Server Load Balancing işlemini bitirelim.

Şimdi başka bir Virtual Server daha yaratıp, HTTP isteklerini HTTPS’e yönlendirmeyi yapalım.

Load Balancing -> Virtual Servers altından Add bağlantısına tıklayalım.

Aynı NLB IP adresini tanımlayın. HTTP seçip, port olarak 80’i tanımlayın. Yönlendirme için hiç bir servis seçmemeniz gerekiyor.

Advanced Tab’a giriş yapınız.

Yine Method and Persistence’ı ayarlayalım:

Create butonuna tıklayarak HTTP Virtual Server Load Balancing işlemini tamamlayın.

Hiç servis seçmediğimiz için Virtual Server, Down olarak görülecektir.

Son adım olarak EXCAS01 ve EXCAS02 sunucularının IIS’ine gidin ve SSL Security’i aşağıdaki gibi ayarlayın:

“Require SSL” kısmını temizleyin ve Client Certificates bölümünü “Accept” olacak şekilde ayarlayın. Aynı işlemleri OWA, EWS, ECP.. için de uygulayın. Tüm alt virtual directory’ler güvenli olmayan bağlantıyı da kabul edecek duruma gelmelidir.

Şimdi Exchange Server 2010 OWA’mızı test edelim:

Gördüğünüz gibi Citrix Netscaler üzerinden OWA Load Balancing’ini tamamlamış olduk.
Bir sonraki bölümde, CAS ve Hub Transport sunucularını nasıl Load Balance yapabileceğimizi göreceğiz.
Görüşmek üzere.

Hosted Exchange 2010 – Hosted Exchange 2010 Installation


Posted in Exchange Server | 2 Comments | 6,646 views | 04/10/2010 00:20

İ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 Files\Microsoft\Exchange Server\V14\Mailbox\Database01\Database01.edb' -LogFolderPath 'C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Database01'
New-MailboxDatabase -Server 'EXCAS01' -Name 'Database02' -EdbFilePath 'C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Database02\Database02.edb' -LogFolderPath 'C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Database02'
New-MailboxDatabase -Server 'EXCAS01' -Name 'Database03' -EdbFilePath 'C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Database03\Database03.edb' -LogFolderPath 'C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Database03'

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 'Database01\EXCAS02'
Resume-MailboxDatabaseCopy -Identity 'Database02\EXCAS02'
Resume-MailboxDatabaseCopy -Identity 'Database03\EXCAS02'

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.

Görüşmek üzere.

Hosted Exchange 2010 – Hosted Exchange 2010 Installation