Server

Aus besserwiki.de
Ein Computernetzwerkdiagramm von Client-Computern, die über das Internet mit einem Server-Computer kommunizieren
Rackmount-Server der Wikimedia Foundation in Racks in einem Rechenzentrum
Der erste WWW-Server am CERN mit dem Originalaufkleber, auf dem steht: "This machine is a server. NICHT AUSSCHALTEN!"

In der Informatik ist ein Server ein Stück Computerhardware oder Software (Computerprogramm), das Funktionen für andere Programme oder Geräte, so genannte "Clients", bereitstellt. Diese Architektur wird als Client-Server-Modell bezeichnet. Server können verschiedene Funktionen anbieten, die oft als "Dienste" bezeichnet werden, z. B. die gemeinsame Nutzung von Daten oder Ressourcen durch mehrere Clients oder die Durchführung von Berechnungen für einen Client. Ein einzelner Server kann mehrere Clients bedienen, und ein einzelner Client kann mehrere Server nutzen. Ein Client-Prozess kann auf demselben Gerät laufen oder sich über ein Netz mit einem Server auf einem anderen Gerät verbinden. Typische Server sind Datenbankserver, Dateiserver, Mailserver, Druckserver, Webserver, Spieleserver und Anwendungsserver.

Client-Server-Systeme werden in der Regel am häufigsten nach dem Anfrage-Antwort-Modell implementiert (und oft damit identifiziert): Ein Client sendet eine Anfrage an den Server, der eine Aktion durchführt und eine Antwort an den Client zurückschickt, normalerweise mit einem Ergebnis oder einer Bestätigung. Die Bezeichnung eines Computers als "Hardware der Serverklasse" impliziert, dass er für den Betrieb von Servern spezialisiert ist. Dies bedeutet oft, dass er leistungsfähiger und zuverlässiger ist als ein normaler Personal Computer, aber auch große Computercluster können aus vielen relativ einfachen, austauschbaren Serverkomponenten bestehen.

Geschichte

Die Verwendung des Wortes Server in der Informatik stammt aus der Warteschlangentheorie, wo es seit Mitte des 20. Jahrhunderts verwendet wird, insbesondere in Kendall (1953) (zusammen mit "Service"), dem Dokument, das die Kendall-Notation einführte. In früheren Arbeiten, wie z. B. Erlang (1909), werden konkretere Begriffe wie "[Telefon-]Operatoren" verwendet.

In der Informatik stammt der Begriff "Server" mindestens aus RFC 5 (1969), einem der ersten Dokumente zur Beschreibung des ARPANET (dem Vorläufer des Internet), und wird dem Begriff "Benutzer" gegenübergestellt, wobei zwei Arten von Hosts unterschieden werden: "Server-Host" und "Benutzer-Host". Die Verwendung von "serving" geht ebenfalls auf frühe Dokumente wie RFC 4 zurück, in denen "serving-host" und "using-host" gegenübergestellt werden.

Das Jargon File definiert "Server" im allgemeinen Sinne eines Prozesses, der Dienste für Anfragen, gewöhnlich aus der Ferne, erbringt, wobei die Version von 1981 (1.1.0) lautet:

SERVER n. Eine Art DAEMON, der einen Dienst für den Anfragenden ausführt, der oft auf einem anderen Computer läuft als dem, auf dem der Server läuft.

Betrieb

Ein Netzwerk, das auf dem Client-Server-Modell basiert, bei dem mehrere einzelne Clients Dienste und Ressourcen von zentralen Servern anfordern.

Streng genommen bezieht sich der Begriff Server auf ein Computerprogramm oder einen Prozess (laufendes Programm). Durch Metonymie bezieht er sich auf ein Gerät, das für die Ausführung eines oder mehrerer Serverprogramme verwendet wird (oder ein Gerät, das dafür bestimmt ist). In einem Netzwerk wird ein solches Gerät als Host bezeichnet. Neben Server werden auch die Wörter serve und service (als Verb bzw. als Substantiv) häufig verwendet, nicht jedoch servicer und servant. Das Wort Dienst (Substantiv) kann sich entweder auf die abstrakte Form der Funktionalität beziehen, z. B. Webdienst. Alternativ kann es sich auf ein Computerprogramm beziehen, das einen Computer in einen Server verwandelt, z. B. Windows-Dienst. Ursprünglich wurde der Begriff als "Server dienen Benutzern" (und "Benutzer benutzen Server") im Sinne von "gehorchen" verwendet, heute sagt man oft, dass "Server Daten dienen", im gleichen Sinne wie "geben". So stellen Webserver beispielsweise den Benutzern Webseiten zur Verfügung oder bedienen ihre Anfragen.

Der Server ist Teil des Client-Server-Modells; in diesem Modell stellt ein Server Daten für Clients bereit. Die Kommunikation zwischen einem Client und einem Server besteht aus Anfrage und Antwort. Dies steht im Gegensatz zum Peer-to-Peer-Modell, bei dem die Beziehung auf Gegenseitigkeit beruht. Im Prinzip ist jeder Computerprozess, der von einem anderen Prozess verwendet oder aufgerufen werden kann (insbesondere aus der Ferne, um eine Ressource gemeinsam zu nutzen), ein Server, und der aufrufende Prozess oder die aufrufenden Prozesse sind ein Client. Somit kann jeder an ein Netz angeschlossene Allzweckcomputer Server hosten. Wenn zum Beispiel Dateien auf einem Gerät von einem Prozess freigegeben werden, ist dieser Prozess ein Dateiserver. In ähnlicher Weise kann Webserver-Software auf jedem fähigen Computer ausgeführt werden, so dass ein Laptop oder ein Personal Computer einen Webserver hosten kann.

Während das Request-Response-Verfahren das gebräuchlichste Client-Server-Konzept ist, gibt es auch andere, wie z. B. das Publish-Subscribe-Verfahren. Beim Publish-Subscribe-Muster melden sich Clients bei einem Pub-Sub-Server an und abonnieren bestimmte Arten von Nachrichten; diese erste Anmeldung kann per Request-Response erfolgen. Danach leitet der Pub-Sub-Server passende Nachrichten ohne weitere Anfragen an die Clients weiter: Der Server schiebt die Nachrichten zum Client, anstatt dass der Client die Nachrichten vom Server abruft, wie bei Request-Response.

Zweck

Die Rolle eines Servers besteht in der gemeinsamen Nutzung von Daten sowie in der gemeinsamen Nutzung von Ressourcen und der Verteilung von Arbeit. Ein Server-Computer kann auch seine eigenen Computerprogramme bedienen; je nach Szenario kann dies Teil einer Gegenleistung sein oder einfach eine technische Möglichkeit darstellen. Die folgende Tabelle zeigt verschiedene Szenarien, in denen ein Server eingesetzt wird.

Server-Typ Zweck Kunden
Anwendungsserver Hostet Webanwendungen (Computerprogramme, die in einem Webbrowser ausgeführt werden) und ermöglicht es den Benutzern im Netzwerk, diese auszuführen und zu nutzen, ohne eine Kopie auf ihren eigenen Computern installieren zu müssen. Im Gegensatz zu dem, was der Name vermuten lässt, müssen diese Server nicht Teil des World Wide Web sein; jedes lokale Netzwerk würde ausreichen. Computer mit einem Webbrowser
Katalog-Server Verwaltet einen Index oder ein Inhaltsverzeichnis von Informationen, die in einem großen, verteilten Netzwerk zu finden sind, z. B. Computer, Benutzer, auf Dateiservern freigegebene Dateien und Webanwendungen. Verzeichnisserver und Namensserver sind Beispiele für Katalogserver. Jedes Computerprogramm, das etwas im Netzwerk finden muss, z. B. ein Domänenmitglied, das versucht, sich anzumelden, ein E-Mail-Client, der nach einer E-Mail-Adresse sucht, oder ein Benutzer, der nach einer Datei sucht
Kommunikationsserver Verwaltet eine Umgebung, die für einen Kommunikationsendpunkt (Benutzer oder Geräte) erforderlich ist, um andere Endpunkte zu finden und mit ihnen zu kommunizieren. Je nach Offenheit und Sicherheitsparametern des Netzes kann er ein Verzeichnis der Kommunikationsendpunkte und einen Präsenzerkennungsdienst enthalten oder nicht Kommunikationsendpunkte (Benutzer oder Geräte)
Computing-Server Teilt große Mengen an Rechenressourcen, insbesondere CPU und Arbeitsspeicher, über ein Netz. Jedes Computerprogramm, das mehr CPU-Leistung und Arbeitsspeicher benötigt, als sich ein Personal Computer wahrscheinlich leisten kann. Der Client muss ein vernetzter Computer sein, sonst gäbe es kein Client-Server-Modell.
Datenbank-Server Verwaltet und verteilt jede Art von Datenbank (organisierte Datensammlungen mit vordefinierten Eigenschaften, die in einer Tabelle angezeigt werden können) über ein Netzwerk. Tabellenkalkulationen, Buchhaltungssoftware, Anlagenverwaltungssoftware oder praktisch jedes Computerprogramm, das gut organisierte Daten verbraucht, insbesondere in großen Mengen
Fax-Server Gemeinsame Nutzung eines oder mehrerer Faxgeräte über ein Netzwerk, so dass kein physischer Zugang erforderlich ist Jeder Faxabsender oder -empfänger
Dateiserver Gemeinsame Nutzung von Dateien und Ordnern, Speicherplatz für Dateien und Ordner oder beides über ein Netzwerk Vernetzte Computer sind die vorgesehenen Clients, auch wenn lokale Programme Clients sein können.
Spieleserver Ermöglicht es mehreren Computern oder Spielgeräten, Multiplayer-Videospiele zu spielen Personalcomputer oder Spielkonsolen
Mail-Server Ermöglicht die E-Mail-Kommunikation auf die gleiche Weise wie ein Postamt die Kommunikation per Briefpost Absender und Empfänger von E-Mails
Medienserver Teilt digitales Video oder digitales Audio über ein Netzwerk durch Medien-Streaming (Übertragung von Inhalten in einer Weise, dass die empfangenen Teile angesehen oder angehört werden können, sobald sie ankommen, im Gegensatz zum Herunterladen einer ganzen Datei und ihrer anschließenden Nutzung) Vom Benutzer bediente Personal Computer, die mit einem Monitor und einem Lautsprecher ausgestattet sind
Druckerserver Gemeinsame Nutzung eines oder mehrerer Drucker über ein Netzwerk, so dass kein physischer Zugang erforderlich ist Computer, die etwas drucken müssen
Sound-Server Ermöglicht Computerprogrammen die Wiedergabe und Aufnahme von Ton, einzeln oder gemeinsam Computerprogramme desselben Computers und Netzwerk-Clients.
Proxy-Server Agiert als Vermittler zwischen einem Client und einem Server, indem er den vom Client eingehenden Datenverkehr annimmt und an den Server weiterleitet. Gründe dafür sind u. a. die Kontrolle und Filterung von Inhalten, die Verbesserung der Verkehrsleistung, die Verhinderung von unbefugtem Netzwerkzugang oder einfach die Weiterleitung des Verkehrs über ein großes und komplexes Netzwerk. Jeder vernetzte Computer
Virtueller Server Teilt sich Hardware- und Software-Ressourcen mit anderen virtuellen Servern. Er existiert nur im Rahmen einer speziellen Software, die als Hypervisor bezeichnet wird. Der Hypervisor stellt dem Server virtuelle Hardware zur Verfügung, als ob es sich um echte physische Hardware handeln würde. Die Servervirtualisierung ermöglicht eine effizientere Infrastruktur. Jeder vernetzte Computer
Webserver Hostet Webseiten. Ein Webserver macht das World Wide Web erst möglich. Jede Website hat einen oder mehrere Webserver. Außerdem kann jeder Server mehrere Websites hosten. Computer mit einem Webbrowser

Fast die gesamte Struktur des Internets basiert auf einem Client-Server-Modell. Hochrangige Root-Nameserver, DNS und Router leiten den Verkehr im Internet. Es gibt Millionen von Servern, die mit dem Internet verbunden sind und ständig auf der ganzen Welt laufen, und praktisch jede Aktion, die ein normaler Internetnutzer durchführt, erfordert eine oder mehrere Interaktionen mit einem oder mehreren Servern. Es gibt Ausnahmen, bei denen keine speziellen Server zum Einsatz kommen, wie z. B. beim Peer-to-Peer-Filesharing und einigen Implementierungen der Telefonie (z. B. Skype vor Microsoft).

Hardware

Ein rack-montierbarer Server, bei dem die obere Abdeckung entfernt wurde, um die internen Komponenten freizulegen

Die Anforderungen an die Hardware von Servern sind sehr unterschiedlich und hängen vom Zweck des Servers und seiner Software ab. Server sind in der Regel leistungsfähiger und teurer als die Clients, die mit ihnen verbunden sind.

Da der Zugriff auf Server in der Regel über ein Netzwerk erfolgt, laufen viele unbeaufsichtigt ohne Computermonitor oder Eingabegerät, Audio-Hardware und USB-Schnittstellen. Viele Server verfügen nicht über eine grafische Benutzeroberfläche (GUI). Sie werden aus der Ferne konfiguriert und verwaltet. Die Fernverwaltung kann über verschiedene Methoden erfolgen, darunter Microsoft Management Console (MMC), PowerShell, SSH und browserbasierte Out-of-Band-Verwaltungssysteme wie iDRAC von Dell oder iLo von HP.

Große Server

Große traditionelle Einzelserver müssen über lange Zeiträume ohne Unterbrechung betrieben werden. Die Verfügbarkeit muss sehr hoch sein, so dass Zuverlässigkeit und Langlebigkeit der Hardware extrem wichtig sind. Unternehmenskritische Server sind sehr fehlertolerant und verwenden spezielle Hardware mit geringen Ausfallraten, um die Betriebszeit zu maximieren. Unterbrechungsfreie Stromversorgungen könnten zum Schutz vor Stromausfällen eingebaut werden. Server verfügen in der Regel über Hardware-Redundanz wie doppelte Stromversorgungen, RAID-Festplattensysteme und ECC-Speicher sowie umfangreiche Speichertests und -überprüfungen vor dem Start. Kritische Komponenten können im laufenden Betrieb ausgetauscht werden, ohne dass der Server heruntergefahren werden muss, und zum Schutz vor Überhitzung verfügen die Server über leistungsstärkere Lüfter oder eine Wasserkühlung. Sie können häufig konfiguriert, ein- und ausgeschaltet oder aus der Ferne neu gebootet werden, wobei eine Out-of-Band-Verwaltung verwendet wird, die in der Regel auf IPMI basiert. Die Servergehäuse sind in der Regel flach und breit und für den Einbau in 19-Zoll-Racks oder Open Racks konzipiert.

Diese Arten von Servern sind oft in speziellen Rechenzentren untergebracht. Diese verfügen in der Regel über eine sehr stabile Strom- und Internetversorgung und bieten erhöhte Sicherheit. Auch die Lärmbelästigung ist weniger problematisch, aber der Stromverbrauch und die Wärmeabgabe können ein ernstes Problem darstellen. Serverräume sind mit Klimaanlagen ausgestattet.

Cluster

Eine Serverfarm oder ein Servercluster ist eine Sammlung von Computerservern, die von einer Organisation unterhalten werden, um Serverfunktionen bereitzustellen, die weit über die Möglichkeiten eines einzelnen Geräts hinausgehen. Moderne Rechenzentren bestehen heute oft aus sehr großen Clustern von viel einfacheren Servern, und es gibt ein Gemeinschaftsprojekt, das Open Compute Project, das sich mit diesem Konzept beschäftigt.

Geräte

Eine Klasse von kleinen Spezialservern, die so genannten Netzwerk-Appliances, sind im Allgemeinen am unteren Ende der Skala angesiedelt und oft kleiner als herkömmliche Desktop-Computer.

Mobil

Ein mobiler Server hat einen tragbaren Formfaktor, z. B. einen Laptop. Im Gegensatz zu großen Rechenzentren oder Rack-Servern ist der mobile Server für den mobilen oder Ad-hoc-Einsatz in Notfällen, Katastrophen oder vorübergehenden Umgebungen konzipiert, in denen herkömmliche Server aufgrund ihres Energiebedarfs, ihrer Größe und ihrer Einsatzdauer nicht eingesetzt werden können. Zu den Hauptnutznießern der so genannten "Server on the go"-Technologie gehören Netzwerkmanager, Software- oder Datenbankentwickler, Schulungszentren, Militärpersonal, Strafverfolgungsbehörden, Forensiker, Nothilfegruppen und Dienstleistungsorganisationen. Zur Erleichterung der Portabilität sind Funktionen wie Tastatur, Bildschirm, Batterie (unterbrechungsfreie Stromversorgung, um im Falle eines Ausfalls eine Stromredundanz zu gewährleisten) und Maus in das Gehäuse integriert.

Betriebssysteme

Cobalt Qube 3 von Sun, ein Computer-Server-Gerät (2002), auf dem Cobalt Linux (eine angepasste Version von Red Hat Linux, die den Linux-Kernel 2.2 verwendet) und der Apache-Webserver laufen.

Im Internet dominieren bei den Servern UNIX-ähnliche Open-Source-Distributionen wie Linux und FreeBSD, wobei auch Windows Server einen erheblichen Anteil hat. Proprietäre Betriebssysteme wie z/OS und macOS Server werden ebenfalls eingesetzt, allerdings in wesentlich geringerem Umfang.

Spezialisierte serverbasierte Betriebssysteme haben traditionell Eigenschaften wie:

  • GUI nicht verfügbar oder optional
  • Möglichkeit, sowohl Hardware als auch Software bis zu einem gewissen Grad ohne Neustart zu rekonfigurieren und zu aktualisieren
  • Fortgeschrittene Sicherungsfunktionen, die regelmäßige und häufige Online-Sicherungen kritischer Daten ermöglichen,
  • Transparente Datenübertragung zwischen verschiedenen Datenträgern oder Geräten
  • Flexible und erweiterte Netzwerkfunktionen
  • Automatisierungsfunktionen wie Daemons in UNIX und Dienste in Windows
  • Strenge Systemsicherheit mit erweitertem Benutzer-, Ressourcen-, Daten- und Speicherschutz.
  • Fortgeschrittene Erkennung und Alarmierung bei Zuständen wie Überhitzung, Prozessor- und Festplattenausfall.

In der Praxis haben heute viele Desktop- und Server-Betriebssysteme eine ähnliche Code-Basis, die sich hauptsächlich in der Konfiguration unterscheidet.

Stromverbrauch

Im Jahr 2010 waren Rechenzentren (Server, Kühlung und andere elektrische Infrastruktur) für 1,1-1,5 % des weltweiten Stromverbrauchs und für 1,7-2,2 % in den Vereinigten Staaten verantwortlich. Eine Schätzung geht davon aus, dass der Gesamtenergieverbrauch für die Informations- und Kommunikationstechnologie durch Effizienzsteigerung mehr als das Fünffache des Kohlenstoff-Fußabdrucks in der übrigen Wirtschaft einspart.

Der weltweite Energieverbrauch steigt aufgrund des zunehmenden Bedarfs an Daten und Bandbreite. Der Natural Resources Defense Council (NRDC) gibt an, dass Rechenzentren im Jahr 2013 91 Milliarden Kilowattstunden (kWh) elektrische Energie verbrauchten, was 3 % des weltweiten Stromverbrauchs entspricht.

Umweltgruppen haben den Schwerpunkt auf die Kohlenstoffemissionen von Rechenzentren gelegt, da diese 200 Millionen Tonnen Kohlendioxid pro Jahr ausmachen.

Fachbegriffe

Host und Server

Jene Computer, auf denen man die ersten Server programmierte, wurden als Host bezeichnet (vgl. Host-Terminal-Prinzip). Zu dieser Zeit waren Hosts fast ausschließlich spezielle, leistungsfähige Computer (Großrechner). Der Ausdruck Host wird in der EDV schon frühzeitig in den 1960er Jahren im Zusammenhang mit Großrechnern oder der mittleren Datentechnik und den dort üblichen Time-Sharing- oder Mehrbenutzer-Betriebssystemen gebraucht. Diese Systeme sind stark gegliedert und bestehen im Wesentlichen aus einer Zentraleinheit, die auch als Host bezeichnet wird und alle „Intelligenz“ beherbergt, und den „dummen“ Terminals, die lediglich als Benutzerendgeräte an den Arbeitsplätzen eingesetzt werden und praktisch nur zur Eingabe und Ausgabe von Daten dienen. Der häufig auch als Synonym benutzte Ausdruck Server ist jünger und kommt aus dem Bereich der Personal Computer und Betriebssystemen wie Banyan Vines, macOS, Netware oder Unix. Als die Vernetzung dieser Rechnerklasse am Ende der 1980er Jahre praktisch überall Einzug hielt, suchte man zur Abgrenzung von den bestehenden Host-basierten Architekturen eine alternative Bezeichnung und etablierte hierzu den Ausdruck Server. Als stellvertretendes Beispiel sei hier der dedicated NetWare Server genannt. Die Architekturen auf Basis von Personal Computern kennen typischerweise keine „intelligenten“ Hosts im Kontrast zu „dummen“ Terminals, hier ist jedes System mit mehr oder weniger „Intelligenz“ ausgestattet. In diesem Kontext werden Rechnersysteme (Hardware und Software), die im Wesentlichen anderen Systemen Leistungen zur Verfügung stellen (siehe Server (Software)), als Server bezeichnet. Im Unix-Umfeld ist die Differenzierung zu dieser Zeit deutlicher; hier werden (meist grafische) Workstations und Workstation-Betriebssysteme sowie deren Software von (meist Konsole-basierten) Servern und Server-Betriebssystemen mit zugehöriger Software unterschieden. Mittlerweile sind allerdings beide Ausdrücke – zumindest umgangssprachlich und im Zusammenhang mit Hardware – praktisch gleichbedeutend.

Formen

Virtuelle Server

Es gibt auch den umgekehrten Fall, in dem auf einem zumeist leistungsfähigen Host mehrere Software-Server installiert sind. Den Benutzern bleibt dabei verborgen, dass die verschiedenen Dienstleistungen in Wirklichkeit von nur einem einzigen Host abgewickelt werden.

Beide Anordnungen bezeichnet man als virtuellen Server. Zu unterscheiden sind dabei virtuelle Hosts und virtuelle Server (Software). Es gibt verschiedene Virtualisierungsarten.

Dedizierte Server

Ein dedizierter (englisch dedicated […], dt. wörtlich gewidmet, bestimmt oder zugeordnet) Server ist ein Server oder ein eigenständiges Gerät, der für einen Netzwerkdienst oder mehrere dauerhaft betriebene Dienste vorgesehen ist, und nicht nebenbei für andere Aufgaben, etwa als Workstation, genutzt wird. Im Marketing von Serverhousing-Anbietern werden unter ähnlichen Begriffen wie englisch bare metal server Angebote bezeichnet, bei denen einem Kunden das exklusive Nutzungsrecht für ein einzelnes physisches Gerät vermietet wird, oft verbunden mit dem vollen Zugang zur physischen Hardware bis auf das Niveau von BIOS-Einstellungen und der Wahl bestimmter Hardwarekomponenten, und sich der Kunde diese physische Serverhardware nicht wie bei virtuellen Servern mit anderen Kunden und deren Diensten teilen muss. Üblicherweise befinden sich dedizierte Server mit einer Vielzahl ähnlicher Geräte zusammen in einem Rechenzentrum.

Shared Server

Ein Shared Server (englisch shared […], dt. teilend oder anteilig) ist ein Server, der nicht exklusiv einem Kunden oder einer bestimmten Aufgabe zur Verfügung steht. Im Marketing wird er genutzt, um einen im Vergleich zum exklusiv genutzten dedizierten Server (siehe oben) günstigeren Tarif für einen einzelnen Kunden zu realisieren. In der Praxis werden zeitweilige Lastspitzen auch bei der Nutzung eines einzelnen Servers durch mehrere Kunden, die darauf zum Beispiel jeweils ihre Internetpräsenz betreiben, durch Loadbalancing seitens des Betreibers teilweise ausgeglichen. Sie führen daher nicht notwendigerweise zu Leistungseinbußen wie etwa langen Ladezeiten von Webseiten, was den theoretischen Nachteil gegenüber dedizierten Servern relativieren kann.