DE102013109088A1 - Verfahren zum Schützen der Integrität von gecachten GPT-Plattendaten in einer externen Betriebssystem-Umgebung - Google Patents

Verfahren zum Schützen der Integrität von gecachten GPT-Plattendaten in einer externen Betriebssystem-Umgebung Download PDF

Info

Publication number
DE102013109088A1
DE102013109088A1 DE102013109088.5A DE102013109088A DE102013109088A1 DE 102013109088 A1 DE102013109088 A1 DE 102013109088A1 DE 102013109088 A DE102013109088 A DE 102013109088A DE 102013109088 A1 DE102013109088 A1 DE 102013109088A1
Authority
DE
Germany
Prior art keywords
cached
mgpt
plate
gpt
disk
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.)
Withdrawn
Application number
DE102013109088.5A
Other languages
English (en)
Inventor
Pradeep Bisht
Kashif Memon
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from US13/595,986 external-priority patent/US20140059291A1/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102013109088A1 publication Critical patent/DE102013109088A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/4408Boot device selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/463File

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)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Es ist eine Erfindung zum Schützen der Datenintegrität einer gecachten Speichervorrichtung in einer wechselnden Betriebssystem(OS)-Umgebung vorgesehen. Die Erfindung weist ein Ersetzen einer global eindeutigen Identifizierer-Partitionstabelle (GPT) (212) für eine gecachte Platte (208) durch eine modifizierte globale eindeutige Identifizierer-Partitionstabelle (MGPT) (214) auf. Die MGPT (214) macht die gecachten Partitionen auf der gecachten Platte (208) unzugänglich, wenn die MGPT (214) durch ein OS verwendet wird, um auf die gecachten Partitionen (400a) zuzugreifen, während ungecachte Partitionen (400b) auf der gecachten Platte (208) nach wie vor zugänglich sind, wenn die MGPT (214) verwendet wird. Im normalen Betrieb wird auf die Daten auf der gecachten Platte (208) zugegriffen unter Verwendung von Informationen basierend auf der GPT (212), welche auf einer cachenden Platte (206) gespeichert sein kann, im Allgemeinen über eine cachende Software (210). Als Antwort auf ein Empfangen einer Anforderung zum Deaktivieren des Cachens, wird die MGPT (214) auf der gecachten Platte (208) durch die GPT (212) ersetzt, wodurch die gesamten Daten auf der formal gecachten Platte (208) in einer wechselnden OS-Umgebung zugänglich gemacht werden, in der eine angemessene cachende Software (210) nicht gegenwärtig ist.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung ist eine Continuation-in-Part-Anmeldung der U.S.-Patentanmeldung Nr. 13/595, 986, welche am 27. August 2012 mit dem Titel „Verfahren zum Schützen der Integrität von Speichervorrichtungsdaten in einer externen Betriebsumgebung” eingereicht wurde, welche hiermit durch Bezugnahme eingebunden ist.
  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Diese Erfindung bezieht sich allgemein auf eine Datenintegrität und genauer auf ein Schützen der Datenintegrität einer GUID-Partitonstabellen-basierten Speichervorrichtung in einer wechselnden Betriebssystem-Umgebung.
  • 2. Beschreibung des Standes der Technik
  • Cachen wurde in Speicherumgebungen lange verwendet, um die Leistungsfähigkeit von langsameren Speichervorrichtungen wie beispielsweise Plattenlaufwerken zu verbessern. Beim Cachen wird ein kleineres und schnelleres Speichermedium verwendet, um häufig verwendete Daten vorübergehend zu speichern und abzurufen, während das größere und typischerweise langsamere Massenspeichermedium für eine langfristige Speicherung von Daten verwendet wird. Eine Cache-Methodik ist ein Rückschreib-Cachen, wobei Daten, welche zu einer Platte geschrieben werden, zuerst in einem Cache gespeichert werden, und später zu der Massenspeichervorrichtung geschrieben werden, typischerweise wenn die Datenmenge im Cache einen Grenzwert erreicht oder wenn es die Zeit erlaubt.
  • 1 ist ein Blockschaltbild, welches ein beispielhaftes Computersystem 100 gemäß dem Stand der Technik zeigt, welches eine Rückschreib-Cache-Fähigkeit hat. Das beispielhafte Computersystem 100 gemäß dem Stand der Technik weist eine zentrale Verarbeitungseinheit (CPU = Central Processing Unit) 102 in Kommunikation mit einem Systemspeicher 104, einem Cache 106 und einer Zielspeichervorrichtung 108 auf. Zusätzlich ist eine cachende Software bzw. Cache-Software 110 in den Systemspeicher 104 geladen, welche fungiert, um eine Rückschreib-Cache-Funktionalität auf dem Computersystem 100 zu erleichtern.
  • Wie voranstehend erwähnt ist, weist der Cache 106 im Allgemeinen einen kleineren, schnelleren Zugriffsspeicher auf als derjenige, welcher für die Zielspeichervorrichtung 108 verwendet wird. Aufgrund der erhöhten Geschwindigkeit des Cache 106 wird Lesen und Schreiben, welches auf den Cache 106 gerichtet ist, viel schneller verarbeitet, als es unter Verwendung der Zielspeichervorrichtung 108 möglich ist. Ein Rückschreib-Cachen macht sich diese Unterschiede durch ein Senden aller Schreibanfragen zu dem Rückschreib-Cache 106 vor einem späteren Übertragen der Daten zu der Zielspeichervorrichtung 108 zunutze.
  • Beispielsweise fängt, wenn die CPU 102 eine Schreibanfrage zum Schreiben von Daten zu der Zielspeichervorrichtung 108 verarbeitet, die cachende Software 110 die Schreibanfrage auf und schreibt die Daten anstelle dessen zu dem Cache 106. Auf diese Daten wird oftmals Bezug genommen als ”schmutzige” Daten, da sie noch nicht zu der Zielspeichervorrichtung 108 geschrieben worden sind, und diese werden später ”saubere” Daten, wenn die Daten später zu der Zielspeichervorrichtung 108 geschrieben werden. Die cachende Software 110 sieht eine komplette Ansicht der Zielspeichervorrichtung 108 für den Verwender vor. Das heißt, dass, wenn die CPU 102 eine Leseanfrage für dieselben Daten verarbeitet, die cachende Software 110 wiederum die Leseanfrage auffängt und bestimmt, ob die Daten in dem Cachespeicher gespeichert sind. Wenn die Daten im Cachespeicher gespeichert sind, liest die CPU 102 die Daten aus dem Cache 106, andernfalls liest die CPU 102 die Daten aus der Zielspeichervorrichtung 108.
  • Wie anerkannt werden kann, können Daten zu jedem Zeitpunkt in dem Cache 106 gespeichert werden und noch nicht auf der Zielspeichervorrichtung 108 aktualisiert werden, und demzufolge kann die Zielspeichervorrichtung 108 keine vollständige und konsistente Kopie davon haben, was der Verwender glaubt, dass dort gespeichert wäre. Als ein Ergebnis können, wenn der Verwender sich entschließt, die Zielspeichervorrichtung 108 zu einer anderen Betriebssystem(OS = Operating System)-Umgebung zu bewegen, wo eine cachende Software 110 nicht gegenwärtig ist, die Daten auf der Zielspeichervorrichtung 108 beschädigt beziehungsweise korrumpiert werden und sie können nutzlos werden.
  • Beispielsweise sieht, wenn eine Datei teilweise auf der Zielspeichervorrichtung 108 gespeichert ist und teilweise in dem Cache 106 gespeichert ist, die cachende Software 110 eine vollständige Ansicht der Datei, und der Verwender sieht die Datei als vollständig auf der Zielspeichervorrichtung 108 gespeichert. Wenn der Verwender jedoch die Zielspeichervorrichtung 108 zu einer anderen OS-Umgebung bewegt, wo eine cachende Software 110 nicht gegenwärtig ist, wird die Datei auf der Zielspeichervorrichtung 108 nicht vollständig sein. Der Verwender jedoch weiß nicht, ob die Datei vollständig ist oder nicht und kann versuchen, die Datei zu ändern. Wenn die Zielspeichervorrichtung 108 später zu der ursprünglichen OS-Umgebung zurückgebracht wird, treten Datenintegritätsprobleme auf.
  • Traditionell wurde dieses Datenintegritätsproblem dadurch adressiert, dass der Verwender die cachende Software 110 vor dem Entfernen der Zielspeichervorrichtung 108 zu einer anderen OS-Umgebung deaktiviert hat. Wenn die cachende Software 110 deaktiviert wird, spült sie all die schmutzigen Daten von dem Cache 106, was sicherstellt, dass die Daten auf der Zielspeichervorrichtung 108 vollständig und sauber sind. Nun wird, wenn die Zielspeichervorrichtung 108 zu einer anderen OS-Umgebung genommen wird, keine Datenkorrumpierung als ein Ergebnis des Cachens auftreten.
  • Unglücklicherweise erinnern sich Verwender nicht immer daran, die cachende Software 110 vor dem Entfernen der Zielspeichervorrichtung 108 und dem Verbringen bzw. Bewegen derselben zu einer anderen OS-Umgebung zu deaktivieren. Als ein Ergebnis kann ein vergesslicher Verwender die Daten auf der Zielspeichervorrichtung 108 trotz der Cache-Spül-Fähigkeiten der cachende Software 110 nach wie vor korrumpieren, da er vergisst, die cachende Software 110 vor dem Bewegen der Zielspeichervorrichtung 108 zu deaktivieren.
  • In Hinsicht auf das Vorangehende gibt es eine Notwendigkeit für Systeme und Verfahren zum Schützen der Datenintegrität von Speichervorrichtungen in wechselnden OS-Umgebungen. Idealerweise sollten die Systeme und Verfahren Schutz vorsehen, auch wenn der Verwender vergisst, die cachende Software vor dem Bewegen einer gecachten Speichervorrichtung zu einer wechselnden OS-Umgebung zu deaktivieren.
  • KURZFASSUNG DER ERFINDUNG
  • Grob gesagt adressieren Ausführungsformen der vorliegenden Erfindung diese Notwendigkeiten durch ein Vorsehen eines Vorgangs zum Schützen der Datenintegrität einer gecachten Speichervorrichtung in einer wechselnden OS-Umgebung. In einer Ausführungsform wird ein Verfahren zum Schützen der Datenintegrität einer Platte in einer wechselnden Betriebssystem(OS = Operating System)-Umgebung offenbart. Das Verfahren weist ein Ersetzen einer global eindeutigen Identifizierer-Partitionstabelle (GPT = Global Unique Identifiers Partition Table) für eine gecachte Platte durch eine modifizierte global eindeutige Identifizierer-Partitionstabelle (MGPT = Modified Global Unique Identifiers Partition Table) auf. Von großer Bedeutung ist, dass die MGPT gecachte Partitionen auf der gecachten Platte unzugänglich macht, wenn die MGPT durch ein OS verwendet wird, um auf die gecachten Partitionen zuzugreifen, während ungecachte Partitionen auf der gecachten Platte nach wie vor zugänglich sind, wenn die MGPT verwendet wird. Im Normalbetrieb wird auf die Daten auf der gecachten Platte unter Verwendung von Informationen basierend auf der GPT, im Allgemeinen über eine cachende Software zugegriffen.
  • Um sicherzustellen, dass gecachte Partitionen auf der gecachten Platte in wechselnden OS-Umgebungen nicht zugänglich sind, haben Partitionseinträge in der MGPT für gecachte Partitionen Anfangs- und Endpositionen, welche unterschiedlich von denjenigen sind, welche in entsprechenden Einträgen in der GPT für die gecachte Platte gespeichert sind. Partitionseinträge in der MGPT für ungecachte Partitionen jedoch sind dieselben wie entsprechende Einträge in der GPT für die gecachte Platte, wonach es erlaubt ist, dass ungecachte Partitionen in wechselnden OS-Umgebungen zugänglich bleiben. Die MGPT ist im Allgemeinen auf der gecachten Platte in einer solchen Art und Weise gespeichert, dass die MGPT durch ein OS verwendet werden wird, um die gecachte Platte in einer wechselnden Betriebssystem(OS = Operating System)-Umgebung hochzufahren (boot). Die GPT kann auf einer cachenden Platte gespeichert sein, welche für ein Rückschreib-Cachen verwendet wird, um gecachte Daten für die gecachte Platte zu speichern. Zusätzlich wird die GPT ebenso auf der gecachten Platte an einem anderen Ort als einem Ort der MGPT gespeichert, was eine vollständige GPT-Rekonstruktion erlaubt, wenn die cachende Platte irgendwie korrumpiert ist.
  • Ein weiteres Verfahren zum Schützen der Datenintegrität einer Platte in einer wechselnden OS-Umgebung ist in einer zusätzlichen Ausführungsform der vorliegenden Erfindung offenbart. Ähnlich zu dem Obigen weist das Verfahren ein Ersetzen einer GPT für eine gecachte Platte mit einer modifizierten GPT (MGPT) auf, wobei die MGPT gecachte Partitionen auf der gecachten Platte unzugänglich macht, wenn die MGPT durch ein OS verwendet wird, um auf die gecachten Partitionen zuzugreifen, und wobei ungecachte Partitionen auf der gecachten Platte zugänglich sind, wenn die MGPT durch das OS verwendet wird, um auf die ungecachten Partitionen zuzugreifen. Im Normalbetrieb wird auf die Daten auf der gecachten Platte unter Verwendung von Informationen basierend auf der GPT, im Allgemeinen über eine cachende Software zugegriffen. Dann wird, als Antwort auf den Empfang einer Anfrage zum Deaktivieren des Cachens die MGPT auf der gecachten Platte durch die GPT ersetzt. Wie oben haben Partitionseinträge in der MGPT für gecachte Partitionen Anfangs- und Endpositionen unterschiedlich von denjenigen, welche in entsprechenden Einträgen in der GPT für die gecachte Platte gespeichert sind, und Partitionseinträge für ungecachte Partitionen sind dieselben wie entsprechende Einträge in der GPT für die gecachte Platte. Die GPT wird sowohl auf einer cachenden Platte als auch auf der gecachten Platte an einem anderen Ort als einem Ort der MGPT gespeichert.
  • Ein Computerprogramm, welches auf einem computerlesbaren Medium zum Schützen der Datenintegrität einer Platte in einer wechselnden OS-Umgebung ausgeführt ist, wird in noch einer weiteren Ausführungsform der vorliegenden Erfindung offenbart. Das Computerprogramm weist Computerbefehle auf, welche eine GPT für eine gecachte Platte durch eine modifizierte GPT (MGPT) ersetzen, wobei die MGPT gecachte Partitionen auf der gecachten Platte unzugänglich macht, wenn die MGPT durch ein OS verwendet wird, um auf die gecachten Partitionen zuzugreifen, und wobei ungecachte Partitionen auf der gecachten Platte zugänglich sind, wenn die MGPT durch das OS verwendet wird, um auf die ungecachten Partitionen zuzugreifen. Zusätzlich sind Computerbefehle enthalten, welche auf die Daten auf der gecachten Platte unter Verwendung von Informationen basierend auf der GPT zugreifen. Ähnlich zu dem Obigen haben Partitionseinträge in der MGPT für gecachte Partitionen Anfangs- und Endpositionen unterschiedlich von denjenigen, welche in entsprechenden Einträgen in der GPT für die gecachte Platte gespeichert sind, während Partitionseinträge für ungecachte Partitionen dieselben sind, wie entsprechende Einträge in der GPT für die gecachte Platte. Die MGPT wird auf der gecachten Platte in einer solchen Art und Weise gespeichert, dass die MGPT durch ein OS verwendet werden wird, um die gecachte Platte in einer wechselnden OS-Umgebung hochzufahren bzw. zu booten. Als Antwort auf das Empfangen einer Anfrage zum Deaktivieren des Cachens, sind Computerbefehle enthalten, welche die MGPT auf der gecachten Platte durch die GPT ersetzen.
  • Auf diese Art und Weise macht die MGPT gecachte Partitionen der gecachten Platte unzugänglich, wenn die gecachte Platte zu einer wechselnden OS-Umgebung bewegt wird, wo die angemessene cachende Software nicht gegenwärtig ist, während sie ungecachte Partitionen in der wechselnden OS-Umgebung nach wie vor zugänglich belässt. Als ein Ergebnis wird der Verwender erinnert, die gecachte Platte zurück zu dem ursprünglichen Computersystem zu verbringen und die cachende Software zu deaktivieren, um die gesamte gecachte Platte in der wechselnden OS-Umgebung zugänglich zu machen. Andere Aspekte und Vorteile der Erfindung werden aus der folgenden detaillierten Beschreibung zusammengenommen in Verbindung mit den beigefügten Zeichnungen offensichtlich werden, welche auf dem Weg eines Beispiels die Prinzipien der Erfindung veranschaulichen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung zusammen mit weiteren Vorteilen davon kann am Besten durch Bezugnahme auf die folgende Beschreibung zusammen mit den beigefügten Zeichnungen verstanden werden, in welchen:
  • 1 ein Blockschaltbild ist, welches ein beispielhaftes Computersystem des Standes der Technik zeigt, welches eine Rückschreib-Cache-Fähigkeit hat;
  • 2 ein Blockschaltbild ist, welches ein beispielhaftes Computersystem mit einer gecachten Platte 208, welche einen Datenintegritätsschutz hat, wenn die gecachte Platte zu einer wechselnden OS-Umgebung bewegt wird, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 3 ein Diagramm ist, welches eine beispielhafte GUID-Partitions-Tabelle (GPT) und eine entsprechende modifizierte GUID-Partitions-Tabelle (MGPT) in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 4 ein Diagramm ist, welches eine gecachte Platte, welche eine Mehrzahl von Partitionen hat, auf welche in einer wechselnden OS-Umgebung zugegriffen wird, welche nicht dieselbe cachende Software hat, welche in der ursprünglichen OS-Umgebung verwendet wird, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 5 ein Blockschaltbild ist, welches ein beispielhaftes Computersystem, worin die gecachte Platte vollständig aktualisiert worden ist und in sich selbst vollständig gemacht worden ist, und auf die sicher von einem wechselnden OS zugegriffen werden kann, in dem die Cache-Software nicht gegenwärtig ist, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 6 ein Flussdigramm ist, welches ein Verfahren zum Schützen der Datenintegrität einer gecachten Platte, wenn die Platte zu einer wechselnden OS-Umgebung bewegt wird, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung zeigt; und
  • 7 ein Flussdiagramm ist, welches ein Verfahren zum Zugänglichmachen von Partitionen auf der gecachten Platte in wechselnden OS-Umgebungen als Antwort auf den Empfang einer Anfrage zum Deaktivieren des Cachens in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung zeigt.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Eine Erfindung zum Schützen der Datenintegrität einer gecachten Speichervorrichtung wird offenbart, welche eine global eindeutige Identifizierer(GUID = Globaly Unique Identifiers)-Partitionstabelle in einer wechselnden OS-Umgebung verwendet. Im Allgemeinen verwenden Ausführungsformen der vorliegenden Erfindung die GUID-Partitionstabelle einer Platte, um einen Mechanismus zum Schützen der Datenintegrität einer gecachten Platte vorzusehen. Da ein OS versucht, auf die Platte über die GUID-Partitionstabelle zuzugreifen, sieht dieser Vorgang einen Mechanismus vor, um zu steuern, was ein Verwender auf der Platte sieht, wenn sie in einer wechselnden OS-Umgebung befindlich ist, ohne zusätzliche Hardware oder eine physikalische Änderung der Systemarchitektur zu benötigen.
  • In der folgenden Beschreibung sind zahlreiche spezifische Details dargrlrgt, um ein vollständiges Verständnis der vorliegenden Erfindung vorzusehen. Es wird jedoch für einen Fachmann offensichtlich sein, dass die vorliegende Erfindung ohne einige oder alle dieser bestimmten Details praktiziert beziehungsweise ausgeführt werden kann. In anderen Bespielen wurden wohlbekannte Vorgangsschritte nicht im Detail beschrieben, um die vorliegende Erfindung nicht unnötig zu verschleiern.
  • 1 wurde bezüglich des Standes der Technik beschrieben. 2 ist ein Blockschaltbild, welches ein beispielhaftes Computersystem 200 mit einer gecachten Platte 208 zeigt, welche einen Datenintegritätsschutz, wenn die gecachte Platte 208 zu einer wechselnden OS-Umgebung bewegt wird, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung hat. Das Computersystem 200 weist eine zentrale Verarbeitungseinheit (CPU = Central Processing Unit) 202 auf, welche mit einem Systemspeicher 204, einer cachenden Platte 206 und einer gecachten Platte 208 verbunden ist. Zusätzlich ist cachende Software 210 in den Systemspeicher 204 geladen und fungiert, um eine Rückschreib-Cache-Funktionalität des Computersystems 200 zu erleichtern.
  • Die cachende Platte 206 ist im Allgemeinen eine kleinere und schneller zugreifbare Platte als diejenige, welche für die gecachte Platte 208 verwendet wird. Beispielsweise kann die cachende Platte 206 ein Festkörperlaufwerk (SSD = Solid State Drive) wie beispielsweise ein NAND-Flash-basiertes SSD oder ein Phasenübergangsspeicher (PCM = Phase Change Memory) sein. Aufgrund der erhöhten Geschwindigkeit der cachenden Platte 206 werden Lesevorgänge und Schreibvorgänge, welche auf die cachende Platte 206 gerichtet sind, viel schneller verarbeitet als es unter Verwendung der gecachten Platte 208 möglich ist. Ein Rückschreib-Cachen macht sich den Vorteil dieser Unterschiede durch ein Senden aller Schreibanfragen zu der cachenden Platte 206 vor dem späteren Übertragen der Daten zu der gecachten Platte 208 zu eigen. Die cachende Software 210 sieht eine vollständige Ansicht der gecachten Platte 208 vor, so dass der Verwender immer eine komplette Ansicht der gecachten Platte 208 sieht, unabhängig davon, ob oder ob nicht einige Daten tatsächlich auf der cachenden Platte 206 gespeichert sind.
  • Während eines Normalbetriebs fängt, wenn die CPU 202 eine Schreibanfrage zum Schreiben von Daten zu der gecachten Platte 208 bearbeitet, die cachende Software 210 die Schreibanfrage auf und schreibt die Daten zu der cachenden Platte 206. Auf diese Daten wird oft Bezug genommen als ”schmutzige” Daten, da sie noch nicht zu der gecachten Platte 208 geschrieben sind, und später werden sie ”saubere” Daten, wenn sie später zu der gecachten Platte 208 geschrieben werden. Wenn die CPU 202 eine Leseanfrage für dieselben Daten verarbeitet, fängt die cachende Software 210 wiederum die Leseanfrage auf und bestimmt, ob die Daten im Cachespeicher platziert sind. Wenn die Daten im Cachespeicher gespeichert sind, liest die CPU 202 die Daten aus der cachenden Platte 206, andernfalls liest die CPU 202 die Daten aus der gecachten Platte 208.
  • Wie oben erwähnt ist, können, wenn sich der Verwender entscheidet, eine gecachte Platte 208 zu einer anderen OS-Umgebung ohne dieselbe cachende Software 210 zu bewegen, die Daten auf der gecachten Platte korrumpiert werden und nutzlos werden. Ausführungsformen der vorliegenden Erfindung adressieren diese Angelegenheit durch ein Ersetzen der aktuellen GUID-Partitionstabelle der gecachten Platte 208 durch eine modifizierte GUID-Partitionstabelle (MGPT) 218, welche die gecachten Inhalte der gecachten Platte 208 unzugänglich macht, wenn sie zu einer wechselnden OS-Umgebung bewegt wird.
  • In einem BIOS-System ist der erste Code, welcher durch die CPU während des Systemstarts ausgeführt wird, das System-BIOS, welches die Hardware für das Computersystem 200 einrichtet und das Betriebssystem lädt. Das System-BIOS identifiziert dann eine designierte Boot-Vorrichtung, wie beispielsweise die gecachte Platte 208 und versucht, die Betriebssystem(OS)-Software, welche das Computersystem 200 weiter steuert, zu laden. In neueren Systemen, welche einen Unified Extensible Firmware Interface(UEFI)-Standard verwenden, ist diese Funktion über die UEFI unter Verwendung einer GUID-Partitionstabelle vorgesehen.
  • Der erste Sektor 0 einer Platte, welche eine GUID-Partitionstabelle (GPT) verwendet, ist für einen geschützten MBR reserviert, um das Booten des BIOS-basierten Systems von der GPT-Platte zu unterstützen. Das Layout und die Partitionsinformationen, um auf eine GPT-Platte zuzugreifen, sind in den Sektoren 1–33 der Platte gespeichert. Diese beginnenden Sektoren werden die GUID-Partitionstabelle genannt. Ausführungsformen der vorliegenden Erfindung ersetzen die ursprüngliche GUID-Partitionstabelle für die Platte durch eine modifizierte GUID-Partitionstabelle. Beispielsweise wird in einer Ausführungsform die ursprüngliche GPT 212 für die gecachte Platte 208 durch eine modifizierte GUID-Partitionstabelle (MGPT) 214 ersetzt. Die Originial-GPT 212 wird zu einem anderen Ort auf der gecachten Platte 208, beispielsweise in Richtung des Endes der gecachten Platte 208 gesichert. Zusätzlich wird die ursprüngliche GPT 212 auf der cachenden Platte 206 gesichert.
  • 3 ist ein Diagramm, welches eine beispielhafte GUID-Partitionstabelle (GPT) 212 und eine entsprechende modifizierte GUID-Partitionstabelle (MGPT) 214 in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung zeigt. Wie in 3 gezeigt ist, ist der erste logische Sektor für einen geschützten MBR reserviert, um ein Booten von BIOS-basierten Systemen von der GPT-Platte zu unterstützen. Folgend auf den Schutz-MBR-Sektor sind die primären PGT-Header- und Partitionstabellen-Einträge. Ausführungsformen der vorliegenden Erfindung modifizieren die Einträge für gecachte Partitionen, während sie ungecachte Einträge intakt belassen. Beispielsweise definiert in 3 der Eintrag 1 300a eine gecachte Partition, während der Eintrag 2 300b eine ungecachte Partition definiert. Ausführungsformen der vorliegenden Erfindung ersetzen die Daten für den gecachten Eintrag 1 300a durch Dummydaten für den Eintrag 1 300a' in der MGPT 214. Das heißt, dass Partitionsanfangs- und -endpositionsdaten für den Eintrag 1 300a' in der MGPT 214 unterschiedlich von den Partitionsanfangs- und -endpositionsdaten für den Eintrag 1 300a in der ursprünglichen GPT 212 sind.
  • Ausführungsformen der vorliegenden Erfindung jedoch modifizieren die Einträge für ungecachte Partitionen nicht. Beispielsweise definiert in 3 der Eintrag 2 300b eine ungecachte Partition. Demnach ersetzen Ausführungsformen der vorliegenden Erfindung die Daten für den gecachten Eintrag 2 300b in der MGPT 214 nicht. Das heißt, dass die Partitionsanfangs- und -endpositionsdaten für den Eintrag 2 300b in der MGPT 214 dieselben sind wie die Partitionsanfangs- und -endpositionsdaten für den Eintrag 2 300b in der ursprünglichen GPT 212. Demnach wird ein OS, welches die MGPT 214 verwendet, Zugriff auf ungecachte Partitionen haben, während es keinen Zugriff auf gecachte Partitionen hat.
  • Auf diese Art und Weise wird, wenn die gecachte Platte 208 zu einer wechselnden OS-Umgebung bewegt wird, ohne zuerst die cachende Software 210 zu deaktivieren, das neue Computersystem nicht in der Lage sein, auf irgendeine der gecachten Partitionsdaten auf der gecachten Platte 208 zuzugreifen, da es die MGTP 214 mit den Dummypartitionseintragsdaten 300a' laden wird, welche unkorrekte Layout- und Partitionsinformationen für gecachte Partitionen speichert, und demnach gecachte Partitionen auf der gecachten Platte 208 ohne die geeignete cachende Software 210 unzugänglich macht.
  • Bezug nehmend zurück auf 2 wird die ursprüngliche GPT 212 für die gecachte Platte 208 sowohl auf der cachenden Platte 206 als auch an einem vorbestimmten neuen Ort auf der gecachten Platte 208, beispielsweise nahe dem Ende der gecachten Platte 208 gespeichert. Es sollte jedoch festgehalten werden, dass die GPT 212 an irgendeinem anderen Ort als LBAs 1-33 der gecachten Platte 208 gespeichert werden kann. Beispielsweise kann die GPT 212 an einem anderen Nicht-Boot-Sektor der gecachten Platte 208 gespeichert werden, mit einem Zeiger beziehungsweise Pointer zu der Adresse der GPT 212, welche auf der cachenden Platte 206 gespeichert ist. Die ursprüngliche GPT 212 weist all die angemessenen Partitionseintragsdaten für die gecachte Platte 208 auf. Allgemein kann die cachende Software 210 die GPT 212 während eines Normalbetriebs aktuell erhalten.
  • 4 ist ein Diagramm, welches eine gecachte Platte 208 zeigt, welche eine Mehrzahl von Partitionen 400a400n hat, auf welche in einer wechselnden OS-Umgebung, welche nicht dieselbe cachende Software hat, welche in der ursprünglichen OS-Umgebung verwendet wird, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung zugegriffen wird. Die Partitionen in 400a400b, welche in 4 veranschaulicht sind, entsprechen den GPT 212-Partitionseinträgen 300a300b und MGPT 214-Partitionseinträgen 300a'300b. Beispielsweise ist Partition 1 400a eine gecachte Partition und entspricht einem Partitionseintrag 300a, während Partition 2 400b eine ungecachte Partition ist und einem Partitionseintrag 300b entspricht.
  • Wenn die gecachte Platte 208 zu einer wechselnden OS-Umgebung bewegt wird, welche nicht dieselbe cachende Software hat, welche in der ursprünglichen OS-Umgebung verwendet wird, erlaubt es die MGPT 214 dem Verwender, auf eine ungecachte Partition 2 400b auf der gecachten Platte 208 zuzugreifen. Die MGPT 214 macht jedoch die gecachte Partition 1 400a der gecachten Platte 208 unzugänglich, wenn die gecachte Platte 208 zu der wechselnden OS-Umgebung bewegt wird, welche nicht dieselbe cachende Software hat, welche in der ursprünglichen OS-Umgebung verwendet wird. Als ein Ergebnis wird der Verwender erinnert, die gecachte Platte 208 zurück zu dem ursprünglichen Computersystem zu bringen und die cachende Software 210 zu deaktivieren, um die Daten der gecachten Partition auf der gecachten Platte 208 in der wechselnden OS-Umgebung zugänglich zu machen. Um die gecachte Platte 208 wieder herzustellen, spülen Ausführungsformen der vorliegenden Erfindung die cachende Platte 206 und ersetzen die MGPT 214 auf der gecachten Platte 208 durch die ursprüngliche GPT 212, welche aktuell gehalten worden ist.
  • 5 ist ein Blockschaltbild, welches ein beispielhaftes Computersystem 200, in dem die gecachte Platte 208 vollständig aktualisiert worden ist und in sich selbst vollständig gemacht worden ist, und auf welche sicher von einem wechselnden OS zugegriffen werden kann, wo die cachende Software nicht vorhanden ist, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung zeigt. Das Computersystem 200 weist eine CPU 202 auf, welche zu einem Systemspeicher 204, einer cachenden Platte 206 und einer gecachten Platte 208 verbunden ist. Zusätzlich ist cachende Software 210 in den Systemspeicher 204 geladen und fungiert, um eine Rückschreib-Cache-Funktionalität des Computersystems 200 zu erleichtern. Wie oben erwähnt ist, sieht die cachende Software 210 eine komplette Ansicht der gecachten Platte 208 für das OS vor, so dass der Verwender immer eine komplette Ansicht der gecachten Platte 208 sieht, unabhängig davon, ob einige Daten tatsächlich auf der cachenden Platte 206 gespeichert werden oder nicht.
  • Wie oben diskutiert ist, macht, wenn der Verwender sich entscheidet, eine gecachte Platte 208 zu einer wechselnden OS-Umgebung zu bewegen, in der dieselbe cachende Software 210 nicht gegenwärtig ist, die modifizierte GUID-Partitionstabelle die gecachten Partitionen der gecachten Platte 208 unzugänglich, wenn die modifizierte GUID-Partitionstabelle durch die wechselnde OS-Umgebung verwendet wird, um auf die Daten auf der gecachten Platte 208 zuzugreifen.
  • Demnach sollte, um die gecachte Platte 208 zu einer wechselnden OS-Umgebung zu bewegen, der Verwender ein Platten-Cachen für die gecachte Platte 208 durch ein Senden eines Befehls zum Deaktivieren des Cachens zu der cachenden Software 210 deaktivieren. Als Antwort auf den Empfang einer Anfrage zum Deaktivieren des Cachens für die gecachte Platte 208 bereitet die cachende Software 210 die gecachte Platte 208 für eine sichere Entfernung und Verwendung in der wechselnden OS-Umgebung vor.
  • Insbesondere spült die cachende Software 210 die gecachten Daten für die gecachte Platte 208 durch ein Sicherstellen, dass all die schmutzigen Daten für die gecachte Platte 208, welche sich nach wie vor auf der cachenden Platte 206 befinden, zu der gecachten Platte 208 geschrieben werden. Zusätzlich stellt die cachende Software 210 sicher, dass die ursprüngliche GPT 212 für die gecachte Platte 208 konsistent und vollständig für die gecachte Platte 208 ist durch ein Durchführen jeglicher Aktualisierungen für die GPT 212 wie notwendig. Dann schreibt die cachende Software 210 die aktualisierte GPT 212 zu der gecachten Platte 208. In dem Beispiel der 5 wird dies durch ein Ersetzen der MGPT 214, welche auf der gecachten Platte 208 gespeichert ist, durch die aktualisierte GPT 212 für die gecachte Platte 208 getan. Danach sind alle Partitionen auf der gecachten Platte 208 vollständig. Das heißt, die gecachte Platte 208 ist in sich selbst vollständig und auf sie kann sicher von einem wechselnden OS zugegriffen werden, in dem die cachende Software 210 nicht gegenwärtig ist.
  • 6 ist ein Flussdiagramm, welches eine Verfahren 600 zum Schützen der Datenintegrität einer gecachten Platte, wenn die Platte zu einer wechselnden OS-Umgebung bewegt wird, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung zeigt. In einer anfänglichen Operation 602 werden Vor-Vorgangs- bzw. Vorprozessoperationen durchgeführt. Vorprozessoperationen können beispielsweise ein Laden cachender Software in einen Systemspeicher und andere Vorprozessoperationen aufweisen, welche Fachleuten, mit der Einsicht, welche aus einem sorgfältigen Lesen der vorliegenden Offenbarung gewonnen wird, offensichtlich sein werden.
  • In Operation 604 wird die ursprüngliche GUID-Partitionstabelle für die gecachte Platte an einem anderen Ort als den Sektoren 1–33 der gecachten Platte gespeichert. Bezug nehmend auf 2 wird, wenn die cachende Software 210 zuerst installiert wird, und jedes Mal wenn die cachende Software 210 neuerlich für eine zu cachende Platte aktiviert wird, die ursprüngliche GUID-Partitionstabelle für die gecachte Platte 208 gelesen und an einem anderen Ort als den Sektoren 1–33 der gecachten Platte 208 gespeichert. Eine Ausführungsform der vorliegenden Erfindung liest die ursprüngliche GPT für die gecachte Platte und speichert die ursprüngliche GPT an einem anderen Ort als den Sektoren 1–33 der gecachten Platte. Beispielsweise wird in 2 die ursprüngliche GPT 212 für die gecachte Platte 208 auf der cachenden Platte 206 und auf der gecachten Platte 208 an einem anderen Ort als den Sektoren 1–33 gespeichert.
  • Bezug nehmend zurück auf 6 wird die ursprüngliche GUID-Partitionstabelle für die gecachte Platte durch eine modifizierte GUID-Partitionstabelle in Operation 606 ersetzt. Wie oben erwähnt ist, macht die modifizierte GUID-Partitionstabelle gecachte Partitionen auf der Platte unzugänglich, wenn die modifizierte GUID-Partitionstabelle durch ein OS verwendet wird, um auf die Daten zuzugreifen. Sich 2 zuwendend, ersetzen Ausführungsformen der vorliegenden Erfindung die Kopie der GPT 212 auf der gecachten Platte durch eine MGPT 214. Als solches wird, wenn auf die gecachte Platte über eine wechselnde OS-Umgebung ohne dieselbe cachende Software 210 zugegriffen wird, das OS versuchen, auf die gecachte Platte unter Verwendung der MGPT 214 zuzugreifen. Als ein Ergebnis werden gecachte Partitionen auf der gecachten Platte 208 für das wechselnde OS unzugänglich, während ungecachte Partitionen auf der gecachten Platte 208 in der wechselnden OS-Umgebung zugänglich verbleiben werden.
  • In Operation 608 des Verfahrens 600 wird auf die Daten auf der gecachten Platte unter Verwendung von Informationen basierend auf der ursprünglichen GUID-Partitionstabelle zugegriffen. Das heißt, dass während des Normalbetriebs die cachende Software 210 alle Zugriffsanfragen auf Daten auf der gecachten Platte 208 auffängt, um ein Rückschreib-Cachen unter Verwendung der cachenden Platte 206 durchzuführen. Dies wird begleitet durch ein Verwenden von Informationen basierend auf der ursprünglichen GUID-Partitionstabelle, welche aktualisiert werden kann, wenn Daten auf der cachenden Platte 206 und der gecachten Platte 208 aktualisiert werden.
  • Nach-Vorgangsoperationen beziehungsweise Nach-Prozessoperationen werden in Operation 610 durchgeführt. Nach-Vorgangsoperationen können beispielsweise ein Handhaben von Lese- und Schreibanfragen, ein Übergeben von schmutzigen Daten an die gecachte Platte, wenn es die Zeit erlaubt, und weitere Nach-Vorgangsoperationen aufweisen, welche für Fachleute mit der Einsicht, welche nach einem sorgfältigen Lesen der vorliegenden Offenbarung ermöglicht wird, offensichtlich sein werden.
  • 7 ist ein Flussdiagramm, welches ein Verfahren 700 zeigt, um gecachte Partitionen auf der gecachten Platte in wechselnden OS-Umgebungen als Antwort auf einen Empfang einer Anfrage zum Deaktivieren des Cachens in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung zugänglich zu machen. In einer anfänglichen Operation 702 werden Vor-Prozessoperationen durchgeführt. Vor-Prozessoperationen können beispielsweise ein Vorsehen einer Rückschreib-Cache-Funktionalität für die gecachte Platte und andere Vor-Prozessoperationen aufweisen, welche für Fachleute mit der Einsicht, welche nach einem sorgfältigen Lesen der vorliegenden Offenbarung erreicht wird, offensichtlich sein wird.
  • In Operation 704 wird eine Anfrage zum Deaktivieren des Cachens empfangen. Wenn ein Verwender wünscht, die gecachte Platte zu einer wechselnden OS-Umgebung zu bewegen, sollte der Verwender zuerst ein Cachen für die gecachte Platte deaktivieren, um sicherzustellen, dass die Daten, welche auf der gecachten Platte gespeichert sind, vollständig aktualisiert werden und rein sind. Wie detaillierter unten stehend beschrieben werden wird, triggert ein Deaktivieren des Cachens für die gecachte Platte die cachende Software, um sicherzustellen, dass die Platte vollständig aktualisiert wird und vollständig ist, und es möglich ist, dass von einem wechselnden OS sicher zugegriffen wird, in dem die cachende Software nicht gegenwärtig ist.
  • Als Antwort auf ein Empfangen der Anfrage beziehungsweise Anforderung zum Deaktivieren des Cachens wird die modifizierte GUID-Partitionstabelle auf der gecachten Platte durch die ursprüngliche Partitionstabelle für die gecachte Platte, welche aktuell gehalten worden ist, in Operation 706 ersetzt. Dies kann durchgeführt werden durch ein Ersetzen der MGPT auf der gecachten Platte mit einer vollständig aktualisierten GPT für die gecachte Platte. Sich 5 zuwendend bereitet als Antwort auf einen Empfang einer Anforderung zum Deaktivieren des Cachens für die gecachte Platte 208 die cachende Software 210 die gecachte Platte 208 für eine sichere Entfernung und Verwendung in der wechselnden OS-Umgebung vor. Demnach spült die cachende Software 210 die gecachten Daten für die gecachte Platte 208 durch ein Sicherstellen, dass all die schmutzigen Daten für die gecachte Platte 208, welche sich noch auf der cachenden Platte 206 befinden, zu der gecachten Platte 208 geschrieben werden. Zusätzlich stellt die cachende Software 210 sicher, dass die ursprüngliche GUID-Partitionstabelle 212 für die gecachte Platte 208 konsistent und vollständig für die gecachte Platte 208 ist durch ein Durchführen jeglicher Aktualisierungen für die GUID-Partitionstabelle 212, wie notwendig. Dann schreibt die cachende Software 210 die aktualisierte GUID-Partitionstabelle 212 zu der gecachten Platte 208. In dem Beispiel der 5 wird dies durch ein Ersetzen der MGPT 214, welche auf der gecachten Platte 208 gespeichert ist, durch die GPT 212 für die gecachte Platte 208 getan. Danach sind die Daten auf der gecachten Platte 208 vollständig. Das heißt, die gecachte Platte 208 ist in sich selbst vollständig und es kann auf sie sicher von einem wechselnden OS zugegriffen werden, in dem die cachende Software 210 nicht gegenwärtig ist.
  • Bezug nehmend zurück auf 7 wird die cachende Funktionalität der gecachten Platte in Operation 708 deaktiviert. Wenn die cachende Software die gecachte Platte für eine sichere Entfernung und Verwendung in der wechselnden OS-Umgebung vorbereitet, wird eine Cache-Funktionalität für die gecachte Platte deaktiviert und die formal gecachte Platte kann zu einer wechselnden OS-Umgebung entfernt werden und es kann sicher auf sie zugegriffen werden. Nach-Prozessoperationen werden in Operation 710 durchgeführt. Nach-Prozessoperationen können beispielsweise ein Aktivieren des Cachens für andere Vorrichtungen, ein Entfernen der formal gecachten Platte von dem System und andere Nach-Prozessoperationen aufweisen, welche für Fachleute mit der Einsicht, welche nach einem sorgfältigen Lesen der vorliegenden Offenbarung erreicht wird, offensichtlich sein werden.
  • Ausführungsformen der vorliegenden Erfindung können in irgendeiner Speicherumgebung verwendet werden, in der mehr als eine Platte involviert ist, um die vollständige Ansicht des Speicheruntersystems vorzusehen. Beispielsweise können Ausführungsformen der vorliegenden Erfindung in einer RAID-Umgebung verwendet werden, in der mehrere Laufwerke verwendet werden, um Daten zu speichern. In RAID kann die RAID-Software verwendet werden, um eine vollständige Ansicht der logischen Vorrichtung, die RAID repräsentiert, vorzusehen. Die individuellen Platten des RAID-Array können jeweils ihre GUID-Partitionstabelle ersetzt durch eine modifizierte GUID-Partitionstabelle haben, welche die Daten, welche auf der Platte gespeichert sind, unzugänglich macht, wenn die Platte zu einer wechselnden OS-Umgebung bewegt wird, wo die RAID-Software nicht gegenwärtig ist. Auf diese Art und Weise kann die Integrität der Daten auf den individuellen RAID-Platten geschützt werden, sollte irgendeine Platte fehlerhafterweise zu einer wechselnden OS-Umgebung bewegt werden.
  • Obwohl die vorangehende Erfindung in einigen Details zum Zweck der Klarheit des Verständnisses beschrieben worden ist, wird es offensichtlich sein, dass bestimmte Änderungen und Modifikationen beziehungsweise Abwandlungen innerhalb des Umfangs der beigefügten Ansprüche praktiziert werden können. Demzufolge müssen die vorliegenden Ausführungsformen als veranschaulichend und nicht beschränkend angesehen werden, und die Erfindung ist nicht auf die hier angegeben Details zu beschränken, sondern sie kann innerhalb des Umfangs und der Äquivalente der beigefügten Ansprüche abgewandelt werden.

Claims (20)

  1. Verfahren zum Schützen der Datenintegrität einer Platte in einer wechselnden Betriebssystem(OS)-Umgebung, das Folgendes aufweist: ein Ersetzen einer global eindeutigen Identifizierer-Partitionstabelle (GPT) (212) für eine gecachte Platte (208) durch eine modifizierte global eindeutige Identifizierer-Partitionstabelle (MGPT) (214), wobei die MGPT (214) gecachte Partitionen (400a) auf der gecachten Platte (208) unzugänglich macht, wenn die MGPT (214) durch ein OS verwendet wird, um auf die gecachten Partitionen (400a) zuzugreifen, und wobei ungecachte Partitionen (400b) auf der gecachten Platte (208) zugänglich sind, wenn die MGPT (214) durch das OS verwendet wird, um auf die ungecachten Partitionen (400b) zuzugreifen; und ein Zugreifen auf die Daten auf der gecachten Platte (208) unter Verwendung von Informationen basierend auf der GPT (212).
  2. Verfahren nach Anspruch 1, wobei Partitionseinträge in der MGPT (214) für gecachte Partitionen (400a) Anfangs- und Endpositionen unterschiedlich von denen haben, die in entsprechenden Einträgen in der GPT (212) für die gecachte Platte (208) gespeichert sind.
  3. Verfahren nach Anspruch 2, wobei Partitionseinträge in der MGPT (214) für ungecachte Partitionen (400b) dieselben sind wie entsprechende Einträge in der GPT (212) für die gecachte Platte (208).
  4. Verfahren nach Anspruch 2, wobei die MGPT (214) auf der gecachten Platte (208) in einer solchen Art und Weise gespeichert wird, dass die MGPT (214) durch ein OS verwendet werden wird, um die gecachte Platte (208) in einer wechselnden Betriebssystem(OS)-Umgebung zu booten.
  5. Verfahren nach Anspruch 1, weiterhin aufweisend ein Ersetzen der MGPT (214) auf der gecachten Platte (208) durch die GPT (212) als Antwort auf ein Empfangen einer Anfrage, ein Cachen zu deaktivieren.
  6. Verfahren nach Anspruch 1, wobei die GPT (212) auf einer cachenden Platte (206) gespeichert wird, wobei die cachende Platte (206) zum Rückschreib-Cachen verwendet wird, um gecachte Daten für die gecachte Platte (208) zu speichern.
  7. Verfahren nach Anspruch 6, wobei die GPT (212) auch auf der gecachten Platte (208) an einem anderen Ort als einem Ort der MGPT (214) gespeichert wird.
  8. Verfahren zum Schützen einer Datenintegrität einer Platte in einer wechselnden Betriebssystem(OS)-Umgebung, das Folgendes aufweist: ein Ersetzen einer global eindeutigen Identifizierer-Partitionstabelle (GPT) (212) für eine gecachte Platte (208) durch eine modifizierte global eindeutige Identifizierer-Partitionstabelle (MGPT) (214), wobei die MGPT (214) gecachte Partitionen (400a) auf der gecachten Platte (208) unzugänglich macht, wenn die MGPT (214) durch ein OS verwendet wird, um auf die gecachten Partitionen (400a) zuzugreifen, und wobei ungecachte Partitionen (400b) auf der gecachten Platte (208) zugänglich sind, wenn die MGPT (214) durch das OS verwendet wird, um auf die ungecachten Partitionen (400b) zuzugreifen; ein Zugreifen auf die Daten auf der gecachten Platte (208) unter Verwendung von Informationen basierend auf der GPT (212); und ein Ersetzen der MGPT (214) auf der gecachten Platte (208) durch die GPT (212) als Antwort auf ein Empfangen einer Anfrage, das Cachen zu deaktivieren.
  9. Verfahren nach Anspruch 8, wobei Partitionseinträge in der MGPT (214) für gecachte Partitionen (400a) Anfangs- und Endpositionen unterschiedlich von denen haben, die in entsprechenden Einträgen in der GPT (212) für die gecachte Platte (208) gespeichert sind.
  10. Verfahren nach Anspruch 9, wobei Partitionseinträge in der MGPT (214) für ungecachte Partitionen (400b) dieselben sind wie entsprechende Einträge in der GPT (212) für die gecachte Platte (208).
  11. Verfahren nach Anspruch 9, wobei die MGPT (214) auf der gecachten Platte (208) in einer solchen Art und Weise gespeichert wird, dass die MGPT (214) durch ein OS verwendet werden wird, um die gecachte Platte (208) in einer wechselnden Betriebssystem(OS)-Umgebung zu booten.
  12. Verfahren nach Anspruch 8, wobei die GPT (212) auf einer cachenden Platte (206) gespeichert wird, wobei die cachende Platte (206) zum Rückschreib-Cachen verwendet wird, um gecachte Daten für die gecachte Platte (208) zu speichern.
  13. Verfahren nach Anspruch 8, wobei die GPT (212) auch auf der gecachten Platte (208) an einem anderen Ort als einem Ort der MGPT (214) gespeichert wird.
  14. Computerprogramm, welches auf einem computerlesbaren Medium ausgebildet ist zum Schützen einer Datenintegrität einer Platte in einer wechselnden Betriebssystem(OS)-Umgebung, aufweisend: Computerbefehle, welche eine global eindeutige Identifizierer-Partitionstabelle (GPT) (212) für eine gecachte Platte (208) durch eine modifizierte global eindeutige Identifizierer-Partitionstabelle (MGPT) (214) ersetzen, wobei die MGPT (214) gecachte Partitionen (400a) auf der gecachten Platte (208) unzugänglich macht, wenn die MGPT (214) durch ein OS verwendet wird, um auf die gecachten Partitionen (400a) zuzugreifen, und wobei ungecachte Partitionen (400b) der gecachten Platte (208) zugänglich sind, wenn die MGPT (214) durch das OS verwendet wird, um auf die ungecachten Partitionen (400b) zuzugreifen; und Computerbefehle, welche auf die Daten auf der gecachten Platte (208) unter Verwendung von Informationen basierend auf der GPT (212) zugreifen.
  15. Computerprogramm nach Anspruch 14, wobei Partitionseinträge in der MGPT (214) für gecachte Partitionen (400a) Anfangs- und Endpositionen unterschiedlich von denen haben, die in entsprechenden Einträgen in der GPT (212) für die gecachte Platte (208) gespeichert sind.
  16. Computerprogramm nach Anspruch 15, wobei Partitionseinträge in der MGPT (214) für ungecachte Partitionen (400b) dieselben sind wie entsprechende Einträge in der GPT (212) für die gecachte Platte (208).
  17. Computerprogramm nach Anspruch 14, wobei die MGPT (214) auf der gecachten Platte (208) in einer solchen Art und Weise gespeichert wird, dass die MGPT (214) durch ein OS verwendet werden wird, um die gecachte Platte (208) in einer wechselnden Betriebssystem(OS)-Umgebung zu booten.
  18. Computerprogramm nach Anspruch 14, weiterhin aufweisend Computerbefehle, welche die MGPT (214) auf der gecachten Platte (208) durch die GPT (212) als Antwort auf ein Empfangen einer Anforderung zum Deaktivieren des Cachens ersetzen.
  19. Computerprogramm nach Anspruch 14, wobei die GPT (212) auf einer cachenden Platte (206) gespeichert wird, wobei die cachende Platte (206) zum Rückschreib-Cachen verwendet wird, um gecachte Daten für die gecachte Platte (208) zu speichern.
  20. Computerprogramm nach Anspruch 14, wobei die GPT (212) auch auf der Platte an einem Ort anders als einem Ort der MGPT (214) gespeichert wird.
DE102013109088.5A 2012-08-27 2013-08-22 Verfahren zum Schützen der Integrität von gecachten GPT-Plattendaten in einer externen Betriebssystem-Umgebung Withdrawn DE102013109088A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/595,986 US20140059291A1 (en) 2012-08-27 2012-08-27 Method for protecting storage device data integrity in an external operating environment
US13/595,986 2012-08-27
US13/967,219 US20140059293A1 (en) 2012-08-27 2013-08-14 Method for protecting a gpt cached disks data integrity in an external operating system environment
US13/967,219 2013-08-14

Publications (1)

Publication Number Publication Date
DE102013109088A1 true DE102013109088A1 (de) 2014-02-27

Family

ID=50069724

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013109088.5A Withdrawn DE102013109088A1 (de) 2012-08-27 2013-08-22 Verfahren zum Schützen der Integrität von gecachten GPT-Plattendaten in einer externen Betriebssystem-Umgebung

Country Status (5)

Country Link
US (1) US20140059293A1 (de)
KR (1) KR102145358B1 (de)
CN (1) CN103631564B (de)
DE (1) DE102013109088A1 (de)
TW (1) TW201418984A (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101999617B1 (ko) * 2012-09-24 2019-07-12 삼성전자주식회사 전자 장치, gpt 복원 방법 및 컴퓨터 판독가능 기록매체
US9208105B2 (en) 2013-05-30 2015-12-08 Dell Products, Lp System and method for intercept of UEFI block I/O protocol services for BIOS based hard drive encryption support

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155571B2 (en) * 2002-09-30 2006-12-26 International Business Machines Corporation N-source in-kernel cache for high performance in computer operating systems
US20040088481A1 (en) * 2002-11-04 2004-05-06 Garney John I. Using non-volatile memories for disk caching
EP1503283A1 (de) * 2003-08-01 2005-02-02 Hewlett-Packard Development Company, L.P. Datenverarbeitungsvorrichtung und Verfahren
US7558911B2 (en) * 2003-12-18 2009-07-07 Intel Corporation Maintaining disk cache coherency in multiple operating system environment
US7934069B2 (en) * 2007-04-27 2011-04-26 Hewlett-Packard Development Company, L.P. Enabling and disabling cache in storage systems
JP5300407B2 (ja) * 2008-10-20 2013-09-25 株式会社東芝 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
CN101387989A (zh) * 2008-10-29 2009-03-18 北京世纪红山科技有限公司 构建基于分区管理的虚拟存储设备的计算机系统及方法
KR101845110B1 (ko) * 2010-10-06 2018-04-03 가부시끼가이샤 도시바 분산 캐쉬 일관성 프로토콜
KR101530463B1 (ko) * 2010-11-16 2015-06-29 인텔 코포레이션 데이터 기억 시스템에 대한 엔드포인트 캐싱

Also Published As

Publication number Publication date
US20140059293A1 (en) 2014-02-27
CN103631564B (zh) 2017-03-22
TW201418984A (zh) 2014-05-16
KR102145358B1 (ko) 2020-08-18
KR20140027885A (ko) 2014-03-07
CN103631564A (zh) 2014-03-12

Similar Documents

Publication Publication Date Title
DE102017113439B4 (de) Abbildungstabellen für Speichervorrichtungen
DE102018105427A1 (de) Beibehalten von Daten bei einer Stromabschaltung
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102008057219B4 (de) Verfahren zum Betreiben eines Solid-State-Speichersystems, Solid-State-Speichersystem und Computersystem
DE69604734T2 (de) Client-Server-Computersystem und Verfahren zum Verwenden eines lokalen Plattenlaufwerks als Daten-Cache
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE112015005211T5 (de) Systeme und verfahren für die speicherfehler-verwaltung
DE112013007279T5 (de) Ereignisausgelöstes speichern von Daten in einem nicht flüchtigen Speicher
DE112012002615T5 (de) Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren
DE102015007709A1 (de) Invalidationsdatenbereich für einen Cache
DE102010013263A1 (de) Techniken, um ein energieausfallsicheres Caching ohne atomare Metadaten durchzuführen
DE102016001591A1 (de) System und Verfahren für Copy-On-Write auf einer SSD
DE102007003179A1 (de) Verfahren zum Systembooten mit Direktspeicherzugriff bei einer neuen Speicherarchitektur
DE112013001284T5 (de) Adaptive Cachespeicher-Umstufungen in einem Caching-System mit zwei Stufen
DE112006003260T5 (de) Verfahren zum dynamischen Freilegen von Sicherungs- und Wiederherstellungslaufwerken
DE102010030750A1 (de) Bitfehlerschwelle und inhaltsadressierbarer Speicher zur Adressierung einer umabgebildeten Speichereinheit
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE112009004621B4 (de) Speichervorrichtungs-LöschbefehI mit einem Steuerfeld, das durch eine Anforderer-Vorrichtung steuerbar ist
DE102013021679A1 (de) Rettung von Ereignisnachverfolgungsinformationen bei Stromausfall-Unterbrechungsszenarien
DE102019106126A1 (de) Massenspeicherungsvorrichtung mit vom Host eingeleiteter Pufferausräumung
DE102020122182A1 (de) Virtuelle-maschine-replikation und -migration
DE102008058209A1 (de) Anordnung und Verfahren um zu verhindern, dass ein Anwenderbetriebssystem in einem VMM System eine Anordnung abschaltet, die von einem Servicebetriebssystem verwendet wird
DE102012201154A1 (de) Transaktionsspeicher
DE112020000183T5 (de) Speicherungsklassenspeicherzugriff
DE112017001658T5 (de) Behandlung von fehleranfälligen Cache-Zeilen-Slots eines speicherseitigen Caches eines Multilevel-Systemspeichers

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: KUHNEN & WACKER PATENT- UND RECHTSANWALTSBUERO, DE

R005 Application deemed withdrawn due to failure to request examination