terminálový Server je v podstatě stejný jako běžný operační systém Windows Server s výjimkou toho, že v prostředích terminálového serveru byly přidány nebo upraveny klíčové komponenty, aby poskytovaly podporu pro více současných uživatelů.
Microsoft Windows byl vždy“ víceuživatelským “ operačním systémem v tom smyslu, že více uživatelů mohlo být kdykoli připojeno k jednomu serveru. Tito uživatelé však byli připojeni k souborovým službám nebo tiskovým službám na serverech. Provozovali místní rozhraní Windows na svých lokálních počítačích a server podporoval pouze jedno rozhraní plochy prostřednictvím místní klávesnice, myši a monitoru. Hlavní rozdíl oproti terminálovému serveru spočívá v tom, že více uživatelů může na serveru spouštět vlastní relace plochy Windows. Terminálový Server je tedy „multi-user“ v tom smyslu, že podporuje více desktopových rozhraní. Někteří lidé to rádi považují za prostředí „dálkového ovládání“, kromě toho, že terminálový Server může pojmout mnoho uživatelů „dálkové ovládání“ současně, přičemž každý uživatel dělá něco úplně jiného.
aby terminálový Server podporoval více uživatelských relací, musely být provedeny některé změny z běžného softwaru Microsoft Windows server. Existují dva základní rozdíly mezi běžným serverem Windows a jedním s nainstalovaným terminálovým serverem:
- pokud je terminálový Server nainstalován na serveru Windows 2003, některé základní komponenty operačního systému Windows jsou upraveny tak, aby podporovaly více současných uživatelských rozhraní. Například správce virtuální paměti a správce objektů jsou upraveny tak, aby podporovaly více simultánních rozhraní plochy, aniž by došlo k záměně. Jedná se o hlavní úpravy, které vyžadují restartování systému po instalaci terminálového serveru.
- při instalaci terminálového serveru jsou přidány nové služby a komponenty, které umožňují serveru podporovat více uživatelských relací. Nejdůležitější z nich je služba“ terminálový Server“. Tato služba, která běží hluboko uvnitř serveru, je zodpovědná za propojení více uživatelských relací s operačním systémem. Je také zodpovědný za funkce, jako je vytváření relací, přijímání uživatelů a ukončení relací.
komponenty terminálového serveru
i když se zdá, že terminálový Server je v podstatě oslavovaný systém PCAnywhere, je to vlastně komplexní systém složený z několika různých komponent, subsystémů a rozhraní. Úplnější schéma komponent terminálového serveru je znázorněno na obrázku 2.1. Podívejte se na to, jak si přečtete několik následujících částí popisujících každou součást, která tvoří terminálový Server Windows 2003.
obrázek 2.1: Komponenty Terminal Server 2003
jádro Windows Server 2003
vzpomenete si, že klíčovou součástí jakéhokoli serverového výpočetního prostředí je operační systém pro více uživatelů. V systému Windows Server 2003 je tento systém řízen jádrem.
Windows Server 2003 potřebuje způsob, jak distancovat kritické součásti operačního systému od všech bláznivých uživatelů. K dosažení tohoto cíle fungují procesy Windows V jednom ze dvou režimů: uživatelský režim nebo režim jádra. Když si vzpomenete na školení systému Windows NT, budete si pamatovat, že aplikace uživatelského režimu nemůže zapisovat přímo do paměti operačního systému. Místo toho má plný přístup k vlastnímu paměťovému prostoru 4 GB. Komponenta operačního systému nazvaná Správce virtuální paměti (která sama běží v režimu jádra) to vše řídí a zapisuje do systémové paměti jménem aplikace v uživatelském režimu.
v prostředích terminálových serverů umožňuje oddělení aplikací uživatelského režimu a režimu jádra systému oddělit a izolovat uživatele. Pád aplikace jednoho uživatele nesundá celý systém. (Samozřejmě si myslíte, že selhání aplikace může odstranit systém, který je však obvykle spojen s ovladači zařízení, které běží v režimu jádra.)
v prostředích Windows“ standard “ (tj. Non-Terminal Server), kde se interaktivně přihlásí pouze jeden uživatel, všechny procesy v režimu jádra žijí šťastně společně v jedné oblasti paměti a jmenném prostoru. V prostředích pro více uživatelů, jako je terminálový Server, však toto sdílení nebude fungovat, protože požadavky z relací různých uživatelů by mohly být ve vzájemném konfliktu. Jádro na terminálovém serveru je proto vědomo více relací; udržuje relaci každého uživatele oddělenou izolovanými procesy a pamětí. Windows Server 2003 provede některé změny v jádře, když je nainstalována součást terminálového serveru, aby toho bylo dosaženo.
nejprve server umístí část adresového prostoru jádra do virtuální paměti. To umožňuje, aby byly v prostředí pro jednoho uživatele správně zpracovány konfliktní požadavky v prostředí pro více uživatelů a aby bylo možné načíst a používat více uživatelů více instancí ovladačů zařízení v režimu jádra (důvod, proč jeden uživatel může technicky havarovat celý systém).
některé systémové procesy nejsou specifické pro relaci, což znamená, že k nim budou potřebovat přístup všichni uživatelé ve všech relacích. Tyto procesy jsou uloženy v jedné (globální) oblasti paměti sdílené všemi uživateli.
vedlejším účinkem sdílení procesů, jako je tento v prostředí terminálového serveru, je to, že někdy narazíte na procesy, které nejsou “ session aware.“Jedním z potenciálních (a trochu vtipných) výsledků mohou být chybové zprávy, které se zobrazují na konzoli serveru z aplikací spuštěných v relaci uživatele. Protože v serverové místnosti obvykle není nikdo, kdo by zprávu potvrdil, existuje možnost zabránit tomu, aby aplikace uživatele pokračovala.
služba terminálových služeb
„služba terminálových služeb“ označuje běžnou službu systému Windows (nástroje pro spuštění | správu | služby) nazvanou “ Terminálové služby.“V reálném světě lidé obvykle odkazují na to jako „terminálová služba“ a používají termín „terminálový Server“, když odkazují na server Windows, který provozuje terminálovou službu.
pokud je jádro pro více uživatelů základem serverových výpočtů v systému Windows Server 2003, je základním kamenem terminálová služba. Tato služba (načten přes termserv.dll) je načten hned po připojení jádra. Po načtení konzoly serveru (ovladače klávesnice, videa a myši) služba terminálu zahájí subsystém Správce relací (smss).exe) odpovědný za správu a sledování všech uživatelských relací na serveru.
relace terminálového serveru
Nová relace je vytvořena pokaždé, když se uživatel přihlásí na terminálový Server. Relace se v podstatě skládá z virtuální plochy, ze které může uživatel spouštět aplikace a se kterými může komunikovat stejně jako s pracovní stanicí. Relace serveru by neměla být zaměňována s konzolou serveru, protože relace není dálkové ovládání konzoly, ale ve skutečnosti nová plocha oddělená od konzoly.
pokaždé, když se uživatel připojí k terminálovému serveru a vytvoří tuto „virtuální plochu“, vytvoří se jedinečné ID relace, které odliší uživatele (a tedy procesy uživatele) od všech ostatních relací a uživatelů. ID relace také umožňují serveru udržovat paměť oddělenou pro relaci každého uživatele. Když se uživatel odhlásí z klienta terminálových služeb, relace, která byla použita, je odstraněna a procesy a paměť, které byly spuštěny a používány touto relací, jsou odstraněny. Každý terminálový Server sleduje své vlastní ID relace a zpracovává úkol jejich vydávání, sledování a odstraňování.
vzhledem k tomu, že relace serveru jsou „virtuální“ (a paměť a procesy jsou mezi relacemi odděleny), selhání nebo uzamčení aplikace v jedné relaci by nemělo ovlivnit žádné další relace uživatelů, i když ostatní uživatelé používají stejnou aplikaci.
klíčová fráze zde však zní „neměla by“ ovlivnit ostatní uživatele. I když jsou uživatelské relace na serveru oddělené, stále sdílejí zdroje serveru a určité segmenty kódu. Pokud jeden uživatel vyvolá proces, který způsobí modrou obrazovku serveru, bude to mít samozřejmě vliv na ostatní uživatele. Na druhou stranu jednoduché události, jako je aplikace visící na vypršeném požadavku nebo zhroucení aplikace Microsoft Word, když uživatel otevře poškozený dokument, neuvidí ostatní uživatelé (v rámci svých vlastních relací) v systému.
stavy relace
vzhledem k tomu, že relace je skutečně pracovní plocha uživatele, jsou chvíle, kdy relace může být v různých různých stavech, podobně jako normální pracovní stanice. Pokud například uživatel po určitou dobu odejde ze své pracovní stanice, pracovní stanice se nevypne. Spíše je pouze nečinný a čeká na vstup uživatele. Relace terminálového serveru se chovají téměř stejně a mohou být v jednom z mnoha různých stavů v závislosti na aktivitě uživatele (nebo nečinnosti), připojení mezi klientem a serverem a nastavení časového limitu relace.
obrázek 2.2: každý terminálový Server udržuje mnoho samostatných uživatelských relací
všechny uživatelské relace na terminálovém serveru musí být v jednom z následujících šesti stavů:
- aktivní je živý a aktivní uživatel. Uživatel interaguje s relací terminálového serveru a neměl období nečinnosti nebo odpojení sítě od serveru. Toto je „normální“ stav relace.
- Idle je stav, do kterého relace přejde, když po určitou dobu není od uživatele zadán žádný vstup.
- k odpojeným relacím dochází, když jsou spuštěny procesy a programy „živé“ relace, ale není připojen žádný klient RDC. (Pokud jste vynechali první kapitolu, „RDC Client“ je nový název pro klienta RDP.) Běžnou příčinou je odpojení sítě nebo když uživatel klikne na „X“ v pravém horním rohu svého klientského softwaru RDC. Uživatel se může znovu připojit ke své odpojené relaci a přivést ji zpět do „aktivního“ stavu(a vyzvednout svou práci tam, kde skončil). Představte si odpojenou relaci jako uzamčenou pracovní stanici, kromě toho, že uživatel může „odemknout“ svou pracovní stanici z libovolného počítače v budově.
- připojené relace jsou ve stavu, ve kterém je klientské zařízení připojeno k relaci serveru, ale žádný uživatel není přihlášen, podobně jako výzva CTRL + ALT+DEL na pracovní stanici.
- Down je dočasný stav, ve kterém je relace ukončena a procesy v rámci relace jsou zabity. Dolů je konečný stav relace před jejím ukončením.
- Listen je stav viditelný pouze na portech posluchače, které jsou připraveny přijímat příchozí připojení. Tento stav se nevztahuje na pravidelné zasedání. Spíše se vztahuje na procesy běžící na serveru, které čekají na (poslouchat) nové požadavky na připojení relace.
ve většině prostředí Administrátoři konfigurují relace s různými časovými limity. Můžete omezit dobu, po kterou lze otevřít jednu relaci, nebo můžete automaticky převést nečinnou relaci na odpojenou relaci. Časové limity pomáhají omezit čas, který server stráví prováděním procesů pro uživatele, kteří na serveru skutečně nepracují. Budeme pokrývat přesné techniky a strategie pro jejich konfiguraci později v této knize.
připojovací porty a posluchači
každá relace RDP uživatele se připojuje k terminálovému serveru prostřednictvím připojovacího portu. Připojovací port (běžně označovaný pouze jako „připojení“) je virtuální port na serveru spojený s konkrétní kombinací síťové karty a protokolu.
jeden port připojení terminálového serveru se automaticky vytvoří při instalaci komponenty terminálového serveru. Ve výchozím nastavení umožňuje každému uživateli ve skupině „uživatelé vzdálené plochy“ připojit se k relacím terminálového serveru na serveru prostřednictvím jakékoli síťové karty. Přestože výchozí port připojení pracuje s jakoukoli síťovou kartou s nainstalovaným protokolem TCP / IP, porty připojení terminálového serveru jsou skutečně specifické pro síťovou kartu. Server s více síťovými kartami můžete nakonfigurovat tak, aby měl více portů pro připojení terminálového serveru-jeden pro každou kartu. Ve skutečnosti může mít každé připojení zcela odlišné vlastnosti a oprávnění.
obrázek 2.3: terminálový Server s více připojovacími porty
připojení terminálového serveru a jejich přidružené posluchače lze konfigurovat na dvou místech. První je pomocí modulu snap-in MMC konfigurace terminálových služeb (TSC). TSC můžete použít ke konfiguraci možností připojení terminálového serveru založených na RDP, jako jsou nastavení, oprávnění a na které síťové kartě je připojení platné. Druhý způsob konfigurace připojení terminálového serveru je pomocí objektu zásad skupiny Active Directory (GPO)v doméně systému Windows 2003. Tato funkce umožňuje přiřadit připojení pro více serverů obsažených s OU ve službě Active Directory.
posluchači
každý port připojení terminálového serveru má podsložku nazvanou “ listener.“Komponenta listener“ naslouchá “ na konkrétní síťové kartě a kombinaci protokolu, pro kterou je nakonfigurován port připojení. Když chce uživatel navázat novou relaci na serveru, použije ke kontaktování serveru svůj klientský software RDC. Posluchač serveru zvedne požadavek klienta a předá jej správci relace. Posluchač se pak vrátí k poslechu pro další požadavky na připojení.
virtuální kanály
jak jsme již dříve diskutovali, protokol RDP společnosti Microsoft běžící na protokolu TCP / IP je skutečný protokol, který spojuje uživatele se serverovými relacemi. Zmínili jsme také, že tento protokol může podporovat více než jen čisté virtuální plochy. RDP umožňuje vzdálené relace zvuk ze serveru, které mají být směrovány do reproduktorů klientského zařízení. Umožňuje také, aby zařízení připojená k sériovým portům klienta vypadala, jako by byla připojena k serveru. Tyto „doplňky“ jsou k dispozici prostřednictvím virtuálních kanálů RDP. Virtuální kanál je jednoduše mechanismus pro přesun dat tam a zpět mezi relací terminálového serveru a klientem. Ve výchozím nastavení protokol RDP na terminálovém serveru 2003 obsahuje několik virtuálních kanálů.
- zvuk: Zvukové události generované v relaci serveru jsou přesměrovány protokolem RDP do klientského zařízení RDC, kde jsou přehrávány na reproduktorech klienta.
- klientské jednotky: Lokální diskové jednotky v klientském zařízení jsou zpřístupněny serveru, takže uživatelé mohou přistupovat jak k serverovým jednotkám, tak k místním jednotkám klientských zařízení v rámci svých vzdálených relací.
- tiskárny: Tiskárny dostupné klientskému zařízení před spuštěním relace na terminálovém serveru jsou zpřístupněny uživatelům v rámci relací serveru. Uživatelé pak mohou tisknout na své standardní tiskárny Windows, včetně tiskáren přímo připojených k jejich klientským zařízením.
- sériové porty: virtuální kanál sériového portu umožňuje přístup k zařízením připojeným k sériovému portu klientského zařízení prostřednictvím relací vzdáleného terminálového serveru.
- Windows Clipboard: za účelem integrace místních aplikací se vzdálenými relacemi terminálového serveru synchronizuje virtuální kanál Windows clipboard obsah schránky vzdáleného terminálového serveru s obsahem schránky klientského zařízení. Uživatelé mohou bez problémů vyjmout a vložit mezi místní a vzdálené aplikace.
pokud výchozí virtuální kanály nesplňují vaše potřeby, MSDN a sady SDK Windows Server 2003 obsahují informace o psaní vlastních virtuálních kanálů. Virtuální kanál je kombinací dvou komponent-komponenty na straně klienta a komponenty na straně serveru. Oba mohou odesílat a přijímat data prostřednictvím virtuálního kanálu, což umožňuje jednosměrnou nebo obousměrnou komunikaci. Virtuální kanály mohou být také RDP nezávislé, což znamená, že si můžete přizpůsobit prostředí bez upgradu nebo změny skutečného klientského nebo serverového softwaru.
proč všechny zaměření na virtuální kanály? Ačkoli to není kniha vývojáře a pravděpodobně nikdy nevyvinete svůj vlastní virtuální kanál, je důležité, abyste pochopili, jak fungují. Téměř každý doplňkový produkt třetích stran pro terminálový Server využívá virtuální kanály. Pochopení toho, jak fungují virtuální kanály, vám pomůže vyřešit problémy s produkty třetích stran, se kterými se v kariéře terminálového serveru nepochybně setkáte.
s tím bylo řečeno, pojďme se konečně podívat na architekturu virtuálního kanálu. Viz obrázek 2.4.
obrázek 2.4: Architektura virtuálního kanálu Terminal Server 2003
komponenta virtuálního kanálu na straně serveru je obvykle spustitelný soubor běžící na terminálovém serveru. Tato komponenta musí být součástí uživatelského režimu, protože server používá ID relace k určení, ze které relace na straně klienta by měl přenášet a přijímat data.
komponenta virtuálního kanálu na straně klienta je obvykle DLL poskytovaná společností Microsoft, dodavatelem softwaru třetích stran nebo vlastními vývojáři. DLL musí být načtena do klientského počítače, když je spuštěn klientský program RDC a zahájí připojení k serveru. Ve většině případů je to skriptováno nebo prováděno programově na úrovni klienta.
jak všechny tyto komponenty do sebe zapadají
Nyní, když rozumíte každé z různých komponent terminálového serveru, podívejme se, jak se všechny hodí dohromady. Postupujte podle postupu, který probíhá při navázání připojení klienta, s odkazem na obrázek 2.5.
obrázek 2.5: Nová relace je vytvořena
- než se něco stane, posluchači na terminálovém serveru sledují určité síťové karty, IP adresu a kombinace portů TCP pro příchozí požadavky na zahájení relací.
- uživatel se rozhodne použít vzdálenou aplikaci, takže spustí svého klienta RDC a požádá o připojení k “ server1.“Její klient RDC zkontroluje, zda jsou nainstalovány DLL virtuálních kanálů.
- v tomto prostředí název „server1“ odkazuje na IP adresu 192.168.14.42 (což je na tomto serveru NIC #1). Klient RDC uživatele odešle požadavek na připojení relace na 192.168.14.42.
- posluchač serveru zvedne požadavek a předá jej správci relace. Jakmile správce relace převezme, posluchač pokračuje v poslechu pro více relací.
- server vyjednává s požadujícím klientem o jeho úrovni šifrování a funkcích virtuálních kanálů.
- uživatel je poté ověřen k doméně a její práva jsou zkontrolována pro přístup k připojení.
- licence společnosti Microsoft jsou ověřeny. Nejprve je ověřena licence pro přístup klienta serveru a poté je ověřena licence pro přístup klienta terminálového serveru. (Licencování je podrobně popsáno v kapitole 4.)
- v tomto okamžiku je uživatelská relace připravena k zahájení. Přihlašovací skripty se spustí a pracovní plocha se načte.
v systému Windows Server 2003 je port posluchače spojen s “ připojením.“Ve skutečnosti jsou tyto dva pojmy téměř zaměnitelné. Nakonfigurujete vlastnosti pro připojení a port posluchače připojení je vhodně upraven.
Nyní, když jsme pokryli všechny komponenty, které tvoří terminálový Server systému Windows 2003, přejděte na požadavky.