DE112020005819T5 - Virtuelle einschübe in einem server - Google Patents

Virtuelle einschübe in einem server Download PDF

Info

Publication number
DE112020005819T5
DE112020005819T5 DE112020005819.0T DE112020005819T DE112020005819T5 DE 112020005819 T5 DE112020005819 T5 DE 112020005819T5 DE 112020005819 T DE112020005819 T DE 112020005819T DE 112020005819 T5 DE112020005819 T5 DE 112020005819T5
Authority
DE
Germany
Prior art keywords
virtual
physical
virtual slot
slot
processing unit
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.)
Pending
Application number
DE112020005819.0T
Other languages
English (en)
Inventor
Burkhard Steinmacher-Burow
Harald Huels
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112020005819T5 publication Critical patent/DE112020005819T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Ein durch einen Computer realisiertes Verfahren umfasst Empfangen einer Indexnummer für jede aus einer Mehrzahl von physischen Verarbeitungseinheiten, wobei jede der Mehrzahl von physischen Verarbeitungseinheiten in einer Leaf-Spine-Topologie zum Datenaustausch mit jedem aus einer Mehrzahl von Switch-Chips verbunden ist; Zuweisen mindestens einer der Mehrzahl von physischen Verarbeitungseinheiten zu einem ersten virtuellen Einschub durch Aktualisieren eines Eintrags in einer Tabelle virtueller Einschübe, welcher eine Zuordnung zwischen der entsprechenden Indexnummer der mindestens einen physischen Verarbeitungseinheit und einem Index des ersten virtuellen Einschubs anzeigt; und Ausführen einer Einschubverwaltungsfunktion auf Grundlage der Tabelle virtueller Einschübe.

Description

  • HINTERGRUND
  • Herkömmliche Großserver werden durch Miteinander-Verkabeln von 2 oder mehr physischen Einschüben montiert oder physisch aufgebaut. Ein physischer Einschub kann 1 oder mehrere Chips von Zentraleinheiten (CPU-Chips) enthalten. Typischerweise ist jeder CPU-Chip mit Speicherchips verbunden und jeder CPU-Chip weist Verbinder, z.B. PCIe-Verbinder, für Erweiterungskarten auf. Außerdem weist jeder CPU-Chip 1 oder mehrere symmetrische Multiprocessing-Verbindungen (SMP-Verbindungen) zu anderen CPU-Chips auf. Innerhalb eines Einschubs kann eine SMP-Verbindung mit Platinenleitungen realisiert werden. Über 2 Einschübe hinweg kann für eine SMP-Verbindung ein Kabel verwendet werden.
  • KURZDARSTELLUNG
  • Erscheinungsformen der Offenbarung können ein durch einen Computer realisiertes Verfahren, ein Computerprogrammprodukt und ein System umfassen. Ein Beispiel für das durch einen Computer realisierte Verfahren umfasst Empfangen einer Indexnummer für jede aus einer Mehrzahl von physischen Verarbeitungseinheiten, wobei jede der Mehrzahl von physischen Verarbeitungseinheiten in einer Leaf-Spine-Topologie zum Datenaustausch mit jedem aus einer Mehrzahl von Switch-Chips verbunden ist; Zuweisen mindestens einer der Mehrzahl von physischen Verarbeitungseinheiten zu einem ersten virtuellen Einschub durch Aktualisieren eines Eintrags in einer Tabelle virtueller Einschübe, welcher eine Zuordnung zwischen der entsprechenden Indexnummer der mindestens einen physischen Verarbeitungseinheit und einem Index des ersten virtuellen Einschubs anzeigt; und Ausführen einer Einschubverwaltungsfunktion auf Grundlage der Tabelle virtueller Einschübe.
  • Figurenliste
  • In dem Verständnis, dass die Zeichnungen lediglich beispielhafte Ausführungsformen darstellen und deshalb nicht als den Umfang beschränkend anzusehen sind, werden die beispielhaften Ausführungsformen mit besonderer Genauigkeit und Detailliertheit unter Verwendung der begleitenden Zeichnungen beschrieben, in welchen:
    • 1 eine Ausführungsform eines beispielhaften Computersystems darstellt, bei welchem virtuelle Einschübe verwendet werden.
    • 2 ist ein allgemeines Blockschaubild einer Ausführungsform einer beispielhaften Datenverarbeitungseinheit.
    • 3 ist eine Darstellung einer Ausführungsform einer beispielhaften Leaf-Spine-Topologie für das Computersystem der 1.
    • 4 ist ein Ablaufplan, welcher eine Ausführungsform eines beispielhaften Verfahrens zur Verwaltung virtueller Einschübe darstellt.
  • Gemäß der üblichen Praxis sind die verschiedenen beschriebenen Merkmale nicht maßstabsgetreu dargestellt, sondern sind so gezeichnet, dass spezielle Merkmale herausgestellt werden, die für die beispielhaften Ausführungsformen relevant sind.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden detaillierten Beschreibung wird auf die begleitenden Zeichnungen Bezug genommen, welche einen Teil davon bilden und welche durch Veranschaulichung spezieller beispielhafter Ausführungsformen dargestellt werden. Es versteht sich jedoch, dass andere Ausführungsformen angewendet werden können und dass logische, mechanische und elektrische Änderungen vorgenommen werden können. Ferner ist das in den Zeichnungsfiguren und in der Beschreibung dargestellte Verfahren nicht so auszulegen, dass es die Reihenfolge beschränkt, in welcher die einzelnen Schritte durchgeführt werden können. Die folgende detaillierte Beschreibung ist deswegen nicht in einem beschränkenden Sinn zu verstehen.
  • In einigen herkömmlichen Systemen wird ein Computersystem unter Verwendung einer Mehrzahl von physischen Einschüben (auch als physische Bücher, Platinen, Inseln bezeichnet) montiert. Jeder physische Einschub enthält eine Mehrzahl von Chips von Computerverarbeitungseinheiten (CPU-Chips). Beispielsweise umfasst in einigen herkömmlichen Systemen jeder physische Einschub zwei Cluster von CPU-Chips mit 3 CPU-Chips in jedem Cluster. In einigen solchen Systemen ist jeder CPU-Chip zum Datenaustausch mit den anderen CPU-Chips in seinem Cluster verbunden, und mit einem Switch-Chip, welcher wiederum zum Datenaustausch mit Switch-Chips in anderen physischen Einschüben verbunden ist. Es versteht sich, dass andere herkömmliche Systeme andere Topologien umfassen können (z.B. mehr oder weniger CPU-Chips in jedem Einschub, andere Verbindungen zwischen Switch-Chips und CPU-Chips usw.). Jedoch wird in solchen herkömmlichen Systemen ungeachtet der speziellen Topologie das Konzept der physischen Einschübe für Verwaltungsfunktionen angewendet, wie es dem Fachmann bekannt ist. Beispielsweise können in logischen Partitionierungen alle oder ein Teil von mehreren Einschüben verwendet werden. In ähnlicher Weise kann eine existierende Partitionierung mit einer laufenden Arbeitslast einen weiteren Einschub aufnehmen. Außerdem wird für das Layout von Adressen im Speicher typischerweise die Topologie der physischen Einschübe genutzt. Insbesondere sind Adressen fortlaufend und über CPU-Chips innerhalb eines Einschubs verschränkt (interleaved). Ferner kann das Konzept der physischen Einschübe angewendet werden, um Zuverlässigkeit & Verfügbarkeit & Gebrauchsfähigkeit (Reliability & Availability & Serviceability, RAS) zu realisieren. Andere Verwaltungsfunktionen können unter Anwendung des Konzepts der physischen Einschübe ebenfalls realisiert werden, z.B., ohne darauf beschränkt zu sein, Software-Lizenzen oder andere Geschäftsaspekte.
  • Die Abhängigkeit von physischen Einschüben bringt jedoch Beschränkungen mit sich, z.B., ohne darauf beschränkt zu sein, auf die Leistung einer gegebenen Arbeitslast für einen Server. Beispielsweise kann es Leistungseinbußen geben, wenn eine Arbeitslast über physische Einschübe hinweg ausgeführt wird. Insbesondere weist ein CPU-Paar, das innerhalb eines physischen Einschubs verbunden ist, typischerweise eine höhere Bandbreite auf als ein CPU-Paar, das über physische Einschübe hinweg verbunden ist. Als ein Ergebnis gibt es typischerweise das Bestreben, eine Arbeitslast in einen einzigen Einschub einzupassen. Ein Großserver entspricht jedoch nicht notwendigerweise einem einzigen physischen Einschub. Somit passt in einen physischen Einschub in einem solchen Server eine kleinere Arbeitslast als in den Server. Außerdem wird für eine gegebene Server-Größe die Anzahl an physischen Einschüben in dem Server durch die physische Montageeinheit bestimmt. Jedoch kann eine gegebene Arbeitslast effizienter mit einer größeren oder kleineren Anzahl an physischen Einschüben ausgeführt werden, als in dem Server vorhanden sind. Ferner ist die Größe der physischen Einschübe festgelegt und wird durch die Montageeinheit bestimmt. Software oder Dienste in anderen Schichten des Lösungsstapels können eine verbesserte Leistungsfähigkeit aufweisen mit kleineren oder größeren Einschubgrößen als der festgelegten Größe der physischen Einschübe, die durch die Montageeinheit bestimmt wird. Mit anderen Worten, es kann sein, dass einige Arbeitslasten mit weniger CPU-Chips und Ressourcen ablaufen können, als in einem physischen Einschub eines Servers enthalten sind, während andere besser mit mehr CPU-Chips und Ressourcen ablaufen würden, als in dem physischen Einschub des Servers enthalten sind. Jedoch ist die Verwendung von weniger als allen der Ressourcen eines physischen Einschubs für eine Arbeitslast nicht effizient und durch ein Verteilen einer Arbeitslast über physische Einschübe werden ebenfalls Ineffizienzen eingeführt, beispielsweise aufgrund möglicher Engpässe an den Switch-Chips, welche die physischen Einschübe zum Datenaustausch miteinander verbinden.
  • Die hierin beschriebenen Ausführungsformen ermöglichen die vorteilhafte Verwendung eines Einschubkonzepts für Verwaltungsfunktionen, während Beschränkungen des physischen Einschubs angegangen werden, indem die Entkopplung des Einschubkonzepts von der physischen Montageeinheit ermöglicht wird. Insbesondere ermöglichen die hierin beschriebenen Ausführungsformen die Verwendung von virtuellen Einschüben. Beispielsweise zeigt 1 eine Ausführungsform eines beispielhaften Computersystems 100, bei welchem virtuelle Einschübe verwendet werden. Insbesondere zeigt 1 ein Beispiel eines Leaf-Spine-Computersystems oder eines Leaf-Spine-Servers. Das System 100 nutzt eine Leaf-Spine-Topologie, bei welcher jeder einer Mehrzahl von CPU-Chips 102 (in diesem Beispiel als CP 0 bis CP 15 bezeichnet) zum Datenaustausch mit jedem einer Mehrzahl von Switch-Chips 104 (in diesem Beispiel als SC 0 bis SC 7 bezeichnet) verbunden ist. Auf diese Weise können zwei oder mehr CPU-Chips 102 zum Datenaustausch miteinander verbunden sein. Jeder CPU-Chip 102 kann in einigen Ausführungsformen ein Single-Chip-Modul (SCM) oder in anderen Ausführungsformen ein Dual-Chip-Modul (DCM) sein.
  • Das Computersystem 100 umfasst ein Computerverwaltungsmodul 108, welches so konfiguriert ist, dass es Verwaltungsfunktionen für das System 100 ausführt, ähnlich wie herkömmliche Computerverwaltungsmodule. Jedoch umfasst das Computerverwaltungsmodul 108 in der beispielhaften Ausführungsform der 1 ein Einschubverwaltungsmodul 106, welches eine Tabelle virtueller Einschübe 110 verwendet, um die dynamische Erzeugung/Verwaltung virtueller Einschübe zu verwalten. Beispielsweise kann das Einschubverwaltungsmodul 106 einen oder mehrere der CPU-Chips 102 in entsprechende virtuelle Einschübe gruppieren. In dem Beispiel, das in 1 dargestellt ist, gruppiert das Einschubverwaltungsmodul 106 eine Teilgruppe der CPU-Chips 102 in 5 virtuelle Einschübe 112-1 ... 112-5 (zusammen als virtuelle Einschübe 112 bezeichnet). Wie in 1 zu sehen, muss nicht jeder der virtuellen Einschübe 112 die gleiche Anzahl an CPU-Chips 102 aufweisen. Insbesondere kann ein virtueller Einschub 112 einen einzigen CPU-Chip 102 aufweisen, wie die virtuellen Einschübe 112-3, 112-4 und 112-5, oder eine Mehrzahl von CPU-Chips 102, wie die virtuellen Einschübe 112-1 und 112-2. In einigen Ausführungsformen können alle der CPU-Chips 102 in einem einzigen virtuellen Einschub 112 enthalten sein. So kann die Anzahl der CPU-Chips 102 in einem virtuellen Einschub sowie die Anzahl der virtuellen Einschübe 112 in verschiedenen Ausführungsformen variieren, zum Beispiel um die Arbeitslasten, die dem Computersystem 100 zugewiesen werden, effizienter zu verwalten.
  • Außerdem können einer logischen Partitionierung (LPAR), z.B. der LPAR 114, ein oder mehrere virtuelle Einschübe 112 zugewiesen werden. So können wie bei herkömmlichen Systemen zu einer LPAR Einschübe hinzugefügt werden. Durch Entkoppeln der virtuellen Einschübe 112 von der physischen Montageeinheit kann jedoch jeder virtuelle Einschub andere Anzahlen an CPU-Chips 102 enthalten, wie oben erörtert. So kann die LPAR 114 zum Beispiel 3 virtuelle Einschübe 112-3 ... 112-5 enthalten, wobei jeder virtuelle Einschub einen einzigen CPU-Chip 102 enthält.
  • Ferner kann durch Ermöglichen virtueller Einschübe, welche von der physischen Montageeinheit entkoppelt sind, in einigen Ausführungsformen ein gegebener virtueller Einschub CPU-Chips 102 enthalten, welche verschiedene Befehlssatzarchitekturen (Instruction Set Architectures, ISA) verwenden. Beispielsweise umfasst in 1 der virtuelle Einschub 112-2 CP 9 und CP 10, welche eine x86-Architektur realisieren, ebenso wie CP 7, CP 4 und CP 14, welche eine z/Architecture verwenden. Somit realisiert in einigen Ausführungsformen jeder CPU-Chip 102 in einem gegebenen virtuellen Einschub die gleiche ISA, während in anderen Ausführungsformen CPU-Chips in einem gegebenen virtuellen Einschub verschiedene ISA realisieren. Auf diese Weise ermöglicht das Computersystem 100 eine größere Flexibilität beim Erfüllen der Anforderungen von Arbeitslasten.
  • Außerdem ermöglicht die Verwendung von virtuellen Einschüben, die von der physischen Montageeinheit entkoppelt sind, eine größere Flexibilität bei der Fehlerbehebung und der Wartung. Wenn beispielsweise ein gegebener CPU-Chip 102 in einem gegebenen Einschub ausfällt, kann dieser CPU-Chip 102 mit einem anderen CPU-Chip 102 ersetzt werden. Beispielsweise kann ein CPU-Chip, der aktuell keinem virtuellen Einschub zugewiesen ist, den ausgefallenen CPU-Chip ersetzen oder ein CPU-Chip in einem anderen virtuellen Einschub kann neu zugewiesen werden, so dass er den ausgefallenen CPU-Chip ersetzt. Außerdem kann ein Ausfall eines CPU-Chips 102, eines SC-Chips 104 oder einer Verbindung zwischen einem CPU-Chip 102 und einem SC-Chip 104 effektiver entschärft werden als mit physischen Einschüben. Insbesondere beeinträchtigt ein solcher Ausfall nur einen CPU-Chip 102 oder SC-Chip 104 statt alle CPU-Chips in einem physischen Einschub. Außerdem kann das Computerverwaltungsmodul 108 zum Durchführen einer Wartung, wobei ein CPU-Chip 102 ausgeschaltet werden muss (z.B. um Hardware zu ersetzen), ausgewählte CPU-Chips 102 mit höherer Detailgenauigkeit ausschalten als in herkömmlichen physischen Einschüben, da nicht notwendigerweise der gesamte physische Einschub 112 ausgeschaltet werden muss (z.B. wenn der virtuelle Einschub 112 eine Mehrzahl von CPU-Chips 102 auf verschiedenen Platinen enthält).
  • Das Gruppieren oder Zuweisen von CPU-Chips 102 zu einem virtuellen Einschub 112 umfasst in einigen Ausführungsformen ein Anlegen von Adressen im Speicher derart, dass innerhalb eines virtuellen Einschubs die Adressen fortlaufend und über die CPU-Chips 102, die dem virtuellen Einschub 112 zugewiesen sind, verschränkt sind. Das heißt, jeder CPU-Chip 102 kann Speicher umfassen und das Einschubverwaltungsmodul 108 kann den Gesamtspeicher als einen einzigen fortlaufenden Adressraum konfigurieren, wobei die Adressen aufeinanderfolgender Speicherblöcke über die CPU-Chips 102 des jeweiligen virtuellen Einschubs 112 verschränkt sind. Somit ist, obwohl sich die CPU-Chips 102 in einem gegebenen virtuellen Einschub 112 möglicherweise nicht auf der gleichen physischen Platine befinden, das Layout der Speicheradressen dennoch fortlaufend und über die CPU-Chips 102 in dem virtuellen Einschub 112 verschränkt.
  • Ferner kann das Computerverwaltungsmodul 108 die CPU-Chips 102 verwalten und die CPU-Chips 102 einem Administrator in Form der virtuellen Einschübe 112 präsentieren. Somit ist das Computerverwaltungsmodul 108 in der Lage, ähnliche Verwaltungsfunktionen mit den virtuellen Einschüben auszuführen, wie herkömmliche Computerverwaltungsmodule physische Einschübe nutzen. Beispielsweise können die virtuellen Einschübe 112 verwendet werden, um RAS zu realisieren, ähnlich der Weise, wie physische Einschübe verwendet werden, um RAS zu realisieren.
  • Das Einschubverwaltungsmodul 106 erzeugt/verwaltet die virtuellen Einschübe 112 unter Verwendung einer oder mehrerer Tabellen virtueller Einschübe 110, wie oben erörtert. Eine beispielhafte Tabelle virtueller Einschübe ist nachstehend als Tabelle 1 dargestellt. Die Tabelle 1 zeigt eine beispielhafte Abbildung von physischen CPUs auf virtuelle Einschübe. Daher kann die Tabelle 1 hierin als eine C2V-Tabelle bezeichnet werden. Insbesondere zeigt die Tabelle 1 die beispielhafte Abbildung für die CPU-Chips 102 der 1. Tabelle 1
    Zeile ist Index physischer CPUs C2V-Tabelle (- = Nicht Konfiguriert)
    VEinschub-Index VCPU-Index
    0 3 0
    1 3 1
    2 - -
    3 3 3
    4 2 3
    5 3 4
    6 3 5
    7 2 0
    8 - -
    9 2 1
    10 2 2
    11 15 0
    12 13 0
    13 10 0
    14 2 4
    15 3 2
  • Die erste Spalte in der Tabelle 1 zeigt einen Index für jeden physischen CPU-Chip 102 an. Es versteht sich, dass in einigen Ausführungsformen die Werte in der ersten Spalte nicht in der Tabelle 1 gespeichert sind. Stattdessen veranschaulicht jeder Wert in der ersten Spalte, dass der Wert „Index physischer CPUs“ als der Zeilensprung in der Tabelle 1 verwendet wird, um direkt auf die VEinschub- und VCPU-Einträge zuzugreifen, die der gegebenen physischen CPU entsprechen. Die zweite Spalte zeigt einen Index virtueller Einschübe an. Insbesondere ist jeder virtuelle Einschub mit einem eindeutigen Index virtueller Einschübe konfiguriert. Beispielsweise ist dem virtuellen Einschub 112-1 in 1 ein Index 3 zugewiesen. Wie in 1 dargestellt, sind die CPU-Chips CP 0, CP 1, CP 15, CP 3, CP 5 und CP 6 dem virtuellen Einschub 112-1 zugewiesen worden. Somit umfasst in der Tabelle 1 die Spalte 2, wo sie einem jeweiligen dieser CPU-Chips entspricht, als Eintrag den Index virtueller Einschübe 3. In ähnlicher Weise ist jedem der CPU-Chips 102, die in dem virtuellen Einschub 112-2 enthalten sind, der Index virtueller Einschübe 2 zugewiesen. Den virtuellen Einschüben 112-3, 112-4 und 112-5 sind die virtuellen Indizes 15, 13 bzw. 10 zugewiesen. Somit umfassen die CPU-Chips 102, die einem jeweiligen der virtuellen Einschübe 112-3, 112-4 und 112-5 zugewiesen sind, den entsprechenden Index virtueller Einschübe in der Spalte 2. Die CPU-Chips CP 2 und CP 8 sind keinem virtuellen Einschub zugewiesen worden. Somit umfasst die Spalte zwei, wo sie jeweils CP 2 und CP 8 entspricht, keinen Eintrag.
  • Außerdem umfasst die Tabelle 1 eine dritte Spalte für einen Index virtueller CPUs. Das heißt, innerhalb eines virtuellen Einschubs ist jedem CPU-Chip 102 ein Index virtueller CPUs zugewiesen. Beispielsweise umfasst der virtuelle Einschub 112-1 sechs CPU-Chips 102. Somit ist jedem der sechs CPU-Chips ein aufeinanderfolgender Index virtueller CPUs zugewiesen. In diesem Beispiel beginnen die aufeinanderfolgenden Indizes virtueller CPUs mit 0 und werden um 1 erhöht, bis dem letzten CPU-Chip in dem virtuellen Einschub ein Index virtueller CPUs zugewiesen ist. Somit ist für den beispielhaften virtuellen Einschub 112-1 CP 0 der Index virtueller CPUs (VCPU-Index) 0 zugewiesen; CP 1 ist der VCPU-Index 1 zugewiesen; CP 15 ist der VCPU-Index 2 zugewiesen; CP 3 ist der VCPU-Index 3 zugewiesen; CP 5 ist der VCPU-Index 4 zugewiesen und CP 6 ist der VCPU 5 zugewiesen. Ähnliche Zuweisungen von VCPU-Indizes werden für die anderen virtuellen Einschübe 112 vorgenommen. Insbesondere ist der VCPU-Index innerhalb eines gegebenen virtuellen Einschubs eindeutig, ist aber nicht insgesamt eindeutig. Das heißt, jeder virtuelle Einschub kann zum Beispiel einen VCPU-Index 0 umfassen, aber es gibt nur einen VCPU-Index 0 für einen gegebenen virtuellen Einschub. Der VCPU-Index hilft dabei, die CPU-Chips 102 innerhalb eines gegebenen virtuellen Einschubs 112 zu organisieren und zu identifizieren.
  • Tabelle 2 ist eine andere beispielhafte Tabelle virtueller Einschübe, welche von dem Einschubverwaltungsmodul 106 verwendet werden kann. Die Tabelle zeigt eine beispielhafte Abbildung von virtuellen Einschüben auf physische CPUs. Daher kann die Tabelle 2 als eine V2C-Tabelle bezeichnet werden. Wie bei der Tabelle 1 zeigt die Tabelle 2 eine beispielhafte Abbildung für die CPU-Chips 102 der 1.
    Figure DE112020005819T5_0001
    Figure DE112020005819T5_0002
  • Die erste Spalte in derTabelle 2 zeigt einen Index virtueller Einschübe an. Wie bei der Tabelle 1 versteht es sich, dass in einigen Ausführungsformen die Werte in der ersten Spalte nicht in der Tabelle 2 gespeichert sind. Stattdessen veranschaulicht jeder Wert in der ersten Spalte, dass der Wert „VEinschub-Index“ als der Zeilensprung in der Tabelle 2 verwendet wird, um direkt auf die Einträge der VCPU-Nummer und des Index physischer CPUs zuzugreifen, die einem gegebenen virtuellen Einschub entsprechen. In einigen Ausführungsformen ist die Anzahl verfügbarer Indizes virtueller Einschübe (VEinschub-Indizes) gleich der Anzahl der CPU-Chips 102. Auf diese Weise ist es möglich, jeden virtuellen Einschub 112 so zu konfigurieren, dass er nur einen einzigen CPU-Chip 102 enthält. Jedoch werden, wie in Tabelle 2 zu sehen, einige der VEinschub-Indizes nicht verwendet, wenn ein oder mehrere virtuelle Einschübe mehr als einen CPU-Chip 102 umfassen. Die zweite Spalte der Tabelle 2 zeigt die Anzahl der CPU-Chips in dem virtuellen Einschub an. Die folgenden Spalten hinter der Spalte 2 zeigen einen VCPU-Index an. Der Eintrag für jede Zeile in diesen folgenden Spalten ist der Index physischer CPUs des entsprechenden CPU-Chips 102. Beispielsweise entspricht, wie oben in Bezug auf Tabelle 1 erörtert, im virtuellen Einschub 3 der VCPU-Index 0 dem Index physischer CPUs 0 (CP 0).
  • Somit ermöglichen die Tabellen 1 und 2 dem Einschubverwaltungsmodul 106, die virtuellen Einschübe 112 zu organisieren, zu erzeugen und zu verwalten. Tatsächlich ist das Einschubverwaltungsmodul 106 durch Anpassen der Einträge in den Tabellen 1 und 2 in der Lage, existierende virtuelle Einschübe zu aktualisieren, einen neuen virtuellen Einschub zu erzeugen oder einen virtuellen Einschub zu entfernen. Es versteht sich, dass die Tabellen 1 und 2 lediglich beispielhaft sind und dass in anderen Ausführungsformen die Tabellen 1 und 2 anders konfiguriert sein können. Ferner ist in einigen Ausführungsformen das Einschubverwaltungsmodul 106 so konfiguriert, dass es sowohl eine C2V-Tabelle als auch eine V2C-Tabelle verwendet. Beispielsweise ist das Einschubverwaltungsmodul 106 durch die Verwendung sowohl einer C2V-Tabelle als auch einer V2C-Tabelle in der Lage, Informationen in verschiedenen Szenarien nachzuschlagen. Wenn beispielsweise ein Index virtueller Einschübe bereitgestellt wird, kann das Einschubverwaltungsmodul 106 unter Verwendung der V2C-Tabelle die Indizes der entsprechenden physischen CPUs identifizieren. In ähnlicher Weise kann das Einschubverwaltungsmodul 106, wenn ein Index physischer CPUs bereitgestellt wird, unter Verwendung der C2V-Tabelle den entsprechenden virtuellen Einschub identifizieren. In anderen Ausführungsformen ist das Einschubverwaltungsmodul 106 jedoch so konfiguriert, dass es die virtuellen Einschübe unter Verwendung nur einer aus einer C2V-Tabelle oder einer V2C-Tabelle verwaltet. Außerdem versteht es sich, dass, obwohl 1 und 2 in Bezug auf 16 physische CPU-Chips und 8 SC-Chips erörtert werden, andere Ausführungsformen andere Anzahlen an physischen CPU-Chips und/oder eine andere Anzahl an SC-Chips umfassen können.
  • Das Computerverwaltungsmodul 108 und das Einschubverwaltungsmodul 106 können in Hardware, Software oder einer Kombination aus Hardware und Software realisiert werden. Beispielsweise können in einigen Ausführungsformen das Computerverwaltungsmodul 108 und das Einschubverwaltungsmodul 106 durch Software realisiert werden, welche auf einem oder mehreren der CPU-Chips 102 abläuft. In anderen Ausführungsformen können das Computerverwaltungsmodul 108 und das Einschubverwaltungsmodul 106 als Software oder Firmware realisiert werden, welche auf einer separaten Verarbeitungseinheit abläuft. Beispielsweise werden das Computerverwaltungsmodul 108 und das Einschubverwaltungsmodul 106 in einigen Ausführungsformen als Firmware unter Verwendung einer Grundplatinen-Verwaltungssteuerung (Baseboard Management Controller, BMC) eines Teilsystems einer intelligenten Plattformverwaltungsschnittstelle (Intelligent-Plattform-Management-Interface-Teilsystems, IPMI-Teilsystems) realisiert. Eine beispielhafte Datenverarbeitungseinheit, welche so konfiguriert ist, dass sie das Computerverwaltungsmodul 108 und das Einschubverwaltungsmodul 106 realisiert, wird nachstehend in Bezug auf 2 beschrieben.
  • 2 ist ein allgemeines Blockschaubild einer Ausführungsform einer beispielhaften Datenverarbeitungseinheit 200. In dem Beispiel, das in 2 dargestellt ist, umfasst die Datenverarbeitungseinheit 200 einen Speicher 225, eine Speicherung 230, eine Verbindung (z.B. einen BUS) 220, einen oder mehrere Prozessoren (hierin auch als CPU 205 bezeichnet) und eine Netzwerkschnittstelle 215. Es versteht sich, dass die Datenverarbeitungseinheit 200 lediglich beispielhaft ist und dass die Datenverarbeitungseinheit 200 in anderen Ausführungsformen anders realisiert werden kann. Beispielsweise können in anderen Ausführungsformen einige der Komponenten, die in 2 dargestellt sind, weggelassen werden und/oder andere Komponenten können integriert werden.
  • Jede CPU 205 ruft Programmierungsanweisungen ab, die im Speicher 225 und/oder der Speicherung 230 gespeichert sind, und führt diese aus. Die Verbindung 220 wird verwendet, um Daten, z.B. Programmierungsanweisungen, zwischen der CPU 205, der Speicherung 230, der Netzwerkschnittstelle 215 und dem Speicher 225 zu verschieben. Die Verbindung 220 kann unter Verwendung eines oder mehrerer Busse realisiert werden. Die CPUs 205 können in verschiedenen Ausführungsformen eine einzige CPU, mehrere CPUs oder eine einzige CPU mit mehreren Verarbeitungskernen sein. In einigen Ausführungsformen kann ein Prozessor 205 ein digitaler Signalprozessor (DSP) sein. Der Speicher 225 soll allgemein für einen Direktzugriffsspeicher (z.B. einen statischen Direktzugriffsspeicher (SRAM), einen dynamischen Direktzugriffsspeicher (DRAM) oder einen Flash) stehen. Die Speicherung 230 soll allgemein für einen nicht-flüchtigen Speicher stehen, z.B. ein Festplattenlaufwerk, eine Solid-State-Einheit (Solid State Device, SSD), austauschbare Speicherkarten, eine optische Speicherung oder Flash-Speicher-Einheiten. In einer alternativen Ausführungsform kann die Speicherung 230 durch Storage-Area-Network-Einheiten (SAN-Einheiten), die Cloud oder andere Einheiten ersetzt werden, die über ein Datenaustausch-Netzwerk, das mit der Netzwerkschnittstelle 215 verbunden ist, mit der Datenverarbeitungseinheit 200 verbunden sind.
  • In einigen Ausführungsformen speichert der Speicher 225 Anweisungen 210 und die Speicherung 230 speichert die C2V-Tabelle 209 und die V2C-Tabelle 211. Die C2V-Tabelle 209 und die V2C-Tabelle 211 können ähnlich wie die oben beschriebenen Tabellen 1 und 2 realisiert werden. In anderen Ausführungsformen sind die Anweisungen 210, die C2V-Tabelle 209 und die V2C-Tabelle 211 teilweise im Speicher 225 und teilweise in der Speicherung 230 gespeichert oder sie sind vollständig im Speicher 225 oder vollständig in der Speicherung 230 gespeichert oder es wird über ein Netzwerk über die Netzwerkschnittstelle 215 auf sie zugegriffen.
  • Wenn sie ausgeführt werden, bewirken die Anweisungen 210, dass die CPU 205 virtuelle Einschübe verwaltet, wie oben beschrieben. Insbesondere bewirken die Anweisungen 210, dass die CPU 205 das oben beschriebene Computerverwaltungsmodul 108 und das oben beschriebene Einschubverwaltungsmodul 106 realisiert. Weitere Einzelheiten hinsichtlich des Betriebs der Datenverarbeitungseinheit 200 werden ebenfalls nachstehend in Bezug auf das Verfahren 400 beschrieben.
  • Ferner umfassen in einigen Ausführungsformen, wie oben erörtert, eine oder mehrere der Komponenten und Daten, die in 2 dargestellt sind, Anweisungen oder Befehle, welche auf dem Prozessor 205 ausgeführt werden, oder Anweisungen oder Befehle, welche durch Anweisungen oder Befehle interpretiert werden, die auf dem Prozessor 205 ausgeführt werden, um die Funktionen auszuführen, wie hierin beschrieben. In anderen Ausführungsformen werden eine oder mehrere der in 2 dargestellten Komponenten anstelle eines Systems auf Prozessorbasis oder zusätzlich dazu über Halbleitereinheiten, Chips, logische Gates, Schaltungen, Schaltungskarten und/oder andere physische Hardware-Einheiten in Hardware realisiert.
  • 3 ist eine Darstellung einer Ausführungsform einer beispielhaften Leaf-Spine-Montageeinheit 300 für das Computersystem 100. Die Leaf-Spine-Montageeinheit 300 umfasst eine Mehrzahl von CPU-Platinen 301-1 ... 301-N (zusammen als CPU-Platinen 301 bezeichnet) und eine Mehrzahl von SC-Platinen SC 303-1 ... 303-M (zusammen als SC-Platinen 303 bezeichnet). Obwohl zur Vereinfachung der Darstellung nur 3 CPU-Platinen 301 und 3 SC-Platinen 303 dargestellt sind, versteht es sich, dass eine beliebige geeignete Anzahl an CPU-Platinen 301 und SC-Platinen 303 verwendet werden können. Ferner umfasst die beispielhafte Montageeinheit 300 für das Computersystem 100 8 SC-Platinen 303 und 8 CPU-Platinen 301. Somit umfasst in diesem Beispiel jede SC-Platine 303 einen SC-Chip 304 und jede CPU-Platine 301 umfasst zwei CPU-Chips 302. Es versteht sich jedoch, dass in anderen Ausführungsformen andere Konfigurationen verwendet werden können. Beispielsweise umfasst in einigen Ausführungsformen jede CPU-Platine 301 einen CPU-Chip 302. In solchen Beispielen verwenden 16 CPU-Chips 16 CPU-Platinen 301. Außerdem kann in einigen Ausführungsformen jede SC-Platine 303 mehr als einen SC-Chip umfassen. Beispielsweise umfasst in einigen solchen Ausführungsformen jede SC-Platine 303 2 SC-Chips. In solchen Ausführungsformen könnten für das beispielhafte Computersystem 100 statt der 8 SC-Platinen in dem Beispiel der 4 4 SC-Platinen 303 verwendet werden.
  • Jede SC-Platine 303 und jede CPU-Platine 301 in dem Beispiel der 4 umfasst außerdem 8 orthogonale Direktverbinder 307. Es versteht sich, dass die Anzahl der orthogonalen Direktverbinder 307, die auf jeder CPU-Platine 301 enthalten sind, mindestens gleich der Anzahl der SC-Platinen 303 in der Montageeinheit 300 ist. In ähnlicher Weise ist die Anzahl der orthogonalen Direktverbinder 307, die auf jeder SC-Platine 303 montiert sind, mindestens gleich der Anzahl der CPU-Platinen 301 in der Montageeinheit 300. Die orthogonalen Direktverbinder 307 ermöglichen, dass die SC-Platinen 303 und die CPU-Platinen 301 derart in einer orthogonal-direkten Topologie verbunden werden, dass jeder CPU-Chip 302 zum Datenaustausch mit jedem SC-Chip 304 verbunden ist.
  • Es versteht sich, dass die Leaf-Spine-Montageeinheit 300 lediglich beispielhaft ist und dass in anderen Ausführungsformen andere Konfigurationen verwendet werden können. Beispielsweise versteht es sich, dass jede CPU-Platine 301 Komponenten umfassen kann, die ähnliche sind wie bei herkömmlichen CPU-Platinen (z.B. Speicherchips, SMP-Verbindungen usw.). In einigen Ausführungsformen können auf den CPU-Platinen 301 und/oder den SC-Platinen 303 andere Komponenten enthalten sein. Beispielsweise umfasst in dieser Ausführungsform jede CPU-Platine 301 Speicherchips 321. In anderen Ausführungsformen kann jedoch zusätzlich zu den Speicherchips 321 auf den CPU-Platinen 301 oder anstelle dieser jede SC-Platine einen Speicherchip umfassen. In einigen solchen Ausführungsformen kann zumindest ein Teil des Speichers auf einer oder mehreren SC-Platinen 301 einem virtuellen Einschub zugewiesen sein. In einigen Ausführungsformen kann jeder virtuelle Einschub, der durch das Einschubverwaltungsmodul 106 konfiguriert wird, eine oder mehrere CPU-Platinen 301 umfassen. In anderen Ausführungsformen, bei denen auf jeder CPU-Platine 301 mehrere CPU-Chips 302 enthalten sind, kann jeder virtuelle Einschub einen oder mehrere CPU-Chips 301 umfassen. Somit kann in solchen Ausführungsformen jeder CPU-Chip auf einer CPU-Platine 301 einem anderen virtuellen Einschub zugewiesen sein.
  • 4 ist ein Ablaufplan, welcher eine Ausführungsform eines beispielhaften Verfahrens 400 zum Verwalten virtueller Einschübe zeigt. Das Verfahren 400 kann mit dem Einschubverwaltungsmodul 106 realisiert werden. Beispielsweise kann das Verfahren 400 in einigen Ausführungsformen durch Ausführen von Anweisungen 210 auf der CPU 205 in der obigen 2 realisiert werden. Es versteht sich, dass die Reihenfolge der Handlungen in dem beispielhaften Verfahren 400 lediglich Erläuterungszwecken dient und dass das Verfahren in anderen Ausführungsformen in einer anderen Reihenfolge ausgeführt werden kann. Gleichermaßen versteht es sich, dass in anderen Ausführungsformen einige Handlungen weggelassen werden können oder zusätzliche Handlungen integriert werden können.
  • Im Block 402 wird für jede aus einer Mehrzahl physischer Verarbeitungseinheiten eine Indexnummer empfangen. Jede der Mehrzahl physischer Verarbeitungseinheiten ist zum Datenaustausch in einer Leaf-Spine-Topologie mit jedem aus einer Mehrzahl von Switch-Chips verbunden, wie oben erörtert. Die Indexnummer kann über Techniken, die dem Fachmann bekannt sind, empfangen oder erhalten werden.
  • Im Block 404 wird mindestens eine der Mehrzahl physischer Verarbeitungseinheiten einem ersten virtuellen Einzug zugewiesen, indem ein Eintrag in einer Tabelle virtueller Einschübe aktualisiert wird, der eine Verbindung zwischen der jeweiligen Indexnummer der mindestens einen physischen Verarbeitungseinheit und einem Index des ersten virtuellen Einschubs anzeigt. Es versteht sich, dass, wie hierin verwendet, das Aktualisieren eines Eintrags sowohl Vornehmen von Änderungen an einem vorhandenen Eintrag in der Tabelle virtueller Einschübe als auch Erzeugen eines neuen Eintrags in der Tabelle virtueller Einschübe umfassen kann. Ferner kann das Aktualisieren eines Eintrags, wo aktuell keine Tabelle virtueller Einschübe vorhanden ist, Erzeugen der Tabelle virtueller Einschübe und Erzeugen eines neuen Eintrags in der Tabelle umfassen. Außerdem können, wie oben erörtert, in einigen Ausführungsformen zwei virtuelle Einschübe verwendet werden. Somit kann das Aktualisieren eines Eintrags in einer Tabelle virtueller Einschübe Aktualisieren eines jeweiligen Eintrags in jeder der zwei Tabellen virtueller Einschübe umfassen.
  • Im Block 406 wird auf Grundlage der Tabelle virtueller Einträge eine Einschubverwaltungsfunktion ausgeführt. Das heißt, wie oben erörtert, eine oder beide aus einer C2V-Tabelle und einer V2C-Tabelle können verwendet werden, um die Ausführung der Einschubverwaltungsfunktion zu verwalten. Beispielsweise kann bei gegebenem Index einer physischen CPU die C2V-Tabelle verwendet werden, um den Index des entsprechenden virtuellen Einschubs zu identifizieren. In ähnlicher Weise kann bei gegebenem Index eines virtuellen Einschubs die V2C-Tabelle verwendet werden, um die Indizes der physischen CPUs des virtuellen Einschubs zu identifizieren. Außerdem kann bei gegebenen Indizes der physischen CPUs des virtuellen Einschubs die gewünschte Einschubverwaltungsfunktion an den oder unter Verwendung der physischen CPUs des virtuellen Einschubs ausgeführt werden.
  • Nachstehend werden einige beispielhafte Einschubverwaltungsfunktionen beschrieben. Es versteht sich jedoch, dass die nachstehend beschriebenen Einschubverwaltungsfunktionen lediglich beispielhaft sind und dass anstelle der hierin erörterten Beispiele oder zusätzlich dazu andere Einschubverwaltungsfunktionen ausgeführt werden können.
  • Wie oben erörtert, ermöglicht die Zuweisung physischer Verarbeitungseinheiten zu virtuellen Einschüben unter Verwendung der Tabellen virtueller Einschübe Flexibilität bei der Verwaltung virtueller Einschübe. Beispielsweise kann in einigen Ausführungsformen auf Grundlage von Erfordernissen einer auszuführenden Arbeitslast eine Teilgruppe der physischen Verarbeitungseinheiten zur Integration in einen virtuellen Einschub ausgewählt werden. So kann die Arbeitslast durch die Verarbeitungseinheiten des virtuellen Einschubs effizienter ausgeführt werden, da die Anzahl der Verarbeitungseinheiten, die in dem virtuellen Einschub enthalten sind, auf Grundlage der speziellen Erfordernisse der Arbeitslast ausgewählt wird. Die Zuweisung von Verarbeitungseinheiten zu virtuellen Einschüben kann automatisch durch das Einschubverwaltungsmodul oder in Reaktion auf eine Benutzereingabe vorgenommen werden, die über eine Benutzereingabeeinheit empfangen wird.
  • Außerdem können, wie oben erörtert, unterschiedliche virtuelle Einschübe unterschiedliche Anzahlen an Verarbeitungseinheiten aufweisen. Beispielsweise umfasst in einigen Ausführungsformen ein erster virtueller Einschub eine erste Teilgruppe der physischen Verarbeitungseinheiten und einem zweiten virtuellen Einschub wird eine zweite Teilgruppe der physischen Verarbeitungseinheiten zugewiesen, wobei die Anzahl der Verarbeitungseinheiten in der zweiten Teilgruppe nicht gleich der Anzahl der Verarbeitungseinheiten in der ersten Teilgruppe ist. Außerdem kann, wie oben erörtert, in einigen Ausführungsformen ein virtueller Einschub eine einzige Verarbeitungseinheit umfassen. Ferner kann aus einer Mehrzahl von virtuellen Einschüben eine logische Partitionierung erzeugt werden, wobei jeder der virtuellen Einschübe mindestens eine physische Verarbeitungseinheit umfasst. So kann die Tabelle virtueller Einschübe verwendet werden, um das Computersystem zu verwalten (z.B. kann auf Grundlage der Zuweisungen in der Tabelle virtueller Einschübe ein virtueller Einschub ausgeschaltet, eingeschaltet oder neu gebootet werden). Außerdem kann die Tabelle virtueller Einschübe verwendet werden, um Arbeitslasten eines Computersystems zu verwalten. Beispielsweise kann auf Grundlage der Einträge in der Tabelle virtueller Einschübe ein virtueller Einschub einer LPAR hinzugefügt oder daraus entfernt werden, wo die Arbeitslast abläuft, und/oder eine Arbeitslast kann von den CPUs, die mit einem ersten virtuellen Einschub verbunden sind, zu den CPUs verschoben werden, die mit einem zweiten virtuellen Einschub verbunden sind.
  • Außerdem kann unter Verwendung der Tabelle virtueller Einschübe eine Verarbeitungseinheit, die einem virtuellen Einschub zugewiesen ist, mit einer anderen Verarbeitungseinheit ersetzt werden, indem die Tabelle virtueller Einschübe so aktualisiert wird, dass die Indexnummer der anderen Verarbeitungseinheit mit dem Index des virtuellen Einschubs verbunden wird und die Verbindung zwischen dem Index des virtuellen Einschubs und dem Index der ursprünglichen Verarbeitungseinheit, wie oben erörtert, entfernt wird. Ferner kann, wie oben erörtert, ein virtueller Einschub physische Verarbeitungseinheiten auf verschiedenen CPU-Platinen umfassen. Beispielsweise kann durch Aktualisieren der Tabelle virtueller Einschübe eine erste physische Verarbeitungseinheit auf einer ersten Platine demselben virtuellen Einschub zugewiesen werden wie eine zweite physische Verarbeitungseinheit auf einer zweiten Platine.
  • Somit umfasst eine beispielhafte Einschubverwaltungsfunktion, ermöglicht unter Verwendung der Tabelle virtueller Einschübe, Bereitstellen der Fähigkeit zum gleichzeitigen Erhöhen der Kapazität des Systems. Beispielsweise kann die Kapazität erhöht werden durch gleichzeitiges Aktivieren mehrerer CPUs auf einem gegebenen virtuellen Einschub oder durch gleichzeitiges Hinzufügen eines virtuellen Einschubs zu einer LPAR, um mehr CPUs, mehr Speicher und/oder mehr Erweiterungseinheiten zu aktivieren. Die zusätzlichen CPUs können durch geeignete Modifikation der Tabelle virtueller Einschübe, wie hierin beschrieben, auf einem gegebenen virtuellen Einschub aktiviert werden oder gleichzeitig zu einer LPAR hinzugefügt werden.
  • Eine andere beispielhafte Einschubverwaltungsfunktion, die unter Verwendung der Tabelle virtueller Einschübe verwaltet wird, umfasst die begleitende Reparatur von Einschüben. Einige Systeme benötigen zum Beispiel ein Minimum an physischen Einschüben (z.B. 2 physische Einschübe) zur begleitenden Reparatur von Einschüben. Durch die Verwendung der Tabelle virtueller Einschübe können kleinere virtuelle Einschübe konfiguriert werden, welche es einfacher machen, die Systemanforderungen eines Minimums von 2 Einschüben zur Durchführung einer begleitenden Reparatur zu erfüllen.
  • Auch die Funktion des Entfernens eines Einschubs zum Aufwerten oder Reparieren kann durch die Tabelle virtueller Einschübe verwaltet werden, wie hierin beschrieben. Beispielsweise können durch die Verwendung der Tabelle virtueller Einschübe die virtuellen Einschübe mit größerer Detailgenauigkeit konfiguriert werden als physische Einschübe, wie hierin erörtert. Somit können durch geeignete Modifikationen an der Tabelle virtueller Einschübe ausreichende Ressourcen verfügbar gemacht werden, um Ressourcen auszugleichen, die nicht mehr verfügbar sind, wenn die physischen CPUs, die mit einem gegebenen virtuellen Einschub verbunden sind, zur Aufwertung oder Reparatur entfernt werden. Somit ermöglicht die verbesserte Einschubverfügbarkeit, dass die CPUs, die mit einem einzelnen virtuellen Einschub verbunden sind, für eine Aufwertung oder Reparatur entfernt und begleitend neu installiert werden.
  • Eine weitere beispielhafte Einschubverwaltungsfunktion, die auf Grundlage der Tabelle virtueller Einschübe ausgeführt wird, umfasst das Verhindern des Verlusts einer Verbindungsmöglichkeit zu Eingabe/Ausgabe (I/O-Einheiten), wenn physische CPUs entfernt werden, die mit einem virtuellen Einschub verbunden sind. Das heißt, das Entfernen der CPUs bedeutet, dass die I/O-Einheiten, die mit den physischen CPUs verbunden sind, verloren sind. Eine I/O-Einheit kann jedoch eine I/O-Verbindung zu mehr als einer CPU aufweisen. Somit kann es für einen gegebenen virtuellen Einschub, der mehrere I/O-Einheiten umfasst, wobei jede I/O-Einheit mit mehr als einer CPU verbunden ist, verschiedene Teilgruppen von CPUs geben, welche insgesamt mit den I/O-Einheiten verbinden. Die Tabelle virtueller Einschübe kann modifiziert werden, um eine Teilgruppe auszuwählen, welche Kundenanforderungen erfüllt (z.B. Dienstgütevereinbarungen erfüllt, spezielle Aufgaben ausführt usw.). Beispielsweise kann durch die Verwendung der Tabelle virtueller Einschübe die Anzahl an CPUs, die entfernt werden, auf ein Mindestmaß begrenzt werden. Physische Einschübe bieten nicht die gleiche Flexibilität zum Verbinden mit I/O-Einheiten wie die Verwendung virtueller Einschübe, die durch die Tabellen virtueller Einschübe verwaltet werden.
  • Somit ermöglichen die hierin beschriebenen Ausführungsformen, wie oben erörtert, die Verwendung von virtuellen Einschüben für verschiedene Verwaltungsfunktionen, während die Zuweisung von Verarbeitungseinheiten zu virtuellen Einschüben von der physischen Montageeinheit der virtuellen Einschübe entkoppelt wird.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jedem möglichen Integrationsniveau technischer Details handeln. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder -medien) mit computerlesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem computerlesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem computerlesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste speziellerer Beispiele des computerlesbaren Speichermediums gehören die Folgenden: eine auswechselbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein auswechselbarer Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine DVD (Digital Versatile Disk), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein computerlesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, computerlesbare Programmanweisungen können von einem computerlesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server umfassen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt computerlesbare Programmanweisungen aus dem Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung in einem computerlesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei computerlesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, Befehlssatzarchitektur-Anweisungen (Instruction-Set-Architecture, ISA), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurorientierte Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gate-Arrays (Field Programmable Gate Arrays, FPGA) oder programmierbare Logik-Arrays (Programmable Logic Arrays, PLA), die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels computerlesbarer Programmanweisungen ausgeführt werden können.
  • Diese computerlesbaren Programmanweisungen können einem Prozessor eines Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Handlungen erzeugen. Diese computerlesbaren Programmanweisungen können auch auf einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das computerlesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt umfasst, darunter Anweisungen, welche Aspekte der in dem Block oder den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Handlung umsetzen.
  • Die computerlesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Handlungen umsetzen.
  • Die Ablaufpläne und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) umfassen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren dargestellt stattfinden. Zwei nacheinander dargestellte Blöcke können zum Beispiel in Wirklichkeit in einem Schritt vollendet werden, gleichzeitig ausgeführt werden, im Wesentlichen gleichzeitig ausgeführt werden, teilweise oder vollständig zeitlich überlappend ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Obwohl hierin spezielle Ausführungsformen veranschaulicht und beschrieben worden sind, erkennt der Fachmann, dass die speziellen dargestellten Ausführungsformen durch jede Einrichtung ersetzt werden können, für welche bestimmt wird, dass sie denselben Zweck erfüllt. Somit wird die Absicht offenkundig, dass die vorliegende Erfindung lediglich durch die Ansprüche und deren Äquivalente beschränkt sein soll.

Claims (20)

  1. Durch einen Computer realisiertes Verfahren, aufweisend: Empfangen einer Indexnummer für jede aus einer Mehrzahl von physischen Verarbeitungseinheiten, wobei jede der Mehrzahl von physischen Verarbeitungseinheiten in einer Leaf-Spine-Topologie zum Datenaustausch mit jedem aus einer Mehrzahl von Switch-Chips verbunden ist; Zuweisen mindestens einer der Mehrzahl von physischen Verarbeitungseinheiten zu einem ersten virtuellen Einschub durch Aktualisieren eines Eintrags in einer Tabelle virtueller Einschübe, welcher eine Zuordnung zwischen der entsprechenden Indexnummer der mindestens einen physischen Verarbeitungseinheit und einem Index des ersten virtuellen Einschubs anzeigt; und Ausführen einer Einschubverwaltungsfunktion auf Grundlage der Tabelle virtueller Einschübe.
  2. Durch einen Computer realisiertes Verfahren nach Anspruch 1, wobei die Tabelle virtueller Einschübe mindestens eine aus einer V2C-Tabelle, welche Indizes virtueller Einschübe auf Indizes physischer Verarbeitungseinheiten abbildet, oder einer C2V-Tabelle aufweist, welche Indizes physischer Verarbeitungseinheiten auf Indizes virtueller Einschübe abbildet.
  3. Durch einen Computer realisiertes Verfahren nach einem der vorhergehenden Ansprüche, ferner aufweisend: Auswählen einer Teilgruppe der physischen Verarbeitungseinheiten zur Integration in einen zweiten virtuellen Einschub auf Grundlage von Erfordernissen einer auszuführenden Arbeitslast; Zuweisen der ausgewählten Teilgruppe der physischen Verarbeitungseinheiten zu dem zweiten virtuellen Einschub durch Aktualisieren der Tabelle virtueller Einschübe; und Ausführen der Arbeitslast unter Verwendung der Teilgruppe von physischen Verarbeitungseinheiten, die dem zweiten virtuellen Einschub zugewiesen sind.
  4. Durch einen Computer realisiertes Verfahren nach einem der vorhergehenden Ansprüche, ferner aufweisend: Erzeugen einer logischen Partitionierung, welche eine Mehrzahl von virtuellen Einschüben aufweist, wobei jedem der Mehrzahl von virtuellen Einschüben in der Tabelle virtueller Einschübe mindestens eine physische Verarbeitungseinheit der Mehrzahl von physischen Verarbeitungseinheiten zugewiesen wird.
  5. Durch einen Computer realisiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei der erste virtuelle Einschub eine erste Teilgruppe der physischen Verarbeitungseinheiten umfasst, wobei das Verfahren ferner aufweist: Zuweisen einer zweiten Teilgruppe der Mehrzahl von physischen Verarbeitungseinheiten zu einem zweiten physischen Einschub durch Aktualisieren der Tabelle virtueller Einschübe, wobei die Anzahl von physischen Verarbeitungseinheiten in der zweiten Teilgruppe nicht gleich der Anzahl von physischen Verarbeitungseinheiten in der ersten Teilgruppe ist.
  6. Durch einen Computer realisiertes Verfahren nach einem der vorhergehenden Ansprüche, ferner aufweisend: Ersetzen der mindestens einen physischen Verarbeitungseinheit, die dem ersten virtuellen Einschub zugewiesen ist, mit einer zweiten physischen Verarbeitungseinheit durch Aktualisieren der Tabelle virtueller Einschübe, um den Index virtueller Einschübe des ersten virtuellen Einschubs mit einem Index der zweiten physischen Verarbeitungseinheit zu verbinden und um die Verbindung des Index virtueller Einschübe des ersten virtuellen Einschubs mit dem Index der mindestens einen physischen Verarbeitungseinheit zu entfernen.
  7. Durch einen Computer realisiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei das Zuweisen der mindestens einen physischen Verarbeitungseinheit zu dem ersten virtuellen Einschub aufweist: Zuweisen einer ersten physischen Verarbeitungseinheit auf einer ersten Platine zu dem ersten virtuellen Einschub durch Aktualisieren der Tabelle virtueller Einschübe; und Zuweisen einer zweiten physischen Verarbeitungseinheit auf einer zweiten Platine zu dem ersten virtuellen Einschub durch Aktualisieren der Tabelle virtueller Einschübe.
  8. Durch einen Computer realisiertes Verfahren nach einem der vorhergehenden Ansprüche, ferner aufweisend: Anlegen von Speicheradressen für den ersten virtuellen Einschub derart, dass innerhalb des ersten virtuellen Einschubs die Speicheradressen fortlaufend und über die mindestens eine physische Verarbeitungseinheit verschränkt sind, die dem ersten virtuellen Einschub zugewiesen ist.
  9. Computersystem, aufweisend: eine Mehrzahl von Zentraleinheits-Platinen (CPU-Platinen), wobei jede CPU-Platine einen oder mehrere physische CPU-Chips umfasst, die jeweils eine entsprechende Indexnummer und eine erste Mehrzahl von orthogonalen Direktverbindern aufweisen; eine Mehrzahl von Switch-Chip-Platinen (SC-Platinen), wobei jede SC-Platine mindestens einen Switch-Chip und eine zweite Mehrzahl von orthogonalen Direktverbindern aufweist, wobei jeder der orthogonalen Direktverbinder in der zweiten Mehrzahl von orthogonalen Direktverbindern dafür konfiguriert ist, mit einem entsprechenden der orthogonalen Direktverbinder in der ersten Mehrzahl von orthogonalen Direktverbindern auf jeder der Mehrzahl von CPU-Platinen derart zu verbinden, dass die Mehrzahl von CPU-Platinen und die Mehrzahl von SC-Platinen in einer orthogonal-direkten Topologie verbunden sind; einen Speicher, welcher dafür konfiguriert ist, eine Tabelle virtueller Einschübe zu speichern; und eine Verarbeitungseinheit, welche zum Datenaustausch mit dem Speicher verbunden ist und konfiguriert ist, die Tabelle virtueller Einschübe zu aktualisieren, um eine Verbindung zwischen der entsprechenden Indexnummer mindestens eines physischen CPU-Chips und einem Index eines ersten virtuellen Einschubs anzuzeigen, so dass auf Grundlage der Verbindung in der Tabelle virtueller Einschübe der mindestens eine physische CPU-Chip dem ersten virtuellen Einschub zugewiesen wird; wobei die Verarbeitungseinheit dafür konfiguriert ist, eine Einschubverwaltungsfunktion auf Grundlage der Tabelle virtueller Einschübe auszuführen.
  10. Computersystem nach Anspruch 9, wobei die Verarbeitungseinheit ein CPU-Chip auf einer der Mehrzahl von CPU-Platinen ist.
  11. Computersystem nach einem der Ansprüche 9 bis 10, wobei die Tabelle virtueller Einschübe mindestens eine aus einer V2C-Tabelle, welche Indizes virtueller Einschübe auf Indizes physischer CPU-Chips abbildet, oder einer C2V-Tabelle umfasst, welche Indizes physischer CPU-Chips auf Indizes virtueller Einschübe abbildet.
  12. Computersystem nach einem der Ansprüche 9 bis 11, wobei die Verarbeitungseinheit ferner konfiguriert ist zum: Auswählen einer ersten Mehrzahl von physischen CPU-Chips auf einer oder mehreren CPU-Platinen zur Integration in einen zweiten virtuellen Einschub, wobei die Anzahl von physischen CPU-Chips in der ersten Mehrzahl von physischen CPU-Chips auf Erfordernissen einer auszuführenden Arbeitslast beruht; Zuweisen der ausgewählten ersten Mehrzahl der physischen CPU-Chips zu dem zweiten virtuellen Einschub durch Aktualisieren der Tabelle virtueller Einschübe; und wobei die Arbeitslast unter Verwendung der ersten Mehrzahl von physischen CPU-Chips ausgeführt wird, die dem zweiten virtuellen Einschub zugewiesen sind.
  13. Computersystem nach einem der Ansprüche 9 bis 12, wobei die Verarbeitungseinheit dafür konfiguriert ist, eine logische Partitionierung zu erzeugen, welche eine Mehrzahl von virtuellen Einschüben aufweist, wobei jedem der Mehrzahl von virtuellen Einschüben in der Tabelle virtueller Einschübe mindestens ein physischer CPU-Chip zugewiesen wird.
  14. Computersystem nach einem der Ansprüche 9 bis 13, wobei der erste virtuelle Einschub eine erste Teilgruppe von physischen CPU-Chips aufweist; und wobei die Verarbeitungseinheit dafür konfiguriert ist, durch Aktualisieren der Tabelle virtueller Einschübe, eine zweite Teilgruppe von physischen CPU-Chips zu einem zweiten physischen Einschub zuzuweisen, wobei die Anzahl von physischen CPU-Chips in der zweiten Teilgruppe nicht gleich der Anzahl von physischen CPU-Chips in der ersten Teilgruppe ist.
  15. Computersystem nach einem der Ansprüche 9 bis 14, wobei die Verarbeitungseinheit konfiguriert ist zum: Ersetzen des mindestens einen physischen CPU-Chips, der dem ersten virtuellen Einschub zugewiesen ist, mit einem zweiten physischen CPU-Chip durch Aktualisieren der Tabelle virtueller Einschübe, um den Index virtueller Einschübe des ersten virtuellen Einschubs mit einem Index des zweiten physischen CPU-Chips zu verbinden und um die Verbindung des Index virtueller Einschübe des ersten virtuellen Einschubs mit dem Index des mindestens einen physischen CPU-Chips zu entfernen.
  16. Computersystem nach einem der Ansprüche 9 bis 15, wobei innerhalb des ersten virtuellen Einschubs Speicheradressen fortlaufend und über den mindestens einen physischen CPU-Chip verschränkt sind, der dem ersten virtuellen Einschub zugewiesen ist.
  17. Computerprogrammprodukt, aufweisend ein computerlesbares Speichermedium, auf welchem ein computerlesbares Programm gespeichert ist, wobei das computerlesbare Programm, wenn es von einem Prozessor auf einem ersten Mittel ausgeführt wird, bewirkt, dass der Prozessor: eine Indexnummer für jede aus einer Mehrzahl von physischen Verarbeitungseinheiten empfängt, wobei jede der Mehrzahl von physischen Verarbeitungseinheiten in einer Leaf-Spine-Topologie zum Datenaustausch mit jedem aus einer Mehrzahl von Switch-Chips verbunden ist; durch Aktualisieren eines Eintrags in einer Tabelle virtueller Einschübe, welcher eine Zuordnung zwischen der entsprechenden Indexnummer der mindestens einen physischen Verarbeitungseinheit und einem Index des ersten virtuellen Einschubs anzeigt, mindestens eine der Mehrzahl von physischen Verarbeitungseinheiten zu einem ersten virtuellen Einschub zuweist; und auf Grundlage der Tabelle virtueller Einschübe eine Einschubverwaltungsfunktion ausführt.
  18. Computerprogrammprodukt nach Anspruch 17, wobei der erste virtuelle Einschub eine erste Teilgruppe der physischen Verarbeitungseinheiten aufweist; und wobei das computerlesbare Programm ferner dafür konfiguriert ist, zu bewirken, dass der Prozessor durch Aktualisieren der Tabelle physischer Einschübe eine zweite Teilgruppe der Mehrzahl von physischen Verarbeitungseinheiten einem zweiten virtuellen Einschub zuweist; wobei die Anzahl von physischen Verarbeitungseinheiten in der zweiten Teilgruppe nicht gleich der Anzahl von physischen Verarbeitungseinheiten in der ersten Teilgruppe ist.
  19. Computerprogrammprodukt nach einem der Ansprüche 17 bis 18, wobei das computerlesbare Programm ferner dafür konfiguriert ist, zu bewirken, dass der Prozessor: durch Aktualisieren der Tabelle virtueller Einschübe, um den Index virtueller Einschübe des ersten virtuellen Einschubs mit einem Index der zweiten physischen Verarbeitungseinheit zu verbinden und um die Verbindung des Index virtueller Einschübe des ersten virtuellen Einschubs mit dem Index der mindestens einen physischen Verarbeitungseinheit zu entfernen, die mindestens eine physische Verarbeitungseinheit, die dem ersten virtuellen Einschub zugewiesen ist, mit einer zweiten physischen Verarbeitungseinheit ersetzt.
  20. Computerprogrammprodukt nach einem der Ansprüche 17 bis 19, wobei das computerlesbare Programm ferner dafür konfiguriert ist zu bewirken, dass der Prozessor Speicheradressen für den ersten virtuellen Einschub derart anlegt, dass innerhalb des ersten virtuellen Einschubs die Speicheradressen fortlaufend und über die mindestens eine physische Verarbeitungseinheit verschränkt sind, die dem ersten virtuellen Einschub zugewiesen ist.
DE112020005819.0T 2019-11-25 2020-11-23 Virtuelle einschübe in einem server Pending DE112020005819T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/695,135 2019-11-25
US16/695,135 US11316713B2 (en) 2019-11-25 2019-11-25 Virtual drawers in a server
PCT/IB2020/061023 WO2021105845A1 (en) 2019-11-25 2020-11-23 Virtual drawers in server

Publications (1)

Publication Number Publication Date
DE112020005819T5 true DE112020005819T5 (de) 2022-11-03

Family

ID=75971460

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020005819.0T Pending DE112020005819T5 (de) 2019-11-25 2020-11-23 Virtuelle einschübe in einem server

Country Status (6)

Country Link
US (1) US11316713B2 (de)
JP (1) JP7448653B2 (de)
CN (1) CN114747190B (de)
DE (1) DE112020005819T5 (de)
GB (1) GB2605729A (de)
WO (1) WO2021105845A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11449424B2 (en) 2020-10-26 2022-09-20 International Business Machines Corporation Server recovery from a change in storage control chip
US11782872B2 (en) * 2022-03-07 2023-10-10 International Business Machines Corporation Distribution of over-configured logical processors
US11949583B2 (en) * 2022-04-28 2024-04-02 Hewlett Packard Enterprise Development Lp Enforcing reference operating state compliance for cloud computing-based compute appliances

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5969720A (en) 1997-03-07 1999-10-19 International Business Machines Corporation Data processing system and method for implementing an informative container for a file system
US6961785B1 (en) * 2000-08-03 2005-11-01 International Business Machines Corporation Permanent open firmware PCI host bridge (PHB) unit addressing to support dynamic memory mapping and swapping of I/O drawers
US6874070B2 (en) 2002-02-22 2005-03-29 Hewlett-Packard Development Company, L.P. System and method for memory interleaving using cell map with entry grouping for higher-way interleaving
US7480911B2 (en) 2002-05-09 2009-01-20 International Business Machines Corporation Method and apparatus for dynamically allocating and deallocating processors in a logical partitioned data processing system
US20070061441A1 (en) * 2003-10-08 2007-03-15 Landis John A Para-virtualized computer system with I/0 server partitions that map physical host hardware for access by guest partitions
US8626764B2 (en) 2006-04-13 2014-01-07 International Business Machines Corporation Methods, systems and computer program products for organizing and/or manipulating cohort based information
US8010763B2 (en) * 2007-08-02 2011-08-30 International Business Machines Corporation Hypervisor-enforced isolation of entities within a single logical partition's virtual address space
US8140717B2 (en) * 2008-09-26 2012-03-20 International Business Machines Corporation Controlling access to physical indicators in a logically partitioned computer system
JP5069732B2 (ja) * 2009-10-05 2012-11-07 株式会社日立製作所 計算機装置、計算機システム、アダプタ承継方法
US8665747B2 (en) * 2009-12-03 2014-03-04 Cisco Technology, Inc. Preventing loops on network topologies built with virtual switches and VMS
US9160668B2 (en) * 2010-05-03 2015-10-13 Pluribus Networks Inc. Servers, switches, and systems with switching module implementing a distributed network operating system
US8817621B2 (en) * 2010-07-06 2014-08-26 Nicira, Inc. Network virtualization apparatus
JP5860670B2 (ja) * 2010-11-05 2016-02-16 インテル コーポレイション Dragonflyプロセッサ相互接続ネットワークにおけるテーブル駆動型ルーティング
US9251103B2 (en) * 2012-08-08 2016-02-02 Vmware, Inc. Memory-access-resource management
US9461943B2 (en) * 2012-09-12 2016-10-04 Cisco Technology, Inc. Network assisted virtual machine mobility
US9008095B2 (en) * 2012-10-02 2015-04-14 Cisco Technology, Inc. System and method for hardware-based learning of internet protocol addresses in a network environment
US9356886B2 (en) * 2012-10-05 2016-05-31 Cisco Technology, Inc. Techniques for scalable and foolproof virtual machine move handling with virtual port channels
US9355041B2 (en) * 2013-03-14 2016-05-31 Nvidia Corporation Frame buffer access tracking via a sliding window in a unified virtual memory system
US9282033B2 (en) * 2013-08-06 2016-03-08 Cisco Technology, Inc. Intelligent handling of virtual machine mobility in large data center environments
US9590914B2 (en) * 2013-11-05 2017-03-07 Cisco Technology, Inc. Randomized per-packet port channel load balancing
GB2522650A (en) 2014-01-31 2015-08-05 Ibm Computer system with groups of processor boards
CN109067833B (zh) * 2014-05-22 2021-06-22 华为技术有限公司 一种节点互连装置、资源控制节点和服务器系统
US10250529B2 (en) * 2014-07-21 2019-04-02 Big Switch Networks, Inc. Systems and methods for performing logical network forwarding using a controller
US9647894B2 (en) * 2014-07-30 2017-05-09 International Business Machines Corporation Mapping relationships among virtual elements across a system
US9727464B2 (en) * 2014-11-20 2017-08-08 International Business Machines Corporation Nested cache coherency protocol in a tiered multi-node computer system
US10002014B2 (en) * 2015-07-10 2018-06-19 International Business Machines Corporation Management of a virtual machine in a virtualized computing environment based on a fabric limit
US10348574B2 (en) * 2015-08-17 2019-07-09 Vmware, Inc. Hardware management systems for disaggregated rack architectures in virtual server rack deployments
US10652353B2 (en) * 2015-09-24 2020-05-12 Intel Corporation Technologies for automatic processor core association management and communication using direct data placement in private caches
US9811281B2 (en) 2016-04-07 2017-11-07 International Business Machines Corporation Multi-tenant memory service for memory pool architectures
US10235211B2 (en) 2016-04-22 2019-03-19 Cavium, Llc Method and apparatus for dynamic virtual system on chip
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
WO2018213202A1 (en) * 2017-05-15 2018-11-22 Marks Roger B Flow-zone switching
US10756967B2 (en) 2017-07-20 2020-08-25 Vmware Inc. Methods and apparatus to configure switches of a virtual rack
US10623505B2 (en) * 2017-07-27 2020-04-14 Cisco Technology, Inc. Integrating service appliances without source network address translation in networks with logical overlays
US11146490B2 (en) * 2019-05-07 2021-10-12 Cisco Technology, Inc. Distributed load balancer health management using data center network manager

Also Published As

Publication number Publication date
CN114747190B (zh) 2023-07-11
GB202209271D0 (en) 2022-08-10
JP7448653B2 (ja) 2024-03-12
GB2605729A (en) 2022-10-12
WO2021105845A1 (en) 2021-06-03
US11316713B2 (en) 2022-04-26
JP2023502673A (ja) 2023-01-25
CN114747190A (zh) 2022-07-12
US20210160100A1 (en) 2021-05-27

Similar Documents

Publication Publication Date Title
DE112020005819T5 (de) Virtuelle einschübe in einem server
DE102015102678B4 (de) Systeme und verfahren zur abbild-recovery
DE112017003702T5 (de) Speicherschlitten für ein Datenzentrum
DE102016221811A1 (de) Zuordnung von Ressourcen mit mehrschichtigem Speicher
DE112014003287T5 (de) Dynamische Bildung von symmetrischen Multiprozessordomänen (SMP-Domänen)
EP2880534B1 (de) Hochverfügbares rechnersystem, arbeitsverfahren und dessen verwendung
DE112018003524T5 (de) Dynamische datenverlagerung unter verwendung von speicherbänken auf cloud-grundlage
DE112018006769B4 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE102017113576A1 (de) Auf PCI Express basierender Speichereinsatz mit Zweifachport, der Einzelport-Speichercontroller enthält
DE112009000411T5 (de) Verfahren und System zum Implementieren eines virtuellen Speicherpools in einer virtuellen Umgebung
DE112017001806T5 (de) Ein mechanismus zur entdeckung von pcie-kabeltopologien in einer rack-scale-architekturumgebung
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank
DE112012000693T5 (de) Ausführen einer Vielzahl von Instanzen einer Anwendung
DE112018005135T5 (de) Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage
DE112013006646B4 (de) Computer, System und computerlesbares Ablagemedium zum Identifizieren von Arbeitslast und Dimensionierung von Puffern zum Zweck der Volumenreplikation
DE102014112943B4 (de) Modulares Computersystem und Servermodul
DE112006001345T5 (de) Aufgabenzuweisung für Geräte mit derselben Konnektionsadresse
DE112019000421B4 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE202019005816U1 (de) System zur Aufrechterhaltung der Fehlertoleranz einer Speichervorrichtung in einer zusammensetzbaren Infrastruktur
DE112017000302T5 (de) Hierarchisches autonomes Kapazitätsmanagement
DE112013006634T5 (de) Computersystem und Computersystemsteuerverfahren
DE102018204577A1 (de) Techniken zum Erfüllen von Dienstgüteanforderungen für eine Fabric-Punkt-zu-Punkt-Verbindung
DE112014003699T5 (de) Indexbaumsuchverfahren und Indexbaumsuchcomputer
DE102020132767A1 (de) Verwaltung der Dienstgüte (QoS) eines Speichersystems
EP1711892A1 (de) Verfahren zum betreiben einer anordnung mehrerer rechner bei einem rechnerausfall

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence