DE60010277T2 - Erweiterbares rechnersystem - Google Patents

Erweiterbares rechnersystem Download PDF

Info

Publication number
DE60010277T2
DE60010277T2 DE60010277T DE60010277T DE60010277T2 DE 60010277 T2 DE60010277 T2 DE 60010277T2 DE 60010277 T DE60010277 T DE 60010277T DE 60010277 T DE60010277 T DE 60010277T DE 60010277 T2 DE60010277 T2 DE 60010277T2
Authority
DE
Germany
Prior art keywords
subset
processors
processor
storage devices
distribution system
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.)
Expired - Fee Related
Application number
DE60010277T
Other languages
English (en)
Other versions
DE60010277D1 (de
Inventor
Ashar Aziz
Tom Markson
Martin Patterson
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.)
Terraspring Inc
Original Assignee
Terraspring 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 Terraspring Inc filed Critical Terraspring Inc
Publication of DE60010277D1 publication Critical patent/DE60010277D1/de
Application granted granted Critical
Publication of DE60010277T2 publication Critical patent/DE60010277T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/102Bill distribution or payments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/4675Dynamic sharing of VLAN information amongst network nodes
    • H04L12/4679Arrangements for the registration or de-registration of VLAN attribute values, e.g. VLAN identifiers, port VLAN membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • 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
    • 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/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • H04L49/357Fibre channel switches
    • 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/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Marketing (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Jib Cranes (AREA)
  • Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
  • Molding Of Porous Articles (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich ganz allgemein auf Datenverarbeitung. Die Erfindung bezieht sich genauer auf Verfahren, Vorrichtungen und Mechanismen, die ein erweiterbares, flexibles und leistungsvariables Rechnersystem bereitstellen.
  • HINTERGRUND DER ERFINDUNG
  • Erstellen von Websites (Präsenzen im World Wide Web) und weiteren Computersystemen haben sich heutzutage mit vielen Angelegenheiten der Systemplanung zu befassen. Diese umfassen die Kapazitätsplanung bei normalem Wachstum, bei erwarteter oder unerwarteter Spitzennachfrage, Erreichbarkeit und Sicherheit der Site, und so weiter. Firmen, die Dienstleistungen auf dem Web bereitstellen wollen, haben neue Geschäfts- und Dienstleistungsmodelle, und dies sind auch die Bereiche, in denen sie innovativ und führend sein wollen, aber hierfür müssen sie sich mit der keineswegs unbedeutenden Komplexität des Entwerfens, Erstellens und Betreibens einer umfangreichen Website befassen. Dies umfasst das Bedürfnis, die Site zu vergrößern und in ihrer Leistungsfähigkeit zu ändern (to scale), während sie betriebsbereit ist.
  • Hierfür muss man ausgebildetes Personal finden und anstellen, das in der Lage ist, eine solche Site, die möglicherweise groß und kompliziert sein kann, zu entwerfen und zu betreiben. Dies stellt ein Problem für viele Organisationen dar, weil das Entwerten, Konstruieren und Betreiben solch großer Sites einfach nicht in ihrer Kernkompetenz liegt.
  • Eine Antwort auf diese Schwierigkeiten besteht darin, eine Unternehmens-Website auf der Site eines Dritten unterzubringen (to host), und zwar neben weiteren Websites von weiteren Unternehmen. Solche Ausgliederungs-Einrichtungen sind derzeit erhältlich von Firmen wie z.B. Exodus, AboveNet, GlobalCenter, und so weiter. Diese Einrichtungen stellen physikalischen Platz und redundante Netz- und Energieeinrichtungen bereit, so dass der Unternehmenskunde oder Benutzer sie nicht bereitzustellen braucht. Die Netz- und Energieeinrichtungen werden von vielen Unternehmen oder Kunden gemeinsam genutzt.
  • Die Benutzer dieser Einrichtungen müssen jedoch beim Erstellen, Betreiben und Vergrößern ihrer Einrichtungen immer noch viel Arbeit für ihre Berechnungsinfrastruktur aufwenden. Informationstechnologie-Manager der Unternehmen, die eine Unterbringung in solchen Einrichtungen in Anspruch nehmen, bleiben verantwortlich für das Auswählen, Installieren, Konfigurieren und Aufrechterhalten ihrer eigenen Berechnungsumgebung an den Einrichtungen. Die Manager müssen sich immer noch mit schwierigen Problemen auseinandersetzen, wie etwa der Ressourcenplanung und dem Umgang mit Spitzenkapazität.
  • Auch wenn Ausgliederungs-Firmen sogar Rechner bereitstellen (z.B. Digex), sind die Einrichtungen für die ausgliedernde Firma nicht einfacher zu skalieren und zu vergrößern, weil ein Wachstum dieselben manuellen und fehleranfälligen administrativen Schritte enthält. Zusätzlich verbleiben die Probleme mit der Kapazitätsplanung für unerwartete Spitzennachfrage.
  • Ferner kann jede Website unterschiedliche Anforderungen stellen. Beispielsweise können bestimmte Websites die Fähigkeit benötigen, unabhängig verwaltet und gesteuert zu werden. Andere können eine Art oder einen Grad an Sicherheit benötigen, welcher die Website von all den anderen Sites isoliert, deren Speicherort sich ebenfalls beim Dienstleistungs-Provider befindet. Andere können eine sichere Verbindung zu einem Unternehmens-Intranet benötigen, welches sich woanders befindet.
  • Auch unterscheiden sich unterschiedliche Websites in ihrer internen Topologie. Einige Sites enthalten einfach eine Reihe von Web-Servern, welche durch einen Web-Lastausgleicher in ihrer Last ausgeglichen werden. Geeignete Lastausgleicher sind Local Director von Cisco Systems Inc., BigIP von F5Labs, Web Director von Alteon, und so weiter. Andere Sites können aus mehreren Schichten (multi-tier fashion) aufgebaut sein, wobei eine Reihe von Web-Servern Hypertext-Transportprotokoll-(HTTP)-Anfragen behandeln, aber der Großteil der Anwendungslogik in separaten Anwendungs-Servern implementiert ist. Diese Anwendungs-Server können es wiederum erfordern, mit einer Schicht der Datenbank-Server zurückverbunden zu werden.
  • Einige dieser unterschiedlichen Konfigurations-Szenarien sind in 1A, 1B und 1C gezeigt. 1A ist ein Blockdiagramm einer einfachen Website, welche eine Einzelmaschine 100 enthält, die eine CPU 102 und Platte 104 aufweist. Die Maschine 100 ist mit dem globalen Paketvermittlungsdatennetz gekoppelt, welches als das Internet 106 bekannt ist, oder mit einem anderen Netz. Die Maschine 100 kann bei einem Dienstanbieter für gemeinschaftliche Speicherorte (co-location service) des oben beschriebenen Typs untergebracht sein.
  • 1B ist ein Blockdiagramm einer aus einer Schicht (1-tier) bestehenden Web-Server-Farm 110, welche eine Mehrzahl von Web-Servern WSA, WSB, WSC enthält. Jeder der Web-Server ist an einen Lastausgleicher 112 gekoppelt, welcher an das Internet 106 gekoppelt ist. Der Lastausgleicher teilt den Verkehr zwischen den Servern auf, um eine ausgeglichene Verarbeitungslast für jeden Server aufrechtzuerhalten. Der Lastausgleicher 112 kann auch eine Firewall enthalten oder mit einer solchen gekoppelt sein, um die Web-Server vor nicht autorisiertem Verkehr zu schützen.
  • 1C zeigt eine aus drei Schichten (3-tier) bestehende Server-Farm 120, welche eine Schicht aus Web-Servern W1, W2, und so weiter, eine Schicht aus Anwendungs-Servern A1, A2, und so weiter, und eine Schicht aus Datenbank-Servern D1, D2, und so weiter enthält. Die Web-Server werden zum Handhaben von HTTP-Anfragen bereitgestellt. Die Anwendungs-Server führen den Großteil der Anwendungslogik aus. Die Datenbank-Server führen die Software eines Datenbank-Verwaltungssystems (database management system-DBMS) aus.
  • Wegen der Vielfalt von Topologien bei den Arten von Websites, die möglicherweise aufgebaut werden müssen, mag es so scheinen, als bestünde der einzige Weg zum Aufbauen von umfangreichen Websites darin, jede auf den Kunden maßgeschneidert aufzubauen. Tatsächlich ist dies die herkömmliche Vorgehensweise. Viele Organisationen kämpfen getrennt voneinander mit denselben Schwierigkeiten und bauen jede Website von Grund auf auf den Kunden maßgeschneidert auf. Dies ist ineffizient und bedingt eine wesentliche Menge an doppelter Arbeit bei unterschiedlichen Unternehmen.
  • Noch ein weiteres Problem bei der herkömmlichen Vorgehensweise liegt in der Ressourcen- und Kapazitätsplanung. Eine Website kann erheblich unterschiedliche Verkehrsmengen an unterschiedlichen Tagen oder zu unterschiedlichen Stunden innerhalb jedes Tages erhalten. Zu Spitzenverkehrszeiten kann die Website-Hardware oder -Software nicht in der Lage sein, innerhalb einer angemessenen Zeit auf Anfragen zu antworten, weil sie überlastet ist. Zu anderen Zeiten kann die Website-Hardware oder -Software überschüssige Kapazität haben und unterfordert sein. Bei der herkömmlichen Vorgehensweise ist das Herstellen eines ausgeglichenen Verhältnisses zwischen ausreichend Hardware und Software zum Handhaben von Spitzenverkehr, ohne hierbei überhöhte Kosten zu verursachen oder eine Überkapazität vorzuhalten, ein schwieriges Problem. Viele Websites finden niemals ein ausgeglichenes Verhältnis und leiden chronisch an Unterkapazität oder überschüssiger Kapazität.
  • Noch ein weiteres Problem sind Fehler durch menschliches Versagen. Eine große potentielle Gefahr, welche in der derzeitigen Vorgehensweise zum Verwenden von manuell aufgebauten Server-Farmen begründet ist, ist, dass menschliches Versagen beim Konfigurieren eines neuen Servers in einer laufenden Server-Farm eine Fehlfunktion bei der Server-Farm verursachen kann, welche möglicherweise zu einem Dienstverlust für Benutzer dieser Website führt.
  • Auf Grundlage des oben Genannten gibt es in diesem Gebiet einen klaren Bedarf nach verbesserten Verfahren und Vorrichtungen zum Bereitstellen eines Rechnersystems, welches auf Wunsch sofort und einfach erweiterbar ist, ohne einen auf den Kunden maßgeschneiderten Aufbau zu erfordern.
  • Auch gibt es Bedarf nach einem Rechnersystem, welches das Erzeugen von mehreren abgesonderten Verarbeitungsknoten unterstützt, wobei jeder nach Bedarf erweitert oder vermindert werden kann, um Änderungen des Verkehrsdurchsatzes Rechnung zu tragen. Weitere Bedürfnisse werden durch die in diesem Dokument gegebene Offenbarung deutlich.
  • Ein Artikel von R. Vingralek und anderen mit dem Titel "SNOWBALL: Scalable Storage on Networks with Balanced Load" in Distributed and Parallel Databases 6,117–156 (1998) offenbart Datenverwaltungsalgorithmen zur Unterstützung der verteilten Datenspeicherung und -abfrage auf Netzen von Arbeitsstationen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die obigen Bedürfnisse und Aufgaben und weitere Bedürfnisse und Aufgaben, welche anhand der folgenden Beschreibung deutlich werden, werden durch die vorliegende Erfindung angesprochen, welche ein Datenverarbeitungsverfahren wie in Anspruch 1 angegeben, ein Datenverarbeitungssystem wie in Anspruch 24 angegeben und ein computerlesbares Medium wie in Anspruch 48 angegeben bereitstellt. Die Ausführungsformen stellen ein Verfahren und eine Vorrichtung zum Erzeugen von hochgradig leistungsvariablen und verfügbaren und sicheren Datenverarbeitungs-Sites bereit, die auf einer umfangreichen Berechnungsstruktur ("Berechnungsnetz") basieren. Das Berechnungsnetz wird einmal physikalisch aufgebaut, und es wird dann auf Anforderung logisch für unterschiedliche Organisationen aufgeteilt. Das Berechnungsnetz enthält eine große Anzahl von Berechnungselementen, welche an einen oder mehrere VLAN-Verteiler und an einen oder mehrere Speicherbereichsnetz-(storage area network – SAN)-Verteiler gekoppelt sind. Eine Mehrzahl von Speichervorrichtungen sind mit den SAN-Verteilern gekoppelt und können über eine geeignete Verteiler-Logik und geeignete Verteiler-Befehle selektiv mit einem oder mehreren der Berechnungselemente gekoppelt werden. Ein Anschluss des VLAN-Verteilers ist mit einem externen Netz, wie beispielsweise dem Internet, gekoppelt. Ein Mechanismus, eine Schicht, Maschine oder ein Verfahren zur Beaufsichtigung ist an die VLAN-Verteiler und SAN-Verteiler gekoppelt.
  • Anfangs werden alle Speichervorrichtungen und Berechnungselemente Parkpools zugewiesen. Unter einer Programmsteuerung konfiguriert der Überwachungsmechanismus dynamisch die VLAN-Verteiler und SAN-Verteiler so, dass sie ihre Anschlüsse an ein oder mehrere Berechnungselemente und Speichervorrichtungen koppeln. Im Ergebnis werden solche Elemente und Vorrichtungen logisch aus den Parkpools entfernt und werden Teil einer oder mehrerer virtueller Server-Farmen (virtual server farms – VSFs). Jedes VSF-Berechnungselement wird an eine Speichervorrichtung, die ein Hochfahrbild enthält, das vom Berechnungselement für einen Ladebetrieb (bootstrap) und zur Produktionsausführung verwendet werden kann, verwiesen oder anders dieser Speichervorrichtung zugeordnet.
  • Durch einmaliges physikalisches Aufbauen des Berechnungsnetzes, und durch sicheres und dynamisches Zuweisen von Abschnitten des Berechnungsnetzes an unterschiedliche Organisationen auf Nachfrage, werden Einsparungen aufgrund von Rationalisierungseffekten erreicht, die dann nur schwer zu erreichen sind, wenn jede Site auf den Kunden maßgeschneidert wird.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung ist beispielhaft und nicht im Wege einer Beschränkung in den Figuren der begleitenden Zeichnungen dargestellt, in denen sich gleiche Bezugsziffern auf gleiche Elemente beziehen, und in denen:
  • 1A ein Blockdiagramm einer einfachen Website ist, welche eine Topologie einer Einzelmaschine aufweist.
  • 1B ein Blockdiagramm einer aus einer Schicht bestehenden Web-Server-Farm ist.
  • 1C ein Blockdiagramm einer aus drei Schichten bestehenden Web-Server-Farm ist.
  • 2 ein Blockdiagramm eines Aufbaus eines erweiterbaren Berechnungssystems 200 ist, welches ein lokales Berechnungsnetz enthält.
  • 3 ein Blockdiagramm einer beispielhaften virtuellen Server-Farm ist, welche eine SAN-Zone unterstützt.
  • 4A, 4B, 4C und 4D Blockdiagramme sind, welche aufeinanderfolgende Schritte zeigen, welche beim Hinzufügen eines Berechnungselements und beim Entfernen eines Elements aus einer virtuellen Server-Farm auftreten.
  • 5A ein Blockdiagramm einer Ausführungsform eines virtuellen Server-Farm-Systems, eines Berechnungsnetzes und eines Überwachungsmechanismus ist.
  • 5B ein Blockdiagramm eines Systems ist, in welchem eine Überwachungs- oder Steuerungsebene-Server-Farm durch eine Firewall geschützt wird.
  • 6 ein Blockdiagramm von logischen Verbindungen einer virtuellen Server-Farm ist.
  • 7 ein Blockdiagramm von logischen Verbindungen einer virtuellen Server-Farm ist.
  • 8 ein Blockdiagramm von logischen Verbindungen einer virtuellen Server-Farm ist.
  • 9 ein Blockdiagramm einer Steuerungsebene-Server-Farm ist.
  • 10 ein Blockdiagramm ist, das Verbindungen von Steuerungsebene-Maschinen mit einer Ausführungsform zeigt, die eine Mehrzahl von SAN-Verteilern ("SAN-Netz") verwendet.
  • 11 ein Blockdiagramm einer Mehrzahl von VSFs ist, die sich über WAN-Verbindungen erstrecken.
  • 12 ein Blockdiagramm eines Computersystems ist, mit dem eine Ausführungsform implementiert werden kann.
  • GENAUE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Es wird ein Verfahren und eine Vorrichtung zum Bereitstellen eines erweiterbaren Rechnersystems beschrieben. In der folgenden Beschreibung sind zahlreiche genaue Details zu Erläuterungszwecken angegeben, um ein genaues Verständnis der vorliegenden Erfindung zu ermöglichen. Es wird jedoch dem Fachmann klar sein, dass die vorliegende Erfindung ohne diese spezifischen Details in die Praxis umgesetzt werden kann. In weiteren Fällen sind bekannte Strukturen und Vorrichtungen in Blockdiagrammform gezeigt, um die vorliegende Erfindung so klar wie möglich zu machen.
  • VIRTUELLE SERVER-FARM (VSF)
  • Gemäß einer Ausführungsform wird eine umfangreiche Berechnungsstruktur ("Berechnungsnetz") bereitgestellt. Das Berechnungsnetz kann einmal physikalisch aufgebaut werden und dann auf Anforderung logisch für unterschiedliche Organisationen aufgeteilt werden. Ein Teil des Berechnungsnetzes wird allen von einer Mehrzahl von Unternehmen oder Organisationen zugewiesen. Der jeder Organisation zugeordnete logische Abschnitt des Berechnungsnetzes wird als virtuelle Server-Farm (VSF) bezeichnet. Jede Organisation vermag ihre VSF unabhängig administrativ zu steuern. Jede VSF kann sich dynamisch hinsichtlich der Anzahl an CPUs, Speicherkapazität und Platten- und Netzbandbreite ändern, und zwar basierend auf Echtzeitanforderungen, welche an die Server-Farm gestellt werden, oder anderen Faktoren. Jede VSF ist vor allen VSFs anderer Organisationen sicher, obwohl sie alle aus demselben physikalischen Berechnungsnetz logisch erzeugt wurden. Eine VSF kann mit einem Intranet zurückverbunden sein, und zwar entweder unter Verwendung einer privaten Mietleitung oder eines virtuellen privaten Netzes (VPN), ohne den VSFs anderer Organisationen das Intranet offenzulegen.
  • Eine Organisation kann nur auf die Daten und Berechnungselemente in dem ihr zugewiesenen Abschnitt des Berechnungsnetzes zugreifen, d.h. auf ihre VSF, obwohl sie vollständigen administrativen Zugriff (z.B. als unbeschränkter Benutzer (super user) oder Berechtigter für einen Zugang ohne Zugriffsbeschränkungen (root access)) auf diese Computer ausüben kann und sämtlichen Verkehr auf den lokalen Netzen (Local Area Networks – LANs), mit denen diese Computer verbunden sind, beobachten kann. Dies wird durch die Verwendung eines dynamischen Firewall-Systems ermöglicht, bei welchem der Sicherheitsumfang des VSF sich dynamisch ausdehnt und dynamisch zusammenzieht.
  • Jede VSF kann verwendet werden, um den Inhalt und die Anwendungen einer Organisation unterzubringen, auf welche über das Internet, Intranet oder Extranet zugegriffen werden kann.
  • Aufbau und Steuerung der Berechnungselemente und der mit ihnen verbundenen Netz- und Speicherelemente werden durch einen Überwachungsmechanismus durchgeführt, auf den über keines der Berechnungselemente im Berechnungsnetz direkt zugegriffen werden kann. Zur Vereinfachung wird in diesem Dokument der Überwachungsmechanismus Steuerungsebene (Control Plane) genannt und kann einen oder mehrere Prozessoren oder ein Netz von Prozessoren enthalten. Der Überwachungsmechanismus kann einen Überwacher, eine Steuerung und so weiter umfassen. Weitere Vorgehensweisen können, wie hier beschrieben, verwendet werden.
  • Die Steuerungsebene läuft auf einem völlig unabhängigen Satz von Berechnungselementen, die für Überwachungszwecke bestimmt sind, wie z.B. ein oder mehrere Server, welche in einem Netz oder über andere Mittel verbunden sein können. Sie führt Steuerungsaktionen im Hinblick auf die Berechnungs-, Netz- und Speicherelemente des Computernetzes über spezielle Steuerungsanschlüsse oder Schnittstellen der Netz- und Speicherelemente im Netz durch. Die Steuerungsebene stellt eine physikalische Schnittstelle für Verteiler-Elemente des Systems bereit, überwacht Lasten von Berechnungselementen in dem System und stellt Administrativ- und Verwaltungsfunktionen unter Verwendung einer grafischen Benutzerschnittstelle oder einer anderen geeigneten Benutzerschnittstelle bereit.
  • Computer, auf welchen die Steuerungsebene läuft, sind für die Computer im Berechnungsnetz (und daher in allen einzelnen VSFs) logisch unsichtbar, und sie können auf keine Weise über Elemente im Berechnungsnetz oder von externen Computern angegriffen oder kompromittiert werden. Nur die Steuerungsebene hat physikalische Verbindungen zu den Steuerungsanschlüssen von Vorrichtungen im Berechnungsnetz, die die Mitgliedschaft in einer bestimmten VSF steuert. Die Vorrichtungen können bei der Berechnung nur über diese speziellen Steuerungsanschlüsse konfiguriert werden, und daher sind Berechnungselemente im Berechnungsnetz nicht in der Lage, ihren Sicherheitsumfang zu ändern oder auf Speicher- oder Berechnungsvorrichtungen zuzugreifen, soweit sie hierzu nicht ermächtigt sind.
  • Somit ermöglicht es eine VSF-Organisationen, mit Berechnungseinrichtungen zu arbeiten, welche eine private Server-Farm zu enthalten scheinen, die dynamisch aus einer umfangreichen gemeinsam benutzten Berechnungsinfrastruktur, nämlich dem Berechnungsnetz, erzeugt wird. Eine mit der hier beschriebenen Berechnungsarchitektur gekoppelte Steuerungsebene stellt eine private Server-Farm bereit, deren Privatbereich und Integrität über Zugriffssteuerungsmechanismen geschützt wird, die in der Hardware der Vorrichtungen des Berechnungsnetzes implementiert sind.
  • Die interne Topologie jeder VSF wird von der Steuerungsebene gesteuert. Die Steuerungsebene kann die grundlegende Verknüpfung von Computern, Netzverteilern und Speichernetzverteilern, wie hier beschrieben, heranziehen und sie dazu verwenden, eine Vielfalt von Server-Farm-Konfigurationen zu erzeugen. Diese umfassen sowohl aus einer Schicht bestehende Web-Server-Farmen, deren Frontend durch einen Lastausgleicher gebildet wird, als auch aus mehreren Schichten bestehende Konfigurationen, bei welchen ein Web-Server mit einem Anwendungs-Server kommuniziert, der seinerseits mit einem Datenbank-Server kommuniziert, aber sie sind nicht hierauf beschränkt. Eine Vielfalt von Lastausgleich-, Mehrschicht- und Firewall-Konfigurationen ist möglich.
  • DAS BERECHNUNGSNETZ
  • Das Berechnungsnetz kann an einem einzelnen Ort vorliegen oder kann über einen weiten Bereich verteilt sein. Zunächst beschreibt dieses Dokument das Berechnungsnetz in Form eines einzelnen Gebäudenetzes, welches nur Lokalbereichs-Technologien enthält. Dann beschreibt das Dokument den Fall, dass das Berechnungsnetz über ein Weitbereichsnetz (wide area network – WAN) verteilt ist.
  • 2 ist ein Blockdiagramm einer Konfiguration eines erweiterbaren Berechnungssystems 200, welches ein lokales Berechnungsnetz 208 enthält. In diesem Dokument bedeutet "erweiterbar" ganz allgemein, dass das System flexibel und leistungsvariabel (scalable) ist, und die Fähigkeit hat, einem bestimmten Unternehmen oder einem Benutzer auf Anforderung eine vergrößerte oder verringerte Berechnungsleistung bereitzustellen. Das lokale Berechnungsnetz 208 ist aus einer großen Anzahl von Berechnungselementen CPU1, CPU2, ... CPUn zusammengesetzt. Bei einer beispielhaften Ausführungsform können 10.000 Berechnungselemente oder mehr vorliegen. Diese Berechnungselemente enthalten oder speichern keine elementweisen Zustandsinformationen mit langer Lebensdauer, und sie können daher ohne Dauer- oder nicht-flüchtigen Speicher, wie z.B. eine lokale Platte, aufgebaut werden. Stattdessen werden alle Zustandsinformationen mit langer Lebensdauer separat von den Berechnungselementen auf den Platten DISK1, DISK2, ... DISKn gespeichert, die über ein Speicherbereichsnetz (Storage Area Network- SAN), das ein oder mehrere SAN-Verteiler 202 enthält, mit den Berechnungselementen gekoppelt sind. Geeignete SAN-Verteiler sind von Brocade und Excel kommerziell erhältlich.
  • Alle Berechnungselemente sind über ein oder mehrere VLAN-Verteiler 204 miteinander verbunden, die in virtuelle LANs (VLANs) aufgeteilt werden können. Die VLAN-Verteiler 204 sind an das Internet 106 gekoppelt. Ganz allgemein enthält ein Berechnungselement ein oder zwei Netzschnittstellen, welche mit dem VLAN-Verteiler verbunden sind. Aus Gründen der Vereinfachung sind in 2 alle Knoten mit zwei Netzschnittstellen gezeigt, obwohl einige Knoten weniger oder mehr Netzschnittstellen haben können. Viele kommerzielle Anbieter stellen Verteiler bereit, welche eine VLAN-Funktionalität unterstützen. Beispielsweise sind geeignete VLAN-Verteiler kommerziell von Cisco Systems, Inc. und Xtreme Networks erhältlich. Es gibt auch eine große Anzahl kommerziell erhältlicher Produkte für den Aufbau von SANs, u.a. Faserkanal-Verteiler, SCSI-zu-Faserkanal-Überbrückungsvorrichtungen und Vorrichtungen für Speicher, die über das Netz angeschlossen sind (Network Attached Storage – NAS).
  • Die Steuerungsebene 206 ist jeweils über einen SAN-Steuerungspfad, CPU-Steuerungspfad und VLAN-Steuerungspfad an SAN-Verteiler 202, CPUs CPU1, CPU2,... CPUn bzw. VLAN-Verteiler 204 gekoppelt.
  • Jede VSF ist aus einer Menge von VLANs, einer Menge von Berechnungselementen, die mit den VLANs verbunden sind, und einer Untermenge des auf dem SAN verfügbaren Speichers, die mit dem Satz von Berechnungselementen gekoppelt ist, zusammengesetzt. Die Untermenge des auf dem SAN verfügbaren Speichers wird als eine SAN-Zone bezeichnet, und sie wird durch die SAN-Hardware vor dem Zugriff von Berechnungselementen geschützt, die Teile anderer SAN-Zonen sind. Vorzugsweise werden VLANs, die fälschungssichere Anschlusskennungen bereitstellen, verwendet, um zu verhindern, dass ein Kunde oder Endbenutzer Zugriff auf VSF-Ressourcen eines anderen Kunden oder Endbenutzers erlangt.
  • 3 ist ein Blockdiagramm einer beispielhaften virtuellen Server-Farm, welche eine SAN-Zone unterstützt. Eine Mehrzahl von Web-Servern WS1, WS2, und so weiter sind über ein erstes VLAN (VLAN1) mit einem Lastausgleicher (load balancer- LB)/Firewall 302 gekoppelt. Ein zweites VLAN (VLAN2) koppelt das Internet 106 mit dem Lastausgleicher (LB)/Firewall 302. Jeder der Web-Server kann aus CPU1, CPU2, und so weiter unter Verwendung von hier näher beschriebenen Mechanismen ausgewählt werden. Die Web-Server sind mit einer SAN-Zone 304 gekoppelt, welche mit einer oder mehreren Speichervorrichtungen 306a, 306b gekoppelt ist.
  • Zu einem beliebigen vorgegebenen Zeitpunkt wird ein Berechnungselement im Berechnungsnetz, wie z.B. CPU1 von 2, nur mit der Menge von VLANs und der/den SAN-Zone(n) verbunden, die mit einer einzelnen VSF in Verbindung stehen bzw. steht. Eine VSF wird typischerweise nicht von verschiedenen Organisationen gemeinsam genutzt. Die Untermenge an Speicher auf dem SAN, die zu einer einzelnen SAN-Zone gehört, und die Menge von VLANs, welche mit ihr in Verbindung steht, und die Berechnungselemente auf diesen VLANs bestimmen eine VSF.
  • Durch Steuern der Mitgliedschaft eines VLAN und der Mitgliedschaft einer SAN-Zone erzwingt die Steuerungsebene eine logische Aufteilung des Berechnungsnetzes in mehrere VSFs. Mitglieder einer VSF können nicht auf die Berechnungs- oder Speicherressourcen einer anderen VSF zugreifen. Solche Zugriffsbeschränkungen werden auf der Hardware-Ebene durch die VLAN-Verteiler und durch Mechanismen der Anschlussebenen-Zugriffssteuerung (z.B. Zonenbildung (zoning)) der SAN-Hardware, wie beispielsweise Faserkanal-Verteiler, und von Randvorrichtungen (edge devices), wie beispielsweise Hardware zum Verbinden von SCSI und Faserkanal, erzwungen. Berechnungselemente, die einen Teil des Berechnungsnetzes bilden, sind nicht physikalisch mit den Steuerungsanschlüssen oder Schnittstellen der VLAN-Verteiler und der SAN-Verteiler verbunden und können daher nicht die Mitgliedschaft der VLANs oder SAN-Zonen steuern. Demgemäss können die Berechnungselemente des Berechnungsnetzes nicht auf Berechnungselemente zugreifen, die nicht in der VSF aufgefunden werden, in der sie enthalten sind.
  • Nur die Berechnungselemente, auf denen die Steuerungsebene abläuft, sind physikalisch mit den Steuerungsanschlüssen oder der Schnittstelle der Vorrichtungen im Netz verbunden. Vorrichtungen im Berechnungsnetz (Computer, SAN-Verteiler und VLAN-Verteiler) können nur über solche Steuerungsanschlüsse oder Schnittstellen konfiguriert werden. Dies stellt ein einfaches aber doch sehr sicheres Mittel dar, das dynamische Aufteilen des Berechnungsnetzes in mehrere VSFs durchzuführen.
  • Jedes Berechnungselement in einer VSF ist durch ein beliebiges anderes Berechnungselement ersetzbar. Die Anzahl an Berechnungselementen, VLANs und SAN-Zonen, die mit einer vorgegebenen VSF in Verbindung stehen, kann sich durch die Steuerung der Steuerungsebene im Lauf der Zeit ändern.
  • In einer Ausführungsform enthält das Berechnungsnetz einen Parkpool, welcher eine große Anzahl an Berechnungselementen enthält, welche als Reserve vorgehalten werden. Berechnungselemente aus dem Parkpool können einer bestimmten VSF zugewiesen werden, und zwar um beispielsweise die CPU oder Speicherkapazität, welche für diese VSF verfügbar ist, zu erhöhen, oder um mit Störungen eines bestimmten Berechnungselements in einer VSF umzugehen. Wenn die Berechnungselemente als Web-Server konfiguriert sind, dient der Parkpool als ein großer "Stoßdämpfer" für variierende oder "explosionsartige" Web-Verkehrslasten und damit in Verbindung stehende Spitzenverarbeitungslasten.
  • Der Parkpool wird von vielen unterschiedlichen Organisationen gemeinsam benutzt und sorgt daher für Einsparungen aufgrund des Rationalisierungseffekts, da keine einzelne Organisation die gesamten Kosten des Parkpools zu zahlen hat. Unterschiedliche Organisationen können je nach Bedarf Berechnungselemente aus dem Parkpool zu verschiedenen Tageszeiten erhalten, wodurch es jeder VSF ermöglicht wird, bei Bedarf zu wachsen und zu schrumpfen, wenn der Verkehr sich normalisiert. Wenn viele unterschiedliche Organisationen dauernd gleichzeitig ihre Höchstauslastung erreichen und dadurch potentiell die Kapazität des Parkpools ausschöpfen, kann der Parkpool durch Hinzufügen mehrerer CPUs und Speicherelemente erhöht werden (Leistungsvariabilität – scalability). Die Kapazität des Parkpools ist so ausgelegt, dass die Wahrscheinlichkeit minimiert wird, dass in einem stabilen Zustand eine bestimmte VSF außerstande wäre, ein zusätzliches Berechnungselement aus dem Parkpool zu erlangen, obwohl sie dies benötigt.
  • 4A, 4B, 4C und 4D sind Blockdiagramme, welche aufeinanderfolgende Schritte zeigen, welche beim Bewegen eines Berechnungselements in den und aus dem Parkpool eine Rolle spielen. Zunächst wird unter Bezug auf 4A angenommen, dass die Steuerungsebene Elemente des Berechnungsnetzes logisch zu einer ersten bzw. einer zweiten VSF verbunden hat, welche mit VSF 1, VSF 2 bezeichnet sind. Der Parkpool 400 enthält eine Mehrzahl an CPUs 402, wobei eine davon mit CPUX bezeichnet ist. In 4B hat VSF 1 Bedarf nach einem zusätzlichen Berechnungselement entwickelt. Demgemäss bewegt die Steuerungsebene die CPUX aus dem Parkpool 400 an VSF 1, wie durch Pfad 404 angezeigt.
  • In 4C benötigt VSF 1 die CPUX nicht länger, und daher bewegt die Steuerungsebene die CPUX aus VSF 1 heraus und zurück in den Parkpool 400. In 4D hat VSF 2 einen Bedarf nach einem zusätzlichen Berechnungselement entwickelt. Demgemäss bewegt die Steuerungsebene die CPUX vom Parkpool 400 an VSF 2. Somit kann ein einzelnes Berechnungselement im Laufe der Zeit je nachdem, wie sich die Verkehrsbedingungen ändern, zum Parkpool (4A) gehören, dann einer bestimmten VSF zugewiesen werden (4B), dann zum Parkpool zurückgesetzt werden (4C) und dann zu einer anderen VSF gehören (4D).
  • Auf jeder dieser Stufen konfiguriert die Steuerungsebene die LAN-Verteiler und SAN-Verteiler, welche diesem Berechnungselement zugeordnet sind, so dass sie Teil der VLANs und SAN-Zonen werden, die einer bestimmten VSF (oder dem Parkpool) zugeordnet sind. Gemäß einer Ausführungsform wird zwischen jedem Übergang das Berechnungselement heruntergefahren oder neu hochgefahren. Wenn es wieder hochgefahren ist, ist für es ein anderer Abschnitt der Speicherzone auf dem SAN, einschließlich eines ladbaren Bildes eines Betriebssystems (beispielsweise Linux, NT, Solaris und so weiter) sichtbar. Die Speicherzone enthält auch einen Datenabschnitt, der für jede Organisation spezifisch ist (beispielsweise Dateien, welche einem Web-Server zugeordnet sind, Datenbank-Teilbereiche, und so weiter). Sie ist auch Teil eines anderen VLAN, das Teil der VLAN-Menge einer anderen VSF ist, so dass sie auf CPUs, SAN-Speichervorrichtungen und NAS-Vorrichtungen zugreifen kann, die den VLANs der VSF zugeordnet sind, in die das Berechnungselement übergeleitet wurde.
  • Bei einer bevorzugten Ausführungsform enthalten die Speicherzonen eine Mehrzahl an vorbestimmten logischen Entwürfen (blueprints), die mit Funktionen (roles) in Verbindung stehen, die die Berechnungselemente annehmen können. Anfangs ist kein Berechnungselement für irgendeine bestimmte Funktion oder Aufgabe bestimmt, wie z.B. Web-Server, Anwendungs-Server, Datenbank-Server, und so weiter. Das Berechnungselement erhält seine Funktion von einem aus einer Mehrzahl von vorbestimmten, gespeicherten Entwürfen, von denen jeder ein Hochfahrbild für die Berechnungselemente bestimmt, die dieser Funktion zugeordnet sind. Die Entwürfe können in Form einer Datei, einer Datenbank-Tabelle oder jedes beliebigen anderen Speicherformats gespeichert werden, das eine Speicherstelle eines Hochfahbildes einer Funktion zuzuordnen vermag.
  • Somit erfolgen die Bewegungen von CPUX in 4A, 4B, 4C, 4D logisch, nicht physikalisch, und sie werden ausgeführt, indem die VLAN-Verteiler und SAN-Zonen unter Steuerung der Steuerungsebene neu konfiguriert werden. Ferner ist jedes Berechnungselement im Berechnungsnetz anfangs notwendigerweise ersetzbar und nimmt eine spezifische Verarbeitungsfunktion erst an, nachdem es in eine virtuelle Server-Farm eingebunden worden ist und Software aus einem Hochfahrbild lädt. Kein Berechnungselement ist für irgendeine bestimmte Funktion oder Aufgabe, wie z.B. Web-Server, Anwendungs-Server, Datenbank-Server, und so weiter fest vorbestimmt. Das Berechnungselement erhält seine Funktion von einem Entwurf aus einer Mehrzahl von vorbestimmten gespeicherten Entwürfen, wobei jeder von ihnen einer Funktion zugeordnet ist, von denen jede ein Hochfahrbild für die Berechnungselemente bestimmt, die dieser Funktion zugeordnet sind.
  • Da keine Zustandsinformationen mit langer Lebensdauer auf irgendeinem vorgegebenen Berechnungselement (wie z.B. einer lokalen Platte) gespeichert sind, werden Knoten einfach zwischen unterschiedlichen VSFs bewegt und können völlig verschiedene Betriebssystem- und Anwendungssoftware laufen lassen. Auch dies macht jedes Berechnungselement im Falle geplanter oder ungeplanter Stillstandszeiten in hohem Maß ersetzbar.
  • Ein bestimmtes Berechnungselement kann unterschiedliche Funktionen ausüben, wenn es in unterschiedliche VSFs aufgenommen und aus diesen wieder entfernt wird. Beispielsweise kann ein Berechnungselement in einer VSF als Web-Server agieren, und wenn es in eine andere VSF aufgenommen wird, kann es ein Datenbank-Server, ein Web-Lastausgleicher, eine Firewall und so weiter sein. Auch kann es nacheinander in verschiedenen VSFs unterschiedliche Betriebssysteme, wie z.B. Linux, NT oder Solaris, laden und laufen lassen. Somit ist jedes Berechnungselement im Berechnungsnetz ersetzbar und hat keine ihm zugewiesene statische Funktion. Demgemäss kann die gesamte Reservekapazität des Berechnungsnetzes verwendet werden, um jedweden Dienst, der von irgendeiner VSF gefordert wird, bereitzustellen. Dies sorgt für ein hohes Maß an Verfügbarkeit und Zuverlässigkeit der Dienste, die durch eine einzelne VSF bereitgestellt werden, weil jeder Server, der einen bestimmten Dienst durchführt, potentiell Tausende von Reserve-Servern (back-up servers) hat, die in der Lage sind, denselben Dienst bereitzustellen.
  • Ferner kann die hohe Reservekapazität des Berechnungsnetzes sowohl für dynamische Lastausgleich-Fähigkeiten als auch für hohe Prozessorverfügbarkeit sorgen. Diese Fähigkeit wird durch die einzigartige Kombination von Berechnungselementen ohne Platte ermöglicht, die über VLANs verknüpft sind und die über ein SAN mit einer konfigurierbaren Zone von Speichervorrichtungen verbunden sind, wobei alle in Echtzeit durch die Steuerungsebene gesteuert werden. Jedes Berechnungselement kann die Funktion eines beliebigen erforderlichen Servers in einer beliebigen VSF übernehmen und kann die Verbindung zu einem beliebigen logischen Teilbereich einer beliebigen Platte im SAN herstellen. Wenn das Netz mehr Berechnungsleistung oder Plattenkapazität erfordert, werden Berechnungselemente oder Plattenspeicher manuell dem Parkpool hinzugefügt, der im Lauf der Zeit abnehmen kann, wenn mehreren Organisationen VSF-Dienstleistungen bereitgestellt werden. Es ist keine manuelle Intervention erforderlich, um die Anzahl von CPUs, Netz- und Plattenbandbreite und Speicher, der für eine VSF verfügbar ist, zu erhöhen. All diese Ressourcen werden durch die Steuerungsebene auf Anfrage aus den CPU-, Netz und Platten-Ressourcen zugewiesen, die im Parkpool verfügbar sind.
  • Eine bestimmte VSF wird keiner manuellen Neukonfiguration unterworfen. Nur die Maschinen im Parkpool werden manuell in das Berechnungsnetz einkonfiguriert. Damit wird im Ergebnis eine große potentielle Gefahr, welche in gängigen manuell konstruierten Server-Farmen vorliegt, beseitigt. Die Möglichkeit, dass menschliches Versagen beim Konfigurieren eines neuen Servers in einer im Betrieb befindlichen Server-Farm zu einer Fehlfunktion der Server-Farm führen kann, welche möglicherweise für Benutzer dieser Website zu einem Dienstverlust führt, wird so gut wie beseitigt.
  • Auch kopiert die Steuerungsebene Daten, die in mit dem SAN verbundenen Speichervorrichtungen gespeichert sind, so dass eine Störung irgendeines bestimmten Speicherelements keinen Dienstverlust für irgendeinen Teil des Systems verursacht. Ein hoher Grad an Verfügbarkeit wird erreicht, indem die Dauerspeicher von den Berechnungsvorrichtungen, die SANs verwenden, entkoppelt werden und indem redundante Speicher- und Berechnungselemente bereitgestellt werden, wobei jedwedes Berechnungselement an jedwedem Speicher-Teilbereich angebracht werden kann.
  • EIN GENAUES BEISPIEL DES AUFBAUENS EINER VIRTUELLEN SERVER-FARM, HINZUFÜGEN EINES PROZESSORS AN SIE, UND ENTFERNEN EINES PROZESSORS VON IHR
  • 5A ist ein Blockdiagramm eines VSF-Systems gemäß einer Ausführungsform. Mit Bezug auf 5A beschreibt das Folgende die genauen Schritte, welche verwendet werden können, um eine VSF zu erzeugen, Knoten an ihr anzubringen und Knoten von ihr zu löschen.
  • 5A zeigt Berechnungselemente 502, die Computer A bis G enthalten, die an einen VLAN-fähigen Verteiler 504 gekoppelt sind. Der VLAN-Verteiler 504 ist an das Internet 106 gekoppelt, und der VLAN-Verteiler hat Anschlüsse V1, V2, und so weiter. Die Computer A bis G sind ferner an einen SAN-Verteiler 506 gekoppelt, welcher an eine Mehrzahl von Speichervorrichtungen oder Platten D1–D5 gekoppelt ist. Der SAN-Verteiler 506 hat Anschlüsse S1, S2, und so weiter. Eine Steuerungsebene-Maschine 508 ist über Steuerungspfade und Datenpfade an den SAN-Verteiler 506 und VLAN-Verteiler 504 gekoppelt. Die Steuerungsebene ist in der Lage, Steuerungsbefehle über die Steuerungsanschlüsse an diese Vorrichtungen zu senden.
  • Aus Gründen der Vereinfachung und besseren Darstellung ist die Anzahl von Berechnungselementen in 5A klein. In der Praxis bilden eine große Anzahl von Computern, beispielsweise Tausende oder mehr, und eine gleich große Anzahl von Speichervorrichtungen das Berechnungsnetz. Bei solch größeren Strukturen werden mehrere SAN-Verteiler miteinander verbunden, um ein Netz zu bilden, und mehrere VLAN-Verteiler werden miteinander verbunden, um ein VLAN-Netz zu bilden. Aus Gründen der Klarheit und Vereinfachung zeigt 5A jedoch einen einzigen SAN-Verteiler und einen einzigen VLAN-Verteiler.
  • Anfangs werden alle Computer A–G dem Parkpool zugewiesen, bis die Steuerungsebene eine Anfrage empfängt, eine VSF zu erzeugen. Alle Anschlüsse des VLAN-Verteilers werden einem bestimmten VLAN zugewiesen, das als VLAN 1 (für die Parkzone) bezeichnet wird. Es wird angenommen, dass bei der Steuerungsebene angefragt wird, eine VSF aufzubauen, die einen Lastausgleicher/Firewall und zwei Web-Server enthält, die mit einer Speichervorrichtung auf dem SAN verbunden sind. Anfragen an die Steuerungsebene können die Steuerungsebene über eine Verwaltungsschnittstelle oder ein anderes Berechnungselement erreichen.
  • Ansprechend hierauf bestimmt die Steuerungsebene CPU A als den Lastausgleicher/Firewall, oder stellt CPU A zu diesem Zweck bereit, und bestimmt CPUs B und C als Web-Server, oder stellt CPUs B und C zu diesem Zweck bereit. CPU A wird logisch in SAN Zone 1 plaziert und auf einen ladefähigen (bootable) Teilbereich auf einer Platte gerichtet (pointed to), welcher eine für den Betrieb als Lastausgleicher/Firewall bestimmte Software enthält. Der Ausdruck "gerichtet auf" wird zur Vereinfachung verwendet und soll bezeichnen, dass die CPU A auf beliebige Weise Informationen erhält, die ausreichen, um es der CPU A zu ermöglichen, eine geeignete Software zu erhalten oder aufzufinden, die sie zum Betrieb benötigt. Ein Plazieren von CPU A in SAN-Zone 1 ermöglicht es der CPU A, Ressourcen von Platten zu erhalten, die durch das SAN dieser SAN-Zone gesteuert werden.
  • Der Lastausgleicher wird so durch die Steuerungsebene konfiguriert, dass er weiß, dass CPUs B und C die beiden Web-Server sind, für die er einen Lastausgleich durchführen soll. Der Firewall-Aufbau schützt CPUs B und C vor unberechtigtem Zugriff aus dem Internet 106. CPUs B und C sind auf einen Platten-Teilbereich auf dem SAN gerichtet, der ein ladefähiges Betriebssystembild für ein bestimmtes Betriebssystem (beispielsweise Solaris, Linux, NT, und so weiter) und eine Web-Server-Anwendungssoftware (beispielsweise Apache) enthält. Der VLAN-Verteiler ist so aufgebaut, dass er Anschlüsse v1 und v2 auf VLAN 1, und Anschlüsse v3, v4, v5, v6 und v7 auf VLAN 2 setzt. Die Steuerungsebene konfiguriert den SAN-Verteiler 506 so, dass er die Faserkanal-Verteileranschlüsse s2, s3 und s8 in SAN-Zone 1 setzt.
  • Eine Beschreibung, wie eine CPU auf ein bestimmtes Plattenlaufwerk gerichtet wird, und was dies für das Hochfahren und den gemeinsamen Zugriff auf Platten-Daten bedeutet, folgt.
  • 6 ist ein Blockdiagramm der sich ergebenden logischen Verbindungsfähigkeit von Berechnungselementen, die zusammen VSF 1 genannt werden. Ein Platten-Laufwerk DD1 wird aus den Speichervorrichtungen D1, D2, und so weiter ausgewählt. Sobald der logische Aufbau so wie in 6 gezeigt erreicht wird, erhalten die CPUs A, B, C einen Hochfahrbefehl. In Reaktion hierauf wird CPU A zu einer ausgewiesenen Lastausgleich/Firewall-Maschine, und CPUs B, C werden zu Web-Servern.
  • Es wird nun angenommen, dass wegen einer auf einer Strategie beruhenden Regel die Steuerungsebene bestimmt, dass ein weiterer Web-Server in der VSF 1 erforderlich ist. Dies könnte der Fall sein, weil es eine erhöhte Anzahl an Anfragen gibt, welche auf die Website gelangen, und der Plan des Kunden es zulässt, dass mindestens drei Web-Server der VSF 1 hinzugefügt werden. Oder es kann der Fall sein, weil die Organisation, die die VSF besitzt oder betreibt, einen weiteren Server wünscht, und ihn über einen administrativen Mechanismus hinzugefügt hat, wie z.B. eine privilegierte Webseite, die es erlaubt, dass mehrere Server an die VSF hinzugefügt werden.
  • In Reaktion darauf entscheidet die Steuerungsebene, CPU D an VSF 1 hinzuzufügen. Hierzu fügt die Steuerungsebene die CPU D an VLAN 2 durch Hinzufügen der Anschlüsse v8 und v9 an ULAN 2 hinzu. Auch wird der SAN-Anschluss s4 der CPU D zu der SAN-Zone 1 hinzugefügt. Die CPU D wird auf einen ladefähigen Abschnitt des SAN-Speichers gerichtet und startet und läuft als Web-Server. Auch erhält die CPU D einen Nur-Lese Zugriff auf die gemeinsam benutzen Daten auf dem SAN, die aus Inhalten von Webseiten, ausführbaren Server-Skripten und so weiter bestehen können. Auf diese Weise ist es möglich, Webanfragen, welche für die Server-Farm vorgesehen sind, weitgehend ebenso zu bedienen, wie die CPUs B und C Anfragen bedienen. Die Steuerungsebene konfiguriert auch den Lastausgleicher (CPU A) derart, dass er die CPU D als Teil der Servermenge enthält, für die ein Lastausgleich durchgeführt wird.
  • CPU D wird nun hochgefahren, und die Größe der VSF ist nun auf drei Web-Server und einen Lastausgleicher angestiegen. 7 ist ein Blockdiagramm der sich hieraus ergebenden logischen Verbindungsstruktur.
  • Es wird angenommen, dass die Steuerungsebene nun eine Anfrage erhält, eine weitere VSF zu erzeugen, der sie den Namen VSF 2 gibt, und die zwei Web-Server und einen Lastausgleicher/Firewall benötigt. Die Steuerungsebene ordnet CPU E als Lastausgleicher/Firewall zu, und CPUs F, G als Web-Server. Sie konfiguriert CPU E so, dass diese Kenntnis davon hat, dass CPUs F, G die beiden Maschinen sind, mit denen ein Lastausgleich vorgenommen werden muss.
  • Um diese Konfiguration zu implementieren, konfiguriert die Steuerungsebene den VLAN-Verteiler 504 so, dass er die Anschlüsse v10, v11 in das VLAN 1 (d.h., verbunden mit dem Internet 106) aufnimmt, und dass die Anschlüsse v12, v13 und v14, v15 in VLAN 3 liegen. Ähnlich konfiguriert sie den SAN-Verteiler 506 so, dass er die SAN-Anschlüsse s6 und s7 und s9 in die SAN-Zone 2 aufnimmt. Diese SAN-Zone enthält den Speicher, der die Software enthält, die notwendig ist, um CPU E als einen Lastausgleicher laufen zu lassen und CPUs F und G als Web-Server laufen zu lassen, die einen gemeinsamen Nur-Lese-Plattenteilbereich verwenden, der auf der Platte D2 in SAN-Zone 2 enthalten ist.
  • 8 ist ein Blockdiagramm der sich daraus ergebenden logischen Verbindungsstruktur. Obwohl zwei VSFs (VSF 1, VSF 2) gemeinsam denselben physikalischen VLAN-Verteiler und SAN-Verteiler verwenden, sind die beiden VSFs logisch voneinander abgegrenzt. Benutzer, welche auf CPUs B, C, D zugreifen, oder das Unternehmen, das VSF 1 besitzt oder betreibt, können nur auf die CPUs und den Speicher von VSF 1 zugreifen. Solche Benutzer können nicht auf die CPUs oder Speicher von VSF 2 zugreifen. Dies liegt an der Kombination der separaten VLANs und der beiden Firewalls auf dem einzigen, gemeinsam genutzten Segment (VLAN 1) und den unterschiedlichen SAN-Zonen, in denen die beiden VSFs konfiguriert sind.
  • Es wird weiter angenommen, dass später die Steuerungsebene entscheidet, dass VSF 1 nun auf zwei Web-Server reduziert werden kann. Das kann daran liegen, dass die vorübergehende Lastzunahme auf VSF 1 abnahm oder auch daran, dass eine andere administrative Aktion stattfand. Als Reaktion hierauf schaltet die Steuerungsebene die CPU D durch einen speziellen Befehl aus, was ein Herunterfahren der CPU enthalten kann. Sobald die CPU ausgeschaltet wurde, entfernt die Steuerungsebene Anschlüsse v8 und v9 von VLAN 2 und entfernt auch den SAN-Anschluss s4 aus der SAN-Zone 1. Der Anschluss s4 wird in eine Park-SAN-Zone gesetzt. Die Park-SAN-Zone kann beispielsweise als SAN-Zone 1 (zum Parken) oder Zone 0 bezeichnet werden.
  • Etwas später kann die Steuerungsebene entscheiden, einen weiteren Knoten an VSF 2 hinzuzufügen. Dies kann der Fall sein, weil die Last auf den Web-Servern im VSF 2 zeitweilig zugenommen hat, oder es kann aus anderen Gründen so sein. Demgemäss entscheidet die Steuerungsebene, die CPU D in VSF 2 so zu setzen, wie durch einen gestrichelten Pfad 802 angezeigt. Um dies zu tun, konfiguriert sie den VLAN-Verteiler, Anschlüsse v8, v9 in das VLAN 3 aufzunehmen, und den SAN-Anschluss s4 in die SAN Zone 2 aufzunehmen. Die CPU D wird auf den Abschnitt des Speichers auf der Platten-Vorrichtung 2 gerichtet, der ein ladefähiges Bild der Betriebssystem- und Web-Server-Software enthält, die für Server in VSF 2 erforderlich ist. Ferner wird CPU D ein Nur-Lese-ZugrifF auf Daten in einem Dateisystem gewährt, welches durch die anderen Web-Server in VSF 2 gemeinsam genutzt wird. Die CPU D wird wieder hochgefahren, und sie läuft nun als ein lastausgeglichener Web-Server in VSF 2 und kann nicht länger auf irgendwelche Daten in SAN-Zone 1 oder den CPUs zugreifen, welche an das VLAN 2 angebunden sind. Insbesondere hat die CPU D keine Möglichkeit, auf irgendein Element der VSF 1 zuzugreifen, obwohl sie zu einem früheren Zeitpunkt Teil von VSF 1 war.
  • Ferner hat sich bei diesem Aufbau der von der CPU E erzwungene Sicherheitsumfang dynamisch so erweitert, dass er die CPU D enthält. Somit stellen die Ausführungsformen eine dynamische Firewall-Funktionalität bereit, die sich automatisch anpasst, um Berechnungselemente geeignet zu schützen, die einer VSF hinzugefügt oder aus ihr entfernt wurden.
  • PLATTENVORRICHTUNGEN AUF DEM SAN
  • Es gibt mehrere Wege, eine CPU auf eine bestimmte Vorrichtung auf dem SAN zu richten, und zwar zum Laden oder zum Zugreifen auf einen Plattenspeicher, welcher mit anderen Knoten gemeinsam genutzt werden muss, oder auf andere Weise mit Informationen darüber zu versorgen, wo Ladeprogramme und -daten zu finden sind.
  • Ein Weg besteht darin, eine SCSI-zu-Faserkanal-Verbindungsvorrichtung zu verwenden, die an ein Berechnungselement angebracht ist, und eine SCSI-Schnittstelle für die lokalen Platten bereitzustellen. Durch Leiten dieses SCSI-Anschlusses an das richtige Laufwerk auf dem Faserkanal-SAN kann der Computer auf die Speichervorrichtung auf dem Faserkanal-SAN zugreifen, genauso wie er auf eine lokal angebrachte SCSI-Platte zugreifen würde. Daher fährt die Software, wie z.B. die Hochfahr-Software, einfach von der Platten-Vorrichtung auf dem SAN hoch, genauso als würde sie von einer lokal angebrachten SCSI-Platte hochfahren.
  • Eine andere Art besteht darin, eine Faserkanal-Schnittstelle auf dem Knoten und zugeordnete Gerätetreiber- und Lade-ROM- und Betriebssystemsoftware zu haben, die es erlauben, die Faserkanal-Schnittstelle als Lade-Vorrichtung zu verwenden.
  • Ein noch anderer Weg besteht darin, eine Schnittstellenkarte (beispielsweise PCI-Bus oder Sbus) zu haben, die als eine SCSI- oder IDE-Vorrichtungs-Steuerung erscheint, welche aber wiederum über das SAN kommuniziert, um auf die Platte zuzugreifen. Betriebssysteme, wie beispielsweise Solaris und Windows NT, sehen eingebaute plattenlose Ladefunktionen vor, die in dieser Alternative verwendet werden können.
  • Typischerweise gibt es zwei Arten von SAN-Platten-Vorrichtungen, die mit einem gegebenen Knoten in Verbindung stehen. Die erste wird nicht zusammen mit anderen Berechnungselementen logisch genutzt, und bildet, was normalerweise eine Wurzelpartition pro Knoten ist, die ladefähige Betriebssystembilder, lokale Konfigurationsdateien und so weiter enthält. Dies ist das Äquivalent des Wurzel-Dateisystems auf einem UNIX-System.
  • Die zweite Art Platte ist ein gemeinsam mit anderen Knoten genutzter Speicher. Die Art des gemeinsamen Benutzens variiert mit der Betriebssystemsoftware, welche auf der CPU läuft, und mit den Bedürfnissen der Knoten, welche auf den gemeinsam benutzten Speicher zugreifen. Wenn das Betriebssystem ein Cluster-Dateisystem bereitstellt, welches einen Lese/Schreib-Zugriff auf einen gemeinsam benutzten Platten-Teilbereich zwischen mehreren Knoten erlaubt, wird die gemeinsam benutzte Platte als ein solches Cluster-Dateisystem eingebunden. Ähnlich kann das System eine Datenbank-Software, wie z.B. Oracle Parallel Server, verwenden, die es erlaubt, dass mehrere Knoten, die in einem Cluster laufen, gleichzeitigen Lese/Schreib-Zugriff auf eine gemeinsam genutzte Platte haben. In solchen Fällen ist eine gemeinsam genutzte Platte bereits in der grundlegenden Betriebssystem- und Anwendungssoftware vorgesehen.
  • Bei Betriebssystemen, bei denen ein solcher gemeinsamer Zugriff nicht möglich ist, weil das Betriebssystem und damit in Verbindung stehende Anwendungen keine Plattenvorrichtungen verwalten können, die gemeinsam mit anderen Knoten verwendet werden, kann die gemeinsam genutzte Platte als eine Nur-Lese-Vorrichtung eingebunden werden. Für viele Web-Anwendungen reicht ein Nur-Lese-Zugriff auf Web-bezogene Dateien aus. Beispielsweise kann in UNIX-Systemen ein bestimmtes Dateisystem nur zum Lesen eingebunden werden.
  • MEHRFACH-VERTEILER-BERECHNUNGSNETZ
  • Der oben in Verbindung mit 5A beschriebene Aufbau kann auf eine große Anzahl von Berechnungs- und Speicherknoten erweitert werden, indem eine Vielzahl von VLAN-Verteilern miteinander verbunden werden, um eine große VLAN-Verteiler-Struktur zu bilden, und durch Verbinden mehrerer SAN-Verteiler miteinander, um ein großes SAN-Verteiler-Netz zu bilden. In diesem Fall hat ein Berechnungsnetz die ganz allgemein in 4 gezeigte Architektur, davon abgesehen, dass das SAN/VLAN-Verteiler-Netz eine sehr große Anzahl von Anschlüssen für CPUs und Speichervorrichtungen enthält. Eine Anzahl von Maschinen, auf denen die Steuerungsebene ausgeführt wird, kann physikalisch mit den Steuerungsanschlüssen der VLAN/SAN-Verteiler verbunden werden, wie unten weiter beschrieben. Eine Verbindung mehrerer VLAN-Verteiler miteinander zum Erzeugen komplexer Multi-Campus-Datennetze ist auf diesem Gebiet bekannt. Siehe beispielsweise G. Haviland, "Designing High-Performance Campus Intranets with Multilayer Switching" Cisco Systems Inc., online erhältlich unter http://www.cisco.com/warp/puplic/cc/sol/mkt/ent/ndsgn/highd_wp.htm
  • SAN-ARCHITEKTUR
  • Die Beschreibung nimmt an, dass das SAN Faserkanal-Verteiler- und Platten-Vorrichtungen und möglicherweise Faserkanal-Randvorrichtungen, wie z.B. SCSI-zu-Faserkanal-Brücken, enthält. Jedoch können SANs unter Verwendung alternativer Technologien aufgebaut werden, wie etwa Gigabit-Ethernet-Verteiler oder Verteiler, die andere physikalische Schichtprotokolle verwenden. Insbesondere gibt es derzeit Anstrengungen, SANs über IP-Netze aufzubauen, indem das SCSI-Protokoll über IP ausgeführt wird. Die oben beschriebenen Verfahren und Architektur können an diese alternativen Verfahren für den Aufbau eines SAN angepasst werden. Wenn ein SAN aufgebaut wird, indem ein Protokoll wie SCSI-über-IP über eine VLAN-fähige Schicht-2-Umgebung aufgebaut wird, dann werden SAN-Zonen erzeugt, indem diese auf verschiedene VLANs abgebildet werden.
  • Auch kann ein über ein Netz angeschlossener Speicher (Network Attached Storage – NAS) verwendet werden, der über LAN-Technologien, wie z.B. schnelles Ethernet oder Gigabit-Ethernet, arbeitet. Bei dieser Option werden unterschiedliche VLANs anstelle der SAN-Zonen verwendet, um Sicherheit und logische Aufteilung des Berechnungsnetzes zu gewährleisten. Solche NAS-Vorrichtungen unterstützen typischerweise Netz-Dateisysteme, wie beispielsweise das NSF-Protokoll von Sun oder SMB von Microsoft, um es zu ermöglichen, dass mehrere Knoten gemeinsam denselben Speicher benutzen.
  • IMPLEMENTIERUNG DER STEUERUNGSEBENE
  • Bei der obigen Beschreibung wird die Steuerungsebene durch eine Box dargestellt, die an Steuerungs- und Datenanschlüsse der SAN/VLAN-Verteiler gekoppelt ist. Es werden aber auch weitere Implementierungen der Steuerungsebene in Erwägung gezogen.
  • Typischerweise sind die SAN/VLAN-Steuerungsanschlüsse Ethernet-Schnittstellen. 9 ist ein Blockdiagramm einer Architektur, die in einem solchen Fall verwendet werden kann. Alle Steuerungs-("CTL")-Anschlüsse jedes VLAN-Verteilers (VLAN SW1, VLAN SWn) und alle Steuerungsanschlüsse jedes SAN-Verteilers (SAN SW1, SAN SWn) werden auf ein einziges Ethernet-Unternetz 902 gelegt. Das Unternetz 902 ist nur mit einer Mehrzahl von Steuerungsebene-Maschinen CP CPU1, CP CPU2, und so weiter verbunden. Dies ermöglicht es, dass mehrere Steuerungsebene-Maschinen mit den Steuerungsanschlüssen von allen SAN-Verteilern und VLAN-Verteilern verbunden werden.
  • Bei diesem Aufbau wird die Mehrzahl von Steuerungsebene-Maschinen gemeinsam als die Steuerungsebene oder CP 904 bezeichnet. Nur Maschinen in der CP 904 haben eine physikalische Verbindung mit den Steuerungsanschlüssen der VLAN-Verteiler und SAN-Verteiler. Demgemäss können CPUs in einer vorgegebenen VSF nicht die Mitgliedschaft der VLANs und SAN-Zonen ändern, welche ihrer eigenen VSF oder irgendeiner anderen VSF zugeordnet sind.
  • Alternativ könnten die Steuerungsanschlüsse, anstelle von Ethernet-Schnittstellen, serielle oder parallele Anschlüsse sein. In diesem Fall werden die Anschlüsse mit den Steuerungsebene-Maschinen gekoppelt.
  • VERBINDUNGEN VON STEUERUNGSEBENE-DATEN MIT VLANS
  • Die Maschinen, auf welchen die Steuerungsebene ausgeführt wird, müssen Zugriff auf die Datenanschlüsse sowohl der VLAN-Verteiler als auch der SAN-Verteiler haben. Dies ist erforderlich, damit die Steuerungsebene in der Lage ist, die Dateien zu konfigurieren, die sich auf einen bestimmten Knoten beziehen, und um Echtzeit-Informationen von einem Knoten zu sammeln, die sich auf eine aktuelle CPU-Last, Netzlast und Plattenlast beziehen.
  • 5B ist ein Blockdiagramm einer Ausführungsform, das einen Aufbau zum Verbinden einer Steuerungsebene 516 mit Datenanschlüssen zeigt. Bei einer Ausführungsform senden Maschinen in jeder VSF periodisch ein Paket an eine Maschine 510, welche als Agent für die Steuerungsebene wirkt. Alternativ kann die Steuerungsebenen-Agentenmaschine 510 periodisch die Knoten in der VSF nach ihren Echtzeitdaten abfragen (to poll). Die Steuerungsebenen-Agentenmaschine 510 sendet dann die Daten, welche sie von allen Knoten in einer VSF sammelt, an die CP 516. Jede Maschine in der CP 516 ist an ein CP-LAN 514 gekoppelt. Das CP-LAN 514 ist über eine CP-Firewall 512 an einen speziellen Anschluss V17 eines VLAN-Verteilers 504 gekoppelt. Dies stellt ein leistungsvariables und sicheres Mittel für die GP dar, um alle Echtzeit-Informationen von den Knoten in allen VSFs zu sammeln.
  • DATENVERBINDUNGEN ZWISCHEN STEUERUNGSEBENE UND SAN
  • 10 ist ein Blockdiagramm, das Verbindungen von Steuerungsebene-Maschinen mit einer Ausführungsform zeigt, die eine Vielzahl von SAN-Verteilern ("SAN-Netz") verwendet. Eine Vielzahl von Steuerungsebene-Maschinen CP CPU1, CP CPU2, und so weiter bildet eine Steuerungsebene-Server-Farm (CP) 904. Jede Steuerungsebene-Maschine ist an einen Anschluss des SAN-Netzes gekoppelt.
  • Den Steuerungsebene-Maschinen ist ein Satz von SAN-Anschlüssen So, Sp zugeordnet, die mit Platten 1004 verbunden sind, die Daten enthalten, welche für die Steuerungsebene privat sind. Die Platten 1004 befinden sich logisch in einer Privatspeicherzone der Steuerungsebene 1002, also einem Bereich, in dem die Steuerungsebene Logdateien, statistische Daten, Informationen über die aktuelle Konfiguration der Steuerungsebene und die Software, welche die Steuerungsebene implementiert, unterhält. Die SAN-Anschlüsse So, Sp sind nur ein Teil der SAN-Zone der Steuerungsebene. Die Anschlüsse So, Sp werden niemals auf irgendeine andere SAN-Zone gesetzt, und nur Maschinen, die Teil der CP 904 sind, können auf die Platten 1004 zugreifen, die mit diesen Anschlüssen verbunden sind.
  • Die Anschlüsse S1, S2 und Sn und die Anschlüsse So und Sp sind in der SAN-Zone der Steuerungsebene. Kein Berechnungselement, weder vom Parkpool noch von irgendeiner VSF, ist Teil der SAN-Zone der Steuerungsebene. Dies stellt sicher, dass die Steuerungsebene-Privatdaten vor einem Zugriff irgendeiner VSF geschützt werden.
  • Wenn eine bestimmte Steuerungsebene-Maschine Zugriff auf einen Platten-Teilbereich benötigt, der Teil einer bestimmten VSF ist, wie etwa VSF 1 von 10, dann wird sie in die SAN-Zone eingegliedert, die mit dieser VSF in Verbindung steht. In diesem Beispiel benötigt die CP CPU2 Zugriff auf die Platten von VSF 1, weshalb Anschluss s2, der der CP CPU2 zugeordnet ist, in die SAN-Zone von VSF 1 eingegliedert wird, die den Anschluss si enthält. Sobald die CP CPU den Zugriff auf die Platten über den Anschluss si abgeschlossen hat, wird sie aus der SAN Zone von VSF 1 entfernt.
  • Ebenso wird eine Maschine, wie z.B. CP CPU1, wenn sie einen Zugriff auf die Platten von VSF j benötigt, in die SAN-Zone eingegliedert, die mit der VSF j in Verbindung steht. Im Ergebnis wird der Anschluss s2 in die SAN-Zone eingegliedert, die der VSF j zugeordnet ist, die die Zone mit Anschluss sj umfasst. Sobald die CP 1 den Zugriff auf die Platten abgeschlossen hat, die mit Anschluss sj verbunden sind, wird sie aus der SAN-Zone entfernt, die der VSF j zugeordnet ist.
  • DATENVERBINDUNGEN ZWISCHEN STEUERUNGSEBENE UND VLAN
  • Steuerungsebene-Maschinen müssen Informationen von den Berechnungsknoten sammeln, wie z.B. Informationen bezüglich der Echtzeit-Last. Hierfür benötigt die Steuerungsebene eine Netz-Verbindungsstruktur zu den Knoten im Netz selbst.
  • EIN WEITBEREICHS-BERECHNUNGSNETZ
  • Die oben beschriebene VSF kann auf verschiedene Arten über ein WAN verteilt werden.
  • In einer Alternative kann ein Weitbereichs-Basisnetz auf einer Verteilung mit asynchroner Übertragungsweise (Asynchronous Transfer Mode – ATM) basieren. In diesem Fall wird jedes lokale ULAN in einen Weltbereich ausgedehnt, und zwar unter Verwendung von emulierten LANs (ELANs), welche Teil des ATM-LAN-Emulations-LANE)-Standards sind. Auf diese Weise kann sich eine einzige VSF über mehrere Weitbereichsverbindungen erstrecken, wie z.B. ATM/SONET/OC-12-Verbindungen. Ein ELAN wird Teil eines VLAN, welches sich über das ATM-WAN erstreckt.
  • Alternativ erstreckt sich ein VSF unter Verwendung eines VPN-Systems über ein WAN. In dieser Ausführungsform werden die zugrundeliegenden Eigenschaften des Netzes irrelevant, und das VPN wird zum Verknüpfen zweier oder mehrerer VSFs über das WAN verwendet, um eine einzige verteilte VSF zu erstellen.
  • Datenspiegelungstechnologien können verwendet werden, um lokale Kopien der Daten in einer verteilten VSF zu halten. Alternativ wird das SAN über das WAN erstreckt (bridged over), und zwar unter Verwendung einer oder mehrerer SAN-zu-WAN-Überbrückungstechniken, wie z.B. einer SAN-zu-ATM-Überbrückung oder einer SAN-zu-Gigabit-Ethernet-Überbrückung. SANs, welche über IP-Netze aufgebaut sind, erstrecken sich naturgemäß über das WAN, da IP über solche Netze gut arbeitet.
  • 11 ist ein Blockdiagramm mit einer Vielzahl von VSFs, die sich über WAN-Verbindungen erstrecken. Ein San José Center, New York Center und London Center sind über WAN-Verbindungen gekoppelt. Jede WAN-Verbindung umfasst eine ATM-, ELAN- oder VPN-Verbindung wie oben beschrieben. Jedes Center umfasst mindestens eine VSF und mindestens einen Parkpool. Beispielsweise hat das San José Center eine VSF1A und einen Parkpool A. Bei diesem Aufbau sind die Berechnungsressourcen jedes Parkpools eines Centers zur Zuordnung oder Zuweisung an eine VSF verfügbar, die sich in einem beliebigen anderen Center befindet. Wenn eine solche Zuordnung oder Zuweisung durchgeführt wird, wird eine VSF über das WAN erstreckt.
  • BEISPIELHAFTE VERWENDUNGEN VON VSFS
  • Die in den Beispielen oben beschriebene VSF-Architektur kann in der Form eines Web-Server-Systems verwendet werden. So wurden die obigen Beispiele in Bezug auf Web-Server, Anwendungs-Server und Datenbank-Server beschrieben, die aus den CPUs einer bestimmten VSF aufgebaut sind. Jedoch kann die VSF-Architektur in vielen anderen Berechnungszusammenhängen verwendet werden und auch dazu, andere Arten von Diensten bereitzustellen; sie ist nicht auf Web-Server-Systeme beschränkt.
  • EINE VERTEILTE VSF ALS TEIL EINES INHALTSVERTEILUNGSNETZES
  • Bei einer Ausführungsform stellt eine VSF ein Inhaltsverteilungsnetz (Content Distribution Network – CDN) unter Verwendung einer Weitbereichs-VSF bereit.
  • Das CDN ist ein Netz von Pufferservern (caching servers), welches ein verteiltes Puffern von Daten durchführt. Das Netz von Pufferservern kann beispielsweise unter Verwendung von Verkehrsserver-(Traffic Server – TS)-Software implementiert werden, welches kommerziell von Inktomi Corporation, San Mateo, California erhältlich ist. TS kann mit Rechneransammlungen umgehen (cluster aware system); das System wird immer leistungsfähiger, je mehr CPUs einem Satz von Puffer-Verkehrsserver-Maschinen hinzugefügt werden. Demgemäss ist es für ein System gut geeignet, bei dem ein Hinzufügen von CPUs der Mechanismus für die Erhöhung der Leistungsfähigkeit ist.
  • Bei dieser Konfiguration kann ein System dynamisch mehr CPUs zu dem Abschnitt einer VSF hinzufügen, der Puffersoftware, wie etwa TS, laufen lässt, wodurch die Pufferkapazität an einem Punkt anwächst, der dem Ort nahe ist, an dem ein plötzlicher Web-Verkehrsschwall auftritt. Daraus resultierend kann ein CDN aufgebaut werden, das auf anpassungsfähige Weise dynamisch seine Leistungsfähigkeit in Bezug auf CPU- und I/O-Bandbreite verändert.
  • EINE VSF FÜR UNTERGEBRACHTE INTRANET-ANWENDUNGEN
  • Es besteht wachsendes Interesse daran, Intranet-Anwendungen, wie z.B. Software für Unternehmens-Ressourcenplanung (ERP), ORM und CRM, als untergebrachte und verwaltete Dienste anzubieten. Technologien, wie z.B. Citrix WinFrame und Citrix MetaFrame ermöglichen es einem Unternehmen, Microsoft-Windows-Anwendungen als Dienst auf einem schlanken Client (thin client), wie beispielsweise einer Windows-CE-Vorrichtung oder einem Web-Browser, bereitzustellen. Eine VSF kann solche Anwendungen auf leistungsvariable Weise unterbringen.
  • Beispielsweise ermöglicht es die SAP R/3 ERP-Software, die kommerziell von der SAP Aktiengesellschaft in Deutschland erhältlich ist, einem Unternehmen, einen Lastausgleich unter Verwendung mehrerer Anwendungs- und Datenbank-Server durchzuführen. Im Falle einer VSF würde ein Unternehmen einer VSF dynamisch mehrere Anwendungs-Server (z.B. SAP-Dialogserver) hinzufügen, um die Leistungsfähigkeit der VSF aufgrund einer Echtzeit-Anforderung oder aufgrund anderer Faktoren zu erhöhen.
  • Ebenso ermöglicht es Citrix MetaFrame einem Unternehmen, die Anzahl der Benutzer von Windows-Anwendungen auf einer Serverfarm zu erhöhen, auf der die untergebrachten Windows-Anwendungen laufen, indem mehr Citrix-Server hinzugefügt werden. In diesem Fall würde bei einer VSF die Citrix-MetaFrame-VSF dynamisch mehrere Citrix-Server hinzufügen, um mehr Benutzer der Windows-Anwendungen, die bei MetaFrame untergebracht sind, aufzunehmen.
  • Es ist offensichtlich, dass viele andere Anwendungen auf eine Weise untergebracht werden können, die den oben beschriebenen, veranschaulichenden Beispielen ähnlich ist.
  • KUNDENINTERAKTION MIT EINER VSF
  • Da eine VSF auf Nachfrage erzeugt wird, kann ein VSF-Kunde oder eine Organisation, die die VSF "besitzt", auf unterschiedliche Weise mit dem System interagieren, um eine VSF an den Kunden anzupassen. Beispielsweise kann dem VSF-Kunden ein privilegierter Zugriff gewährt werden, um seine VSF selber zu erzeugen und zu modifizieren, da eine VSF unverzüglich über die Steuerungsebene erzeugt und modifiziert wird. Der privilegierte Zugriff kann durch eine Passwort-Authentifizierung erfolgen, die von Webseiten und Sicherheitsanwendungen bereitgestellt wird, durch Authentifizierung mittels einer Berechtigungskarte, durch Kerberos-Austausch oder durch andere geeignete Sicherheitselemente.
  • Bei einer beispielhaften Ausführungsform wird ein Webseitensatz durch die Steuerungsebene-Maschine oder durch einen separaten Server bedient. Die Webseiten ermöglichen es einem Kunden, eine auf ihn maßgeschneiderte VSF zu erzeugen, und zwar durch Festlegen einer Anzahl von Schichten, der Anzahl von Berechnungselementen in einer bestimmten Schicht, der Hardware- und Softwareplattform, die für jedes Element verwendet wird, und Dingen, wie z.B. welche Art von Web-Server-, Anwendungs-Server- oder Datenbank-Server- Software auf diesen Berechnungselementen vorkonfiguriert werden soll. Somit wird dem Kunden eine virtuelle Versorgungs-Konsole bereitgestellt.
  • Nachdem der Kunde oder Benutzer solche Versorgungsinformationen eingegeben hat, analysiert (parses) und bewertet die Steuerungsebene die Bestellung und reiht sie zur Ausführung in eine Warteschlange. Bestellungen können von menschlichen Managern durchgesehen werden, um sicherzustellen, dass sie geeignet sind. Kreditüberprüfungen des Unternehmens können erfolgen, um sicherzustellen, dass es den erforderlichen Kredit hat, um die angeforderten Dienstleistungen zu bezahlen. Wenn die Versorgungs-Bestellung genehmigt ist, kann die Steuerungsebene eine VSF konfigurieren, die zur Bestellung passt, und an den Kunden ein Passwort zurückschicken, das einen Zugang ohne Zugriffsbeschränkung (root access) auf eines oder mehrere der Berechnungselemente in der VSF bereitstellt. Der Kunde kann dann Hauptkopien von Anwendungen zur Ausführung in der VSF hochladen.
  • Wenn das Unternehmen, das das Berechnungsnetz unterbringt, ein profitorientiertes Unternehmen ist, können die Webseiten auch zahlungsbezogene Informationen empfangen, wie z.B. eine Kreditkarte, eine PO-Nummer, einen elektronischen Scheck oder ein anderes Zahlungsverfahren.
  • Bei einer weiteren Ausführungsform ermöglichen es die Webseiten dem Kunden, einen von mehreren VSF-Dienstleistungsplänen auszuwählen, wie etwa ein automatisches Wachsen und Schrumpfen einer VSF zwischen einer minimalen und maximalen Anzahl von Elementen auf Grundlage einer Echtzeit-Last. Der Kunde kann eine Einstellbefugnis haben, die es dem Kunden ermöglicht, Parameter zu ändern, wie etwa die Mindestanzahl von Berechnungselementen, wie z.B. Web-Servern, in einer bestimmten Schicht, oder eine Zeitperiode, in der die VSF eine Mindestmenge an Serverkapazität haben muss. Die Parameter können mit einer Abrechnungssoftware verknüpft sein, die automatisch die Rechnungskosten des Kunden anpasst und Einträge in der Rechnungsprotokolldatei erzeugt.
  • Durch den privilegierten Zugriffsmechanismus kann der Kunde Berichte erhalten und die Echtzeit-Informationen bezüglich der Verwendung, der Last, der Treffer oder Transaktionen pro Sekunde überwachen und die Eigenschaften einer VSF auf Grundlage der Echtzeit-Information anpassen.
  • Es ist offenkundig, dass die genannten Merkmale wesentliche Vorteile gegenüber herkömmlichen manuellen Vorgehensweisen zum Aufbau einer Serverfarm anbieten. Bei den herkömmlichen Vorgehensweisen kann ein Benutzer nicht automatisch auf Eigenschaften der Serverfarm Einfluss nehmen, ohne ein schwerfälliges manuelles Verfahren zum Hinzufügen von Servern und Konfigurieren der Serverfarm auf verschiedene Arten zu durchlaufen.
  • ABRECHNUNGSMODELLE FÜR EINE VSF
  • Angesichts der dynamischen Natur einer VSF kann das Unternehmen, das das Berechnungsnetz und die VSFs unterbringt, den Kunden, die VSFs besitzen, Dienstleistungsentgelte in Rechnung stellen, und zwar unter Verwendung eines Abrechnungsmodells für eine VSF, das auf der tatsächlichen Verwendung der Berechnungselemente und Speicherelemente einer VSF beruht. Man muss nicht notwendigerweise ein Abrechnungsmodell mit Pauschalentgelten verwenden. Die VSF-Architektur und die Verfahren, die hier offenbart sind, ermöglichen ein nutzungsabhängiges Abrechnungsmodell, weil die Ressourcen einer vorgegebenen VSF nicht statisch zugewiesen sind. Demgemäß könnte ein bestimmter Kunde, der eine sehr variable Nutzlast auf seiner Serverfarm hat, Geld sparen, weil ihm keine Rate in Rechnung gestellt wird, wie sie mit einer konstanten Spitzen-Serverkapazität verbunden wäre, sondern vielmehr eine Rate, die einen laufenden Benutzungsmittelwert, eine momentane Benutzung, und so weiter widerspiegelt.
  • Beispielsweise kann ein Unternehmen unter Verwendung eines Abrechnungsmodells arbeiten, das ein Pauschalentgelt für eine Mindestanzahl von Berechnungselementen, wie etwa 10 Server, festlegt, und weiter festlegt, dass dann, wenn eine Echtzeitlast mehr als 10 Elemente erfordert, dem Benutzer eine zunehmende Gebühr für die zusätzlichen Server in Rechnung gestellt wird, die auf der Anzahl der erforderlichen zusätzlichen Server und der Zeitdauer, in der sie benötigt wurden, beruht.
  • Die Einheiten solcher Rechnungen können die Ressourcen widerspiegeln, welche in Rechnung gestellt werden. Beispielsweise können Rechnungen in Einheiten wie etwa MIPS-Stunden, CPU-Stunden, Tausenden von CPU-Sekunden und so weiter ausgedrückt werden.
  • EINE FÜR EINEN KUNDEN SICHTBARE STEUERUNGSEBENEN-API
  • In einer weiteren Alternative kann die Kapazität einer VSF gesteuert werden, indem dem Kunden eine Anwendungs-Programmierschnittstelle (application programming Interface – API) bereitgestellt wird, welche Aufrufe an die Steuerungsebene zum Abändern von Ressourcen definiert. So könnte ein Anwendungsprogramm, das durch den Kunden bereitgestellt wird, Aufrufe oder Anfragen unter Verwendung der API ausgeben, um nach weiteren Servern, mehr Speicher, mehr Bandbreite und so weiter anzufragen. Diese Alternative kann verwendet werden, wenn es für den Kunden erforderlich ist, dass das Anwendungsprogramm mit der Berechnungsnetz-Umgebung umgehen kann, und dass es die von der Steuerungsebene gebotenen Fähigkeiten nutzen kann.
  • Nichts in der oben offengelegten Architektur erfordert es vom Kunden, seine Anwendung zur Verwendung mit dem Berechnungsnetz abzuändern. Bestehende Anwendungen arbeiten weiterhin so, wie sie es bei manuell konfigurierten Server-Farmen tun. Jedoch kann eine Anwendung die Dynamik, die im Berechnungsnetz möglich ist, nutzen, wenn sie ein besseres Verständnis der Berechnungsressourcen hat, die sie benötigt, und zwar auf Grundlage der Echtzeit-Lastüberwachungsfunktionen, die durch die Steuerungsebene bereitgestellt werden.
  • Eine API der genannten Art, die es einem Anwendungsprogramm ermöglicht, die Berechnungskapazität einer Serverfarm zu ändern, ist bei Verwendung gängiger manueller Vorgehensweisen zum Aufbauen einer Serverfarm nicht möglich.
  • AUTOMATISCHES AKTUALISIEREN UND VERSIONIEREN (VERSIONING)
  • Unter Verwendung der hier offenbarten Verfahren und Mechanismen kann die Steuerungsebene ein automatisches Aktualisieren und Versionieren einer Betriebssystem-Software durchführen, die in Berechnungselementen einer VSF ausgeführt wird. Somit braucht sich der Endbenutzer oder Kunde nicht um das Aktualisieren des Betriebssystems mit einem neuen Programmflicken (patch), einer Programmierfehlerausbesserung und so weiter kümmern. Die Steuerungsebene kann solche Softwareelemente nach Erhalt in eine Bibliothek aufnehmen und sie automatisch verteilen und in den Berechnungselementen aller betroffenen VSFs installieren.
  • MECHANISMEN DER IMPLEMENTIERUNG
  • Die Berechnungselemente und der Überwachungsmechanismus können in verschiedenen Formen implementiert werden. Bei einer Ausführungsform ist jedes Berechnungselement ein Mehrzweck-Digital-Computer, der die in 12 gezeigten Elemente, abgesehen von der nicht-flüchtigen Speichervorrichtung 1210, aufweist, und der Überwachungsmechanismus ist ein Mehrzweck-Digital-Computer des in 12 gezeigten Typs, der unter der Steuerung von Programmbefehlen arbeitet, die die hier beschriebenen Prozesse implementieren.
  • 12 ist ein Blockdiagramm, das ein Computersystem 1200 darstellt, in dem eine Ausführungsform der Erfindung implementiert werden kann. Das Computersystem 1200 enthält einen Bus 1202 oder einen anderen Kommunikationsmechanismus zum Übermitteln von Informationen und einen Prozessor 1204, der mit dem Bus 1202 gekoppelt ist, zur Verarbeitung von Informationen. Das Computersystem 1200 enthält auch einen Hauptspeicher 1206, wie etwa einen Arbeitsspeicher (random access memory – RAM) oder eine andere dynamische Speichervorrichtung, die mit dem Bus 1202 gekoppelt ist, zum Speichern von Informationen und Befehlen, die durch den Prozessor 1204 ausgeführt werden sollen. Der Hauptspeicher 1206 kann auch zum Speichern von zeitweiligen Variablen oder weiteren Zwischeninformationen während der Ausführung von Befehlen, die durch den Prozessor 1204 ausgeführt werden sollen, verwendet werden. Das Computersystem 1200 enthält ferner einen Festwertspeicher (read only memory – ROM) 1208 oder eine andere statische Speichervorrichtung, die mit dem Bus 1202 gekoppelt ist, zum Speichern statischer Informationen und Befehlen für den Prozessor 1204. Eine Speichervorrichtung 1210, wie etwa eine magnetische Platte oder optische Platte, wird bereitgestellt und mit dem Bus 1202 gekoppelt, um Informationen und Befehle zu speichern.
  • Das Computersystem 1200 kann über einen Bus 1202 mit einer Anzeige 1212, wie beispielsweise einen Bildschirm (cathode ray tube – CRT), gekoppelt sein, um einem Computernutzer Informationen anzuzeigen. Eine Eingabevorrichtung 1214, die alphanumerische und andere Tasten enthält, ist mit dem Bus 1202 gekoppelt, um Informationen und die ausgewählten Befehle an den Prozessor 1204 zu übermitteln. Ein andere Art einer Benutzereingabevorrichtung ist eine Cursor-Steuerung 1216, wie etwa eine Maus, eine Rollkugel oder Cursor-Richtungstasten zum Übermitteln der Richtungsinformationen und der ausgewählten Befehle an den Prozessor 1204 und zum Steuern der Cursor-Bewegung auf der Anzeige 1212. Diese Eingabevorrichtung hat typischerweise zwei Freiheitsgrade in zwei Achsen, einer ersten Achse (z.B. x) und einer zweiten Achse (z.B. y), die es der Vorrichtung erlauben, Positionen in einer Ebene zu bestimmen.
  • Die Erfindung bezieht sich auf die Verwendung eines Computersystems 1200 zum Implementieren der Verfahren, Mechanismen und der Architektur, die hier beschrieben sind. Gemäß einer Ausführungsform der Erfindung werden solche Verfahren und Mechanismen durch ein Computersystem 1200 ansprechend darauf implementiert, dass ein Prozessor 1204 eine oder mehrere Sequenzen eines oder mehrerer Befehle ausführt, die im Hauptspeicher 1206 enthalten sind. Solche Befehle können von einem anderen computerlesbaren Medium, wie z.B. einer Speichervorrichtung 1210, in den Hauptspeicher 1206 eingelesen werden. Eine Ausführung der Sequenzen der Befehle, die im Hauptspeicher 1206 enthalten sind, bewirkt, dass der Prozessor 1204 die hier beschriebenen Verfahrensschritte durchführt. In alternativen Ausführungsformen kann eine fest verdrahtete Schaltung anstelle von oder in Kombination mit Softwarebefehlen verwendet werden, um die Erfindung zu implementieren. Somit sind die Ausführungsformen der Erfindung nicht auf irgendeine spezifische Kombination einer Hardware-Schaltung und Software beschränkt.
  • Der hier verwendete Begriff "computerlesbares Medium" bezieht sich auf ein beliebiges Medium, welches daran beteiligt ist, Befehle an den Prozessor 1204 zur Ausführung bereitzustellen. Ein solches Medium kann viele Formen annehmen, welche nicht-flüchtige Medien, flüchtige Medien und Übermittlungsmedien enthalten, aber nicht darauf beschränkt sind. Nicht-flüchtige Medien umfassen beispielsweise optische oder magnetische Platten, wie etwa die Speichervorrichtung 1210. Flüchtige Medien enthalten einen dynamischen Speicher, wie etwa den Hauptspeicher 1206. Übermittlungsmedien enthalten Koaxialkabel, Kupferdraht und Faseroptik, einschließlich der Drähte, die den Bus 1202 umfassen. Übermittlungsmedien können auch die Form von Schall- oder Lichtwellen annehmen, wie etwa jene, die während der Datenübermittlung über Funkwellen und Infrarot erzeugt werden.
  • Bekannte Formen computerlesbarer Medien umfassen beispielsweise eine Diskette, eine flexible Platte, eine Festplatte, ein Magnetband oder jegliches andere magnetische Medium, eine CD-ROM, jegliches andere optische Medium, Lochkarten, Lochstreifen oder jegliches andere physikalische Medium mit Lochmuster, ein RAM, ein PROM und EPROM, ein FLASH-EPROM, jeglichen anderen Speicherchip oder jegliches andere Speichermodul, eine Trägerwelle, wie anschließend beschrieben, oder jegliches andere Medium, von dem ein Computer lesen kann.
  • Verschiedene Formen von computerlesbaren Medien können beim Übertragen einer oder mehrerer Sequenzen eines oder mehrerer Befehle an den Prozessor 1204 zur Ausführung beteiligt sein. Beispielsweise können die Befehle zunächst auf einer Magnetdiskette eines entfernten Computers enthalten sein. Der entfernte Computer kann die Befehle in seinen dynamischen Speicher laden und die Befehle unter Verwendung eines Modems über eine Telefonleitung senden. Ein Modem am Ort des Computersystems 1200 kann die Daten auf der Telefonleitung empfangen und einen Infrarot-Sender verwenden, um die Daten in ein Infrarotsignal umzuwandeln. Ein Infrarot-Detektor kann die im Infrarotsignal beförderten Daten empfangen, und eine geeignete Schaltung kann die Daten auf den Bus 1202 geben. Der Bus 1202 befördert die Daten an den Hauptspeicher 1206, von dem der Prozessor 1204 die Befehle abruft und ausführt. Die vom Hauptspeicher 1206 empfangenen Befehle können optional auf einer Speichervorrichtung 1210 gespeichert werden, und zwar entweder vor oder nach der Ausführung durch den Prozessor 1204.
  • Das Computersystem 1200 enthält auch eine mit dem Bus 1202 gekoppelte Kommunikationsschnittstelle 1218. Die Kommunikationsschnittstelle 1218 stellt eine bidirektionale Datenkommunikationskopplung mit einer Netzverbindung 1220 bereit, die mit einem lokalen Netz 1222 verbunden ist. Beispielsweise kann die Kommunikationsschnittstelle 1218 eine Karte für ein digitales Netz für integrierte Dienste (Integrated Services Digital Network- ISDN) oder ein Modem sein, um eine Datenkommunikationsverbindung mit einer entsprechenden Telefonleitungsart bereitzustellen. In einem weiteren Beispiel kann die Kommunikationsschnittstelle 1218 eine Karte für ein lokales Netz (LAN) sein, um eine Datenkommunikationsverbindung an ein kompatibles LAN bereitzustellen. Drahtlose Verbindungen können ebenfalls implementiert werden. Bei jeglicher Implementierung sendet und empfängt die Kommunikationsschnittstelle 1218 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme tragen, welche verschiedene Arten von Informationen verkörpern.
  • Eine Netzverbindung 1220 sorgt typischerweise für die Datenkommunikation über ein oder mehrere Netze an andere Datenvorrichtungen. Beispielsweise kann die Netzverbindung 1220 eine Verbindung über das lokale Netz 1222 mit einem Host-Computer 1224 oder mit einer Dateneinrichtung bereitstellen, die durch einen Internetdienstanbieter (Internet Service Provider- ISP) 1226 betrieben wird. Der ISP 1226 stellt seinerseits Datenkommunikationsdienste über das weltweite Paketdatenkommunikationsnetz bereit, welches nun allgemein als das "Internet" 1228 bezeichnet wird. Sowohl das lokale Netz 1222 als auch das Internet 1228 verwenden elektrische, elektromagnetische oder optische Signale, die digitale Datenströme befördern. Die Signale, die über die unterschiedlichen Netze übertragen werden, und die Signale, die über die Netzverbindung 1220 und über die Kommunikationsschnittstelle 1218 überfragen werden, die die digitalen Daten zum Computersystem 1200 hin und von ihm weg befördern, sind beispielhafte Formen von Trägerwellen, die die Informationen transportieren.
  • Das Computersystem 1200 kann über das Netz/die Netze, die Netzverbindung 1220 und die Kommunikationsschnittstelle 1218 Meldungen senden und Daten, einschließlich Programmcode, empfangen. Beim Internet-Beispiel könnte ein Server 1230 einen angefragten Code für ein Anwendungsprogramm über das Internet 1228, den ISP 1226, das lokale Netz 1222 und die Kommunikationsschnittstelle 1218 übermitteln. Gemäß der Erfindung implementiert eine solche heruntergeladene Anwendung die hier beschriebenen Verfahren und Mechanismen.
  • Der empfangene Code kann durch den Prozessor 1204 bei Erhalt ausgeführt werden, und/oder in einer Speichervorrichtung 1210 oder in einem anderen nichtflüchtigen Speicher zur späteren Ausführung gespeichert werden. Auf diese Weise kann das Computersystem 1200 Anwendungscode in Form einer Trägerwelle erlangen.
  • VORTEILE; UMFANG
  • Das hier offenbarte Berechnungsnetz kann konzeptionell mit dem öffentlichen Netz für elektrische Energie verglichen werden, das manchmal Stromnetz genannt wird. Das Stromnetz stellt ein leistungsvariables Mittel für viele Parteien bereit, damit diese Stromdienstleistungen über eine einzige, umfangreiche Strominfrastruktur erhalten. Genauso stellt das hier offenbarte Berechnungsnetz Berechnungsdienstleistungen für viele Organisationen bereit, und zwar unter Verwendung einer einzigen umfangreichen Berechnungsinfrastruktur. Bei der Verwendung des Stromnetzes verwalten Stromkunden ihre eigene persönliche Stromanlage nicht unabhängig. Beispielsweise gibt es für den Kunden eines Energieversorgungsunternehmens keinen Grund, einen persönlichen Stromerzeuger in seiner Anlage oder in einer gemeinsam benutzen Anlage laufen zu lassen und deren Kapazität und Wachstum individuell zu regeln. Stattdessen ermöglicht das Stromnetz die Verteilung von Energie in großem Rahmen an weite Teile der Bevölkerung, wodurch es für große Einsparungen aufgrund des Rationalisierungseffekts sorgt. Ebenso kann das hier offenbarte Berechnungsnetz weiten Teilen der Bevölkerung Berechnungsdienstleistungen unter Verwendung einer einzigen umfangreichen Berechnungsinfrastruktur bereitstellen.
  • In der obigen Beschreibung wurde die Erfindung durch bestimmte Ausführungsformen dargestellt. Es ist jedoch offensichtlich, dass verschiedene Abweichungen und Änderungen hiervon gemacht werden können, ohne den Umfang der Ansprüche zu verlassen. Die Beschreibung und Zeichnungen sind demgemäß in einem veranschaulichenden in nicht in einem beschränkenden Sinn zu verstehen.

Claims (48)

  1. Datenverarbeitungsverfahren, mit den Schritten: – Auswählen einer Prozessorenuntermenge aus einer Menge von Prozessoren (CPU1...CPUn); und – Erzeugen von Anweisungen, die bewirken, dass ein erstes Verteilsystem (204,504) alle Prozessoren aus der Prozessorenuntermenge miteinander logisch koppelt, dadurch gekennzeichnet, dass das Verfahren ferner umfasst: – Auswählen einer Untermenge von Speichervorrichtungen aus einer Menge von Speichervorrichtungen (DISK1...DISKm); und – Erzeugen von Anweisungen, die bewirken, dass ein zweites Verteilsystem (202,506) alle Speichervorrichtungen aus der Untermenge von Speichervorrichtungen logisch miteinander und mit der Prozessorenuntermenge koppelt.
  2. Verfahren nach Anspruch 1, bei dem das Auswählen einer Prozessorenuntermenge aus einer Menge von Prozessoren (CPU1...CPUn) den Schritt des Auswählens einer Untermenge von Hauptprozessoreinheiten aus einem Pool verfügbarer Hauptprozessoreinheiten umfasst.
  3. Verfahren nach Anspruch 1, – bei dem der Schritt des Auswählens einer Prozessorenuntermenge aus einer Menge von Prozessoren (CPU1...CPUn) den Schritt des Auswählens einer Untermenge von Hauptprozessoreinheiten aus einem Pool verfügbarer Hauptprozessoreinheiten umfasst, und – bei dem jede der Hauptprozessoreinheiten erste und zweite Netzschnittstellen, die zum Empfangen von Anweisungen von einem Verteiler für virtuelle lokale Netze (204) ausgelegt sind, und eine Speicherschnittstelle, die zum Verbinden mit der Untermenge von Speichervorrichtungen (DISK1...DISKn) über einen Speicherbereichsnetzverteiler (202) vorgesehen ist, umfasst.
  4. Verfahren nach Anspruch 1, bei dem der Schritt des Erzeugens von Anweisungen, welche bewirken, dass ein erstes Verteilsystem (204) alle Prozessoren aus der Prozessorenuntermenge miteinander logisch koppelt, den Schritt des Erzeugens von Anweisungen an einen mit den Prozessoren gekoppelten Verteiler für virtuelle lokale Netze (204) umfasst, welche bewirken, dass der Verteiler für virtuelle lokale Netze die Prozessoren aus der Untermenge miteinander logisch koppelt.
  5. Verfahren nach Anspruch 1, bei dem der Schritt des Auswählens einer Untermenge von Speichervorrichtungen aus einer Menge von Speichervorrichtungen die Schritte des Auswählens der Untermenge von Speichervorrichtungen aus einem Pool verfügbarer Speichervorrichtungen umfasst.
  6. Verfahren nach Anspruch 1, – bei dem der Schritt des Auswählens einer Untermenge von Speichervorrichtungen aus einer Menge von Speichervorrichtungen (DISK1...DISKn) die Schritte des Auswählens der Untermenge von Speichervorrichtungen aus einem Pool verfügbarer Speichervorrichtungen umfasst; und – bei dem jede Speichervorrichtung eine Verteilerschnittstelle umfasst, welche zum Empfangen von Anweisungen von einem Verteiler (202) für ein virtuelles Speicherbereichsnetz ausgelegt ist.
  7. Verfahren nach Anspruch 1, bei dem das Erzeugen von Anweisungen, welche bewirken, dass ein zweites Verteilsystem (202) alle Speichervorrichtungen (DISK1...DISKn) miteinander logisch koppelt, den Schritt des Erzeugens von Anweisungen an einen mit den Speichervorrichtungen gekoppelten Verteiler (202) für ein virtuelles Speicherbereichsnetz umfaßt, die bewirken, dass der Verteiler (202) für das virtuelle Speicherbereichsnetz die Speichervorrichtungen in der Untermenge miteinander logisch koppelt.
  8. Verfahren nach Anspruch 1, bei dem der Schritt des Auswählens einer Prozessorenuntermenge aus einer Menge von Prozessoren (CPU1...CPUn) vermittels einer Steuereinrichtung (206,508) erfolgt, die mit dem ersten Verteilsystem (204,504), dem zweiten Verteilsystem (202,506) und der Menge von Prozessoren gekoppelt ist und diese steuert.
  9. Verfahren nach Anspruch 1, das ferner die Schritte umfasst: – Erzeugen einer ersten virtuellen Server-Farm (VSF1) zur Verwendung für einen ersten Datenverarbeitungsvorgang durch Auswählen einer ersten Prozessorenuntermenge aus der Menge von Prozessoren (CPU1...CPUn), um den ersten Datenverarbeitungsvorgang durchzuführen; Erzeugen von Anweisungen, die bewirken, dass das erste Verteilsystem (204) alle Prozessoren aus der ersten Prozessorenuntermenge in einem ersten virtuellen lokalen Netz (VLAN2) miteinander logisch koppelt; Auswählen einer ersten Untermenge von Speichervorrichtungen aus der Menge von Speichervorrichtungen (DISK1...DISKn), um Informationen für den ersten Datenverarbeitungsvorgang zu speichern; und Erzeugen von Anweisungen, die bewirken, dass ein zweites Verteilsystem (202) alle Speichervorrichtungen aus der ersten Untermenge von Speichervorrichtungen miteinander und mit der ersten Untermenge von Prozessoren in einer ersten Speicherbereichsnetzzone (SAN ZONE 1) logisch koppelt; – Erzeugen einer zweiten virtuellen Server-Farm (VSF2) zur Verwendung für einen zweiten Datenverarbeitungsvorgang durch Auswählen einer zweiten Prozessorenuntermenge aus der Menge von Prozessoren (CPU1...CPUn), um den zweiten Datenverarbeitungsvorgang durchzuführen; Erzeugen von Anweisungen, die bewirken, dass das erste Verteilsystem (204) alle Prozessoren aus der zweiten Prozessorenuntermenge in einem zweiten virtuellen lokalen Netz (VLAN3) miteinander logisch koppelt; Auswählen einer zweiten Untermenge der Speichervorrichtungen aus der Menge von Speichervorrichtungen (DISK1...DISKm), um Informationen für den zweiten Datenverarbeitungsvorgang zu speichern; und Erzeugen von Anweisungen, die bewirken, dass das zweite Verteilsystem (202) alle Speichervorrichtungen aus der zweiten Untermenge von Speichervorrichtungen miteinander und mit der zweiten Prozessorenuntermenge in einer zweiten Speicherbereichsnetzzone (SAN ZONE 2) logisch koppelt; – wobei die Anweisungen die erste Prozessorenuntermenge sicher von der zweiten Prozessorenuntermenge und der zweiten Untermenge von Speichervorrichtungen trennen.
  10. Verfahren nach Anspruch 1, das ferner die Schritte umfasst: – Auswählen eines zusätzlichen Prozessors (CPUX) aus der Prozessorenmenge; – Erzeugen von Anweisungen, die bewirken, dass das erste Verteilsystem (204) den zusätzlichen Prozessor mit den Prozessoren aus der Prozessorenuntermenge logisch koppelt.
  11. Verfahren nach Anspruch 1, das ferner die Schritte umfasst: – Auswählen eines bestimmten Prozessors (CPUX) aus der Prozessorenuntermenge, der aus der Untermenge entfernt werden soll; – Erzeugen von Anweisungen, die bewirken, dass das erste Verteilsystem (204) den bestimmten Prozessor (CPUX) logisch von der Prozessorenuntermenge entkoppelt.
  12. Verfahren nach Anspruch 2, das ferner die Schritte umfasst: – Auswählen eines aus der Untermenge zu entfernenden bestimmten Prozessors (CPUX) aus der Prozessorenuntermenge; – Erzeugen von Anweisungen, die bewirken, dass das erste Verteilsystem (204) den bestimmten Prozessor (CPUX) logisch von der Prozessorenuntermenge entkoppelt; – logisches Setzen des bestimmten Prozessors in den Pool (400) verfügbarer Prozessoren.
  13. Verfahren nach Anspruch 9, das ferner die Schritte umfasst: – Auswählen eines aus der ersten Untermenge zu entfernenden bestimmten Prozessors (CPUX) aus der ersten Untermenge; – Erzeugen von Anweisungen, die bewirken, dass das erste Verteilsystem (204) den bestimmten Prozessor logisch von der ersten Prozessorenuntermenge (VSF1) entkoppelt; – Erzeugen von Anweisungen, die bewirken, dass das erste Verteilsystem den bestimmten Prozessor zur zweiten Prozessorenuntermenge (VSF2) logisch hinzufügt.
  14. Verfahren nach Anspruch 1, das ferner den Schritt des anfänglichen Zuordnens aller Prozessoren zu einem Parkpool (400) von verfügbaren Prozessoren umfasst.
  15. Verfahren nach Anspruch 1, das ferner den Schritt des dynamischen logischen Hinzufügens oder Entfernens eines oder mehrerer Prozessoren (CPU1...CPUn) zu der oder aus der Prozessorenuntermenge umfasst, und zwar ansprechend auf die Echtzeitbelastung, der die Prozessorenuntermenge unterliegt.
  16. Verfahren nach Anspruch 1, das ferner den Schritt des dynamischen logischen Hinzufügens oder Entfernens einer oder mehrerer Speichervorrichtungen (DISK1...DISKn) zu der oder aus der Untermenge von Speichervorrichtungen umfasst, und zwar ansprechend auf die Echtzeitbelastung, der die Untermenge von Speichervorrichtungen unterliegt.
  17. Verfahren nach Anspruch 1, das ferner das Koppeln einer Schnittstelle des ersten Verteilsystems (204) mit einem externen Netz (106) umfasst, wodurch die Prozessorenuntermenge auf Anfragen aus dem externen Netz anspricht.
  18. Verfahren nach Anspruch 15, das ferner die Schritte umfasst: – logisches Hinzufügen eines zusätzlichen Prozessors (CPUX) zu der Prozessorenuntermenge, und zwar ansprechend auf die Echtzeitbelastung, der die Prozessorenuntermenge unterliegt; – Neustarten des zusätzlichen Prozessors; – Laden eines Betriebssystembilds, welches von einem vorher bestimmten Speicherort einer der Speichervorrichtungen aus der Untermenge von Speichervorrichtungen erhalten wird, in den zusätzlichen Prozessor.
  19. Verfahren nach Anspruch 1, das ferner die Schritte umfasst: – logisches Koppeln eines Lastausgleichers (302) mit den Prozessoren in der Prozessorenuntermenge; – Anweisen des Lastausgleichers, einen Lastausgleich von Verarbeitungsvorgängen, die von den Prozessoren in der Prozessorenuntermenge ausgeführt werden, durchzuführen.
  20. Verfahren nach Anspruch 9, das ferner den Schritt des dynamischen logischen Hinzufügens eines zusätzlichen Prozessors (CPUX) zur Prozessorenuntermenge umfasst, und zwar ansprechend auf die Echtzeitbelastung, der die Prozessorenuntermenge unterliegt, durch: – Hinzufügen derjenigen Schnittstellenanschlüsse des ersten Verteilsystems (204), die dem zusätzlichen Prozessor zugeordnet sind, zu dem virtuellen lokalen Netz (VLAN1); – Hinzufügen eines Speicherbereichanschlusses des zusätzlichen Prozessors zu dem Speicherbereichsnetzgebiet (SAN ZONE 1).
  21. Verfahren nach Anspruch 9, das ferner den Schritt des dynamischen logischen Entfernens eines Prozessors (CPUX) aus der Prozessorenuntermenge umfasst, und zwar ansprechend auf die Echtzeitbelastung, der die Prozessorenuntermenge unterliegt, durch: – Entfernen derjenigen Schnittstellenanschlüsse des ersten Verteilsystems (204), die dem zusätzlichen Prozessor zugeordnet sind, aus dem virtuellen lokalen Netz (VLAN1); – Entfernen eines Speicherbereichsanschlusses des einen Prozessors aus der Speicherbereichsnetzzone (SAN ZONE 1).
  22. Verfahren nach Anspruch 8, das ferner den Schritt des logischen Zuordnens einer oder mehrerer Anschlüsse des zweiten Verteilsystems (202) zu einer Privatspeicherbereichsnetzzone (1002) zur Verwendung durch die Steuereinrichtung umfasst, wobei diese Anschlüsse einer der Speichervorrichtungen (DISK1...DISKm) zugeordnet sind, die ausschließlich der Steuereinrichtung (1002) zugeordnet ist.
  23. Verfahren nach Anspruch 1, das ferner den Schritt des Zuordnens jedes der Prozessoren aus der Prozessorenuntermenge zu einer gespeicherten, vorgegebenen Vorlage aufweist, wobei die Vorlage eine Verarbeitungsfunktion aus einer Mehrzahl von Verarbeitungsfunktionen einem Hochfahrbild einer der Speichervorrichtungen aus der Untermenge von Speichervorrichtungen zuordnet; Erzeugen von Anweisungen, die bewirken, dass alle Prozessoren aus der Prozessorenuntermenge das Hochfahrbild aus der Speichervorrichtung, das der Verarbeitungsfunktion dieses Prozessors zugeordnet ist, laden und ausführen.
  24. Datenverarbeitungssystem, mit: – einer Mehrzahl von Prozessoren (CPU1...CPUn); – einem ersten Verteilsystem (204,504), das mit der Mehrzahl von Prozessoren gekoppelt ist; und – einer Mehrzahl von Speichervorrichtungen (DISK1...DISKm), dadurch gekennzeichnet, dass das System ferner umfasst: – ein zweites Verteilsystem (202,506), das mit der Mehrzahl von Speichervorrichtungen gekoppelt ist; – eine Steuereinrichtung (206,508), die mit dem ersten Verteilsystem und dem zweiten Verteilsystem gekoppelt ist; – eine Einrichtung in der Steuereinrichtung (206,508) zum Auswählen einer Prozessorenuntermenge aus der Mehrzahl von Prozessoren; – eine Einrichtung in der Steuereinrichtung (508) zum Erzeugen von Anweisungen, die bewirken, dass das erste Verteilsystem (204,504) alle Prozessoren in der Prozessorenuntermenge logisch miteinander koppelt; – eine Einrichtung in der Steuereinrichtung (206,508) zum Auswählen einer Untermenge von Speichervorrichtungen aus der Mehrzahl von Speichervorrichtungen; und – eine Einrichtung in der Steuereinrichtung (206,508) zum Erzeugen von Anweisungen, die bewirken, dass das zweite Verteilsystem (202,506) alle Speichervorrichtungen aus der Untermenge von Speichervorrichtungen logisch miteinander und mit der Prozessorenuntermenge koppelt.
  25. Datenverarbeitungssystem nach Anspruch 24, bei dem die Steuereinrichtung (206,508) ferner eine Einrichtung zum Auswählen einer Prozessorenuntermenge aus einer Menge von Prozessoren durch Auswählen einer Untermenge von Hauptprozessoreinheiten aus einem Pool (400) verfügbarer Hauptprozessoreinheiten aufweist.
  26. Datenverarbeitungssystem nach Anspruch 24, – bei dem die Einrichtung zum Auswählen einer Prozessorenuntermenge eine Einrichtung zum Auswählen einer Untermenge von Hauptprozessoreinheiten aus einem Pool (400) verfügbarer Hauptprozessoreinheiten enthält, und – bei dem jede der Hauptprozessoreinheiten erste und zweite Netzschnittstellen umfasst, die dazu ausgelegt sind, Anweisungen von einem Verteiler (204) für virtuelle lokale Netze und einer Speicherschnittstelle zu erhalten, die zum Verbinden mit der Untermenge der Speichervorrichtungen über einen Verteiler für Speicherbereichsnetze (202) vorgesehen ist.
  27. Datenverarbeitungssystem nach Anspruch 24, bei dem die Einrichtung zum Erzeugen von Anweisungen, die bewirken, dass ein erstes Verteilsystem (204) alle Prozessoren in der Prozessorenuntermenge miteinander logisch koppelt, eine Einrichtung zum Erzeugen von Anweisungen für einen mit den Prozessoren gekoppelten Verteiler für virtuelle lokale Netze umfasst, die bewirken, dass der Verteiler für virtuelle lokale Netze die Prozessoren in der Untermenge miteinander logisch koppelt.
  28. Datenverarbeitungssystem nach Anspruch 24, bei dem die Einrichtung zum Auswählen einer Untermenge von Speichervorrichtungen eine Einrichtung zum Auswählen der Untermenge von Speichervorrichtungen aus einem Pool (400) verfügbarer Speichervorrichtungen umfasst.
  29. Datenverarbeitungssystem nach Anspruch 24, – bei dem die Einrichtung zum Auswählen einer Untermenge von Speichervorrichtungen eine Einrichtung zum Auswählen der Untermenge von Speichervorrichtungen aus einem Pool (400) verfügbarer Speichervorrichtungen umfasst; und – bei dem jede der Speichervorrichtungen eine Verteilerschnittstelle umfasst, die dazu ausgelegt ist, von einem Verteiler für virtuelle Speicherbereichsnetze Anweisungen zu empfangen.
  30. Datenverarbeitungssystem nach Anspruch 24, bei dem die Einrichtung zum Erzeugen von Anweisungen, die bewirken, dass ein zweites Verteilsystem (202) alle Speichervorrichtungen miteinander logisch koppelt, eine Einrichtung zum Erzeugen von Anweisungen für einen Verteiler für virtuelle Speicherbereichsnetze umfasst, der mit den Speichervorrichtungen gekoppelt ist, wobei die Anweisungen bewirken, dass der Verteiler für virtuelle Speicherbereichsnetze die Speichervorrichtungen in der Untermenge logisch miteinander koppelt.
  31. Datenverarbeitungssystem nach Anspruch 24, das ferner umfasst: – eine erste virtuelle Server-Farm (VSF1) zur Verwendung bei einem ersten Datenverarbeitungsvorgang, die erzeugt wird durch Auswählen einer ersten Prozessorenuntermenge aus einer Menge von Prozessoren (CPU1...CPUn) zum Durchführen des ersten Datenverarbeitungsvorgangs; Erzeugen von Anweisungen, die bewirken, dass das erste Verteilsystem (204) alle Prozessoren aus der ersten Prozessorenuntermenge in einem ersten virtuellen lokalen Netz (VLAN2) logisch miteinander koppelt; Auswählen einer ersten Untermenge von Speichervorrichtungen aus der Menge von Speichervorrichtungen (DISK1...DISKm), um Informationen für den ersten Datenverarbeitungsvorgang zu speichern; und Erzeugen von Anweisungen, die bewirken, dass das zweite Verteilsystem (202) alle Speichervorrichtungen aus der ersten Untermenge von Speichervorrichtungen miteinander und mit der ersten Prozessorenuntermenge in einer ersten Speicherbereichsnetzzone (SAN ZONE 1) logisch koppelt; – eine zweite virtuelle Server-Farm (VSF2) zur Verwendung bei einem zweiten Datenverarbeitungsvorgang, die erzeugt wird durch Auswählen einer zweiten Prozessorenuntermenge aus der Menge von Prozessoren (CPU1...CPUn) zum Durchführen des zweiten Datenverarbeitungsvorgangs; Erzeugen von Anweisungen, die bewirken, dass das erste Verteilsystem (204) alle Prozessoren aus der zweiten Prozessorenuntermenge in einem zweiten virtuellen lokalen Netz (VLAN3) miteinander logisch koppelt; Auswählen einer zweiten Untermenge von Speichervorrichtungen aus der Menge von Speichervorrichtungen (DISK1...DISKm), um Informationen für den zweiten Datenverarbeitungsvorgang zu speichern; und Erzeugen von Anweisungen, die bewirken, dass das zweite Verteilsystem (202) alle Speichervorrichtungen aus der zweiten Untermenge von Speichervorrichtungen miteinander und mit der zweiten Prozessorenuntermenge in einer zweiten Speicherbereichsnetzzone (SAN ZONE 2) logisch koppelt; – wobei die Anweisungen die erste Prozessorenuntermenge sicher von der zweiten Prozessorenuntermenge und von der zweiten Untermenge von Speichervorrichtungen trennen.
  32. Datenverarbeitungssystem nach Anspruch 24, welches ferner umfasst: – eine Einrichtung zum Auswählen eines zusätzlichen Prozessors (CPUX) aus der Menge aus Prozessoren; – eine Einrichtung zum Erzeugen von Anweisungen, die bewirken, dass das erste Verteilsystem (204) den zusätzlichen Prozessor mit den Prozessoren aus der Prozessorenuntermenge logisch koppelt.
  33. Datenverarbeitungssystem nach Anspruch 24, welches ferner umfasst: – eine Einrichtung zum Auswählen eines bestimmten aus der Untermenge zu entfernenden Prozessors (CPUX) aus der Prozessorenuntermenge; – eine Einrichtung zum Erzeugen von Anweisungen, die bewirken, dass das erste Verteilsystem (204) den bestimmten Prozessor logisch von der Prozessorenuntermenge entkoppelt.
  34. Datenverarbeitungssystem nach Anspruch 25, welches ferner umfasst: – eine Einrichtung zum Auswählen eines bestimmten aus der Untermenge zu entfernenden Prozessors (CPUX) aus der Prozessorenuntermenge; – eine Einrichtung zum Erzeugen von Anweisungen, die bewirken, dass das erste Verteilsystem (204) den bestimmten Prozessor logisch von der Prozessorenuntermenge entkoppelt; – eine Einrichtung zum logischen Setzen des bestimmten Prozessors in den Pool (400) verfügbarer Prozessoren.
  35. Datenverarbeitungssystem nach Anspruch 27, welches ferner umfasst: – eine Einrichtung zum Auswählen eines bestimmten aus der ersten Untermenge zu entfernenden Prozessors (CPUX) aus der ersten Prozessorenuntermenge; – eine Einrichtung zum Erzeugen von Anweisungen, die bewirken, dass das erste Verteilsystem (204) den bestimmten Prozessor logisch von der ersten Prozessorenuntermenge entkoppelt; – eine Einrichtung zum Erzeugen von Anweisungen, die bewirken, dass das erste Verteilsystem (204) den bestimmten Prozessor zur zweiten Prozessorenuntermenge logisch hinzufügt.
  36. Datenverarbeitungssystem nach Anspruch 24, welches ferner eine Einrichtung zum anfänglichen Zuordnen aller Prozessoren zu einem Parkpool (400) verfügbarer Prozessoren umfasst.
  37. Datenverarbeitungssystem nach Anspruch 24, welches ferner eine Einrichtung zum dynamischen logischen Hinzufügen oder Entfernen eines oder mehrerer Prozessoren zu der oder aus der Prozessorenuntermenge umfasst, und zwar ansprechend auf die Echtzeitbelastung, der die Prozessorenuntermenge unterliegt.
  38. Datenverarbeitungssystem nach Anspruch 24, welches ferner eine Einrichtung zum dynamischen logischen Hinzufügen oder Entfernen einer oder mehrerer Speichervorrichtungen zu der oder aus der Untermenge von Speichervorrichtungen umfasst, und zwar ansprechend auf die Echtzeitbelastung, der die Untermenge von Speichervorrichtungen unterliegt.
  39. Datenverarbeitungssystem nach Anspruch 24, bei dem die Steuereinrichtung (206, 508) ferner einen Lastüberwacher umfasst, der Informationen erzeugt, die die Verarbeitungsbelastung jedes der Prozessoren aus der Untermenge betreffen.
  40. Datenverarbeitungssystem nach Anspruch 24, bei dem das erste Verteilsystem einen Verteiler für virtuelle lokale Netze mit nichtfälschbaren Anschlussidentifikatoren umfasst.
  41. Datenverarbeitungssystem nach Anspruch 24, bei dem das zweite Verteilsystem (202) einen Verteiler für Speicherbereichsnetze umfasst, wobei die Untermenge von Speichervorrichtungen in einer Speicherbereichsnetzzone (304) logisch organisiert ist, und bei dem der Verteiler für Speicherbereichsnetze nur den Prozessoren aus der Prozessorenuntermenge Zugriff zu der Untermenge von Speichervorrichtungen erlaubt.
  42. Datenverarbeitungssystem nach Anspruch 24, bei dem das zweite Verteilsystem (202) einen Verteiler für Speicherbereichsnetze umfasst, wobei die Untermenge von Speichervorrichtungen logisch in einer Speicherbereichsnetzzone (SAN ZONE X) organisiert ist, und bei dem der Verteiler für Speicherbereichsnetze nur den Prozessoren aus der Prozessorenuntermenge Zugriff auf die Untermenge von Speichervorrichtungen unter Verwendung eines oder mehrerer Faserkanalverteiler (Fibre Channel switches) erlaubt.
  43. Datenverarbeitungssystem nach Anspruch 24, bei dem das zweite Verteilsystem einen Verteiler für Speicherbereichsnetze umfasst, wobei die Untermenge von Speichervorrichtungen logisch in einer Speicherbereichsnetzzone (SAN ZONE X) organisiert ist, und bei dem die Prozessorenuntermenge über einen Lastausgleicher oder Firewall (302) mit einem externen Netz gekoppelt ist.
  44. Datenverarbeitungssystem nach Anspruch 24, welches ferner eine Mehrzahl von Steuereinrichtungen (CP CPU1...CP CPUn) umfasst, die miteinander in einem Unternetz (902) logisch gekoppelt sind, welches Steueranschlüsse (VLAN SW1...VLAN SWn) des ersten Verteilsystems (204) umfasst und welches Steueranschlüsse (SAN SW1...SAN SWn) des zweiten Verteilsystems (202) umfasst.
  45. Datenverarbeitungssystem nach Anspruch 44, welches ferner eine Agentensteuereinrichtung (510) umfasst, die dazu eingerichtet ist, jeden Prozessor aus der Prozessorenuntermenge (CPU1...CPUn) periodisch abzufragen, um Echtzeitinformationen zu erhalten, welche die zu diesem Zeitpunkt bestehende Prozessorbelastung, Netzbelastung oder Speicherbelastung wiedergeben, und die dazu eingerichtet ist, die Informationen an jede der Steuereinrichtungen (CP CPU1...CP CPUn) zu übermitteln.
  46. Datenverarbeitungssystem nach Anspruch 44, welches ferner das logische Zuordnen eines oder mehrerer Anschlüsse des zweiten Verteilsystems (202) zu einer Privatspeicherbereichsnetzzone (1002) zur Verwendung durch die Steuereinrichtung umfasst, wobei diese Anschlüsse einer der ausschliesslich der Steuereinrichtung zugeordneten Speichervorrichtungen zugeordnet sind.
  47. Datenverarbeitungssystem nach Anspruch 24, welches ferner umfasst: – eine Mehrzahl von gespeicherten, vorgegebenen Vorlagen, von denen jede eine Verarbeitungsfunktion aus einer Mehrzahl von Verarbeitungsfunktionen einem Hochfahrbild einer der Speichervorrichtungen aus der Untermenge von Speichervorrichtungen zuordnet; – eine Einrichtung zum Zuordnen jedes der Prozessoren aus der Prozessorenuntermenge zu einer der Vorlagen und zum Bewirken, dass alle Prozessoren in der Prozessorenuntermenge das Hochfahrbild aus der Speichervorrichtung, das der Verarbeitungsfunktion dieses Prozessors zugeordnet ist, laden und ausführen.
  48. Computerlesbares Medium, welches eine oder mehrere Anweisungsfolge/n zur Datenverarbeitung unter Verwendung eines erweiterbaren Computersystems enthält, wobei die Ausführung der einen oder mehreren Anweisungsfolge/n durch einen oder mehrere Prozessor/en bewirkt, dass der eine oder die mehreren Prozessor/en die Schritte ausführt/ausführen: – Auswählen einer Prozessorenuntermenge aus einer Menge von Prozessoren (CPU1...CPUn); und – Erzeugen von Anweisungen, die bewirken, dass ein erstes Verteilsystem (204,504) alle Prozessoren aus der Prozessorenuntermenge miteinander logisch koppelt, dadurch gekennzeichnet, dass das Ausführen der Anweisungen ferner bewirkt, dass der eine oder die mehreren Prozessor/en die Schritte ausführt/ausführen: – Auswählen einer Untermenge von Speichervorrichtungen aus einer Menge von Speichervorrichtungen (DISK1...DISKm); – Erzeugen von Anweisungen, die bewirken, dass ein zweites Verteilsystem (202,506) alle Speichervorrichtungen aus der Untermenge von Speichervorrichtungen miteinander und mit der Prozessorenuntermenge logisch koppelt.
DE60010277T 1999-08-23 2000-08-17 Erweiterbares rechnersystem Expired - Fee Related DE60010277T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15039499P 1999-08-23 1999-08-23
US150394P 1999-08-23
US09/502,170 US6779016B1 (en) 1999-08-23 2000-02-11 Extensible computing system
US502170 2000-02-11
PCT/US2000/022783 WO2001014987A2 (en) 1999-08-23 2000-08-17 Extensible computing system

Publications (2)

Publication Number Publication Date
DE60010277D1 DE60010277D1 (de) 2004-06-03
DE60010277T2 true DE60010277T2 (de) 2005-01-05

Family

ID=26847606

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60010277T Expired - Fee Related DE60010277T2 (de) 1999-08-23 2000-08-17 Erweiterbares rechnersystem

Country Status (12)

Country Link
US (3) US6779016B1 (de)
EP (1) EP1206738B1 (de)
JP (1) JP3948957B2 (de)
KR (1) KR100626462B1 (de)
CN (1) CN1321373C (de)
AT (1) ATE265707T1 (de)
AU (1) AU769928B2 (de)
CA (1) CA2376333A1 (de)
DE (1) DE60010277T2 (de)
IL (2) IL147903A0 (de)
TW (1) TW548554B (de)
WO (1) WO2001014987A2 (de)

Families Citing this family (290)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7403922B1 (en) 1997-07-28 2008-07-22 Cybersource Corporation Method and apparatus for evaluating fraud risk in an electronic commerce transaction
US7096192B1 (en) 1997-07-28 2006-08-22 Cybersource Corporation Method and system for detecting fraud in a credit card transaction over a computer network
US7177825B1 (en) 1999-05-11 2007-02-13 Borders Louis H Integrated system for ordering, fulfillment, and delivery of consumer products using a data network
US7437305B1 (en) 1999-05-11 2008-10-14 Christopher Angel Kantarjiev Scheduling delivery of products via the internet
US8234650B1 (en) * 1999-08-23 2012-07-31 Oracle America, Inc. Approach for allocating resources to an apparatus
US6779016B1 (en) * 1999-08-23 2004-08-17 Terraspring, Inc. Extensible computing system
US6976258B1 (en) 1999-11-30 2005-12-13 Ensim Corporation Providing quality of service guarantees to virtual hosts
US6938256B2 (en) 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
US20020103889A1 (en) * 2000-02-11 2002-08-01 Thomas Markson Virtual storage layer approach for dynamically associating computer storage with processing hosts
US7093005B2 (en) * 2000-02-11 2006-08-15 Terraspring, Inc. Graphical editor for defining and creating a computer system
US7343421B1 (en) 2000-02-14 2008-03-11 Digital Asset Enterprises Llc Restricting communication of selected processes to a set of specific network addresses
US6948003B1 (en) 2000-03-15 2005-09-20 Ensim Corporation Enabling a service provider to provide intranet services
US7240283B1 (en) 2000-11-10 2007-07-03 Narasimha Rao Paila Data transmission and rendering techniques implemented over a client-server system
US6985937B1 (en) 2000-05-11 2006-01-10 Ensim Corporation Dynamically modifying the resources of a virtual server
US6907421B1 (en) 2000-05-16 2005-06-14 Ensim Corporation Regulating file access rates according to file type
US6816905B1 (en) * 2000-11-10 2004-11-09 Galactic Computing Corporation Bvi/Bc Method and system for providing dynamic hosted service management across disparate accounts/sites
US8538843B2 (en) 2000-07-17 2013-09-17 Galactic Computing Corporation Bvi/Bc Method and system for operating an E-commerce service provider
US7222176B1 (en) * 2000-08-28 2007-05-22 Datacore Software Corporation Apparatus and method for using storage domains for controlling data in storage area networks
US7596784B2 (en) 2000-09-12 2009-09-29 Symantec Operating Corporation Method system and apparatus for providing pay-per-use distributed computing resources
US7606898B1 (en) 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US7865596B2 (en) * 2000-11-02 2011-01-04 Oracle America, Inc. Switching system for managing storage in digital networks
US8949471B2 (en) * 2000-11-02 2015-02-03 Oracle America, Inc. TCP/UDP acceleration
US7512686B2 (en) 2000-12-21 2009-03-31 Berg Mitchell T Method and system for establishing a data structure of a connection with a client
US7287090B1 (en) 2000-12-21 2007-10-23 Noatak Software, Llc Method and system for identifying a computing device in response to a request packet
US20020116397A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet through multiple router devices
US7418522B2 (en) * 2000-12-21 2008-08-26 Noatak Software Llc Method and system for communicating an information packet through multiple networks
US7546369B2 (en) 2000-12-21 2009-06-09 Berg Mitchell T Method and system for communicating a request packet in response to a state
US7219354B1 (en) * 2000-12-22 2007-05-15 Ensim Corporation Virtualizing super-user privileges for multiple virtual processes
US7233914B1 (en) 2000-12-27 2007-06-19 Joyo Wijaya Technique for implementing item substitution for unavailable items relating to a customer order
US7099948B2 (en) * 2001-02-16 2006-08-29 Swsoft Holdings, Ltd. Virtual computing environment
US7890605B1 (en) * 2001-02-16 2011-02-15 Parallels Holdings, Ltd. System and method for pre-installing of virtual private server files
US7502861B1 (en) * 2001-02-16 2009-03-10 Swsoft Holding, Ltd. System and method for providing services for offline servers using the same network address
WO2002071224A1 (en) * 2001-03-01 2002-09-12 Storeage Networking Technologies Storage area network (san) security
US7069267B2 (en) 2001-03-08 2006-06-27 Tririga Llc Data storage and access employing clustering
JP4828709B2 (ja) * 2001-03-19 2011-11-30 株式会社東芝 自動osインストール方法及び計算機ネットワークシステム
US7308423B1 (en) 2001-03-19 2007-12-11 Franklin Goodhue Woodward Technique for handling sales of regulated items implemented over a data network
US7076633B2 (en) * 2001-03-28 2006-07-11 Swsoft Holdings, Ltd. Hosting service providing platform system and method
JP4009434B2 (ja) * 2001-04-18 2007-11-14 株式会社日立製作所 磁気ディスク装置間結合装置
US7231430B2 (en) * 2001-04-20 2007-06-12 Egenera, Inc. Reconfigurable, virtual processing system, cluster, network and method
US7099912B2 (en) 2001-04-24 2006-08-29 Hitachi, Ltd. Integrated service management system
JP3945297B2 (ja) 2001-04-24 2007-07-18 株式会社日立製作所 システム及び管理システム
US7200646B2 (en) 2001-04-25 2007-04-03 Sun Microsystems, Inc. System and method for on-demand node creation for fabric devices
US7171474B2 (en) * 2001-04-25 2007-01-30 Sun Microsystems, Inc. Persistent repository for on-demand node creation for fabric devices
US6920491B2 (en) * 2001-04-25 2005-07-19 Sun Microsystems, Inc. Fabric device configuration interface for onlining fabric devices for use from a host system
WO2002088875A2 (en) * 2001-04-27 2002-11-07 The Boeing Company Communicating data through a network
US8392586B2 (en) * 2001-05-15 2013-03-05 Hewlett-Packard Development Company, L.P. Method and apparatus to manage transactions at a network storage device
US20020191649A1 (en) * 2001-06-13 2002-12-19 Woodring Sherrie L. Port mirroring in channel directors and switches
EP1402382B1 (de) 2001-06-20 2010-08-18 Richter, Thomas Verfahren zur bearbeitung von daten
US7546354B1 (en) * 2001-07-06 2009-06-09 Emc Corporation Dynamic network based storage with high availability
US7509369B1 (en) * 2001-07-11 2009-03-24 Swsoft Holdings, Ltd. Balancing shared servers in virtual environments
US6985490B2 (en) * 2001-07-11 2006-01-10 Sancastle Technologies, Ltd. Extension of fibre channel addressing
JP3907981B2 (ja) * 2001-07-30 2007-04-18 富士通株式会社 データ処理プログラム及びデータ処理装置
US8909800B1 (en) * 2001-07-30 2014-12-09 Parallels IP Holdings GmbH Server cluster-based system and method for management and recovery of virtual servers
US7174379B2 (en) 2001-08-03 2007-02-06 International Business Machines Corporation Managing server resources for hosted applications
US20030055932A1 (en) * 2001-09-19 2003-03-20 Dell Products L.P. System and method for configuring a storage area network
US8055555B2 (en) * 2001-09-25 2011-11-08 Emc Corporation Mediation device for scalable storage service
US7552056B2 (en) * 2001-09-25 2009-06-23 Emc Corporation Scalable storage service registration application
US6999998B2 (en) 2001-10-04 2006-02-14 Hewlett-Packard Development Company, L.P. Shared memory coupling of network infrastructure devices
US20030069949A1 (en) * 2001-10-04 2003-04-10 Chan Michele W. Managing distributed network infrastructure services
JP3879471B2 (ja) * 2001-10-10 2007-02-14 株式会社日立製作所 計算機資源割当方法
US20030078996A1 (en) * 2001-10-15 2003-04-24 Ensoport Internetworks EnsoBox clustered services architecture: techniques for enabling the creation of scalable, robust, and industrial strength internet services provider appliance
US7958199B2 (en) * 2001-11-02 2011-06-07 Oracle America, Inc. Switching systems and methods for storage management in digital networks
US20030097445A1 (en) * 2001-11-20 2003-05-22 Stephen Todd Pluggable devices services and events for a scalable storage service architecture
US8549048B2 (en) * 2001-12-19 2013-10-01 Emc Corporation Workflow database for scalable storage service
US7155494B2 (en) * 2002-01-09 2006-12-26 Sancastle Technologies Ltd. Mapping between virtual local area networks and fibre channel zones
US20030140128A1 (en) * 2002-01-18 2003-07-24 Dell Products L.P. System and method for validating a network
US7099814B2 (en) * 2002-03-29 2006-08-29 International Business Machines Corportion I/O velocity projection for bridge attached channel
US20030189929A1 (en) * 2002-04-04 2003-10-09 Fujitsu Limited Electronic apparatus for assisting realization of storage area network system
US7606167B1 (en) * 2002-04-05 2009-10-20 Cisco Technology, Inc. Apparatus and method for defining a static fibre channel fabric
US7165258B1 (en) * 2002-04-22 2007-01-16 Cisco Technology, Inc. SCSI-based storage area network having a SCSI router that routes traffic between SCSI and IP networks
US6965951B2 (en) 2002-05-17 2005-11-15 Sun Microsystems, Inc. Device centric discovery and configuration for fabric devices
US20030217131A1 (en) * 2002-05-17 2003-11-20 Storage Technology Corporation Processing distribution using instant copy
US7080378B1 (en) 2002-05-17 2006-07-18 Storage Technology Corporation Workload balancing using dynamically allocated virtual servers
EP1367685A1 (de) 2002-05-31 2003-12-03 Whirlpool Corporation Elektronisches System zur Geräteleistungsverbrauchsverwaltung
US7647523B2 (en) * 2002-06-12 2010-01-12 International Business Machines Corporation Dynamic binding and fail-over of comparable web service instances in a services grid
US7454458B2 (en) * 2002-06-24 2008-11-18 Ntt Docomo, Inc. Method and system for application load balancing
US7380002B2 (en) * 2002-06-28 2008-05-27 Microsoft Corporation Bi-directional affinity within a load-balancing multi-node network interface
US7010596B2 (en) * 2002-06-28 2006-03-07 International Business Machines Corporation System and method for the allocation of grid computing to network workstations
US7962590B1 (en) 2002-07-17 2011-06-14 International Business Machines Corporation Automated discovery of a multitier compute infrastructure
US7337184B1 (en) * 2002-07-17 2008-02-26 International Business Machines Corporation Topology mapping of a multitier compute infrastructure
US7392268B2 (en) * 2002-09-19 2008-06-24 The Generations Network, Inc. Systems and methods for partitioning data on multiple servers
US20040060054A1 (en) * 2002-09-20 2004-03-25 International Business Machines Corporation Composition service for autonomic computing
US20040059704A1 (en) * 2002-09-20 2004-03-25 International Business Machines Corporation Self-managing computing system
US7194445B2 (en) * 2002-09-20 2007-03-20 Lenovo (Singapore) Pte. Ltd. Adaptive problem determination and recovery in a computer system
US7043419B2 (en) * 2002-09-20 2006-05-09 International Business Machines Corporation Method and apparatus for publishing and monitoring entities providing services in a distributed data processing system
US7216343B2 (en) * 2002-09-20 2007-05-08 International Business Machines Corporation Method and apparatus for automatic updating and testing of software
US7200657B2 (en) * 2002-10-01 2007-04-03 International Business Machines Corporation Autonomic provisioning of network-accessible service behaviors within a federated grid infrastructure
US20040083112A1 (en) * 2002-10-25 2004-04-29 Horst Gale R. Method and apparatus for managing resources of utility providers
US7945669B2 (en) 2002-10-30 2011-05-17 Emc Corporation Method and apparatus for provisioning storage resources
JP2004157766A (ja) * 2002-11-06 2004-06-03 Tkc Corp データストレージ装置
US7055052B2 (en) * 2002-11-21 2006-05-30 International Business Machines Corporation Self healing grid architecture for decentralized component-based systems
US7107272B1 (en) 2002-12-02 2006-09-12 Storage Technology Corporation Independent distributed metadata system and method
US6996682B1 (en) 2002-12-27 2006-02-07 Storage Technology Corporation System and method for cascading data updates through a virtual copy hierarchy
US20040128269A1 (en) * 2002-12-27 2004-07-01 Milligan Charles A. System and method for managing data through families of inter-related metadata tables
US20040139144A1 (en) * 2002-12-31 2004-07-15 Batra Virinder M. Using web services to access computational grids by non-members of the grid
US7353276B2 (en) * 2003-02-13 2008-04-01 Microsoft Corporation Bi-directional affinity
US7171470B2 (en) 2003-02-20 2007-01-30 International Business Machines Corporation Grid service scheduling of related services using heuristics
US20050021688A1 (en) * 2003-02-25 2005-01-27 David Felts System and method for domain configuration
US7831736B1 (en) * 2003-02-27 2010-11-09 Cisco Technology, Inc. System and method for supporting VLANs in an iSCSI
US7765501B2 (en) * 2003-03-06 2010-07-27 Microsoft Corporation Settings and constraints validation to enable design for operations
US7689676B2 (en) 2003-03-06 2010-03-30 Microsoft Corporation Model-based policy application
US7890543B2 (en) 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US8122106B2 (en) 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
JP4045991B2 (ja) * 2003-03-27 2008-02-13 株式会社日立製作所 ポリシールールの生成方法およびそれを用いたジョブ運用管理方法
US7334225B2 (en) * 2003-04-28 2008-02-19 International Business Machines Corporation Method, system, and computer program product for on demand enablement of dormant computing resources
WO2004104852A1 (ja) * 2003-05-26 2004-12-02 Kabushiki Kaisha Toshiba 負荷分散システム及び負荷分散方法
US7093120B2 (en) * 2003-05-29 2006-08-15 International Business Machines Corporation Method, apparatus, and program for performing boot, maintenance, or install operations on a storage area network
US7814126B2 (en) * 2003-06-25 2010-10-12 Microsoft Corporation Using task sequences to manage devices
US7451208B1 (en) 2003-06-28 2008-11-11 Cisco Technology, Inc. Systems and methods for network address failover
US8352724B2 (en) * 2003-07-23 2013-01-08 Semiconductor Energy Laboratory Co., Ltd. Microprocessor and grid computing system
CN100378669C (zh) * 2003-07-28 2008-04-02 Sap股份公司 网格可管理的应用处理管理方法和系统
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US7543296B2 (en) * 2003-08-26 2009-06-02 International Business Machines Corporation Time based multi-tiered management of resource systems
US8135636B2 (en) * 2003-11-25 2012-03-13 International Business Machines Corporation System for metering in an on-demand utility environment
US20050114595A1 (en) * 2003-11-26 2005-05-26 Veritas Operating Corporation System and method for emulating operating system metadata to provide cross-platform access to storage volumes
US20050132270A1 (en) * 2003-12-11 2005-06-16 International Business Machines Corporation Method, system, and computer program product for automatic code generation in an object oriented environment
US20050138422A1 (en) * 2003-12-23 2005-06-23 Hancock Peter J. System and method for metering the performance of a data processing system
US20050137897A1 (en) * 2003-12-23 2005-06-23 Hoffman Philip M. Method and system for performance redistribution in partitioned computer systems
CN100440888C (zh) * 2004-01-17 2008-12-03 中国科学院计算技术研究所 基于网络存储和资源虚拟化的大型服务系统的管理系统及其方法
JP4227035B2 (ja) * 2004-02-03 2009-02-18 株式会社日立製作所 計算機システム、管理装置、ストレージ装置及びコンピュータ装置
US20050198636A1 (en) * 2004-02-26 2005-09-08 International Business Machines Corporation Dynamic optimization of batch processing
US20050192937A1 (en) * 2004-02-26 2005-09-01 International Business Machines Corporation Dynamic query optimization
US7778422B2 (en) 2004-02-27 2010-08-17 Microsoft Corporation Security associations for devices
WO2005089241A2 (en) 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method for providing object triggers
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
EP1732004A4 (de) * 2004-03-19 2011-09-28 Ibm Computersystem, server der dieses darstellt, dessen verfahren zur ausführungssteuerung von aufträgen und programm
US7827104B2 (en) * 2004-03-25 2010-11-02 International Business Machines Corporation Method and system for efficiently billing on-demand service exploitation in computer networks
US8458691B2 (en) 2004-04-15 2013-06-04 International Business Machines Corporation System and method for dynamically building application environments in a computational grid
US20050246529A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Isolated persistent identity storage for authentication of computing devies
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US7415419B2 (en) * 2004-06-18 2008-08-19 Expedia, Inc. Method and system for presenting rates for travel services
US20050289098A1 (en) * 2004-06-24 2005-12-29 International Business Machines Corporation Dynamically selecting alternative query access plans
JP2006011860A (ja) * 2004-06-25 2006-01-12 Fujitsu Ltd システム構成管理プログラム及びシステム構成管理装置
US20140067771A2 (en) * 2004-07-09 2014-03-06 International Business Machines Corporation Management of a Scalable Computer System
US7912940B2 (en) * 2004-07-30 2011-03-22 Microsoft Corporation Network system role determination
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
CN101023646B (zh) * 2004-08-21 2011-01-26 艾利森电话股份有限公司 资源管理
JP2006079495A (ja) * 2004-09-13 2006-03-23 Hitachi Ltd ストレージシステム及び論理区画の設定方法
US7302316B2 (en) * 2004-09-14 2007-11-27 Brigham Young University Programmable autopilot system for autonomous flight of unmanned aerial vehicles
US20060075111A1 (en) * 2004-09-30 2006-04-06 Mosen Auryan Virtual internet based PC service for households
US20060075408A1 (en) * 2004-10-06 2006-04-06 Digipede Technologies, Llc Distributed object execution system
WO2006043322A1 (ja) * 2004-10-20 2006-04-27 Fujitsu Limited サーバ管理プログラム、サーバ管理方法、およびサーバ管理装置
WO2006043321A1 (ja) * 2004-10-20 2006-04-27 Fujitsu Limited アプリケーション管理プログラム、アプリケーション管理方法、およびアプリケーション管理装置
JP4799419B2 (ja) * 2004-10-20 2011-10-26 富士通株式会社 設定プログラム、設定方法、および設定装置
CA2586763C (en) 2004-11-08 2013-12-17 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US8244882B2 (en) * 2004-11-17 2012-08-14 Raytheon Company On-demand instantiation in a high-performance computing (HPC) system
US7856572B2 (en) 2004-11-17 2010-12-21 Nec Corporation Information processing device, program thereof, modular type system operation management system, and component selection method
US7680771B2 (en) * 2004-12-20 2010-03-16 International Business Machines Corporation Apparatus, system, and method for database provisioning
US8271448B2 (en) * 2005-01-28 2012-09-18 Oracle International Corporation Method for strategizing protocol presumptions in two phase commit coordinator
US7458066B2 (en) * 2005-02-28 2008-11-25 Hewlett-Packard Development Company, L.P. Computer system and method for transferring executables between partitions
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9225663B2 (en) 2005-03-16 2015-12-29 Adaptive Computing Enterprises, Inc. System and method providing a virtual private cluster
EP1866767B1 (de) 2005-03-16 2018-04-18 III Holdings 12, LLC Automatische übergabe von arbeitspensum an ein bedarfsdeckungszentrum
US9015324B2 (en) 2005-03-16 2015-04-21 Adaptive Computing Enterprises, Inc. System and method of brokering cloud computing resources
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
EP1872249B1 (de) 2005-04-07 2016-12-07 Adaptive Computing Enterprises, Inc. Zugang auf anfrage zu computerressourcen
US8782120B2 (en) 2005-04-07 2014-07-15 Adaptive Computing Enterprises, Inc. Elastic management of compute resources between a web server and an on-demand compute environment
US8489728B2 (en) 2005-04-15 2013-07-16 Microsoft Corporation Model-based system monitoring
US7797147B2 (en) 2005-04-15 2010-09-14 Microsoft Corporation Model-based system monitoring
US8549513B2 (en) 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US20070011092A1 (en) * 2005-07-05 2007-01-11 Bishop Ellis E System and method for controlling on-demand service delivery costs
US7548963B2 (en) * 2005-07-09 2009-06-16 International Business Machines Corporation System and method for generating a multi-plan for a multi-layer storage area network
US7707579B2 (en) * 2005-07-14 2010-04-27 International Business Machines Corporation Method and system for application profiling for purposes of defining resource requirements
CN100431306C (zh) * 2005-07-15 2008-11-05 环达电脑(上海)有限公司 动态网络连接分配系统及方法
US7558858B1 (en) * 2005-08-31 2009-07-07 At&T Intellectual Property Ii, L.P. High availability infrastructure with active-active designs
US7995474B2 (en) * 2005-09-13 2011-08-09 International Business Machines Corporation Grid network throttle and load collector
US7831971B2 (en) * 2005-10-24 2010-11-09 International Business Machines Corporation Method and apparatus for presenting a visualization of processor capacity and network availability based on a grid computing system simulation
US7853948B2 (en) * 2005-10-24 2010-12-14 International Business Machines Corporation Method and apparatus for scheduling grid jobs
US20070118839A1 (en) * 2005-10-24 2007-05-24 Viktors Berstis Method and apparatus for grid project modeling language
US20070101000A1 (en) * 2005-11-01 2007-05-03 Childress Rhonda L Method and apparatus for capacity planning and resourse availability notification on a hosted grid
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
JP4663497B2 (ja) * 2005-12-01 2011-04-06 株式会社日立製作所 情報処理システムおよび情報処理装置の割当管理方法
US8682799B1 (en) * 2005-12-23 2014-03-25 Qlogic, Corporation Method and system for port licensing in switches
JP4434168B2 (ja) * 2006-03-30 2010-03-17 日本電気株式会社 オンデマンドクライアントサービスシステム、その管理方法、及びプログラム
US7707290B2 (en) * 2006-05-08 2010-04-27 International Business Machines Corporation Securing leased resources on a computer
US8028069B2 (en) * 2006-05-08 2011-09-27 International Business Machines Corporation Structure for securing leased resources on a computer
US8285650B2 (en) 2006-06-13 2012-10-09 At&T Intellectual Property I, Lp Method and apparatus for billing data services
US8000260B2 (en) * 2006-06-19 2011-08-16 International Business Machines Corporation Method for dynamic information technology infrastructure provisioning
US20080114879A1 (en) * 2006-11-14 2008-05-15 Microsoft Corporation Deployment of configuration data within a server farm
US20080168310A1 (en) * 2007-01-05 2008-07-10 Microsoft Corporation Hardware diagnostics and software recovery on headless server appliances
US20080168301A1 (en) * 2007-01-10 2008-07-10 Inventec Corporation Method of automatically adjusting storage sources for server a system
JP5057792B2 (ja) * 2007-01-29 2012-10-24 株式会社日立製作所 性能ボトルネックを緩和する機能を備えたストレージシステム
US20080183626A1 (en) * 2007-01-31 2008-07-31 Francisco Romero Software license agreement management based on temporary usage
US8103562B2 (en) * 2007-04-03 2012-01-24 Sony Computer Entertainment America Llc System and method for processor cycle accounting and valuation
US7705484B2 (en) * 2007-04-10 2010-04-27 Whirlpool Corporation Energy management system and method
US20080271031A1 (en) * 2007-04-30 2008-10-30 Dan Herington Resource Partition Management in Kernel Space
US7979893B2 (en) * 2007-05-31 2011-07-12 Microsoft Corporation Tailored system management interface
US8374929B1 (en) 2007-08-06 2013-02-12 Gogrid, LLC System and method for billing for hosted services
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US9466023B1 (en) 2007-11-08 2016-10-11 Sentient Technologies (Barbados) Limited Data mining technique with federated evolutionary coordination
RU2502122C2 (ru) * 2007-11-08 2013-12-20 Дженетик Файнанс (Барбадос) Лимитед Сетевая вычислительная система
US8909570B1 (en) 2008-11-07 2014-12-09 Genetic Finance (Barbados) Limited Data mining technique with experience-layered gene pool
KR101040117B1 (ko) * 2007-12-13 2011-06-09 한국전자통신연구원 다중 시스템 워크로드 관리 시스템 및 방법
US7912956B1 (en) * 2008-01-22 2011-03-22 Raytheon Company Service level agreement based control of a distributed computing system
US8302102B2 (en) * 2008-02-27 2012-10-30 International Business Machines Corporation System utilization through dedicated uncapped partitions
US8527656B2 (en) * 2008-03-26 2013-09-03 Avaya Inc. Registering an endpoint with a sliding window of controllers in a list of controllers of a survivable network
US8135838B2 (en) 2008-04-08 2012-03-13 Geminare Incorporated System and method for providing data and application continuity in a computer system
DE102008023846A1 (de) 2008-05-16 2009-12-03 Fujitsu Siemens Computers Gmbh Rechnerverbund und Verfahren zur Konfiguration eines Rechnerverbundes
US20090328036A1 (en) * 2008-06-27 2009-12-31 Oqo, Inc. Selection of virtual computing resources using hardware model presentations
US8352868B2 (en) * 2008-06-27 2013-01-08 Google Inc. Computing with local and remote resources including user mode control
US20090327495A1 (en) * 2008-06-27 2009-12-31 Oqo, Inc. Computing with local and remote resources using automated optimization
US20100043006A1 (en) * 2008-08-13 2010-02-18 Egenera, Inc. Systems and methods for a configurable deployment platform with virtualization of processing resource specific persistent settings
JP2010061278A (ja) * 2008-09-02 2010-03-18 Hitachi Ltd 仮想サーバシステムの管理装置
US8185624B2 (en) 2009-03-09 2012-05-22 Oracle International Corporation Efficient on-demand provisioning of servers for specific software sets
EP2422278A4 (de) 2009-04-28 2012-11-07 Genetic Finance Barbados Ltd Verteilter evolutionärer algorithmus für anlagenverwaltung und -handel
WO2010127042A1 (en) * 2009-04-28 2010-11-04 Genetic Finance (Barbados) Limited Class-based distributed evolutionary algorithm for asset management and trading
US8074107B2 (en) * 2009-10-26 2011-12-06 Amazon Technologies, Inc. Failover and recovery for replicated data instances
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
JP5368285B2 (ja) 2009-12-11 2013-12-18 株式会社日立製作所 計算機システム、計算機リソースの管理方法及びプログラム
US20110230979A1 (en) * 2010-03-19 2011-09-22 Microsoft Corporation Scalable and flexible control system having symmetrical control units
WO2011142227A1 (ja) * 2010-05-14 2011-11-17 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・システム、方法及びプログラム
CN101902385B (zh) * 2010-07-05 2012-10-31 深圳市阿尔斯电信技术有限公司 一种在互联网中实现信令可信传输的方法和互联网通信架构
US20120016681A1 (en) * 2010-07-13 2012-01-19 Salesforce.Com, Inc. System, method and computer program product for analyzing monitored usage of a resource
US9172979B2 (en) 2010-08-12 2015-10-27 Net Power And Light, Inc. Experience or “sentio” codecs, and methods and systems for improving QoE and encoding based on QoE experiences
US8463677B2 (en) 2010-08-12 2013-06-11 Net Power And Light, Inc. System architecture and methods for experimental computing
US9557817B2 (en) 2010-08-13 2017-01-31 Wickr Inc. Recognizing gesture inputs using distributed processing of sensor data from multiple sensors
US8429704B2 (en) 2010-10-21 2013-04-23 Net Power And Light, Inc. System architecture and method for composing and directing participant experiences
US20120158650A1 (en) * 2010-12-16 2012-06-21 Sybase, Inc. Distributed data cache database architecture
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US20130117168A1 (en) 2011-11-04 2013-05-09 Mark Henrik Sandstrom Maximizing Throughput of Multi-user Parallel Data Processing Systems
US9535765B1 (en) * 2011-03-28 2017-01-03 Google Inc. Opportunistic job Processing of input data divided into partitions of different sizes
JP5691062B2 (ja) * 2011-04-04 2015-04-01 株式会社日立製作所 仮想計算機の制御方法及び管理計算機
GB2490037A (en) * 2011-04-16 2012-10-17 Mark Henrik Sandstrom System and method for data processing billing
CN108460632A (zh) 2011-06-06 2018-08-28 恩弗伦斯媒体公司 消费者驱动广告系统
US10019730B2 (en) 2012-08-15 2018-07-10 autoGraph, Inc. Reverse brand sorting tools for interest-graph driven personalization
US8840013B2 (en) 2011-12-06 2014-09-23 autoGraph, Inc. Consumer self-profiling GUI, analysis and rapid information presentation tools
US8880657B1 (en) 2011-06-28 2014-11-04 Gogrid, LLC System and method for configuring and managing virtual grids
CN102857475A (zh) * 2011-06-29 2013-01-02 上海地面通信息网络有限公司 一种防火墙虚拟化处理系统
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
US9710764B1 (en) 2011-07-15 2017-07-18 Sentient Technologies (Barbados) Limited Data mining technique with position labeling
US9002759B2 (en) 2011-07-15 2015-04-07 Sentient Technologies (Barbados) Limited Data mining technique with maintenance of fitness history
US9367816B1 (en) 2011-07-15 2016-06-14 Sentient Technologies (Barbados) Limited Data mining technique with induced environmental alteration
US9304895B1 (en) 2011-07-15 2016-04-05 Sentient Technologies (Barbados) Limited Evolutionary technique with n-pool evolution
US9882950B2 (en) 2012-06-13 2018-01-30 All Purpose Networks LLC Methods and systems of an all purpose broadband network
US9503927B2 (en) 2012-06-13 2016-11-22 All Purpose Networks LLC Multiple-use wireless network
US8565689B1 (en) 2012-06-13 2013-10-22 All Purpose Networks LLC Optimized broadband wireless network performance through base station application server
US9084143B2 (en) 2012-06-13 2015-07-14 All Purpose Networks LLC Network migration queuing service in a wireless network
US9219541B2 (en) * 2012-06-13 2015-12-22 All Purpose Networks LLC Baseband data transmission and reception in an LTE wireless base station employing periodically scanning RF beam forming techniques
US10025700B1 (en) 2012-07-18 2018-07-17 Sentient Technologies (Barbados) Limited Data mining technique with n-Pool evolution
US10057179B2 (en) 2012-07-20 2018-08-21 Hewlett Packard Enterprise Development Company Lp Policy based scaling of network resources
US10963420B2 (en) * 2012-08-10 2021-03-30 Adobe Inc. Systems and methods for providing hot spare nodes
US10540515B2 (en) 2012-11-09 2020-01-21 autoGraph, Inc. Consumer and brand owner data management tools and consumer privacy tools
WO2014186771A1 (en) 2013-05-16 2014-11-20 Nfluence Media, Inc. Privacy sensitive persona management tools
KR101695012B1 (ko) 2013-06-04 2017-01-10 한국전자통신연구원 동적 노드 서비스 제공 방법 및 그 장치
US9602426B2 (en) * 2013-06-21 2017-03-21 Microsoft Technology Licensing, Llc Dynamic allocation of resources while considering resource reservations
JP5558615B2 (ja) * 2013-09-12 2014-07-23 株式会社日立製作所 計算機システム、計算機リソースの管理方法及びプログラム
US9277002B2 (en) * 2014-01-09 2016-03-01 International Business Machines Corporation Physical resource management
US10212101B2 (en) 2014-01-14 2019-02-19 Nant Holdings Ip, Llc Low level provisioning of network fabrics
US9917728B2 (en) 2014-01-14 2018-03-13 Nant Holdings Ip, Llc Software-based fabric enablement
US11288579B2 (en) 2014-01-28 2022-03-29 Cognizant Technology Solutions U.S. Corporation Training and control system for evolving solutions to data-intensive problems using nested experience-layered individual pool
US10430709B2 (en) 2016-05-04 2019-10-01 Cognizant Technology Solutions U.S. Corporation Data mining technique with distributed novelty search
US10268953B1 (en) 2014-01-28 2019-04-23 Cognizant Technology Solutions U.S. Corporation Data mining technique with maintenance of ancestry counts
WO2015149032A1 (en) 2014-03-28 2015-10-01 Brian Roundtree Beacon based privacy centric network communication, sharing, relevancy tools and other tools
JP2015194810A (ja) 2014-03-31 2015-11-05 富士通株式会社 スケールアウト方法、システム、情報処理装置、管理装置及びプログラム
US10552923B2 (en) * 2014-05-08 2020-02-04 Honda Motor Co., Ltd. Electric vehicle charging control system
JP5744287B2 (ja) * 2014-06-03 2015-07-08 株式会社日立製作所 計算機システム及び計算機リソースの管理方法
CN104035522A (zh) * 2014-06-16 2014-09-10 南京云创存储科技有限公司 大数据库一体机
CN105511799B (zh) * 2014-09-26 2018-10-02 先智云端数据股份有限公司 用于优化储存设备配置的系统及方法
US10652103B2 (en) 2015-04-24 2020-05-12 Goldman Sachs & Co. LLC System and method for handling events involving computing systems and networks using fabric monitoring system
US10410155B2 (en) 2015-05-01 2019-09-10 Microsoft Technology Licensing, Llc Automatic demand-driven resource scaling for relational database-as-a-service
WO2016207731A2 (en) 2015-06-25 2016-12-29 Sentient Technologies (Barbados) Limited Alife machine learning system and method
US10430429B2 (en) 2015-09-01 2019-10-01 Cognizant Technology Solutions U.S. Corporation Data mining management server
US9871731B2 (en) * 2015-09-30 2018-01-16 Microsoft Technology Licensing, Llc Data plane manipulation in a load balancer
US10956823B2 (en) 2016-04-08 2021-03-23 Cognizant Technology Solutions U.S. Corporation Distributed rule-based probabilistic time-series classifier
US10776772B2 (en) 2016-09-30 2020-09-15 Middleware, Inc. Automated digital method and system of providing or sharing access
US11257066B2 (en) 2016-09-30 2022-02-22 Middleware, Inc. Automated digital method and system of providing or sharing access
CN107959705B (zh) * 2016-10-18 2021-08-20 阿里巴巴集团控股有限公司 流式计算任务的分配方法和控制服务器
US11250328B2 (en) 2016-10-26 2022-02-15 Cognizant Technology Solutions U.S. Corporation Cooperative evolution of deep neural network structures
US11403532B2 (en) 2017-03-02 2022-08-02 Cognizant Technology Solutions U.S. Corporation Method and system for finding a solution to a provided problem by selecting a winner in evolutionary optimization of a genetic algorithm
US10744372B2 (en) * 2017-03-03 2020-08-18 Cognizant Technology Solutions U.S. Corporation Behavior dominated search in evolutionary search systems
US11507844B2 (en) 2017-03-07 2022-11-22 Cognizant Technology Solutions U.S. Corporation Asynchronous evaluation strategy for evolution of deep neural networks
CN108733432B (zh) * 2017-04-14 2021-12-21 创新先进技术有限公司 编程环境下私有方法的实现方法、调用方法及其装置
US11281977B2 (en) 2017-07-31 2022-03-22 Cognizant Technology Solutions U.S. Corporation Training and control system for evolving solutions to data-intensive problems using epigenetic enabled individuals
CN107563868A (zh) * 2017-09-07 2018-01-09 上海宝尊电子商务有限公司 具有高度弹性和稳定性的官方商城标准体系架构
US11250314B2 (en) 2017-10-27 2022-02-15 Cognizant Technology Solutions U.S. Corporation Beyond shared hierarchies: deep multitask learning through soft layer ordering
WO2019118299A1 (en) 2017-12-13 2019-06-20 Sentient Technologies (Barbados) Limited Evolving recurrent networks using genetic programming
EP3724819A4 (de) 2017-12-13 2022-06-22 Cognizant Technology Solutions U.S. Corporation Evolutionäre architekturen zur entwicklung tiefer neuronaler netze
EP3662370B1 (de) 2018-01-08 2023-12-27 All Purpose Networks, Inc. Internet-der-dinge-system mit effizientem und sicherem kommunikationsnetz
WO2020101747A1 (en) 2018-01-08 2020-05-22 All Purpose Networks, Inc. Publish-subscribe broker network overlay system
US11574201B2 (en) 2018-02-06 2023-02-07 Cognizant Technology Solutions U.S. Corporation Enhancing evolutionary optimization in uncertain environments by allocating evaluations via multi-armed bandit algorithms
US11527308B2 (en) 2018-02-06 2022-12-13 Cognizant Technology Solutions U.S. Corporation Enhanced optimization with composite objectives and novelty-diversity selection
US11755979B2 (en) 2018-08-17 2023-09-12 Evolv Technology Solutions, Inc. Method and system for finding a solution to a provided problem using family tree based priors in Bayesian calculations in evolution based optimization
US11481639B2 (en) 2019-02-26 2022-10-25 Cognizant Technology Solutions U.S. Corporation Enhanced optimization with composite objectives and novelty pulsation
WO2020186061A1 (en) 2019-03-13 2020-09-17 Cognizant Technology Solutions U.S. Corporation System and method for implementing modular universal reparameterization for deep multi-task learning across diverse domains
WO2020198520A1 (en) 2019-03-27 2020-10-01 Cognizant Technology Solutions U.S. Corporation Process and system including an optimization engine with evolutionary surrogate-assisted prescriptions
US12026624B2 (en) 2019-05-23 2024-07-02 Cognizant Technology Solutions U.S. Corporation System and method for loss function metalearning for faster, more accurate training, and smaller datasets
CN113326069A (zh) * 2020-02-28 2021-08-31 广东龙芯中科电子科技有限公司 操作系统启动方法、装置、电子设备及存储介质
US11775841B2 (en) 2020-06-15 2023-10-03 Cognizant Technology Solutions U.S. Corporation Process and system including explainable prescriptions through surrogate-assisted evolution

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4591967A (en) 1982-06-29 1986-05-27 Andover Controls Corporation Distributed drum emulating programmable controller system
CA1293819C (en) 1986-08-29 1991-12-31 Thinking Machines Corporation Very large scale computer
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US5163130A (en) 1989-10-11 1992-11-10 Next Computer, Inc. System and method for configuring a graphic interface
JPH0727504B2 (ja) 1990-12-10 1995-03-29 インターナショナル・ビジネス・マシーンズ・コーポレイション ネットワークの構成を定義するシステム、ネットワークのための構成パラメータを生成する方法及びネットワークを構成するためのシステム
JPH04367963A (ja) * 1991-06-15 1992-12-21 Hitachi Ltd 共有記憶通信方法
EP0562251A2 (de) 1992-03-24 1993-09-29 Universities Research Association, Inc. Durch ein dynamisches wiederkonfigurierbares serielles Netzwerk gesteuertes Paralleldatenübertragungsnetzwerk
CA2100540A1 (en) 1992-10-19 1994-04-20 Jonel George System and method for performing resource reconfiguration in a computer system
JPH06187178A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
US5574914A (en) 1993-01-04 1996-11-12 Unisys Corporation Method and apparatus for performing system resource partitioning
US5504670A (en) 1993-03-31 1996-04-02 Intel Corporation Method and apparatus for allocating resources in a multiprocessor system
JPH07219913A (ja) 1994-01-28 1995-08-18 Fujitsu Ltd マルチプロセッサシステムの制御方法及び装置
US5544313A (en) * 1994-05-11 1996-08-06 International Business Machines Corporation Baton passing optimization scheme for load balancing/configuration planning in a video-on-demand computer system
US5751967A (en) 1994-07-25 1998-05-12 Bay Networks Group, Inc. Method and apparatus for automatically configuring a network device to support a virtual network
US5659756A (en) * 1995-03-31 1997-08-19 International Business Machines Corporation Method and system for providing access to logical partition information on a per resource basis
US5666486A (en) 1995-06-23 1997-09-09 Data General Corporation Multiprocessor cluster membership manager framework
US5819020A (en) 1995-10-16 1998-10-06 Network Specialists, Inc. Real time backup system
US6035105A (en) * 1996-01-02 2000-03-07 Cisco Technology, Inc. Multiple VLAN architecture system
US5819042A (en) 1996-02-20 1998-10-06 Compaq Computer Corporation Method and apparatus for guided configuration of unconfigured network and internetwork devices
US5838907A (en) 1996-02-20 1998-11-17 Compaq Computer Corporation Configuration manager for network devices and an associated method for providing configuration information thereto
US5821937A (en) 1996-02-23 1998-10-13 Netsuite Development, L.P. Computer method for updating a network design
EP0978074A2 (de) * 1996-04-12 2000-02-09 Citibank, N.A. Virtuelles synthetisches geld
WO1997049214A1 (en) 1996-06-24 1997-12-24 Netsys Technologies, Inc. Method and apparatus for network centric problem analysis and topology construction
US6182139B1 (en) * 1996-08-05 2001-01-30 Resonate Inc. Client-side resource-based load-balancing with delayed-resource-binding using TCP state migration to WWW server farm
US5878232A (en) * 1996-12-27 1999-03-02 Compaq Computer Corporation Dynamic reconfiguration of network device's virtual LANs using the root identifiers and root ports determined by a spanning tree procedure
US6173322B1 (en) 1997-06-05 2001-01-09 Silicon Graphics, Inc. Network request distribution based on static rules and dynamic performance data
US6067545A (en) * 1997-08-01 2000-05-23 Hewlett-Packard Company Resource rebalancing in networked computer systems
US6230200B1 (en) 1997-09-08 2001-05-08 Emc Corporation Dynamic modeling for resource allocation in a file server
US6490620B1 (en) 1997-09-26 2002-12-03 Worldcom, Inc. Integrated proxy interface for web based broadband telecommunications management
CA2246867A1 (en) 1997-09-26 1999-03-26 Robert Joseph Thornberry Jr. Internet performance network
EP0917056B1 (de) 1997-11-04 2008-01-09 Compaq Computer Corporation Multiprozessor-Rechnersystem und Verfahren zu seinem Betrieb
US5943656A (en) * 1997-12-03 1999-08-24 Avista Advantage, Inc. Methods and systems for computerized bill consolidating, billing and payment authorization, computerized utility bill consolidating, utility billing access and payment and utility provider consolidated billing systems
US5930773A (en) * 1997-12-17 1999-07-27 Avista Advantage, Inc. Computerized resource accounting methods and systems, computerized utility management methods and systems, multi-user utility management methods and systems, and energy-consumption-based tracking methods and systems
US6349289B1 (en) 1998-01-16 2002-02-19 Ameritech Corporation Method and system for tracking computer system usage through a remote access security device
US6247077B1 (en) 1998-02-06 2001-06-12 Ncr Corporation Highly-scalable parallel processing computer system architecture
JP3302918B2 (ja) * 1998-02-10 2002-07-15 日本電気株式会社 バーチャルlan構成情報の自動設定システム及びバーチャルlan構成情報の自動設定方法
US6333936B1 (en) * 1998-04-29 2001-12-25 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for allocating processing resources
US6381321B1 (en) * 1998-05-04 2002-04-30 T-Netix, Inc. Telecommunication resource allocation system and method
WO1999057957A2 (en) 1998-05-08 1999-11-18 Apple Computer, Inc. Method and apparatus for configuring a computer
US6363421B2 (en) 1998-05-31 2002-03-26 Lucent Technologies, Inc. Method for computer internet remote management of a telecommunication network element
US6505229B1 (en) * 1998-09-25 2003-01-07 Intelect Communications, Inc. Method for allowing multiple processing threads and tasks to execute on one or more processor units for embedded real-time processor systems
US6212559B1 (en) 1998-10-28 2001-04-03 Trw Inc. Automated configuration of internet-like computer networks
EP1131719A4 (de) 1998-11-14 2007-10-31 Mti Tech Corp Abbildung von logischen einheiten in einem speicherbereichsnetzwerk
US6446141B1 (en) 1999-03-25 2002-09-03 Dell Products, L.P. Storage server system including ranking of data source
US6389432B1 (en) * 1999-04-05 2002-05-14 Auspex Systems, Inc. Intelligent virtual volume access
US6467007B1 (en) * 1999-05-19 2002-10-15 International Business Machines Corporation Processor reset generated via memory access interrupt
JP3765198B2 (ja) * 1999-06-08 2006-04-12 株式会社日立製作所 計算機システム
US6463454B1 (en) * 1999-06-17 2002-10-08 International Business Machines Corporation System and method for integrated load distribution and resource management on internet environment
US6466980B1 (en) 1999-06-17 2002-10-15 International Business Machines Corporation System and method for capacity shaping in an internet environment
US6779016B1 (en) * 1999-08-23 2004-08-17 Terraspring, Inc. Extensible computing system
US6597956B1 (en) * 1999-08-23 2003-07-22 Terraspring, Inc. Method and apparatus for controlling an extensible computing system
US7093005B2 (en) 2000-02-11 2006-08-15 Terraspring, Inc. Graphical editor for defining and creating a computer system

Also Published As

Publication number Publication date
TW548554B (en) 2003-08-21
US7503045B1 (en) 2009-03-10
CN1321373C (zh) 2007-06-13
DE60010277D1 (de) 2004-06-03
WO2001014987A3 (en) 2001-08-30
CN1373871A (zh) 2002-10-09
US6779016B1 (en) 2004-08-17
EP1206738B1 (de) 2004-04-28
KR20020038738A (ko) 2002-05-23
KR100626462B1 (ko) 2006-09-20
ATE265707T1 (de) 2004-05-15
WO2001014987A2 (en) 2001-03-01
AU6918200A (en) 2001-03-19
IL147903A0 (en) 2002-08-14
IL147903A (en) 2006-12-10
AU769928B2 (en) 2004-02-12
JP2003507817A (ja) 2003-02-25
EP1206738A2 (de) 2002-05-22
CA2376333A1 (en) 2001-03-01
JP3948957B2 (ja) 2007-07-25
US7370013B1 (en) 2008-05-06

Similar Documents

Publication Publication Date Title
DE60010277T2 (de) Erweiterbares rechnersystem
DE112016003726B4 (de) Dynamisch definierte virtuelle private Netzwerktunnel in hybriden Cloud-Umgebungen
DE60006499T2 (de) System und verfahren zur gruppenzugehörigkeitsbestimmung in einem heterogenen verteilten rechnersystem
DE112018004349T5 (de) Dynamische auswahl von bereitstellungskonfigurationen von softwareanwendungen
DE60221019T2 (de) Verwaltung von serverbetriebsmitteln für hostanwendungen
DE69833914T2 (de) Architektur eines Multiprozessorrechners mit mehreren Betriebssysteminstanzen und softwaregesteuerter Betriebsmittelzuteilung
DE112011103522T5 (de) Erstellung eines Multidimensionalen Modells von Software-Angeboten
DE112009000411T5 (de) Verfahren und System zum Implementieren eines virtuellen Speicherpools in einer virtuellen Umgebung
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112022003720T5 (de) Verwenden eines fernen pods in kubernetes
DE102020104871A1 (de) High performance compute-infrastruktur als service
DE102021125182A1 (de) Gemeinsam genutzte unternehmenscloud
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE102021125019B4 (de) Orchestrierung von einheiten für das internet der dinge
DE112021005219T5 (de) Automatischer Vorhersageskalierer für eine hierarchische Datenverarbeitungsinfrastruktur
DE112018002178T5 (de) Dateiübertragung in gemeinsam genutztem arbeitsspeicher
DE102021129513A1 (de) Endpunktbenachrichtigung über eine überlastung eines speichernetzwerks
DE102021129637A1 (de) Verteiltes stream-computing mit mehreren umgebungen
DE112021005394T5 (de) Tag-gesteuerte planung von datenverarbeitungsressourcen zur funktionsausführung
DE112020005674B4 (de) Datenaustausch mit einem anwendungsablauf in einem integrationssystem
DE112021001425T5 (de) Sichere datenreplikation in verteilten datenspeicherumgebungen
DE102021122507A1 (de) Bereitstellen von isolierten containern zur verarbeitung von benutzeranforderungen
DE112020005930T5 (de) Initialisierung von arbeitsspeicher-netzwerken
DE10138658B4 (de) Datenverarbeitungsvorrichtung und Kopplungsmittel für eine Datenverarbeitungsvorrichtung
DE112021004278T5 (de) Effizientes laden von massendaten mehrerer zeilen oder partitionen für eine einzige zieltabelle

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee