DE202012013464U1 - Bandbreitendrosselung virtueller Festplatten - Google Patents

Bandbreitendrosselung virtueller Festplatten Download PDF

Info

Publication number
DE202012013464U1
DE202012013464U1 DE202012013464.7U DE202012013464U DE202012013464U1 DE 202012013464 U1 DE202012013464 U1 DE 202012013464U1 DE 202012013464 U DE202012013464 U DE 202012013464U DE 202012013464 U1 DE202012013464 U1 DE 202012013464U1
Authority
DE
Germany
Prior art keywords
disk
access
virtual
latency
requested
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE202012013464.7U
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE202012013464U1 publication Critical patent/DE202012013464U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

Maschinell lesbares Medium, auf dem Befehle gespeichert sind, worin die Befehle bei Ausführung durch einen oder mehrere Prozessoren die Prozessoren veranlassen, Vorgänge auszuführen, die die folgenden umfassen: das Empfangen einer ersten Festplattenzugriffs-Anfrage für einen Festplatten-Input/Output-(I/O)-Zugriff auf eine virtuelle Festplatte einer virtuellen Maschine, wobei die virtuelle Festplatte eine lokale physische Festplatte für die virtuelle Maschine emuliert; das Ermitteln simulierter Latenzkosten für den angefragten Festplatten-I/O-Zugriff gemäß eines oder mehrerer Latenz- und Durchsatzmerkmale der lokalen physischen Festplatte, die durch die virtuelle Festplatte emuliert wird, wobei die simulierten Latenzkosten eine simulierte Datenübertragungslatenz und eine simulierte Direktzugriffs-Latenz für die Ausführung des angefragten Festplatten-I/O-Zugriffs auf einer lokalen physischen Festplatte beinhalten, die durch die virtuelle Festplatte emuliert wird; und das Bestimmen, ob die Ausführung des angefragten Festplatten-I/O-Zugriffs verzögert werden soll, basierend auf einem Vergleich zwischen den simulierten Latenzkosten und einem aktuellen Wert eines Festplattendienst-Zugriffskontingents, das der virtuellen Festplatte zugeordnet ist, worin der aktuelle Wert des Festplattendienst-Zugriffskontingents im Zeitverlauf wieder aufgefüllt wird, an einer vorab festgelegten Obergrenze begrenzt und um die jeweiligen simulierten Latenzkosten jeder der vorausgehenden Festplattenzugriffs-Anfragen für die virtuelle Festplatte begrenzt wird, wenn der jeweilige angefragte Festplatten-I/O-Zugriff der vorhergehenden Festplattenzugriffs-Anfrage ausgeführt worden ist.

Description

  • VERWEIS
  • Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
  • HINTERGRUND
  • Diese Spezifikation bezieht sich auf die Verwaltung von Systemressourcen.
  • Cloud Computing (Datenverarbeitung auf Rechnerwolken) ist eine netzwerkbasierte Datenverarbeitung, bei der Sammlungen von Servern, die in Datenzentren untergebracht sind, entfernten Endbenutzern nach Bedarf Computerressourcen und Datenspeicherplatz bereitstellen. Einige Cloud Computing-Dienstanbieter bieten Endbenutzern virtuelle Maschinen an, die auf einem oder mehreren Server gehostet werden, und ermöglichen den Endbenutzern die Installation und Ausführung von Software-Anwendungen auf virtuellen Maschinen. Einige Cloud Computing-Dienstanbieter bieten Endbenutzern auch Zugriff auf Software-Anwendungen über Web-Dienste, die auf einer oder mehreren virtuellen Maschinen laufen.
  • Eine virtuelle Maschine ist ein Software-Prozess, der auf einer physischen Host-Maschine (z. B. einem Cloud Computing-Server) ausgeführt wird. Die virtuelle Maschine ahmt einen physischen Computer nach, der andere Software-Programme ausführen und auf physische und/oder virtuelle Ressourcen zugreifen kann, die der virtuellen Maschine durch die Host-Maschine zur Verfügung gestellt werden. Die für die Host-Maschine verfügbaren physischen und virtuellen Ressourcen können zwischen mehreren virtuellen Maschinen aufgeteilt werden, die auf der Host-Maschine gestartet werden. In einigen Implementierungen können einer virtuellen Maschine ein oder mehrere virtuelle Speichermedien für die Datenspeicherung zugeordnet sein. Jede virtuelle Festplatte der virtuellen Maschine emuliert eine physische Festplatte (HDD) hinsichtlich der Input/Output-(I/O)-Zugriffe in Bezug auf die virtuelle Maschine. Ein Cloud-Dienst-Anbieter kann verschiedene Arten zugrunde liegender Hardware- und Software-Infrastrukturen verwendet, um virtuelle Festplatten für virtuelle Maschinen zur Verfügung zu stellen.
  • ZUSAMMENFASSUNG
  • In dieser Spezifikation werden die Technologien beschrieben, die die Verwaltung von Ressourcen in einem Computersystem betreffen.
  • Allgemein kann ein innovativer Aspekt des in dieser Spezifikation beschriebenem Themas in Verfahren ausgeführt sein, die die folgenden Aktionen beinhalten: das Ermöglichen des Zugriffs auf eine Vielzahl virtueller Festplatten, worin die Vielzahl virtueller Festplatten auf einer Vielzahl darunter liegender physischer Speichermedien gehostet werden, die von einem oder mehreren Servern verwaltet werden; das Ermitteln simulierter Latenzkosten für jede Festplattenzugriffs-Anfrage, der für jede der Vielzahl virtueller Festplatten empfangen wird, gemäß einer oder mehrerer Latenz- und Durchsatzmerkmale einer lokalen physischen Festplatte, die von der virtuellen Festplatte emuliert wird; sowie die Steuerung der Schnelligkeit, mit der die Zugriffe auf die jeweilige angefragte Festplatte aus der Vielzahl virtueller Festplatten auf der Vielzahl darunter liegender Speichermedien ausgeführt werden gemäß eines Vergleichs zwischen den simulierten Latenzkosten der jeweiligen angefragten Festplattenzugriffe und einer simulierten Festplattenzugriffs-Kapazität der lokalen physischen Festplatte, die durch die virtuelle Festplatte emuliert wird.
  • Allgemein kann ein anderer innovativer Aspekt des in dieser Spezifikation beschriebenem Themas in Verfahren ausgeführt ein, die die folgenden Aktionen beinhalten: das Empfangen einer ersten Festplattenzugriffs-Anfrage für einen Festplatten-Input/Output-(I/O)-Zugriff auf eine virtuelle Festplatte einer virtuellen Maschine, wobei die virtuelle Festplatte eine lokale physische Festplatte für die virtuelle Maschine emuliert; das Ermitteln simulierter Latenzkosten für den angefragten I/O-Zugriff gemäß einer oder mehrerer Latenz- und Durchsatzmerkmale der lokalen physischen Festplatte, die durch die virtuelle Festplatte emuliert wird, wobei die simulierten Latenzkosten eine simulierte Datenübertragungs-Latenz und eine simulierte Direktzugriffs-Latenz für die Durchführung des angefragten Festplatten-I/O-Zugriffs auf die lokale physische Festplatte beinhaltet, die durch die virtuelle Festplatte emuliert wird; und die Bestimmung, ob die Ausführung des angefragten Festplatten-I/O-Zugriffs verzögert werden soll basierend auf einem Vergleich zwischen den simulierten Latenzkosten und einem aktuellen Wert eines Festplattendienst-Zugriffskontingents, das der virtuellen Festplatte zugeordnet ist, worin der aktuelle Wert des Festplattenzugriffs-Leitungskontingents im Zeitverlauf gefüllt wird, an einer vorbestimmten Obergrenze begrenzt wird und um die jeweiligen simulierten Latenzkosten jeder vorangehenden Festplattenzugriffs-Anfrage für die virtuelle Festplatte vermindert wird, wenn der betreffende angefragte Festplatten-I/O-Zugriff der vorangehenden Festplattenzugriffs-Anfrage ausgeführt worden ist.
  • Diese und andere Ausführungsformen können als Option eines oder mehrere der folgenden Merkmale beinhalten.
  • In einigen Implementierungen beinhaltet die virtuelle Festplatte logische Datenblöcke, die physische Datenblöcke abbilden, welche über mehreren physischen Speichereinrichtungen verteilt sind.
  • In einigen Implementierungen beinhalten die Aktionen weiter: die Ausführung angefragter I/O-Zugriffe für mehrere Festplattenzugriffs-Anfragen parallel auf mehreren physikalischen Speichereinrichtungen, unter der Voraussetzung, dass der aktuelle Wert des Festplattenzugriffs-Kontingents größer ist als eine Summe der jeweils simulierten Latenzkosten der mehreren Festplattenzugriffs-Anfragen.
  • In einigen Implementierungen ist die virtuelle Festplatte eine aus einer Vielzahl virtueller Festplatten, die auf mehreren Speichereinrichtungen gehostet werden, und die Aktionen beinhalten weiter: für jede der mehreren virtuellen Festplatten: das Erhöhen eines jeweiligen Festplattendienst-Zugriffskontingents der virtuellen Festplatte gemäß einer vorab festgelegten Auffüllrate, die zu der virtuellen Festplatte gehört, bis ein aktueller Wert des jeweiligen Festplattendienst-Zugriffskontingents eine jeweils vorab festgelegte zu der virtuellen Festplatte gehörige Obergrenze erreicht; sowie das temporäre Pausieren des Erhöhens, bis der aktuelle Wert des jeweiligen Festplattendienst-Zugriffskontingents der virtuellen Festplatte unter die jeweils vorab festgelegte zu der virtuellen Festplatte gehörige Obergrenze fällt.
  • In einigen Implementierungen beinhalten die Aktionen weiter: das Aufzeichnen der jeweiligen Endpositionen von einer oder mehreren der Festplattenzugriffs-Anfragen für die virtuelle Festplatte, die während eines vorab festgelegten Zeitraums unmittelbar vor der aktuellen Zeit empfangen wurden; und das Berechnen der simulierten Direktzugriffs-Latenz für den angefragten Festplatten-I/O-Zugriff der ersten Festplattenzugriffs-Anfrage, basierend auf mindestens einer Suchdistanz zwischen einer Startposition des angefragten Festplatten-I/O-Zugriffs und einer nächsten Endposition unter den jeweiligen Endpositionen von der einen oder den mehreren vorangehenden Festplattenzugriffs-Anfragen.
  • In einigen Implementierungen beinhalten die Aktionen weiter: (1) wenn festgestellt wird, dass die simulierten Latenzkosten der ersten Festplattenzugriffs-Anfrage genau bei oder unter unter dem aktuellen Wert des Festplattendienst-Zugriffskontingents liegen, dass der virtuellen Festplatte zugeordnet ist: das Ausführen des angefragten Festplatten-I/O-Zugriffs der ersten Festplattenzugriffs-Anfrage; sowie das Abziehen der simulierten Latenzkosten des angefragten I/O-Zugriffs von dem aktuellen Wert des Festplattendienst-Zugriffskontingents, das der virtuellen Festplatte zugeordnet ist; und (2) wenn festgestellt wird, dass die simulierten Latenzkosten der ersten Festplattenzugriffs-Anfrage den aktuellen Wert des der virtuellen Festplatte zugeordneten Festplattendienst-Zugriffskontingents übersteigen: das Vorhalten der ersten Festplattenzugriffs-Anfrage in einer Warteschlange, bis der aktuelle Wert des Festplattendienst-Zugriffskontingents die simulierten Latenzkosten der ersten Festplattenzugriffs-Anfrage durch das geplante Auffüllen erreicht oder übertroffen hat.
  • In einigen Implementierungen umfassen die Aktionen weiter: das Überwachen der Antwortzeit für die jeweiligen Festplattenzugriffs-Anfragen für einer Vielzahl virtueller Festplatten, die eine Vielzahl von darunter liegenden physischen Speichervorrichtungen gemeinsam nutzen; das Überwachen des Auslastungsgrades einer Festplattenzugriffs-Kapazität der Vielzahl darunter liegender physischer Speichervorrichtungen; sowie das Anpassen von eines oder mehreren aus einer Gruppe vorab festgelegter Parameter, wobei die Gruppe vorab festgelegter Parameter Auffüllraten und Obergrenzen der jeweiligen Festplattendienst-Zugriffskontingente der Vielzahl von virtuellen Festplatten und einen oder mehrere vorab festgelegte Werte beinhalten, die für die Berechnung der simulierten Latenzkosten des angefragten Festplatten-I/O-Zugriffs verwendet werden.
  • Bestimmte Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands können so implementiert werden, dass sie einen oder mehrere der folgenden Vorteile verwirklichen.
  • In einigen Implementierungen wird der Festplattenzugriff auf eine virtuelle Festplatte gemäß Latenz- und Durchsatzmerkmalen eines physischen Festplattenlaufwerks gedrosselt, das durch die virtuelle Festplatte emuliert wird. Viele vorhandene, auf virtuellen Maschinen installierte Software-Applikationen sind für Computersysteme optimiert, die an physische Festplattenlaufwerken angeschlossen sind. Durch das künstliche Drosseln des Festplattenzugriffs auf die virtuellen Festplatten in einer Art, die die Zugriffslatenz-Merkmale physischer Festplattenlaufwerke simuliert, können die in den Software-Applikationen implementierten vorhandenen Festplattenzugriffsoptimierungen wie ursprünglich entworfen wirken, um die Benutzererfahrung zu verbessern.
  • In einigen Implementierungen werden die für die Unterstützung des I/O-Zugriffs auf virtuelle Festplatten benötigen Ressourcen (z. B. Speicher- und Netzwerkressourcen) von mehreren virtuellen Festplatten mehrerer virtueller Maschinen gemeinsam genutzt. Stabile Dienstlevel und gleichmäßig verteilte Nutzung der Ressourcen können leiden, wenn einige der virtuellen Maschinen die Festplattenzugriffs-Latenzmerkmale der Cloud-basierten Festplatten zum Nachteil der virtuellen Maschinen ausnutzen. Durch das künstliche Begrenzen der Festplattenzugriffs-Kapazitäten der Cloud-basierten virtuellen Festplatten gemäß der Latenz- und Durchsatzmerkmale physischer Festplattenlaufwerke können die Festplattenzugriffs-Dienstlevel virtueller Festplatten auf einem stabilen Level gehalten werden. Diese stabilen Dienstlevel können zu einer verbesserten Benutzererfahrung führen. Große Latenzen und unvorhergesehene Unterbrechungen des Zugriffs auf die virtuellen Festplatten aufgrund von ungleich verteilter Nutzung von Festplattenzugriffsressourcen können reduziert werden.
  • Die Details einer oder mehrerer Ausführungsformen des in dieser Spezifikation behandelten und beschriebenen Gegenstands sind in den begleitenden Bildern und der Beschreibung unten dargelegt. Andere Merkmale, Aspekte und Vorteile des Gegenstands werden aus der Beschreibung, den Zeichnungen und den Ansprüchen deutlich.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 stellt ein Beispiel für das Hosting mehrerer virtueller Maschinen dar.
  • 2 stellt einen Beispiel-Dienstmanager für die Steuerung des Zugriffs auf mehrere virtuelle Festplatten durch mehrere virtuelle Maschinen dar.
  • 3 ist ein Flussdiagramm eines Beispielprozesses für die Drosselung des Zugriffs auf virtuelle Festplatten gemäß der Latenz- und Durchsatzmerkmale physischer Festplattenlaufwerke, die durch virtuelle Festplatten emuliert werden.
  • 4 ist ein Flussdiagramm eines Beispielprozesses für die Drosselung des Zugriffs auf eine virtuelle Festplatte gemäß der Latenz- und Durchsatzmerkmale eines physischen Festplattenlaufwerks, das durch die virtuelle Festplatte emuliert wird.
  • 5 ist ein Flussdiagramm eines Beispielprozesses für das Auffüllen des Festplattenzugriffskontingents, das einer virtuellen Festplatte zugeordnet ist.
  • 6 ist ein Flussdiagramm eines Beispielprozesses für die Berechnung simulierter Direktzugriffs-Kosten für einen angefragten I/O-Zugriff auf eine virtuelle Festplatte.
  • 7 ist ein Flussdiagramm eines Beispielprozesses für die Steuerung der Terminierung für die Ausführung eines angefragten I/O-Zugriffs auf eine virtuelle Festplatte basierend auf einem Vergleich zwischen dem aktuellen Wert eines Festplattendienst-Zugriffskontingents, das zu einem virtuellen Festplatten gehört, und den simulierten Latenzkosten des angefragten I/O-Zugriffs.
  • 8 ist ein Flussdiagramm eines Beispielprozesses für die Überwachung der Zugriffs-Antwortzeit für mehrere virtuelle Festplatten, die durch mehrere physische Speichereinheiten unterstützt werden, und eines Auslastungsgrades der Festplattenzugriffs-Kapazitäten der mehreren physischen Speichervorrichtungen, und die Anpassung der Drosselungsparameter der virtuellen Festplatten basierend auf der Überwachung.
  • Entsprechende Referenznummern und Kennzeichnungen in den verschiedenen Zeichnungen zeigen entsprechende Elemente an.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 ist eine schematische Darstellung einer Beispiel-Cloud-Computing-Umgebung 100. Die Cloud-Computing-Umgebung 100 beinhaltet eine oder mehrere Host-Maschinen 102 eines Cloud-Computing-Dienstanbieters. Die eine oder mehrere Host-Maschinen 102 bieten über ein oder mehrere Netzwerke 106 Cloud-basierte Dienste für Endbenutzer 104 an, etwa Software-Dienste, Plattform-Dienste und Framework-Dienste. Die Cloud-basierten Dienste können dynamisch bereitgestellt werden, ausgesetzt und/oder entfernt, auf Basis des Bedarfs der Host-Maschinen 102.
  • Im Allgemeinen stellt eine Host-Maschine 102 einen oder mehrere datenverarbeitende Apparate dar, etwa ein rackmontierter Server oder eine andere Rechenvorrichtung. Der Datenverarbeitungsapparat der Host-Maschine 102 kann sich an unterschiedlichen physischen Orten befinden und unterschiedliche Fähigkeiten und Computerarchitekturen besitzen. Mehrere Host-Maschinen 102 können miteinander über ein oder mehrere interne Datenkommunikationsnetzwerke (nicht dargestellt) des Cloud-Dienstanbieters kommunizieren. Die Host-Maschinen 102 können auch mit Geräten aus externen Netzwerken, etwa aus dem Internet, kommunizieren.
  • Jede Host-Maschine 102 kann ein Host-Betriebssystem 108 oder andere Software ausführen, das/die die zugrunde liegende Host-Maschinenhardware virtualisiert und die gleichzeitige Ausführung einer oder mehrerer virtueller Maschinen 110 verwaltet. Zusätzlich können eine oder mehrere Host-Maschinen 102 verschiedene Dienste und/oder virtualisierte Hartware-Ressourcen anbieten, die von mehreren anderen Host-Maschinen 102 und/oder virtuellen Maschinen 110 gemeinsam genutzt werden können. In einigen Implementierungen kann eine Host-Maschine 102 über ein oder mehrere Netzwerke (z. B. ein oder mehrere interne Netzwerke und/oder das Internet auf Hardware-Ressourcen und/oder virtuelle Ressourcen zugreifen, etwa physische Datenspeichervorrichtungen und/oder virtuelle Speichervorrichtungen).
  • Wie zum Beispiel in 1 dargestellt, können die eine oder mehrere Host-Maschinen 102 des Cloud-Computing-Dienstanbieters konzeptionell ein System darstellen, das eine physische Schicht 112, eine Dienst-Schicht 110, eine Host-Betriebssystem-(OS)-Schicht 116 und eine virtuelle Maschinen-Schicht 118 besitzt. Die physische Schicht 112 beinhaltet Hardware- und Firmware-Ressourcen der Host-Maschinen 102 einschließlich, zum Beispiel, Speicher, Prozessoren, Netzwerkausstattung, I/O-Ports, Datenspeichervorrichtungen, I/O-Vorrichtungen. In einigen Implementierungen beinhaltet die physische Schicht physische Ressourcen (z. B. Festplattenlaufwerke), auf die von der Host-Maschine 102 aus über ein oder mehrere Netzwerke zugegriffen werden kann und die nicht lokal mit den Datenverarbeitungsapparaten der Host-Maschine 102 verbunden sein müssen. Die Dienst-Schicht 114 beinhaltet Dienste, die der Host-Maschinen 102 zur Verfügung gestellt werden, zum Beispiel, über eine oder mehrere dafür vorgesehene Maschinen und Prozesse des Cloud-Computing-Dienstanbieters. Diese Dienste beinhalten zum Beispiel Netzwerk-Dienste 132, Datenbank-Dienste 134, Webhosting-Dienste 136 und Firewall-Dienste 138. Die virtuelle Maschine-Schicht 118 beinhaltet virtuelle Maschinen 110, die verwendet werden, um dem Endbenutzer 104 die Cloud-basierten Dienste anzubieten. Die Host-OS-Schicht 116 beinhaltet Host-Betriebssystgeme 108, die die virtuellen Maschinen 110 in der virtuellen Maschinen-Schicht 118 verwalten. Die Host-Betriebssysteme 108 ermöglichen auch den Zugriff auf die Dienste in der Dienst-Schicht 114 und die physischen Ressourcen in der physischen Schicht 112 durch die virtuellen Maschinen 110.
  • In einigen Implementierungen kann ein Host-Betriebssystem 108 einer Host-Maschine 102 eine einzelne virtuelle Maschine 110 oder mehrere virtuelle Maschinen 110 (z. B. die virtuellen Maschinen 110a und 110b) starten und verwalten. Jede virtuelle Maschine 110 ist ein Software-Prozess, der auf dem Host-Betriebssystem 108 ausgeführt wird und die Hardware und Computerarchitektur der darunterliegenden Host-Maschine emuliert. Die Version der Maschinen-Hardware, die durch den Prozess der virtuellen Maschine emuliert wird, wird als virtuelle Hardware 134 bezeichnet (z. B. virtuelle Hardware 134a und 134b). Die virtuelle Hardware 134 einer virtuellen Maschine 110 beinhaltet, zum Beispiel, virtuelle Speicher, einen oder mehrere virtuelle Prozessoren und ein oder mehrere virtuelle Festplattenlaufwerke (auch bezeichnet als ”virtuelle Festplatten”).
  • In einigen Implementierungen kann eine virtuelle Hardware 134 einer virtuellen Maschine 110 direkt eine oder mehrere physische Vorrichtungen einer Host-Maschine 102 abbilden. In einigen Implementierungen kann die virtuelle Hardware 134 einer virtuellen Maschine 110 eine oder mehrere virtualisierte Vorrichtungen abbilden, die der Host-Maschine 102 durch andere Host-Maschinen über ein oder mehrere Netzwerke bereitgestellt werden. In einigen Implementierungen kann die virtuelle Hardware 134 der virtuellen Maschine 110 eine oder mehrere physische Vorrichtungen abbilden, die nicht lokal mit den Datenverarbeitungsapparaten der Host-Maschinen 102 verbunden sind, auf die jedoch durch die Datenverarbeitungsapparate der Host-Maschinen 102 über ein oder mehrere Netzwerke zugegriffen werden kann.
  • Zum Beispiel kann einer virtuellen Maschine 110 ein Satz virtueller Speicherseiten aus dem virtuellen Speicher des darunter liegenden Host-Betriebssystems 108 zugeordnet werden. Zusätzlich können der virtuellen Maschine 110 virtuelle Festplattenblöcke (z. B. auf einer oder mehreren virtuellen Festplatten) von einer oder mehreren physischen Speichervorrichtungen der darunter liegenden Host-Maschine 102 zugeordnet werden, einschließlich einer oder mehrerer physischer Festplattenlaufwerke, die lokal mit der Host-Maschine 102 verbunden sind oder auf die die Host-Maschine 102 über ein oder mehrere Netzwerke zugreifen kann. Jeder logische Datenblock auf einer virtuellen Festplatte kann einen entsprechenden physischen Datenblock auf einer physischen Datenspeichervorrichtung abbilden.
  • In einigen Implementierungen können die Host-Maschinen 102 der Cloud-Computing-Dienstanbieter eine große Anzahl virtueller Festplatten bereitstellen unter Verwendung mehrerer physischer Speichervorrichtungen, die in Datencentern untergebracht sind. Die logischen Datenblöcke jeder virtuellen Festplatte können physische Datenblöcke abbilden, welche über mehreren physischen Speichereinrichtungen verteilt sind. Gleichzeitig können logische Datenblöcke mehrerer virtueller Festplatten die physischen Datenblöcke auf derselben physischen Speichervorrichtung abbilden. Die Host-Maschinen 102 können Festplattenzugriffs-Anfragen an die virtuellen Festplatten durch virtuelle Maschinen und/oder andere Prozesse abfangen. Die Host-Maschinen 102 können dann für die anfragenden Maschinen und/oder Prozesse die angefragten Festplattenzugriffe auf die physischen Datenspeichervorrichtungen ausführen, die unter den virtuellen Festplatten liegen. In einigen Implementierungen führen die Host-Maschinen 102 die Datenkommunikation mit den darunter liegenden physischen Datenspeichervorrichtungen über ein oder mehrere interne Netzwerke und/oder Zwischenserver des Cloud-Serviceanbieters aus.
  • Im Allgemeinen wird Software, die durch die virtuelle Hardware 134 der virtuellen Maschine 110 ausgeführt wird, als Gast-Software bezeichnet. In vielen Fällen kann die Gast-Software nicht bestimmen, ob sie auf einer virtuellen Hardware 134 oder auf einer physischen Host-Maschine 102 ausgeführt wird. Eine Gast-Software einer virtuellen Maschine 110 kann ein Gast-Betriebssystem 136 (z. B. Gast-Betriebssystem 136a und Gast-Betriebssystem 136b) beinhalten, das Software darstellt, die die Ausführung entsprechender Gast-Software-Applikationen 138 (z. B. Gast-Applikationen 138a und 138b) innerhalb der virtuellen Maschine 110 steuert. Das Gast-Betriebssystem 136 bietet den Gast-Applikationen 138 auch Dienste, etwa Netzwerk-Dienste, I/O-Dienste, Netzwerk-Dienste, und weitere. In weiteren Implementierungen benötigt eine virtuelle Maschine 110 kein Gast-Betriebssystem 136, um die Gast-Software-Applikationen 138 auszuführen. In einigen Implementierungen wird der Zugriff eines Gast-Betriebssystems 136 auf Ressourcen wie Netzwerke und Datenspeicher wird durch das zugrunde liegende Betriebssystem 108 gesteuert.
  • Zur Darstellung und mit Bezug auf die virtuelle Maschine 116a, sendet, wenn eine Gast-Applikation 138a oder das Gast-Betriebssystem 136a versucht, eine I/O-Operation auf einer virtuellen Festplatte der virtuellen Maschine 110a durchzuführen, die Gast-Applikation 138a oder das Gast-Betriebssystem 136a eine Festplattenzugriffs-Anfrage an die virtuelle Festplatte. Die Festplattenzugriffs-Anfrage gibt die Startposition der angefragten Festplattenzugriffs-Operation und die Größe und den Bereich der Datenübertragung an, die zu der angefragten Festplattenzugriffs-Operation gehören. Die Startposition der angefragten Festplattenzugriffs-Operation kann einen logischen Datenblock auf einer virtuellen Festplatte kennzeichnen.
  • Wenn das Host-Betriebssystem 108, welches die virtuelle Maschine 110a hostet, die Festplattenzugriffs-Anfrage erkennt, die von der Gast-Applikation 138a oder dem Gast-Betriebssystem 136a ausgegeben wurde, dann fängt das Host-Betriebssystem 108 die Festplattenzugriffs-Anfrage ab und führt anstelle der virtuellen Maschine 116a den angefragten Festplattenzugriff auf das physische Speichermedium aus, welches unter der virtuellen Festplatte liegt. In einigen Implementierungen kann das Host-Betriebssystem 108 der virtuellen Maschine 110a die physischen Datenblöcke auf der darunter liegenden physischen Speichervorrichtung identifizieren, die die logischen Datenblöcke der virtuellen Festplatte abbilden, und den angefragten I/O-Zugriff auf die physische Datenblöcke direkt ausführen. In einigen Implementierungen kann das Host-Betriebssystem 108 der virtuellen Maschine 110a die Festplattenzugriffs-Anfrage direkt an einen anderen Server weiterleiten, der den Festplattenzugriff auf die virtuelle Festplatte sowie auf viele andere virtuelle Festplatten verwaltet.
  • Wie bereits dargelegt kann in einigen Implementierungen ein Cloud-Computing-Dienstanbieter verschiedene Arten von Hardware- und Software-Infrastrukturen nutzen, um Datenspeicherungsmöglichkeiten zu bieten, die von virtuellen Maschinen benötigt werden, einschließlich virtueller Festplatten. Eine einzelne virtuelle Festplatte einer virtuellen Maschine kann auf mehrere Festplattenlaufwerke aufgeteilt sein, die sich alle am selben oder an unterschiedlichen geographischen Orten befinden. Im Allgemeinen können mehrere in Folge angefragte I/O-Zugriffe auf ein physisches Festplattenlaufwerk nur nacheinander ausgeführt werden, z. B. sequentiell und der Reihe nach, in der die I/O-Zugriffsanfragen von dem physischen Festplattenlaufwerk empfangen wurden. Dagegen können mehrere in Folge angefragte I/O-Zugriffe an eine virtuelle Festplatte, die ein physisches Festplattenlaufwerk emuliert, parallel ausgeführt werden, wenn die Zugriffe sich auf Datenblöcke beziehen, die auf verschiedene Speichervorrichtungen in der physischen Schicht verteilt sind, die unter der virtuellen Festplatte liegt. Daher können, wenn keine künstliche Drosselung des virtuellen Festplatte vorgenommen wird, die Latenz- und Durchsatzmerkmale der virtuellen Festplatte stark von den Latenz- und Durchsatzmerkmalen der physischen Festplatte abweichen, die durch die virtuelle Festplatte emuliert wird.
  • Genauer gesagt haben für ein physisches Festplattenlaufwerk sequentielle Festplattenzugriffe und Direkt-Festplattenzugriffe unterschiedliche Latenz- und Durchsatzmerkmale. Ein angefragter I/O-Zugriff auf eine physische Festplatte gilt als sequentiell zu einem unmittelbar zuvor auf der physischen Festplatten ausgeführten I/O-Zugriff, wenn der Startort des späteren I/O-Zugriffs angrenzend an den (oder innerhalb einer festgelegten kurzen Entfernung von dem) Endpunkt des I/O-Zugriffs liegt, der unmittelbar zuvor ausgeführt wurde. Ein angefragter I/O-Zugriff wird als Direktzugriff bezeichnet, wenn der Startort des angefragten I/O-Zugriffs nicht angrenzend an den (oder außerhalb einer festgelegten kurzen Entfernung von dem) Endpunkt des I/O-Zugriffs liegt, der unmittelbar zuvor auf der physischen Festplatte ausgeführt wurde. Wie unten dargelegt, benötigt ein Direktzugriff für gewöhnlich mehr Zeit als ein sequentieller Zugriff, wenn die Menge der bei beiden übertragenen Daten übereinstimmen.
  • Die Latenz eines sequentiellen I/O-Zugriffs beinhaltet eine Datenübertragungslatenz und eine kleine Verarbeitungsaufwands-Latenz. Die Datenübertragungslatenz hängt vor allem von der Menge der bei dem angefragten Festplattenzugriff übertragenen Daten ab. Verglichen mit einem sequentiellen Zugriff beinhaltet ein Direktzugriff eine Direktzugriffs-Latenz. Die Direktzugriffs-Latenz basiert auf der Zeit, die benötigt wird, um den Lesekopf der physischen Festplatte zu bewegen und auf dem physischen Festplattenblock auf einem Datenspeichermedium (etwa eine magnetische Festplatte) der physischen Festplatte zu positionieren. Je nach Ausgangsposition des Lesekopfs (z. B. die Endposition des unmittelbar vorangehenden I/O-Zugriffs) zur Zeit der Ausführung des Direktzugriffs kann die Zeit, die benötigt wird, um den Lesekopf der physischen Festplatte zu bewegen und an der Startposition des Direktzugriffs zu positionieren, variieren.
  • Die genaue Beziehung zwischen der Direktzugriffs-Latenz eines angefragten I/O-Zugriffs auf einer physischen Speichervorrichtung und der relativen Position zwischen dem Startort des angefragten I/O-Zugriffs und einem Endort des ursprünglichen Ortes des Lesekopfs (z. B. die Endposition des unmittelbar vorangehenden I/O-Zugriffs) hängen von der physischen und mechanischen Struktur der Speichervorrichtung ab. Im Allgemeinen beinhaltet die Direktzugriffs-Latenz einer physischen Festplatte zum Beispiel die Zeit für das lineare Bewegen des Lesekopfs zur gewünschten Schiene auf einer Speicherplatte (die sogenannte „Suchlatenz”) und die Zeit für das Rotieren der Speicherplatte, sodass der gewünschte Plattenabschnitt unter dem Lesekopf liegt (die sogenannte „Rotationslatenz”).
  • Die Festplattenzugriffs-Kapazität oder der Durchsatz einer physischen Festplatte hängen von den Arten der Festplattenzugriffs-Anfragen ab, die von der physischen Festplatte empfangen worden sind. Bei einer beispielhaften physischen Festplatte, z. B. mit einer durchschnittlichen Datenübertragungsrate von 100 Megabyte pro Sekunde, einer durchschnittlichen Suchlatenz von 9 Millisekunden und einer durchschnittlichen Rotationslatenz von 4,2 Millisekunden beträgt die Festplattenzugriffs-Kapazität ungefähr 100 Direkt-I/O-Zugriffsanfragen pro Sekunde für kleine Datenblöcke oder 100 Megabytes an übertragenen Daten pro Sekunde für sequentielle I/O-Zugriffsanfragen. In der Praxis liegt die Festplattenzugriffs-Kapazität in einem Bereich zwischen den beiden Extremen, wenn eine Kombination aus sequentiellen und Direktzugriffs-Anfragen empfangen wird.
  • Wie zuvor dargelegt kann in einigen Implementierungen eine virtuelle Festplatte auf mehreren darunter liegenden physischen Datenspeichervorrichtungen bereitgestellt werden, sodass unterschiedliche Datenorte auf der virtuellen Festplatte auf unterschiedliche physische Festplatten verteilt sind. Wenn das Host-Betriebssystem die angefragten Festplattenzugriffe auf den unterschiedlichen physischen Festplatten für die virtuell Maschine oder den Prozess ausführt, die die Datenbankenzugriffs-Anfragen ausgegeben haben, können einige dieser Datenbankenzugriffs-Anfragen parallel ausgeführt werden, wenn die Zugriffsorte auf unterschiedlichen physischen Vorrichtungen liegen. Daher können die Latenz- und Durchsatzmerkmale eines virtuellen Festplattens sich von den Zugriffslatenz- und Durchsatzmerkmalen einer physischen Festplatte unterschieden, die durch die virtuelle Festplatte emuliert wird, besonders, wenn mehrere Direktzugriffs-Anfragen für die virtuelle Festplatte innerhalb einer kurzen Zeit empfangen werden.
  • Wie ebenfalls zuvor dargelegt besitzt ein Cloud-Dienstanbieter im Allgemeinen eine Infrastruktur für das Zuordnen vieler virtueller Festplatten unter Verwendung einer großen Anzahl physischer Datenspeichervorrichtungen (z. B. Festplatten in einer oder mehreren Festplattenfarmen). Die logischen Datenblocks jeder virtuellen Festplatte können auf die physischen Datenblöcke mehrere physischer Festplatten abgebildet werden. Zusätzlich kann jede physische Festplatte einige oder alle der logischen Datenblöcke mehrerer virtueller Festplatten bereitstellen. Wenn das Host-Betriebssystem Festplattenzugriffs-Anfragen von mehreren virtuellen Maschinen für den Zugriff auf mehrere virtuelle Festplatten empfängt, dann bestimmt das Host-Betriebssystem, wie die Zugriffsanfragen an die physischen Speichervorrichtungen oder andere Zwischenserver geroutet werden, die die physischen Speichervorrichtungen verwalten. Zugriffslatenz und Durchsatz der angefragten Zugriffe können je nach Bandbreite der Netzwerke variieren, die verwendet werden für die Datenübertragung zu und von den physischen Speichervorrichtungen, sowie je nachdem, wie die Zugriffsorte auf den physischen Speichervorrichtungen verteilt sind.
  • Hin und wieder können, wenn viele Direktzugriffs-Anfragen für den Zugriff auf eine einzige virtuelle Festplatte in kurzer Zeit empfangen werden, diese Anfragen parallel ausgeführt werden, da die Zugriffsorte auf verschiedene physische Festplatten verteilt sind. Diese parallelen Ausführungen können einen Großteil der Festplattenzugriffs-Ressourcen in Anspruch nehmen (z. B. Server-Rechenleistung und Netzwerk-Bandbreite), und die Zugriffe auf andere virtuelle Festplatten verhindern oder verlangsamen, die von demselben Satz physischer Vorrichtungen und Ressourcen verwendet werden.
  • Aufgrund der oben beschriebenen Latenz- und Durchsatzmerkmale virtueller Festplatten kann manchmal ein virtueller Maschinen-Client Festplattenzugriffs-Anfragen in einem Muster ausgeben, bei dem die Festplattenzugriffs-Kapazität, die die Host-Maschinen liefert, auf Kosten anderer virtueller Maschinen ungleich verteilt ausgenutzt wird. Manchmal könnten die angefragten Zugriffe eines virtuellen Maschine-Client sehr schnell ausgeführt werden, während die angefragten Zugriffe ein andermal für längere Zeit blockiert sein könnten durch andere virtuelle Maschinen, die zuvor bereits einen Großteil der Festplattenzugriffs-Ressourcen übernommen haben. Daher können die Latenz- und Durchsatzmerkmale virtueller Festplatten ohne die in dieser Spezifikation beschriebene künstliche Drosselung zu Unvorhersehbarkeiten bei den Festplattenzugriffs-Dienstleveln führen. Diese Unvorhersehbarkeit kann für die Benutzer zu nicht zufriedenstellende Benutzererfahrungen führen.
  • Wie in dieser Spezifikation beschrieben, wird die künstliche Drosselung der virtuellen Festplattenzugriffs-Bandbreite implementiert, um zu verhindern, dass eine kleine Anzahl virtueller Maschinen-Clients die Festplattenzugriffs-Ressourcen, die der Cloud-Computing-Server bietet, zu überfluten, zum Beispiel, indem eine große Anzahl von Direktzugriffs-Anfragen an eine virtuelle Festplatte auf vielen Geräten in der darunter liegenden physischen Schicht ausgegeben wird. In einigen Implementierungen wir die künstliche Drosselung implementiert, indem das Festplattenzugriffs-Dienstlevel, das für jede virtuelle Festplatte verfügbar ist, auf einen vorab festgelegten Teil der gesamten Festplattenzugriffs-Kapazität begrenzt wird, die die darunter liegende physischen Schicht bereitstellen kann.
  • Die Beschränkung der Festplattenzugriffs-Kapazität für jede virtuelle Festplatte kann zum Beispiel als Festplattenzugriffskontingent implementiert werden. Die entsprechenden Latenzkosten werden vom aktuellen Wert des Festplattenzugriffskontingents abgezogen, wenn jede Festplattenzugriffs-Anfrage für die virtuelle Festplatte empfangen wird, und von der Host-Maschine für die anfragende virtuelle Maschine verarbeitet. Das Festplattenzugriffskontingent wird auch im Zeitverlauf wieder aufgefüllt, z. B. anhand einer vorbestimmten Auffüllrate, sodass die virtuelle Maschine ihre Fähigkeit wiedererlangen kann, nach einer Wartezeit auf ihre virtuelle Festplatte zuzugreifen, wenn die virtuelle Maschine das Festplattenzugriffskontingent in kurzer Zeit aufgebraucht hatte. Das Auffüllen wird zeitweise unterbrochen, wenn der aktuelle Wert des Festplattenzugriffskontingents einen vorbestimmten Maximalwert (oder eine Obergrenze) für das Festplattenzugriffskontingent erreicht.
  • In einigen Implementierungen kann der Mengenabzug, der von dem aktuellen Wert des Festplattenzugriffskontingents einer virtuellen Festplatte vorgenommen wird, auf den Latenz- und Durchsatzmerkmalen einer physischen Festplatte basieren, die durch die virtuelle Festplatte emuliert wird.
  • So kann beispielsweise der Mengenabzug durch simulierte Latenzkosten des angeforderten Festplattenzugriffs dargestellt werden, so, als ob der angefragte Festplattenzugriff auf der physischen Festplatte durchgeführt würde, die durch die virtuelle Festplatte emuliert wird. In einigen Implementierungen beinhalten die simulierten Latenzkosten eine simulierte Datenübertragungslatenz basierend auf der Menge der übertragenen Daten, die für den angefragten Zugriff benötigt werden. Die simulierten Latenzkosten können weiter Direktzugriffs-Kosten beinhalten, die auf der relativen Distanz oder den Positionen zwischen dem Startort des angefragten Zugriffs und dem Endort eines unmittelbar zuvor ausgeführten Festplattenzugriffs auf der physischen Festplatte basieren, die durch die virtuelle Festplatte emuliert wird. In einigen Implementierungen können auch eine oder mehrere Latenzkomponenten (z. B, die Aufwands-Latenz), die spezifisch für die Latenz- und Durchsatzmerkmale der physischen Festplatte sind, die durch die virtuelle Festplatte emuliert wird, den simulierten Latenzkosten hinzugefügt werden. Weitere Details zur Berechnung der Latenzkosten folgen später in dieser Spezifikation in Bezug auf 6.
  • Basierend auf den in dieser Spezifikation beschriebenen Techniken erhalten einzelne virtuelle Maschinen etwas Flexibilität bei der Wahl, wie sie die ihren virtuellen Festplatten zugeordneten Festplattenzugriffs-Kontingente nutzen wollen, basierend auf den spezifischen Datenzugriffsanforderungen der virtuellen Maschine zu bestimmten Zeiten. Eine virtuelle Maschine kann ihr Verhalten ändern (z. B. durch Festplattenzugriffsoptimierungen, die in Software-Applikationen implementiert werden, die auf der virtuellen Maschine installiert sind), sodass der Fluss der Festplattenzugriffs-Anfragen die der virtuellen Festplatte zugeordneten Festplattenzugriffskontingente besser nutzt. Die virtuelle Maschine kann entscheiden, ihr gesamtes Kontingent vollständig oder beinahe vollständig zu nutzen, wenn innerhalb kurzer Zeit viele kleine Direktzugriffs-Anfragen eingehen, um dringende Anfragen zu bearbeiten oder auf einen starken Anstieg in der Nachfrage durch die Benutzer zu reagieren. Die virtuelle Maschine kann weiter entscheiden, einen stetigen Fluss einer Mischung aus sequentiellen Zugriffsanfragen und Direktanfragen über einen längeren Zeitraum hinweg zu generieren.
  • Dennoch haben, aufgrund der Grenzen, die sich durch die Auffüllrate und den Maximalwert des Festplattenzugriffskontingents ergeben, und durch die den sequentiellen und Direkt-Festplattenzugriffskontingente zugeordneten simulierten Latenzkosten die individuellen Verhaltensweisen jeder virtuellen Maschine hinsichtlich der jeweiligen virtuellen Festplatten nur wenig Einfluss auf die allgemeinen Dienstlevel, die anderen Maschinen hinsichtlich der jeweiligen virtuellen Festplatten zur Verfügung gestellt werden. So kann für jede einzelne von der Host-Maschine bereit gestellte virtuelle Festplatte ein stetiger Dienstlevel beibehalten werden, und unvorhersehbare Verzögerungen und Ausfälle des Festplattenzugriff-Diensts für die virtuellen Festplatten können vermieden oder reduziert werden.
  • In einigen Implementierungen kann eine Ressourcenverwaltung auf einer Host-Maschine oder mehreren Host-Maschinen (z. B., Host-Maschinen 102 in 1) eines Cloud-Dienstanbieters bereitgestellt werden durch einen oder mehrere Ressourcenverwaltungsprozesse, die auf den Betriebssystemen der Host-Maschine ausgeführt werden (z. B. Host-OS 108 in 1). 2 stellt einen Beispiel-Ressourcenmanager dar (z. B., ein Festplattenzugriffsmanager 202) für die Verwaltung der Festplattenzugriffe auf von den Host-Maschinen 102 bereitgestellte virtuelle Festplatten. Der Beispiel-Festplattenzugriffsmanager 202 implementiert die künstliche Drosselung der in dieser Spezifikation beschriebenen virtuellen Festplatten. In einigen Implementierungen kann jede virtuelle Maschine 110 ihren eigenen Festplattenzugriffsmanager haben, der die künstliche Drosselung des virtuellen Festplattenzugriffs der virtuellen Maschine implementiert. In einigen Implementierungen kann ein Festplattenzugriffsmanager die virtuellen Festplattenzugriffe mehrerer virtueller Maschinen 110 steuern (z. B. mehrere virtuelle Maschinen, die von derselben Host-Maschine 102 gehostet werden, oder mehrere virtuelle Maschinen, die von mehr als einer Host-Maschine 102 gehostet werden).
  • Wie in 2, Die Host-Maschinen 102 hosten mehrere virtuelle Maschinen 110. Jede virtuelle Maschine 110 ist mit einer oder mehreren virtuelle Festplatten 204 verbunden und besitzt ein Gast-Betriebssystem 136, das auf der virtuellen Maschine 110 installiert ist. Im Allgemeinen ordnet der Ressourcenmanager der Host-Maschinen 102 in verschiedenen Konfigurationen der virtuellen Maschine 110 auch andere physische und virtuelle Ressourcen zu.
  • In einem illustrierenden Beispiel fängt der Festplattenzugriffsmanager 202, wenn eine virtuelle Maschine 110a eine I/O-Anfrage an eine angeschlossene virtuelle Festplatte 204a der virtuellen Maschine 110a initiiert, die I/O-Anfrage ab und identifiziert ein oder mehrere physische Vorrichtungen, die unter der virtuellen Festplatte 110a liegen, gemäß des Startortes und des Datenzugriffsbereichs, die in der empfangenen I/O-Anfrage angegeben sind. Wie zuvor dargelegt, kann die Ausführung der Festplattenzugriffs-Anfragen auf der einzelnen virtuellen Festplatte 110a parallel ausgeführt werden, wenn der angefragte I/O auf unterschiedlichen physischen Festplatten in einer physischen Schicht ausgeführt werden kann. Die Terminierung der Ausführung der angefragten Festplattenzugriffe wird jedoch modifiziert gemäß der künstlichen Drosselung, die durch den Festplattenzugriffsmanager 202 implementiert wird. In einigen Implementierungen wird die Drosselung implementiert, um die Latenz- und Durchsatzverhalten einer physischen Festplatte zu simulieren, die durch jede der virtuellen Festplatten emuliert wird, die von dem Festplattenzugriffsmanager 202 verwaltet werden.
  • In einigen Implementierungen beinhaltet, wie in 2 gezeigt, der Festplattenzugriffsmanager 202 der Host-Maschinen 102 einen Zugriffskontingentmanager 206, einen Latenzkostenrechner 208 und eine Festplattenzugriffs-Flusssteuerung 210. Der Zugriffskontingentmanager 206 steuert das der virtuellen Festplatte 204a zugeordnete Festplattenzugriffs-Dienstlevel sowie die anderen virtuellen Datenträgern, die von den Host-Maschinen 102 verwaltet werden, zugeordnete Festplattenzugriffs-Dienstlevel. In einigen Implementierungen setzt der Zugriffskontingentmanager 206 den Maximalwert (oder die Obergrenze) für die einer virtuellen Festplatte zu irgendeiner gegebenen Zeit zugeordneten Festplattenzugriffs-Kontingente fest. Der Maximalwert des Festplattenzugriffskontingents, der für jede virtuelle Festplatte festgelegt ist, kann ein Teil der Gesamt-Festplattenzugriffs-Kapazität der Host-Maschine 102 sein, sodass nicht eine einzelne virtuelle Maschine zu einer beliebigen Zeit die gesamte Festplattenzugriffs-Kapazität verbrauchen kann. Die Gesamt-Festplattenzugriffs-Kapazität der Host-Maschine 102 kann die Festplattenzugriffs-Kapazität beinhalten, die von den lokal angeschlossenen physischen Ressourcen der Host-Maschine 102 bereitgestellt wird, wobei die physischen Ressourcen der Host-Maschine 102 über ein oder mehrere Netzwerke von anderen Servern des Cloud-Dienstanbieters und/oder die Kombination der obigen zur Verfügung gestellt werden.
  • In einigen Implementierungen kann der Maximalwert der Festplattenzugriffskontingente, die jeder virtuellen Festplatte zugeordnet sind, von der Anzahl der virtuellen Festplatten abhängen, die von den Host-Maschinen 102 gehostet werden. Die Maximalwerte der Festplattenzugriffskontingente der virtuellen Festplatten können so gesetzt werden, dass die Maximalwerte aggregiert die Gesamt-Festplattenzugriffs-Kapazität der Host-Maschinen 102 nicht übersteigen. In einigen Implementierungen können die Maximalwerte der Festplattenzugriffskontingente der virtuellen Festplatten auf einen Wert gesetzt werden, bei dem die Maximalwerte aggregiert die Gesamt-Festplattenzugriffs-Kapazität der Host-Maschinen 102 übersteigen. Dennoch würde in derartigen Implementierungen immer noch ein gewisses Drosselungslevel greifen, da der Maximalwert der Festplattenzugriffskontingente für jede virtuelle Festplatte, anders als bei dem ungedrosselten Szenario, immer noch unterhalb der vollen Festplattenzugriffs-Kapazität der Host-Maschinen 102 liegt.
  • In einigen Implementierungen verwaltet der Zugriffskontingentmanager 206 das Festplattenzugriffskontingent einer virtuellen Festplatte in Form eines ”Token Bucket” (Wertmarken-Topf). Dem aktuellen Wert des Festplattendienst-Zugriffskontingents für jede virtuelle Festplatte entspricht die Menge der Tokens, die im ”Token Bucket” verbleiben. Wenn ein angefragter Festplattenzugriff für die virtuelle Festplatte verarbeitet und ausgeführt wird, so wird eine bestimmte Menge des Dienstkontingents vom aktuellen Wert des Festplattenzugriffskontingents abgezogen. Es wird, anders gesagt, eine bestimmte Anzahl Tokens aus dem ”Token Bucket” der virtuellen Festplatte entfernt.
  • Zusätzlich zum Entfernen von Tokens aus dem ”Token Bucket” der virtuellen Festplatte füllt der Zugriffskontingentmanager 206 auch den ”Token Bucket” der virtuellen Festplatte im Zeitverlauf gemäß einer vorab festgelegten Auffüllrate wieder auf. So kann zum Beispiel dem ”Token Bucket” jeder virtuellen Festplatte regelmäßig (z. B. jede Sekunde) eine vorab bestimmte Anzahl Tokens hinzugefügt werden. Da das Festplattendienst-Zugriffskontingent jeder virtuellen Festplatte bei Erreichen eines vorab bestimmten Maximalwert begrenzt wird, wenn auf die virtuelle Festplatte für eine Weile nicht zugegriffen wurde und der aktuelle Wert des Dienstkontingents aufgrund des regelmäßigen Auffüllens den Maximalwert erreicht hat, kann der Zugriffskontingentmanager 206 das Auffüllen des ”Token Bucket” zeitweise stoppen, bis wieder ein Zugriff auf die virtuelle Festplatte stattgefunden hat und das Kontingentlevel unter das Maximallevel gefallen ist.
  • In einigen Implementierungen erstellt der Zugriffskontingentmanager 206 eine Aufzeichnung 212 des aktuellen Wertes des Festplattenzugriffskontingents für jede virtuelle Festplatte 204 jeder virtuellen Maschine 110, die vom Festplattenzugriffsmanager 202 verwaltet wird. Der aktuelle Wert des Festplattenzugriffskontingents jeder virtuellen Festplatte kann von der Festplattenzugriffs-Flusssteuerung 210 verwendet werden, um zu bestimmen, ob die Ausführung einer empfangenen Festplattenzugriffs-Anfrage für den virtuelle Festplatten verzögert werden soll.
  • In einigen Implementierungen kann der Maximalwert des Festplattenzugriffskontingents, das jeder einzelnen virtuellen Festplatte 204 zugeordnet ist, für alle vom Festplattenzugriffsmanager 202 verwalteten virtuellen Festplatten gleich sein. In einigen Implementierungen können einige Cloud-Dienst-Benutzer eine Prämie bezahlen, um so eine höhere Obergrenze für das ihren virtuellen Festplatten zuordnete Festplattenzugriffskontingent zu erhalten. In einigen Implementierungen können die Obergrenzen der Festplattenzugriffskontingente über einen längeren Zeitraum konstant gehalten werden. In einigen Implementierungen können die Obergrenzen der Festplattenzugriffskontingente von Zeit zu Zeit angepasst werden, um die Effizienz und Leistung der virtuellen Festplatten zu verbessern.
  • Wie in 2, Der Festplattenzugriffsmanager 202 beinhaltet auch einen Latenzkostenrechner 208. Der Latenzkostenrechner 208 bestimmt Latenzkosten für jede Festplattenzugriffs-Anfrage, die für jede virtuelle Festplatte 204 empfangen wird. Die Menge der Tokens, die den Latenzkosten entspricht, kann von dem ”Token Bucket” des virtuellen Festplattens abgezogen werden, wenn die Festplattenzugriffs-Anfrage ausgeführt wird. Wenn sich eine zu geringe Menge Tokens im ”Token Bucket” der virtuellen Festplatte befindet, wird die Ausführung der Anfrage verzögert, bis der ”Token Bucket” der virtuellen Festplatte auf ein Level aufgefüllt wurde, das den Latenzkosten der Anfrage entspricht oder diese übersteigt.
  • In einigen Implementierungen entsprechen die für jede Festplattenzugriffs-Anfrage berechneten Latenzkosten den simulierten Latenzkosten, basierend auf den Latenz- und Durchsatzmerkmalen einer physischen Festplatte, die durch die virtuelle Festplatte emuliert wird. Die simulierten Latenzkosten müssen nicht exakt der Latenz entsprechen, die auf einer physischen Festplatte auftreten würde. Dennoch werden die simulierten Latenzkosten mithilfe einer Formel berechnet, die die Latenzmerkmale von Direktzugriffen auf eine physische Festplatte berücksichtigt.
  • Wie zuvor dargelegt hängt die Direktzugriffs-Latenz eines angefragten Zugriffs auf eine physische Festplatte von den relativen Positionen des Startorts des aktuell angefragten Zugriffs und dem Startort des Lesekopfs beim Empfangen der Anfrage ab. Der Anfangs-Startort des Lesekopfs beim Empfangen der Festplattenzugriffs-Anfrage kann die Ausgangsruheposition des Lesekopf sein oder die Endposition des direkt zuvor ausgeführten Festplattenzugriffs.
  • In einigen Implementierungen schreibt der Festplattenzugriffsmanager 202 ein Log 214 der auf jede virtuelle Festplatte 204 ausgeführten Festplattenzugriffe einschließlich der jeweiligen Endorte der ausgeführten Festplattenzugriffe. Der Latenzkostenrechner 208 kann die Informationen in dem Log 214 nutzen, um den Endort eines unmittelbar zuvor ausgeführten Festplattenzugriffs für eine neu erhaltene Festplattenzugriffs-Anfrage zu identifizieren und die Direktzugriffskosten entsprechend zu berechnen.
  • In einigen Implementierungen beinhaltet das Log 214 nur den Endort des letzten Zugriff für jede virtuelle Festplatte innerhalb eines kurzen Zeitraums, z. B. einer Rückschauzeit = 500 Millisekunden. Wenn auf die virtuelle Festplatte während der Rückschauzeit kein Zugriff erfolgt ist, werden die Direktzugriffskosten für die aktuelle Zugriffsanfrage auf null gesetzt. Wenn der aktuell angefragte Zugriff einen Startort besitzt, der mit dem Endort des unmittelbar vorangehenden Zugriffs auf die virtuelle Festplatte identisch ist (oder sich innerhalb einer kurzen Distanz von diesem befindet), dann wird außerdem der aktuell angefragte Zugriff als sequentielle Zugriffsanfrage gewertet und die Direktzugriffskosten für den aktuell angefragten Zugriff werden ebenfalls auf null gesetzt.
  • In einigen Implementierungen kann der Festplattenzugriffsmanager 202 ein Log aller Zugriffsanfragen schreiben, die während des Rückschauzeit-Fensters empfangen wurden. Der Latenzkostenrechner 208 kann unter den während der Rückschauzeit geloggten Zugriffanfragen eine Zugriffsanfrage erkennen, die einen Endort besitzt, der dem Startort der aktuellen Zugriffsanfrage am nächsten ist. Der Latenzkostenrechner 208 kann die identifizierte Zugriffsanfrage als unmittelbar vorangehende Zugriffsanfrage für die aktuelle Zugriffsanfrage verwenden. Der Latenzkostenrechner 208 kann dann die Endposition der identifizierten Zugriffsanfrage verwenden, um zu bestimmen, ob die aktuelle Zugriffsanfrage eine sequentielle oder eine Direktzugriffs-Anfrage ist.
  • In einigen Implementierungen können, wenn eine aktuelle Festplattenzugriffs-Anfrage als Direktzugriff klassifiziert wird (z. B. wenn die Suchdistanz D zwischen dem Startort der aktuellen Zugriffsanfrage und dem Endort der unmittelbar vorangehenden Zugriffsanfrage größer ist als eine vorab festgelegte kurze Distanz, z. B. ein vorab festgelegter „min_random_IO_distance” Parameter), die Direktzugriffskosten K berechnet werden basierend auf einer Formel K = penalty_distance*penalty cost + fixed_random_access_cost. In einigen Implementierungen kann die Strafdistanz („penalty distance”) der Suchdistanz D entsprechen. In einigen Implementierungen kann die Strafdistanz kleiner oder gleich der Suchdistanz D sein und einer vorab festgelegten Maximal-Strafdistanz „max_penalty_distance” entsprechen. Die Strafkosten „penalty_cost” können einem vorab festgelegten Parameter entsprechen, der verwendet wird, um die durchschnittliche Latenz für eine Einheits-Suchdistanz darzustellen. Die festen Direktzugriffskosten („fixed_random_access_cost”) sind ein vorab festgelegter Parameter, der die durchschnittliche Rotationslatenz einer physischen Festplatte reflektiert, die durch die virtuelle Festplatte emuliert wird.
  • Die oben dargelegte, für die Berechnung der simulierten Direktzugriffs-Latenz für den angefragten Festplattenzugriff verwendete Formel stellt nur ein Beispiel dar. Möglich sind auch andere Funktionen oder Parameter, die die Direktzugriffs-Latenz auf einer physischen Festplatte, die durch die virtuelle Festplatte emuliert wird, besser simulieren. Die vorab festgelegten Parameter, die in der Formel für die Berechnung der simulierten Direktzugriffs-Latenz für den angefragten Festplattenzugriff auf eine virtuelle Festplatte verwendet werden, können so ausgewählt werden, dass die anhand der Formel berechnete simulierte Direktzugriffs-Latenz näher an der tatsächlichen Direktzugriffs-Latenz liegt, die auf einer wirklichen physischen Festplatte auftreten würde, die durch die virtuelle Festplatte emuliert wird.
  • Zusätzlich zu den Direktzugriffskosten (z. B. die simulierte Direktzugriffs-Latenz) einer empfangenen Festplattenzugriffs-Anfrage bestimmt der Latenzkostenrechner 208 auch eine Datenübertragungslatenz für die Festplattenzugriffs-Anfrage. Die Datenübertragungslatenz wird basierend auf der für den angefragten Datenzugriff übertragenen Datenmenge berechnet. Die Datenübertragungsrate ist ein vorab bestimmter Parameter, der auf der tatsächlichen Datenübertragungsrate der physischen Festplatte basieren kann, die durch die virtuelle Festplatte emuliert wird. In einigen Implementierungen kann die Datenübertragungsrate auch von der tatsächlichen Datenübertragungsrate einer physischen Festplatte abweichen, die durch die virtuelle Festplatte emuliert wird. Die Datenübertragungsrate kann zum Beispiel ein veränderbarer Parameter sein, der auf der Datenübertragungskapazität oder Netzwerkbandbreite der darunterliegenden physischen Schicht der virtuellen Festplatte basiert.
  • In einigen Implementierungen können die Latenzkosten eines angefragten Festplattenzugriffs zusätzlich zu Datenübertragungslatenz und Direktzugriffskosten eine oder mehrere Komponenten beinhalten, etwa eine feste oder variable Mehrarbeits-Latenzkomponente. Die Mehrarbeits-Latenzkomponente kann beispielsweise ein vorab bestimmter Wert sein, der die Mehrarbeits-Latenz der physischen Festplatte reflektiert, die durch die virtuelle Festplatte emuliert wird.
  • Nach Bestimmung der Latenzkosten einer empfangenen Festplattenzugriffs-Anfrage für eine virtuelle Festplatte durch den Latenzkostenrechner 208 können die simulierten Latenzkosten an die Festplattenzugriffs-Flusssteuerung 210 weitergegeben werden zusammen mit dem aktuellen Wert des Festplattendienst-Zugriffskontingents der virtuellen Festplatte. Die Festplattenzugriffs-Flusssteuerung 210 vergleicht die Latenzkosten des angefragten Zugriffs und den aktuellen Wert des Festplattendienst-Zugriffskontingents für die virtuelle Festplatte. Basierend auf dem Vergleich bestimmt die Festplattenzugriffs-Flusssteuerung 210, ob der angefragte Zugriff unmittelbar ausgeführt wird. Falls nicht genügend Festplattenzugriffs-Tokens im ”Token Bucket” der virtuellen Festplatte vorhanden sind, kann die Anfrage in eine Warteschlange 216 verbracht und später wieder geholt werden (z. B. nach einem vorab festgelegten Verzögerungszeitraum).
  • In einigen Implementierungen ist der Verzögerungszeitraum vor dem Holen des angefragten Zugriffs ein vorab festgelegter Parameter, der auf der Auffüllrate des Festplattendienst-Zugriffskontingents basiert. So ist zum Beispiel der Verzögerungszeitraum mindestens größer als der Zeitraum zwischen den Wiederauffüll-Aktionen. Nach Ablauf des vorab festgelegten Verzögerungszeitraums kann die Festplattenzugriffs-Flusssteuerung 210 den aktuellen Wert des Festplattenzugriffskontingents und die Latenzkosten der Zugriffsanfrage in der Warteschlange erneut vergleichen. Wenn der aktuelle Wert des Zugriffskontingents auf ein Level angehoben wurde, das durch das Auffüllen bei oder über den Latenzkosten des angefragten Zugriffs liegt, so wird der angefragte Zugriff sofort ausgeführt. Falls nicht, so wird die Zugriffsanfrage zurück in die Warteschlange 216 verbracht und nach Ablauf eines weiteren Verzögerungszeitraums wieder geholt.
  • Wenn der angefragte Festplattenzugriff ausgeführt oder an einen anderen Server für die Ausführung weitergeleitet wird, dann kann die Festplattenzugriffs-Flusssteuerung 210 die Latenzkosten von dem aktuellen Wert des Festplattendienst-Zugriffskontingents des virtuellen Festplattens abziehen. Zusätzlich wird der Endort des ausgeführten Zugriffs im Festplattenzugriffslog 214 gespeichert. Wie in 2, Der angefragte Festplattenzugriff kann auf einer oder mehreren physischen Festplatten 218 ausgeführt werden, die lokal mit der Host-Maschine 102 verbunden sind. In einigen Implementierungen kann der angefragte Festplattenzugriff auch auf einer oder mehreren physischen Festplatten 220 ausgeführt werden, die der Host-Maschine 102 von anderen Server des Cloud-Dienstanbieters über ein oder mehrere Netzwerke 222 zur Verfügung gestellt werden.
  • In einigen Implementierungen beinhaltet der Festplattenzugriffsmanager 202 auch einen Festplattenzugriffsdienst-Monitor 224. Der Festplattenzugriffsdienst-Monitor 224 kann den Auslastungsgrad der Festplattenzugriffs-Kapazitäten der physischen Vorrichtungen verfolgen, die unter der virtuellen Festplatte liegen, und die bei der Drosselung der virtuellen Festplatte verwendeten Parameter anpassen.
  • Wenn der Auslastungsgrad zum Beispiel durchgehend auf einem niedrigeren Level ist, so dann der Festplattenzugriffsdienst-Monitor 224 die Strafkosten („penalty cost”) in der Formel für die Berechnung der Direktzugriffskosten K reduzieren. Der Festplattenzugriffsdienst-Monitor 224 kann auch die Obergrenzen für das Festplattendienst-Zugriffskontingent der virtuellen Festplatte nach oben setzen. Wenn die Verarbeitung angefragte Festplattenzugriffe aufgrund von fehlendem Festplattendienst-Zugriffskontingent regelmäßig verzögert wird, während die Gesamt-Festplattenzugriffs-Kapazität der Host-Maschinen durchgehend nicht voll ausgenutzt wird, dann kann der Festplattenzugriffsdienst-Monitor 224 die Obergrenzen für die Festplattendienst-Zugriffskontingente für jede virtuelle Festplatte nach oben setzen oder die Auffüllraten für die Festplattendienst-Zugriffskontingente erhöhen. Daher können in einigen Implementierungen einer oder mehrere der vorab festgelegten Parameter (z. B. die vorab festgelegten Obergrenzen und Auffüllraten für die Festplattenzugriffskontingente für jede virtuelle Festplatte), die bei der Drosselung der virtuellen Festplatten verwendet werden, die in dieser Spezifikation beschrieben sind, dynamisch bestimmte Werte besitzen, solange die Werte über bestimmte Zeiträume stabil bleiben (z. B., einige wenige Stunden, ein Tag oder zwei Tage), während derer der Wettstreit um Hardware-Festplattenzugriffsressourcen durch mehrere virtuelle Maschinen aktiv und ununterbrochen bleibt.
  • 2 veranschaulicht einfach, wie die Bandbreite der virtuellen Festplatte gedrosselt werden kann, um zu vermeiden, dass die Festplattenzugriffs-Kapazität der physischen Schicht von bestimmten virtuellen Festplatten oder virtuellen Maschinen-Clients übermäßig beansprucht wird. Die in dieser Spezifikation beschriebene Festplattenzugriffsverwaltung kann mit weniger oder mehr Komponenten implementiert werden, als in 2 beschrieben. Wie zuvor dargelegt können zusätzlich einige oder alle der virtuellen Festplatten-Drosselungsfunktionen des Festplattenzugriffsmanagers 202, die hinsichtlich 2 beschrieben werden, als ein oder mehrere Prozesse oder Module implementiert sein, die in dem virtuellen Betriebssystem 136 jeder virtuellen Maschine 110 ausgeführt werden.
  • 3 ist ein Flussdiagramm eines Beispielprozesses 300 für die Drosselung von virtuellen Festplattenzugriffen gemäß der Latenzmerkmale physischer Festplattenlaufwerke. Der Prozess 300 kann von einer Host-Maschine eines Cloud-Dienstanbieters ausgeführt werden, zum Beispiel durch den Festplattenzugriffsmanager 202 in 2.
  • Im Beispielprozess 300 bietet die Host-Maschine Zugriff auf eine Vielzahl virtueller Festplatten (302). Die Vielzahl der virtuellen Festplatten werden auf einer Vielzahl darunter liegender physischer Speichereinrichtungen gehostet, die von einem oder mehreren Server verwaltet werden. Wie in dieser Spezifikation beschrieben ermittelt die Host-Maschine die simulierten Latenzkosten für jede Festplattenzugriffs-Anfrage, die für jeder der Vielzahl virtueller Festplatten eingeht, gemäß eines oder mehrerer Latenz- und Durchsatzmerkmale einer lokalen physischen Festplatte, die durch die virtuelle Festplatte (304) emuliert wird. Gemäß eines Vergleichs zwischen den simulierten Latenzkosten der jeweiligen angefragten Festplattenzugriffe und einer simulierten Festplattenzugriffs-Kapazität der lokalen physischen Festplatte, die durch die virtuelle Festplatte emuliert wird, steuert die Host-Maschine die Schnelligkeit, mit der die jeweiligen angefragten Festplattenzugriffe für jede der Vielzahl virtueller Festplatten auf der Vielzahl der darunter liegenden physischen Speichereinheiten (306) ausgeführt werden.
  • 4 ist ein Flussdiagramm eines Beispielprozesses 400 für die Drosselung des Zugriffs auf eine virtuelle Festplatte gemäß den Latenzmerkmalen eines physischen Festplattenlaufwerks. Der Prozess 400 kann von einer Host-Maschine eines Cloud-Dienstanbieters ausgeführt werden, zum Beispiel durch den Festplattenzugriffsmanager 202 in 2.
  • In dem Beispielprozess 400 wird eine erste Festplattenzugriffs-Anfrage für einen Festplatten-Input/Output(I/O)-Zugriff auf eine virtuelle Festplatte der virtuellen Maschine empfangen (402). die virtuelle Festplatte emuliert eine lokale physische Festplatte für die virtuelle Maschine. Dann werden simulierte Latenzkosten für den angefragten I/O-Zugriff gemäß eines oder mehrerer Latenz- und Durchsatzmerkmale der lokalen physischen Festplatte abgeleitet, die durch die virtuelle Festplatte (404) emuliert wird. Die simulierten Latenzkosten beinhalten eine simulierte Datenübertragungslatenz sowie eine simulierte Direktzugriffs-Latenz für die Ausführung des angefragten Festplatten-I/O-Zugriffs auf die lokale physische Festplatte, die durch die virtuelle Festplatte emuliert wird. Dann wird basierend auf einem Vergleich zwischen den simulierten Latenzkosten und einem aktuellen Wert eines Festplattendienst-Zugriffskontingents, das der virtuellen Festplatte zugeordnet ist, bestimmt, ob die Ausführung des angefragten Festplatten-I/O-Zugriffs verzögert werden soll (406). Wie in dieser Spezifikation beschrieben wird der aktuelle Wert des Festplattendienst-Zugriffskontingents im Zeitverlauf wieder aufgefüllt. Der aktuelle Wert des Festplattendienst-Zugriffskontingents wird an einer vorab festgelegten Obergrenze begrenzt. Zusätzlich wird der aktuelle Wert des Festplattenzugriffskontingents um die jeweiligen simulierten Latenzkosten einer jeden der vorherigen Festplattenzugriffs-Anfragen für die virtuelle Festplatte vermindert, wenn die jeweiligen angefragten Festplatten-I/O-Zugriffe der vorausgehenden Festplattenzugriffs-Anfrage ausgeführt worden ist.
  • In einigen Implementierungen beinhaltet die virtuelle Festplatte logische Datenblöcke, die physische Datenblöcke abbilden, welche über mehreren physischen Speichereinrichtungen verteilt sind. Angefragte I/O-Zugriffe für mehrere Festplattenzugriffs-Anfragen können parallel auf mehreren physischen Speichereinheiten ausgeführt werden, wenn der aktuelle Wert des Festplattenzugriffskontingents über einer Summe der jeweiligen simulierten Latenzkosten der mehreren Festplattenzugriffs-Anfragen liegt.
  • 5 ist ein Flussdiagramm eines Beispielprozesses 500 für das Auffüllen des Festplattenzugriffskontingents, das zu einer virtuellen Festplatte gehört. In einigen Implementierungen ist die virtuelle Festplatte einer aus einer Vielzahl virtueller Festplatten, die auf mehreren physischen Speichereinheiten gehostet werden. In dem Beispielprozess 500 wird für jeden aus der Vielzahl virtueller Festplatten: (1) ein jeweiliges Festplattendienst-Zugriffskontingent der virtuellen Festplatte gemäß einer vorab festgelegten Auffüllrate erhöht, die zu der virtuellen Festplatte gehört, bis ein aktueller Wert des jeweiligen Festplattendienst-Zugriffskontingents eine jeweilige vorab festgelegte Obergrenze erreicht, die zu der virtuellen Festplatte (502) gehört; und (2) die Erhöhung ausgesetzt, bis der aktuelle Wert des jeweiligen Festplattendienst-Zugriffskontingents der virtuellen Festplatte unter die jeweilige vorab festgelegte Obergrenze fällt, die zu der virtuellen Festplatte (504) gehört.
  • 6 ist ein Flussdiagramm eines Beispielprozesses 600 für die Berechnung simulierter Direktzugriffs-Latenzkosten, die zu einer Festplattenzugriffs-Anfrage gehören.
  • In dem Beispielprozess 600 speichert die Host-Maschine die jeweiligen Endpositionen einer oder mehrerer vorangehender Festplattenzugriffs-Anfragen für die virtuelle Festplatte, die während eines vorab festgelegten Zeitraums unmittelbar vor der aktuellen Zeit (602) empfangen wurden. Dann kann die Host-Maschine die simulierte Direktzugriffs-Latenz für die angefragten Festplatten-I/O-Zugriffe der ersten Festplattenzugriffs-Anfrage berechnen, basierend auf einer Suchdistanz zwischen der Startposition des angefragten Festplatten-I/O-Zugriffs und einer nächsten Endposition unter den jeweiligen Endpositionen einer oder mehrerer vorangehender Festplattenzugriffs-Anfragen (604).
  • 7 ist ein Flussdiagramm eines Beispielprozesses 700 für die Steuerung der Ausführung eines angefragten Festplattenzugriffs auf eine virtuelle Festplatte basierend auf einem Vergleich zwischen dem aktuellen Level des Festplattendienst-Zugriffskontingents, das zu der virtuellen Festplatte gehört, und den simulierten Latenzkosten der Festplattenzugriffs-Anfrage. In dem Beispielprozess 700 führt die Host-Maschine, wenn festgestellt wird (702), dass die simulierten Latenzkosten der ersten Festplattenzugriffs-Anfrage bei oder unter dem aktuellen Wert des Festplattendienst-Zugriffskontingents liegen, das der virtuellen Festplatte zugeordnet ist, die angefragten Festplatten-I/O-Zugriffe der ersten Festplattenzugriffs-Anfrage (704) aus. Zusätzlich zieht die Host-Maschine ebenfalls die simulierten Latenzkosten des angefragten I/O-Zugriffs von dem aktuellen Wert des Festplattendienst-Zugriffskontingents ab, das der virtuellen Festplatte (706) zugeordnet ist. Wenn festgestellt wird, dass die simulierten Latenzkosten der ersten Festplattenzugriffs-Anfrage den aktuellen Wert des Festplattendienst-Zugriffskontingents übersteigen, das der virtuellen Festplatte zugeordnet ist, verbringt die Host-Maschine die erste Festplattenzugriffs-Anfrage in eine Warteschleife, bis der aktuelle Wert des Festplattendienst-Zugriffskontingents die simulierten Latenzkosten der ersten Festplattenzugriffs-Anfrage durch geplantes Wiederauffüllen (708) erreicht oder übersteigt.
  • 8 ist ein Flussdiagramm eines Beispielprozesses 800 für die Überwachung der Zugriffsantwortzeit für mehrere virtuelle Festplatten und eines Auslastungsgrades der Festplattenzugriffs-Kapazitäten der Vielzahl virtueller Festplatten, und für die Anpassung der Drosselungsparameter für die virtuellen Festplatten.
  • In dem Beispielprozess 800 überwacht die Host-Maschine die Antwortzeit für die jeweiligen Festplattenzugriffs-Anfragen für eine Vielzahl virtueller Festplatten, die eine Vielzahl darunter liegender physischer Speichereinrichtungen (802) gemeinsam nutzen. Die Host-Maschine überwacht weiter den Auslastungsgrad einer Festplattenzugriffs-Kapazität der Vielzahl der darunter liegenden physischen Speichereinheiten (804). Die Host-Maschine kann dann einen oder mehrere aus einer Gruppe vorab festgelegter Parameter anpassen, worin die Gruppe vorab festgelegter Parameter Auffüllraten und Obergrenzen der jeweiligen Festplattendienst-Zugriffskontingente der Vielzahl virtueller Festplatten beinhaltet sowie einen oder mehrere vorab festgelegte Werte, die für die Berechnung der simulierten Latenzkosten der angefragten Festplatten-I/O-Zugriffs (806) verwendet werden.
  • Ausführungsformen des Gegenstands und die in dieser Spezifikation beschriebenen Tätigkeiten können in digitalen elektronischen Schaltungen oder in Computer-Software, Firmware oder Hardware implementiert werden, einschließlich der in dieser Spezifikation offengelegten Strukturen und ihrer strukturellen Entsprechungen oder in Kombinationen von einer oder mehrerer von ihnen. Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands können als ein oder mehrere Computerprogramme, d. h. als ein oder mehrere Module von Computerprogrammanweisungen implementiert werden, die auf einem Computer-Speichermedium für die Ausführung durch oder die Steuerung des Betriebs des datenverarbeitenden Apparats kodiert werden. Alternativ oder zusätzlich können die Programmanweisungen auf einem künstlich erzeugten propagierten Signal, z. B. einem maschinell erzeugten elektrischen, optischen oder elektromagnetischen Signal künstlich kodiert werden, das erzeugt wird, um Informationen für die Übertragung auf einen geeigneten Empfängerapparat für die Ausführung durch einen datenverarbeitenden Apparat zu kodieren.
  • Bei einem Computer-Speichermedium kann es sich um ein maschinell lesbares Speichergerät, einen maschinell lesbaren Speicherträger, ein zufälliges oder serielles Speicher-Array oder Speichergerät oder um eine Kombination aus einem oder mehreren dieser Geräte handeln oder es kann in ihnen enthalten sein. Außerdem ist ein Computer-Speichermedium zwar kein verbreitetes Signal, aber ein Computer-Speichermedium kann eine Quelle oder ein Bestimmungsort von Computerprogrammanweisungen sein, die in einem künstlich erzeugten verbreiteten Signal kodiert werden. Bei dem Computer-Speichermedium kann es sich auch um eine oder mehrere unterschiedliche physische Komponenten oder Medien (z. B. mehrere CDs, Plattenlaufwerke oder andere Speichergeräte) handeln, bzw. kann das Speichermedium darin enthalten sein.
  • Die in dieser Spezifikation beschriebenen Tätigkeiten können als Tätigkeiten implementiert werden, die von einem datenverarbeitenden Apparat mit Daten durchgeführt werden, die auf einem oder mehreren maschinell lesbaren Speichergeräten gespeichert werden oder von anderen Quellen entgegengenommen werden.
  • Der Begriff „datenverarbeitender Apparat” umfasst alle Arten von Apparaten, Geräten und Maschinen für die Verarbeitung von Daten, einschließlich beispielsweise durch einen programmierbaren Prozessor, einen Computer, ein System auf einem oder mehreren Chips oder Kombinationen des Vorstehenden. Der Apparat kann logische Schaltungen mit einem Sonderzweck, z. B. ein FPGA (Field Programmable Gate Array) oder eine ASIC (Application-Specific Integrated Circuit, anwendungsspezifische integrierte Schaltung) enthalten. Der Apparat kann neben Hardware auch Code einschließen, der eine Ausführungsumgebung für das betreffende Computerprogramm erstellt, z. B. Code, der Prozessor-Firmware, ein Protokollstack, ein Datenbank-Managementsystem, ein Betriebssystem, eine plattformunabhängige Laufzeitumgebung, eine virtuelle Maschine oder eine Kombination einer oder mehrerer der genannten erzeugt. Der Apparat und die Ausführungsumgebung können verschiedene unterschiedliche Rechnermodell-Infrastrukturen umsetzen, wie Webdienstleistungen, verteilte Rechen- und Grid-Computing-Infrastrukturen.
  • Ein Computerprogramm (auch bezeichnet als Programm, Software, Softwareanwendung, Script oder Code) kann in einer beliebigen Form von Programmiersprache geschrieben sein, einschließlich kompilierter oder interpretierter Sprachen, deklarativer oder verfahrensorientierter Sprachen, und das Programm kann in jeder beliebigen Form eingesetzt sein, darunter als unabhängiges Programm oder als ein Modul, eine Komponente, eine Subroutine, ein Objekt oder eine andere Einheit, die zur Benutzung in einer Rechenumgebung geeignet ist. Ein Computerprogramm kann, muss aber nicht, einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei gespeichert sein, die andere Programme oder Daten enthält (z. B. ein oder mehrere Scripts, die in einem Dokument in Markup-Sprache gespeichert sind), in einer einzelnen Datei speziell für das betreffende Programm oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Teile von Code speichern). Ein Computerprogramm kann auf einem Computer oder mehreren Computer eingerichtet sein oder ausgeführt werden, die an einem Standort angeordnet sind oder über mehrere Standorte verteilt sind und über ein Kommunikationsnetz verbunden sind.
  • Die Verfahren und Logikflüsse, die in dieser Spezifikation beschrieben sind, können durch Handlungen, wie dem Betreiben von Eingabedaten und dem Erzeugen von Ausgaben. durch einen oder mehrere programmierbare Prozessoren, die einen oder mehrere Computerprogramme ausführen, durchgeführt werden. Die Prozesse und die logischen Abläufe können auch durch logische Sonderzweckschaltungen durchgeführt werden, und der Apparat kann als Sonderzweckschaltungen implementiert werden, z. B. ein FPGA (Field Programmable Gate Array) oder eine ASIC (anwendungsspezifische integrierte Schaltung).
  • Prozessoren, die für die Durchführung eines Computerprogramms geeignet sind, schließen beispielsweise sowohl allgemeine und als auch Spezial-Mikroprozessoren sowie alle Arten eines oder mehrerer Prozessoren jeglicher Art Digitalrechner ein. Ganz allgemein nimmt ein Prozessor Befehle und Daten von einem Festwertspeicher oder einem Arbeitsspeicher oder von beiden entgegen. Die wesentlichen Elemente eines Computers sind ein Prozessor für das Durchführen von Handlungen gemäß Anweisungen und ein oder mehr Speichergeräte für das Speichern von Anweisungen und Daten. Ganz allgemein gehören zu einem Computer auch ein oder mehrere Massenspeichergeräte für das Speichern von Daten, z. B. Magnet-, magnetooptische oder optische Disketten, um Daten entgegenzunehmen und/oder zu übertragen, bzw. ist ein Computer operativ an ein solches Speichergerät gekoppelt. Jedoch muss ein Computer solche Geräte nicht haben. Außerdem kann ein Computer in einem anderen Gerät eingebettet sein, z. B. in einem Mobiltelefon, einem PDA (Personal Digital Assistant), einem mobilen Audio- oder Videoplayer, einer Spielkonsole, einem Funknavigationsempfänger oder einem tragbaren Speichergerät (z. B. in einem USB-Stick), um nur einige zu nennen. Geräte, die für das Speichern von Computerprogrammanweisungen und -daten geeignet sind, schließen alle Formen von Dauerspeichern, Medien- und Speichergeräten ein, einschließlich beispielsweise Halbleiter-Speichergeräte, z. B. EPROM, EEPROM und USB-Flash-Speicher; Magnetplatten, z. B. interne Festplatten oder herausnehmbare Platten; magnetooptische Platten; und CD-ROMs und DVD-ROMs. Der Prozessor und der Speicher können durch logische Sonderzweckschaltungen ergänzt werden oder darin eingebaut sein.
  • Um die Interaktion mit einem Benutzer zu ermöglichen, können in dieser Spezifikation beschriebene Ausführungsformen des Gegenstands auf einem Computer mit einem Anzeigegerät implementiert werden, z. B. einem CRT (Kathodenstrahlröhre) oder LCD-(Flüssigkristallanzeige)Monitor, mit welchem dem Benutzer Informationen angezeigt werden, sowie einer Tastatur und einem Anzeigegerät, z. B. einer Maus oder einem Trackball, mit denen der Benutzer Eingaben in den Computer vornehmen kann. Es können auch andere Arten von Einrichtungen verwendet werden, um für eine Interaktion mit einem Nutzer zu sorgen; beispielsweise kann eine dem Benutzer gelieferte Rückkopplung beliebiger Form von sensorischer Rückkopplung vorliegen, z. B. eine visuelle Rückkopplung, auditive Rückkopplung oder taktile Rückkopplung; und die Eingabe von dem Nutzer kann in beliebiger Form empfangen werden, einschließlich akustischer, Sprach- oder taktiler Eingabe. Darüber hinaus kann ein Computer über das Senden von Dokumenten an und das Empfangen von Dokumenten von einer Einrichtung, die vom Benutzer verwendet wird, mit einem Benutzer interagieren; beispielsweise über das Senden von Webpages an einen Webbrowser auf dem Clientgerät des Benutzers als Antwort auf die vom Webbrowser empfangenen Aufforderungen.
  • Ausführungsformen des in dieser Spezifikation betrachteten Gegenstands können in ein Computersystem implementiert werden, das eine Backend-Komponente (z. B. einen Datenserver), oder eine Middleware-Komponente (z. B. einen Anwendungsserver) oder eine Frontend-Komponente (z. B. einen Kundencomputer mit graphischer Benutzeroberfläche oder einem Webbrowser) umfasst, worüber der Benutzer mit einer Implementierung des in dieser Spezifikation beschriebenen Gegenstands interagieren kann oder eine beliebige Kombination aus solchen Backend, Middleware- oder Frontend-Komponenten. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation miteinander verbunden sein, z. B. ein Kommunikationsnetz. Zu Beispielen für Kommunikationsnetze zählen ein lokales Netzwerk („LAN”), ein Fernnetzwerk („WAN”), eine netzübergreifende Verbindung (z. B. das Internet) und Peer-to-Peer Netzwerke (z. B. Ad-Hoc Peer-to-Peer Netzwerke).
  • Das Informatiksystem kann Kunden und Server umfassen. Ein Client und Server befinden sich im Allgemeinen ortsfern voneinander und interagieren typischerweise über ein Kommunikationsnetz. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander haben. In einigen Ausführungsformen überträgt ein Server Daten (z. B. eine HTML-Seite) an ein Client-Gerät (z. B. zum Anzeigen von Daten auf und zum Empfangen von Benutzereingaben von einem Benutzer, der mit dem Client-Gerät interagiert). Am Client-Gerät erzeugte Daten (z. B. infolge der Benutzerinteraktion) können vom Client-Gerät am Server empfangen werden.
  • Zwar enthält diese Spezifikation viele spezifische Implementierungsdetails, jedoch sollten diese nicht als Beschränkungen des Umfangs oder des Anspruchs ausgelegt werden, sondern vielmehr als Beschreibungen spezifischer Merkmale bestimmter Ausführungsformen bestimmter Erfindungen. Bestimmte Merkmale, die in dieser Spezifikation im Kontext der unterschiedlichen Ausführungsformen beschrieben werden, können auch in Kombination in einer einzelnen Ausführungsform implementiert werden. Andererseits können verschiedene Merkmale, die im Kontext einer einzelnen Ausführungsform beschrieben werden, in mehreren Ausführungsformen oder in jeder geeigneten Unterkombination implementiert werden. Außerdem können ein oder mehrere Merkmale einer beanspruchten Kombination in einigen Fällen aus der Kombination herausgelöst werden, auch wenn die Merkmale vorstehend als in gewissen Kombinationen funktionierend beschrieben oder gar als eine Kombination beansprucht werden, und die beanspruchte Kombination kann an eine Unterkombination oder eine Variation einer Unterkombination verwiesen werden.
  • Ebenso werden Tätigkeiten in den Zeichnungen zwar in einer bestimmten Reihenfolge dargestellt, aber dies sollte nicht als Erfordernis verstanden werden, dass solche Tätigkeiten in der bestimmten gezeigten Reihenfolge oder in einer aufeinanderfolgenden Reihenfolge ausgeführt werden müssen oder dass alle dargestellten Tätigkeiten ausgeführt werden müssen, um erwünschte Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und eine Parallelbearbeitung vorteilhaft sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den oben beschriebenen Ausführungsformen nicht in allen Ausführungsformen erforderlich aufgefasst werden, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in ein einziges Softwareprodukt integriert oder zu mehreren Softwareprodukten verkapselt werden können.
  • Folglich wurden bestimmte Ausführungsformen des Gegenstands beschrieben. Weitere Ausführungsformen gehören zum Umfang der folgenden Ansprüche. In einigen Fällen können die in den Ansprüchen beschriebenen Handlungen in einer anderen Reihenfolge ausgeführt werden und dennoch erwünschte Ergebnisse erzielen. Zusätzlich erfordern die in den beigefügten Figuren dargestellten Prozesse nicht notwendigerweise die bestimmte gezeigte Reihenfolge oder aufeinanderfolgende Reihenfolge, um erwünschte Ergebnisse zu erzielen. Bei bestimmten Implementierungen können Multitasking und eine Parallelbearbeitung vorteilhaft sein.

Claims (14)

  1. Maschinell lesbares Medium, auf dem Befehle gespeichert sind, worin die Befehle bei Ausführung durch einen oder mehrere Prozessoren die Prozessoren veranlassen, Vorgänge auszuführen, die die folgenden umfassen: das Empfangen einer ersten Festplattenzugriffs-Anfrage für einen Festplatten-Input/Output-(I/O)-Zugriff auf eine virtuelle Festplatte einer virtuellen Maschine, wobei die virtuelle Festplatte eine lokale physische Festplatte für die virtuelle Maschine emuliert; das Ermitteln simulierter Latenzkosten für den angefragten Festplatten-I/O-Zugriff gemäß eines oder mehrerer Latenz- und Durchsatzmerkmale der lokalen physischen Festplatte, die durch die virtuelle Festplatte emuliert wird, wobei die simulierten Latenzkosten eine simulierte Datenübertragungslatenz und eine simulierte Direktzugriffs-Latenz für die Ausführung des angefragten Festplatten-I/O-Zugriffs auf einer lokalen physischen Festplatte beinhalten, die durch die virtuelle Festplatte emuliert wird; und das Bestimmen, ob die Ausführung des angefragten Festplatten-I/O-Zugriffs verzögert werden soll, basierend auf einem Vergleich zwischen den simulierten Latenzkosten und einem aktuellen Wert eines Festplattendienst-Zugriffskontingents, das der virtuellen Festplatte zugeordnet ist, worin der aktuelle Wert des Festplattendienst-Zugriffskontingents im Zeitverlauf wieder aufgefüllt wird, an einer vorab festgelegten Obergrenze begrenzt und um die jeweiligen simulierten Latenzkosten jeder der vorausgehenden Festplattenzugriffs-Anfragen für die virtuelle Festplatte begrenzt wird, wenn der jeweilige angefragte Festplatten-I/O-Zugriff der vorhergehenden Festplattenzugriffs-Anfrage ausgeführt worden ist.
  2. Das maschinell lesbare Medium nach Anspruch 1, worin die virtuelle Festplatte logische Datenblöcke beinhaltet, die physische Datenblöcke abbilden, welche über mehrere physische Speichereinrichtungen verteilt sind.
  3. Das maschinell lesbare Medium nach Anspruch 2, worin die Vorgänge ferner umfassen: das Ausführen angefragter I/O-Zugriffe für eine Vielzahl von Festplattenzugriffs-Anfragen parallel auf mehreren physischen Speichereinheiten, wenn der aktuelle Wert des Festplattenzugriffskontingents oberhalb einer Summe der jeweiligen simulierten Latenzkosten der mehreren Festplattenzugriffs-Anfragen liegt.
  4. Das maschinell lesbare Medium nach Anspruch 1, worin die virtuelle Festplatte einer aus einer Vielzahl virtueller Festplatten ist, die auf einer Vielzahl virtueller Festplatten gehostet werden, und worin die Vorgänge ferner Folgendes umfassen: für jede der Vielzahl virtueller Festplatten: das Erhöhen eines jeweiligen Festplattendienst-Zugriffskontingents der virtuellen Festplatte gemäß einer vorab festgelegten Auffüllrate, die zu der virtuellen Festplatte gehört, bis ein aktueller Wert des jeweiligen Festplattendienst-Zugriffskontingents eine jeweilige vorab festgelegte Obergrenze erreicht, die zu der virtuellen Festplatte gehört; und das temporäre Pausieren der Erhöhung, bis der aktuelle Wert des jeweiligen Festplattendienst-Zugriffskontingents der virtuellen Festplatte unter die jeweilige vorab festgelegte Obergrenze fällt, die zu der virtuellen Festplatte gehört.
  5. Das maschinell lesbare Medium nach Anspruch 1, worin die Vorgänge ferner umfassen: das Aufzeichnen jeweiliger Endpositionen einer oder mehrerer vorheriger Festplattenzugriffs-Anfragen für die virtuelle Festplatte, die während eines vorab festgelegten Zeitraums unmittelbar vor der aktuellen Zeit empfangen wurden; und das Berechnen der simulierten Direktzugriffs-Latenz für die angefragten Festplatten-I/O-Zugriffe der ersten Festplattenzugriffs-Anfrage, basierend auf mindestens einer Suchdistanz zwischen einer Startposition des angefragten Festplatten-I/O-Zugriffs und einer nächsten Endposition unter den jeweiligen Endpositionen einer oder mehrerer vorhergehenden Festplattenzugriffs-Anfragen.
  6. Das maschinell lesbare Medium nach Anspruch 1, worin die Vorgänge ferner umfassen: Wenn festgestellt wird, dass die simulierten Latenzkosten der ersten Festplattenzugriffs-Anfrage bei oder unterhalb des aktuellen Wertes des Festplattendienst-Zugriffskontingents liegen, das der virtuellen Festplatte zugeordnet ist: das Ausführen des angefragten Festplatten-I/O-Zugriffs der ersten Festplattenzugriffs-Anfrage; und Das Abziehen der simulierten Latenzkosten des angefragten I/O-Zugriffs vom aktuellen Wert des Festplattendienst-Zugriffskontingents, das der virtuellen Festplatte zugeordnet ist; und, wenn festgestellt wird, dass die simulierten Latenzkosten der ersten Festplattenzugriffs-Anfrage den aktuellen Wert des der virtuellen Festplatte zugeordneten Festplattenzugriffs übertreffen: das Verbringen der ersten Festplattenzugriffs-Anfrage in eine Warteschlange, bis der aktuelle Wert des Festplattendienst-Zugriffskontingents die simulierten Latenzkosten der ersten Festplattenzugriffs durch geplantes Auffüllen erreicht oder übertroffen hat.
  7. Das maschinell lesbare Medium nach Anspruch 1, worin die Vorgänge ferner umfassen: Die Überwachung der Antwortzeit für die jeweilige Festplattenzugriffs-Anfrage für eine Vielzahl virtueller Festplatten, die eine Vielzahl darunter liegender physischer Speichereinrichtungen gemeinsam nutzen; Die Überwachung des Auslastungsgrades einer Festplattenzugriffs-Kapazität der Vielzahl der darunter liegenden physischen Speichereinheiten; und das Anpassen eines oder mehrerer aus einer Gruppe von vorab festgelegten Parametern, wobei die Gruppe von vorab festgelegten Parametern Auffüllraten und Obergrenzen der jeweiligen Festplattendienst-Zugriffskontingente der Vielzahl virtueller Festplatten beinhaltet sowie einen oder mehrere vorab festgelegte Werte, die verwendet werden für die Berechnung der simulierten Latenzkosten des angefragten Festplatten-I/O-Zugriffs.
  8. System, umfassend: einen oder mehrere Prozessor(en); und Speicher, auf dem Befehle gespeichert sind, wobei die Befehle bei Ausführung durch einen oder mehrere Prozessoren den Prozessor veranlassen, Vorgänge auszuführen, die die folgenden umfassen: das Empfangen einer ersten Festplattenzugriffs-Anfrage für einen Festplatten-Input/Output-(I/O)-Zugriff auf eine virtuelle Festplatte einer virtuellen Maschine, wobei die virtuelle Festplatte eine lokale physische Festplatte für die virtuelle Maschine emuliert; das Ermitteln simulierter Latenzkosten für den angefragten Festplatten-I/O-Zugriff gemäß eines oder mehrerer Latenz- und Durchsatzmerkmale der lokalen physischen Festplatte, die durch die virtuelle Festplatte emuliert wird, wobei die simulierten Latenzkosten eine simulierte Datenübertragungslatenz und eine simulierte Direktzugriffs-Latenz für die Ausführung des angefragten Festplatten-I/O-Zugriffs auf einer lokalen physischen Festplatte beinhalten, die durch die virtuelle Festplatte emuliert wird; und das Bestimmen, ob die Ausführung des angefragten Festplatten-I/O-Zugriffs verzögert werden soll, basierend auf einem Vergleich zwischen den simulierten Latenzkosten und einem aktuellen Wert eines Festplattendienst-Zugriffskontingents, das der virtuellen Festplatte zugeordnet ist, worin der aktuelle Wert des Festplattendienst-Zugriffskontingents im Zeitverlauf wieder aufgefüllt wird, an einer vorab festgelegten Obergrenze begrenzt und um die jeweiligen simulierten Latenzkosten jeder der vorausgehenden Festplattenzugriffs-Anfragen für die virtuelle Festplatte begrenzt wird, wenn der jeweilige angefragte Festplatten-I/O-Zugriff der vorhergehenden Festplattenzugriffs-Anfrage ausgeführt worden ist.
  9. Das System nach Anspruch 8, worin die virtuelle Festplatte logische Datenblöcke beinhaltet, die physische Datenblöcke abbilden, welche über mehreren physischen Speichereinrichtungen verteilt sind.
  10. Das System nach Anspruch 9, worin die Vorgänge ferner Folgendes umfassen: das Ausführen angefragter I/O-Zugriffe für eine Vielzahl von Festplattenzugriffs-Anfragen parallel auf mehreren physischen Speichereinheiten, wenn der aktuelle Wert des Festplattenzugriffskontingents oberhalb einer Summe der jeweiligen simulierten Latenzkosten der mehreren Festplattenzugriffs-Anfragen liegt.
  11. Das System nach Anspruch 8, worin die virtuelle Festplatte einer von einer Vielzahl virtueller Festplatten ist, die auf einer Vielzahl virtueller Festplatten gehostet werden, und worin die Vorgänge ferner Folgendes umfassen: für jede der Vielzahl virtueller Festplatten: das Erhöhen eines jeweiligen Festplattendienst-Zugriffskontingents der virtuellen Festplatte gemäß einer vorab festgelegten Auffüllrate, die zu der virtuellen Festplatte gehört, bis ein aktueller Wert des jeweiligen Festplattendienst-Zugriffskontingents eine jeweilige vorab festgelegte Obergrenze erreicht, die zu der virtuellen Festplatte gehört; und das temporäre Pausieren der Erhöhung, bis der aktuelle Wert des jeweiligen Festplattendienst-Zugriffskontingents der virtuellen Festplatte unter die jeweilige vorab festgelegte Obergrenze fällt, die zu der virtuellen Festplatte gehört.
  12. Das System nach Anspruch 8, worin die Vorgänge ferner Folgendes umfassen: das Aufzeichnen jeweiliger Endpositionen einer oder mehrerer vorheriger Festplattenzugriffs-Anfragen für die virtuelle Festplatte, die während eines vorab festgelegten Zeitraums unmittelbar vor der aktuellen Zeit empfangen wurden; und das Berechnen der simulierten Direktzugriffs-Latenz für die angefragten Festplatten-I/O-Zugriffe der ersten Festplattenzugriffs-Anfrage, basierend auf mindestens einer Suchdistanz zwischen einer Startposition des angefragten Festplatten-I/O-Zugriffs und einer nächsten Endposition unter den jeweiligen Endpositionen einer oder mehrerer vorhergehenden Festplattenzugriffs-Anfragen.
  13. Das System nach Anspruch 8, worin die Vorgänge ferner Folgendes umfassen: Wenn festgestellt wird, dass die simulierten Latenzkosten der ersten Festplattenzugriffs-Anfrage bei oder unterhalb des aktuellen Wertes des Festplattendienst-Zugriffskontingents liegen, das der virtuellen Festplatte zugeordnet ist: das Ausführen des angefragten Festplatten-I/O-Zugriffs der ersten Festplattenzugriffs-Anfrage; und das Abziehen der simulierten Latenzkosten des angefragten I/O-Zugriffs von dem aktuellen Wert des Festplattendienst-Zugriffskontingents, das der virtuellen Festplatte zugeordnet ist; und Wenn festgestellt wird, dass die simulierten Latenzkosten der ersten Festplattenzugriffs-Anfrage über dem aktuellen Wertes des Festplattendienst-Zugriffskontingents liegen, das der virtuellen Festplatte zugeordnet ist: Das Verbfingen der ersten Festplattenzugriffs-Anfrage in eine Warteschlange, bis der aktuelle Wert des Festplattendienst-Zugriffskontingents die simulierten Latenzkosten der ersten Festplattenzugriffs-Anfrage durch geplantes Wiederauffüllen erreicht oder übertroffen hat.
  14. Das System nach Anspruch 8, worin die Vorgänge ferner Folgendes umfassen: Die Überwachung der Antwortzeit für die jeweiligen Festplattenzugriffs-Anfragen für eine Vielzahl virtueller Festplatten, die eine Vielzahl darunter liegender physischer Speichereinrichtungen gemeinsam nutzen; Die Überwachung des Auslastungsgrades einer Festplattenzugriffs-Kapazität der Vielzahl der darunter liegenden physischen Speichereinheiten; und das Anpassen eines oder mehrerer aus einer Gruppe von vorab festgelegten Parametern, wobei die Gruppe von vorab festgelegten Parametern Auffüllraten und Obergrenzen der jeweiligen Festplattendienst-Zugriffskontingente der Vielzahl virtueller Festplatten beinhaltet sowie einen oder mehrere vorab festgelegte Werte, die verwendet werden für die Berechnung der simulierten Latenzkosten des angefragten Festplatten-I/O-Zugriffs.
DE202012013464.7U 2011-09-23 2012-09-21 Bandbreitendrosselung virtueller Festplatten Expired - Lifetime DE202012013464U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/243,752 2011-09-23
US13/243,752 US9069616B2 (en) 2011-09-23 2011-09-23 Bandwidth throttling of virtual disks

Publications (1)

Publication Number Publication Date
DE202012013464U1 true DE202012013464U1 (de) 2017-01-30

Family

ID=46981155

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202012013464.7U Expired - Lifetime DE202012013464U1 (de) 2011-09-23 2012-09-21 Bandbreitendrosselung virtueller Festplatten

Country Status (5)

Country Link
US (1) US9069616B2 (de)
EP (1) EP2758877B1 (de)
CN (1) CN103917957B (de)
DE (1) DE202012013464U1 (de)
WO (1) WO2013044112A1 (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874888B1 (en) 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system
US9135037B1 (en) 2011-01-13 2015-09-15 Google Inc. Virtual network protocol
US8745329B2 (en) 2011-01-20 2014-06-03 Google Inc. Storing data across a plurality of storage nodes
US8533796B1 (en) 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
US9237087B1 (en) 2011-03-16 2016-01-12 Google Inc. Virtual machine name resolution
US9063818B1 (en) 2011-03-16 2015-06-23 Google Inc. Automated software updating based on prior activity
US8261295B1 (en) 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
US9639379B1 (en) * 2011-07-19 2017-05-02 Open Invention Network Llc Dynamic configuration of virtual machines
US9075979B1 (en) 2011-08-11 2015-07-07 Google Inc. Authentication based on proximity to mobile device
US8966198B1 (en) 2011-09-01 2015-02-24 Google Inc. Providing snapshots of virtual storage devices
US8958293B1 (en) 2011-12-06 2015-02-17 Google Inc. Transparent load-balancing for cloud computing services
US8800009B1 (en) 2011-12-30 2014-08-05 Google Inc. Virtual machine service access
US8983860B1 (en) 2012-01-30 2015-03-17 Google Inc. Advertising auction system
US8677449B1 (en) 2012-03-19 2014-03-18 Google Inc. Exposing data to virtual machines
US9712453B1 (en) * 2012-03-26 2017-07-18 Amazon Technologies, Inc. Adaptive throttling for shared resources
US9069806B2 (en) 2012-03-27 2015-06-30 Google Inc. Virtual block devices
US9830256B1 (en) * 2013-04-19 2017-11-28 Amazon Technologies, Inc. Block device workload analysis
US9262505B2 (en) * 2013-05-17 2016-02-16 Amazon Technologies, Inc. Input-output prioritization for database workload
CN104580124B (zh) 2013-10-29 2019-04-05 华为技术有限公司 协议栈选择方法、装置及设备
US9515951B2 (en) 2013-11-15 2016-12-06 Microsoft Technology Licensing, Llc Computing system architecture that facilitates forming of customized virtual disks
CN105242955B (zh) * 2014-07-07 2019-01-29 腾讯科技(深圳)有限公司 一种虚拟机磁盘输入输出调度方法及系统
US9917790B2 (en) 2014-07-31 2018-03-13 Microsoft Technology Licensing, Llc Storage device access mediation
US9442669B2 (en) * 2014-08-06 2016-09-13 International Business Machines Corporation Cost-effective IAAS (infrastructure-as-a-service) cloud storage based on adaptive virtual disks (AVD)
US9860317B1 (en) * 2015-04-30 2018-01-02 Amazon Technologies, Inc. Throughput throttling for distributed file storage services with varying connection characteristics
US9923965B2 (en) 2015-06-05 2018-03-20 International Business Machines Corporation Storage mirroring over wide area network circuits with dynamic on-demand capacity
US10474536B2 (en) * 2015-06-10 2019-11-12 International Business Machines Corporation Calculating bandwidth requirements for a specified recovery point objective
US10055242B2 (en) * 2015-10-16 2018-08-21 Microsoft Technology Licensing, Llc Virtualizing audio decoding hardware
US9923784B2 (en) 2015-11-25 2018-03-20 International Business Machines Corporation Data transfer using flexible dynamic elastic network service provider relationships
US10581680B2 (en) 2015-11-25 2020-03-03 International Business Machines Corporation Dynamic configuration of network features
US10177993B2 (en) 2015-11-25 2019-01-08 International Business Machines Corporation Event-based data transfer scheduling using elastic network optimization criteria
US10057327B2 (en) 2015-11-25 2018-08-21 International Business Machines Corporation Controlled transfer of data over an elastic network
US10216441B2 (en) 2015-11-25 2019-02-26 International Business Machines Corporation Dynamic quality of service for storage I/O port allocation
US9923839B2 (en) * 2015-11-25 2018-03-20 International Business Machines Corporation Configuring resources to exploit elastic network capability
CN106802847B (zh) * 2015-11-26 2022-05-13 伊姆西Ip控股有限责任公司 用于模拟慢速存储盘的方法和装置
US9983821B2 (en) * 2016-03-29 2018-05-29 Samsung Electronics Co., Ltd. Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application
CN106201650B (zh) * 2016-06-29 2020-08-25 联想(北京)有限公司 一种虚拟机控制方法和系统
US10101920B2 (en) 2016-06-30 2018-10-16 Microsoft Technology Licensing, Llc Disk I/O attribution
US10228868B1 (en) * 2016-09-30 2019-03-12 EMC IP Holding Company LLC Managing lifespan of a flash memory
CN106775924B (zh) * 2016-11-07 2018-08-07 北京百度网讯科技有限公司 虚拟机启动方法和装置
US10768827B2 (en) * 2017-04-07 2020-09-08 Microsoft Technology Licensing, Llc Performance throttling of virtual drives
US10216660B1 (en) * 2017-07-13 2019-02-26 EMC IP Holding Company LLC Method and system for input/output (IO) scheduling in a storage system
US11409450B2 (en) 2019-06-17 2022-08-09 Micron Technology, Inc. Channel architecture for memory devices
US11899558B2 (en) * 2021-01-15 2024-02-13 Netflix, Inc. Systems and methods for optimizing hard drive throughput

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463768A (en) 1994-03-17 1995-10-31 General Electric Company Method and system for analyzing error logs for diagnostics
US5778444A (en) 1996-05-06 1998-07-07 Motorola, Inc. Method and apparatus for reset-sensitive and controlled register write accesses in a data processing system with user and test modes
US6178482B1 (en) 1997-11-03 2001-01-23 Brecis Communications Virtual register sets
US6505211B1 (en) 1999-01-26 2003-01-07 International Business Machines Corporation Method for providing for persistence of java classes where the persistence semantics may be orthogonal to the class definition
US6477683B1 (en) 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6490651B1 (en) * 2000-03-14 2002-12-03 Maxtor Corporation Host-based virtual disk drive for improving the performance of a hard disk drive's input/output
US6598179B1 (en) 2000-03-31 2003-07-22 International Business Machines Corporation Table-based error log analysis
JP2002207620A (ja) 2001-01-10 2002-07-26 Toshiba Corp ファイルシステム及び該システムにおけるデータキャッシング方法
US7367028B2 (en) 2001-08-14 2008-04-29 National Instruments Corporation Graphically deploying programs on devices in a system
US7117243B2 (en) 2001-10-02 2006-10-03 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
US6898697B1 (en) 2002-03-29 2005-05-24 Advanced Micro Devices, Inc. Efficient method for mode change detection and synchronization
US7055071B2 (en) 2003-01-09 2006-05-30 International Business Machines Corporation Method and apparatus for reporting error logs in a logical environment
US7373451B2 (en) 2003-12-08 2008-05-13 The Board Of Trustees Of The Leland Stanford Junior University Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers
US7529836B1 (en) 2004-01-08 2009-05-05 Network Appliance, Inc. Technique for throttling data access requests
US20050166011A1 (en) 2004-01-23 2005-07-28 Burnett Robert J. System for consolidating disk storage space of grid computers into a single virtual disk drive
US20070271604A1 (en) 2004-03-17 2007-11-22 Fidelitygenetic Ltd. Secure Transaction of Dna Data
JP4147198B2 (ja) 2004-03-23 2008-09-10 株式会社日立製作所 ストレージシステム
US7478388B1 (en) 2004-04-21 2009-01-13 Vmware, Inc. Switching between multiple software entities using different operating modes of a processor in a computer system
US7512721B1 (en) 2004-05-25 2009-03-31 Qlogic, Corporation Method and apparatus for efficient determination of status from DMA lists
US7650331B1 (en) 2004-06-18 2010-01-19 Google Inc. System and method for efficient large-scale data processing
GB2418326B (en) 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
GB2419697A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructures each having an infrastructure controller
GB2419702A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructures which can be suspended and later reactivated
GB2419701A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructure with dynamic control of mapping
US7555596B2 (en) * 2004-12-10 2009-06-30 Microsoft Corporation Systems and methods for attaching a virtual machine virtual hard disk to a host machine
US20060161753A1 (en) 2005-01-18 2006-07-20 Aschoff John G Method, apparatus and program storage device for providing automatic performance optimization of virtualized storage allocation within a virtualized storage subsystem
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
GB0523115D0 (en) * 2005-11-12 2005-12-21 Ibm A resource optimisation component
US7761573B2 (en) 2005-12-07 2010-07-20 Avaya Inc. Seamless live migration of virtual machines across optical networks
EP1818844B1 (de) 2006-02-10 2013-03-13 Secunet Security Networks Aktiengesellschaft Verfahren zur Benutzung von Sicherheitstoken
US20080086515A1 (en) 2006-10-06 2008-04-10 International Business Machines Corporation Method and System for a Soft Error Collection of Trace Files
US7584229B2 (en) * 2006-10-31 2009-09-01 Sun Microsystems, Inc. Method and system for priority-based allocation in a storage pool
US7653833B1 (en) 2006-10-31 2010-01-26 Hewlett-Packard Development Company, L.P. Terminating a non-clustered workload in response to a failure of a system with a clustered workload
US20080205415A1 (en) 2007-02-28 2008-08-28 Morales Henry N Jerez Access, Connectivity and Interoperability for Devices and Services
US20080270704A1 (en) 2007-04-30 2008-10-30 He Dingshan Cache arrangement for improving raid i/o operations
US8127295B1 (en) * 2007-08-03 2012-02-28 Oracle America, Inc. Scalable resource allocation
US7836285B2 (en) 2007-08-08 2010-11-16 Analog Devices, Inc. Implementation of variable length instruction encoding using alias addressing
US20090097657A1 (en) 2007-10-05 2009-04-16 Scheidt Edward M Constructive Channel Key
JP4480756B2 (ja) 2007-12-05 2010-06-16 富士通株式会社 ストレージ管理装置、ストレージシステム制御装置、ストレージ管理プログラム、データ記憶システムおよびデータ記憶方法
US8156491B2 (en) 2008-02-29 2012-04-10 Red Hat, Inc. Fault tolerant virtual machine
US8336094B2 (en) 2008-03-27 2012-12-18 Juniper Networks, Inc. Hierarchical firewalls
US8418238B2 (en) 2008-03-30 2013-04-09 Symplified, Inc. System, method, and apparatus for managing access to resources across a network
US7596620B1 (en) 2008-11-04 2009-09-29 Aptana, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
US8103776B2 (en) 2008-08-29 2012-01-24 Red Hat, Inc. Systems and methods for storage allocation in provisioning of virtual machines
US8065714B2 (en) 2008-09-12 2011-11-22 Hytrust, Inc. Methods and systems for securely managing virtualization platform
US9189268B2 (en) 2008-10-10 2015-11-17 Netapp, Inc. Limiting simultaneous data transfers and efficient throttle management
US7805516B2 (en) 2008-10-14 2010-09-28 Dell Products L.P. Enabling throttling of resources on a virtualization enabled information handling system
WO2010090664A1 (en) 2009-02-05 2010-08-12 Wwpass Corporation Centralized authentication system with safe private data storage and method
US8578076B2 (en) 2009-05-01 2013-11-05 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US8429647B2 (en) 2009-05-06 2013-04-23 Vmware, Inc. Virtual machine migration across network by publishing routes to the associated virtual networks via virtual router after the start of migration of the virtual machine
US8463885B2 (en) 2009-08-31 2013-06-11 Red Hat, Inc. Systems and methods for generating management agent installations
US20110060882A1 (en) * 2009-09-04 2011-03-10 Petros Efstathopoulos Request Batching and Asynchronous Request Execution For Deduplication Servers
US8949408B2 (en) 2009-12-18 2015-02-03 Microsoft Corporation Session monitoring of virtual desktops in a virtual machine farm
US9953178B2 (en) 2010-02-03 2018-04-24 Os Nexus, Inc. Role based access control utilizing scoped permissions
US9875463B2 (en) 2010-03-17 2018-01-23 Infostreet, Inc. Cloud-based desktop and subscription application platform apparatuses, methods and systems
US9443078B2 (en) 2010-04-20 2016-09-13 International Business Machines Corporation Secure access to a virtual machine
US8745329B2 (en) 2011-01-20 2014-06-03 Google Inc. Storing data across a plurality of storage nodes
US8261295B1 (en) 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
US8276140B1 (en) 2011-11-14 2012-09-25 Google Inc. Adjustable virtual network performance

Also Published As

Publication number Publication date
CN103917957A (zh) 2014-07-09
EP2758877B1 (de) 2019-06-05
US20130081014A1 (en) 2013-03-28
CN103917957B (zh) 2017-06-23
EP2758877A1 (de) 2014-07-30
WO2013044112A1 (en) 2013-03-28
US9069616B2 (en) 2015-06-30

Similar Documents

Publication Publication Date Title
DE202012013464U1 (de) Bandbreitendrosselung virtueller Festplatten
US20230283681A1 (en) System and method for throttling service requests having non-uniform workloads
DE102015105884B4 (de) Rechenknoten und Verfahren zur Migration einer virtuellen Maschine, Rechenzentrummanager zur Migration virtueller Maschinen, Maschinenlesbares Speichermedium und Rechenvorrichtungen
US8953453B1 (en) System and method for throttling service requests using work-based tokens
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE112012003505B4 (de) Automatisierte Auswahl von Funktionen zum Verringern der Speicherkapazität auf der Grundlage von Leistungsanforderungen
DE112012005529T5 (de) Dynamisches Skalieren von mehrschichtigen Anwendungen in einer Cloud-Umgebung
DE112012002452B4 (de) Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten
DE112011101633T5 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
DE112018005268T5 (de) Priorisieren von anwendungen für eine diagonale skalierung in einer verteilten datenverarbeitungsumgebung
DE112020004651B4 (de) Multi-tenant-etl-ressourcenaufteilung
DE102012215219A1 (de) Ermitteln von Verteilungen von Abbildmustern von virtuellen Maschinen in einer vernetzten Datenverarbeitungsumgebung
DE112013004805T5 (de) Unterstützen eines koordinierten Zugriffs auf einen gemeinsam genutzten Speicher eines Dateisystems unter Verwendung einer automatischen Ausrichtung eines Protokolls für einen parallelen Dateizugriff und einer Metadatenverwaltung
DE112011105672T5 (de) Verwaltung der Datennutzung einer Recheneinrichtung
DE112020004181T5 (de) Bereitstellen eines direkten datenzugriffs zwischen beschleunigern und speicher in einer datenverarbeitungsumgebung
DE112008004056T5 (de) Dateitypzuordnung bei einer Fernrechensitzung
DE112021005586T5 (de) Automatisches skalieren einer abfrage-steuerungsroutine für arbeitslasten im bereich big data auf unternehmensebene
DE112018004415B4 (de) Optimierung von cloud-ressourcen bei operationen in mehrstufigem speicher auf richtliniengrundlage
DE112018005973T5 (de) Automatisches diagonales skalieren von arbeitslasten in einer verteilten datenverarbeitungsumgebung
DE202021004340U1 (de) Beschränkte Sichten zum Steuern des Zugriffs auf Informationen in einem Datenbanksystem
DE102020112066B4 (de) Betriebsmetrik für gemeinsam genutzte ressourcen
DE112020005326T5 (de) Erzeugen eines skalierungsplans für externe systeme während eines cloud-tenant-onboardings/offboardings
DE112014005183T5 (de) Speicherdienstnetz
DE112017001421T5 (de) Flexibel optimiertes Datenhandling in Systemen mit mehreren Speichern
DE102016203828A1 (de) Auf Zugriffsrechten beruhender Speicherfixierungsmechanismus

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R151 Utility model maintained after payment of second maintenance fee after six years
R152 Utility model maintained after payment of third maintenance fee after eight years
R071 Expiry of right