DE112004002797T5 - Ausfallsicherung und Lastausgleich - Google Patents
Ausfallsicherung und Lastausgleich Download PDFInfo
- Publication number
- DE112004002797T5 DE112004002797T5 DE112004002797T DE112004002797T DE112004002797T5 DE 112004002797 T5 DE112004002797 T5 DE 112004002797T5 DE 112004002797 T DE112004002797 T DE 112004002797T DE 112004002797 T DE112004002797 T DE 112004002797T DE 112004002797 T5 DE112004002797 T5 DE 112004002797T5
- Authority
- DE
- Germany
- Prior art keywords
- data
- network adapter
- filter driver
- data path
- driver
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0673—Single storage device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
Abstract
Verfahren
in einem Computersystem zur Ausfallsicherung, wenn wenigstens einer
von einem ersten Netzwerkadapter und einem Datenpfad durch den ersten
Netzwerkadapter ausfällt,
wobei das Computersystem einen Filtertreiber aufweist, und wobei
der erste Netzwerkadapter mit einem zweiten Netzwerkadapter verbunden
ist, umfassend:
Empfangen einer Pfadausfall-Benachrichtigung mit dem Filtertreiber, daß wenigstens einer von dem ersten Netzwerkadapter und dem Datenpfad durch den ersten Netzwerkadapter ausgefallen ist; und
Umlenken von Paketen mit dem Filtertreiber, die an den ersten Netzwerkadapter gerichtet sind, an den zweiten Netzwerkadapter.
Empfangen einer Pfadausfall-Benachrichtigung mit dem Filtertreiber, daß wenigstens einer von dem ersten Netzwerkadapter und dem Datenpfad durch den ersten Netzwerkadapter ausgefallen ist; und
Umlenken von Paketen mit dem Filtertreiber, die an den ersten Netzwerkadapter gerichtet sind, an den zweiten Netzwerkadapter.
Description
- ALLGEMEINER STAND DER TECHNIK
- 1. GEBIET
- Die Offenbarung betrifft ein Verfahren, System, und Programm zur Ausfallsicherung und zum Lastausgleich.
- 2. BESCHREIBUNG DES STANDS DER TECHNIK
- Eine I_T-Verknüpfung ist ein Paar aus einer Initiator-Vorrichtung und einer Target-(Ziel)-Vorrichtung. Die Vorrichtungen, die Eingabe/Ausgabe-(I/O)-Operationen anfordern, werden als Initiatoren bezeichnet, und die Vorrichtungen, die diese Operationen durchführen, werden als Targets bezeichnet. Beispielsweise kann ein Host-Computer ein Initiator sein, und eine Speichervorrichtung kann ein Target sein. Das Target kann eine oder mehrere separate Speichervorrichtungen aufweisen.
- Ein Host-Bus-Adapter (HBA) ist eine Hardware-Vorrichtung, die das Betriebssystem und einen SCSI-(Small Computer System Interface)-Bus verbindet. Der HBA verwaltet die Übertragung von Daten zwischen dem Host-Computer und dem Kommunikationspfad. HBA-Gruppierung bezeichnet das Gruppieren von mehreren HBAs zu einer „Gruppe", wobei jeder HBA in einer Gruppe mit einem bestimmten Target verbunden ist und Daten an dieses lenken kann. HBA-Gruppen können auf einem iSCSI-(Internet Small Computer System Interface)- (IETF RFC 3347, veröffentlich im Februar 2003)-Portalgruppenkonzept aufbauen. iSCSI wurde im Februar 2003 von der IETF als Standard definiert. Ein Portalgruppenkonzept kann als eine Sammlung von Netzwerkportalen in einer iSCSI-Netzwerkeinheit beschrieben werden, die kollektiv die Fähigkeit zur Koordination einer Sitzung mit Verbindungen unterstützt, die diese Portale umspannen.
- HBA-Gruppierung kann mit SCSI-(Small Computer System Interface) (American National Standards Institute (ANSI) SCSI Controller Commands-2 (SCC-2) NCITS.318:1998)-Initiatoren benutzt werden, die auf den Betriebssystemen Windows® 2000, Windows® XP, oder Windows®.NET laufen. Die Strategie der Verbindungswiederherstellung einer I_T-Verknüpfung kann auf mehreren TCP-(Transmission Control Protocoll)-Verbindungen beruhen (Internet Engineering Task Force (IETF) Request for Comments (RFC) 793, veröffentlicht September 1981). Das heißt, Pakete von iSCSI-Initiatoren, die auf Windows®-Betriebssystemen laufen, werden über eine Vielzahl von Verbindungen zwischen einem Initiator und einem Target übertragen und/oder empfangen. Wenn in einem HBA eine Vielzahl von Verbindungen zu demselben Target hergestellt wird, kann ein Miniport-Treiber die Ausfallsicherung (d.h. das Umlenken von Paketen zu einer anderen Verbindung, wenn eine Verbindung ausfällt) und Lastausgleich (d.h. Ausgleichen der Last zwischen den HBA-Verbindungen) übernehmen.
- Allerdings besteht im Stand der Technik ein Bedarf an Ausfallsicherung und Lastausgleich für mehrere HBAs, von denen jeder eine oder mehrere Verbindungen zu demselben Target aufweisen kann.
- KURZE BESCHREIBUNG DER FIGUREN
- Bezugnehmend auf die Figuren, wobei gleiche Bezugszeichen jeweils entsprechende Bauteile bezeichnen, zeigt:
-
1A eine Rechnerumgebung, in der bestimmte Ausführungsformen implementiert sind; -
1B eine Rechnerumgebung, in der bestimmte spezifische Ausführungsformen implementiert sind; -
2A in einem Blockdiagramm Windows®-Speichervorrichtungs-Treiber mit einem optionalen Class-Lower-Filtertreiber; -
2B in einem Blockdiagramm einen Speichergerätetreiberstapel mit Fähigkeiten zur Ausfallsicherung und zum Lastausgleich, der in einer SCSI-Umgebung gemäß bestimmten Ausführungsformen benutzt werden kann; -
3 in einem Blockdiagramm ein Beispiel einer Anordnung eines Initiators mit Fähigkeiten zur Ausfallsicherung und zum Lastausgleich gemäß bestimmten Ausführungsformen; -
4A und4B Operationen zum Verbergen eines sekundären Speichergerätestapels gemäß bestimmten Ausführungsformen; -
5A ,5B und5C Operationen für einen Benachrichtigungsmechanismus gemäß bestimmten Ausführungsformen; und -
6A und6B Operationen zum Lastausgleich gemäß bestimmten Ausführungsformen. - GENAUE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
- In der folgenden Beschreibung wird Bezug genommen auf die begleitenden Figuren, die einen Teil der Beschreibung bilden, und die mehrere Ausführungsformen illustrieren. Es versteht sich, daß andere Ausführungsformen benutzt und strukturelle sowie operative Änderungen durchgeführt werden können, ohne von dem Umfang der Ausführungsformen abzuweichen.
-
1A zeigt eine Rechnerumgebung, in der Ausführungsformen implementiert werden können. Ein Computer102 dient als ein Initiator, während Datenspeicher104 als ein Target dient, um eine I T-Verknüpfung zu bilden. Computer102 weist eine oder mehrere Zentraleinheiten (CPUs)104 , einen flüchtigen Speicher106 , einen nicht flüchtigen Speicher108 (z.B. Magnetplattenlaufwerke, optische Laufwerke, ein Bandlaufwerk usw.), ein Betriebssystem110 (z.B. Windows®2000, Windows®XP, oder Windows®.NET), und einen oder mehrere Netzwerkadapter128 auf. In bestimmten Ausführungsformen ist jeder Netzwerkadapter ein Host-Bus-Adapter (HBA). Ein Filtertreiber112 , ein Miniport-Treiber114 , und ein Applikationsprogramm124 laufen außerdem in Speicher106 ab. - Der Computer
102 kann eine im Stand der Technik bekannte Rechnervorrichtung aufweisen, wie z.B. einen Hauptrechner, Server, Personalcomputer, Arbeitsplatzrechner, Laptop, Handheld-Computer usw. Jede CPU104 und jedes Betriebssystem110 können benutzt werden. Programme und Daten in Speicher106 können als Teil von Speicherverwaltungsoperationen in Speicher108 umgelagert werden. - Der Datenspeicher
140 weist eine oder mehrere logische Einheiten auf (d.h. „n" logische Einheiten, wobei „n" eine positive ganze Zahl sein kann, die in einigen Ausführungsformen unter128 liegt). Nur zum erleichterten Verständnis sind eine logische Einheit 0, eine logische Einheit 1, und eine logische Einheit „n" dargestellt. Jede logische Einheit kann als eine separate Speichervorrichtung beschrieben werden. Zusätzlich ist jeder logischen Einheit eine logische Einheitsnummer (Logical Unit Number – LUN) zugeordnet. In bestimmten Ausführungsformen ist eine HBA-Gruppe nach Target und LUN geordnet (d.h. jeder HBA, der Daten zu einer bestimmten LUN eines Targets lenken kann, ist einer HBA-Gruppe zugeordnet), und ein HBA kann verschiedenen HBA-Gruppen angehören. - Jeder Netzwerkadapter
128 weist mehrere Komponenten auf, die in der Hardware des Netzwerkadapters128 implementiert sind. Jeder Netzwerkadapter128 ist dazu in der Lage, Datenpakete über Netzwerk176 zu übertragen und zu empfangen, das ein lokales Netzwerk (Local Area Network – LAN), das Internet, ein Weitverkehrsnetzwerk (Wide Area Network – WAN), ein Speichernetzwerk (Storage Area Network – SAN), WiFi (Institute of Electrical and Electronics Engineers (IEEE) 802.11b, veröffentlicht am 16. September 1999), Funk-LAN (IEEE 802.11b, veröffentlicht am 16. September 1999) usw. umfassen kann. - Speichertreiber
120 laufen in Speicher106 ab und weisen für Netzwerkadapter128 spezifische Befehle auf, um mit dem Netzwerkadapter128 zu kommunizieren, und um eine Schnittstelle zwischen dem Betriebssystem110 und jedem Netzwerkadapter128 zu bilden. Ein Netzwerkadapter128 und Speichertreiber120 implementieren Logik, um iSCSI-Pakete zu verarbeiten, wobei ein SCSI-Befehl in dem iSCSI-Paket verpackt ist, und das iSCSI-Paket in einem TCP-Paket verpackt ist. Die Transportprotokollschicht packt die Ladung des empfangenen TCP-(Transmission Control Protocol) (Internet Engineering Task Force (IETF) Request for Comments (RFC)793 , veröffentlicht September 1981)-Pakets aus, und überträgt die Daten an den Speichertreiber120 , um z.B. zu dem Applikationsprogramm124 zurückzukehren. Außerdem überträgt ein Applikationsprogramm124 , das Daten überträgt, die Daten an den Speichertreiber120 , der die Daten dann an die Transportprotokollschicht leitet, um sie in einem TCP/IP-Paket zu verpacken, bevor sie über das Netzwerk176 übertragen werden. - Eine Bus-Steuerung
134 erlaubt es jedem Netzwerkadapter128 , auf einem Computerbus160 zu kommunizieren, der eine im Stand der Technik bekannte Busschnittstelle umfassen kann, wie z.B. einen PCI-(Peripheral Component Interconnet)-Bus, einen PCI-Expressbus, eine Industriestandardarchitektur (ISA), eine erweiterte ISA, eine Mikrokanalarchitektur (MCA) usw. Der Netzwerkadapter128 weist eine physikalische Kommunikationsschicht132 zum Implementieren einer MAC-(Media Access Control)-Funktion zum Senden und Empfangen von Netzwerkpaketen von und an entfernte Datenspeicher über ein Netzwerk176 . In bestimmten Ausführungsformen kann der Netzwerkadapter128 das Ethernet-Protokoll (IEEE-Standard 802.3, veröffentlicht am B. März 2002), Fibre Channel (IETF RFC 3643, veröffentlicht im Dezember 2003), oder jedes andere im Stand der Technik bekannte Kommunikationsprotokoll implementieren. - Der Speicher
108 kann eine interne Speichervorrichtung oder einen beigeordneten oder über Netzwerk zugänglichen Speicher umfassen. Programme in dem Speicher108 werden in den Speicher106 geladen und von der CPU104 ausgeführt. Eine Eingabevorrichtung150 wird benutzt, um Nutzereingaben an die CPU104 bereitzustellen, und kann eine Tastatur, eine Maus, einen Stylus-Stift, ein Mikrophon, einen berührungsempfindlichen Bildschirm, oder jeden anderen im Stand der Technik bekannten Aktivierungs- oder Eingabemechanismus umfassen. Eine Ausgabevorrichtung152 ist dazu in der Lage, Information, die von der CPU104 , oder einer anderen Komponente, wie z.B. einem Anzeigebildschirm, Drucker oder Speicher usw. übertragen werden, wiederzugeben. - In bestimmten Ausführungsformen kann der Computer neben der Speichervorrichtung
120 andere Vorrichtungen aufweisen. - Der Netzwerkadapter
128 kann zusätzliche Hardware-Logik zum Durchführen von zusätzlichen Operationen zum Verarbeiten von durch den Computer102 oder das Netzwerk176 empfangenen Paketen aufweisen. Außerdem kann der Netzwerkadapter128 eine Transportschicht-Entladungsmaschine (Transport Layer Offload Engine – TOE) implementieren, um die Transportprotokollschicht in dem Netzwerkadapter zu implementieren, und nicht im Speichertreiber120 des Computers, um die Arbeitslast des Computers102 weiter zu senken. - Alternativ kann die Transportschicht in dem Speichertreiber oder anderen Treibern
120 (die beispielsweise durch ein Betriebssystem bereitgestellt sind) implementiert sein. - Verschiedene Strukturen und/oder Puffer (nicht dargestellt) können in Speicher
106 angesiedelt sein, oder können in bestimmten Ausführungsformen in einer Speichereinheit angeordnet sein, die separat von dem Speicher106 ist. -
1B zeigt eine Rechnerumgebung, in der bestimmte spezifische Ausführungsformen implementiert sind. In1B weist Computer102 Speichertreiber120 auf, die mit Host-Bus-Adaptern (HBAs)128a ,128b , und128c zusammenwirken. Jeder HBA128a ,128b , und128c kann als ein Netzwerkadapter128 (1A ) beschrieben werden. Der Computer102 und die HBAs128a ,128b , und128c können als Initiator beschrieben werden, während der Datenspeicher140 als ein Target beschrieben werden kann. Der Datenspeicher zeigt logische Einheitsnummern (LUNs), die logische Einheiten darstellen. -
2A zeigt in einem Blockdiagramm einen Windows®-Speichergerätetreiberstapel200 mit einem optionalen Class-Lower-Filtertreiber. Der Speichergerätetreiberstapel200 weist ein Protokoll der höheren Schichten (Upper Layer Protocol – ULP)210 auf, das Pakete an einen Speicherklassetreiber212 überträgt und von diesem empfängt. Der Speicherklassetreiber212 kann Pakete an einen Class-Lower-Filtertreiber214 senden und von diesem empfangen. Der Class-Lower-Filtertreiber214 ist in bestimmten Ausführungsformen optional. Der Class-Lower-Filtertreiber214 kann Pakete an einen Anschlußtreiber216 senden und von diesem empfangen. Der Anschlußtreiber216 kommuniziert mit einem Miniport-Treiber218 . Der Miniport-Treiber218 ist dazu in der Lage, mit dem Class-Lower-Filtertreiber214 über Rückruf-Schnittstellen zu kommunizieren, die von Ausführungsformen vorgesehen werden. - Ausführungsformen sehen einen speziellen Filtertreiber vor, der auf dem Class-Lower-Filtertreiber
214 über dem Anschlußtreiber216 basiert, um eine Ausfallsicherung und einen Lastausgleich zwischen HBA-Kreuzverbindungen bereitzustellen. Der Filtertreiber bearbeitet HBA-Zusammenhangsveränderung und -Pfadsteuerung. Der Filtertreiber stellt auch die Paketverteilung bereit. Insbesondere erfaßt der Filtertreiber SCSI-Anfrageblock-(SCSI Request Block – SRB)-Pakete, die in den Eingabe/Ausgabe-Anfragepaketen (Input/Output Request Packers – IRPs) zwischen dem Speicherklassetreiber212 und dem Anschlußtreiber216 enthalten sind. In bestimmten Ausführungsformen ist der Filtertreiber als ein Low-Level-Class- Filtertreiber implementiert. Der Filtertreiber wird benachrichtigt, sobald ein Speichervorrichtungsvorgang erzeugt wird, und der Filtertreiber schließt sich dann an den Speichertreiberstapel200 unter dem Class-Lower-Filtertreiber214 an. -
2B zeigt in einem Blockdiagramm einen Speichervorrichtungs-Treiberstapel250 mit Fähigkeiten zur Ausfallsicherung und zum Lastausgleich, der in einer SCSI-Umgebung gemäß bestimmten Ausführungsformen benutzt werden kamt. Der Speichergerätetreiberstapel250 kann mit einem Windows®2000-, Windows®XP-, oder Windows®.NET-Betriebssystem benutzt werden. Der Speichergerätetreiberstapel250 weist ein Protokoll der höheren Schichten (ULP)260 auf, das IRPs an einen SCSI-Disk-Class-Treiber262 senden und von diesem empfangen kann. Der SCSI-Disk-Class-Treiber262 kann SRBs/IRPs an einen Lower-Level-Class-Filtertreiber264 senden und von diesem empfangen. Der Lower-Level-Class-Filtertreiber264 kann SRBs/IRPs an einen SCSI-Anschlußtreiber266 senden und von diesem empfangen. Der SCSI-Anschlußtreiber266 kommuniziert mit einem SCSI-Miniport-Treiber268 . Der SCSI-Miniport-Treiber268 ist dazu in der Lage, über Rückruf-Schnittstellen mit dem Lower-Level-Class-Filtertreiber264 zu kommunizieren. -
3 zeigt in einem Blockdiagramm ein Beispiel für die Anordnung eines Initiators mit Fähigkeiten zur Ausfallsicherung und zum Lastausgleich gemäß bestimmten Ausführungsformen. In3 kommunizieren Speicherklassefilter mit einem Filtertreiber, der mit einem Anschluß/Miniport-Treiber kommuniziert. Beispielsweise kommuniziert ein Speicherklassetreiber mit einem Filtertreiber mit Hilfe von Speicherklassetreiber1-Geräteobjekt310 und Filtertreiber1-Geräteobjekt312 , der Filtertreiber kommuniziert mit einem Anschluß/Miniport-Treiber mit Hilfe von Filtertreiber1-Geräteobjekt312 und Anschluß/Miniport-Treibergeräteobjekt316 ,314 . Ein Miniport-Treiber kommuniziert mit einem HBA mit vom Anschlußtreiber exportierten Programmroutinen. Jeder HBA weist Kommunikationspfade an ein oder mehrere Targets auf. Beispielsweise weist HBA1318 Kommunikationspfade zu Target1320 und Target2340 auf. HBA2338 weist Kommunikationspfade zu Target1320 und Target2340 auf. HBA3358 weist Kommunikationspfade zu Target2340 und Target3360 auf. Ausführungsformen sehen Ausfallsicherung und Lastausgleich für HBAs318 ,338 , und358 vor, von denen einige Verbindungen zu demselben Target aufweisen. In bestimmten Ausführungsformen basieren die vorgeschlagene Ausfallsicherung und der Lastausgleich auf HBA-Gruppierung, aufbauend auf einem iSCSI-Portalgruppenkonzept. - Wiederum ist in bestimmten Ausführungsformen eine HBA-Gruppe nach Target und LUN geordnet (d.h. jeder HBA, der Daten zu einer bestimmten LUN eines Target lenken kann, wird einer HBA-Gruppe zugeordnet), und ein HBA kann mehreren HBA-Gruppen angehören. Beispielsweise können Daten Datenpfade, zu denen Filtertreiber1-Geräteobjekt
213 , Filtertreiber4-Geräteobjekt332 , und Filtertreiber5-Geräteobjekt352 , zu derselben LUN (nicht dargestellt) in Target2340 passieren. Jeder dieser Datenpfade passiert jeweils einen unterschiedlichen HBA (HBA1318 , HBA2338 , bzw. HBA3358 ), und so sind HBA1318 , HBA2338 , und HBA3358 in einer HBA-Gruppe. Das heißt, für jeden HBA in der HBA-Gruppe (zur Ausfallsicherung) können Daten, die zu einer LUN in Target2340 gelenkt werden, durch jeden HBA in der HBA-Gruppe strömen (zur Ausfallsicherung) oder durch jeden der HBAs der HBA-Gruppe zugleich (zum Lastausgleich). Als ein weiteres Beispiel ist eine HBA-Gruppe aus durch HBA1318 und HBA2338 gebildet, da entsprechende Datenpfade durch HBA1318 und HBA2338 zu einer LUN (nicht dargestellt) in Target1320 führen. - Ausführungsformen sehen neue Rückruf-Schnittstellen zum Implementieren von Fähigkeiten zur Ausfallsicherung und zum Lastausgleich in einem Filtertreiber bereit.
- Die Ausfallsicherungsverfahren stellen eine hohe Verfügbarkeit von Kommunikationspfaden an ein Target bereit, wenn ein erster HBA oder Datenpfad durch den ersten HBA ausfällt (d.h., Pakete werden an einen zweiten HBA umgelenkt, der mit demselben Target verbunden ist). Zur Ausfallsicherung sehen Ausführungsformen ein Verbergen eines sekundären Speichergerätestapels und einen Benachrichtigungsmechanismus vor.
-
4A und4B zeigen Operationen für das Verbergen eines sekundären Speichergerätestapels gemäß bestimmten Ausführungsformen. Die Steuerung beginnt bei Block400 mit einem Speichergerätestapel, der für eine logische Einheit aufgebaut ist. In Block402 wird bestimmt, ob es sich um den ersten Speichergerätestapel für diese logische Einheit handelt. Wenn ja, geht die Verarbeitung auf Block404 über, und wenn nicht, geht die Verarbeitung auf Block406 über. Das heißt, wenn mehrere HBAs mit demselben Target verbunden sind, wird für jede SCSI-LUN des Targets für jeden der HBAs ein Speichergerätestapel erzeugt, um es dem Filtertreiber zu ermöglichen, SRBs für jeden HBA zu bearbeiten und umzuleiten. Wenn das Dateisystem auf jedem Speichergerätestapel angeordnet ist, der für dasselbe Target aufgebaut wird, könnte dies zu Synchronisierungsproblemen aufgrund mehrfacher Zugriffe auf denselben Speichergerätevorgang führen. Deshalb wird ein erster Speichergerätestapel, der für jede LUN aufgebaut wird, ein „primärer" Speichergerätestapel. Danach werden alle anderen Speichergerätestapel, die für die LUN gebaut werden, als „sekundäre" Speichergerätestapel behandelt. So ist in Block404 der Speichergerätestapel als ein primärer Speichergerätestapel ausgewiesen. In Block406 ist der Speichergerätestapel als ein sekundärer Speichergerätestapel ausgewiesen. - Beispielsweise ist in diesem Beispiel der Speichergerätestapel von Speicherklassetreiber1-Vorrichtungsobjekt
310 , Filtertreiber1-Geräteobjekt312 , Anschluß/Miniport-Geräteobjekt314 ,316 als ein primärer Speichergerätestapel ausgewiesen. Der Speichergerätestapel von Speicherklasse1a-Geräteobjekt330 , Filtertreiber4-Geräteobjekt332 , Anschluß/Miniport-Geräteobjekt334 ,336 ist in diesem Beispiel als sekundärer Speichergerätestapel ausgewiesen. In diesem Beispiel ist der Speichergerätestapel von Speicherklasse1a-Geräteobjekt350 , Filtertreiber4-Geräteobjekt352 , Anschluß/Miniport-Geräteobjekt354 ,356 als sekundärer Speichergerätestapel ausgewiesen. Der Filtertreiber ermöglicht den Dateisystemaufbau auf einem primären Speichergerätestapel (d.h. Speichergerätestapel310 ,213 ,314 , und316 ), und verhindert, daß das Dateisystem auf den anderen sekundären Speichergerätestapeln aufbaut (z.B. Speichergerätestapel330 ,332 ,334 , und336 , und Speichergerätestapel350 ,352 ,354 , und356 ). Ebenso ist der Speichergerätestapel, der mit dem Speicherklassetreiber2-Geräteobjekt startet, ein primärer Speichergerätestapel, während der Speichergerätestapel, der mit dem Speicherklassetreiber2a-Geräteobjekt startet, ein sekundärer Speichergerätestapel ist. Durch das Verbergen des sekundären Speichergerätestapels werden Daten durch die primären Speichergerätestapel gelenkt, und nicht durch die sekundären Speichergerätestapel. - In
4B beginnt die Steuerung bei Block420 mit einem Paket, das mit Erfolgsstatus von einem sekundären Speichergerätestapel abgeschlossen wurde. In Block422 ändert der Filtertreiber den Erfolgsstatus in einen Fehlerstatus ab. In Block424 stellt der Filtertreiber den Sense-Key-Wert auf nicht bereit ein. In Block426 stellt der Filtertreiber den Sense-Code ein, um anzuzeigen, daß kein Medium in der Speichervorrichtung vorhanden ist. Um also zu verhindern, daß das Dateisystem auf den sekundären Speichergerätestapel aufbaut, ändert der Filtertreiber in einigen Ausführungsformen den Status von abgeschlossenen SRBs von den sekundären Speichergerätestapeln mit Erfolgsstatus auf Fehlerstatus (z.B. SRB_STATUS_FEHLER), stellt einen Sense-Key-Wert auf SCSI_SENSE_NICHT_BEREIT, und stellt einen zusätzlichen Sense-Code auf SCSI_ADSENSE_KEIN_MEDIUM_IN_VORRICHTUNG um. -
5A ,5B , und5C zeigen Operationen für einen Benachrichtigungsmechanismus gemäß bestimmten Ausführungsformen. Der Filtertreiber und der Miniport-Treiber implementieren ein Protokoll zum gegenseitigen Zusammenwirken. -
5A zeigt Operationen für eine Ausfallsicherungsverarbeitung, die in einem Miniport-Treiber implementiert ist, gemäß bestimmten Ausführungsformen. In5A beginnt die Steuerung bei Block500 mit dem Empfang eines Pakets für einen bestimmten HBA-Datenpfad an dem Miniport-Treiber. Der Begriff „HBA-Datenpfad" kann als ein Datenpfad von einem Miniport über einen HBA zu einem Target beschrieben werden. Ein Typ von Paket kann ein SRB sein. In Block502 geht dann, wen der HBA-Datenpfad ausgefallen ist, die Verarbeitung auf Block504 über, und anderenfalls auf Block508 . - In Block
504 benutzt der Miniport-Treiber das Benachrichtigungsrückrufverfahren, um den Filtertreiber zu benachrichtigen, daß der HBA-Datenpfad ausgefallen ist. Optional stellt der Miniport-Treiber einen neuen HBA-Datenpfadbezeichner an den Filtertreiber bereit, und der Filtertreiber leitet Pakete auf den neuen HBA-Datenpfad um. Beispielsweise kann der Miniport für die HBA-Gruppe, die durch HBA1318 , HBA2338 , und HBA3358 gebildet wird, bei Ausfall von HBA1318 einen neuen HBA-Datenpfad spezifizieren, der entweder HBA2338 oder HBA3358 enthält. In bestimmten Ausführungsformen kann ein Zeiger für das Benachrichtigungsrückrufverfahren, und ein Zeiger für die Filtervorrichtungserweiterung für einen aktuellen HBA-Datenpfad über eine I/O-Steuerung (IOCTL) in einem Gerätehinzufügungsverfahren des Filtertreibers an den Miniport-Treiber gesendet werden. In bestimmten Ausführungsformen benachrichtigt der Miniport-Treiber, wenn ein HBA-Datenpfad ausfällt, den Filtertreiber von dem Ausfall des HBA-Datenpfads, indem das Benachrichtigungsrückrufverfahren mit einem Statusparameter und mit einem Zeigerparameter aufgerufen wird, wobei der Zeiger auf die Geräteerweiterung des Filtertreibers zeigt, die dem aktuellen Pfad entspricht. - Der Miniport-Treiber schließt keine Pakete mit Fehlerstatus ab, da dies den Anschlußtreiber dazu veranlassen kann, eine SRB-Warteschlange einzufrieren, oder eine Bus-Rücksetzung zu initiieren. Statt dessen schließt in Block
506 der Miniport-Treiber die ausstehenden (d.h. nicht abgeschlossenen) und neu empfangenen Pakete für den ausgefallenen HBA-Datenpfad mit einem Erfolgsstatus ab. In Block508 sendet der Miniport-Treiber das Paket über den HBA-Datenpfad an das Target, da der HBA-Datenpfad nicht ausgefallen ist. - Wenn beispielsweise ein SRB an Miniport
316 empfangen wird, um an HBA1318 gelenkt zu werden, und wenn HBA1318 ausgefallen ist, schließt der Miniport-Treiber316 alle ausstehenden SRBs für HBA1318 als Teil des Protokolls ab, um den Filtertreiber312 zu benachrichtigen, die SRBs an einen anderen HBA umzuleiten. Der Filtertreiber312 kann die SRBs beispielsweise an HBA2338 oder HBA3358 umleiten. -
5B zeigt Operationen, die in einem Filtertreiber zur Ausfallsicherungsverarbeitung implementiert sind, gemäß bestimmten Ausführungsformen. Die Steuerung beginnt bei Block510 , wobei der Filtertreiber eine Benachrichtigung zum Ausfall eines HBA-Datenpfads empfängt. In Block512 geht, wenn ein neuer HBA-Datenpfadbezeichner von dem Miniport-Treiber spezifiziert wird, die Verarbeitung auf Block514 über, und anderenfalls auf Block518 . In Block514 ändert der Filtertreiber den Status jedes Pakets von dem ausgefallenen Pfad, das abgeschlossen wird, vom Erfolgsstatus zum Beschäftigungsstatus ab. Diese Statusänderung veranlaßt den Klassetreiber dazu, die Pakete erneut auszustellen. Wenn die Pakete neu ausgestellt werden, behandelt der Filtertreiber sie als neue Anfragen, und leitet sie, wenn möglich, zu einem neuen Pfad um. - In Block
516 sendet der Filtertreiber Pakete, die von dem Klassetreiber nicht erfaßt wurden an den spezifizierten HBA-Datenpfad. In Block518 wählt der Filtertreiber einen neuen Pfad, da kein neuer Pfadbezeichner spezifiziert wurde. In bestimmten Ausführungsformen fährt der Filtertreiber, wenn nur ein Pfad in einer HBA-Gruppe vorhanden ist, fort, neue Pakete an den ausgefallenen HBA-Datenpfad zu senden (z.B. Arbeit im PATH_THROUGH-Modus). -
5C zeigt Operationen, die in einem Miniport-Treiber implementiert sind, wenn ein HBA gemäß bestimmten Ausführungsformen wiederhergestellt ist. Die Steuerung beginnt bei Block520 mit einem wiederhergestellten HBA-Datenpfad (z.B. wird ein HBA ans Netz gebracht, oder ein HBA oder Datenpfad durch diesen HBA, der zuvor ausgefallen war, ist wiederhergestellt). Wenn ein HBA-Datenpfad wiederhergestellt ist, benachrichtigt der Miniport-Treiber den Filtertreiber durch Aufrufen des Benachrichtigungsrückrufverfahrens (Block522 ). In bestimmten Ausführungsformen benachrichtigt der Miniport-Treiber den Filtertreiber von der HBA-Datenpfad-Wiederherstellung, indem er das Benachrichtigungsrückrufverfahren mit einem Statusparameter und mit einem Zeigerparameter aufruft, wobei der Zeiger auf die Geräteerweiterung des Filters zeigt, die dem aktuellen Pfad entspricht. Der Miniport-Treiber kam auch einen neuen Pfadbezeichner an den Filtertreiber leiten, an den der Filtertreiber neue Pakete umleiten soll. In Block524 geht, wenn ein neuer HBA-Datenpfad spezifiziert wurde, die Verarbeitung auf Block526 über, und anderenfalls auf Block528 . - Nach der Benachrichtigung zur Wiederherstellung sendet der Filtertreiber, wenn ein neuer HBA-Datenpfad spezifiziert wurde, die neuen Pakete an den neuen HBA-Datenpfad (Block
526 ). Wenn kein neuer HBA-Datenpfad spezifiziert wurde, fährt der Filtertreiber fort, die Datenpakete auf dem gegenwärtig aktiven Pfad zu senden. - Zusätzlich zur Ausfallsicherungsverarbeitung sehen Ausführungsformen einen Filtertreiber zum Ausgleich der I/O-Arbeitslast für eine Vielzahl von HBa-Datenpfaden vor, die eine Vielzahl von HBAs umspannen. Ausführungsformen stehen einen statischen Lastausgleich und einen dynamischen Lastausgleich vor.
-
6A und6B zeigen Operationen zum Lastausgleich gemäß bestimmten Ausführungsformen. Für den Lastausgleich weist jeder HBA-Datenpfad in einer HBA-Gruppe einen zugeordneten Wert auf, der als Lastausgleichanteil bezeichnet wird, und der einen Prozentsatz einer gesamten I/O-Arbeitslast darstellt, die der jeweilige HBA-Datenpfad bearbeiten kann. -
6A zeigt Operationen für einen statischen Lastausgleich gemäß bestimmten Ausführungsformen. Die Steuerung beginnt bei Block600 mit dem Empfang eines Datenpakets, das an den Filtertreiber übertragen werden soll. In Block602 bestimmt der Filtertreiber den Lastausgleichanteil, der jedem HBA-Datenpfad in der HBA-Gruppe zugeordnet ist. Für den statischen Lastausgleich können die Lastausgleichanteile manuell festgelegt werden, und beispielsweise in einem Windows®-Register gespeichert werden. Der Miniport-Treiber empfängt die Lastausgleichanteilswerte, und leitet diese mit Hilfe des Benachrichtigungsrückrufverfahrens an den Filtertreiber weiter. Beim Empfang der ermittelten Lastausgleichanteilswerte aktualisiert der Filtertreiber die Lastausgleichanteile mit neuen Werten. - In Block
604 bestimmt der Filtertreiber die gleitende Mittelwert-Datenlänge (MDL) der übertragenen Pakete für jeden HBA-Datenpfad (z.B. SCSI-Übertragungslänge der Pakete). In be stimmten Ausführungsformen kann der Lastausgleich auf der tatsächlichen Datenlänge übertragener Pakete basieren, und nicht auf der Anzahl von Paketen. In Block606 bestimmt der Filtertreiber eine Datenquote für jeden HBA-Datenpfad. In bestimmten Ausführungsformen ist die Datenquote für einen HBA-Datenpfad die MDL für den HBA-Datenpfad, multipliziert mit einem Verhältnis des Lastausgleichanteils für den HBA-Datenpfad und einem minimalen Wert eines Lastausgleichanteils in der HBA-Gruppe (d.h. Datenquote = MDL (Lastausgleichanteil/minimaler Lastausgleichanteil in der Gruppe). - In bestimmten Ausführungsformen wird MDL für jedes Paket oder jede Paketgruppe neu berechnet, während Datenquoten regelmäßig neu berechnet werden (z.B. nachdem eine bestimmte Anzahl von Paketen übertragen wurde). Die regelmäßigen Intervalle können durch ein Produkt der Zahl von HBA-Datenpfaden in der HBA-Gruppe, und durch einen einstellbaren Häufigkeits-Aktualisierungsfaktor bestimmt werden. Der Lastausgleichhäufigkeits-Aktualisierungsfaktor erlaubt das Einstellen des Lastausgleichs und erhöht die Leistung. Der Lastausgleichhäufigkeits-Aktualisierungsfaktor kann beispielsweise durch einen Systemadministrator eingestellt werden. Je höher die Häufigkeit der Aktualisierung von Datenquoten, desto niedriger die Differenz zwischen spezifizierten und tatsächlichen Lastausgleichanteilen. Auch können häufigere Aktualisierungen mehr Prozessorzeit in Anspruch nehmen.
- In Block
608 bestimmt der Filtertreiber eine maximale Anzahl von Kommandos für eine logische Einheit eines Target. In Block610 wählt der Filtertreiber einen HBA-Datenpfad, auf dem die Pakete gesendet werden, mit Hilfe eines Rundlaufverfahrens, wobei Pakete auf einem HBA-Datenpfad verschickt werden, bis eine Datenquote erreicht ist, oder eine maximale Anzahl von Kommandos für die logische Einheit eines Target erreicht ist. - Das heißt, für den statischen Lastausgleich kann ein Rundlaufverfahren benutzt werden. In bestimmten Ausführungsformen werden gültige HBA-Datenpfade für eine aktuelle HBA-Gruppe in einer doppelt verlinkten Liste für die Rundlaufoperation gesammelt. Dann werden die HBA-Datenpfade während der Lastausgleichsoperation mit Hilfe dieser Listen vertauscht. Das heißt, in bestimmten Ausführungsformen dauert das Senden von Paketen für einen bestimmten Pfad an, bis die Menge an übertragenen Daten die zuvor berechnete Datenquote für diesen HBA-Datenpfad erreicht, oder mit eine maximale Anzahl von SCSI-Kommandos für eine Target-LUN erreicht ist.
- Bei dem statischen Lastausgleich kann die tatsächliche Verteilung von Paketen auf den HBA-Datenpfaden von einer festgelegten Verteilung abweichen (d.h. von Lastausgleichanteilen, die z.B. durch einen Systemadministrator festgelegt wurden). Je kleiner die Differenz zwischen der tatsächlichen und der festgelegten Verteilung, desto höher die Qualität des statischen Lastausgleichs. Die festgelegten Lastausgleichanteilswerte beeinflussen die Leistung des statischen Lastausgleichs.
-
6B zeigt Operationen für einen dynamischen Lastausgleich gemäß bestimmten Ausführungsformen. Ein dynamischer Lastausgleich vermeidet Stauungen auf einem einzelnen HBA-Datenpfad, solange auf anderen Pfaden Bandbreite verfügbar ist, idem die I/O-Arbeitslast zwischen den Pfaden dynamisch angepaßt wird. Auf diese Weise bemüht sich der dynamische Lastausgleich um eine effizientere Nutzung einer verfügbaren Speicher/Netzwerk-Bandbreite. - Die Steuerung beginnt bei Block
620 , wobei der Filtertreiber ein Datenpaket empfängt. In Block622 bestimmt der Filtertreiber eine Datenübertragungsgeschwindigkeit für jeden HBA-Datenpfad in der HBA-Gruppe. In bestimmten Ausführungsformen wird die Datenübertragungsgeschwindigkeit für jeden HBA-Datenpfad als ein Verhältnis der insgesamt übertragenen Daten und der zum Übertragen der Daten verwendeten Gesamtzeit berechnet. Eine Aktualisierungsprogrammroutine bestimmt, wie oft die Übertragungsgeschwindigkeiten aktualisiert werden sollen. Ein einstellbarer Parameter für den dynamischen Lastausgleich ist ein Übertragungsgeschwindigkeits-Aktualisierungshäufigkeitsfaktor, der festlegt, wie oft die Aktualisierungsprogrammroutine aufgerufen werden soll. Der Übertragungsgeschwindigkeits-Aktualisierungshäufigkeitsfaktor kann anhand des spezifischen Verhaltens des Zustell-Subsystems eingestellt werden. - In Block
624 aktualisiert der Filtertreiber den Lastausgleichanteil für jeden HBA-Datenpfad. Lastausgleichanteile für jeden Pfad in der HBA-Gruppe können proportional zu ihrer Datenübertragungsgeschwindigkeit aktualisiert werden (d.h. die Datenübertragungsgeschwindigkeit für den ausgewählten HBA-Datenpfad geteilt durch die Datenübertragungsgeschwindigkeit der HBA-Gruppe). In Block626 wählt der Filtertreiber einen HBA-Datenpfad anhand der Lastausgleichanteile aus, auf dem das Paket gesendet werden soll. - Während der Arbeit im Ausfallsicherungs- und Lastausgleichsmodus deaktivieren HBA-Ausfälle ein oder mehrere HBA-Gruppenmitglieder. In Ausführungsformen arbeiten die verbleibenden HBA-Gruppenmitglieder weiter, und halten dasselbe Verhältnis zwischen Lastausgleichanteilen aufrecht, das festgelegt wurde.
- So sehen Ausführungsformen eine Kombination aus hoher Verfügbarkeit und statischem und dynamischem Lastausgleich vor. Ein Software-Modul, das die Lösung implementiert, ist relativ klein, und verursacht minimale Kosten für das System. Ausführungsformen sehen die Fähigkeit vor, die Funktion, die von Ausführungsformen der Lösung bereitgestellt wird, schnell und leicht ein- und auszuschalten, indem der Filtertreiber in den Gerätestapel eingeführt wird bzw. wieder aus diesem entfernt wird. Ausführungsformen sind mit verschiedenen Plattformen kompatibel (z.B. Windows-Plattformen, entweder 32-Bit oder 64-Bit). Auch sind Ausführungsformen auf jedes SCSI- und/oder iSCSI-basierte SAN- und/oder NAS-(Network Attached Storage, am Netzwerk angeschlossene Speicher)-Systeme anwendbar. Außerdem unterstützen Ausführungsformen für Ausfallsicherung und Lastausgleich mehrere (zwei oder mehr) HBAs.
- Zusätzliche Ausführungsformdetails
- Die beschriebenen Verfahren für Ausfallsicherung und Lastausgleich können als ein Verfahren, eine Vorrichtung oder ein Gegenstand implementiert sein, unter Benutzung von üblichen Programmier- und/oder Ingenieursverfahren zur Herstellung von Software, Firmware, Hardware, oder einer Kombination derselben. Der Begriff „Gegenstand", wie hier benutzt, bezeichnet Code oder Logik, der oder die in Hardwarelogik implementiert ist (z.B. ein integrierter Schaltkreischip, ein programmierbares Gate-Array (PGA), ein applikationsspezifischer integrierter Schaltkreis (ASIC) usw.), oder ein computerlesbares Medium, wie z.B. ein Magnetspeichermedium (z.B. Festplattenlaufwerke, Disketten, Band usw.), optische Speicher (CD-ROMs, optische Laufwerke usw.), flüchtige und nicht flüchtige Speichervorrichtungen (z.B. EEPROMs, ROMs, RAM, DRAMs, SRAMs, Firmware, programmierbare Logik usw.). Ein Prozessor greift auf Code in dem computerlesbaren Medium zu und verarbeitet ihn. Der Code, in dem bevorzugte Ausführungsformen implementiert sind, kann ein Übertragungsmedium, Signale, die sich durch den Raum fortpflanzen, Radiowellen, Infrarotsignale usw. umfassen. So kann der "Gegenstand" das Medium umfassen, auf dem der Code verkörpert ist. Außerdem kann der Gegenstand eine Kombination aus Hardware- und Softwarekomponenten umfassen, in der der Code verkörpert ist, verarbeitet und ausgeführt wird.
- Fachleute werden verstehen, daß viele Modifikationen an dieser Anordnung vorgenommen werden können, ohne von dem Umfang der Ausführungsformen abzuweichen, und daß der Gegenstand jedes Information tragende Medium umfassen kann, das im Stand der Technik bekannt ist.
- In den beschriebenen Ausführungsformen wurde eine bestimmte Logik in einem Treiber implementiert. In alternativen Ausführungsformen kann die Logik, die in dem Treiber und/oder Netzwerkadapter implementiert ist, ganz oder teilweise in Netzwerk-Hardware implementiert sein.
- In bestimmten Ausführungsformen kann der Netzwerkadapter als eine PCI-Karte implementiert sein. In alternativen Ausführungsformen kann der Netzwerkadapter integrierte Schaltkreiskomponenten umfassen, die an dem Mutterbord des Computers
203 angeordnet sind. - In bestimmten Ausführungsformen kann der Netzwerkadapter dazu konfiguriert sein, Daten über ein Kabel zu übertragen, das mit einem Anschluß an dem Netzwerkadapter verbunden ist. In alternativen Ausführungsformen können die Netzwerkadapter-Ausführungsformen dazu konfiguriert sein, Daten über ein Funknetzwerk oder eine Funkverbindung zu übertragen, wie z.B. ein Funk-LAN.
- Die dargestellte Logik aus
4A ,4B ,5A ,5B ,5C ,6A , und6C zeigt, daß bestimmte Vorgänge in einer bestimmten Abfolge auftreten. In alternativen Ausführungsformen können bestimmte Operationen in einer anderen Abfolge ausgeführt, modifiziert, oder entfernt werden. Außerdem können der oben beschriebenen Logik Operationen hinzugefügt werden, und trotzdem den beschriebenen Ausführungsformen entsprechen. Auch können hier beschriebene Operationen sequentiell ablaufen, oder bestimmte Operationen können parallel verarbeitet werden. Außerdem können Operationen von einer einzelnen Verarbeitungseinheit oder von verteilten Verarbeitungseinheiten verarbeitet werden. - Die vorangehende Beschreibung verschiedener Ausführungsformen erfolgte zu Zwecken der Erläuterung und Beschreibung. Sie soll nicht umfassend sein oder die Ausführungsformen auf die genauen offenbarten Formen beschränken. Angesichts der aufgeführten Lehren sind viele Modifikationen und Variationen möglich. Es ist vorgesehen, daß der Umfang der Ausführungsformen nicht durch diese genaue Beschreibung beschränkt ist, sondern vielmehr durch die beiliegenden Ansprüche. Die vorangehenden Ausführungen, Beispiele und Daten stellen eine vollständige Beschreibung der Herstellung und Benutzung der Zusammensetzung der Ausführungsformen dar. Da viele Ausführungsformen ohne Abweichung von dem Geist und Umfang der Ausführungsformen durchgeführt werden können, liegen die Ausführungsformen in den beiliegenden Ansprüchen vor.
- ZUSAMMENFASSUNG
- Die Erfindung betrifft Verfahren zur Ausfallsicherung und zum statischen und dynamischen Lastausgleich. Ein Filtertreiber empfängt eine Benachrichtigung über einen Pfadausfall, daß wenigstens einer eines ersten Netzwerkadapters und des Datenpfades durch den ersten Netzwerkadapter ausgefallen ist, und leitet Pakete, die an den ersten Netzwerkadapter gerichtet sind, auf einen zweiten Netzwerkadapter um. Ein Miniport-Treiber bestimmt, daß wenigstens ein Netzwerkadapter und Datenpfad durch den Netzwerkadapter ausgefallen sind, und benachrichtigt den Filtertreiber, daß wenigstens ein Netzwerkadapter und Datenpfad durch den Netzwerkadapter ausgefallen sind. Der Filtertreiber bestimmt eine Datenquote für jeden von mehreren Datenpfaden, bestimmt eine Maximalzahl von Befehlen für die jeweilige logische Einheit des Target, und wählt einen Datenpfad, auf dem ein Paket gesendet werden soll, basierend auf der Datenquote und der Maximalzahl von Befehlen. Der Filtertreiber bestimmt eine Datenübertragungsgeschwindigkeit für jeden von mehreren Datenpfaden, aktualisiert einen Lastausgleichanteil für die Datenpfade anhand der Datenübertragungsgeschwindigkeit von jedem der Datenpfade, und wählt einen Datenpfad, auf dem ein Paket gesendet werden soll, basierend auf dem Lastausgleichanteil der Datenpfade.
Claims (48)
- Verfahren in einem Computersystem zur Ausfallsicherung, wenn wenigstens einer von einem ersten Netzwerkadapter und einem Datenpfad durch den ersten Netzwerkadapter ausfällt, wobei das Computersystem einen Filtertreiber aufweist, und wobei der erste Netzwerkadapter mit einem zweiten Netzwerkadapter verbunden ist, umfassend: Empfangen einer Pfadausfall-Benachrichtigung mit dem Filtertreiber, daß wenigstens einer von dem ersten Netzwerkadapter und dem Datenpfad durch den ersten Netzwerkadapter ausgefallen ist; und Umlenken von Paketen mit dem Filtertreiber, die an den ersten Netzwerkadapter gerichtet sind, an den zweiten Netzwerkadapter.
- Verfahren nach Anspruch 1, außerdem umfassend: Ändern des Erfolgsstatus jedes Pakets mit dem Filtertreiber, das an den ersten Netzwerkadapter gerichtet war, bevor die Pfadausfall-Benachrichtigung empfangen wurde, in einen Beschäftigungsstatus.
- Verfahren nach Anspruch 1, außerdem umfassend: Bestimmen eines neuen Datenpfads mit dem Filtertreiber, der den zweiten Netzwerkadapter aufweist.
- Verfahren nach Anspruch 1, außerdem umfassend: Empfangen einer Benachrichtigung mit dem Filtertreiber, daß der erste Netzwerkadapter wiederhergestellt ist; und Bestimmen eines Datenpfads für neue Datenpakete mit dem Filtertreiber aufgrund dessen, ob die Benachrichtigung einen neuen Datenpfad festlegt.
- Verfahren nach Anspruch 1, außerdem umfassend: Ausweisen eines ersten Speichergerätestapels als einen primären Speichergerätestapel mit dem Filtertreiber, in Reaktion auf das Aufbauen des ersten Speichergerätestapels für eine logische Einheit; und Ausweisen eines folgenden Speichergerätestapels als einen sekundären Speichergerätestapel mit dem Filtertreiber, in Reaktion auf das Aufbauen des folgenden Speichergerätestapels für die logische Einheit.
- Verfahren nach Anspruch 5, außerdem umfassend: Verhindern eines Anordnens des Dateisystems auf dem sekundären Speichergerätestapel mit dem Filtertreiber.
- Verfahren zur Ausfallsicherung, wenn wenigstens einer von einem ersten Netzwerkadapter und einem Datenpfad durch den ersten Netzwerkadapter ausfällt, wobei der Netzwerkadapter mit einem Miniport-Treiber verbunden ist, der mit einem Filtertreiber verbunden ist, umfassend: Bestimmen, mit dem Miniport-Treiber, daß der Netzwerkadapter ausgefallen ist; und mit dem Miniport-Treiber den Filtertreiber darüber benachrichtigen, daß der Netzwerkadapter ausgefallen ist.
- Verfahren nach Anspruch 7, außerdem umfassend: Festlegen eines neuen Datenpfads mit dem Miniport-Treiber, der von dem Filtertreiber zum Umlenken von Paketen zu benutzen ist.
- Verfahren nach Anspruch 7, außerdem umfassend: Abschließen des Verarbeitens ausstehender Pakete mit dem Miniport-Treiber, die an den ersten Netzwerkadapter gerichtet sind, mit einem Erfolgsstatus.
- Verfahren nach Anspruch 7, außerdem umfassend: mit dem Miniport-Treiber bestimmen, daß der Netzwerkadapter wiederhergestellt ist; und Benachrichtigen des Filtertreibers mit dem Miniport-Treiber, daß der Netzwerkadapter wiederhergestellt ist.
- Verfahren zum statischen Lastausgleich, das in einem Filtertreiber implementiert ist, wobei der Filtertreiber folgendes ausführt: Bestimmen einer Datenquote für jeden einer Vielzahl von Datenpfaden; Identifizieren einer maximalen Zahl von Kommandos für eine logische Zieleinheit; und Auswählen eines Datenpfads, auf dem Pakete zu senden sind, basierend auf der Datenquote und der maximalen Zahl von Kommandos.
- Verfahren nach Anspruch 11, wobei der Filtertreiber außerdem folgendes ausführt: Bestimmen eines Lastausgleichanteils, der jedem Datenpfad in einer Gruppe zugeordnet wird; und Bestimmen einer mittleren Datenlänge von übertragenen Paketen für jeden Datenpfad.
- Verfahren nach Anspruch 11, wobei der Datenpfad mit Hilfe eines Rundlaufverfahrens ausgewählt wird, und wobei Pakete über den ausgewählten Datenpfad verschickt werden, bis wenigstens eine der Datenquoten für den Datenpfad erfüllt ist, und bis eine maximale Zahl von Kommandos erreicht ist.
- Verfahren zum dynamischen Lastausgleich, das in einem Filtertreiber implementiert ist, wobei der Filtertreiber folgendes ausführt: Bestimmen einer Datenübertragungsgeschwindigkeit für jeden einer Vielzahl von Datenpfaden; Aktualisieren eines Lastausgleichanteils für jeden der Vielzahl von Datenpfaden, basierend auf der Datenübertragungsgeschwindigkeit von jedem der Vielzahl von Datenpfaden; und Auswählen eines Datenpfades, auf dem ein Paket zu senden ist, basierend auf dem Lastausgleichanteil von jedem der Vielzahl von Datenpfaden.
- Verfahren nach Anspruch 14, wobei die Datenübertragungsgeschwindigkeit für jeden der Vielzahl von Datenpfaden als ein Verhältnis der insgesamt übertragenen Daten zu der insgesamt für das Übertragen der Daten benötigten Zeit berechnet wird.
- Verfahren nach Anspruch 14, wobei eine Häufigkeit, mit der die Datenübertragungsgeschwindigkeit bestimmt wird, einstellbar ist.
- System, das an einen Netzwerk- und Datenspeicher gekoppelt ist, umfassend: einen Host-Computer; eine Speichersteuerung, die den Eingang/Ausgang-(I/O)-Zugriff auf den Datenspeicher verwaltet, wobei die Speichersteuerung an den Host-Computer gekoppelt ist; einen ersten Netzwerkadapter; einen zweiten Netzwerkadapter; und einen Filtertreiber an dem Host-Computer, wobei der Filtertreiber zu folgendem in der Lage ist: Empfangen einer Pfadausfall-Benachrichtigung, daß wenigstens einer von einem ersten Netzwerkadapter und einem Datenpfad durch den ersten Netzwerkadapter ausgefallen ist, und Umlenken von Paketen, die an den ersten Netzwerkadapter gerichtet sind, an den zweiten Netzwerkadapter.
- System nach Anspruch 17, wobei der Filtertreiber außerdem zu folgendem in der Lage ist: Ändern eines Erfolgsstatus jedes Pakets, das an den ersten Netzwerkadapter gerichtet wurde, bevor die Pfadausfall-Benachrichtigung empfangen wurde, in einen Beschäftigungsstatus.
- System nach Anspruch 17, wobei der Filtertreiber außerdem zu folgendem in der Lage ist: Bestimmen eines neuen Datenpfades, der den zweiten Netzwerkadapter aufweist.
- System nach Anspruch 17, wobei der Filtertreiber außerdem zu folgendem in der Lage ist: Empfangen einer Benachrichtigung, daß der erste Netzwerkadapter wiederhergestellt ist; und Bestimmen eines Datenpfads für neue Datenpakete, basierend darauf, ob die Benachrichtigung einen neuen Datenpfad festgelegt hat.
- System nach Anspruch 17, wobei der Filtertreiber außerdem zu folgendem in der Lage ist: Ausweisen eines ersten Speichergerätestapels als einen primären Speichergerätestapel, in Reaktion auf das Aufbauen des ersten Speichergerätestapels für eine logische Einheit; und Ausweisen eines folgenden Speichergerätestapels als einen sekundären Speichergerätestapel, in Reaktion auf das Aufbauen des folgenden Speichergerätestapels für die logische Einheit.
- System nach Anspruch 21, wobei der Filtertreiber außerdem zu folgendem in der Lage ist: Verhindern, daß das Dateisystem auf dem sekundären Speichergerätestapel angeordnet wird.
- System, das an einen Netzwerk und einen Datenspeicher gekoppelt ist, umfassend: einen Host-Computer; eine Speichersteuerung, die den Eingang/Ausgang-(I/O)-Zugriff auf den Datenspeicher verwaltet, wobei die Speichersteuerung an den Host-Computer gekoppelt ist; einen Filtertreiber an dem Host-Computer; wenigstens zwei Netzwerkadapter an dem Host-Computer; und einen Miniport-Treiber an dem Host-Computer, wobei der Miniport-Treiber dazu in der Lage ist, zu bestimmen, daß wenigstens einer der Netzwerkadapter ausgefallen ist, und den Filtertreiber darüber zu benachrichtigen, daß der Netzwerkadapter ausgefallen ist.
- System nach Anspruch 23, wobei der Miniport-Treiber außerdem zu folgendem in der Lage ist: Festlegen eines neuen Datenpfads, der von dem Filtertreiber zum Umlenken von Paketen zu benutzen ist.
- System nach Anspruch 23, wobei der Miniport-Treiber außerdem zu folgendem in der Lage ist: Abschließen der Verarbeitung ausstehender Pakete, die an den ausgefallenen Netzwerkadapter gerichtet sind, mit einem Erfolgsstatus.
- System nach Anspruch 23, wobei der Miniport-Treiber außerdem zu folgendem in der Lage ist: Bestimmen, daß der ausgefallene Netzwerkadapter wiederhergestellt ist; und Benachrichtigen des Filtertreibers darüber, daß der ausgefallene Netzwerkadapter wiederhergestellt ist.
- System, das an einen Netzwerk und einen Datenspeicher gekoppelt ist, umfassend: einen Host-Computer; eine Speichersteuerung, die den Eingang/Ausgang-(I/O)-Zugriff auf den Datenspeicher verwaltet, wobei die Speichersteuerung an den Host-Computer gekoppelt ist; einen Filtertreiber an dem Host-Computer; einen Filtertreiber, der dazu in der Lage ist, eine Datenquote für jeden von einer Vielzahl von Datenpfaden zu bestimmen, eine maximale Zahl von Kommandos für eine logische Zieleinheit zu bestimmen, und einen Datenpfad auszuwählen, auf dem Pakete zu senden sind, basierend auf der Datenquote und der maximalen Zahl von Befehlen.
- System nach Anspruch 27, wobei der Filtertreiber außerdem folgendes ausführt: Bestimmen eines Lastausgleichanteils, der jedem Datenpfad in einer Gruppe zugeordnet wird; und Bestimmen einer mittleren Datenlänge übertragener Pakete für jeden Datenpfad.
- System nach Anspruch 27, wobei der Datenpfad mit Hilfe eines Rundlaufverfahrens ausgewählt wird, und wobei Pakete über den ausgewählten Datenpfad verschickt werden, bis wenigstens eine der Datenquoten für den Datenpfad erfüllt ist, und bis eine maximale Zahl von Kommandos erreicht ist.
- System, das an ein Netzwerk und einen Datenspeicher gekoppelt ist, umfassend: einen Host-Computer; eine Speichersteuerung, die den Eingang/Ausgang-(I/O)-Zugriff auf den Datenspeicher verwaltet, wobei die Speichersteuerung an den Host-Computer gekoppelt ist; einen Filtertreiber an dem Host-Computer; einen Filtertreiber, der dazu in der Lage ist, eine Datenübertragungsgeschwindigkeit für jeden der Datenpfade zu bestimmen, einen Lastausgleichanteil für jeden der Datenpfade basierend auf der Datenübertragungsgeschwindigkeit von jedem der Datenpfade zu aktualisieren, und einen Datenpfad auszuwählen, auf dem ein Paket zu senden ist, basierend auf dem Lastausgleichanteil von jedem der Datenpfade.
- System nach Anspruch 30, wobei die Datenübertragungsgeschwindigkeit für jeden der Datenpfade als ein Verhältnis der insgesamt übertragenen Daten zu der insgesamt zum Übertragen der Daten benötigten Zeit berechnet wird.
- System nach Anspruch 30, wobei eine Häufigkeit, mit der die Datenübertragungsgeschwindigkeit bestimmt wird, einstellbar ist.
- Gegenstand, der ein Speichermedium umfaßt, in dem Befehle gespeichert sind, die, wenn sie von einer Rechnervorrichtung ausgeführt werden, zu folgendem führen: Empfangen einer Pfadausfallbenachrichtigung, daß wenigstens einer von dem ersten Netzwerkadapter und dem Datenpfad durch den ersten Netzwerkadapter ausgefallen ist; und Umlenken von Paketen, die an den ersten Netzwerkadapter gerichtet sind, an den zweiten Netzwerkadapter.
- Gegenstand nach Anspruch 33, wobei die Befehle, wenn sie ausgeführt werden, außerdem zu folgendem führen: Ändern eines Erfolgszustands jedes Pakets, das an den ersten Netzwerkadapter gerichtet war, bevor die Pfadausfallbenachrichtigung empfangen wurde, in einen Beschäftigungsstatus.
- Gegenstand nach Anspruch 33, wobei die Befehle, wenn sie ausgeführt werden, außerdem zu folgendem führen: Bestimmen eines neuen Datenpfads, der den zweiten Netzwerkadapter aufweist.
- Gegenstand nach Anspruch 33, wobei die Befehle, wenn sie ausgeführt werden, außerdem zu folgendem führen: Empfangen einer Benachrichtigung, daß der erste Netzwerkadapter wiederhergestellt ist; und Bestimmen eines Datenpfads für neue Datenpakete, basierend darauf, ob die Benachrichtigung einen neuen Datenpfad festgelegt hat.
- Gegenstand nach Anspruch 33, wobei die Befehle, wenn sie ausgeführt werden, außerdem zu folgendem führen: Ausweisen eines ersten Speichergerätestapels als einen primären Speichergerätestapel, in Reaktion auf das Aufbauen des ersten Speichergerätestapels für eine logische Einheit; und Ausweisen eines folgenden Speichergerätestapels als einen sekundären Speichergerätestapel, in Reaktion auf das Aufbauen des folgenden Speichergerätestapels für die logische Einheit.
- Gegenstand nach Anspruch 37, wobei die Befehle, wenn sie ausgeführt werden, außerdem zu folgendem führen: Verhindern, daß das Dateisystem auf dem sekundären Speichergerätestapel angeordnet wird.
- Gegenstand, der ein Speichermedium umfaßt, in dem Befehle gespeichert sind, die, wenn sie ausgeführt werden, außerdem zu folgendem führen: Bestimmen, daß der Netzwerkadapter ausgefallen ist; und Benachrichtigen des Filtertreibers, daß der Netzwerkadapter ausgefallen ist.
- Gegenstand nach Anspruch 39, wobei die Befehle, wenn sie ausgeführt werden, außerdem zu folgendem führen: Festlegen eines neuen Datenpfads, der von dem Filtertreiber zum Umlenken von Paketen zu benutzen ist.
- Gegenstand nach Anspruch 39, wobei die Befehle, wenn sie ausgeführt werden, außerdem zu folgendem führen: Abschließen der Verarbeitung ausstehender Pakete, die an den ersten Netzwerkadapter gerichtet sind, mit einem Erfolgsstatus.
- Gegenstand nach Anspruch 39, wobei die Befehle, wenn sie ausgeführt werden, außerdem zu folgendem führen: Bestimmen, daß der Netzwerkadapter wiederhergestellt ist; und Benachrichtigen des Filtertreibers, daß der Netzwerkadapter wiederhergestellt ist.
- Gegenstand, der ein Speichermedium umfaßt, in dem Befehle gespeichert sind, die, wenn sie ausgeführt werden, zu folgendem führen: Bestimmen einer Datenquote für jeden von mehreren Datenpfaden; Identifizieren einer maximalen Zahl von Kommandos für eine logische Zieleinheit: und Auswählen eines Datenpfads, auf dem Pakete zu senden sind, basierend auf der Datenquote und der maximalen Zahl von Kommandos.
- Gegenstand nach Anspruch 43, wobei die Befehle, wenn sie ausgeführt werden, außerdem zu folgendem führen: Bestimmen eines Lastausgleichanteils, der jedem Datenpfad in einer Gruppe zugeordnet wird; und Bestimmen einer mittleren Datenlänge übertragener Pakete für jeden Datenpfad.
- Gegenstand nach Anspruch 43, wobei der Datenpfad mit Hilfe eines Rundlaufverfahrens ausgewählt wird, und wobei Pakete über den ausgewählten Datenpfad verschickt werden, bis wenigstens eine der Datenquoten für den Datenpfad erfüllt ist, und bis eine maximale Zahl von Kommandos erreicht ist.
- Gegenstand, der ein Speichermedium umfaßt, in dem Befehle gespeichert sind, die, wenn sie ausgeführt werden, zu folgendem führen: Bestimmen einer Datenübertragungsgeschwindigkeit für jeden von einer Vielzahl von Datenpfaden; Aktualisieren eines Lastausgleichanteils für jeden der Datenpfade, basierend auf der Datenübertragungsgeschwindigkeit für jeden der Datenpfade; und Auswählen eines Datenpfads, auf dem ein Paket zu senden ist, basierend auf dem Lastausgleichanteil von jedem der Datenpfade.
- Gegenstand nach Anspruch 46, wobei die Datenübertragungsgeschwindigkeit für jeden der Datenpfade als ein Verhältnis der insgesamt übertragenen Daten und der insgesamt zum Übertragen der Daten benötigten Zeit berechnet wird.
- Gegenstand nach Anspruch 46, wobei die Häufigkeit, mit der die Datenübertragungsgeschwindigkeit bestimmt wird, einstellbar ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2004/000105 WO2005091141A1 (en) | 2004-03-19 | 2004-03-19 | Failover and load balancing |
Publications (2)
Publication Number | Publication Date |
---|---|
DE112004002797T5 true DE112004002797T5 (de) | 2007-01-11 |
DE112004002797B4 DE112004002797B4 (de) | 2015-12-31 |
Family
ID=34993888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112004002797.7T Expired - Fee Related DE112004002797B4 (de) | 2004-03-19 | 2004-03-19 | Ausfallsicherung und Lastausgleich |
Country Status (6)
Country | Link |
---|---|
US (3) | US7721150B2 (de) |
JP (1) | JP4430710B2 (de) |
CN (1) | CN100501684C (de) |
DE (1) | DE112004002797B4 (de) |
GB (1) | GB2426609B (de) |
WO (1) | WO2005091141A1 (de) |
Families Citing this family (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7391865B2 (en) | 1999-09-20 | 2008-06-24 | Security First Corporation | Secure data parser method and system |
US7443867B2 (en) * | 2003-08-15 | 2008-10-28 | Nortel Networks Limited | Method for performing network services |
DE112004002797B4 (de) * | 2004-03-19 | 2015-12-31 | Zakrytoe Aktsionernoe Obschestvo "Intel A/O" | Ausfallsicherung und Lastausgleich |
US8266438B2 (en) | 2004-10-25 | 2012-09-11 | Security First Corp. | Secure data parser method and system |
US7636345B2 (en) * | 2006-02-01 | 2009-12-22 | Comsys Communication & Signal Processing Ltd. | Apparatus for and method of time related communications between multiple devices having different time bases |
US7743129B2 (en) * | 2006-05-01 | 2010-06-22 | International Business Machines Corporation | Methods and arrangements to detect a failure in a communication network |
US7821973B2 (en) * | 2006-10-24 | 2010-10-26 | Hewlett-Packard Development Company, L.P. | Sharing of host bus adapter context |
US8677014B2 (en) | 2006-11-27 | 2014-03-18 | Cisco Technology, Inc. | Fine granularity exchange level load balancing in a multiprocessor storage area network |
US7882283B2 (en) | 2006-11-27 | 2011-02-01 | Cisco Technology, Inc. | Virtualization support in a multiprocessor storage area network |
EP2482218A3 (de) * | 2006-12-05 | 2012-10-31 | Security First Corporation | Verbessertes Sicherungsverfahren auf einem Datenspeicher mit einem sicheren Datenparser |
US7688753B1 (en) * | 2007-12-28 | 2010-03-30 | Emc Corporation | Selection of a data path based on one or more performance characteristics of a computer system |
US8656167B2 (en) | 2008-02-22 | 2014-02-18 | Security First Corp. | Systems and methods for secure workgroup management and communication |
US8103775B2 (en) | 2008-03-13 | 2012-01-24 | Harris Corporation | System and method for distributing a client load from a failed server among remaining servers in a storage area network (SAN) |
US20090254924A1 (en) * | 2008-04-04 | 2009-10-08 | Microsoft Corporation | Operating system interfaces for virtual wifi and softap capable drivers |
CN101299201B (zh) | 2008-05-08 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 存储系统数据备份方法及装置 |
US7839788B2 (en) * | 2008-05-19 | 2010-11-23 | Lsi Corporation | Systems and methods for load balancing storage system requests in a multi-path environment based on transfer speed of the multiple paths |
EP2131279B1 (de) * | 2008-06-04 | 2012-03-28 | Software AG | System und Verfahren für eine allgemeine Integration einer Datenbank in einen Hochverfügbarkeitscluster |
US8041987B2 (en) * | 2008-11-10 | 2011-10-18 | International Business Machines Corporation | Dynamic physical and virtual multipath I/O |
US8274881B2 (en) * | 2009-05-12 | 2012-09-25 | International Business Machines Corporation | Altering access to a fibre channel fabric |
CA2781872A1 (en) | 2009-11-25 | 2011-06-09 | Security First Corp. | Systems and methods for securing data in motion |
EP2362651A1 (de) * | 2010-02-19 | 2011-08-31 | Thomson Licensing | Mehrwegige Lieferung für anpassungsfähige Strömung |
JP5663083B2 (ja) | 2010-03-31 | 2015-02-04 | セキュリティー ファースト コープ. | 移動中のデータをセキュア化するためのシステムおよび方法 |
US8824492B2 (en) * | 2010-05-28 | 2014-09-02 | Drc Computer Corporation | Accelerator system for remote data storage |
US8281033B1 (en) * | 2010-06-29 | 2012-10-02 | Emc Corporation | Techniques for path selection |
CN105071936B (zh) | 2010-09-20 | 2018-10-12 | 安全第一公司 | 用于安全数据共享的系统和方法 |
KR20120037785A (ko) * | 2010-10-12 | 2012-04-20 | 삼성전자주식회사 | 부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법 |
US8954808B1 (en) * | 2010-11-30 | 2015-02-10 | Symantec Corporation | Systems and methods for performing input/output path failovers |
US8321617B1 (en) * | 2011-05-18 | 2012-11-27 | Hitachi, Ltd. | Method and apparatus of server I/O migration management |
JP5422611B2 (ja) * | 2011-06-24 | 2014-02-19 | 株式会社日立製作所 | 計算機システム、ホストバスアダプタ制御方法及びそのプログラム |
US20130124916A1 (en) * | 2011-11-16 | 2013-05-16 | Microsoft Corporation | Layout of mirrored databases across different servers for failover |
US9015372B2 (en) | 2012-01-12 | 2015-04-21 | Hewlett-Packard Development Company, L.P. | Managing data paths between computer applications and data storage devices |
US9916456B2 (en) | 2012-04-06 | 2018-03-13 | Security First Corp. | Systems and methods for securing and restoring virtual machines |
TW201413461A (zh) * | 2012-09-17 | 2014-04-01 | Hon Hai Prec Ind Co Ltd | 磁碟陣列卡擴展管理方法及系統 |
US9407601B1 (en) | 2012-12-21 | 2016-08-02 | Emc Corporation | Reliable client transport over fibre channel using a block device access model |
US9270786B1 (en) * | 2012-12-21 | 2016-02-23 | Emc Corporation | System and method for proxying TCP connections over a SCSI-based transport |
US9647905B1 (en) | 2012-12-21 | 2017-05-09 | EMC IP Holding Company LLC | System and method for optimized management of statistics counters, supporting lock-free updates, and queries for any to-the-present time interval |
US9531765B1 (en) * | 2012-12-21 | 2016-12-27 | Emc Corporation | System and method for maximizing system data cache efficiency in a connection-oriented data proxy service |
US9712427B1 (en) | 2012-12-21 | 2017-07-18 | EMC IP Holding Company LLC | Dynamic server-driven path management for a connection-oriented transport using the SCSI block device model |
US9514151B1 (en) | 2012-12-21 | 2016-12-06 | Emc Corporation | System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service |
US9563423B1 (en) * | 2012-12-21 | 2017-02-07 | EMC IP Holding Company LLC | System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service |
US9473590B1 (en) | 2012-12-21 | 2016-10-18 | Emc Corporation | Client connection establishment over fibre channel using a block device access model |
US9591099B1 (en) | 2012-12-21 | 2017-03-07 | EMC IP Holding Company LLC | Server connection establishment over fibre channel using a block device access model |
US9338819B2 (en) * | 2013-05-29 | 2016-05-10 | Medtronic Minimed, Inc. | Variable data usage personal medical system and method |
US9274989B2 (en) | 2013-06-12 | 2016-03-01 | International Business Machines Corporation | Impersonating SCSI ports through an intermediate proxy |
US9769062B2 (en) | 2013-06-12 | 2017-09-19 | International Business Machines Corporation | Load balancing input/output operations between two computers |
US8819317B1 (en) | 2013-06-12 | 2014-08-26 | International Business Machines Corporation | Processing input/output requests using proxy and owner storage systems |
US9274916B2 (en) | 2013-06-12 | 2016-03-01 | International Business Machines Corporation | Unit attention processing in proxy and owner storage systems |
US9779003B2 (en) | 2013-06-12 | 2017-10-03 | International Business Machines Corporation | Safely mapping and unmapping host SCSI volumes |
US9940019B2 (en) | 2013-06-12 | 2018-04-10 | International Business Machines Corporation | Online migration of a logical volume between storage systems |
TWI514250B (zh) | 2013-11-18 | 2015-12-21 | Synology Inc | 用來管理一儲存系統之方法與裝置以及計算機程式產品 |
US9286171B2 (en) * | 2013-12-12 | 2016-03-15 | International Business Machines Corporation | Priming failover of stateful offload adapters |
TWI544342B (zh) * | 2013-12-17 | 2016-08-01 | 緯創資通股份有限公司 | 伺服器品質驗證方法及其系統 |
CN107210971A (zh) * | 2014-12-18 | 2017-09-26 | 诺基亚通信公司 | 网络负载平衡器 |
US9954799B2 (en) | 2015-05-14 | 2018-04-24 | International Business Machines Corporation | Adaptive service chain management |
US9477489B1 (en) * | 2015-07-09 | 2016-10-25 | Dell Products L.P. | Software based self-encrypting drive (SED) sleep resuming method |
CN105376095A (zh) * | 2015-11-26 | 2016-03-02 | 曙光信息产业股份有限公司 | 一种访问ip均衡方法及装置 |
US10102074B2 (en) | 2015-12-01 | 2018-10-16 | International Business Machines Corporation | Switching allocation of computer bus lanes |
US10296484B2 (en) | 2015-12-01 | 2019-05-21 | International Business Machines Corporation | Dynamic re-allocation of computer bus lanes |
US9870162B2 (en) * | 2016-03-18 | 2018-01-16 | Dell Products L.P. | Method to virtualize PCIe controllers to support boot/hibernation/crash-dump from a spanned virtual disk |
CN106371922A (zh) * | 2016-08-29 | 2017-02-01 | 成都支付通卡友电子商务有限公司 | 动态负载平衡批量处理系统 |
US10275327B2 (en) | 2017-01-05 | 2019-04-30 | Hewlett Packard Enterprises Development LP | Virtual fibre channel port migration |
US11050660B2 (en) * | 2018-09-28 | 2021-06-29 | EMC IP Holding Company LLC | Host device with multi-path layer implementing path selection based at least in part on fabric identifiers |
US11748278B2 (en) | 2019-06-20 | 2023-09-05 | Intel Corporation | Multi-protocol support for transactions |
Family Cites Families (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4403286A (en) | 1981-03-06 | 1983-09-06 | International Business Machines Corporation | Balancing data-processing work loads |
US5168208A (en) | 1988-05-09 | 1992-12-01 | Onan Corporation | Microprocessor based integrated generator set controller apparatus and method |
US5006781A (en) | 1988-05-09 | 1991-04-09 | Onan Corporation | Microprocessor based integrated generator set controller apparatus and method |
US5086499A (en) * | 1989-05-23 | 1992-02-04 | Aeg Westinghouse Transportation Systems, Inc. | Computer network for real time control with automatic fault identification and by-pass |
US5724569A (en) | 1991-03-29 | 1998-03-03 | Bull S.A. | Apparatus for evaluating database query performance having libraries containing information for modeling the various system components of multiple systems |
US5493689A (en) | 1993-03-01 | 1996-02-20 | International Business Machines Corporation | System for configuring an event driven interface including control blocks defining good loop locations in a memory which represent detection of a characteristic pattern |
US5495426A (en) | 1994-01-26 | 1996-02-27 | Waclawsky; John G. | Inband directed routing for load balancing and load distribution in a data communication network |
US5790775A (en) * | 1995-10-23 | 1998-08-04 | Digital Equipment Corporation | Host transparent storage controller failover/failback of SCSI targets and associated units |
JP3628777B2 (ja) * | 1995-10-30 | 2005-03-16 | 株式会社日立製作所 | 外部記憶装置 |
US6185601B1 (en) | 1996-08-02 | 2001-02-06 | Hewlett-Packard Company | Dynamic load balancing of a network of client and server computers |
US6081511A (en) | 1996-08-14 | 2000-06-27 | Cabletron Systems, Inc. | Load sharing for redundant networks |
US7760627B2 (en) | 1996-10-24 | 2010-07-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for automatic load-balancing on a multi-segment network |
US6314525B1 (en) * | 1997-05-13 | 2001-11-06 | 3Com Corporation | Means for allowing two or more network interface controller cards to appear as one card to an operating system |
US6208616B1 (en) * | 1997-05-13 | 2001-03-27 | 3Com Corporation | System for detecting errors in a network |
US6253334B1 (en) * | 1997-05-13 | 2001-06-26 | Micron Electronics, Inc. | Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses |
US6430610B1 (en) * | 1998-09-02 | 2002-08-06 | Steeleye Technology, Inc. | TCP/IP address protection mechanism in a clustered server environment |
US6438133B1 (en) | 1998-09-09 | 2002-08-20 | Cisco Technology, Inc. | Load balancing mechanism for a translational bridge environment |
US6381218B1 (en) * | 1998-09-11 | 2002-04-30 | Compaq Computer Corporation | Network controller system that uses directed heartbeat packets |
US6470397B1 (en) * | 1998-11-16 | 2002-10-22 | Qlogic Corporation | Systems and methods for network and I/O device drivers |
US6728748B1 (en) | 1998-12-01 | 2004-04-27 | Network Appliance, Inc. | Method and apparatus for policy based class of service and adaptive service level management within the context of an internet and intranet |
US6654801B2 (en) * | 1999-01-04 | 2003-11-25 | Cisco Technology, Inc. | Remote system administration and seamless service integration of a data communication network management system |
US6453360B1 (en) | 1999-03-01 | 2002-09-17 | Sun Microsystems, Inc. | High performance network interface |
US6711137B1 (en) | 1999-03-12 | 2004-03-23 | International Business Machines Corporation | System and method for analyzing and tuning a communications network |
US6526521B1 (en) * | 1999-06-18 | 2003-02-25 | Emc Corporation | Methods and apparatus for providing data storage access |
US6658018B1 (en) * | 1999-06-30 | 2003-12-02 | Intel Corporation | Method and system of providing advanced teaming functionality capable of utilizing heterogeneous adapters to improve utility and performance |
JP3601393B2 (ja) | 2000-01-11 | 2004-12-15 | 日本電気株式会社 | データグラム中継装置及びその方法 |
US7139282B1 (en) | 2000-03-24 | 2006-11-21 | Juniper Networks, Inc. | Bandwidth division for packet processing |
US6687735B1 (en) | 2000-05-30 | 2004-02-03 | Tranceive Technologies, Inc. | Method and apparatus for balancing distributed applications |
US6718481B1 (en) * | 2000-05-26 | 2004-04-06 | Emc Corporation | Multiple hierarichal/peer domain file server with domain based, cross domain cooperative fault handling mechanisms |
US6629166B1 (en) * | 2000-06-29 | 2003-09-30 | Intel Corporation | Methods and systems for efficient connection of I/O devices to a channel-based switched fabric |
US6618798B1 (en) * | 2000-07-11 | 2003-09-09 | International Business Machines Corporation | Method, system, program, and data structures for mapping logical units to a storage space comprises of at least one array of storage units |
US6775235B2 (en) * | 2000-12-29 | 2004-08-10 | Ragula Systems | Tools and techniques for directing packets over disparate networks |
US6802021B1 (en) * | 2001-01-23 | 2004-10-05 | Adaptec, Inc. | Intelligent load balancing for a multi-path storage system |
US6823477B1 (en) * | 2001-01-23 | 2004-11-23 | Adaptec, Inc. | Method and apparatus for a segregated interface for parameter configuration in a multi-path failover system |
US6769071B1 (en) * | 2001-01-23 | 2004-07-27 | Adaptec, Inc. | Method and apparatus for intelligent failover in a multi-path system |
US7139242B2 (en) | 2001-03-28 | 2006-11-21 | Proficient Networks, Inc. | Methods, apparatuses and systems facilitating deployment, support and configuration of network routing policies |
JP2002304331A (ja) | 2001-04-05 | 2002-10-18 | Nec Corp | 冗長パス制御装置及び方法 |
RU2202123C2 (ru) | 2001-06-06 | 2003-04-10 | Бачериков Геннадий Иванович | Параллельная вычислительная система с программируемой архитектурой |
US7016299B2 (en) * | 2001-07-27 | 2006-03-21 | International Business Machines Corporation | Network node failover using path rerouting by manager component or switch port remapping |
US20030074473A1 (en) | 2001-10-12 | 2003-04-17 | Duc Pham | Scalable network gateway processor architecture |
US7318095B2 (en) * | 2001-11-21 | 2008-01-08 | Clearcube Technology, Inc. | Data fail-over for a multi-computer system |
US7126910B1 (en) | 2001-12-13 | 2006-10-24 | Alcatel | Load balancing technique for a resilient packet ring |
US7111084B2 (en) | 2001-12-28 | 2006-09-19 | Hewlett-Packard Development Company, L.P. | Data storage network with host transparent failover controlled by host bus adapter |
JP3964212B2 (ja) * | 2002-01-16 | 2007-08-22 | 株式会社日立製作所 | 記憶装置システム |
US6779064B2 (en) * | 2002-01-24 | 2004-08-17 | Hewlett-Packard Development Company, L.P. | System, method, and computer program product for on-line replacement of a host bus adapter |
CA2371654A1 (en) | 2002-02-13 | 2003-08-13 | Alcatel Canada Inc. | System and method for parallel connection selection in a communication network |
US7134040B2 (en) * | 2002-04-17 | 2006-11-07 | International Business Machines Corporation | Method, system, and program for selecting a path to a device to use when sending data requests to the device |
US20060242313A1 (en) | 2002-05-06 | 2006-10-26 | Lewiz Communications | Network content processor including packet engine |
CN100520724C (zh) * | 2002-08-02 | 2009-07-29 | 草谷(U.S)公司 | 用于实现故障切换恢复的网络系统及方法 |
US7307948B2 (en) * | 2002-10-21 | 2007-12-11 | Emulex Design & Manufacturing Corporation | System with multiple path fail over, fail back and load balancing |
US7280482B2 (en) | 2002-11-01 | 2007-10-09 | Nokia Corporation | Dynamic load distribution using local state information |
JP2004227098A (ja) * | 2003-01-20 | 2004-08-12 | Hitachi Ltd | 記憶デバイス制御装置の制御方法、及び記憶デバイス制御装置 |
JP3769544B2 (ja) | 2003-01-31 | 2006-04-26 | 富士通株式会社 | 伝送帯域制御装置 |
DE502004001427D1 (de) | 2003-05-15 | 2006-10-19 | Siemens Ag | Verfharen und netzknoten fuer eine selbst-regulierende, autonome und dezentrale verkehrsverteilung in einem mehrwege-netz |
US20050010837A1 (en) * | 2003-07-10 | 2005-01-13 | International Business Machines Corporation | Method and apparatus for managing adapters in a data processing system |
DE60324037D1 (de) | 2003-08-07 | 2008-11-20 | Telecom Italia Spa | Verfahren zur statistischen schätzung der verkehrsdispersion in einem telekommunikationsnetz |
US7443867B2 (en) | 2003-08-15 | 2008-10-28 | Nortel Networks Limited | Method for performing network services |
US7783779B1 (en) * | 2003-09-19 | 2010-08-24 | Vmware, Inc | Storage multipath management in a virtual computer system |
US7330972B2 (en) * | 2003-09-26 | 2008-02-12 | Intel Corporation | Remote management device key administration using network adapters |
US7313681B2 (en) * | 2003-11-20 | 2007-12-25 | International Business Machines Corporation | Apparatus, system, and method for adapter fastload |
US7603463B2 (en) | 2003-12-12 | 2009-10-13 | Nortel Networks Limited | Method and apparatus for allocating processing capacity of system processing units in an extranet gateway |
US7281169B2 (en) * | 2004-01-30 | 2007-10-09 | Dell Products L.P. | Method, software and system for multi-path fail-over recovery in sequential storage systems |
US20050185789A1 (en) * | 2004-01-30 | 2005-08-25 | Goodwin Kevin M. | Forestalling actions that otherwise would defeat access-control mechanism for volume |
DE112004002797B4 (de) | 2004-03-19 | 2015-12-31 | Zakrytoe Aktsionernoe Obschestvo "Intel A/O" | Ausfallsicherung und Lastausgleich |
US7760626B2 (en) | 2004-03-31 | 2010-07-20 | Intel Corporation | Load balancing and failover |
US7636309B2 (en) | 2005-06-28 | 2009-12-22 | Alcatel-Lucent Usa Inc. | Multi-path routing using intra-flow splitting |
US7710872B2 (en) | 2005-12-14 | 2010-05-04 | Cisco Technology, Inc. | Technique for enabling traffic engineering on CE-CE paths across a provider network |
US20070153763A1 (en) | 2005-12-29 | 2007-07-05 | Rampolla Richard A | Route change monitor for communication networks |
US8555288B2 (en) | 2006-05-17 | 2013-10-08 | Teradata Us, Inc. | Managing database utilities to improve throughput and concurrency |
US7756029B2 (en) | 2007-05-24 | 2010-07-13 | Harris Stratex Networks Operating Corporation | Dynamic load balancing for layer-2 link aggregation |
US8738752B2 (en) | 2008-01-30 | 2014-05-27 | Cisco Technology, Inc. | Local placement of large flows to assist load-balancing |
-
2004
- 2004-03-19 DE DE112004002797.7T patent/DE112004002797B4/de not_active Expired - Fee Related
- 2004-03-19 JP JP2007500707A patent/JP4430710B2/ja not_active Expired - Fee Related
- 2004-03-19 CN CNB2004800418159A patent/CN100501684C/zh not_active Expired - Fee Related
- 2004-03-19 US US10/599,055 patent/US7721150B2/en not_active Expired - Fee Related
- 2004-03-19 WO PCT/RU2004/000105 patent/WO2005091141A1/en active Application Filing
- 2004-03-19 GB GB0616648A patent/GB2426609B/en not_active Expired - Fee Related
-
2010
- 2010-03-29 US US12/749,407 patent/US7992039B2/en not_active Expired - Fee Related
-
2011
- 2011-06-23 US US13/167,594 patent/US8429452B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB0616648D0 (en) | 2006-10-04 |
CN1942862A (zh) | 2007-04-04 |
US7992039B2 (en) | 2011-08-02 |
US7721150B2 (en) | 2010-05-18 |
JP2007527172A (ja) | 2007-09-20 |
US20100185794A1 (en) | 2010-07-22 |
US20110258484A1 (en) | 2011-10-20 |
US20080222661A1 (en) | 2008-09-11 |
WO2005091141A1 (en) | 2005-09-29 |
JP4430710B2 (ja) | 2010-03-10 |
CN100501684C (zh) | 2009-06-17 |
US8429452B2 (en) | 2013-04-23 |
GB2426609B (en) | 2008-05-14 |
GB2426609A (en) | 2006-11-29 |
DE112004002797B4 (de) | 2015-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112004002797B4 (de) | Ausfallsicherung und Lastausgleich | |
DE112008001682B4 (de) | Speicherbereichsnetzwerk mit Erkennung auf der Zielseite und dem Hochladen einer Routing- Tabelle | |
DE10296675T5 (de) | Virtuelles Vernetzungssystem und -verfahren in einem Verarbeitungssystem | |
DE69922693T2 (de) | Systemem und verfahren für netzwerkvorrichtung und ein-ausgabegerätetreiber | |
DE69922690T2 (de) | Fehlertolerante netze | |
DE60212626T2 (de) | Endknotenunterteilung mittels lokaler identifikatoren | |
DE60303026T2 (de) | System, verfahren und produkt zur verwaltung des datenverkehrs in einem netzwerk | |
DE60302876T2 (de) | Master-knotenauswahl in geclusterten knotenkonfigurationen | |
DE69832744T2 (de) | System und Verfahren zur automatischen dynamischen Ringadressveränderungen | |
DE112013004187B4 (de) | Technologie für Netzwerk-Datenübertragung durch ein Computersystem unter Verwendung von mindestens zwei Datenübertragungsprotokollen | |
DE602005003142T2 (de) | Vorrichtung und verfahren zur unterstützung von verbindungsherstellung in einem offload der netzwerkprotokollverarbeitung | |
DE112012001753B4 (de) | 3 -Anmeldesequenz für eine Fibre-Channel-Weiterleiterstruktur | |
DE112011100822T5 (de) | Aufrechterhalten der Durchlässigkeit eines Datenübertragungspfades in einem Datenspeichernetzwerk | |
US7827251B2 (en) | Fast write operations to a mirrored volume in a volume manager | |
DE102012206283B4 (de) | Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk | |
EP2880534B1 (de) | Hochverfügbares rechnersystem, arbeitsverfahren und dessen verwendung | |
DE112013006643B4 (de) | Speichersystem und steuerungsverfahren für speichersystem | |
DE112005003217B4 (de) | Routing von Mitteilungen | |
DE112007002211T5 (de) | Vorrichtung und Verfahren zum Verbinden von SAS RAID Controller-Vorrichtungs-Kanälen über redundante Speichersubsysteme hinweg | |
DE202016009110U1 (de) | System, Adapter, Vorrichtung und Server zum Ausgleichen von Speicherdatenverkehr in konvergierten Netzwerken | |
CN105900068A (zh) | 路径管理的系统、装置和方法 | |
DE112019007502T5 (de) | Zuordnen von nvme-over-fabric-paketen mithilfe von virtuellen ausgangswarteschlangen | |
DE112012006160B4 (de) | Netzwerkknotenelement, Subnetzmanager, System und Verfahren zur effizienten Verteilung von Subnetzverwaltungsdaten über ein RDMA-Netzwerk | |
DE60317541T2 (de) | Verfahren zur bestimmung eines übergeordneten portals in einem drahtlosen netzwerk und entsprechende portaleinrichtung | |
DE102004059754A1 (de) | Ein Disk Array System mit Failover und Load Balance Funktionen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law |
Ref document number: 112004002797 Country of ref document: DE Date of ref document: 20070111 Kind code of ref document: P |
|
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |