-
ALLGEMEINER STAND DER TECHNIK
-
Speicherteilsysteme, wie zum Beispiel Festplattenlaufwerke und Festkörperlaufwerke, stellen Speichermedien für Host-Verarbeitungssysteme zum Speichern und Lesen verschiedener Datenobjekte bereit. Diese Datenobjekte können Bilder, Videos, Word-Dokumente, Tabellenkalkulationsblätter und verschiedene andere Dateitypen enthalten, die durch das Host-Verarbeitungssystem verarbeitet werden können. Um dem Host-System Speichermedien verfügbar zu machen, können ein oder mehrere der Teilsysteme mittels eines Small Computer System Interface(SCSI)-Busses, eines Serial Attached SCSI(SAS)-Busses, eines Serial ATA(SATA)-Busses, eines Peripheral Component Interconnect Express(PCIe)-Busses, eines Fibre Channel oder irgend einer anderen ähnlichen Schnittstelle oder irgend eines anderen ähnlichen Busses kommunikativ mit dem System gekoppelt werden.
-
Vor dem kommunikativen Koppeln des Speicherteilsystems mit dem Host-Verarbeitungssystem können Regionen innerhalb des Teilsystems beim Hersteller getestet oder verifiziert werden, um sicherzustellen, dass dem Nutzer am Endcomputersystem Regionen zur Verfügung stehen. Dementsprechend wäre jedes Segment oder jeder Abschnitt des Teilsystems, das bzw. der keine Daten speichern könnte, für den Nutzer nicht sichtbar, wenn das Teilsystem gekoppelt ist. Da jedoch die Laufwerksgröße und die Anzahl der Laufwerke, die der Hersteller herstellt, zugenommen haben, ist es ineffizienter geworden, Abschnitte innerhalb der Teilsysteme zu testen und zu verifizieren, bevor das Laufwerk dem Endnutzer zur Verfügung gestellt wird.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Die im vorliegenden Text offenbarten Beispiele stellen Systeme, Verfahren und Software zum Testen von Speichermedien und Speicherteilsystemen im Moment der Verwendung bereit. In einem Beispiel enthält eine Computervorrichtung zum Testen eines Speicherteilsystems für ein Host-Verarbeitungssystem ein oder mehrere nicht-transitorische computerlesbare Medien sowie Verarbeitungsinstruktionen bereit, die auf dem einen oder den mehreren nicht-transitorischen computerlesbaren Medien gespeichert sind und die ein Verarbeitungssystem anweisen, wenn das Speicherteilsystem, das Speichermedien umfasst, verwendet wird, einen Testprozess zu initiieren, um Speicherblöcke in den Speichermedien zu identifizieren, die zum Speichern von Daten für das Host-Verarbeitungssystem geeignet sind. Die Verarbeitungsinstruktionen weisen das Verarbeitungssystem außerdem an, nach dem Initiieren des Testprozesses iterativ Partitionsverfügbarkeitsereignisse zu identifizieren. Die Verarbeitungsinstruktionen weisen das Verarbeitungssystem außerdem an, in Reaktion auf jedes Partitionsverfügbarkeitsereignis in den Partitionsverfügbarkeitsereignissen dem Host-Verarbeitungssystem eine Partition des Speichermediums verfügbar zu machen, wobei die Partition eine Zusammenstellung von Speicherblöcken umfasst, die mittels des Testprozesses getestet wurden und die von anderen Speicherblöcken in Partitionen verschieden sind, die dem Host-Verarbeitungssystem zuvor verfügbar gemacht wurden.
-
In einem anderen Fall enthält ein Speicherteilsystem zum Testen von Speichermedien im Moment der Verwendung ein Speichermedium sowie ein Speicherverarbeitungssystem, das dafür konfiguriert ist, wenn das Speicherteilsystem in einem Computersystem mit einem Host-Verarbeitungssystem verwendet wird, einen Testprozess zu initiieren, um in dem Speichermedium Speicherblöcke zu identifizieren, die zum Speichern von Daten für das Host-Verarbeitungssystem geeignet sind. Das Speicherverarbeitungssystem ist des Weiteren dafür konfiguriert, nach dem Initiieren des Testprozesses iterativ Partitionsverfügbarkeitsereignisse zu identifizieren. Das Speicherverarbeitungssystem ist des Weiteren dafür konfiguriert, in Reaktion auf jedes Partitionsverfigbarkeitsereignis in den Partitionsverfügbarkeitsereignissen dem Host-Verarbeitungssystem eine Partition des Speichermediums verfügbar zu machen, wobei die Partition eine Zusammenstellung von Speicherblöcken umfasst, die mittels des Testprozesses getestet wurden und die von anderen Speicherblöcken in Partitionen verschieden sind, die dem Host-Verarbeitungssystem zuvor verfügbar gemacht wurden
-
In einem weiteren Beispiel enthält ein Host-Computersystem ein Host-Verarbeitungssystem und ein Speicherteilsystem, das ein Speichermedium sowie ein Speicherverarbeitungssystem umfasst, wobei das Speicherverarbeitungssystem dafür konfiguriert ist, wenn das Speicherteilsystem in dem Computersystem verwendet wird, einen Testprozess zu initiieren, um in dem Speichermedium Speicherblöcke zu identifizieren, die zum Speichern von Daten für das Host-Verarbeitungssystem geeignet sind. Das Speicherverarbeitungssystem ist des Weiteren dafür konfiguriert, nach dem Initiieren des Testprozesses iterativ Partitionsverfügbarkeitsereignisse zu identifizieren. Das Speicherverarbeitungssystem ist des Weiteren dafür konfiguriert, in Reaktion auf jedes Partitionsverfügbarkeitsereignis in den Partitionsverfügbarkeitsereignissen dem Host-Verarbeitungssystem eine Partition des Speichermediums verfügbar zu machen, wobei die Partition eine Zusammenstellung von Speicherblöcken umfasst, die mittels des Testprozesses getestet wurden und die von anderen Speicherblöcken in Partitionen verschieden sind, die dem Host-Verarbeitungssystem zuvor verfügbar gemacht wurden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die folgende Beschreibung und die zugehörigen Figuren lehren den besten Modus der Erfindung. Für den Zweck des Lehrens der erfindungsgemäßen Prinzipien können einige herkömmliche Aspekte des besten Modus vereinfacht oder weggelassen werden. Die folgenden Ansprüche spezifizieren den Schutzumfang der Erfindung. Es ist zu beachten, dass einige Aspekte des besten Modus möglicherweise nicht in den durch die Ansprüche spezifizierten Schutzumfang der Erfindung fallen. Der Fachmann erkennt jedoch Abweichungen vom besten Modus, die in den Schutzumfang der Erfindung fallen. Dem Fachmann leuchtet ein, dass die unten beschriebenen Merkmale auf verschiedene Weise kombiniert werden können, um mehrere Variationen der Erfindung zu bilden.
-
Infolgedessen ist die Erfindung nicht auf die unten konkret beschriebenen Beispiele beschränkt, sondern wird allein durch die Ansprüche und ihre Äquivalente beschränkt.
-
1 ist ein Blockschaubild, das ein Computersystem zum Testen von Speichermedien im Moment der Verwendung veranschaulicht.
-
2 ist ein Flussdiagramm, das eine Funktionsweise eines Speicherverarbeitungssystems zum Testen von Speichermedien veranschaulicht.
-
3 ist ein Flussdiagramm, das eine Partitionierung eines verwendeten Speichermediums veranschaulicht.
-
4 ist ein Blockschaubild, das eine Übersicht des Bereitstellens neuer Speicherpartitionen für ein Host-Verarbeitungssystem veranschaulicht.
-
5 ist ein Blockschaubild, das eine Übersicht des Hinzufügens eines Speicherteilsystems zu einer Computerumgebung veranschaulicht.
-
6 ist ein Blockschaubild, das ein Computersystem zum Testen eines neuen Speicherteilsystems im Moment der Verwendung veranschaulicht.
-
DETAILLIERTE BESCHREIBUNG
-
Speicherteilsysteme, wie zum Beispiel Festplattenlaufwerke, Festkörperlaufwerke und hybride Festkörper-Festplattenlaufwerke, werden oft in Computersystemen zum Speichern von Datenobjekten für ein Host-Verarbeitungssystem verwendet. Diese Datenobjekte enthalten oft Audio-Dateien, Film-Dateien, Word-Dokumente, Tabellenkalkulationsblätter, Bilder oder sonstige Dateitypen. Um dem Host-Verarbeitungssystem ein Speicherteilsystem verfügbar zu machen, muss das Speicherteilsystem kommunikativ mit dem Host-Verarbeitungssystem verlinkt sein, um eine Kommunikation zwischen den beiden Systemen zu ermöglichen. Dieser Kommunikationslink kann einen Small Computer System Interface(SCSI)-Bus, einen Serial Attached SCSI(SAS)-Bus, einen Serial ATA(SATA)-Bus, einen Peripheral Component Interconnect Express(PCIe)-Bus, einen Fibre Channel oder eine andere ähnliche Schnittstelle oder einen anderen ähnlichen Bus enthalten.
-
Wie im vorliegenden Text beschrieben, enthält das Speicherteilsystem, das an das Host-Verarbeitungssystem angeschlossen ist, ein Speichermedium, das ungetestet oder -verifiziert ist, um durch den Hersteller vor dem Vertrieb Daten zu speichern. Bevor also Operationen ausgeführt werden können, wie zum Beispiel Speichern und Lesen aus dem Speicherteilsystem, müssen durch ein Verarbeitungssystem Speicherblöcke in dem Speichermedium getestet werden. Durch Testen des Speicherteilsystems in dem verwendeten Computersystem anstatt während der Herstellung der Vorrichtung können Zeit und Ressourcen bei einer Aufgabe eingespart werden, die ansonsten durch das verwendete Computersystem ausgeführt werden könnte.
-
In einigen Beispielen wird ein Speicherverarbeitungssystem, das sich in dem Speicherteilsystem befindet, zum Testen oder Verifizieren der Speicherblöcke in dem Speichermedium verwendet. Genauer gesagt, identifiziert das Speicherverarbeitungssystem, wann die Vorrichtung in einem Computersystem initiiert oder verwendet wird, und initiiert einen Testprozess des Speichermediums, wobei der Testprozess verifizieren kann, dass Sektoren zum Speichern von Daten verfügbar sind, sicherstellen kann, dass keine Abschnitte des Mediums beschädigt sind, oder im Übrigen sicherstellen kann, dass das Medium zum Speichern von Daten verfügbar ist. Während des Testens identifiziert das Speicherverarbeitungssystem iterativ Partitionsverfügbarkeitsereignisse und macht, auf der Basis der Ereignisse, einem Host-Verarbeitungssystem eine neue Partition verfügbar. Diese neuen Partitionen entsprechen logischen Blockadressen (LBAs) von Speicherblöcken, die den Testprozess vollendet haben und zum Speichern von Datenobjekten für das Host-Verarbeitungssystem verfügbar sind.
-
In mindestens einem Beispiel kann das Host-Verarbeitungssystem ein dezentrales Dateisystem (Distributed File System, DFS) verwalten, das eine beliebige Anzahl von Speicherteilsystemen und Speicherpartitionen enthalten kann. Dementsprechend können in dem Maße, wie Partitionen oder gruppierte LBAs im Verlauf des Testprozesses verfügbar werden, die Partitionen dem dezentralen Dateisystem, das über das Host-Verarbeitungssystem zugänglich ist, hinzugefügt werden.
-
Wir wenden uns 1 als einem Beispiel zu. 1 ist ein Blockschaubild, das ein Computersystem 100 zum Testen von Speichermedien im Moment der Verwendung veranschaulicht. Das Computersystem 100 enthält ein Speicherteilsystem 110 und ein Host-Verarbeitungssystem 130. Das Speicherteilsystem 110 enthält des Weiteren ein Speichermedium 101, ein Speicherverarbeitungssystem 120 und eine Speicherschnittstelle 115. Das Speicherverarbeitungssystem 120 ist kommunikativ mit dem Speichermedium 101 über den Kommunikationslink 140 gekoppelt und ist des Weiteren kommunikativ mit der Speicherschnittstelle 115 über den Kommunikationslink 141 gekoppelt. Das Host-Verarbeitungssystem 130 ist kommunikativ mit dem Speicherteilsystem 110 über die Speicherschnittstelle 115 und den Kommunikationslink 142 gekoppelt.
-
Während des Betriebes stellen Speicherteilsysteme, wie zum Beispiel das Speicherteilsystem 110, Speichermedien zum Speichern von Datenobjekten für das Host-Verarbeitungssystem 130 bereit. Diese Speichermedien können Festplattenlaufwerksmedien, Festkörperlaufwerksmedien oder sonstige ähnliche Arten von Medien enthalten, einschließlich Kombinationen und Weiterentwicklungen davon. Um dem Host-Verarbeitungssystem 130 das Speicherteilsystem 110 verfügbar zu machen, ist das Laufwerk kommunikativ mit dem Host-Verarbeitungssystem 130 gekoppelt und wird innerhalb des Computersystems 100 initiiert oder verwendet. Nach der Initiierung wird das Testen des Speichermediums 101 begonnen, um dem Host-Verarbeitungssystem 130 mehrere Speichermediumpartitionen 102–104 bereitzustellen.
-
Genauer gesagt, ist das Speichermedium 101 in dem Speicherteilsystem 110 für das Speichern von Daten durch den Hersteller vor dem Vertrieb ungetestet oder unverifiziert. Dementsprechend müssen, wenn innerhalb des Computersystems 100 verwendet, Speicherblöcke innerhalb des Speichermediums 101 getestet werden, bevor sie dem Host-Verarbeitungssystem 130 verfügbar gemacht werden können. Dieses Testen kann das Bestimmen enthalten, ob das Speichermedium schadhafte Sektoren enthält, kann das Bestimmen enthalten, ob Daten an Adressen auf dem Medium geschrieben und von dort gelesen werden können, und kann weitere ähnliche Speichermediumtests enthalten. Sobald eine Anzahl von Blockadressen auf dem Medium getestet worden sind, kann eine Speichermediumpartition vorgesehen werden, die die getesteten Blockadressen umfasst, und kann dem Host-Verarbeitungssystem 130 zum Speichern von Datenobjekten bereitgestellt werden. Die Bestimmung, wann eine neue Partition vorzusehen ist, kann das Bestimmen enthalten, wann eine zuvor festgelegte Anzahl von Adressen getestet worden sind, kann das Bestimmen enthalten, dass eine vorgegebene Zeitdauer seit Testprozessbeginn verstrichen ist, kann das Identifizieren eines Befehls enthalten, eine neue Speichermediumpartition von dem Host-Verarbeitungssystem 130 bereitzustellen, oder irgend ein anderes ähnliches Partitionsverfügbarkeitsereignis.
-
Um die Funktionsweise des Speicherteilsystems 110 und des Speicherverarbeitungssystems 120 weiter zu erläutern, wird 2 bereitgestellt. 2 ist ein Flussdiagramm, das eine Operation 200 eines Speicherverarbeitungssystems zum Testen von Speichermedien veranschaulicht. Die Operation 200 enthält das Identifizieren einer Initiierung oder Verwendung des Speicherteilsystems 110 in dem Computersystem 100, wobei das Speicherteilsystem 110 ein Speichermedium enthält, das das Testen oder Verifizieren (201) und Initiieren eines Testprozesses des Speichermediums (202) erfordert. Dieses Testen kann das Bestimmen enthalten, ob das Speichermedium schadhafte Sektoren enthält, kann das Bestimmen enthalten, ob Daten an Blockadressen auf dem Medium geschrieben und von dort gelesen werden können, und kann weitere ähnliche Speichermediumtests enthalten. Wie in 1 beschrieben, können die Hersteller von Speicherteilsystemen Laufwerke mit unverifizierten Speichersektoren vertreiben, die die Ausführung eines Testprozesses an Orten in dem Speicherteilsystem verlangen, bevor das Speichermedium verfügbar werden kann. Dieser Testprozess kann sicherstellen, dass das Medium keine Fehler enthält, dass Daten an jedem der Speicherorte in dem Medium gespeichert werden können, oder kann eine Vielzahl verschiedener anderer Tests an jedem Ort in dem Medium vornehmen.
-
Um das getestete Speichermedium verfügbar zu machen, ist das Speicherverarbeitungssystem 120 dafür konfiguriert, während der Operation 200 ein Partitionsverfügbarkeitsereignis (203) zu identifizieren und in Reaktion darauf dem Host-Verarbeitungssystem 130 eine Partition des Speichermediums verfügbar zu machen, wobei die Partition Speicherorte umfasst, die mittels des Testprozesses (204) getestet wurden. Das Partitionsverfügbarkeitsereignis kann das Bestimmen enthalten, wann eine zuvor festgelegte Anzahl von Speicherblöcken getestet worden sind, kann das Bestimmen enthalten, dass eine vorgegebene Zeitdauer seit Testprozessbeginn verstrichen ist, kann das Identifizieren eines Befehls enthalten, um eine neue Speichermediumpartition von dem Host-Verarbeitungssystem 130 bereitzustellen, oder kann irgend ein anderes ähnliches Partitionsverfügbarkeitsereignis enthalten. Sobald eine Partition generiert und dem Host verfügbar gemacht wurde, setzt das Speicherverarbeitungssystem 120 den Testprozess an Speicherorten fort, die nicht in der generierten Partition (205) enthalten sind.
-
Wir kehren zu 1 zurück. Wenn beispielsweise das Speicherteilsystem 110 mit dem Host-Verarbeitungssystem 130 initiiert wird, so initiiert das Speicherverarbeitungssystem 120 einen Testprozess am Speichermedium 101. Sobald ein Partitionsereignis identifiziert wird, identifiziert das Speicherverarbeitungssystem 120 Speicherorte, an denen die Tests vollendet wurden, und stellt dem Host-Verarbeitungssystem 130 diese Orte als Speichermediumpartition 102 bereit. Des Weiteren setzt das Speicherverarbeitungssystem 120 das Testen der verbleibenden Blockadressen im Speichermedium 101 fort und erwartet anschließende Partitionsereignisse, um Speichermediumpartitionen 103–104 zu generieren. Sobald alle verfügbaren Speichermedien getestet wurden, hält das Speicherverarbeitungssystem 120 den Testprozess an.
-
In einigen Beispielen kann mindestens ein Abschnitt des Speichermediums vor dem Vertrieb der Speicherteilsysteme getestet und bereitgestellt werden. Dieser bereitgestellte Abschnitt des Speichermediums kann dafür verwendet werden, das Speicherteilsystem im Moment der Verwendung mit dem Kost-Verarbeitungssystem zu initiieren, und kann des Weiteren den Testprozess an dem Speichermedium initiieren. In weiteren Fällen kann der bereitgestellte Abschnitt eine vorgetestete Partition enthalten, die dem Host-Verarbeitungssystem sofort verfügbar ist, während das übrige Speichermedium durch das Speicherverarbeitungssystem getestet wird.
-
Wir wenden uns 3 zu. 3 ist ein Flussdiagramm, das eine Partitionierung eines verwendeten Speichermediums zu verschiedenen Zeitinstanzen 300–302 veranschaulicht. Wie bei Zeitinstanz 300 gezeigt, ist ☐ wenn das Speichermedium 310 in einem Computersystem verwendet und initiiert wird ☐ das Speicherteilsystem 310 ungetestet und enthält keinerlei Speichermediumpartitionen. Während eines Testprozesses, der durch ein Speicherverarbeitungssystem bereitgestellt wird, werden Speicherblöcke innerhalb des Mediums getestet und einem Host-Verarbeitungssystem zum Speichern verschiedener Datenobjekte verfügbar gemacht.
-
Während des Testprozesses können Partitionsverfügbarkeitsereignisse iterativ durch das Speicherverarbeitungssystem identifiziert werden, was Bedarf an einer neuen Speichermediumpartition anzeigt. Wie in Zeitinstanz 301 veranschaulicht, wird dem Host-Verarbeitungssystem die Speichermediumpartition 320 in Reaktion auf das Identifizieren eines Partitionsverfügbarkeitsereignisses verfügbar gemacht. Die Speichermediumpartition 320 enthält Blockadressen, die mittels des Testprozesses getestet und verifiziert wurden und bereit sind, verschiedene Datenobjekte zu schreiben und zu lesen. Obgleich eine erste Partition generiert wird, wird der Testprozess fortgesetzt, um Speicherorte innerhalb des Speichermediums 310 zu testen, bis das gesamte Speichermedium getestet wurde und alle validen Speicherblöcke bestimmt wurden.
-
Dementsprechend werden, wie bei Zeitinstanz 302 veranschaulicht, Speichermediumpartitionen 321–322 innerhalb des Speichermediums 310 generiert. Diese Speichermediumpartitionen entstehen im Ergebnis anschließender Partitionsverfügbarkeitsereignisse und enthalten Speicherorte, die von den Orten der Speichermediumpartition 320 separat und eigenständig sind. Obgleich im vorliegenden Fall nicht veranschaulicht, kann das Speicherverarbeitungssystem in einigen Beispielen Speichermediumorte testen, bis alle Speicherorte verifiziert wurden. Nach der Verifizierung kann der Testprozess angehalten werden, und alle getesteten Speicherorte können dem Host-Verarbeitungssystem verfügbar gemacht werden.
-
Wir wenden uns nun 4 zu. 4 ist ein Blockschaubild, das eine Übersicht 400 des Bereitstellens neuer Speicherpartitionen für ein Host-Verarbeitungssystem veranschaulicht. Die Übersicht 400 enthält das Speicherteilsystem 410 und das Host-Verarbeitungssystem 450. Die Übersicht 400 ist ein Beispiel eines Prozesses, der in jedem bedienenden Computersystem, Desktop-Computersystem oder sonstigem Endcomputersystem ausgeführt werden kann. Das Speicherteilsystem 410 enthält des Weiteren das Speichermedium 420 und das Speicherverarbeitungssystem 440. Das Speicherverarbeitungssystem 440 kann jedes beliebige Verarbeitungssystem umfassen, das in der Lage ist, Speichermediumpartitionen zu testen und dem Host-Verarbeitungssystem 450 bereitzustellen.
-
Wie veranschaulicht, identifiziert das Speicherverarbeitungssystem 440 eine Initiierung des Speicherteilsystems 410 mit dem Host-Verarbeitungssystem 450. Diese Initiierung kann stattfinden, wenn das Speicherteilsystem 410 kommunikativ mit dem Host-Verarbeitungssystem 450 gekoppelt ist, wenn dem Speicherteilsystem 410 innerhalb des Computersystems mit dem Host-Verarbeitungssystem 450 Strom zugeführt wird, oder in jedem sonstigen Verwendungsfall in dem Computersystem. Bei Initiierung initiiert das Speicherverarbeitungssystem 440 ein Testen an den verschiedenen Speicherorten innerhalb des Speichermediums 420. Wie zuvor beschrieben, kann ein Hersteller es vorziehen, Speicherteilsysteme oder Laufwerke ohne Testen der Laufwerke vor dem Vertrieb zu vertreiben. Dies vermeidet überflüssige Arbeitsschritte durch den Hersteller, die anderenfalls beim Vertrieb und bei der Verwendung in einem Endcomputersystem vorgenommen werden könnten.
-
Da die Tests an dem Speichermedium 420 ausgeführt werden, kann das Speicherverarbeitungssystem 440 ein Partitionierungsereignis identifizieren, das eine neue Partition für das Host-Verarbeitungssystem 450 anfordert. Dieses Partitionierungsereignis kann stattfinden, wenn eine zuvor festgelegte Anzahl von Speicherorten zu Ende getestet wurden, kann bei Ablauf eines zuvor festgelegten Testzeitraums stattfinden, kann stattfinden, wenn das Host-Verarbeitungssystem 450 eine neue Partition anfordert, oder kann in sonstigen Fällen stattfinden. Beispielsweise kann das Speicherverarbeitungssystem 440 dafür konfiguriert sein, dem Host-Verarbeitungssystem 450 eine neue Partition für jedes Terabyte neuer Speicherorte bereitzustellen. Wenn also das Speicherverarbeitungssystem 440 identifiziert, dass ein neues Terabyte an Speicherorten getestet wurde, so kann das Speicherverarbeitungssystem 440 die neuen Orte dem Host-Verarbeitungssystem 450 als eine neue Partition bereitstellen.
-
Im vorliegenden Fall enthält das Speichermedium 420 bereits Partitionen 425–426, jeweils mit den Blockadressen 430–431. Jedoch kann der durch das Speicherverarbeitungssystem 440 ausgeführte Testprozess fortgesetzt werden, bis das gesamte Speichermedium 420 getestet wurde. Somit bestimmt das Speicherverarbeitungssystem 440 beim Identifizieren eines Partitionsereignisses, dass dritte Adressen 432 verfügbar sind, und generiert eine neue Partition 427, die dritte Adressen 432 enthält. Sobald die neue Partition 427 generiert ist, kann sie dem Host-Verarbeitungssystem 450 über das Speicherverarbeitungssystem 440 bereitgestellt werden, wodurch es dem Host-Verarbeitungssystem 450 möglich ist, mehrere Datenobjekte zu speichern und abzurufen.
-
In mindestens einem Fall kann das Host-Verarbeitungssystem 450 ein DFS verwalten, das mehrere Laufwerke, Partitionen und andere Computersysteme verwendet, um einem Endnutzer eine einzige Dateisystemansicht zu bieten. Dementsprechend braucht das Host-Verarbeitungssystem 450 möglicherweise keine einzelne Partition, sondern kann neue Partitionen zu dem Speicherstapel hinzufügen, der in dem Dateisystem verwendet wird. Mittels dieses Prozesses kann jede beliebige Anzahl von Laufwerken oder Speicherteilsystemen mittels der im vorliegenden Text beschriebenen Verfahren getestet und dem Host-Verarbeitungssystem 450 verfügbar gemacht werden.
-
Um die Verwendung mehrerer Speicherteilsysteme weiter zu veranschaulichen, wird 5 bereitgestellt. 5 ist ein Blockschaubild, das eine Übersicht 500 des Hinzufügens eines ungetesteten Speicherteilsystems zu einer Computerumgebung veranschaulicht. Die Übersicht 500 enthält Speicherteilsysteme 510–511 und ein Host-Verarbeitungssystem 550. Die Speicherteilsysteme 510–511 enthalten des Weiteren Speichermedien 520–521 und Speicherverarbeitungssysteme 540–541.
-
Wie im vorliegenden Beispiel veranschaulicht, ist das Speicherteilsystem 511 momentan dem Host-Verarbeitungssystem 550 verfügbar. Somit kann das Host-Verarbeitungssystem 550 verschiedene Datenobjekte von Partitionen 532–533 innerhalb des Speichermediums 521 lesen, schreiben und löschen. Da jedoch weiterer Speicherplatz benötigt wird, kann das Speicherteilsystem 510 innerhalb des Computersystems initiiert werden, um dem Host-Verarbeitungssystem 550 zusätzliche Speichermedien bereitzustellen. Beim Initiieren oder Verwenden des Speicherteilsystems 510, was das kommunikative Koppeln und Stromversorgen des Speicherteilsystems 510 umfassen kann, initiiert das Speicherverarbeitungssystem 540 das Testen von Speicherblöcken in dem Speichermedium 520. Dieses Testen kann das Bestimmen enthalten, ob das Speichermedium schadhafte Sektoren enthält, kann das Bestimmen enthalten, ob Daten an Adressen auf dem Medium geschrieben und von dort gelesen werden können, oder kann sonstige Speichermediumtests enthalten.
-
Während des Testens des Speichermediums 520 identifiziert das Speicherverarbeitungssystem 540 ein Partitionierungsereignis, dass dafür verwendet wird, eine neue Partition innerhalb des Speichermediums 520 zu generieren. Dieses Partitionierungsereignis kann durch das Speicherverarbeitungssystem 540 generiert werden, oder kann durch das Host-Verarbeitungssystem 550 generiert werden. Zum Beispiel kann das Speicherverarbeitungssystem 540 eine zuvor festgelegte Speicherblockschwelle enthalten, die, wenn sie erreicht wird, das Generieren einer neuen Partition auslöst. Im Gegensatz dazu kann das Speicherverarbeitungssystem 540 das Host-Verarbeitungssystem 550 benachrichtigen, dass gerade Tests an dem Speichermedium 520 ausgeführt werden, um ein neues Speichermedium verfügbar zu machen. Auf der Basis dieser Benachrichtigung kann das Host-Verarbeitungssystem 550 das Speicherverarbeitungssystem 540 benachrichtigen, wenn eine neue Partition benötigt wird.
-
Beim Identifizieren eines ersten Partitionierungsereignisses kann das Speicherverarbeitungssystem 540 eine Speicherpartition 530 generieren und die neue Partition dem Host-Verarbeitungssystem 550 bereitstellen, während der Testprozess an weiteren Speicherorten fortgesetzt wird. In Reaktion auf das Identifizieren eines zweiten Partitionierungsereignisses kann das Speicherverarbeitungssystem 540 eine zweite Speicherpartition 531 generieren und die Partition dem Host-Verarbeitungssystem 550 bereitstellen. Dieser Prozess des Testens und Identifizierens der Partitionierungsereignisse kann so oft wiederholt werden wie nötig, bis das gesamte Speichermedium 520 getestet wurde. In einigen Beispielen kann das letzte Partitionierungsereignis stattfinden, wenn das gesamte Speichermedium getestet wurde und bereit ist, dem Host-Verarbeitungssystem bereitgestellt zu werden.
-
Wie im vorliegenden Text beschrieben, kann in einigen Beispielen das Host-Verarbeitungssystem 550 dafür verwendet werden, ein DFS zu verwalten, das es erlaubt, Datenobjekte mittels mehrerer Speicherteilsysteme und Partitionen zu speichern. Wenn also das Host-Verarbeitungssystem 550 zusätzlichen Speicher verlangt, so kann ein Administrator neue ungetestete Speichermedien in Form des Speicherteilsystems 510 kommunikativ koppeln. Diese ungetesteten Speichermedien können Festkörper-Speichermedien, Festplatten-Speichermedien oder sonstige ähnliche Speichermedien, einschließlich Weiterentwicklungen davon, enthalten. Nach dem Koppeln und Initiieren innerhalb des Computersystems kann das Speicherverarbeitungssystem 540 einen Testprozess initiieren, der zum Testen und Verifizieren der mehreren Speicherorte innerhalb des Speichermediums 520 verwendet wird, und die getesteten Abschnitte des Speichermediums 520 als Partitionen 530–531 dem Host-Verarbeitungssystem 550 bereitstellen.
-
Obgleich im vorangegangenen Beispiel als das Übermitteln von Partitionen an ein DFS veranschaulicht, versteht es sich, dass die Partitionen auch an ein Computersystem übermittelt werden können, um jede beliebige Art von Speichersystem bereitzustellen. Zum Beispiel könnte das Host-Verarbeitungssystem 550 einfach neue Speicherpartitionen zum Speichern zusätzlicher Daten für Prozesse, die auf dem Host-Verarbeitungssystem 550 ausgeführt werden, anfordern. Des Weiteren sind im vorliegenden Beispiel zwar zwei Speicherteilsysteme veranschaulicht, doch es versteht sich, dass jede beliebige Anzahl von Speicherteilsystemen oder Vorrichtungen in dem Computersystem enthalten sein könnten, um adäquate Speichermedien bereitzustellen.
-
In einigen Beispielen können die vom Hersteller vertriebenen Speicherteilsysteme verschiedene Mengen an verfügbarem Speicher enthalten. Zum Beispiel kann das Speicherteilsystem 510 2,2 Terabyte verfügbaren Speicher enthalten, während das Speicherteilsystem 511 1,9 Terabyte verfügbaren Speicher enthalten kann. Obgleich jedes Teilsystem oder Laufwerk voneinander verschiedene Mengen an Speicher enthalten kann, kann der Hersteller die Laufwerke auf der Basis der durchschnittlichen Produktionsausbeute eines jeden der Laufwerke verkaufen. Unter Verwendung des vorausgegangenen Beispiels kann der Hersteller die Laufwerke mit der Aussage verkaufen, dass jedes durchschnittlich mindestens 2 Terabyte Speicherkapazität bietet. Dementsprechend können zwar einige Laufwerke keine 2 Terabyte Speicherplatz enthalten, doch je mehr Laufwerke verwendet werden, desto wahrscheinlicher wird es, dass der Nutzer im Durchschnitt den erforderlichen Speicher je Laufwerk erhält.
-
6 ist ein Blockschaubild, das ein Computersystem 600 zum Testen neuer Speicherteilsysteme und für deren Verfügbarmachung zum Speichern von Datenobjekten veranschaulicht. Das Computersystem 600 ist für ein Computersystem repräsentativ, das in einer beliebigen Computervorrichtung, einem beliebigen Computersystem oder -gerät oder Zusammenstellungen davon genutzt werden kann, um die in den 1–5 des vorliegenden Textes beschriebenen Speicherverarbeitungssysteme zweckmäßig zu implementieren. Das Computersystem 600 umfasst eine Kommunikationsschnittstelle 601, eine Benutzerschnittstelle 602 und ein Verarbeitungssystem 603. Das Verarbeitungssystem 603 ist kommunikativ mit der Kommunikationsschnittstelle 601 und der Benutzerschnittstelle 602 verlinkt. Das Verarbeitungssystem 603 enthält Verarbeitungsschaltungen 605 und eine Speichervorrichtung 606, die eine Betriebssoftware 607 speichert.
-
Die Kommunikationsschnittstelle 601 umfasst Komponenten, die über Kommunikationslinks kommunizieren, wie zum Beispiel Netzwerkkarten, Ports, HF-Transceiver, Verarbeitungsschaltungen und -software oder sonstige Kommunikationsgeräte. Die Kommunikationsschnittstelle 601 kann dafür konfiguriert sein, über metallische, drahtlose oder optische Links zu kommunizieren. Die Kommunikationsschnittstelle 601 kann dafür konfiguriert sein, Zeitmultiplexierung (TDM), Internet Protocol (IP), Ethernet, optische Vernetzung, Drahtlosprotokolle, Kommunikationszeichengabe, SAS, SATA, Fiber Channel oder ein sonstiges Kommunikationsformat, einschließlich Kombinationen davon, zu verwenden. Insbesondere kann die Kommunikationsschnittstelle 601 kommunikativ mit Speichermedien gekoppelt sein, wie zum Beispiel Festplattenmedien und Festkörpermedien. Des Weiteren kann die Kommunikationsschnittstelle 601 in einigen Fällen dafür konfiguriert sein, mit einem Hauptverarbeitungssystem einer Computervorrichtung zu kommunizieren. Dieses Hauptverarbeitungssystem kann verschiedene Anwendungen, Betriebssysteme und Prozesse für einen Endnutzer ausführen, aber mindestens einen Teil der Speicherprozesse an das Computersystem 600 auslagern.
-
Die Benutzerschnittstelle 602 umfasst Komponenten, die mit einem Nutzer interagieren. Die Benutzerschnittstelle 602 kann eine Tastatur, einen Anzeigeschirm, eine Maus, ein Touchpad oder sonstige Nutzereingabe-/-ausgabegeräte enthalten. Die Benutzerschnittstelle 602 kann in einigen Beispielen weggelassen werden.
-
Die Verarbeitungsschaltungen 605 umfassen einen Mikroprozessor und andere Schaltungen, die eine Betriebssoftware 607 aus der Speichervorrichtung 606 abrufen und ausführen. Die Speichervorrichtung 606 umfasst ein nicht-transitorisches Speichermedium, wie zum Beispiel ein Disk-Laufwerk, ein Flash-Laufwerk, Datenspeicherschaltungen oder eine andere Speichervorrichtung. Die Betriebssoftware 607 umfasst Computer-Programme, Firmware oder irgendeine andere Form von maschinenlesbaren Verarbeitungsinstruktionen. Die Betriebssoftware 607 enthält ein Identifizierungsmodul 608, ein Testmodul 609 und ein Verfügbarkeitsmodul 610, obgleich jede beliebige Anzahl von Softwaremodulen die gleiche Operation bereitstellen kann. Die Betriebssoftware 607 kann des Weiteren ein Betriebssystem, Dienstprogramme, Treiber, Netzwerkschnittstellen, Anwendungen oder irgendeine andere Art von Software enthalten. Wenn die Betriebssoftware 607 durch die Schaltungen 605 ausgeführt wird, so weist sie das Verarbeitungssystem 603 an, das Computersystem 600 in der im vorliegenden Text beschriebenen Weise zu betreiben.
-
Insbesondere ist das Identifizierungsmodul 608 dafür konfiguriert, wenn es durch das Computersystem 600 und das Verarbeitungssystem 603 ausgeführt wird, zu identifizieren, wann ein Speicherteilsystem innerhalb eines Computersystems oder einer Computerumgebung initiiert oder verwendet wird. In einigen Beispielen kann sich das Computersystem 600 in dem Speicherteilsystem befinden, obgleich es sich versteht, dass es sich ebenso als ein Verarbeitungssystem außerhalb des Speicherteilsystems befinden könnte. Sobald das Speicherteilsystem verwendet wird, initiiert das Testmodul 609 einen Testprozess an ungetesteten Abschnitten des Speichermediums in dem Speicherteilsystem. In einigen Beispielen kann ein Hersteller Speicherteilsysteme oder Laufwerke für Endgeräte ohne Testen der darin enthaltenen Speichermedien vertreiben.
-
Bevor also das Laufwerk zum Speichern verschiedener Datenobjekte verwendet werden kann, müssen Speicherblöcke innerhalb des Speichermediums getestet und verifiziert werden, bevor sie verfügbar werden können.
-
Während des Testens der Speicherorte ist das Verfügbarkeitsmodul 610 dafür konfiguriert, ein Partitionsverfügbarkeitsereignis zu identifizieren und in Reaktion auf das Ereignis eine Partition für ein Host-Verarbeitungssystem zu generieren, das Speicherorte in dem Speichermedium enthält, die mittels des Testprozesses getestet wurden. Dieses Partitionsverfügbarkeitsereignis kann umfassen: eine zuvor festgelegte Anzahl von Speicherorten, die mittels des Testprozesses getestet oder verifiziert wurden, eine zuvor festgelegte Zeitdauer zum Ausführen des Testprozesses, eine externe Anfrage nach einer Partition, die einem Host verfügbar gemacht werden soll, oder ein sonstiges Partitionsverfügbarkeitsereignis. Sobald die Partition mittels des Verfügbarkeitsmoduls 610 generiert wurde, wird die Partition dann dem Host-Verarbeitungssystem zur Verfügung gestellt, was es dem Host-Verarbeitungssystem ermöglicht, Daten in der bzw. von der Partition zu speichern, zu lesen und zu löschen. Derweil setzt das Testmodul 609 das Testen der ungetesteten Speicherblöcke der Speichermedien fort, um neue Speicherorte für zusätzliche Speicherpartitionen zu verifizieren. Wenn also ein zweites Verfügbarkeitsereignis eintritt, so kann dem Host-Verarbeitungssystem eine neue Partition verfügbar gemacht werden, die die neu getesteten Speicherblöcke enthält.
-
In mindestens einem Beispiel können die Speicherteilsysteme innerhalb einer DFS-Computerumgebung oder eines DFS-Systems verwendet werden. Somit können zwar Partitionen mittels des Speicherverarbeitungssystems generiert werden, doch das Host-Verarbeitungssystem kann, mittels Software, eine vereinheitlichte Dateisystemansicht präsentieren, die mehrere Speicherteilsysteme und Partitionen enthält. Weil ein DFS in der Lage ist, mehrere Speichergeräte und Partitionen zu verwalten, können des Weiteren Partitionen zu dem Dateisystem hinzugefügt werden, weil sie im Moment ihrer Verwendung getestet und verifiziert wurden.
-
Wir kehren zu den Elementen von 1 zurück. Das Speicherteilsystem 110 kann ein Festplattenlaufwerk, ein Festkörperlaufwerk oder eine sonstige ähnliche Speichervorrichtung umfassen. Das Speicherverarbeitungssystem 120 kann verschiedene Verarbeitungselemente, Speicherelemente und Schnittstellenelemente umfassen, die in der Lage sind, Speichermedien zu testen und die getesteten Speichermedien als Partitionen dem Host-Verarbeitungssystem 130 bereitzustellen. Die Speicherschnittstelle 115 kann jede beliebige Schnittstelle umfassen, die in der Lage ist, sich mit dem Host-Verarbeitungssystem 130 zu verbinden, und kann ein oder mehrere integrierte Schaltkreise und Verarbeitungselemente umfassen. Das Host-Verarbeitungssystem 130 kann ein oder mehrere Verarbeitungselemente, Speichergeräte, Schnittstellen und andere Computerelemente umfassen, die in der Lage sind, Prozesse auszuführen, die eine Datenspeicherung mittels des Speicherteilsystems 110 erfordern.
-
Die Kommunikationslinks 140–142 nutzen jeweils ein metallisches, ein gläsernes oder ein optisches Material, die Luft, den Raum oder irgendein sonstiges Material als das Transportmedium. Die Kommunikationslinks 140–141 können jeweils Zeitmultiplexierung (TDM), einen asynchronen Übertragungsmodus (ATM), Kommunikationszeichengabe oder eine sonstige Form der Kommunikation nutzen, die innerhalb eines Speicherteilsystems verfügbar ist. Der Kommunikationslink 142 kann Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), Serial ATA (SATA), Peripheral Component Interconnect Express (PCIe), Fibre Channel oder eine andere ähnliche Schnittstelle oder einen anderen ähnlichen Bus verwenden.
-
Die obige Beschreibung und die zugehörigen Figuren lehren den besten Modus der Erfindung. Die folgenden Ansprüche spezifizieren den Schutzumfang der Erfindung. Es ist zu beachten, dass einige Aspekte des besten Modus möglicherweise nicht in den durch die Ansprüche spezifizierten Schutzumfang der Erfindung fallen. Dem Fachmann leuchtet ein, dass die oben beschriebenen Merkmale auf verschiedene Weise kombiniert werden können, um mehrere Variationen der Erfindung zu bilden. Infolgedessen ist die Erfindung nicht auf die oben beschriebenen konkreten Ausführungsformen beschränkt, sondern wird nur durch die folgenden Ansprüche und ihre Äquivalente begrenzt.