DE102012206283B4 - Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk - Google Patents

Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk Download PDF

Info

Publication number
DE102012206283B4
DE102012206283B4 DE102012206283A DE102012206283A DE102012206283B4 DE 102012206283 B4 DE102012206283 B4 DE 102012206283B4 DE 102012206283 A DE102012206283 A DE 102012206283A DE 102012206283 A DE102012206283 A DE 102012206283A DE 102012206283 B4 DE102012206283 B4 DE 102012206283B4
Authority
DE
Germany
Prior art keywords
storage area
area network
type
san
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102012206283A
Other languages
English (en)
Other versions
DE102012206283A1 (de
Inventor
William James Scales
Rohit Shekhar
Praveen Kumar Padia
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102012206283A1 publication Critical patent/DE102012206283A1/de
Application granted granted Critical
Publication of DE102012206283B4 publication Critical patent/DE102012206283B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

Ein Verfahren und ein System zum Verteilen des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk (SAN) werden bereitgestellt. Das Verfahren umfasst das Verfügen über Möglichkeiten, um eine E/A-Anforderung an einen ersten Typ eines SAN zu senden und eine E/A-Anforderung an einen zweiten Typ eines SAN zu senden, wobei der erste SAN-Typ ein Leistungsmerkmal in Form von einer höheren Anzahl von E/A-Operationen pro Sekunde als der zweite SAN Typ aufweist. Das Verfahren umfasst des Weiteren: Empfangen einer E/A-Anforderung; und Feststellen der Länge der E/A-Anforderung, und wenn die Länge eine Schwellwert-Länge unterschreitet, Senden der E/A-Anforderung an den ersten SAN-Typ; wenn die Länge eine Schwellwert-Länge überschreitet, Senden der E/A-Anforderung an den zweiten SAN-Typ. Darüber hinaus kann das Verfahren das Feststellen, ob eine Bandbreite des zweiten SAN-Typs für einen Zeitraum voll in Anspruch genommen wird, und wenn sie voll in Anspruch genommen wird, das Senden einer E/A-Anforderung mit einer Länge über der Schwellwert-Länge an den ersten SAN-Typ umfassen.

Description

  • BEREICH DER ERFINDUNG
  • Diese Erfindung betrifft den Bereich der Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk. Insbesondere betrifft die Erfindung die Verteilung des Datenflusses auf mehrere Pfade in einem Speicherbereichsnetzwerk, wobei die Pfade unterschiedliche Leistungsmerkmale aufweisen.
  • DER ERFINDUNG ZUGRUNDE LIEGENDER ALLGEMEINER STAND DER TECHNIK
  • Die überwiegende Zahl von mittleren und großen Datenzentren verwendet ein auf Fibre Channel (FC) beruhendes Speicherbereichsnetzwerk (SAN), um Host-Server an Speichersteuereinheiten anzuschließen. Einer der gängigen Trends, die sich in den meisten Datenzentren feststellen lassen, besteht darin, dass bei zunehmender Arbeitslast auch die Forderung nach einer Erhöhung der SAN-Bandbreite zunimmt. Datenzentren, die vor ein paar Jahren beispielsweise eine auf Fibre Channel (FC) mit Datenübertragungsraten von 2 Gbit/s oder 4 Gbit/s beruhende SAN-Infrastruktur aufgebaut haben, benötigen jetzt wahrscheinlich zusätzliche Bandbreite und werden sich um eine Nachrüstung ihres SAN bemühen.
  • Es gibt viele verschiedene Möglichkeiten, ein SAN nachzurüsten.
    • 1. Man fügt weitere Anschlüsse zwischen Host-Servern und dem SAN und zwischen der Speichersteuereinheit und dem SAN hinzu und nutzt die Multi-Pathing-Technologie, um die E/A-Arbeitslast auf die alternativen Pfade zu verteilen (Lastverteilung).
    • 2. Man ersetzt das vorhandene FC-SAN durch die neueste (8-Gbit/s-FC-)Technologie, um die Leistung des SAN zu verbessern, ohne die Anzahl der Anschlüsse zu erhöhen.
    • 3. Man ersetzt das vorhandene FC-SAN durch ein 1-Gbit/s- oder ein 10-Gbit/s-Ethernet-SAN und verwendet entweder das Protokoll ”FC over Ethernet” (FCoE) oder das iSCSI-Protokoll.
    • 4. Man behält das vorhandene FC-SAN und macht von der Option 2 oder 3 Gebrauch, um ein zusätzliches SAN einzurichten. Man verwendet die Multi-Pathing-Technologie, um die E/A-Arbeitslast auf das vorhandene SAN und das neue SAN zu verteilen.
  • FC ist derzeit die zum Aufbau von SANs meistgenutzte Technologie. Sie stellt eine ausgereifte Technologie dar, die eine sehr gute Leistung (im Hinblick auf die Bandbreite, im Hinblick auf die E/A-Operationen pro Sekunde (IOPs) und im Hinblick auf die Latenzzeit) bei verhältnismäßig geringem zusätzlichem Aufwand sowohl in der Speichersteuereinheit als auch im Host-Server bietet. Der Hauptnachteil von FC ist, dass diese Technologie teuer ist.
  • Internet Small Computer System Interface (iSCSI) ist dabei, sich zu einer der annehmbaren SAN-Technologien in modernen Datenzentren zu entwickeln. Die meisten Speichersteuereinheiten und die meisten Host-Server unterstützen jetzt iSCSI. Die Verwendung eines 1-Gbit/s-Ethernet-Netzwerks zum Aufbau eines iSCSI-SAN stellt eine äußerst kostengünstige Möglichkeit dar, um Host-Server mit Speichersteuereinheiten zu verbinden. iSCSI ist jedoch wesentlich CPU-intensiver (selbst mit iSCSI-Entlastungshardware) als FC, was bedeutet, dass die IOPs-Leistung gewöhnlich geringer als die entsprechende mit einem FC-SAN erzielbare Leistung ist. iSCSI funktioniert gut bei Arbeitslasten, die eine hohe Bandbreite in Anspruch nehmen und bei denen eine kleine Anzahl von größeren E/A-Anforderungen die iSCSI-Verbindungsbandbreite ohne nennenswerte Mehrbelastung der CPU ausschöpfen kann.
  • Die Verwendung eines 10-Gbit/s-Ethernet-Netzwerks zum Aufbau eines 10-Gbit/s-iSCSI-SAN ist ebenfalls möglich, jedoch ist der Kostenaufwand für die 10-Gbit/s-Ethernet-Hardware eher mit dem Kostenaufwand für ein FC-SAN vergleichbar, obgleich gegebenenfalls die Möglichkeit besteht, die Hardware in den Host-Servern für andere Netzwerkaufgaben mit zu nutzen.
  • Fibre Channel over Ethernet (FCoE) ist eine verhältnismäßig neue Technologie, die die Übertragung von FC-Rahmen über ein 10-Gbit/s-Ethernet-Netzwerk ermöglicht. Sie bietet dieselben Leistungsmerkmale wie FC. Der Hauptnachteil von FCoE liegt darin, dass es teuer ist, derzeit noch spezielle Ethernet-Vermittlungsstellen erforderlich sind und die Technologie noch nicht ausgereift ist.
  • Es gibt viele Multi-Pathing-Lösungen, und die meisten modernen Betriebssysteme enthalten jetzt Multi-Pathing-Treiber als Teil des Basis-Betriebssystems. Viele der Multi-Pathing-Treiber unterstützen sowohl die auf FC als auch auf iSCSI beruhende Ein/Ausgabe in dieselben Logikeinheiten (Logical Units (LUs)) des Speichers. Die einfachsten Multi-Pathing-Treiber realisieren Redundanz einfach dadurch, dass sie alle E/A-Anforderungen über einen Pfad ausgeben und nur dann zur Verwendung eines alternativen Pfads umschalten, wenn E/A-Anforderungen fehlschlagen. Fortschrittlichere Multi-Pathing-Treiber verwenden Lastverteilungsschemata in dem Versuch, E/A-Anforderungen über die Mehrfachpfade zu verteilen und folglich eine bessere Leistung zu erzielen.
  • Die Lastverteilungs-Algorithmen sind gewöhnlich sehr einfach, zum Beispiel:
    • 1. Bevorzugter Pfad. Alle E/A-Anforderungen an eine bestimmte LU werden über denselben Pfad geleitet, verschiedenen LUs werden unterschiedliche Pfade zugewiesen, so dass die Arbeitslast auf die verfügbaren Pfade verteilt wird, solange E/A-Anforderungen an mehrere LUs parallel übergeben werden.
    • 2. E/A-Anforderungen im Rotationsverfahren über alle verfügbaren Pfade. Wenn es zwei Pfade über ein SAN zu einer bestimmten Speicher-LU gibt, übergibt der Multi-Pathing-Treiber somit die erste E/A-Anforderung über einen Pfad, die zweite E/A-Anforderung über den zweiten Pfad, die dritte E/A-Anforderung über den ersten Pfad usw.
    • 3. Auf der Warteschlangentiefe beruhende Pfadauswahl. Der Pfad mit der kleinsten Anzahl an aktiven E/A-Anforderungen wird beim Starten einer neuen E/A-Anforderung gewählt. Wenn es zwei Pfade gibt und ein Pfad 5 aktive E/A-Anforderungen hat, während der andere Pfad 3 aktive E/A-Anforderungen hat, wird beim Starten einer neuen E/A-Anforderung folglich der zweite Pfad gewählt.
  • Dokument US 2010/0153612 A1 offenbart ein Verfahren zum Handling von Daten in einem Speichercluster, bei dem die Implementierung eines multi-pathing über sog. „SCSI referral lists” erfolgt. Das zwischen einem Initiator und dem Speichercluster befindliche Netzwerk weist einen ersten und einen zweiten Pfad bestehend aus unterschiedlichen SAN-Typen auf, die unterschiedliche Leistung aufweisen. Nach Senden einer E/A-Anfrage eines Initiators beispielsweise zum Abrufen von im Speicher-Cluster enthaltenen Daten, die einen ersten und einen zweiten Datenblock aufweisen, wobei der erste Datenblock in einem ersten Datenspeichersystem und der zweite Datenblock in einem zweiten Datenspeichersystem gespeichert ist, wird beispielsweise der erste Datenblock an den Initiator zusammen mit einer SCSI referral list übermittelt. Mittels dieser SCSI referral list kann der Initiator die Lage des zweiten Datenblocks sowie den Zugriff auf diese Daten über unterschiedliche Ports identifizieren und die Anforderung des zweiten Datenblocks einleiten. In der SCSI referral list können hierbei mehrere Ports angegeben sein, über die der zweite Datenblock zugänglich ist. Für den Fall, dass nach der Wahl eines der Ports bei der Übertragung Probleme entstehen, können dieselben Daten über den weiteren genannten Port abgerufen werden.
  • Dokument US 2009/0031057 A1 offenbart ein Verfahren sowie ein System zur Steigerung der Leistung in multi-path-Speichernetzwerken. Dabei wird nutzerseitig die Priorität der Pfade festgelegt, d. h. einem Pfad wird beispielsweise eine höhere Priorität eingeräumt wie einem weiteren Pfad. Es wird ein Datenratenschwellwert festgelegt, wobei bei Unterschreiten der Datenrate unter den Datenschwellwert lediglich der höher priorisierte Pfad verwendet wird. Dabei ist der zweite, niedriger priorisierte Pfad abgeschalten. Bei Überschreitung des Schwellwertes wird der zweite Pfad aktiviert und die E/A-Anforderungen auch teilweise über diesen Pfad abgewickelt.
  • Bei Verwendung eines Multi-Pathing-Treibers mit Pfaden über SANs, welche unterschiedliche Leistungsmerkmale aufweisen (zum Beispiel eine Mischung aus FC- und iSCSI-Pfaden zu derselben Logikeinheit des Speichers) besteht das Problem, dass die aktuellen Multi-Pathing-Treiber nicht zwischen den Leistungsmerkmalen der verschiedenen Pfade unterscheiden und die Leistungsfähigkeit daher wahrscheinlich auf diejenige des langsamsten Pfades sinkt).
  • Folglich besteht in der Technik Bedarf, das vorstehend genannte Problem anzugehen.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Gemäß einer ersten Erscheinungsform der vorliegenden Erfindung wird ein Verfahren zum Verteilen des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk (SAN) bereitgestellt, wobei das Verfahren Folgendes umfasst: Verfügen über Möglichkeiten, um eine E/A-Anforderung an einen ersten Typ eines SAN zu senden und eine E/A-Anforderung an einen zweiten Typ eines SAN zu senden, wobei der erste SAN-Typ ein Leistungsmerkmal in Form von einer höheren E/A pro Sekunde als der zweite SAN-Typ aufweist; Empfangen einer E/A-Anforderung; und Feststellen der Länge der E/A-Anforderung: wenn die Länge eine Schwellwert-Länge unterschreitet, Senden der E/A-Anforderung an den ersten SAN-Typ; wenn die Länge eine Schwellwert-Länge überschreitet, Senden der E/A-Anforderung an den zweiten SAN-Typ.
  • Das Verfahren kann des Weiteren das Feststellen (407) umfassen, ob eine Bandbreite des zweiten SAN-Typs für einen Zeitraum voll in Anspruch genommen wird, und wenn sie voll in Anspruch genommen wird, Senden (403) einer E/A-Anforderung mit einer Länge über der Schwellwert-Länge an den ersten SAN-Typ.
  • Vorzugsweise umfasst das Feststellen (407), ob eine Bandbreite voll in Anspruch genommen wird, Folgendes: Feststellen, ob die Gesamtlängen der E/A-Anforderungen in einem bestimmten Zeitraum eine Schwellwert-Bandbreite überschreiten. Das Verfahren kann des Abstimmen der Schwellwert-Bandbreite und des bestimmten Zeitraums auf die verfügbare Bandbreite des zweiten SAN-Typs umfassen. Das Verfahren kann das Erkennen des jeweiligen Typs des ersten SAN-Typs und des zweiten SAN-Typs von einem Übertragungstreiber der unteren Ebene umfassen. Das Verfahren kann das Empfangen der Benutzerkonfiguration des jeweiligen Typs des ersten SAN-Typs und des zweiten SAN-Typs umfassen. Vorzugsweise ist der erste SAN-Typ ein Fibre-Channel-(FC-)SAN, und der zweite SAN-Typ ist ein auf der Internet Small Computer System Interface (iSCSI) beruhendes SAN. Vorzugsweise ist der erste SAN-Typ ein SAN vom Typ Fibre Channel (FC), das eine erste Bandbreite hat, und der zweite SAN-Typ ist ein SAN vom Typ Fibre Channel (FC), das eine zweite Bandbreite hat, die geringer als die erste Bandbreite ist.
  • Nach einer Ausführungsform der Erfindung umfasst das Verfahren Folgendes: Erkennen des jeweiligen Typs des ersten SAN-Typs und des zweiten SAN-Typs von einem Übertragungstreiber der unteren Ebene.
  • Nach einer Ausführungsform der Erfindung umfasst des Verfahren Folgendes: Empfangen der Benutzerkonfiguration des jeweiligen Typs des ersten SAN-Typs und des zweiten SAN-Typs.
  • Nach einer Ausführungsform der Erfindung ist der erste SAN-Typ ein Fibre-Channel-(FC-)SAN und der zweite SAN-Typ ein auf der Internet Small Computer System Interface (iSCSI) beruhendes SAN.
  • Gemäß einer zweiten Erscheinungsform der vorliegenden Erfindung wird ein Multi-Pathing-Treiber für ein Speicherbereichsnetzwerk-(SAN-)System bereitgestellt, wobei der Treiber über Optionen verfügt, um eine E/A-Anforderung an einen ersten SAN-Typ zu senden und eine E/A-Anforderung an einen zweiten SAN-Typ zu senden, wobei der erste SAN-Typ ein Leistungsmerkmal in Form von einer höheren E/A pro Sekunde als der zweite SAN-Typ aufweist, wobei der Treiber Folgendes umfasst: eine Verbindung zu einem ersten SAN-Typ; eine Verbindung zu einem zweiten SAN-Typ; einen Empfänger für E/A-Anforderungen; eine Pfadtyp-Auswahlkomponente, die Folgendes umfasst: eine Komponente zum Feststellen der Länge einer E/A-Anforderung, um festzustellen, ob die Länge einer E/A-Anforderung eine Schwellwert-Länge unter- oder überschreitet; eine Pfadtyp-Auswahleinheit, um auf der Grundlage der Länge der E/A-Anforderung den ersten SAN-Typ oder den zweiten SAN-Typ auszuwählen.
  • Vorzugsweise umfasst die Pfadtyp-Auswahlkomponente (112) Folgendes: eine Komponente für kumulative E/A-Anforderungen (203), um festzustellen, ob eine Bandbreite des zweiten SAN-Typs (122) für einen Zeitraum voll in Anspruch genommen wird, und wenn sie voll in Anspruch genommen wird, Senden einer E/A-Anforderung mit einer Länge über der Schwellwert-Länge durch die Pfadtyp-Auswahleinheit an den ersten SAN-Typ (121). Vorzugsweise umfasst die Komponente für kumulative E/A-Anforderungen (203), die dazu dient, festzustellen, ob eine Bandbreite voll in Anspruch genommen wird, Folgendes: Feststellen, ob die Gesamtlängen der E/A-Anforderungen in einem bestimmten Zeitraum eine Schwellwert-Bandbreite überschreiten. Vorzugsweise umfasst die Pfadtyp-Auswahlkomponente (112) Folgendes: eine Abstimmkomponente (209), um die Schwellwert-Bandbreite und den bestimmten Zeitraum auf die verfügbare Bandbreite des zweiten SAN-Typs (122) abzustimmen. Der Treiber kann eine Pfadtyp-Erkennungskomponente (210) umfassen, um den jeweiligen Typ des ersten SAN-Typs und des zweiten SAN-Typs (121, 122) von einem Übertragungstreiber der unteren Ebene zu erkennen. Der Treiber kann eine Pfadtyp-Einstellkomponente (211) umfassen, um eine Benutzerkonfiguration des jeweiligen Typs des ersten SAN-Typs und des zweiten SAN-Typs (121, 122) zu empfangen. Vorzugsweise ist der erste SAN-Typ (121) ein Fibre-Channel-(FC-)SAN, und der zweite SAN-Typ (122) ist ein auf der Internet Small Computer System Interface (iSCSI) beruhendes SAN. Vorzugsweise ist der erste SAN-Typ (121) ein SAN vom Typ Fibre Channel (FC), das eine erste Bandbreite hat, und der zweite SAN-Typ (122) ist ein SAN vom Typ Fibre Channel (FC), das eine zweite Bandbreite hat, die geringer als die erste Bandbreite ist.
  • Gemäß einer dritten Erscheinungsform der vorliegenden Erfindung wird ein Speicherbereichsnetzwerk-System bereitgestellt, das Folgendes umfasst: einen Host-Server, der über einen Multi-Pathing-Treiber verfügt; eine Speichersteuereinheit, um den Zugriff auf mehrere Speichereinheiten zu ermöglichen; einen ersten SAN-Typ, der den Host-Server mit einer Speichersteuereinheit verbindet; einen zweiten SAN-Typ, der den Host-Server mit der Speichersteuereinheit verbindet; wobei der Multi-Pathing-Treiber Folgendes umfasst: einen Empfänger für E/A-Anforderungen; eine Pfadtyp-Auswahlkomponente, die Folgendes umfasst: eine Komponente zum Feststellen der Länge einer E/A-Anforderung, um festzustellen, ob die Länge einer E/A-Anforderung eine Schwellwert-Länge unter- oder überschreitet; und eine Pfadtyp-Auswahleinheit um auf der Grundlage der Länge der E/A-Anforderung den ersten SAN-Typ oder den zweiten SAN-Typ auszuwählen.
  • Gemäß einer vierten Erscheinungsform der vorliegenden Erfindung wird ein Computerprogramm bereitgestellt, das auf einem computerlesbaren Datenträger gespeichert ist und in den internen Speicher eines digitalen Computers geladen werden kann, wobei das Computerprogramm Teile von Software-Code umfasst, wenn das Programm auf einem Computer ausgeführt wird, um das Verfahren der ersten Erscheinungsform der vorliegenden Erfindung durchzuführen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung wird nun lediglich anhand eines Beispiels mit Bezug auf die beiliegenden Zeichnungen beschrieben, bei denen:
  • 1 ein Blockschaltbild eines Systems gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung ist;
  • 2 ein Blockschaubild eines Multi-Pathing-Treibers gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung ist;
  • 3 ein Blockschaltbild eines Computersystems ist, in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann; und
  • 4 ein Ablaufplan eines Verfahrens gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung ist.
  • Es dürfte klar sein, dass die in den Figuren gezeigten Elements aus Gründen der Einfachheit und Übersichtlichkeit der Darstellung nicht unbedingt maßstabgetreu gezeichnet wurden. Beispielsweise können die Abmessungen von einem Teil der Elements in Bezug auf andere Elemente aus Gründen der Übersichtlichkeit etwas übertrieben dargestellt sein. Auch werden Bezugszahlen in den Figuren gegebenenfalls wiederholt, um entsprechende oder analoge Eigenschaften oder Merkmale anzugeben.
  • AUSFÜHRLICHE BESCHREIBUNG EINER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Ein Verfahren und ein System werden beschrieben, um die Bandbreite eines vorhandenen SAN mit einem zusätzlichen SAN-Pfad eines anderen Typs zu erhöhen, ohne Abstriche an der bestehenden IOPs-Leistung zu machen.
  • Es gibt viele verschiedene Typen eines SAN, darunter die folgenden:
    Fibre Channel (FC)
    Fibre Channel over Ethernet (FCoE)
    SCSI RDMA Protocol (SRP) over Infiniband
    iSCSI Extensions for RDMA (iSER) over Infiniband
    Serial Attached SCSI (SAS)
    iSCSI
  • Das beschriebene Verfahren und das beschriebene System sind aufgrund des Preis/Leistungsverhältnisses von iSCSI am besten für die Verwendung einer Kombination von iSCSI mit einem der anderen SAN-Typen geeignet; sie könnten jedoch auch auf andere Kombinationen aus SAN-Typen angewendet werden.
  • In einer Ausführungsform wird eine vorhandene, von einem FC-SAN bereitgestellte SAN-Bandbreite erhöht, indem ein kostengünstiges, auf iSCSI beruhendes SAN hinzugefügt wird, um zusätzliche Bandbreite zur Verfügung zu stellen. In einer anderen Ausführungsform wird ein vorhandenes FC-SAN nachgerüstet, indem ein weiteres FC-SAN mit einem anderen Leistungsverhalten hinzugefügt wird.
  • Das beschriebene Verfahren und das beschriebene System nehmen Verbesserungen an einem Multi-Pathing-Treiber vor, so dass er entsprechend der Größe der E/A-Anforderung einen geeigneten Pfad über die verschiedenen Typen eines Speicherbereichsnetzwerks (SAN) auswählt, um die Leistungsfähigkeit des SAN aufrechtzuerhalten.
  • In einer Ausführungsform wählt der Multi-Pathing-Treiber ein iSCSI-SAN für größere (bandbreitenintensive) E/A-Anforderungen aus, während für kleinere (IOPs-intensive) E/A-Anforderungen ein Pfad über das FC-SAN ausgewählt wird, so dass die gesamte Leistung genauso gut wie die eines größeren FC-SAN ist, jedoch geringere Kosten verursacht.
  • Bei E/A-Operationen gibt es zwei Leistungsaspekte.
  • IOPs (E/A pro Sekunde)
  • IOPs gibt die Anzahl der E/A-Operationen an, die in einer Sekunde durchgeführt werden können. Dieser Wert ist im Allgemeinen proportional zu den Ausführungskosten des E/A-Befehls, und diese sind im Allgemeinen unabhängig von der Datengröße. Das Verfahren zum Messen von IOPs besteht im Senden von E/A-Befehlen, die eine kleine Länge haben. Wenn E/A-Befehle großer Länge gesendet werden, wird die verfügbare Bandbreite zu einem Flaschenhals, bevor man den Engpass bei der CPU für die Verarbeitung dieser Befehle ausfindig macht.
  • E/A-Bandbreite
  • Die E/A-Bandbreite ist die pro Sekunde übertragene Datenmenge. Dieser Wert wird im Allgemeinen gemessen, indem man E/A-Anforderungen großer Länge (64 Kbit, 256 Kbit usw.) sendet, so dass die CPU nicht zum Flaschenhals wird (der Ausführungsaufwand je Befehl ist im Allgemeinen unabhängig von der Länge der E/A-Anforderung), und die genaue Bandbreite kann berechnet werden.
  • Nahezu alle SAN-Installationen verwenden einen Multi-Pathing-Einheitentreiber im Host-Server, damit ein Hostrechner zwischen verschiedenen Pfaden zu derselben Logikeinheit des Speichers wählen kann. Dieser wurde hauptsächlich für Redundanzzwecke (kein einzelner Fehlerpunkt) verwendet, wird aber jetzt auch zur Verbesserung der Leistung durch Lastverteilung eingesetzt.
  • Bezug nehmend auf 1 zeigt ein Blockschaltbild eine Ausführungsform des beschriebenen Systems 100, das eine Konfiguration einer Anwendung eines Hostrechners zeigt, die über ein SAN an den Speicher angeschlossen ist.
  • Ein Host-Server 110 ist an ein Speichersystem 130 angeschlossen, das mindestens eine Speichersteuereinheit 131 umfasst, die den Zugriff auf mehrere Speichereinheiten 132 bis 134 ermöglicht. Der Host-Server 110 ist über zwei oder mehr SANs 120 an eine Speichersteuereinheit 131 angeschlossen. Ein erstes SAN 121 ist von einem ersten Typ und weist erste Leistungsmerkmale auf, und ein zweites SAN 122 ist von einem zweiten Typ und weist zweite Leistungsmerkmale auf. Das erste SAN 121 hat eine höhere IOPs-Leistungscharakteristik als das zweite SAN 142, wodurch es für kurze E/A-Anforderungen geeigneter ist.
  • In einer Ausführungsform kann das erste SAN 121 ein FC-SAN sein, das eine gute Leistungscharakteristik bei kleineren, IOPs-intensiven E/A-Anforderungen hat. Das zweite SAN 122 kann ein auf iSCSI beruhendes SAN sein, das eine gute Leistungscharakteristik bei längeren E/A-Anforderungen aufweist, bei kürzeren E/A-Anforderungen jedoch eine hohe Mehrbelastung der CPU bewirkt. Das erste SAN 121 kann ein vorhandenes FC-SAN sein, dem zusätzliche Bandbreite zur Verfügung gestellt wird, indem das zweite SAN 122 in Form eines auf iSCSI beruhenden SAN hinzugefügt wird.
  • In einer weiteren Ausführungsform können sowohl das erste SAN 121 als auch das zweite SAN 122 FC-SANs sein, wobei das erste SAN 121 unter Verwendung einer Technologie, die eine höhere Übertragungsrate in Gbit/s als das zweite SAN 122 aufweist, realisiert wird.
  • Der Host-Server 110 umfasst einen Multi-Pathing-Treiber 111, der eine Pfadtyp-Auswahlkomponente 112 umfasst, um auszuwählen, welches der SANs 121, 122 für eine E/A-Anforderung verwendet werden soll. Die Pfadtyp-Auswahlkomponente 112 ist mit Bezug auf 2 näher beschrieben.
  • Der Speicher 130 kann jede beliebige Form einer Speicherlösung darstellen, die eine oder mehr Speichersteuereinheiten 131 umfasst.
  • Bezug nehmend auf 2 ist ein Multi-Pathing-Treiber 111 bereitgestellt, der eine Pfadtyp-Auswahlkomponente 112 enthält. Die Pfadtyp-Auswahlkomponente 112 umfasst einen Empfänger für E/A-Anforderungen 201, eine Komponente zum Feststellen der Länge einer E/A-Anforderung 202, eine Komponente für kumulative E/A-Anforderungen 203 und eine Pfadtyp-Auswahleinheit 204. Die Pfadtyp-Auswahlkomponente 112 legt fest, welcher Pfadtyp für eine E/A-Anforderung verwendet werden soll, indem sie die Länge der E/A-Anforderung und die kumulative Gesamtlänge von E/A-Anforderungen, die innerhalb eines bestimmten Zeitraums an einen Pfadtyp gesendet werden, ermittelt.
  • Die Pfadtyp-Auswahlkomponente 112 kann eine Einstellkomponente 205 umfassen, um den Schwellwert 206 für die Länge einer E/A-Anforderung, den Schwellwert 207 für die Länge von kumulativen E/A-Anforderungen und einen Zeitraum 208 für den Schwellwert der kumulativen Länge zu setzen. Die Einstellkomponente 205 kann eine Abstimmkomponente 209 umfassen, um den Schwellwert 207 für die Länge von kumulativen E/A-Anforderungen und den Zeitraum 208 auf einen bestimmten SAN-Typ abzustimmen.
  • Die Pfadtyp-Auswahlkomponente 112 kann auch eine Pfadtyp-Erkennungskomponente 210 umfassen, um den Typ des Pfades eines angeschlossenen SAN zu erkennen. Alternativ oder zusätzlich kann eine Pfadtyp-Einstellkomponente 211 bereitgestellt werden, um die Typen der angeschlossenen SANs zu konfigurieren.
  • Der Multi-Pathing-Treiber 111 kann auch eine Komponente zur Auswahl desselben Pfadtyps 220 für Last tragende Anforderungen über mehrere SANs desselben Typs umfassen, sobald ein SAN-Typ von der Pfadtyp-Auswahlkomponente 111 für eine E/A-Anforderung ermittelt worden ist.
  • Bezug nehmend auf 3 umfasst ein beispielhaftes System zur Realisierung von Erscheinungsformen der Erfindung ein Datenverarbeitungssystem 300, das zur Speicherung und/oder Ausführung von Programmcode geeignet ist und mindestens einen Prozessor 301 umfasst, der über ein Bussystem 303 direkt oder indirekt mit Speicherelementen verbunden ist. Die Speicherelemente können einen lokalen Speicher, der während der tatsächlichen Ausführung des Programmcodes verwendet wird, einen Massenspeicher und Cachespeicher umfassen, die eine zeitweise Speicherung von mindestens einem Teil des Programmcodes ermöglichen, um die Häufigkeit zu verringern, mit der Code aus dem Massenspeicher zur Ausführung abgerufen werden muss.
  • Die Speicherelemente können einen Systemspeicher 302 in Form eines Nur-Lese-Speichers (ROM) 304 und eines Direktzugriffspeichers (RAM) 305 umfassen. Ein grundlegendes Eingabe/Ausgabesystem (BIOS) 306 kann im ROM 304 gespeichert werden. System-Software 308 kann im RAM 305 gespeichert werden, welche Betriebssystem-Software 308 umfasst. Software-Anwendungen 310 können ebenfalls im RAM 305 gespeichert werden.
  • Das System 300 kann auch ein primäres Speichermittel 311 wie zum Beispiel ein Magnetfestplattenlaufwerk und ein sekundäres Speichermittel 312 wie zum Beispiel ein Magnetplattenlaufwerk und ein optisches Plattenlaufwerk umfassen. Die Laufwerke und ihre zugehörigen computerlesbaren Datenträger ermöglichen die nichtflüchtige Speicherung von von einem Computer ausführbaren Befehlen, Datenstrukturen, Programmmodulen und anderen Daten für das System 300. Software-Anwendungen können auf dem primären und dem sekundären Speichermittel 311, 312 sowie dem Systemspeicher 302 gespeichert werden.
  • Das Datenverarbeitungssystem 300 kann unter Verwendung von logischen Verbindungen zu einem oder mehreren entfernt angeordneten Computern über einen Netzwerk-Adapter 316 in einer vernetzten Umgebung betrieben werden.
  • Eingabe/Ausgabe-Einheiten 313 können entweder direkt oder über zwischengeschaltete E/A-Steuereinheiten mit dem System verbunden werden. Ein Benutzer kann über Eingabeeinheiten wie zum Beispiel eine Tastatur, ein Zeigegerät oder andere Eingabeeinheiten (zum Beispiel ein Mikrofon, einen Joystick, eine Spielesteuerung, eine Satellitenempfangsantenne, einen Scanner oder dergleichen) Befehle und Daten in das System 300 eingeben. Ausgabeeinheiten können Lautsprecher, Drucker usw. umfassen. Eine Anzeigeeinheit 314 ist über eine Schnittstelle wie zum Beispiel einen Video-Adapter 315 ebenfalls mit dem Systembus 303 verbunden.
  • Bezug nehmend auf 4 zeigt ein Ablaufplan 400 eine Ausführungsform eines Verfahrens zum Auswählen eines Typs eines SAN, wobei zwei Typen eines SAN mit unterschiedlichen Leistungsmerkmalen verfügbar sind. Im Einzelnen hat ein SAN eines ersten Typs im Vergleich zu einem SAN eines zweiten Typs eine höhere Anzahl von IOPs.
  • Eine E/A-Anforderung wird empfangen, 401. Es wird festgestellt, 402, ob die Länge der E/A-Anforderung geringer als eine festgelegte Schwellwert-Länge ist. Wenn die Länge der E/A-Anforderung geringer als eine festgelegte Schwellwert-Länge ist, wird ein SAN eines ersten Typs ausgewählt, 403, wobei das SAN vom ersten Typ im Vergleich zu dem SAN vom zweiten Typ eine höhere Anzahl von IOPs hat.
  • Es wird festgestellt, 404, ob mehrere SANs vom ersten Typ verfügbar sind. Wenn ja, kann ein Lastverteilungs-Algorithmus angewendet werden, 405, um das SAN auszuwählen, das verwendet werden soll. Wenn es nur ein SAN vom ersten Typ gibt, wird dieses SAN ausgewählt, 406.
  • Wenn die Länge der E/A-Anforderung im Schritt 402 größer als der festgelegte Schwellwert ist, wird im Schritt 407 festgestellt, ob die Gesamtlänge der E/A-Anforderungen in dem letzten angegebenen Zeitraum geringer als ein festgelegter Bandbreiten-Schwellwert ist. Wenn sie über dem Bandbreiten-Schwellwert liegt, wird das SAN vom ersten Typ ausgewählt, 403, und die Lastverteilung kann angewendet werden, wenn es mehrere SANs vom ersten Typ gibt.
  • Wenn die Gesamtlänge der E/A-Anforderung unter dem Bandbreiten-Schwellwert liegt, wird das SAN vom zweiten Typ ausgewählt, 408.
  • Es wird festgestellt, 409, ob mehrere SANs vom zweiten Typ verfügbar sind. Wenn ja, kann ein Lastverteilungs-Algorithmus angewendet werden, 410, um das SAN auszuwählen, das verwendet werden soll. Wenn es nur ein SAN vom zweiten Typ gibt, wird dieses SAN ausgewählt, 411.
  • In einer Ausführungsform ist das SAN vom ersten Typ ein auf FC beruhendes SAN, und das SAN vom zweiten Typ ist ein auf iSCSI beruhendes SAN. Das auf iSCSI beruhende SAN bietet eine kostengünstigere Möglichkeit, die Bandbreite eines SAN zu erhöhen, während es dennoch eine gute IOPs-Leistung aufweist. Da die meisten Host-Server bereits über Ethernet-Netzwerkverbindungen verfügen, besteht außerdem gegebenenfalls die Möglichkeit, ein auf iSCSI beruhendes SAN unter Verwendung der vorhandenen Infrastruktur hinzuzufügen und dadurch die Kosten für eine Bandbreitenerhöhung des SAN weiter zu verringern.
  • Das beschriebene Verfahren erfordert den Multi-Pathing-Treiber, um einen neuen Pfadtyp-Auswahlalgorithmus für E/A-Anforderungen zu realisieren. Um die hervorragende IOPs-Leistung, die ein FC-SAN ermöglicht, beizubehalten, muss der Multi-Pathing-Treiber alle E/A-Anforderungen kurzer Länge über das FC-SAN übergeben. Damit die volle Bandbreite des FC-SAN und des iSCSI-SAN genutzt werden kann, muss der Multi-Pathing-Treiber sowohl die FC- als auch die iSCSI-Pfade für E/A-Anforderungen, die eine größere Länge haben, verwenden. Da die kürzeren E/A-Anforderungen immer über das FC-SAN übergeben werden, sollte der Multi-Pathing-Treiber bei der Übergabe von E/A-Anforderungen, die eine größere Länge haben, lieber einen iSCSI-Pfad anstelle eines FC-Pfades verwenden, bis die Bandbreite des iSCSI-Pfades voll in Anspruch genommen ist.
  • Ein beispielhafter Algorithmus zur Auswahl eines Pfads in einer solchen Ausführungsform könnte wie folgt sein:
    • 1. Wenn die Länge einer E/A-Anforderung geringer als 64 KByte ist, wähle den FC-Pfad; sonst
    • 2. Gesamtlänge der E/A-Anforderungen, die in den letzten 100 Millisekunden an den iSCSI-Pfad übergeben wurden, ist geringer als 1 MByte, dann wähle den iSCSI-Pfad; sonst
    • 3. Wähle den FC-Pfad.
  • Die Länge des Zeitschlitzes (100 ms) und die Bandbreite 1 MByte im vorstehenden Schritt 2 sollten auf die verfügbare Bandbreite des iSCSI-Pfads abgestimmt werden. In diesem Beispiel ergibt 1 MByte alle 100 ms eine Bandbreite von 100 MByte/s, was ungefähr gleich dem 1 Gbit/s (100 MByte/s = 800 Mbit/s, da ein Byte in Ethernet-Netzwerken aus 8 Bits besteht; die verbleibenden 200 Mbit/s sind für die Zusatzinformationen der iSCSI- und Ethernet-Protokolle vorgesehen) an Bandbreite ist, die auf dem iSCSI-Pfad zur Verfügung steht.
  • Wenn es mehrere FC-Pfade oder mehrere iSCSI-Pfade zu derselben Logikeinheit des Speichers gibt, kann der Multi-Pathing-Treiber vorhandene Verfahren nutzen, um eine Lastverteilung bei den E/A-Anforderungen über denselben Typ von Pfad durchzuführen. In diesem Fall würde der vorstehende Algorithmus verwendet werden, um den Typ von Pfad zu wählen, der verwendet werden soll, und anschließend würden die standardmäßigen Pfadauswahl-Algorithmen (die im Abschnitt über den der Erfindung zugrunde liegenden allgemeinen Stand der Technik beschrieben wurden) verwendet werden, um eine Auswahl zwischen Pfaden von demselben Typ vorzunehmen.
  • Der Multi-Pathing-Treiber kann den zum Speicher führenden Typ von Pfad entweder automatisch auf der Grundlage von Informationen, die er von dem Übertragungstreiber der unteren Ebene (FC und iSCSI) beschaffen kann, erkennen, oder der Benutzer kann den Multi-Pathing-Treiber so konfigurieren, dass dieser mittels Auswahl festlegt, welche Pfade für kurze E/A-Anforderungen und welche Pfade nur für lange E/A-Anforderungen verwendet werden sollen.
  • Üblicherweise beruht ein großer Teil der vorhandenen SAN-Infrastruktur auf FC. FC-SANs bieten eine hervorragende Leistung sowohl bei kürzeren E/A-Anforderungen (IOPs-kritischen Arbeitslasten) als auch bei längeren E/A-Anforderungen (bandbreitenkritischen Arbeitslasten), sind jedoch kostspieliger als das Installieren eines auf iSCSI beruhenden SAN. Ein auf iSCSI beruhendes SAN bietet eine ausgezeichnete Leistung bei längeren E/A-Anforderungen (bandbreitenkritischen Arbeitslasten), bewirkt aber bei kürzeren E/A-Anforderungen eine hohe Mehrbelastung der CPU. Daher nutzt ein Pfadtyp-Auswahlalgorithmus, der beschrieben wurde, die Leistungsmerkmale eines jeden Typs von Pfad.
  • Das beschriebene Verfahren und das beschriebene System können auch in anderen Szenarien Anwendung finden, in denen es mehrere Pfade zwischen einem Host-Server und der Speichersteuereinheit gibt, welche unterschiedliche Leistungsmerkmale aufweisen – ein Benutzer könnte zum Beispiel über zwei FC SANs verfügen, eines, das unter Verwendung der 4-Gbit/s-Technologie und ein anderes, das unter Verwendung der 8-Gbit/s-Technologie realisiert wurde.
  • Ein Pfadtyp-Auswahlalgorithmus kann einem Kunden als Dienst über ein Netzwerk zur Verfügung gestellt werden.
  • Dem Fachmann dürfte klar sein, dass das vollständige Verfahren oder ein Teil des Verfahrens der bevorzugten Ausführungsformen der vorliegenden Erfindung in geeigneter und nützlicher Weise in einer Logik-Vorrichtung oder in einer Vielzahl von Logik-Vorrichtungen umgesetzt werden kann, die Logikelemente umfasst bzw. umfassen, welche so angeordnet sind, dass sie die Schritte des Verfahrens durchführen, und dass solche Logikelemente Hardware-Komponenten, Firmware-Komponenten oder eine Kombination aus Hardware- und Firmware-Komponenten umfassen können.
  • Dem Fachmann dürfte ebenso klar sein, dass die gesamte Logik-Anordnung oder ein Teil der Logik-Anordnung gemäß den bevorzugten Ausführungsformen der vorliegenden Erfindung in geeigneter Weise in einer Logik-Vorrichtung realisiert werden kann, die Logikelemente umfasst, um die Schritte des Verfahrens durchzuführen, und dass solche Logikelemente Komponenten wie zum Beispiel Logikgatter in beispielsweise einer programmierbaren logischen Anordnung oder einer anwendungsspezifischen integrierten Schaltung umfassen können. Eine solche logische Anordnung kann darüber hinaus in Elementen realisiert werden, die eine solche Realisierung möglich machen, um zeitweise oder dauerhaft logische Strukturen in einer solchen Anordnung oder Schaltung aufzubauen, wobei beispielsweise eine virtuelle Hardware-Beschreibungssprache verwendet wird, die mittels fester oder übertragbarer Trägermedien gespeichert und übertragen werden. kann.
  • Es dürfte sich verstehen, dass das vorstehend beschriebene Verfahren und die vorstehend beschriebene Anordnung ebenfalls in geeigneter Weise ganz oder teilweise in Software ausgeführt werden können, die auf einem oder mehreren Prozessoren (in den Figuren nicht gezeigt) ausgeführt wird, und dass die Software in Form von einem oder mehreren Computerprogramm-Elementen bereitgestellt werden kann, die sich auf einem beliebigen geeigneten Datenträger (in den Figuren ebenfalls nicht gezeigt), wie zum Beispiel einer Magnetplatte oder einer optischen Platte oder dergleichen, befinden. Kanäle für die Übertragung der Daten können ebenso Speichermedien unterschiedlichster Beschreibung sowie Signalübertragungsmedien, wie zum Beispiel drahtgebundene oder drahtlose Signalübertragungsmedien, umfassen.
  • Unter einem Verfahren versteht man im Allgemeinen eine in sich abgeschlossene Folge von Schritten, die zu einem gewünschten Ergebnis führt. Diese Schritte erfordern eine physische Beeinflussung von physischen Größen. Gewöhnlich, jedoch nicht notwendigerweise, haben diese Größen die Form von elektrischen oder magnetischen Signalen, die gespeichert, übertragen, verknüpft, verglichen oder in anderer Weise verarbeitet werden können. Zuweilen ist es praktisch, hauptsächlich weil es allgemein üblich ist, diese Signale als Bits, Werte, Parameter, Gegenstände, Elemente, Objekte, Symbole, Zeichen, Zahlen oder dergleichen oder sie mit Begriffen zu bezeichnen. Es sei jedoch angemerkt, dass all diese Bezeichnungen und ähnliche Bezeichnungen den entsprechenden physischen Größen zugeordnet werden müssen und es sich dabei lediglich um praktische Begriffe handelt, die auf diese Größen angewendet werden.
  • Die vorliegende Erfindung kann überdies in geeigneter Weise als ein Computerprogrammprodukt zur Verwendung mit einem Computersystem realisiert werden. Eine solche Realisierung kann eine Reihe von computerlesbaren Befehlen umfassen, die sich entweder fest auf einem physisch greifbaren Datenträger wie einem computerlesbaren Datenträger, zum Beispiel einer Diskette, einer CD-ROM, einem ROM oder einer Festplatte, befinden, oder die über einen Modem oder eine andere Schnittstelleneinheit entweder über ein physisch greifbares Medium, das optische oder analoge Übertragungsleitungen umfasst, ohne darauf beschränkt zu sein, oder in physisch nicht greifbarer Weise unter Verwendung von drahtlosen Verfahren, die Mikrowellen-, Infrarot- oder andere Übertragungstechniken umfassen, ohne darauf beschränkt zu sein, an ein Computersystem übertragen werden können. Die Reihe der computerlesbaren Befehle schließt die gesamte Funktionalität oder einen Teil der Funktionalität, die zuvor hier beschrieben wurde, ein.
  • Der Fachmann versteht, dass solche computerlesbaren Befehle in mehreren Programmiersprachen zur Verwendung mit vielen Computerarchitekturen oder Betriebssystemen geschrieben werden können. Des Weiteren können solche Befehle unter Verwendung einer beliebigen aktuellen oder zukünftigen Speichertechnologie, die Halbleiter-, Magnet- oder optische Speicher umfasst, ohne darauf beschränkt zu sein, gespeichert oder unter Verwendung einer beliebigen aktuellen oder zukünftigen Übertragungstechnologie, zu der die Infrarot- oder Mikrowellenübertragung gehört, ohne darauf beschränkt zu sein, übertragen werden. Es ist vorgesehen, dass ein solches Computerprogrammprodukt als ein auswechselbarer Datenträger mit Begleitdokumentation, die als Druckversion oder in elektronischer Form bereitgestellt wird, zum Beispiel als in Folie eingeschweißte Software, vorinstalliert mit einem Computersystem, beispielsweise auf einem System-ROM oder einer Festplatte oder von einem Server oder einem elektronischen Schwarzen Brett über ein Netzwerk, beispielsweise das Internet oder das World Wide Web, vertrieben werden kann.
  • Bei einer Alternative kann die bevorzugte Ausführungsform der vorliegenden Erfindung in Form von einem von einem Computer ausgeführten Verfahren zum Installieren eines Dienstes realisiert werden, der Schritte zum Installieren eines Computerprogrammcodes umfasst, welcher so beschaffen ist, dass er, wenn er in einer Computerinfrastruktur installiert und darauf ausgeführt wird, das Computersystem veranlasst, alle Schritte des Verfahrens durchzuführen.
  • Bei einer weiteren Alternative kann die bevorzugte Ausführungsform der vorliegenden Erfindung in Form von einem Datenträger realisiert werden, auf dem sich funktionale Daten befinden, wobei die funktionalen Daten funktionale Computerdatenstrukturen umfassen, um, wenn sie in ein Computersystem geladen und von diesem Operationen daran ausgeführt werden, das Computersystem in die Lage zu versetzen, alle Schritte des Verfahrens durchzuführen.
  • Des Weiteren sei angemerkt, dass jedwede in der vorliegenden Offenbarung der Erfindung beschriebenen Verfahren durch die Verwendung eines VHDL-(VHSIC-Hardware-Description-Language-)Programms und eines VHDL-Chips realisiert werden können. VHDL ist eine beispielhafte Entwurfs-Einstiegssprache für kundenprogrammierbare Universalschaltkreise (Field Programmable Gate Arrays (FPGAs)), anwendungsspezifische integrierte Schaltungen (Application Specific Integrated Circuits (ASICs)) und andere ähnliche elektronische Einheiten. Folglich kann jedes in Software ausgeführte Verfahren, das hier beschrieben wird, von einem auf Hardware beruhenden VHDL-Programm nachgebildet werden, das dann auf einen VHDL-Chip wie zum Beispiel einen FPGA angewendet wird.
  • Dem Fachmann dürfte klar sein, dass viele Verbesserungen und Änderungen an der vorstehenden beispielhaften Ausführungsform vorgenommen werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen.

Claims (15)

  1. Verfahren zum Verteilen des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk (SAN), wobei das Verfahren Folgendes umfasst: Verfügen über Möglichkeiten, um eine E/A-Anforderung an einen ersten Typ eines Speicherbereichsnetzwerk (SAN) zu senden und eine E/A-Anforderung an einen zweiten Typ eines Speicherbereichsnetzwerk (SAN) zu senden, wobei der erste Speicherbereichsnetzwerk-Typ ein Leistungsmerkmal in Form von einer höheren Anzahl von E/A-Operationen pro Sekunde als der zweite Speicherbereichsnetzwerk-Typ aufweist; Empfangen (401) einer E/A-Anforderung; und Feststellen (402) der Länge der E/A-Anforderung: wenn die Länge eine Schwellwert-Länge unterschreitet, Senden (403) der E/A-Anforderung an den ersten Speicherbereichsnetzwerk-Typ; wenn die Länge eine Schwellwert-Länge überschreitet, Senden (408) der E/A-Anforderung an den zweiten Speicherbereichsnetzwerk-Typ.
  2. Verfahren nach Anspruch 1, das Folgendes umfasst: Feststellen (407), ob eine Bandbreite des zweiten Speicherbereichsnetzwerk-Typs für einen Zeitraum voll in Anspruch genommen wird, und wenn sie voll in Anspruch genommen wird, Senden (403) einer E/A-Anforderung mit einer Länge über der Schwellwert-Länge an den ersten Speicherbereichsnetzwerk-Typ.
  3. Verfahren nach Anspruch 2, wobei das Feststellen (407), ob eine Bandbreite voll in Anspruch genommen wird, Folgendes umfasst: Feststellen, ob die Gesamtlängen der E/A-Anforderungen in einem bestimmten Zeitraum eine Schwellwert-Bandbreite überschreiten.
  4. Verfahren nach Anspruch 3, welches das Abstimmen der Schwellwert-Bandbreite und des bestimmten Zeitraums auf die verfügbare Bandbreite des zweiten Speicherbereichsnetzwerk-Typs umfasst.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei der erste Speicherbereichsnetzwerk-Typ ein Speicherbereichsnetzwerk vom Typ Fibre Channel (FC) ist, das eine erste Bandbreite hat, und wobei der zweite SAN-Typ ein SAN vom Typ Fibre Channel (FC) ist, das eine zweite Bandbreite hat, die geringer als die erste Bandbreite ist.
  6. Multi-Pathing-Treiber (111) für ein Speicherbereichsnetzwerk-System, wobei der Treiber (111) über Möglichkeiten verfügt, um eine E/A-Anforderung an einen ersten Typ eines Speicherbereichsnetzwerks (121) zu senden und eine E/A-Anforderung an einen zweiten Typ eines Speicherbereichsnetzwerks (122) zu senden, wobei der erste Speicherbereichsnetzwerk-Typ (121) ein Leistungsmerkmal in Form von einer höheren Anzahl von E/A-Operationen pro Sekunde als der zweite Speicherbereichsnetzwerk-Typ (122) aufweist, wobei der Treiber (111) Folgendes umfasst: eine Verbindung zu einem ersten Speicherbereichsnetzwerk-Typ (121); eine Verbindung zu einem zweiten Speicherbereichsnetzwerk-Typ (122); einen Empfänger für E/A-Anforderungen (201); eine Pfadtyp-Auswahlkomponente (112), die Folgendes umfasst: eine Komponente zum Feststellen der Länge einer E/A-Anforderung (202), um festzustellen, ob die Länge einer E/A-Anforderung eine Schwellwert-Länge unter- oder überschreitet; eine Pfadtyp-Auswahleinheit (204), um auf der Grundlage der Länge der E/A-Anforderung den ersten Speicherbereichsnetzwerk-Typ oder den zweiten Speicherbereichsnetzwerk-Typ (121, 122) auszuwählen.
  7. Treiber nach Anspruch 6, wobei die Pfadtyp-Auswahlkomponente (112) Folgendes umfasst: eine Komponente für kumulative E/A-Anforderungen (203), um festzustellen, ob eine Bandbreite des zweiten Speicherbereichsnetzwerk-Typs (122) für einen Zeitraum voll in Anspruch genommen wird, und wenn sie voll in Anspruch genommen wird, Senden einer E/A-Anforderung mit einer Länge über der Schwellwert-Länge durch die Pfadtyp-Auswahleinheit an den ersten Speicherbereichsnetzwerk-Typ (121).
  8. Treiber nach Anspruch 7, wobei die Komponente für kumulative E/A-Anforderungen (203), die zur Feststellung dient, ob eine Bandbreite voll in Anspruch genommen wird, Folgendes umfasst: Feststellen, ob die Gesamtlängen der E/A-Anforderungen in einem bestimmten Zeitraum eine Schwellwert-Bandbreite überschreiten.
  9. Treiber nach Anspruch 8, wobei die Pfadtyp-Auswahlkomponente (112) Folgendes umfasst: eine Abstimmkomponente (209), um die Schwellwert-Bandbreite und den bestimmten Zeitraum auf die verfügbare Bandbreite des zweiten Speicherbereichsnetzwerk-Typs (122) abzustimmen.
  10. Treiber nach einem der Ansprüche 6 bis 9, der Folgendes umfasst: eine Pfadtyp-Erkennungskomponente (210), um den jeweiligen Typ des ersten Speicherbereichsnetzwerk-Typs und des zweiten Speicherbereichsnetzwerk-Typs (121, 122) von einem Übertragungstreiber der unteren Ebene zu erkennen.
  11. Treiber nach einem der Ansprüche 6 bis 9, der Folgendes umfasst: eine Pfadtyp-Einstellkomponente (211), um eine Benutzerkonfiguration des jeweiligen Typs des ersten Speicherbereichsnetzwerk-Typs und des zweiten Speicherbereichsnetzwerk-Typs (121, 122) zu empfangen.
  12. Treiber nach einem der Ansprüche 6 bis 11, wobei der erste Speicherbereichsnetzwerk-Typ (121) ein Fibre-Channel-(FC-)Speicherbereichsnetzwerk und der zweite Speicherbereichsnetzwerk-Typ (122) ein auf der Internet Small Computer System Interface (iSCSI) beruhendes Speicherbereichsnetzwerk ist.
  13. Treiber nach einem der Ansprüche 6 bis 11, wobei der erste Speicherbereichsnetzwerk-Typ (121) ein Speicherbereichsnetzwerk vom Typ Fibre Channel (FC) ist, das eine erste Bandbreite hat, und wobei der zweite Speicherbereichsnetzwerk-Typ (122) ein Speicherbereichsnetzwerk vom Typ Fibre Channel (FC) ist, das eine zweite Bandbreite hat, die geringer als die erste Bandbreite ist.
  14. Speicherbereichsnetzwerk-System, das Folgendes umfasst: einen Host-Server (110), der über einen Multi-Pathing-Treiber (111) verfügt; eine Speichersteuereinheit (131), um den Zugriff auf mehrere Speichereinheiten (132 bis 134) zu ermöglichen; einen ersten Speicherbereichsnetzwerk-Typ (121), der den Host-Server (110) mit einer Speichersteuereinheit (131) verbindet; einen zweiten Speicherbereichsnetzwerk-Typ (122), der den Host-Server (110) mit der Speichersteuereinheit (131) verbindet; wobei der Multi-Pathing-Treiber (111) Folgendes umfasst: einen Empfänger für E/A-Anforderungen (201); eine Pfadtyp-Auswahlkomponente (112), die Folgendes umfasst: eine Komponente zum Feststellen der Länge einer E/A-Anforderung (202), um festzustellen, ob die Länge einer E/A-Anforderung eine Schwellwert-Länge unter- oder überschreitet; und eine Pfadtyp-Auswahleinheit (204), um auf der Grundlage der Länge der E/A-Anforderung den ersten Speicherbereichsnetzwerk-Typ oder den zweiten Speicherbereichsnetzwerk-Typ (121, 122) auszuwählen.
  15. Computerprogramm, das auf einem computerlesbaren Datenträger gespeichert ist und in den internen Speicher eines digitalen Computers geladen werden kann, wobei das Computerprogramm Teile von Software-Code umfasst, wenn das Programm auf einem Computer ausgeführt wird, um das Verfahren nach einem der Ansprüche 1 bis 5 durchzuführen.
DE102012206283A 2011-05-06 2012-04-17 Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk Active DE102012206283B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP11165029 2011-05-06
EP11165029.7 2011-05-06

Publications (2)

Publication Number Publication Date
DE102012206283A1 DE102012206283A1 (de) 2012-11-08
DE102012206283B4 true DE102012206283B4 (de) 2013-04-11

Family

ID=46330627

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012206283A Active DE102012206283B4 (de) 2011-05-06 2012-04-17 Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk

Country Status (3)

Country Link
US (3) US8732334B2 (de)
DE (1) DE102012206283B4 (de)
GB (1) GB2490591B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11962455B2 (en) 2021-11-29 2024-04-16 T-Mobile Usa, Inc. Prioritizing multiple issues associated with a wireless telecommunication network

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012206283B4 (de) * 2011-05-06 2013-04-11 International Business Machines Corporation Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk
US10250579B2 (en) * 2013-08-13 2019-04-02 Alcatel Lucent Secure file transfers within network-based storage
CN104423889B (zh) 2013-08-26 2017-06-16 国际商业机器公司 一种多路径管理方法和***
US9537743B2 (en) 2014-04-25 2017-01-03 International Business Machines Corporation Maximizing storage controller bandwidth utilization in heterogeneous storage area networks
CN104111805B (zh) * 2014-07-15 2017-06-13 华为技术有限公司 一种i/o请求处理方法及存储***
US9979662B2 (en) 2015-04-17 2018-05-22 International Business Machines Corporation Storage area network workload balancing
CN106059945B (zh) * 2016-05-13 2019-08-27 浙江宇视科技有限公司 一种流量控制方法及视频监控***
CN106055441B (zh) * 2016-05-31 2019-06-14 深圳市同泰怡信息技术有限公司 一种linux***下服务器的网口性能测试方法及***
US10114567B1 (en) 2016-09-30 2018-10-30 EMC IP Holding Company LLC Data processing system with efficient path selection for storage I/O operations
US10440113B2 (en) 2017-05-02 2019-10-08 International Business Machines Corporation Storage network tiering

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090031057A1 (en) * 2007-07-24 2009-01-29 International Business Machines Corporation Methods, systems and computer products for user-managed multi-path performance in balanced or unbalanced fabric configurations
US20100153612A1 (en) * 2008-12-15 2010-06-17 Lsi Corporation Transport agnostic scsi i/o referrals

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434631B1 (en) * 1999-10-15 2002-08-13 Lucent Technologies Inc. Method and system for providing computer storage access with quality of service guarantees
US7165096B2 (en) * 2000-12-22 2007-01-16 Data Plow, Inc. Storage area network file system
JP4818812B2 (ja) * 2006-05-31 2011-11-16 株式会社日立製作所 フラッシュメモリストレージシステム
JP3848587B2 (ja) * 2002-03-15 2006-11-22 株式会社日立製作所 情報処理装置および通信路選択方法
US7275103B1 (en) 2002-12-18 2007-09-25 Veritas Operating Corporation Storage path optimization for SANs
US7631023B1 (en) * 2004-11-24 2009-12-08 Symantec Operating Corporation Performance-adjusted data allocation in a multi-device file system
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
US20090228669A1 (en) * 2008-03-10 2009-09-10 Microsoft Corporation Storage Device Optimization Using File Characteristics
US9325583B2 (en) * 2009-01-27 2016-04-26 Hewlett Packard Enterprise Development Lp Method and system for optimizing network input/output performance
JP5228988B2 (ja) * 2009-02-23 2013-07-03 富士通株式会社 割当制御プログラム及び割当制御装置
US8381025B2 (en) * 2009-09-30 2013-02-19 Cleversafe, Inc. Method and apparatus for dispersed storage memory device selection
EP2502403A2 (de) * 2009-11-18 2012-09-26 Yissum Research Development Company of the Hebrew University of Jerusalem, Ltd. Kommunikationssystem und verfahren zur verwaltung von datentransfer über ein kommunikationsnetz
DE102012206283B4 (de) 2011-05-06 2013-04-11 International Business Machines Corporation Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090031057A1 (en) * 2007-07-24 2009-01-29 International Business Machines Corporation Methods, systems and computer products for user-managed multi-path performance in balanced or unbalanced fabric configurations
US20100153612A1 (en) * 2008-12-15 2010-06-17 Lsi Corporation Transport agnostic scsi i/o referrals

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11962455B2 (en) 2021-11-29 2024-04-16 T-Mobile Usa, Inc. Prioritizing multiple issues associated with a wireless telecommunication network

Also Published As

Publication number Publication date
US20120284424A1 (en) 2012-11-08
DE102012206283A1 (de) 2012-11-08
GB201207614D0 (en) 2012-06-13
GB2490591B (en) 2013-12-11
US20130219079A1 (en) 2013-08-22
US8732334B2 (en) 2014-05-20
US9621466B2 (en) 2017-04-11
GB2490591A (en) 2012-11-07
US20140258495A1 (en) 2014-09-11
US8788702B2 (en) 2014-07-22

Similar Documents

Publication Publication Date Title
DE102012206283B4 (de) Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk
DE112004002797B4 (de) Ausfallsicherung und Lastausgleich
DE602004011467T2 (de) Speichersteuerungssystem und -verfahren
EP2880534B1 (de) Hochverfügbares rechnersystem, arbeitsverfahren und dessen verwendung
DE112012001753B4 (de) 3 -Anmeldesequenz für eine Fibre-Channel-Weiterleiterstruktur
DE102015119889A1 (de) Verfahren für Netzwerkvorrichtungsfluss-Look-up-Verwaltung
DE112017002941T5 (de) Arbeitslastoptimierte Datendeduplizierung mittels Phantomfingerabdrücken
DE102015118711B4 (de) Technologien zur Netzwerkpaketcacheverwaltung
DE112006001167T5 (de) Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken
DE112016001663T5 (de) Empfangen von Pufferkrediten durch eine Vielzahl von Kanälen von einer oder mehreren Host-Recheneinheiten, um Daten an eine Steuereinheit zu übertragen
DE112010003594B4 (de) Vorrichtung, Verfahren und Computerprogramm zum Betreiben eines verteilten Gruppenspeichernetzes für Schreibvorgänge
DE112011100822T5 (de) Aufrechterhalten der Durchlässigkeit eines Datenübertragungspfades in einem Datenspeichernetzwerk
DE102009031126A1 (de) Aktivieren der funktionalen Abhängigkeit in einem Multifunktionsgerät
DE202016009092U1 (de) System zum Ausgleichen von Speicherdatenverkehr in konvergierten Netzwerken
DE202019005816U1 (de) System zur Aufrechterhaltung der Fehlertoleranz einer Speichervorrichtung in einer zusammensetzbaren Infrastruktur
DE112013000808T5 (de) Dekodierdaten zur schnellen Dekodierung von Adressen von PCI-Express-Multifunktionseinheiten
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank
DE112018000900T5 (de) Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem
DE112019005392T5 (de) Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen
DE102018131983A1 (de) Switch-unterstützte datenspeicher-netzwerkverkehrsverwaltung in einem rechenzentrum
DE112012002796T5 (de) Übertragen von in virtuellen Datenträgern organisierten deduplizierten Daten in einen Zielsatz von physischen Medien
DE112021001408T5 (de) Verwendung kohärent verbundener schnittstellen in einem netzwerkstapelrahmen
DE112021001470T5 (de) Konfigurieren von datenverarbeitungsknoten in einer dreidimensionalen netztopologie
DE112019000421T5 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112018005135T5 (de) Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage

Legal Events

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

Effective date: 20130712

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0029040000

Ipc: H04L0069140000