DE112012005032T5 - Entfernen der Datenremanenz in deduplizierten Speicher-Clouds - Google Patents

Entfernen der Datenremanenz in deduplizierten Speicher-Clouds Download PDF

Info

Publication number
DE112012005032T5
DE112012005032T5 DE112012005032.0T DE112012005032T DE112012005032T5 DE 112012005032 T5 DE112012005032 T5 DE 112012005032T5 DE 112012005032 T DE112012005032 T DE 112012005032T DE 112012005032 T5 DE112012005032 T5 DE 112012005032T5
Authority
DE
Germany
Prior art keywords
file
user
secure
algorithm
deduplicated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112012005032.0T
Other languages
English (en)
Inventor
Matthew Bunkley Trevathan
Sri Ramanathan
Bhushan Pradip Jain
Ghuge Deepak Rambahu
Sandeep Ramesh Patil
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 DE112012005032T5 publication Critical patent/DE112012005032T5/de
Granted legal-status Critical Current

Links

Images

Classifications

    • 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

Abstract

Ein Verfahren, das in einer Computer-Infrastruktur realisiert wird, die eine Kombination aus Hardware und Software enthält, beinhaltet den Empfang einer Anforderung für das sichere Löschen einer Datei von einer lokalen Datenverarbeitungseinheit. Das Verfahren beinhaltet auch die Feststellung, dass die Datei dedupliziert ist. Das Verfahren beinhaltet ferner die Feststellung von einem von Folgendem: auf die Datei wird von mindestens einer anderen Datei Bezug genommen oder auf die Datei wird von keiner anderen Datei Bezug genommen. Das Verfahren beinhaltet darüber hinaus das sichere Löschen von Verknüpfungen, die die Datei der lokalen Datenverarbeitungseinheit zuordnen, ohne die Datei zu löschen, wenn auf die Datei von mindestens einer anderen Datei Bezug genommen wird. Das Verfahren beinhaltet auch das sichere Löschen der Datei, wenn keine andere Datei auf die Datei Bezug nimmt.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft allgemein die Cloud-Datenverarbeitung (Cloud-Computing) und insbesondere Verfahren und Systeme zum Entfernen der Datenremanenz in deduplizierten Speicher-Clouds.
  • Hintergrund
  • Die Informationstechnologie ändert sich rasch und bildet nun eine unsichtbare Ebene, die zunehmend nahezu jeden Aspekt des Geschäfts- und des gesellschaftlichen Lebens berührt. Ein neu entstehendes Computermodell mit der Bezeichnung Cloud-Computing geht die explosionsartige Zunahme von mit dem Internet verbundener Geräte an und stellt eine Ergänzung der zunehmenden Technologiepräsenz in der heutigen Welt dar. Cloud-Computing ist ein Modell zur Bereitstellung von Diensten, um einen mühelosen, bedarfsweisen Zugriff über das Netzwerk auf einen gemeinsam genutzten Bestand an konfigurierbaren Datenverarbeitungsressourcen (z. B. Netzwerken, Netzwerkbandbreite, Servern, Rechenleistung, Hauptspeicher, Massenspeicher, Anwendungen, virtuellen Maschinen und Diensten) zu ermöglichen, die schnell bereitgestellt und mit äußerst geringem Verwaltungsaufwand oder minimalem Dialogverkehr mit einem Anbieter des Dienstes freigegeben werden können.
  • Das Cloud-Computing ist massiv skalierbar, sorgt für ein überragendes Nutzererlebnis und ist durch eine neue internetgetriebene Wirtschaftlichkeit gekennzeichnet. In einer Hinsicht umfasst das Cloud-Computing die Speicherung und Ausführung von Geschäftsdaten in einer Cloud, bei der es sich um ein Netz aus untereinander verbundenen Rechenzentren, Datenverarbeitungseinheiten und Speichersystemen handelt, die über Regionen und Länder verstreut sind.
  • Mit dem Aufkommen des Cloud-Computing sind neue Konzepte wie beispielsweise Speicher-Clouds entstanden. Bei den Speicher-Clouds handelt es sich um ein riesiges Speichernetzwerk, das von den Kunden gemeinsam genutzt werden kann, ohne dass der Kunde die Speicherinfrastruktur verwalten muss. Der Anbieter der Speicher-Cloud verfügt gewöhnlich über einen einzigen großen Speicherbereich und er legt Daten von all seinen Kunden an demselben Ort ab, was zum Konzept der Mandantenfähigkeit und einer Umgebung mit mehreren Mandanten führt. Gewöhnlich wird dieser Speicherbereich von der gesamten Kundenbasis auf dieser Cloud gemeinsam genutzt.
  • Wenn eine Datei gelöscht wird, wird üblicherweise nur ein Zeiger auf die Datei gelöscht, während die Datenblöcke intakt bleiben, so dass die Möglichkeit besteht, diese Daten wiederherzustellen. Ein sicherer Löschvorgang ist ein Vorgang, bei dem der Inhalt sicher entfernt wird, so dass keine Überreste auf dem Speicher zurückbleiben. Ein sicherer Löschvorgang ist einer der entscheidenden Aspekte für die Datensicherheit über den Speicher. Die Einhaltung vieler gesetzlicher Vorschriften erfordert die Notwendigkeit eines sicheren Löschvorgangs und es existieren mehrere Standards für die Durchführung von sicheren Löschvorgängen. Ein sicheres Löschen von Daten auf Dateiebene, um die Anforderungen an einen sicheren Löschvorgang zu erfüllen, ist die gebräuchlichste Vorgehensweise. Einige der Löschoperationen über ein Dateisystem können erweitert werden, um verschiedene Spezifikationen der Datenremanenz zu unterstützen, so dass ein sicherer Löschvorgang durchgeführt werden kann. Datenremanenz schließt mehrere Ebenen von Schreiboperationen mit verschiedenen Formaten ein, die von der umgesetzten Spezifikation abhängen.
  • Datendeduplizierung weist einen Prozess zum Entfernen von redundanten Daten auf. Beim Prozess der Deduplizierung werden doppelte Daten gelöscht, so dass nur eine Kopie der Daten zum Speichern übrig bleibt. In bestimmten Ausführungsformen bleibt die Indexierung aller Daten erhalten, falls diese Daten je benötigt werden sollten. Mittels Deduplizierung kann die effektive Speicherkapazität verringert werden, da nur einmalig vorhandene Daten gespeichert werden. Die Datendeduplizierung kann im Allgemeinen auf der Datei- oder der Datenblockebene durchgeführt werden. Bei der Deduplizierung auf Dateiebene werden doppelte Dateien entfernt, doch ist dies kein sehr wirkungsvolles Mittel der Deduplizierung. Bei der Deduplizierung von Blöcken wird in eine Datei geschaut und einmalige Iterationen eines jeden Blocks oder Bits werden gespeichert. Jedes Datensegment wird mittels eines Hash-Algorithmus wie zum Beispiel des MD5 (Message-Digest Algorithm) oder des SHA-1 (Secure Hash Algorithm) verarbeitet. Dieser Prozess erzeugt eine eindeutige Nummer für jedes Stück, das dann in einem Index gespeichert wird. Bei der Aktualisierung einer Datei werden nur die geänderten Daten gespeichert. Das heißt, wenn nur ein paar Bytes eines Dokuments oder einer Präsentation geändert werden, werden nur die geänderten Blöcke oder Bytes gespeichert und die Änderungen stellen keine völlig neue Datei dar. Daher wird bei der Deduplizierung von Blöcken mehr Speicherplatz als bei der Deduplizierung von Dateien gespart.
  • Copy-on-write (Kopieren beim Schreiben (COW)) ist eine Optimierungsstrategie, die bei der Programmierung von Computern zum Einsatz kommt. Der Kerngedanke ist, dass, wenn mehrere Benutzer Dateien anfordern, die anfangs gleich sind, können sie alle mit Zeigern auf dieselbe Ressource versehen werden. Diese Funktion kann so lange aufrechterhalten werden, bis ein Benutzer versucht, seine ”Kopie” der Datei zu ändern, wobei an diesem Punkt eine echte private Kopie für diesen Benutzer angelegt wird, um zu verhindern, dass die Änderungen für alle anderen sichtbar werden. All dies geschieht auf eine für die Benutzer transparente Weise. Der wichtigste Vorteil besteht darin, dass keine private Kopie je angelegt werden muss, wenn ein Benutzer nie Änderungen vornimmt.
  • In einer Cloud-Umgebung ist es möglich, dass ein erster Benutzer, z. B. der Kunde A, eine Datei hat, die mit einem anderen Benutzer, z. B. dem Kunden B, dedupliziert wird. Wenn der Kunde A die Datei sicher löschen möchte, versucht das System, die Datei sicher zu löschen, indem es sie mit zufälligen Daten überschreibt. In diesem Fall verwendet die Deduplizierung das COW-Verfahren, d. h., eine neue Kopie der Datei wird in dem Dateisystem angelegt und dann wird der Algorithmus zum sicheren Löschen auf diese Kopie der Datei angewendet. Im Grunde bleibt die ursprüngliche Datei unberührt und die neue Kopie der Datei wird von dem Algorithmus zum sicheren Löschen sicher gelöscht. Als solches wird bei einem sicheren Löschvorgang in einer Umgebung mit mehreren Mandanten die ursprüngliche Datei unter Umständen nicht wirklich sicher gelöscht, obgleich der Kunde glaubt, dass die Datei sicher gelöscht wird.
  • Kurzdarstellung der Erfindung
  • In einem ersten Aspekt der Erfindung beinhaltet ein Verfahren den Empfang einer Anforderung für das sichere Löschen einer Datei von einer lokalen Datenverarbeitungseinheit. Das Verfahren beinhaltet auch die Feststellung, dass die Datei dedupliziert ist. Das Verfahren beinhaltet ferner die Feststellung von einem von Folgendem: auf die Datei wird von mindestens einer anderen Datei Bezug genommen oder auf die Datei wird von keiner anderen Datei Bezug genommen. Das Verfahren beinhaltet darüber hinaus das sichere Löschen von Verknüpfungen, die die Datei der lokalen Datenverarbeitungseinheit zuordnen, ohne die Datei zu löschen, wenn auf die Datei von mindestens einer anderen Datei Bezug genommen wird. Das Verfahren beinhaltet auch das sichere Löschen der Datei, wenn keine andere Datei auf die Datei Bezug nimmt.
  • In einem weiteren Aspekt der Erfindung wird ein System in Hardware realisiert und enthält eine Computer-Infrastruktur, die dazu dient: von einem Benutzer eine Anforderung für das sichere Löschen einer Datei zu empfangen; festzustellen, dass die Datei eine deduplizierte Datei ist, indem eine Deduplizierungsdatenbank ausgewertet wird; eines von Folgendem festzustellen: auf die deduplizierte Datei wird von mindestens einer anderen Datei Bezug genommen, und auf die deduplizierte Datei wird von keiner anderen Datei Bezug genommen; wenn auf die deduplizierte Datei von mindestens einer anderen Datei Bezug genommen wird, Verknüpfungen, welche die deduplizierte Datei dem Benutzer zuordnen, sicher zu löschen, ohne die deduplizierte Datei zu löschen; und wenn auf die Datei von keiner anderen Datei Bezug genommen wird, die deduplizierte Datei sicher zu löschen.
  • In einem weiteren Aspekt der Erfindung enthält ein Computer-Programmprodukt ein von einem Computer nutzbares, physisch greifbares Speichermedium, wobei lesbarer Programmcode in dem physisch greifbaren Speichermedium enthalten ist, wobei das Computer-Programmprodukt mindestens eine Komponente enthält, die dazu dient: eine erste Anforderung für das sichere Löschen einer deduplizierten Datei zu empfangen, wobei die erste Anforderung von einem ersten Benutzer empfangen wird, und wobei der erste Benutzer und ein zweiter Benutzer über Daten in einer Deduplizierungsdatenbank mit der deduplizierten Datei verknüpft sind; auf der Grundlage der ersten Anforderung Daten aus der Deduplizierungsdatenbank, welche den ersten Benutzer mit der deduplizierten Datei verknüpft, sicher zu löschen, ohne die deduplizierte Datei zu löschen; eine zweite Anforderung für das sichere Löschen der deduplizierten Datei zu empfangen, wobei die zweite Anforderung von dem zweiten Benutzer empfangen wird; und die deduplizierte Datei auf der Grundlage der zweiten Anforderung sicher zu löschen.
  • In einem weiteren Aspekt der Erfindung beinhaltet ein Verfahren zum sicheren Löschen von deduplizierten Dateien in einer Umgebung mit mehreren Mandanten das Bereitstellen einer Computer-Infrastruktur, die dazu dient: eine Anforderung von einem Benutzer für das sichere Löschen einer deduplizierten Datei zu empfangen; wenn mehr als ein Benutzer mit der Datei verknüpft ist, Daten sicher zu löschen, die den Benutzer mit der Datei verknüpfen, ohne die Datei zu löschen; und wenn nur der Benutzer mit der Datei verknüpft ist, die Datei sicher zu löschen.
  • In einem weiteren Aspekt der Erfindung enthält ein Computersystem, das dazu dient, deduplizierte Dateien in einer Umgebung mit mehreren Mandanten sicher zu löschen, eine CPU, einen von einem Computer lesbaren Hauptspeicher und ein von einem Computer lesbares Speichermedium. Das System enthält erste Programmanweisungen, um eine Anforderung von einem Benutzer, eine deduplizierte Datei sicher zu löschen, zu empfangen. Das System enthält zweite Programmanweisungen, um Daten, die den Benutzer mit der Datei verknüpfen, sicher zu löschen, ohne die Datei zu löschen, wenn mehr als ein Benutzer mit der Datei in einer Deduplizierungsdatenbank verknüpft ist. Das System enthält dritte Programmanweisungen, um die Datei sicher zu löschen, wenn nur der Benutzer mit der Datei in der Deduplizierungsdatenbank verknüpft ist. Die ersten, zweiten und dritten Programmanweisungen werden auf dem von einem Computer lesbaren Speichermedium gespeichert, um von der CPU über den von dem Computer lesbaren Hauptspeicher ausgeführt zu werden.
  • Kurze Beschreibung der diversen Ansichten der Zeichnungen
  • Die vorliegende Erfindung wird in der ausführlichen Beschreibung, die folgt, mit Bezug auf die erwähnte Vielzahl von Zeichnungen anhand von Beispielen beispielhafter Ausführungsformen der vorliegenden Erfindung, die nicht als Einschränkung zu verstehen sind, dargelegt.
  • 1 zeigt einen Cloud-Computing-Knoten gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 2 zeigt eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 3 zeigt Ebenen eines Abstraktionsmodells gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 4 zeigt ein Blockschaubild einer Datendeduplizierung;
  • 5 zeigt eine beispielhafte Benutzerschnittstelle und zugehörige Funktionalität gemäß Aspekten der Erfindung; und
  • 6 zeigt einen beispielhaften Ablaufplan gemäß Aspekten der Erfindung.
  • Ausführliche Beschreibung
  • Die vorliegende Erfindung betrifft allgemein das Cloud-Computing und insbesondere Verfahren und Systeme zum Entfernen der Datenremanenz in deduplizierten Speicher-Clouds. Ausführungen der Erfindung stellen einen sicheren Löschmechanismus bereit, der mit deduplizierten Dateien verwendet werden kann. Gemäß Aspekten der Erfindung wird der Prozess der Deduplizierung von Daten verbessert, indem Verfahren zum Entfernen der Datenremanenz eingebunden werden, wobei Benutzer, die über deduplizierte Daten verfügen, häufig unterschiedliche Anforderungen an diese Verfahren haben. In Ausführungsformen darf ein Benutzer eine Datei selektiv als für die Datendeduplizierung in Frage kommend oder nicht in Frage kommend angeben. In weiteren Ausführungsformen wird die Datenremanenz entfernt, wenn ein Benutzer einer Vielzahl von Benutzern, die auf eine deduplizierte Datei verweisen, einen sicheren Löschvorgang der Datei anfordert. In weiteren Ausführungsformen wird ein stärkster von mindestens zwei Algorithmen zum sicheren Löschen ermittelt und angewandt, wenn ein Benutzer einen sicheren Löschvorgang einer deduplizierten Datei anfordert.
  • Gemäß Aspekten der Erfindung werden Anforderungen für das sichere Löschen von deduplizierten Dateien auf der Grundlage der Anzahl der Dateien verarbeitet, die auf eine Masterkopie der Datei dedupliziert werden. Wenn mehrere Dateien (z. B. von mehreren Benutzern) auf eine Masterkopie dedupliziert werden und einer der Benutzer einen sicheren Löschvorgang anfordert, löscht das System in Ausführungsformen sicher die Referenzverknüpfungsblöcke der Datei, welche dem Benutzer zugeordnet ist, der den sicheren Löschvorgang anfordert. Auf diese Weise wird die Masterkopie nicht gelöscht, während alle Verknüpfungen zwischen dem jeweiligen Benutzer und der Datei (z. B. Datenremanenz) gelöscht werden, so dass es keinen Hinweis gibt, dass die Datei dem Benutzer zugeordnet ist (oder je zugeordnet war), der den sicheren Löschvorgang anfordert. Dadurch können andere Benutzern die deduplizierte Datei weiterhin verwenden, während aus der Sicht des Benutzers, der den sicheren Löschvorgang angefordert hat, ein sicherer Löschvorgang ermöglicht wird. Andererseits, wenn es nur einen Benutzer gibt, der mit einer Masterkopie einer deduplizierten Datei verknüpft ist (z. B. nachdem alle anderen Benutzerverknüpfungen gelöscht worden sind), und dieser Benutzer einen sicheren Löschvorgang anfordert, löscht das System und das Verfahren sicher die Masterkopie und alle Verknüpfungen des Benutzers mit der Datei. Auf diese Weise ermöglichen Ausführungen der Erfindung vorteilhaft eine methodische Vorgehensweise für einen sicheren Löschvorgang, welche in der Datendeduplizierungs-Umgebung mit mehreren Mandanten funktioniert.
  • CLOUD-COMPUTING
  • Es versteht sich im Voraus, dass diese Offenbarung zwar eine ausführliche Beschreibung des Cloud-Computing beinhaltet, die Umsetzung der hier aufgezeigten Lehren jedoch nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Vielmehr können Ausführungsformen der vorliegenden Erfindung in Verbindung mit einer beliebigen anderen Art einer Datenverarbeitungsumgebung, die zum gegenwärtigen Zeitpunkt bereits bekannt ist oder zu einem späteren Zeitpunkt entwickelt werden wird, eingesetzt werden.
  • Der Einfachheit halber enthält die Ausführliche Beschreibung die folgenden Definitionen, die von der ”Draft NIST Working Definition of Cloud Computing” von Peter Mell und Tim Grance vom 7. Oktober 2009 abgeleitet wurden, welche in einer mit diesem Schriftstück eingereichten IDS erwähnt ist und von der eine Kopie beigefügt wurde.
  • Cloud-Computing ist ein Modell zur Bereitstellung von Diensten, um einen mühelosen, bedarfsweisen Zugriff über das Netzwerk auf einen gemeinsam genutzten Bestand an konfigurierbaren Datenverarbeitungsressourcen (z. B. Netzwerken, Netzwerkbandbreite, Servern, Rechenleistung, Hauptspeicher, Massenspeicher, Anwendungen, virtuellen Maschinen und Diensten) zu ermöglichen, die schnell bereitgestellt und mit äußerst geringem Verwaltungsaufwand oder minimalem Dialogverkehr mit einem Anbieter des Dienstes freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Merkmale, mindestens drei Dienst-Modelle und mindestens vier Einsatzmodelle beinhalten.
  • Die Merkmale sind wie folgt:
    Selbstbedienung nach Bedarf: Ein Cloud-Nutzer kann einseitig Datenverarbeitungsfunktionen wie zum Beispiel Serverzeit und Netzwerkspeicher nach Bedarf automatisch bereitstellen, ohne dass eine Person mit dem Anbieter des Dienstes in Dialogverkehr treten muss.
  • Umfassender Netzwerkzugriff: Funktionen stehen über ein Netzwerk zur Verfügung und der Zugriff auf die Funktionen erfolgt über standardmäßige Mechanismen, welche die Nutzung durch heterogene Thin-Client- oder Thick-Client-Plattformen (z. B. Mobiltelefone, Laptops und persönliche digitale Assistenten (PDAs) unterstützen.
  • Gemeinsame Nutzung physischer Ressourcen: Die Datenverarbeitungsressourcen des Anbieters werden unter Verwendung eines Modells mit mehreren Mandanten (Multi-Tenant-Modell) zusammengeführt, um mehrere Nutzer zu bedienen, wobei verschiedene physische und virtuelle Ressourcen entsprechend dem Bedarf dynamisch zugewiesen und neu zugewiesen werden. Man hat ein Gefühl der Standort-Unabhängigkeit, da der Nutzer im Allgemeinen keine Kontrolle über den genauen Standort der bereitgestellten Ressourcen hat oder den genauen Standort nicht kennt, diesen gegebenenfalls aber auf einer höheren Abstraktionsebene (z. B. Land, Staat/Bundesland oder Rechenzentrum) angeben kann.
  • Unverzügliche Anpassbarkeit an den Ressourcenbedarf: Funktionen können schnell und elastisch bereitgestellt werden, in manchen Fallen automatisch, um eine schnelle horizontale Skalierbarkeit zu ermöglichen, und sie können schnell freigegeben werden, um eine schnelle vertikale Skalierbarkeit zu ermöglichen. Dem Nutzer erscheinen die zur Versorgung vorhandenen Funktionen oftmals unerschöpflich und sie können jederzeit in jeder beliebigen Menge erworben werden.
  • Messung der Service-Nutzung: Cloud-Systeme steuern und optimieren die Nutzung der Ressourcen automatisch, indem sie auf einer bestimmten Abstraktionsebene, die für die Art des Dienstes (z. B. Speicherkapazität, Rechenleistung, Bandbreite und aktive Benutzerkonten) geeignet ist, eine Zählerfunktion vorteilhaft einsetzen. Die Nutzung der Ressourcen kann überwacht, gesteuert und gemeldet werden, was Transparenz sowohl für den Anbieter als auch den Nutzer des in Anspruch genommenen Dienstes schafft.
  • Die Dienst-Modelle sind wie folgt:
    Software as a Service (SaaS): Die dem Nutzer zur Verfügung gestellte Funktion besteht in der Nutzung der Anwendungen des Anbieters, die in einer Cloud-Infrastruktur ausgeführt werden. Auf die Anwendungen kann von verschiedenen Client-Einheiten über eine Thin-Client-Schnittstelle wie zum Beispiel einen Webbrowser (z. B. webbasierte eMail) zugegriffen werden. Der Nutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur einschließlich des Netzwerks, der Server, der Betriebssysteme, des Speichers oder selbst einzelner Anwendungsfunktionen nicht, wobei es die mögliche Ausnahme in Form von eingeschränkten benutzerspezifischen Einstellungen bei der Konfiguration der Anwendung gibt.
  • Platform as a Service (PaaS): Die dem Nutzer zur Verfügung gestellte Funktion besteht darin, auf der Cloud-Infrastruktur vom Nutzer erzeugte oder erworbene Anwendungen aufzusetzen, die mittels Programmiersprachen und Werkzeugen, die von dem Anbieter unterstützt werden, erzeugt wurden. Der Nutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur einschließlich der Netzwerke, der Server, der Betriebssysteme oder des Speichers nicht, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen der Umgebung, in der Anwendungen gehostet werden (Application Hosting Environment).
  • Infrastructure as a Service (IaaS): Die dem Nutzer zur Verfügung gestellte Funktion besteht in der Bereitstellung von Rechenleistung, Speicherkapazität, Netzwerken und anderen grundlegenden Datenverarbeitungsressourcen, auf denen der Kunde beliebige Software-Programme, die Betriebssysteme und Anwendungen einschließen können, installieren und ausführen kann. Der Nutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise die eingeschränkte Kontrolle über ausgewählte Komponenten für den Netzwerkbetrieb (z. B. Zugangsschutzsysteme für den Hostrechner).
  • Die Einsatzmodelle sind wie folgt:
    Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einem Dritten verwaltet werden und kann sich auf dem Betriebsgelände oder außerhalb des Betriebsgeländes befinden.
  • Gemeinschafts-Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine bestimmte Gemeinschaft, die gemeinsame Interessen (z. B. Aufgaben, Sicherheitsanforderungen, Richtlinien und Anforderungen an die Einhaltung der Richtlinien (Compliance-Anforderungen)) hat. Sie kann von den Organisationen oder einem Dritten verwaltet werden und kann sich auf dem Betriebsgelände oder außerhalb des Betriebsgeländes befinden.
  • Öffentliche Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
  • Hybride Cloud: Die Cloud-Infrastruktur setzt sich aus zwei oder mehr Clouds (privaten, Gemeinschafts- oder öffentlichen Clouds) zusammen, die individuelle Entitäten bleiben, welche jedoch durch eine standardisierte oder firmeneigene Technologie miteinander verbunden sind, die die Portierbarkeit von Daten und Anwendungen ermöglicht (z. B. den kombinierten Einsatz von privaten und öffentlichen Clouds (Cloud-Bursting) für einen Lastausgleich zwischen den Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Zustandslosigkeit, loser Kopplung, Modularität und semantischer Interoperabilität liegt. Das Kernstück des Cloud-Computing bildet eine Infrastruktur, die ein Netzwerk aus untereinander verbundenen Knoten umfasst.
  • Nun Bezug nehmend auf 1 ist eine schematische Darstellung eines Beispiels eines Cloud-Computing-Knotens gezeigt. Der Cloud-Computing-Knoten 10 stellt lediglich ein Beispiel für einen geeigneten Cloud-Computing-Knoten dar und ist nicht als Einschränkung des Nutzungsumfangs oder der Funktionalität von hier beschriebenen Ausführungsformen der Erfindung zu verstehen. Ungeachtet dessen kann der Cloud-Computing-Knoten 10 realisiert werden und/oder ist in der Lage, jedwede Funktionalität, die vorstehend beschrieben wurde, auszuführen. 1 kann auch eine Datenverarbeitungsinfrastruktur darstellen, die Aufgaben und/oder Funktionen der hier beschriebenen Verfahren durchführen und/oder umsetzen kann.
  • Im Cloud-Computing-Knoten 10 gibt es ein Computersystem/einen Server 12, das beziehungsweise der mit zahlreichen anderen Umgebungen oder Konfigurationen eines Datenverarbeitungssystems für allgemeine Anwendungen oder für spezielle Anwendungen betrieben werden kann. Zu Beispielen für bekannte Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die für die Verwendung mit dem Computersystem/Server 12 geeignet sein können, gehören, ohne auf diese beschränkt zu sein, Personal-Computer-Systeme, Server-Computersysteme, Thin-Clients, Thick-Clients, tragbare oder Laptop-Einheiten, Mehrprozessorsysteme, auf einem Mikroprozessor beruhende Systeme, Aufsatzgeräte (Set-Top-Boxen), programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der vorstehenden Systeme oder Einheiten enthalten, und dergleichen.
  • Das Computersystem/der Server 12 kann in dem allgemeinen Kontext von Befehlen, die von einem Computersystem ausgeführt werden können, wie zum Beispiel Programmmodulen, die von einem Computersystem ausgeführt werden, beschrieben werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter enthalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen realisieren. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen betrieben werden, in denen Aufgaben von fernen Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk miteinander verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in Speichermedien, einschließlich Hauptspeicher-Einheiten, eines lokalen als auch eines fernen Computersystems befinden.
  • Wie in 1 gezeigt ist, ist das Computersystem/der Server 12 in dem Cloud-Computing-Knoten 10 in Form von einer Datenverarbeitungseinheit für allgemeine Anwendungen gezeigt. Zu den Komponenten des Computersystems/des Servers 12 können, ohne auf diese beschränkt zu sein, ein oder mehrere Prozessoren oder Verarbeitungseinheiten 16, ein Systemspeicher 28 und ein Bus 18 gehören, der verschiedene Systemkomponenten einschließlich des Systemspeichers 28 mit dem Prozessor 16 verbindet. In Ausführungsformen weist das Computersystem/der Server 12 einen Deduplizierungs-/Löschmanager 80 auf oder tauscht mit einem Deduplizierungs-/Löschmanager 80 Daten aus, wie hier ausführlich beschrieben wird.
  • Der Bus 18 stellt eine oder mehrere von diversen beliebigen Arten von Busstrukturen einschließlich eines Hauptspeicher-Busses oder einer Hauptspeicher-Steuereinheit, eines peripheren Busses, eines Accelerated Graphics Port und eines Prozessor- oder lokalen Busses, der eine beliebige einer Vielzahl von Busarchitekturen nutzt, dar. Als Beispiel, aber nicht darauf beschränkt, gehören zu solchen Architekturen der Bus ”Industry Standard Architecture (ISA)”, der Bus ”Micro Channel Architecture (MCA)”, der Bus ”Enhanced ISA (EISA)”, der lokale Bus ”Video Electronics Standards Association (VESA)” und der Bus ”Peripheral Component Interconnects (PCI)”.
  • Das Computersystem/der Server 12 enthält üblicherweise eine Vielzahl von Datenträgern, die von einem Computersystem gelesen werden können. Solche Datenträger können jedwede verfügbaren Datenträger sein, auf die von dem Computersystem/dem Server 12 zugegriffen werden kann, und sie beinhalten sowohl flüchtige als auch nicht flüchtige Datenträger sowie auswechselbare und nicht auswechselbare Datenträger.
  • Der Systemspeicher 28 kann von einem Computersystem lesbare Datenträger in Form von flüchtigem Hauptspeicher, wie beispielsweise einem Direktzugriffspeicher (RAM) 30 und/oder einem Cachespeicher 32, beinhalten. Das Computersystem/der Server 12 kann darüber hinaus weitere auswechselbare/nicht auswechselbare und flüchtige/nicht flüchtige Speichermedien eines Computersystems enthalten. Lediglich als Beispiel kann das Speichersystem 34 für Leseoperationen von und für Schreiboperationen auf einen nicht auswechselbaren, nicht flüchtigen Magnetdatenträger (nicht gezeigt und üblicherweise als ”Festplattenlaufwerk” bezeichnet) bereitgestellt werden. Obgleich nicht gezeigt, können ein Magnetplattenlaufwerk für Leseoperationen von und Schreiboperationen auf eine auswechselbare, nicht flüchtige Magnetplatte (z. B. eine ”Diskette”) und ein optisches Plattenlaufwerk für Leseoperationen von oder Schreiboperationen auf eine auswechselbare, nicht flüchtige optische Platte, wie zum Beispiel ein CD-ROM, ein DVD-ROM, oder andere optische Datenträger bereitgestellt werden. In diesen Fällen kann jedes Plattenlaufwerk über eine oder mehrere Datenträger-Schnittstellen mit dem Bus 18 verbunden werden. Wie weiter gezeigt und nachstehend beschrieben wird, kann der Systemspeicher 28 mindestens ein Programmprodukt enthalten, das über einen Satz (z. B. mindestens einen Satz) von Programmmodulen verfügt, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
  • Das Programm/Dienstprogramm 40, das über einen Satz (mindestens einen Satz) von Programmmodulen 42 verfügt, kann als Beispiel, das nicht als Einschränkung zu verstehen ist, im Systemspeicher 28 abgelegt werden, ebenso ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Das Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination daraus können jeweils eine Ausführungsart einer Netzwerkumgebung beinhalten. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder die methodischen Vorgehensweisen von den hier beschriebenen Ausführungsformen der Erfindung aus. Zum Beispiel können einige oder alle Funktionen des Deduplizierungs-/Löschmanagers 80 als eines oder mehrere der Programmmodule 42 ausgeführt werden. Ferner kann der Deduplizierungs-/Löschmanager 80 in Form von gesonderten funktionsspezifischen Prozessoren oder in Form von einem oder mehreren Prozessoren realisiert werden, um die hier beschriebene Funktionalität bereitzustellen. In Ausführungsformen führt der Deduplizierungs-/Löschmanager 80 einen oder mehrere der hier beschriebenen Prozesse aus, einschließlich, ohne darauf beschränkt zu sein: einem Benutzer gestatten, eine Datei selektiv als für die Datendeduplizierung in Frage kommend (oder nicht in Frage kommend) anzugeben; Datendeduplizierungsprozesse ausführen; Benutzerverknüpfungen zu einer deduplizierten Datei sicher löschen (z. B. Datenremanenz entfernen), wenn ein Benutzer einen sicheren Löschvorgang der Datei anfordert, falls auf die Masterkopie der Datei von anderen Benutzern verwiesen wird; eine Masterkopie einer deduplizierten Datei sicher löschen, wenn der letzte verknüpfte Benutzer einen sicheren Löschvorgang anfordert; und einen stärkeren Algorithmus von mindestens zwei Algorithmen zum sicheren Löschen ermitteln und anwenden, wenn ein sicherer Löschvorgang angefordert wird.
  • Das Computersystem/der Server 12 kann auch mit einer oder mehreren externen Einheiten 14 wie zum Beispiel einer Tastatur, einem Zeigegerät, einem Bildschirm 24 usw.; mit einer oder mehreren Einheiten, die einem Benutzer den Dialogverkehr mit dem Computersystem/Server 12 ermöglichen; und/oder beliebigen Einheiten (z. B. Netzwerkkarte, Modem usw.), die dem Computersystem/Server 12 den Datenaustausch mit einer oder mehreren anderen Datenverarbeitungseinheiten ermöglichen, Daten austauschen. Ein solcher Datenaustausch kann über E/A-Schnittstellen 22 stattfinden. Weiterhin kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken wie zum Beispiel einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z. B. dem Internet) über den Netzwerkadapter 20 Daten austauschen. Wie gezeigt ist, tauscht der Netzwerkadapter 20 mit den anderen Komponenten des Computersystems/Servers 12 über den Bus 18 Daten aus. Es sollte sich verstehen, dass auch andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden könnten, obgleich diese nicht gezeigt sind. Zu Beispielen hierzu gehören, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Anordnungen von Festplattenlaufwerken, RAID-Systeme (RAID steht für ”redundant array of inexpensive disks” oder ”redundant array of independent disks”, d. h. ”redundante Anordnung unabhängiger Festplatten” oder ”redundante Anordnung kostengünstiger Festplatten”), Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
  • Nun Bezug nehmend auf 2 ist eine der Veranschaulichung dienende Cloud-Computing-Umgebung 50 gezeigt. Wie zu sehen ist, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit dem beziehungsweise denen lokale Datenverarbeitungseinheiten, die von Cloud-Nutzern verwendet werden, wie zum Beispiel ein persönlicher digitaler Assistent (PDA) oder ein Mobiltelefon 54A, ein Tischrechner 54B, ein Laptop-Computer 54C und/oder ein Fahrzeug-Computersystem 54N, Daten austauschen können. Die Knoten 10 können untereinander Daten austauschen. Sie können physisch oder virtuell in einem oder in mehreren Netzwerken wie zum Beispiel privaten, Gemeinschafts-, öffentlichen oder hybriden Clouds, die hier vorstehend beschrieben wurden, oder in einer Kombination daraus zu Gruppen zusammengefasst (nicht gezeigt) werden. Dadurch kann die Cloud-Computing-Umgebung 50 Infrastruktur, Plattformen und/oder Software als Dienste anbieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit unterhalten muss. Es versteht sich, dass die Arten der Datenverarbeitungseinheiten 54A bis 54N, die in 2 gezeigt sind, lediglich dem Zweck der Veranschaulichung dienen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 mit jeder beliebigen Art einer computergestützten Einheit über jede beliebige Art eines Netzwerks und/oder eine über ein Netzwerk adressierbare Verbindung (z. B. mittels eines Webbrowsers) Daten austauschen können.
  • Nun Bezug nehmend auf 3 ist ein Satz von funktionalen Abstraktionsebenen gezeigt, die von der Cloud-Computing-Umgebung 50 (2) bereitgestellt werden. Es sollte sich im Voraus verstehen, dass die Komponenten, Ebenen und Funktionen, die in 3 gezeigt sind, lediglich dem Zweck der Veranschaulichung dienen und dass Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt ist, werden die folgenden Ebenen und die entsprechenden Funktionen bereitgestellt: Die Hardware- und Software-Ebene 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören Mainframe-Computer, in einem Beispiel Systeme der zSeries® vonIBM®; Server, die auf der RISC-Architektur (RISC = Reduced Instruction Set Computer) beruhen, in einem Beispiel Systeme der pSeries® von IBM; Systeme der xSeries® von IBM; BladeCenter®-Systeme von IBM; Speichereinheiten; Netzwerke und Komponenten für den Netzwerkbetrieb. Zu Beispielen für Software-Komponenten gehören Software für Netzwerk-Anwendungsserver, in einem Beispiel die Anwendungsserver-Software WebSphere® von IBM; und Datenbank-Software, in einem Beispiel die Datenbank-Software DB2® von IBM. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind Warenzeichen der International Business Machines Corporation, die bei vielen Markenämtern weltweit eingetragen sind.)
  • Die Virtualisierungsebene 62 stellt eine Abstraktionsebene bereit, von der die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server; virtueller Speicher; virtuelle Netzwerke einschließlich virtueller privater Netzwerke; virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
  • In einem Beispiel kann die Verwaltungsebene 64 die nachstehend beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung ermöglicht die dynamische Beschaffung von Datenverarbeitungsressourcen und anderen Ressourcen, die verwendet werden, um Aufgaben in der Cloud-Computing-Umgebung durchzuführen. Die Erfassung von Verbrauchswerten und die Preisermittlung ermöglichen die Überwachung von Kosten bei der Nutzung von Ressourcen in der Cloud-Computing-Umgebung sowie die Abrechnung oder Inrechnungstellung für die Inanspruchnahme dieser Ressourcen. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungs-Software aufweisen. Die Funktion ”Sicherheit” ermöglicht die Überprüfung der Identität für Nutzer der Cloud und für Aufgaben sowie den Schutz für Daten und andere Ressourcen. Das Benutzerportal ermöglicht sowohl Nutzern als auch Systemadministratoren den Zugriff auf die Cloud-Computing-Umgebung. Die Verwaltung der Dienstgüte ermöglicht die Zuweisung und die Verwaltung von Ressourcen für das Cloud-Computing in der Weise, dass der jeweils erforderlichen Dienstgüte entsprochen wird. Die Planung und die Erfüllung der Dienstgütevereinbarung (Service Level Agreement (SLA)) ermöglicht eine Vorab-Festlegung für und die Beschaffung von Ressourcen für das Cloud-Computing, bei denen ein zukünftiges Erfordernis gemäß einer SLA vorweggenommen wird.
  • Die Verarbeitungsprozess-Ebene 66 stellt Beispiele für eine Funktionalität bereit, für die die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen für Verarbeitungsprozesse und Funktionen, die von dieser Ebene bereitgestellt werden können, gehören: Abbildung und Navigation; Software-Entwicklung und Verwaltung des Lebenszyklus; Bereitstellung des Unterrichts im virtuellen Klassenzimmer; Verarbeitung zu datenanalytischen Zwecken, Transaktionsverarbeitung; und Deduplizierung sowie sicheres Löschen. Gemäß Aspekten der Erfindung dient der Verarbeitungsprozess/die Funktion zur Deduplizierung und zum sicheren Löschen dazu, einen oder mehrere der hier beschriebenen Prozesse auszuführen, einschließlich, ohne darauf beschränkt zu sein: einem Benutzer gestatten, eine Datei selektiv als für die Datendeduplizierung in Frage kommend (oder nicht in Frage kommend) anzugeben; Datendeduplizierungsprozesse ausführen; Benutzerverknüpfungen zu einer deduplizierten Datei sicher löschen (z. B. Datenremanenz entfernen), wenn ein Benutzer einen sicheren Löschvorgang der Datei anfordert, falls auf die Masterkopie der Datei von anderen Benutzern verwiesen wird; eine Masterkopie einer deduplizierten Datei sicher löschen, wenn der letzte verknüpfte Benutzer einen sicheren Löschvorgang anfordert; und einen stärkeren Algorithmus von mindestens zwei Algorithmen zum sicheren Löschen ermitteln und anwenden, wenn ein sicherer Löschvorgang angefordert wird.
  • Wie der Fachmann verstehen wird, können Aspekte der vorliegenden Erfindung einschließlich des Deduplizierungs-/Löschmanagers 80 und der darin bereitgestellten Funktionalität als ein System, ein Verfahren oder ein Computer-Programmprodukt realisiert werden. Folglich können Aspekte der vorliegenden Erfindung die Form einer ganz in Hardware realisierten Ausführungsform, einer ganz in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte kombiniert, die hier alle allgemein als eine ”Schaltung”, ein ”Modul” oder ein ”System” bezeichnet werden können. Überdies können Aspekte der vorliegenden Erfindung die Form eines Computer-Programmprodukts annehmen, das sich auf einem oder mehreren von einem Computer lesbaren Datenträger(n) befindet, auf dem beziehungsweise denen sich von einem Computer lesbarer Programmcode befindet.
  • Jede beliebige Kombination aus einem oder mehreren von einem Computer lesbaren Datenträgern kann verwendet werden. Der von einem Computer lesbare Datenträger kann ein von einem Computer lesbarer Signaldatenträger oder ein von einem Computer lesbares Speichermedium sein. Ein von einem Computer lesbares Speichermedium kann zum Beispiel, ohne darauf beschränkt zu sein, ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder jede beliebige geeignete Kombination des Vorstehenden sein. Zu konkreteren Beispielen (wobei die Liste keinen Anspruch auf Vollständigkeit erhebt) für das von einem Computer lesbare Speichermedium würden folgende gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede beliebige geeignete Kombination des Vorstehenden. Im Kontext dieses Schriftstücks kann ein von einem Computer lesbares Speichermedium jedes physisch greifbare Medium sein, das ein Programm zur Verwendung durch oder zur Verwendung in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungsvorrichtung oder -einheit enthalten oder speichern kann.
  • Ein von einem Computer lesbarer Signaldatenträger kann ein weitergeleitetes Datensignal mit darin enthaltenem, von einem Computer lesbarem Programmcode, beispielsweise im Basisband oder als Teil einer Trägerwelle, enthalten. Solch ein übertragenes Signal kann eine beliebige einer Vielzahl von Formen einschließlich elektromagnetischer, optischer Formen oder jede beliebige geeignete Kombination dieser Formen, ohne darauf beschränkt zu sein, annehmen. Bei einem von einem Computer lesbaren Signaldatenträger kann es sich um jeden beliebigen von einem Computer lesbaren Datenträger handeln, der kein von einem Computer lesbares Speichermedium ist und der ein Programm zur Verwendung durch ein Anweisungsausführungssystem, eine Anweisungsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungsvorrichtung oder -einheit übertragen, weiterleiten oder transportieren kann.
  • Auf einem von einem Computer lesbaren Datenträger enthaltener Programmcode kann mittels eines geeigneten Mediums einschließlich eines drahtlosen Mediums, eines drahtgebundenen Mediums, eines Lichtwellenleiterkabels, mittels Hochfrequenz (HF) usw., ohne darauf beschränkt zu sein, oder mittels jeder beliebigen geeigneten Kombination des Vorstehenden übertragen werden.
  • Computer-Programmcode zur Durchführung von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen einschließlich einer objektorientierten Programmiersprache, wie beispielsweise Java, Smalltalk, C++ oder dergleichen, sowie in herkömmlichen prozeduralen Programmiersprachen wie beispielsweise der Programmiersprache ”C” oder in ähnlichen Programmiersprachen geschrieben sein. Die Ausführung des Programmcodes kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server erfolgen. Im letzteren Szenario kann der ferne Computer mit dem Computer des Benutzers über jede beliebige Art eines Netzwerks einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzes (WAN) verbunden werden oder die Verbindung kann zu einem externen Computer (zum Beispiel über das Internet mittels eines Internet-Dienstanbieters) hergestellt werden.
  • Aspekte der vorliegenden Erfindung werden nachstehend mit Bezug auf Darstellungen in Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computer-Programmprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Darstellungen in den Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen aus Blöcken in den Darstellungen der Ablaufpläne und/oder den Blockschaubildern mittels Anweisungen eines Computerprogramms realisiert werden können. Diese Anweisungen eines Computerprogramms können einem Prozessor eines Mehrzweckcomputers, eines Computers für spezielle Anwendungen oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine so zu erzeugen, dass die Anweisungen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
  • Diese Computerprogramm-Anweisungen können auch auf einem von einem Computer lesbaren Datenträger gespeichert werden, der einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die auf dem von einem Computer lesbaren Datenträger gespeicherten Anweisungen einen Herstellungsgegenstand erzeugen, der Anweisungen enthält, die die Funktion/den Vorgang ausführen, welche beziehungsweise welcher in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben ist.
  • Die Computerprogramm-Anweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder auf andere Einheiten geladen werden, um die Durchführung einer Reihe von Betriebsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder auf anderen Einheiten zu bewirken, um einen von einem Computer ausgeführten Prozess so zu erzeugen, dass die Anweisungen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zur Ausführung der Funktionen/Vorgänge ermöglichen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
  • 4 zeigt ein Deduplizierungs-Blockschaubild gemäß Aspekten der Erfindung. In Ausführungsformen gelangen Daten 75, 75' von einer oder mehreren lokalen Datenverarbeitungseinheiten 54, 54' zu einem Deduplizierungssystem, das den Datenverarbeitungsknoten 10 und den Deduplizierungs-/Löschmanager 80 aufweist. Die lokalen Datenverarbeitungseinheiten 54, 54' können eine von vielen lokalen Datenverarbeitungseinheiten 54A bis 54N sein, die vorstehend mit Bezug auf 2 beschrieben wurden. In einem Deduplizierungsprozess eines Blocks nimmt der Deduplizierungs-/Löschmanager 80 jeden Block der Daten 75, 75' und führt einen Hash-Algorithmus aus, der einen eindeutigen Schlüssel für jeden Block erzeugt. Der Deduplizierungs-/Löschmanager 80 vergleicht den eindeutigen Schlüssel für jeden Block mit Schlüsseln, die in einer Deduplizierungsdatenbank 85 gespeichert sind, z. B., indem er den eindeutigen Schlüssel für jeden Block in der Deduplizierungsdatenbank 85 sucht, um festzustellen, ob der Schlüssel bereits vorhanden ist (was ein Hinweis darauf ist, dass der jeweilige Datenblock zuvor geschrieben worden ist). Wenn der Block nicht zuvor geschrieben worden ist (z. B. gibt es keine Übereinstimmung mit dem eindeutigen Schlüssel in der Deduplizierungsdatenbank 85), schreibt der Deduplizierungs-/Löschmanager 80 den Block in den Speicher 90 und der eindeutige Schlüssel für den Block wird in die Deduplizierungsdatenbank 85 geschrieben. Der Massenspeicher 90 kann zum Beispiel einen Speicherknoten in der Cloud aufweisen, wie in 2 gezeigt ist. Andererseits, wenn der Block zuvor geschrieben worden ist (z. B. gibt es eine Übereinstimmung mit dem eindeutigen Schlüssel in der Deduplizierungsdatenbank 85), schreibt der Deduplizierungs-/Löschmanager 80 einen Zeiger, der auf den Speicherplatz der ursprünglichen Kopie des Blocks zeigt.
  • Wie in 4 gezeigt ist, kann mehr als ein Benutzer einer deduplizierten Datei zugeordnet sein. Zum Beispiel können eine erste und eine zweite lokale Datenverarbeitungseinheit 54 und 54' auf die deduplizierte Datei verweisen, die im Datenspeicher 90 abgelegt ist. In Ausführungsformen werden Daten, die eine Verknüpfung zwischen einem bestimmten Benutzer (z. B. der lokalen Datenverarbeitungseinheit 54 oder 54') und einer Datei (oder einem oder mehreren Blöcken der Datei) angeben, in der Deduplizierungsdatenbank 85 gespeichert. Wie hier ausführlicher beschrieben wird, werden, wenn auf eine deduplizierte Datei von mindestens zwei Benutzern verwiesen wird (z. B. von den Einheiten 54 und 54' oder von Dateien, die den Einheiten zugeordnet sind, auf die deduplizierte Datei Bezug genommen wird) und einer der Benutzer (z. B. die Einheit 54') einen sicheren Löschvorgang der Datei anfordert, die Daten in der Deduplizierungsdatenbank 85, welche die Verknüpfung zwischen dem anfordernden Benutzer und der Datei angeben, gelöscht. Auf diese Weise wird jedwede Datenremanenz in Verbindung mit dem anfordernden Benutzer (z. B. der Einheit 54') und der deduplizierten Datei gelöscht, so dass der anfordernde Benutzer aus seiner Sicht einen sicheren Löschvorgang durchführt. Obgleich die Zuordnung des anfordernden Benutzers zu der Datei aufgehoben wurde, haben die verbleibenden Benutzer (z. B. die Einheit 54) überdies nach wie vor Zugriff auf die deduplizierte Datei, da die Masterkopie der im Datenspeicher 90 abgelegten Datei erst gelöscht wird, wenn ein letzter verbleibender Benutzer einen sicheren Löschvorgang der Datei anfordert.
  • Gemäß zusätzlichen Aspekten der Erfindung speichert die Deduplizierungsdatenbank 85 auch Daten, die einen ganz bestimmten Algorithmus zum sicheren Löschen angeben, der zu einer deduplizierten Datei gehört. In Ausführungsformen speichert die Deduplizierungsdatenbank 85 und/oder der Deduplizierungs-/Löschmanager 80 eine sortierte Liste mit Algorithmen zum sicheren Löschen. Beliebige geeignete Algorithmen zum sicheren Löschen können im Rahmen der Erfindung verwendet werden, einschließlich herkömmlicher Algorithmen zum sicheren Löschen (z. B. die Gutmann-Methode, US DoD 5220.22-M, RCMP TSSIT OPS-II usw.) und/oder später entwickelte Algorithmen zum sicheren Löschen. Zum Beispiel kann die jeweilige relative Stärke einer Vielzahl von Algorithmen zum sicheren Löschen vorher festgelegt (beispielsweise durch Verwendung eines gewünschten quantitativen und/oder qualitativen Maßes) und in der sortierten Liste mit Algorithmen zum sicheren Löschen gespeichert werden.
  • In Ausführungsformen wird einer der sortierten Algorithmen der deduplizierten Datei entweder automatisch vom System oder von einem Benutzer zugewiesen. Zum Beispiel kann der Deduplizierungs-/Löschmanager 80 die Liste einem Benutzer übergeben, wenn der Benutzer die Datei speichert, wobei der Benutzer in diesem Fall einen der Algorithmen aus der Liste auswählt. In einem weiteren Beispiel können die Deduplizierungsdatenbank 85 und/oder der Deduplizierungs-/Löschmanager 80 so programmiert werden, dass sie einen der Algorithmen aus der Liste einer Datei auf der Grundlage einer beliebigen Kombination aus Parametern automatisch zuweisen, wie zum Beispiel: Dateityp, Dateinamenerweiterung, Identität des Benutzers (z. B. MAC-Adresse, IP-Adresse, Benutzername usw.) usw. In jedem Fall speichert der Deduplizierungs-/Löschmanager 80 Daten, die den Algorithmus zum sicheren Löschen angeben, der zu der Datei in der Deduplizierungsdatenbank 85 gehört, z. B. als ein Feld, das zu der Datei gehört, in der Deduplizierungsdatenbank 85.
  • Wenn ein Benutzer einen sicheren Löschvorgang einer deduplizierten Datei anfordert, kann der Benutzer in Ausführungsformen auch einen Algorithmus zum sicheren Löschen angeben, der bei dem sicheren Löschvorgang verwendet werden soll. Der von dem Benutzer angegebene Algorithmus zum sicheren Löschen kann aus derselben sortierten Liste stammen, die in der Deduplizierungsdatenbank 85 und/oder am Deduplizierungs-/Löschmanager 80 gespeichert ist. Die Angabe des Benutzers kann automatisch erfolgen (z. B. vorher festgelegt und für diesen Benutzer gespeichert) oder vom Benutzer ausgewählt werden (z. B. aus einer Liste, die dem Benutzer von dem Deduplizierungs-/Löschmanager 80 zum Zeitpunkt der Anforderung für einen sicheren Löschvorgang übergeben wird). In Ausführungsformen vergleicht der Deduplizierungs-/Löschmanager 80 nach dem Empfang der Anforderung für einen sicheren Löschvorgang den von einem Benutzer angegebenen Algorithmus zum sicheren Löschen mit dem Algorithmus zum sicheren Löschen, der in der Deduplizierungsdatenbank 85 als zu der Datei gehörend angegeben ist und verwendet den stärkeren der beiden Algorithmen zum sicheren Löschen für die Durchführung des angeforderten sicheren Löschvorgangs.
  • 5 zeigt eine beispielhafte Benutzerschnittstelle 100 und zugehörige Funktionalität gemäß Aspekten der Erfindung. In Ausführungsformen enthält die Schnittstelle 100 ein Eigenschaften-Fenster 110, das auf einer lokalen Datenverarbeitungseinheit, z. B. der lokalen Datenverarbeitungseinheit 54, dargestellt wird. Die Schnittstelle 100 kann auf der lokalen Datenverarbeitungseinheit als Reaktion darauf dargestellt werden, dass der Benutzer ein vorgeschriebenes Muster von Mausklicks, Tastenanschlägen, Auswahloperationen auf einem berührungsempfindlichen Bildschirm usw. durchführt. Als nur eines von vielen möglichen Beispielen kann die Schnittstelle 100 dargestellt werden, wenn der Benutzer eine vorhandene Datei auswählt, mit der rechten Maustaste auf die ausgewählte Datei klickt und ”Eigenschaften” aus einem Menü auswählt. Überdies oder alternativ kann die Schnittstelle 100 für den Benutzer auf der lokalen Datenverarbeitungseinheit automatisch dargestellt werden, wenn gerade eine Datei gespeichert wird.
  • Gemäß Aspekten der Erfindung weist die Schnittstelle 100 einen Deduplizierungsauswahlteil 115 auf, der mindestens ein auswählbares Feld 125 wie zum Beispiel ein Kontrollkästchen, das von einem Benutzer markiert werden kann, enthält, welches einem Benutzer gestattet anzugeben, ob diese Datei für eine Datendeduplizierung in Frage kommt (oder nicht). Es gibt Situationen, beispielsweise beim Umgang mit geheimem und/oder vertraulichem Material, in denen ein Benutzer möglicherweise verhindern möchte, dass eine Datei mit einer anderen Datei dedupliziert wird. Auf diese Weise ermöglicht die Schnittstelle 100 mit auswählbarem Feld 125 einem Benutzer, eine Deduplizierungsangabe für eine bestimmte Datei zu machen. In Ausführungsformen wird die Deduplizierungsangabe als ein Dateiattribut gespeichert, das von dem Deduplizierungs-/Löschmanager 80 ausgewertet werden kann, um festzustellen, ob ein Datendeduplizierungsprozess auf eine Datei angewendet werden soll, wie z. B. in 4 gezeigt ist.
  • Die Schnittstelle 100 dient lediglich als Beispiel und ist nicht als die einzige Art und Weise vorgesehen, in der dem Benutzer die Möglichkeit gegeben werden soll, eine bestimmte Datei selektiv als eine Datei anzugeben, die für eine Deduplizierung in Frage kommt oder aber nicht in Frage kommt. Jede geeignete Schnittstelle kann im Rahmen der Erfindung verwendet werden, um dem Benutzer auf der lokalen Datenverarbeitungseinheit eine solche Funktionalität anzubieten.
  • Ablaufplan
  • 6 zeigt einen beispielhaften Ablauf zur Umsetzung von Aspekten der vorliegenden Erfindung. Die Schritte von 5 können beispielsweise in jeder beliebigen der Umgebungen der 1 bis 4 durchgeführt werden.
  • Der Ablaufplan und die Blockschaubilder in den Figuren stellen die Architektur, die Funktionalität und die Betriebsweise von möglichen Ausführungsarten von Systemen, Verfahren und Computerprogramm-Produkten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung dar. In dieser Hinsicht kann jeder Block in dem Ablaufplan oder in den Blockschaubildern ein Modul, ein Segment oder einen Teil von Code darstellen, das beziehungsweise der einen oder mehrere ausführbare Anweisungen zur Durchführung der angegebenen logischen Funktion(en) aufweist. Es sei auch angemerkt, dass die in dem Block angegebenen Funktionen in manchen alternativen Ausführungsarten mitunter in einer anderen als in der in den Figuren angegebenen Reihenfolge auftreten können. In Abhängigkeit von der mit ihnen verbundenen Funktionalität können beispielsweise zwei Blöcke, die als aufeinanderfolgende Blöcke dargestellt sind, tatsächlich weitgehend gleichzeitig ausgeführt werden oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden. Es ist auch festzuhalten, dass jeder Block der Blockschaubilder und/oder der Darstellung in den Ablaufplänen sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder der Darstellung in den Ablaufplänen von Systemen, die auf Hardware für spezielle Anwendungen beruhen und die angegebenen Funktionen oder Vorgänge durchführen, oder von Kombinationen aus Hardware für spezielle Anwendungen und Computer-Anweisungen ausgeführt werden können.
  • Überdies kann die Erfindung die Form eines Computer-Programmprodukts annehmen, auf das von einem Datenträger zugegriffen werden kann, welcher von einem Computer genutzt oder gelesen werden kann und welcher Programmcode zur Verwendung durch einen Computer oder ein beliebiges Befehlsausführungssystem oder in Verbindung mit einem Computer oder einem beliebigen Befehlsausführungssystem bereitstellt. Das Software- und/oder Computer-Programmprodukt kann in der Umgebung der 1 bis 4 ausgeführt werden. Zum Zweck dieser Beschreibung kann ein von einem Computer nutzbarer oder von einem Computer lesbarer Datenträger jede Vorrichtung sein, die das Programm zur Verwendung durch das Anweisungsausführungssystem, die Anweisungsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit dem Anweisungsausführungssystem, der Anweisungsausführungsvorrichtung oder -einheit enthalten, speichern, übertragen, weiterleiten oder transportieren kann. Bei dem Datenträger kann es sich um ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleitersystem (oder -vorrichtung oder -einheit) oder ein Weiterleitungsmedium handeln. Zu Beispielen für ein computerlesbares Speichermedium gehören ein Halbleiterspeicher, ein Magnetband, eine auswechselbare Computerdiskette, ein Direktzugriffspeicher (RAM), ein Nur-Lese-Speicher (ROM), eine magnetische Festplatte und eine optische Platte. Zu aktuellen Beispielen für optische Platten gehören Compact-Disk-Nur-Lese-Speicher (CD-ROM), Compact-Disk-Schreib-/Lese-Speicher (CD-R/W) und digitale Videoplatten (DVD).
  • 6 zeigt einen beispielhaften Ablauf für einen Prozess gemäß Aspekten der vorliegenden Erfindung. Im Schritt 610 empfängt ein System zum sicheren Löschen und Deduplizieren (z. B. eine Datenverarbeitungseinheit, die den Deduplizierungs-/Löschmanager 80 ausführt) eine Eingabe von dem Benutzer (z. B. von der lokalen Datenverarbeitungseinheit), wobei die Eingabe eine Anforderung für das sichere Löschen einer Datei und eine Angabe eines Algorithmus zum sicheren Löschen, der beim Löschen der Datei verwendet werden soll, aufweist. Der Schritt 610 kann den Empfang einer Anforderung von einem Benutzer für das Löschen der Datei durch das System zum sicheren Löschen und Deduplizieren, welches dem Benutzer eine Liste mit Algorithmen zum sicheren Löschen übergibt, aus denen er eine Auswahl treffen kann, sowie den Empfang einer Angabe des einen Algorithmus aus der Liste mit den Algorithmen zum sicheren Löschen von dem Benutzer aufweisen.
  • Im Schritt 615 stellt das System zum sicheren Löschen und Deduplizieren fest, ob die im Schritt 610 angeforderte Datei dedupliziert ist. Dies kann beispielsweise geschehen, indem die Deduplizierungsdatenbank 85 auf einen Eintrag geprüft wird, der der angeforderten Datei entspricht. Wenn im Schritt 615 festgestellt wird, dass die Datei nicht dedupliziert ist, löscht das System zum sicheren Löschen und Deduplizieren im Schritt 620 die Datei, wobei sie den Algorithmus zum sicheren Löschen verwendet, der in der Benutzereingabe des Schritts 610 angegeben wurde. Das Löschen der Datei kann mindestens eines von Folgendem aufweisen: Löschen der Kopie der Datei, Löschen aller Zeiger auf die Datei, Überschreiben des Speicherplatzes der Datei mit zufälligen Daten, Löschen der Datenremanenz sowie beliebige andere Aktionen, die von dem angegebenen Algorithmus zum sicheren Löschen vorgeschrieben werden.
  • Wenn im Schritt 615 andererseits festgestellt wird, dass die Datei dedupliziert ist, stellt das System zum sicheren Löschen und Deduplizieren im Schritt 625 fest, ob von anderen Dateien oder Benutzern auf die Datei als Masterkopie Bezug genommen wird (z. B. ob die Datei mit anderen Benutzern verknüpft ist). In Ausführungsformen trifft das System zum sicheren Löschen und Deduplizieren diese Feststellung, indem es Daten in der Deduplizierungsdatenbank auswertet, um festzustellen, ob es eine Referenzverknüpfung gibt, mit der eine andere Datei oder ein anderer Benutzer auf die Datei zeigt.
  • Der Prozess schaltet zum Schritt 630, wenn im Schritt 625 festgestellt wird, dass auf die für den Löschvorgang angeforderte Datei als Masterkopie Bezug genommen wird, z. B. eine andere Datei oder ein anderer Benutzer mit dieser deduplizierten Datei verknüpft ist. Im Schritt 630 stellt das System zum sicheren Löschen und Deduplizieren fest, ob der von dem Benutzer angegebene Algorithmus zum sicheren Löschen (z. B. vom Schritt 610) starker ist als der zu der Datei gehörende Algorithmus zum sicheren Löschen (z. B. der Datei-Algorithmus, der von den Daten angegeben wird, welche zu der Datei in der Deduplizierungsdatenbank gehören). In Ausführungsformen vergleicht das System zum sicheren Löschen und Deduplizieren die jeweilige relative Stärke der beiden Algorithmen zum sicheren Löschen, z. B., indem es feststellt, welcher der beiden Algorithmen zum sicheren Löschen in der sortierten Liste weiter oben steht, oder indem es ein anderes geeignetes vorher festgelegtes quantitatives und/oder qualitatives Mail für die jeweilige relative Stärke der Algorithmen zum sicheren Löschen verwendet.
  • Wenn im Schritt 630 festgestellt wird, dass der von dem Benutzer angegebene Algorithmus zum sicheren Löschen (z. B. vom Schritt 610) starker ist als der Datei-Algorithmus, ersetzt das System zum sicheren Löschen und Deduplizieren im Schritt 635 den Datei-Algorithmus durch den von dem Benutzer angegebenen Algorithmus zum sicheren Löschen. Dies kann beispielsweise geschehen, indem Daten in der Deduplizierungsdatenbank, die angeben, welcher Algorithmus zum sicheren Löschen zu der deduplizierten Datei gehört, überschrieben werden. Der Prozess schaltet dann zum Schritt 640, in dem das System zum sicheren Löschen und Deduplizieren die Referenzverknüpfungen, die den Benutzer der Datei zuordnen, unter Verwendung des Datei-Algorithmus sicher löscht, der aufgrund des Ersetzungsvorgangs im Schritt 635 nun gleich dem von dem Benutzer angegebenen Algorithmus zum sicheren Löschen ist. Alternativ, wenn im Schritt 630 festgestellt wird, dass der Datei-Algorithmus starker ist als der von dem Benutzer angegebene Algorithmus zum sicheren Löschen (z. B. vom Schritt 610), schaltet der Prozess direkt zum Schritt 640, wobei das System zum sicheren Löschen und Deduplizieren an dieser Stelle mittels des Datei-Algorithmus die Referenzverknüpfungen sicher löscht, die den Benutzer der Datei zuordnen.
  • Gemäß Aspekten der Erfindung weist das Löschen der Verknüpfungen im Schritt 640 das Löschen aller Daten in der Deduplizierungsdatenbank auf, die eine Zuordnung zwischen dem Benutzer, der den Löschvorgang anfordert (z. B. vom Schritt 610), und der deduplizierten Datei angeben, ohne die Masterkopie der deduplizierten Datei zu löschen. Auf diese Weise wird die Zuordnung des Benutzers, der den sicheren Löschvorgang anfordert, zu der deduplizierten Datei in dem Sinn aufgehoben, dass alle Verknüpfungen zwischen dem Benutzer und der Datei mittels des Algorithmus zum sicheren Löschen gelöscht werden, wodurch sichergestellt wird, dass es keine Datenremanenz gibt, die den Benutzer mit der deduplizierten Datei verknüpft. Vom Standpunkt des Benutzers, der den Löschvorgang anfordert, aus betrachtet, wurde ein sicherer Löschvorgang durchgeführt. Die Masterkopie der Datei wird jedoch nicht gelöscht, da eine oder mehrere andere Dateien oder Benutzer nach wie vor auf die deduplizierte Datei verweisen.
  • Nochmals Bezug nehmend auf den Schritt 625, kann in dem Fall, in dem keine anderen Benutzer auf die für den Löschvorgang angeforderte Datei als Masterkopie Bezug nehmen, gesagt werden, dass der Benutzer, der den Löschvorgang anfordert, der einzige Benutzer ist, der mit der deduplizierten Datei verknüpft ist, und der Prozess schaltet zum Schritt 645. Dies kann beispielsweise der Fall sein, wenn ein oder mehrere andere Benutzer ihre Verknüpfungen mit der deduplizierten Datei (z. B. über den Schritt 640) bereits sicher gelöscht haben, so dass der Benutzer, der den Löschvorgang jetzt anfordert, als einziger Benutzer übrig bleibt, der immer noch mit der deduplizierten Datei verknüpft ist.
  • Im Schritt 645 stellt das System zum sicheren Löschen und Deduplizieren fest, ob der Algorithmus zum sicheren Löschen, der von dem Benutzer, welcher den sicheren Löschvorgang (z. B. vom Schritt 610) anfordert, angegeben wurde, starker ist als der Datei-Algorithmus (z. B. der in der Deduplizierungsdatenbank für diese bestimmte Datei angegeben wird). Dies kann auf eine Art und Weise geschehen, die ähnlich der des Schritt 630 ist. Wenn der von dem Benutzer angegebene Algorithmus zum sicheren Löschen starker ist als der Datei-Algorithmus, verwendet das System im Schritt 650 den von dem Benutzer angegebenen Algorithmus zum sicheren Löschen, um die Datei (z. B. aus dem Datenspeicher 90) und alle Verknüpfungen des Benutzers mit der Datei in der Deduplizierungsdatenbank sicher zu löschen (z. B. ähnlich dem Schritt 640). Wenn der Datei-Algorithmus andererseits starker ist als der von dem Benutzer angegebene Algorithmus zum sicheren Löschen, verwendet das System im Schritt 655 den Datei-Algorithmus, um die Datei (z. B. aus dem Datenspeicher 90) und alle Verknüpfungen des Benutzers mit der Datei in der Deduplizierungsdatenbank sicher zu löschen (z. B. ähnlich dem Schritt 640). Auf diese Weise werden die Masterkopie der Datei und die gesamte Datenremanenz sicher gelöscht.
  • In Ausführungsformen könnte ein Dienstanbieter wie zum Beispiel ein Lösungsintegrator anbieten, die hier beschriebenen Prozesse durchzuführen. In diesem Fall kann der Dienstanbieter die Computer-Infrastruktur, die die Prozessschritte der Erfindung für einen oder mehrere Kunden durchführt, erzeugen, verwalten, einsetzen, unterstützen usw. Bei diesen Kunden kann es sich zum Beispiel um jedwedes Unternehmen handeln, das Technologie einsetzt und Dienste bereitstellt oder nutzt. Im Gegenzug kann der Dienstanbieter Zahlungen von dem beziehungsweise den Kunden im Rahmen einer Abonnement- und/oder Gebührenvereinbarung erhalten und/oder der Dienstanbieter kann Zahlungen aus dem Verkauf von Werbeinhalten an einen oder mehrere Dritte erhalten.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung erfolgten zum Zweck der Veranschaulichung, erheben jedoch keinen Anspruch auf Vollständigkeit und sind auch nicht als auf die offengelegten Ausführungsformen beschränkt zu verstehen. Viele Ab- und Veränderungen sind für den Fachmann erkennbar, ohne vom Umfang der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt angetroffener Technologien am besten zu erklären oder um anderen Fachleuten das Verständnis der hier offengelegten Ausführungsformen zu ermöglichen. Viele Ab- und Veränderungen sind für den Fachmann erkennbar, ohne vom Umfang der Erfindung abzuweichen. Die entsprechenden Strukturen, Materialien, Vorgänge und Gleichwertiges von allen ”means or step plus function elements” in den Ansprüchen, soweit zutreffend, sollen jedwede Struktur, jedwedes Material oder jedweden Vorgang zur Ausführung der Funktion in Kombination mit anderen beanspruchten Elementen, die im Einzelnen beansprucht werden, beinhalten.

Claims (20)

  1. Verfahren zum sicheren Löschen von deduplizierten Dateien in einer Umgebung mit mehreren Mandanten, die in einer Computer-Infrastruktur realisiert wird, welche eine Kombination aus Hardware und Software aufweist, wobei das Verfahren aufweist: Empfangen einer Anforderung für das sichere Löschen einer Datei von einer lokalen Datenverarbeitungseinheit; Feststellen, dass die Datei dedupliziert ist; Feststellen eines von Folgendem: auf die Datei wird von mindestens einer anderen Datei Bezug genommen oder auf die Datei wird von keiner anderen Datei Bezug genommen; wenn auf die Datei von mindestens einer anderen Datei Bezug genommen wird, sicheres Löschen von Verknüpfungen, welche die Datei der lokalen Datenverarbeitungseinheit zuordnen, ohne die Datei zu löschen; und wenn keine andere Datei auf die Datei Bezug nimmt, sicheres Löschen der Datei.
  2. Verfahren nach Anspruch 1, wobei die Anforderung für das sichere Löschen der Datei einen von einem Benutzer angegebenen Algorithmus zum sicheren Löschen enthält.
  3. Verfahren nach Anspruch 2, das des Weiteren ein Vergleichen des von einem Benutzer angegebenen Algorithmus zum sicheren Löschen mit einem Algorithmus zum sicheren Löschen, der zu der Datei gehört, aufweist.
  4. Verfahren nach Anspruch 3, wobei das Vergleichen des Weiteren ein Vergleichen einer Stärke des von einem Benutzer angegebenen Algorithmus zum sicheren Löschen mit einer Stärke des Algorithmus zum sicheren Löschen, der zu der Datei gehört, aufweist.
  5. Verfahren nach Anspruch 4, wobei das sichere Löschen der Verknüpfungen oder das sichere Löschen der Datei unter Verwendung eines stärkeren Algorithmus der beiden Algorithmen, des von einem Benutzer angegebenen Algorithmus zum sicheren Löschen und des Algorithmus zum sicheren Löschen, der zu der Datei gehört, auf der Grundlage des Vergleichs durchgeführt wird.
  6. Verfahren nach Anspruch 5, wobei Daten, welche den Algorithmus zum sicheren Löschen, der zu der Datei gehört, angeben, in einer Deduplizierungsdatenbank als ein zu der Datei gehörendes Feld gespeichert werden.
  7. Verfahren nach Anspruch 6, wobei: auf die Datei von mindestens einer anderen Datei Bezug genommen wird, und das sichere Löschen der Verknüpfungen das Löschen der Verknüpfungen aus der Deduplizierungsdatenbank aufweist.
  8. Verfahren nach Anspruch 1, wobei die Datei von einem Dienstanbieter in einer von der lokalen Datenverarbeitungseinheit entfernten Cloud-Umgebung gespeichert wird.
  9. Verfahren nach Anspruch 1, das des Weiteren die Darstellung einer Schnittstelle für einen Benutzer der lokalen Datenverarbeitungseinheit aufweist, welche so konfiguriert ist, dass sie dem Benutzer ermöglicht, wahlweise eine Deduplizierung der Datei zu verhindern oder zuzulassen.
  10. Verfahren nach Anspruch 1, wobei ein Dienstanbieter die Computer-Infrastruktur entweder erzeugt, verwaltet, nutzt oder unterstützt.
  11. Verfahren nach Anspruch 1, wobei Schritte nach Anspruch 1 von dem Dienstanbieter auf der Grundlage von Abonnements, Werbung und/oder Gebühren durchgeführt werden.
  12. In Hardware realisiertes System zum sicheren Löschen von deduplizierten Dateien in einer Umgebung mit mehreren Mandanten, das eine Computer-Infrastruktur ausweist, die dazu dient: von einem Benutzer eine Anforderung für das sichere Löschen einer Datei zu empfangen; festzustellen, dass es sich bei der Datei um eine deduplizierte Datei handelt, indem eine Deduplizierungsdatenbank ausgewertet wird; eines von Folgendem festzustellen: auf die deduplizierte Datei wird von mindestens einer anderen Datei Bezug genommen oder auf die deduplizierte Datei wird von keiner anderen Datei Bezug genommen; wenn auf die deduplizierte Datei von mindestens einer anderen Datei Bezug genommen wird, Verknüpfungen, welche die deduplizierte Datei dem Benutzer zuordnen, sicher zu löschen, ohne die deduplizierte Datei zu löschen; und wenn keine andere Datei auf die Datei Bezug nimmt, die deduplizierte Datei sicher zu löschen.
  13. System nach Anspruch 12, wobei die Anforderung für das sichere Löschen der Datei einen von einem Benutzer angegebenen Algorithmus zum sicheren Löschen enthält; und des Weiteren ein Vergleichen einer Stärke des von einem Benutzer angegebenen Algorithmus zum sicheren Löschen mit einem Algorithmus zum sicheren Löschen, der in der Deduplizierungsdatenbank als zu der deduplizierten Datei gehörend angegeben ist.
  14. System nach Anspruch 13, wobei das sichere Löschen der Verknüpfungen oder das sichere Löschen der deduplizierten Datei unter Verwendung eines stärkeren Algorithmus der beiden Algorithmen, des von dem Benutzer angegebenen Algorithmus zum sicheren Löschen und des Algorithmus zum sicheren Löschen, der in der Deduplizierungsdatenbank als zu der deduplizierten Datei gehörend angegeben wird, auf der Grundlage des Vergleichs durchgeführt wird.
  15. System nach Anspruch 14, des Weiteren aufweisend: Speichern einer sortierten Liste einer Vielzahl von Algorithmen zum sicheren Löschen in der Deduplizierungsdatenbank; und Verwenden der sortierten Liste, um den Vergleich durchzuführen.
  16. System nach Anspruch 14, des Weiteren aufweisend: Feststellen, dass auf die deduplizierte Datei von mindestens einer anderen Datei Bezug genommen wird; Feststellen, dass der von dem Benutzer angegebene Algorithmus zum sicheren Löschen starker ist als der Algorithmus zum sicheren Löschen, der in der Deduplizierungsdatenbank als zu der deduplizierten Datei gehörend angegeben ist; und Überschreiben des Algorithmus zum sicheren Löschen, der in der Deduplizierungsdatenbank als zu der deduplizierten Datei gehörend angegeben ist, mit dem von dem Benutzer angegebenen Algorithmus zum sicheren Löschen.
  17. System nach Anspruch 12, wobei der Benutzer einer lokalen Datenverarbeitungseinheit zugeordnet ist und die Datei in einer Cloud-Umgebung an einem von der lokalen Datenverarbeitungseinheit entfernten Ort gespeichert wird.
  18. Computer-Programmprodukt zum sicheren Löschen von deduplizierten Dateien in einer Umgebung mit mehreren Mandanten und das ein von einem Computer lesbares, physisch greifbares Speichermedium aufweist, wobei lesbarer Programmcode in dem physisch greifbaren Speichermedium enthalten ist, wobei das Computer-Programmprodukt mindestens eine Komponente enthält, die dazu dient: eine erste Anforderung für das sichere Löschen einer deduplizierten Datei zu empfangen, wobei die erste Anforderung von einem ersten Benutzer empfangen wird, und wobei der erste Benutzer und ein zweiter Benutzer über Daten in einer Deduplizierungsdatenbank mit der deduplizierten Datei verknüpft sind; auf der Grundlage der ersten Anforderung Daten aus der Deduplizierungsdatenbank, die den ersten Benutzer mit der deduplizierten Datei verknüpft, sicher zu löschen, ohne die deduplizierte Datei zu löschen; eine zweite Anforderung für das sichere Löschen der deduplizierten Datei zu empfangen, wobei die zweite Anforderung von dem zweiten Benutzer empfangen wird; und die deduplizierte Datei auf der Grundlage der zweiten Anforderung sicher zu löschen.
  19. Computer-Programmprodukt nach Anspruch 18, wobei: die erste Anforderung einen von einem ersten Benutzer angegebenen Algorithmus zum sicheren Löschen enthält; die zweite Anforderung einen von einem zweiten Benutzer angegebenen Algorithmus zum sicheren Löschen enthält; die zweite Anforderung nach der ersten Anforderung auftritt; und die Daten-Deduplizierungsdatenbank ein Feld enthält, das zu der deduplizierten Datei gehört und einen anderen Algorithmus zum sicheren Löschen angibt.
  20. Computer-Programmprodukt nach Anspruch 19, wobei die mindestens eine Komponente des Weiteren dazu dient: die jeweilige relative Stärke des von dem ersten Benutzer angegebenen Algorithmus zum sicheren Löschen und des anderen Algorithmus zum sicheren Löschen zu vergleichen und auf der Grundlage des Vergleichs die Daten aus der Deduplizierungsdatenbank, die den ersten Benutzer mit der deduplizierten Datei verknüpfen, unter Verwendung eines stärkeren Algorithmus der beiden Algorithmen, des von dem ersten Benutzer angegebenen Algorithmus zum sicheren Löschen und des anderen Algorithmus zum sicheren Löschen, sicher zu löschen; und die jeweilige relative Stärke des von dem zweiten Benutzer angegebenen Algorithmus zum sicheren Löschen und des anderen Algorithmus zum sicheren Löschen zu vergleichen und auf der Grundlage des Vergleichs die deduplizierte Datei unter Verwendung eines stärkeren Algorithmus der beiden Algorithmen, des von dem zweiten Benutzer angegebenen Algorithmus zum sicheren Löschen und des anderen Algorithmus zum sicheren Löschen, sicher zu löschen.
DE112012005032.0T 2011-12-02 2012-11-16 Entfernen der Datenremanenz in deduplizierten Speicher-Clouds Granted DE112012005032T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/309,977 US8682868B2 (en) 2011-12-02 2011-12-02 Removal of data remanence in deduplicated storage clouds
US13/309,977 2011-12-02
PCT/IB2012/056482 WO2013080084A1 (en) 2011-12-02 2012-11-16 Removal of data remanence in deduplicated storage clouds

Publications (1)

Publication Number Publication Date
DE112012005032T5 true DE112012005032T5 (de) 2014-08-14

Family

ID=48524757

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012005032.0T Granted DE112012005032T5 (de) 2011-12-02 2012-11-16 Entfernen der Datenremanenz in deduplizierten Speicher-Clouds

Country Status (4)

Country Link
US (1) US8682868B2 (de)
CN (1) CN103988199A (de)
DE (1) DE112012005032T5 (de)
WO (1) WO2013080084A1 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495296B2 (en) * 2010-05-18 2013-07-23 International Business Machines Corporation System and method for optimizing data remanence over hubrid disk clusters using various storage technologies
CN103020174B (zh) * 2012-11-28 2016-01-06 华为技术有限公司 相似性分析方法、装置及系统
US9116849B2 (en) * 2013-03-13 2015-08-25 Intel Corporation Community-based de-duplication for encrypted data
US11100051B1 (en) * 2013-03-15 2021-08-24 Comcast Cable Communications, Llc Management of content
US9990382B1 (en) * 2013-04-10 2018-06-05 Amazon Technologies, Inc. Secure erasure and repair of non-mechanical storage media
US9170996B2 (en) * 2013-05-16 2015-10-27 Bank Of America Corporation Content interchange bus
US9384234B2 (en) 2013-06-13 2016-07-05 Bank Of America Corporation Identification of load utility
US9384223B2 (en) 2013-06-13 2016-07-05 Bank Of America Corporation Automation of MLOAD and TPUMP conversion
US9519510B2 (en) * 2014-03-31 2016-12-13 Amazon Technologies, Inc. Atomic writes for multiple-extent operations
US10320757B1 (en) * 2014-06-06 2019-06-11 Amazon Technologies, Inc. Bounded access to critical data
US10162832B1 (en) * 2014-09-25 2018-12-25 Imanis Data, Inc. Data aware deduplication
CN104361068B (zh) * 2014-11-06 2017-06-16 华中科技大学 一种数据去重过程中的并行分块方法与系统
CN106557500B (zh) * 2015-09-28 2020-08-25 北京金山安全软件有限公司 一种卸载残留文件的清理方法、装置及终端
US10209907B2 (en) * 2016-06-14 2019-02-19 Microsoft Technology Licensing, Llc Secure removal of sensitive data
US10719408B2 (en) 2016-08-03 2020-07-21 Microsoft Technology Licensing, Llc Retain locally deleted content at storage service
US10614042B2 (en) 2016-08-08 2020-04-07 Microsoft Technology Licensing, Llc Detection of bulk operations associated with remotely stored content
US10616210B2 (en) 2016-08-19 2020-04-07 Microsoft Technology Licensing, Llc Protection feature for data stored at storage service
US10372631B2 (en) * 2017-02-09 2019-08-06 International Business Machines Corporation Sanitizing memory of cloud systems
US10289335B2 (en) * 2017-09-12 2019-05-14 International Business Machines Corporation Tape drive library integrated memory deduplication
US10372681B2 (en) 2017-09-12 2019-08-06 International Business Machines Corporation Tape drive memory deduplication
US10831388B2 (en) 2019-02-15 2020-11-10 International Business Machines Corporation Selective data destruction via a sanitizing wipe command
US11030019B2 (en) * 2019-04-09 2021-06-08 International Business Machines Corporation Deletion of events based on a plurality of factors in a connected car computing environment
US11227591B1 (en) 2019-06-04 2022-01-18 Amazon Technologies, Inc. Controlled access to data
US11687492B2 (en) * 2021-06-21 2023-06-27 International Business Machines Corporation Selective data deduplication in a multitenant environment

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPQ217399A0 (en) * 1999-08-12 1999-09-02 Honeywell Limited Realtime digital video server
US7272610B2 (en) * 2001-11-02 2007-09-18 Medrecon, Ltd. Knowledge management system
CN100565512C (zh) 2006-07-10 2009-12-02 腾讯科技(深圳)有限公司 消除文件存储系统中冗余文件的系统及方法
US8140599B1 (en) * 2007-12-07 2012-03-20 Emc Corporation Garbage collection for merged collections
US8190835B1 (en) * 2007-12-31 2012-05-29 Emc Corporation Global de-duplication in shared architectures
US7979670B2 (en) * 2008-01-24 2011-07-12 Quantum Corporation Methods and systems for vectored data de-duplication
US8495032B2 (en) 2008-10-01 2013-07-23 International Business Machines Corporation Policy based sharing of redundant data across storage pools in a deduplicating system
US8386443B2 (en) 2008-10-06 2013-02-26 Dell Products L.P. Representing and storing an optimized file system using a system of symlinks, hardlinks and file archives
CN102317938B (zh) * 2008-12-22 2014-07-30 谷歌公司 用于复制内容可寻址存储集群的异步分布式去重
US20100306175A1 (en) 2009-01-28 2010-12-02 Digitiliti, Inc. File policy enforcement
US9275067B2 (en) 2009-03-16 2016-03-01 International Busines Machines Corporation Apparatus and method to sequentially deduplicate data
CN101582076A (zh) 2009-06-24 2009-11-18 浪潮电子信息产业股份有限公司 一种基于数据库的重复数据删除方法
JP5061166B2 (ja) * 2009-09-04 2012-10-31 Kii株式会社 データ同期システムおよびデータ同期方法
US9323689B2 (en) * 2010-04-30 2016-04-26 Netapp, Inc. I/O bandwidth reduction using storage-level common page information
US20110282743A1 (en) * 2010-05-17 2011-11-17 BlingoBlango, Inc. Associative online advertisement
US20120011101A1 (en) * 2010-07-12 2012-01-12 Computer Associates Think, Inc. Integrating client and server deduplication systems
US8462781B2 (en) * 2011-04-06 2013-06-11 Anue Systems, Inc. Systems and methods for in-line removal of duplicate network packets
US8706703B2 (en) * 2011-06-27 2014-04-22 International Business Machines Corporation Efficient file system object-based deduplication

Also Published As

Publication number Publication date
US20130144845A1 (en) 2013-06-06
WO2013080084A1 (en) 2013-06-06
CN103988199A (zh) 2014-08-13
US8682868B2 (en) 2014-03-25

Similar Documents

Publication Publication Date Title
DE112012005032T5 (de) Entfernen der Datenremanenz in deduplizierten Speicher-Clouds
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE112016003120B4 (de) Umleiten einer Kopie beim Schreiben
DE102013204186B4 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE112012003505T5 (de) Automatisierte Auswahl von Funktionen zum Verringern der Speicherkapazität auf der Grundlage von Leistungsanforderungen
DE112019000321T5 (de) Transaktionsoperationen in verteilten Multi-Master-Datenverwaltungssystemen
DE112015001977T5 (de) Synchronisieren von Aktualisierungen von Statusanzeigern in einer Datenverarbeitungsumgebung
DE112013001308T5 (de) Verwalten von mandantenspezifischen Datensätzen in einer mandantenfähigen Umgebung
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
DE112012005275T5 (de) Datenauswahl zur Sicherung von Datenspeichern
DE112013004805T5 (de) Unterstützen eines koordinierten Zugriffs auf einen gemeinsam genutzten Speicher eines Dateisystems unter Verwendung einer automatischen Ausrichtung eines Protokolls für einen parallelen Dateizugriff und einer Metadatenverwaltung
DE112017005588T5 (de) Speichern und abrufen von eingeschränkten datensätzen in und aus einem cloud-netzwerk mit nichteingeschränkten datensätzen
DE112019001433T5 (de) Datenanonymisierung
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112018004008T5 (de) Auf dateisysteminhalten beruhende sicherheit
DE112017005022T5 (de) Umladen der Bandverarbeitung auf Objektspeicher
DE102021123135A1 (de) Leistungs- und upgrade-verwaltung für anlagegüter mit hilfe von digitalen zwillingen
DE112018002955T5 (de) Kognitive datei- und objektverwaltung für verteilte speicherumgebungen
DE102013206354A1 (de) Adaptive Bewertung der Objektrelevanz auf der Grundlage dynamischer Benutzereigenschaften
DE112017005772T5 (de) Zeitpunktgesteuerte sicherungen über einen speicher-controller in eine objektspeicher-cloud
DE112019000402T5 (de) Chronologisch geordnetes out-of-place-aktualisierungs-schlüssel-wert-speichersystem
DE102014116744A1 (de) Management von Informationstechnologieressourcen
DE102021130358A1 (de) E/a-operationen in log-strukturierten arrays
DE112019002052T5 (de) Datenschutzsensibilisierung bei der bereitstellung von arbeitslasten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER, PATENTANWA, DE

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017000000

Ipc: G06F0017300000

R082 Change of representative

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000

R084 Declaration of willingness to licence
R016 Response to examination communication
R018 Grant decision by examination section/examining division