DE102012214324A1 - Datenüberprüfung mithilfe eines Prüfsummen-Sidefile - Google Patents

Datenüberprüfung mithilfe eines Prüfsummen-Sidefile Download PDF

Info

Publication number
DE102012214324A1
DE102012214324A1 DE102012214324A DE102012214324A DE102012214324A1 DE 102012214324 A1 DE102012214324 A1 DE 102012214324A1 DE 102012214324 A DE102012214324 A DE 102012214324A DE 102012214324 A DE102012214324 A DE 102012214324A DE 102012214324 A1 DE102012214324 A1 DE 102012214324A1
Authority
DE
Germany
Prior art keywords
sidefile
data
signatures
block signatures
block
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
DE102012214324A
Other languages
English (en)
Other versions
DE102012214324B4 (de
Inventor
Liran Zvibel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102012214324A1 publication Critical patent/DE102012214324A1/de
Application granted granted Critical
Publication of DE102012214324B4 publication Critical patent/DE102012214324B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Abstract

Es werden Verfahrens-, System- und Computerprogrammproduktausführungsformen zur Erleichterung der Datenüberprüfung mithilfe einer Prüfsumme in Verbindung mit einem Sidefile durch eine Prozessoreinheit in einer Rechenumgebung bereitgestellt. Bei einer Ausführungsform werden erste Blocksignaturen einer ersten Größe für erste Blöcke eines ersten Volume berechnet, das auf einer Speichereinheit gespeichert ist. Die ersten Blocksignaturen werden in einem Sidefile gespeichert. Zweite Blocksignaturen einer zweiten Größe, die sich von der ersten Größe unterscheidet, werden für zweite Blöcke eines zweiten Volume berechnet, das auf der Speichereinheit gespeichert ist. Die zweiten Blocksignaturen werden in dem Sidefile gespeichert.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anmeldung ist verwandt mit der US-Patentanmeldung Nr. 12/481953, „Data Verification Using Checksum Sidefile”, eingereicht am 10. Juni 2009, die hierin durch Bezugnahme enthalten ist.
  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein Computer und insbesondere ein Verfahren, System und Computerprogrammprodukt zur Erleichterung der Datenüberprüfung mithilfe einer Prüfsumme in Verbindung mit einem Sidefile in Datenverarbeitungs-Computer-Speicherteilsystemen.
  • HINTERGRUND DER ERFINDUNG
  • Eine Prüfsumme oder Hash-Summe ist eine feste Größe, die aus einem zufälligen Block digitaler Daten zum Zweck der Erkennung von Fehlern berechnet wird, die während dessen Übermittlung oder Speicherung entstanden sein könnten. Die Unversehrtheit der Daten kann jederzeit durch Neuberechnung der Prüfsumme und Vergleich der neuen Prüfsumme mit der gespeicherten Prüfsumme überprüft werden. Wenn die Prüfsummen nicht überstimmen, wird festgestellt, dass die Daten verändert wurden.
  • Bei Datenverarbeitungs-Computer-Speicherteilsystemen berechnet ein Speicher-Controller häufig eine Prüfsummensignatur, beispielsweise eine CRC-Signatur (Cyclic Redundancy Check (zyklische Redundanzprüfung), CRC). Eine CRC ist ein Fehlererkennungs-Code. Ihre Berechnung ähnelt einer langen Teilungsoperation, bei der der Quotient verworfen wird und der Restbetrag zum Ergebnis wird, mit dem wichtigen Unterschied, dass die verwendete Arithmetik die Restklassenarithmetik („carry-less arithmetic”) eines finiten Feldes ist. Die Länge des Restbetrags ist immer kleiner gleich der Länge des Divisors, der daher bestimmt, wie lang das Ergebnis sein kann. Durch die Definition einer bestimmten CRC wird unter anderem der zu verwendende Divisor festgelegt.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Speicher-Controller platzieren Prüfsummensignaturen wie CRCs üblicherweise in der Nähe der gespeicherten Daten, beispielsweise auf denselben nichtflüchtigen Speichermedien wie die gespeicherten Daten. Folglich kann der Fehler möglicherweise nicht mithilfe der CRC erkannt werden, wenn Daten beschädigt werden. Beispielsweise können Situationen auftreten, bei denen ein Schreibvorgang der Daten und/oder die entsprechende CRC nicht erfolgt (die Daten werden nicht geschrieben). In einem solchen Fall werden bei dem nächsten Lesevorgang dieser Daten die alten Daten und/oder die alte CRC gelesen, und das System stellt möglicherweise fest, dass die alten Daten und/oder die alte CRC gültig sind. In Anbetracht des vorstehend Beschriebenen besteht ein Bedarf an einem Mechanismus, durch den Prüfsummensignaturen wie CRCs aufbewahrt werden können, dies jedoch an einem von den gespeicherten Daten getrennten Speicherort.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung wird ein Verfahren bereitgestellt, das für erste Blöcke eines auf einer Speichereinheit gespeicherten ersten Volume das Berechnen erster Blocksignaturen einer ersten Größe und das Speichern der ersten Blocksignaturen in einem Sidefile beinhaltet, und das für zweite Blöcke eines auf der Speichereinheit gespeicherten zweiten Volume das Berechnen zweiter Blocksignaturen einer zweiten Größe, die sich von der ersten Größe unterscheidet, und das Speichern der zweiten Blocksignaturen in dem Sidefile beinhaltet.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung wird außerdem ein Computerprogrammprodukt bereitgestellt, wobei das Computerprogrammprodukt ein nichtflüchtiges computerlesbares Speichermedium enthält, auf dem computerlesbarer Programmcode verkörpert ist, wobei der computerlesbare Programmcode computerlesbaren Programmcode enthält, der dafür konfiguriert ist, für erste Blöcke eines auf einer Speichereinheit gespeicherten ersten Volume erste Blocksignaturen einer ersten Größe zu berechnen, und computerlesbaren Programmcode enthält, der dafür konfiguriert ist, die ersten Blocksignaturen in einem Sidefile zu speichern, und computerlesbaren Programmcode enthält, der dafür konfiguriert ist, für zweite Blöcke eines auf der Speichereinheit gespeicherten zweiten Volume zweite Blocksignaturen einer zweiten Größe zu berechnen, die sich von der ersten Größe unterscheidet, und computerlesbaren Programmcode enthält, der dafür konfiguriert ist, die zweiten Blocksignaturen in dem Sidefile zu speichern, Zusätzlich wird gemäß einer Ausführungsform der vorliegenden Erfindung ein Verfahren bereitgestellt, das Folgendes umfasst: Berechnen, für Blöcke eines Volume, das auf einer Speichereinheit gespeichert und in einem Sidefile gespeicherten ersten Blocksignaturen einer ersten Größe zugeordnet ist, zweiter Blocksignaturen einer zweiten Größe, die sich von der ersten Größe unterscheidet, Speichern der zweiten Blocksignaturen in dem Sidefile und Zuordnen der Blöcke zu den zweiten Blocksignaturen.
  • Gemäß einer Ausführungsform enthält die Speichereinheit mindestens eines der folgenden Laufwerke: ein Compact-Flash-Laufwerk, ein Solid-State-Laufwerk und ein Festplattenlaufwerk.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung wird weiter ein Computerprogrammprodukt bereitgestellt, wobei das Computerprogrammprodukt ein nichtflüchtiges computerlesbares Datenspeichermedium enthält, auf dem computerlesbarer Programmcode verkörpert ist, wobei der computerlesbare Programmcode computerlesbaren Programmcode enthält, der dafür konfiguriert ist, für Blöcke eines auf einer Speichereinheit gespeicherten Volume, das in einem Sidefile gespeicherten ersten Blocksignaturen einer ersten Größe zugeordnet ist, zweite Blocksignaturen einer zweiten Größe zu berechnen, die sich von der ersten Größe unterscheidet und computerlesbaren Programmcode enthält, der dafür konfiguriert ist, die zweiten Blocksignaturen in dem Sidefile zu speichern, und computerlesbaren Programmcode enthält, der dafür konfiguriert ist, die Blöcke den zweiten Blocksignaturen zuzuordnen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Damit die Vorteile der Erfindung leicht zu verstehen sind, wird eine konkretere Beschreibung der vorstehend kurz beschriebenen Erfindung durch Bezugnahme auf spezifische Ausführungsformen gegeben, die in den angefügten Zeichnungen veranschaulicht sind. Unter der Voraussetzung, dass diese Zeichnungen lediglich beispielhafte Ausführungsformen der Erfindung zeigen und daher nicht als deren Schutzumfang einschränkend anzusehen sind, wird die Erfindung mit zusätzlicher Spezifität und zusätzlichen Einzelheiten durch Verwendung der begleitenden Zeichnungen erläutert, die Folgendes zeigen:
  • 1 ist ein Blockschaltbild einer beispielhaften Rechenumgebung mit einem Datenverarbeitungsspeicherteilsystem, in dem verschiedene Aspekte der folgenden Beschreibung und des beanspruchten Gegenstands realisiert sein können;
  • 2A ist ein Ablaufplan eines beispielhaften Verfahrens zum Übermitteln einer Prüfsummensignatur an ein Sidefile;
  • 2B ist ein Ablaufplan eines beispielhaften Verfahrens zum Schreiben von Daten, das zu einem Datenfehler führt;
  • 2C ist ein Ablaufplan eines beispielhaften Verfahrens zum Schreiben von Daten, das zu einem zusätzlichen Datenfehler führt, und
  • 3 ist ein Ablaufplan eines beispielhaften Verfahrens zum Überprüfen von Daten gemäß der vorliegenden Erfindung mithilfe einer Prüfsummensignatur, die an einen Solid-State-Sidefile-Speicherort übermittelt wird.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die nachfolgend dargestellten Ausführungsformen stellen Mechanismen zur Datenüberprüfung mithilfe einer Sidefile-Speichereinheit bereit, die als Speicherort zum Speichern von Prüfsummensignaturdaten dient, anstatt dass die Prüfsummensignaturen in unmittelbarer Nähe der gespeicherten Daten platziert werden. Ein solches Sidefile kann mithilfe einer kleinen, sehr leistungsfähigen Speichereinheit mit einer Suchzeit gleich Null, wie beispielsweise einem Solid-State-Laufwerk (solid-state drive, SSD) oder einer Flash-Speichereinheit, realisiert werden. Alternativ kann das Sidefile ein Plattenlaufwerk umfassen. Durch das Sidefile wird ein Speicherort zusätzlich zu dem nichtflüchtigen Speicherort eingerichtet, an dem sich die gespeicherten Daten befinden. Dementsprechend wird jede Prüfsumme in dem Sidefile aufgezeichnet, anstatt auf den Platten des Speicher-Controllers aufgezeichnet zu werden. Folglich wird die entsprechende Prüfsumme auch dann an den Ort des Sidefile geschrieben, wenn die Daten niemals auf die Platte geschrieben werden. Auf diese Weise ist sichergestellt, dass der durch die gespeicherte Prüfsumme festgestellte zugehörige Fehler entdeckt wird.
  • Bei einigen Ausführungsformen können auf dem Sidefile verschiedene Arten von Prüfsummensignaturen (hier auch als „Datenintegritätsfelder” (data integrity fields, DIF) oder Blocksignaturen bezeichnet) für verschiedene Volumes gespeichert werden. Beispielsweise können in dem Sidefile eine Vier-Bit-CRC-Signatur für ein erstes Volume und eine Zwei-Byte-CRC-Signatur für ein zweites Volume gespeichert werden. Da die Signaturen außerdem getrennt auf dem Sidefile gespeichert werden, kann die Stärke (d. h. die Größe) von Blocksignaturen für ein konkretes Volume geändert werden, während das Volume aktiv ist. Wenn bei einem Volume beispielsweise eine Vier-Bit-CRC-Signatur verwendet wird, während es sich im Testmodus befindet, und das Volume bereit zur Umstellung auf den Produktionsmodus ist, kann die Blocksignatur für das Volume durch Speichern von Zwei-Byte-CRC-Signaturen für jeden Block des Volume auf dem Sidefile geändert werden.
  • Ein weiteres Beispiel für eine Blocksignatur, die bei Ausführungsformen der vorliegenden Erfindung verwendet werden kann, ist das T10-DIF, dieses definiert durch das T10 Technical Committee of the InterNational Committee for Information Technology Standards (INCITS), das für die Normung des Small Computer System Interface(SCSI)-Speicherprotokolls verantwortlich ist. Das T10-DIF unterstützt umfassenden End-to-End-Datenschutz in Speichernetzwerken. Dieses DIF wird dann an jeden SCSI-Datenblock (auch als ein Sektor bezeichnet und normalerweise, aber nicht notwendigerweise, 512 Bytes groß) angehängt. Es umfasst acht Bytes, darunter einen als „Block Guard” bezeichneten zyklischen Redundanzcode (CRC) mit 16 Bit, einen 16-Bit-„Application Tag” und einen 32-Bit-„Reference Tag”, der inkrementiert wird, um sicherzustellen, dass die Blöcke in der richtigen Reihenfolge beibehalten werden.
  • Das SCSI-DIF ist lediglich eine gut bekannte Art von Datenintegritätsfeld, aber es gibt zahlreiche andere Beispiele. Im Zusammenhang der vorliegenden Patentanmeldung und in den Ansprüchen sollte der Begriff „Blocksignatur” so verstanden werden, dass er sich allgemein auf jedes Datenfeld bezieht, das über einen Datenblock berechnet und diesem zugeordnet wird und anschließend dazu verwendet werden kann, zu überprüfen, dass die Daten in dem Block nicht beschädigt wurden. Die Blocksignatur kann entweder an den zugeordneten Datenblock angehängt oder an einem anderen Ort gespeichert werden. Durch das Überprüfen einer Blocksignatur (d. h. beim Lesen eines Datenblocks) wird sichergestellt, dass dieser Datenblock nicht geändert wurde, seit er gespeichert und seine Blocksignatur berechnet und gespeichert wurde.
  • Bei den Zeichnungen wird zuerst auf 1 Bezug genommen, die ein Blockschaltbild eines beispielhaften Datenverarbeitungsspeicherteilsystems 10 gemäß einer offenbarten Ausführungsform der Erfindung zeigt. Das besondere, in 1 gezeigte Teilsystem wird vorgelegt, um eine Erläuterung der Erfindung zu erleichtern. Fachleute werden jedoch verstehen, dass die Erfindung mithilfe anderer Speicherteilsysteme mit verschiedenartigen Architekturen und Fähigkeiten in die Praxis umgesetzt werden kann.
  • Das Speicherteilsystem 10 empfängt von einem oder mehreren Host-Computer(n) 12, Eingabe-/Ausgabe(E/A)-Anforderungen, die Befehle sind, Daten an logischen Adressen in logischen Volumes zu lesen oder zu schreiben. Eine Anzahl von Host-Computern 12 ist mit dem Speicherteilsystem 10 durch beliebige, in dem Fachgebiet bekannte Mittel verbunden, beispielsweise mithilfe eines Netzwerks. Hier wird beispielhaft angenommen, dass die Host-Computer 12 und das Speicherteilsystem 10 durch ein Speichernetzwerk (storage area network, SAN) 16 verbunden sind, in das die Datenverbindungen 14 und die Host-Bus-Adapter(HBAs) 18 einbezogen sind. Durch die logischen Adressen wird ein Bereich von Datenblöcken in einem logischen Volume angegeben, wobei hier von jedem Block beispielhaft angenommen wird, dass er 512 Bytes enthält. Beispielsweise würde ein bei einer Datenverarbeitungsanwendung auf einem Host-Computer verwendeter 10 KB-Datensatz 20 Blöcke erfordern, hinsichtlich derer der Host-Computer angeben könnte, dass diese an einer logischen Adresse gespeichert sind, die die Blöcke 1000 bis 1019 eines logischen Volume umfasst. Das Speicherteilsystem 10 arbeitet üblicherweise in einem netzgebundenen oder als ein netzgebundenes Speichersystem (network attached storage, NAS) bzw. in einem oder als ein SAN 16.
  • Das Speicherteilsystem 10 umfasst einen Cluster-Speicher-Controller 24, der mithilfe der Datenverbindungen 20 und 34 zwischen das SAN 16 und ein privates Netzwerk 36 geschaltet ist und in den die Adapter 22 und 32 einbezogen sind. Durch den Cluster-Speicher-Controller 24 werden Cluster (Gruppen) von Speichermodulen 26 realisiert, von denen jedes einen Prozessor 27, eine Schnittstelle 28 (in Datenverbindung zwischen den Adaptern 22 und 32), einen Arbeitsspeicher 29, einen Cachespeicher 30 und ein Sidefile 42 umfasst. Das Sidefile 42 wird im Folgenden ausführlicher erörtert. Jedes Speichermodul 26 ist wie gezeigt über die Datenverbindung 38 zuständig für eine Anzahl von Speichereinheiten (z. B. Platten) 40.
  • Bei dem in 1 gezeigten Beispiel werden auf einer gegebenen Platte 40 ein erstes Volume 31 und ein zweites Volume 33 gespeichert. Das Volume 31 umfasst die ersten Blöcke 35, und das Volume 33 umfasst die zweiten Blöcke 37. Bei dem in 1 gezeigten Beispiel berechnet der Prozessor 38 die Vier-Bit-CRC-Signaturen 46 (hier auch als erste Signaturen 46 bezeichnet) für die Blöcke 35 und speichert die ersten Signaturen 46 in dem Sidefile 42. Der Prozessor 38 berechnet außerdem die Zwei-Byte-CRC-Signaturen 44 (hier auch als zweite Signaturen 44 bezeichnet) für die Blöcke 37 und speichert die zweiten Signaturen 44 in dem Sidefile 42.
  • Zu bestimmten Zeiten entscheidet ein Systemadministrator (nicht gezeigt) möglicherweise, eine einem bestimmten Volume zugeordnete Signatur zu verstärken oder abzuschwächen. Längere Signaturen sind üblicherweise stärker als kürzere Signaturen. Wenn beispielsweise der Status des Volume 31 von Entwicklung auf Produktion umgestellt wird, kann der Systemadministrator eine Anforderung an den Prozessor 27 übermitteln, jetzt ein Acht-Byte-T10-DIF für jeden der Blöcke 33 zu realisieren. Beim Empfang der Anforderung berechnet der Prozessor 27 die T10-DIF-Signaturen 48 (hier auch als nachfolgende Signaturen 48 bezeichnet) für die Blöcke 33 und speichert die nachfolgenden Signaturen 48 in dem Sidefile 42.
  • Wie zuvor beschrieben, umfasst jedes Speichermodul 26 einen Cachespeicher 30. Es ist jedoch nachvollziehbar, dass die Anzahl der Cachespeicher, die in dem Speicherteilsystem 10 und in Verbindung mit dem Cluster-Speicher-Controller 24 verwendet wird, jede geeignete Anzahl sein kann. Während alle Cachespeicher 30 in dem Speicherteilsystem 10 im Wesentlichen auf dieselbe Weise arbeiten und im Wesentlichen ähnliche Elemente umfassen können, ist dies aber nicht unbedingt erforderlich. Alle Cachespeicher sind üblicherweise, aber nicht notwendigerweise, von ungefähr gleicher Größe, und von jedem der Cachespeicher wird angenommen, dass er beispielsweise in einer Eins-zu-eins-Entsprechung mit einer Gruppe physischer Speichereinheiten steht, die üblicherweise Platten sind. Bei einer Ausführungsform können die Platten 40 derartige Platten umfassen. Fachleute werden in der Lage sein, die hier gegebene Beschreibung auf Cachespeicher unterschiedlicher Größe und auf Cachespeicher und Speichereinheiten in anderen Entsprechungen anzuwenden, wie beispielsweise auf die Viele-zu-viele-Entsprechung, die in der US-Patentanmeldung mit der Veröffentlichungs-Nr. 2005/0015566 und dem Titel „Data Allocation in a Distributed Storage System” beschrieben wird, die auf den Zessionar der vorliegenden Erfindung übertragen wurde, und die hierin durch Bezugnahme enthalten ist. Dokumente, die durch Bezugnahme in der vorliegenden Patentanmeldung enthalten sind, sind als ein integraler Teil der Anmeldung anzusehen, abgesehen davon, dass in dem Maß, in dem in diesen enthaltenen Dokumenten irgendwelche Begriffe auf eine Weise definiert sind, die im Widerspruch zu den Begriffsbestimmungen steht, die ausdrücklich oder stillschweigend in der vorliegenden Beschreibung vorgenommen werden, nur die in der vorliegenden Beschreibung enthaltenen Begriffsbestimmungen in Betracht gezogen werden sollten.
  • Jede Gruppe der physischen Speichereinheiten umfasst mehrere Massenspeichereinheiten mit langer und/oder kurzer Zugriffszeit, von denen hier im Folgenden angenommen wird, dass es sich um mehrere Festplatten handelt. 1 zeigt die Cachespeicher 30 verbunden mit entsprechenden Gruppen der physischen Speichereinheiten. Die Gruppen physischer Speichereinheiten umfassen üblicherweise eine oder mehrere Platten 40, die unterschiedliche Leistungsmerkmale aufweisen. Als Reaktion auf einen E-/A-Befehl kann der Cachespeicher 30 beispielsweise Daten an adressierbaren physischen Orten der physischen Speichereinheit lesen oder schreiben. Bei der Ausführungsform aus 1 werden die Cachespeicher 30 so gezeigt, dass sie bestimmte Steuerfunktionen in Bezug auf die physische Speichereinheit ausführen. Diese Steuerfunktionen können alternativ mithilfe von Hardware-Einheiten wie beispielsweise Platten-Controllern ausgeführt werden, die mit den Cachespeichern 30 verbunden sind.
  • Bei einer Ausführungsform der vorliegenden Erfindung wird die Leitweglenkung (routing) logischer Adressen gemäß Verfahren realisiert, die in der US-Patentanmeldung mit der Veröffentlichungs-Nr. 2005/0015566 beschrieben werden, auf die vorstehend Bezug genommen wird. Leitweglenkungs-Datensätze, die die Zuordnung logischer Adressen logischer Volumes zu Partitionen und die Zuordnung der Partitionen zu Cachespeichern anzeigen, werden durch das SAN 16 an eine oder mehrere im Allgemeinen ähnliche Netzwerkschnittstellen 28 der Speichermodule 26 verteilt. Es versteht sich, dass das Speicherteilsystem 10 und damit der Cluster-Speicher-Controller 24 jede geeignete Anzahl von Netzwerkschnittstellen 28 umfassen kann. Im Anschluss an die Ausbildung der Platten 40 empfangen die Netzwerkschnittstellen 28 E-/A-Befehle von den Host-Computern 12, die logische Adressen der Disks 40 angeben. Die Netzwerkschnittstellen verwenden die Leitweglenkungs-Datensätze, um die Befehle in E-/A-Anweisungen oder Befehlsuntergruppen aufzugliedern, die anschließend an die Cachespeicher 30 verteilt werden.
  • Jedes Speichermodul 26 kann so arbeiten, dass es seinen Zustand überwacht, eingeschlossen die Zustände der zugeordneten Cachespeicher 30, und Konfigurationsdaten an andere Komponenten des Speicherteilsystems 10 übermittelt, beispielsweise Konfigurationsänderungen, die zu Sperrintervallen führen oder die Geschwindigkeit beschränken, mit der E-/A-Anforderungen für die Gruppen physischer Speicher angenommen werden, wie im Folgenden ausführlicher erläutert wird.
  • Die Leitweglenkung von Befehlen und Daten von den HBAs 18 zu dem Cluster-Speicher-Controller 24 und zu jedem Cachespeicher 30 wird üblicherweise über ein Netzwerk und/oder einen Schalter (switch) ausgeführt. Hier können die HBAs 18 beispielsweise mit den Speichermodulen 26 durch mindestens einen Schalter (nicht gezeigt) des SAN 16 verbunden sein, der von jeder bekannten Art sein kann, die über eine digitale Querverbindungsfunktion verfügt. Bei zusätzlichen Realisierungen können die HBAs 18 unmittelbar mit den Speichermodulen 26 verbunden sein.
  • Daten mit benachbarten logischen Adressen werden im Allgemeinen auf die Platten 40 verteilt. Dies lässt sich mithilfe der Techniken erreichen, die in der U. S.-Patentanmeldung mit der Veröffentlichungs-Nr. 2005/0015566 offenbart werden, auf die vorstehend Bezug genommen wird. Alternativ können die Daten mithilfe anderer Algorithmen, z. B. Byte- oder Block-Interleaving, verteilt werden. Im Allgemeinen wird dadurch die Bandbreite vergrößert, indem zum Beispiel ermöglicht wird, dass ein Volume in einem SAN oder eine Datei in einem netzgebundenen Speichersystem aus mehr als einer Platte zur Zeit ausgelesen beziehungsweise auf mehr als eine Platte zur Zeit geschrieben werden kann. Diese Technik erfordert jedoch eine Koordination der verschiedenen Platten und erfordert in der Praxis möglicherweise komplexe Vorkehrungen gegen Plattenversagen und eine Strategie zum Umgang mit Fehlerprüfungsdaten, z. B. eine Technik zum Speichern von auf verteilte Daten bezogene Paritätsdaten. Tatsächlich können, wenn Partitionen einer logischen Einheit in ausreichend kleiner Granularität verteilt werden, einer einzigen logischen Einheit zugeordnete Daten über alle Platten 40 verteilt sein.
  • Während dies aus Gründen der Einfachheit der Darstellung nicht ausdrücklich gezeigt wird, werden Fachleute verstehen, dass bei einigen Ausführungsformen der Cluster-Speicher-Controller 24 für die Realisierung in Verbindung mit bestimmter Hardware, beispielsweise einem Rack-Montagesystem, einer Midplane und/oder einer Backplane, eingerichtet sein kann. Tatsächlich kann das private Netzwerk 36 bei einer Ausführungsform mithilfe einer Backplane realisiert werden. Zusätzliche Hardware wie beispielsweise die zuvor erwähnten Schalter, Prozessoren, Controller, Speichereinheiten und Ähnliches können ebenfalls in den Cluster-Speicher-Controller 24 sowie an anderer Stelle in das Speicherteilsystem 10 einbezogen sein, wie Fachleute verstehen werden. Weiter können verschiedene Softwarekomponenten, Betriebssysteme, Firmware und Ähnliches integriert sein.
  • Jedes Speichermodul 26 in dem Cluster-Speicher-Controller 24 enthält ein Sidefile 42. Wie zuvor erwähnt, kann das Sidefile 42 Speichereinheiten wie beispielsweise ein Plattenlaufwerk mit geringer Latenz, eine Solid-State-Laufwerk(SSD)-Speichereinheit oder eine Flash-Speichereinheit wie beispielsweise eine Compact Flash(CF)-Speichereinheit enthalten. Die Speicherkapazität 42 des Sidefile muss nicht annähernd so groß sein, wie die der nichtflüchtigen Speicherplatten 40, da die den geschriebenen Schreibdaten zugeordneten Prüfsummen im Vergleich entsprechend klein sind (üblicherweise wenige Bytes). Folglich kann eine kleine sehr leistungsfähige Einheit auf kostengünstige Weise in Verbindung mit jedem Speichermodul realisiert werden.
  • Während die dargestellte Ausführungsform die Sidefiles 42 jedem Speichermodul 26 zugeordnet zeigt, werden Fachleute verstehen, dass bei anderen Ausführungsformen Sidefiles 42 auf andere Weise realisiert werden können.
  • Beispielsweise können in einer einzigen Sidefile-Einheit Prüfsummendaten für Daten gespeichert sein, die in einer Anzahl von Volumes gespeichert sind, die einer Anzahl von Speichermodulen zugeordnet sind.
  • Der Prozessor 27 umfasst üblicherweise einen Universalcomputer, der dafür konfiguriert ist, die hier beschriebenen Funktionen auszuführen. Durch den Prozessor betriebene Software kann in elektronischer Form, beispielsweise über ein Netzwerk, in die Arbeitsspeicher heruntergeladen werden, oder sie kann auf nichtflüchtigen physischen Medien bereitgestellt werden, wie beispielsweise optischen, magnetischen oder elektronischen Speichermedien. Alternativ können einige oder alle Funktionen des Prozessors durch fest zugeordnete oder programmierbare digitale Hardware-Komponenten oder mithilfe einer Kombination aus Hardware- und Software-Elementen ausgeführt werden.
  • Wie Fachleute verstehen werden, können Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt verkörpert sein.
  • Dementsprechend können Aspekte der vorliegenden Erfindung die Form einer reinen Hardware-Ausführungsform, einer reinen Software-Ausführungsform (darunter Firmware, speicherresidente Software, Mikrocode usw.) annehmen oder die einer Ausführungsform, bei der Software- und Hardwareaspekte kombiniert werden, die hier alle allgemein als „Schaltung”, „Modul” oder „System” bezeichnet werden sollen. Aspekte der vorliegenden Erfindung können außerdem die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit in dem Medium verkörpertem computerlesbarem Programmcode verkörpert ist.
  • Es kann eine beliebige Kombination von einem oder mehreren computerlesbaren Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann beispielsweise, aber ohne darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine Vorrichtung oder eine derartige Einheit oder jede beliebige Kombination von diesen sein. Als konkretere Beispiele (die Liste ist unvollständig) für das computerlesbare Speichermedium könnten die folgenden aufgeführt werden: eine elektrische Verbindung mit einem oder mehreren Kabeln, eine tragbare Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer, programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), eine optische Faser, ein tragbarer Compact Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination von diesen. Im Zusammenhang dieses Dokuments kann ein computerlesbares Speichermedium ein beliebiges physisches Medium sein, das ein Programm für die Nutzung durch ein Anweisungen ausführendes System, eine solche Vorrichtung oder Einheit oder für die Nutzung in Verbindung mit einem Anweisungen ausführenden System, einer solchen Vorrichtung oder Einheit enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann unter anderem ein verbreitetes Datensignal mit in diesem verkörperten computerlesbaren Programmcode sein, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches verbreitetes Signal kann verschiedene Formen annehmen, unter anderem, aber ohne darauf beschränkt zu sein, eine elektromagnetische oder optische Form oder eine beliebige Kombination aus diesen. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist, und das ein Programm für die Nutzung durch ein Anweisungen ausführendes System, eine solche Vorrichtung oder Einheit oder für die Nutzung in Verbindung mit einem Anweisungen ausführenden System, einer solchen Vorrichtung oder Einheit übermitteln, verbreiten oder transportieren kann.
  • Auf einem computerlesbaren Medium verkörperter Programmcode kann mithilfe jedes geeigneten Mediums übermittelt werden, darunter unter anderem, aber ohne darauf beschränkt zu sein, ein drahtloses oder drahtgebundenes Medium, Optikfaserkabel, HF (Hochfrequenz) usw. oder jede geeignete Kombination von diesen.
  • Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder Ähnliche sowie herkömmliche verfahrensorientierte Programmiersprachen wie beispielsweise die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann vollständig oder teilweise auf dem Computer des Benutzers, als ein eigenständiges Softwarepaket, zum Teil auf dem Computer des Benutzers und zum Teil auf einem entfernten Computer oder vollständig auf dem entfernten Computer oder Server ausgeführt werden. Bei dem letzteren Szenario kann der entfernte Computer mit dem Computer des Benutzers durch ein beliebiges Netzwerk, darunter ein Lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN) verbunden sein, oder es kann eine Verbindung mit einem externen Computer hergestellt werden (zum Beispiel mithilfe eines Internetdienstanbieters über das Internet).
  • Aspekte der vorliegenden Erfindung werden unten mit Bezug auf Ablaufpläne und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder Blockschaltbilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaltbildern durch Computerprogrammanweisungen realisiert werden können. Diese Computerprogrammanweisungen können für einen Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Herstellung einer Maschine bereitgestellt werden, so dass die Anweisungen, die durch den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zur Ausführung der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds näher angegebenen Funktionen/Handlungen erzeugen. Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Weise funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Anweisungen ein Erzeugnis samt der Anweisungen herstellen, mithilfe derer die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds näher angegebene Funktion/Handlung ausgeführt wird.
  • Die Computerprogrammanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von auf dem Computer, der anderen programmierbaren Vorrichtung oder den anderen Einheiten auszuführenden Betriebsschritten zu bewirken, um einen computerimplementierten Prozess zu schaffen, so dass die Anweisungen, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Verfahren zur Realisierung der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds näher angegebenen Funktionen/Handlungen bereitstellen.
  • SIDEFILE-SIGNATUREN VERÄNDERLICHER STÄRKE
  • Die darauffolgenden 2A bis 2C und 3 zeigen beispielhafte Verfahren zum Realisieren von Sidefile-Mechanismen zur Verbesserung der Datenüberprüfung. Wie Fachleute werden nachvollziehen können, können verschiedene Schritte in den Verfahren auf unterschiedliche Weise realisiert werden, um für eine bestimmte Anwendung geeignet zu sein.
  • In 2A wird auf ein beispielhaftes Verfahren 50 zum Ausführen von Datenschreibvorgängen Bezug genommen, bei dem die zuvor in 1 veranschaulichte Sidefile-Einheit realisiert wird. Das Verfahren 50 beginnt (Schritt 52) mit dem Empfang einer Schreibanforderung für eine bestimmte logische Adresse (Schritt 54). Das System berechnet ein Datenintegritätsfeld (DIF) für den Schreibvorgang (Schritt 56). Die den Gegenstand des Schreibvorgangs bildenden Daten werden asynchron an nichtflüchtige Speichermedien übermittelt, die durch die logische Adresse zugeordnet werden können (Schritt 58). Zusätzlich wird die Prüfsumme zwecks Aufzeichnung asynchron an das Sidefile übermittelt (Schritt 60). Die beiden Schritte 58 und 60 erfolgen asynchron zueinander, um eine erhöhte Systemleistung zu ermöglichen. Die Prüfsummensignatur kann ebenfalls durch eine logische Adresse zugeordnet werden. Bei dem Verfahren 50 wird abgefragt, ob der Schreibvorgang für die Daten und die Prüfsummensignatur bestätigt wurde (Schritt 62). Wenn nicht, wartet das System (Schritt 64), bis dies der Fall ist. Das Verfahren 50 endet dann (Schritt 66).
  • Wie im Vorangehenden erörtert, können in dem Sidefile 42 verschiedene DIFs für verschiedene Volumes auf der Speichereinheit 40 gespeichert werden. Mit anderen Worten kann der Prozessor 27 die Schritte des Verfahrens 50 für zwei verschiedene Volumes ausführen, wobei bei jedem Volume ein unterschiedliches DIF realisiert werden kann.
  • Beispielsweise kann der Prozessor 27 für das erste Volume 31 die ersten Signaturen 46 mit einer ersten Größe (z. B. eine Vier-Bit-CRC) für jeden ersten Block 35 berechnen, die ersten Signaturen im Sidefile 42 speichern und die ersten Signaturen den ersten Blöcken zuordnen. Zusätzlich kann der Prozessor 27 für das zweite Volume 33 die zweiten Signaturen 44 für jeden zweiten Block 37 berechnen, wobei die zweiten Signaturen eine zweite Größe aufweisen, die sich von der ersten Größe unterscheidet (z. B. eine Zwei-Byte-CRC), und die zweiten Signaturen im Sidefile 42 speichern.
  • Alternativ kann das Sidefile 42 die Schutzstufe für ein bestimmtes Volume durch Ändern des diesem bestimmten Volume zugeordneten DIF verändern. Mit anderen Worten kann der Prozessor 27 anfänglich die Schritte des Verfahrens 50 ausführen, um ein erstes DIF für das spezielle Volume zu realisieren, und dann zu einer späteren Zeit die Schritte des Verfahrens 50 ausführen, um das erste DIF durch ein zweites DIF zu ersetzen.
  • Bei dem obigen Beispiel kann zu einem Zeitpunkt nach dem Berechnen und Speichern der ersten Signaturen 46 der Prozessor 27 nachfolgende Signaturen 48 (z. B. ein Acht-Byte-T10-DIF) für jeden ersten Block 35 berechnen, wobei die nachfolgenden Signaturen eine alternative Größe aufweisen, die sich von der ersten Größe unterscheidet, und die alternativen Signaturen dann in dem Sidefile 42 speichern. Beim Speichern der nachfolgenden Signaturen 48 in dem Sidefile 42 kann der Prozessor 27 die nachfolgenden Signaturen dann den ersten Blöcken 35 (d. h. dem Volume 31) zuordnen und anschließend die ersten Signaturen 46 aus dem Sidefile löschen.
  • Während bei der in 1 gezeigten Konfiguration des Speicherteilsystems 10 das Sidefile 42 als eine Speichereinheit gezeigt wird, in der die Signaturen 44, 46 und 48 gespeichert sind, können für das Sidefile 42 andere Konfigurationen realisiert werden, und sie sind als in den Wesensgehalt und Schutzumfang der vorliegenden Erfindung einbezogen anzusehen. Beispielsweise kann das Sidefile 42 als ein Bereich (z. B. eine Datei oder ein Volume) auf einer zweiten Speichereinheit (nicht gezeigt) in dem Speicherteilsystem 10 realisiert werden, wobei der Bereich dafür konfiguriert ist, die Signaturen für die Volumes zu speichern. Zusätzlich oder alternativ kann der Prozessor 27 dafür konfiguriert sein, verschiedene DIFs für verschiedene Volumes zu berechnen und zu speichern, und kann dafür konfiguriert sein, ein DIF für ein bestimmtes Volume zu ändern (d. h. zu ersetzen), wie dies im Vorangehenden beschrieben ist.
  • In den 2B und 2C wird auf beispielhafte Verfahren zum Schreiben von Daten Bezug genommen, in denen ein Datenfehler auftritt. Bei beiden beispielhaften Verfahren wären die Datenfehler ohne die Mechanismen der vorliegenden Erfindung, bei der die zuvor beschriebene Sidefile-Einheit realisiert wird, möglicherweise nicht zu entdecken. Wie in 2B gezeigt, beginnt das Verfahren 100 (Schritt 102) mit dem Empfang einer Schreibanforderung für eine logische Adresse (Schritt 104). Die anwendbare Prüfsumme für den Schreibvorgang wird berechnet (Schritt 106), und die den Gegenstand des Schreibvorgangs bildenden Daten werden asynchron an die nichtflüchtigen Speichermedien übermittelt, die mithilfe der logischen Adresse zugeordnet werden können (Schritt 108). Allerdings werden die Daten bei dem vorliegenden Beispiel nicht geschrieben, dennoch wird eine Bestätigung empfangen (Schritt 110). Asynchron mit dem Schreibvorgang für die Daten wird die Prüfsummensignatur zum Speichern an das Sidefile übermittelt (wiederum mithilfe der logischen Adresse zuzuordnen) (Schritt 112). Das System wartet, bis die Schreibvorgänge für Daten und Prüfsumme bestätigt wurden (Schritte 114, 116), und dann endet das Verfahren 100.
  • Wie in 2C gezeigt, beginnt das Verfahren 150 (Schritt 152) mit dem Empfang einer Schreibanforderung für eine logische Adresse (Schritt 154). Die anwendbare Prüfsumme für den Schreibvorgang wird berechnet (Schritt 156), und die den Gegenstand des Schreibvorgangs bildenden Daten werden asynchron an die nichtflüchtigen Speichermedien übermittelt, die mithilfe der logischen Adresse zugeordnet werden können (Schritt 158). Asynchron mit dem Schreibvorgang für die Daten wird die Prüfsummensignatur zum Speichern an das Sidefile übermittelt (wiederum mithilfe der logischen Adresse zuzuordnen) (Schritt 160). Im Anschluss an die Übermittlung der Prüfsummensignatur und in ähnlicher Weise wie bei dem vorhergehenden Beispiel werden die Daten nicht geschrieben, dennoch wird eine Bestätigung empfangen, dass die Daten geschrieben wurden (Schritt 162). Das System wartet, bis die Schreibvorgänge für Daten und Prüfsumme bestätigt wurden (Schritte 164, 166), und dann endet das Verfahren 150.
  • 3 zeigt jetzt ein beispielhaftes Verfahren 200 zur Datenüberprüfung mithilfe der zuvor beschriebenen Sidefile-Mechanismen. Das Verfahren 200 ermöglicht das Erkennen von Datenfehlern, die von einem der vorherigen, in 2B und 2C dargelegten Beispiele herrühren, bei denen Schreibfehler das Schreiben von Daten verhindern, aber dennoch eine Bestätigung empfangen wird, dass die Daten geschrieben wurden. Das Verfahren 200 beginnt (Schritt 202) mit dem Empfang einer Lese-/Überprüfungsanweisung für eine logische Adresse (Schritt 204). Die den Gegenstand des Lesevorgangs bildenden Daten werden asynchron an die nichtflüchtigen Speichermedien übermittelt und können mithilfe der logischen Adresse zugeordnet werden (Schritt 206), während die den Gegenstand des Lesevorgangs bildenden Daten für die gespeicherte Prüfsumme, die ebenfalls mithilfe der logischen Adresse zugeordnet werden kann, asynchron an den Sidefile-Speicherort übermittelt werden (Schritt 208).
  • Als ein nächster Schritt fragt das Verfahren 200 ab, ob das Lesen der Daten und der Prüfsummensignaturdaten bestätigt wird (Schritt 210), und wartet (Schritt 212), bis dies der Fall ist. Als Nächstes wird eine zusätzliche Prüfsummensignatur für das Lesen der Daten berechnet (Schritt 214). Die gespeicherte Prüfsumme wird dann mit der für das Lesen berechneten Prüfsumme verglichen (Schritt 216). Wenn die beiden Prüfsummen übereinstimmen, dann sind die Daten überprüft, und das Verfahren 200 endet (Schritt 218). Wenn nicht, wird ein kritisches Ereignis gemeldet (Schritt 220), dass Systemdaten beschädigt wurden. Die beschädigten Daten werden gesperrt (Schritt 222), und ein Lese-/Überprüfungsfehler wird gemeldet (Schritt 224). Das Verfahren 200 endet (wieder Schritt 218).
  • Die Verwendung eines Sidefile-Speicherorts in Verbindung mit einem Speicher-Controller zum Speichern von Prüfsummensignaturdaten bietet einen wirtschaftlichen und wirksamen Mechanismus zum Verbessern der Datenzuverlässigkeit in Speicherteilsystemen.
  • Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, Funktionalität und den Betrieb möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Beziehung kann jeder Block in dem Ablaufplan oder den Blockschaltbildern ein Modul, Segment oder einen Codeabschnitt enthalten, das/der eine oder mehrere ausführbare Anweisung(en) zur Realisierung der angegebenen Logikfunktion(en) umfasst. Es ist auch zu beachten, dass bei einigen alternativen Realisierungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren angegeben auftreten können. Zum Beispiel können zwei aufeinanderfolgend dargestellte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können in Abhängigkeit von der betreffenden Funktionalität manchmal in der umgekehrten Reihenfolge ausgeführt werden. Es ist ebenfalls zu beachten, dass jeder Block der Blockschaltbilder und/oder des Ablaufplans sowie Blockkombinationen in den Blockschaltbildern und/oder dem Ablaufplan durch hardwarebasierte Spezialsysteme, die die angegebenen Funktionen oder Handlungen ausführen, oder durch Kombinationen von Spezialhardware und Computeranweisungen realisiert werden können.
  • Es ist nachvollziehbar, dass die vorstehend beschriebenen Ausführungsformen als Beispiele angeführt werden, und dass die vorliegende Erfindung nicht auf das im Vorangehenden speziell Gezeigte und Beschriebene beschränkt ist. Der Schutzumfang der vorliegenden Erfindung enthält vielmehr sowohl Kombinationen als auch Unterkombinationen der im Vorangehenden beschriebenen verschiedenen Merkmale, wie auch Abweichungen und Abwandlungen von diesen, die Fachleuten beim Lesen der vorstehenden Beschreibung einfallen würden, und die nicht in den Stand der Technik betreffenden Veröffentlichungen offenbart sind.

Claims (7)

  1. Verfahren zur Erleichterung der Datenüberprüfung mithilfe einer Prüfsumme in Verbindung mit einem Sidefile durch eine Prozessoreinheit in einer Rechenumgebung, wobei das Verfahren Folgendes umfasst: Berechnen erster Blocksignaturen einer ersten Größe für erste Blöcke eines ersten Volume, das auf einer Speichereinheit gespeichert ist; Speichern der ersten Blocksignaturen in dem Sidefile; Berechnen zweiter Blocksignaturen einer zweiten Größe, die sich von der ersten Größe unterscheidet, für zweite Blöcke eines zweiten Volume, das auf der Speichereinheit gespeichert ist, und Speichern der zweiten Blocksignaturen in dem Sidefile.
  2. Verfahren nach Anspruch 1, wobei die ersten und/oder die zweiten Blocksignaturen asynchron mit einem Schreibvorgang an das Sidefile übermittelt werden.
  3. Verfahren nach einem der Ansprüche 1 bis 2, wobei die ersten und die zweiten Blocksignaturen eine zyklische Redundanzprüfung oder ein T-10-Datenintegritätsfeld enthalten.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei das Sidefile die Speichereinheit umfasst.
  5. Verfahren nach Anspruch 1, wobei das Sidefile einen Bereich auf der Speichereinheit umfasst.
  6. Computerprogrammprodukt zur Erleichterung der Datenüberprüfung mithilfe einer Prüfsumme in Verbindung mit einem Sidefile durch mindestens eine Prozessoreinheit, wobei das Computerprogrammprodukt ein nichtflüchtiges computerlesbares Speichermedium mit darauf gespeicherten computerlesbaren Programmcodeabschnitten umfasst, wobei die computerlesbaren Programmcodeabschnitte Folgendes umfassen: einen ersten ausführbaren Abschnitt zum Berechnen erster Blocksignaturen einer ersten Größe für erste Blöcke eines ersten Volume, das auf einer Speichereinheit gespeichert ist; einen zweiten ausführbaren Abschnitt zum Speichern der ersten Blocksignaturen in dem Sidefile; einen dritten ausführbaren Abschnitt zum Berechnen zweiter Blocksignaturen einer zweiten Größe, die sich von der ersten Größe unterscheidet, für zweite Blöcke eines zweiten Volume, das auf der Speichereinheit gespeichert ist, und einen vierten ausführbaren Abschnitt zum Speichern der zweiten Blocksignaturen in dem Sidefile.
  7. System zur Erleichterung der Datenüberprüfung mithilfe einer Prüfsumme in Verbindung mit einem Sidefile in einer Rechen-Speicherumgebung, das Folgendes umfasst: mindestens eine Prozessoreinheit, die in der Rechen-Speicherumgebung betrieben werden kann, wobei die mindestens eine Prozessoreinheit für Folgendes geeignet ist: Berechnen erster Blocksignaturen einer ersten Größe für erste Blöcke eines ersten Volume, Speichern der ersten Blocksignaturen in einem Sidefile, Berechnen zweiter Blocksignaturen einer zweiten Größe, die sich von der ersten Größe unterscheidet, für zweite Blöcke eines zweiten Volume, und Speichern der zweiten Blocksignaturen in dem Sidefile.
DE102012214324.6A 2011-09-01 2012-08-10 Verfahren und Vorrichtung zur Erleichterung der Datenüberprüfung mithilfe einer Prüfsumme in Verbindung mit einem Sidefile Active DE102012214324B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/224,176 US8468423B2 (en) 2011-09-01 2011-09-01 Data verification using checksum sidefile
US13/224,176 2011-09-01

Publications (2)

Publication Number Publication Date
DE102012214324A1 true DE102012214324A1 (de) 2013-03-07
DE102012214324B4 DE102012214324B4 (de) 2015-11-19

Family

ID=46766397

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012214324.6A Active DE102012214324B4 (de) 2011-09-01 2012-08-10 Verfahren und Vorrichtung zur Erleichterung der Datenüberprüfung mithilfe einer Prüfsumme in Verbindung mit einem Sidefile

Country Status (3)

Country Link
US (2) US8468423B2 (de)
DE (1) DE102012214324B4 (de)
GB (1) GB2494237A (de)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019081434A1 (de) * 2017-10-23 2019-05-02 Siemens Aktiengesellschaft Verfahren und steuersystem zum steuern und/oder überwachen von geräten
WO2019081086A1 (de) * 2017-10-23 2019-05-02 Siemens Aktiengesellschaft Verfahren und steuersystem zum steuern und/oder überwachen von geräten
WO2019141391A1 (de) * 2018-01-22 2019-07-25 Siemens Aktiengesellschaft Verfahren und steuersystem zum steuern und/oder überwachen von geräten
WO2019141392A1 (de) * 2018-01-22 2019-07-25 Siemens Aktiengesellschaft Verfahren und system zum steuern und/oder überwachen von geräten
WO2019201461A1 (de) * 2018-04-18 2019-10-24 Siemens Aktiengesellschaft Verfahren und steuersystem zum steuern und/oder überwachen von geräten
US11615007B2 (en) 2017-10-23 2023-03-28 Siemens Aktiengesellschaft Method and control system for controlling and/or monitoring devices

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8738919B2 (en) * 2007-04-20 2014-05-27 Stmicroelectronics S.A. Control of the integrity of a memory external to a microprocessor
US9563681B1 (en) 2012-08-08 2017-02-07 Amazon Technologies, Inc. Archival data flow management
US9767098B2 (en) 2012-08-08 2017-09-19 Amazon Technologies, Inc. Archival data storage system
US9218243B2 (en) * 2011-06-06 2015-12-22 Rambus Inc. Memory system for error detection and correction coverage
US8805793B2 (en) 2012-08-08 2014-08-12 Amazon Technologies, Inc. Data storage integrity validation
US8959067B1 (en) 2012-08-08 2015-02-17 Amazon Technologies, Inc. Data storage inventory indexing
US9779035B1 (en) 2012-08-08 2017-10-03 Amazon Technologies, Inc. Log-based data storage on sequentially written media
US9225675B2 (en) 2012-08-08 2015-12-29 Amazon Technologies, Inc. Data storage application programming interface
US9830111B1 (en) 2012-08-08 2017-11-28 Amazon Technologies, Inc. Data storage space management
US9652487B1 (en) * 2012-08-08 2017-05-16 Amazon Technologies, Inc. Programmable checksum calculations on data storage devices
US10120579B1 (en) 2012-08-08 2018-11-06 Amazon Technologies, Inc. Data storage management for sequentially written media
US9904788B2 (en) 2012-08-08 2018-02-27 Amazon Technologies, Inc. Redundant key management
US10558581B1 (en) 2013-02-19 2020-02-11 Amazon Technologies, Inc. Systems and techniques for data recovery in a keymapless data storage system
EP3140734B1 (de) 2014-05-09 2020-04-08 Nutanix, Inc. Mechanismus zur bereitstellung von externem zugriff auf eine gesicherte vernetzte virtualisierungsumgebung
US11386060B1 (en) 2015-09-23 2022-07-12 Amazon Technologies, Inc. Techniques for verifiably processing data in distributed computing systems
US10719305B2 (en) 2016-02-12 2020-07-21 Nutanix, Inc. Virtualized file server tiers
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10228995B2 (en) 2016-07-28 2019-03-12 Hewlett Packard Enterprise Development Lp Last writers of datasets in storage array errors
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US10728090B2 (en) 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US10460130B1 (en) * 2017-09-18 2019-10-29 Amazon Technologies, Inc. Mechanism to protect a distributed replicated state machine
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
CN110659151B (zh) 2018-06-28 2023-05-02 阿里巴巴集团控股有限公司 数据校验方法及装置,存储介质
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11681581B1 (en) * 2022-06-21 2023-06-20 Western Digital Technologies, Inc. Data integrity protection with partial updates

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579474A (en) * 1992-12-28 1996-11-26 Hitachi, Ltd. Disk array system and its control method
US5592618A (en) * 1994-10-03 1997-01-07 International Business Machines Corporation Remote copy secondary data copy validation-audit function
JPH1078853A (ja) 1996-09-05 1998-03-24 Hitachi Ltd 記憶装置
US6029186A (en) 1998-01-20 2000-02-22 3Com Corporation High speed calculation of cyclical redundancy check sums
JP2000151609A (ja) 1998-11-10 2000-05-30 Fujitsu Ltd Atmアダプテーションレイヤ終端装置
US6757832B1 (en) 2000-02-15 2004-06-29 Silverbrook Research Pty Ltd Unauthorized modification of values in flash memory
EP1148650A1 (de) 2000-04-14 2001-10-24 Matsushita Electric Industrial Co., Ltd. CRC Einheit und Verfahren
JP3752995B2 (ja) * 2000-09-27 2006-03-08 日本ビクター株式会社 情報記録再生装置
JP2002185438A (ja) 2000-12-11 2002-06-28 Matsushita Electric Ind Co Ltd Crc演算装置
US20020138804A1 (en) 2001-01-25 2002-09-26 Sangha Onkar S. Computation of checksums and other functions with the aid of software instructions
US6510488B2 (en) 2001-02-05 2003-01-21 M-Systems Flash Disk Pioneers Ltd. Method for fast wake-up of a flash memory system
US7062704B2 (en) 2001-04-30 2006-06-13 Sun Microsystems, Inc. Storage array employing scrubbing operations using multiple levels of checksums
US6868517B1 (en) 2001-05-15 2005-03-15 Marvell International Ltd. Method and apparatus for checking read errors with two cyclic redundancy check stages
US6848021B2 (en) 2001-08-01 2005-01-25 International Business Machines Corporation Efficient data backup using a single side file
US7171605B2 (en) * 2002-02-01 2007-01-30 International Business Machines Corporation Check bit free error correction for sleep mode data retention
TW567411B (en) * 2002-09-09 2003-12-21 Hon Hai Prec Ind Co Ltd The method and apparatus of CRC code allocation in flash ROM
KR100971320B1 (ko) 2003-03-25 2010-07-20 트랜스퍼시픽 소닉, 엘엘씨 플래시롬의 응용 프로그램 저장/실행 방법
US7191382B2 (en) 2003-06-02 2007-03-13 Fujitsu Limited Methods and apparatus for correcting data and error detection codes on the fly
US7254754B2 (en) * 2003-07-14 2007-08-07 International Business Machines Corporation Raid 3+3
JP2005085121A (ja) 2003-09-10 2005-03-31 Seiko Epson Corp フラッシュメモリのデータ更新方法、データ更新プログラム、情報処理装置、及び情報処理システム
US7240277B2 (en) * 2003-09-26 2007-07-03 Texas Instruments Incorporated Memory error detection reporting
US7415653B1 (en) 2004-04-21 2008-08-19 Sun Microsystems, Inc. Method and apparatus for vectored block-level checksum for file system data integrity
KR100634414B1 (ko) * 2004-09-06 2006-10-16 삼성전자주식회사 에러 검출용 패러티 발생기를 구비한 낸드 플래시 메모리 장치 및 그것의 에러 검출 방법
KR100681429B1 (ko) 2005-10-24 2007-02-15 삼성전자주식회사 반도체 메모리 장치 및 그것의 비트 에러 검출 방법
JP2007183844A (ja) * 2006-01-10 2007-07-19 Hitachi Global Storage Technologies Netherlands Bv 補助記憶装置および記録再生方法
US7849418B2 (en) * 2006-03-31 2010-12-07 Broadcom Corporation Segregation of redundant control bits in an ECC permuted, systematic modulation code
US20080256419A1 (en) * 2007-04-13 2008-10-16 Microchip Technology Incorporated Configurable Split Storage of Error Detecting and Correcting Codes
US8122322B2 (en) * 2007-07-31 2012-02-21 Seagate Technology Llc System and method of storing reliability data
JP2009104757A (ja) * 2007-10-02 2009-05-14 Panasonic Corp 半導体記憶装置
US8132074B2 (en) 2007-11-19 2012-03-06 Intel Corporation Reliability, availability, and serviceability solutions for memory technology
JP2009238094A (ja) * 2008-03-28 2009-10-15 Hitachi Ltd ストレージシステム及びデータ保存方法
US8352835B2 (en) 2009-06-10 2013-01-08 International Business Machines Corporation Data verification using checksum sidefile
US8255741B2 (en) * 2009-06-30 2012-08-28 Oracle America, Inc. Facilitating error detection and correction after a memory component failure

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019081434A1 (de) * 2017-10-23 2019-05-02 Siemens Aktiengesellschaft Verfahren und steuersystem zum steuern und/oder überwachen von geräten
WO2019081086A1 (de) * 2017-10-23 2019-05-02 Siemens Aktiengesellschaft Verfahren und steuersystem zum steuern und/oder überwachen von geräten
US11615007B2 (en) 2017-10-23 2023-03-28 Siemens Aktiengesellschaft Method and control system for controlling and/or monitoring devices
US11665015B2 (en) 2017-10-23 2023-05-30 Siemens Aktiengesellschaft Method and control system for controlling and/or monitoring devices
WO2019141391A1 (de) * 2018-01-22 2019-07-25 Siemens Aktiengesellschaft Verfahren und steuersystem zum steuern und/oder überwachen von geräten
WO2019141392A1 (de) * 2018-01-22 2019-07-25 Siemens Aktiengesellschaft Verfahren und system zum steuern und/oder überwachen von geräten
US11231958B2 (en) 2018-01-22 2022-01-25 Siemens Aktiengesellschaft Method and control system for controlling and/or monitoring devices
US11362914B2 (en) 2018-01-22 2022-06-14 Siemens Aktiengesellschaft Method and control system for controlling and/or monitoring devices
WO2019201461A1 (de) * 2018-04-18 2019-10-24 Siemens Aktiengesellschaft Verfahren und steuersystem zum steuern und/oder überwachen von geräten
US11412047B2 (en) 2018-04-18 2022-08-09 Siemens Aktiengesellschaft Method and control system for controlling and/or monitoring devices

Also Published As

Publication number Publication date
GB201212220D0 (en) 2012-08-22
US8468423B2 (en) 2013-06-18
US20130061110A1 (en) 2013-03-07
US8473816B2 (en) 2013-06-25
DE102012214324B4 (de) 2015-11-19
US20130060741A1 (en) 2013-03-07
GB2494237A (en) 2013-03-06

Similar Documents

Publication Publication Date Title
DE102012214324B4 (de) Verfahren und Vorrichtung zur Erleichterung der Datenüberprüfung mithilfe einer Prüfsumme in Verbindung mit einem Sidefile
DE112018002951B4 (de) Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten
DE102013017179B4 (de) DMA-Integritätsprüfungseinheit
DE112014005266B4 (de) Verfahren und System zur Vorwärtsreferenz-Protokollierung in einem peristenten Datenspeicher
DE102011085989B4 (de) Verfahren und Vorrichtung zum Ausführen von parallelen Speicherlese- und Speicherschreiboperationen
DE112020000178T5 (de) Verwaltung von in zonen unterteilten namensräumen nichtflüchtiger speicherungsvorrichtungen
DE112014005570T5 (de) Deaktivieren von Seiten in einem Nand-Flash-Speicher-System
DE102018112790A1 (de) Sichere Doppelpufferung unter Verwendung sicherer verketteter DMA-Listen
DE112019000149T5 (de) Multivorrichtungsspeichersystem mit gehosteten diensten auf peer-speichervorrichtungen
DE102004004796B4 (de) Vorrichtung zur Datenübertragung zwischen Speichern
DE112015005211T5 (de) Systeme und verfahren für die speicherfehler-verwaltung
DE102019111132A1 (de) Speichereinrichtung, die Hostspeicher nutzt und Betriebsverfahren dafür
DE112012005222T5 (de) Halbleiter-Datenspeicherverwaltung
DE102018113447A1 (de) Speichervorrichtung zum Koppeln mit einem Host und Verfahren zum Betreiben des Hosts und der Speichervorrichtung
DE102011075814B4 (de) Speicherpuffer mit zugänglicher Information nach einem Schreibfehler
DE102018214010A1 (de) Verfahren und Vorrichtung zur Reduzierung von unbemerkten Datenfehlern in nichtflüchtigen Speichersystemen
DE102017104073B4 (de) Verallgemeinertes Verifikationsverfahren für Schreiboperationen
DE102012216035A1 (de) Aktivierung der drosselung auf den durchschnittlichen schreibdurchsatz bei festkörperspeichereinheiten
DE10350590A1 (de) Verfahren und Vorrichtung zum Sichern von Daten bei mehreren unabhängigen Schreib-Lese-Speichern
DE102013208930A1 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE112007003015T5 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE102016108733A1 (de) Steuern einer redundanten Anordnung von unabhängigen Festplatten (RAID), welche ein Nur-Lese-Flash-Datenspeichergerät einschließt
DE102018131983A1 (de) Switch-unterstützte datenspeicher-netzwerkverkehrsverwaltung in einem rechenzentrum
DE102016107718A1 (de) Auslesen von Fehlervektoren aus einer Speichereinheit
DE112020001219T5 (de) Aufgeschobene Fehlercodekorrektur mit verbesserter effektiver Datenbandbreitenleistung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW YORK, US

Effective date: 20130121

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, A, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW YORK, N.Y., US

Effective date: 20130121

R082 Change of representative

Representative=s name: RICHARDT PATENTANWAELTE GBR, DE

Effective date: 20130121

Representative=s name: RICHARDT PATENTANWAELTE PART GMBB, DE

Effective date: 20130121

Representative=s name: RICHARDT PATENTANWAELTE PARTG MBB, DE

Effective date: 20130121

R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final