DE112010003594B4 - Vorrichtung, Verfahren und Computerprogramm zum Betreiben eines verteilten Gruppenspeichernetzes für Schreibvorgänge - Google Patents

Vorrichtung, Verfahren und Computerprogramm zum Betreiben eines verteilten Gruppenspeichernetzes für Schreibvorgänge Download PDF

Info

Publication number
DE112010003594B4
DE112010003594B4 DE112010003594.6T DE112010003594T DE112010003594B4 DE 112010003594 B4 DE112010003594 B4 DE 112010003594B4 DE 112010003594 T DE112010003594 T DE 112010003594T DE 112010003594 B4 DE112010003594 B4 DE 112010003594B4
Authority
DE
Germany
Prior art keywords
data
storage control
buffer
forwarding layer
storage
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.)
Active
Application number
DE112010003594.6T
Other languages
English (en)
Other versions
DE112010003594T5 (de
Inventor
Carlos Francisco Fuente
William James Scales
John Earle Lindley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112010003594T5 publication Critical patent/DE112010003594T5/de
Application granted granted Critical
Publication of DE112010003594B4 publication Critical patent/DE112010003594B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/0656Data buffering arrangements
    • 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/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

Vorrichtung, die in einem verteilten Gruppenspeichernetz betrieben werden kann, das ein Host-Computersystem und ein Speicherteilsystem aufweist, wobei die Vorrichtung eine Vielzahl von Speichersteuerknoten umfasst, und jeder Speichersteuerknoten, von denen jeder in der Lage ist, auf eine Anforderung vom Host-Computersystem hin Daten in einen Speicher zu schreiben, Folgendes umfasst:
eine Weiterleitungsschicht in einem ersten aus der Vielzahl von Speichersteuerknoten, die in der Lage ist, Daten an einen zweiten aus der Vielzahl von Speichersteuerknoten weiterzuleiten;
eine Puffersteuerkomponente in jedem aus der Vielzahl von Speichersteuerknoten, die in der Lage ist, eine Puffer-Ressource für in den Speicher zu schreibende Daten zuzuordnen;
eine Datenübertragungsverbindung zwischen der Puffersteuerkomponente und der Weiterleitungsschicht in jedem aus der Vielzahl von Speichersteuerknoten, die in der Lage ist, einen Anzeiger für einen eingeschränkten Status der Puffer-Ressource an die Weiterleitungsschicht zu übertragen;
eine in der Weiterleitungsschicht eingebettete Modusauswählkomponente, die auf den Empfang des Anzeigers für einen eingeschränkten Status in der Weiterleitungsschicht anspricht, um einen eingeschränkten Betriebsmodus eines Schreibvorgangs auszuwählen, wobei der eingeschränkte Betriebsmodus die Zuordnung einer Puffer-Ressource im zweiten Speichersteuerknoten und die Übertragung der Zuordnung erfordert, bevor der erste Speichersteuerknoten in der Lage ist, eine Puffer-Ressource für die Daten zuzuordnen und die Daten weiterzuleiten;
wobei die Datenübertragungsverbindung zwischen der Puffersteuerkomponente und der Weiterleitungsschicht in jedem aus der Vielzahl von Speichersteuerknoten außerdem in der Lage ist, einen Anzeiger für einen nichteingeschränkten Status der Puffer-Ressource an die Weiterleitungsschicht zu übertragen;
wobei die in der Weiterleitungsschicht eingebettete Modusauswählkomponente auf den Empfang des Anzeigers für einen nichteingeschränkten Status in der Weiterleitungsschicht hin einen nichteingeschränkten Betriebsmodus eines Schreibvorgangs auswählt, wobei der nichteingeschränkte Betriebsmodus die Verwendung eines festgelegten Ressourcen-Guthabens gestattet, das vom zweiten an den ersten der Speichersteuerknoten übertragen wird und die Weiterleitung einer Schreibanforderung mit den Daten vom ersten an den zweiten der Speichersteuerknoten gestattet.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft Speichersteuereinheitensysteme und insbesondere jene, die als verteilte Gruppe (distributed cluster) mit mehreren Knoten und integrierter Zwischenspeicherfunktion bereitgestellt werden, beispielsweise SAN Volume Controller von IBM® (IBM ist ein eingetragenes Warenzeichen von IBM Corporation in den USA, anderen Ländern oder beiden). Des Weiteren betrifft die Erfindung ein entsprechendes Verfahren und Computerprogramm zum Betreiben eines verteilten Gruppenspeichernetzes für Schreibvorgänge.
  • Grundlagen der Erfindung
  • Im Mittelpunkt der vorliegenden Erfindung steht die Interaktion zweier Funktionen in diesem System - der Weiterleitungsschicht und des zum Bereitstellen einer Schreibpuffer-Ressource verwendeten Cachespeichers - und wie diese Funktionen Ein/Ausgabe- (E/A-) Anforderungen bearbeiten. Eine Beschreibung von diesen ist zum Verständnis der Erfindung notwendig.
  • Die Weiterleitungsschicht ermöglicht den Empfang einer E/A-Anforderung in einem beliebigen Knoten des Systems und die Weiterleitung dieser Anforderung an einen anderen Knoten, der tatsächlich für die Bearbeitung dieser Anforderung zuständig ist. In Systemen, die so skaliert werden können, dass sie viele Knoten enthalten, wird diese Technik allgemein verwendet, um zu ermöglichen, dass die Arbeitslast des gesamten Systems unter den zugehörigen Knoten aufgeteilt wird und jeder Knoten nur von einem Teil der Arbeitslast des gesamten Systems betroffen ist. Diese Technik ermöglicht die Verwendung einfacherer Algorithmen, und diese Algorithmen tragen ebenfalls zur Skalierung bei, damit sie in größeren Systemen problemloser eingesetzt werden können. Im Gegensatz dazu stehen Algorithmen, die einem beliebigen Knoten im System die Verarbeitung einer beliebigen Anforderung ermöglichen, insbesondere wenn diese Anforderungen in Bezug auf andere, in anderen Knoten des Systems empfangene Anforderungen zusammenhängend verarbeitet werden müssen.
  • Bei der Bearbeitung einer weitergeleiteten E/A-Anforderung bleibt der weiterleitende Knoten im Allgemeinen am E/A-Prozess beteiligt. Insbesondere ist der weiterleitende Knoten noch immer für die Ausführung der Datenübertragung an den/vom Host und für die Übertragung eines Beendigungsstatus an den Host zuständig, selbst wenn der Knoten, an den die Anforderung weitergeleitet wurde, entsprechend seiner Bearbeitung der E/A-Anforderung die Quelle (source) und/oder die Senke (sink) dieser Daten und dieses Status ist. Manchmal ist es möglich, die Anforderung vollständig zu übergeben, so dass der weiterleitende Knoten nicht mehr für die Anforderung zuständig ist, sobald sie weitergeleitet wurde, und der Austausch erfolgt lediglich zwischen dem Erzeuger der Anforderung und dem Knoten, an den sie weitergleitet wurde. Diese Funktion ist jedoch aufgrund von Einschränkungen durch die die Erzeuger-Hosts und die weiterleitenden/empfangenen Knoten verbindende Infrastruktur und/oder Einschränkungen in der Adaptertechnologie, die die Schnittstelle zwischen dem weiterleitenden Knoten und dieser Struktur bildet, nicht immer möglich.
  • Der Prozess für einen Schreibbefehl macht es insbesondere erforderlich, dass der weiterleitende Knoten eine Datenübertragung vom Host in einen Puffer in diesem Knoten anfordert und sodann den Inhalt dieses Puffers in einen weiteren Puffer in dem Knoten, an den die Anforderung weitergeleitet wird, überträgt. Ein Schema zur Ausführung dieser Übertragung beinhaltet die folgenden Schritte (mit Bezugnahme auf 2):
    • 200. Der Host überträgt eine E/A-Schreibanforderung an den ersten Knoten.
    • 202. Der erste (weiterleitende) Knoten leitet die Anforderung an den zweiten (empfangenden) Knoten weiter.
    • 204. Der zweite Knoten entscheidet sich zur Verarbeitung, ordnet einen Puffer zu, in dem die Daten empfangen werden müssen, und überträgt eine Anforderung nach Daten an den ersten Knoten.
    • 206. Der erste Knoten ordnet einen Puffer zu und überträgt die Anforderung nach Daten an den Host.
    • 208. Der Host überträgt die Daten, und die Daten werden im ersten Knoten in dem bei 206 festgelegten Puffer empfangen.
    • 210. Der erste Knoten wird über die Beendigung der Datenübertragung benachrichtigt und startet die Datenübertragung an den zweiten Knoten in den bei 204 festgelegten Puffer.
    • 212. Der zweite Knoten wird über die Beendigung der Datenübertragung benachrichtigt und setzt die Verarbeitung der E/A-Schreibanforderung unter Verwendung der empfangenen Daten fort.
  • Es sei darauf hingewiesen, dass die Vorbelegung von Puffern, in denen Daten empfangen werden sollen, eine wichtige Voraussetzung für die Verarbeitung in einem Speichernetz ist, beispielsweise in einem auf Fibre Channel beruhenden Netz. Außerdem sei darauf hingewiesen, dass diese Puffer verhältnismäßig kostspielig sind, was bedeutet, dass sie ausdrücklich einer E/A-Anforderung zugewiesen werden müssen, wenn diese verarbeitet wird, anstatt als verfügbar angesehen zu werden. Folglich überträgt der Host in der obigen Abfolge bei 200 die Schreibdaten nicht mit der Anforderung; stattdessen wartet er, bis er bei 206 nach den Daten gefragt wird. Ebenso überträgt der weiterleitende Knoten die Daten erst, wenn der Knoten, an den sie weitergeleitet werden, danach fragt. Dieses Verhalten ist hilfreich zur Verhinderung eines in der Struktur entstehenden Belegtzustandes, bei dem Daten übertragen, aber aufgrund einer fehlenden Pufferung beim Empfänger nicht empfangen werden können, und ist eine wichtige Funktion, die dazu beiträgt, die Ausführung von Datenübertragungen in Speichernetzen von jener in herkömmlichen Netzwerken zu unterscheiden.
  • Eine Folge des obigen Schemas ist jedoch, dass der gesamte E/A-Prozess mehrere Schritte beinhaltet und im Vergleich zu dem entsprechenden Prozess, in dem der E/A-Vorgang vollständig im ersten Knoten bearbeitet wird, vom Anfang bis zum Ende länger dauert, wobei der Prozess die folgenden Schritte umfasst (mit Bezugnahme auf 3):
    • 300. Der Host überträgt eine E/A-Schreibanforderung an den ersten Knoten.
    • 302. Der erste Knoten entscheidet sich zur Verarbeitung, ordnet einen Puffer zu, in dem die Daten empfangen werden müssen, und überträgt eine Anforderung nach Daten an den Host. 304. Der Host überträgt die Daten, und die Daten werden im ersten Knoten in dem bei 302 festgelegten Puffer empfangen.
    • 306. Der erste Knoten wird über die Beendigung der Datenübertragung benachrichtigt und setzt die Verarbeitung der E/A-Schreibanforderung unter Verwendung der empfangenen Daten fort.
  • Das zusätzliche Datenaustausch kann einen beträchtlichen Einfluss auf die vom Host wahrgenommene Gesamtverarbeitungszeit haben, möglicherweise dreimal so lange wie die Zeit, die er zum Warten auf die E/A-Anforderung hat (im Vergleich zum Fall der lokalen Verarbeitung) und dies kann deutlich auf Kosten der gesamten Systemleistung gehen.
  • Die folgende Reihe von Schritten kann zur Verringerung dieser zusätzlichen Verarbeitungszeit verwendet werden (mit Bezugnahme auf 4):
    • 400. Der Host überträgt eine E/A-Schreibanforderung an den ersten Knoten.
    • 402. Der erste Knoten ordnet einen Puffer zu und überträgt eine Anforderung nach Daten an den Host.
    • 404. Der Host überträgt die Daten, und die Daten werden im ersten Knoten in dem bei 402 festgelegten Puffer empfangen.
    • 406. Der erste (weiterleitende) Knoten leitet die Anforderung mit Daten an den zweiten (empfangenden) Knoten.
    • 408. Der zweite Knoten verarbeitet die E/A-Anforderung unter Verwendung der empfangenen Daten.
  • Die obige Abfolge vermeidet einen zusätzlichen Austausch von Nachrichten zwischen ersten und zweiten Knoten zur Ausführung der Datenübertragung während des E/A-Prozesses, wodurch die Situation im Vergleich zu zur ersten Abfolge erheblich verbessert wird. Bei diesem vereinfachten Prozess müssen vor der Verarbeitung des E/A-Vorgangs keine zusätzlichen Arbeitsgänge ausgeführt werden, so dass der Bedingung entsprochen wird, dass Pufferspeicherplatz zur Ausführung der Datenübertragung bei 306 vorhanden ist. Der empfangende Knoten muss eine üblicherweise als ‚Guthaben‘ (credit) bezeichnete Berechtigung an den weiterleitenden Knoten übertragen, die es ihm gestattet, künftig eine bestimmte Menge an Schreibdaten zu übertragen, und der weiterleitende Knoten muss ein solches Guthaben empfangen, bevor er diese Übertragung ausführt. Die Übertragung verbraucht das Guthaben, und folglich muss der empfangende Knoten in Erwartung weiterer E/A-Vorgänge ein weiteres Guthaben erzeugen und dieses an den weiterleitenden Knoten übertragen, wenn er einen E/A-Prozess ausführt und beendet und wieder Pufferspeicherplatz frei wird.
  • Die Cachespeicherfunktion in Cachespeichersteuereinheiten, beispielsweise SAN Volume Controller (im Folgenden „SVC“) von IBM stellt einen nichtflüchtigen Schreibcachespeicher bereit, wobei sie einen Schreib-E/A-Vorgang verarbeitet, indem die Daten der Anforderung in einem nichtflüchtigen Speicher (meistens in zwei Knoten) platziert und den Host-E/A-Vorgang sofort beendet. Zu einem späteren Zeitpunkt werden die Daten ‚ausgespeichert‘, was das Übertragen eines Schreibbefehls für diese Daten an die Festplatte beinhaltet, die die normale Speicherstelle für diese Daten ist. Wenn eine Bestätigung für diesen Schreibbefehl empfangen wird, können die Daten aus dem nichtflüchtigen Speicherinhalt entfernt werden. Der Host nimmt eine wesentlich kürzere Antwortzeit für seine E/A-Anforderung wahr, als es bei einer direkten Übertragung der Anforderung an die Festplatte der Fall wäre, wodurch die Systemleistung verbessert wird. Ein nichtflüchtiger Cachespeicher ist für die Bereitstellung einer Schreibpuffer-Ressource in Datenspeichersystemen entsprechend geeignet.
  • Dennoch ist es allgemein üblich, die Ausgabe dieses Schreibvorgangs sofort zu vermeiden. Dadurch können mehrere Vorteile erreicht werden. Wenn der Host beispielsweise anschließend eine weitere E/A-Schreibanforderung nach derselben Speicherstelle überträgt, kann diese neue E/A-Schreibanforderung verarbeitet werden, indem die vorhandenen Daten durch die Daten aus dem späteren Schreibvorgang ersetzt werden. Wenn zu einem zukünftigen Zeitpunkt eine Ausspeicherung für einen Schreibvorgang (destage write) ausgeführt wird, muss nur die neueste Überarbeitung von Daten an die Festplatte übertragen werden, wodurch die Anzahl von ausgeführten Festplattenarbeitsgängen verringert werden kann.
  • Ein weiterer bedeutender Vorteil besteht darin, dass im Falle der Erzeugung eines großen Blocks von E/A-Schreibvorgängen durch eine Host-Anwendung dieser schnell in den nichtflüchtigen Schreibcachespeicher aufgenommen werden kann, und der Block von E/A-Vorgängen wird an die Festplatte weitergeleitet, wobei die Bearbeitung des gesamten Blocks wesentlich länger dauern dürfte. Daher wird der Block von Arbeitsgängen des Host wesentlich schneller ausgeführt, als es der Fall wäre, wenn er auf die Festplatte warten müsste, wodurch die Systemleistung wiederum verbessert wird.
  • Dieses Schema kann jedoch Probleme verursachen, wenn die Arbeitslast des Host die Leistungsfähigkeit des unterstützenden Festplattenteilsystems über einen langen Zeitraum hinweg überschreitet. Dies kann beispielsweise geschehen, wenn bei einem Festplattenteilsystem ein Fehler auftritt und es in einen eingeschränkten Leistungsmodus eintritt. In diesem Fall kann der Cachespeicherplatz in der Steuereinheit aufgebraucht werden, und in diesem Fall muss eine Schreib-E/A-Verarbeitung warten, bis durch die Ausführung der Ausspeicherung für einen Schreibvorgang Speicherplatz verfügbar wird. Viele dieser Schreibvorgänge müssen in der Tat warten, bis die langsame Steuereinheit einen Schreib-E/A-Vorgang verarbeitet (da die langsame Steuereinheit den Hauptteil des Schreibcachespeichers braucht), und auf diese Weise ist es möglich, dass alle verarbeiteten E/A-Vorgänge durch eine langsame E/A-Verarbeitung in nur einer unterstützenden Festplatte zurückgestellt werden.
  • Die Lösung für dieses Problem besteht in der Begrenzung der Cachespeicher-Kapazität, die von einem beliebigen unterstützenden Festplattenteilsystem verbraucht werden kann. Bei Verwendung dieses Schemas wird E/A-Vorgängen beim Empfang nicht automatisch Pufferspeicherplatz zugeteilt. Insbesondere wenn der Schreib-E/A-Vorgang für eine Festplatte bestimmt ist, die so eingestuft wird, dass sie ihren angemessenen Anteil an System-Ressourcen bereits in Anspruch genommen hat, wird die Verarbeitung dieses E/A-Schreibvorgangs ausgesetzt, bis der von dieser Festplatte in Anspruch genommene Anteil an System-Ressourcen und/oder ihre Kapazität zur Verarbeitung von E/A-Änderungen so eingestuft wird, dass sie zum Erhalt einer weiteren Ressource berechtigt ist. In der Zwischenzeit wird die Fortsetzung der Verarbeitung anderer E/A-Anforderungen gestattet, die in Plattenteilsystemen verarbeitet werden, die E/A-Vorgänge auf annehmbare Weise verarbeiten und weniger Ressourcen als die ihnen zustehende Menge in Anspruch nehmen.
  • Die in SVC bereitgestellte Cachespeicherfunktion ist insofern typisch für viele Cachespeicher-Steuereinheiten, als sie für einen beliebigen gegebenen Host-Datenträger (virtuelle Festplatte - vdisk) E/A-Vorgänge nur in ein oder zwei Knoten des Systems unterstützen kann. Die Weiterleitungsschicht wird ‚über‘ der Cachespeicherschicht verwendet (so dass die Weiterleitungsschicht einen gegebenen Host-E/A-Vorgang vor der Cachespeicherschicht verarbeitet), und folglich ermöglicht dies allen Knoten im System, E/A-Vorgänge für eine virtuelle Festplatte zu empfangen, und dieser E/A-Vorgang wird sodann an einen der bis zu zwei Knoten weitergeleitet, der diesen E/A-Vorgang verarbeiten kann.
  • Es soll nun betrachtet werden, was geschehen kann, wenn das obige optimierte Weiterleitungsschema in Wechselwirkung mit dem beschriebenen Cachespeicher-Partitionierungsalgorithmus tritt. Das optimierte Weiterleitungsschema ordnet im Voraus verhältnismäßig knappe Puffer-Ressourcen zu, bevor der Cachespeicher-Algorithmus beurteilen kann, ob das Festplattenteilsystem mehr als seinen angemessenen Anteil an Ressourcen in Anspruch genommen hat. Wenn der Cachespeicher-Algorithmus die E/A-Ausgabeverarbeitung verzögert, stoppt er die Inanspruchnahme weiterer Cachespeicher-Ressourcen durch den E/A-Vorgang, jedoch hat diese E/A-Anforderung bereits Pufferspeicherplatz im weiterleitenden Knotenbelegt. Dies kann schnell dazu führen, dass der Pufferspeicherplatz im weiterleitenden Knoten zur Bearbeitung einer E/A-Anforderung knapp wird. Dies bedeutet, dass dasselbe Problem entstanden ist, dessen Lösung durch das Cachespeicher-Partitionierungsschema versucht wurde, wenngleich die Verknappung hier bei der Weiterleitungs-Puffer-Ressource des weiterleitenden Knotens statt bei der Zwischenspeicher-Puffer-Ressource des empfangenden Knotens auftritt.
  • Der oben mit Bezugnahme auf 2 umrissene langsamere Weiterleitungsalgorithmus zeigt dieses Problem nicht. Er wartet, bis der Cachespeicher sich zur Verarbeitung des E/A-Vorgangs entscheidet, bevor er im Schritt 204 eine Puffer-Ressource für die Anforderung festschreibt, und folglich ordnet er nur E/A-Vorgängen eine Puffer-Ressource zu, deren Festplattenteilsystem so eingestuft wird, dass ihm mehr Ressourcen zustehen. Dieses Schema verlängert jedoch in hohem Maße die Verarbeitungszeit für den E/A-Vorgang.
  • Benötigt wird ein Verfahren, mit Hilfe dessen ein weitergeleiteter E/A-Schreibvorgang mit einer minimalen Antwortzeit verarbeitet werden kann, jedoch ohne dass dies zu Problemen wie einer Ressourcen-Verknappung führt, wenn eine Teilgruppe jener E/A-Vorgänge langsam ausgeführt wird.
  • Die US 2003 / 0 126 223 A1 offenbart ein System und ein Verfahren zur Bereitstellung einer Flusskontrolle für ein Computernetzwerk. In einer Variante wird eine Puffer-zu-Puffer-Kreditflusskontrolle implementiert, um die Datenmenge zu begrenzen, die ein Port basierend auf der Anzahl und Größe der von diesem Port gesendeten Datenframes senden kann. Ein entsprechendes Verfahren weist folgende Schritte auf: Senden eines Frames von dem Eingangsport zu einem Ziel-Eingangsport, wenn der Eingangsport einen ausreichenden Puffer-zu-Puffer-Guthabenwert und Pufferwert hat; Dekrementieren des dem Eingangsport zugeordneten Puffer-zu-Puffer-Guthabenwerts; Dekrementieren des Pufferwerts, der dem Eingangsport zugeordnet ist; Bestimmen, ob der dem Eingangsport zugeordnete Puffer-zu-Puffer-Guthabenwert erhöht werden soll; Inkrementieren des dem Eingangsport zugeordneten ausstehenden Kreditwerts; und Bestimmen, ob eine Kreditnachricht an den Eingangsport zu senden ist.
  • Der Enzyklopädieeintrag „Storage area network“, abrufbar in der englischsprachigen Ausgabe der freien Enzyklopädie Wikipedia unter https://en.wikipedia.org/w/index.php?title= Storage_area_network&oldid=390366433, offenbart, dass man unter Speichervirtualisierung man den Prozess der vollständigen Abstraktion des logischen Speichers vom physischen Speicher versteht. Die physischen Speicherressourcen werden in Speicherpools zusammengefasst, aus denen dann der logische Speicher gebildet wird. Dem Benutzer wird ein logischer Speicherplatz zur Datenspeicherung angeboten, und die Zuordnung zum tatsächlichen physischen Speicherort erfolgt auf transparente Weise. Dies wird in modernen Disk-Arrays mit herstellereigenen Lösungen umgesetzt. Ziel ist es jedoch, mehrere über das Netz verstreute Festplatten-Arrays verschiedener Hersteller zu einem einzigen monolithischen Speichergerät zu virtualisieren, das einheitlich verwaltet werden kann.
  • Zusammenfassung der Erfindung
  • Die der Erfindung zugrundeliegenden Aufgaben werden jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind Gegenstand der abhängigen Patentansprüche.
  • Unter einem ersten Aspekt stellt die vorliegende Erfindung dementsprechend eine Vorrichtung bereit, die in einem verteilten Gruppenspeichernetz mit einem Host-Computersystem und einem Speicherteilsystem betrieben werden kann, wobei die Vorrichtung Folgendes umfasst: eine Vielzahl von Speichersteuerknoten, von denen jeder funktionsmäßig in der Lage sind, auf eine Anforderung vom Host-Computersystem hin Daten in einen Speicher zu schreiben; eine Weiterleitungsschicht in einem ersten aus der Vielzahl von Speichersteuerknoten, die funktionsmäßig in der Lage sind, Daten an einen zweiten aus der Vielzahl von Speichersteuerknoten weiterzuleiten; eine Puffersteuerkomponente in jedem aus der Vielzahl von Speichersteuerknoten, die funktionsmäßig in der Lage sind, Puffer-Ressourcen für in den Speicher zu schreibende Daten zuzuordnen; und eine Datenübertragungsverbindung zwischen der Puffersteuerkomponente und der Weiterleitungsschicht in jedem aus der Vielzahl von Speichersteuerknoten, die funktionsmäßig in der Lage sind, einen Anzeiger für einen eingeschränkten Status der Puffer-Ressource an die Weiterleitungsschicht zu übertragen.
  • Die Vorrichtung umfasst außerdem eine Modusauswählkomponente (mode selector component), die auf den Empfang des Anzeigers für einen eingeschränkten Status in der Weiterleitungsschicht hin einen eingeschränkten Betriebsmodus eines Schreibvorgangs auswählt, wobei der eingeschränkte Betriebsmodus die Zuordnung einer Puffer-Ressource im zweiten Speichersteuerknoten und die Übertragung der Zuordnung erfordert, bevor der erste Speichersteuerknoten funktionsmäßig in der Lage ist, eine Puffer-Ressource für die Daten zuzuordnen und die Daten weiterzuleiten. Dabei ist die Datenübertragungsverbindung zwischen der Puffersteuerkomponente und der Weiterleitungsschicht in jedem aus der Vielzahl von Speichersteuerknoten außerdem funktionsmäßig in der Lage, einen Anzeiger für einen nichteingeschränkten Status der Puffer-Ressource an die Weiterleitungsschicht zu übertragen. Außerdem spricht die Modusauswählkomponente auf den Empfang des Anzeigers für einen nichteingeschränkten Status in der Weiterleitungsschicht an, um einen nichteingeschränkten Betriebsmodus eines Schreibvorgangs auszuwählen, wobei der nichteingeschränkte Betriebsmodus die Verwendung eines festgelegten Ressourcen-Guthabens gestattet, das vom zweiten an den ersten der Speichersteuerknoten übertragen wird und die Weiterleitung einer Schreibanforderung mit den Daten vom ersten an den zweiten der Speichersteuerknoten gestattet. Vorzugsweise umfasst das verteilte Gruppenspeichernetz eine Speichervirtualisierungs-Steuereinheit (storage virtualization controller).
  • Unter einem zweiten Aspekt wird ein Verfahren zum Betreiben eines verteilten Gruppenspeichernetzes mit einem Host-Computersystem und einem Speicherteilsystem bereitgestellt, wobei das Verfahren die folgenden Schritte umfasst: Empfangen einer Anforderung vom Host-Computersystem zum Schreiben von Daten in einen Speicher in einem ersten aus der Vielzahl von Speichersteuerknoten; Weiterleiten der Daten durch eine Weiterleitungsschicht im ersten aus der Vielzahl von Speichersteuerknoten an einen zweiten aus der Vielzahl von Speichersteuerknoten; Zuordnen einer Puffer-Ressource für in den Speicher zu schreibende Daten durch eine Puffersteuerkomponente in jedem aus der Vielzahl von Speichersteuerknoten; und Übertragen eines Anzeigers für einen eingeschränkten Status der Puffer-Ressource an die Weiterleitungsschicht.
  • Auf den Empfang des Anzeigers für einen eingeschränkten Status in der Weiterleitungsschicht hin umfasst das Verfahren außerdem das Auswählen eines eingeschränkten Betriebsmodus eines Schreibvorgangs, wobei der eingeschränkte Betriebsmodus die Zuordnung einer Puffer-Ressource im zweiten Speichersteuerknoten und die Übertragung der Zuordnung erfordert, bevor der erste Speichersteuerknoten funktionsmäßig in der Lage ist, eine Puffer-Ressource für die Daten zuzuordnen und die Daten weiterzuleiten. Außerdem umfasst das Verfahren die Übertragung eines Anzeigers für einen nichteingeschränkten Status der Puffer-Ressource an die Weiterleitungsschicht unter Verwendung einer Datenübertragungsverbindung zwischen der Puffersteuerkomponente und der Weiterleitungsschicht. Auf den Empfang des Anzeigers für einen nichteingeschränkten Status in der Weiterleitungsschicht hin umfasst das Verfahren außerdem das Auswählen eines nichteingeschränkten Betriebsmodus eines Schreibvorgangs, wobei der nichteingeschränkte Betriebsmodus die Verwendung eines festgelegten Ressourcen-Guthabens gestattet, das vom zweiten an den ersten der Speichersteuerknoten übertragen wird und die Weiterleitung einer Schreibanforderung mit den Daten vom ersten an den zweiten der Speichersteuerknoten gestattet. Vorzugsweise umfasst der Betrieb des verteilten Gruppenspeichernetzes das Betreiben einer Speichervirtualisierungs-Steuereinheit.
  • Unter einem dritten Aspekt wird ein Computerprogramm bereitgestellt, das einen Computerprogrammcode umfasst, um bei Laden in ein Computersystem und Ausführung in diesem das Computersystem zu veranlassen, alle Schritte eines Verfahrens entsprechend dem zweiten Aspekt auszuführen.
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung führt folglich zu einem neuen Datenaustausch zwischen der Puffersteuerung und den Weiterleitungsschichten. Im Wesentlichen überträgt die Cachespeicherfunktion einen Status, der anzeigt, ob ein bestimmter Satz von E/A-Vorgängen zügig verarbeitet oder aufgrund eines Rückstands im zugrundeliegenden Teilsystem verzögert wird. Diese Meldung wird an alle Knoten übertragen und in diesen Knoten verwendet, um zu steuern, wie die Weiterleitungsschicht Schreibanforderungen verarbeitet.
  • Wenn die Weiterleitungsschicht benachrichtigt worden ist, dass die E/A-Vorgänge ohne Verzögerungen verarbeitet werden, verwendet sie das schnellere Schema, wobei umgehend ein Puffer zugeordnet wird und die Daten vom Host angefordert werden, und leitet die Daten zusammen mit der E/A-Anforderung weiter, um die zusätzliche Verarbeitungszeit auf ein Mindestmaß herabzusetzen.
  • Wenn die Weiterleitungsschicht benachrichtigt worden ist, dass die Verarbeitung der E/A-Vorgänge verzögert wird, leitet sie nur die Anforderungsnachricht weiter und ordnet nur dann einen Puffer zu, wenn sie die ausdrückliche Anforderung nach den Daten empfängt, was auch als Hinweis dient, dass diesem bestimmten E/A-Prozess eine Ressource zugeteilt wurde und dessen Verarbeitung berechtigt ist.
  • Figurenliste
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung wird nun lediglich beispielhaft mit Bezugnahme auf die begleitenden Zeichnungen beschrieben, in denen:
    • 1 eine Anordnung einer Vorrichtung gemäß einer bevorzugten Ausführungsform der Erfindung zeigt;
    • die 2 bis 4 die Schritte eines Verarbeitungsverfahrens nach dem Stand der Technik zeigen; und
    • die 5 und 6 die Schritte eines Verarbeitungsverfahrens gemäß einer bevorzugten Ausführungsform der Erfindung zeigen.
  • Ausführliche Beschreibung der bevorzugten Ausführungsform
  • In einer bevorzugten SVC-Ausführungsform verwaltet die für die Bereitstellung einer Puffer-Ressource aus dem nichtflüchtigen Cachespeicher zuständige Puffersteuerkomponente den Status auf der Ebene einer virtuellen Festplatte (Host-Datenträger), wobei angezeigt wird, ob diese virtuelle Festplatte im Modus ‚Eingeschränkte Ressource‘ betrieben wird - so dass die Ressourcen bekanntermaßen erschöpft sind, oder ob der virtuellen Festplatte in Bezug auf die Zuordnung von Ressourcen für neue Host-E/A-Vorgänge der Betrieb im Modus „Nichteingeschränkte Ressource" gestattet ist.
  • Die SVC-Gruppeninfrastruktur wird in allen Knoten zum Übertragen dieses Status an die Weiterleitungsschicht verwendet. In jedem Knoten verwendet die Weiterleitungsschicht diesen Status, um zwischen zwei vollkommen getrennten Pfaden für die Bearbeitung von E/A-Schreibvorgängen zu entscheiden, bei denen eine Weiterleitung erforderlich ist. (Wenn der Knoten, der den E/A-Vorgang vom Host empfangen hat, außerdem einer der Knoten ist, in denen die Cachespeicherfunktion betrieben werden kann, wird der E/A-Vorgang ohne jegliche Zuordnung von Puffern durch die Weiterleitungsschicht an den Cachespeicher weitergeleitet, und der Algorithmus wird hier nicht benötigt.)
  • Mit Bezugnahme auf 1 wird ein System 100 gezeigt, das einen Host 102 umfasst, der funktionsmäßig in der Lage ist, Daten mit einem Paar von Speichersteuerknoten (KNOTEN 1, KNOTEN 2) 104, 106 auszutauschen, um Daten vom Host 102 in einen Speicher im Speicherteilsystem 108 zu schreiben. Die Speichersteuerknoten 104, 106 sind funktionsmäßig für die Verwendung von Puffer-Ressourcen 110, 112 in der Lage, Schreibdaten vor der Ausspeicherung in den Speicher im Speicherteilsystem 108 zwischenzuspeichern. Die Speichersteuerknoten 104, 106 umfassen außerdem die Weiterleitungsschichten 118, 120, die in der Lage sind, Schreibdaten weiterzuleiten. Außerdem umfassen die Speichersteuerknoten 104, 106 Puffersteuerkomponenten 114, 116 zur Steuerung der Puffer-Ressourcen 110, 112. Die Puffer-Ressourcen 110, 112 sind von Zeit zu Zeit einer Ressourcen-Beschränkung unterworfen. Die Speichersteuerknoten 104, 106 sind mit Datenübertragungsverbindungen 122, 124 zwischen den Puffersteuerkomponenten 114, 116 und den Weiterleitungsschichten 118, 120 versehen, um Anzeiger zu übertragen, die anzeigen, ob eine oder mehrere der Puffer-Ressourcen 110, 112 momentan einer Ressourcen-Beschränkung unterworfen sind oder um alternativ anzuzeigen, dass eine oder mehrere der Puffer-Ressourcen 110, 112 momentan nicht von einer solchen Ressourcen-Beschränkung betroffen sind. Die Weiterleitungsschichten 118, 120 sind außerdem mit Modusauswähleinheiten 126, 128 zum Auswählen eines Betriebsmodus versehen, um auf den Empfang der Anzeiger über die Datenübertragungsverbindungen 122, 124 hin zwischen einem Betriebsmodus ‚Eingeschränkte Ressource‘ und einem Betriebsmodus ‚Nichteingeschränkte Ressource‘ zu wählen.
  • Im Modus ‚Eingeschränkte Ressource‘ ist der Ablauf folgendermaßen (mit Bezugnahme auf 5):
    • 500. Der Host überträgt eine E/A-Schreibanforderung an den ersten Knoten.
    • 502. Der erste (weiterleitende) Knoten leitet die Anforderung an den zweiten (empfangenden) Knoten weiter, der die Cachespeicherfunktion enthält, die E/A-Vorgänge für diese virtuelle Festplatte bearbeiten kann.
    • 504. Die Cachespeicherschicht des zweiten Knotens entscheidet sich zur Verarbeitung, ordnet Puffer zum Empfangen von Daten zu und überträgt eine Anforderung nach Daten an den ersten Knoten.
    • 506. Der erste Knoten ordnet einen Puffer zu und überträgt eine Anforderung nach Daten an den Host.
    • 508. Der Host überträgt die Daten, und die Daten werden im ersten Knoten in dem bei 506 festgelegten Puffer empfangen.
    • 510. Der erste Knoten wird über die Ausführung der Datenübertragung benachrichtigt und beginnt mit der Datenübertragung an den zweiten Knoten in den bei 504 festgelegten Puffer.
    • 512. Der zweite Knoten wird über die Ausführung der Datenübertragung benachrichtigt, und die Cachespeicherschicht setzt die Verarbeitung der E/A-Schreibanforderung unter Verwendung der empfangenen Daten fort.
  • Im Modus ‚Nichteingeschränkte Ressource‘ gibt es einen zusätzlichen Vorbereitungsablauf vor der Verarbeitung des E/A-Vorgangs (mit Bezugnahme auf 6):
    • 600. Der zweite (empfangende) Knoten ordnet eine Puffer-Ressource zu.
    • 602. Der zweite Knoten überträgt Guthaben an den ersten (weiterleitenden) Knoten, die diesen Knoten dazu berechtigen, eine festgelegte Datenmenge zu übertragen.
  • Beim tatsächlichen Empfang des E/A-Vorgangs wird anschließend der folgende Schreib-E/A-Ablauf ausgeführt:
    • 604. Der Host überträgt eine E/A-Schreibanforderung an den ersten Knoten.
    • 606. Der erste Knoten ordnet einen Puffer zu und überträgt eine Anforderung nach Daten an den Host.
    • 608. Der Host überträgt die Daten, und die Daten werden im ersten Knoten in dem bei 606 festgelegten Puffer empfangen.
    • 610. Der erste (weiterleitende) Knoten leitet Anforderung mit den Daten an den zweiten (empfangenden) Knoten weiter, der die Cachespeicherfunktion enthält, die den E/A-Vorgang für diese virtuelle Festplatte bearbeiten kann.
    • 612. Der zweite Knoten wird über den Empfang der E/A-Anforderung und der Daten benachrichtigt, und die Cachespeicherschicht bearbeitet die E/A-Anforderung unter Verwendung der empfangenen Daten.
  • Nach Ausführung der E/A-Anforderung wird die frei gewordene Puffer-Ressource zur Wiederholung des Vorbereitungszyklus und zur Übertragung eines neuen Guthabens an den weiterleitenden Knoten für künftige E/A-Vorgänge verwendet.
  • Die Guthabennachrichten können optimalerweise huckepack auf anderen, in dieselbe Richtung fließenden Nachrichten übertragen werden, um den dadurch verursachten Systemaufwand auf ein Mindestmaß herabzusetzen. Die von den Flüssen verwendeten Ressourcen müssen ausreichend voneinander getrennt sein, um eine gegenseitige Sperrung zu verhindern, die sich aus der Zuordnung derselben Ressource von verschiedenen Pfaden in unterschiedlicher Reihenfolge ergeben könnte, was Fachleuten für verteilte E/A-Systeme klar wäre.
  • Fachleuten ist es klar, dass die bevorzugte Ausführungsform der vorliegenden Erfindung industriell angewandt werden kann, um Vorteile hinsichtlich der Leistungsfähigkeit beim Betrieb verteilter Gruppenspeichernetze bereitzustellen.
  • Fachleuten ist es klar, dass das gesamte oder ein Teil des Verfahrens der bevorzugten Ausführungsformen der vorliegenden Erfindung geeignet und nützlich ist, in einer Logikvorrichtung oder einer Vielzahl von Logikvorrichtungen verkörpert zu werden, die Logikelemente umfassen, die so angeordnet sind, dass sie die Schritte des Verfahrens ausführen können, und dass solche Logikelemente Hardware-Komponenten, Firmware-Komponenten oder eine Kombination aus beiden umfassen können.
  • Ebenso ist es Fachleuten klar, dass die gesamte oder ein Teil einer Logikanordnung gemäß den bevorzugten Ausführungsformen der vorliegenden Erfindung geeignet sind, in einer Logikvorrichtung verkörpert zu werden, die Logikelemente zur Ausführung der Schritte des Verfahrens umfasst, und dass solche Logikelemente Komponenten wie logische Gatter in beispielweise einer programmierbaren Logikanordnung oder einem anwendungsspezifischen integrierten Schaltkreis umfassen können. Eine solche Logikanordnung kann außerdem in Elementen verkörpert werden, die eine zeitweilige oder ständige Einrichtung von Logikstrukturen in einer solchen Anordnung oder Schaltung ermöglichen, wobei beispielsweise eine virtuelle Hardware-Deskriptorsprache verwendet wird, die unter Verwendung stationärer oder übertragbarer Trägermedien gespeichert und übertragen werden kann.
  • Es ist klar, dass das oben beschriebene Verfahren und die oben beschriebene Anordnung außerdem geeignet sind, vollständig oder teilweise in Form von Software ausgeführt zu werden, die in einem oder mehreren Prozessoren ausgeführt wird (in den Figuren nicht gezeigt), und dass die Software in Form von einem oder mehreren Computerprogrammelementen auf einem beliebigen geeigneten Datenträger (ebenfalls nicht in den Figuren gezeigt) bereitgestellt werden kann, beispielsweise einer Magnetplatte oder einer optischen Platte oder dergleichen. Kanäle zur Übertragung von Daten können ebenso Speichermedien aller Arten sowie signaltragende Medien, beispielsweise verdrahtete oder drahtlose signaltragende Medien, umfassen.
  • Ein Verfahren ist im Allgemeinen als eine logische Folge von Schritten konzipiert, die zu einem gewünschten Ergebnis führen. Diese Schritte machen physische Bearbeitungen physikalischer Größen erforderlich. Üblicherweise, jedoch nicht notwendigerweise, haben diese Größen die Form von elektrischen oder magnetischen Signalen, die gespeichert, übertragen, kombiniert, verglichen und auf andere Weise bearbeitet werden können. In erster Linie aus Gründen des verbreiteten Gebrauchs ist es manchmal zweckdienlich, diese Signale als Bits, Werte, Parameter, Elemente, Objekte, Symbole, Zeichen, Terme, Zahlen oder dergleichen zu bezeichnen. Es sei jedoch darauf hingewiesen, dass alle diese und ähnliche Begriffe den entsprechenden physikalischen Größen zugeordnet werden müssen und lediglich zweckdienliche Bezeichnungen sind, die für diese Größen verwendet werden.
  • Die vorliegende Erfindung ist außerdem geeignet, als Computerprogrammprodukt zur Verwendung in einem Computersystem verkörpert zu werden. Eine solche Ausführung kann eine Reihe von computerlesbaren Befehlen umfassen, die jeweils auf einem physischen Medium wie einem computerlesbaren Datenträger gespeichert werden, beispielsweise einer Diskette, einer CD-ROM, einem ROM oder einer Festplatte, oder über einen Modem oder eine andere Schnittstelleneinheit über ein physisches Medium, unter anderem - jedoch nicht ausschließlich - optische oder analoge Datenübertragungsverbindungen, oder nichtphysisch unter Verwendung drahtloser Verfahren, unter anderem - jedoch nicht ausschließlich - Mikrowellen, Infrarot oder andere Übertragungsverfahren, an ein Computersystem übertragen werden können. Die Reihe von computerlesbaren Befehlen verkörpert die gesamte oder einen Teil der zuvor hierin beschriebenen Funktionalität.
  • Fachleute werden verstehen, dass solche computerlesbaren Befehle in mehreren Programmiersprachen zur Verwendung mit vielen Computerarchitekturen oder Betriebssystemen geschrieben werden können. Außerdem können solche Befehle unter Verwendung einer beliebigen gegenwärtigen oder zukünftigen Speichertechnologie, unter anderem - jedoch nicht ausschließlich - Halbleiter, magnetische oder optische Technologien, gespeichert oder unter Verwendung einer beliebigen gegenwärtigen oder zukünftigen Datenübertragungstechnologie, unter anderem - jedoch nicht ausschließlich - optische Übertragung, Infrarot- oder Mikrowellenübertragung, übertragen werden. Es wird in Betracht gezogen, dass ein solches Computerprogrammprodukt als austauschbarer Datenträger mit einer begleitenden gedruckten oder elektronischen Dokumentation, beispielsweise einer eingeschweißten Software, die bei einem Computersystem, beispielsweise auf einen System-ROM oder auf eine Festplatte vorab aufgespielt wird oder von einem Server oder einem elektronischen Bulletinboard über ein Netzwerk, beispielsweise das Internet oder das World Wide Web, verteilt wird.
  • Alternativ kann die bevorzugte Ausführungsform der vorliegenden Erfindung in Form eines in einem Computer ausgeführten Verfahrens zum Einsetzen eines Dienstes bereitgestellt werden, der die Schritte des Einsetzens eines Computerprogrammcodes umfasst, der bei Verwendung in einer Computerinfrastruktur und Ausführung in derselben das Computersystem veranlasst, alle Schritte des Verfahrens auszuführen.
  • Als weitere Alternative kann die bevorzugte Ausführungsform der vorliegenden Erfindung in Form eines Datenträgers mit darauf befindlichen funktionellen Daten bereitgestellt werden, wobei die funktionellen Daten funktionelle Computerdatenstrukturen umfassen, um bei Laden in ein Computersystem und Arbeiten mit diesen dem Computersystem die Ausführung aller Schritte des Verfahrens ermöglichen.
  • Fachleuten ist es klar, dass viele Verbesserungen und Änderungen an der vorhergehenden beispielhaften Ausführungsform vorgenommen werden können, ohne vom Anwendungsbereich der vorliegenden Erfindung abzuweichen.

Claims (5)

  1. Vorrichtung, die in einem verteilten Gruppenspeichernetz betrieben werden kann, das ein Host-Computersystem und ein Speicherteilsystem aufweist, wobei die Vorrichtung eine Vielzahl von Speichersteuerknoten umfasst, und jeder Speichersteuerknoten, von denen jeder in der Lage ist, auf eine Anforderung vom Host-Computersystem hin Daten in einen Speicher zu schreiben, Folgendes umfasst: eine Weiterleitungsschicht in einem ersten aus der Vielzahl von Speichersteuerknoten, die in der Lage ist, Daten an einen zweiten aus der Vielzahl von Speichersteuerknoten weiterzuleiten; eine Puffersteuerkomponente in jedem aus der Vielzahl von Speichersteuerknoten, die in der Lage ist, eine Puffer-Ressource für in den Speicher zu schreibende Daten zuzuordnen; eine Datenübertragungsverbindung zwischen der Puffersteuerkomponente und der Weiterleitungsschicht in jedem aus der Vielzahl von Speichersteuerknoten, die in der Lage ist, einen Anzeiger für einen eingeschränkten Status der Puffer-Ressource an die Weiterleitungsschicht zu übertragen; eine in der Weiterleitungsschicht eingebettete Modusauswählkomponente, die auf den Empfang des Anzeigers für einen eingeschränkten Status in der Weiterleitungsschicht anspricht, um einen eingeschränkten Betriebsmodus eines Schreibvorgangs auszuwählen, wobei der eingeschränkte Betriebsmodus die Zuordnung einer Puffer-Ressource im zweiten Speichersteuerknoten und die Übertragung der Zuordnung erfordert, bevor der erste Speichersteuerknoten in der Lage ist, eine Puffer-Ressource für die Daten zuzuordnen und die Daten weiterzuleiten; wobei die Datenübertragungsverbindung zwischen der Puffersteuerkomponente und der Weiterleitungsschicht in jedem aus der Vielzahl von Speichersteuerknoten außerdem in der Lage ist, einen Anzeiger für einen nichteingeschränkten Status der Puffer-Ressource an die Weiterleitungsschicht zu übertragen; wobei die in der Weiterleitungsschicht eingebettete Modusauswählkomponente auf den Empfang des Anzeigers für einen nichteingeschränkten Status in der Weiterleitungsschicht hin einen nichteingeschränkten Betriebsmodus eines Schreibvorgangs auswählt, wobei der nichteingeschränkte Betriebsmodus die Verwendung eines festgelegten Ressourcen-Guthabens gestattet, das vom zweiten an den ersten der Speichersteuerknoten übertragen wird und die Weiterleitung einer Schreibanforderung mit den Daten vom ersten an den zweiten der Speichersteuerknoten gestattet.
  2. Vorrichtung nach irgendeinem vorhergehenden Anspruch, wobei das verteilte Gruppenspeichernetz eine Speichervirtualisierungs-Steuereinheit umfasst.
  3. Verfahren zum Betreiben eines verteilten Gruppenspeichernetzes mit einem Host-Computersystem und einem Speicherteilsystem, wobei das Verfahren die folgenden Schritte umfasst: Empfangen einer Anforderung vom Host-Computersystem zum Schreiben von Daten in den Speicher in einem ersten aus der Vielzahl von Speichersteuerknoten; Weiterleiten der Daten durch eine Weiterleitungsschicht in dem erstem aus der Vielzahl von Speichersteuerknoten an einen zweiten aus der Vielzahl von Speichersteuerknoten; Zuordnen einer Puffer-Ressource für in den Speicher zu schreibende Daten durch eine Puffersteuerkomponente in jedem aus der Vielzahl von Speichersteuerknoten; Übertragen eines Anzeigers für einen eingeschränkten Status der Puffer-Ressource an die Weiterleitungsschicht; außerdem auf den Empfang des Anzeigers für einen eingeschränkten Status in der Weiterleitungsschicht hin umfasst das Verfahren das Auswählen eines eingeschränkten Betriebsmodus eines Schreibvorgangs, wobei der eingeschränkte Betriebsmodus die Zuordnung einer Puffer-Ressource im zweiten Speichersteuerknoten und die Übertragung der Zuordnung erfordert, bevor der erste Speichersteuerknoten in der Lage ist, eine Puffer-Ressource für die Daten zuzuordnen und die Daten weiterzuleiten; außerdem umfasst das Verfahren die Übertragung eines Anzeigers für einen nichteingeschränkten Status der Puffer-Ressource an die Weiterleitungsschicht, wobei eine Datenübertragungsverbindung zwischen der Puffersteuerkomponente und der Weiterleitungsschicht verwendet wird sowie auf dem Empfang des Anzeigers für einen nichteingeschränkten Status in der Weiteleitungsschicht hin umfasst das Verfahren das Auswählen eines nichteingeschränkten Betriebsmodus eines Schreibvorgangs, wobei der nichteingeschränkte Betriebsmodus die Verwendung eines festgelegten Ressourcen-Guthabens gestattet, das vom zweiten an den ersten der Speichersteuerknoten übertragen wird und das Weiterleiten einer Schreibanforderung mit den Daten vom ersten an den zweiten der Speichersteuerknoten gestattet.
  4. Verfahren nach Anspruch 3, wobei der Betrieb des verteilten Gruppenspeichernetzes das Betreiben einer Speichervirtualisierungs-Steuereinheit umfasst.
  5. Computerprogramm, das einen Programmcode umfasst, um bei Laden in ein Computersystem und Ausführung in diesem alle Schritte des Verfahrens nach dem Anspruch 3 auszuführen.
DE112010003594.6T 2009-10-19 2010-08-26 Vorrichtung, Verfahren und Computerprogramm zum Betreiben eines verteilten Gruppenspeichernetzes für Schreibvorgänge Active DE112010003594B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP09173428 2009-10-19
EP09173428.5 2009-10-19
PCT/EP2010/062496 WO2011047909A1 (en) 2009-10-19 2010-08-26 Dynamic resource allocation for distributed cluster storage network

Publications (2)

Publication Number Publication Date
DE112010003594T5 DE112010003594T5 (de) 2013-01-24
DE112010003594B4 true DE112010003594B4 (de) 2023-03-16

Family

ID=42732270

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010003594.6T Active DE112010003594B4 (de) 2009-10-19 2010-08-26 Vorrichtung, Verfahren und Computerprogramm zum Betreiben eines verteilten Gruppenspeichernetzes für Schreibvorgänge

Country Status (5)

Country Link
US (3) US9461944B2 (de)
CN (1) CN102577278B (de)
DE (1) DE112010003594B4 (de)
GB (1) GB2486780B (de)
WO (1) WO2011047909A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724057B (zh) * 2012-02-23 2017-03-08 北京市计算中心 一种面向云计算平台的分布式层次化自主管理方法
JP6127489B2 (ja) * 2012-12-11 2017-05-17 株式会社リコー 処理要求装置、処理要求装置の制御プログラム
CN104809129B (zh) * 2014-01-26 2018-07-20 华为技术有限公司 一种分布式数据存储方法、装置和系统
US9710039B2 (en) * 2014-07-17 2017-07-18 International Business Machines Corporation Calculating expected maximum CPU power available for use
US10133511B2 (en) * 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
CN106656631B (zh) * 2017-01-19 2019-10-25 武汉噢易云计算股份有限公司 在共享存储上实现逻辑卷动态分配的方法
CN107102918B (zh) * 2017-05-26 2020-06-16 苏州浪潮智能科技有限公司 一种数据处理方法和装置
US20180364937A1 (en) 2017-06-20 2018-12-20 Samsung Electronics Co., Ltd. System and method for managing memory device
CN108959549A (zh) * 2018-06-29 2018-12-07 北京奇虎科技有限公司 数据写入方法、装置、计算设备及计算机存储介质
CN114860634B (zh) * 2022-04-29 2023-08-04 苏州浪潮智能科技有限公司 一种存储控制器间写io的转发限流方法、装置及存储介质
CN115514718B (zh) * 2022-10-10 2023-06-16 安徽华云安科技有限公司 基于数据传输系统的数据交互方法、控制层、设备
CN115599025B (zh) * 2022-12-12 2023-03-03 南京芯驰半导体科技有限公司 芯片阵列的资源成组控制系统、方法及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126223A1 (en) 2001-12-31 2003-07-03 Maxxan Systems, Inc. Buffer to buffer credit flow control for computer network

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4428064A (en) * 1981-03-06 1984-01-24 International Business Machines Corporation Controlling buffered peripheral subsystems
US4488004A (en) * 1982-03-30 1984-12-11 At&T Bell Laboratories Providing feature transparency between a plurality of PBXs
US5224100A (en) * 1991-05-09 1993-06-29 David Sarnoff Research Center, Inc. Routing technique for a hierarchical interprocessor-communication network between massively-parallel processors
EP0854423A1 (de) * 1997-01-20 1998-07-22 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Datenaufteilung und -duplizierung in einem verteilten Datenverarbeitungssystem
US6857132B1 (en) * 2000-01-14 2005-02-15 Terayon Communication Systems, Inc. Head end multiplexer to select and transmit video-on-demand and other requested programs and services
US6791949B1 (en) * 2000-04-28 2004-09-14 Raytheon Company Network protocol for wireless ad hoc networks
US7103045B2 (en) * 2002-03-05 2006-09-05 Hewlett-Packard Development Company, L.P. System and method for forwarding packets
US7610541B2 (en) * 2006-03-08 2009-10-27 International Business Machines Corporation Computer compressed memory system and method for storing and retrieving data in a processing system
US8107397B1 (en) * 2006-06-05 2012-01-31 Purdue Research Foundation Protocol for secure and energy-efficient reprogramming of wireless multi-hop sensor networks
US8892789B2 (en) * 2008-12-19 2014-11-18 Netapp, Inc. Accelerating internet small computer system interface (iSCSI) proxy input/output (I/O)

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126223A1 (en) 2001-12-31 2003-07-03 Maxxan Systems, Inc. Buffer to buffer credit flow control for computer network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Storage area network. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 16.10.2009. URL: https://en.wikipedia.org/w/index.php?title=Storage_area_network&oldid=390366433 [abgerufen am 12.10.2015]

Also Published As

Publication number Publication date
GB201121491D0 (en) 2012-01-25
US20120233364A1 (en) 2012-09-13
DE112010003594T5 (de) 2013-01-24
US20160328167A1 (en) 2016-11-10
CN102577278A (zh) 2012-07-11
US9792059B2 (en) 2017-10-17
US9432311B2 (en) 2016-08-30
GB2486780A (en) 2012-06-27
US20120131239A1 (en) 2012-05-24
GB2486780B (en) 2015-06-03
US9461944B2 (en) 2016-10-04
WO2011047909A1 (en) 2011-04-28
CN102577278B (zh) 2016-01-20

Similar Documents

Publication Publication Date Title
DE112010003594B4 (de) Vorrichtung, Verfahren und Computerprogramm zum Betreiben eines verteilten Gruppenspeichernetzes für Schreibvorgänge
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
DE69727856T2 (de) Multiprozessorsystem mit Konsistenzfehler-Registrierung mit entsprechendem Verfahren
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE3114961C2 (de)
DE69906585T2 (de) Datenverarbeitungssystem mit nichtuniformen speicherzugriffen (numa) mit spekulativer weiterleitung einer leseanforderung an einen entfernten verarbeitungsknoten
DE69733374T2 (de) Speichersteuerungsvorrichtung und -system
DE102009022151B4 (de) Verringern von Invalidierungstransaktionen aus einem Snoop-Filter
DE60030767T2 (de) Datenzuweisung zu threads in einem multi-threaded netzwerkprozessor
DE102007025397B4 (de) System mit mehreren Prozessoren und Verfahren zu seinem Betrieb
DE102008055892A1 (de) Abspeichern von Abschnitten eines Datenübertragungsdeskriptors in einem gecachten und einem nicht gecachten Adressbereich
DE112007001171T5 (de) Verfahren für virtualisierten Transaktionsspeicher bei globalem Überlauf
DE102014000372A1 (de) Verbesserte steuerung des prefetch-traffics
DE2912738A1 (de) System mit direkter uebertragung zwischen subsystemen
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE102012206019A1 (de) Zuweisung von Zählern aus einem Bestand an Zählern, um Zuordnungenlogischer Register zu physischen Registern für die von einer Zuordnungseinheit veranlasste Ausführung von Anweisungen zu kontrollieren
DE102006032832A1 (de) Netzwerksystem und Verfahren zur Steuerung verteilter Speicher
DE102012206283B4 (de) Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk
DE112011100564B4 (de) Einfügen eines Flash-Zwischenspeichers in große Speichersysteme
DE10045915A1 (de) Verfahren und System zum Steuern von Datenübertragungen mit physikalischer Trennung der Datenfunktionalität von der Adressen- und Steuerfunktionalität in einem verteilten Multi-Bus-Mehrprozessorsystem
DE112019000992T5 (de) Verwaltung virtueller Speicherlaufwerke in einem Datenspeichersystem
DE3439302A1 (de) Speichersteuerungsvorrichtung
DE60225473T2 (de) Verfahren zur datenverarbeitung
DE102008058209A1 (de) Anordnung und Verfahren um zu verhindern, dass ein Anwenderbetriebssystem in einem VMM System eine Anordnung abschaltet, die von einem Servicebetriebssystem verwendet wird
DE112018006769T5 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final