DE112013000900B4 - Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers - Google Patents

Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers Download PDF

Info

Publication number
DE112013000900B4
DE112013000900B4 DE112013000900.5T DE112013000900T DE112013000900B4 DE 112013000900 B4 DE112013000900 B4 DE 112013000900B4 DE 112013000900 T DE112013000900 T DE 112013000900T DE 112013000900 B4 DE112013000900 B4 DE 112013000900B4
Authority
DE
Germany
Prior art keywords
indicator
data segment
selected data
write command
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112013000900.5T
Other languages
English (en)
Other versions
DE112013000900T5 (de
Inventor
c/o IBM Corporation Fiske Rahul M.
c/o IBM Corporation Jones Carl Evan
c/o IBM Corporation Roy Subhojit
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 DE112013000900T5 publication Critical patent/DE112013000900T5/de
Application granted granted Critical
Publication of DE112013000900B4 publication Critical patent/DE112013000900B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

Verfahren (600) zum Bewahren von Datenredundanz in einem Datendeduplizierungssystem (10; 200) in einer Datenverarbeitungsumgebung durch einen Prozessor, aufweisend:Empfangen eines Schreibbefehls (259) zum Schreiben eines ausgewählten Datensegments in eine physische Speicherstelle (14; 230a, 230b, 230n);Ermitteln (610) ob der Schreibbefehl einen Anzeiger (257) beinhaltet, der mindestens ein Bit oder eine Markierung beinhaltet, wobei der Anzeiger angibt dass das ausgewählte Datensegment keiner Deduplizierungsoperation unterzogen werden darf;wenn der Schreibbefehl den Anzeiger nicht beinhaltet, Erzeugen eines Fingerabdrucks für das ausgewählte Datensegment und Durchführen (616) einer Deduplizierungsoperation für das ausgewählte Datensegment; undwenn der Schreibbefehl den Anzeiger beinhaltet, Umgehen (612) des Erzeugens des Fingerabdrucks und des Durchführens der Deduplizierungsoperation;wobei das Konfigurieren eines Anzeigers des Weiteren beinhaltet, für eine Anwendung (15, 17), die in der Datenverarbeitungsumgebung betreibbar ist, einen Systemaufruf mit einem erweiterten Attribut bereitzustellen, das angibt, dass das ausgewählte Datensegment in einen physischen Arbeitsspeicher geschrieben werden muss, obwohl das ausgewählte Datensegment mit Daten übereinstimmt, die zu einem früheren Zeitpunkt in den physischen Arbeitsspeicher geschrieben wurden.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf Computer und im Besonderen auf ein Verfahren, System und Computerprogrammprodukt zum Bewahren von Redundanz und anderen Datensicherheitseigenschaften in Datenverarbeitungsumgebungen mit integrierten Datendeduplizierungssystemen.
  • Beschreibung der verwandten Technik
  • Computer und Computersysteme finden sich in einer Vielzahl von Bereichen der heutigen Gesellschaft. So können Datenverarbeitungsumgebungen und -netzwerke zuhause, bei der Arbeit, in der Schule, bei Behörden und in anderen Bereichen zu finden sein. Datenverarbeitungsumgebungen speichern Daten zunehmend in einer oder mehreren Speicherumgebungen, die in vielen Fällen von der örtlichen Schnittstelle, welche einem Benutzer dargestellt wird, entfernt gelegen sind.
  • Diese Datenverarbeitungsspeicherumgebungen können viele Speichereinheiten wie z.B. Festplattenlaufwerke verwenden, die häufig zusammenarbeiten, um eine große Menge von Daten zu speichern, abzurufen und zu aktualisieren, die dann einem Host-Computer bereitgestellt werden können, der die Daten anfordert oder sendet. In manchen Fällen wird eine Anzahl von Datenspeicherteilsystemen zusammenfassend als ein einziges Datenspeichersystem verwaltet. Diese Teilsysteme können durch Host-Sysplex-Konfigurationen (System Complex) verwaltet werden, die mehrere Verarbeitungseinheiten oder Gruppen von Verarbeitungseinheiten miteinander kombinieren. Auf diese Art und Weise können aus mehreren Schichten bzw. Systemen bestehende Datenverarbeitungsumgebungen, die häufig verschiedenartige Speichereinheiten beinhalten, dazu verwendet werden, große Mengen von Daten zu organisieren und zu verarbeiten.
  • Die Druckschrift US 2011 / 0 016 091 A1 betrifft ein Verfahren zur Verwaltung von durch Anwendungen erzeugten Datenobjekten. Das Verfahren umfasst: Empfangen einer ersten Operationsanforderung für erste Daten, die von einer ersten Anwendung erzeugt werden, die auf einer ersten Client-Einheit ausgeführt wird, wobei die ersten Daten eine Mehrzahl von ersten Datenobjekten umfassen; Analysieren der ersten Daten, um eines oder mehrere der Mehrzahl von ersten Datenobjekten zu identifizieren, die für eine Deduplizierung in Betracht gezogen werden sollen; Empfangen einer zweiten Operationsanforderung für zweite Daten, die von einer zweiten Anwendung erzeugt werden, wobei die zweiten Daten eine Mehrzahl von zweiten Datenobjekten umfassen und die zweiten Daten ein anderes Dateiformat als die ersten Daten haben; Analysieren der zweiten Daten, um eines oder mehrere der Mehrzahl von zweiten Datenobjekten zu identifizieren, die für eine Deduplizierung in Betracht kommen; und Einfügen eines Indikators in mindestens eine Kopie der ersten Daten und eine Kopie der zweiten Daten, der auf Grundlage des ersten und des zweiten Dateiformats angibt, dass das eine oder die mehreren ersten Datenobjekte und das eine oder die mehreren zweiten Datenobjekte nicht zusammen für eine Deduplizierung in Betracht gezogen werden sollten.
  • Die Druckschrift US 2011 / 0 238 914 A1 betrifft ein Speichersystem, das umfasst: eine 1. Schnittstelle, die Informationen empfängt, die von einer übergeordneten Einheit zu übertragen sind, einen Cache-Speicher, der die Informationen vorübergehend speichert, eine Speichereinheit, die einen Speicherbereich zum Speichern der Informationen aufweist, eine 2. Schnittstelle, die die Informationen an die Speichereinheit sendet, und eine Steuereinheit, die einen Steuerprozess in Bezug auf die Informationen ausführt; wobei die Steuereinheit aus den Informationen redundante Teile entfernt, die bereits in dem Speicherbereich vorhanden sind, und die verbleibenden Teile komprimiert und sie in dem relevanten Speicherbereich speichert.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Der Erfindung liegt die Aufgabe zugrunde ein Verfahren, ein System sowie ein Computerprogrammprodukt zum schnellen Bewahren von Datenredundanz in einem Datendeduplizierungssystem zu schaffen.
  • Viele Datenverarbeitungsumgebungen, die aus mehreren Schichten bzw. Systemen bestehen, realisieren Datendeduplizierungstechnologien, um die Speicherleistung zu verbessern, indem die Menge von dupliziertem Speicher über mehrere Speichereinheiten hinweg verringert wird. Datendeduplizierungssysteme werden in steigendem Maße genutzt, da sie dazu beitragen, die Gesamtmenge an physischem Speicher zu verringern, der zum Speichern von Daten notwendig ist. Diese Verringerung wird erzielt, indem sichergestellt wird, dass doppelt vorhandene Daten nicht mehrfach gespeichert werden. Wenn stattdessen z.B. ein eingehender Block von SCHREIB-Anwendungsdaten mit einem bereits gespeicherten Datenblock übereinstimmt, wird in dem virtuellen Speicherabbild ein Zeiger auf die ursprünglichen Daten gespeichert, anstatt dem neuen Datenblock neuen physischen Speicherplatz zuzuordnen.
  • In bestimmten Situationen kann die Deduplizierung, d.h. die einmalige Speicherung doppelt vorhandener Daten, jedoch im Widerspruch z.B. zu den Redundanzanforderungen einer gehosteten Anwendung, einer Speicherrichtlinie oder anderweitigen Anforderungen stehen. Benötigt wird ein Mechanismus, bei dem mehrfach zu speichernde Daten geschützt werden, ohne dass die Vorteile von Deduplizierungssystemen verringert werden, indem für die übrigen Daten ohne eine derartige Anforderung eine Deduplizierung stattfinden kann.
  • In Anbetracht des Vorgenannten werden verschiedene Ausführungsformen zum Bewahren von Datenredundanz in Datendeduplizierungssystemen offenbart. Bei einer lediglich als Beispiel dienenden Ausführungsform wird ein Verfahren für eine derartige Bewahrung offenbart. Ein Anzeiger wird konfiguriert. Der Anzeiger wird mit einem ausgewählten Datensegment bereitgestellt, das durch das Deduplizierungssystem geschrieben werden soll, um anzuzeigen, dass das ausgewählte Datensegment keiner Deduplizierungsoperation unterzogen werden darf.
  • Zusätzlich zu der vorgenannten beispielhaften Ausführungsform werden verschiedene Ausführungsformen eines Systems und Computerprogrammprodukts bereitgestellt, die damit zusammenhängende Vorteile zur Verfügung stellen.
  • Figurenliste
  • Um die Vorteile der Erfindung besser verständlich zu machen, wird eine ausführlichere Beschreibung der oben kurz beschriebenen Erfindung vorgelegt, wobei auf die spezifischen Ausführungsformen Bezug genommen wird, die in den beigefügten Zeichnungen dargestellt werden. Unter der Voraussetzung, dass diese Zeichnungen lediglich typische Ausführungsformen der Erfindung abbilden und somit nicht als Beschränkung ihres inhaltlichen Umfangs zu verstehen sind, wird die Erfindung anhand der beigefügten Zeichnungen konkreter und ausführlicher beschrieben und erläutert, bei denen:
    • 1 ein Blockschaubild ist, das eine beispielhafte Datenverarbeitungsumgebung veranschaulicht, die Aspekte der vorliegenden Erfindung realisieren kann;
    • 2 ein Blockschaubild ist, das eine Hardware-Struktur eines Datenspeichersystems zeigt, in der ebenfalls Aspekte der vorliegenden Erfindung realisiert sein können;
    • 3 eine beispielhafte Schreibanforderung ist, in der Aspekte der vorliegenden Erfindung realisiert sein können;
    • 4 ein Blockschaubild eines beispielhaften Prozesses des Schreibens von Daten durch eine Datendeduplizierungsmaschine ist, in dem ebenfalls Aspekte der vorliegenden Erfindung realisiert sein können;
    • 5 ein beispielhaftes Verfahren zum Sicherstellen von Redundanz in Datendeduplizierungssystemen gemäß der vorliegenden Erfindung ist; und
    • 6 ein beispielhaftes Verfahren zum Verarbeiten von Daten ist, in dem Aspekte der vorliegenden Erfindung realisiert sein können.
  • AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
  • Eine Datendeduplizierung in Speicher-Controllern arbeitet üblicherweise „hinter den Kulissen“ einer Anwendung und kann mitunter sogar den Interessen der Anwendung zuwiderlaufen, wenn entgegen den Bedürfnissen der Anwendung Deduplizierungsoperationen durchgeführt werden. Diese Situation kann eintreten, wenn eine Anwendung mehrere Kopien derselben Daten schreibt und beabsichtigt, mehrere physische Kopien beizubehalten, während das Deduplizierungsteilsystem (die Deduplizierungsmaschine) diese übereinstimmenden Kopien findet und die Kopien schließlich dedupliziert, während es die Daten speichert. Dies kann von Nachteil für die Anwendung sein, die davon ausgeht, dass sie mehrere Kopien in verschiedenen Speicherstellen vorfindet, und von dem Speicherteilsystem in dem Glauben belassen wird, dass dies der Fall sei, während in Wahrheit nur eine einzige Kopie der Daten geschrieben wurde.
  • In diesem Zusammenhang soll das folgende Beispiel betrachtet werden. Zur Sicherstellung von Redundanz schreiben Dateisysteme in der Regel vorzugsweise mehrere physische Kopien des Superblocks bzw. eines Segments von Metadaten, der das Dateisystem beschreibt, in eine Speichereinheit auf der Grundlage von Datenblöcken (oder anderen Metadaten) auf einer virtuellen Platte. Da der Inhalt des Superblocks identisch ist, würde eine Datendeduplizierung dazu führen, dass eine einzige physische Kopie des Superblocks beibehalten wird und mehrere virtuelle Adressen auf ein und denselben physischen Datenblock zeigen. Diese Situation sollte unbedingt vermieden werden, da der Verlust eines einzigen Datenblocks in der physischen Kopie des Superblocks dazu führen kann, dass das Dateisystem vollkommen unbrauchbar wird, da keine redundanten Kopien des Superblocks vorhanden sind. Herkömmlicherweise sind keine Methoden vorhanden, die dieses Problem von Datendeduplizierungssystemen direkt lösen.
  • Mit verschiedenen indirekten Methoden kann versucht werden, das Problem zu lösen. Bei einem Beispiel kann der Speicherpool, aus dem das Datendeduplizierungsteilsystem physischen Speicher ausgliedert, gespiegelt werden (d.h. der Speicherpool enthält zwei oder drei Kopien derselben Daten). Auf diese Weise können trotz Deduplizierung mehrere redundante Kopien erzeugt werden.
  • Allerdings bietet dies aus folgenden Gründen nur einen ungenügenden Schutz für die Anwendung: Erstens möchte die Anwendung womöglich beispielsweise zehn Kopien derselben Daten beibehalten. Wenn der Speicherpool jedoch bidirektional gespiegelt wird, kann er höchstens zwei Kopien enthalten. Da die Datendeduplizierung physische Speicherpools ausgliedert, die große Mengen von Speicher und mehrere Dateisysteme umspannen, ist es zweitens wahrscheinlich, dass sich mehrere Anwendungen und Dateisysteme ein und denselben physischen Speicherpool teilen. Somit kann es sein, dass einige kritische Kopien von Daten (wie z.B. der Superblock) physisch auf derselben Platte platziert werden. Da eine Deduplizierung verhindern würde, dass mehrere Kopien derselben Daten in mehrere physische Speicherstellen geschrieben werden, verringert sich die Anzahl von Kopien kritischer Daten, und die Daten können für mehrere Dateisysteme auf ein derselben physischen Platte gespeichert werden. Dadurch steigt jedoch die Gefahr, dass einzelne Fehler schwerwiegend sind.
  • Die veranschaulichten Ausführungsformen stellen mehrere Mechanismen bereit, welche die oben erörterten Probleme lösen. Ein Ziel dieser Mechanismen besteht darin, sicherzustellen, dass das Deduplizierungsteilsystem in dem Speicher-Controller (oder wo auch immer es sich befindet) ein Gleichgewicht zwischen dem Vorteil, die Anzahl von Datenkopien zu verringern, und den Anwendungsanforderungen bezüglich des physischen Zuordnens mehrerer Kopien von kritischen Daten herstellt. Jede der Methoden, die in den folgenden veranschaulichten Ausführungsformen beschrieben werden, kann unter einer Vielzahl von Umständen verwendet werden und Vorteile mit sich bringen, die für diese Umstände spezifisch sind.
  • In einer derartigen Ausführungsform kann die Anwendung dem Ziel-Speicher-Controller einen Anzeiger für ein ausgewähltes Datensegment bereitstellen, um kenntlich zu machen, dass das bestimmte Datensegment nicht Gegenstand von Deduplizierungsoperationen ist. Diese Aktion zwingt den Speicher-Controller dann dazu, den angegebenen Datenblöcken neuen physischen Speicher zuzuordnen. Ein solcher Anzeiger kann ein Bit beinhalten, das eine binäre Eins oder eine binäre Null sein kann, je nachdem, ob die gewünschte Deduplizierung für das ausgewählte Datensegment/den ausgewählten Datenblock durchgeführt werden soll.
  • Indem bei der beschriebenen Ausführungsform die Anwendung vorgeben kann, ob ein Schreibvorgang dedupliziert werden muss, kann sie eine Speicherrichtlinie, die den von ihr erzeugten Daten zugehörig ist, flexibel umsetzen. Auf diese Weise ist die Anwendung besser als das Deduplizierungssystem in der Lage, zu ermitteln, ob sich ausgewählte Datenblöcke auch dann in getrennten physischen Speicherstellen befinden müssen, wenn sie identisch sind. Darüber hinaus übernimmt der Speicher-Controller (oder eine andere Speicherverwaltungseinheit) weiterhin seine Aufgabe einer Datenreduzierung durch Deduplizierung und räumt gleichzeitig der Anwendung genügend Steuerungsmöglichkeiten ein, um im Bedarfsfall eine Deduplizierung zu verhindern.
  • Indem Schreibbefehle mit einem Anzeiger bereitgestellt werden, um dem Speicher-Controller (oder wiederum einer anderweitigen Speicherverwaltungseinheit) anzuzeigen, ob die ausgewählten Daten die Deduplizierung überspringen müssen, wird der Anwendung eine sehr engmaschige Steuerung zur Verfügung gestellt, die eine flexible Umsetzung ermöglicht und gleichzeitig die Vorteile der Deduplizierungsfunktion und des Bewahrens von Redundanz für Schlüsseldaten aufrechterhält.
  • In der folgenden Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Bestandteil hiervon bilden und mehrere Ausführungsformen der vorliegenden Erfindung veranschaulichen. Dabei dürfte offensichtlich sein, dass auch andere Ausführungsformen verwendet und Änderungen an Struktur und Funktion vorgenommen werden können, ohne vom Geltungsumfang der vorliegenden Erfindung abzuweichen.
  • Mit Blick auf 1 wird ein als Beispiel dienendes Computersystem 10 dargestellt, in dem Aspekte der vorliegenden Erfindung realisiert sein können. Das Computersystem 10 beinhaltet eine Zentraleinheit (CPU) 12, die mit einer oder mehreren Massenspeichereinheiten 14 und einer Speichereinheit 16 verbunden ist. Die Massenspeichereinheiten können Festplattenlaufwerks-Einheiten (Hard Disk Drive, HDD) beinhalten, die in einer redundanten Anordnung unabhängiger Festplatten (Redundant Array of Independent Disks, RAID) konfiguriert sein können. Die Datenverwaltungsoperationen, bei denen Aspekte der vorliegenden Erfindung wie weiterhin beschrieben realisiert sein können, können auf der bzw. den Einheiten 14 durchgeführt werden, die sich in dem System 10 oder an einer anderen Stelle befindet. Die Speichereinheit 16 kann einen Arbeitsspeicher wie z.B. einen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (Electrically Erasable Programmable Read Only Memory, EEPROM) oder eine Anzahl verwandter Einheiten beinhalten.
  • Der gezeigte Arbeitsspeicher 16 beinhaltet ein Anwendungsprogramm 15 und ein Anwendungsprogramm 17, in dem ein Dateisystem 19 betrieben werden kann. Die Anwendung 15 und die Anwendung 17 können Segmente von Daten, z.B. Datenstücke oder Datenblöcke, die in Einheiten wie z.B. der Massenspeichereinheit 14 physisch gespeichert sind, erzeugen, löschen oder anderweitig verwalten. Das Dateisystem 19 stellt ein Mittel bereit, um Daten, die beibehalten werden sollen, nachdem das Anwendungsprogramm 17 beendet wird, zu organisieren, indem es Verfahrensweisen zum Speichern, Abrufen und Aktualisieren von Daten bereitstellt, und verwaltet darüber hinaus den verfügbaren Speicherplatz auf der bzw. den Einheiten, welche die Daten beinhalten. Das Dateisystem 19 organisiert Daten auf eine wirkungsvolle Art und Weise und ist auf die spezifischen Eigenschaften der Einheit (z.B. des Computers 10 und/oder des Arbeitsspeichers 16) abgestimmt. Bei einer Ausführungsform kann die Anwendung 17 ein Betriebssystem 17 sein, wobei das Dateisystem 19 eine enge Kopplung zwischen dem Betriebssystem 17 und dem Dateisystem 19 aufrechterhält. Das Dateisystem 19 kann Mechanismen bereitstellen, um den Zugriff auf die Daten und Metadaten zu steuern, und es kann Mechanismen zur Sicherstellung der Datenzuverlässigkeit beinhalten, wie sie z.B. für weitere konkrete Aspekte der vorliegenden Erfindung notwendig sind, wie der Fachmann weiß. Das Dateisystem 19 kann ein Mittel bereitstellen, mit dem mehrere Anwendungsprogramme 15, 17 Daten in derselben Datei nahezu gleichzeitig aktualisieren können.
  • In der veranschaulichten Ausführungseinheit sind die Speichereinheit 16 und die Massenspeichereinheit 14 über ein signaltragendes Medium mit der CPU 12 verbunden. Zusätzlich ist die CPU 12 über einen Datenübertragungsanschluss 18 mit einem Datenübertragungsnetzwerk 20 verbunden, mit dem eine Vielzahl von zusätzlichen Computersystemen 22 und 24 verbunden sind. Das Computersystem 10 kann eine oder mehrere Prozessoreinheiten (z.B. die CPU 12) und zusätzliche Speichereinheiten 16 für jede einzelne Komponente des Computersystems 10 beinhalten, um jede hier beschriebene Operation durchzuführen und die Zwecke der vorliegenden Erfindung zu erfüllen.
  • 2 ist ein beispielhaftes Blockschaubild 200, das eine Hardware-Struktur eines Datenspeichersystems in einem Computersystem gemäß der vorliegenden Erfindung zeigt. Dabei werden Hostcomputer 210, 220, 225 gezeigt, die jeweils als eine Zentraleinheit zum Durchführen einer Datenverarbeitung im Rahmen eines Datenspeichersystems 200 dienen. Die Hosts (physische oder virtuelle Einheiten) 210, 220 und 225 können ein oder mehrere neue physische Einheiten oder logische Einheiten sein, mit denen die Zwecke der vorliegenden Erfindung in dem Datenspeichersystem 200 erreicht werden. Bei einer lediglich als Beispiel dienenden Ausführungsform kann ein Datenspeichersystem 200 als IBM® System Storage™ DS8000™ realisiert sein. Eine Netzwerkverbindung 260 kann eine Fibre-Channel-Fabric, eine Fibre-Channel-Punkt-zu-Punkt-Verbindung, eine Fibre-Channel-over-Ethernet-Fabric (FCoE-Fabric) eine FICON- oder ESCON-E/A-Schnittstelle, jede andere Art von E/A-Schnittstelle, ein Funknetz, Festnetz, lokales Netz (LAN), Weitverkehrsnetz (WAN), ein heterogenes, homogenes, öffentliches (z.B. das Internet) oder privates Netz oder auch eine Kombination hiervon sein. Die Hosts 210, 220 und 225 können lokal oder über einen oder mehrere Standorte verteilt sein und mit jeder Art von Fabric (oder Fabric-Channel) (in 2 nicht gezeigt) oder Netzwerkadapter 260 zum Speicher-Controller 240 ausgerüstet sein, z.B. mit Fibre-Channel-, FICON-, ESCON-, Ethernet-, Lichtwellenleiter-, Funk- oder Koaxialadaptern. Das Datenspeichersystem 200 ist entsprechend mit einer geeigneten (in 2 nicht gezeigten) Fabric oder einem Netzwerkadapter 260 ausgerüstet, um Daten zu übertragen. Das in 2 abgebildete Datenspeichersystem 200 weist einen Speicher-Controller 240 und einen Speicher 230 auf.
  • Für ein besseres Verständnis der hier beschriebenen Verfahren zeigt 2 einen Speicher-Controller 240 als eine einzelne Verarbeitungseinheit mit einem Mikroprozessor 242, einem Systemspeicher 243 und einem nichtflüchtigen Speicher (Non-Volatile Memory, NVS) 216, die im Folgenden ausführlicher beschrieben wird. Dabei wird darauf verwiesen, dass bei manchen Ausführungsformen der Speicher-Controller 240 mehrere Verarbeitungseinheiten aufweist, die jeweils über einen eigenen Prozessorkomplex und Systemspeicher verfügen und durch ein dediziertes Netzwerk innerhalb des Datenspeichersystems 200 miteinander verbunden sind. Der Speicher 230 kann aus einer oder mehreren Speichereinheiten wie beispielsweise Speicheranordnungen bestehen, die durch ein Speichernetzwerk mit dem Speicher-Controller 240 verbunden sind.
  • Bei manchen Ausführungsformen können die in dem Speicher 230 enthaltenen Einheiten in einer Schleifenarchitektur verbunden sein. Der Speicher-Controller 240 verwaltet den Speicher 230 und ermöglicht das Verarbeiten von Schreib- und Leseanforderungen, die für den Speicher 230 vorgesehen sind. Der Systemspeicher 243 des Speicher-Controllers 240 speichert Programmbefehle und Daten, auf die der Prozessor 242 zugreifen kann, um Funktionen in Zusammenhang mit dem Verwalten des Speichers 230 durchzuführen. Bei einer Ausführungsform enthält der Systemspeicher 243 die Betriebssoftware 250 bzw. ist dieser zugehörig oder tauscht mit ihr Daten aus und ist teilweise dafür konfiguriert, die Funktionalität der vorliegenden Erfindung zu realisieren. Wie 2 zeigt, kann der Systemspeicher 243 auch einen hier als „Cachespeicher“ bezeichneten Cache 245 für den Speicher 230 beinhalten oder mit diesem Daten austauschen, um „Schreibdaten“ und „Lesedaten“ zwischen zu speichern, die sich auf Schreib- bzw. Lese-Anforderungen und die ihnen zugehörigen Daten beziehen. Bei einer Ausführungsform wird der Cache 245 in einer Einheit zugeordnet, die außerhalb des Systemspeichers 243 angesiedelt, für den Mikroprozessor 242 jedoch zugänglich ist und dazu dienen kann, ergänzend zum Ausführen der hier beschriebenen Operationen, zusätzlichen Schutz gegen Datenverlust bereitzustellen.
  • Bei einigen Ausführungsformen ist der Cache 245 mit einem flüchtigen Arbeitsspeicher und einem nichtflüchtigen Arbeitsspeicher realisiert und für eine verbesserte Leistung des Datenspeichersystems 200 über einen (in 2 nicht gezeigten) lokalen Bus mit dem Mikroprozessor 242 verbunden. Der in dem Datenspeicher-Controller enthaltene NVS 216 kann für den Mikroprozessor 242 zugänglich sein und dient dazu, zusätzliche Unterstützung für Operationen und Ausführung der vorliegenden Erfindung bereitzustellen, wie sie in anderen Figuren beschrieben sind. Der NVS 216 kann auch als „dauerhafter“ Cache oder „Cachespeicher“ bezeichnet werden und ist mit einem nichtflüchtigen Speicher realisiert, der über eine externe Stromversorgung verfügen kann, um die darin gespeicherten Daten aufrechtzuerhalten. Der NVS kann für jeden Zweck, der geeignet ist, die Ziele der vorliegenden Erfindung zu erreichen, in und mit dem Cache 245 gespeichert sein. Bei manchen Ausführungsformen versorgt eine (in 2 nicht gezeigte) Notstromquelle wie beispielsweise eine Batterie den NVS 216 mit ausreichend Strom, um die darin gespeicherten Daten bei einer Stromunterbrechung des Datenspeichersystems 200 aufrechtzuerhalten. Bei bestimmten Ausführungsformen ist die Kapazität des NVS 216 kleiner als oder gleich der Gesamtkapazität des Cache 245.
  • Der Speicher 230 kann in physischer Hinsicht einen oder mehrere Speichereinheiten wie z.B. Speicheranordnungen aufweisen. Eine Speicheranordnung ist eine logische Zusammenfassung einzelner Speichereinheiten wie z.B. eine Festplatte. Bei bestimmten Ausführungsformen weist der Speicher 230 eine JBOD(Just a Bunch of Disks)-Anordnung oder eine RAID(Redundant Array of Independent Disks)-Anordnung auf. Zudem kann eine Ansammlung von physischen Speicheranordnungen weiterhin zu einem Rang zusammengeschlossen sein, die den physischen Speicher von der logischen Konfiguration trennt. Der Speicherbereich in einem Rang kann logischen Speicherdatenträgern zugeordnet sein, welche die in einer Schreib/Lese-Anforderung angegebene Speicherstelle definieren.
  • Bei einer lediglich als Beispiel dienenden Ausführungsform kann das in 2 gezeigte Speichersystem einen logischen Datenträger oder einfach „Datenträger“ beinhalten, der verschiedene Arten von Zuordnungen aufweisen kann. Die Speicher 230a, 230b und 230n sind als Ränge des Datenspeichersystems 200 abgebildet und werden hier als Rang 230a, 230b und 230n bezeichnet. Ränge können lokal im Datenspeichersystem 200 oder an einem physisch entfernten Ort angesiedelt sein. Anders ausgedrückt: Ein lokaler Speicher-Controller kann mit einem entfernt angeordneten Speicher-Controller verbunden sein und einen Speicher an dem entfernt liegenden Ort verwalten. Der Rang 230a ist mit zwei vollständigen Datenträgern 234 und 236 sowie mit einem partiellen Datenträger 232a konfiguriert. Der Rang 230b ist mit einem weiteren Teil-Datenträger 232b abgebildet. Somit kann der Datenträger 232 über die Ränge 230a und 230b verteilt sein. Der Rang 230n ist als vollständig dem Datenträger 238 zugeordnet abgebildet, d.h. der Rang 230n bezieht sich auf den kompletten physischen Speicher des Datenträgers 238. Aus den obigen Beispielen dürfte klar sein, dass ein Rang so konfiguriert sein kann, dass er einen oder mehrere partielle und/oder vollständige Datenträger beinhaltet. Datenträger und Ränge können des Weiteren in so genannte „Spuren“ unterteilt sein, die für einen festen Speicherblock stehen. Eine Spur ist somit einem gegebenen Datenträger zugewiesen und kann einem gegebenen Rang zugeordnet werden.
  • Der Speicher-Controller 240 beinhaltet einen Steuerschalter 241 zum Steuern des Fibre-Channel-Protokolls für die Hostcomputer 210, 220, 225, einen Mikroprozessor 242 zum Steuern des gesamten Speicher-Controllers 240, einen nichtflüchtigen Steuerspeicher 243 zum Speichern eines Mikroprogramms 250 (Betriebssoftware), um den Betrieb des Speicher-Controllers 240 zu steuern, Daten für die Steuerung und jede Tabelle, die später beschrieben werden, den Cache 245 zum vorübergehenden Speichern (Zwischenspeichern) von Daten und Pufferspeicher 244, um den Cache 245 beim Lesen und Schreiben von Daten zu unterstützen, einen Steuerschalter 241 zum Steuern eines Protokolls, um die Datenübertragung zu oder von den Speichereinheiten 230 zu steuern, und ein Komprimierungsbetriebsmodul 255 sowie ein Komprimierungsbetriebslisten-Modul 257, in dem Daten gesetzt werden können. Um die hier beschriebenen Operationen zu unterstützen, können mehrere Pufferspeicher 244 mit der vorliegenden Erfindung realisiert sein.
  • Bei einer Ausführungsform sind die Hostcomputer oder die eine bzw. die mehreren physischen oder virtuellen Einheiten 210, 220, 225 sowie der Speicher-Controller 240 über einen Netzwerkwerkadapter 260 (bei dem es sich um einen Fibre-Channel-Adapter handeln kann) als eine Schnittstelle, d.h. über einen als „Fabric“ bezeichneten Schalter verbunden. Bei einer Ausführungsform wird die Funktionsweise des in 2 gezeigten Systems beschrieben. Der Mikroprozessor 242 kann den Arbeitsspeicher 243 steuern, um Befehlsdaten von der (physischen oder virtuellen) Hosteinheit 210 und Daten zum Identifizieren der (physischen oder virtuellen) Hosteinheit 210 zu speichern. Der Steuerschalter 241, die Pufferspeicher 244, der Cache 245, die Betriebssoftware 250, der Mikroprozessor 242, der Arbeitsspeicher 243, der NVS 216, das Komprimierungsbetriebsmodul 255 und das Komprimierungsbetriebslisten-Modul 257 tauschen Daten miteinander aus und können getrennte Komponenten oder eine einzige Komponente sein. Zudem können einige, wenn nicht alle Komponenten wie beispielsweise die Betriebssoftware 250 in dem Arbeitsspeicher 243 enthalten sein. Zu Zwecken, die mit der vorliegenden Erfindung im Einklang sind, können alle Komponenten innerhalb der gezeigten Einheiten miteinander verbunden sein und Daten miteinander austauschen.
  • Der gezeigte Speicher-Controller 240 beinhaltet eine Datendeduplizierungsmaschine 255, in der eine Anzahl von Schreibanforderungen 259 verarbeitet wird. Die Datendeduplizierungsmaschine 255 kann in struktureller Hinsicht ein vollständiges Modul sein oder anderen einzelnen Modulen zugehörig und/oder in diese integriert sein. Die Datendeduplizierungsmaschine 255 ist so konfiguriert, dass sie gemeinsam mit anderen Komponenten des Speicher-Controllers 240 wie z.B. dem Mikroprozessor 242 Datendeduplizierungsoperationen für Schreibdaten durchführt, die durch den Speicher-Controller 240 an den Speicher 230 geleitet werden.
  • Wie weiter oben bereits erwähnt, beinhaltet der Speicher-Controller 240 den Cache 245 (der in seiner Gesamtheit als Cachesystem bezeichnet werden kann) und akzeptiert Schreibdaten von den Hosts 210, 220 und 225 oder ähnlichen Einheiten, die dann in den Cachespeicher 245 gestellt werden. Die Datendeduplizierungsmaschine 255 überprüft danach, ob die Schreibdaten in dem Cachespeicher 245 doppelt vorhanden sind. Die Schreibanforderungen 259, welche die Anwendung 17 (1) vor Deduplizierungsoperationen schützen möchte, werden wie dargestellt mit Anzeigern 257 kenntlich gemacht. Dabei ist zu beachten, dass der Anzeiger in dem Schreibbefehl und nicht in den zu schreibenden Daten (d.h. den Nutzdaten des Schreibbefehls) gesetzt wird. Die Schreibanforderungen 259 mit dem Anzeiger 257, die durch die Datendeduplizierungsmaschine 255 weitergeleitet werden, zeigen der Datendeduplizierungsmaschine 255 an, dass sie nicht Gegenstand einer Deduplizierungsoperation sind.
  • Bei einer Ausführungsform ermittelt die Anwendung 17 bzw. das Dateisystem 19 zunächst, ob ein gegebener Datenblock mehrfach im physischen Speicher gespeichert werden muss. Dabei kann es sich um Superblock-Metadaten handeln, die dem Dateisystem 19 selbst zugehörig sind. Die Anwendung 17 kann danach eine Schreibanforderung 259 an den zugrundeliegenden Plattentreiber (Gerätetreiber) veranlassen, wobei der Anzeiger 257 (z.B. als binäre Eins) gesetzt ist, was anzeigt, dass dieser Datenblock auch dann nicht dedupliziert werden darf, wenn festgestellt wird, dass er mit einem zuvor geschriebenen Datenblock identisch ist.
  • In einem darauffolgenden Schritt bereitet der Plattentreiber wiederum einen Befehl wie z.B. einen SCSI-Befehl (Small Computer Systems Interface) vor, bei dem das Bit so gesetzt ist, dass es gegenüber dem Speicher-Controller 240 angibt, dass die Deduplizierung übersprungen werden soll. Wenn er den gekennzeichneten Datenblock empfängt, überspringt der Speicher-Controller 240, wie dem Fachmann klar sein dürfte, über die Datendeduplizierungsmaschine 255 die Deduplizierungsschritte der Erzeugung eines Fingerabdrucks, der Überprüfung auf Übereinstimmung usw. und schreibt den ausgewählten Datenblock auch dann direkt in eine neue Speicherstelle der physischen Platte, wenn frühere Instanzen identischer Daten bereits in dem Speicher-Controller 240 gespeichert sein sollten.
  • Bei Anwendungen, die auf Benutzerebene ausgeführt werden, kann in einer Ausführungsform der Schreibsystemaufruf mit einem erweiterten Attribut bereitgestellt werden, das angibt, dass ein Datenblock auch dann auf die physische Platte geschrieben werden muss, wenn sein Inhalt mit Daten übereinstimmt, die zu einem früheren Zeitpunkt bereits auf die Platte geschrieben wurden. Wenn dies der Fall ist, werden abhängig davon, ob der Schreibvorgang z.B. in einen Block oder an eine Dateischnittstelle erfolgt ist, auf ähnliche Art und Weise wie oben beschrieben zusätzliche Schritte durchgeführt.
  • Mit Blick auf 3 wird eine Ausführungsform einer Eingabe/Ausgabe-Anforderung gezeigt, bei der es sich konkret um einen Schreibbefehl 300 auf zeitlicher Grundlage handelt, der von dem Host 210 (2) an den Speicher-Controller 240 gesendet werden kann. Bei einer Ausführungsform ist die Schreibanforderung 300 ein SCSI-Befehl. 3 gibt jedes Bit an, das in den 32 Bytes eines Befehlsblocks enthalten ist. So gibt in Byte 0 z.B. ein Operationscode die Art des auszuführenden Befehls an, d.h. einen Schreibbefehl auf zeitlicher Grundlage. Die Bytes 2 bis 9 sind für die logische Blockadresse (LBA) vorgesehen, die eine erste Dateneinheit kenntlich macht. Die Bytes 10 bis 13 sind für die Übertragungslänge vorgesehen, welche die Anzahl an geschriebenen Blöcken angibt, beginnend mit der ersten Dateneinheit, usw. Der Fachmann weiß, dass die verschiedenen Felder und/oder die unterschiedliche Anwendbarkeit dieser Felder in der Schreibanforderung 300 entsprechend der jeweiligen Realisierung variieren kann.
  • In der veranschaulichten Ausführungsform aus 3 befindet sich der Anzeiger 257 in Bit 7 von Byte 1 des Schreibbefehls 300. Somit kann der Anzeiger 257 eine binäre Null oder eine binäre Eins sein, um anzuzeigen, dass die gekennzeichneten zu schreibenden Daten nicht Gegenstand einer Datendeduplizierungsoperation sind, die von der Datendeduplizierungsmaschine 255 durchgeführt wird (ebenfalls 2). Auch hier dürfte dem Fachmann klar sein, dass andere, ähnliche Anzeiger auf die Schreibanforderung angewendet bzw. in Zusammenhang mit der Schreibanforderung und/oder Schreibdaten bereitgestellt werden können, um bestimmte Teile von Daten zu kennzeichnen, die von einer Deduplizierung ausgenommen sein sollen.
  • Mit Blick auf das Blockschaubild aus 4 werden verschiedene funktionelle Aspekte der vorliegenden Erfindung als beispielhafter Ablauf dargestellt. Konkret wird gezeigt, wie das Cachesystem 245 Schreibdaten 402, die durch die Datendeduplizierungsmaschine 255 verarbeitet werden sollen, als eine Schreiboperation 404 in den Cache 245 akzeptiert. Wenn die Schreibdaten 402 durch die Datendeduplizierungsmaschine 255 verarbeitet werden, werden sie - wie weiter oben bereits erwähnt - normalerweise daraufhin überprüft, ob sie in dem bestehenden Speicher bereits vorhanden sind. Da die Schreibanforderung 259 jedoch den Anzeiger 257 enthält, wird keine Deduplizierungsoperation durchgeführt, und die Schreibdaten werden durch die Deduplizierungsmaschine 255 und den Cachespeicher 245 geleitet und gelangen schließlich in den physisch zugeordneten Speicher 230.
  • Bei einer alternativen Ausführungsform, die zum Zwecke einer anschaulicheren Darstellung hier nicht gezeigt ist, kann das Cachesystem 245 vor der Deduplizierungsmaschine 255 angeordnet sein. In diesem Fall wird der Anzeiger 257 in dem Schreibbefehl 259 gesetzt, und das entsprechende Datensegment wird durch den Cache 245 geschrieben. Alternativ speichert der Cache 245 den Bit-Anzeiger 257, so dass bei einer späteren Löschung des Segments der Anzeiger 257 für einen gegebenen Satz von Segmenten der Deduplizierungsmaschine 255 zur Verfügung steht. Dabei dürfte dem Fachmann klar sein, dass zugunsten einer bestimmten Anwendung auch andere Abwandlungen der in 4 abgebildeten Funktionsaspekte durchgeführt werden können, z.B. ein Betriebsablauf und eine Platzierung, wie sie weiter oben erwähnt wurden.
  • Die im Folgenden beschriebene 5 ist ein beispielhaftes Verfahren 500 zum Sicherstellen von Datenredundanz in Speicherteilsystemen mit Datendeduplizierungssystemen, in denen Aspekte der veranschaulichten Ausführungsformen realisiert sein können. Das Verfahren 500 beginnt (Schritt 502) mit der Konfiguration eines Anzeigers, der mit einem ausgewählten Datensegment bereitgestellt wird (z.B. innerhalb eines SCSI-Schreibbefehls), das durch das Datendeduplizierungssystem geschrieben werden soll, um anzuzeigen, dass das ausgewählte Datensegment keiner Deduplizierungsoperation unterzogen werden darf (Schritt 504). Danach endet das Verfahren 500 (Schritt 506).
  • In der im Folgenden beschriebenen 6 wird ein beispielhaftes Verfahren 600 zum Verarbeiten von Daten veranschaulicht, in dem ebenfalls verschiedene Aspekte der vorliegenden Erfindung realisiert sein können. Das Verfahren 600 beginnt (Schritt 602) mit der Konfiguration des Anzeigers wie weiter oben beschrieben (Schritt 604). In der veranschaulichten Ausführungsform wird der Anzeiger in Zusammenhang mit einer Schreibanforderung als ein gesetztes Bit in einem SCSI-Schreibbefehl bereitgestellt (Schritt 606). Danach wird der Befehl durch den Speicher-Controller verarbeitet (Schritt 608). Wenn der SCSI-Befehl ein gesetztes Bit für bestimmte ausgewählte Daten enthält (Schritt 610), wird verhindert, dass eine Deduplizierungsoperation für das zugehörige Datensegment durchgeführt wird (Schritt 612), und das zugehörige Datensegment wird entsprechend direkt in eine neu zugeordnete physische Speicherstelle geschrieben (Schritt 614).
  • Wenn - zurück in Schritt 610 - der SCSI-Befehl das gesetzte Bit für das betreffende ausgewählte Datensegment nicht enthält, wird das zugehörige Datensegment durch verschiedene Deduplizierungsalgorithmen in der Deduplizierungsmaschine verarbeitet (z.B. indem es anhand anderer zuvor gespeicherter Versionen des Datensegments auf eine Deduplizierung überprüft wird und eine andere Deduplizierungsfunktionalität durchgeführt wird, die dem Fachmann bekannt sein dürfte). Danach endet das Verfahren 600 (Schritt 618).
  • Die Mechanismen der veranschaulichten Ausführungsformen sind wie weiter oben beschrieben auf die Schreibanforderungen selbst anwendbar oder können - bei anderen Ausführungsformen - in Zusammenhang mit den jeweils ausgewählten Daten realisiert werden. So können bei einer Ausführungsform die Superblock-Metadaten selbst mit dem Anzeiger gekennzeichnet werden, um kenntlich zu machen, dass die Daten nicht Gegenstand von Datendeduplizierungsoperationen sind. Dem Fachmann dürften auch andere für eine spezifische Anwendung geeignete Techniken bekannt sein, mit denen eine Anzeige in Zusammenhang mit ausgewählten Daten bereitgestellt werden kann.
  • Der Fachmann weiß, dass Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogramm ausgeführt werden können. Entsprechend können Aspekte der vorliegenden Erfindung in Gestalt einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform (z.B. Firmware, residente Software, Mikrocode usw.) oder in Gestalt einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte vereint, welche zusammenfassend als „Schaltung“, „Modul“ oder „System“ bezeichnet werden können. Des Weiteren können Aspekte der vorliegenden Erfindung in Gestalt eines Computerprogrammprodukts vorliegen, das in einem oder mehreren computerlesbaren Medien ausgeführt ist, auf denen computerlesbarer Programmcode enthalten ist.
  • Dabei kann eine beliebige Kombination aus einem oder mehreren computerlesbaren Medien genutzt werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann z.B. ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem bzw. eine entsprechende Vorrichtung oder Einheit oder aber eine beliebige geeignete Kombination der vorgenannten Elemente sein, ohne jedoch auf diese beschränkt zu sein. Konkretere Beispiele des computerlesbaren Speichermediums würden Folgendes beinhalten (wobei dies eine nicht vollständige Liste darstellt): eine elektrische Verbindung mit einem oder mehreren Leitern, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren, programmierbaren Nur-Lese-Speicher (EPROM- oder Flash-Speicher), einen Lichtwellenleiter, einen tragbaren CD-ROM, eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination der vorgenannten Elemente. In Verbindung mit diesem Dokument kann ein computerlesbares Speichermedium jedes physische Medium sein, das ein Programm enthalten oder speichern kann, welches von oder in Zusammenhang mit einem der Befehlsausführung dienenden System, einer Vorrichtung oder Einheit verwendet wird.
  • Auf einem computerlesbaren Medium enthaltener Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, darunter, ohne darauf beschränkt zu sein, drahtlose, drahtgebundene, Lichtwellenleiterkabel-, HF- und andere Medien oder eine beliebige Kombination der vorgenannten Medien. Computerprogrammcode für das Ausführen von Arbeitsschritten für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination von einer oder mehreren Programmiersprachen geschrieben sein, unter anderem eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder ähnliche sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Im letztgenannten Szenario kann der entfernt angeordnete Computer über eine beliebige Art von Netzwerk, unter anderem ein LAN oder ein WAN, mit dem Computer des Benutzers verbunden sein, oder die Verbindung kann mit einem externen Computer (z.B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
  • Im Folgenden werden Aspekte der vorliegenden Erfindung unter Bezugnahme auf Darstellungen von Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Dabei dürfte klar sein, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaubildern durch Computerprogrammbefehle realisiert werden kann/können. Diese Computerprogrammbefehle können einem Prozessor eines Universalcomputers, Spezialcomputers oder einer anderweitigen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Befehle, die über den Prozessor des Computers oder der anderweitigen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel erzeugen, mit dem die Funktionen/Handlungen realisiert werden können, die in dem Block bzw. den Blöcken des Ablaufplans und/oder Blockschaubilds angegeben werden.
  • Diese Computerprogrammbefehle können auch auf einem computerlesbaren Medium gespeichert werden, das einen Computer, eine anderweitige programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die auf dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsartikel hervorbringen, der Befehle aufweist, mit denen die Funktion/Handlung, die in dem Block bzw. den Blöcken des Ablaufplans und/oder Blockschaubilds angegeben ist, realisiert wird. Die Computerprogrammbefehle können zudem in einen Computer, eine anderweitige programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um zu veranlassen, dass eine Reihe von Betriebsschritten auf dem Computer, der anderweitigen programmierbaren Datenvorrichtung oder den anderen Einheiten ausgeführt wird, so dass die Befehle, die auf dem Computer oder der anderweitigen Datenverarbeitungsvorrichtung ausgeführt werden, Prozesse bereitstellen, mit denen die in dem Block bzw. den Blöcken des Ablaufplans und/oder Blockschaubilds angegebenen Funktionen/Handlungen realisiert werden.
  • Der Ablaufplan und die Blockschaubilder in den obigen Figuren stellen die Architektur, Funktionalität und den Betrieb möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung bereit. Somit kann jeder Block der Ablaufpläne oder Blockschaubilder ein Modul, Segment oder einen Code-Teil darstellen, der einen oder mehrere ausführbare Befehle aufweist, mit denen sich die angegebene(n) logische(n) Funktion(en) realisieren lässt/lassen. Zu beachten ist ferner, dass bei manchen alternativen Ausführungsformen die in dem Block erwähnten Funktionen in einer anderen Reihenfolge als der in den Figuren genannten auftreten können. So können zwei aufeinanderfolgend dargestellte Blöcke tatsächlich im Wesentlichen gleichzeitig stattfinden, oder die Blöcke können mitunter in umgekehrter Reihenfolge ausgeführt werden, wobei dies abhängig von der betreffenden Funktionalität ist. Ebenfalls erwähnenswert ist, dass jeder Block der Blockschaubilder und/oder der Ablaufplan-Darstellung sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplan-Darstellung durch Spezialsysteme auf der Grundlage von Hardware, welche die angegebenen Funktionen oder Handlungen oder Kombinationen hiervon ausführen, oder durch Kombinationen von Spezial-Hardware- und Computerbefehlen realisiert werden kann/können.
  • Obwohl eine oder mehrere Ausführungsformen der vorliegenden Erfindung im Einzelnen dargestellt wurden, weiß der Fachmann, dass Änderungen und Anpassungen an diesen Ausführungsformen vorgenommen werden können, ohne vom inhaltlichen Umfang der vorliegenden Erfindung abzuweichen, wie er in den folgenden Ansprüchen dargelegt ist.

Claims (16)

  1. Verfahren (600) zum Bewahren von Datenredundanz in einem Datendeduplizierungssystem (10; 200) in einer Datenverarbeitungsumgebung durch einen Prozessor, aufweisend: Empfangen eines Schreibbefehls (259) zum Schreiben eines ausgewählten Datensegments in eine physische Speicherstelle (14; 230a, 230b, 230n); Ermitteln (610) ob der Schreibbefehl einen Anzeiger (257) beinhaltet, der mindestens ein Bit oder eine Markierung beinhaltet, wobei der Anzeiger angibt dass das ausgewählte Datensegment keiner Deduplizierungsoperation unterzogen werden darf; wenn der Schreibbefehl den Anzeiger nicht beinhaltet, Erzeugen eines Fingerabdrucks für das ausgewählte Datensegment und Durchführen (616) einer Deduplizierungsoperation für das ausgewählte Datensegment; und wenn der Schreibbefehl den Anzeiger beinhaltet, Umgehen (612) des Erzeugens des Fingerabdrucks und des Durchführens der Deduplizierungsoperation; wobei das Konfigurieren eines Anzeigers des Weiteren beinhaltet, für eine Anwendung (15, 17), die in der Datenverarbeitungsumgebung betreibbar ist, einen Systemaufruf mit einem erweiterten Attribut bereitzustellen, das angibt, dass das ausgewählte Datensegment in einen physischen Arbeitsspeicher geschrieben werden muss, obwohl das ausgewählte Datensegment mit Daten übereinstimmt, die zu einem früheren Zeitpunkt in den physischen Arbeitsspeicher geschrieben wurden.
  2. Verfahren nach Anspruch 1, wobei das ausgewählte Datensegment mindestens ein Superblock oder Dateisystem-Metadaten ist, der/die wiederholt in physischem Speicher gespeichert werden muss/müssen.
  3. Verfahren nach Anspruch 1 oder 2, das des Weiteren das Verarbeiten des Anzeigers beinhaltet, so dass die Durchführung der Deduplizierungsoperation für das ausgewählte Datensegment verhindert wird.
  4. Verfahren nach Anspruch 3, wobei das Verarbeiten des Anzeigers das Vorbereiten des Schreibbefehls und das Integrieren des Anzeigers in den Schreibbefehl beinhaltet, der einem Speicher-Controller in der Datenverarbeitungsumgebung bereitgestellt werden soll.
  5. Verfahren nach Anspruch 4, wobei das Verarbeiten des Anzeigers beinhaltet: Empfangen des Schreibbefehls durch den Speicher-Controller (240), und direktes Schreiben des ausgewählten Datensegments in eine neue physische Speicherstelle (230a, 230b, 230n).
  6. System zum Bewahren von Datenredundanz in einem Datendeduplizierungssystem (10; 200) in einer Datenverarbeitungsumgebung, aufweisend: ein Dateisystem-Modul (19); einen Speicher-Controller (240), der in Wirkverbindung mit dem Dateisystem-Modul steht, wobei das Dateisystem-Modul einen Schreibbefehl (259) zum Schreiben eines ausgewählten Datensegments in eine physische Speicherstelle (14; 230a, 230b, 230n) empfängt, Ermittelt ob der Schreibbefehl einen Anzeiger (257) beinhaltet, der mindestens ein Bit oder eine Markierung beinhaltet, wobei der Anzeiger angibt, dass das ausgewählte Datensegment keiner Deduplizierungsoperation unterzogen werden darf; wenn der Schreibbefehl den Anzeiger nicht beinhaltet, einen Fingerabdruck für das ausgewählte Datensegment erzeugt und eine Deduplizierungsoperation für das ausgewählte Datensegment durchführt; und wenn der Schreibbefehl den Anzeiger beinhaltet, das Erzeugen des Fingerabdrucks und das Durchführen der Deduplizierungsoperation umgeht; und eine Anwendung (15, 17), die in der Lage ist, mit dem Dateisystem-Modul Daten auszutauschen, wobei die Anwendung einen Systemaufruf mit einem erweiterten Attribut bereitstellt, das angibt, dass das ausgewählte Datensegment in einen physischen Arbeitsspeicher geschrieben werden muss, obwohl das ausgewählte Datensegment mit Daten übereinstimmt, die zu einem früheren Zeitpunkt in den physischen Arbeitsspeicher geschrieben wurden.
  7. System nach Anspruch 6, wobei das ausgewählte Datensegment mindestens ein Superblock oder Dateisystem-Metadaten ist, der/die wiederholt in physischem Speicher gespeichert werden muss/müssen.
  8. System nach Anspruch 6 oder 7, wobei der Speicher-Controller den Anzeiger so verarbeitet, dass die Durchführung der Deduplizierungsoperation für das ausgewählte Datensegment verhindert wird.
  9. System nach Anspruch 8, das des Weiteren einen Speichertreiber beinhaltet, der in Wirkverbindung mit dem Dateisystem-Modul und dem Speicher-Controller steht, wobei der Speichertreiber gemäß dem Verarbeiten des Anzeigers den Schreibbefehl vorbereitet und den Anzeiger in den Schreibbefehl integriert, der dem Speicher-Controller bereitgestellt werden soll.
  10. System nach Anspruch 9, wobei der Speicher-Controller gemäß dem Verarbeiten des Anzeigers: den Schreibbefehl empfängt, und das ausgewählte Datensegment direkt in eine neue physische Speicherstelle (230a, 230b, 230n) schreibt.
  11. System nach Anspruch 6, wobei das mindestens eine Bit oder die Markierung dem ausgewählten Datensegment zugehörig sind, wobei ein SCSI-Schreibbefehl (Small Computer System Interface) verwendet wird.
  12. Computerprogrammprodukt zum Bewahren von Datenredundanz in einem Datendeduplizierungssystem in einer Datenverarbeitungsumgebung durch einen Prozessor, wobei das Computerprogrammprodukt ein nichtflüchtiges computerlesbares Speichermedium umfasst, auf dem computerlesbare Programmcode-Teile gespeichert sind, wobei die computerlesbaren Programmcode-Teile aufweisen: einen ersten ausführbaren Teil zum: Empfangen eines Schreibbefehls (259) zum Schreiben eines ausgewählten Datensegments in eine physische Speicherstelle (14; 230a, 230b, 230n); Ermitteln ob der Schreibbefehl einen Anzeiger (257) beinhaltet, der mindestens ein Bit oder eine Markierung beinhaltet, wobei der Anzeiger angibt, dass das ausgewählte Datensegment keiner Deduplizierungsoperation unterzogen werden darf; wenn der Schreibbefehl den Anzeiger nicht beinhaltet, Erzeugen eines Fingerabdrucks für das ausgewählte Datensegment und Durchführen einer Deduplizierungsoperation für das ausgewählte Datensegment; und wenn der Schreibbefehl den Anzeiger beinhaltet, Umgehen des Erzeugens des Fingerabdrucks und des Durchführens der Deduplizierungsoperation; gemäß dem Konfigurieren einer Datenverarbeitungsumgebung Bereitstellen eines Systemaufrufs mit einem erweiterten Attribut, das angibt, dass das ausgewählte Datensegment in einen physischen Arbeitsspeicher geschrieben werden muss, obwohl das ausgewählte Datensegment mit Daten übereinstimmt, die zu einem früheren Zeitpunkt in den physischen Arbeitsspeicher geschrieben wurden.
  13. Computerprogrammprodukt nach Anspruch 12, wobei das ausgewählte Datensegment mindestens ein Superblock oder Dateisystem-Metadaten ist, der/die wiederholt in physischem Speicher gespeichert werden muss/müssen.
  14. Computerprogrammprodukt nach Anspruch 12 oder 13, das des Weiteren einen zweiten ausführbaren Teil zum Verarbeiten des Anzeigers beinhaltet, so dass die Durchführung der Deduplizierungsoperation für das ausgewählte Datensegment verhindert wird.
  15. Computerprogrammprodukt nach Anspruch 14, das des Weiteren einen dritten ausführbaren Teil beinhaltet, um gemäß dem Verarbeiten des Anzeigers den Schreibbefehl vorzubereiten und den Anzeiger in den Schreibbefehl zu integrieren der einem Speicher-Controller in der Datenverarbeitungsumgebung bereitgestellt werden soll.
  16. Computerprogrammprodukt nach Anspruch 15, das des Weiteren einen vierten ausführbaren Teil beinhaltet, um gemäß dem Verarbeiten des Anzeigers: den Schreibbefehl durch den Speicher-Controller zu empfangen, und das ausgewählte Datensegment direkt in eine neue physische Speicherstelle (230a, 230b, 230n) zu schreiben.
DE112013000900.5T 2012-04-23 2013-01-08 Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers Active DE112013000900B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/453,252 2012-04-23
US13/453,252 US9779103B2 (en) 2012-04-23 2012-04-23 Preserving redundancy in data deduplication systems
PCT/CN2013/070180 WO2013159578A1 (en) 2012-04-23 2013-01-08 Preserving redundancy in data deduplication systems by indicator

Publications (2)

Publication Number Publication Date
DE112013000900T5 DE112013000900T5 (de) 2014-11-13
DE112013000900B4 true DE112013000900B4 (de) 2023-04-27

Family

ID=49381080

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013000900.5T Active DE112013000900B4 (de) 2012-04-23 2013-01-08 Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers

Country Status (4)

Country Link
US (3) US9779103B2 (de)
CN (1) CN104246774A (de)
DE (1) DE112013000900B4 (de)
WO (1) WO2013159578A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014185916A1 (en) 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. Selecting a store for deduplicated data
CN105339929B (zh) * 2013-05-16 2019-12-03 慧与发展有限责任合伙企业 选择用于取消重复数据的存储
US10877945B1 (en) * 2013-12-20 2020-12-29 EMC IP Holding Company LLC Optimized block storage for change block tracking systems
US20160034201A1 (en) * 2014-08-04 2016-02-04 International Business Machines Corporation Managing de-duplication using estimated benefits
US10803020B1 (en) 2015-06-30 2020-10-13 EMC IP Holding Company LLC Data deduplication on a distributed file system
US10706042B1 (en) * 2015-06-30 2020-07-07 EMC IP Holding Company LLC Data deduplication on a distributed file system using conditional writes
US10430384B1 (en) 2015-06-30 2019-10-01 EMC IP Holding Company LLC Global data deduplication across multiple distributed file systems
US9830273B2 (en) 2015-07-30 2017-11-28 Netapp, Inc. Deduplicated host cache flush to remote storage
US10162526B2 (en) * 2015-10-20 2018-12-25 Micron Technology, Inc. Logical address history management in memory device
WO2018058382A1 (zh) * 2016-09-28 2018-04-05 华为技术有限公司 一种存储系统中重复数据删除方法、存储系统及控制器
US10795861B2 (en) * 2018-06-20 2020-10-06 International Business Machines Corporation Online measurement of potential deduplication efficiency
US11048674B2 (en) 2018-11-14 2021-06-29 International Business Machines Corporation Data deduplication with less impact on speed of access
US11226942B2 (en) * 2019-10-16 2022-01-18 International Business Machines Corporation Controlling deduplication in a storage pool
US11893256B2 (en) * 2020-03-11 2024-02-06 International Business Machines Corporation Partitioning of deduplication domains in storage systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110016091A1 (en) 2008-06-24 2011-01-20 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US20110238914A1 (en) 2009-02-25 2011-09-29 Hiroshi Hirayama Storage apparatus and data processing method for the same

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5628004A (en) * 1994-11-04 1997-05-06 Optima Direct, Inc. System for managing database of communication of recipients
CA2363838C (en) 1999-12-20 2010-03-09 Dai Nippon Printing Co., Ltd. Distributed data archive device and system
EP1366595B1 (de) 2001-02-14 2018-11-14 GenKey Netherlands B.V. Verfahren und vorrichtung zur erzeugung eines kryptographisches schlüssels
EP1271951A1 (de) 2001-06-22 2003-01-02 Octalis S.A. System mit bedingtem Zugriff auf digitale Daten durch Schlüssel Dekodierung und Wiederkodierung
JP2005510794A (ja) 2001-11-23 2005-04-21 コムヴォールト・システムズ・インコーポレーテッド 選択的データ複製システムおよび方法
US20030115447A1 (en) 2001-12-18 2003-06-19 Duc Pham Network media access architecture and methods for secure storage
WO2004023715A1 (en) 2002-09-03 2004-03-18 The Regents Of The University Of California Block cipher mode of operation for constructing a wide-blocksize block cipher from a conventional block cipher
US8010498B2 (en) 2005-04-08 2011-08-30 Microsoft Corporation Virtually infinite reliable storage across multiple storage devices and storage services
JP4620518B2 (ja) 2005-04-26 2011-01-26 株式会社ケンウッド 音声データベース製造装置、音片復元装置、音声データベース製造方法、音片復元方法及びプログラム
US20070168350A1 (en) 2006-01-17 2007-07-19 Tom Utiger Management of non-traditional content repositories
US9465823B2 (en) * 2006-10-19 2016-10-11 Oracle International Corporation System and method for data de-duplication
US7873809B2 (en) * 2007-03-29 2011-01-18 Hitachi, Ltd. Method and apparatus for de-duplication after mirror operation
US7827137B2 (en) * 2007-04-19 2010-11-02 Emc Corporation Seeding replication
JP5060876B2 (ja) 2007-08-30 2012-10-31 株式会社日立製作所 ストレージシステム及びストレージシステムの消費電力低減方法
US8209506B2 (en) 2007-09-05 2012-06-26 Emc Corporation De-duplication in a virtualized storage environment
JP5026213B2 (ja) * 2007-09-28 2012-09-12 株式会社日立製作所 ストレージ装置及びデータ重複排除方法
US7870105B2 (en) * 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
US8533384B2 (en) * 2007-12-27 2013-09-10 Sandisk Enterprise Ip Llc Flash memory controller garbage collection operations performed independently in multiple flash memory groups
US7979670B2 (en) 2008-01-24 2011-07-12 Quantum Corporation Methods and systems for vectored data de-duplication
US7814074B2 (en) 2008-03-14 2010-10-12 International Business Machines Corporation Method and system for assuring integrity of deduplicated data
US7567188B1 (en) * 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
US9395929B2 (en) 2008-04-25 2016-07-19 Netapp, Inc. Network storage server with integrated encryption, compression and deduplication capability
US7908436B1 (en) 2008-04-25 2011-03-15 Netapp, Inc. Deduplication of data on disk devices using low-latency random read memory
US8346730B2 (en) 2008-04-25 2013-01-01 Netapp. Inc. Deduplication of data on disk devices based on a threshold number of sequential blocks
US20090319772A1 (en) 2008-04-25 2009-12-24 Netapp, Inc. In-line content based security for data at rest in a network storage system
US8117464B1 (en) 2008-04-30 2012-02-14 Netapp, Inc. Sub-volume level security for deduplicated data
US8219524B2 (en) 2008-06-24 2012-07-10 Commvault Systems, Inc. Application-aware and remote single instance data management
US8392791B2 (en) 2008-08-08 2013-03-05 George Saliba Unified data protection and data de-duplication in a storage system
US8086799B2 (en) 2008-08-12 2011-12-27 Netapp, Inc. Scalable deduplication of stored data
US8074049B2 (en) 2008-08-26 2011-12-06 Nine Technology, Llc Online backup system with global two staged deduplication without using an indexing database
US8290915B2 (en) 2008-09-15 2012-10-16 International Business Machines Corporation Retrieval and recovery of data chunks from alternate data stores in a deduplicating system
US8190823B2 (en) 2008-09-18 2012-05-29 Lenovo (Singapore) Pte. Ltd. Apparatus, system and method for storage cache deduplication
US8131687B2 (en) * 2008-11-13 2012-03-06 International Business Machines Corporation File system with internal deduplication and management of data blocks
US9058118B1 (en) 2008-12-31 2015-06-16 Symantec Corporation Techniques for synchronizing and/or consolidating storage areas
WO2010103569A1 (en) * 2009-03-11 2010-09-16 Hitachi, Ltd. Storage system and control method for the same, and program
US8140491B2 (en) 2009-03-26 2012-03-20 International Business Machines Corporation Storage management through adaptive deduplication
US8401996B2 (en) 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
US8218759B2 (en) 2009-04-17 2012-07-10 Oracle America, Inc. System and method for encrypting data
US8412848B2 (en) 2009-05-29 2013-04-02 Exagrid Systems, Inc. Method and apparatus for content-aware and adaptive deduplication
US8401181B2 (en) 2009-06-09 2013-03-19 Emc Corporation Segment deduplication system with encryption of segments
US8731190B2 (en) 2009-06-09 2014-05-20 Emc Corporation Segment deduplication system with encryption and compression of segments
US20100333116A1 (en) 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
GB2472072B (en) 2009-07-24 2013-10-16 Hewlett Packard Development Co Deduplication of encoded data
CN101656720B (zh) 2009-08-12 2012-10-17 北京握奇数据系统有限公司 对信息系统中访问对象信息统一维护的方法及装置
US8200641B2 (en) 2009-09-11 2012-06-12 Dell Products L.P. Dictionary for data deduplication
US8285690B2 (en) 2009-09-18 2012-10-09 Hitachi, Ltd. Storage system for eliminating duplicated data
FR2952778B1 (fr) 2009-11-17 2011-12-23 Thales Sa Procede de transmission de donnees securise et systeme de chiffrement et de dechiffrement permettant une telle transmission
US9239843B2 (en) * 2009-12-15 2016-01-19 Symantec Corporation Scalable de-duplication for storage systems
US8660994B2 (en) 2010-01-28 2014-02-25 Hewlett-Packard Development Company, L.P. Selective data deduplication
US8108447B2 (en) * 2010-03-11 2012-01-31 Symantec Corporation Systems and methods for garbage collection in deduplicated data systems
JP5434705B2 (ja) 2010-03-12 2014-03-05 富士通株式会社 ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
JP4892072B2 (ja) 2010-03-24 2012-03-07 株式会社東芝 ホスト装置と連携して重複データを排除するストレージ装置、同ストレージ装置を備えたストレージシステム、及び同システムにおける重複排除方法
US8453031B2 (en) 2010-03-24 2013-05-28 International Business Machines Corporation Data deduplication using CRC-seed differentiation between data and stubs
US8442942B2 (en) 2010-03-25 2013-05-14 Andrew C. Leppard Combining hash-based duplication with sub-block differencing to deduplicate data
US8954669B2 (en) 2010-07-07 2015-02-10 Nexenta System, Inc Method and system for heterogeneous data volume
US8886613B2 (en) * 2010-10-12 2014-11-11 Don Doerner Prioritizing data deduplication
US20120095968A1 (en) 2010-10-17 2012-04-19 Stephen Gold Storage tiers for different backup types
US8380681B2 (en) 2010-12-16 2013-02-19 Microsoft Corporation Extensible pipeline for data deduplication
US8539148B1 (en) 2010-12-22 2013-09-17 Emc Corporation Deduplication efficiency
CN102156727A (zh) 2011-04-01 2011-08-17 华中科技大学 一种采用双指纹哈希校验的重复数据删除方法
CN102281320A (zh) 2011-04-25 2011-12-14 程旭 控制云存储中数据冗余的方法及装置
CN102221982B (zh) 2011-06-13 2013-09-11 北京卓微天成科技咨询有限公司 块级虚拟化存储设备上实现重复数据删除的方法及系统
US20120317084A1 (en) * 2011-06-13 2012-12-13 Beijing Z&W Technology Consulting Co., Ltd. Method and system for achieving data de-duplication on a block-level storage virtualization device
US8447732B2 (en) * 2011-08-02 2013-05-21 International Business Machines Corporation Deduplication in network storage with data residence compliance
US8527544B1 (en) * 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system
US8589640B2 (en) * 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8930307B2 (en) * 2011-09-30 2015-01-06 Pure Storage, Inc. Method for removing duplicate data from a storage array
US8468138B1 (en) * 2011-12-02 2013-06-18 International Business Machines Corporation Managing redundant immutable files using deduplication in storage clouds
US9904565B2 (en) 2012-02-01 2018-02-27 Veritas Technologies Llc Subsequent operation input reduction systems and methods for virtual machines
US8712976B1 (en) * 2012-03-28 2014-04-29 Emc Corporation Managing deduplication density
US8812456B2 (en) * 2012-03-30 2014-08-19 Netapp Inc. Systems, methods, and computer program products for scheduling processing to achieve space savings

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110016091A1 (en) 2008-06-24 2011-01-20 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US20110238914A1 (en) 2009-02-25 2011-09-29 Hiroshi Hirayama Storage apparatus and data processing method for the same

Also Published As

Publication number Publication date
US9779103B2 (en) 2017-10-03
WO2013159578A1 (en) 2013-10-31
US20130282673A1 (en) 2013-10-24
US20170329815A1 (en) 2017-11-16
US10691670B2 (en) 2020-06-23
US9798734B2 (en) 2017-10-24
US20130282669A1 (en) 2013-10-24
DE112013000900T5 (de) 2014-11-13
CN104246774A (zh) 2014-12-24

Similar Documents

Publication Publication Date Title
DE112013000900B4 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
DE112017002941B4 (de) Arbeitslastoptimierte Datendeduplizierung mittels Phantomfingerabdrücken
DE112013002355B4 (de) Steigern von Datenzwischenspeicherungsleistung
DE102016103359B4 (de) Singleton-cachespeicher-verwaltungsprotokoll für hierarchische virtualisierte speichersysteme
DE102013205069B4 (de) Erhöhte effizienz bei inline-deduplizierungen
DE102013204972B4 (de) Hybride Sicherung und Wiederherstellung eines sehr grossen Dateisystems unter Verwendung von Metadaten-Abbildsicherung und herkömmlicher Sicherung
DE102012208141B4 (de) Ausgleich nachlassender Funktionsfähigkeit
DE102020106971A1 (de) Datenschreibverwaltung im nichtflüchtigen speicher
DE112014000251T5 (de) Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen
DE102013209528A1 (de) Benutzergesteuerte Replikation in einem System für synchronisierte Objektreplikationen
DE102009031923A1 (de) Verfahren zum Verwalten von Datenobjekten
DE112012004937T5 (de) Fingerabdruckbasierte Datendeduplizierung
DE112011100618T5 (de) Verwalten von Schreiboperationen auf einen Speicherbereich von Spuren, der zwischen Speichereinheiten verlagert wird
DE102015012621A1 (de) Offline-Deduplikation für Halbleiterspeichervorrichtungen
DE102013208930A1 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE112015005742B4 (de) Lastadaptiver algorithmus zum packen von daten
DE112017000167B4 (de) Verteilte Datendeduplizierung in einem Prozessorraster
DE102006052173B4 (de) Schreibschutzverfahren und -vorrichtung für wenigstens eine Speichereinrichtung mit wahlfreiem Zugriff
DE102015005817B4 (de) System und Verfahren zum Cachen von SSD Speichergerät- Leseanforderungsergebnissen
DE202010017644U1 (de) Hybridspeichervorrichtung
DE112012002452T5 (de) Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten
DE112014000448T5 (de) Auszugabruf beruhend auf Ähnlichkeitssuche bei Datendeduplizierung
DE112012002796T5 (de) Übertragen von in virtuellen Datenträgern organisierten deduplizierten Daten in einen Zielsatz von physischen Medien
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE112018003585T5 (de) Deduplizierung eines bandlaufwerkspeichers

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000

R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0016000000

Ipc: G06F0016174000

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