DE112005001995T5 - Computeranordnung und Verfahren zum Anbieten von Diensten für Benutzer über ein Netzwerk - Google Patents

Computeranordnung und Verfahren zum Anbieten von Diensten für Benutzer über ein Netzwerk Download PDF

Info

Publication number
DE112005001995T5
DE112005001995T5 DE112005001995T DE112005001995T DE112005001995T5 DE 112005001995 T5 DE112005001995 T5 DE 112005001995T5 DE 112005001995 T DE112005001995 T DE 112005001995T DE 112005001995 T DE112005001995 T DE 112005001995T DE 112005001995 T5 DE112005001995 T5 DE 112005001995T5
Authority
DE
Germany
Prior art keywords
servers
network load
information
network
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112005001995T
Other languages
English (en)
Other versions
DE112005001995B4 (de
Inventor
Joseph W. Santa Cruz Armstrong
Shu-Ching Fremont Hsu
Mark Campbell Johnston
Rahul Fremont Kelkar
Judy San Luis Obispo King
Brian Kress
Radhika Fremont Pennepalli
Kesava Santa Clara Pulijala
Guangji San Jose Shen
Pushkar Fremont Singh
Kevin San Jose Stoner
Rajendran San Jose Vishwanathan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Technology Solutions Intellectual Property GmbH
Original Assignee
Fujitsu Siemens Computers Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Siemens Computers Inc filed Critical Fujitsu Siemens Computers Inc
Publication of DE112005001995T5 publication Critical patent/DE112005001995T5/de
Application granted granted Critical
Publication of DE112005001995B4 publication Critical patent/DE112005001995B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Abstract

Computeranordnung zum Anbieten von Diensten für Benutzer über ein Netzwerk, umfassend
– mindestens zwei Server (1), von denen jeder mindestens eine Anwendung (2) aufweist und dazu eingerichtet ist, Dienste an Benutzer (4) über ein Netzwerk (5) anzubieten;
– eine Verwaltungseinheit (8), eingerichtet zum Bereitstellen der Server (1) durch Einbinden von Servern (1) und/oder durch Starten oder Stoppen von Anwendungen (2) auf den Servern (1);
– mindestens einen Netzwerklastverteiler (6), der mit den Benutzern (2) und den Servern (1) verbunden ist und für zumindest einen der Dienste zuständig ist und der dazu eingerichtet ist, Informationen (9) über den Zustand der Server (1) und/oder der Anwendungen (2) zusammenzutragen und eingehende Anfragen von Benutzern (4) zu einem der Server (1) zu leiten;
wobei
der Netzwerklastverteiler (6) der Verwaltungseinheit (8) Informationen (9) bezüglich des Zustands der Server (1) und/oder der Anwendungen (2) auf den Servern (1) zur Verfügung stellt...

Description

  • Die Erfindung betrifft eine Computeranordnung, die mindestens zwei Server zum Anbieten von Diensten für Benutzer über ein Netzwerk umfasst, und insbesondere den Einsatz einer automatisierten Verwaltungseinheit und eines Netzwerklastverteilers innerhalb der Computeranordnung.
  • Computeranordnungen dieser Art umfassen üblicherweise mehrere Computer, Server genannt, die spezielle Dienste bereitstellen, derer sich Benutzer (Clients) durch das Senden einer entsprechenden Anfrage über ein Netzwerk bedienen können. Dabei gibt es eine große Vielfalt verschiedener Dienste, die von den Servern angeboten werden können. Beispiele sind Datei-, Web- oder Datenbankdienste.
  • Üblicherweise wird jeder individuelle Dienst von einem auf einem Server ablaufenden Anwendungsprogramm bereitgestellt. Häufig werden viele Instanzen einer Anwendung dazu parallel ausgeführt, um alle eingehenden Anfragen bearbeiten zu können. Abhängig von seiner Kapazität und Leistungsfähigkeit kann ein einzelner Server nur eine oder auch mehrere Instanzen eines oder verschiedener Anwendungsprogramme betreiben. Beispielhaft wird im Folgenden von einer Situation ausgegangen, in der auf jedem Server nur eine Instanz eines Anwendungsprogramms zum Bereitstellen eines bestimmten Dienstes ausgeführt wird.
  • Es ist dabei erstrebenswert, dass Benutzer sich nicht um die aktuelle Konfiguration einer Computeranordnung, die Dienste bereitstellt, kümmern müssen, das heißt Benutzer brauchen (und können auch nicht) wissen, welcher der Server gerade bereit ist, ihre Anfrage zu bearbeiten. Dieses kann durch den Einsatz einer zentralen Vermittlungseinheit, Router genannt, erreicht werden, die eingehende Anfragen von Benutzern entgegennimmt und sie zu einem der Server weiterleitet. Benutzer brauchen nur eine Netzwerkadresse zu wissen, die häufig virtuelle Adresse genannt wird und an die sie ihre Anfrage senden. Diese virtuelle Adresse ist dem Router zugeordnet, der die Anfrage an einen der Server weiterleitet und dabei die ursprüngliche Zieladresse (das heißt die virtuelle Adresse) durch die Adresse dieses Servers ersetzt. Die Server haben dabei üblicherweise Adressen, die nur innerhalb der Computeranordnung einsehbar sind. Der Router ist mit einer Liste dieser Adressen ausgestattet. Falls der Verteilungsprozess so eingerichtet ist, dass die Auslastung der Server ausgeglichen wird, wird die zentrale Vermittlungseinheit als Netzwerklastverteiler bezeichnet. Es sind verschiedene Arten von Netzwerklastverteilern bekannt, von denen einige tatsächlich die von Anwendungsprogrammen hervorgerufenen Arbeitsbelastung auf einem Server bestimmen, während andere lediglich eine Liste bereits verteilter Anfragen führen und resultierende Arbeitsbelastungen daraus entweder berechnen oder Anfragen lediglich so verteilen, dass alle Server eine vergleichbare Anzahl an Anfragen zur gleichen Zeit zu bearbeiten haben. Darüber hinaus sind Netzwerklastverteiler bekannt, die zusätzliche Informationen bestimmen und benutzen, zum Beispiel Zustandsinformationen der Server, also ob ein Server korrekt arbeitet oder nicht.
  • Häufig betreiben Netzwerkdienstanbieter eine Vielzahl von Servern, genannt eine Serverfarm. Angesichts der wachsenden Größe moderner Serverfarmen, die aus hunderten oder mehr Ser vern bestehen können, gibt es eine steigende Nachfrage, Verwaltungsaufgaben zu automatisieren, zum Beispiel das Zuweisen vorhandener Ressourcen zu verschiedenen Arten von Diensten betreffend. Der Ansatz, Verwaltungsaufgaben zu automatisieren, ist als Autonomous Computing (AC) bekannt. Eine zentrale Rolle in einer AC-Umgebung nimmt eine automatische Verwaltungseinheit ein, auch Decision Engine genannt, die die Verwaltungsaufgaben durchführt. Die automatische Verwaltungseinheit ist in der Lage, dynamisch Server einzubinden oder freizustellen und neue Instanzen verschiedener Anwendungsprogramme auf den Servern zu starten oder bereits laufende zu stoppen, wodurch die Server zum Erbringen eines bestimmten Dienstes bereitgestellt werden. Für das Folgende umfasst der Ausdruck "Bereitstellen eines Servers" alle notwendigen Verwaltungsschritte, um einen Server so einzurichten, dass er einen bestimmten Dienst anbieten kann. Üblicherweise wird die automatische Verwaltungseinheit auf einem Computer innerhalb der Anordnung ausgeführt, der speziell für solche Verwaltungsaufgaben vorgesehen ist. Die Entscheidung, ob eine Instanz einer Applikation zu starten oder zu stoppen ist und ob es notwendig ist, neue Server zu verpflichten oder die Kontrolle über Server wieder abzugeben, hängt von einer Vielzahl von Kriterien und Grundvoraussetzungen ab. Wichtige Faktoren dabei sind zum Beispiel, wie ausgelastet laufende Instanzen einer Applikation sind oder der Betriebszustand der Server. Aber auch andere, nicht technische, sondern ökonomische Überlegungen können in Betracht gezogen werden, zum Beispiel verschiedene Prioritäten der Kunden.
  • In einer AC-Umgebung, in der eine oder mehrere Netzwerklastverteiler eingesetzt werden, benötigen sowohl die Verwaltungseinheit als auch die Lastverteiler zur Erfüllung ihrer Aufgaben Informationen über die Server und die Anwendungen.
  • Beide Instanzen, Verwaltungseinheit und Lastverteiler, bestimmen diese Informationen, wodurch eine zusätzliche Arbeitsbelastung und auch Netzwerkdatenverkehr geschaffen wird.
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, eine Computeranordnung zum Anbieten von Diensten für Benutzer über ein Netzwerk zu schaffen, bei der die Arbeitsbelastung und der Netzwerkdatenverkehr, der durch die Bestimmung von Informationen die von den Netzwerklastverteilern und der Verwaltungseinheit benötigt werden, möglichst klein gehalten wird.
  • Diese Aufgabe wird gelöst durch eine Computeranordnung gemäß Patentanspruch 1 und ein Verfahren gemäß Patentanspruch 8.
  • Die Computeranordnung gemäß der Erfindung umfasst mindestens zwei Server, von denen jeder mindestens eine Anwendung aufweist und dazu eingerichtet ist, Dienste an Benutzer über ein Netzwerk anzubieten. Die Computeranordnung umfasst weiterhin eine Verwaltungseinheit, eingerichtet zum Bereitstellen von Servern durch Einbinden von Servern und/oder durch Starten oder Stoppen von Anwendungen auf den Servern und mindestens einen Netzwerklastverteiler, der mit den Benutzern und den Servern verbunden ist und für zumindest einen der Dienste zuständig ist und der weiterhin dazu eingerichtet ist, Informationen über den Zustand der Server und/oder der Anwendungen zu sammeln und eingehende Anfragen von Benutzern zu einem der Server zu leiten. Die Computeranordnung und das Verfahren gemäß dieser Erfindung zeichnen sich dadurch aus, dass der Netzwerklastverteiler der Verwaltungseinheit Informationen bezüglich des Zustands der Server und/oder der Anwendungen auf den Servern zur Verfügung stellt und die Verwaltungseinheit dem Netzwerklastverteiler Informationen darüber zur Verfügung stellt, welche Server zum Anbieten des mindestens ei nen Dienstes, für den der Netzwerklastverteiler zuständig ist, bereitstehen.
  • Gemäß der Erfindung werden folglich Informationen, die von beiden, dem Netzwerklastverteiler und der Verwaltungseinheit benutzt werden, geteilt. Dieses verhindert, dass relevante Informationen zweimal ermittelt werden und verringert somit Arbeitsbelastung und Netzwerkdatenverkehr.
  • In einer bevorzugten Ausführungsform der Erfindung weist jeder Server einen Netzwerklastverteileragenten auf, der dazu eingerichtet ist, Informationen über den Zustand der Server und/oder der Anwendungen auf dem Server zu ermitteln und an den Netzwerklastverteiler zu übermitteln. In einer weiteren bevorzugten Ausführungsform weisen die Server ein Betriebssystem mit einem Kernel auf und die Netzwerklastverteileragenten sind in diesen Kernel integriert.
  • Weitere Merkmale, die für die Erfindung als charakteristisch angesehen werden oder die bevorzugte Weiterbildungen der Erfindung beschreiben, sind in den abhängigen Ansprüchen angegeben.
  • Die oben genannten und weiteren Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden in der folgenden Beschreibung und den dazugehörigen Zeichnungen verdeutlicht.
  • Die Zeichnungen zeigen:
  • 1 eine schematische Darstellung eines Ausführungsbeispiels einer Computeranordnung gemäß der vorliegenden Erfindung und
  • 2 ein Flussdiagramm eines Ausführungsbeispiels eines Verfahrens zum Anbieten von Diensten gemäß der vorliegenden Erfindung.
  • 1 zeigt mehrere Server 1 (1A, 1B, 1C), von denen jeder eine Anwendung 2 (2A, 2B, 2C) und einen Netzwerklastverteileragent 3 (3A, 3B, 3C) aufweist. Die Server 1 sind dazu eingerichtet, Dienste Benutzern 4 über ein Netzwerk 5 anzubieten. Die Computeranordnung umfasst weiterhin einen Netzwerklastverteiler 6 mit einer Liste von Adressen 7 und eine Verwaltungseinheit 8. Der Netzwerklastverteiler 6 ist mit den Benutzern 4 und den Servern 1 über das Netzwerk 5 verbunden. Darüber hinaus ist der Netzwerklastverteiler 6 mit dem Netzwerklastverteileragenten 3 verbunden, um Zustandsinformationen 9 zu empfangen, und mit der Verwaltungseinheit 8 verbunden, um die Zusatandsinformationen 9 zu übermitteln und Bereitstellungsinformationen 10 zu empfangen. Die Verwaltungseinheit 8 ist dazu eingerichtet, die Server 1 über eine Kontrollverbindung 11 zu steuern.
  • 1 zeigt eine Computeranordnung, in der zu dem Zeitpunkt drei Server 1 dazu eingerichtet sind, einen bestimmten, von Instanzen der Applikation 2 zur Verfügung gestellten Dienst den Beutzern 4 anzubieten. In dem gezeigten Ausführungsbeispiel umfasst jeder Server 1 nur eine Anwendung 2. Die Erfindung ist jedoch nicht auf eine solche Situation beschränkt. Die Server 1 könnten ebenso gut mehrere Anwendungen 2 aufweisen, gegebenenfalls in Verbindung mit verschiedenen Netzwerklastverteilern 6 für verschiedene Typen von Anwendungen 2. Darüber hinaus ist die Anzahl der in der Figur gezeigten Server 1 lediglich beispielhaft. Computeranordnungen zum Anbieten von Diensten über ein Netzwerk umfassen häufig einige zehn oder sogar hunderte von Servern. Die Anordnung kann folglich weitere Server 1 aufweisen, die zum Anbieten weiterer Dienste eingesetzt werden. Die Erfindung kann auf einfache Weise auf Computeranordnungen (Serverfarmen) jeder Größe angewendet werden. Die Server 1 können dabei entweder physikalisch unabhängige Einheiten, zum Beispiel so genannte Blade-Server, sein oder auch virtuelle Server. Virtuelle Server teilen sich eine gemeinsame Hardware, auf der ein Programm abläuft, das verschiedene Hardwareeinheiten emuliert.
  • Jeder von der Computeranordnung bereitgestellte Dienst ist mit einer bestimmten Netzwerkadresse verknüpft. Um einen bestimmten Dienst auszuwählen, nutzen Benutzer 4 diese vorgesehenen Netzwerkadressen als die Zieladresse einer an die Computeranordnung geschickten Anfrage. Innerhalb der Computeranordnung ist jede Netzwerkadresse, die einem bestimmten Dienst zugeordnet ist, mit einer zentralen Stelle verknüpft, die Anfragen empfängt und an einen der Server 1 weiterleitet. Im gezeigten Ausführungsbeispiel wird diese zentrale Stelle durch den Netzwerklastausgleicher 6 verkörpert, der alle Anfragen von Benutzern 4 bezüglich eines bestimmten, von den Anwendungen 2 angebotenen Dienstes entgegennimmt. Beispielhaft ist der Netzwerklastausgleicher 6 nur für einen bestimmten Dienst zuständig.
  • Der Netzwerklastausgleicher 6 leitet eine eingehende Anfrage zu einem der Server 1 und damit zu einer Instanz einer Anwendung 2 weiter, die schließlich die Anfrage bearbeitet. Dieses kann zum Beispiel durch Überschreiben der Zieladresse in der Anfrage mit der Adresse des Servers 1, an den die Anfrage weitergeleitet werden soll, erreicht werden. Nach dem Bearbeiten der Anfrage sendet der Server 1 seine Antwort direkt zurück zum Benutzer 4, dessen Adresse in der Anfrage enthalten ist und daher dem Server 1 bekannt ist. Der Server 1 schreibt die Adresse des Netzwerklastverteilers 6 als Absendeadresse in die Antwort ein. In einem solchen Fall wird somit eine direkte Netzwerkverbindung zwischen den Servern 1 und den Benutzern 4 benötigt.
  • In der Zeichnung wird das Netzwerk 5 durch Punkt zu Punkt-Verbindungen zwischen den Benutzern 4 und dem Netzwerklastverteiler 6 beziehungsweise dem Netzwerklastverteiler 6 und den Servern 1 dargestellt, um den Datenfluss von Anfragen zu symbolisieren. Es versteht sich dabei jedoch, dass üblicherweise ein Netzwerk eingesetzt wird, das einen Datenaustausch zwischen allen Teilnehmern ermöglicht. Zum Weiterleiten oder Umleiten von Anfragen können ebenso andere bekannte Techniken eingesetzt werden. Beispielsweise könnte die Antwort auch über den Netzwerklastverteiler 6 zurückgesendet werden, der seine Absenderadresse dann selbst zur Antwort hinzufügen würde.
  • Damit der Netzwerklastverteiler 6 in der Lage ist, Anfragen an die Server 1 zu verteilen, muss er mit Informationen darüber ausgestattet sein, welche Server 1 für die angefragten Dienste verfügbar sind. Diese Information wird in der Liste von Adressen 7 verfügbarer Server 1 vorgehalten.
  • Die Entscheidung, an welchen Server eine neue Anfrage eines der Benutzer 4 weitergeleitet wird, beruht auf dem Betriebszustand der Server 1 und der Anwendungen 2. Ein wichtiger Faktor in dem Entscheidungsprozess sind dabei die von den Anwendungen 2 auf die Server 1 ausgeübten Arbeitsbelastungen.
  • Es sind verschiedene Techniken bekannt, wie Arbeitsbelastungen bestimmt, berechnet oder abgeschätzt werden können. Im gezeigten Ausführungsbeispiel werden Netzwerklastverteiler agenten 3 eingesetzt. Jeder Server 1 umfasst einen Netzwerklastverteileragenten 3, der dazu eingerichtet ist, Informationen 9 über den Zustand des Servers 1 und der Anwendung 2, der Kürze halber als Zustandsinformationen 9 bezeichnet werden, zu bestimmen. Für die Verteilungsentscheidungen des Lastverteilers 6 relevante Zustandsinformationen 9 umfassen beispielsweise Informationen darüber, ob der Server 1 korrekt arbeitet oder nicht, ob die Anwendung 2 korrekt arbeitet oder nicht, wie ausgelastet die Anwendung ist oder welche Arbeitsbelastung sie auf den Server ausübt.
  • In einer bevorzugten Ausgestaltung sind die Netzwerklastverteileragenten 3 betriebssystemnah innerhalb des Servers 1 implementiert oder gar in dem Kern (Kernel) des Betriebssystems integriert. Die Netzwerklastverteileragenten 3 können dann mit weit reichenden Zugriffsrechten ausgestattet sein, was nicht möglich wäre, wenn sie in einem dem Benutzer zugänglichen Arbeitsbereich implementiert werden, in dem sie nur mit beschränkten Zugriffsrechten ausgestattet sein könnten. Kernel-basierte Netzwerklastverteileragenten 3 haben mehrere Vorteile. Ein kernel-basierter Netzwerklastverteiler 3 ist in der Lage, Zustandsinformationen auch unter Bedingungen weiterzuleiten, in denen dieses ein innerhalb eines Benutzerarbeitsbereichs angesiedelter Netzwerklastverteileragent 3 nicht könnte. Wenn beispielsweise die in einem Benutzerbereich maximale Prozessorauslastung erreicht ist, so dass kein weiterer Prozess mehr lauffähig ist, wird ein kernelbasierter Netzwerklastverteileragent 3 nach wie vor betriebsbereit sein. Weiterhin kann ein kernel-basierter Netzwerklastverteileragent 3 Funktions- oder Unterprogrammaufrufe einer Anwendung 2 in das Betriebssystem überwachen. Es kann so zum Beispiel feststellen, ob eine Anwendung nach wie vor auf eine Netzwerkschnittstelle lauscht (zum Beispiel auf einen Port, den die Anwendung 2 überwacht), indem "listen ()" Aufrufe an den Kernel des Betriebssystems detektiert werden, wodurch festzustellen ist, ob die Anwendung noch betriebsbereit oder nicht. Dieses ist schneller und produziert weniger zusätzliche Arbeitslast als ein wiederholtes Senden von Probeanfragen an den überwachten Port. Schließlich kann ein kernel-basierter Netzwerklastverteileragent 3 Ereignisse schneller bemerken und auf diese antworten, als es ein im Benutzerbereich angesiedelter Netzwerklastverteileragent 3 könnte.
  • Vom Netzwerklastverteileragent 3 bestimmte Zustandsinformationen 9 werden dann zum Netzwerklastverteiler 6 gesendet und im Entscheidungsprozess, an welchen Server 1 Anfragen weitergeleitet werden, eingesetzt. Für die Übertragung der Zustandsinformationen 9 könnte aus Sicherheits- und/oder Performancegründen ein separates Netzwerk eingesetzt werden, oder es kann dasselbe Netzwerk 5, das auch die Server 1, die Benutzer 4 und den Netzwerklastverteiler 6 verbindet, eingesetzt werden. Bevorzugt wird zur Übertragung die Zustandsinformation 9 in eine Auszeichnungssprache, zum Beispiel XML (eXtensible Markup Language) gepackt.
  • Das Bereitstellen von Diensten, die einerseits eine schnelle Antwortzeit haben und andererseits keine Serverkapazitäten verschwenden, setzt voraus, dass eine angemessene Anzahl an Instanzen einer Anwendung 2 ausgeführt wird und eine dementsprechende angemessene Anzahl an Servern 1 für diese Anwendungen 2 zur Verfügung steht.
  • Das Bereitstellen von Servern 1 und das Starten von Instanzen einer bestimmten Anwendung 2 wird von der Verwaltungseinheit 8 vorgenommen. Die Verwaltungseinheit 8 kann dabei in Software implementiert sein und auf einem separaten Computer vor gesehen sein. Aus Hochverfügbarkeits- und Redundanzgründen kann weiterhin eine zweite Verwaltungseinheit vorgesehen sein, die im Falle eines Fehlers der ersten Verwaltungseinheit 8 deren Aufgaben übernehmen kann.
  • Zum Bereitstellen von Servern 1 durch die Verwaltungseinheit 8 sind verschiedene Methoden bekannt. Eine Möglichkeit ist, ferngesteuert Instanzen einer Anwendung bedarfsabhängig zu starten oder zu stoppen. Dieses birgt die Gefahr, dass Überbleibsel (wie temporäre Dateien) aller Applikationen, die gestartet und gestoppt wurden, sich ansammeln, was zu einem langsamen und unstabilen System führen kann. Es wird daher oft ein anderer Ansatz gewählt, manchmal "Bare Metal Provisioning" genannt, bei dem für jede neue Aufgabe (anderer Kunde, andere Applikationen) ein komplettes Startabbild (Boot Image) zu einem Server übertragen wird, woraufhin der Server mit diesem neuen Startabbild gestartet wird. Für das Folgende umfasst der Ausdruck "Bereitstellen eines Servers" für einen bestimmten Dienst alle Methoden, durch die ein Server vorbereitet oder angepasst wird, sodass er in der Lage ist, einen bestimmten Dienst zur Verfügung zu stellen.
  • Die Kontrollverbindung 11 zwischen der Verwaltungseinheit 8 und den Servern 1, die zur Bereitstellung der Server 1 eingesetzt wird, kann über das Netzwerk 5 aufgebaut werden. In einem weiteren Ausführungsbeispiel könnte auch ein eigenständiges Netzwerk aus Sicherheits- und/oder Performancegründen eingesetzt werden.
  • Die Grundidee der vorliegenden Erfindung besteht darin, dass in einer AC-Umgebung die Leistungsfähigkeit eines Systems erhöht werden kann, wenn Verwaltungseinheit 8 und Netzwerklastverteiler 6 ihre Informationen über die Server 1 untereinan der austauschen. Der resultierende Informationsaustausch ist im Folgenden im Zusammenhang mit 2 näher beschrieben.
  • 2 zeigt ein Flussdiagramm eines Ausführungsbeispiels eines Verfahrens gemäß der vorliegenden Erfindung.
  • In Schritt A von 2 wird eine Bereitstellungsentscheidung bezüglich eines bestimmten Dienstes von der Verwaltungseinheit 8 unter Zuhilfenahme der Kontrollverbindung 11 umgesetzt, wie im Zusammenhang mit 1 beschrieben. Falls der entsprechende Dienst zum ersten Mal gestartet wird, kann die Bereitstellungsentscheidung auf vorgegebenen Startwerten basieren oder von einem menschlichen Systemverwalter initiiert werden.
  • Informationen 10 über den Bereitstellungsprozess, im Folgenden als Bereitstellungsinformation 10 abgekürzt, werden dann in Schritt B von der Verwaltungseinheit 8 zu dem Netzwerklastverteiler 6 übertragen. Die Bereitstellungsinformationen 10 umfassen zumindest die Netzwerkadressen der Server 1, die zur Bereitstellung des bestimmten Dienstes, für den der Netzwerklastverteiler zuständig ist, entweder neu zur Verfügung stehen oder eben nicht mehr zur Verfügung stehen, das heißt, die entweder zu der Gruppe von Servern 1, die zur Bereitstellung des bestimmten Dienstes eingesetzt werden sollen, hinzugefügt, oder von dieser Gruppe entfernt worden sind. Weitere Daten, die relevant für den Verteilungsprozess sein können und von dem Netzwerklastverteiler 6 genutzt werden können, können ebenfalls in den Bereitstellungsinformationen 10 enthalten sein. Solche zusätzlichen Daten können zum Beispiel Daten über die Leistungsfähigkeit der eingesetzten Server 1 sein. Die Bereitstellungsinformationen 10 können als Transak tionsanweisungen in einer Auszeichnungssprache vorliegen, insbesondere als so genannte XML-basierte Transaktionen.
  • Im Schritt C werden die Bereitstellungsinformationen 10 vom Netzwerklastverteiler 6 empfangen und anschließend in Schritt D benutzt, um die Liste bereitgestellter Server 7 zu aktualisieren. Anstelle einer Liste kann auch jede andere geeignete Datenstruktur eingesetzt werden.
  • In Schritt E werden Zustandsinformationen 9 über die Server 1 und die Anwendungen 2, die auf diesen Servern 1 ausgeführt werden, von dem Netzwerklastverteileragenten 3 gesammelt. Die Zustandsinformation 9 wird dann eingesetzt, um zu entscheiden, zu welchen der in der Liste 7 aufgeführten Server 1 eine Anfrage eines Benutzers verteilt wird, wie das in Schritt F gezeigt ist.
  • Die Zustandsinformationen 9 wird in den Schritten G und H zur Verwaltungseinheit 8 übertragen, beziehungsweise von dieser empfangen. Die zu der Verwaltungseinheit 8 übertragenen Zustandsinformationen 9 müssen dabei nicht genau die gleiche Form und das gleiche Format aufweisen, in der sie ursprünglich von dem Netzwerklastverteiler 6 empfangen wurden. Es kann sich stattdessen um eine ausgewählte Untermenge der ursprünglich empfangenen Zustandsinformationen 9 handeln oder die ursprünglich empfangenen Zustandsinformationen 9 können vor dem weiterleiten von dem Netzwerklastverteiler 6 bearbeitet worden sein. Eine solche Bearbeitung kann zum Beispiel zeitliches Mitteln umfassen, insbesondere wenn die Auslastungsdaten fluktuieren.
  • Die Zustandsinformationen 9 werden im Schritt I dann von der Verwaltungseinheit 8 benutzt, um weitere Bereitstellungsent scheidungen zu treffen, falls dieses angemessen ist. Das Verfahren startet dann erneut mit dem Schritt A, um weitere Bereitstellungsentscheidungen umzusetzen.
  • Das Verfahren führt zu einem iterativen und interaktiven Entscheidungsprozess basierend auf den Zustandsinformationen 9 und den Bereitstellungsinformationen 10, die zwischen der Verwaltungseinheit 8 und dem Netzwerklastverteiler 6 ausgetauscht werden.
  • Obwohl die Erfindung hier im Zusammenhang mit bestimmten Ausführungsbeispielen beschrieben wurde, versteht es sich, dass diese Ausführungsbeispiele lediglich der Darstellung der Grundprinzipien und Anwendungen der vorliegenden Erfindung dienen. Es versteht sich somit, dass zahlreiche Abwandlungen von den erläuternden Ausführungsbeispielen möglich sind und dass andere Anordnungen erstellt werden können, ohne dass vom Grundgedanken und Umfang der vorliegenden Erfindung wie er in den anhängenden Patentansprüchen beschrieben ist, abgewichen wird.
  • 1
    Server
    2
    Anwendung
    3
    Netzwerklastverteileragent
    4
    Benutzer
    5
    Netzwerk
    6
    Netzwerlastverteiler
    7
    Liste bereitgestellter Server
    8
    Verwaltungseinheit
    9
    Zustandsinformationen
    10
    Bereitstellungsinformationen
    11
    Kontrollverbindung
  • Zusammenfassung
  • Computeranordnung und Verfahren zum Anbieten von Diensten für Benutzer über ein Netzwerk
  • Die Computeranordnung zum Anbieten von Diensten für Benutzer (4) über ein Netzwerk (5) umfasst mindestens zwei Server (1), von denen jeder mindestens eine Anwendung (2) aufweist, und eine Verwaltungseinheit (8), eingerichtet zum automatischen Bereitstellen der Servern (1) zum Anbieten der Dienste und mindestens einen Netzwerklastverteiler (6), der mit den Benutzern (4) und den Servern (1) verbunden ist und für zumindest einen der Dienste zuständig ist und der dazu eingerichtet ist, Informationen über den Zustand der Server (1) und/oder der Anwendungen (2) zu sammeln und eingehende Anfragen von Benutzern (4) zu einem der Server (1) zu leiten. Die Computeranordnung und das Verfahren zeichnen sich dadurch aus, dass der Netzwerklastverteiler 6) der Verwaltungseinheit (8) Informationen (9) bezüglich des Zustands der Server (1) und/oder der Anwendungen (2) auf den Servern (1) zur Verfügung stellt und die Verwaltungseinheit (8) dem Netzwerklastverteiler (6) Informationen (10) darüber zur Verfügung stellt, welche Server (1) zum Anbieten des mindestens einen Dienstes, für den der Netzwerklastverteiler (6) zuständig ist, bereitstehen.

Claims (8)

  1. Computeranordnung zum Anbieten von Diensten für Benutzer über ein Netzwerk, umfassend – mindestens zwei Server (1), von denen jeder mindestens eine Anwendung (2) aufweist und dazu eingerichtet ist, Dienste an Benutzer (4) über ein Netzwerk (5) anzubieten; – eine Verwaltungseinheit (8), eingerichtet zum Bereitstellen der Server (1) durch Einbinden von Servern (1) und/oder durch Starten oder Stoppen von Anwendungen (2) auf den Servern (1); – mindestens einen Netzwerklastverteiler (6), der mit den Benutzern (2) und den Servern (1) verbunden ist und für zumindest einen der Dienste zuständig ist und der dazu eingerichtet ist, Informationen (9) über den Zustand der Server (1) und/oder der Anwendungen (2) zusammenzutragen und eingehende Anfragen von Benutzern (4) zu einem der Server (1) zu leiten; wobei der Netzwerklastverteiler (6) der Verwaltungseinheit (8) Informationen (9) bezüglich des Zustands der Server (1) und/oder der Anwendungen (2) auf den Servern (1) zur Verfügung stellt und die Verwaltungseinheit (8) dem Netzwerklastverteiler (6) Informationen (10) darüber zur Verfügung stellt, welche Server zum Anbieten des mindestens einen Dienstes, für den der Netzwerklastverteiler zuständig ist, bereitstehen.
  2. Computeranordnung gemäß Anspruch 1, wobei die Informationen (10) darüber, welche Server (1) bereitgestellt ist, um mindestens einen der Dienste, für den der Netzwerklastverteiler (6) zuständig ist, zu erbringen, eine Liste (7) der entsprechenden Server (1) umfasst.
  3. Computeranordnung nach einem der Ansprüche 1 oder 2, bei der jeder Server (1) einen Netzwerklastverteileragenten (3) aufweist und der Netzwerklastverteileragent (3) dazu eingerichtet ist, Informationen (9) über den Zustand des Servers (1) und/oder der Anwendung (2) auf dem Server (1) zu bestimmen und dazu eingerichtet ist, die Informationen (9) an den Netzwerklastverteiler (6) zu berichten.
  4. Computeranordnung nach Anspruch 3, bei der die Server (1) ein Betriebssystem mit einem Kernel aufweisen und wobei die Netzwerklastverteileragenten (3) in dem Kernel integriert sind.
  5. Computeranordnung nach Anspruch 4, bei der die Netzwerklastverteileragenten (3) Informationen über den Zustand von Anwendungen (2) auf den Servern (1) bestimmen, indem sie Funktions- und/oder Unterprogrammaufrufe der Anwendungen (2) an das Betriebssystem überwachen.
  6. Computeranordnung nach einem der Ansprüche 3 bis 5, bei der die Informationen (9), die von dem Netzwerklastverteileragenten (3) zu dem Netzwerklastverteiler (6) gesendet werden, zur Übertragung in eine Auszeichnungssprache, zum Beispiel XML, gekapselt werden.
  7. Computeranordnung nach einem der Ansprüche 1 bis 6, bei der die Informationen (9, 10), die zwischen dem Netzwerklastverteiler (6) und der Verwaltungseinheit (8) ausgetauscht werden, zur Übertragung in eine Auszeichnungssprache, zum Beispiel XML, gekapselt werden.
  8. Verfahren zum Anbieten von Diensten für Benutzer über ein Netzwerk mit den folgenden Schritten: – Bereitstellen einer Computeranordnung, umfassend – mindestens zwei Server (1), von denen jeder mindestens eine Anwendung (2) aufweist und dazu eingerichtet ist, Dienste für Benutzer (4) über ein Netzwerk (5) anzubieten; – eine Verwaltungseinheit (8), die dazu eingerichtet ist, die Server (1) zum Anbieten der Dienste bereitzustellen, indem die Server (1) eingebunden werden und/oder indem Instanzen der Anwendungen (2) auf den Servern (1) gestartet oder gestoppt werden; – mindestens einen Netzwerklastverteiler (6), der für zumindest einen der Dienste zuständig ist und dazu eingerichtet ist, Informationen (9) über den Zustand der Server (1) und/oder der Anwendungen (2) auf den Servern (1) zu sammeln und der dazu eingerichtet ist, eingehende Anfragen von Benutzern (4) zu einem der Server (1) abhängig von den bestimmten Informationen (9) weiterzuleiten; – Übertragen von Informationen (9) über den Zustand der Server (1) und/oder der Anwendungen (2) auf den Servern (1) von dem Netzwerklastverteiler (6) zu der Verwaltungseinheit (8); – Treffen von Entscheidungen, welche der Server (1) durch die Verwaltungseinheit (8) bereitzustellen sind, auf Basis der Informationen (9), die von dem Netzwerklastverteiler (6) zu der Verwaltungseinheit (8) übertragen wurden und – Übertragen von Informationen (10) darüber, welche Server (1) zur Erbringung des zumindest einen Dienstes, für den der Netzwerklastverteiler (6) zuständig ist, von der Verwaltungseinheit (8) bereitgestellt ist zu den Netzwerklastverteilern (6).
DE112005001995T 2004-09-13 2005-09-09 Computeranordnung und Verfahren zum Anbieten von Diensten für Benutzer über ein Netzwerk Expired - Fee Related DE112005001995B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US60928304P 2004-09-13 2004-09-13
US60/609,283 2004-09-13
PCT/EP2005/009718 WO2006029771A1 (en) 2004-09-13 2005-09-09 Computer arrangement and method for providing services for clients over a network

Publications (2)

Publication Number Publication Date
DE112005001995T5 true DE112005001995T5 (de) 2007-08-02
DE112005001995B4 DE112005001995B4 (de) 2011-12-08

Family

ID=35229944

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005001995T Expired - Fee Related DE112005001995B4 (de) 2004-09-13 2005-09-09 Computeranordnung und Verfahren zum Anbieten von Diensten für Benutzer über ein Netzwerk

Country Status (3)

Country Link
US (1) US20070208844A1 (de)
DE (1) DE112005001995B4 (de)
WO (1) WO2006029771A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4792358B2 (ja) 2006-09-20 2011-10-12 富士通株式会社 資源ノード選択方法、プログラム、資源ノード選択装置および記録媒体
US8838827B2 (en) * 2008-08-26 2014-09-16 Red Hat, Inc. Locating a provisioning server
WO2012045338A1 (en) * 2010-10-06 2012-04-12 Telefonaktiebolaget Lm Ericsson (Publ) Application allocation in datacenters
US10511694B2 (en) 2014-07-23 2019-12-17 Citrix Systems, Inc. Systems and methods for application specific load balancing
US9785474B2 (en) 2015-07-23 2017-10-10 International Business Machines Corporation Managing a shared pool of configurable computing resources using a set of scaling factors and a set of workload resource data
US10169086B2 (en) * 2015-09-13 2019-01-01 International Business Machines Corporation Configuration management for a shared pool of configurable computing resources
US10834176B2 (en) 2017-03-10 2020-11-10 The Directv Group, Inc. Automated end-to-end application deployment in a data center
EP3729725A1 (de) * 2017-12-21 2020-10-28 Telefonaktiebolaget Lm Ericsson (Publ) Agent, server, kernnetzwerkknoten und verfahren darin zur handhabung eines ereignisses eines netzwerkdienstes in einer cloud-umgebung
US11349783B2 (en) * 2019-08-05 2022-05-31 Cisco Technology, Inc. Host input/output based load balancing on fibre channel N_port virtualizer switch uplinks
US20230169355A1 (en) * 2021-12-01 2023-06-01 Capital One Services, Llc Replica reliability

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2309558A (en) * 1996-01-26 1997-07-30 Ibm Load balancing across the processors of a server computer
US6813635B1 (en) * 2000-10-13 2004-11-02 Hewlett-Packard Development Company, L.P. System and method for distributing load among redundant independent stateful world wide web server sites
WO2002037799A2 (en) * 2000-11-03 2002-05-10 The Board Of Regents Of The University Of Nebraska Load balancing method and system
US7475157B1 (en) * 2001-09-14 2009-01-06 Swsoft Holding, Ltd. Server load balancing system
GB0220846D0 (en) * 2002-09-07 2002-10-16 Ibm Remote dynamic configuration of a web server to facilitate capacity on demand
GB0306971D0 (en) * 2003-03-26 2003-04-30 British Telecomm Client server model
US6959264B2 (en) * 2003-09-30 2005-10-25 International Business Machines Corporation Autonomous computing probe agent
US7630313B2 (en) * 2004-09-30 2009-12-08 Alcatel-Lucent Usa Inc. Scheduled determination of network resource availability
US7548945B2 (en) * 2005-04-13 2009-06-16 Nokia Corporation System, network device, method, and computer program product for active load balancing using clustered nodes as authoritative domain name servers

Also Published As

Publication number Publication date
WO2006029771A1 (en) 2006-03-23
DE112005001995B4 (de) 2011-12-08
US20070208844A1 (en) 2007-09-06

Similar Documents

Publication Publication Date Title
DE112005001995B4 (de) Computeranordnung und Verfahren zum Anbieten von Diensten für Benutzer über ein Netzwerk
DE69724877T2 (de) Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE60308700T2 (de) Dynamische fernkonfiguration eines webservers zur bereitstellung von kapazität auf anfrage
DE60214862T2 (de) Methode für die verbesserte verwaltung von einer ereignisdatenbasis und system für ereignismeldung in einem netzwerk
DE60006499T2 (de) System und verfahren zur gruppenzugehörigkeitsbestimmung in einem heterogenen verteilten rechnersystem
DE69935920T2 (de) Lastausgleich in einer netzwerkumgebung
DE60221019T2 (de) Verwaltung von serverbetriebsmitteln für hostanwendungen
DE69530734T2 (de) System und Verfahren zur Workflow-Verwaltung
DE69628769T2 (de) System und Verfahren um die Belastung von Datei-Server zu verteilen
EP0849666B1 (de) Verfahren zum Instantiieren einer versionsbehafteten Klasse
DE60016283T2 (de) Arbeitsbelastungsverwaltung in einer rechnerumgebung
DE69734432T2 (de) Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem
DE112010004772T5 (de) Verfahren und System zum Verwalten von Konfigurationen von Systemverwaltungsagentenin einer Verteilten Umgebung
WO2005050437A2 (de) Verfahren zur installation und konfiguration von softwarekomponenten
DE112008002439T5 (de) Architektur und Protokoll für die erweiterbare und skalierbare Kommunikation
DE10051022B4 (de) Verfahren, System und Computerprogrammprodukt für die Neukonfiguration logischer Drucker in einem Druckernetzsystem beim Wechsel von einem Überwachungsprogramm zu einem zweiten Überwachungsprogramm
DE102008040009A1 (de) Lastverteiltes Zuweisen von medizinischen Taskflows auf Server einer Serverfarm
DE102016203598A1 (de) Gemeinschaftliche sammlung von diagnosedaten von softwareprogrammen
DE10119876A1 (de) Verfahren, System und Computerprorammprodukt zur Bereitstellung einer Jobüberwachung
DE10340416B4 (de) System und Verfahren zum Beenden von Prozessen in einem verteilten Rechensystem
EP1711892B1 (de) Verfahren zum bestimmen eines übernahmeszenarios der softwareeinheiten bei einem rechnerausfall in einer serverfarm
DE112010004530T5 (de) Transaktionsaktualisierung bei Dynamischen Verteilten Arbeitslasten
DE102011114273B4 (de) Automatische Benutzerredundanzbestimmung
DE102016219854A1 (de) Computersystem und Verfahren zum dynamischen Anpassen eines software-definierten Netzwerks

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R084 Declaration of willingness to licence

Effective date: 20110413

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20120309

R081 Change of applicant/patentee

Owner name: FUJITSU TECHNOLOGY SOLUTIONS INTELLECTUAL PROP, DE

Free format text: FORMER OWNER: FUJITSU SIEMENS COMPUTERS, INC., SUNNYVALE, CALIF., US

R082 Change of representative

Representative=s name: EPPING HERMANN FISCHER PATENTANWALTSGESELLSCHA, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0029060000

Ipc: H04L0065000000

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee