DE112012001162T5 - Defragmentierung von Datenspeicherpools - Google Patents

Defragmentierung von Datenspeicherpools Download PDF

Info

Publication number
DE112012001162T5
DE112012001162T5 DE112012001162T DE112012001162T DE112012001162T5 DE 112012001162 T5 DE112012001162 T5 DE 112012001162T5 DE 112012001162 T DE112012001162 T DE 112012001162T DE 112012001162 T DE112012001162 T DE 112012001162T DE 112012001162 T5 DE112012001162 T5 DE 112012001162T5
Authority
DE
Germany
Prior art keywords
pool
data
free space
volumes
threshold
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.)
Ceased
Application number
DE112012001162T
Other languages
English (en)
Inventor
Max Douglas Smith
David Charles Reed
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 DE112012001162T5 publication Critical patent/DE112012001162T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

In einem computerimplementierten Datenspeichersystem, das mindestens eine Speichersteuerung und einen Datenspeicher aufweist, in dem Daten in Form von Datenträgern gespeichert sind, hat mindestens eine Vielzahl von Datenträgern zumindest einigen freien Speicherplatz, und eine Gruppierung einer Vielzahl von Datenträgern weist einen Pool auf. In Reaktion auf eine Defragmentierungsanforderung startet die Speichersteuerung eine Datenmigration aus einem Pool, um zusätzlichen freien Speicherplatz zu erzeugen. Im Anschluss an die Migration von Daten wird die Fragmentierung der Daten des Pools berechnet, und die Menge von vorhandenem freiem Speicherplatz des Pools wird ermittelt. Die Menge von vorhandenem freiem Speicherplatz wird mit einem Schwellenwert für freien Speicherplatz verglichen, wobei der Schwellenwert für freien Speicherplatz mit der berechneten Fragmentierung in Beziehung steht. Wenn der Vergleich angibt, dass die Menge von freiem Speicherplatz unter dem Schwellenwert liegt, werden Überlaufdatenträger zu dem Pool hinzugefügt; und andernfalls wird der Pool unverändert beibehalten, ohne Überlaufdatenträger hinzuzufügen. Danach wird die Defragmentierung des Pools gestartet.

Description

  • GEBIET DER ERFINDUNG
  • Diese Erfindung betrifft computerimplementierten Datenspeicher und insbesondere die Defragmentierung von Daten in Bezug auf einen derartigen Datenspeicher.
  • HINTERGRUND DER ERFINDUNG
  • Das Aktualisieren eines Datenspeichers auf seriellen Einheiten eines Datenspeichersystems, für das Plattenspeicher- und RAID-(Redundant Array of Independent Disks)Systeme zwei Beispiele sind, führt typischerweise dazu, dass ein als Fragmentierung bekanntes Phänomen auftritt. Wenn zum Beispiel eine Datei wie ein Dataset erstmals erstellt wird, veranlasst das computerimplementierte System, dass die Datei einem zusammenhängenden Bereich zugeordnet wird, wie beispielsweise einer Serie von Spuren oder Zylindern auf dem Platten- oder RAID-System, sofern es möglich ist, den zusammenhängenden Bereich zu erhalten. Wenn der Benutzer jedoch Daten zu Daten einer ersten Datei hinzufügt oder sie aktualisiert, wird für die Hinzufügung oder Aktualisierung zusätzlicher Speicherplatz an einem weiteren physischen Speicherort auf der Platte zugeordnet und der veraltete Teil der Datei kann gelöscht werden, was zu einer Fragmentierung der Daten sowohl der ursprünglichen Datei aufgrund der Löschung als auch der hinzugefügten oder aktualisierten Daten aufgrund der Platzierung der Daten führt.
  • Je mehr Daten und Dateien hinzugefügt, gelöscht und geändert werden, desto mehr nimmt die Fragmentierung im Laufe der Zeit zu. Daher wurden Defragmentierungsalgorithmen entwickelt, um die fragmentierten Daten zu analysieren und Daten so zu verschieben, dass Abschnitte von Daten zum Reorganisieren der Daten in gelöschten Bereichen platziert werden, wodurch die Daten zusammenhängender werden und in der richtigen Abfolge stehen. Zu einigen der zahlreichen Beispiele von Defragmentierungsalgorithmen zählen „Real Time Defrag” von Dino Software, „Compaktor” von Computer Associates und „DFDSS Defrag” von International Business Machines Corp.
  • Hierin wird der Begriff „freier Speicherplatz” als fachtechnischer Begriff für Speicherplatz bezeichnet, dessen Daten gelöscht wurden oder für hinzugefügten Speicherplatz ohne Daten, wodurch der Platz „frei” und für die Verwendung zum Speichern von Daten verfügbar gemacht wird.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Verfahren, Datenspeichersysteme und Computerprogrammprodukte werden bereitgestellt, um auf Anforderungen zur Defragmentierung von Daten eines Datenspeichersystems zu reagieren.
  • In einer Ausführungsform wird in einem computerimplementierten Datenspeichersystem, das mindestens eine Speichersteuerung und Datenspeicher aufweist, in dem Daten in Form von Datenträgern gespeichert sind, wobei mindestens eine Vielzahl von Datenträgern zumindest einigen freien Speicherplatz hat und eine Gruppierung einer Vielzahl von Datenträgern einen Pool aufweist, Folgendes ausgeführt:
    Starten der Migration von Daten aus einem Pool, um weiteren freien Speicherplatz zu erzeugen;
    im Anschluss an die Migration von Daten Berechnen der Fragmentierung von Daten des Pools;
    Ermitteln der Menge von vorhandenem freiem Speicherplatz des Pools;
    Vergleichen der Menge von vorhandenem freiem Speicherplatz mit einem Schwellenwert für freien Speicherplatz, wobei der Schwellenwert für freien Speicherplatz mit der berechneten Fragmentierung in Beziehung steht;
    wenn der Vergleich angibt, dass die Menge von freiem Speicherplatz unter dem Schwellenwert liegt, Hinzufügen von Überlaufdatenträgern zu dem Pool; und
    andernfalls unverändertes Beibehalten des Pools, ohne Überlaufdatenträger hinzuzufügen; und
    Starten der Defragmentierung des Pools.
  • In einer weiteren Ausführungsform werden die Überlaufdatenträger, sofern vorhanden, zusätzlich als temporäre Datenträger identifiziert, und im Anschluss an die Defragmentierung des Pools werden die Überlaufdatenträger aus dem Pool entfernt.
  • In noch einer weiteren Ausführungsform, in welcher der Schwellenwert für freien Speicherplatz einen Soll-Schwellenwert aufweist, korrigiert die berechnete Fragmentierung den Schwellenwert für freien Speicherplatz so, dass der Schwellenwert für freien Speicherplatz entweder erhöht oder verringert wird.
  • In einer weiteren Ausführungsform weist die Korrektur einen Wertebereich auf.
  • In noch einer weiteren Ausführungsform wird der Wertebereich so korrigiert, dass er in Bezug auf einen Index der berechneten Fragmentierung zwischen den Werten liegt.
  • In einer weiteren Ausführungsform wird der Schwellenwert für freien Speicherplatz (T) gemäß einer Formel festgelegt: (T) = (Gesamtspeicherkapazität des Pools) × (Soll-Schwellenwert) × {Bereich von 0,5 bis 1,5} wobei der Wert innerhalb des Bereichs auf einem Index der berechneten Fragmentierung beruht.
  • In einer weiteren Ausführungsform ist der Index der berechneten Fragmentierung ein Wert von 0 bis 1,0, der am Ende des Bereichs hinzugefügt wird.
  • In noch einer weiteren Ausführungsform ist die berechnete Fragmentierung ein Verhältnis einer geschätzten Anzahl von Fragmenten zu der Datenspeicherkapazität des Pools.
  • In einer weiteren Ausführungsform weisen die Daten Datenträger mit einer Vielzahl von Datasets auf, wobei die Datasets jeweils mindestens einen Datenbereich aufweisen, und wobei die geschätzte Anzahl von Fragmenten aus der Anzahl von Datenbereichen des Pools abzüglich der Anzahl von Datasets des Pools ermittelt wird.
  • Für ein umfassenderes Verständnis der vorliegenden Erfindung sollte auf die folgende ausführliche Beschreibung in Verbindung mit den begleitenden Zeichnungen Bezug genommen werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Übersichtsblockschaubild, das eine Ausführungsform eines computerimplementierten Systems zeigt, das aus verschiedenen Typen von Einheiten zur Datenverarbeitung und Datenspeicherung gebildet wird;
  • 2 ist ein Übersichtsblockschaubild, das eine Ausführungsform eines computerimplementierten Systems zum Bereitstellen von Defragmentierung von mindestens einer der Datenspeichereinheiten von 1 zeigt;
  • 3 ist ein Ablaufplan, der ein beispielhaftes Verfahren des Betriebs des Systems von 1 und 2 darstellt;
  • 4 ist eine schematische Veranschaulichung von Datenträgern für Daten in dem System von 1 und 2; und
  • 5 ist eine weitere schematische Veranschaulichung von Datenträgern für Daten in dem System von 1 und 2.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Diese Erfindung wird in bevorzugten Ausführungsformen in der folgenden Beschreibung unter Bezugnahme auf die Figuren beschrieben, in denen gleiche Bezugszahlen für dieselben oder ähnliche Elemente stehen. Obwohl diese Erfindung im Sinne des besten Modus für das Erreichen der Zielsetzungen dieser Erfindung beschrieben wird, ist dem Fachmann klar, dass hinsichtlich dieser Lehren Variationen vorgenommen werden können, ohne vom Gedanken oder Schutzumfang der Erfindung abzuweichen.
  • Unter Bezugnahme auf 1 wird ein Beispiel für ein computerimplementiertes System 100 veranschaulicht. Das System ist eines von vielen computerimplementierten Systemen, die die vorliegende Erfindung umsetzen können, um zeitpunktgesteuerte Kopien von Daten während der Defragmentierung von mindestens einer der Datenspeichereinheiten in dem System bereitzustellen. Die Systemarchitektur 100 wird dargestellt, um die verschiedenen Typen von Datenverarbeitungseinheiten zu zeigen, die aus der hierin offenbarten Vorrichtung und den offenbarten Verfahren Nutzen ziehen können. Die Systemarchitektur 100 wird nur zu Beispielzwecken dargestellt und soll keinesfalls einschränkend sein. Die hierin offenbarte Vorrichtung und die offenbarten Verfahren können auf eine große Vielfalt von verschiedenen Datenverarbeitungseinheiten angewendet werden und sind nicht auf die hierin veranschaulichten beschränkt.
  • Wie gezeigt, enthält die beispielhafte Systemarchitektur 100 einen oder mehrere Computerprozessoren 102, 106, die durch ein Netzwerk 104 miteinander verbunden sind. Das Netzwerk 104 kann zum Beispiel ein lokales Netzwerk (LAN), ein Weitverkehrsnetz (WAN), das Internet, ein Intranet oder dergleichen enthalten. In gewissen Ausführungsformen können zu den Computerprozessoren 102, 106 sowohl Client-Computerprozessoren 102 als auch Server-Computerprozessoren 106 gehören. In dem Beispiel starten die Client-Computer 102 Kommunikationssitzungen, wogegen die Server-Computerprozessoren 106 auf Anforderungen von den Client-Computerprozessoren 102 warten. In gewissen Ausführungsformen können die Computerprozessoren 102 und/oder Server-Prozessoren 106 mit einem oder mehreren internen oder externen Datenspeichersystemen 112 verbunden sein (z. B. mit Festplattenlaufwerken, Solid-State-Laufwerken, Bandlaufwerken, Bibliotheken usw.). Diese Computerprozessoren 102, 106 und direkt angeschlossene Speichersysteme 112 können unter Verwendung von Protokollen wie ATA, SATA, SCSI, SAS, Fibre Channel oder dergleichen Daten austauschen.
  • Die Systemarchitektur 100 kann in gewissen Ausführungsformen hinter den Server-Prozessoren 106 ein Speichernetzwerk 108 enthalten, wie beispielsweise ein Speicherbereichsnetzwerk (SAN) oder ein LAN (z. B. wenn ein über ein Netzwerk angeschlossener Speicher verwendet wird). Dieses Netzwerk 108 kann die Server-Prozessoren 106 mit einem oder mehreren Datenspeichersystemen 110 verbinden, wie z. B. Arrays 110a von Festplattenlaufwerken oder Solid-State-Laufwerken einschließlich RAID-(Redundant Array of Independent Disks)Anordnungen, Bandbibliotheken 110b, einzelnen Festplattenlaufwerken 110c oder Solid-State-Laufwerken 110c, Bandlaufwerken oder Bibliotheken 110d, CD-ROM-Bibliotheken, virtuellen Bandbibliotheken oder dergleichen. Für den Zugriff auf ein Speichersystem 110 kann ein Server-Prozessor 106 über physische Verbindungen Daten von einem oder mehreren Anschlüssen auf dem Server-Prozessor 106 mit einem oder mehreren Anschlüssen auf dem Speichersystem 110 austauschen. Eine Verbindung kann über einen Vermittlungsstelle, eine Struktur, eine Direktverbindung oder dergleichen erfolgen. In gewissen Ausführungsformen können die Server-Prozessoren 106 und Speichersysteme 110 Daten unter Verwendung eines Netzwerkstandards wie Fibre Channel (FC) austauschen.
  • Unter Bezugnahme auf 2 wird eine Ausführungsform eines computerimplementierten Systems 200 zum Bereitstellen von Datenbearbeitung für die Bereitstellung von Defragmentierung für mindestens eine der Datenspeichereinheiten von 1 veranschaulicht. Das computerimplementierte System 200 kann in allen Einheiten oder Systemen von 1 umgesetzt werden, einschließlich einem Client-System 102, einem Server-Prozessor 106, einem Speichersystem 110 und einem angeschlossenen Speicher 112, oder in einem anderen computerimplementierten System, das über das Netzwerk 104 verbunden ist. Wie gezeigt, weist das computerimplementierte System 200 ein oder mehrere Module zum Bereitstellen der Datenbearbeitung auf. Die Module können sich in einem oder mehreren Computerprozessoren und einem oder mehreren zugehörigen, von einem Computer verwendbaren Speichermedium befinden, das einen nichtflüchtigen, von einem Computer verwendbaren Programmcode aufweist, der darin eingebettet ist. Die Details der Computerprozessoren und von einem Computer verwendbaren Speichermedien werden hierin im Folgenden erörtert. Das computerimplementierte System 200 kann Befehle, Informationen und den vom Computer verwendbaren Programmcode empfangen und Befehle, Benachrichtigungen und Informationen für einen oder mehrere Hosts oder Host-Terminals 206 bereitstellen. Diese Module können in eine Speichersteuerung 210 integriert sein oder Anwendungen einer Speichersteuerung 210 enthalten, wobei sie eine eigenständige Einheit aufweisen oder einen Abschnitt des Hosts, Server-Prozessors, Speichersystems oder angeschlossenen Speichers aufweisen.
  • Die Module können ein Modul 220 aufweisen, das mit dem Host-System und der Defragmentierungsanwendung eine Schnittstelle bildet, und ein Modul 230, das mit dem Datenspeicher 240 eine Schnittstelle bildet, der eine oder mehrere Speichereinheiten aufweist, deren Daten durch die Defragmentierungsanwendung defragmentiert werden, und weitere Datenträger aufweist, die keine aktiven Daten haben.
  • Obwohl die Module und andere Elemente gruppiert veranschaulicht sind, können sie auf verschiedene Computerprozessoren und Systeme verteilt sein, wie oben erörtert.
  • In einer Ausführungsform weisen die Daten des Datenspeichers 240 einen oder mehrere Pools von Datenträgern mit einer Vielzahl von Datasets auf, wobei die Datasets jeweils mindestens einen Datenbereich haben.
  • Unter anderem wird durch die Speichersteuerung 210 ein Antwortmodul 250 umgesetzt, das auf Befehle antwortet und über die Schnittstelle 220 Informationen für den Host 206 anfordert und Informationen von diesem empfängt. Ein Datenverwaltungsmodul 260 ruft einen Datenverwaltungsprozess auf, wie z. B. „HSM” von International Business Machines Corp., der Daten aus einem Typ von Datenspeicher in einen anderen verschiebt. Zum Beispiel sucht „HSM” nach Daten, die über längere Zeit nicht geändert wurden, um einen bestimmten Schwellenwert zu erfüllen, und verschiebt sie in eine weniger aktive Ebene des Datenspeichers, beispielsweise aus einer RAID-Anordnung von Festplattenlaufwerken in eine Bandbibliothek.
  • Die Datenverwaltung wird hierin in Bezug auf einen gesamten Datenpool ausgeführt.
  • Ein Modul für freien Speicherplatz 270 legt die Fragmentierung des Pools von Daten fest, ermittelt die Menge von vorhandenem freiem Speicherplatz im Pool und führt verschiedene Aktionen in Bezug auf die Fragmentierung und den freien Speicherplatz aus.
  • Ein Defragmentierungsmodul 280 startet die Defragmentierung, zum Beispiel durch Aufrufen eines Defragmentierungsprozesses wie „Real Time Defrag” von Dino Software, „Compaktor” von Computer Associates und „DFDSS Defrag” von International Business Machines Corp. Das Defragmentierungsmodul kann einem Benutzer gestatten, Optionen in Bezug auf den Defragmentierungsprozess für den Pool auszuwählen. Der Benutzer kann Objekte auswählen, die defragmentiert werden sollen sowie die Platzierung von einigen der durch den Defragmentierungsprozess verschobenen Datenobjekte im Pool.
  • Der Datenspeicher 240 kann, wie oben erörtert, einen oder mehrere Datenspeicherpools mit jeweils einer Vielzahl von Datenträgern aufweisen. Die weiteren Datenträger, die eventuell keine aktiven Daten haben, können in einer Ausführungsform eine Anzahl von „Überlauf”-Datenträgern 290 aufweisen, die Datenträger sind, die keine aktiven Daten haben und zu keinem der Pools gehören.
  • Wie Fachleuten bekannt ist, verwendet der computerimplementierte Datenspeicher Messwerte und Adressierungen, die auf früheren physischen Layouts von Festplattenlaufwerkspeichern wie „Spuren” oder „Zylindern” beruhen, die aber kleiner als der moderne physische Speicher sind. Um große Datenspeichermengen aufnehmen zu können, wurde die Adressierung auf verschiedene Arten erweitert. Ein Beispiel ist in den „z/OS”-Systemen der International Business Machines Corp. als „EAV” bzw. Extendable Addressable Volumes (Datenträger mit erweiterter Adresse) implementiert, das Speicherdatenträger mit einer Größe von mehr als 65.520 Zylindern ermöglichte. In dieser Umgebung wird der Speicherplatz über den ersten 65.520 Zylindern als „zylinderverwalteter Speicherplatz” bezeichnet und ist erweiterter Adressierbereich. Datasets, die zylinderverwalteten Speicherplatz verwenden können, werden als für erweiterte Adressierung in jeder z/OS-Adressierungsmethode berechtigt bezeichnet. Ein EAV-Datenträger hat einen Bereich für kleinere Datasets, der als „spurverwalteter” Bereich bezeichnet wird, und einen Bereich für „Chunk”-(Datenblock) verwaltete Speicherung, der in 21 Zylindereinheiten für größere Datasets reserviert ist.
  • Ein Dataset weist einen oder mehrere Bereiche auf, und ein Dataset kann in einem Datenträger oder einer Vielzahl von Datenträgern vorhanden sein. Umgekehrt haben die Datenträger eine Vielzahl von Datasets, wobei die Datasets mindestens einen Datenbereich haben. Die Kapazität eines Datenträgers wird üblicherweise anhand der Anzahl von Zylindern gemessen, die dem Datenträger zugeordnet sind oder vom Datenträger tatsächlich verwendet werden.
  • Unter Bezugnahme auf 2 und 3 antwortet das Antwortmodul 250 auf das Starten, beispielsweise durch ein Host-System 206, einer Defragmentierungsoperation 300 in Bezug auf einen Pool von Datenträgern des Datenspeichers 240. Wie oben erörtert, ist die Defragmentierung eine Operation oder ein Prozess in Bezug auf eine Datenspeicherebene, die im Lauf der Zeit fragmentierte Daten nimmt und die fragmentierten Daten so analysiert, dass Datenabschnitte zum Reorganisieren der Daten in gelöschten Bereichen platziert werden, damit die Daten zusammenhängender werden und in der richtigen Abfolge stehen. Der Benutzer 206 kann den Pool-Defragmentierungsbefehl über einen JCL-(Job Control Language)Stapeljob oder über einen TSO-(Time Sharing Option)Befehl angeben. In dem Befehl gibt der Benutzer den Namen der Speichergruppe an, die den Pool aufweist, der defragmentiert werden soll. Im Schritt 300 organisiert das Antwortmodul die Operationen des Speichersystems, um die Defragmentierungsoperation aufzunehmen. Dazu kann das Signalisieren des vorzeitigen Abschlusses oder des Aussetzens von Datenspeicheroperationen gehören.
  • Im Schritt 305 ruft das Datenverwaltungsmodul 260 einen Datenverwaltungsprozess wie den oben erörterten „HSM” auf, der Daten sucht, die über längere Zeit nicht geändert wurden, um einen bestimmten Schwellenwert zu erfüllen, und verschiebt sie in eine weniger aktive Ebene des Datenspeichers 240, beispielsweise aus einer RAID-Anordnung von Festplattenlaufwerken, die den Pool von Daten enthalten, in eine Bandbibliothek und aus dem Pool heraus. Das Verschieben von Daten erfolgt üblicherweise auf der Grundlage von Datasets und erschließt freien Speicherplatz innerhalb des Pools von Daten. Freier Speicherplatz wird üblicherweise im VTOV(Datenträgerinhaltsverzeichnis) als gelöschte Daten identifiziert.
  • Wenn der Datenverwaltungsprozess abgeschlossen ist und der Prozess im Schritt 310 zur Defragmentierungsoperation zurückkehrt, wird im Schritt 315 das Modul für freien Speicherplatz 270 angewendet, um die Fragmentierung der Daten des Pools, die defragmentiert werden sollen, zu messen und zu ermitteln.
  • Die Fragmentierung steht in Beziehung zu der Komplexität der Daten, nachdem die Daten während eines Zeitraums aktualisiert und geändert worden sind. Daten können als Datasets mit einem einzigen Bereich beginnen, doch wenn mit der Zeit mehr Daten und Dateien hinzugefügt, gelöscht und geändert werden, besteht das Dataset aus zusätzlichen Bereichen, die physisch verteilt sind.
  • Eine Ausführungsform des Schritts 315 zum Ermitteln der Fragmentierung eines Pools besteht darin, ein Verhältnis einer geschätzten Anzahl von Fragmenten zur Datenspeicherkapazität des Pools zu berechnen.
  • Wenn die Daten Datenträger mit einer Vielzahl von Datasets aufweisen, wobei die Datasets jeweils mindestens einen Datenbereich haben, wird die geschätzte Anzahl von Fragmenten aus der Anzahl von Datenbereichen des Pools abzüglich der Anzahl von Datasets des Pools ermittelt.
  • Die Datenspeicherkapazität des Pools kann die Anzahl von Zylindern sein, die den Pool ausmachen.
  • In einer weiteren Ausführungsform wird die Fragmentierung, auf die eine Defragmentierung eines Datenträgers angewendet werden kann, auf der Grundlage der Bereiche jedes Datenträgers berechnet. Die Fragmentierungsschätzung erfolgt durch die Berechnung der Anzahl von Bereichen und der Größe dieser Bereiche. Die Anzahl von Bereichen dividiert durch die durchschnittliche Größe der Bereiche ergibt einen Fragmentierungsmesswert für jeden Datenträger. Je kleiner die Anzahl von Bereichen und je umfangreicher die Größe der Bereiche ist, desto kleiner ist der Fragmentierungswert für einen Datenträger.
  • Eine Ausführungsform des Schritts 315 besteht darin, die die Berechnungen der Datenträgerfragmentierung poolübergreifend zu kombinieren.
  • Im Schritt 320 wird die Menge von vorhandenem freiem Speicherplatz des Pools ermittelt. Freier Speicherplatz ist Speicherplatz in einem Datenträger, der Daten enthält, die gelöscht worden sind, oder der keine Daten enthält.
  • Ein Tool zum Ermitteln des freien Speicherplatzes und der Fragmentierung ist „LSPACE” von International Business Machines Corp. LSPACE stellt Informationen über Datenträgergröße, freien Speicherplatz auf dem Datenträger, freien Speicherplatz des VTOC und INDEX, Fragmentierungsinformationen wie Anzahl von Bereichen und Datasets usw. bereit. Außerdem werden Informationen über die Größe des spurenverwalteten Speicherplatzes und Statistiken zu freiem Speicherplatz bereitgestellt. Das LSPACE-Makro gibt Statusinformationen (wie beispielsweise LSPACE-Unterfunktion, Rückgabecode und Gründecode) in einer Parameterliste zurück. Optionen wie „EXPMSG” und „XEXPMSG” erstellen erweiterte Meldungsrückgabebereiche, die das LSPACE-Makro benötigt, um die Informationen über freien Speicherplatz und Datenträgerspeicherplatz auf der Grundlage von Datenträgern bereitzustellen. Bei Datenträgern mit zylinderverwaltetem Speicherplatz werden die Informationen über freien Speicherplatz als freier Speicherplatz für den gesamten Datenträger und freier Speicherplatz für den spurenverwalteten Speicherplatz zurückgegeben. Die beiden Sätze von Daten für freien Speicherplatz sind dieselben für einen Datenträger, der keinen zylinderverwalteten Speicherplatz hat. LSPACE kann auch Informationen wie das Format, den Dataset-Steuerblock, die Gesamtanzahl von Bereichen und freien Bereichen oder einen Fragmentierungsindex zurückgeben.
  • Alternativ kann eine Dateizuordnungstabelle (FAT) Anfang und Ende von Zylinderbereichen bereitstellen und enthält Zeiger für freien Speicherplatz, der verwendet werden kann, um den freien Speicherplatz und Informationen über Speicherplatz auf der Grundlage eines Datenträgers bereitzustellen, um sowohl den freien Speicherplatz als auch die Fragmentierung zu ermitteln.
  • Im Schritt 325 ermittelt das Modul für freien Speicherplatz 270 den Schwellenwert für freien Speicherplatz.
  • In einer Ausführungsform weist der Schwellenwert für freien Speicherplatz einen Soll-Schwellenwert auf, und die berechnete Fragmentierung korrigiert den Schwellenwert für freien Speicherplatz so, dass der Schwellenwert für freien Speicherplatz entweder erhöht oder verringert wird.
  • In einer weiteren Ausführungsform weist die Korrektur einen Wertebereich auf.
  • In noch einer weiteren Ausführungsform wird der Wertebereich so korrigiert, dass er in Bezug auf einen Index der berechneten Fragmentierung zwischen den Werten liegt. In einer weiteren Ausführungsform wird der Schwellenwert für freien Speicherplatz (T) gemäß einer Formel festgelegt: (T) = (Gesamtspeicherkapazität des Pools) × (Soll-Schwellenwert) × {Bereich von 0,5 bis 1,5} wobei der Wert innerhalb des Bereichs auf dem Index der berechneten Fragmentierung beruht.
  • Daher ist der Index der berechneten Fragmentierung ein Wert von 0 bis 1,0, der am Ende des Bereichs hinzugefügt wird.
  • Unter Bezugnahme auf 4 und 5 sind zwei verschiedene Layouts für Daten veranschaulicht. Aus Gründen einer einfacheren Darstellung werden die Daten als repräsentative virtuelle Datenträger eines Pools gezeigt, ohne die physische Streuung zu zeigen. Es ist tatsächlich möglich, dass ein Pool Hunderttausende von Datenträgern aufweisen kann.
  • Die Daten von 4 veranschaulichen einen aktiven Typ von Daten, wobei die repräsentativen Datenträger 401 bis 404 und 406 bis 407 100 Datasets und 500 bis 1000 Bereiche aufweisen und jeder eine Kapazität von 10.000 Zylindern hat. Der Datenträger 405 wird als „Leer” gezeigt, was bedeutet, dass dessen Datasets zum Beispiel im VTOC für den Datenträger als gelöscht gekennzeichnet worden sind. Die Quelle des „Leer”-Datenträgers kann die Datenverwaltung des Schritts 260 sein, oder der Datenträger kann ein „Überlauf”-Datenträger sein, was noch erörtert wird.
  • Die Daten von 5 veranschaulichen einen weniger aktiven Typ von Daten, wobei die repräsentativen Datenträger 501 bis 503 und 505 bis 507 100 Datasets und 100 bis 200 Bereiche aufweisen und jeder eine Kapazität von 10.000 Zylindern hat. Der Datenträger 504 wird als „Leer” gezeigt, was bedeutet, dass dessen Datasets zum Beispiel im VTOC für den Datenträger als gelöscht gekennzeichnet worden sind. Die Quelle des „Leer”-Datenträgers kann die Datenverwaltung des Schritts 260 sein, oder der Datenträger kann ein „Überlauf”-Datenträger sein, was noch erörtert wird.
  • Unter Bezugnahme auf 2, 3, 4 und 5 verwendet das Modul für freien Speicherplatz 270 im Schritt 325 die Informationen, die im Schritt 315 zum Festlegen des Schwellenwerts für freien Speicherplatz ermittelt worden sind.
  • In einer Ausführungsform wird der Schwellenwert für freien Speicherplatz vom Benutzer anfänglich als Sollwert eingerichtet oder wird durch eine Standardeinstellung angegeben. Der Sollwert kann einen Wert aufweisen, den der Benutzer aus Erfahrung als den Wert erkennt, der den Anforderungen des Benutzers am besten entspricht, um die Defragmentierung mit dem Typ von Daten auszuführen, die der Benutzer normalerweise defragmentieren muss. Zum Beispiel kann der Sollwert, der zum Ausführen der Defragmentierung benötigt wird, 25% freien Speicherplatz im Pool aufweisen.
  • In einer Ausführungsform wird gemäß den tatsächlichen Daten im Pool eine Korrektur an dem Sollwert vorgenommen. In einer Ausführungsform erfolgt die Korrektur gemäß einem Bereich auf der Grundlage eines Fragmentierungsindexes und ist beispielsweise das 0,5- bis 1,5-fache des Sollwerts. Wenn der Sollwert 25% beträgt, ist der Korrekturbereich (25%) × {0,5 bis 1,5} oder ein Wertbereich von 12,5% bis 37,5%.
  • In einer Ausführungsform beruht die Wertkorrektur für den Sollwert auf einem Index, der mit der geschätzten Fragmentierung in Beziehung steht. Zum Beispiel kann der Index zwischen 0 bis 1,0 liegen und am Ende des Korrekturbereichs hinzugefügt werden. In einer Ausführungsform kann der Index linear oder exponentiell mit der geschätzten Fragmentierung der Daten in Beziehung stehen oder eine andere nichtlineare Beziehung zu der geschätzten Fragmentierung der Daten aufweisen. In einem Beispiel weist die Fragmentierung die Anzahl von Bereichen abzüglich der Anzahl von Datasets auf, um eine geschätzte Anzahl von Fragmenten bereitzustellen, und die Anzahl von Fragmenten wird durch die Kapazität des Pools dividiert. Damit würde der Fragmentierungswert eine kleine Bruchzahl sein.
  • In einer Ausführungsform hat der Schritt 315 zu Veranschaulichungszwecken und nur unter Verwendung der repräsentativen Datenträger von 4 ermittelt, dass für die Datenträger mit Daten 401 bis 404 und 406 bis 407, aus denen der Pool besteht, 600 Datasets mit 4.500 Bereichen vorhanden sind. Im Schritt 315 wurde ebenfalls ermittelt, dass die Kapazität des Pools 70.000 Zylinder beträgt, wenn der „Leer”-Datenträger 405 durch den Datenverwaltungsschritt 305 geleert wurde.
  • Unter Verwendung der oben genannten beispielhaften Fragmentierungsermittlung gibt die Anzahl von Bereichen (4.500) abzüglich der Anzahl von Datasets (600) eine geschätzte Anzahl von Fragmentierungen (3.900) an, und das Dividieren des Ergebnisses durch die Kapazität des Pools (70.000) ergibt einen Fragmentierungswert von (0,0557).
  • In einer Ausführungsform hat der Schritt 315 zu Veranschaulichungszwecken und nur unter Verwendung der repräsentativen Datenträger von 5 ermittelt, dass für die Datenträger mit Daten 501 bis 503 und 505 bis 507, aus denen der Pool besteht, 250 Datasets mit 900 Bereichen vorhanden sind. Im Schritt 315 wurde ebenfalls ermittelt, dass die Kapazität des Pools 60.000 Zylinder beträgt, wenn der „Leer”-Datenträger 504 nicht vorhanden ist.
  • Unter Verwendung der oben genannten beispielhaften Fragmentierungsermittlung gibt die Anzahl von Bereichen (900) abzüglich der Anzahl von Datasets (250) eine geschätzte Anzahl von Fragmentierungen (650) an, und das Dividieren des Ergebnisses durch die Kapazität des Pools (60.000) ergibt einen Fragmentierungswert von (0,0011).
  • Wie oben erörtert, kann der Index linear oder exponentiell mit der geschätzten Fragmentierung der Daten in Beziehung stehen oder eine andere nichtlineare Beziehung zu der geschätzten Fragmentierung der Daten aufweisen. In einem Beispiel steht der Index in linearer Beziehung zu der geschätzten Fragmentierung der Daten und hat einen Bereich von „0”, wenn die Fragmentierung „0,0000” aufweist, und von „1”, wenn die Fragmentierung „0,1000” aufweist.
  • Unter Verwendung der vorgenannten Beispiele würde der Index (0,56) für die Daten des Pools von 4 und (0,01) für die Daten des Pools von 5 aufweisen.
  • In einer Ausführungsform wird der Indexwert zum Ende des Bereichs hinzugefügt und weist (0,56) auf, die zu (0,5) für die Daten des Pools von 4 hinzugefügt werden, was (1,06) ergibt, und weist (0,01) auf, die zu (0,5) für die Daten des Pools von 5 hinzugefügtwerden, was (0,51) ergibt.
  • Die Formel zum Ermitteln des Indexwerts beruht auf der geschätzten Fragmentierung der Daten des Pools und kann sich von der oben angegebenen unterscheiden.
  • In einer Ausführungsform wird der Schwellenwert für freien Speicherplatz (T) gemäß einer Formel festgelegt: (T) = (Gesamtspeicherkapazität des Pools) × (Soll-Schwellenwert) × {Bereich von 0,5 bis 1,5} wobei der Wert innerhalb des Bereichs auf einem Index der berechneten Fragmentierung beruht.
  • Die Verwendung dieser Werte zum Ermitteln des Schwellenwerts für freien Speicherplatz weist Multiplizieren des Indexwerts mit dem Soll-Schwellenwert und Multiplizieren des sich daraus ergebenden Prozentsatzes mit der Kapazität des Pools auf. Für die Daten des Pools von 4 weist die Berechnung (70.000 Zylinder) × (25 Prozent) × (1,06) für einen Schwellenwert (T) von (18.550 Zylindern) auf. Für die Daten des Pools von 5 weist die Berechnung (60.000 Zylinder) × (25 Prozent) × (0,51) für einen Schwellenwert (T) von (7.650 Zylindern) auf.
  • Die für den Index zu verwendende Maßeinheit zum Erzeugen des Schwellenwerts (T) von Schritt 325 kann sich von der obigen unterscheiden, wobei der Schwellenwert (T) eine Maßeinheit zeigt, die mit der Menge von vorhandenem freien Speicherplatz verglichen werden kann, der im Schritt 320 ermittelt wird.
  • Im Schritt 330 wird der im Schritt 320 ermittelte vorhandene freie Speicherplatz mit dem im Schritt 325 ermittelten Schwellenwert verglichen. Im Schritt 335 nutzt das Modul für freien Speicherplatz 270 diesen Vergleich, um zu ermitteln, ob „Überlauf”-Datenträger hinzugefügt oder die Defragmentierung mit dem vorhandenen freien Speicherplatz angeordnet werden sollen. Wenn der im Schritt 320 ermittelte vorhandene freie Speicherplatz für den Pool kleiner als der Schwellenwert ist, werden im Schritt 340 „Überlauf”-Datenträger hinzugefügt. Die Anzahl der in einer Ausführungsform hinzugefügten Überlaufdatenträger ist die Anzahl, die erforderlich ist, damit der Schwellenwert überschritten wird.
  • Wenn zum Beispiel der Pool von 5 mit einem Schwellenwert von (7.650 Zylindern) verwendet wird, wenn der im Schritt 320 ermittelte freie Speicherplatz geringer als der Schwellenwert ist, muss nur ein „Überlauf”-Datenträger 504 von den „Überlauf”-Datenträgern 290 zu dem Pool hinzugefügt werden, wobei der hinzugefügte „Überlauf”-Datenträger 10.000 Zylinder bereitstellt. Als Alternative können die „Überlauf”-Datenträger aus einem Überlauf-Pool von Datenträgern kommen.
  • Sobald der freie Speicherplatz, entweder aus dem vorhandenen freien Speicherplatz oder aus der Kombination des vorhandenen freien Speicherplatzes mit dem bzw. den hinzugefügten „Überlauf”-Datenträgern, den Schwellenwert überschreitet, fährt der Prozess mit Schritt 350 des Moduls 280 fort. Wenn ein bzw. mehrere „Überlauf”-Datenträger verwendet werden, wird dieselbe Anzahl von vorhandenen Datenträgern als Datenträger gekennzeichnet, die während des Defragmentierungsprozesses geleert werden müssen, so dass sie aus dem Pool entfernt werden können, wenn der Defragmentierungsprozess beendet wird. Die Markierung kann einen Hinweis im Datenträgerinhaltsverzeichnis aufweisen, dass der Inhalt eines Datenträgers entfernt werden muss.
  • Das Defragmentierungsmodul 280 startet die Defragmentierung, indem zum Beispiel ein Defragmentierungsprozess aufgerufen wird. Einige Beispiele sind „Real Time Defrag” von Dino Software, „Compaktor” von Computer Associates und „DFDSS Defrag” von International Business Machines Corp. In einer Ausführungsform gestattet das Defragmentierungsmodul dem Benutzer außerdem, Optionen in Bezug auf den Defragmentierungsprozess für den Pool auszuwählen. Zu den Optionen zählt die Auswahl von Objekten, die defragmentiert werden sowie die Platzierung von einigen der durch den Defragmentierungsprozess verschobenen Datenobjekte im Pool.
  • Die Auswahl von Optionen und Parametern kann vom Benutzer empfangen und durch das Antwortmodul 250 weitergeleitet werden.
  • Sofern eingerichtet, gibt eine „Reduce_Multi”-Option in einer Ausführungsform an, dass Datasets, die sich aktuell auf mehreren Datenträgern befinden, zu so wenigen Datenträgern wie möglich zugeordnet werden sollen. Gründe für eine Auswahl dieser Option können einfachere Sicherungen und weniger Serialisierungsbedingungen während einiger Operationen sein. Da einheitenübergreifende Datasets aus Leistungsgründen absichtlich eingerichtet werden, würde diese Option nicht für einheitenübergreifende Datasets gelten. Da nicht einheitenübergreifende Datasets auf mehreren Datenträgern keine einheitenübergreifende Eingabe/Ausgabe auf dem Datenträger ermöglichen, sind für die Verringerung der zugeordneten Datenträger keine Auswirkungen auf die Leistung vorhanden.
  • Sofern eine „Freespace_Preference”-Option eingerichtet ist, hat der Benutzer die Möglichkeit anzugeben, wie der Benutzer den freien Speicherplatz in dem Speicher-Pool verteilt haben möchte. Zum Beispiel wird einem Benutzer ermöglicht, eine Mindestmenge von freiem Speicherplatz anzugeben, die in jedem Datenträger verbleiben soll. Zum Beispiel bedeutet „Freespace_Preference(5)”, dass der Benutzer mindestens 5% freien Speicherplatz auf jedem Datenträger des Pools haben möchte. Wenn Daten während der Defragmentierung zugeordnet werden, ist daher keine Zuordnung über 95% des Speicherplatzes eines Datenträgers hinaus zulässig. Wenn der Benutzer nicht genügend Speicherplatz im Pool hat, um den angegebenen Wert nach der Rückgabe von „Überlauf”-Datenträgern zu erfüllen, wird von dem Antwortmodul 250 eine Fehlermeldung an den Benutzer ausgegeben. Der gesamte verfügbare Speicherplatz in dem Pool ist bekannt, wenn die Schritte 315 und 320 ausgeführt worden sind.
  • Eine „Empty_Vol_Preference”-Option gestattet dem Benutzer, einen numerischen Wert anzugeben, der die Mindestanzahl von leeren Datenträgern darstellt, die nach der Rückgabe der „Überlauf”-Datenträger im Pool bleiben müssen. Diese Datenträger können dann nach der Defragmentierung entfernt werden, wenn der Benutzer diesen Speicherplatz in einem anderen Pool nutzen möchte, oder sie können im Pool bleiben, um große Zuordnungen zu einem einzelnen Datenträger zuzulassen. Wenn der Benutzer diese Option verwendet, werden aus diesen Datenträgern mit dem meisten freien Speicherplatz und der kleinsten Menge von zugeordneten Datasets während der Pool-Defragmentierung alle Datasets aus diesen Datenträgern abgezogen. Wenn der Benutzer in Verbindung mit „Freespace_Preference” pro Datenträger eine zu hohe Anzahl von leeren Datenträgern angibt, wird ebenfalls eine Fehlermeldung ausgegeben, um einen unzureichenden gesamten Pool-Speicherplatz anzugeben.
  • „EAV_Uplift” ist eine Option, mit der Datasets in zylinderverwalteten Speicher verschoben werden, wie oben erörtert, wenn sie den Kriterien für eine Mindestgröße entsprechen. Vorhandene zylinderverwaltete Datasets bleiben auch nach der Defragmentierung weiterhin im zylinderverwalteten Speicher, vorausgesetzt, dort ist noch Speicherplatz verfügbar. Diese Option ermöglicht es, die „Überlauf”-Datenträger als Datenträger mit erweiterter Adresse hinzuzufügen, wie oben erörtert, was ermöglicht, dass zusätzlicher Speicherplatz für Datenträger mit erweiterter Adresse während der Defragmentierung verfügbar ist.
  • „Retry_in_Use” ist ein Parameter, der die Anzahl wiederholter Versuche zum Verschieben eines Datasets aufweist, das aktuell verwendet wird. Wenn das Dataset nach der höchstmöglichen Anzahl von wiederholten Versuchen immer noch verwendet wird, wird dieses Dataset nicht verschoben.
  • Schritt 360 weist im Anschluss an die Beendigung der Defragmentierung eine Rückkehr vom Defragmentierungsprozess auf, und Schritt 360 identifiziert die Datenträger, die zu den „Überlauf”-Datenträgern zurückgegeben werden. Dies ermöglicht, dass die „Überlauf”-Datenträger zur Verwendung in einer weiteren Defragmentierung verfügbar sind.
  • Dem Fachmann ist klar, dass die Ausführungsformen der vorliegenden Erfindung, wie hierin offenbart, einschließlich des computerimplementierten Systems 200 von 2 zum Ausführen der Defragmentierung im System 100 von 1 sowie die hierin bereitgestellte Funktionalität als ein System, Verfahren oder Computerprogrammprodukt verkörpert werden können. Dementsprechend können Ausführungsformen der vorliegenden Erfindung in Gestalt einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (einschließlich Firmware, residente Software, Mikrocode usw.) oder einer Kombination davon vorliegen, wie zum Beispiel eine Ausführungsform, die Software- und Hardware-Aspekte kombiniert, auf die alle hierin allgemein als „Schaltung”, „Modul” oder „System” Bezug genommen werden kann. Des Weiteren können Ausführungsformen der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit einem darin ausgeführten computerlesbaren Programmcode verkörpert ist.
  • Jede Kombination von einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder Einheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu spezielleren Beispielen (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium würde Folgendes zählen: eine elektrische Verbindung mit einer oder mehreren Drahtleitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer CD-ROM, eine optische Speichereinheit, eine Magnetspeichereinheit oder jede geeignete Kombination des Vorgenannten. In dem Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes konkrete Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung enthalten oder speichern kann.
  • In einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung jedes geeigneten Mediums übertragen werden, einschließlich drahtlos, drahtgebunden, über ein Lichtwellenleiterkabel, HF usw. oder eine geeignete Kombination des Vorgenannten, er ist aber nicht darauf beschränkt.
  • Computerprogrammcode zum Ausführen von Operationen für Ausführungsformen der vorliegenden Erfindung kann in jeder Kombination von einer oder mehreren Programmiersprachen geschrieben werden, einschließlich einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und herkömmlichen prozeduralen Programmiersprachen wie der Programmiersprache „C” oder ähnlichen Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jeden Typ von Netzwerk verbunden sein, einschließlich ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters).
  • Ausführungsformen der vorliegenden Erfindung sind oben unter Bezugnahme auf Ablaufplan-Veranschaulichungen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block in den Ablaufplan-Veranschaulichungen und/oder Blockschaubildern und Kombinationen von Blöcken in den Ablaufplan-Veranschaulichungen und/oder Blockschaubildern durch Computerprogrammanweisungen umgesetzt werden können. Diese Computerprogrammanweisungen können für einen Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, ausgeführt werden, Mittel zum Umsetzen der Funktionen/Handlungen erstellen, die in dem Block oder den Blöcken von Ablaufplan und/oder Blockschaubild angegeben sind.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere Vorrichtung, die programmierbare Daten verarbeitet, oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Weise funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Fertigungsartikel erzeugen, einschließlich Anweisungen, die die in dem Block oder den Blöcken von Ablaufplan und/oder Blockschaubild angegebene Funktion/Handlung umsetzen.
  • Die Computerprogrammanweisungen können auch auf einen Computer, eine andere Vorrichtung, die programmierbare Daten verarbeitet, oder andere Einheiten geladen werden, um die Ausführung einer Serie von Arbeitsschritten auf dem Computer, einer anderen Vorrichtung, die programmierbare Daten ausführt, oder anderen Einheiten zu veranlassen, um einen über den Computer umgesetzten Prozess zu erzeugen, sodass die Anweisungen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Handlungen bereitstellen, die in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaubilds angegeben sind.
  • Fachleuten wird klar sein, dass Änderungen in Bezug auf die oben erörterten Verfahren vorgenommen werden können, einschließlich Änderungen an der Reihenfolge der Schritte. Ferner wird Fachleuten klar sein, dass andere spezifische Komponentenanordnungen genutzt werden können als die hierin veranschaulichten.
  • Fachleuten wird klar sein, dass Änderungen in Bezug auf die oben erörterten Verfahren vorgenommen werden können, einschließlich Änderungen an der Reihenfolge der Schritte. Ferner wird Fachleuten klar sein, dass andere spezifische Komponentenanordnungen genutzt werden können als die hierin veranschaulichten.
  • Obwohl die bevorzugten Ausführungsformen der vorliegenden Erfindung ausführlich veranschaulicht worden sind, sollte für Fachleute offenkundig sein, dass an diesen Ausführungsformen Modifizierungen und Anpassungen vorgenommen werden können, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen, wie in den folgenden Ansprüchen dargelegt.

Claims (20)

  1. In einem computerimplementierten Datenspeichersystem, das mindestens eine Speichersteuerung und einen Datenspeicher aufweist, in dem Daten in Form von Datenträgern gespeichert sind, hat mindestens eine Vielzahl von den Datenträgern zumindest einigen freien Speicherplatz und eine Gruppierung einer Vielzahl von Datenträgern weist einen Pool auf, wobei das Verfahren aufweist: Starten der Migration von Daten aus einem Pool, um weiteren freien Speicherplatz zu erzeugen; im Anschluss an die Migration von Daten Berechnen der Fragmentierung von Daten des Pools; Ermitteln der Menge von vorhandenem freiem Speicherplatz des Pools; Vergleichen der Menge von vorhandenem freiem Speicherplatz mit einem Schwellenwert für freien Speicherplatz, wobei der Schwellenwert für freien Speicherplatz mit der berechneten Fragmentierung in Beziehung steht; wenn der Vergleich angibt, dass die Menge von freiem Speicherplatz unter dem Schwellenwert liegt, Hinzufügen von Überlaufdatenträgern zu dem Pool; und andernfalls unverändertes Beibehalten des Pools, ohne Überlaufdatenträger hinzuzufügen; und Starten der Defragmentierung des Pools.
  2. Verfahren nach Anspruch 1, das zusätzlich die Schritte zum Identifizieren der Überlaufdatenträger, sofern vorhanden, als temporäre Datenträger und im Anschluss an die Defragmentierung des Pools zum Entfernen der Überlaufdatenträger aus dem Pool aufweist.
  3. Verfahren nach Anspruch 1, wobei der Schwellenwert für freien Speicherplatz einen Soll-Schwellenwert aufweist und die berechnete Fragmentierung den Schwellenwert für freien Speicherplatz so korrigiert, dass der Schwellenwert für freien Speicherplatz erhöht oder verringert wird.
  4. Verfahren nach Anspruch 3, wobei die Korrektur einen Wertebereich aufweist.
  5. Verfahren nach Anspruch 4, wobei der Wertebereich so korrigiert wird, dass er in Bezug auf einen Index der berechneten Fragmentierung zwischen den Werten liegt.
  6. Verfahren nach Anspruch 1, wobei der Schwellenwert für freien Speicherplatz (T) gemäß einer Formel ermittelt wird: (T) = (Gesamtspeicherkapazität des Pools) × (Soll-Schwellenwert) × {Bereich von 0,5 bis 1,5} wobei der Wert innerhalb des Bereichs auf einem Index der berechneten Fragmentierung beruht.
  7. Verfahren nach Anspruch 6, wobei der Index der berechneten Fragmentierung ein Wert von 0 bis 1,0 ist, der am Ende des Bereichs hinzugefügt wird.
  8. Verfahren nach Anspruch 7, wobei die berechnete Fragmentierung ein Verhältnis einer geschätzten Anzahl von Fragmenten zu der Datenspeicherkapazität des Pools ist.
  9. Verfahren nach Anspruch 8, wobei die Daten Datenträger mit einer Vielzahl von Datasets aufweisen, wobei die Datasets jeweils mindestens einen Datenbereich aufweisen, und wobei die geschätzte Anzahl von Fragmenten aus der Anzahl von Datenbereichen des Pools abzüglich der Anzahl von Datasets des Pools ermittelt wird.
  10. Datenspeicherungssystem, aufweisend: Datenspeicher, in dem Daten in Form von Datenträgern gespeichert sind, wobei mindestens eine Vielzahl der Datenträger mindestens einigen freien Speicherplatz hat und eine Gruppierung einer Vielzahl von Datenträgern einen Pool aufweist; und mindestens eine Speichersteuerung Folgendes ausführt: Starten der Migration von Daten aus einem Pool, um weiteren freien Speicherplatz zu erzeugen; im Anschluss an die Migration von Daten Berechnen der Fragmentierung von Daten des Pools; Ermitteln der Menge von vorhandenem freiem Speicherplatz des Pools; Vergleichen der Menge von vorhandenem freiem Speicherplatz mit einem Schwellenwert für freien Speicherplatz, wobei der Schwellenwert für freien Speicherplatz mit der berechneten Fragmentierung in Beziehung steht; wenn der Vergleich angibt, dass die Menge von freiem Speicherplatz unter dem Schwellenwert liegt, Hinzufügen von Überlaufdatenträgern zu dem Pool; und andernfalls unverändertes Beibehalten des Pools, ohne Überlaufdatenträger hinzuzufügen; und Starten der Defragmentierung des Pools.
  11. Datenspeichersystem nach Anspruch 10, in dem die Speichersteuerung zusätzlich die Schritte zum Identifizieren der Überlaufdatenträger, sofern vorhanden, als temporäre Datenträger und im Anschluss an die Defragmentierung des Pools zum Entfernen der Überlaufdatenträger aus dem Pool ausführt.
  12. Datenspeichersystem nach Anspruch 10, wobei der Schwellenwert für freien Speicherplatz einen Soll-Schwellenwert aufweist und die berechnete Fragmentierung den Schwellenwert für freien Speicherplatz so korrigiert, dass der Schwellenwert für freien Speicherplatz erhöht oder verringert wird.
  13. Datenspeichersystem nach Anspruch 12, wobei die Korrektur einen Wertebereich aufweist.
  14. Datenspeichersystem nach Anspruch 13, wobei der Wertebereich so korrigiert wird, dass er in Bezug auf einen Index der berechneten Fragmentierung zwischen den Werten liegt.
  15. Datenspeichersystem nach Anspruch 10, wobei der Schwellenwert für freien Speicherplatz (T) gemäß einer Formel ermittelt wird: (T) = (Gesamtspeicherkapazität des Pools) × (Soll-Schwellenwert) × {Bereich von 0,5 bis 1,5} wobei der Wert innerhalb des Bereichs auf einem Index der berechneten Fragmentierung beruht.
  16. Datenspeichersystem nach Anspruch 15, wobei der Index der berechneten Fragmentierung ein Wert von 0 bis 1,0 ist, der am Ende des Bereichs hinzugefügt wird.
  17. Datenspeichersystem nach Anspruch 16, wobei die berechnete Fragmentierung ein Verhältnis einer geschätzten Anzahl von Fragmenten zu der Datenspeicherkapazität des Pools ist.
  18. Datenspeichersystem nach Anspruch 17, wobei die Daten Datenträger mit einer Vielzahl von Datasets aufweisen, wobei die Datasets jeweils mindestens einen Datenbereich aufweisen, und wobei die geschätzte Anzahl von Fragmenten aus der Anzahl von Datenbereichen des Pools abzüglich der Anzahl von Datasets des Pools ermittelt wird.
  19. Computerprogramm, das Programmcode aufweist, der so angepasst ist, dass die Verfahrensschritte von jedem der Ansprüche 1 bis 9 ausgeführt werden, wenn das Programm auf einem Computer ausgeführt wird.
  20. In einem computerimplementierten Datenspeichersystem, das mindestens eine Speichersteuerung und einen Datenspeicher aufweist, in dem Daten in Form von Datenträgern gespeichert sind, hat mindestens eine Vielzahl von den Datenträgern zumindest einigen freien Speicherplatz und eine Gruppierung einer Vielzahl von Datenträgern weist einen Pool auf, wobei das Verfahren aufweist: Berechnen der Fragmentierung der Daten des Pools; Ermitteln der Menge von vorhandenem freiem Speicherplatz des Pools; Vergleichen der Menge von vorhandenem freiem Speicherplatz mit einem Schwellenwert für freien Speicherplatz, wobei der Schwellenwert für freien Speicherplatz mit der berechneten Fragmentierung in Beziehung steht; wenn der Vergleich angibt, dass die Menge von freiem Speicherplatz unter dem Schwellenwert liegt, Hinzufügen von Überlaufdatenträgern zu dem Pool; und andernfalls unverändertes Beibehalten des Pools, ohne Überlaufdatenträger hinzuzufügen; und Zulassen einer Benutzerauswahl einer Option zum Verschieben von Datasets in zylinderverwalteten Speicher, wenn sie die Kriterien für eine Mindestgröße während der Defragmentierung erfüllen, und Starten der Defragmentierung des Pools.
DE112012001162T 2011-05-25 2012-04-18 Defragmentierung von Datenspeicherpools Ceased DE112012001162T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
USUS-13/115,805 2011-05-25
US13/115,805 US8639900B2 (en) 2011-05-25 2011-05-25 Defragmentation of data storage pools
PCT/CN2012/074260 WO2012159513A1 (en) 2011-05-25 2012-04-18 Defragmentation of data storage pools

Publications (1)

Publication Number Publication Date
DE112012001162T5 true DE112012001162T5 (de) 2013-12-19

Family

ID=47216609

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012001162T Ceased DE112012001162T5 (de) 2011-05-25 2012-04-18 Defragmentierung von Datenspeicherpools

Country Status (6)

Country Link
US (2) US8639900B2 (de)
JP (1) JP5946521B2 (de)
CN (1) CN103562881B (de)
DE (1) DE112012001162T5 (de)
GB (1) GB2505328A (de)
WO (1) WO2012159513A1 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436696B2 (en) 2013-10-02 2016-09-06 International Business Machines Corporation Data fragmentation tuning and candidacy persistence
WO2016045096A1 (zh) 2014-09-26 2016-03-31 华为技术有限公司 一种文件迁移方法、装置和存储设备
CN105743956A (zh) * 2014-12-12 2016-07-06 阿里巴巴集团控股有限公司 一种数据资源分配方法和装置
JPWO2016175028A1 (ja) * 2015-04-28 2018-02-22 日本電気株式会社 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
US10120570B2 (en) 2015-06-11 2018-11-06 International Business Machines Corporation Temporary spill area for volume defragmentation
US9495100B1 (en) 2015-06-28 2016-11-15 International Business Machines Corporation Shifting a defrag operation in a mirrored system
US10592148B2 (en) 2015-07-06 2020-03-17 Nec Corporation Information processing system, storage control apparatus, storage control method, and storage control program for evaluating access performance to a storage medium
US10402114B2 (en) 2015-07-06 2019-09-03 Nec Corporation Information processing system, storage control apparatus, storage control method, and storage control program
CN106611364B (zh) * 2015-10-22 2020-07-24 中国电信股份有限公司 存储碎片整理方法及装置
US10228886B2 (en) * 2016-04-20 2019-03-12 International Business Machines Corporation Storage device volume selection for improved space allocation
US10296235B2 (en) * 2016-06-27 2019-05-21 International Business Machines Corporation Partial volume reorganization to increase data availability
US11151031B2 (en) * 2017-06-29 2021-10-19 Microsoft Technology Licensing, Llc Optimized record placement in defragmenting graph database
CN107506496B (zh) * 2017-09-28 2021-10-22 北京小米移动软件有限公司 碎片整理方法、装置及计算机可读存储介质
US10664188B2 (en) * 2018-08-25 2020-05-26 International Business Machines Corporation Data set allocations taking into account point-in-time-copy relationships
TWI760697B (zh) * 2020-02-19 2022-04-11 群聯電子股份有限公司 記憶體之資料整理方法、記憶體儲存裝置及記憶體控制電路單元
US11275514B2 (en) * 2020-08-10 2022-03-15 International Business Machines Corporation Expanding storage capacity for implementing logical corruption protection
CN112363828B (zh) * 2020-10-30 2024-01-12 北京罗克维尔斯科技有限公司 内存碎片管理方法、装置、车载系统及车辆

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3184054B2 (ja) * 1994-10-12 2001-07-09 株式会社東芝 集合型データ処理装置及び集合型データ処理装置のコンパクション方法
JP3421898B2 (ja) * 1995-04-10 2003-06-30 ソニー株式会社 データ記録装置およびデータ管理方法
JP4146380B2 (ja) * 2004-03-29 2008-09-10 東芝ソリューション株式会社 ストレージシステム、ブロック再配置制御方法及びプログラム
US20110179219A1 (en) * 2004-04-05 2011-07-21 Super Talent Electronics, Inc. Hybrid storage device
US7788460B2 (en) * 2004-04-13 2010-08-31 Intel Corporation Defragmenting objects in a storage medium
TWI254205B (en) * 2004-11-01 2006-05-01 Benq Corp Bidirectional data storing method
US7584341B2 (en) 2005-11-15 2009-09-01 Sanrad, Ltd. Method for defragmenting of virtual volumes in a storage area network (SAN)
JP4890033B2 (ja) * 2006-01-19 2012-03-07 株式会社日立製作所 記憶装置システム及び記憶制御方法
JP4927412B2 (ja) * 2006-02-10 2012-05-09 株式会社日立製作所 記憶制御方法及びその制御方法
US20070226445A1 (en) 2006-03-22 2007-09-27 Tony Nichols Method and system for rapid data-fragmentation analysis of a file-allocation-table (FAT) file system
JP5069011B2 (ja) * 2007-01-29 2012-11-07 株式会社日立製作所 ストレージモジュール及び容量プール空き容量調整方法
JP2009037564A (ja) * 2007-08-03 2009-02-19 Fujitsu Ltd ディスク管理プログラム、ディスク管理方法及びディスク管理装置
CN102203717A (zh) 2007-10-05 2011-09-28 帝斯科匹尔公司 固态驱动器优化器
JP2010086424A (ja) * 2008-10-01 2010-04-15 Hitachi Ltd ストレージ装置の管理装置
US8086810B2 (en) 2009-01-15 2011-12-27 International Business Machines Corporation Rapid defragmentation of storage volumes
US9875033B2 (en) * 2009-05-12 2018-01-23 International Business Machines Corporation Apparatus and method for minimizing data storage media fragmentation
US8539184B2 (en) * 2009-09-23 2013-09-17 International Business Machines Corporation On demand storage group management with recapture

Also Published As

Publication number Publication date
GB2505328A (en) 2014-02-26
CN103562881A (zh) 2014-02-05
WO2012159513A1 (en) 2012-11-29
US20120303918A1 (en) 2012-11-29
US8639900B2 (en) 2014-01-28
US8661217B2 (en) 2014-02-25
US20120303916A1 (en) 2012-11-29
JP5946521B2 (ja) 2016-07-06
CN103562881B (zh) 2016-11-09
JP2014517971A (ja) 2014-07-24
GB201315646D0 (en) 2013-10-16

Similar Documents

Publication Publication Date Title
DE112012001162T5 (de) Defragmentierung von Datenspeicherpools
DE112011104419B4 (de) Bereichsmigration für gepaarte Speicherung
DE60313783T2 (de) Bewegen von daten zwischen speichereinheiten
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE112018003524T5 (de) Dynamische datenverlagerung unter verwendung von speicherbänken auf cloud-grundlage
DE102013215535A1 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE102016103359A1 (de) Singleton-cachespeicher-verwaltungsprotokoll für hierarchische virtualisierte speichersysteme
DE202010017665U1 (de) Datenverteilung bei einer Datenspeichervorrichtung mit Flash-Speicherchips
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE102008015185A1 (de) Hierarchisches Speichersystem mit vorausschauender Datenübertragung
DE112010004969T5 (de) Hybrides Speicherteilsystem
DE112013006646B4 (de) Computer, System und computerlesbares Ablagemedium zum Identifizieren von Arbeitslast und Dimensionierung von Puffern zum Zweck der Volumenreplikation
DE102012218269A1 (de) Schnittstelle zur Verwaltung von Datenverschiebung in einem Speichersystem mit thin provisioning
DE112008003256T5 (de) Verteilung und Speichervolumen auf Laufwerksbereiche mit intelligenter Dateiablage und/oder -umordnung
DE102004023811A1 (de) Speichersystem
DE102014116031A1 (de) SWAT-Befehl und API für atomare Auslagerung und Trimmen von LBAs
DE112012002452T5 (de) Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten
DE112020003929B4 (de) Verwaltung von metadaten von virtuellen speichern
DE102021108572A1 (de) Containerisierte anwendungsmanifeste und virtuelle persistente volumes
DE112018005135T5 (de) Thin provisioning unter verwendung von speicherbänken auf cloud-grundlage
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank
DE102020115969A1 (de) Speichervorrichtungen, speichersysteme und verfahren zum betreiben von speichervorrichtungen
DE102013205571B4 (de) Verfahren, Computerprogrammprodukt und Vorrichtung zum Migrieren von Datenträgern mit schlanker Speicherzuweisung in mehrschichtigen Speicherarchitekturen
DE112018000900T5 (de) Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem
DE112021005233T5 (de) Verbesserte anwendungsleistung durch verwenden vonspeichersystemoptimierung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final