TS Session Broker ile Load Balancing
Terminal Server dünyasında Windows 2008 Server ile birlikte yeni bir hizmet de bizlere sunuluyor. TS Session Broker servisi ile terminal serverlar dan oluşturmuş olduğumuz çiftlikleri kullanarak hem bağlanmak isteyen kullanıcıların çiftlik içinde ki yükü en az olan sunucuda oturum açması sağlanırken bir yandan da oturum açıp çalışırken bir şekilde bağlantısı kesilen kullanıcıların eski oturumlarına tekrar bağlanarak çalışmaya kaldıkları yerden devam edebilmeleri sağlanmış oluyor. Session Broker servisi bunu SessionID, oturum açan kullanıcının adı ve oturumun hangi sunucuda açıldığı bilgilerini kendine ait özel bir veritabanında tutarak sağlamaktadır.
Session Broker servisinin bu yönlendirme işlemini yapabilmesi için geleneksel yöntem olarak ayrı fiziksel bir makinede network load balancing çalıştırılabileceği gibi DNS Round Robin hizmetini kullanarak fiziksel sunucu ihtiyacı olmadan yönlendirme işlemi yapılabilir. DNS Round Robin hizmeti kısaca aşağıdaki şekilde çalışmaktadır;
- Terminal Server a bağlantı isteği yapacak olan bilgisayar çiftliğin adı ile bağlantı isteğini gönderdiğinde DNS den çiftliğe ait olan iplerin listesini alır.
- Aldığı listedeki ip lere sırasıyla bağlanmaya çalışır. Eğer ilk ip ye bağlanamaz ise 30 sn. lik bir gecikmenin ardından diğer ip yi deneyecektir ve bu işlem bağlanana kadar bu şekilde devam edecektir.
- TS Session Broker gelen isteği kendi veritabanın da kontrol eder ve eğer istekte bulunan kullanıcının daha önceden açılmış ve askıda olan bir oturumu varsa kullanıcıyı o sunucuya yönlendirir ve oturumuna tekrar bağlanmasını sağlar. Eğer istekte bulunan kullanıcıya ait daha önceden açılmış bir oturum yoksa yükü en az olan terminal server a kullanıcı yönlendirilir ve oturum açması sağlanır.
- Oturum başarılı bir şekilde açıldığında oturumun açıldığı Terminal Server TS Session Broker a oturumun başarılı bir şekilde açıldığı bilgisini iletir. Session Broker sunucusu da bu bilgileri veritabanına kayıt eder.
Terminal Server Session Broker hizmetinin kurulumunu yapmak için. Ortamımızda aşağıda ki sunucuları kurup hazır ediyoruz. Bunlar;
- TESTSECUREDC (Domain Controller ve DNS hizmetleri çalışacak)
- TESTSECURETSSB (Terminal Server Session Broker hizmeti çalışacak)
- TESTSECURETS1 (Terminal Server hizmeti çalışacak)
- TESTSECURETS2 (Terminal Server hizmeti çalışacak)
Yukarıda ki sunucularımızı hazırladıktan sonra kuruluma başlayabiliriz;
TS Session Broker hizmetinin kurulumu aşağıdaki şekildedir;
- Server Manager konsolundan Roles açılır ve sağ taraftan Add Roles tıklanır.
- İlk ekran next ile geçildikten sonra Terminal Services seçeneği seçilip Next tıklanır ve Terminal Services ile ilgili bilgilendirme ekranını da next ile geçtikten sonra karşımıza gelen ekranda TS Session Broker seçeneği seçilerek Next tıklanır ve kurulum tamamlanır.
NOT: TS Session Broker hizmetinin kurulacağı sunucuda Terminal Server rolünün kurulu olması ya da Remote Desktop un aktif edilmiş olması gerekmemektedir.
TS Session Broker rolü sunucuya kurulduğun da Terminal Services Session Broker servisi başlatılır ve çalıştırma şekli otomatik olarak ayarlanır. Ayrıca local de Session Directory Computers isimli bir grup oluşturulur. Bu gruba o çiftlikte hizmet vermesi planlanan tüm Terminal Server ların eklenmesi gereklidir.
NOT: Windows Server 2003 terminal Server lar TS Session Broker Load balancing özelliğini kullanamazlar.
NOT: Çiftlikteki tüm terminal serverlar için bir kullanıcının sadece bir oturum açabilmesine olanak veren düzenleme Group Policy ile yapılmalıdır. Bunun için;
NOT: Çiftlikteki tüm terminal serverlar için bir kullanıcının sadece bir oturum açabilmesine olanak veren düzenleme Group Policy ile yapılmalıdır. Bunun için;
- Group Policy de Computer Configuration \Policies\Administrative Templates\Windows Components\Terminal Services\Terminal Server\Connections bölümünden “Restrict Terminal Services Users to single remote sessions” seçeneğinin Enabled durumuna getirilmesi yeterlidir.
TS Session Broker Load Balancing Ayarlarının Yapılması
TS Session Broker Load Balancing ayarları Terminal Services Configuration bölümünden yapılabileceği gibi Group Policy ile de yapılabilir. Ancak Terminal Services Configuration bölümünden aşağıdaki ayarların mutlaka yapılması gerekmektedir. Bunlar;
- Çiftlikte Terminal Server ın yeniden bağlantı için kullanacağı ip adresinin seçilmesi
- The relative weight of the server ayarının yapılması. Bu ayar da verilen değer ile donanım farklılıkları bulunan terminal server sunucuları arasında ki yükü güçlü olandan güçsüze doğru dağıtmak için kullanılabilir. Büyük olan sayıya sahip olan terminal server daha fazla bağlantı talebi alacaktır.
Group Policy ile yapılacak ayarlar aşağıdakilerden oluşmaktadır;
- Group Policy Management konsolunda terminal server ların ve Session Broker hizmetini veren sunucuların bulunduğu istenen yapısal birime sağ tıklanarak yeni bir poliçe oluştur ve buraya link ver seçeneği ile yeni bir poliçe oluşturulur ve adına TS Session Broker Settings adını verelim.
- Poliçe düzenlemek için açıldığında Computer Configuration–> Policies–> Administrative Templates–> Windows Components–> Terminal Services–> Terminal Server–> TS Session Broker seçilir.
- Sağ tarafta bulunan Join TS Session Broker Enabled olarak ayarlanır.
- Configure TS Session Broker Farm Name açılır ve Enabled seçildikten sonra aşağıdaki bölüme çiftliğin adı örneğin farm-1.testsecure.net şeklinde yazılır. Burada yazılan isim Terminal Services Configuration bölümünde yazılanla aynı olmalıdır.
- Configure TS Session Broker Server name açılır ve Enable seçildikten sonra aşağıdaki bölüme TS Session Broker hizmetini verecek olan sunucunun adı yazılır.
NOT: Windows 2008 R2 ile birlikte Terminal Services ismi Remote Desktop Services olarak belirlenmiştir. Dolayısıyla yukarıda ki poliçe yolu da değişmiştir. Windows Server 2008 R2 için yukarıda ki poliçenin yolu Computer Configuration–> Policies–> Administrative Templates–> Windows Components–> Remote Desktop Services–> Remote Desktop Session Host–> RD Connection Broker altında bulunmaktadır.
DNS in TS Session Broker Load balancing için Ayarlanması
TS Session Load Balancing in DNS Round Robin ile çalışması için aşağıda ki ayarların DNS de yapılması gereklidir;
DNS konsolunda Forward Lookup Zones altında ki etki alanı bölümü açılır ve sağ tıklanarak New host A or AAA seçeneği seçilerek Group Policy de ve Terminal Services Configuration bölümünde yazılı olan çiftlik adı girilerek hizmet verecek her bir terminal server için bir kayıt oluşturulur. Örneğin ortamda iki adet (30.20.2.4 ve 30.20.2.5) terminal sunucumuz var ise ve çiftliğimizin ismi FARM-1 şeklinde ise oluşturacağımız iki kayıt aşağıdaki gibi olacaktır;
TS Session Load Balancing in DNS Round Robin ile çalışması için aşağıda ki ayarların DNS de yapılması gereklidir;
DNS konsolunda Forward Lookup Zones altında ki etki alanı bölümü açılır ve sağ tıklanarak New host A or AAA seçeneği seçilerek Group Policy de ve Terminal Services Configuration bölümünde yazılı olan çiftlik adı girilerek hizmet verecek her bir terminal server için bir kayıt oluşturulur. Örneğin ortamda iki adet (30.20.2.4 ve 30.20.2.5) terminal sunucumuz var ise ve çiftliğimizin ismi FARM-1 şeklinde ise oluşturacağımız iki kayıt aşağıdaki gibi olacaktır;
- FARM-1 Host A 30.20.2.4
- FARM-1 Host A 30.20.2.5
Yukarıda ki ayarların tamamlanması ile artık TS Session Broker hizmetini DNS Round Robin kullanarak verebiliriz.
Yukarıda ki bahsi geçen tüm ayarlar yapıldıktan sonra istemcimizden terminal server a bağlantı yapmak için Remote Desktop da bağlantı adı bölümüne farm-1.testsecure.net yazılması yeterli olacaktır.
İlk yazımın da vermiş olduğu heyecan ile bir yanlışlık yaptıysak affola :o). Umarım faydalı bir yazı olmuştur. Bundan sonraki yazımda Terminal Serverlar ile istemcilerin SSL (TLS 1.0) kullanarak güvenli bağlantı kurmalarını nasıl sağlayabileceğimizi anlatmaya çalışacağım.
Yukarıda ki bahsi geçen tüm ayarlar yapıldıktan sonra istemcimizden terminal server a bağlantı yapmak için Remote Desktop da bağlantı adı bölümüne farm-1.testsecure.net yazılması yeterli olacaktır.
İlk yazımın da vermiş olduğu heyecan ile bir yanlışlık yaptıysak affola :o). Umarım faydalı bir yazı olmuştur. Bundan sonraki yazımda Terminal Serverlar ile istemcilerin SSL (TLS 1.0) kullanarak güvenli bağlantı kurmalarını nasıl sağlayabileceğimizi anlatmaya çalışacağım.
Sağlıcakla kalın…
M. Hakan CAN