DE102012214324A1 - Datenüberprüfung mithilfe eines Prüfsummen-Sidefile - Google Patents
Datenüberprüfung mithilfe eines Prüfsummen-Sidefile Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding 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
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 Datenverarbeitungsspeicherteilsystems10 gemäß einer offenbarten Ausführungsform der Erfindung zeigt. Das besondere, in1 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-Computern12 ist mit dem Speicherteilsystem10 durch beliebige, in dem Fachgebiet bekannte Mittel verbunden, beispielsweise mithilfe eines Netzwerks. Hier wird beispielhaft angenommen, dass die Host-Computer12 und das Speicherteilsystem10 durch ein Speichernetzwerk (storage area network, SAN)16 verbunden sind, in das die Datenverbindungen14 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-Datensatz20 Blöcke erfordern, hinsichtlich derer der Host-Computer angeben könnte, dass diese an einer logischen Adresse gespeichert sind, die die Blöcke1000 bis1019 eines logischen Volume umfasst. Das Speicherteilsystem10 arbeitet üblicherweise in einem netzgebundenen oder als ein netzgebundenes Speichersystem (network attached storage, NAS) bzw. in einem oder als ein SAN16 . - Das Speicherteilsystem
10 umfasst einen Cluster-Speicher-Controller24 , der mithilfe der Datenverbindungen20 und34 zwischen das SAN16 und ein privates Netzwerk36 geschaltet ist und in den die Adapter22 und32 einbezogen sind. Durch den Cluster-Speicher-Controller24 werden Cluster (Gruppen) von Speichermodulen26 realisiert, von denen jedes einen Prozessor27 , eine Schnittstelle28 (in Datenverbindung zwischen den Adaptern22 und32 ), einen Arbeitsspeicher29 , einen Cachespeicher30 und ein Sidefile42 umfasst. Das Sidefile42 wird im Folgenden ausführlicher erörtert. Jedes Speichermodul26 ist wie gezeigt über die Datenverbindung38 zuständig für eine Anzahl von Speichereinheiten (z. B. Platten)40 . - Bei dem in
1 gezeigten Beispiel werden auf einer gegebenen Platte40 ein erstes Volume31 und ein zweites Volume33 gespeichert. Das Volume31 umfasst die ersten Blöcke35 , und das Volume33 umfasst die zweiten Blöcke37 . Bei dem in1 gezeigten Beispiel berechnet der Prozessor38 die Vier-Bit-CRC-Signaturen46 (hier auch als erste Signaturen46 bezeichnet) für die Blöcke35 und speichert die ersten Signaturen46 in dem Sidefile42 . Der Prozessor38 berechnet außerdem die Zwei-Byte-CRC-Signaturen44 (hier auch als zweite Signaturen44 bezeichnet) für die Blöcke37 und speichert die zweiten Signaturen44 in dem Sidefile42 . - 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 Prozessor27 übermitteln, jetzt ein Acht-Byte-T10-DIF für jeden der Blöcke33 zu realisieren. Beim Empfang der Anforderung berechnet der Prozessor27 die T10-DIF-Signaturen48 (hier auch als nachfolgende Signaturen48 bezeichnet) für die Blöcke33 und speichert die nachfolgenden Signaturen48 in dem Sidefile42 . - Wie zuvor beschrieben, umfasst jedes Speichermodul
26 einen Cachespeicher30 . Es ist jedoch nachvollziehbar, dass die Anzahl der Cachespeicher, die in dem Speicherteilsystem10 und in Verbindung mit dem Cluster-Speicher-Controller24 verwendet wird, jede geeignete Anzahl sein kann. Während alle Cachespeicher30 in dem Speicherteilsystem10 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 Platten40 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 Cachespeicher30 verbunden mit entsprechenden Gruppen der physischen Speichereinheiten. Die Gruppen physischer Speichereinheiten umfassen üblicherweise eine oder mehrere Platten40 , die unterschiedliche Leistungsmerkmale aufweisen. Als Reaktion auf einen E-/A-Befehl kann der Cachespeicher30 beispielsweise Daten an adressierbaren physischen Orten der physischen Speichereinheit lesen oder schreiben. Bei der Ausführungsform aus1 werden die Cachespeicher30 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 Cachespeichern30 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 Netzwerkschnittstellen28 der Speichermodule26 verteilt. Es versteht sich, dass das Speicherteilsystem10 und damit der Cluster-Speicher-Controller24 jede geeignete Anzahl von Netzwerkschnittstellen28 umfassen kann. Im Anschluss an die Ausbildung der Platten40 empfangen die Netzwerkschnittstellen28 E-/A-Befehle von den Host-Computern12 , die logische Adressen der Disks40 angeben. Die Netzwerkschnittstellen verwenden die Leitweglenkungs-Datensätze, um die Befehle in E-/A-Anweisungen oder Befehlsuntergruppen aufzugliedern, die anschließend an die Cachespeicher30 verteilt werden. - Jedes Speichermodul
26 kann so arbeiten, dass es seinen Zustand überwacht, eingeschlossen die Zustände der zugeordneten Cachespeicher30 , und Konfigurationsdaten an andere Komponenten des Speicherteilsystems10 ü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-Controller24 und zu jedem Cachespeicher30 wird üblicherweise über ein Netzwerk und/oder einen Schalter (switch) ausgeführt. Hier können die HBAs18 beispielsweise mit den Speichermodulen26 durch mindestens einen Schalter (nicht gezeigt) des SAN16 verbunden sein, der von jeder bekannten Art sein kann, die über eine digitale Querverbindungsfunktion verfügt. Bei zusätzlichen Realisierungen können die HBAs18 unmittelbar mit den Speichermodulen26 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 Platten40 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 Netzwerk36 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-Controller24 sowie an anderer Stelle in das Speicherteilsystem10 einbezogen sein, wie Fachleute verstehen werden. Weiter können verschiedene Softwarekomponenten, Betriebssysteme, Firmware und Ähnliches integriert sein. - Jedes Speichermodul
26 in dem Cluster-Speicher-Controller24 enthält ein Sidefile42 . Wie zuvor erwähnt, kann das Sidefile42 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ät42 des Sidefile muss nicht annähernd so groß sein, wie die der nichtflüchtigen Speicherplatten40 , 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 Speichermodul26 zugeordnet zeigt, werden Fachleute verstehen, dass bei anderen Ausführungsformen Sidefiles42 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 bis2C und3 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 Verfahren50 zum Ausführen von Datenschreibvorgängen Bezug genommen, bei dem die zuvor in1 veranschaulichte Sidefile-Einheit realisiert wird. Das Verfahren50 beginnt (Schritt52 ) mit dem Empfang einer Schreibanforderung für eine bestimmte logische Adresse (Schritt54 ). Das System berechnet ein Datenintegritätsfeld (DIF) für den Schreibvorgang (Schritt56 ). Die den Gegenstand des Schreibvorgangs bildenden Daten werden asynchron an nichtflüchtige Speichermedien übermittelt, die durch die logische Adresse zugeordnet werden können (Schritt58 ). Zusätzlich wird die Prüfsumme zwecks Aufzeichnung asynchron an das Sidefile übermittelt (Schritt60 ). Die beiden Schritte58 und60 erfolgen asynchron zueinander, um eine erhöhte Systemleistung zu ermöglichen. Die Prüfsummensignatur kann ebenfalls durch eine logische Adresse zugeordnet werden. Bei dem Verfahren50 wird abgefragt, ob der Schreibvorgang für die Daten und die Prüfsummensignatur bestätigt wurde (Schritt62 ). Wenn nicht, wartet das System (Schritt64 ), bis dies der Fall ist. Das Verfahren50 endet dann (Schritt66 ). - Wie im Vorangehenden erörtert, können in dem Sidefile
42 verschiedene DIFs für verschiedene Volumes auf der Speichereinheit40 gespeichert werden. Mit anderen Worten kann der Prozessor27 die Schritte des Verfahrens50 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 Volume31 die ersten Signaturen46 mit einer ersten Größe (z. B. eine Vier-Bit-CRC) für jeden ersten Block35 berechnen, die ersten Signaturen im Sidefile42 speichern und die ersten Signaturen den ersten Blöcken zuordnen. Zusätzlich kann der Prozessor27 für das zweite Volume33 die zweiten Signaturen44 für jeden zweiten Block37 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 Sidefile42 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 Prozessor27 anfänglich die Schritte des Verfahrens50 ausführen, um ein erstes DIF für das spezielle Volume zu realisieren, und dann zu einer späteren Zeit die Schritte des Verfahrens50 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 Prozessor27 nachfolgende Signaturen48 (z. B. ein Acht-Byte-T10-DIF) für jeden ersten Block35 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 Sidefile42 speichern. Beim Speichern der nachfolgenden Signaturen48 in dem Sidefile42 kann der Prozessor27 die nachfolgenden Signaturen dann den ersten Blöcken35 (d. h. dem Volume31 ) zuordnen und anschließend die ersten Signaturen46 aus dem Sidefile löschen. - Während bei der in
1 gezeigten Konfiguration des Speicherteilsystems10 das Sidefile42 als eine Speichereinheit gezeigt wird, in der die Signaturen44 ,46 und48 gespeichert sind, können für das Sidefile42 andere Konfigurationen realisiert werden, und sie sind als in den Wesensgehalt und Schutzumfang der vorliegenden Erfindung einbezogen anzusehen. Beispielsweise kann das Sidefile42 als ein Bereich (z. B. eine Datei oder ein Volume) auf einer zweiten Speichereinheit (nicht gezeigt) in dem Speicherteilsystem10 realisiert werden, wobei der Bereich dafür konfiguriert ist, die Signaturen für die Volumes zu speichern. Zusätzlich oder alternativ kann der Prozessor27 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 und2C 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 in2B gezeigt, beginnt das Verfahren100 (Schritt102 ) mit dem Empfang einer Schreibanforderung für eine logische Adresse (Schritt104 ). Die anwendbare Prüfsumme für den Schreibvorgang wird berechnet (Schritt106 ), 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 (Schritt108 ). Allerdings werden die Daten bei dem vorliegenden Beispiel nicht geschrieben, dennoch wird eine Bestätigung empfangen (Schritt110 ). Asynchron mit dem Schreibvorgang für die Daten wird die Prüfsummensignatur zum Speichern an das Sidefile übermittelt (wiederum mithilfe der logischen Adresse zuzuordnen) (Schritt112 ). Das System wartet, bis die Schreibvorgänge für Daten und Prüfsumme bestätigt wurden (Schritte114 ,116 ), und dann endet das Verfahren100 . - Wie in
2C gezeigt, beginnt das Verfahren150 (Schritt152 ) mit dem Empfang einer Schreibanforderung für eine logische Adresse (Schritt154 ). Die anwendbare Prüfsumme für den Schreibvorgang wird berechnet (Schritt156 ), 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 (Schritt158 ). Asynchron mit dem Schreibvorgang für die Daten wird die Prüfsummensignatur zum Speichern an das Sidefile übermittelt (wiederum mithilfe der logischen Adresse zuzuordnen) (Schritt160 ). 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 (Schritt162 ). Das System wartet, bis die Schreibvorgänge für Daten und Prüfsumme bestätigt wurden (Schritte164 ,166 ), und dann endet das Verfahren150 . -
3 zeigt jetzt ein beispielhaftes Verfahren200 zur Datenüberprüfung mithilfe der zuvor beschriebenen Sidefile-Mechanismen. Das Verfahren200 ermöglicht das Erkennen von Datenfehlern, die von einem der vorherigen, in2B und2C 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 Verfahren200 beginnt (Schritt202 ) mit dem Empfang einer Lese-/Überprüfungsanweisung für eine logische Adresse (Schritt204 ). Die den Gegenstand des Lesevorgangs bildenden Daten werden asynchron an die nichtflüchtigen Speichermedien übermittelt und können mithilfe der logischen Adresse zugeordnet werden (Schritt206 ), 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 (Schritt208 ). - Als ein nächster Schritt fragt das Verfahren
200 ab, ob das Lesen der Daten und der Prüfsummensignaturdaten bestätigt wird (Schritt210 ), und wartet (Schritt212 ), bis dies der Fall ist. Als Nächstes wird eine zusätzliche Prüfsummensignatur für das Lesen der Daten berechnet (Schritt214 ). Die gespeicherte Prüfsumme wird dann mit der für das Lesen berechneten Prüfsumme verglichen (Schritt216 ). Wenn die beiden Prüfsummen übereinstimmen, dann sind die Daten überprüft, und das Verfahren200 endet (Schritt218 ). Wenn nicht, wird ein kritisches Ereignis gemeldet (Schritt220 ), dass Systemdaten beschädigt wurden. Die beschädigten Daten werden gesperrt (Schritt222 ), und ein Lese-/Überprüfungsfehler wird gemeldet (Schritt224 ). Das Verfahren200 endet (wieder Schritt218 ). - 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)
- 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.
- Verfahren nach Anspruch 1, wobei die ersten und/oder die zweiten Blocksignaturen asynchron mit einem Schreibvorgang an das Sidefile übermittelt werden.
- 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.
- Verfahren nach einem der Ansprüche 1 bis 3, wobei das Sidefile die Speichereinheit umfasst.
- Verfahren nach Anspruch 1, wobei das Sidefile einen Bereich auf der Speichereinheit umfasst.
- 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.
- 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.
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)
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)
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)
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 |
-
2011
- 2011-09-01 US US13/224,176 patent/US8468423B2/en not_active Expired - Fee Related
-
2012
- 2012-06-27 US US13/534,397 patent/US8473816B2/en not_active Expired - Fee Related
- 2012-07-10 GB GB1212220.6A patent/GB2494237A/en not_active Withdrawn
- 2012-08-10 DE DE102012214324.6A patent/DE102012214324B4/de active Active
Cited By (10)
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 |