DE112017006656T5 - Gemeinsam genutztes Datenspeichersystem mit hoher Verfügbarkeit und Hotplugging - Google Patents
Gemeinsam genutztes Datenspeichersystem mit hoher Verfügbarkeit und Hotplugging Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4081—Live connection to bus, e.g. hot-plugging
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality 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
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 Speichersystems100 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 Speichersystem100 eine Vielzahl von Prozessoren ein, einschließlich Speicherprozessor120-1 und Speicherprozessor120-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/Client110 (hierin als Initiator110 bezeichnet), gekoppelt. In einigen Ausführungsformen schließt der Initiator110 eine oder mehrere Speicherprozessorschnittstellen, wie beispielsweise die Speicherprozessorschnittstellen112-1 und112-2 , ein, die für Kommunikationen zwischen dem Initiator110 und der Vielzahl von Prozessoren120 verwendet werden. In einigen Ausführungsformen ist die Vielzahl von Prozessoren mit einer gemeinsam genutzten Speichereinrichtung, wie beispielsweise der gemeinsam genutzten Speichervorrichtung130 , gekoppelt. In einigen Ausführungsformen schließt die gemeinsam genutzte Speichervorrichtung130 eine Vielzahl von Speichervorrichtungen134-1 ,134-2 bis134 n und einen oder mehrere gemeinsam genutzte Speicher-Controller ein, wie gemeinsam genutzte Speicher-Controller132-1 und132-2 , die für Kommunikationen zwischen der Vielzahl von Speicherprozessoren120 und der Vielzahl von Speichervorrichtungen134 verwendet werden. In einigen Ausführungsformen schließt die gemeinsam genutzte Speichervorrichtung130 eine oder mehrere nichtflüchtige Speichervorrichtungen ein (z. B. sind die Speichervorrichtungen134-1 ,134-2 bis134 nichtflüchtige Speichervorrichtungen). In einigen Ausführungsformen schließt die gemeinsam genutzte Speichervorrichtung130 eine oder mehrere Flash-Speichervorrichtungen ein (z. B. sind die Speichervorrichtungen134-1 ,134-2 bis134 Flash-Speichervorrichtungen). - In einigen Ausführungsformen schließt der Speicherprozessor
120-1 eine Client-Schnittstelle122-1 zum Kommunizieren mit einer Client-Vorrichtung, wie beispielsweise dem Initiator110 . In einigen Ausführungsformen ist der Speicherprozessor120-1 über die Client Schnittstelle122 -1 mit dem Initiator110 gekoppelt. In einigen Ausführungsformen verwenden die Kommunikationen zwischen dem Speicherprozessor120-1 und dem Initiator110 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 Speicherschnittstelle128-1 zum Kommunizieren mit einer gemeinsam genutzten Speichervorrichtung, wie beispielsweise der gemeinsam genutzten Speichervorrichtung130 . In einigen Ausführungsformen ist der Speicherprozessor120-1 über die gemeinsam genutzte Speicherschnittstelle128-1 mit der gemeinsam genutzten Speichervorrichtung130 gekoppelt. In einigen Ausführungsformen verwenden die Kommunikationen zwischen dem Speicherprozessor120 -1 und der gemeinsam genutzten Speichereinrichtung130 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-Verwaltungsmodul126-1 ein. In einigen Ausführungsformen überwacht das Hotplug-Verwaltungsmodul126-1 die Konnektivität zwischen dem Speicherprozessor120-1 und der gemeinsam genutzten Speichervorrichtung130 . In einigen Ausführungsformen schließt der Speicherprozessor120-1 eine oder mehrere Verarbeitungseinheiten124-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 Prozessor120 -1 oder einer Komponente des Speicherprozessors120 , wie beispielsweise dem Hotplug-Verwaltungsmodul126-1 ). In einigen Ausführungsformen teilen sich eine oder mehrere Komponenten eine oder mehrere CPUs124-1 im Rahmen der Funktion des Speicherprozessors120 -1 und in einigen Fällen auch darüber hinausgehend. In einigen Ausführungsformen verwalten die CPUs124-1 die Kommunikation zum und vom Speicherprozessor120-1 über die Client-Schnittstelle122-1 und/oder die gemeinsam genutzte Speicherschnittstelle128-1 . - In einigen Ausführungsformen schließt der Speicherprozessor
120-2 ähnliche Elemente wie die oben unter Bezugnahme auf den Speicherprozessor120-1 beschriebenen. Die Speicherprozessoren120-1 und/oder120-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 Speicherprozessors120-1 oder120-2 (nachfolgend Speicherprozessor120 ) gemäß einigen Ausführungsformen veranschaulicht. Der Prozessor120 schließt typischerweise einen Speicher oder mehrere Verarbeitungseinheiten124-1 zum Ausführen von Modulen, Programmen und/oder Anweisungen, die in Speicher206 gespeichert sind, und dadurch Ausführen von Verarbeitungsvorgängen; Speicher206 (hierin gelegentlich als Controller-Speicher bezeichnet); und ein oder mehrere Kommunikationsbusse208 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 in1 dargestellten, ist der Speicherprozessor120 über Kommunikationsbusse208 mit dem Initiator110 und der gemeinsam genutzten Speichervorrichtung130 gekoppelt. Es ist anzumerken, dass die in2 dargestellten Komponenten abhängig von der Konfiguration eines bestimmten gemeinsam genutzten Speichersystems variieren können und dass die in2 gezeigten Darstellungen, die gemäß1 eingerichtet sind, lediglich nicht einschränkende Beispiele sind. Der Speicher206 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 Speicher206 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 Speicher206 , oder alternativ die nichtflüchtige(n) Speichervorrichtungen im Speicher206 , ein nichtflüchtiges computerlesbares Speichermedium ein. In einigen Ausführungsformen speichert der Speicher206 , oder das computerlesbare Speichermedium von Speicher206 , 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 Initiator110 , verwendet wird; in einigen Ausführungsformen weist die Client-Schnittstelle122-1 ein SCSI-Zielmodul218 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 Speichervorrichtung130 , verwendet wird; - • Konfigurationsinformationen
212 , die zum Speichern von Informationen verwendet werden, die zum Einrichten des Speicherprozessors120 verwendet werden, und die Folgendes einschließen können:- o Testeinheit-Bereitschaftsparameter
214 , der zum Anzeigen eines Status des Speicherprozessors120 verwendet wird, wie beispielsweise ob der Speicherprozessor120 bereit ist, Befehle vom Initiator110 zu verarbeiten; und
- o Testeinheit-Bereitschaftsparameter
- • gemeinsam genutzte Speichervorrichtungen
128-1 , die zum Kommunizieren mit anderen Komponenten verwendet wird, wie beispielsweise mit der gemeinsam genutzten Speichervorrichtung130 ; in einigen Ausführungsformen schließt die gemeinsam genutzte Speicherschnittstelle128-1 ein SCSI-Initiatormodul220 ein, das Kommunikationen mit der gemeinsam genutzten Speichervorrichtung130 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 Speicher206 eine Teilgruppe der vorstehend identifizierten Module und Datenstrukturen speichern. Weiterhin kann Speicher206 zusätzliche vorstehend nicht beschriebene Module und Datenstrukturen speichern. In einigen Ausführungsformen stellen die im Speicher206 oder dem computerlesbaren Speichermedium von Speicher206 gespeicherten Programme, Module und Datenstrukturen Anweisungen für die Implementierung von entsprechenden Vorgängen in den nachstehend unter Bezugnahme auf3A-3B und4 beschriebenen Verfahren bereit. - Obwohl
2 den Speicherprozessor120-1 zeigt, ist2 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 Speicherprozessors120-1 in dem Speicherprozessor120-1 oder dem Speicherprozessor120-2 des gemeinsam genutzten Speichersystems100 , implementiert,1 . -
3A veranschaulicht eine beispielhafte Ablaufdiagrammdarstellung eines Kommunikationsverfahrens300 in einem gemeinsam genutzten Speichersystem ohne Hotplugging-Unterstützung gemäß einigen Ausführungsformen. Zur Vereinfachung der Erläuterung beschreibt das Folgende das Verfahren300 , wie es von einem ersten SpeicherprozessorA (z. B. Speicherprozessor120-1 ,1 ), einem zweiten SpeicherprozessorB (z. B. Speicherprozessor120-2 ,1 ) und einem Initiator (z. B. Initiator110 ,1 ), der operativ mit dem Speicherprozessor A und dem SpeicherprozessorB 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 SpeicherprozessorA (z. B. Speicherprozessor120-1 ,1 ) und SpeicherprozessorB (z. B. Speicherprozessor120-2 ) beide mit einer gemeinsam genutzten Speichereinrichtung (z. B. der gemeinsam genutzten Speichervorrichtung130 ,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 SpeicherprozessorA eine Bereitschaftsantwort an den Initiator. - Nach dem Übermitteln der Bereitschaftsantwort (
304 ) empfängt (306 ) der SpeicherprozessorA eine Anforderung von Report Target Port Groups (RTPG) vom Initiator. Als Antwort darauf übermittelt (308 ) der SpeicherprozessorA ein Präferenzindikator- (PREF) Bit mit einem auf „1“ gesetzten Wert, was angibt, dass der SpeicherprozessorA 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 SpeicherprozessorA 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 SpeicherprozessorA von der gemeinsam genutzten Speichervorrichtung getrennt, sodass der SpeicherprozessorA die Kommunikation mit der gemeinsam genutzten Speichervorrichtung verliert. - Während der Speicherprozessor
A von der gemeinsam genutzten Speichervorrichtung getrennt ist, übermittelt (318 ) der SpeicherprozessorA 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 SpeicherprozessorB anstelle des SpeicherprozessorsA wechselt, um auf die gemeinsam genutzte Speichervorrichtung zuzugreifen. Dementsprechend übermittelt (322 ) der Initiator eine Leseanforderung an den SpeicherprozessorB . 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 SpeicherprozessorA . Als Antwort sendet (328 ) der SpeicherprozessorA eine Bereitschaftsantwort an den Initiator, obwohl der SpeicherprozessorA immer noch von der gemeinsam genutzten Speichervorrichtung getrennt ist. Dementsprechend übermittelt (330 ) der Initiator eine zweite RTPG-Anforderung an den SpeicherprozessorA und als Antwort sendet der SpeicherprozessorA (erneut) das PREF-Bit mit einem auf „1“ gesetzten Wert, was angibt, dass der SpeicherprozessorA der bevorzugte Speicherprozessor ist. - Wenn der Speicherprozessor
A eine Bereitschaftsantwort übermittelt und das PREF-Bit angibt, dass der SpeicherprozessorA der bevorzugte Speicherprozessor ist, führt (334 ) der Initiator einen Failback-Vorgang aus, um zum SpeicherprozessorA zurückzuschalten, um auf die gemeinsam genutzte Speichervorrichtung zuzugreifen. Dementsprechend übermittelt (336 ) der Initiator eine Leseanforderung an den SpeicherprozessorA . 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 Verfahrens301 zur verbesserten Kommunikation in einem gemeinsam genutzten Speichersystem gemäß einigen Ausführungsformen. Unter Bezugnahme auf das in1 abgebildete gemeinsam genutzte Speichersystem werden in einigen Ausführungsformen einige der Vorgänge (oder alternativ Schritte) des Verfahrens301 zumindest teilweise in einem Speicherprozessor (z. B. Speicherprozessor120-1 ,1 ) oder in einer oder mehreren Komponenten des Speicherprozessors (z. B. Client-Schnittstelle122-1 , Hotplug-Verwaltungsmodul126-1 und/oder gemeinsam genutzte Speicherschnittstelle128-1 ,1 ) ausgeführt. In einigen Ausführungsformen wird das Verfahren301 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 Speicherprozessor120-1 (1 ), ausgeführt werden. - In einigen Ausführungsformen werden einige der Vorgänge des Verfahrens
301 bei einem Initiator(z. B. Initiator110 ,1 ), der operativ mit dem Speicherprozessor gekoppelt ist, und/oder bei einer gemeinsam genutzten Speichervorrichtung (z. B. der gemeinsam genutzten Speichervorrichtung130 ,1 ), die operativ mit dem Speicherprozessor gekoppelt ist, ausgeführt, und andere Vorgänge des Verfahrens301 werden bei dem Speicherprozessor ausgeführt. In einigen dieser Ausführungsformen wird das Verfahren301 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 Verfahrens301 zumindest teilweise von einem Hotplug-Verwaltungsmodul (z. B. dem Hotplug-Verwaltungsmodul126-1 ,2 ) und in einigen Fällen unter Verwendung einer Client-Schnittstelle (z. B. Client-Schnittstelle122-1 ,2 ) und einer gemeinsam genutzten Speicherschnittstelle (z. B. gemeinsam genutzte Speicherschnittstelle128-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 Speicherprozessor120-1 ,1 ) und einem Initiator (z. B. Initiator110 ,1 ), der operativ mit dem Speicherprozessor gekoppelt ist, ausgeführt wird. In dem in3B gezeigten Beispiel verwenden Kommunikationen zwischen dem Speicherprozessor120-1 und dem Initiator110 SCSI- (Small Computer Systems Interface-) Befehle. Dementsprechend ist der Speicherprozessor mit dem Initiator über ein SCSI-Zielmodul218 (oder allgemeiner eine Client-Schnittstelle, wie beispielsweise die Client-Schnittstelle122-1 ,1 ) an dem Speicherprozessor120 gekoppelt, der für Kommunikationen mit dem Initiator verwendet wird (z. B. ist der Speicherprozessor230 ein SCSI-Ziel in Bezug auf den Initiator110 ). In einigen Ausführungsformen schließt der Initiator110 auf ähnliche Weise eine Schnittstelle (z. B. Speicherprozessorschnittstelle112-1 ,1 ) ein, die zur Kommunikation mit dem Speicherprozessor120 verwendet wird. Es sollte verstanden werden, dass das Verfahren310 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 Verfahrens301 verwendet. - Das Verfahren
301 beginnt mit dem Speicherprozessor (z. B. dem Speicherprozessor120-1 ,1 ), der auch operativ mit einer gemeinsam genutzten Speichervorrichtung (z. B. der gemeinsam genutzten Speichervorrichtung130 ,1 ) gekoppelt ist. In dem in3B 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 Speicherschnittstelle128-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-Controller132-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 Initiator110 . 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-Zielmodul218 ) Konfigurationsinformationen (z. B. Konfigurationsinformationen212 ,2 ), die einen Testeinheit-Bereitschaftsparameter einschließen (z. B. Testeinheit-Bereitschaftsparameter214 ,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-Initiatormodul220 oder der gemeinsam genutzten Speicherschnittstelle128-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-Initiatormodul220 zum Lesen von Daten aus der gemeinsam genutzten Speichervorrichtung). Der Speicherprozessor (z. B. das SCSI-Initiatormodul220 ) empfängt (364 ) die von der gemeinsam genutzten Speichervorrichtung gelesenen Daten und übermittelt (z. B. unter Verwendung des SCSI-Zielmoduls218 (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-Initiatormodul220 , dass der gemeinsam genutzte Speicher getrennt ist, und meldet (372 ) die Trennung dem Hotplug-Verwaltungsmodul126 -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-Parameters214 , der in den Konfigurationsinformationen212 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 Vorgang374 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 auf4 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-Initiatormodul220 , dass der gemeinsam genutzte Speicher wieder verbunden ist, und meldet (382 ) die Wiederverbindung dem Hotplug-Verwaltungsmodul126-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-Parameters214 , der in den Konfigurationsinformationen212 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 Vorgang384 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 Verfahren301 in Reaktion auf die Leseanforderung wie oben mit Bezug auf die Vorgänge360 ,362 ,364 ,366 und368 beschrieben fort. Der Kürze halber werden diese Details hier weder dargestellt noch wiederholt. -
4 veranschaulicht eine konzeptionelle Ablaufdiagrammdarstellung eines Verfahrens400 zur verbesserten Kommunikation in einem gemeinsam genutzten Speichersystem gemäß einigen Ausführungsformen. Unter Bezugnahme auf das in1 abgebildete gemeinsam genutzte Speichersystem werden in einigen Ausführungsformen einige der Vorgänge (oder alternativ Schritte) des Verfahrens400 zumindest teilweise in einem ersten Speicherprozessor (z. B. Speicherprozessor120-1 ,1 ) oder in einer oder mehreren Komponenten des ersten Speicherprozessors (z. B. Client-Schnittstelle122-1 , Hotplug-Verwaltungsmodul126-1 und/oder gemeinsam genutzte Speicherschnittstelle128-1 ,1 ) ausgeführt. In einigen Ausführungsformen wird das Verfahren400 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 Speicherprozessor120-1 (1 ), ausgeführt werden. In einigen Ausführungsformen werden einige der Vorgänge des Verfahrens400 zumindest teilweise in einem zweiten Speicherprozessor (z. B. Speicherprozessor120-2 ,1 ) oder in einer oder mehreren Komponenten des zweiten Speicherprozessors (z. B. Client-Schnittstelle122-2 , Hotplug-Verwaltungsmodul126-2 und/oder gemeinsam genutzte Speicherschnittstelle128-2 ,1 ) ausgeführt. In einigen Ausführungsformen wird das Verfahren400 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 Speicherprozessor120-2 (1 ), ausgeführt werden. - In einigen Ausführungsformen werden einige der Vorgänge des Verfahrens
400 bei einem Initiator(z. B. Initiator110 ,1 ), der operativ mit dem ersten und zweiten Speicherprozessor gekoppelt ist, und/oder bei einer gemeinsam genutzten Speichervorrichtung (z. B. der gemeinsam genutzten Speichervorrichtung130 ,1 ), die operativ mit dem ersten und zweiten Speicherprozessor gekoppelt ist, ausgeführt, und andere Vorgänge des Verfahrens301 werden bei einem jeweiligen Speicherprozessor ausgeführt. In einigen dieser Ausführungsformen wird das Verfahren400 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 Verfahrens400 zumindest teilweise von einem Hotplug-Verwaltungsmodul (z. B. dem Hotplug-Verwaltungsmodul126-1 , 2) und in einigen Fällen unter Verwendung von ausgeführt eine Client-Schnittstelle (z. B. Client-Schnittstelle122-1 , 2) und einer gemeinsam genutzten Speicherschnittstelle (z. B. gemeinsam genutzte Speicherschnittstelle128-1 ,2 ) eines jeweiligen ausgeführt. - Zur Vereinfachung der Erläuterung beschreibt das Folgende das Verfahren
400 , wie es bei einem Initiator (z. B. Initiator110 ,1 ) und einer Vielzahl von Speicherprozessoren, einschließlich eines ersten Speicherprozessors A (z. B. Speicherprozessor120-1 ,1 ) und eines zweiten Speicherprozessors B (z. B. Speicherprozessor120-2 ,1 ), ausgeführt wird. Das Verfahren beginnt mit dem Speicherprozessor (z. B. dem Speicherprozessor120-1 ,1 ), der mit einer gemeinsam genutzten Speichervorrichtung (z. B. der gemeinsam genutzten Speichervorrichtung130 ,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 Verfahren301 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-Bereitschaftsparameter214 ,2 ). Wie vorstehend unter Bezugnahme auf Vorgang352 von Verfahren301 (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. Konfigurationsinformationen212 ,2 ), die einen Präferenzindikator (z. B. Präferenzindikator216 ,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äferenzindikator216 ,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änge370 ,372 , und374 von Verfahren301 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änge380 ,382 , und384 von Verfahren301 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änge354 ,356 ,390 , und392 von Verfahren301 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 von3B und das Verfahren400 von4 die Failback- und Failover-Vorgänge umgehen, die hierin unter Bezugnahme auf das Verfahren300 von3A 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)
- 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.
- Verfahren gemäß
Anspruch 1 , wobei die erste Konnektivitätsüberprüfung-Anforderung eine Testeinheit-Bereitschaft-Anforderung ist. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - Verfahren nach einem der
Ansprüche 1 -9 , wobei die gemeinsam genutzte Speichervorrichtung eine nichtflüchtige Speichervorrichtung aufweist. - Verfahren gemäß einem der
Ansprüche 1 -10 , wobei die gemeinsam genutzte Speichervorrichtung eine Flash-Speichervorrichtung aufweist. - 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.
- Gemeinsam genutztes Speichersystem gemäß
Anspruch 12 , wobei die erste Konnektivitätsüberprüfung-Anforderung eine Testeinheit-Bereitschaft-Anforderung ist. - 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. - 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. - 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. - 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. - 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.
- 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. - 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 derAnsprüche 1 -11 einschließen. - 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.
- Gemeinsam genutztes Speichersystem gemäß einem der
Ansprüche 21 , weiterhin aufweisend Mittel zum Ausführen des Verfahrens gemäß einem derAnsprüche 1 -11 . - 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.
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)
| 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)
| 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 |
-
2017
- 2017-04-19 US US15/491,915 patent/US10545678B2/en active Active
- 2017-09-06 DE DE112017006656.5T patent/DE112017006656B4/de active Active
- 2017-09-06 CN CN201780055510.0A patent/CN109690467B/zh active Active
- 2017-09-06 WO PCT/US2017/050194 patent/WO2018125312A1/en not_active Ceased
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 |