DE112022003818T5 - Verzögertes zurückfordern von sicheren gast-ressourcen - Google Patents

Verzögertes zurückfordern von sicheren gast-ressourcen Download PDF

Info

Publication number
DE112022003818T5
DE112022003818T5 DE112022003818.7T DE112022003818T DE112022003818T5 DE 112022003818 T5 DE112022003818 T5 DE 112022003818T5 DE 112022003818 T DE112022003818 T DE 112022003818T DE 112022003818 T5 DE112022003818 T5 DE 112022003818T5
Authority
DE
Germany
Prior art keywords
secure guest
secure
resources
guest
removal
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
DE112022003818.7T
Other languages
English (en)
Inventor
Claudio Imbrenda
Christian Borntraeger
Janosch Andreas Frank
Jonathan Bradbury
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 DE112022003818T5 publication Critical patent/DE112022003818T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

Ein verzögertes Zurückfordern von sicheren Gast-Ressourcen innerhalb einer Datenverarbeitungsumgebung wird bereitgestellt, das ein Einleiten, durch einen Host der Datenverarbeitungsumgebung, eines Entfernens eines sicheren Gastes aus der Datenverarbeitungsumgebung umfasst, während eine oder mehrere Ressourcen des sicheren Gastes weiterhin asynchron zum Entfernen des sicheren Gastes zurückgefordert werden können. Das Verzögern umfasst auch ein Zurückfordern der einen oder der mehreren sicheren Gast-Ressourcen asynchron zum Entfernen des sicheren Gastes, wobei die eine oder die mehreren sicheren Gast-Ressourcen zur Wiederverwendung zur Verfügung stehen, sowie die eine oder die mehreren sicheren Gast-Ressourcen asynchron zum Entfernen des sicheren Gastes zurückgefordert werden.

Description

  • HINTERGRUND
  • Ein oder mehrere Aspekte betreffen im Allgemeinen ein Vereinfachen einer Verarbeitung innerhalb einer Datenverarbeitungsumgebung und insbesondere ein Verbessern einer solchen Verarbeitung.
  • Bestimmte Datenverarbeitungsumgebungen können eine Virtualisierung unterstützen, bei der ein Hypervisor oder ein VM-Manager der Datenverarbeitungsumgebung verschiedene Gäste, wie beispielsweise virtuelle Maschinen oder virtuelle Server der Datenverarbeitungsumgebung, hostet. Eine virtuelle Maschine hat Zugriff auf Systemressourcen und kann ein Betriebssystem, wie beispielsweise ein Gast-Betriebssystem, ausführen. Verschiedene Gäste können verschiedenen Eignern gehören, und von diesen Gästen können einige sichere Gäste sein.
  • Ein herkömmlicher Hypervisor oder Host hat uneingeschränkte Kontrolle über die gehosteten Gäste. Insbesondere verfügt der Hypervisor über die Möglichkeit, den Arbeitsspeicher des gehosteten Gastes zu untersuchen und sogar zu ändern. Bei einem sicheren Gast handelt es sich jedoch um einen Gast, der durch einen Hypervisor gehostet werden kann, welcher nicht vollkommen vertrauenswürdig ist. Das Image eines solchen sicheren Gastes würde beim Laden geschützt werden, und der Schutz des Inhalts der dem Gast zugewiesenen Ressourcen (z.B. Arbeitsspeicher, CPU-Register) würde über die gesamte Lebensdauer des Gastes aufrechterhalten werden. Der Schutz des Gastes umfasst mindestens Integritätsschutz (z.B. kann der Hypervisor Gast-Status nicht böswillig ändern) und kann zusätzlich die Wahrung der Vertraulichkeit des ursprünglichen Images, des ursprünglichen Codes und der ursprünglichen Daten, die in dem sicheren Gast ausgeführt werden, umfassen.
  • KURZDARSTELLUNG
  • Durch die Bereitstellung eines Computerprogrammprodukts, das dazu dient, die Verarbeitung innerhalb einer Datenverarbeitungsumgebung zu vereinfachen, werden bestimmte Unzulänglichkeiten nach dem Stand der Technik überwunden und zusätzliche Vorteile bereitgestellt. Das Computerprogrammprodukt umfasst mindestens ein durch einen Computer lesbares Speichermedium mit damit verkörperten Programmanweisungen. Die Programmanweisungen sind durch eine Verarbeitungsschaltung lesbar, um die Verarbeitungsschaltung dazu zu veranlassen, ein Verfahren durchzuführen. Das Verfahren umfasst ein Einleiten, durch einen Host der Datenverarbeitungsumgebung, eines Entfernens eines sicheren Gastes aus der Datenverarbeitungsumgebung, während eine oder mehrere sichere Gast-Ressourcen des sicheren Gastes weiterhin asynchron zum Entfernen des sicheren Gastes zurückgefordert werden können. Des Weiteren umfasst das Verfahren ein Zurückfordern der einen oder der mehreren sicheren Gast-Ressourcen asynchron zum Entfernen des sicheren Gastes, wobei die eine oder die mehreren sicheren Gast-Ressourcen zur Verwendung zur Verfügung stehen, sowie die eine oder die mehreren sicheren Gast-Ressourcen asynchron zum Entfernen des sicheren Gastes zurückgefordert werden. Vorteilhafterweise ermöglicht das Verfahren ein schnelleres Entfernen von sicheren Gästen aus der Datenverarbeitungsumgebung, insbesondere bei sicheren Gästen innerhalb der Datenverarbeitungsumgebung mit einer großen Menge an Ressourcen. Auch stehen sichere Gast-Ressourcen zur Wiederverwendung zur Verfügung, sowie die eine oder die mehreren sicheren Gast-Ressourcen asynchron zum Entfernen des sicheren Gastes zurückgefordert werden, was die Speicherauslastung innerhalb der Datenverarbeitungsumgebung vorteilhaft verringert.
  • In einer oder mehreren Ausführungsformen findet ein Zurückfordern der einen oder der mehreren sicheren Gast-Ressourcen des sicheren Gastes nach dem und asynchron zum Entfernen des sicheren Gastes statt. Indem ein Zurückfordern von einer oder mehreren sicheren Gast-Ressourcen verzögert wird, ermöglicht das Verfahren ein schnelleres Entfernen eines sicheren Gastes aus der Datenverarbeitungsumgebung.
  • In einer oder mehreren Ausführungsformen umfasst ein Entfernen des sicheren Gastes ein zeitgleich mit dem Entfernen des sicheren Gastes erfolgendes Zurückfordern von einer oder mehreren weiteren sicheren Gast-Ressourcen, während die eine oder die mehreren sicheren Gast-Ressourcen des sicheren Gastes weiterhin asynchron zurückgefordert werden können. Vorteilhafterweise kann der einem sicheren Gast (d.h. einer sicheren virtuellen Maschine) zugeordnete Arbeitsspeicher in einer Ausführung asynchron zurückgefordert werden, während ein Teil des dem sicheren Gast zugeordneten Arbeitsspeichers in einer weiteren Ausführung zeitgleich mit dem Entfernen des sicheren Gastes zurückgefordert werden kann, wobei ein Rest des Arbeitsspeichers des sicheren Gastes weiterhin asynchron zurückgefordert werden kann. In einer weiteren Ausführungsform umfassen die eine oder die mehreren sicheren Gast-Ressourcen dem sicheren Gast zugeordneten Gast-Arbeitsspeicher.
  • In einer einzelnen Ausführungsform umfasst das Verfahren des Weiteren ein Angeben, durch den Host, der einen oder der mehreren sicheren Gast-Ressourcen des sicheren Gastes, die asynchron zum Entfernen des sicheren Gastes zurückgefordert werden sollen.
  • In einer oder mehreren Ausführungen umfasst das Zurückfordern ein Feststellen, dass sich die eine oder die mehreren sicheren Gast-Ressourcen in einem Status „verworfen“ befinden, und, basierend darauf, dass sich die eine oder die mehreren sicheren Gast-Ressourcen im Status „verworfen“ befinden, ein Löschen der einen oder der mehreren sicheren Gast-Ressourcen zur Wiederverwendung, wobei das Löschen nach dem Entfernen des sicheren Gastes stattfindet. Auf diese Weise können verworfene sichere Gast-Ressourcen schneller freigegeben werden. Zum Beispiel besteht keine Notwendigkeit, zu prüfen, ob sich der Eigner eines Arbeitsspeichers im richtigen Status befindet, damit der sichere Arbeitsspeicher entfernt oder gelöscht werden kann. Des Weiteren führt der Prozess zu weniger Konflikten, da Arbeitsspeicher parallel zurückgefordert werden kann.
  • In einer einzelnen Ausführungsform umfassen die eine oder die mehreren sicheren Gast-Ressourcen eine oder mehrere sichere Arbeitsspeicherseiten, und das Feststellen umfasst ein Prüfen von Seitenmetadaten, um zu bestätigen, dass sich eine sichere Arbeitsspeicherseite der einen oder der mehreren sicheren Arbeitsspeicherseiten im Status „verworfen“ befindet. Des Weiteren umfasst das Zurückfordern in einer Ausführung ein Löschen der einen oder der mehreren sicheren Arbeitsspeicherseiten und ein Löschen von einem oder mehreren Sicherheitsflags, das bzw. die der einen oder den mehreren sicheren Arbeitsspeicherseiten zugeordnet sind.
  • In einer oder mehreren Ausführungsformen umfasst das Einleiten ein Senden, durch den Host, einer Anforderung an eine sichere Plattform der sicheren Datenverarbeitungsumgebung, den sicheren Gast zu entfernen, während die eine oder die mehreren sicheren Gast-Ressourcen des sicheren Gastes weiterhin asynchron zum Entfernen des sicheren Gastes zurückgefordert werden können.
  • Computersysteme und durch einen Computer ausgeführte Verfahren, die einen oder mehrere Aspekte betreffen, sind ebenfalls hierin beschrieben und beansprucht. Des Weiteren sind Dienste, die einen oder mehrere Aspekte betreffen, ebenfalls hierin beschrieben und gegebenenfalls beansprucht.
  • Zusätzliche Merkmale und Vorteile werden durch die hierin beschriebenen Techniken realisiert. Weitere Ausführungsformen und Aspekte sind hierin ausführlich beschrieben und werden als ein Teil der beanspruchten Aspekte betrachtet.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Ein oder mehrere Aspekte werden in den Ansprüchen am Ende der Spezifikation besonders hervorgehoben und eindeutig als Beispiele beansprucht. Das Vorstehende sowie Aufgaben, Merkmale und Vorteile von einem oder mehreren Aspekten gehen aus der folgenden ausführlichen Beschreibung in Zusammenschau mit den beiliegenden Zeichnungen hervor, bei denen:
    • 1 ein Beispiel einer Datenverarbeitungsumgebung darstellt, um einen oder mehrere Aspekte der vorliegenden Erfindung einzubinden und zu verwenden;
    • 2 ein Beispiel von einem sicheren Gast und sicheren Gast-Ressourcen, wobei vertrauliche Daten in dem sicheren Gast enthalten sind, gemäß einem oder mehreren Aspekten der vorliegenden Erfindung darstellt;
    • 3 eine Übersichtsdarstellung einer einzelnen Ausführungsform von sicheren Gast-Ressourcen, die durch einen sicheren Gast einer Datenverarbeitungsumgebung genutzt werden, gemäß einem oder mehreren Aspekten der vorliegenden Erfindung ist;
    • 4 eine einzelne Ausführungsform eines Arbeitsablaufs darstellt, der bestimmte Aspekte von einer oder mehreren Ausführungsformen der vorliegenden Erfindung veranschaulicht;
    • 5 ein Beispiel von Metadaten einer Arbeitsspeicherseite darstellt, die gemäß einem oder mehreren Aspekten der vorliegenden Erfindung verwendet wird;
    • 6 eine Übersichtsdarstellung eines weiteren Arbeitsablaufs ist, der bestimmte Aspekte von einer oder mehreren Ausführungsformen der vorliegenden Erfindung veranschaulicht;
    • die 7A bis 7B ein Beispiel für ein Vereinfachen einer Verarbeitung innerhalb einer Datenverarbeitungsumgebung gemäß einem oder mehreren Aspekten der vorliegenden Erfindung darstellen;
    • 8A ein weiteres Beispiel einer Datenverarbeitungsumgebung darstellt, um einen oder mehrere Aspekte der vorliegenden Erfindung einzubinden und zu verwenden;
    • 8B weitere Einzelheiten des Arbeitsspeichers von 8A gemäß einem oder mehreren Aspekten der vorliegenden Erfindung darstellt;
    • 9 eine einzelne Ausführungsform einer Cloud-Computing-Umgebung gemäß einem oder mehreren Aspekten der vorliegenden Erfindung darstellt; und
    • 10 ein Beispiel von Abstraktionsmodellschichten gemäß einem oder mehreren Aspekten der vorliegenden Erfindung darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Gemäß einem oder mehreren Aspekten der vorliegenden Erfindung wird eine Möglichkeit bereitgestellt, um eine Verarbeitung innerhalb einer Datenverarbeitungsumgebung zu vereinfachen. Als Beispiel umfasst die Möglichkeit ein Ermöglichen eines verzögerten Zurückforderns von sicheren Gast-Ressourcen eines sicheren Gastes (d.h. einer sicheren virtuellen Maschine), der innerhalb der Datenverarbeitungsumgebung entfernt wird. In einem Beispiel umfasst das verzögerte Zurückfordern ein Einleiten, durch einen Host der Datenverarbeitungsumgebung, eines Entfernens eines sicheren Gastes aus der Datenverarbeitungsumgebung, während eine oder mehrere sichere Gast-Ressourcen des sicheren Gastes weiterhin asynchron zum Entfernen des sicheren Gastes zurückgefordert werden können. Dann fordert der Host die eine oder die mehreren sicheren Gast-Ressourcen asynchron zum Entfernen des sicheren Gastes zurück, wobei die sicheren Gast-Ressourcen zur Wiederverwendung zur Verfügung stehen, sowie sie zurückgefordert werden. In einem weiteren Beispiel findet das Zurückfordern der einen oder der mehreren sicheren Gast-Ressourcen nach dem und asynchron zum Entfernen des sicheren Gastes statt. In einem weiteren Beispiel umfasst das Entfernen des sicheren Gastes ein zeitgleich mit dem Entfernen des sicheren Gastes erfolgendes Zurückfordern von einer oder mehreren weiteren sicheren Gast-Ressourcen, während die eine oder die mehreren sicheren Gast-Ressourcen des sicheren Gastes weiterhin asynchron zurückgefordert werden können. In einem Beispiel umfassen die sicheren Gast-Ressourcen dem sicheren Gast zugeordneten Arbeitsspeicher. In einem weiteren Beispiel gibt das Hostsystem die eine oder die mehreren sicheren Gast-Ressourcen des sicheren Gastes an, die asynchron zum Entfernen des sicheren Gastes zurückgefordert werden sollen. In bestimmten Ausführungsformen umfasst das Zurückfordern ein Feststellen, dass sich die eine oder die mehreren sicheren Gast-Ressourcen in einem Status „verworfen“ befinden, und, basierend darauf, dass sich die eine oder die mehreren sicheren Gast-Ressourcen im Status „verworfen“ befinden, ein Löschen der einen oder der mehreren sicheren Gast-Ressourcen zur Wiederverwendung, wobei das Löschen nach dem Entfernen des sicheren Gastes stattfindet. In einem weiteren Beispiel umfassen die eine oder die mehreren sicheren Gast-Ressourcen eine oder mehrere sichere Arbeitsspeicherseiten im Status „verworfen“, und das Feststellen umfasst ein Prüfen von Seitenmetadaten, um zu bestätigen, dass sich eine sichere Arbeitsspeicherseite der einen oder der mehreren sicheren Arbeitsspeicherseiten im Status „verworfen“ befindet. In einem Beispiel umfasst das Zurückfordern ein Löschen der einen oder der mehreren sicheren Arbeitsspeicherseiten und ein Löschen von einem oder mehreren Sicherheitsflags, das bzw. die dem einen oder den mehreren sicheren Arbeitsspeicherseiten zugeordnet sind.
  • Eine einzelne Ausführungsform einer Datenverarbeitungsumgebung zur Einbindung und Verwendung von einem oder mehreren Aspekten der vorliegenden Erfindung ist unter Bezugnahme auf 1 beschrieben. Als Beispiel beruht die Datenverarbeitungsumgebung auf der von der International Business Machines Corporation, Armonk, New York, angebotenen z/Architecture® Instruction Set Architecture. Eine einzelne Ausführungsform der z/Architecture Instruction Set Architecture ist in einer Publikation mit dem Titel „z/Architecture Principles of Operation“, IBM Publication No. SA22-7832-12, 13. Ausgabe, September 2019 beschrieben, die hiermit in ihrer Gesamtheit durch Bezugnahme Bestandteil hiervon ist. Die z/Architecture Instruction Set Architecture ist jedoch nur eine Beispielarchitektur; andere Architekturen und/oder andere Arten von Datenverarbeitungsumgebungen der International Business Machines Corporation und/oder von anderen Entitäten können einen oder mehrere Aspekte der vorliegenden Erfindung umfassen und/oder verwenden. z/Architecture und IBM sind Marken oder eingetragene Marken der International Business Machines Corporation in mindestens einer Gerichtsbarkeit.
  • Unter Bezugnahme auf 1 umfasst eine Datenverarbeitungsumgebung 100 in einem Beispiel einen Zentralprozessorkomplex (CPC, central processor complex) 102. Der Zentralprozessorkomplex 102 ist zum Beispiel ein IBM Z®-Server (oder ein(e) von der International Business Machines Corporation oder anderen Entitäten angebotener anderer Server bzw. angebotene andere Maschine) und umfasst eine Mehrzahl von Komponenten, wie zum Beispiel einen Arbeitsspeicher 104 (der auch als Systemspeicher, Hauptspeicher, zentraler Speicher, Massenspeicher bezeichnet wird), die mit einem oder mehreren Prozessoreinheiten (die auch als Prozessoren bezeichnet werden) 110 und mit einem Eingabe/Ausgabe-(E/A-)Subsystem 111 verbunden sind. Zu beispielhaften Prozessoreinheiten 110 gehören ein oder mehrere Universalprozessoren (die auch als Zentralprozessoren oder zentrale Verarbeitungseinheiten (CPUs, central processing units) bezeichnet werden) und/oder ein oder mehrere andere Prozessoren. IBM Z ist eine Marke oder eine eingetragene Marke der International Business Machines Corporation in mindestens einer Gerichtsbarkeit.
  • Das E/A-Subsystem 111 kann ein Teil des zentralen Prozessorkomplexes oder davon getrennt sein. Es steuert den Informationsfluss zwischen dem Hauptspeicher 104 und Eingabe-/Ausgabe-Steuereinheiten 108 sowie Eingabe-/Ausgabe-(E/A)-Einheiten 106, welche mit dem Zentralprozessorkomplex verbunden sind.
  • Viele Arten von E/A-Einheiten können verwendet werden. Eine bestimmte Art ist eine Datenspeichereinheit 140. Die Datenspeichereinheit 140 kann ein oder mehrere Programme 142, eine oder mehrere durch einen Computer lesbare Programmanweisungen 144 und/oder Daten usw. speichern. Die durch einen Computer lesbaren Programmanweisungen können so konfiguriert sein, dass sie Funktionen von Ausführungsformen von Aspekten der Erfindung ausführen.
  • Der Zentralprozessorkomplex 102 kann auswechselbare/nicht auswechselbare, flüchtige/nicht flüchtige Speichermedien eines Computersystems umfassen und/oder damit verbunden sein. Zum Beispiel kann er einen nicht auswechselbaren, nicht flüchtigen magnetischen Datenträger (der üblicherweise als „Festplattenlaufwerk“ bezeichnet wird), ein Magnetplattenlaufwerk, um von einer auswechselbaren, nicht flüchtigen Magnetplatte (z.B. einer „Diskette“) zu lesen und darauf zu schreiben, und/oder ein optisches Plattenlaufwerk, um von einer auswechselbaren, nicht flüchtigen optischen Platte, wie beispielsweise einem CD-ROM, DVD-ROM oder einem anderen optischen Medium, zu lesen oder darauf zu schreiben, umfassen und/oder damit verbunden sein. Es sollte klar sein, dass andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Zentralprozessorkomplex 102 verwendet werden könnten. Zu Beispielen gehören, ohne darauf beschränkt zu sein: Mikrocode oder Millicode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Anordnungen von Plattenlaufwerken, RAID-Systeme, Bandlaufwerke sowie Speichersysteme zur Datenarchivierung usw.
  • Des Weiteren kann der Zentralprozessorkomplex 102 mit zahlreichen anderen Universal- oder Spezialdatenverarbeitungssystemumgebungen oder -konfigurationen betrieben werden. Zu Beispielen für hinlänglich bekannte Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die zur Verwendung mit dem Zentralprozessorkomplex 102 geeignet sein können, gehören, ohne darauf beschränkt zu sein, Personal Computer-(PC-)Systeme, Server-Computersysteme, Thin Clients, Thick Clients, Handheld- oder Laptop-Einheiten, Mehrprozessorsysteme, auf einem Mikroprozessor beruhende Systeme, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der vorstehenden Systeme oder Einheiten umfassen, und dergleichen.
  • Der Zentralprozessorkomplex 102 stellt in einer oder mehreren Ausführungsformen Virtualisierungsunterstützung bereit, bei der der Arbeitsspeicher 104 zum Beispiel eine oder mehrere virtuelle Maschinen 112 (die auch als Gäste bezeichnet werden), einen VM-Manager, wie beispielsweise einen Hypervisor 114, der die virtuellen Maschinen verwaltet, eine sichere Plattform 115 (die auch als Ultravisor oder vertrauenswürdige Ausführungsumgebung bezeichnet wird) und Prozessorfirmware 116 umfasst. Ein Beispiel des Hypervisors 114 ist der von der International Business Machines Corporation, Armonk, New York, angebotene Hypervisor z/VM°. Der Hypervisor wird mitunter als Host bezeichnet. z/VM ist eine Marke oder eine eingetragene Marke der International Business Machines Corporation in mindestens einer Gerichtsbarkeit.
  • In einer oder mehreren Ausführungsformen kann die sichere Plattform 115 mindestens zum Teil in Hardware und/oder Firmware ausgeführt sein, die so konfiguriert ist, dass sie zum Beispiel Prozesse, wie sie hierin beschrieben sind, durchführt. Bei der sicheren Plattform handelt es sich um vertrauenswürdige Firmware oder Hardware, die von Speicherschutz-Hardware Gebrauch macht, um Speicherschutz durchzusetzen. Der Eigner eines Gastes kann Informationen (unter Verwendung von z.B. IBM Secure Execution) sicher an die sichere Plattform oder die vertrauenswürdige Ausführungsumgebung übergeben, indem er einen in ein Hostschlüssel-Dokument eingebetteten öffentlichen Hostschlüssel verwendet. Um die vertraulichen Informationen zu verarbeiten, verwendet die sichere Plattform 115 oder die vertrauenswürdige Ausführungsumgebung einen passenden privaten Hostschlüssel. Der private Hostschlüssel ist spezifisch für den Server, z.B. den IBM Z®-Server, und hardwaregeschützt.
  • Die Prozessorfirmware 116 umfasst z.B. den Mikrocode oder den Millicode eines Prozessors. Sie umfasst zum Beispiel die Anweisungen auf Hardwareebene und/oder Datenstrukturen, die bei der Ausführung von Maschinencode einer höheren Ebene verwendet werden. In einer einzelnen Ausführungsform umfasst sie zum Beispiel proprietären Code, der üblicherweise als Mikrocode oder Millicode geliefert wird, welcher vertrauenswürdige Software, Mikrocode oder Millicode, die bzw. der für die zugrunde liegende Hardware spezifisch ist, umfasst und den Betriebssystemzugriff auf die Systemhardware steuert.
  • Die Unterstützung virtueller Maschinen durch den Zentralprozessorkomplex stellt die Möglichkeit bereit, eine große Anzahl an virtuellen Maschinen 112 (oder Gästen) zu betreiben, von denen jede in der Lage ist, mit verschiedenen Programmen 120 zu arbeiten und ein Gast-Betriebssystem 122 wie beispielsweise das Betriebssystem Linux® auszuführen. Jede virtuelle Maschine 112 kann als eigenständiges System funktionieren. Das heißt, jede virtuelle Maschine kann unabhängig entfernt oder zurückgesetzt werden, ein Gast-Betriebssystem ausführen und mit verschiedenen Programmen arbeiten. Ein Betriebssystem oder ein Anwendungsprogramm, das in einer virtuellen Maschine ausgeführt wird, scheint Zugriff auf ein ganzes und vollständiges System zu haben, doch steht in Wirklichkeit nur ein Teil davon zur Verfügung. Zwar werden z/VM und Linux als Beispiele angeboten, doch können andere VM-Manager und/oder Betriebssysteme gemäß einem oder mehreren Aspekten der vorliegenden Erfindung verwendet werden. Die eingetragene Marke Linux® wird gemäß einer Unterlizenz von der Linux Foundation, dem exklusiven Lizenznehmer von Linus Torvalds, Eigentümer der Marke, weltweit verwendet.
  • In einer einzelnen Ausführungsform handelt es sich bei einer oder mehreren virtuellen Maschinen oder einem oder mehreren Gästen 112 um sichere Gäste. Unter Bezugnahme auf 2 wird ein sicherer Gast 200 durch einen Hypervisor (z.B. den Hypervisor 114) so gestartet, dass der Hypervisor die sicheren Gast-Ressourcen 201 einschließlich des Status (z.B. Arbeitsspeicher, Register usw.) des sicheren Gastes nicht überwachen kann. Zum Beispiel kann der Hypervisor in einer einzelnen Ausführungsform einer vertraulichen Datenverarbeitung einen sicheren Gast starten/stoppen, und der Hypervisor weiß, wo sich Daten befinden, die zum Starten des sicheren Gastes verwendet werden, aber er kann nicht in den aktiven sicheren Gast schauen. Daten, die zum Laden/Starten des sicheren Gastes verwendet werden, können so verschlüsselt sein, dass der Hypervisor den sicheren Gast nicht sehen kann. Der Eigner des Images des sicheren Gastes platziert vertrauliche Daten in den Metadaten des sicheren Gastes und erzeugt dann ein Image des sicheren Gastes zusammen mit den Metadaten des sicheren Gastes. Nachdem der sichere Gast geladen wurde, wird jede Interaktion mit dem Status des sicheren Gastes durch eine vertrauenswürdige Ausführungsumgebung, wie beispielsweise die sichere Plattform 115, verarbeitet.
  • In einer einzelnen Ausführungsform übergibt der Hypervisor ein Image 210 eines sicheren Gastes und Metadaten 220 eines sicheren Gastes an die sichere Plattform 115, um einen sicheren Gast zu starten. Die Metadaten sind integritäts- und mindestens zum Teil vertraulich geschützt und werden nur durch die sichere Plattform interpretiert. Basierend auf den Informationen in den Metadaten des sicheren Gastes kann die sichere Plattform dann die Integrität des in den Arbeitsspeicher geladenen Images des sicheren Gastes durchsetzen, den Arbeitsspeicher des sicheren Gastes, der das geladene Image enthält, vor dem Zugriff durch den Hypervisor schützen und das Image des sicheren Gastes möglicherweise entschlüsseln, bevor sie den sicheren Gast startet.
  • Nachdem der sichere Gast geladen wurde, kann es wünschenswert sein, dem sicheren Gast benutzerspezifische vertrauliche Daten 230 (z.B. Schlüssel zum Durchführen einer Verschlüsselung oder zum Herstellen einer sicheren Verbindung, Kennwörter usw.) zur Verfügung zu stellen. Zum Beispiel kann der vertraulich geschützte Teil der Metadaten des sicheren Gastes (z.B. die Metadaten 220 des sicheren Gastes) in einer einzelnen Ausführungsform dahingehend erweitert werden, dass er die vertraulichen Daten (z.B. vertrauliche Daten 230; z.B. benutzerspezifische vertrauliche Daten, die in den sicheren Gast geladen werden können) enthält. In einem Beispiel können die Metadaten des sicheren Gastes dahingehend erweitert werden, dass sie die vertraulichen Daten zusammen mit einer oder mehreren Kennungen der vertraulichen Daten enthalten. Andere Möglichkeiten gibt es ebenfalls.
  • Wie erwähnt wurde, handelt es sich bei sicheren Gästen (bzw. sicheren virtuellen Maschinen) um einen Typ einer virtuellen Maschine, bei der die Hardware und die Firmware der Datenverarbeitungsumgebung den Zugriff auf den Status des sicheren Gastes (d.h. einer sicheren virtuellen Maschine) mit Ausnahme von speziellen Arbeitsspeicherbereichen, die der sichere Gast aktiv als gemeinsam genutzt kennzeichnet, verweigert. Auf solch einen sicheren Gast kann nicht durch das Hostsystem (oder den Hypervisor) oder den Administrator der Datenverarbeitungsumgebung zugegriffen werden (z.B. des Betriebssystems, das die virtuelle Maschine hostet, was normalerweise möglich wäre). Zugriff auf den Status des sicheren Gastes bedeutet, dass ein Angreifer auf dem Hostsystem sensible Informationen, wie beispielsweise Verschlüsselungsschlüssel oder andere vertrauliche Information oder Dokumente, aus dem Arbeitsspeicher der virtuellen Maschine lesen könnte, was ein Sicherheitsrisiko darstellen würde. Zudem kann ein sicherer Gast nicht durch andere virtuelle Maschinen in der Datenverarbeitungsumgebung angegriffen werden, denen es gelingt, die Hostsicherheit zu umgehen.
  • Wie erwähnt wurde, kann in einer Datenverarbeitungsumgebung, die sichere Gäste (d.h. sichere virtuelle Maschinen) umfasst, davon ausgegangen werden, dass der Host oder der Hypervisor ebenso wie andere Gäste (unabhängig davon, ob es sich dabei um normale oder sichere Gäste handelt) innerhalb der Datenverarbeitungsumgebung nicht vertrauenswürdig sind. Eine sichere Plattform (z.B. ein Ultravisor oder eine vertrauenswürdige Ausführungsumgebung) kann wie beschrieben verwendet werden, wobei der sichere Gast ebenso wie der Hypervisor der sicheren Plattform vertrauen. Zudem traut ein sicherer Gast bei der Ausführung sich selbst.
  • Herkömmlicherweise werden, wenn ein sicherer Gast aus einer Datenverarbeitungsumgebung entfernt wird, alle dem sicheren Gast zugeordneten Ressourcen zeitgleich gelöscht oder freigegeben, was je nach der Menge der Ressourcen viel Zeit in Anspruch nehmen kann.
  • Gemäß einem oder mehreren Aspekten werden ein Computerprogrammprodukt, ein Computersystem und ein durch einen Computer ausgeführtes Verfahren bereitgestellt, die eine Verarbeitung innerhalb einer Datenverarbeitungsumgebung vereinfachen, indem ein schnelleres und effizienteres asynchrones Zurückfordern von Ressourcen in einem System ermöglicht wird, in dem sichere Gäste (d.h. sichere virtuelle Maschinen) verwendet werden. Die Ressourcen, wie beispielsweise Gast-Arbeitsspeicher, anderer Arbeitsspeicher und/oder andere Ressourcen des sicheren Gastes, bleiben geschützt, nachdem der sichere Gast gelöscht oder entfernt wurde, um den Gast-Entfernungsprozess zu verbessern, indem eine zeitgleiche Behandlung aller sicheren Gast-Ressourcen überflüssig gemacht wird. Zum Beispiel können eine oder mehrere sichere Gast-Ressourcen (wie beispielsweise Gast-Arbeitsspeicher) später, asynchron zum Entfernen des sicheren Gastes, zurückgefordert werden.
  • 3 veranschaulicht eine einzelne Ausführungsform von sicheren Gast-Ressourcen 201, die für einen sicheren Gast (oder eine sichere virtuelle Maschine) innerhalb einer Datenverarbeitungsumgebung, wie sie hierin beschrieben ist, erforderlich sind. Wie veranschaulicht ist, umfassen sichere Gast-Ressourcen 201 in einer oder mehreren Ausführungsformen zugeordneten Gast-Arbeitsspeicher 300 sowie anderen Arbeitsspeicher 301 und andere Ressourcen 302, die verwendet werden, um den sicheren Gast zu unterstützen. Bei anderem Arbeitsspeicher 301 handelt es sich üblicherweise um eine kleinere Menge an Arbeitsspeicher als beim Gast-Arbeitsspeicher 300, und in bestimmten Ausführungen von Datenverarbeitungsumgebungen kann es sich dabei um einen Prozentsatz des zugeordneten Gast-Arbeitsspeichers 300 handeln. Beispielhalber kann anderer Arbeitsspeicher 301 Arbeitsspeicher sein oder umfassen, welcher der sicheren Plattform gehört, um den Status des sicheren Gastes aufrechtzuerhalten. Bei anderen Ressourcen 302 handelt es sich üblicherweise um eine kleine Menge an Ressourcen, die notwendig sind, um den sicheren Gast zu unterstützen, und zu ihnen können zum Beispiel ein sicheres oder eindeutiges Maschinentoken, ein im Cache gespeicherter sicherer Status, Einträge in einem Adressumsetzpufferspeicher (translation lookaside buffer, TLB), reservierte E/A-Einheiten usw. gehören.
  • Wenn ein Gast (oder eine virtuelle Maschine) aus der Datenverarbeitungsumgebung entfernt oder eliminiert werden soll, müssen seine (bzw. ihre) zugeordneten Ressourcen wie beispielsweise Arbeitsspeicher zum Beispiel durch den Host zurückgefordert werden, damit sie wiederverwendet werden können. Im Falle eines sicheren Gastes gibt es eine Vielfalt an Arbeitsspeicherbereichen, die außer dem Gast-Arbeitsspeicher 300 selbst dem sicheren Gast zugeordnet werden können. Diese Arbeitsspeicherbereiche, wie beispielsweise anderer Arbeitsspeicher 301 und/oder andere Ressourcen 302, müssen ebenfalls gelöscht (d.h., wenn der Schutz auf Zugriffssteuerung beruht) und dann zur normalen Verwendung zur Verfügung gestellt werden. Vorteilhafterweise können gemäß einem oder mehreren hierin offenbarten Aspekten eine oder mehrere der sicheren Gast-Ressourcen, die dem sicheren Gast zugeordnet sind, welcher entfernt wird, weiterhin asynchron zum Entfernen des sicheren Gastes zurückgefordert werden. Dadurch geht ein Entfernen des sicheren Gastes deutlich schneller vonstatten als in dem Fall, wo alle sicheren Gast-Ressourcen zeitgleich gelöscht oder beseitigt werden, um das Entfernen des sicheren Gastes zu bestätigen. Auf diese Weise können die verbleibenden sicheren Gast-Ressourcen zu einem späteren Zeitpunkt, das heißt asynchron zum Entfernen des sicheren Gastes, zurückgefordert werden.
  • 4 stellt eine einzelne Ausführungsform eines Arbeitsablaufs dar, die einen oder mehrere Aspekte desselben veranschaulicht. Wie der Fachmann versteht, kann der veranschaulichte Arbeitsablauf durch Programmcode verkörpert sein, der zum Beispiel in Verbindung mit dem Host und der sicheren Plattform (oder der vertrauenswürdigen Ausführungsumgebung) ausgeführt ist. Der Programmcode startet 400 damit, dass der Host (oder Hypervisor) einen Hinweis erhält, dass ein sicherer Gast entfernt 402 werden soll. Der Host leitet das Entfernen des sicheren Gastes und ein asynchrones Zurückfordern von einer oder mehreren der sicheren Gast-Ressourcen ein, 404. In einer Ausführung ruft der Host eine Anwendungsprogrammierschnittstelle der sicheren Plattform auf, um den sicheren Gast zu entfernen. Wenn die Schnittstelle es zulässt, kann der Host optional angeben, welche sicheren Gast-Ressourcen asynchron zurückgefordert werden sollen.
  • Wie in 4 veranschaulicht ist, stellt der Programmcode fest, dass es sichere Gast-Ressourcen gibt, die asynchron zurückgefordert 406 werden sollen, und ermittelt, ob eine oder mehrere der asynchron zurückzufordernden sicheren Gast-Ressourcen aktuell zurückgefordert 408 werden sollen. Zum Beispiel kann der Host in einer Ausführung in einer Hintergrundverarbeitung die sicheren Gast-Ressourcen zurückfordern, die nach dem Entfernen des sicheren Gastes für ein Zurückfordern zurückgestellt wurden. Wenn Ressourcen nicht aktuell zurückgefordert werden sollen, werden sie zu einem späteren Zeitpunkt zurückgefordert 410. Andernfalls werden die zurückzufordernden sicheren Gast-Ressourcen gelöscht 412 (z.B. auf einen vordefinierten Wert gesetzt), wodurch der Prozess 414 beendet wird. Im Vergleich dazu würde der Host bei einem herkömmlichen Arbeitsablauf die sichere Gast-Schnittstelle aufrufen, um das Entfernen eines sicheren Gastes und ein zeitgleich mit dem Entfernen des sicheren Gastes erfolgendes Löschen aller sicheren Gast-Ressourcen einzuleiten, damit der Host dann zur Wiederverwendung der Ressourcen frei ist. In dem hierin beschriebenen Prozess stellt der Host die Anforderung (oder ruft eine Schnittstelle auf), die sicheren Gast-Ressourcen, die zeitgleich gelöscht werden sollten, zu löschen, und entfernt den sicheren Gast. Zu den sicheren Gast-Ressourcen, die zeitgleich gelöscht werden sollen, können alle oder einige der anderen Ressourcen 302 (3) gehören, wie beispielsweise ein sicheres Token und reservierte E/A-Einheiten. Der Host kann die verbleibenden sicheren Gast-Ressourcen dann asynchron zurückfordern, und sowie die Ressourcen (z.B. Arbeitsspeicher) zurückgefordert werden, stehen die Ressourcen zur sofortigen Verwendung zur Verfügung.
  • Gemäß einem oder mehreren hierin offenbarten Aspekten leitet der Host einen Aufruf oder eine Anforderung an die sichere Plattform (z.B. eine vertrauenswürdige Ausführungsumgebung oder einen Ultravisor) ein, einen sicheren Gast oder eine virtuelle Maschine zu eliminieren oder zu entfernen, ohne alle der sicheren Gast-Ressourcen (z.B. den gesamten sicheren Gast-Arbeitsspeicher) sofort freizugeben. Die verbleibenden sicheren Gast-Ressourcen können dann asynchron zum Entfernen des sicheren Gastes zurückgefordert werden. Es sei angemerkt, dass nicht der gesamte sichere Gast-Arbeitsspeicher asynchron zurückgefordert werden muss. Zum Beispiel kann in einer Ausführung der gesamte dem sicheren Gast zugeordnete Gast-Arbeitsspeicher asynchron zum Entfernen des sicheren Gastes zurückgefordert werden, während in einer weiteren Ausführung nur ein Teil des Gast-Arbeitsspeichers asynchron zum Entfernen des sicheren Gastes zurückgefordert werden muss. Mehrere Varianten und Ausführungsformen sind möglich.
  • In einer oder mehreren Ausführungen kann ein neuer Ressourcenstatus (z.B. Arbeitsspeicherstatus), der hierin als ein Status „verworfen“ bezeichnet wird, verwendet werden, um ein Zurückfordern von Ressourcen zu vereinfachen. Im Allgemeinen kann ein Host nicht auf sicheren Arbeitsspeicher zugreifen, wie erklärt wurde. Sicherer Arbeitsspeicher kann einem sicheren Gast oder der sicheren Plattform gehören. Ein Status „verworfen“ (wie hierin erläutert) kann ausgeführt werden, indem die Metadaten des Bereichs des sicheren Arbeitsspeichers, der verworfen werden muss, aktualisiert werden, um ihn als „Status verworfen“ zu markieren, was bedeutet, dass er nicht der sicheren Plattform oder einem sicheren Gast gehört und frei zurückgefordert werden kann. Verworfener Arbeitsspeicher kann dann jederzeit, was asynchron und/oder gleichzeitig einschließt, zurückgefordert werden, da keine zusätzlichen Prüfungen durchgeführt werden müssen. Des Weiteren ermöglicht ein Ändern von einem sicheren Arbeitsspeicher zugeordneten Metadaten, dass der Arbeitsspeicher frei zurückgefordert werden kann. Zum Beispiel besteht keine Notwendigkeit, zu prüfen, welchem sicheren Gast der Arbeitsspeicher gehört, und es besteht keine Notwendigkeit, Sicherheitseigenschaften eines sicheren Arbeitsspeicherbereichs zu ändern, was eine längere Verarbeitungszeit erfordern würde.
  • Beispielhalber umfasst jede sichere Arbeitsspeicherseite Metadaten, wobei ein Beispiel einer Datenstruktur 500 von Metadaten einer Arbeitsspeicherseite in 5 dargestellt ist. In einem Beispiel kann die sichere Plattform 115 (1 und 2) auf die Metadaten der Arbeitsspeicherseite zugreifen und sie umfassen zum Beispiel einen oder mehrere Einträge 502, wobei jeder Eintrag 502 zum Beispiel eine Seitenkennung 504 und einen oder mehrere Indikatoren 506 umfasst, wie beispielsweise einen hierin beschriebenen Indikator „Status verworfen“. Die Metadaten der Arbeitsspeicherseite können durch den Host und die sichere Plattform während des Zurückforderns von sicheren Arbeitsspeicherseiten verwendet werden, die einem entfernten sicheren Gast zugeordnet sind. Wie erklärt wurde, kann sicherer Arbeitsspeicher, der nicht mehr benötigt wird, in den Status „verworfen“ gestellt werden. Wenn eine sichere virtuelle Maschine oder ein sicherer Gast entfernt wird, werden die Metadaten der Arbeitsspeicherseite aktualisiert und anschließend referenziert, um festzustellen, ob sich die jeweilige Arbeitsspeicherseite im Status „verworfen“ befindet. Des Weiteren können im Falle des Hinzufügens oder Entfernens von Arbeitsspeicher im laufenden Betrieb (Hot-Plugging bzw. Hot-Unplugging) auch Metadaten einer Arbeitsspeicherseite mit einem Indikator „Status verworfen“ verwendet werden. Auf diese Weise bleibt verworfener Arbeitsspeicher sicher und muss explizit zurückgefordert werden, bevor er verwendbar ist. Die Operation, wie beispielsweise „sicheren Gast entfernen“ oder ein Entfernen von Arbeitsspeicher im laufenden Betrieb, bei dem die betreffenden Arbeitsspeicherseiten in einen Status „verworfen“ gestellt werden, kann daher schneller vonstatten gehen.
  • Beispielhalber veranschaulicht 6 eine einzelne Ausführungsform des Prozesses zum asynchronen Zurückfordern von sicherem Arbeitsspeicher im Status „verworfen“. Wie in 6 veranschaulicht ist, gibt es zusätzlich zu sicherem Arbeitsspeicher im Status „verworfen"' 600 zugeordnete Arbeitsspeicher-Metadaten 602, wie beispielsweise die vorstehend beschriebenen Arbeitsspeicher-Metadaten, sowie ein oder mehrere Sicherheitsflags 604, das bzw. die beim Sichern des Arbeitsspeichers verwendet wird/werden. Der Prozess umfasst ein Prüfen der Metadaten der Arbeitsspeicherseite durch Programmcode, um zu bestätigen, dass sich die Seite im Status „verworfen“ 610 befindet, und unter der Annahme, dass dies der Fall ist, wird die Arbeitsspeicherseite (bei Bedarf) gelöscht 612, woraufhin ein oder mehrere Sicherheitsflags 614 gelöscht werden. Dieser Prozess ist durchaus vergleichbar mit einem herkömmlichen Prozess zum Zurückfordern einer Arbeitsspeicherseite, der zum Beispiel ein Prüfen umfassen kann, ob sich der sichere Gast in einem Status befindet, der ein Zurückfordern von Arbeitsspeicher zulässt, was an sich schon ein langsamer Prozess sein kann und der zum Beispiel zusätzliche Suchschritte umfassen kann, um den Gast oder die virtuelle Maschine zu finden, der bzw. die dem Arbeitsspeicher zugeordnet ist, und möglicherweise zusätzliche Sperren für eine Synchronisation sowie zusätzliche Prüfungen erfordern kann. Vorteilhafterweise ermöglicht das Verwenden eines Metadaten-Indikators „Status verworfen“, wie er beispielsweise hierin beschrieben ist, eine schnellere Freigabe, mit weniger Verarbeitung, von verworfenem sicherem Arbeitsspeicher. Es besteht keine Notwendigkeit, zu prüfen, ob sich der Eigner, wie beispielsweise der sichere Gast, im richtigen Status befindet, um ein Entfernen oder ein Löschen des zugeordneten Arbeitsspeichers zuzulassen, und es gibt weniger Konflikte, da der Arbeitsspeicher im Status „verworfen“ parallel zurückgefordert werden kann. Der Prozess erfordert einfach ein Feststellen, dass zu sicherem Arbeitsspeicher, wie beispielsweise einer sicheren Arbeitsspeicherseite, ein Hinweis „verworfener Status“ gehört, und wenn dies festgestellt wird, kann die Arbeitsspeicherseite zum Beispiel zurückgefordert werden, indem der Arbeitsspeicher gelöscht wird, was dazu führt, dass der Arbeitsspeicher sofort zur Wiederverwendung zur Verfügung steht.
  • In einer weiteren Ausführungsform kann ein schneller Arbeitsspeicher-Import in einen weiteren sicheren Gast durchgeführt werden, sobald sich sicherer Arbeitsspeicher im Status „verworfen“ befindet. Der schnelle Arbeitsspeicher-Import bedeutet, dass der Hinweis „sicher“ nicht geändert wird, und folglich wird die Verarbeitung dadurch beschleunigt, dass keine Sperr- und/oder Löschschritte benötigt werden, um den Hinweis zu ändern. Der tatsächliche Speicherinhalt des sicheren Arbeitsspeichers im Status „verworfen“ wird einfach gelöscht, bevor der Arbeitsspeicher an einen anderen sicheren Gast übergeben wird. Bei solch einer Ausführungsform kann ein Pool an sicheren verworfenen Arbeitsspeicherseiten in dem Betriebssystem verwaltet werden, die nur zu normalen Arbeitsspeicherseiten werden, wenn das Betriebssystem neu startet (d.h., wenn der Hypervisor des sicheren Gastes neu startet). Sollte ein sicherer Gast Arbeitsspeicher benötigen, kann dieser aus dem Pool der sicheren verworfenen Arbeitsspeicherseiten bereitgestellt werden, statt eine Verarbeitung erforderlich zu machen, um normalen Arbeitsspeicher sicher zu machen. Es handelt sich somit um eine andere Art des Zurückforderns als die vorstehend beschriebene, bei der der Inhalt der sich in einem Status „verzögert“ befindlichen Arbeitsspeicherseite ebenso wie der Sicherheitshinweis gelöscht werden, welcher gegen unsicheren Zugriff auf die sichere Arbeitsspeicherseite schützt.
  • Weitere Einzelheiten einer einzelnen Ausführungsform zum Vereinfachen einer Verarbeitung innerhalb einer Datenverarbeitungsumgebung, wie sie einen oder mehrere Aspekte der vorliegenden Erfindung betrifft, sind unter Bezugnahme auf die 7A bis 7B beschrieben.
  • Unter Bezugnahme auf 7A leitet ein Hostsystem einer Datenverarbeitungsumgebung in einer einzelnen Ausführungsform ein Entfernen eines sicheren Gastes aus der Datenverarbeitungsumgebung ein, während eine oder mehrere sichere Gast-Ressourcen des sicheren Gastes weiterhin asynchron zum Entfernen des sicheren Gastes zurückgefordert werden können, 700. Die eine oder die mehreren sicheren Gast-Ressourcen werden dann asynchron zum Entfernen des sicheren Gastes zurückgefordert, wobei die eine oder die mehreren sicheren Gast-Ressourcen zur Wiederverwendung zur Verfügung stehen, sowie die eine oder die mehreren sicheren Gast-Ressourcen asynchron zum Entfernen des sicheren Gastes zurückgefordert werden, 702. Indem das Zurückfordern der einen oder der mehreren sicheren Gast-Ressourcen verzögert wird, können sichere Gäste schneller aus der Datenverarbeitungsumgebung entfernt werden, insbesondere sichere Gäste mit großen sicheren Gast-Ressourcen. Auch stehen sichere Gast-Ressourcen zur Wiederverwendung zur Verfügung, sowie die eine oder die mehreren sicheren Gast-Ressourcen asynchron zum Entfernen des sicheren Gastes zurückgefordert werden, was die Speicherauslastung innerhalb der Datenverarbeitungsumgebung vorteilhaft verringern kann.
  • In einer einzelnen Ausführungsformen findet ein Zurückfordern der einen oder der mehreren sicheren Gast-Ressourcen des sicheren Gastes nach dem und asynchron zum Entfernen des sicheren Gastes statt, 704.
  • In einer einzelnen Ausführungsformen umfasst ein Entfernen des sicheren Gastes ein zeitgleich mit dem Entfernen des sicheren Gastes erfolgendes Zurückfordern von einer oder mehreren weiteren sicheren Gast-Ressourcen, während die eine oder die mehreren sicheren Gast-Ressourcen des sicheren Gastes weiterhin asynchron zurückgefordert werden können, 706.
  • In einer einzelnen Ausführungsform umfassen die eine oder die mehreren sicheren Gast-Ressourcen dem sicheren Gast zugeordneten Gast-Arbeitsspeicher, 708.
  • In einem Beispiel umfasst das Verfahren des Weiteren ein Angeben, durch den Host, der einen oder der mehreren sicheren Gast-Ressourcen des sicheren Gastes, die asynchron zum Entfernen des sicheren Gastes zurückgefordert werden sollen, 710.
  • Unter Bezugnahme auf 7B umfasst das Zurückfordern in einer einzelnen Ausführungsform ein Feststellen, dass sich die eine oder die mehreren sicheren Gast-Ressourcen in einem Status „verworfen“ befinden, und, basierend darauf, dass sich der eine oder die mehreren sicheren Gast-Ressourcen in dem Status „verworfen“ befinden, ein Löschen der einen oder der mehreren Gast-Ressourcen zur Wiederverwendung, wobei das Löschen nach dem Entfernen des sicheren Gastes stattfindet, 712. Auf diese Weise kann verworfener Arbeitsspeicher schneller freigegeben werden, da keine Notwendigkeit besteht, zu prüfen, ob sich der Eigner des Arbeitsspeichers in der Datenverarbeitungsumgebung im richtigen Status befindet, damit Arbeitsspeicher entfernt oder gelöscht werden kann. Des Weiteren werden Konflikte verringert, da Arbeitsspeicher parallel zurückgefordert werden kann.
  • In einer einzelnen Ausführungsform umfassen die eine oder die mehreren sicheren Gast-Ressourcen eine oder mehrere sichere Arbeitsspeicherseiten, und das Feststellen umfasst ein Prüfen von Seitenmetadaten, um zu bestätigen, dass sich eine sichere Arbeitsspeicherseite der einen oder der mehreren sicheren Arbeitsspeicherseiten im Status „verworfen“ befindet, 714. In einer einzelnen Ausführungsform umfasst das Zurückfordern ein Löschen der einen oder der mehreren sicheren Arbeitsspeicherseiten und ein Löschen von einem oder mehreren Sicherheitsflags, das bzw. die der einen oder den mehreren sicheren Arbeitsspeicherseiten zugeordnet sind, 716.
  • In einem Beispiel umfasst das Einleiten ein Senden, durch den Host, einer Anforderung an eine sichere Plattform der Datenverarbeitungsumgebung, den sicheren Gast zu entfernen, während die eine oder die mehreren sicheren Gast-Ressourcen des sicheren Gastes weiterhin asynchron zum Entfernen des sicheren Gastes zurückgefordert werden können, 718.
  • Andere Varianten und Ausführungsformen sind möglich.
  • Aspekte der vorliegenden Erfindung können durch viele Arten von Datenverarbeitungsumgebungen verwendet werden. Eine weitere Ausführungsform einer Datenverarbeitungsumgebung zur Einbindung und Verwendung von einem oder mehreren Aspekten der vorliegenden Erfindung ist unter Bezugnahme auf 8A beschrieben. In diesem Beispiel umfasst eine Datenverarbeitungsumgebung 36 zum Beispiel eine native zentrale Verarbeitungseinheit (CPU) 37, einen Arbeitsspeicher 38 und eine oder mehrere Eingabe-/Ausgabeeinheiten und/oder Schnittstellen 39, die zum Beispiel über einen oder mehrere Busse 40 und/oder andere Verbindungen miteinander verbunden sind. Als Beispiele kann die Datenverarbeitungsumgebung 36 einen von der International Business Machines Corporation, Armonk, New York, angebotenen PowerPC°-Prozessor; einen von der Hewlett Packard Co., Palo Alto, Kalifornien, angebotenen HP Superdome mit Intel®-Itanium®-II-Prozessoren; und/oder andere Systeme umfassen, die auf von der International Business Machines Corporation, Hewlett Packard, Intel Corporation, Oracle und/oder anderen angebotenen Architekturen beruhen. PowerPC ist eine Marke oder eine eingetragene Marke der International Business Machines Corporation in mindestens einer Gerichtsbarkeit. Intel und Itanium sind Marken oder eingetragene Marken der Intel Corporation oder ihrer Tochtergesellschaften in den Vereinigten Staaten und anderen Ländern.
  • Die native zentrale Verarbeitungseinheit 37 umfasst ein oder mehrere native Register 41, wie beispielsweise ein oder mehrere Universalregister und/oder ein oder mehrere Spezialregister, die während der Verarbeitung innerhalb der Umgebung verwendet werden. Diese Register umfassen Informationen, die den Zustand der Umgebung zu irgendeinem bestimmten Zeitpunkt darstellen.
  • Überdies führt die native zentrale Verarbeitungseinheit 37 im Arbeitsspeicher 38 gespeicherte Anweisungen und Code aus. In einem bestimmten Beispiel führt die zentrale Verarbeitungseinheit im Arbeitsspeicher 38 gespeicherten Emulatorcode 42 aus. Dieser Code ermöglicht es der in einer Architektur konfigurierten Datenverarbeitungsumgebung, eine andere Architektur zu emulieren. Zum Beispiel ermöglicht der Emulatorcode 42 Systemen, die auf anderen Architekturen als der z/Architecture Instruction Set Architecture beruhen, wie beispielsweise PowerPC-Prozessoren, Superdome-Servern von HP oder anderen, die z/Architecture Instruction Set Architecture zu emulieren sowie Software und Anweisungen auszuführen, die auf Basis der z/Architecture Instruction Set Architecture entwickelt wurden.
  • Weitere Einzelheiten, die den Emulatorcode 42 betreffen, sind unter Bezugnahme auf 8B beschrieben. Im Arbeitsspeicher 38 gespeicherte Gast-Anweisungen 43 weisen Software-Anweisungen (die z.B. mit Maschinenanweisungen korrelieren) auf, welche zur Ausführung in einer anderen Architektur als derjenigen der nativen CPU 37 entwickelt wurden. Zum Beispiel wurden die Gast-Anweisungen 43 möglicherweise zur Ausführung auf einem auf der z/Architecture Instruction Set Architecture beruhenden Prozessor entworfen, werden stattdessen aber auf der nativen CPU 37 emuliert, bei der es sich zum Beispiel um einen Intel-Itanium-II-Prozessor handeln kann. In einem Beispiel umfasst der Emulatorcode 42 eine Anweisungsabrufroutine 44, um eine oder mehrere Gast-Anweisungen 43 aus dem Arbeitsspeicher 38 zu erhalten und um optional eine lokale Pufferung für die erhaltenen Anweisungen bereitzustellen. Er umfasst auch eine Anweisungsumsetzungsroutine 45, um den Typ der Gast-Anweisung festzustellen, die erhalten wurde, und um die Gast-Anweisung in eine oder mehrere entsprechende native Anweisungen 46 umzusetzen. Diese Umsetzung umfasst zum Beispiel ein Angeben der Funktion, die durch die Gast-Anweisung durchgeführt werden soll, und ein Wählen der nativen Anweisung(en), um diese Funktion durchzuführen.
  • Außerdem umfasst der Emulatorcode 42 eine Emulationssteuerungsroutine 47, um zu veranlassen, dass die nativen Anweisungen ausgeführt werden. Die Emulationssteuerungsroutine 47 kann die native CPU 37 dazu veranlassen, eine Routine nativer Anweisungen auszuführen, die eine oder mehrere zuvor erhaltene Gast-Anweisungen emulieren, und am Ende dieser Ausführung die Steuerung an die Anweisungsabrufroutine zurückzugeben, um das Erhalten der nächsten Gast-Anweisung oder einer Gruppe von Gast-Anweisungen zu emulieren. Eine Ausführung der nativen Anweisungen 46 kann ein Laden von Daten aus dem Arbeitsspeicher 38 in ein Register; ein Zurückspeichern von Daten aus einem Register in den Arbeitsspeicher; oder ein Durchführen von irgendeiner Art von arithmetischer oder logischer Operation, die von der Umsetzungsroutine bestimmt wird, umfassen.
  • Jede Routine ist zum Beispiel in Software ausgeführt, die im Arbeitsspeicher gespeichert und durch die native zentrale Verarbeitungseinheit 37 ausgeführt wird. In weiteren Beispielen sind eine oder mehrere der Routinen oder Operationen in Firmware, Hardware, Software oder einer Kombination daraus ausgeführt. Die Register des emulierten Prozessors können unter Verwendung der Register 41 der nativen CPU oder durch Verwendung von Speicherpositionen im Arbeitsspeicher 38 emuliert werden. In Ausführungsformen können sich die Gast-Anweisungen 43, die nativen Anweisungen 46 und der Emulatorcode 42 in demselben Arbeitsspeicher befinden oder auf verschiedene Speichereinheiten verteilt sein.
  • Eine Anweisung, ein Befehl oder ein Aufruf, die bzw. der emuliert werden kann, umfasst gemäß einem oder mehreren Aspekten der vorliegenden Erfindung den hierin beschriebenen Aufruf der vertrauenswürdigen Ausführungsumgebung. Des Weiteren können weitere Anweisungen, Befehle, Funktionen, Operationen, Aufrufe und/oder ein oder mehrere Aspekte der vorliegenden Erfindung gemäß einem oder mehreren Aspekten der vorliegenden Erfindung emuliert werden.
  • Bei den vorstehend beschriebenen Datenverarbeitungsumgebungen handelt es sich lediglich um Beispiele für Datenverarbeitungsumgebungen, die verwendet werden können. Weitere Ausführungsformen, darunter, ohne darauf beschränkt zu sein, nicht partitionierte Umgebungen, partitionierte Umgebungen, Cloud-Umgebungen und/oder emulierte Umgebungen, können verwendet werden; Ausführungsformen sind nicht auf eine einzelne Umgebung beschränkt. Obgleich verschiedene Beispiele von Datenverarbeitungsumgebungen hierin beschrieben sind, können ein oder mehrere Aspekte der vorliegenden Erfindung mit vielen Arten von Umgebungen verwendet werden. Bei den hierin bereitgestellten Datenverarbeitungsumgebungen handelt es sich lediglich um Beispiele.
  • Jede Datenverarbeitungsumgebung kann so konfiguriert werden, dass sie einen oder mehrere Aspekte der vorliegenden Erfindung umfasst.
  • Ein oder mehrere Aspekte können das Cloud-Computing betreffen.
  • Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing umfasst. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen weiteren Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerken, Netzwerkbandbreite, Servern, Verarbeitung, Arbeitsspeichern, Speichern, Anwendungen, virtuellen Maschinen und Services), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften umfassen, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
  • Bei den Eigenschaften handelt es sich um die folgenden:
    • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
    • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
    • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
    • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
    • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Servicemodellen handelt es sich um die folgenden:
    • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
    • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
    • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die folgenden:
    • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder in fremden Räumen stehen.
    • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder in fremden Räumen stehen.
    • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
    • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten umfasst.
  • Unter Bezugnahme auf 9 ist eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt ist, umfasst die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 52, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie beispielsweise ein elektronischer Assistent (PDA, personal digital assistant) oder ein Mobiltelefon 54A, ein Desktop-Computer 54B, ein Laptop-Computer 54C und/oder ein Automobil-Computer-System 54N Daten austauschen können. Die Knoten 52 können miteinander Daten austauschen. Sie können physisch oder virtuell in einem oder in mehreren Netzwerken wie zum Beispiel privaten, Gemeinschafts-, öffentlichen oder hybriden Clouds, die hier vorstehend beschrieben wurden, oder in einer Kombination daraus zu Gruppen zusammengefasst (nicht gezeigt) werden. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten der in 9 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 52 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 10 ist ein Satz von funktionalen Abstraktionsschichten gezeigt, die von der Cloud-Computing-Umgebung 50 (9) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 10 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt ist, werden die folgenden Ebenen und die entsprechenden Funktionen bereitgestellt:
    • Eine Hardware- und Softwareschicht 60 umfasst Hardware- und Softwarekomponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 61; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen umfassen Softwarekomponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbanksoftware 68.
  • Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann eine Verwaltungsschicht 80 die nachstehend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungssoftwarelizenzen umfassen. Eine Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Tasks sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 85 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Arbeitslastschicht 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und Bereitstellung einer Verarbeitung 96 zum verzögerten Zurückfordern von sicheren Gast-Ressourcen.
  • Bei Aspekten der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen Integrationsstufe technischer Details handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren 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 durch einen Computer lesbaren 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 spezifischerer Beispiele des durch einen Computer lesbaren 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 bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein auswechselbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares 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, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren 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, Leitwegrechner, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmwareanweisungen, zustandssetzende Daten, Konfigurationsdaten für eine integrierte Schaltung 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 prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch einen beliebigen Typ Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel durch das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field-programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren 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 Blockschaltbilder bzw. Schaubilder 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 Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbarer Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren 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 bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren 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 durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren 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, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, anderen programmierbaren Vorrichtungen oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder 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 dem Ablaufplan oder in den Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zur Ausführung der festgelegten logischen Funktion(en) aufweist. In einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit als ein Schritt durchgeführt, gleichzeitig ausgeführt, im Wesentlichen gleichzeitig ausgeführt, in einer sich teilweise oder ganz zeitlich überlappenden Weise 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 Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern 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.
  • Zusätzlich zu dem Vorstehenden können ein oder mehrere Aspekte durch einen Serviceanbieter, der eine Verwaltung von Kundenumgebungen anbietet, bereitgestellt, angeboten, eingesetzt, verwaltet, gewartet usw. werden. Zum Beispiel kann der Serviceanbieter Computer-Code und/oder eine Computerinfrastruktur, die einen oder mehrere Aspekte für einen oder mehrere Kunden durchführt, erstellen, pflegen, unterstützen usw. Der Serviceanbieter kann als Gegenleistung Zahlungen von dem Kunden im Rahmen eines Abonnement- und/oder Gebührenvertrags, als Beispiele, erhalten. Zusätzlich oder alternativ kann der Serviceanbieter Zahlungen aus dem Verkauf von Werbeinhalten an einen oder mehrere Dritte erhalten.
  • In einem Aspekt kann eine Anwendung zum Durchführen von einer oder mehreren Ausführungsformen eingesetzt werden. Als ein Beispiel weist das Einsetzen einer Anwendung ein Bereitstellen von Computerinfrastruktur auf, die so betrieben werden kann, dass sie eine oder mehrere Ausführungsformen durchführt.
  • Als ein weiterer Aspekt kann eine Datenverarbeitungsinfrastruktur eingesetzt werden, die ein Integrieren von durch einen Computer lesbarem Code in ein Datenverarbeitungssystem aufweist, wobei der Code in Verbindung mit dem Datenverarbeitungssystem eine oder mehrere Ausführungsformen durchführen kann.
  • Als noch ein weiterer Aspekt kann ein Prozess zum Integrieren einer Datenverarbeitungsinfrastruktur bereitgestellt werden, der ein Integrieren von durch einen Computer lesbarem Code in ein Computersystem aufweist. Das Computersystem weist einen durch einen Computer lesbaren Datenträger auf, wobei der Computer-Datenträger eine oder mehrere Ausführungsformen aufweist. Der Code in Verbindung mit dem Computersystem kann eine oder mehrere Ausführungsformen durchführen.
  • Zwar sind vorstehend verschiedene Ausführungsformen beschrieben, doch handelt es sich dabei lediglich um Beispiele. Zum Beispiel können Datenverarbeitungsumgebungen anderer Architekturen verwendet werden, um einen oder mehrere Aspekte einzubinden und zu verwenden. Des Weiteren können verschiedene Anweisungen, Befehle, Funktionen, Aufrufe und/oder Operationen verwendet werden. Zusätzlich können verschiedene Arten von Strukturen verwendet werden. Viele Varianten sind möglich.
  • Verschiedene Aspekte sind hierin beschrieben. Des Weiteren sind viele Variationen möglich, ohne vom Wesen von Aspekten der vorliegenden Erfindung abzuweichen. Es sollte angemerkt werden, dass, vorbehaltlich der Unvereinbarkeit, jeder hierin beschriebene Aspekt bzw. jedes hierin beschriebene Merkmal sowie Varianten davon gegebenenfalls mit einem beliebigen anderen Aspekt oder Merkmal kombiniert werden können.
  • Des Weiteren können andere Arten von Datenverarbeitungsumgebungen profitieren und verwendet werden. Als ein Beispiel ist ein für die Speicherung und/oder Ausführung von Programmcode geeignetes Datenverarbeitungssystem verwendbar, das mindestens zwei Prozessoren umfasst, die durch einen Systembus direkt oder indirekt mit Speicherelementen verbunden sind. Zu den Speicherelementen gehören zum Beispiel lokaler Speicher, der während der tatsächlichen Ausführung des Programmcodes genutzt wird, Massenspeicher und Cachespeicher, die eine vorübergehende Speicherung von mindestens einem Teil des Programmcodes bereitstellen, um die Häufigkeit zu verringern, mit der Code während der Ausführung aus dem Massenspeicher abgerufen werden muss.
  • Eingabe-/Ausgabe- bzw. E/A-Einheiten (darunter, ohne darauf beschränkt zu sein, Tastaturen, Bildschirme, Zeigereinheiten, DASD, Band, CDs, DVDs, Thumb-Drives und andere Speichermedien usw.) können entweder direkt oder durch dazwischenliegende E/A-Controller mit dem System verbunden sein. Netzwerkadapter können ebenfalls mit dem System verbunden sein, damit das Datenverarbeitungssystem mit anderen Datenverarbeitungssystemen oder fernen Druckern oder Speichereinheiten durch dazwischenliegende private oder öffentliche Netzwerke verbunden werden kann. Modems, Kabelmodems und Ethernet-Karten sind lediglich ein paar der verfügbaren Arten von Netzwerkadaptern.
  • Die hierin verwendete Terminologie dient lediglich dazu, bestimmte Ausführungsformen zu beschreiben, und ist nicht als einschränkend zu verstehen. In der Verwendung hierin sollen die Singular-Formen „ein“, „eine“ und „der“, „die“, „das“ auch die Pluralformen umfassen, sofern der Kontext nicht eindeutig etwas anderes angibt. Es wird des Weiteren darauf hingewiesen, dass die Begriffe „aufweist“ und/oder „aufweisend“, wenn sie in dieser Spezifikation verwendet werden, das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten bezeichnen, das Vorhandensein oder das Hinzufügen von einem oder mehreren anderen/weiteren Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen; Komponenten und/oder Gruppen davon jedoch nicht ausschließen.
  • Die entsprechenden Strukturen, Materialien, Vorgänge und Äquivalente von allen Mitteln oder Schritt-plus-Funktion-Elementen (step plus function elements) in den nachstehenden Ansprüchen, sofern vorhanden, sollen jedwede Struktur, jedwedes Material oder jedweden Vorgang zum Durchführen der Funktion in Verbindung mit anderen beanspruchten Elementen, die im Einzelnen beansprucht werden, umfassen. Die Beschreibung von einer oder mehreren Ausführungsformen erfolgte zum Zweck der Veranschaulichung und Erläuterung, sie soll aber weder erschöpfend noch auf die offenbarte Form beschränkt sein. Für den Fachmann sind viele Änderungen und Varianten erkennbar. Die Ausführungsform wurde gewählt und beschrieben, um die verschiedenen Aspekte und die praktische Anwendung bestmöglich zu erklären und um anderen Fachleuten das Verständnis verschiedener Ausführungsformen mit verschiedenen Änderungen, wie sie für die jeweilige vorgesehene Verwendung geeignet sind, zu ermöglichen.

Claims (20)

  1. Computerprogrammprodukt, das dazu dient, eine Verarbeitung innerhalb einer Datenverarbeitungsumgebung zu vereinfachen, wobei das Computerprogrammprodukt aufweist: mindestens ein durch einen Computer lesbares Speichermedium mit damit verkörperten Programmanweisungen, wobei die Programmanweisungen durch eine Verarbeitungseinheit lesbar sind, um die Verarbeitungseinheit dazu zu veranlassen, ein Verfahren durchzuführen, aufweisend: Einleiten, durch einen Host der Datenverarbeitungsumgebung, eines Entfernens eines sicheren Gastes aus der Datenverarbeitungsumgebung, und Belassen mehrerer sicherer Gast-Ressourcen des sicheren Gastes für eine Zurückforderung asynchron zum Entfernen des sicheren Gastes; und Zurückfordern der einen oder der mehreren sicheren Gast-Ressourcen asynchron zum Entfernen des sicheren Gastes, wobei die eine oder die mehreren sicheren Gast-Ressourcen zur Wiederverwendung zur Verfügung stehen, sowie die eine oder die mehreren sicheren Gast-Ressourcen asynchron zum Entfernen des sicheren Gastes zurückgefordert werden.
  2. Computerprogrammprodukt nach Anspruch 1, wobei ein Zurückfordern der einen oder der mehreren sicheren Gast-Ressourcen des sicheren Gastes nach dem und asynchron zum Entfernen des sicheren Gastes stattfindet.
  3. Computerprogrammprodukt nach Anspruch 1 oder 2, wobei ein Entfernen des sicheren Gastes ein zeitgleich mit dem Entfernen des sicheren Gastes erfolgendes Zurückfordern von einer oder mehreren weiteren sicheren Gast-Ressourcen aufweist, während die eine oder die mehreren sicheren Gast-Ressourcen des sicheren Gastes weiterhin asynchron zurückforderbar sind.
  4. Computerprogrammprodukt nach einem der vorhergehenden Ansprüche, wobei die eine oder die mehreren sicheren Gast-Ressourcen dem sicheren Gast zugeordneten Gast-Arbeitsspeicher aufweisen.
  5. Computerprogrammprodukt nach einem der vorhergehenden Ansprüche, das des Weiteren ein Angeben, durch den Host, der einen oder der mehreren sicheren Gast-Ressourcen des sicheren Gastes aufweist, die asynchron zum Entfernen des sicheren Gastes zurückgefordert werden sollen.
  6. Computerprogrammprodukt nach einem der vorhergehenden Ansprüche, wobei das Zurückfordern ein Feststellen, dass sich die eine oder die mehreren sicheren Gast-Ressourcen in einem Status „verworfen“ befinden, und, basierend darauf, dass sich die eine oder die mehreren sicheren Gast-Ressourcen im Status „verworfen“ befinden, ein Löschen der einen oder der mehreren sicheren Gast-Ressourcen zur Wiederverwendung aufweist, wobei das Löschen nach dem Entfernen des sicheren Gastes stattfindet.
  7. Computerprogrammprodukt nach Anspruch 6, wobei die eine oder die mehreren sicheren Gast-Ressourcen eine oder mehrere sichere Arbeitsspeicherseiten aufweisen und ein Feststellen ein Prüfen von Seitenmetadaten aufweist, um zu bestätigen, dass sich eine sichere Arbeitsspeicherseite der einen oder der mehreren sicheren Arbeitsspeicherseiten im Status „verworfen“ befindet.
  8. Computerprogrammprodukt nach Anspruch 7, wobei das Zurückfordern ein Löschen der einen oder der mehreren sicheren Arbeitsspeicherseiten und ein Löschen von einem oder mehreren Sicherheitsflags, das bzw. die der einen oder den mehreren sicheren Arbeitsspeicherseiten zugeordnet sind, aufweist.
  9. Computerprogrammprodukt nach einem der vorhergehenden Ansprüche, wobei das Einleiten ein Senden, durch den Host, einer Anforderung an eine sichere Plattform der Datenverarbeitungsumgebung aufweist, den sicheren Gast zu entfernen, während die eine oder die mehreren sicheren Gast-Ressourcen des sicheren Gastes weiterhin asynchron zum Entfernen des sicheren Gastes zurückforderbar sind.
  10. Computersystem, das dazu dient, eine Verarbeitung innerhalb einer Datenverarbeitungsumgebung zu vereinfachen, wobei das Computersystem aufweist: einen Arbeitsspeicher; und mindestens einen Prozessor, der mit dem Arbeitsspeicher in Verbindung steht, wobei das Computersystem so konfiguriert ist, dass es ein Verfahren durchführt, wobei das Verfahren aufweisend: Einleiten, durch einen Host der Datenverarbeitungsumgebung, eines Entfernens eines sicheren Gastes aus der Datenverarbeitungsumgebung, und Belassen mehrerer sicherer Gast-Ressourcen des sicheren Gastes für eine Zurückforderung asynchron zum Entfernen des sicheren Gastes; und Zurückfordern der einen oder der mehreren sicheren Gast-Ressourcen asynchron zum Entfernen des sicheren Gastes, wobei die eine oder die mehreren sicheren Gast-Ressourcen zur Wiederverwendung zur Verfügung stehen, sowie die eine oder die mehreren sicheren Gast-Ressourcen asynchron zum Entfernen des sicheren Gastes zurückgefordert werden.
  11. Computersystem nach Anspruch 10, wobei das Zurückfordern der einen oder der mehreren sicheren Gast-Ressourcen des sicheren Gastes nach dem und asynchron zum Entfernen des sicheren Gastes stattfindet.
  12. Computersystem nach Anspruch 10 oder 11, wobei das Entfernen des sicheren Gastes ein zeitgleich mit dem Entfernen des sicheren Gastes erfolgendes Zurückfordern von einer oder mehreren weiteren sicheren Gast-Ressourcen aufweist, während die eine oder die mehreren sicheren Gast-Ressourcen des sicheren Gastes weiterhin asynchron zurückforderbar sind.
  13. Computersystem nach einem der Ansprüche 10 bis 12, wobei die eine oder die mehreren sicheren Gast-Ressourcen dem sicheren Gast zugeordneten Gast-Arbeitsspeicher aufweisen.
  14. Computersystem nach einem der Ansprüche 10 bis 13, das des Weiteren ein Angeben, durch den Host, der einen oder der mehreren sicheren Gast-Ressourcen des sicheren Gastes aufweist, die asynchron zum Entfernen des sicheren Gastes zurückgefordert werden sollen.
  15. Computersystem nach einem der Ansprüche 10 bis 14, wobei das Zurückfordern ein Feststellen, dass sich die eine oder die mehreren sicheren Gast-Ressourcen in einem Status „verworfen“ befinden, und, basierend darauf, dass sich die eine oder die mehreren sicheren Gast-Ressourcen im Status „verworfen“ befinden, ein Löschen der einen oder der mehreren sicheren Gast-Ressourcen zur Wiederverwendung aufweist, wobei das Löschen nach dem Entfernen des sicheren Gastes stattfindet.
  16. Computersystem nach Anspruch 15, wobei die eine oder die mehreren sicheren Gast-Ressourcen eine oder mehrere sichere Arbeitsspeicherseiten aufweisen und das Feststellen ein Prüfen von Seitenmetadaten aufweist, um zu bestätigen, dass sich eine sichere Arbeitsspeicherseite der einen oder der mehreren sicheren Arbeitsspeicherseiten im Status „verworfen“ befindet.
  17. Computersystem nach Anspruch 16, wobei das Zurückfordern ein Löschen der einen oder der mehreren sicheren Arbeitsspeicherseiten und ein Löschen von einem oder mehreren Sicherheitsflags aufweist, das bzw. die der einen oder den mehreren sicheren Arbeitsspeicherseiten zugeordnet sind.
  18. Durch einen Computer ausgeführtes Verfahren, das dazu dient, eine Verarbeitung innerhalb einer Datenverarbeitungsumgebung zu vereinfachen, wobei das durch einen Computer ausgeführte Verfahren aufweist: Einleiten, durch einen Host der Datenverarbeitungsumgebung, eines Entfernens eines sicheren Gastes aus der Datenverarbeitungsumgebung, und Belassen mehrerer sicherer Gast-Ressourcen des sicheren Gastes für eine Zurückforderung asynchron zum Entfernen des sicheren Gastes; und Zurückfordern der einen oder der mehreren sicheren Gast-Ressourcen asynchron zum Entfernen des sicheren Gastes, wobei die eine oder die mehreren sicheren Gast-Ressourcen zur Wiederverwendung zur Verfügung stehen, sowie die eine oder die mehreren sicheren Gast-Ressourcen asynchron zum Entfernen des sicheren Gastes zurückgefordert werden.
  19. Durch einen Computer ausgeführtes Verfahren nach Anspruch 18, wobei das Zurückfordern der einen oder der mehreren sicheren Gast-Ressourcen des sicheren Gastes nach dem und asynchron zum Entfernen des sicheren Gastes stattfindet.
  20. Durch einen Computer ausgeführtes Verfahren nach Anspruch 18 oder 19, wobei das Entfernen des sicheren Gastes ein zeitgleich mit dem Entfernen des sicheren Gastes erfolgendes Zurückfordern von einer oder mehreren weiteren sicheren Gast-Ressourcen aufweist, während die eine oder die mehreren sicheren Gast-Ressourcen des sicheren Gastes weiterhin asynchron zurückforderbar sind.
DE112022003818.7T 2021-08-05 2022-08-02 Verzögertes zurückfordern von sicheren gast-ressourcen Pending DE112022003818T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/394,642 2021-08-05
US17/394,642 US20230039894A1 (en) 2021-08-05 2021-08-05 Deferred reclaiming of secure guest resources
PCT/IB2022/057151 WO2023012655A1 (en) 2021-08-05 2022-08-02 Deferred reclaiming of secure guest resources

Publications (1)

Publication Number Publication Date
DE112022003818T5 true DE112022003818T5 (de) 2024-05-29

Family

ID=85153560

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112022003818.7T Pending DE112022003818T5 (de) 2021-08-05 2022-08-02 Verzögertes zurückfordern von sicheren gast-ressourcen

Country Status (5)

Country Link
US (1) US20230039894A1 (de)
CN (1) CN117751352A (de)
DE (1) DE112022003818T5 (de)
GB (1) GB2624593A (de)
WO (1) WO2023012655A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829495B2 (en) * 2021-08-05 2023-11-28 International Business Machines Corporation Confidential data provided to a secure guest via metadata

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223256B1 (en) * 1997-07-22 2001-04-24 Hewlett-Packard Company Computer cache memory with classes and dynamic selection of replacement algorithms
US20050235045A1 (en) * 2004-03-05 2005-10-20 International Business Machines Corporation Portable personal computing environment server
US8943260B2 (en) * 2011-03-13 2015-01-27 International Business Machines Corporation Dynamic memory management in a virtualized computing environment
US8578006B2 (en) * 2011-03-29 2013-11-05 Symantec Corporation Enabling selective policy driven propagation of configuration elements between and among a host and a plurality of guests
CN103870332B (zh) * 2012-12-13 2017-08-25 中国电信股份有限公司 虚拟机处理器资源的调整方法、装置与虚拟机系统
CN106503547B (zh) * 2016-09-30 2019-07-05 北京北信源软件股份有限公司 一种基于VMWare WorkStation的Windows虚拟机进程枚举方法
US10348813B2 (en) * 2016-10-28 2019-07-09 International Business Machines Corporation Provisioning a bare-metal server
US10740227B2 (en) * 2017-04-28 2020-08-11 Vmware, Inc. Reclaiming storage resources
US10778432B2 (en) * 2017-11-08 2020-09-15 Wickr Inc. End-to-end encryption during a secure communication session
US11030120B2 (en) * 2019-06-27 2021-06-08 Intel Corporation Host-convertible secure enclaves in memory that leverage multi-key total memory encryption with integrity
US11533174B2 (en) * 2020-01-29 2022-12-20 International Business Machines Corporation Binding secure objects of a security module to a secure guest
US20220318042A1 (en) * 2021-04-01 2022-10-06 RAMScaler, Inc. Distributed memory block device storage

Also Published As

Publication number Publication date
GB202402897D0 (en) 2024-04-17
CN117751352A (zh) 2024-03-22
WO2023012655A1 (en) 2023-02-09
TW202307707A (zh) 2023-02-16
US20230039894A1 (en) 2023-02-09
GB2624593A (en) 2024-05-22

Similar Documents

Publication Publication Date Title
DE112020000558B4 (de) Dynamisches ändern einer isolierung einer containerisierten arbeitslast in reaktion auf eine erfassung eines auslösenden faktors
DE112016003120B4 (de) Umleiten einer Kopie beim Schreiben
DE112015001977B4 (de) Synchronisieren von Aktualisierungen von Statusanzeigern in einer Datenverarbeitungsumgebung
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
DE112012005032T5 (de) Entfernen der Datenremanenz in deduplizierten Speicher-Clouds
DE112016005571T5 (de) Aufrufergeschützte stapelrücksprungadresse in einer hardware-verwalteten stapelarchitektur
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
DE102016222861A1 (de) Transparentes, sicheres Durchführen von Abrufvorgängen
DE112020000280B4 (de) Transparente interpretation von gastbefehlen in einer sicheren virtuellen maschinenumgebung
DE112017005588T5 (de) Speichern und abrufen von eingeschränkten datensätzen in und aus einem cloud-netzwerk mit nichteingeschränkten datensätzen
DE102016204698A1 (de) Verbessern des Erkennens von Steganographie am Perimeter
DE112020005625T5 (de) Binden sicherer objekte eines sicherheitsmoduls an einen sicheren gast
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112017005022T5 (de) Umladen der Bandverarbeitung auf Objektspeicher
DE112021004290T5 (de) Gemeinsames nutzen von zwischengespeicherten klassendaten in einer containerisierten umgebung
DE102016105062A1 (de) Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten
DE112020005526T5 (de) Reservieren eines oder mehrerer sicherheitsmodule für einen sicheren gast
DE112020000285T5 (de) Programmunterbrechungen für Seiten-Import/-Export
DE112020003351T5 (de) Automatisches Erkennen von Ransomware mit einer Sperrung des Dateisystems auf Abruf und einer automatischen Reparaturfunktion
DE112019000399T5 (de) Schnelle wiederherstellung nach ausfällen in einem chronologisch geordneten log-strukturierten schlüssel-wert-speichersystem
DE102021123058A1 (de) Maskieren von sensiblen informationen in einem dokument
DE112019003130T5 (de) Hsm-selbstzerstörung in einer hybriden cloud-kms-lösung
DE112019000402T5 (de) Chronologisch geordnetes out-of-place-aktualisierungs-schlüssel-wert-speichersystem
DE112020003825T5 (de) Entsprechung zwischen externen Operationen und Containern sowie Mutationsereignissen
DE112019002052T5 (de) Datenschutzsensibilisierung bei der bereitstellung von arbeitslasten

Legal Events

Date Code Title Description
R012 Request for examination validly filed