[go: up one dir, main page]

DE112017006656T5 - Gemeinsam genutztes Datenspeichersystem mit hoher Verfügbarkeit und Hotplugging - Google Patents

Gemeinsam genutztes Datenspeichersystem mit hoher Verfügbarkeit und Hotplugging Download PDF

Info

Publication number
DE112017006656T5
DE112017006656T5 DE112017006656.5T DE112017006656T DE112017006656T5 DE 112017006656 T5 DE112017006656 T5 DE 112017006656T5 DE 112017006656 T DE112017006656 T DE 112017006656T DE 112017006656 T5 DE112017006656 T5 DE 112017006656T5
Authority
DE
Germany
Prior art keywords
memory
processor
shared
initiator
response
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.)
Granted
Application number
DE112017006656.5T
Other languages
English (en)
Other versions
DE112017006656B4 (de
Inventor
Bart Joris A. van Assche
Mark Ruijter
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.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies 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 SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of DE112017006656T5 publication Critical patent/DE112017006656T5/de
Application granted granted Critical
Publication of DE112017006656B4 publication Critical patent/DE112017006656B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

Ein gemeinsam genutztes Speichersystem schließt eine Vielzahl von Speicherprozessoren ein. Ein erster Speicherprozessor der Vielzahl von Speicherprozessoren ist mit einer gemeinsam genutzten Speichervorrichtung gekoppelt, die eine Vielzahl von Speichervorrichtungen aufweist. Der erste Speicherprozessor empfängt eine erste Konnektivitätsüberprüfung-Anforderung von einer Initiatorvorrichtung. Als Antwort auf die erste Konnektivitätsüberprüfung-Anforderung übermittelt der erste Speicherprozessor eine erste Bereitschaftsantwort an die Initiatorvorrichtung. Nach dem Übermitteln der ersten Bereitschaftsantwort erkennt der erste Speicherprozessor, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist. Gemäß dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, übermittelt der erste Speicherprozessor eine Nicht-Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf eine zweite Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung.

Description

  • TECHNISCHES GEBIET
  • Die offenbarten Ausführungsformen betreffen allgemein gemeinsam genutzte Speichersysteme, wie beispielsweise nichtflüchtige Speichersysteme, und insbesondere verbesserte Kommunikationen innerhalb der gemeinsam genutzten Speichersysteme durch hohe Verfügbarkeit und Hotplugging-Unterstützung.
  • HINTERGRUND
  • Gemeinsam genutzte Speichersysteme verwenden typischerweise einen oder mehrere Speicherprozessoren zum Verwalten von Speichervorgängen, die auf gemeinsam genutzten Speichervorrichtungen ausgeführt werden, wie beispielsweise von einem Clientsystem angeforderte Speichervorgänge. In einem gemeinsam genutzten Speichersystem, das einen einzigen Speicherprozessor zum Verwalten einer gemeinsam genutzten Speichervorrichtung verwendet, unterbricht eine unzuverlässige Konnektivität des einzelnen Speicherprozessors den Betrieb des gemeinsam genutzten Speichersystems. Die Verwendung mehrerer Speicher Prozessoren zum Verwalten der gemeinsam genutzten Speichervorrichtung verbessert die Konnektivität, reduziert jedoch die Kommunikationsgeschwindigkeit und -effizienz. Daher wäre es wünschenswert, über ein System und ein Verfahren zu verfügen, die sowohl die Konnektivität als auch die Kommunikation zwischen Komponenten eines gemeinsam genutzten Speichersystems für einen stabileren Betrieb des gemeinsam genutzten Speichersystems verbessern.
  • ZUSAMMENFASSUNG
  • Verschiedene Ausführungsformen von Systemen, Verfahren und Vorrichtungen im Rahmen der beiliegenden Ansprüche weisen jeweils unterschiedliche Aspekte auf, wobei keinem von ihnen allein die in diesem Schriftstück beschriebenen Attribute zuzuschreiben sind. Ohne den Schutzumfang der beiliegenden Ansprüche einzuschränken, wird man nach Berücksichtigung dieser Offenbarung und insbesondere nach Berücksichtigung des Abschnitts „Detaillierte Beschreibung“ verstehen, wie die Aspekte von verschiedenen Ausführungsformen verwendet werden, um Hochverfügbarkeit und Hotplugging in gemeinsam genutzten Speichersystemen zu ermöglichen.
  • Die offenbarte Vorrichtung und das offenbarte Verfahren ermöglichen eine verbesserte Konnektivität und Kommunikation innerhalb von geteilten Speichersystemen, wie beispielsweise nichtflüchtigen Speichersystemen. Als Antwort auf eine erste Konnektivitätsüberprüfung-Anforderung von einer Initiatorvorrichtung übermittelt ein erster Speicherprozessor eine erste Bereitschaftsantwort an die Initiatorvorrichtung. Nach Übermitteln des ersten Bereitschaftsantwort und gemäß dem Erkennen, dass er (der erste Speicherprozessor) von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, übermittelt der erste Speicherprozessor eine Nicht-Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf eine zweite Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung.
  • Figurenliste
  • Damit die vorliegende Offenbarung im Detail verstanden werden kann, kann eine genauere Beschreibung unter Bezugnahme auf die Merkmale der verschiedenen Ausführungsformen vorgenommen werden, wovon einige in den beiliegenden Zeichnungen veranschaulicht sind. Die beiliegenden Zeichnungen veranschaulichen jedoch lediglich die sachdienlicheren Merkmale der vorliegenden Offenbarung und sollen daher nicht als einschränkend betrachtet werden, da die Beschreibung andere wirksame Merkmale zulassen kann.
    • 1 ist ein Blockdiagramm, das eine Implementierung eines gemeinsam genutzten Speichersystems gemäß einigen Ausführungsformen veranschaulicht.
    • 2 ist ein Blockdiagramm, das eine Implementierung eines Speicherprozessors eines gemeinsam genutzten Speichersystems gemäß einigen Ausführungsformen veranschaulicht.
    • 3A veranschaulicht eine beispielhafte Ablaufdiagrammdarstellung eines Kommunikationsverfahrens in einem gemeinsam genutzten Speichersystem ohne Hotplugging-Unterstützung gemäß einigen Ausführungsformen.
    • 3B veranschaulicht eine beispielhafte Ablaufdiagrammdarstellung eines Verfahrens zur verbesserten Kommunikation in einem gemeinsam genutzten Speichersystem gemäß einigen Ausführungsformen.
    • 4 veranschaulicht eine konzeptionelle Ablaufdiagrammdarstellung eines Verfahrens zur verbesserten Kommunikation in einem gemeinsam genutzten Speichersystem gemäß einigen Ausführungsformen.
  • Gemäß allgemeiner Praxis sind die verschiedenen in den Zeichnungen veranschaulichten Merkmale eventuell nicht maßstabsgerecht gezeichnet. Folglich können die Maße der verschiedenen Merkmale aus Gründen der Verständlichkeit absichtlich vergrößert oder verkleinert dargestellt sein. Darüber hinaus zeigen einige der Zeichnungen unter Umständen nicht alle Komponenten eines gegebenen Systems, Verfahrens oder einer Vorrichtung. Schließlich können durchwegs gleiche Bezugszahlen verwendet werden, um in der Patentschrift und den Figuren gleiche Merkmale zu bezeichnen.
  • DETAILLIERTE BESCHREIBUNG
  • Die verschiedenen hierin beschriebenen Implementierungen schließen Systeme, Verfahren und/oder Vorrichtungen ein, die verwendet werden, eine hohe Verfügbarkeit und Hotplugging in gemeinsam genutzten Speichersystemen zu ermöglichen. Einige Implementierungen schließen Systeme, Verfahren und/oder Vorrichtungen ein, um Konnektivität und Kommunikationen innerhalb gemeinsam genutzter Speichersysteme zu verbessern.
  • (A1) Genauer schließen einige Ausführungsformen ein Verfahren zum Betrieb in einem gemeinsam genutzten Speichersystem ein. In einigen Ausführungsformen wird das Verfahren in einem ersten Speicherprozessor einer Vielzahl von Speicherprozessoren des gemeinsam genutzten Speichersystems ausgeführt. Der erste Speicherprozessor ist mit einer gemeinsam genutzten Speichervorrichtung gekoppelt, die eine Vielzahl von Speichervorrichtungen aufweist. Das Verfahren schließt das Empfangen einer ersten Konnektivitätsüberprüfung-Anforderung von einer Initiatorvorrichtung und das Übermitteln einer ersten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf die erste Konnektivitätsüberprüfung-Anforderung ein. Das Verfahren schließt auch, nach Übermitteln des ersten Bereitschaftsantwort, das Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, und gemäß dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, das Übermitteln einer Nicht-Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf eine zweite Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung ein.
  • (A2) In einigen Ausführungsformen des Verfahrens von A1 ist die erste Konnektivitätsüberprüfung-Anforderung eine Testeinheit-Bereitschaft-Anforderung.
  • (A3) In einigen Ausführungsformen, schließt das Verfahren nach einem von A1-A2 weiterhin, in dem ersten Speicherprozessor, nach Übermitteln der Nicht-Bereitschaftsantwort, das Erkennen, dass der erste Speicherprozessor wieder mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist, und gemäß dem Erkennen, dass der erste Speicherprozessor wieder mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist, das Übermitteln einer zweiten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf eine dritte Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung ein.
  • (A4) In einigen Ausführungsformen des Verfahrens nach einem von A1-A3 übermittelt die Initiatorvorrichtung gemäß dem Übermitteln der Nicht-Bereitschaftsantwort durch den ersten Speicherprozessor eine dritte Konnektivitätsüberprüfung-Anforderung an einen zweiten Speicherprozessor der Vielzahl der Speicherprozessoren des gemeinsam genutzten Speichersystems. Der zweite Speicherprozessor ist mit der gemeinsam genutzten Speichervorrichtung gekoppelt. In diesen Ausführungsformen schließt das Verfahren weiterhin, in dem zweiten Speicherprozessor, das Empfangen der dritten Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung, das Übermitteln einer zweiten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf die dritte Konnektivitätsüberprüfung-Anforderung und, nach Übermitteln der zweiten Konnektivitätsüberprüfung-Anforderung an die Initiatorvorrichtung, gemäß einer Leseanforderung, die von der Initiatorvorrichtung empfangen wird, das Ausführen eines Lesevorgangs, um Daten von der gemeinsam genutzten Speichervorrichtung zu lesen, und das Übermitteln der von der gemeinsam genutzten Speichervorrichtung gelesenen Daten an die Initiatorvorrichtung ein.
  • (A5) In einigen Ausführungsformen schließt Verfahren nach einem von A1-A4 weiterhin, in dem zweiten Speicherprozessor, nach Übermitteln der ersten Bereitschaftsantwort an die Initiatorvorrichtung und vor dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, gemäß einer Leseanforderung, die von der Initiatorvorrichtung empfangen wird, das Ausführen eines Lesevorgangs, um Daten von der gemeinsam genutzten Speichervorrichtung zu lesen, und das Übermitteln der von der gemeinsam genutzten Speichervorrichtung gelesenen Daten an die Initiatorvorrichtung ein.
  • (A6) In einigen Ausführungsformen des Verfahrens nach einem von A1-A5 werden Antworten auf Konnektivitätsüberprüfung-Anforderungen, die im ersten Speicherprozessor empfangen werden, von dem ersten Speicherprozessor gemäß einem Testeinheit-Bereitschaftsparameter bestimmt, der von dem ersten Speicherprozessor gespeichert wird.
  • (A7) In einigen Ausführungsformen schließt das Verfahren von A6, im ersten Speicherprozessor, das Setzen des Testeinheit-Bereitschaftsparameters auf einen Nicht-Bereitschaftswert gemäß dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, ein.
  • (A8) In einigen Ausführungsformen des Verfahrens von einem von A1-A7 verwenden Kommunikationen zwischen der Vielzahl von Speicherprozessoren und der gemeinsam genutzten Speichervorrichtung SCSI- (Small Computer System Interface-) Befehle.
  • (A9) In einigen Ausführungsformen des Verfahrens nach einem von A1-A8 werden Konnektivitätsüberprüfung-Anforderungen von dem Initiator an den ersten Speicherprozessor gemäß einer Angabe empfangen, dass der erste Speicherprozessor ein bevorzugter Speicherprozessor ist.
  • (A10) In einigen Ausführungsformen des Verfahrens nach einem von A1-A9 weist die gemeinsam genutzte Speichervorrichtung eine nichtflüchtige Speichervorrichtung auf.
  • (A11) In einigen Ausführungsformen des Verfahrens nach einem von A1-A10 weist die gemeinsam genutzte Speichervorrichtung eine Flash-Speichervorrichtung auf.
  • (A12) In einem anderen Aspekt schließt ein gemeinsam genutztes Speichersystem eine Vielzahl von Speicherprozessoren ein. Ein erster Speicherprozessor der Vielzahl von Speicherprozessoren ist mit einer gemeinsam genutzten Speichervorrichtung gekoppelt, die eine Vielzahl von Speichervorrichtungen aufweist. Der erste Speicherprozessor ist eingerichtet zum Empfangen einer ersten Konnektivitätsüberprüfung-Anforderung von einer Initiatorvorrichtung und zum Übermitteln einer ersten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf die erste Konnektivitätsüberprüfung-Anforderung. Zusätzlich ist erste Speicherprozessor eingerichtet, nach Übermitteln des ersten Bereitschaftsantwort, zum Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, und gemäß dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, zum Übermitteln einer Nicht-Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf eine zweite Konnektivitätsüberprüfung-Anforderung von der I nitiatorvorrichtung.
  • (A13) In einigen Ausführungsformen des gemeinsam genutzten Speichersystems von A12 ist die erste Konnektivitätsüberprüfung-Anforderung eine Testeinheit-Bereitschaft-Anforderung.
  • (A14) In einigen Ausführungsformen des gemeinsam genutzten nach einem von A12-A13 ist der erste Speicherprozessor eingerichtet, nach Übermitteln der Nicht-Bereitschaftsantwort, zum Erkennen, dass der erste Speicherprozessor wieder mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist, und gemäß dem Erkennen, dass der erste Speicherprozessor wieder mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist, zum Übermitteln einer zweiten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf eine dritte Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung.
  • (A15) In einigen Ausführungsformen des gemeinsam genutzten nach einem von A12-A14 übermittelt die Initiatorvorrichtung gemäß dem Übermitteln der Nicht-Bereitschaftsantwort durch den ersten Speicherprozessor eine dritte Konnektivitätsüberprüfung-Anforderung an einen zweiten Speicherprozessor der Vielzahl der Speicherprozessoren des gemeinsam genutzten Speichersystems. In einigen Ausführungsformen ist der zweite Speicherprozessor mit der gemeinsam genutzten Speichervorrichtung gekoppelt, und der zweite Speicherprozessor ist eingerichtet zum Empfangen der dritten Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung, zum Übermitteln einer zweiten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf die dritte Konnektivitätsüberprüfung-Anforderung und, nach Übermitteln der zweiten Konnektivitätsüberprüfung-Anforderung an die Initiatorvorrichtung, gemäß einer Leseanforderung, die von der Initiatorvorrichtung empfangen wird, zum Ausführen eines Lesevorgangs, um Daten von der gemeinsam genutzten Speichervorrichtung zu lesen, und zum Übermitteln der von der gemeinsam genutzten Speichervorrichtung gelesenen Daten an die Initiatorvorrichtung.
  • (A16) In einigen Ausführungsformen des gemeinsam genutzten Speichersystems nach einem von A12-A15 ist der erste Speicherprozessor eingerichtet, nach Übermitteln der ersten Bereitschaftsantwort an die Initiatorvorrichtung und vor dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, gemäß einer Leseanforderung, die von der Initiatorvorrichtung empfangen wird, zum Ausführen eines Lesevorgangs, um Daten von der gemeinsam genutzten Speichervorrichtung zu lesen, und zum Übermitteln der von der gemeinsam genutzten Speichervorrichtung gelesenen Daten an die Initiatorvorrichtung ein.
  • (A17) In einigen Ausführungsformen des gemeinsam genutzten Speichersystems nach einem von A12-A16 werden Antworten auf Konnektivitätsüberprüfung-Anforderungen, die im ersten Speicherprozessor empfangen werden, von dem ersten Speicherprozessor gemäß einem Testeinheit-Bereitschaftsparameter bestimmt, der von dem ersten Speicherprozessor gespeichert wird.
  • (A18) In einigen Ausführungsformen des gemeinsam genutzten Speichersystems von A17 ist der erste Speicherprozessor eingerichtet zum Setzen des Testeinheit-Bereitschaftsparameters auf einen Nicht-Bereitschaftswert gemäß dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist.
  • (A19) In einigen Ausführungsformen des gemeinsam genutzten Speichersystems nach einem von A12-A18 verwenden Kommunikationen zwischen der Vielzahl von Speicherprozessoren und der gemeinsam genutzten Speichervorrichtung SCSI-(Small Computer System Interface-) Befehle.
  • (A20) In einigen Ausführungsformen des gemeinsam genutzten Speichersystems nach einem von A12-A19 werden Konnektivitätsüberprüfung-Anforderungen von dem Initiator an den ersten Speicherprozessor gemäß einer Angabe empfangen, dass der erste Speicherprozessor ein bevorzugter Speicherprozessor ist.
  • (A21) In einigen Ausführungsformen des gemeinsam genutzten Speichersystems von A12-A20 weist die gemeinsam genutzte Speichervorrichtung eine nichtflüchtige Speichervorrichtung.
  • (A22) In einigen Ausführungsformen des gemeinsam genutzten Speichersystems von A12-A21 weist die gemeinsam genutzte Speichervorrichtung eine Flash-Speichervorrichtung.
  • (A23) In einem anderen Aspekt speichert ein nichtflüchtiges computerlesbares Speichermedium ein oder mehrere Programme, die zur Ausführung durch einen oder mehrere Prozessoren eines gemeinsam genutzten Speichersystems eingerichtet sind, wobei das eine oder die mehreren Programme Anweisungen einschließen, die, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, das gemeinsam genutzte Speichersystem veranlassen, das oben beschriebene Verfahren von einem von A1-A11 auszuführen.
  • (A24) In einem anderen Aspekt schließt ein gemeinsam genutztes Speichersystem einen oder mehrere Prozessoren, Speicher und ein oder mehrere Programme, die in dem Speicher gespeichert sind, ein. Das eine oder die mehreren Programme schließen Anweisungen zum Empfangen einer ersten Konnektivitätsüberprüfung-Anforderung von einer Initiatorvorrichtung und zum Übermitteln einer ersten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf die erste Konnektivitätsüberprüfung-Anforderung ein. Das eine oder die mehreren Programmen schließen weiterhin Anweisungen, nach Übermitteln des ersten Bereitschaftsantwort, zum Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, und gemäß dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, zum Übermitteln einer Nicht-Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf eine zweite Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung ein.
  • (A25) In einigen Ausführungsformen des gemeinsam genutzten Speichersystems von A24 schließen der eine oder die mehreren Prozessoren einen oder mehrere Prozessoren eines ersten Speicherprozessors einer Vielzahl von Speicherprozessoren ein. In einigen Ausführungsformen ist der erste Speicherprozessor mit einer gemeinsam genutzten Speichervorrichtung gekoppelt, die eine Vielzahl von Speichervorrichtungen aufweist. Außerdem schließen in einigen Ausführungsformen das eine oder die mehreren Programme ein Client-Schnittstellenmodul, das eingerichtet ist zum Empfangen einer oder mehrerer Konnektivitätsüberprüfung-Anforderungen von einer Initiatorvorrichtung und eingerichtet ist zum Übermitteln einer oder mehrerer Antworten an die Initiatorvorrichtung, und ein Schnittstellenmodul für gemeinsam genutzte Speicherung, das eingerichtet ist zum Erkennen, ob der erste Speicherprozessor von der gemeinsam genutzten Speichereinheit entkoppelt ist, ein.
  • (A26) In einigen Ausführungsformen des gemeinsam genutzten Speichersystems von einem von A24 25 schließen das eine oder die mehreren Programme weiterhin Anweisungen zum Ausführen des Verfahrens nach einem von A1-A11 ein.
  • (A27) In noch einem anderen Aspekt schließt ein gemeinsam genutztes Speichersystem einen ersten Speicherprozessor einer Vielzahl von Speicherprozessoren des gemeinsam genutzten Speichersystems ein In einigen Ausführungsformen ist der erste Speicherprozessor mit einer gemeinsam genutzten Speichervorrichtung gekoppelt, die eine Vielzahl von Speichervorrichtungen aufweist, und der erste Speichervorrichtungen schließt Folgendes ein: Mittel zum Empfangen eines ersten Konnektivitätsüberprüfung-Anforderung von einer Initiatorvorrichtung; Mittel zum Übermitteln einer ersten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf die erste Konnektivitätsüberprüfung-Anforderung; und Mittel, die nach dem Übermitteln der ersten Bereitschaftsantwort aktiviert werden, einschließlich: Mittel zum Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist; und Mittel, die gemäß dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, aktiviert werden, zum Übermitteln einer Nicht-Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf eine zweite Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung.
  • (A28) In einigen Ausführungsformen weist das gemeinsam genutzte Speichersystem von A27 weiterhin Mittel zum Ausführen des Verfahrens nach einem von A1-A11 auf.
  • Zahlreiche Details sind hierin beschrieben, um ein gründliches Verstehen der beispielhaften Implementierungen zu ermöglichen, die in den beigefügten Zeichnungen veranschaulicht sind. Allerdings können einige Ausführungsformen ohne zahlreiche spezifische Details praktiziert werden und der Schutzumfang der Ansprüche wird nur durch die Merkmale und Aspekte eingeschränkt, die in den Ansprüchen spezifisch genannt sind. Weiterhin wurden wohlbekannte Verfahren, Komponenten und Schaltungen nicht ausführlich beschrieben, um die klare Darstellung von sachdienlicheren Aspekten der hier beschriebenen Implementierungen nicht unnötig zu beeinträchtigen.
  • 1A ist ein Blockdiagramm, das eine Implementierung eines gemeinsam genutzten Speichersystems 100 gemäß einigen Ausführungsformen veranschaulicht. Obgleich einige beispielhafte Merkmale veranschaulicht sind, wurden verschiedene andere Merkmale zum Zwecke der Kürze, und um nicht unnötig von den sachdienlichen Aspekten der hierin beschriebenen Ausführungsbeispielen abzulenken, nicht veranschaulicht. Zu diesem Zweck schließt als ein nicht einschränkendes Beispiel das gemeinsam genutzte Speichersystem 100 eine Vielzahl von Prozessoren ein, einschließlich Speicherprozessor 120-1 und Speicherprozessor 120-2. In einigen Ausführungsformen ist die Vielzahl von Prozessoren mit einem Clientsystem (manchmal auch als ein Client, Clientvorrichtung, Initiator oder Initiatorvorrichtung bezeichnet), wie beispielsweise Initiator/Client 110 (hierin als Initiator 110 bezeichnet), gekoppelt. In einigen Ausführungsformen schließt der Initiator 110 eine oder mehrere Speicherprozessorschnittstellen, wie beispielsweise die Speicherprozessorschnittstellen 112-1 und 112-2, ein, die für Kommunikationen zwischen dem Initiator 110 und der Vielzahl von Prozessoren 120 verwendet werden. In einigen Ausführungsformen ist die Vielzahl von Prozessoren mit einer gemeinsam genutzten Speichereinrichtung, wie beispielsweise der gemeinsam genutzten Speichervorrichtung 130, gekoppelt. In einigen Ausführungsformen schließt die gemeinsam genutzte Speichervorrichtung 130 eine Vielzahl von Speichervorrichtungen 134-1, 134-2 bis 134 n und einen oder mehrere gemeinsam genutzte Speicher-Controller ein, wie gemeinsam genutzte Speicher-Controller 132-1 und 132-2, die für Kommunikationen zwischen der Vielzahl von Speicherprozessoren 120 und der Vielzahl von Speichervorrichtungen 134 verwendet werden. In einigen Ausführungsformen schließt die gemeinsam genutzte Speichervorrichtung 130 eine oder mehrere nichtflüchtige Speichervorrichtungen ein (z. B. sind die Speichervorrichtungen 134-1, 134-2 bis 134 nichtflüchtige Speichervorrichtungen). In einigen Ausführungsformen schließt die gemeinsam genutzte Speichervorrichtung 130 eine oder mehrere Flash-Speichervorrichtungen ein (z. B. sind die Speichervorrichtungen 134-1, 134-2 bis 134 Flash-Speichervorrichtungen).
  • In einigen Ausführungsformen schließt der Speicherprozessor 120-1 eine Client-Schnittstelle 122-1 zum Kommunizieren mit einer Client-Vorrichtung, wie beispielsweise dem Initiator 110. In einigen Ausführungsformen ist der Speicherprozessor 120-1 über die Client Schnittstelle 122-1 mit dem Initiator 110 gekoppelt. In einigen Ausführungsformen verwenden die Kommunikationen zwischen dem Speicherprozessor 120-1 und dem Initiator 110 einen definierten Schnittstellenstandard für die Kommunikation, wie beispielsweise eine SCSI-Schnittstelle (Small Computer Systems Interface), eine iSCSI-Schnittstelle (Internet Small Computer Systems Interface), ein InfiniBand (IB), Fibre Channel (FC) oder eine andere Speicherschnittstelle.
  • In einigen Ausführungsformen schließt der Speicherprozessor 120-1 eine gemeinsam genutzte Speicherschnittstelle 128-1 zum Kommunizieren mit einer gemeinsam genutzten Speichervorrichtung, wie beispielsweise der gemeinsam genutzten Speichervorrichtung 130. In einigen Ausführungsformen ist der Speicherprozessor 120-1 über die gemeinsam genutzte Speicherschnittstelle 128-1 mit der gemeinsam genutzten Speichervorrichtung 130 gekoppelt. In einigen Ausführungsformen verwenden die Kommunikationen zwischen dem Speicherprozessor 120-1 und der gemeinsam genutzten Speichereinrichtung 130 einen definierten Schnittstellenstandard für die Kommunikation, wie beispielsweise eine SCSI-Schnittstelle (Small Computer Systems Interface), Serial Advanced Technology Attachment (SATA), Serial Attached SCSI (SAS) oder eine andere Speicherschnittstelle.
  • In einigen Ausführungsformen schließt der Speicherprozessor 120-1 ein Hotplug-Verwaltungsmodul 126-1 ein. In einigen Ausführungsformen überwacht das Hotplug-Verwaltungsmodul 126-1 die Konnektivität zwischen dem Speicherprozessor 120-1 und der gemeinsam genutzten Speichervorrichtung 130. In einigen Ausführungsformen schließt der Speicherprozessor 120-1 eine oder mehrere Verarbeitungseinheiten 124-1 (hierin gelegentlich als CPUs, Prozessoren oder Hardware Prozessoren bezeichnet und manchmal unter Verwendung von Mikroprozessoren, Mikrocontrollern oder dergleichen implementiert), die eingerichtet sind zum Ausführen von Anweisungen in einem oder mehreren Programmen (z. B. im Speicher Prozessor 120-1 oder einer Komponente des Speicherprozessors 120, wie beispielsweise dem Hotplug-Verwaltungsmodul 126-1). In einigen Ausführungsformen teilen sich eine oder mehrere Komponenten eine oder mehrere CPUs 124-1 im Rahmen der Funktion des Speicherprozessors 120-1 und in einigen Fällen auch darüber hinausgehend. In einigen Ausführungsformen verwalten die CPUs 124-1 die Kommunikation zum und vom Speicherprozessor 120-1 über die Client-Schnittstelle 122-1 und/oder die gemeinsam genutzte Speicherschnittstelle 128-1.
  • In einigen Ausführungsformen schließt der Speicherprozessor 120-2 ähnliche Elemente wie die oben unter Bezugnahme auf den Speicherprozessor 120-1 beschriebenen. Die Speicherprozessoren 120-1 und/oder 120-2 können verschiedene zusätzliche Merkmale einschließen, die aus Gründen der Kürze, und damit nicht von sachdienlichen Merkmalen der hierin offenbarten Ausführungsbeispiele abgelenkt wird, nicht veranschaulicht wurden, und eine verschiedene Anordnung von Merkmalen kann möglich sein.
  • 2 ist ein Blockdiagramm, die eine Implementierung eines Speicherprozessors 120-1 oder 120-2 (nachfolgend Speicherprozessor 120) gemäß einigen Ausführungsformen veranschaulicht. Der Prozessor 120 schließt typischerweise einen Speicher oder mehrere Verarbeitungseinheiten 124-1 zum Ausführen von Modulen, Programmen und/oder Anweisungen, die in Speicher 206 gespeichert sind, und dadurch Ausführen von Verarbeitungsvorgängen; Speicher 206 (hierin gelegentlich als Controller-Speicher bezeichnet); und ein oder mehrere Kommunikationsbusse 208 zum Verbinden dieser Komponenten ein. Die Kommunikationsbusse 208 schließen gegebenenfalls Schaltlogik ein (manchmal als Chipsatz bezeichnet), die Systemkomponenten miteinander verbinden und die Kommunikation zwischen ihnen steuern. In einigen Ausführungsformen, wie beispielsweise den in 1 dargestellten, ist der Speicherprozessor 120 über Kommunikationsbusse 208 mit dem Initiator 110 und der gemeinsam genutzten Speichervorrichtung 130 gekoppelt. Es ist anzumerken, dass die in 2 dargestellten Komponenten abhängig von der Konfiguration eines bestimmten gemeinsam genutzten Speichersystems variieren können und dass die in 2 gezeigten Darstellungen, die gemäß 1 eingerichtet sind, lediglich nicht einschränkende Beispiele sind. Der Speicher 206 schließt Hochgeschwindigkeits-Direktzugriffsspeicherein, wie beispielsweise DRAM, SRAM, DDR RAM oder andere Festkörperspeicher mit direktem Zugriff, und kann nichtflüchtige Speicher einschließen, wie beispielsweise ein oder mehrere Magnetplatten-Speichervorrichtungen, optische Plattenspeichervorrichtungen, Flash-Speichervorrichtungen oder andere nichtflüchtige Festkörperspeichervorrichtungen. Der Speicher 206 schließt gegebenenfalls ein oder mehrere Speichervorrichtungen ein, die entfernt von dem/den Prozessor(en) 124-1 angeordnet sind. In einigen Ausführungsformen schließt der Speicher 206, oder alternativ die nichtflüchtige(n) Speichervorrichtungen im Speicher 206, ein nichtflüchtiges computerlesbares Speichermedium ein. In einigen Ausführungsformen speichert der Speicher 206, oder das computerlesbare Speichermedium von Speicher 206, die folgenden Programme, Module und Datenstrukturen oder eine Untergruppe oder eine Übermenge davon:
    • • Betriebssystem 210, das Prozeduren zum Handhaben verschiedener grundlegender Systemdienste und zur Durchführung von Hardware-abhängigen Aufgaben einschließt;
    • • Client-Schnittstelle 122-1, die zur Kommunikation mit anderen Komponenten, wie beispielsweise dem Initiator 110, verwendet wird; in einigen Ausführungsformen weist die Client-Schnittstelle 122-1 ein SCSI-Zielmodul 218 auf, das Anforderungen von dem/den Initiator(en) empfängt und Antworten auf Anforderungen zurück an den/die Initiator(en) sendet;
    • • Hotplug-Verwaltungsmodul 126-1, das zum Überwachen der Konnektivität mit anderen Komponenten, wie beispielsweise der gemeinsam genutzten Speichervorrichtung 130, verwendet wird;
    • • Konfigurationsinformationen 212, die zum Speichern von Informationen verwendet werden, die zum Einrichten des Speicherprozessors 120 verwendet werden, und die Folgendes einschließen können:
      • o Testeinheit-Bereitschaftsparameter 214, der zum Anzeigen eines Status des Speicherprozessors 120 verwendet wird, wie beispielsweise ob der Speicherprozessor 120 bereit ist, Befehle vom Initiator 110 zu verarbeiten; und
    • • gemeinsam genutzte Speichervorrichtungen 128-1, die zum Kommunizieren mit anderen Komponenten verwendet wird, wie beispielsweise mit der gemeinsam genutzten Speichervorrichtung 130; in einigen Ausführungsformen schließt die gemeinsam genutzte Speicherschnittstelle 128-1 ein SCSI-Initiatormodul 220 ein, das Kommunikationen mit der gemeinsam genutzten Speichervorrichtung 130 verwaltet.
  • Jedes der vorstehend identifizierten Elemente kann in einem oder mehreren der vorstehend aufgeführten Speichervorrichtungen gespeichert sein, die zusammen den Speicher 206 bilden, und entspricht einem Satz von Anweisungen zum Ausführen einer vorstehend beschriebenen Funktion. Die vorstehend identifizierten Module oder Programme (d. h. Satz von Anweisungen) brauchen nicht als separate Softwareprogramme, Verfahren oder Module implementiert zu werden, und somit können verschiedene Teilgruppen dieser Module in verschiedenen Ausführungsformen kombiniert oder anderweitig anders angeordnet werden. In einigen Ausführungsformen kann der Speicher 206 eine Teilgruppe der vorstehend identifizierten Module und Datenstrukturen speichern. Weiterhin kann Speicher 206 zusätzliche vorstehend nicht beschriebene Module und Datenstrukturen speichern. In einigen Ausführungsformen stellen die im Speicher 206 oder dem computerlesbaren Speichermedium von Speicher 206 gespeicherten Programme, Module und Datenstrukturen Anweisungen für die Implementierung von entsprechenden Vorgängen in den nachstehend unter Bezugnahme auf 3A-3B und 4 beschriebenen Verfahren bereit.
  • Obwohl 2 den Speicherprozessor 120-1 zeigt, ist 2 eher als Funktionsbeschreibung der verschiedenen Merkmale zu verstehen, die in dem Speicherprozessor vorhanden sein können, denn als Strukturschema der hier beschriebenen Ausführungsformen. In der Praxis, und wie von Fachleuten anerkannt werden wird, könnten die getrennt dargestellten Elemente kombiniert und einzelne Elemente getrennt werden. Darüber hinaus sind, wie oben erwähnt, in einigen Ausführungsformen ein oder mehrere Module des Speicherprozessors 120-1 in dem Speicherprozessor 120-1 oder dem Speicherprozessor 120-2 des gemeinsam genutzten Speichersystems 100, implementiert, 1.
  • 3A veranschaulicht eine beispielhafte Ablaufdiagrammdarstellung eines Kommunikationsverfahrens 300 in einem gemeinsam genutzten Speichersystem ohne Hotplugging-Unterstützung gemäß einigen Ausführungsformen. Zur Vereinfachung der Erläuterung beschreibt das Folgende das Verfahren 300, wie es von einem ersten Speicherprozessor A (z. B. Speicherprozessor 120-1, 1), einem zweiten Speicherprozessor B (z. B. Speicherprozessor 120-2, 1) und einem Initiator (z. B. Initiator 110, 1), der operativ mit dem Speicherprozessor A und dem Speicherprozessor B gekoppelt ist, ausgeführt wird, wobei Kommunikationen zwischen den Speicherprozessoren und dem Initiator SCSI- (Small Computer Systems Interface-) Befehle verwenden. Das Verfahren beginnt damit, dass der Speicherprozessor A (z. B. Speicherprozessor 120-1, 1) und Speicherprozessor B (z. B. Speicherprozessor 120-2) beide mit einer gemeinsam genutzten Speichereinrichtung (z. B. der gemeinsam genutzten Speichervorrichtung 130, 1) verbunden sind, wobei Kommunikationen zwischen den Speicherprozessoren und der gemeinsam genutzten Speichervorrichtung ebenfalls SCSI-Befehle verwenden.
  • Der Speicherprozessor A empfängt (302) eine Testeinheit-Bereitschaft- (test-unitready, TUR-) Anforderung vom Initiator. Als Antwort auf die Testeinheit-Bereitschaft-Anforderung übermittelt (304) der Speicherprozessor A eine Bereitschaftsantwort an den Initiator.
  • Nach dem Übermitteln der Bereitschaftsantwort (304) empfängt (306) der Speicherprozessor A eine Anforderung von Report Target Port Groups (RTPG) vom Initiator. Als Antwort darauf übermittelt (308) der Speicherprozessor A ein Präferenzindikator- (PREF) Bit mit einem auf „1“ gesetzten Wert, was angibt, dass der Speicherprozessor A ein bevorzugter Speicherprozessor für den Zugriff auf die gemeinsam genutzte Speichervorrichtung ist.
  • Nach dem Übermitteln der Anzeige, dass er ein bevorzugter Speicherprozessor ist, empfängt (310) der Speicherprozessor A eine Leseanforderung vom Initiator, um Daten von der gemeinsam genutzten Speichervorrichtung zu lesen. Als Antwort liest der Speicherprozessor A Daten aus der gemeinsam genutzten Speichervorrichtung und übermittelt (312) die von der gemeinsam genutzten Speichervorrichtung gelesenen Daten an den Initiator.
  • Als nächstes wird (314) der Speicherprozessor A von der gemeinsam genutzten Speichervorrichtung getrennt, sodass der Speicherprozessor A die Kommunikation mit der gemeinsam genutzten Speichervorrichtung verliert.
  • Während der Speicherprozessor A von der gemeinsam genutzten Speichervorrichtung getrennt ist, übermittelt (318) der Speicherprozessor A als Antwort auf eine nachfolgende Leseanforderung vom Initiator zum Lesen von Daten von der gemeinsam genutzten Speichervorrichtung (316) einen Lesefehler, da der Speicherprozessor A nicht in der Lage ist, mit der gemeinsam genutzten Speichervorrichtung zu kommunizieren, um die angeforderten Daten zu lesen.
  • Als Antwort auf den Lesefehler vom Speicherprozessor A führt (320) der Initiator einen Failover-Vorgang aus, wobei er zum Speicherprozessor B anstelle des Speicherprozessors A wechselt, um auf die gemeinsam genutzte Speichervorrichtung zuzugreifen. Dementsprechend übermittelt (322) der Initiator eine Leseanforderung an den Speicherprozessor B. Als Antwort liest der Speicherprozessor B Daten aus der gemeinsam genutzten Speichervorrichtung und übermittelt (324) die von der gemeinsam genutzten Speichervorrichtung gelesenen Daten an den Initiator.
  • Anschließend übermittelt (326) der Initiator eine zweite TUR-Anforderung an den Speicherprozessor A. Als Antwort sendet (328) der Speicherprozessor A eine Bereitschaftsantwort an den Initiator, obwohl der Speicherprozessor A immer noch von der gemeinsam genutzten Speichervorrichtung getrennt ist. Dementsprechend übermittelt (330) der Initiator eine zweite RTPG-Anforderung an den Speicherprozessor A und als Antwort sendet der Speicherprozessor A (erneut) das PREF-Bit mit einem auf „1“ gesetzten Wert, was angibt, dass der Speicherprozessor A der bevorzugte Speicherprozessor ist.
  • Wenn der Speicherprozessor A eine Bereitschaftsantwort übermittelt und das PREF-Bit angibt, dass der Speicherprozessor A der bevorzugte Speicherprozessor ist, führt (334) der Initiator einen Failback-Vorgang aus, um zum Speicherprozessor A zurückzuschalten, um auf die gemeinsam genutzte Speichervorrichtung zuzugreifen. Dementsprechend übermittelt (336) der Initiator eine Leseanforderung an den Speicherprozessor A. Da jedoch der Speicherprozessor A immer noch von der gemeinsam genutzten Speichervorrichtung getrennt ist und nicht in der Lage ist, mit der gemeinsam genutzten Speichervorrichtung zu kommunizieren, um die angeforderten Daten zu lesen, übermittelt (338) der Speicherprozessor A erneut einen Lesefehler.
  • Als Reaktion auf die Lesefehler von Speicherprozessor A führt (340) der Initiator wieder einen Failover-Vorgang aus, wobei er stattdessen auf Speicherprozessor B umschaltet, um auf die gemeinsam genutzte Speichervorrichtung zuzugreifen, und übermittelt (342) entsprechend eine Leseanforderung an Speicherprozessor B. Als Reaktion liest Speicherprozessor B Daten aus der gemeinsam genutzten Speichervorrichtung und übermittelt (344) die aus der gemeinsam genutzten Speichervorrichtung gelesenen Daten zu dem Initiator.
  • 3B veranschaulicht eine beispielhafte Ablaufdiagrammdarstellung eines Verfahrens 301 zur verbesserten Kommunikation in einem gemeinsam genutzten Speichersystem gemäß einigen Ausführungsformen. Unter Bezugnahme auf das in 1 abgebildete gemeinsam genutzte Speichersystem werden in einigen Ausführungsformen einige der Vorgänge (oder alternativ Schritte) des Verfahrens 301 zumindest teilweise in einem Speicherprozessor (z. B. Speicherprozessor 120-1, 1) oder in einer oder mehreren Komponenten des Speicherprozessors (z. B. Client-Schnittstelle 122-1, Hotplug-Verwaltungsmodul 126-1 und/oder gemeinsam genutzte Speicherschnittstelle 128-1, 1) ausgeführt. In einigen Ausführungsformen wird das Verfahren 301 durch Anweisungen geregelt, die in einem nichtflüchtigen computerlesbaren Speichermedium gespeichert sind und von einem oder mehreren Prozessoren einer Vorrichtung, wie beispielsweise der einen oder den mehreren Verarbeitungseinheiten (CPUs) 124-1 von Speicherprozessor 120-1 (1), ausgeführt werden.
  • In einigen Ausführungsformen werden einige der Vorgänge des Verfahrens 301 bei einem Initiator(z. B. Initiator 110, 1), der operativ mit dem Speicherprozessor gekoppelt ist, und/oder bei einer gemeinsam genutzten Speichervorrichtung (z. B. der gemeinsam genutzten Speichervorrichtung 130, 1), die operativ mit dem Speicherprozessor gekoppelt ist, ausgeführt, und andere Vorgänge des Verfahrens 301 werden bei dem Speicherprozessor ausgeführt. In einigen dieser Ausführungsformen wird das Verfahren 301 zumindest teilweise durch Anweisungen geregelt, die in einem nichtflüchtigen computerlesbaren Speichermedium gespeichert sind und von einem oder mehreren Prozessoren (z. B. Hardware-Prozessoren) des Initiators und/oder der gemeinsam genutzten Speichervorrichtung ausgeführt werden.
  • Unter Bezugnahme auf 2 werden in einigen Ausführungsformen einige der Vorgänge des Verfahrens 301 zumindest teilweise von einem Hotplug-Verwaltungsmodul (z. B. dem Hotplug-Verwaltungsmodul 126-1, 2) und in einigen Fällen unter Verwendung einer Client-Schnittstelle (z. B. Client-Schnittstelle 122-1, 2) und einer gemeinsam genutzten Speicherschnittstelle (z. B. gemeinsam genutzte Speicherschnittstelle 128-1, 2) eines jeweiligen Speicherprozessors ausgeführt.
  • Zur Vereinfachung der Erläuterung beschreibt das Folgende das Verfahren 301, wie es von einem bestimmten Speicherprozessor(z. B. dem Speicherprozessor 120-1, 1) und einem Initiator (z. B. Initiator 110, 1), der operativ mit dem Speicherprozessor gekoppelt ist, ausgeführt wird. In dem in 3B gezeigten Beispiel verwenden Kommunikationen zwischen dem Speicherprozessor 120-1 und dem Initiator 110 SCSI- (Small Computer Systems Interface-) Befehle. Dementsprechend ist der Speicherprozessor mit dem Initiator über ein SCSI-Zielmodul 218 (oder allgemeiner eine Client-Schnittstelle, wie beispielsweise die Client-Schnittstelle 122-1, 1) an dem Speicherprozessor 120 gekoppelt, der für Kommunikationen mit dem Initiator verwendet wird (z. B. ist der Speicherprozessor 230 ein SCSI-Ziel in Bezug auf den Initiator 110). In einigen Ausführungsformen schließt der Initiator 110 auf ähnliche Weise eine Schnittstelle (z. B. Speicherprozessorschnittstelle 112-1, 1) ein, die zur Kommunikation mit dem Speicherprozessor 120 verwendet wird. Es sollte verstanden werden, dass das Verfahren 310 auch bei dem/den anderen Speicherprozessor(en) des gemeinsam genutzten Speichersystems ausgeführt wird, wenn Anforderungen vom Initiator an diese anderen Speicherprozessoren gerichtet werden. In einigen Ausführungsformen werden andere Kommunikationsprotokolle, die sich von den hier beschriebenen unterscheiden, beim Ausführen des Verfahrens 301 verwendet.
  • Das Verfahren 301 beginnt mit dem Speicherprozessor (z. B. dem Speicherprozessor 120-1, 1), der auch operativ mit einer gemeinsam genutzten Speichervorrichtung (z. B. der gemeinsam genutzten Speichervorrichtung 130, 1) gekoppelt ist. In dem in 3B gezeigten Beispiel ist der Speicherprozessor mit der gemeinsam genutzten Speichervorrichtung durch ein SCSI-Initiatormodul (oder allgemeiner eine gemeinsam genutzte Speicherschnittstelle, wie beispielsweise die gemeinsam genutzte Speicherschnittstelle 128-1, 1) an dem Speicherprozessor gekoppelt, der für Kommunikationen mit der gemeinsam genutzten Speichervorrichtung verwendet wird (z. B. ist der Speicherprozessor ein SCSI-Initiator in Bezug auf die gemeinsam genutzte Speichervorrichtung). Zusätzlich schließt der Speicherprozessor ein Hotplug-Verwaltungsmodul zum Verwalten der Konnektivität (z. B. zwischen dem Speicherprozessor und der gemeinsam genutzten Speichervorrichtung) ein. In einigen Ausführungsformen schließt die gemeinsam genutzte Speichervorrichtung in ähnlicher Weise eine Schnittstelle (z. B. den gemeinsam genutzten Speicher-Controller 132-1, 1) ein, der zur Kommunikation mit dem Speicherprozessor verwendet wird.
  • Die Speicherprozessor (z. B. das SCSI-Zielmodul 218) empfängt (350) eine Testeinheit-Bereitschaft- (TUR-) Anforderung vom Initiator 110. Als Antwort auf die Testeinheit-Bereitschaft-Anforderung übermittelt (352) der Speicherprozessor eine Bereitschaftsantwort an den Initiator (z. B. um anzugeben, dass der Speicherprozessor zur Verarbeitung von Befehlen von dem Initiator verfügbar ist, um auf Daten zuzugreifen, die in der gemeinsam genutzten Speichervorrichtung gespeichert sind). In einigen Ausführungsformen speichert der Speicherprozessor (oder eine Komponente des Speicherprozessors, wie beispielsweise das SCSI-Zielmodul 218) Konfigurationsinformationen (z. B. Konfigurationsinformationen 212, 2), die einen Testeinheit-Bereitschaftsparameter einschließen (z. B. Testeinheit-Bereitschaftsparameter 214, 2). In einigen Ausführungsformen zeigt der Testeinheit-Bereitschaftsparameter an, ob sich der Speicherprozessor in einem Bereitschaftszustand (z. B. mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist) oder einem Nicht-Bereitschaftszustand befindet (z. B. von der gemeinsam genutzten Speichervorrichtung entkoppelt ist). In einigen Ausführungsformen wird der Testeinheit-Bereitschaftsparameter gemäß der Bestimmung aktualisiert, ob der Speicherprozessor mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist (z. B. wird der Testeinheit-Bereitschaftsparameter auf einen Bereitschaftswert gesetzt oder aktualisiert gemäß der Bestimmung, dass der Speicherprozessor mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist oder wurde, oder auf einen Nicht-Bereitschaftswert gesetzt oder aktualisiert gemäß der Bestimmung, dass der Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist oder wurde). In einigen Ausführungsformen bestimmt der Speicherprozessor Antworten auf Testeinheit-Bereitschaft-Anforderungen von dem Initiator gemäß dem Testeinheit-Bereitschaftsparameter, der im Speicherprozessor gespeichert ist.
  • Nach dem (oder als Antwort auf das) Übermitteln der Bereitschaftsantwort (352) empfängt (354) in einigen Ausführungsformen der Speicherprozessor A eine Anforderung von Report Target Port Groups (RTPG) vom Initiator. Als Antwort auf die RTPG-Anforderung vom Initiator übermittelt (356) der Speicherprozessor eine RTPG-Antwort. In einigen Ausführungsformen schließt die RTPG-Antwort, die von dem Speicherprozessor übermittelt wird, ein Präferenzindikator- (PREF) Bit mit einem auf „1“ gesetzten Wert, was angibt, dass der Speicherprozessor ein bevorzugter Speicherprozessor für den Zugriff auf in der gemeinsam genutzten Speichervorrichtung gespeicherte Daten ist.
  • Nach dem Übermitteln der RTPG-Antwort (z. B. Anzeigen, dass es sich um einen bevorzugten Speicherprozessor handelt), empfängt (358) der Speicherprozessor (z. B. das SCSI-Zielmodul) eine Leseanforderung vom Initiator, um Daten von der gemeinsam genutzten Speichervorrichtung zu lesen (z. B. wird die Anforderung empfangen, bevor der Speicherprozessor erkennt, dass er von der gemeinsam genutzten Speichervorrichtung getrennt ist). In einigen Ausführungsformen wird die Leseanforderung von dem Initiator durch das SCSI-Zielmodul des Speicherprozessors empfangen, und die Leseanforderung wird zu dem SCSI-Initiatormodul 220 oder der gemeinsam genutzten Speicherschnittstelle 128-1, die für Kommunikationen mit der gemeinsam genutzten Speichervorrichtung verwendet werden, übermittelt (360). Als Reaktion (und während der Speicherprozessor mit der gemeinsam genutzten Speichervorrichtung verbunden ist) führt (362) der Speicherprozessor einen Lesevorgang aus, um Daten von der gemeinsam genutzten Speichervorrichtung zu lesen (z. B. verwendet der Speicherprozessor das SCSI-Initiatormodul 220 zum Lesen von Daten aus der gemeinsam genutzten Speichervorrichtung). Der Speicherprozessor (z. B. das SCSI-Initiatormodul 220) empfängt (364) die von der gemeinsam genutzten Speichervorrichtung gelesenen Daten und übermittelt (z. B. unter Verwendung des SCSI-Zielmoduls 218 (366)) die Daten an den Initiator (368).
  • Als nächstes wird der Speicherprozessor (370) von der gemeinsam genutzten Speichervorrichtung getrennt (z. B. derart, dass der Speicherprozessor die Kommunikation mit der gemeinsam genutzten Speichervorrichtung verliert). Der Speicherprozessor erkennt, dass die gemeinsam genutzte Speichervorrichtung getrennt ist (z. B. wird die gemeinsam genutzte Speichervorrichtung entfernt). Zum Beispiel erkennt das SCSI-Initiatormodul 220, dass der gemeinsam genutzte Speicher getrennt ist, und meldet (372) die Trennung dem Hotplug-Verwaltungsmodul 126-1. Als Reaktion darauf modifiziert (374) das Hotplug-Verwaltungsmodul die Antwort des Speicherprozessors auf Testeinheit-Bereitschaft-Anforderungen. In einigen Ausführungsformen setzt oder aktualisiert das Hotplug-Verwaltungsmodul den Testeinheit-Bereitschaft-Parameter (z. B. Testeinheit-Bereitschaft-Parameters 214, der in den Konfigurationsinformationen 212 gespeichert ist, 2), um anzugeben, dass sich der Speicherprozessor in einem Nicht-Bereitschaftszustand befindet.
  • Während der Speicherprozessor von der gemeinsam genutzten Speichervorrichtung getrennt ist, übermittelt (376) der Speicherprozessor als Antwort auf eine nachfolgende Testeinheit-Bereitschaft-Anforderung vom Initiator (378) eine Nicht-Bereit-Antwort (z. B. gemäß dem Testeinheit-Bereit-Parameter, der durch den Speicherprozessor als Reaktion auf das Erfassen der Trennung von der gemeinsam genutzten Speichervorrichtung auf einen Nicht-Bereitschaftswert gesetzt wurde, wie oben unter Bezugnahme auf den Vorgang 374 erörtert wurde).
  • Gemäß dem Speicherprozessor, der die Nicht-Bereitschaftsantwort übermittelt, wird der Initiator benachrichtigt, dass der Speicherprozessor nicht in der Lage ist, Befehle vom Initiator (z. B. Anforderungen zum Ausführen von Speichervorgängen, wie beispielsweise Lese- und/oder Schreibbefehle) für den Zugriff auf die gemeinsam genutzte Speichervorrichtung zu verarbeiten. In einigen Ausführungsformen übermittelt der Initiator anschließend keine RTPG-Anforderung. In einigen Ausführungsformen wechselt der Initiator als Reaktion auf den Empfang der Nicht-Bereitschaftsantwort von dem (ersten) Speicherprozessor zu einem zweiten Speicherprozessor (z. B. Speicherprozessor 120-2, 1, oder Speicherprozessor B, 3A) für den Zugriff auf die gemeinsam genutzte Speichervorrichtung, wie hierin in weiterem Detail mit Bezug auf 4 beschrieben.
  • Als nächstes wird (380) der (erste) Speicherprozessor wieder mit der gemeinsam genutzten Speichervorrichtung verbunden (z. B. Wiederherstellen der Kommunikation zwischen dem Speicherprozessor und der gemeinsam genutzten Speichervorrichtung). Der Speicherprozessor erkennt, dass die gemeinsam genutzte Speichervorrichtung wieder verbunden ist. Zum Beispiel erkennt das SCSI-Initiatormodul 220, dass der gemeinsam genutzte Speicher wieder verbunden ist, und meldet (382) die Wiederverbindung dem Hotplug-Verwaltungsmodul 126-1. Als Reaktion darauf modifiziert (384) das Hotplug-Verwaltungsmodul die Antwort des Speicherprozessors auf (nachfolgend empfangene) Testeinheit-Bereitschaft-Anforderungen. In einigen Ausführungsformen aktualisiert das Hotplug-Verwaltungsmodul den Testeinheit-Bereitschaft-Parameter (z. B. Testeinheit-Bereitschaft-Parameters 214, der in den Konfigurationsinformationen 212 gespeichert ist, 2), um anzugeben, dass sich der Speicherprozessor (wieder) in einem Bereitschaftszustand befindet.
  • Nachdem der Speicherprozessor wieder mit der gemeinsam genutzten Speichervorrichtung verbunden ist, übermittelt (386) der Speicherprozessor als Antwort auf eine nachfolgende Testeinheit-Bereitschaft-Anforderung vom Initiator (388) eine Bereitschaftsantwort (z. B. gemäß dem Testeinheit-Bereit-Parameter, der durch den Speicherprozessor als Reaktion auf das Erfassen der Wiederverbindung mit der gemeinsam genutzten Speichervorrichtung aktualisiert wurde, wie oben unter Bezugnahme auf den Vorgang 384 erörtert wurde).
  • Nach dem Übermitteln der Bereitschaftsantwort (388) empfängt (390) der Speicherprozessor eine RTPG-Anforderung vom Initiator. Als Reaktion auf die RTPG-Anforderung vom Initiator übermittelt (392) der Speicherprozessor eine RTPG Antwort, die in einigen Ausführungsformen ein PREF-Bit mit einem auf „1“ gesetzten Wert einschließt, was angibt, dass der Speicherprozessor ein bevorzugter Speicherprozessor für den Zugriff auf die gemeinsam genutzte Speichervorrichtung ist. In einigen Ausführungsformen ist das PREF-Bit unabhängig davon, ob der Speicherprozessor mit einer gemeinsam genutzten Speichervorrichtung verbunden ist (z. B. wird der Wert des PREF-Bits unabhängig davon beibehalten, ob der Speicherprozessor mit einer gemeinsam genutzten Speichervorrichtung verbunden ist oder von dieser getrennt ist).
  • Nach dem Übermitteln der RTPG-Antwort (z. B. Anzeige, dass er ein bevorzugter Speicherprozessor ist), empfängt (394) der Speicherprozessor eine Leseanforderung vom Initiator, um Daten von der gemeinsam genutzten Speichervorrichtung zu lesen. In einigen Ausführungsformen fährt das Verfahren 301 in Reaktion auf die Leseanforderung wie oben mit Bezug auf die Vorgänge 360, 362, 364, 366 und 368 beschrieben fort. Der Kürze halber werden diese Details hier weder dargestellt noch wiederholt.
  • 4 veranschaulicht eine konzeptionelle Ablaufdiagrammdarstellung eines Verfahrens 400 zur verbesserten Kommunikation in einem gemeinsam genutzten Speichersystem gemäß einigen Ausführungsformen. Unter Bezugnahme auf das in 1 abgebildete gemeinsam genutzte Speichersystem werden in einigen Ausführungsformen einige der Vorgänge (oder alternativ Schritte) des Verfahrens 400 zumindest teilweise in einem ersten Speicherprozessor (z. B. Speicherprozessor 120-1, 1) oder in einer oder mehreren Komponenten des ersten Speicherprozessors (z. B. Client-Schnittstelle 122-1, Hotplug-Verwaltungsmodul 126-1 und/oder gemeinsam genutzte Speicherschnittstelle 128-1, 1) ausgeführt. In einigen Ausführungsformen wird das Verfahren 400 durch Anweisungen geregelt, die in einem nichtflüchtigen computerlesbaren Speichermedium gespeichert sind und von einem oder mehreren Prozessoren einer Vorrichtung, wie beispielsweise der einen oder den mehreren Verarbeitungseinheiten (CPUs) 124-1 von Speicherprozessor 120-1 (1), ausgeführt werden. In einigen Ausführungsformen werden einige der Vorgänge des Verfahrens 400 zumindest teilweise in einem zweiten Speicherprozessor (z. B. Speicherprozessor 120-2, 1) oder in einer oder mehreren Komponenten des zweiten Speicherprozessors (z. B. Client-Schnittstelle 122-2, Hotplug-Verwaltungsmodul 126-2 und/oder gemeinsam genutzte Speicherschnittstelle 128-2, 1) ausgeführt. In einigen Ausführungsformen wird das Verfahren 400 durch Anweisungen geregelt, die in einem nichtflüchtigen computerlesbaren Speichermedium gespeichert sind und von einem oder mehreren Prozessoren einer Vorrichtung, wie beispielsweise der einen oder den mehreren Verarbeitungseinheiten (CPUs) 124-2 von Speicherprozessor 120-2 (1), ausgeführt werden.
  • In einigen Ausführungsformen werden einige der Vorgänge des Verfahrens 400 bei einem Initiator(z. B. Initiator 110, 1), der operativ mit dem ersten und zweiten Speicherprozessor gekoppelt ist, und/oder bei einer gemeinsam genutzten Speichervorrichtung (z. B. der gemeinsam genutzten Speichervorrichtung 130, 1), die operativ mit dem ersten und zweiten Speicherprozessor gekoppelt ist, ausgeführt, und andere Vorgänge des Verfahrens 301 werden bei einem jeweiligen Speicherprozessor ausgeführt. In einigen dieser Ausführungsformen wird das Verfahren 400 zumindest teilweise durch Anweisungen geregelt, die in einem nichtflüchtigen computerlesbaren Speichermedium gespeichert sind und von einem oder mehreren Prozessoren (z. B. Hardware-Prozessoren) des Initiators und/oder der gemeinsam genutzten Speichervorrichtung ausgeführt werden.
  • Unter Bezugnahme auf 2 werden in einigen Ausführungsformen einige der Vorgänge des Verfahrens 400 zumindest teilweise von einem Hotplug-Verwaltungsmodul (z. B. dem Hotplug-Verwaltungsmodul 126-1, 2) und in einigen Fällen unter Verwendung von ausgeführt eine Client-Schnittstelle (z. B. Client-Schnittstelle 122-1, 2) und einer gemeinsam genutzten Speicherschnittstelle (z. B. gemeinsam genutzte Speicherschnittstelle 128-1, 2) eines jeweiligen ausgeführt.
  • Zur Vereinfachung der Erläuterung beschreibt das Folgende das Verfahren 400, wie es bei einem Initiator (z. B. Initiator 110, 1) und einer Vielzahl von Speicherprozessoren, einschließlich eines ersten Speicherprozessors A (z. B. Speicherprozessor 120-1, 1) und eines zweiten Speicherprozessors B (z. B. Speicherprozessor 120-2, 1), ausgeführt wird. Das Verfahren beginnt mit dem Speicherprozessor (z. B. dem Speicherprozessor 120-1, 1), der mit einer gemeinsam genutzten Speichervorrichtung (z. B. der gemeinsam genutzten Speichervorrichtung 130, 1) gekoppelt (z. B. verbunden) ist. In einigen Ausführungsformen verwenden Kommunikationen zwischen der Vielzahl von Speicherprozessoren und der gemeinsam genutzten Speichervorrichtung SCSI- (Small Computer System Interface-) Befehle (z. B. wie oben mit Bezug auf Verfahren 301 beschrieben, 3B). Der Initiator übermittelt (402) eine (erste) Konnektivitätsüberprüfung-Anforderung (z. B. eine Testeinheit-Bereitschaftsanforderung, beispielsweise eine Testeinheit-Bereitschaftsanforderung, die den SCSI-Normen entspricht) an den Speicherprozessor A. Der Speicherprozessor A empfängt (404) die Konnektivitätsüberprüfung-Anforderung. In Reaktion auf die Konnektivitätsüberprüfung-Anforderung und, in einigen Ausführungsformen, gemäß einer Bestimmung, dass sich der Speicherprozessor A in einem Bereitschaftszustand befindet, übermittelt (406) der Speicherprozessor A eine Bereitschaftsantwort an den Initiator (z. B. um anzugeben, dass Speicherprozessor A zur Verarbeitung von Befehlen von dem Initiator verfügbar ist, um auf Daten zuzugreifen, die in der gemeinsam genutzten Speichervorrichtung gespeichert sind).
  • In einigen Ausführungsformen speichert der Speicherprozessor A Konfigurationsinformationen (z. B. Konfigurationsinformationen 212, 2), die einen Testeinheit-Bereitschaftsparameter einschließen (z. B. Testeinheit-Bereitschaftsparameter 214, 2). Wie vorstehend unter Bezugnahme auf Vorgang 352 von Verfahren 301 (3B) beschrieben, zeigt der Testeinheit-Bereitschaftsparameter in einigen Ausführungsformen an, ob der Speicherprozessor sich in einem Bereitschaftszustand oder in einem Nicht-Bereitschaftszustand befindet, und der Testeinheit-Bereitschaftsparameter wird gemäß der Bestimmung aktualisiert, ob der Speicherprozessor mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist. In einigen Ausführungsformen bestimmt der Speicherprozessor A Antworten auf Konnektivitätsüberprüfung-Anforderungen (z. B. Testeinheit-Bereitschaft-Anforderungen) von dem Initiator gemäß dem Testeinheit-Bereitschaftsparameter, der im Speicherprozessor A gespeichert ist.
  • In einigen Ausführungsformen empfängt der Speicherprozessor A nach dem Übermitteln der Bereitschaftsantwort an den Initiator (406) eine Anforderung vom Initiator für zusätzliche Konfigurationsinformationen. In einigen Ausführungsformen übermittelt der Speicherprozessor A als Antwort auf die Anforderung für zusätzliche Konfigurationsinformationen eine Anzeige, dass er (Speicherprozessor A) ein bevorzugter Speicherprozessor ist (z. B. ein bevorzugte Speicherprozessor für den Zugriff auf Daten, die in der gemeinsam genutzten Speichervorrichtung gespeichert sind). Beispielsweise speichert der Speicherprozessor A in einigen Ausführungsformen gemäß SCSI-Standards Konfigurationsinformationen (z. B. Konfigurationsinformationen 212, 2), die einen Präferenzindikator (z. B. Präferenzindikator 216, 2) einschließen, der angibt, ob Speicherprozessor A ein bevorzugter Speicherprozessor ist (z. B. ist der Präferenzindikator ein Bit, wobei ein Bitwert von „1“ angibt, dass der Speicherprozessor ein bevorzugter Speicherprozessor, während ein Bitwert von „0“ angibt, dass der Speicherprozessor kein bevorzugter Speicherprozessor ist). In einigen Ausführungsformen empfängt der Prozessor A eine Anforderung von Report Target Port Groups (RTPG) vom Initiator und übermittelt als Antwort ein Präferenzindikator- (PREF-) Bit mit einem auf „1“ gesetzten Wert, der angibt, dass der Speicherprozessor A ein bevorzugter Speicherprozessor ist (z. B. gemäß dem Präferenzindikator 216, 2).
  • In einigen Ausführungsformen übermittelt (408), nachdem der Speicherprozessor A die Bereitschaftsantwort an den Initiator übermittelt (406) (und in einigen Ausführungsformen, nachdem der Speicherprozessor A eine Anfrage vom Initiator für zusätzliche Konfigurationsinformationen empfängt), der Initiator eine Leseanforderung an den Speicherprozessor A, um Daten von der gemeinsam genutzten Speichervorrichtung zu lesen (oder allgemeiner, der Initiator übermittelt einen Befehl oder eine Anfrage an den Speicherprozessor A, um einen Speichervorgang auf der gemeinsam genutzten Speichervorrichtung auszuführen). Wenn in einigen Ausführungsformen der Speicherprozessor A die Leseanforderung von dem Initiator empfängt, während der Speicherprozessor A noch mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist (und somit vor dem Erkennen, dass der Speicherprozessor A von der gemeinsam genutzten Speichervorrichtung entkoppelt ist), liest (410) der Speicherprozessor A die Daten von der gemeinsam genutzten Speichervorrichtung (oder, allgemeiner ausgedrückt, führt der Speicherprozessor A den angeforderten Speichervorgang aus). Der Initiator empfängt (412) wiederum die von dem Speicherprozessor A übermittelten Daten.
  • In einigen Ausführungsformen oder unter bestimmten Umständen erkennt (413) der Speicherprozessor A, dass er von der gemeinsam genutzten Speichervorrichtung entkoppelt (z. B. getrennt) ist (z. B. wie oben unter Bezugnahme auf Vorgänge 370, 372, und 374 von Verfahren 301 ausführlicher beschrieben, 3B).
  • In einigen Ausführungsformen übermittelt (414), während der Speicherprozessor A von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, der Initiator eine zweite Konnektivitätsüberprüfung-Anforderung (z. B. eine zweite Testeinheit-Bereitschaftsanforderung). Als Antwort übermittelt (416) Speicherprozessor A eine Nicht-Bereitschaftsantwort (z. B. gemäß dem Erkennen des Speicherprozessors A, dass er von der gemeinsam genutzten Speichervorrichtung getrennt ist, was angibt, dass der Speicherprozessor A nicht zur Verfügung steht, um Befehle vom Initiator zum Zugriff auf Daten, die auf der gemeinsam genutzten Speichervorrichtung gespeichert sind, zu verarbeiten).
  • In einigen Ausführungsformen wechselt der Initiator als Reaktion auf den Empfang der Nicht-Bereitschaftsantwort von Speicherprozessor A zu einem zweiten Speicherprozessor B für den Zugriff auf die gemeinsam genutzte Speichervorrichtung. In einigen Ausführungsformen übermittelt (418) der Initiator eine dritte Konnektivitätsüberprüfung-Anforderung (z. B. eine dritte Testeinheit-Bereitschaftsanforderung) an den Speicherprozessor B. In einigen Ausführungsformen übermittelt der Initiator periodisch Konnektivitätsüberprüfung-Anforderungen an (z. B. Polling) einen oder mehrere der Vielzahl von Speicherprozessoren, um zu bestimmen, ob sich ein jeweiliger Speicherprozessor in einem Bereitschaftszustand befindet (z. B. für die Verarbeitung von Befehlen des Initiators zum Zugriff auf Daten, die auf der gemeinsam genutzten Speichervorrichtung gespeichert sind, verfügbar ist). Zum Beispiel übermittelt der Initiator in einigen Ausführungsformen periodisch Konnektivitätsüberprüfung-Anforderungen an Speicherprozessor B (oder sowohl an Speicherprozessor A als auch an Speicherprozessor B), unabhängig davon, ob sich der Speicherprozessor in einem Bereitschaftszustand befindet. In einigen Ausführungsformen (z. B. gemäß einer Bestimmung, dass der Speicherprozessor B mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist) übermittelt (420) der Speicherprozessor B eine Bereitschaftsantwort an den Initiator als Antwort auf die dritte Konnektivitätsüberprüfung-Anforderung (z. B. ist der Speicherprozessor B zur Verarbeitung von Befehlen von dem Initiator verfügbar, um auf Daten zuzugreifen, die in der gemeinsam genutzten Speichervorrichtung gespeichert sind).
  • In einigen Ausführungsformen übermittelt (422) der Initiator als Antwort auf das Empfangen der Nicht-Bereitschaftsantwort vom Speicherprozessor A (416) (und in einigen Ausführungsformen als Antwort auf den Empfang der Bereitschaftsantwort vom Speicherprozessor B (420)) eine Leseanforderung an den Speicherprozessor B, um Daten von der gemeinsam genutzten Speichervorrichtung zu lesen. Als Reaktion liest (424) der Speicherprozessor B die Daten von der gemeinsam genutzten Speichervorrichtung und übermittelt die gelesenen Daten an den Initiator. Der Initiator empfängt (426) wiederum die von dem Speicherprozessor B übermittelten Daten.
  • In einigen Ausführungsformen oder unter bestimmten Umständen erkennt (427) der Speicherprozessor A, dass er wieder mit der gemeinsam genutzten Speichervorrichtung gekoppelt (z. B. wieder verbunden) ist (z. B. wie oben unter Bezugnahme auf Vorgänge 380, 382, und 384 von Verfahren 301 ausführlicher beschrieben, 3B).
  • In einigen Ausführungsformen übermittelt (428) der Initiator, nachdem der Speicherprozessor A wieder mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist, vierte Konnektivitätsüberprüfung-Anforderung an den Speicherprozessor A, und als Antwort übermittelt (430) Speicherprozessor A eine Bereitschaftsantwort an den Initiator (z. B. um anzugeben, dass Speicherprozessor A zur Verarbeitung von Befehlen von dem Initiator verfügbar ist, um auf Daten zuzugreifen, die in der gemeinsam genutzten Speichervorrichtung gespeichert sind). In einigen Ausführungsformen empfängt der Speicherprozessor A Konnektivitätsüberprüfung-Anforderungen von dem Initiator gemäß einer Angabe, dass der Speicherprozessor A ein bevorzugter Speicherprozessor ist (z. B. wie oben ausführlicher unter Bezugnahme auf Vorgänge 354, 356, 390, und 392 von Verfahren 301 beschrieben, 3B). In einigen Ausführungsformen schaltet der Initiator gemäß der Angabe, dass der Speicherprozessor A ein bevorzugter Speicherprozessor ist, nachdem der Initiator zum Speicherprozessor B umschaltet (z. B. gemäß der Nicht-Bereitschaftsantwort von dem Speicherprozessor A) und den Speicherprozessor B auffordert, eine oder mehrere Speichervorgänge auf der gemeinsam genutzten Speichervorrichtung durchzuführen, zurück zum Speicherprozessor A, bevor er die Ausführung eines nachfolgenden Speichervorgangs oder mehrerer nachfolgender Speichervorgänge auf der gemeinsam genutzten Speichervorrichtung anfordert.
  • Es sei angemerkt, dass das Verfahren 301 von 3B und das Verfahren 400 von 4 die Failback- und Failover-Vorgänge umgehen, die hierin unter Bezugnahme auf das Verfahren 300 von 3A beschrieben werden, wodurch die Geschwindigkeit und Effizienz der Kommunikationen zwischen der Vielzahl von Prozessoren, dem Initiator und dem gemeinsam genutzten Speichersystem verbessert werden und die Robustheit des gemeinsam genutzten Speichersystems erhöht wird.
  • Es versteht sich, dass, obwohl die Begriffe „erste“, „zweite“ usw. hierin verwendet werden können, um verschiedene Elemente zu beschreiben, diese Elemente nicht auf diese Begriffe beschränkt sein sollen. Diese Begriffe werden nur verwendet, um ein Element von einem anderen zu unterscheiden. Beispielsweise könnte ein erster Kontakt als ein zweiter Kontakt bezeichnet werden, und gleichermaßen könnte ein zweiter Kontakt als erster Kontakt bezeichnet werden, was die Bedeutung der Beschreibung ändernd, sofern jedes Auftreten von „erster Kontakt“ systematisch umbenannt wird und jedes Auftreten von „zweiter Kontakt“ systematisch umbenannt wird. Der erste Kontakt und der zweite Kontakt sind beide Kontakte, es handelt sich dabei aber nicht um denselben Kontakt.
  • Die hier verwendeten Begrifflichkeiten dienen nur der Beschreibung von bestimmten Ausführungsformen und sollen nicht als Einschränkung der Ansprüche verstanden werden. So, wie sie in der Beschreibung der Ausführungsformen und der beiliegenden Ansprüche verwendet werden, sollen die Singularformen „ein/eine“ „der/die/das“ ebenfalls die Pluralformen einschließen, sofern der Zusammenhang nicht eindeutig etwas anderes vorgibt. Es versteht sich ebenfalls, dass der Begriff „und/oder“, wie er hierin verwendet wird, jede und alle möglichen Kombinationen von einen oder mehrere der dazugehörigen aufgelisteten Elemente bezeichnet. Es versteht sich weiterhin, dass die Begriffe „aufweisen“ und/oder „aufweisend“, wenn sie in dieser Patentschrift verwendet werden, das Vorhandensein von angegebenen Merkmalen, Einheiten, Schritten, Vorgängen, Elementen und/oder Komponenten bezeichnen, nicht aber das Vorhandensein oder die Hinzufügung von einer oder mehreren anderen Merkmalen, Einheiten, Schritten, Vorgängen, Elementen, Komponenten und/oder Gruppen von diesen ausschließen.
  • Wie hierin verwendet, kann der Begriff „falls“ in der Bedeutung „wenn“ oder „bei“ oder „als Reaktion auf das Bestimmen“ oder „gemäß einer Bestimmung“ oder „als Reaktion auf die Feststellung“ ausgelegt werden, dass je nach Textzusammenhang eine angegebene Voraussetzung erfüllt ist. Analog kann die Formulierung „wenn festgestellt wird [dass eine angegebene unabdingbare Voraussetzung erfüllt ist]“ oder „falls [eine angegebene unabdingbare Voraussetzung erfüllt ist]“ oder „wenn [eine angegebene unabdingbare Voraussetzung erfüllt ist]“ kann je nach Textzusammenhang ausgelegt werden als: „nach Feststellung“ oder „als Reaktion auf die Feststellung“ oder „gemäß einer Feststellung“ oder „nach Erkennung“ oder „als Reaktion auf die Erkennung“, dass eine festgestellte unabdingbare Voraussetzung erfüllt ist.
  • Die vorstehende Beschreibung erfolgte als Erläuterung unter Bezugnahme auf spezifische Implementierungen. Allerdings sind die vorstehenden veranschaulichenden Erörterungen weder als erschöpfend zu betrachten noch sollen sie die Ansprüche auf die exakt offenbarten Formen beschränken. Zahlreiche Änderungen und Varianten sind angesichts der vorstehenden Lehre möglich. Die Implementierungen wurden dazu ausgewählt und beschrieben, die Funktionsprinzipien und praktischen Anwendungen optimal zu erläutern, um somit anderen Fachleuten zu befähigen.

Claims (23)

  1. Verfahren, aufweisend: in einem ersten Speicherprozessor einer Vielzahl von Speicherprozessoren eines gemeinsam genutzten Speichersystems, wobei der erste Speicherprozessor mit einer gemeinsam genutzten Speichervorrichtung gekoppelt ist, die eine Vielzahl von Speichervorrichtungen aufweist: Empfangen einer ersten Konnektivitätsüberprüfung-Anforderung von einer I nitiatorvorrichtung; Übermitteln einer ersten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf die erste Konnektivitätsüberprüfung-Anforderung; und nach Übermitteln der ersten Bereitschaftsantwort: Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist; und gemäß dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, Übermitteln einer Nicht-Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf eine zweite Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung.
  2. Verfahren gemäß Anspruch 1, wobei die erste Konnektivitätsüberprüfung-Anforderung eine Testeinheit-Bereitschaft-Anforderung ist.
  3. Verfahren nach einem der Ansprüche 1-2, weiterhin aufweisend: in dem ersten Speicherprozessor, nach Übermitteln der Nicht-Bereitschaftsantwort: Erkennen, dass der erste Speicherprozessor wieder mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist; und, gemäß dem Erkennen, dass der erste Speicherprozessor wieder mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist, Übermitteln einer zweiten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf eine dritte Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung.
  4. Verfahren nach einem der Ansprüche 1-3, wobei die Initiatorvorrichtung gemäß dem Übermitteln der Nicht-Bereitschaftsantwort durch den ersten Speicherprozessor eine dritte Konnektivitätsüberprüfung-Anforderung an einen zweiten Speicherprozessor der Vielzahl der Speicherprozessoren des gemeinsam genutzten Speichersystems übermittelt, wobei der zweite Speicherprozessor mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist, wobei das Verfahren weiterhin Folgendes aufweist: in dem zweiten Speicherprozessor: Empfangen der dritten Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung; Übermitteln einer zweiten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf die dritte Konnektivitätsüberprüfung-Anforderung; und, nach Übermitteln der zweiten Konnektivitätsüberprüfung-Anforderung an die Initiatorvorrichtung, gemäß einer Leseanforderung, die von der Initiatorvorrichtung empfangen wird, das Ausführen eines Lesevorgangs, um Daten von der gemeinsam genutzten Speichervorrichtung zu lesen, und das Übermitteln der von der gemeinsam genutzten Speichervorrichtung gelesenen Daten an die Initiatorvorrichtung.
  5. Verfahren nach einem der Ansprüche 1-4, weiterhin aufweisend: an dem ersten Speicherprozessor, nach Übermitteln der ersten Bereitschaftsantwort an die Initiatorvorrichtung und vor dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist: gemäß einer Leseanforderung, die von der Initiatorvorrichtung empfangen wird, Ausführen eines Lesevorgangs, um Daten von der gemeinsam genutzten Speichervorrichtung zu lesen, und das Übermitteln der von der gemeinsam genutzten Speichervorrichtung gelesenen Daten an die Initiatorvorrichtung.
  6. Verfahren nach einem der Ansprüche 1-5, wobei Antworten auf Konnektivitätsüberprüfung-Anforderungen, die im ersten Speicherprozessor empfangen werden, von dem ersten Speicherprozessor gemäß einem Testeinheit-Bereitschaftsparameter bestimmt werden, der von dem ersten Speicherprozessor gespeichert wird.
  7. Verfahren gemäß Anspruch 6, weiterhin aufweisend, an dem ersten Speicherprozessor, Setzen des Testeinheit-Bereitschaftsparameters auf einen Nicht-Bereitschaftswert gemäß dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist.
  8. Verfahren nach einem der Ansprüche 1-7, wobei Kommunikationen zwischen der Vielzahl von Speicherprozessoren und der gemeinsam genutzten Speichervorrichtung SCSI- (Small Computer System Interface-) Befehle verwenden.
  9. Verfahren nach einem der Ansprüche 1-8, wobei Konnektivitätsüberprüfung-Anforderungen von dem Initiator an den ersten Speicherprozessor gemäß einer Angabe empfangen werden, dass der erste Speicherprozessor ein bevorzugter Speicherprozessor ist.
  10. Verfahren nach einem der Ansprüche 1-9, wobei die gemeinsam genutzte Speichervorrichtung eine nichtflüchtige Speichervorrichtung aufweist.
  11. Verfahren gemäß einem der Ansprüche 1-10, wobei die gemeinsam genutzte Speichervorrichtung eine Flash-Speichervorrichtung aufweist.
  12. Gemeinsam genutztes Speichersystem, aufweisend: eine Vielzahl von Prozessoren, wobei ein erster Speicherprozessor der Vielzahl von Speicherprozessoren mit einer gemeinsam genutzten Speichervorrichtung gekoppelt ist, die eine Vielzahl von Speichervorrichtungen aufweist, und wobei der erste Speicherprozessor eingerichtet ist zum: Empfangen einer ersten Konnektivitätsüberprüfung-Anforderung von einer Initiatorvorrichtung; Übermitteln einer ersten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf die erste Konnektivitätsüberprüfung-Anforderung; und nach Übermitteln der ersten Bereitschaftsantwort: Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist; und gemäß dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, Übermitteln einer Nicht-Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf eine zweite Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung.
  13. Gemeinsam genutztes Speichersystem gemäß Anspruch 12, wobei die erste Konnektivitätsüberprüfung-Anforderung eine Testeinheit-Bereitschaft-Anforderung ist.
  14. Gemeinsam genutztes Speichersystem gemäß einem der Ansprüche 12-13, wobei der erste Speicherprozessor weiterhin eingerichtet ist zum: nach Übermitteln der Nicht-Bereitschaftsantwort: Erkennen, dass der erste Speicherprozessor wieder mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist; und, gemäß dem Erkennen, dass der erste Speicherprozessor wieder mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist, Übermitteln einer zweiten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf eine dritte Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung.
  15. Gemeinsam genutztes Speichersystem gemäß einem der Ansprüche 12-14, wobei die Initiatorvorrichtung gemäß dem Übermitteln der Nicht-Bereitschaftsantwort durch den ersten Speicherprozessor eine dritte Konnektivitätsüberprüfung-Anforderung an einen zweiten Speicherprozessor der Vielzahl der Speicherprozessoren des gemeinsam genutzten Speichersystems übermittelt, wobei der zweite Speicherprozessor mit der gemeinsam genutzten Speichervorrichtung gekoppelt ist, wobei der gemeinsam genutzte Speicherprozessor eingerichtet ist zum: Empfangen der dritten Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung; Übermitteln einer zweiten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf die dritte Konnektivitätsüberprüfung-Anforderung; und, nach Übermitteln der zweiten Konnektivitätsüberprüfung-Anforderung an die Initiatorvorrichtung, gemäß einer Leseanforderung, die von der Initiatorvorrichtung empfangen wird, Ausführen eines Lesevorgangs, um Daten von der gemeinsam genutzten Speichervorrichtung zu lesen, und Übermitteln der von der gemeinsam genutzten Speichervorrichtung gelesenen Daten an die Initiatorvorrichtung.
  16. Gemeinsam genutztes Speichersystem gemäß einem der Ansprüche 12-15, wobei der erste Speicherprozessor weiterhin eingerichtet ist zum: nach Übermitteln der ersten Bereitschaftsantwort an die Initiatorvorrichtung und vor dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist: gemäß einer Leseanforderung, die von der Initiatorvorrichtung empfangen wird, Ausführen eines Lesevorgangs, um Daten von der gemeinsam genutzten Speichervorrichtung zu lesen, und Übermitteln der von der gemeinsam genutzten Speichervorrichtung gelesenen Daten an die Initiatorvorrichtung.
  17. Gemeinsam genutztes Speichersystem gemäß einem der Ansprüche 12-16, wobei Antworten auf Konnektivitätsüberprüfung-Anforderungen, die im ersten Speicherprozessor empfangen werden, von dem ersten Speicherprozessor gemäß einem Testeinheit-Bereitschaftsparameter bestimmt werden, der von dem ersten Speicherprozessor gespeichert wird.
  18. Gemeinsam genutztes Speichersystem, aufweisend: einen oder mehrere Prozessoren; Speicher; und eine oder mehrere in dem Speicher gespeicherter Programme, wobei das eine oder die mehreren Programme für die Ausführung durch einen oder mehrere Prozessoren eingerichtet sind und Anweisungen einschließen zum: Empfangen einer ersten Konnektivitätsüberprüfung-Anforderung von einer I nitiatorvorrichtung; Übermitteln einer ersten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf die erste Konnektivitätsüberprüfung-Anforderung; und nach Übermitteln der ersten Bereitschaftsantwort: Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist; und, gemäß dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, Übermitteln einer Nicht-Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf eine zweite Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung.
  19. Gemeinsam genutztes Speichersystem gemäß Anspruch 18, wobei: der eine oder die mehreren Prozessoren einen oder mehrere Prozessoren des ersten Speicherprozessors einer Vielzahl von Speicherprozessoren einschließen; der erste Speicherprozessor mit einer gemeinsam genutzten Speichervorrichtung gekoppelt ist, die eine Vielzahl von Speichervorrichtungen aufweist; und das eine oder die mehreren Programme ein Client-Schnittstellenmodul, das eingerichtet ist zum Empfangen einer oder mehrerer Konnektivitätsüberprüfung-Anforderungen von einer Initiatorvorrichtung und eingerichtet ist zum Übermitteln einer oder mehrerer Antworten an die Initiatorvorrichtung, und ein Schnittstellenmodul für gemeinsam genutzte Speicherung, das eingerichtet ist zum Erkennen, ob der erste Speicherprozessor von der gemeinsam genutzten Speichereinheit entkoppelt ist, einschließen.
  20. Gemeinsam genutztes Speichersystem gemäß einem der Ansprüche 18-19, wobei das eine oder die mehreren Programme weiterhin Anweisungen zum Ausführen des Verfahrens gemäß einem der Ansprüche 1-11 einschließen.
  21. Gemeinsam genutztes Speichersystem, aufweisend: einen ersten Speicherprozessor einer Vielzahl von Speicherprozessoren eines gemeinsam genutzten Speichersystems, wobei der erste Speicherprozessor mit einer gemeinsam genutzten Speichervorrichtung mit einer Vielzahl von Speichervorrichtungen gekoppelt ist, und wobei der erste Speicherprozessor Folgendes einschließt: Mittel zum Empfangen einer ersten Konnektivitätsüberprüfung-Anforderung von einer Initiatorvorrichtung; Mittel zum Übermitteln einer ersten Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf die erste Konnektivitätsüberprüfung-Anforderung; und Mittel, die nach dem Übermitteln der ersten Bereitschaftsantwort aktiviert werden, einschließlich: Mittel zum Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist; und Mittel, die gemäß dem Erkennen, dass der erste Speicherprozessor von der gemeinsam genutzten Speichervorrichtung entkoppelt ist, aktiviert werden, zum Übermitteln einer Nicht-Bereitschaftsantwort an die Initiatorvorrichtung als Antwort auf eine zweite Konnektivitätsüberprüfung-Anforderung von der Initiatorvorrichtung.
  22. Gemeinsam genutztes Speichersystem gemäß einem der Ansprüche 21, weiterhin aufweisend Mittel zum Ausführen des Verfahrens gemäß einem der Ansprüche 1-11.
  23. Nichtflüchtiges computerlesbares Speichermedium, das ein oder mehrere Programme speichert, die zur Ausführung durch einen oder mehrere Prozessoren eines gemeinsam genutzten Speichersystems eingerichtet sind, wobei das eine oder die mehreren Programme Anweisungen einschließen, die, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, das gemeinsam genutzte Speichersystem veranlassen, das Verfahren gemäß einem der Ansprüche 1-11 auszuführen.
DE112017006656.5T 2016-12-28 2017-09-06 Gemeinsam genutztes Datenspeichersystem mit hoher Verfügbarkeit und Hotplugging Active DE112017006656B4 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662439883P 2016-12-28 2016-12-28
US62/439,883 2016-12-28
US15/491,915 2017-04-19
US15/491,915 US10545678B2 (en) 2016-12-28 2017-04-19 Shared data storage system with high availability and hot plugging
PCT/US2017/050194 WO2018125312A1 (en) 2016-12-28 2017-09-06 Shared data storage system with high availability and hot plugging

Publications (2)

Publication Number Publication Date
DE112017006656T5 true DE112017006656T5 (de) 2019-09-26
DE112017006656B4 DE112017006656B4 (de) 2025-07-24

Family

ID=62630508

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017006656.5T Active DE112017006656B4 (de) 2016-12-28 2017-09-06 Gemeinsam genutztes Datenspeichersystem mit hoher Verfügbarkeit und Hotplugging

Country Status (4)

Country Link
US (1) US10545678B2 (de)
CN (1) CN109690467B (de)
DE (1) DE112017006656B4 (de)
WO (1) WO2018125312A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115756619B (zh) * 2022-11-28 2025-09-23 华勤技术股份有限公司 硬盘启动方法、装置、设备、介质及程序产品
US12164396B2 (en) * 2023-01-27 2024-12-10 Netapp, Inc. Methods and multi-site systems to provide recovery point objective (RPO) protection and automatically initiate realignment and reconfiguration of a protection configuration from the secondary storage site to the tertiary storage site upon primary storage site failure

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308534B2 (en) * 2005-01-13 2007-12-11 Hitachi, Ltd. Apparatus and method for managing a plurality of kinds of storage devices
US7870417B2 (en) * 2007-04-20 2011-01-11 International Business Machines Corporation Apparatus, system, and method for adapter card failover
US8166220B2 (en) * 2008-08-04 2012-04-24 Sandisk Il Ltd. Device for connection with a storage device and a host
JP2012524928A (ja) * 2009-08-10 2012-10-18 株式会社日立製作所 記憶制御装置及び省電力化方法
US8930620B2 (en) 2010-11-12 2015-01-06 Symantec Corporation Host discovery and handling of ALUA preferences and state transitions
US8819317B1 (en) * 2013-06-12 2014-08-26 International Business Machines Corporation Processing input/output requests using proxy and owner storage systems
WO2015008337A1 (ja) 2013-07-16 2015-01-22 富士通株式会社 情報処理装置、ポート制御プログラムおよびポート制御方法
US9703649B2 (en) 2014-12-18 2017-07-11 Infinidat Ltd. Automatic failover and failback between primary and secondary storage systems
US20160217049A1 (en) 2015-01-22 2016-07-28 Nimble Storage, Inc. Fibre Channel Failover Based on Fabric Connectivity

Also Published As

Publication number Publication date
CN109690467B (zh) 2022-08-02
US20180181321A1 (en) 2018-06-28
WO2018125312A1 (en) 2018-07-05
US10545678B2 (en) 2020-01-28
CN109690467A (zh) 2019-04-26
DE112017006656B4 (de) 2025-07-24

Similar Documents

Publication Publication Date Title
DE112013001421B4 (de) Auf Richtlinien beruhendes Verwalten von Speicherfunktionen in Datenreplikationsumgebungen
DE69715967T2 (de) Quorummechanismus in einem verteilten Zweiknotenrechnersystem
DE60319125T2 (de) Integrierte schaltung mit mehreren betriebsarten
DE69125330T2 (de) Verfahren zur Verordnung der Sicherheitsübertragung eines 1:1-redundanten Sklavenprozessorpaares
EP0057756B1 (de) Anordnung zum Datenaustausch in parallel arbeitenden Multi-Mikrorechnersystemen
DE69522255T2 (de) Rechnersystem mit hoher Verfügbarkeit
DE112013006643B4 (de) Speichersystem und steuerungsverfahren für speichersystem
DE112017004663T5 (de) Mehrfachverbinder-unterstützung für usb-c
DE102017104160B4 (de) Kollisionserkennung für Slave-Speichervorrichtungen
DE112006003598T5 (de) Fehlertolerantes Booten in Multiprozessorsystemen
DE112012005222T5 (de) Halbleiter-Datenspeicherverwaltung
DE102017121465B4 (de) Datenprotokoll zum verwalten von peripheriegeräten
DE202012012797U1 (de) USB-Vorrichtung, Kommunikationssystem und Hostvorrichtung
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank
DE102010013349A1 (de) Computersystem und Verfahren zum Vergleichen von Ausgangssignalen
EP2163979A2 (de) Anschlussvorrichtung zum Anschluss einer Mehrzahl von Peripheriegeräten und Betriebsverfahren
DE112007000688B4 (de) Fehlerverwaltungstopologien
DE112019002138T5 (de) Automatische usb-host-erkennung und port-konfiguration
DE102022107800A1 (de) Booten und verwenden eines einzelnen cpu-sockels als partitionierte multi-cpu-plattform
DE112017006889T5 (de) Monotone Transaktionen in einer Multimasterdatenbank mit lose verbundenen Knoten
DE112013007469B4 (de) Kommunikationssystem, Standby-Vorrichtung, Kommunikationsverfahren, und Standby-Programm
DE112017006656T5 (de) Gemeinsam genutztes Datenspeichersystem mit hoher Verfügbarkeit und Hotplugging
DE102013009364B4 (de) Verfahren und System zur Erkennung von latenten Fehlern in Mikrocontrollern
DE102011017634A1 (de) Signalleitung zum Anzeigen eines Schreibfehlers in einem Speicher
DE10392810T5 (de) System und Verfahren zum Filtern von Prozessoren nach Integrität während früher Firmware für eine Architektur mit aufgeteilter Wiederherstellung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0003060000

Ipc: G06F0015167000

R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE

Representative=s name: KIPA AB, SE

R081 Change of applicant/patentee

Owner name: SANDISK TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US

Free format text: FORMER OWNER: SANDISK TECHNOLOGIES LLC, PLANO, TEX., US

Owner name: WESTERN DIGITAL TECHNOLOGIES, INC. (N.D.GES.D., US

Free format text: FORMER OWNER: SANDISK TECHNOLOGIES LLC, PLANO, TEX., US

R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE

Representative=s name: KIPA AB, SE

R082 Change of representative

Representative=s name: MURGITROYD GERMANY PATENTANWALTSGESELLSCHAFT M, DE

R081 Change of applicant/patentee

Owner name: SANDISK TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US

Free format text: FORMER OWNER: WESTERN DIGITAL TECHNOLOGIES, INC. (N.D.GES.D. STAATES DELAWARE), SAN JOSE, CA, US

Owner name: SANDISK TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US

Free format text: FORMER OWNER: WESTERN DIGITAL TECHNOLOGIES, INC. (N.D.GES.D.STAATES DELAWARE), SAN JOSE, CA, US

R016 Response to examination communication
R018 Grant decision by examination section/examining division