[go: up one dir, main page]

DE10209803A1 - Verfahren und Vorrichtung zum Liefern eines Dateisystemzugriffs auf ein Plattenarray - Google Patents

Verfahren und Vorrichtung zum Liefern eines Dateisystemzugriffs auf ein Plattenarray

Info

Publication number
DE10209803A1
DE10209803A1 DE10209803A DE10209803A DE10209803A1 DE 10209803 A1 DE10209803 A1 DE 10209803A1 DE 10209803 A DE10209803 A DE 10209803A DE 10209803 A DE10209803 A DE 10209803A DE 10209803 A1 DE10209803 A1 DE 10209803A1
Authority
DE
Germany
Prior art keywords
file system
file
redirectable
program code
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE10209803A
Other languages
English (en)
Other versions
DE10209803B4 (de
Inventor
Douglas L Voigt
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE10209803A1 publication Critical patent/DE10209803A1/de
Application granted granted Critical
Publication of DE10209803B4 publication Critical patent/DE10209803B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

Ein Datenspeichersystem umfaß Dateisystemprozesse, Arraysteuerungsprozesse und eines oder mehrere Datenspeichergeräte, auf die durch die Arraysteuerungsprozesse zugegriffen wird. Bestimmte Dateisystemzugriffsoperationen werden von den Dateisystemprozessen so umgeleitet, daß die Arraysteuerungsprozesse direkt die angeforderte Zugriffsoperation durchführen können. Die Arraysteuerungsprozesse kommunizieren dann mit den Dateisystemprozessen, so daß die Dateisystemprozesse die Dateisystemdatenverwaltungsanordnung geeignet aktualisieren können. Auf diese Weise wird die hierarchische Dateisystemverwaltung beibehalten, während auf das Speichermedium direkt durch die Arraysteuerungsprozesse, ansprechend auf eine Dateisystemzugriffsoperationsanforderung, zugegriffen werden kann.

Description

Diese Erfindung bezieht sich auf Datenspeichersysteme, die mit Computern und Computernetzen verwendet werden. Insbe­ sondere bezieht sich die Erfindung auf ein Verfahren und eine Vorrichtung zum Beschleunigen eines Dateisystem­ zugriffs auf ein Plattenarray. Die Erfindung umfaßt sowohl ein Datenspeichersystem als auch ein Verfahren zum Zugrei­ fen auf eine Datenspeichervorrichtung. Außerdem umfaßt die Erfindung ein Programmprodukt zum Bedienen von Dateisystem­ zugriffsoperationsanforderungen von einem Dateisystemklien­ ten.
Dateisysteme oder "File-Systeme" und Plattenarrays verwen­ den zwei unterschiedliche Verfahren zum Zugreifen auf Da­ ten, die auf einem Datenspeichermedium gespeichert sind. Die beiden Verfahren unterscheiden sich durch eine Zahl von Charakteristika. Bei einem Dateisystem wird z. B. auf Da­ teien unter Verwendung einer Dateiabstraktion zugegriffen. Dies bedeutet, daß Daten durch eine Datei dargestellt wer­ den, die geöffnet, geschlossen, erzeugt, gelöscht, gelesen und geschrieben werden kann. Daten werden in einem Dateisy­ stem durch eine Hierarchie von Dateien und Verzeichnissen verwaltet. Diese hierarchische Datenverwaltung wird allge­ mein als ein wesentlicher Vorteil gegenüber anderen Daten­ verwaltungsschemata betrachtet. Dateisysteme unterstützen auch sowohl eine gemeinschaftliche Verwendung von Daten als auch eine gemeinschaftliche Verwendung eines Datenspeicher­ geräts. Die Sicherheit in Datenspeichergeräten basiert auf Datei- und Verzeichnispegelzugriffssteuerungslisten, die als ein Teil der Dateisystemprotokolle standardisiert sind. Ein weiterer Vorteil von Dateisystemen besteht darin, daß eine Klient/Server-Kompatibilität auf einer kleinen Zahl von gut unterstützen Protokollen basiert. Die Dateisystem­ leistung wird jedoch durch Dateiabbildungsanordnungen, die sich auf einer Datenspeicherplatte befinden, reduziert, wo­ bei dieselben Daten für eine Datei an physischen oder vir­ tuellen Orten des Speichermediums, das einem Datenspeicher­ gerät zugeordnet ist, abbilden müssen.
Ein Plattenarray ist ein Speichersystem, das eine Zahl von separaten Speichergeräten oder -Platten verwendet und Daten über alle der separaten Geräte verwaltet. Diese Plattenar­ rayspeichersysteme sind zum Implementieren von Datenspei­ cherredundanzschemata weit verbreitet, um vor Fehlern ein­ zelner Speichergeräte zu schützen. Im Gegensatz zu einem Dateisystem wird auf Daten in einem Plattenarray unter Ver­ wendung einer Blockspeicherabstraktion zugegriffen. Dies bedeutet, daß Daten auf große zusammenhängende Speicherräu­ me oder logische Einheiten abgebildet werden, und daß auf dieselben als Blöcke, die in diesen logischen Einheiten enthalten sind, zugegriffen wird. Jeder Block in einer lo­ gischen Einheit stellt eine bestimmte Menge von Datenspei­ cherraum dar, üblicherweise einen Speicherraum von 512 Bytes. Die gespeicherten Daten in einem Plattenarray werden als physische und virtuelle Datenspeichergeräte verwaltet, die durch Volumina und/oder logischer Einheiten dargestellt sind. Obwohl die Blockspeicherabstraktion die Geschwindig­ keit verbessern kann, mit der große Datenmengen geschrieben und von den Speichergeräten wiedergewonnen werden können, gibt es eine Zahl von Nachteilen, die Plattenarrays vergli­ chen mit Dateisystemen zugeordnet sind. Ein Nachteil be­ steht darin, daß die Klient/Server-Kompatibilität für Plat­ tenarrays einer Vielzahl von Beschränkungen unterworfen ist, die unter den Klienten und Servern variieren. Außerdem unterstützen Plattenarrays nur eine gemeinschaftliche Ver­ wendung des Geräts, nicht jedoch die der Daten. Ferner ba­ siert die Sicherheit in Geräten auf lieferantenspezifischen Merkmalen.
Fig. 1 liefert eine schematische Darstellung einer Anord­ nung des Stands der Technik zwischen einem Plattenarraysy­ stem 100 und einem Dateisystem 101. Die Anordnung umfaßt ein Array physischer Speichergeräte 102, die Plattenlauf­ werke sein können, die jeweils zur Kommunikation mit einer Arraysteuerung 103 verbunden sind. Die Arraysteuerung 103 ist ein Verarbeitungsgerät, das Arraysteuerungsprogrammpro­ zesse ausführt, um Geräte 102 zu steuern und die Daten, die über die Geräte gespeichert sind, zu verwalten. Die Array­ steuerung 103 kommuniziert mit einem Hostcomputer 104 durch eine geeignete Kommunikationsanordnung, die durch eine Li­ nie 105 dargestellt ist. Das Dateisystem 101 ist durch Com­ puterprogrammprozesse implementiert, die durch einen Pro­ zessor an dem Hostcomputer 104 ausgeführt werden. Obwohl Fig. 1 die Arraysteuerung separat von dem Hostcomputer zeigt, kombinieren einige Plattenarraysysteme des Stands der Technik die Funktionen der Arraysteuerung und des Host­ prozessors in einem einzelnen Verarbeitungsgerät, das dem Plattenarraysystem zugeordnet ist. Die Kooperation zwischen der Plattenarraysteuerung 103 und dem Dateisystem 101 ist im allgemeinen die gleiche, und zwar unabhängig davon, ob die Arraysteuerungs- und die Dateisystemprozesse auf einem einzelnen Verarbeitungsgerät oder separaten Verarbeitungs­ geräten durchgeführt werden.
Bei dem System 100 des Stands der Technik, das in Fig. 1 gezeigt ist, kann man sich das Dateisystem und Plattenar­ raysteuerungsprozesse als zwei separate Verarbeitungs­ schichten vorstellen, die kooperieren, um einen Zugriff auf das physische Medium, das in Speichergeräten 102 enthalten ist, zu liefern. Das Dateisystem 101 ist im wesentlichen zwischen den Dateisystemklienten (in Fig. 1 nicht gezeigt) und der Plattenarraysteuerung 103 eingefügt, die tatsäch­ lich einen Zugriff auf die Geräte 102 verwaltet und steu­ ert. Um zum Beispiel eine Datei zu lesen, legt ein Dateisy­ stemklient dem Dateisystem 101 eine Lesen-Operation- Anforderung vor. Dieser Dateisystemklient weist einen Pro­ grammprozeß auf, der an dem Hostcomputer 104 oder an einem Computer, der netzmäßig mit dem Hostcomputer verbunden ist, ausgeführt werden kann. In jedem Fall empfangen Dateisy­ stemprozesse die Anforderung von dem Dateisystemklienten und aktualisieren die Dateisystemdatenverwaltungsanordnung, die den Dateinamen, üblicherweise verschiedene Dateiattri­ bute, und Speicherzuweisungsinformationen speichert, die anzeigen, wo die Daten, die die Datei ausmachen, gespei­ chert sind. Das Dateisystem 101 gibt dann eine geeignete Instruktion an die Plattenarraysteuerung 103 aus. Die Ar­ raysteuerung 103 verarbeitet die Instruktion, um die ange­ forderten Dateidaten von einem oder mehreren Speichergerä­ ten 102 zu lesen. Die Daten, die von Speichergeräten 102 gelesen werden, werden zuerst in einen Speicher Cache­ gespeichert, der der Arraysteuerung 103 zugeordnet ist, und dann zu einem Cachespeicher geleitet, der dem Dateisystem 101 zugeordnet ist. Das Dateisystem 101 gibt dann die ange­ forderten Daten wie durch die Lesen-Operation angeleitet zurück. Dieser Schritt des Übertragens von Daten von der Plattenarraysteuerung 103 zu dem Dateisystem 101, bevor die Daten zu dem Dateisystem übertragen werden können, bringt einen Leistungsnachteil mit sich, insbesondere wenn die Da­ tei, auf die zugegriffen wird, eine große Datei ist.
Es ist die Aufgabe der vorliegenden Erfindung, ein verbes­ sertes Verfahren zum Zugreifen auf ein Datenspeichergerät, ein Programmprodukt mit verbesserten Charakteristika oder ein Datenspeichersystem mit verbesserten Charakteristika zu schaffen.
Diese Aufgabe wird durch ein Verfahren zum Zugreifen auf ein Datenspeichergerät gemäß Anspruch 1, ein Programmpro­ dukt gemäß Anspruch 15 oder 21 oder ein Datenspeichersystem gemäß Anspruch 26 gelöst.
Folglich besteht ein Vorteil dieser Erfindung darin, ein Verfahren und eine Vorrichtung zu schaffen, die die oben beschriebenen Probleme, die Datenspeichersystemen zugeord­ net sind, überwinden. Insbesondere besteht ein Vorteil die­ ser Erfindung darin, ein Verfahren und eine Vorrichtung zu schaffen, die bestimmte Dateisystemzugriffsoperationen au­ ßerhalb des Dateisystems durchführen, während die hierar­ chische Struktur des Dateisystems aufrechterhalten wird. Außerdem besteht ein Vorteil der vorliegenden Erfindung darin, ein Programmprodukt zum Bedienen von Dateisystem­ zugriffsoperationsanforderungen auf eine Weise zu schaffen, die den Dateisystemzugriff auf Dateien, die durch eine Plattenarrayimplementierung gespeichert sind, beschleunigt.
Diese Vorteile werden bei einem System, das Dateisystempro­ zesse, Arraysteuerungsprozesse und eines oder mehrere Da­ tenspeichergeräte umfaßt, auf die durch die Arraysteue­ rungsprozesse zugegriffen wird, erzielt. Gemäß der Erfin­ dung werden bestimmte Dateisystemzugriffsoperationen von den Dateisystemprozessen umgeleitet, so daß die Arraysteue­ rungsprozesse direkt die angeforderte Zugriffsoperation durchführen können. Die Arraysteuerungsprozesse kommunizie­ ren dann mit den Dateisystemprozessen, so daß die Dateisy­ stemprozesse die Dateisystemdatenverwaltungsanordnung ge­ eignet aktualisieren können. Auf diese Weise wird die er­ wünschte hierarchische Dateisystemverwaltung beibehalten, während auf das Speichermedium direkt durch die Arraysteue­ rungsprozesse ansprechend auf eine Dateisystemzugriffsope­ rationsanfrage zugegriffen werden kann. Dieser direkte Speichergerätzugriff für Dateisystemzugriffsoperationen ist insbesondere für große Dateien von Vorteil.
Der Ausdruck "Dateisystemprozesse", wie er in dieser Offen­ barung verwendet wird, bezieht sich auf Software oder einen Computerprogrammcode, der durch ein geeignetes Verarbei­ tungsgerät ausgeführt wird, um das Dateisystem zu implemen­ tieren. Dieser Programmcode umfaßt einen Code zum Implemen­ tieren einer Datenverwaltungsanordnung für das Dateisystem. Die Dateisystemdatenverwaltungsanordnung umfaßt Informatio­ nen für jede Datei, die durch das Dateisystem verwaltet wird, wobei diese Informationen in einer oder mehreren Da­ tentabellen gespeichert sein können, die den Dateinamen auf verschiedene Attribute für die Datei und auf Speicherzutei­ lungsinformationen für die Datei beziehen.
Der Ausdruck "Arraysteuerungsprozesse" bezieht sich auf die Software oder einen Computerprogrammcode, der durch ein ge­ eignetes Verarbeitungsgerät zum Steuern und Verwalten eines Arrays von Platten oder anderen physischen Speichergeräten ausgeführt wird. Diese Arraysteuerungsprozesse umfassen ei­ nen Programmcode zum Interpretieren eines empfangenen Be­ fehls und einen Abbildungscode zum Definieren logischer Einheiten in den physischen Speichergeräten und zum Abbil­ den von Daten an den verschiedenen logischen Einheiten und an Blöcken, die in den verschiedenen logischen Einheiten enthalten sind. Ein Beispiel von Arraysteuerungsprozessen ist in dem U.S.-Patent Nr. 5,392,244 beschrieben, wobei der gesamte Inhalt desselben hierin durch Bezugnahme aufgenom­ men wird. Bei diesem Beispiel werden die Arraysteuerungs­ prozesse durch eine Arraysteuerung, die separat von einem Großcomputer ist, durchgeführt, mit dem das dargestellte Plattenarray verbunden ist, während die Dateisystemprozesse durch einen Prozessor durchgeführt werden, der dem Hostcom­ puter zugeordnet ist.
Der Ausdruck "Dateisystemzugriffsoperationsanforderung", wie er in dieser Offenbarung verwendet wird, weist einen computerlesbaren Code auf, der eine Anforderung nach einer bestimmten Dateisystemoperation, die eine Datei ein­ schließt, darstellt. Dateisystemzugriffsoperationen umfas­ sen Operationen zum Erzeugen, Löschen, Öffnen, Schließen, Lesen oder Schreiben einer Datei. Diese Dateisystem­ zugriffsoperationsanforderungen werden dem Datenspeichersy­ stem gemäß der Erfindung durch Dateisystemklienten kommuni­ ziert, die mit dem System durch eine geeignete Computer­ netzkommunikationsanordnung verbunden sind. Dateisystem­ zugriffsoperationen, die von dem Typ oder der Klasse sind, die gemäß der Erfindung von den Dateisystemprozessen zu den Arraysteuerungsprozessen umgeleitet werden, werden in die­ ser Offenbarung als "umleitbare" Operationen bezeichnet. Die Klasse von umleitbaren Operationen kann vorzugsweise durch die Dateigröße definiert sein, obwohl jedes andere Dateiattribut oder jede Kombination von Attributen in dem Bereich der Erfindung verwendet werden kann. Zu Zwecken der Vereinfachung dieser Offenbarung wird angenommen, daß die Dateigröße das Attribut ist, das verwendet wird, um zu de­ finieren, ob eine Operation umleitbar ist oder nicht. Er­ zeugen-, Löschen-, Lesen- und Schreiben-Operationen, die sich auf eine große Datei beziehen, sind umleitbare Opera­ tionen, während Dateizugriffsoperationen, die sich auf eine kleine Datei beziehen, nicht umleitbare Operationen sind, es sei denn, es ist ein Aufhebungsmerkmal vorhanden, das die Behandlung der Operation unabhängig von der tatsächli­ chen Dateigröße vorgibt. Es ist ersichtlich, daß das System eine Definition dafür erfordert, was eine "große" Datei ausmacht. Diese Definition kann einfach eine Schwellenda­ teigröße sein, die in Bytes oder jeder anderen geeigneten Einheit dargestellt ist.
Das Verfahren gemäß der Erfindung umfaßt zuerst ein Empfan­ gen einer Dateisystemzugriffsoperationsanforderung und ein Bestimmen, ob die Anforderung eine Operation spezifiziert, die eine umleitbare Operation aufweist. Wenn die Datei­ zugriffsoperationsanforderung eine umleitbare Operation spezifiziert, umfaßt das Verfahren ein Umleiten der umleit­ baren Operation von den Dateisystemprozessen zu den Array­ steuerungsprozessen. Das Verfahren umfaßt als nächstes ein Durchführen der umleitbaren Operation mit den Arraysteue­ rungsprozessen und ein Aktualisieren der Dateisystemdaten­ verwaltungsanordnung mit Operationsergebnisinformationen von den Arraysteuerungsprozessen.
Der Dateisystemdatenverwaltungseintrag für jede Datei, die der Gegenstand einer umleitbaren Erzeugen-Operation war, wird von der normalen Struktur, die für Dateien verwendet wird, die der Gegenstand einer nicht umleitbaren Erzeugen- Operation waren, modifiziert. Ein normaler Dateisystemein­ trag für eine Datei kann den Dateinamen und verschiedene Dateiattribute gemeinsam mit Informationen hinsichtlich tatsächlicher oder virtueller Speicherraumorte umfassen, die für Daten, die die Datei bilden, zugeordnet sind. Gemäß der vorliegenden Erfindung jedoch schneidet das Dateisystem seinen Datenverwaltungseintrag für eine Datei, die der Ge­ genstand einer umleitbaren Erzeugen-Operation ist, ab. Ins­ besondere wird der Eintrag abgeschnitten, um eine Referenz auf die logische Einheit, der die Datei zugeordnet wurde, anstelle von Informationen hinsichtlich Speicherraumorten zu enthalten, die für die Datei durch das Dateisystem zuge­ wiesen sind. Diese Informationen der logischen Einheit wer­ den durch die Arraysteuerungsprozesse als Operationsergeb­ nisinformationen geliefert und sind anstelle der Dateisy­ stemortzuteilungsinformationen für die Datei vorhanden. Da­ teisystemraumzuteilungsinformationen für die Datei sind nicht verfügbar oder notwendig, da das Dateisystem keinen Dateisystemraum für die Datei zuteilt, wobei Speicherraum statt dessen durch die Arraysteuerungsprozesse zugeteilt und verwaltet wird.
Die Operationsergebnisinformationen, die verwendet werden, um die Dateisystemdatenverwaltungsanordnung für Operationen zu aktualisieren, die direkt durch die Arrayprozesse ge­ handhabt werden, hängen von der Natur der Operation ab. Für eine umleitbare Erzeugen-Operation umfassen die Operations­ ergebnisinformationen die Referenz auf die logische Ein­ heit, bei der die Arraysteuerungsprozesse bewirken, daß die Datei gespeichert wird. Wenn die Operation eine umleitbare Lesen-Operation ist, können die Operationsergebnisinforma­ tionen eine Anzeige oder einen Empfang von den Arraysteue­ rungsprozessen umfassen, um zu zeigen, daß die Lesen- Operation fertiggestellt wurde. Diese Operationsergebnisin­ formationen werden alle verwendet, um die Dateisystemdaten­ verwaltungsanordnung zu aktualisieren, so daß alle Funktio­ nen des Dateisystems aufrechterhalten werden, insbesondere einschließlich des Verzeichnisses und der Dateihierarchie.
Ein Datenspeichersystem gemäß der Erfindung umfaßt ein Da­ tenspeichergerät, das ein Speichermedium aufweist, auf dem Daten gespeichert werden können. Die bevorzugte Form der Erfindung umfaßt tatsächlich ein Array von Massendatenspei­ chergeräten, wie z. B. Plattenlaufwerken. Das Datenspei­ chersystem umfaßt auch eines oder mehrere Datenverarbei­ tungsgeräte oder Datenverarbeitungseinrichtungen. Eine Ein­ gangs/Ausgangs-Anordnung ist mit der Datenverarbeitungsein­ richtung zum Weiterleiten von Kommunikationen zwischen ei­ nen Dateisystemklienten und der Datenverarbeitungseinrich­ tung verbunden, während eine Schnittstelle zwischen der Da­ tenverarbeitungseinrichtung und dem Datenspeichergerät Kom­ munikationen zwischen diesen Elementen des Systems erleich­ tert. Die Datenverarbeitungseinrichtung führt die Dateisy­ stem- und Arraysteuerungsprozesse aus und führt die oben Bezug nehmend auf das Verfahren gemäß der Erfindung be­ schriebenen Funktionen durch. Insbesondere bestimmt die Da­ tenverarbeitungseinrichtung, ob eine Dateisystemzugriffs­ operationsanforderung eine umleitbare Operation umfaßt. Wenn die Anforderung eine umleitbare Operation umfaßt, wird die Verarbeitungseinrichtung programmiert, um die umleitba­ re Operation zu den Arraysteuerungsprozessen zu leiten, so daß diese Prozesse die Operation durchführen können. Die Datenverarbeitungseinrichtung ist ebenfalls programmiert, um die Dateisystemdatenverwaltungsanordnung unter Verwen­ dung von Operationsergebnisinformationen für die umleitbare Operation zu aktualisieren.
Das Datenspeichersystem und das Zugriffsverfahren gemäß der Erfindung liefern alle Vorteile von sowohl Dateisystemen als auch Plattenarrays ohne die normalerweise vorhandenen Nachteile. Insbesondere werden Daten gemäß der gemeinsamen Dateiabstraktion gemäß einem Verzeichnis und einer Datei­ hierarchie verwaltet. Auf kleine Dateien kann auf die nor­ male Weise mit den Dateisystemprozessen, die mit den Array­ steuerungsprozessen kooperieren, zugegriffen werden. Auf große Dateien kann jedoch direkt durch die Arraysteuerungs­ prozesse zugegriffen werden, wenn auch der Zugriffsbefehl einen Dateisystembefehl aufweist und die Dateisystemhierar­ chie beibehalten wird. "Direkter Zugriff" bedeutet, daß die Arraysteuerungsprozesse eine große Datei von der Speiche­ rung zu dem Dateisystemklienten liefern, ohne daß die Daten für die Datei durch die Dateisystemprozesse geleitet werden müssen. Dieser direkte Zugriff für große Dateien erhöht die Systemleistung für große Dateien erheblich. Ferner kann das System die gemeinschaftliche Verwendung von sowohl Daten als auch einem Gerät zwischen Dateisystemklienten unter­ stützen, wobei die Sicherheit wie bei gewöhnlichen Dateisy­ stemen gehandhabt werden kann.
Diese sowie weitere Ziele, Vorteile und Merkmale der Erfin­ dung werden aus der folgenden Beschreibung der bevorzugten Ausführungsbeispiele Bezug nehmend auf die beigefügten Zeichnungen ersichtlich. Es zeigen:
Fig. 1 eine schematische Darstellung eines Plattenarray­ speichersystems des Stands der Technik, das mit einem Hostcomputer gekoppelt ist;
Fig. 2 eine schematische Darstellung eines Datenspei­ chersystems, das die Prinzipien der Erfindung enthält;
Fig. 3 eine schematische Darstellung, die Gruppierungen von verschiedenen Softwareprozessen zeigt, die bei dem Datenspeichersystem, das in Fig. 2 ge­ zeigt ist, operieren;
Fig. 4 eine schematische Darstellung, die die Interak­ tionen zwischen den verschiedenen Softwareprozes­ sen, die in Fig. 3 gezeigt sind, zeigt;
Fig. 5 ein Flußdiagramm, das die Prozeßschritte zeigt, die gemäß der Erfindung durchgeführt werden;
Fig. 6 eine Darstellung eines Eintrags in die Dateisy­ stemdatenverwaltungsanordnung gemäß der Erfin­ dung; und
Fig. 7 eine Darstellung eines Eintrags in eine Array­ steuerungsdatenverwaltungsanordnung gemäß der Er­ findung.
Bezug nehmend auf Fig. 2 umfaßt ein Datenspeichersystem 201, das die Prinzipien der Erfindung aufweist, eine Daten­ verarbeitungsanordnung 202 und ein Array 203a separater Speichergeräte 203. In der Form der Erfindung, die in Fig. 2 gezeigt ist, umfaßt die Datenverarbeitungsanordnung 202 zwei separate Prozessoren, eine Arraysteuerung 204 und ei­ nen Dateisystemprozessor 205. Ein Systembus 206 verbindet die beiden Prozessoren 204 und 205, einen Speichergerät­ adapter 207 und ein Eingangs/Ausgangs-Tor 208. Der separate Adapter 207, der in Fig. 2 gezeigt ist, liefern eine Schnittstelle mit dem Speichergerätbus 209. Außerdem ist ein Hardwareprotokollstapel 210 dem Eingangs/Ausgangs-Tor 208 zum Liefern von Netzkommunikationsdiensten zugeordnet, die es dem System 201 ermöglichen, mit einem Computernetz 211 zu kommunizieren. Das Computernetz 211 umfaßt einen oder mehrere Dateisystemklienten 212, die einen Dateisy­ stemzugriff auf das Speichersystem 201 haben. Diese Datei­ systemklienten 212 stellen separate Rechengeräte dar, wie z. B. Personalcomputer oder Arbeitsplatzrechner auf dem Netz 211.
Die einzelnen Speichergeräte 203, die in Fig. 2 gezeigt sind, weisen vorzugsweise Plattenlaufwerke oder andere ge­ eignete Massenspeichergeräte auf. Obwohl dies in Fig. 2 nicht gezeigt ist, ist zu erkennen, daß diese Speichergerä­ te 203 jeweils ein Schnittstellenverbindungselement und ei­ ne Treibersteuerung umfassen. Das Schnittstellenverbin­ dungselement ermöglicht es, daß das jeweilige Gerät mit dem Speichergerätbus 209 verbunden ist, wobei die Treibersteue­ rung ein Verarbeitungselement zum Ausführen eines Programm­ codes aufweist, um die Operation des bestimmten Speicherge­ räts zu steuern.
Das dargestellte Speichersystem 201 kann in einem Gehäuse (nicht gezeigt) untergebracht sein, das die Datenverarbei­ tungsanordnung 202, das Eingangs/Ausgangs-Tor 208 und die Protokollstapelhardware 210, den Speichergerätschnittstel­ lenadapter 207 und eines oder mehrere Speichergeräte 203 unterbringt. Der dargestellte Speichergerätbus 209 umfaßt ein externes Verbindungselement 213 zum Verbinden zusätzli­ cher Speichergeräte außerhalb des Systemgehäuses.
Die bestimmte Struktur des Speichersystems 201, das in Fig. 2 dargestellt ist, ist nur als eine bevorzugte Form der Er­ findung gezeigt. Viele Variationen bezüglich der Struktur sind in dem Bereich der Erfindung möglich. Obwohl z. B. zwei separate Datenverarbeitungsgeräte 204 und 205 in Fig. 2 gezeigt sind, ist es ersichtlich, daß alle Datenverarbei­ tungsfunktionen, die bei der Erfindung erforderlich sind, auf einem einzelnen Datenverarbeitungsgerät durchgeführt werden oder zwischen mehr als zwei Datenverarbeitungsgerä­ ten aufgeteilt sein können. Außerdem können die Funktionen, die durch den Speichergerätschnittstellenadapter 207, der in Fig. 2 gezeigt ist, geliefert werden, durch ein Verar­ beitungsgerät, das in der Verarbeitungseinrichtung 202 ent­ halten ist, durchgeführt werden. Die Funktionen, die durch den Protokollstapel 210, der in Fig. 2 gezeigt ist, gelie­ fert werden, können ebenso durch eine andere Verarbeitungs­ anordnung in dem System, wie z. B. die Verarbeitungsein­ richtung 202 durchgeführt werden. Ferner ist, obwohl ein externes Speichergerät 203 und vier interne Speichergeräte 203 zu Beispielzwecken in Fig. 2 gezeigt sind, die Erfin­ dung nicht auf diese oder eine andere Zahl von Speicherge­ räten beschränkt. Obwohl die Erfindung auf keinen bestimm­ ten Typ von Speichergeräten beschränkt ist, können die Ge­ räte SCSI-Geräte sein, wobei in diesem Fall der Bus 209 ei­ nen SCSI-Bus aufweisen würde und der Adapter 207 einen SCSI-Adapter. Der Systembus 206 kann jeden geeigneten Bus­ standard, wie z. B. PCI, aufweisen.
Für Fachleute ist es ebenfalls ersichtlich, daß es möglich ist, die vorliegende Erfindung in Verbindung mit einem Hostcomputer zu implementieren, und nicht als eine allein­ stehende Netzeinheit, die in Fig. 2 dargestellt ist. Bei dieser alternativen Implementierung können der Arraysteue­ rungsprozessor und der Speichergerätadapter auf einer hin­ zufügbaren Karte, wie z. B. einer PCI-Karte, implementiert sein, die mit dem PCI-Bus eines Hostcomputers zu verbinden ist, wobei die Speichergeräte alle außerhalb des Hostcompu­ ters sein könnten. Die Prozesse, die durch den Dateisystem­ prozessor 205 in Fig. 2 durchgeführt werden, würden bei dieser alternativen Form der Erfindung durch einen Prozes­ sor des Hostcomputers durchgeführt werden, wobei das Ein­ gangs/Ausgangs-Tor und der Protokollstapel des Hostcompu­ ters für Netzkommunikationen verwendet werden könnten.
Fig. 3 zeigt weitere Details der Programmprozesse, die durch die Datenverarbeitungsanordnung 202 unter der Steue­ rung eines Computerprogrammcodes gemäß der Erfindung durch­ geführt werden. Die Arraysteuerung 204 führt eine Zahl von Programmprozessen durch oder führt dieselben aus, wobei je­ der derselben in einem separaten Kasten gezeigt ist, die in dem Kasten 204 in Fig. 3 enthalten sind. Diese Arraysteue­ rungsprogrammprozesse werden durch einen Arraysteuerungs­ programmcode implementiert und werden in dieser Offenbarung kollektiv als Arraysteuerungsprozesse 300 bezeichnet. In der dargestellten Form der Erfindung umfassen die Arraysteuerungsprozesse 300 einen Arraybefehlsinterpretierer 301, eine virtuelle Arrayabbildungskomponente 302 und eine RAID- Verwaltungskomponente 303. Diese Elemente stellen jeweils einen Computerprogrammcode dar, der durch die Array­ steuerung 204 ausgeführt wird, um verschiedene Arraysteue­ rungsfunktionen durchzuführen. Fig. 3 zeigt auch einen Ar­ ray-Cache-Speicher 304, der dem Arraysteuerungsprozessor 204 zugeordnet ist. Dieser Array-Cache-Speicher kann einen Direktzugriffsspeicher aufweisen, der der Arraysteuerung zugeordnet ist, oder kann einen batteriegepufferten Direkt­ zugriffsspeicher aufweisen. Der Speicher wird verwendet, um Daten, die unter Steuerung der Arraysteuerungsprozesse 300 zu und von den Speichergeräten übertragen werden, einer Ca­ che-Speicherung zu unterziehen.
Der Arraybefehlsinterpretierer 301, der in Fig. 3 gezeigt ist, ist für ein Empfangen eines auf das Datenspeichergerät bezogenen Befehls und für ein Umwandeln des Befehls in In­ struktionen oder Rufe nach anderen Arraysteuerungsprozessen verantwortlich. Bei der bevorzugten Form der Erfindung um­ faßt der Arraybefehlsinterpretierer 301 auch einen Byte­ zugriffsumwandlungsprogrammcode zum Umwandeln der Byte­ versatzzugriffsinstruktion, die aus einer umleitbaren Ope­ ration resultiert, in eine Blockzugriffsinstruktion, wie unten genauer erläutert wird. Eine virtuelle Arrayabbil­ dungskomponente 302 liefert eine Arraydatenverwaltungsan­ ordnung, die Daten, die auf den Speichergeräten gespeichert sind, auf logische Einheiten und auf Blöcke von Speicher­ raum bezieht. Ein Eintrag in diese Arraydatenverwaltungsan­ ordnung ist in Fig. 7, die unten beschrieben wird, gezeigt. Die virtuelle Abbildungskomponente 302 ist vorzugsweise auch für ein Erzeugen und Zuweisen von logischen Einheiten für die Daten, die über das Gerätarray 203a gespeichert werden sollen, verantwortlich. Eine RAID-Komponente 303 ist für eine Verwaltung des Speichergerätarrays 203a und für Kommunikationen mit der virtuellen Arrayabbildungskomponen­ te verantwortlich. Die RAID-Komponente 303 implementiert auch alle Datenspeicherredundanzschemata oder RAID- Schemata, die durch das Speichersystem 201 unterstützt wer­ den. Die Arraysteuerungsprozesse sind in der Technik von Plattenarrays und RAID-Systemen bekannt und werden hier nicht weiter beschrieben, um die Erfindung nicht mit unnö­ tigen Details zu verschleiern.
Der Dateisystemprozessor 205, der in den Fig. 2 und 3 ge­ zeigt ist, führt eine Zahl von Programmprozessen durch oder führt dieselben aus, wobei jeder derselben durch einen Com­ puterprogrammcode implementiert ist. Jeder Prozeß ist in einem separaten Kasten gezeigt, die in dem Kasten 205, der in Fig. 3 gezeigt ist, enthalten sind. Zusätzlich zu den Dateisystemprozessen oder dem Dateisystem 308, das durch einen Dateisystemprogrammcode implementiert ist, führt der Programmsystemprozessor 205 eine Plattentreiberkomponente 309, eine Keil- oder Wedge-Dateisystemkomponente 310 und eine Bytemodustreiberkomponente 311 aus. Jede dieser Kompo­ nenten stellt Programmprozesse dar, die durch einen Compu­ terprogrammcode implementiert werden, der durch den Datei­ systemprozessor 205 ausgeführt wird. Fig. 3 zeigt auch ei­ nen Dateisystem-Cache-Speicher 312, der einen Direkt­ zugriffsspeicher aufweist, der den Dateisystemprozessor 205 zugeordnet ist. Der Dateisystem-Cache-Speicher 312 liefert Speicherraum zum Cache-Speichern von Dateidaten, die letzt­ endlich zu und von Datenspeichergeräten 203, die in Fig. 2 gezeigt sind, kommuniziert werden.
Es ist ersichtlich, daß die Dateisystemprozesse, die in Fig. 3 bei Block 308 gezeigt sind, alle Programmprozesse umfassen, die zum Implementieren des erwünschten Dateisy­ stems notwendig sind. Insbesondere liefern Dateisystempro­ zesse 308 eine Dateisystemdatenverwaltungsanordnung. Die Dateisystemdatenverwaltungsanordnung umfaßt eine oder meh­ rere Datentabellen, die jede Datei in dem Dateisystem auf verschiedene Dateiattribute beziehen. Außerdem beziehen, wie später erklärt wird, die Dateisystemdatenverwaltungsta­ bellen jede Datei auf entweder Speichergerätzuteilungsin­ formationen oder eine Referenz auf eine logische Einheit, die durch Arraysteuerungsprozesse 300 erzeugt und verwaltet wird. Für Kommunikationen mit den Arraysteuerungsprozessen 300 beruhen Dateisystemprozesse 308 auf einer Plattentrei­ berkomponente 309. Die Plattentreiberkomponente 309 umfaßt einen Computerprogrammcode zum Kommunizieren von Dateisy­ stemdatenzugriffsbefehlen von den Dateisystemprozessen 308 zu den Arraysteuerungsprozessen 300, um auf bestimmte Da­ teisystemdaten, die an den Datenspeichergeräten 203 gespei­ chert sind, zuzugreifen. Insbesondere liefert die Platten­ treiberkomponente 309 jede notwendige Codierung von In­ struktionen und Daten, die zwischen den Dateisystemprozes­ sen 308 und den Arraysteuerungsprozessen kommuniziert wer­ den. Es ist ersichtlich, daß die Plattentreiberkomponente betrachtet werden kann, um in den Dateisystemprozessen 308 enthalten zu sein, bei dieser Offenbarung jedoch separat dargestellt ist, um ihre bestimmte Funktion besser zu be­ schreiben.
Wie bei den meisten Arraysteuerungsprozessen 300 sind die spezifischen Implementierungen und die Operation der Datei­ systemprozesse 308 und der Plattentreiberkomponente 309 Fachleuten auf diesem Gebiet bekannt. Deshalb werden Imple­ mentierungs- und Operationsdetails in dieser Offenbarung nur wie notwendig beschrieben, um die vorliegende Erfindung klar und vollständig zu offenbaren.
Die Keildateisystemkomponente 310 implementiert spezielle Dateisystemprozesse, die zwischen Dateisystemklienten (212 in Fig. 2) und Dateisystemprozesse 308 eingefügt sind. Wie weiter unten Bezug nehmend auf Fig. 4 und 5 beschrieben wird, empfängt die Keildateisystemkomponente 310 Dateisystemzugriffsoperationsanforderungen von Dateisystemklienten und bestimmt, ob die Anforderung eine umleitbare Operation umfaßt. Die Bestimmung wird durch einen Operationserfassungsprogrammcode, der in dem Keildateisystem enthalten ist, durchgeführt. Die Keildateisystemkomponente 310 leitet nicht umleitbare Operationen zu Dateisystemprozessen 308 weiter. Diese Verarbeitung nicht umleitbarer Operationen durch die Keilsystemprozesse 308 tritt wie bei einem Dateisystem des Stands der Technik auf. Wenn die Keildateisystemkomponente 310 jedoch eine umleitbare Operation erfaßt, verhindert dieselbe, daß die Operation die Keilsystemprozesse 308 erreicht, und leitet die umleitbare Operation statt dessen um, um durch die Arraysteuerungsprozesse 300 verarbeitet zu werden, die bei der Arraysteuerung 204 ausgeführt werden. Weitere Details der Operation der Keildateisystemkomponente 310 werden unten Bezug nehmend auf die Fig. 4 und 5 beschrieben.
Eine Verwendung der Keildateisystemkomponente 310, die in Fig. 3 gezeigt ist, um Dateisystemzugriffsoperationsanfor­ derungen abzufangen, weist den Vorteil auf, daß die Opera­ tionserfassungsfunktion implementiert sein kann, ohne Ver­ änderungen an dem Programmcode, der Dateisystemprozesse 308 implementiert, vorzunehmen. Es ist jedoch ersichtlich, daß die oben Bezug nehmend auf die Keildateisystemkomponente 310 beschriebene Erfassungsfunktion der umleitbaren Opera­ tion alternativ durch ein Modifizieren von Dateisystempro­ zessen 308 geliefert werden kann. Bei dieser alternativen Implementierung würden umleitbare Operationen Dateisystem­ prozesse 308 erreichen, jedoch nicht verarbeitet und statt dessen zu Arraysteuerungsprozessen 300 umgeleitet werden. Diese alternative Implementierung kann als ein Äquivalent zu der Keildateisystemkomponentenimplementierung betrachtet werden, die in dieser Offenbarung detailliert dargelegt ist.
Eine Bytemodustreiberkomponente 311 weist einen Programmco­ de zum Überbringen von Befehlen für eine umleitbare Zugriffsoperation zu Arraysteuerungsprozessen 300 auf, und insbesondere zu der Arraybefehlsinterpretiererkomponente 301. Die Überbringungsfunktionen, die durch die Bytemodus­ treiberkomponenten 311 für umleitbare Operationen durchge­ führt werden, sind analog zu den Funktionen, die durch die Plattentreiberkomponente 309 hinsichtlich nicht umleitbarer Operationen durchgeführt werden.
Wie in Fig. 3 gezeigt ist, kommunizieren die Programmpro­ zesse, die bei der Arraysteuerung 204 und dem Dateisystem­ prozessor 205 durchgeführt werden, miteinander, wobei auch beide mit Dateisystemklientenanwendungen 314 kommunizieren, die Software aufweisen, die bei Dateisystemklienten 212 in Fig. 2 ausgeführt wird. Die Arraysteuerung 204 kommuniziert auch mit Plattensteuerungsprozessen 316. Die Plattensteue­ rungsprozesse 316 weisen einen Programmcode auf, der an der Steuerung (nicht gezeigt), die jedem Datenspeichergerät 203 in Fig. 2 zugeordnet ist, ausgeführt wird.
Das Verfahren der Erfindung und die Operation der verschie­ denen Programmprozesse können Bezug nehmend auf die Fig. 4 und 5 beschrieben werden. Wie bei einem Prozeßblock 501 in Fig. 5 gezeigt ist, umfaßt das Verfahren ein Empfangen ei­ ner Dateisystemoperationsanforderung. Diese Dateisystem­ zugriffsoperationsanforderung wird von einem Dateisystem­ klienten 212 der Fig. 2 und 4 durch Kommunikationseinrich­ tungen, die durch den Protokollstapel 210 geliefert werden, der ebenfalls in diesen Figuren gezeigt ist, empfangen. Die Zugriffsoperationsanforderung wird bei der bevorzugten Form der Erfindung durch die Keildateisystemkomponente 310 emp­ fangen. Wie oben angemerkt wurde, ist diese Keildateisy­ stemkomponente 310 zwischen den Dateisystemprozessen 308 und Dateisystemklienten 212 eingefügt. Eine Komponente, die als eine virtuelle Dateisystemschnittstelle bezeichnet wird, kann bei bestimmten Dateisystemen verwendet werden, um Dateisystemmodifizierungen vor den Dateisystemkomponen­ ten einzufügen, oder um ein zusätzliches oder alternatives Dateisystem einzufügen. So müssen die Dateisystemprozesse 308, die gemäß der bevorzugten Form der Erfindung, die in den Figuren dargestellt ist, verwendet werden, eine virtu­ elle Dateisystemschnittstelle oder ein anderes Verfahren zum Einfügen der Keildateisystemkomponente 310 unterstüt­ zen.
Als nächstes umfaßt das Verfahren den Schritt des Bestim­ mens, ob die Dateisystemzugriffsoperationsanforderung eine umleitbare Operation umfaßt. Dieser Schritt ist bei einem Entscheidungsblock 502 in Fig. 5 gezeigt und wird bei der dargestellten Form der Erfindung durch die Keildateisystem­ komponente 310 durchgeführt. Wie oben erläutert wurde, wird zu Zwecken dieser Offenbarung angenommen, daß Dateisystem­ zugriffsoperationen allgemein basierend auf der Größe der Datei (Datenmenge, die die Datei bildet), die der Zugriffs­ operationsanforderung unterzogen wird, als umleitbare oder nicht umleitbare Operationen definiert sind. Diese Umlei­ tung basierend auf der Dateigröße weist den Effekt auf, daß sie bewirkt, daß alle Dateien über der vorbestimmten Schwellengröße direkt durch Arraysteuerungsprozesse 300 ge­ handhabt oder verarbeitet werden, und daß sie bewirkt, daß alle Dateien unter der Schwellengröße normal durch Dateisy­ stemprozesse 308 gehandhabt oder verarbeitet werden. Die bevorzugte Form der Erfindung umfaßt auch einen Mechanismus zum Aufheben der normalen Regeln zum Bestimmen, ob eine Operation eine umleitbare Operation ist. Wieder können, ob­ wohl die Erfindung hier zu Beispielzwecken beschrieben wird, um die Dateigröße zu verwenden, um zu bestimmen, ob eine Operation umleitbar ist, andere Dateiattribute oder andere Standards oder Kombinationen von Attributen und Standards in dem Bereich der angefügten Ansprüche beim De­ finieren von Zugriffsoperationen als umleitbare oder nicht umleitbare Operationen verwendet werden.
Jedes geeignete Verfahren kann zum Durchführen der Bestim­ mung an dem Entscheidungsblock 502 verwendet werden. Insbe­ sondere kann bei dem Beispiel, bei dem die Bestimmung ba­ sierend auf der Größe der Datei durchgeführt wird, die der empfangenen Operation unterzogen wird, die Keildateisystem­ komponente 310 Dateigrößeninformationen von der Dateisy­ stemdatenverwaltungsanordnung erhalten, die den Dateisy­ stemprozessen 308 zugeordnet ist. So kann der Entschei­ dungsschritt bei Block 502 ein Senden einer Anforderung nach den notwendigen Dateigrößeninformationen von der Keil­ dateisystemkomponente 310 zu den Dateisystemprozessen 308 umfassen. Alternativ kann es vorzuziehen oder notwendig sein, daß das Keildateisystem die notwendigen Dateigrößen­ informationen von der ankommenden Dateizugriffsoperations­ anforderung erhält, wobei in diesem Fall der Entscheidungs­ schritt bei Block 502 ein Lesen von Dateigrößeninformatio­ nen von der ankommenden Operationsanforderung umfassen wür­ de. Wenn jedoch keine Dateigrößeninformation für die Datei verfügbar sind, die der ankommenden Dateizugriffsoperati­ onsanforderung unterzogen wird, kann es notwendig sein, daß die Keildateisystemkomponente 310 programmiert wird, um ei­ ne Annahme hinsichtlich der Größe der Datei zu machen. Es kann alternativ möglich sein, daß die Keildateisystemkompo­ nente 310 Dateigrößeninformationen von dem Dateisystem­ klienten 202, der die Anforderung ausgibt, erhält, obwohl gegenwärtige Dateisysteme eine derartige Funktion nicht un­ terstützen.
Alternativ können einige bevorzugte Formen der Erfindung jeder Datei ein spezielles Attribut zuordnen. Bei dem vor­ liegenden Beispiel, bei dem die Subjektdateigröße beim Bestimmen verwendet wird, ob eine Operation umleitbar ist, kann das Dateisystem modifiziert sein, um ein Dateistatus­ attribut als entweder "groß" oder "klein" einzustellen, wo­ bei jedes Attribut in der Dateisystemdatenverwaltungsanord­ nung, die durch Dateisystemprozesse 308 implementiert ist, gespeichert sein kann. Der Schritt des Bestimmens, ob die Operation eine umleitbare Operation ist, weist dann einfach ein Lesen des Dateistatusattributes, das bei der Dateisy­ stemdatenverwaltungsanordnung für die Datei gespeichert ist, die der Zugriffsoperation unterzogen wird, auf. Dieses Dateistatusattribut liefert auch ein bequemes Verfahren zum Aufheben der Standardregeln. Dies bedeutet, daß ein Aufhe­ bungsmerkmal des Keildateisystems bewirken kann, daß das Dateistatusattribut unabhängig von der tatsächlichen Datei­ größe als der Aufhebungsstatus gespeichert wird. Andern­ falls kann ein anderer Code oder ein anderes Flag bei der Keildateisystemkomponente 310 verwendet werden, um sicher­ zustellen, daß eine bestimmte Operation unabhängig von den tatsächlichen Dateiattributen als umleitbar oder nicht um­ leitbar behandelt wird.
Es sei darauf hingewiesen, daß bestimmte Dateizugriffsope­ rationen unabhängig von den Dateiattributen der Datei, die der Dateizugriffsoperationsanforderung unterzogen wird, keine umleitbaren Operationen sein können. Insbesondere können die Datei-Öffnen- und Schließen-Operationen an dem Dateisystempegel keine umleitbaren Operationen sein, da diese Operationen kein Lesen oder Schreiben von Daten für die Subjektdatei zu den Speichergeräten 203 umfassen sowie keine Speicherraumzuteilungen beinhalten. So gibt es keinen Grund, eine Öffnen- oder Schließenoperation um die Dateisy­ stemprozesse 308 herumzuleiten.
Wenn bestimmt wird, daß die Operation eine umleitbare Ope­ ration ist, leitet das Keildateisystem 310 die Operation zu Arraysteuerungsprozessen 300 um, wie bei einem Block 503 in Fig. 5 gezeigt ist. Bei der bevorzugten Form der Erfindung umfaßt das Verfahren auch ein Umwandeln der umgeleiteten Dateisystemoperation von einer Byteversatzdefinition zu ei­ ner Blockzugriffsdefinition. Dieser Umwandlungsschritt ist bei einem Prozeßblock 504 in Fig. 5 gezeigt. Diese Umwand­ lung von einem Byteversatz und einer Bytelänge zu einem Blockversatz und einer Blocklänge wird vorzugsweise durch einen Programmcode unter Verwendung eines Speichers, der bei der Arraysteuerung 204 verfügbar ist, durchgeführt, der in dem Arraybefehlsinterpretierer 301 enthalten oder dem­ selben zugeordnet ist. Es sei darauf verwiesen, daß eine ähnliche Umwandlung Teil der normalen Operation der Datei­ systemprozesse 308 ist. In jedem Fall umfaßt die Umwandlung ein Teilen der Byteversatz- und Längendaten durch die Zahl von Bytes in jedem Block von Speicherraum, der für Spei­ chergeräte 203 definiert ist. Blöcke sind üblicherweise als 512-Byte-Speicherräume definiert, obwohl die Erfindung nicht auf diese Blockgröße beschränkt ist.
Sobald die umgeleitete Dateisystemoperation bei dem Array­ befehlsinterpretierer 301 zu einer Blockzugriffsform umge­ wandelt ist, wird die Operation durchgeführt, wie bei einem Schritt 505 in Fig. 5 gezeigt ist. Ein Durchführen der an­ geforderten Operation umfaßt allgemein die normalen Schrit­ te bei einem Arrayzugriff. Insbesondere nimmt der Arraybe­ fehlsinterpretierer 301 den Code oder die Instruktion, die die umgeleitete Operation darstellt, und gibt abhängig von der Natur der Operation Rufe oder Befehle an die zugeordne­ ten Prozesse aus. Für eine Lesen-Operation bestimmt die Ar­ rayabbildungskomponente 302 die Blockzuteilungen, die der vorher existierenden Datei, die gelesen werden soll, zuge­ teilt sind. Die RAID-Verwaltungskomponente 303 gibt dann einen geeigneten Befehl an das Gerät oder Geräte 203 aus, um die Daten, die an den identifizierten Blöcken gespei­ chert sind, zu lesen. Bei einer Schreiben-Operation bildet die Abbildungskomponente 302 die Dateidaten auf Blöcke in der logischen Einheit ab, die der Datei zugewiesen sind. Die RAID-Verwaltungskomponente 403 gibt dann einen Befehl an das Speichergerät oder -Geräte 203 aus, um die empfange­ nen Daten zu den abgebildeten Blöcken zu schreiben.
Es gibt verglichen mit Lesen- und Schreiben-Operationen an ein Speicherarray, die bei Systemen des Stands der Technik durchgeführt werden, bei der Leistung von umleitbaren Le­ sen- und Schreiben-Operationen einen merklichen Unter­ schied. Bei der bevorzugten Form der Erfindung werden Daten für die Lesen- und Schreiben-Operationen direkt zwischen den Arraysteuerungsprozessen 300 und den Dateisystemklien­ ten (212 in Fig. 2 und 4) übertragen, wobei die Dateisy­ stemprozesse 308 vollständig umgangen werden. Der Dateium­ gehungspfad wird in dem folgenden Absatz Bezug nehmend auf Fig. 4 erläutert. Hinsichtlich der umleitbaren Lesen- Operationen, bei denen Dateidaten wie durch den Dateisy­ stemklienten 212 angeleitet zurückgegeben werden, erfordert diese Umgehung der Dateisystemprozesse, daß die Arraysteue­ rungsprozesse 300 angepaßt sind, um die Datenmeldung gemäß den Standards des Dateisystems zu formatieren. Diese Forma­ tierung der Daten, die ansprechend auf eine umleitbare Le­ sen-Operation von Geräten 203 gelesen werden, wird vorzugs­ weise durch einen Dateisystemformatierungsprogrammcode durchgeführt, der in dem Arraybefehlsinterpretierer 301 enthalten ist.
Fig. 4 zeigt drei separate Pfade zu dem Arraybefehlsinter­ pretierer 301. Ein Pfad 401 läuft von dem Protokollstapel 210 zu dem Interpretierer 301. Dieser Pfad 401 ist gezeigt, um anzuzeigen, daß die Dateidaten, die einer umleitbaren Operation zugeordnet sind, Dateisystemprozesse vollständig umgehen, die entweder zu oder von den Speichergeräten 203 verlaufen. Ein Pfad 402 zeigt einen Pfad zwischen der Keil­ dateisystemkomponente 310 und dem Interpretierer 301, um anzuzeigen, daß Befehle und Empfänge, die umleitbaren Ope­ rationen zugeordnet sind, zwischen diesen beiden Prozessen verlaufen. Ein Pfad 403 zwischen der Plattentreiberkompo­ nente 309 und dem Arraybefehlsinterpretierer 301 ist in Fig. 4 gezeigt, um anzuzeigen, daß Befehle, Empfänge und Dateidaten, die einer nicht umleitbaren Dateisystem­ zugriffsoperation zugeordnet sind, zwischen dem Platten­ treiber 309 und dem Arraybefehlsinterpretierer 301 verlau­ fen, wie weiter unten erläutert wird.
Wie bei einem Prozeßblock 506 in Fig. 5 gezeigt ist, umfaßt das Verfahren auch den Schritt des Aktualisierens der Da­ teisystemdatenverwaltungsanordnung mit Informationen über die Ergebnisse der ausgeführten, umleitbaren Zugriffsopera­ tion. Da die Erfindung die erwünschte Dateihierarchie durch die Dateisystemdatenverwaltungsanordnung beibehält, müssen die Tabellen, die die Anordnung ausmachen, aktualisiert sein, um die korrekten Informationen hinsichtlich der Datei beizubehalten, die einer umleitbaren Zugriffsoperation un­ terzogen wird, die direkt durch Arraysteuerungsprozesse 300 ausgeführt wird. Arraysteuerungsprozesse 300 erleichtern diese Aktualisierung der Dateisystemdatenverwaltungsanord­ nung durch ein Kommunizieren von Operationsergebnisinforma­ tionen zu den Dateisystemprozessen 308. Die Natur der Ope­ rationsergebnisinformationen hängt von der Natur der um­ leitbaren Zugriffsoperation ab, die durchgeführt wurde. Für eine Erzeugen-Operation, die zu Arraysteuerungsprozessen 300 umgeleitet und von denselben durchgeführt wird, umfas­ sen die Ergebnisinformationen eine Referenz auf eine logi­ sche Einheit, die für die Datei durch die Arraysteuerungs­ prozesse zugewiesen wird, insbesondere die Arrayabbildungs­ komponente 302. Für eine umleitbare Lesen- oder Schreiben- Operation können die Operationsergebnisinformationen einen Empfang oder eine Meldung aufweisen, die die Fertigstellung der bestimmten Operation anzeigt. In jedem Fall können die Operationsergebnisinformationen direkt zurück zu Dateisy­ stemprozessen 308 kommuniziert werden oder durch die Keil­ dateisystemkomponente 310 kommuniziert werden.
Wieder Bezug nehmend auf den Entscheidungsblock 502 leitet die Keildateisystemkomponente 310, wenn bestimmt wird, daß die Zugriffsoperationsanforderung eine Operation umfaßt, die keine umleitbare Operation ist, die Operation direkt zu Dateisystemprozessen 308, wie bei einem Prozeßblock 508 an­ gezeigt ist. Dateisystemprozesse 308 führen dann die Opera­ tion bei einem Block 509 wie bei Systemen des Stands der Technik durch. Bei einer Lesen-Operation z. B. wird die Da­ teisystemdatenverwaltungsanordnung befragt, um die Orte, die der Datei zugeteilt sind, zu bestimmen. Dateisystempro­ zesse 308 bauen dann den geeigneten Befehl auf und geben denselben aus, wobei die Plattentreiberkomponente 309 den Befehl codiert und dem Arraybefehlsinterpretierer 301 über­ bringt. Es wird darauf hingewiesen, daß die Umwandlung von einem Bytezugriff zu einem Blockzugriff in diesem Fall durch Dateisystemprozesse 308 durchgeführt wird. Die Pro­ zesse an der Arraysteuerung 204 antworten auf die Kommuni­ kation von der Plattentreiberkomponente 309, indem sie be­ wirken, daß die Daten von den spezifizierten Blöcken in der logischen Einheit, die für das Dateisystem zugeteilt ist, gelesen werden. Die Daten werden an sowohl dem Array-Cache- Speicher 304 als auch dem Dateisystem-Cache-Speicher 312 Cache-gespeichert und dann wie durch die Dateisystem-Lesen- Operation-Anforderung, die den Zugriff fordert, angeleitet zurückgegeben.
In dem Fall einer nicht umleitbaren Schreiben-Operation ak­ tualisieren Dateisystemprozesse 308 die Dateisystemdaten­ verwaltungsanordnung für die virtuellen Speicherraumorte, die den Dateidaten zugeteilt sind. Die Dateisystemprozesse 308 verwenden dann die Plattentreiberkomponente 309, um mit Arraysteuerungsprozessen 300 zu kommunizieren, um die Da­ teidaten und die Dateisystemraumzuteilungsinformationen zu liefern, die zum Schreiben der Daten erforderlich sind. Die Daten werden an die spezifizierten Blöcke geschrieben, die für die Datei in der logischen Einheit zugeteilt sind, die für das Dateisystem zugewiesen ist.
Es wird darauf hingewiesen, daß gemäß der bevorzugten Form der Erfindung eine einzelne logische Einheit der Plattenar­ rayimplementierung dem Speichern kleiner Dateien gewidmet ist, die durch Dateisystemprozesse 308 auf die normale Wei­ se verarbeitet werden. Alle großen Dateien (bei diesem Bei­ spiel, bei dem die Dateigröße die Klasse von umleitbaren Operationen bestimmt) werden jedoch direkt durch Array­ steuerungsprozesse, wie durch den Pfad 401 in Fig. 4 ange­ zeigt ist, verarbeitet und vorzugsweise jeweils ihrer logi­ schen Einheit durch Arraysteuerungsprozesse 300 zugeteilt.
Das Ausführungsbeispiel der Erfindung, das in den Figuren gezeigt ist, zeigt das Dateisystem, das ohne die Hilfe ei­ ner Volumenverwaltersoftwarekomponente mit den Arraysteue­ rungsprozessen 300 in Wechselwirkung steht. Für Fachleute ist es jedoch ersichtlich, daß die Erfindung unter Verwen­ dung von Volumenverwaltersoftwareprozessen implementiert sein kann, die zwischen dem Dateisystem 308 und Arraysteue­ rungsprozessen 300 eingefügt sind. Der Volumenverwalter würde funktionieren, um zu bewirken, daß mehrere logische Einheiten des Plattenarrays für das Dateisystem 308 als ei­ ne einzelne logische Einheit erscheinen.
Bei einer Dateisystemimplementierung geht eine Öffnungsope­ ration einer Lesen- oder Schreiben-Operation voraus. Die separate Öffnungsoperation wird verwendet, um Konflikte zwischen Dateisystemklienten 212 (Fig. 2 und 4), die auf eine gemeinsame Datei zugreifen, zu verhindern. Das Datei­ system, wie z. B. das System 308, erzeugt auch eine tempo­ räre Datenstruktur zur Verwendung beim Zugreifen auf Datei­ en. Unter anderen Funktionen bezieht diese temporäre Daten­ struktur jede Datei auf eine Kennung oder einen anderen Identifizierer und speichert zusätzliche Dateiverwaltungs­ informationen von der Dateisystemdatenverwaltungsanordnung, um ein Verarbeiten nachfolgender Lesen- und Schreiben- Operationen zu beschleunigen.
Bei der bevorzugten Form der Erfindung umfaßt das Keilda­ teisystem 310 einen temporären Datenstrukturprogrammcode, der eine ähnliche temporäre Datenstruktur für Dateien er­ zeugt und verwaltet, die der Gegenstand umleitbarer Opera­ tionen sein können. Jede Aufzeichnung in dieser temporären Dateistruktur des Keildateisystems umfaßt vorzugsweise eine Dateikennung, den Dateinamen und einen Identifizierer der logischen Einheit. Der Identifizierer der logischen Einheit weist einen Identifizierer für die logische Einheit auf, bei der die jeweilige Datei gemäß einer umleitbaren Opera­ tion gespeichert wurde. Diese temporäre Dateistruktur des Keildateisystems hilft die Verarbeitung einer umleitbaren Operation für eine spezifizierte Datei zu beschleunigen, indem erforderliche Zugriffsinformationen für die spezifi­ zierte Datei zu dem Zeitpunkt, zu dem die umleitbare Opera­ tion empfangen wird, ohne weiteres verfügbar sind.
Die Fig. 6 und 7 zeigen Teile der Datenverwaltungsanordnun­ gen, die durch die Dateisystemprozesse 308 bzw. die Array­ steuerungsprozesse 305 verwendet werden. Bezug nehmend auf Fig. 6 ist bei 601 ein Dateisystemdatenverwaltungseintrag gezeigt. Bei dieser bevorzugten Form der Erfindung umfaßt jeder Eintrag ein Dateiname-Feld 603, eine Gruppe 604 von Dateiattributfeldern und ein Feld 605, das Informationen hinsichtlich einer Dateisystemspeicherraumzuteilung ent­ hält. Das Attributfeld 606 speichert bei der bevorzugten Form der Erfindung ein Dateistatusattribut. Dieses Datei­ statusattribut definiert die Datei als entweder eine kleine Datei oder eine große Datei. Ein Attributfeld 607 liefert einen Ort zum Speichern einer Referenz auf eine logische Einheit, bei der die Subjektdatei gespeichert wird. Für kleine Dateien gibt es keinen Wert in diesem Attributfeld 607 der logischen Einheit, da Arraysteuerungsprozesse 300 kleine Dateien nicht direkt verwalten und kleinen Dateien keine eigenen logischen Einheiten zuweisen. Vielmehr werden kleine Dateien gemäß der Erfindung durch Dateisystemprozes­ se 308 gehandhabt. Dateisystemprozesse 308 teilen Speicher­ raum für die Datei in einer einzelnen logischen Einheit zu, die für das Dateisystem durch Arraysteuerungsprozesse 300 zugewiesen ist. Diese Zuteilungsinformationen werden für eine kleine Datei in Feld 605 gespeichert. Im Gegensatz da­ zu wird das Dateisystemraumzuteilungsfeld 605 vorzugsweise bei einem Eintrag einer großen Datei leer gelassen, während das Referenzattributfeld 607 der logischen Einheit die Re­ ferenz auf die logische Einheit, bei der die große Datei gespeichert ist, durch die Arraysteuerungsprozesse 300 speichert. Das Raumzuteilungsfeld 605 kann für eine große Datei leer gelassen werden, da ein Speicherraum für die Da­ tei zugeteilt und durch die Arraysteuerungsprozesse 300 verwaltet wird. So ist es nicht notwendig, daß die Dateisy­ stemdatenverwaltungsanordnung Speicherraumzuteilungsinfor­ mationen für die jeweilige Datei aufweist.
Es wird angemerkt, daß sowohl das Dateistatusattribut als auch das Referenzattribut der logischen Einheit extern de­ finierte Attribute darstellen, da sie keine Attribute sind, die normal in einem Dateisystem definiert sind. So muß das Dateisystem extern definierte Dateiattribute unterstützen, um diese bevorzugte Form der Erfindung zu implementieren. Die meisten modernen Dateisysteme unterstützen derartige extern definierte Dateiattribute.
Bezug nehmend auf Fig. 7 umfaßt die Datenverwaltungsanord­ nung für Arraysteuerungsprozesse 300 einen Antrag 701 für jede Datei, der gemäß der Erfindung direkt durch die Array­ steuerungsprozesse gehandhabt wird. Anders ausgedrückt wird ein Eintrag 701 für jede Datei, die einer umleitbaren Ope­ ration unterzogen wird, erzeugt. Jeder Eintrag 701 umfaßt ein Referenzfeld 702 der logischen Einheit und ein Dateina­ menfeld 703. Das Referenzfeld 702 der logischen Einheit speichert eine Referenz auf eine logische Einheit, bei der die bestimmte Datei gespeichert ist. Das Dateinamenfeld 703 speichert den Dateinamen, der der Datei zugeordnet ist, für die der Eintrag 701 gemacht wird. Der Eintrag 701 umfaßt ferner ein Feld 705, das Speicherraumzuteilungsinformatio­ nen enthält, die die Blöcke von Speicherraum anzeigen, der für die jeweilige Datei zugeteilt ist.
Eine bevorzugte Form der Erfindung umfaßt eine Anordnung zum Unterbringen einer Veränderung bei einem Dateistatus. Diese Form der Erfindung ermöglicht es, daß eine Datei von einem Großdateistatus zu einem Kleindateistatus oder umge­ kehrt bewegt wird oder migriert. Diese Migration zwischen einem kleinen und einem großen Dateistatus kann auf eine Anzahl von Weisen erzielt werden. Die oben beschriebenen Dateistatus können z. B. erweitert werden, um einen "wach­ senden" Dateistatus und einen "schrumpfenden" Dateistatus zu umfassen. Ein wachsender Dateistatus bedeutet, daß die Datei wie gemäß dem System definiert von einer kleinen Da­ tei zu einer großen Datei wächst. Ein schrumpfender Datei­ status bedeutet, daß die Subjektdatei einmal als eine große Datei behandelt wurde, nun jedoch ausreichend kleiner wird, um dieselbe zur Handhabung durch das Dateisystem als eine kleine Datei zu qualifizieren. Diese Migration kann auftre­ ten, wenn die Datei modifiziert wird, oder als ein separa­ ter Prozeß, nachdem die Datei modifiziert wurde. Der Effekt der Veränderung des Status soll verändern, wie Dateisystem­ zugriffsoperationen, die die Datei spezifizieren, in der Zukunft gehandhabt werden, und welcher Pfad 401 oder 403 für Dateidaten bei zukünftigen Zugriffsoperationen auf die Datei genommen wird.
Die oben beschriebenen bevorzugten Ausführungsbeispiele sollen die Prinzipien der Erfindung darstellen, den Bereich der Erfindung jedoch nicht einschränken. Verschiedene wei­ tere Ausführungsbeispiele und Modifizierungen an diesen be­ vorzugten Ausführungsbeispielen können von Fachleuten durchgeführt werden, ohne von dem Bereich der folgenden An­ sprüche abzuweichen. Insbesondere sollte es ersichtlich sein, daß die Anordnung von Verarbeitungsgeräten zum Aus­ führen der verschiedenen Programmprozesse gemäß der Erfin­ dung nur zu Beispielzwecken gezeigt ist. Die verschiedenen Prozesse können auf jede geeignete Weise über Verarbei­ tungsgeräte verteilt sein, um die erwünschten Funktionen in dem Bereich der Erfindung und der folgenden Ansprüche durchzuführen. Außerdem sind die verschiedenen Softwarekom­ ponenten, die in den Figuren gezeigt sind, nur zu Beispiel­ zwecken gezeigt und beschrieben und sind allgemein auf eine Weise unterteilt, die die Erfindung sehr klar beschreibt. Die verschiedenen Softwarefunktionen können jedoch durch unterschiedlich benannte und angeordnete Softwarekomponen­ ten durchgeführt werden. Diese unterschiedlichen Software­ anordnungen sollen als gleichwertig zu der Anordnung, die in der vorliegenden Offenbarung und den beigefügten Ansprü­ chen dargestellt ist, betrachtet werden.

Claims (29)

1. Verfahren zum Zugreifen auf ein Datenspeichergerät (203), das durch Arraysteuerungsprozesse (300) gesteu­ ert wird, wobei das Verfahren folgende Schritte um­ faßt:
  • a) Empfangen einer Dateisystemzugriffsoperationsan­ forderung;
  • b) Bestimmen, ob die Dateisystemzugriffsoperations­ anforderung eine Operation spezifiziert, die eine umleitbare Operation aufweist;
  • c) falls die Dateisystemzugriffsoperationsanforde­ rung eine umleitbare Operation spezifiziert, Um­ leiten der umleitbaren Operation von Dateisystem­ prozessen (308), die dem Datenspeichergerät (203) zugeordnet sind, zu den Arraysteuerungsprozessen (300);
  • d) Durchführen der umleitbaren Operation mit den Ar­ raysteuerungsprozessen (300); und
  • e) Aktualisieren einer Dateisystemdatenverwaltungs­ anordnung mit Operationsergebnisinformationen von den Arraysteuerungsprozessen, wobei die Dateisy­ stemdatenverwaltungsanordnung durch die Dateisy­ stemprozesse (308) gesteuert wird.
2. Verfahren gemäß Anspruch 1, bei dem die Operation eine Erzeugen-Operation aufweist, und bei dem die Operati­ onsergebnisinformationen eine Referenz auf den Array­ speicherraum umfassen, an den Daten für die Datei, die in der Erzeugen-Operation spezifiziert ist, geschrie­ ben werden sollen.
3. Verfahren gemäß Anspruch 2, bei dem der Schritt des Aktualisierens der Dateisystemdatenverwaltungsanord­ nung ein Bewirken dessen umfaßt, daß die Dateisystem­ prozesse (308) einen Eintrag (601) in die Dateisystem­ datenverwaltungsanordnung erzeugen, was ein Identifi­ zieren von Informationen für die spezifizierten Daten und eine Referenz auf den Arrayspeicherraum, an den die spezifizierten Daten geschrieben werden sollen, umfaßt.
4. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem die umleitbare Operation eine Lesen-Operation aufweist und ferner den Schritt des Lesens an einer Arrayspei­ cherraumreferenz für die Datei, die in der Lesen- Operation spezifiziert ist, umfaßt.
5. Verfahren gemäß Anspruch 4, bei dem:
  • a) das Durchführen der umleitbaren Operation ein Le­ sen von Daten aus Blöcken, die dem Raum zugeteilt sind, der durch die Arrayspeichersystemraumrefe­ renz identifiziert ist, aufweist; und
  • b) die Operationsergebnisinformationen eine Anzeige umfassen, daß die Lesen-Operation abgeschlossen ist.
6. Verfahren gemäß Anspruch 5, bei dem der Schritt des Aktualisierens der Dateisystemdatenverwaltungsanord­ nung ein Bewirken dessen umfaßt, daß die Dateisystem­ prozesse (308) Zugriffsdaten in einem Antrag für die Datei, die in der Lesen-Operation spezifiziert ist, modifizieren.
7. Verfahren gemäß einem der Ansprüche 1 bis 6, bei dem der Schritt des Bestimmens, ob die Dateisystem­ zugriffsoperationsanforderung eine umleitbare Operati­ on umfaßt, mit einem Keildateisystem (310) durchge­ führt wird, das zwischen einem Dateisystemklienten (212) und den Dateisystemprozessen (308), die der Da­ tenspeichervorrichtung zugeordnet sind, eingefügt ist.
8. Verfahren gemäß Anspruch 7, bei dem der Schritt des Bestimmens, ob die Dateisystemzugriffsoperationsanfor­ derung eine umleitbare Operation umfaßt, ein Lesen ei­ nes Dateiattributs für die Datei, die in der Dateisy­ stemzugriffsoperationsanforderung spezifiziert ist, aufweist.
9. Verfahren gemäß Anspruch 7, bei dem der Schritt des Bestimmens, ob die Dateisystemzugriffsoperationsanfor­ derung eine umleitbare Operation umfaßt, ein Lesen ei­ ner Dateigröße, die in der Dateisystemzugriffsoperati­ onsanforderung enthalten ist, aufweist.
10. Verfahren gemäß einem der Ansprüche 1 bis 9, das fer­ ner den Schritt des Modifizierens der umleitbaren Ope­ ration in eine Form, die geeignet ist, um durch die Arraysteuerungsprozesse (300) durchgeführt zu werden, umfaßt.
11. Verfahren gemäß Anspruch 10, bei dem der Schritt des Modifizierens der umleitbaren Operation ein Umwandeln der Operation von einer Byteversatzoperation in eine Blockzugriffsoperation aufweist.
12. Verfahren gemäß einem der Ansprüche 1 bis 11, bei dem der Schritt des Bestimmens, ob die Dateisystem­ zugriffsoperationsanforderung eine umleitbare Operati­ on umfaßt, durch die Dateisystemprozesse (308) durch­ geführt wird.
13. Verfahren gemäß einem der Ansprüche 1 bis 12, bei dem die umleitbare Operation eine Schreiben- oder eine Er­ zeugen-Operation aufweist und der Schritt des Durch­ führens der umleitbaren Operation mit den Arraysteue­ rungsprozessen (300) ein Weiterleiten von Daten für eine Datei, die in der umleitbaren Operation spezifi­ ziert ist, direkt von einem Dateisystemklienten (212) zu den Arraysteuerungsprozessen (300) umfaßt.
14. Verfahren gemäß einem der Ansprüche 1 bis 12, bei dem die umleitbare Operation eine Lesen-Operation aufweist und der Schritt des Durchführens der umleitbaren Ope­ ration mit den Arraysteuerungsprozessen (300) ein Wei­ terleiten von Daten für eine Datei, die in der umleit­ baren Operation spezifiziert ist, direkt von den Ar­ raysteuerungsprozessen zu einem Dateisystemklienten (212) umfaßt.
15. Programmprodukt zum Bedienen von Dateisystemzugriffs­ operationsanforderungen von einem Dateisystemklienten (212), wobei das Programmprodukt auf einem computer­ lesbaren Medium gespeichert ist und folgende Merkmale umfaßt:
  • a) einen Operationserfassungsprogrammcode zum Erfas­ sen umleitbarer Operationen und nicht umleitbarer Operationen in einer empfangenen Dateisystem­ zugriffsoperationsanforderung;
  • b) einen Dateisystemprogrammcode zum Durchführen je­ der nicht umleitbaren Operation, die in einer empfangenen Zugriffsoperationsanforderung enthal­ ten ist, und zum Beibehalten einer Dateisystemda­ tenverwaltungsanordnung, die Informationen für jede Datei in dem Dateisystem umfaßt; und
  • c) einen Arraysteuerungsprogrammcode zum Durchführen jeder umleitbaren Operation, zum Verwalten eines Datenspeichergeräts (203), das ein Datenspeicher­ medium umfaßt, und zum Kommunizieren mit dem Da­ teisystemprogrammcode, um die Dateisystemdaten­ verwaltungsanordnung ansprechend auf das Verhal­ ten einer umleitbaren Operation zu aktualisieren.
16. Programmprodukt gemäß Anspruch 15, bei dem der Opera­ tionserfassungsprogrammcode einen Keildateisystempro­ grammcode aufweist, der zwischen einem Dateisystem­ klienten (212) und dem Dateisystemprogrammcode be­ treibbar ist.
17. Programmprodukt gemäß Anspruch 15 oder 16, bei dem der Arraysteuerungsprogrammcode einen Bytezugriffsumwand­ lungsprogrammcode zum Umwandeln von Byteversatz­ zugriffsinstruktionen in einer umleitbaren Operation zu Blockzugriffsinstruktionen umfaßt.
18. Programmprodukt gemäß einem der Ansprüche 15 bis 17, bei dem der Operationserfassungsprogrammcode einen temporären Datenstrukturprogrammcode zum Erzeugen ei­ ner temporären Datenstruktur, die Informationen von der Dateisystemdatenverwaltungsanordnung enthält, auf einer Datei, die in einer empfangenen Zugriffsoperati­ onsanforderung spezifiziert ist, umfaßt.
19. Programmprodukt gemäß einem der Ansprüche 15 bis 18, bei dem der Operationserfassungsprogrammcode in den Dateisystemprogrammcode eingebaut ist.
20. Programmprodukt gemäß einem der Ansprüche 15 bis 19, bei dem der Arraysteuerungsprogrammcode einen Dateisy­ stemformatierungsprogrammcode zum Formatieren von Da­ tenmeldungen gemäß einem Dateisystemstandard für ein Dateisystem, das durch den Dateisystemprogrammcode im­ plementiert ist, umfaßt.
21. Programmprodukt zum Bedienen von Dateisystemzugriffs­ operationsanforderungen von einem Dateisystemklienten (212) zu einem Dateisystem, das eine Dateisystemdaten­ verwaltungsanordnung umfaßt, die Informationen auf je­ der Datei in dem Dateisystem enthält, wobei das Pro­ grammprodukt auf einem computerlesbaren Medium gespei­ chert ist und folgende Merkmale umfaßt:
  • a) einen Operationserfassungsprogrammcode zum Erfas­ sen umleitbarer Operationen in einer Dateisystem­ zugriffsoperationsanforderung, die von einem Da­ teisystemklienten (212) empfangen wird, und zum Verhindern, daß jede umleitbare Operation durch das System ausgeführt wird; und
  • b) einen Arraysteuerungsprogrammcode zum Durchführen jeder umleitbaren Operation, zum Verwalten eines Datenspeichergeräts (203), das ein Datenspeicher­ medium umfaßt, und zum Kommunizieren mit dem Da­ teisystemprogrammcode, um die Dateisystemdaten­ verwaltungsanordnung ansprechend auf das Verhal­ ten einer umleitbaren Operation zu aktualisieren.
22. Programmprodukt gemäß Anspruch 21, bei dem der Opera­ tionserfassungsprogrammcode einen Keildateisystempro­ grammcode aufweist, der zwischen einem Dateisystem­ klienten (212) und dem Dateisystemprogrammcode be­ treibbar ist.
23. Programmprodukt gemäß Anspruch 21 oder 22, bei dem der Arraysteuerungsprogrammcode einen Bytezugriffsumwand­ lungsprogrammcode zum Umwandeln von Byteversatz­ zugriffsinstruktionen in einer umleitbaren Operation zu Blockzugriffsinstruktionen umfaßt.
24. Programmprodukt gemäß einem der Ansprüche 21 bis 23, bei dem der Operationserfassungsprogrammcode einen temporären Datenstrukturprogrammcode zum Erzeugen ei­ ner temporären Datenstruktur, die Informationen aus der Dateisystemverwaltungsanordnung enthält, auf einer Datei, die in einer empfangenen Zugriffsoperationsan­ forderung spezifiziert ist, umfaßt.
25. Programmprodukt gemäß einem der Ansprüche 21 bis 24, bei dem der Arraysteuerungsprogrammcode einen Dateisy­ stemformatierungsprogrammcode zum Formatieren von Da­ tenmeldungen gemäß einem Dateisystemstandard für ein Dateisystem, das durch den Dateisystemprogrammcode im­ plementiert ist, umfaßt.
26. Datenspeichersystem (201) mit folgenden Merkmalen:
  • a) einem Datenspeichergerät (203);
  • b) einer Datenverarbeitungseinrichtung zum
    • A) Bestimmen, ob eine Dateisystemzugriffs­ operationsanforderung eine umleitbare Operation umfaßt,
    • B) wenn die Dateisystemzugriffsoperations­ anforderung eine umleitbare Operation umfaßt, Weiterleiten der umleitbaren Operation zu Arraysteuerungsprozessen, die durch die Datenverarbeitungsein­ richtung ausgeführt werden,
    • C) Durchführen der umleitbaren Operation mit den Arraysteuerungsprozessen (300), und
    • D) Aktualisieren einer Dateisystemdaten­ verwaltungsanordnung mit Operationser­ gebnisinformationen für die umleitbare Operation von den Arraysteuerungspro­ zessen;
  • c) einer Eingangs/Ausgangsanordnung, die mit der Da­ tenverarbeitungseinrichtung verbunden ist, zum Weiterleiten von Kommunikationen zwischen einem Dateisystemklienten (212) und der Datenverarbei­ tungseinrichtung; und
  • d) einer Schnittstelle zwischen der Datenverarbei­ tungseinrichtung und dem Datenspeichergerät (203).
27. Vorrichtung gemäß Anspruch 26, bei der die Datenverar­ beitungseinrichtung folgende Merkmale aufweist:
  • a) eine Arraysteuerung (204), die die Arraysteue­ rungsprozesse (300) ausführt; und
  • b) einen Dateisystemprozessor (205), der Dateisy­ stemprozesse (308) ausführt und die Dateisystem­ datenverwaltungsanordnung beibehält.
28. Vorrichtung gemäß Anspruch 26 oder 27, bei der die Eingangs/Ausgangsanordnung folgende Merkmale umfaßt:
  • a) ein Eingangs/Ausgangs-Tor (208), das eine physi­ sche Eingangs/Ausgangsverbindung aufweist; und
  • b) eine Netzprotokollstapelkomponente (210), die be­ treibbar mit dem Eingangs/Ausgangs-Tor verbunden ist.
29. Vorrichtung gemäß Anspruch 28, bei der die Netzproto­ kollstapelkomponente (210) Netzschnittstelleneinrich­ tungen für sowohl die Arraysteuerung (204) als auch den Dateisystemprozessor (205) liefert.
DE10209803A 2001-03-27 2002-03-06 Verfahren, Datenspeichersystem und Computerprogramm zum Liefern eines Dateisystemzugriffs auf ein Plattenarray Expired - Lifetime DE10209803B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/819,265 US6904441B2 (en) 2001-03-27 2001-03-27 Method and apparatus for providing file system access to a disk array
US819265 2001-03-27

Publications (2)

Publication Number Publication Date
DE10209803A1 true DE10209803A1 (de) 2002-10-17
DE10209803B4 DE10209803B4 (de) 2004-07-29

Family

ID=25227651

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10209803A Expired - Lifetime DE10209803B4 (de) 2001-03-27 2002-03-06 Verfahren, Datenspeichersystem und Computerprogramm zum Liefern eines Dateisystemzugriffs auf ein Plattenarray

Country Status (4)

Country Link
US (1) US6904441B2 (de)
JP (1) JP2002312210A (de)
DE (1) DE10209803B4 (de)
GB (1) GB2375634B (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7171396B2 (en) * 2002-04-04 2007-01-30 Hewlett-Packard Development Company, L.P. Method and program product for specifying the different data access route for the first data set includes storing an indication of the different access for the first data set providing alternative data access routes to a data storage
JP4283004B2 (ja) * 2003-02-04 2009-06-24 株式会社日立製作所 ディスク制御装置およびディスク制御装置の制御方法
EP1668486A2 (de) 2003-08-14 2006-06-14 Compellent Technologies Virtuelles plattenlaufwerksystem und verfahren
JP2007122236A (ja) * 2005-10-26 2007-05-17 Konica Minolta Business Technologies Inc 文書管理装置及び文書管理方法
US9934244B2 (en) 2010-08-13 2018-04-03 At&T Intellectual Property I, L.P. System and method for file format management
CN103699336B (zh) * 2013-12-03 2016-09-07 中国科学院计算技术研究所 一种磁盘阵列数据分布与重建方法及系统
WO2016172569A1 (en) * 2015-04-22 2016-10-27 Ryft Systems, Inc. Systems and methods for performing primitive tasks using specialized processors
US9542244B2 (en) 2015-04-22 2017-01-10 Ryft Systems, Inc. Systems and methods for performing primitive tasks using specialized processors
CN115017108A (zh) * 2021-03-03 2022-09-06 北京字节跳动网络技术有限公司 在加密文件系统ecryptfs上快速生成大文件的方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3135751B2 (ja) * 1993-07-16 2001-02-19 株式会社東芝 データ記憶装置
US5392244A (en) 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management
JPH09223049A (ja) 1996-02-15 1997-08-26 Ekushingu:Kk ディスクアレイ装置
US5974503A (en) * 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
US6442682B1 (en) * 1999-02-18 2002-08-27 Auspex Systems, Inc. Characterization of data access using file system
JP3592640B2 (ja) 2001-01-09 2004-11-24 株式会社東芝 ディスク制御システムおよびディスク制御方法

Also Published As

Publication number Publication date
US20020143793A1 (en) 2002-10-03
DE10209803B4 (de) 2004-07-29
GB2375634A (en) 2002-11-20
GB2375634B (en) 2005-04-13
GB0206057D0 (en) 2002-04-24
US6904441B2 (en) 2005-06-07
JP2002312210A (ja) 2002-10-25

Similar Documents

Publication Publication Date Title
DE69127752T2 (de) System zur freigabe des raumes gelöschter dateien für ein dynamisch abbildendes virtuelles datenspeichersubsystem
DE3780807T2 (de) Verfahren zum schnellen oeffnen von mit pfadnamen identifizierten plattendateien.
DE69802437T2 (de) Feinkörniger übereinstimmungsmechanismus für optimistische parallelsteuerung mit verriegelungsgruppen
DE69636330T2 (de) Verfahren für On-line- und Echzeit-Datenmigration
DE4218025C2 (de) Vorrichtung und Verfahren zur automatischen Zuordnung von Datenspeichereinrichtungen in einem Computersystem
DE69424597T2 (de) Erweiterbares Dateiensystem
DE60000471T2 (de) Intelligenter datenspeicher-verwalter
DE69231436T2 (de) Verfahren und Gerät um auf ein rechnergestütztes Dateiensystem zuzugreifen
DE69722962T2 (de) Strukturiertes datenspeichersystem mit global adressierbarem speicher
DE69431186T2 (de) Verfahren und Dateisystem zur Zuordnung von Datei-Blöcken zu Speicherplatz in einem RAID-Plattensystem
DE102004064069B4 (de) Plattenarrayvorrichtung
DE69728176T2 (de) Verfahren und gerät das verteilte steuerung von gemeinsamen betriebsmitteln erlaubt
DE69700574T2 (de) Verfahren zum Cache-Speichern von Netzwerk- und CD-ROM-Zugriffen unter Verwendung einer lokalen Festplatte
DE69636192T2 (de) Datenmigrationssystem und -verfahren unter verwendung von undichten dateien
DE3853274T2 (de) Verfahren und Vorrichtung zur Aufteilung von Datenverarbeitungsfunktionen zwischen mehreren Prozessoren.
DE69623227T2 (de) Verfahren und System zur Berechnung von Dateinamen mit hoher Wahrscheinlichkeit der Eindeutigkeit
DE69031926T2 (de) Instandhaltung von Dateiattributen in einem verteilten Datenverarbeitungssystem
DE602004008849T2 (de) System und Methode zur Partitionierung und zum Management von Speichersubsystemen
DE69029210T2 (de) Verwaltungsverfahren und Vorrichtung zur Datenspeicherung
DE69724862T2 (de) Verfahren und Anordnung für die Zugangs- und Informationsverfälschungskontrolle in Rechnersystemen
DE69600754T2 (de) Aufteilung einer Teilung in einem Plattenspeichersystem
DE69733305T2 (de) System/Verfahren zur wirkungsvollen Übermittlung von Datenströmen in einem Multimediasystem
DE69033064T2 (de) Verfahren zur Zuordnung von reellen Seiten zu virtuellen Seiten mit davon verschiedenen Seitengrössen
DE10226909A1 (de) System und Verfahren zur vorgeschriebenen Zugriffssteuerung auf ein Dateisystem
DE19628168A1 (de) Vernetztes multimediales Netz

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOU, US

Free format text: FORMER OWNER: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., HOUSTON, TEX., US

R082 Change of representative

Representative=s name: SCHOPPE, ZIMMERMANN, STOECKELER, ZINKLER, SCHE, DE

R071 Expiry of right
R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, SPR, US

Free format text: FORMER OWNER: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOUSTON, TEX., US

R082 Change of representative

Representative=s name: PROCK, THOMAS, DR., GB