Terminaalipalvelin on periaatteessa sama kuin tavallinen Windows Server-käyttöjärjestelmä, paitsi että Terminaalipalvelinympäristöissä keskeiset komponentit on lisätty tai muutettu tukemaan useita samanaikaisia käyttäjiä.
Microsoft Windows on aina ollut ”monen käyttäjän” käyttöjärjestelmä siinä mielessä, että useampi käyttäjä voi olla kytkettynä yhteen palvelimeen milloin tahansa. Nämä käyttäjät olivat kuitenkin yhteydessä palvelimien tiedostopalveluihin tai tulostinpalveluihin. He suorittivat paikallisia Windows-käyttöliittymiään paikallisissa tietokoneissaan, ja palvelin tuki vain yhtä työpöytäliittymää paikallisen näppäimistön, hiiren ja näytön kautta. Suurin ero Terminal Serverin kanssa on se, että useat käyttäjät voivat suorittaa omia Windows-työpöytäistuntojaan palvelimella. Terminal Server on siis ”monikäyttäjä” siinä mielessä, että se tukee useita työpöytäliittymiä. Jotkut ihmiset haluavat ajatella tätä ”kaukosäädin” ympäristö, paitsi että Terminal Server mahtuu monet käyttäjät ”etäohjaus” se samaan aikaan, jokainen käyttäjä tekee jotain täysin erilaista.
jotta Terminal Server tukisi useita käyttäjäsessioita, siihen piti tehdä joitakin muutoksia tavallisesta Microsoft Windows server-ohjelmistosta. Tavallisen Windows Serverin ja Terminal serverin välillä on kaksi perustavanlaatuista eroa:
- kun Terminal Server asennetaan Windows 2003-palvelimeen, tietyt Windows-käyttöjärjestelmän ydinosat muutetaan tukemaan useita samanaikaisia käyttöliittymiä. Esimerkiksi virtual memory manager ja object manager on muokattu tukemaan useita, samanaikaisia työpöytäliittymiä sekoittumatta. Nämä ovat suuria muutoksia, jotka edellyttävät järjestelmän uudelleenkäynnistämistä Terminal Serverin asentamisen jälkeen.
- Terminal Serverin asennuksen yhteydessä lisätään uusia palveluita ja komponentteja, joiden avulla palvelin voi tukea useita käyttäjäsessioita. Näistä tärkein on” Terminal Server ” – palvelu. Tämä palvelu, joka kulkee syvällä palvelimen sisällä, on vastuussa useiden käyttäjien istuntojen liittämisestä käyttöjärjestelmään. Se on myös vastuussa toiminnoista, kuten istuntojen luomisesta, käyttäjien vastaanottamisesta ja istuntojen päättämisestä.
Terminal Server Components
vaikka näyttää siltä, että Terminal Server on pohjimmiltaan kirkastettu PCAnywhere-järjestelmä, se on itse asiassa monimutkainen järjestelmä, joka koostuu useista eri komponenteista, alijärjestelmistä ja liitännöistä. Täydellisempi kaavio päätepalvelimen osista on esitetty kuvassa 2.1. Katso sitä lukiessasi läpi muutaman seuraavan osan, joissa kuvataan jokainen komponentti, joka muodostaa Windows 2003 Terminal Server.
Kuva 2.1: Terminal Server 2003 komponentit
Windows Server 2003 Kernel
muistat, että minkä tahansa palvelinpohjaisen laskentaympäristön keskeinen komponentti on monen käyttäjän käyttöjärjestelmä. Windows Server 2003: ssa tätä järjestelmää ohjaa ydin.
Windows Server 2003 tarvitsee keinon etäännyttää kriittiset käyttöjärjestelmän osat kaikista hulluista käyttäjistä. Tämän saavuttamiseksi Windows-prosessit toimivat jommassakummassa kahdesta tilasta: käyttäjätilassa tai ytimen tilassa. Kun muistelet Windows NT-koulutustasi, muistat, että käyttäjätilan sovellus ei voi kirjoittaa suoraan käyttöjärjestelmän muistiin. Sen sijaan sillä on täysi pääsy omaan 4GB-muistiavaruuteensa. Käyttöjärjestelmän komponentti nimeltä virtual memory manager (joka itse toimii kernel-tilassa) ohjaa tätä kaikkea ja kirjoittaa järjestelmän muistiin käyttäjätilasovelluksen puolesta.
Päätepalvelinympäristöissä käyttäjätilan ja ydintilan sovellusten erottaminen mahdollistaa järjestelmän käyttäjien erottamisen ja eristämisen. Yhden käyttäjän sovelluksen kaatuminen ei kaada koko järjestelmää. (Tietenkin olet ajatellut, että sovelluksen kaatuminen voi kaataa järjestelmän, kuitenkin, joka on yleensä sidottu laiteajureihin, jotka toimivat ytimen tilassa.)
”standardissa” (eli ei-Terminaalipalvelimessa) Windows-ympäristöissä, joissa vain yksi käyttäjä kirjautuu vuorovaikutteisesti, kaikki ydintilan prosessit elävät onnellisesti yhdessä yhdellä muistialueella ja nimiavaruudessa. Usean käyttäjän ympäristöissä, kuten Terminal Server, tämä jakaminen ei kuitenkaan toimi, koska eri käyttäjien istuntojen pyynnöt voivat olla ristiriidassa keskenään. Päätepalvelimen ydin on näin ollen monistustietoinen; se pitää jokaisen käyttäjän istunnon erillään erillisillä prosesseilla ja muistilla. Windows Server 2003 tekee joitakin muutoksia ytimeen, kun Terminal Server-komponentti on asennettu tämän saavuttamiseksi.
ensin palvelin sijoittaa osan ytimen muistiosoiteavaruudesta virtuaalimuistiin. Tämä mahdollistaa sen, että yhden käyttäjän ympäristössä olevat ristiriitaiset pyynnöt voidaan käsitellä oikein usean käyttäjän ympäristössä ja että useat käyttäjät voivat ladata ja käyttää useita kernel-tilan laiteajureita (syy siihen, miksi yksi käyttäjä voi teknisesti kaataa koko järjestelmän).
jotkin järjestelmäprosessit eivät ole istuntokohtaisia, mikä tarkoittaa, että kaikkien istuntojen kaikki käyttäjät tarvitsevat niihin pääsyn. Nämä prosessit tallennetaan yhdelle (maailmanlaajuiselle) muistialueelle, joka on kaikkien käyttäjien yhteinen.
tämän kaltaisten prosessien jakamisen sivuvaikutus Terminal Server-ympäristössä on se, että joskus törmäät prosesseihin, jotka eivät ole ”session aware.”Yksi mahdollinen (ja eräänlainen hauska) tulos voi olla virheilmoituksia, jotka näkyvät palvelimen konsolin sovelluksia käynnissä käyttäjän istunto. Koska palvelinhuoneessa ei yleensä ole ketään kuittaamassa viestiä, on mahdollista estää käyttäjän sovelluksen jatkuminen.
Terminal Services-palvelu
” Terminal Services Service ”tarkoittaa” Terminal Services ” – nimistä säännöllistä Windows-palvelua (Start | Administrative Tools | Services).”Todellisessa maailmassa ihmiset kutsuvat sitä yleensä ”Terminaalipalveluksi”, ja he käyttävät termiä” Terminaalipalvelin ” viitatessaan Windows-palvelimeen, joka pyörittää Terminaalipalvelua.
jos usean käyttäjän ydin on Windows Server 2003: n palvelinpohjaisen laskennan perusta, päätepalvelu on kulmakivi. Tämä palvelu (ladattu termserv.dll) ladataan heti ytimen tultua verkkoon. Kun palvelimen konsoli (näppäimistö -, video-ja hiiriohjaimet) on ladattu, päätepalvelu käynnistää istunnonhallinnan alijärjestelmän (smss).exe) vastaa kaikkien Palvelimella olevien käyttäjäistuntojen hallinnoinnista ja seurannasta.
Terminal Server Sessions
uusi istunto luodaan joka kerta, kun käyttäjä kirjautuu Terminal Serverille. Istunto koostuu pääasiassa virtuaalisesta työpöydästä, josta käyttäjä voi suorittaa sovelluksia ja jonka kanssa hän voi olla vuorovaikutuksessa aivan kuten työaseman kanssa. Palvelinistuntoa ei pidä sekoittaa palvelinkonsoliin, sillä istunto ei ole konsolin kaukosäädin vaan oikeastaan konsolista erillinen uusi työpöytä.
joka kerta, kun käyttäjä muodostaa yhteyden päätepalvelimeen ja luo tämän ”virtuaalityöpöydän”, luodaan yksilöllinen istuntotunnusnumero, joka erottaa käyttäjän (ja siten käyttäjän prosessit) kaikista muista istunnoista ja käyttäjistä. Istuntotunnusten avulla palvelin voi myös pitää muistin erillään kunkin käyttäjän istunnosta. Kun käyttäjä kirjautuu ulos Terminal Services-asiakasohjelmasta, käytetty istunto poistetaan ja kyseisen istunnon käynnistämät ja käyttämät prosessit ja muisti poistetaan. Jokainen päätepalvelin seuraa omia Istuntotunnuksiaan ja hoitaa niiden myöntämisen, seurannan ja poistamisen.
koska palvelinistunnot ovat ”virtuaalisia” (ja muisti ja prosessit pidetään erillään istunnoista), sovelluksen kaatuminen tai lukittuminen yhteen istuntoon ei saisi vaikuttaa muihin käyttäjäistuntoihin, vaikka muut käyttäjät käyttäisivät samaa sovellusta.
avainlause tässä on kuitenkin ”ei saisi” vaikuttaa muihin käyttäjiin. Vaikka käyttäjän istunnot ovat erillisiä palvelimella, ne silti jakavat palvelimen resursseja ja tiettyjä koodisegmenttejä. Jos yksi käyttäjä vetoaa prosessi, joka aiheuttaa palvelimen sininen näyttö, Tämä on tietenkin vaikutusta muihin käyttäjiin. Toisaalta, yksinkertaisia tapahtumia, kuten sovellus roikkuu aikakatkaisupyynnön tai Microsoft Word kaatuu, kun käyttäjä avaa korruptoituneen asiakirjan ei nähdä muut käyttäjät (omassa istunnossaan) järjestelmässä.
Session States
koska istunto on todella käyttäjän työpöytä, on aikoja, jolloin sessio voi olla monessa eri tilassa, aivan kuten normaali työasema. Jos käyttäjä esimerkiksi kävelee pois työasemaltaan joksikin aikaa, työasema ei sammu. Pikemminkin, se on vain tyhjäkäynnillä, odottaa käyttäjän syöttää. Terminal server-istunnot käyttäytyvät paljolti samalla tavalla, ja ne voivat olla yhdessä useista eri tiloista riippuen käyttäjän toiminnasta (tai toimimattomuudesta), asiakkaan ja palvelimen välisestä yhteydestä ja istunnon aikalisäasetuksista.
Kuva 2.2: jokaisella Terminaalipalvelimella on useita erillisiä käyttäjäistuntoja
kaikkien päätelaitteen Palvelimella olevien käyttäjien istuntojen on oltava jossakin seuraavista kuudesta tilasta:
- Active on elävä ja aktiivinen käyttäjä. Käyttäjä on vuorovaikutuksessa Terminal Server-istunnon kanssa, eikä hänellä ole ollut toimimattomuutta tai verkon katkaisua palvelimesta. Tämä on istunnon ”normaali” tila.
- joutokäynti on tila, johon istunto menee, kun käyttäjältä ei ole syötettä tiettyyn ajanjaksoon.
- katkaistut istunnot tapahtuvat, kun ”live” – istunnon prosessit ja ohjelmat ovat käynnissä, mutta RDC-asiakasohjelmaa ei ole kytketty. (Jos ohitat ensimmäisen luvun, ”RDC Client” on uusi nimi RDP Client.) Yleinen syy on verkon katkeaminen tai kun käyttäjä napsauttaa RDC-asiakasohjelmistonsa oikeassa yläkulmassa olevaa ”X”: ää. Käyttäjä voi muodostaa yhteyden katkaistuun istuntoonsa palauttaakseen sen ”aktiiviseen” tilaan (ja jatkaakseen työtään siitä, mihin jäi). Ajattele irrallista istuntoa kuin lukittua työasemaa, paitsi että käyttäjä voi ”avata” työasemansa miltä tahansa rakennuksen tietokoneelta.
- yhdistetyt istunnot ovat tilassa, jossa asiakaslaite on yhteydessä palvelinistuntoon, mutta Yksikään käyttäjä ei ole kirjautunut sisään, aivan kuten CTRL+ALT+DEL-kehote työasemalla.
- Down on väliaikainen tila, jossa istunto lopetetaan ja istunnossa tapahtuvat prosessit lopetetaan. Alas on istunnon viimeinen tila ennen sen päättymistä.
- Kuuntele on tila, joka näkyy vain kuuntelijaporteissa, jotka ovat valmiita hyväksymään saapuvia yhteyksiä. Tämä tila ei koske säännöllisiä istuntoja. Pikemminkin se koskee palvelimella käynnissä olevia prosesseja, jotka odottavat (kuunnella) uusia istuntoyhteyspyyntöjä.
useimmissa ympäristöissä järjestelmänvalvojat määrittävät istuntoja erilaisilla aikakatkaisuilla. Voit rajoittaa aikaa, jonka yksi istunto voi olla auki, tai voit muuntaa käyttämättömän istunnon automaattisesti irrotetuksi istunnoksi. Aikakatkaisut auttavat rajoittamaan aikaa, jonka palvelin käyttää sellaisten käyttäjien prosessien suorittamiseen, jotka eivät todellisuudessa toimi palvelimella. Katamme tarkat tekniikat ja strategiat näiden konfiguroimiseksi myöhemmin tässä kirjassa.
Yhteysportit ja Kuuntelijat
jokaisen käyttäjän RDP-istunto kytkeytyy päätepalvelimeen yhteysportin kautta. Yhteysportti (yleisesti vain ”yhteys”) on palvelimen virtuaalinen portti, joka liittyy tiettyyn verkkokortin ja protokollan yhdistelmään.
yksi Terminaalipalvelinyhteysportti luodaan automaattisesti, kun Terminaalipalvelinkomponentti on asennettu. Oletusarvoisesti se sallii kenen tahansa ”etätyöpöytäkäyttäjät” – ryhmän käyttäjän muodostaa yhteyden palvelimen Päätepalvelinistuntoihin millä tahansa verkkokortilla. Vaikka oletusliitäntäportti toimii minkä tahansa verkkokortin kanssa, jossa on TCP/IP asennettuna, Päätepalvelinyhteysportit ovat todella verkkokorttikohtaisia. Voit määrittää palvelimen, jossa on useita verkkokortteja, niin että siinä on useita Päätepalvelinyhteysportteja—yksi jokaiselle kortille. Itse asiassa jokaisella yhteydellä voi olla täysin erilaiset ominaisuudet ja käyttöoikeudet.
Kuva 2.3: päätepalvelin, jossa on useita liitäntäportteja
Päätepalvelinyhteydet ja niihin liittyvät kuuntelijat voidaan konfiguroida kahteen paikkaan. Ensimmäinen on Terminal Services Configuration (TSC) MMC-laajennuksen kautta. TSC: n avulla voit määrittää RDP-pohjaisten Päätepalvelinyhteyksien vaihtoehtoja, kuten asetuksia, käyttöoikeuksia ja sitä, minkä verkkokortin kautta yhteys on voimassa. Toinen tapa määrittää Terminaalipalvelinyhteydet on Active Directory Group Policy Object (GPO) Windows 2003-toimialueessa. Tämän toiminnon avulla voit määrittää yhteyksiä useille Active Directoryn OU: n sisältämille palvelimille.
kuuntelijat
jokaisella Terminaalipalvelimen yhteysportilla on alikomponentti, jota kutsutaan ”kuuntelijaksi.”Kuuntelijakomponentti” kuuntelee ” tiettyä verkkokortin ja protokollan yhdistelmää, jolle yhteysportti on määritetty. Kun käyttäjä haluaa perustaa palvelimelle uuden istunnon, hän ottaa yhteyttä palvelimeen RDC-asiakasohjelmistollaan. Palvelimen kuuntelija poimii asiakkaan pyynnön ja välittää sen edelleen istunnonhallintaan. Kuuntelija sitten menee takaisin kuunteluun lisää yhteyden pyyntöjä.
kuten aiemmin keskustelimme, Microsoftin TCP/IP: llä toimiva RDP-protokolla on varsinainen protokolla, joka yhdistää käyttäjät palvelinistuntoihin. Mainitsimme myös, että tämä protokolla voi tukea muutakin kuin puhtaita virtuaalisia työpöytiä. RDP mahdollistaa etäistunnon äänen kanavoimisen palvelimelta asiakaslaitteen kaiuttimiin. Se mahdollistaa myös laitteiden kytketty asiakkaan sarjaportit näkyvät ikään kuin ne on kytketty palvelimeen. Nämä ”extrat” ovat saatavilla RDP: n virtuaalikanavien kautta. Virtuaalinen kanava on yksinkertaisesti mekanismi siirtää tietoja edestakaisin Terminal Server-istunnon ja asiakkaan välillä. Oletuksena Terminal Server 2003: n RDP-protokolla sisältää useita virtuaalikanavia.
- ääni: Palvelinsessiossa syntyvät äänitapahtumat ohjataan RDP-protokollan kautta RDC-asiakaslaitteeseen, jossa ne toistetaan asiakkaan kaiuttimilla.
- Asiakasasemat: asiakaslaitteen paikalliset levyasemat asetetaan palvelimelle, jotta käyttäjät voivat käyttää sekä palvelinasemia että paikallisia asiakaslaitteen asemia etäistunnoissaan.
- tulostimet: tulostimet, jotka ovat käytettävissä asiakaslaitteessa ennen istunnon käynnistämistä Päätepalvelimella, asetetaan käyttäjien saataville heidän palvelinistunnoistaan. Käyttäjät voivat sitten tulostaa tavallisiin Windows-tulostimiinsa, mukaan lukien suoraan asiakaslaitteisiinsa liitetyt tulostimet.
- sarjaportit: sarjaportin virtuaalikanava mahdollistaa asiakaslaitteen sarjaporttiin liitettyjen laitteiden käytön etäpäätinpalvelinistuntojen kautta.
- Windowsin Leikepöytä: paikallisten sovellusten integroimiseksi Etäpäätinpalvelinistuntoihin Windowsin leikepöydän virtuaalikanava synkronoi etäpäätinpalvelimen leikepöydän sisällön asiakaslaitteen leikepöydän sisältöön. Käyttäjät voivat saumattomasti leikata ja liittää paikallisten ja etäsovellusten välillä.
jos oletuskanavat eivät vastaa tarpeitasi, MSDN ja Windows Server 2003 SDK sisältävät tietoa omien muokattujen virtuaalikanavien kirjoittamisesta. Virtuaalinen kanava on kahden komponentin yhdistelmä-asiakaspuolen komponentti ja palvelinpuolen komponentti. Molemmat voivat lähettää ja vastaanottaa tietoja virtuaalisen kanavan kautta, mikä mahdollistaa yksi-tai kaksisuuntaisen viestinnän. Virtuaaliset kanavat voivat olla myös RDP-riippumattomia, mikä tarkoittaa, että voit muokata ympäristöäsi päivittämättä tai muuttamatta varsinaista asiakas-tai palvelinohjelmistoa.
miksi kaikki keskittyminen virtuaalikanaviin? Vaikka tämä ei ole kehittäjän kirja ja et luultavasti koskaan kehittää omaa virtuaalista kanavaa, on tärkeää, että ymmärrät, miten ne toimivat. Lähes jokainen kolmannen osapuolen lisäosa Terminal Server käyttää virtuaalisia kanavia. Virtuaalikanavien toiminnan ymmärtäminen auttaa vianmäärityksessä kolmannen osapuolen tuotteita, joihin olet epäilemättä törmännyt Terminaalipalvelinurallasi.
tämän sanottua, katsotaanpa lopuksi virtuaalisen kanavan arkkitehtuuria. KS. Kuva 2.4.
Kuva 2.4: Terminal Server 2003: n virtuaalinen kanavaarkkitehtuuri
palvelinpuolen virtuaalinen kanavakomponentti on yleensä terminaalipalvelimella ajettava suoritustiedosto. Tämän komponentin on oltava käyttäjätilakomponentti, koska palvelin käyttää istuntotunnusta määrittääkseen, mihin asiakaspuolen istuntoon sen pitäisi lähettää ja vastaanottaa tietoja.
asiakaspuolen virtuaalikanavakomponentti on yleensä Microsoftin, kolmannen osapuolen ohjelmistotoimittajan tai kehittäjien räätälöimä DLL. DLL on ladattava asiakastietokoneeseen, kun RDC-asiakasohjelma käynnistetään ja Yhteys palvelimeen alkaa. Useimmissa tapauksissa tämä on skriptattu tai tehty ohjelmallisesti asiakastasolla.
miten kaikki nämä komponentit sopivat yhteen
nyt kun ymmärrät jokaisen Terminaalipalvelimen eri komponentin, katsotaan miten ne kaikki sopivat yhteen. Seuraa prosessia, joka tapahtuu, kun asiakasyhteys tehdään, viitaten kuvaan 2.5.
Kuva 2.5: uusi istunto perustetaan
- ennen kuin mitään tapahtuu, päätepalvelimen kuuntelijat katsovat tiettyjä verkkokorttien, IP-osoitteen ja TCP-portin yhdistelmiä saapuvien pyyntöjen varalta istunnon aloittamiseksi.
- käyttäjä päättää käyttää etäsovellusta, joten hän käynnistää RDC-asiakkaansa ja pyytää yhteyden ” server1.”Hänen RDC-asiakkaansa tarkistaa, mitä virtuaalikanavia DLL on asennettu.
- tässä ympäristössä nimi ”server1” viittaa IP-osoitteeseen 192.168.14.42 (joka sattuu olemaan NIC #1 tässä palvelimessa). Käyttäjän RDC-asiakas lähettää istuntoyhteyspyynnön numeroon 192.168.14.42.
- palvelimen kuuntelija poimii pyynnön ja luovuttaa sen istunnonjohtajalle. Kun session manager ottaa haltuunsa, kuuntelija jatkaa kuuntelua lisää istuntoja varten.
- palvelin neuvottelee pyytävän asiakkaan kanssa salaustasostaan ja virtuaalikanavaominaisuuksistaan.
- tämän jälkeen käyttäjä todennetaan verkkotunnukseen ja hänen oikeutensa tarkistetaan yhteyden saamiseksi.
- Microsoftin lisenssit on tarkistettu. Server client access-lisenssi tarkistetaan ensin, ja sitten Terminal Server client access-lisenssi tarkistetaan. (Lisensointi on yksityiskohtaisesti luvussa 4.)
- tässä vaiheessa käyttäjäsessio on valmis alkamaan. Kirjautumiskomentosarjat suoritetaan ja työpöytä Ladataan.
Windows Server 2003: ssa kuunteluporttiin liittyy ” – yhteys.”Itse asiassa nämä kaksi termiä ovat lähes keskenään vaihdettavissa. Määrität yhteyden ominaisuudet, ja yhteyden kuunteluporttia muutetaan asianmukaisesti.
nyt kun olemme kattaneet kaikki osat, jotka muodostavat Windows 2003 Terminal Server, käännä vaatimukset.