Hyper-V Üzerinde ki Sanal Makineler Arasında NLB Yapılandırması

NLB (Network Load Balancing), özellikle IIS, Terminal Server gibi yoğun olarak çalışan sunucuların oluşturduğu bir çiftliğe gelen isteklerin oluşturduğu yükün orantılı olarak sunucuların yoğunluk durumlarına göre dağıtılması ve bu işlemin yapılması sırasında da aynı zamanda sunucuların kapalı olup olmadıklarınında kontrolünde kullanılmaktadır. Böylece bir sunucu da oluşabilecek problem neticesinde hizmet veremez duruma gelse dahi gelen istekler NLB yapısı altında ki diğer sunuculara otomatik olarak dağıtılacaktır. Bu yapı sayesinde hizmet alan kullanıcılar sunucu arızalarını hissetmeyeceklerdir.

Sanallaştırma ile birlikte fiziksel sunucularımızı bir araya toplayabiliyor, yedekli bir yapı oluşturabiliyoruz. Peki fiziksel sunucular üzerinde yapabildiğimiz NLB yapılandırmasını Hyper-V sunucuları üzerinde nasıl yapabiliriz? Bu makalemde size farklı Hyper-V sunucuları üzerinde bulunan Exchange Server 2010 CAS+HUB rollerini üstlenmiş durumda ki sanal makineler arasında NLB yapılandırmasının nasıl yapılacağını anlatmaya çalışacağım.

Senaryomuzda Exchange Server 2010 Cas ve Hub rollerini birleştirip iki sunucu altında toplayarak bunların önüne bir NLB sunucusu koyacağız. Cas+Hub sanal makineleri ve NLB yönetimini yapacağımız sanal makine clustered yapıya dahil olan farklı Hyper-V sunucuları üzerinde olacak. NLB yapısında Unicast modunu kullanacağız. Öncelikle NLB yapısı için tavsiyelere bakalım,

  • NLB yapısına dahil olacak sunucular üzerinde en az iki ağ kartı bulunmalı,
  • Cluster için kullanılan ağ kartlarında sadece TCP/IP protokolü kullanılmalıdır,
  • Cluster yapısı için ya Unicast ya da Multicast modunda kullanılmalıdır. Her ikisi birden kullanılamaz,
  • NLB Balancing cluster a dahil olan sunculardan birisinin üzerinde yapılandırılmamalıdır,
  • Cluster yapısına dahil olan sunucular aynı subnet üzerinde bulunmalıdır,
  • Cluster yapılandırması sırasında portlar dikkatlice ayarlanmalıdır.

Unicast ve Multicast yöntemlerinden kısaca bahsetmek gerekirse,

  • Unicast: Varsayılan olarak gelen yöntemdir. Bu yöntem de NLB için kullanılan ağ kartının MAC adresi NLB cluster yapısı için oluşturulan MAC adresi ile değiştirilir. Böylece cluster yapısına dahil olan tüm sunucuların ağ kartlarının MAC adresleri aynı olacaktır.
  • Multicast: Bu mode da NLB için kullanılacak olan ağ kartına kendi MAC adresinin yanı sıra cluster ın MAC adresi de eklenecektir. Bu yöntem kullanılacak ise router üzerinde ARP reply ayarlarının yapılması gerekmektedir.

Normal de birer ağ kartı kullanılarak da NLB yapısı oluşturulabilse de çok sağlıklı çalışmamaktadır. Bu nedenle NLB node larını oluşturacak olan sunucularda ikişer ağ kartının olması sağlıklı bir yapı için gereklidir. Hyper-V sunucuları üzerinde çalışan sanal makinelerin ağ kartlarının farklı bir MAC adresi kullanarak yayın yapmasını engellemektedir. Güvenlik sebebiyle kullanılan bu çalışma şekli NLB yapısının çalışma mantığına ters olması sebebiyle Node lar da NLB yapısı için kullanılacak Network Adapter tipinde ki ağ kartları için sanal makineler de ayar yapılması gerekmektedir. Bu amaçla NLB node larını kapatalım (bu ayar sanal makine açıkken yapılamamaktadır).

NOT: Kapatmadan önce hangi ağ kartında değişiklik yapılacağının karışmaması için ağ kartının MAC adresinin not alınmasında fayda vardır.

Sanal makinelerin konsol bağlantılarında Settings bölümünü açalım. Karşımıza gelen ekranda NLB için kullancağımız Network Adapter donanımımızı MAC Address bölümünden elimizde ki MAC adresi ile karşılaştırarak bulalım. Sağ tarafta gelen özelliklerden “Enable spoofing of MAC addresses” seçeneğini işaretleyelim.

NOT: Eğer yukarıda ki ayara rağmen sıkıntı yaşanıyor ise NLB için kullanılacak Network Adapter lerin MAC Address bölümüne Cluster yapısını oluştururken bize verilecek olan Network Address bölümünde ki MAC adresini girmemiz sorunu çözecektir. Konu ile ilgili makaleye http://support.microsoft.com/kb/953828/en-us adresinden ulaşabilirsiniz.

Hyper-V tarafında ki ayarı tamamladıktan sonra artık sanal makinelerimizin ağ kartlarını düzenlemeye başlayabiliriz. Sanal makinelerimizin Network Connections bölümünden ağ kartlarımızın özelliklerine baktığımızda normal bağlantı seçenklerinin yüklü olduğunu görebiliriz. Ekran görüntüsü aşağıda ki gibidir.

NLB yapılandırması için iki ağ kartımızın olmasının faydalı olacağından bahsetmiştik. Öncelikle NLB node larını oluşturacak olan sanal makinelerimizde bulunan ağ kartlarımıza görevlerine göre isimlendirme yapalım. Bunun için Network Conncetions bölümünü açıp kartlarımıza yeni isim vermemiz yeterli olacaktır. Örneğin NLB node ları arasında kullanılacak olan karta NLB_NET ismini verirken sanal makinenin ağ üzerinden iletişim kurmasını sağlayacak olan karta ise PUBLIC_NET isimini verelim. Ardından Network Connections penceresinde klavyemizden Alt tuşuna basalım ve açılan menüden Advancedà Advanced Settings linkine tıklayalım. Burada karşımıza gelen sıralamada eğer PUBLIC_NET bağlantımız aşağıda ise yanda ki yeşil okları kullanarak en üst sıraya taşıyalım.

Ağ kartlarımızda gerekli düzenlemeleri yaptıktan sonra Server Manager konsolunu kullanarak Add Features linkine tıklayalım. Açılan pencerede Network Load Balancing seçeneğini işaretleyelim ve Next diyerek ilerleyelim. Özet ekranında Install seçeneğine tıklayarak kurulumu gerçekleştirelim. Kurulumun tamamlanmasının ardından Network Connections bölümünde ağ kartlarımızın ayarlarına baktığımızda Network Load Balancing sürücüsünün eklendiğini ancak seçili olmadığını görebiliriz. Seçili olmaması henüz bu ağ kartı üzerinde NLB konfigüsrasyonunun yapılmadığı anlamına gelmektedir.

NOT: NLB_NET ağ kartında default gateway verilmesine gerek yoktur.

NOT: Network Load Balancing özelliği NLB yönetimini yapacak sunucu üzerine de kurulmalıdır.

NOT: NLB yapılandırmasına başlanmadan önce NLB için bir cluster adı ve ip adresinin belirlenmesi faydalı olacaktır.

Tüm node larımıza ve nlb yönetimini yapacak olan sanal makinemize gerekli kurulumları yaptığımıza göre artık NLB yapılandırmasına başlayabiliriz. NLB yönetimini yapacağımız sunucuya bağlanalım ve Start–> Administrative Tools–> Network Load Balancing yolunu takip ederek Network Load Balancing Manager konsolunu çalıştıralım. Karşımıza aşağıda ki gibi boş bir ekran gelecektir.

Konsolda Network Load Balancing Clusters bölümüne sağ tıklayarak New Cluster seçeneğini seçelim. Karşımıza New Cluster ekranı gelecektir. Burada Host bölümüne NLB sunucumuzun yöneteceği node lardan ilki olan Exchange Server 2010 Cas+Hub sunucumuzun NLB için kullanacağımız ip adresini yazıp Connect butonunu kullanarak bağlantı kurulmasını sağlayalım. Interfaces available for configuring a new cluster bölümünde karşmıza sunucumuz üzerinde ki ağ bağlantıları listelenecektir.

Burada NLB_NET interface ni seçelim ve Next ile devam edelim. Karşımıza Host Parameters ekranı gelecektir. Bu bölümde NLB node unu oluşturacak olan sunucumuz için öncelik ataması (Priority) ve NLB için atanacak olan ip adresini belirliyoruz. Priority seçeneği an itibariyle tek sunucu olduğu için varsayılan olarak 1 gelmektedir.

Bu ekranda herhangi bir düzenleme yapmadan Next ile ilerlediğimizde karşımıza NLB Cluster yapımız için ip belirleyeceğimiz ekran gelecektir. Bu bölümde Add diyerek Ip adresini girebileceğimiz bölümü açalım. Bu bölümde daha önceden belirlemiş olduğumuz ip adresini ve subnet ini girelim ve Ok e tıklayalım.

Next ile ilerlediğimizde karşımıza Cluster Parameters ekranı gelecektir. Bu bölümde bizden cluster yapımız için bir isim belirlememiz ve cluster mızın çalışma tipini seçmemiz istenmektedir. Burada Full Internet name bölümüne cluster yapımız için belirlemiş olduğumuz FQDN adını (Örneğin, chcluster.cozumpark.local) yazalım ve Cluster Operation Mode bölümünde de Unicast şıkkını seçili olarak bırakalım.

NOT: Yukarıda Network address bölümünde görüldüğü üzere cluster mızın farklı bir mac adresi olacak.  Bu nedenle sanal makinelerimiz üzerinde “Enable spoofing of MAC addresses” seçeneğini etkinleştiriyoruz.

Next diyerek ilerlediğimizde karşımıza Port Rules ekranı gelecektir. Bu bölümde cluster yapısına dahil olan sunucuların hangi portlardan gelen isteklere cevap vereceğini belirleyebiliriz. Varsayılan olarak tüm portların açık olarak geldiği bu yapıda güvenlik sebebiyle düzenleme yapmak faydalı olacaktır. Dolayısıyla TCP 80, 443, 135 ve 1024-65535 portlarını ekleyelim. Ekleme işlemini Edit butonuna tıklayarak karşımıza gelen ekranda ki Port range bölümünden yapabiliriz.

Port düzenlemelerimizi de yaptıktan sonra Finish e tıklayarak NLB Cluster ayarlarının ilk sanal makinemize aktarılması işlemini başlatabiliriz. Bu bölümde cluster ayarları sanal makinemizde ki NLB_NET isimli ağ kartmız üzerinde gerekli düzenlemelerin yapılmakta ve cluster mac adresi NLB_NET ağ kartına işlenmektedir. İşlem başarılı bir şekilde tamamlandığında ekran görüntüsü aşağıda ki gibidir. Bu andan itibaren LABCH1 isimli makinemizde NLB_NET ağ kartının özelliklerine bakacak olursak cluster address bölümünde ki MAC adresinin eklenmiş olduğunu görebiliriz.

Bu işlemin ardından diğer Cas+Hub rolünü üstlenen Exchange suncumuzuda bu cluster yapısına dahil edebiliriz. Bu amaçla yukarıda ki ekranda cluster adına (chcluster.cozumpark.local) sağ tıklayarak Add Host To Cluster seçeneğine tıklayalım. Karşımıza gelen bağlantı penceresinde bu defa ikinci Cas+Hub rolünü üstlenen sanal makinemizin NLB_NET ağ kartına atadığımız ip adresini yazalım ve Connect diyelim. Karşımıza gelen ağ seçeneklerinden NLB_NET isimli olanı seçelim ve Next e tıklayarak ilerleyelim. Bu sefer Host Parameters penceresinde ki Priority bölümünde 2 rakamını göreceğiz. Bu alanda herhangi bir düzenleme yapmadan Next e tıklayarak ilerleyelim. Karşımıza gelen port seçeneklerinde de bir değişiklik yapmayalım ve Finish e tıklayarak yapılandırma işlemini başlatalım. İşlem tamamlandığında NLB cluster yapımız aşağıda ki şekilde görülecektir.

NLB cluster yapımızı kurduktan sonra yapıyı oluşturan node lar da varsayılan olarak kapalı gelen ip forwarding özelliğini etkinleştirmemiz gerekmektedir. Bunun için her iki sanal makine de aşağıda ki komutu çalıştırmamız yeterli olacaktır.

netsh interface ipv4 set interface “ağ kartının adı” forwarding=enable

netsh interface ipv4 set interface “NLB_NET” forwarding=enable

NOT: NLB_NET ağ kartında default gateway verilmesine gerek yoktur demiştik. Yukarıda Girmiş olduğumuz statik route kaydıyla ve 14 numarası Interfacemize atanan ID numarasıyla NLB için Gateway tanımlaması yapmış bulunmaktayız. Bu kayıt yardımıyla Farklı networklerden erişimde yaşanılması muhtemel hizmet kaybının önüne geçmiş oluyoruz.

C:\route print

==============================================

Interface List

[14] ..[NLB MAC ADDRESS]… [NLB NIC Model]

route add 0.0.0.0 mask 0.0.0.0 192.168.0.1 if [14] -p

Komutumuzu her iki sunucumuz üzerinde çalıştırdıktan sonra DNS üzerinde NLB ip mizi gösteren ve client larımızın Outlook bağlantıları için kullanacakları bir A kaydı oluşturmalıyız. Örneğin,

DNS kaydımızı oluşturduktan sonra sıra geldi Active Directory içerisinde CAS Array oluşturmaya. Bunun için aşağıdaki PowerShell komutunu Exchange Management Shell üzerinde çalıştırmamız yeterli olacaktır.

New-ClientAccessArray –Name Array_adi –Fqdn “CAS Array FQDN Adresi” –Site “AD Site Adı”

New-ClientAccessArray –Name Array1 –Fqdn “mail.cozumpark.local” –Site “Default-First-Site-Name”

Yukarıda ki komut çalıştırdığımızda çıktısı aşağıda ki gibi olacaktır.

Son olarak bu Array i kullanacak olan tüm mailbox database lerinin ayarlanması gerekmekte. Bunun için yine Exchange Management Shell üzerinde aşağıda ki komutu çalıştırmalıyız.

Set-MailboxDatabase Database_adı –RpcClientAccessServer “CAS Array FQDN adresi”

Set-MailboxDatabase Kullanicilar1 –RpcClientAccessServer “mail.cozumpark.local”

Yukarıda ki komut çalıştırdığımızda çıktısı aşağıda ki gibi olacaktır.

Kullanıcımızın bilgisayarında Outlook hesabını yapılandırdığımızda Server bölümünde mail.cozumpark.local ifadesini göreceğiz.

NOT: Benzer şekilde kullanıcılar web üzerinden Outlook Web App uygulamasına bağlanmak istediklerinde adres bölümüne https://mail.cozumpark.local/owa şelinde yazmaları yeterli olacaktır.

Sonuç itibariyle Cas+Hub sunucularımızdan birisinde bir sıkıntı olduğunda bile hizmetimiz diğer Cas+Hub sunucumuz üzerinden devam edecektir. Bazı kullanıcılar Outlook uygulamalarında kısa bir süreliğine bağlantı kurulmaya çalışılıyor şeklinde hata alabilirler. Bu kısa süre de NLB sunucumuz diğer Cas+Hub makinenin kapandığından haberi olarak gelen trafik isteklerini diğer makineye yönlendirmeye başlayacaktır. Ardından hata alan kullanıcıların Outlook uygulamaları tekrar bağlı duruma geçecektir.

Bu makalemde size farklı Hyper-V sunucuları üzerinde bulunan Exchanghe Server 2010 Cas+Hub rollerini üstlenmiş durumda ki sanal makineler arasında NLB yapılandırmasının nasıl yapılacağını anlatmaya çalıştım.

Faydalı olması dileğimle…

M. Hakan CAN

You may also like...

Leave a Reply

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