Windows Server 2008

Windows 2008, Terminal Services Session Broker Udostępnij na: Facebook

Opublikowano: 5 czerwca 2007
Autor: Filip Centowski

Zawartość strony
Wstęp  Wstęp
 Instalacja Terminal Services Session Broker na przykładzie Windows Server ‘Longhorn’ Beta 3   Instalacja Terminal Services Session Broker na przykładzie Windows Server ‘Longhorn’ Beta 3
 Przyłączenie serwera terminali do usługi TS Session Broker   Przyłączenie serwera terminali do usługi TS Session Broker
 Konfiguracja Session Broker Load-Balancing   Konfiguracja Session Broker Load-Balancing
 Funkcja Drain-mode   Funkcja Drain-mode

Wstęp

Usługi terminalowe w Windows 2008 zyskały wiele ulepszeń i nowych funkcjonalności. Najbardziej widoczne są one w obszarze drukowania, licencjonowania czy udostępniania zdalnych aplikacji. Jednakże zmiany objęły również mechanizm Session Directory znany z usług terminalowych obecnych w Windows 2003 Enterprise Edition, którego dotyczy niniejsza publikacja. Najbardziej rzucającą się w oczy zmianą, aczkolwiek najmniej istotną z technicznego punktu widzenia, jest zmiana nazwy usługi z Session Directory na Terminal Services Session Broker. Rola TS Session Broker nie tylko przejęła funkcjonalność Session Directory ale wprowadziła kilka istotnych innowacji, o których będzie można przeczytać więcej w dalszej części.

Warto tutaj zwrócić uwagę, iż zasygnalizowane zmiany pokrywają dwa bardzo ważne, z punktu widzenia biznesowego, obszary. Obszar funkcjonalności i obszar dostępności rozwiązania. W pierwszym przypadku powinny usprawnić pracę w środowiskach korzystających z Session directory a zmigrowanych do Windows 2008. W drugim przypadku powinny wpłynąć na popularyzację rozwiązania wśród małych i średnich przedsiębiorstw redukując całkowity koszt posiadania (ang. TCO).

Do tej pory mechanizm Session Directory kojarzył się głównie z dużymi organizacjami, w których występowało wiele serwerów terminali powiązanych mechanizmami równoważenia obciążenia. Koszty tak kompleksowych rozwiązań często stawały na przeszkodzie, aby rozwiązania takie wdrażać w małych organizacjach dysponujących kilkoma serwerami terminali. Za sprawą Windows 2008 sytuacja ta może się zmienić. Jak pamiętamy, Session Directory dostępny był tylko dla usług terminalowych w wersji Windows 2003 Enterprise Editio. Teraz, jak donoszą źródła internetowe, cieszyć się nim będą mogli również posiadacze odmiany Standard produktu Windows 2008 – a więc w przeważającej większości przedstawiciele małego i średniego biznesu. Ale jest jeszcze jedna funkcja, która powinna ich szczególnie zainteresować. Terminal Services Session Broker load balancing to nowa funkcjonalność mająca na celu równoważenie obciążenia w niewielkich grupach serwerów terminali składających się z dwóch do pięciu maszyn. Warto dodać, iż funkcja ta jest niezależna od NLB, nie wymaga stosowania dodatkowych rozwiązań sprzętowych i jest stosunkowo prosta w wdrożeniu, jednakże działa tylko na serwerach terminali Windows 2008.

Na wstępie krótkie wyjaśnienie, a dla większości przypomnienie, czym jest i do czego służy TS Session Broker. Jest to jedna z ról Windows 2008 powiązana ściśle z usługami terminalowymi, pozwalająca użytkownikom ponownie połączyć się do rozłączonych sesji terminalowych w środowisku farmy serwerów terminali. Pod pojęciem farmy rozumiemy zgrupowanie serwerów terminali, do których dostęp uzyskujemy przy współudziale mechanizmów równoważenia obciążenia sieci (np. NLB, HWLB, DNS RR, SBLB). Rola TS Session Broker przechowuje informację o stanie sesji zawierającą identyfikator sesji, nazwę użytkownika powiązaną z danym identyfikatorem oraz nazwę serwera na którym dana sesja jest ulokowana.

Rys. 1. Składowe Terminal Services Session Broker, Windows 2008.

Rys. 1. Składowe Terminal Services Session Broker, Windows 2008.

 Do początku strony Do początku strony

Instalacja Terminal Services Session Broker na przykładzie Windows Server ‘Longhorn’ Beta 3

Przed instalacją należy upewnić się, iż dysponujemy przynajmniej dwoma serwerami terminali należącymi do domeny wyposażonymi w system Windows Server ‘Longhorn’ Beta 3 (w przypadku środowiska mieszanego składającego się z serwerów terminali Windows 2003 nie skorzystamy z funkcjonalności Terminal Services Session Broker load balancing). Jeśli nie zamierzamy korzystać z wbudowanej funkcjonalności Session Broker Load Balancing należy serwery te powierzyć alternatywnemu mechanizmowi równoważenia obciążenia jak NLB, DNS Round Robin czy droższe rozwiązania sprzętowe HWLB. Następnie na jednym z serwerów Windows Server ‘Longhorn’ Beta 3 (w szczególności nie musi być to serwer terminali) instalujemy funkcjonalność TS Session Broker. W tym celu uruchamiamy ‘Server Manager’, przechodzimy w lewym panelu do zakładki ‘Roles’, wykonujemy kliknięcie prawym przyciskiem myszy na zakładce ‘Roles’ i z menu kontekstowego wybieramy ‘Add Roles’. Po chwili pojawi się powitalne okno kreatora, w którym wybieramy ‘Next’. Na liście dostępnych ról zaznaczamy ‘Terminal Services’ (Rys. 2a) i przechodzimy do kolejnego okna wybierając ‘Next’.

Rys. 2a. Instalacja Terminal Services Session Broker, Windows Server ‘Longhorn’ Beta 3.

Rys. 2a. Instalacja Terminal Services Session Broker, Windows Server ‘Longhorn’ Beta 3.

Rys. 2b. Instalacja Terminal Services Session Broker, Windows Server ‘Longhorn’ Beta 3.

Rys. 2b. Instalacja Terminal Services Session Broker, Windows Server ‘Longhorn’ Beta 3.

W kolejnym oknie (Rys. 2b) zaznaczamy interesującą nas usługę TS Session Broker. Należy pamiętać, aby serwer na którym usługę instalujemy był członkiem domeny - w przeciwnym razie instalacja komponentu nie powiedzie się, o czym zostaniemy poinformowani następującym komunikatem (Rys. 3):

Rys. 3. Instalacja Terminal Services Session Broker, Windows Server ‘Longhorn’ Beta 3.

Rys. 3. Instalacja Terminal Services Session Broker, Windows Server ‘Longhorn’ Beta 3.

Wybierając ‘Next’ przechodzimy do kolejnego okna kreatora (Rys. 4). Znajdziemy tam istotną informację, iż konta wszystkich serwerów terminali mających korzystać z roli TS Session Broker musimy manualnie dodać do grupy ‘Session Directory Computers’ (w Windows 2008 grupa ta nosić będzie nazwę ‘Session Broker Computers’), która właśnie została utworzona na serwerze (Rys. 5a). Jeśli tego nie zrobimy serwer co jakiś czas będzie nam o tym przypominał odnotowując zdarzenie w logu systemowym (Rys. 5b). Jest tam również informacja o tym, iż każdy serwer terminali należy osobno skonfigurować, aby partycypował w farmie serwerów działających pod okiem TS Session Broker – szczegółowe informacje znajdzie czytelnik w dalszej części publikacji. Informację potwierdzamy wyborem ‘Install’. Po chwili wszystkie wymagane komponenty zostają zainstalowane – możemy zamknąć kreatora.

Rys. 4. Instalacja Terminal Services Session Broker, Windows Server ‘Longhorn’ Beta 3.

Rys. 4. Instalacja Terminal Services Session Broker, Windows Server ‘Longhorn’ Beta 3.

Rys. 5a. Grupa Session Directory Computers, Windows Server ‘Longhorn’ Beta 3.

Rys. 5a. Grupa Session Directory Computers, Windows Server ‘Longhorn’ Beta 3.

Rys. 5b. Zdarzenie informujące o pustej grupie ‘Session Directory Computers’, Windows Server ‘Longhorn’ Beta 3.

Rys. 5b. Zdarzenie informujące o pustej grupie ‘Session Directory Computers’, Windows Server ‘Longhorn’ Beta 3.

Fakt zainstalowania komponentu widać również w konsoli zarządzania usługami terminalowymi (Rys. 6). Informacje te pokrywają się z podawanymi we właściwościach usługi ‘Terminal Services Session Broker’ dostępnej w ramach konsoli zarządzania usługami systemu Windows Server ‘Longhorn’ Beta 3. Poza usługą dociekliwi odszukają na dysku nowy foler ‘tssesdir’ znajdujący się w C:\Windows\System32. Usługa przechowuje w nim ustawienia konfiguracyjne oraz bazę monitorowanych sesji. Nie znajdziemy natomiast żadnego dodatkowego narzędzia graficznego pozwalającego wpływać na usługę czy zarządzać nią w sposób inny, niż zatrzymanie czy uruchomienie usługi.

Rys. 6. Konsola zarządzania usługami terminalowymi, Windows Server ‘Longhorn’ Beta 3.

Rys. 6. Konsola zarządzania usługami terminalowymi, Windows Server ‘Longhorn’ Beta 3.

 Do początku strony Do początku strony

Przyłączenie serwera terminali do usługi TS Session Broker

Procedurę tę należy przeprowadzić w dwóch krokach. Gdy już mamy wybrany serwer terminali, w pierwszym dodajemy konto takiego komputera do grupy ‘Session Directory Computers’ (w Windows 2008 grupa ta nosić będzie nazwę ‘Session Broker Computers’). Grupę taką odnajdziemy na serwerze usługi TS Session Broker. W drugim kroku przechodzimy na wybrany serwer terminali i uruchamiamy konsolę konfiguracji serwera terminali (Rys. 7).

Rys. 7. Konsola konfiguracji usług terminalowych, Windows Server ‘Longhorn’ Beta 3.

Rys. 7. Konsola konfiguracji usług terminalowych, Windows Server ‘Longhorn’ Beta 3.

Odnajdujemy sekcję TS Session Broker i klikamy dwukrotnie w obszarze ‘Member of farm in TS Session Broker’ (Rys. 8). Następnie zaznaczamy opcję ‘Join a farm in TS Session Broker’ (Rys. 9). W pierwszym dostępnym polu ‘TS Session Broker server name or IP address’ podajemy nazwę (bądź adres IP) serwera na którym zainstalowana jest usługa TS Session Broker. W drugim polu ‘Farm name in TS Session Broker’ podajemy nazwę opisową farmy serwerów terminalowych – jeśli takowa nie istnieje, możemy zostawić nazwę domyślną lub podać własną, wówczas farma taka zostanie utworzona. Zaznaczamy również adres bądź adresy IP jakie mają być wykorzystywane przez usługę terminalową do ponownego nawiązywania połączeń do sesji rozłączonych. W ten sposób serwer przekierowujący będzie przekazywać klientom te adresy IP, które zaznaczyliśmy. Zamiast przekazywania klientom adresów IP serwerów terminalowych można posłużyć się bardziej zaawansowanym mechanizmem, polegającym na opakowaniu adresu IP w token, który używany jest przez serwer przekazujący do przekierowania klienta do właściwego serwera terminali – jednakże mechanizm ten musi być wspierany przez stosowane przez nas rozwiązania równoważenia obciążenia sieci. Więcej szczegółów dotyczących tej kwestii znajdzie Czytelnik pod adresem https://go.microsoft.com/fwlink/?LinkId=18379.

Rys. 8. Zakładka konfiguracji TS Session Broker, Windows Server ‘Longhorn’ Beta 3.

Rys. 8. Zakładka konfiguracji TS Session Broker, Windows Server ‘Longhorn’ Beta 3.

Rys. 9. Zakładka konfiguracji TS Session Broker, Windows Server ‘Longhorn’ Beta 3.

Rys. 9. Zakładka konfiguracji TS Session Broker, Windows Server ‘Longhorn’ Beta 3.

 Do początku strony Do początku strony

Konfiguracja Session Broker Load-Balancing

Mając skonfigurowany mechanizm Terminal Services Session Broker, wciąż brakuje nam funkcji równoważącej obciążenie (wcześniej założyliśmy iż nie korzystamy z NLB, WHLB czy DNS RR). Aktywujemy ją zaznaczając opcję ‘Participate in Session Broker Load-Balancing’ na każdym z serwerów terminalowych Windows Server ‘Longhorn’ Beta 3. Po aktywowaniu pojawia się możliwość ustalenia wagi dla poszczególnych serwerów. Domyślną jest waga 100, im większa waga serwera tym częściej będzie on wybierany do nawiązywania nowych połączeń sesji terminalowych. Oferowany Load-Balancing jest w zupełności niezależny od NLB i opiera się na faktycznej ilości sesji operujących na danym serwerze (przy czym wszystkie sesje liczone są tak samo – nie ma rozróżnienia na sesje aktywne i nieaktywne czy rozłączone). Mechanizm ten jest zaskakująco prosty we wdrożeniu, łatwiejszy od konfiguracji NLB jednakże ze względu na swoją prostotę nie jest zalecany w środowiskach powyżej pięciu serwerów terminali.

Ostatnim niezbędnym krokiem jest utworzenie na serwerze DNS (serwer rozwiązywania nazw) rekordów – w taki sposób, aby każdy serwer terminali posiadał odrębny rekord wiążący jego adres IP z wspólną dla wszystkich serwerów terminalowych uczestniczących w SBLB nazwą, np. ‘tsfarm’ (Rys. 10).

Rys. 10. Konsola zarządzania Domain Name System, Windows Server ‘Longhorn’ Beta 3.

Rys. 10. Konsola zarządzania Domain Name System, Windows Server ‘Longhorn’ Beta 3.

W tym momencie klienci łączący się do farmy serwerów po nazwie wspólnej dla utworzonych w DNS rekordów zostają przekierowani na pierwszy dostępny serwer terminalowy. Będzie to serwer terminalowy, którego adres IP jako pierwszy widnieć będzie na liście jaką klient termialowy otrzyma z serwera DNS. Jeśli serwer terminalowy okaże się niedostępny, po około 20 sekundach klient terminalowy ponowi próbę połączenia z kolejnym serwerem z listy. Pierwszy działający serwer terminali odpowie na połączenie (nazwijmy go serwer pośredniczący) ale nie ustanowi sesji, lecz przekaże zapytanie do usługi TS Session Broker – usługa ta sprawdzi, czy klient nie ma czasem gdzieś rozłączonej sesji. Jeśli tak – adres serwera z rozłączoną sesją zostanie przekazany do klienta poprzez serwer pośredniczący. W przeciwnym razie TS Session Broker podejmie decyzję, gdzie skierować żądanie klienta, po analizie ilości sesji na poszczególnych serwerach terminali oraz po ewentualnych wagach serwerów (jeśli zostały zmienione z domyślnej wartości 100). Również w tym przypadku serwer pośredniczący otrzyma z serwera usługi TS Session Broker informację o tym, do którego serwera terminali klient powinien się połączyć i przekazuje takową informację klientowi. Klient rozłącza się z serwera pośredniczącego i nawiązuje sesję z docelową maszyną – wszystko to jest przeźroczyste dla użytkownika, który co najwyżej oczekuje nieco dłużej na połączenie. Operacja nie wymaga interakcji od użytkownika.

Część czytelników może być zaniepokojona obciążeniem pierwszego serwera z listy DNS, przy takiej konfiguracji. Serwer pierwszy na liście będzie za każdym razem pierwszym serwerem, z którym klienci nawiązują połączenie wstępne. W efekcie mając pięć serwerów terminali i dwudziestu logujących się do farmy w tym samym czasie użytkowników, wszyscy zostaną skierowani na pierwszy serwer, który w ich imieniu będzie odpytywał TS Session directory o docelowy serwer połączeniowy. Aby uniknąć takiej sytuacji można skorzystać z DNS Round Robin lub wręcz posłużyć się NLB do równomiernego rozłożenia połączeń wstępnych – tak aby trafiały do różnych serwerów farmy a nie do pierwszego z listy. Jest również możliwość utworzenia dedykowanego serwera przekierowującego – serwer taki powinien mieć zainstalowane usługi terminalowe i uczestniczyć w farmie serwerów objętych TS Session Broker, jednakże należy na nim zaznaczyć opcję ‘Drain Mode’, o której kilka słów poniżej. W ten sposób gwarantujemy, iż nie będzie on obciążony sesjami terminalowymi i że całą swoją moc będzie mógł wykorzystać na przekazywanie żądań klientów do usługi TS Session Broker oraz zwrotne odpowiadanie adresami docelowych serwerów terminali.

 Do początku strony Do początku strony

Funkcja Drain-mode

Ostatnią nowością, przydatną w środowisku farmy serwerów terminalowych ale nie tylko, jest funkcja ‘Drain Mode’ (Rys. 11). Znajdziemy ją tuż obok zakładki TS Session Broker. Pozwala ona wykluczyć serwer terminali czasowo z pełnionej funkcji w ten sposób, iż nie będzie on przyjmować połączeń terminalowych. Funkcja szczególnie potrzebna gdy prowadzone są prace na serwerze np. wgrywanie poprawek, konieczność wyłączenia maszyny czy też gdy zaczyna brakować zasobów na serwerze i chcemy uniemożliwić nowym użytkownikom logowanie się. Domyślnie zaznaczoną opcją jest zezwolenie na połączenia ‘Allow new user logons (recommended)’. Można również zabronić (do odwołania) logowania poprzez sesję terminalową ‘Deny new users logons’ lub zabronić logowania do następnego restartu ‘Deny new users logons until restart’ (po restarcie maszyny serwer będzie zezwalał na połączenia terminalowe).

Rys. 11. Terminal Server Drain Mode, Windows Server ‘Longhorn’ Beta 3.

Rys. 11. Terminal Server Drain Mode, Windows Server ‘Longhorn’ Beta 3.


Filip Centowski Filip Centowski (MCSE, MCTS, MVP – Windows Networking)
Absolwent Uniwersytetu im. Adama Mickiewicza (kierunek Informatyka) oraz Akademii Ekonomicznej w Poznaniu (Kierunek Ekonomia). Dawniej administrator sieci i serwerów na Wydziale Matematyki i Informatyki UAM obecnie inżynier systemowy. Aktywna działalność w kołach studenckich zaowocowała uzyskaniem tytułu laureata Forum Nestle z dziedziny technologii informatycznych oraz finalisty Procter&Gamble Internet Business Case Studies. Opiekun działu Small Business Server na portalu WSS.pl.
 Do początku strony Do początku strony

Windows Server 2008