DE102012221813A1 - Verfahren zur optimierung der speicherzuordnung in einer virtuellen arbeitsplatzumgebung - Google Patents

Verfahren zur optimierung der speicherzuordnung in einer virtuellen arbeitsplatzumgebung Download PDF

Info

Publication number
DE102012221813A1
DE102012221813A1 DE102012221813A DE102012221813A DE102012221813A1 DE 102012221813 A1 DE102012221813 A1 DE 102012221813A1 DE 102012221813 A DE102012221813 A DE 102012221813A DE 102012221813 A DE102012221813 A DE 102012221813A DE 102012221813 A1 DE102012221813 A1 DE 102012221813A1
Authority
DE
Germany
Prior art keywords
file
virtual
user
identifier
stored
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.)
Pending
Application number
DE102012221813A
Other languages
English (en)
Inventor
Randa Salem
Pietro Iannucci
Cristiana D'Amore
Luigi Pichetti
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 DE102012221813A1 publication Critical patent/DE102012221813A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Verfahren, Rechnersystem und Programmprodukt zur Optimierung der Speicherzuordnung in einer virtuellen Arbeitsplatzumgebung, wobei die virtuelle Arbeitsplatzumgebung eine gemeinschaftlich genutzte Speicherkapazität verwaltet. Die gemeinschaftlich genutzte Speicherkapazität enthält eine oder mehrere zuvor gespeicherte Dateien, wobei jede gespeicherte Datei einer jeweiligen eindeutigen ersten Dateikennung zugeordnet wird, wobei die virtuelle Arbeitsplatzumgebung einer Verarbeitungseinheit eines Benutzers mindestens einen virtuellen Arbeitsplatz bereitstellt. Das Verfahren weist nach dem Empfang einer ersten Schreibanforderung, eine in der Anforderung angegebene zweite Datei zu schreiben, die folgenden Schritte auf: Festlegen einer zweiten Dateikennung der angegebenen zweiten Datei; Vergleichen der zweiten Dateikennung mit der ersten Dateikennung einer beliebigen ersten Datei, die in der gemeinschaftlich genutzten Speicherkapazität gespeichert wird; wenn die zweite Dateikennung mit einer der ersten Dateikennungen identisch ist, Erzeugen eines Zeigers auf die gespeicherte erste Datei, die dieser ersten Dateikennung zugeordnet ist; und wenn die zweite Dateikennung nicht mit einer beliebigen der ersten Dateikennungen identisch ist, Speichern der angegebenen Datei, die der zweiten Dateikennung zugeordnet ist, in der gemeinschaftlich genutzten Speicherkapazität, wobei die zweite Dateikennung als eine weitere erste Dateikennung gespeichert wird und die zweite Datei als eine weitere erste Datei gespeichert wird, und Erzeugen des Zeigers auf die gespeicherte weitere erste Datei.

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft Systeme in einer virtuellen Umgebung und insbesondere ein Verfahren zur Optimierung der Speicherzuordnung in einer virtuellen Arbeitsplatzumgebung.
  • Hintergrund
  • Die Virtualisierung von Rechnern entwickelt sich für Unternehmen unterschiedlicher Größe zu einer der bedeutenderen Technologien. Sie erhöht die Rechenleistung und die Flexibilität einer der Datenverarbeitung dienenden Hardware-Plattform. Insbesondere die Nutzung der Speichervirtualisierung in einer virtuellen Arbeitsplatzumgebung wird ebenfalls ein entscheidender Teil der betrieblichen Informationsverarbeitung in diesen Unternehmen.
  • In einer virtuellen Arbeitsplatzumgebung ist das lokale Dateisystem, das jedem Arbeitsplatz zugewiesen wird, ein Bereich des fest zugeordneten virtualisierten Speichers, der einem physischen Speicherpool entnommen wird. Jedes Mal, wenn ein Benutzer eine Datei in seinem Dateisystem speichert, wird eine Kopie dieser Datei in dem fest zugeordneten Bereich des physischen Speichers für diesen Arbeitsplatz gespeichert. In dem Fall, in dem mehrere Benutzer eines virtuellen Arbeitsplatzes, die zu demselben Geschäftskontext gehören, dieselbe Datei in ihrem Dateisystem speichern, hat dies zur Folge, dass wahrscheinlich mehrere Kopien derselben Datei in dem gemeinsamen physischen Speicher abgelegt werden. Diese Redundanz führt zu einer unnötigen Belegung von zusätzlichem Speicherplatz, wodurch es notwendig wird, größere Speicherdatenträger als tatsächlich benötigt zu erwerben.
  • Ein weiteres Problem im Zusammenhang mit der Nutzung von anderen Systemen nach dem Stand der Technik besteht darin, dass die Benutzer vorher festgelegte oder gemeinsam benutzte Verzeichnisbaumstrukturen verwenden müssen und ihre Dateien nicht an einem vom Benutzer angegebenen Speicherort speichern können. Die Benutzer der Systeme können auch die Verzeichnisstruktur der gemeinschaftlich genutzten Speicherdatenträger nicht verändern, da dies andere Benutzer verwirren würde, die davon ausgehen, dass ihre Dateien nach wie vor über den ursprünglichen Dateipfad zur Verfügung stehen.
  • Kurzdarstellung der Erfindung
  • Eine Aufgabe von Ausführungsformen der Erfindung ist es, ein verbessertes, von einem Rechner durchgeführtes Verfahren, Datenverarbeitungssystem und ein entsprechendes rechnerlesbares Speichermedium bereitzustellen. Diese Aufgabe wird durch den Erfindungsgegenstand der unabhängigen Ansprüche gelöst. Vorteilhafte Ausführungsformen sind in den abhängigen Ansprüchen beschrieben.
  • In der hier verwendeten Weise bezeichnet der Begriff „virtueller Arbeitsplatz” eine virtuelle Maschine, die sich physisch in einem Datenspeicher befindet, der von einer virtuellen Arbeitsplatzumgebung verwaltet wird. Insbesondere kann der virtuelle Arbeitsplatz von der virtuellen Arbeitsplatzumgebung bereitgestellt werden, die auf einem Server statt auf dem lokalen Speicher eines Client ausgeführt wird. Wenn Benutzer von ihren lokalen Client-Maschinen aus arbeiten, werden folglich alle Programme, Anwendungen, Prozesse und Daten, die verwendet werden, gemäß Ausführungsformen auf dem Server abgelegt und zentral ausgeführt. Die Virtualisierung von Arbeitsplätzen ermöglicht Benutzern, Betriebssysteme und Anwendungen von einem Smartphone oder von einer beliebigen anderen Form eines Thin Client aus auszuführen, der über begrenzte Hardware-Ressourcen verfügt. Gemäß manchen anderen Anwendungen können die virtuellen Arbeitsplätze vorübergehend in die Arbeitsspeicher der Client-Einheiten geladen werden, während jedwede Änderung an den Daten nur in Speicherdatenträgern, die von dem Server verwaltet werden, bestehen bleibt.
  • Der Begriff „rechnerlesbares Speichermedium” umfasst in der hier verwendeten Weise jedes physische Speichermedium, das Befehle speichern kann, die von einem Prozessor einer Datenverarbeitungseinheit ausgeführt werden können. Das rechnerlesbare Speichermedium kann als ein rechnerlesbares, übergangsloses Speichermedium bezeichnet werden. Das rechnerlesbare Speichermedium kann als ein physischer rechnerlesbarer Datenträger bezeichnet werden. In manchen Ausführungsformen ist ein rechnerlesbares Speichermedium gegebenenfalls auch in der Lage, Daten zu speichern, auf die der Prozessor der Datenverarbeitungseinheit zugreifen kann. Zu Beispielen für rechnerlesbare Speichermedien gehören, ohne darauf beschränkt zu sein: eine Diskette, ein Lochstreifen, Lochkarten, ein Magnet-Festplattenlaufwerk, ein Halbleiterlaufwerk, ein Flash-Speicher, ein USB-Speicherstick, ein Direktzugriffspeicher (Random Access Memory (RAM)), ein Nur-Lese-Speicher (Read Only Memory (ROM)), eine optische Platte, eine magnetooptische Platte und die Registerdatei des Prozessors. Zu Beispielen für optische Platten gehören Compact Disks (CD) und Digital Versatile Disks (DVD), zum Beispiel CD-ROM-, CD-RW-, CD-R-, DVD-ROM-, DVD-RW- oder DVD-R-Platten. Der Begriff „rechnerlesbares Speichermedium” bezeichnet auch verschiedene Arten von Aufzeichnungsmedien, auf die die Rechnereinheit über ein Netzwerk oder eine Übertragungsverbindung zugreifen kann. Beispielsweise können Daten über ein Modem, über das Internet oder über ein lokales Netzwerk abgerufen werden. Erwähnungen eines rechnerlesbaren Speichermediums sollten so verstanden werden, dass es möglichicherweise mehrere rechnerlesbare Speichermedien aufweist. Verschiedene ausführbare Bestandteile von einem Programm oder von Programmen können an verschiedenen Orten gespeichert werden. Das rechnerlesbare Speichermedium kann zum Beispiel mehrere rechnerlesbare Speichermedien in demselben Rechnersystem aufweisen. Das rechnerlesbare Speichermedium kann auch ein rechnerlesbares Speichermedium sein, das über mehrere Rechnersysteme oder Datenverarbeitungseinheiten verteilt ist.
  • Der Begriff „Metadaten-Ablage” (metadata repository) umfasst vorliegend ein Speichermedium oder einen Teil eines Speichermediums mit gespeicherten Metadaten. Die Metadaten-Ablage kann zum Beispiel als ein Datenbanksystem realisiert werden, das zur Unterstützung der Speicherung, der Verwendung und des Abrufs von Metadaten durch einen Prozessor konzipiert ist. Metadaten können beispielsweise Informationen über die Art und Weise des Zugriffs auf bestimmte Daten oder weitere Einzelheiten über die Daten enthalten.
  • Der Begriff „Anwendungsprogrammierschnittstelle” (application programming interface (API)) bezeichnet vorliegend eine Schnittstelle, die von Software, welche die Schnittstelle realisieren, verwendet wird, um miteinander in Dialogverkehr zu treten; in ziemlich der gleichen Weise, in der Software eine Benutzerschnittstelle realisieren könnte, um Benutzern zu ermöglichen, mit ihr in Dialogverkehr zu treten. APIs werden von Software-Anwendungen (software applications (SAs), Bibliotheken und Betriebssystemen eingesetzt, um festzulegen, wie andere Software-Programme Aufrufe an sie durchführen oder Dienste von ihnen anfordern können. Eine API bestimmt das Vokabular und Aufrufkonventionen, die der Programmierer verwenden sollte, um die Dienste in Anspruch zu nehmen. Sie kann Spezifikationen für Routinen, Datenstrukturen, Objektklassen und Protokolle enthalten, die zur Kommunikation zwischen einem Nutzer und einem Implementierer der API verwendet werden.
  • Der Begriff „Zugriffssteuerungsliste” (access control list (ACL)) bezeichnet vorliegend eine in jedem Sicherheitskonzept (z. B. Zugriffssteuerungskonzept, zwingend erforderliches Zugriffssteuerungskonzept, benutzerbestimmbares Zugriffssteuerungskonzept, gitterbasiertes Zugriffssteuerungskonzept usw.) gemachte Angabe von Benutzern und/oder Gruppen von Benutzern, denen der Zugriff auf eine Datei gestattet ist. Gemäß Ausführungsformen kann die Stufe des erlaubten Zugriffs (z. B. Nur-Lese-Zugriff, Schreib-Lese-Zugriff, Löschzugriff usw.) auch in der Zugriffssteuerungsliste angegeben werden.
  • Der Begriff „Rechnerspeicher” oder „Speicher” ist ein Beispiel für ein rechnerlesbares Speichermedium. Der Rechnerspeicher ist ein beliebiger Speicher, auf den ein Prozessor zugreifen kann. Zu Beispielen für Rechnerspeicher gehören, ohne darauf beschränkt zu sein: RAM-Speicher, Register und Registerdateien. In manchen Fällen kann ein Rechnerspeicher auch beinhalten: ein Festplattenlaufwerk, ein Diskettenlaufwerk oder ein Halbleiterlaufwerk. Ein Teil eines Speichers kann tatsächlich Auslagerungsbereich auf einem Festplattenlaufwerk sein. Erwähnungen der Begriffe „Rechnerspeicher” oder „Speicher” sollten so verstanden werden, dass Letztere möglicherweise mehrere Speicher aufweisen. Der Speicher kann zum Beispiel mehrere Speicher in demselben Rechnersystem aufweisen. Der Speicher kann auch mehrere Speicher aufweisen, die über mehrere Rechnersysteme oder Datenverarbeitungseinheiten verteilt sind.
  • Der Begriff „Prozessor” umfasst vorliegend eine elektronische Komponente, die ein Programm oder einen von einer Maschine ausführbaren Befehl ausführen kann. Erwähnungen der Datenverarbeitungseinheit dahingehend, dass sie „einen Prozessor” aufweist, sollten so verstanden werden, dass sie möglicherweise mehr als einen Prozessor oder Verarbeitungskern aufweist. Der Prozessor kann zum Beispiel ein Prozessor mit mehreren Rechenkernen sein. Ein Prozessor kann auch eine Gruppe von Prozessoren bezeichnen, die sich in einem einzigen Rechnersystem befinden oder über mehrere Rechnersysteme verteilt sind.
  • In einer Erscheinungsform betrifft die vorliegende Erfindung ein Verfahren zur Optimierung der Speicherzuordnung in einer virtuellen Arbeitsplatzumgebung, wobei die virtuelle Arbeitsplatzumgebung eine gemeinschaftlich genutzte Speicherkapazität verwaltet, wobei die gemeinschaftlich genutzte Speicherkapazität dazu dient, eine oder mehrere erste Dateien zu speichern, wobei jede gespeicherte erste Datei einer jeweiligen eindeutigen ersten Dateikennung zugeordnet wird, wobei die virtuelle Arbeitsplatzumgebung einer Verarbeitungseinheit eines Benutzers mindestens einen virtuellen Arbeitsplatz bereitstellt, wobei das Verfahren aufweist:
    • – Empfangen einer ersten Schreibanforderung, eine in der Anforderung angegebene zweite Datei zu schreiben;
    • – Festlegen einer zweiten Dateikennung der angegebenen zweiten Datei;
    • – Vergleichen der zweiten Dateikennung mit der ersten Dateikennung einer beliebigen ersten Datei, die in der gemeinschaftlich genutzten Speicherkapazität gespeichert wird;
    • – wenn die zweite Dateikennung mit einer der ersten Dateikennungen identisch ist, Erzeugen eines Zeigers auf die gespeicherte erste Datei, die dieser ersten Dateikennung zugeordnet ist; und
    • – wenn die zweite Dateikennung nicht mit einer beliebigen der ersten Dateikennungen identisch ist, Speichern der angegebenen Datei, die der zweiten Dateikennung zugeordnet ist, in der gemeinschaftlich genutzten Speicherkapazität, wobei die zweite Dateikennung als eine weitere erste Dateikennung gespeichert wird und die zweite Datei als eine weitere erste Datei gespeichert wird, und Erzeugen des Zeigers auf die gespeicherte weitere erste Datei.
  • Die Ausführungsform kann vorteilhaft sein, weil das Verfahren die Speicherung von identischen Dateien in der gemeinschaftlich genutzten Speicherkapazität verhindert und es auch verschiedenen Benutzern ermöglicht, auf dieselbe gespeicherte Datei zuzugreifen. Dadurch kann nicht nur bereits im Vorwege Speicherplatz gespart werden, sondern auch die Leistungsfähigkeit des Speichers verbessert werden. Dies steht im Gegensatz zu einem nach der Speicherung erfolgenden Deduplizierungsverfahren, das erst ausgeführt wird, wenn die Dateien in dem Speicherbereich bereits dupliziert sind.
  • Gemäß einer anderen Ausführungsform wird der Zeiger in einem lokalen Dateisystem des virtuellen Arbeitsplatzes erzeugt, wobei das lokale Dateisystem vorzugsweise in einem benutzerspezifischen Speicherbereich gespeichert wird, auf den nur dieser Benutzer zugreifen kann.
  • Gemäß einer anderen Ausführungsform wird die erste Schreibanforderung von dem mindestens einen virtuellen Arbeitsplatz empfangen, und der Zeiger wird in dem lokalen Dateisystem des virtuellen Arbeitsplatzes erzeugt.
  • Gemäß einer weiteren Ausführungsform weist das Verfahren des Weiteren die Schritte des Empfangens einer Angabe eines Pfades in dem lokalen Dateisystem von dem mindestens einen virtuellen Arbeitsplatz des Benutzers des mindestens einen virtuellen Arbeitsplatzes auf. Der Zeiger wird an einem Speicherort in dem lokalen Dateisystem erzeugt, der von dem angegebenen Pfad angegeben wird. Gemäß Ausführungsformen kann der Benutzer den Pfad über ein GUI-Element, z. B. eine Datei-Auswahleinheit, angeben, was dem Benutzer die Möglichkeit gibt, in einem vorhandenen Verzeichnisbaum eines lokalen Dateisystems zu navigieren. Im Gegensatz zu manchen Systemen nach dem Stand der Technik darf der Benutzer folglich einen Dateipfad in seinem eigenen lokalen Verzeichnis angeben und muss sich nicht eine vorher festgelegte, gemeinschaftlich genutzte Dateiverzeichnisstruktur merken und diese übernehmen. Überdies wird die Duplizierung der Dateien, die in der gemeinschaftlich genutzten Speicherkapazität gespeichert werden, vermieden. Die Ausführungsformen können vorteilhaft sein, da der Benutzer, der die Anforderung stellt, eine Datei in einen bestimmten Ordner seines virtuellen Arbeitsplatzes zu schreiben, feststellt, dass die Datei mit den gewünschten Kenndaten auf dem lokalen Dateisystem erzeugt wurde (z. B. Dateiname, Speicherort des Ordners usw.), obgleich das lokale Dateisystem in Wirklichkeit lediglich über eine Verknüpfung (Link) zu der tatsächlich vorhandenen physischen Datei verfügt, die in der gemeinschaftlich genutzten Speicherkapazität gespeichert ist. Gemäß Ausführungsformen wird das lokale Dateisystem des Benutzers in einem benutzerspezifischen Speichermedium des Benutzers gespeichert. Der benutzerspezifische Speicher wird ebenfalls von der virtuellen Arbeitsplatzumgebung verwaltet.
  • Gemäß einer weiteren Ausführungsform ist die erste und/oder die zweite Dateikennung eine Nummer einer zyklischen Redundanzprüfung (Cyclic Redundancy Check) der Datei, eine Hash-Nummer, SHA-1 oder MD5, der jeweiligen, zu der Kennung gehörenden Datei. Dies kann den Vorteil haben, dass ein robustes Verfahren bereitgestellt wird, das dazu dient, eine eindeutige Kennnummer zu berechnen, so dass verschiedene Dateien verschiedene Kennungen haben. Dadurch kann geprüft werden, ob es sich bei der Datei, die gerade zur Speicherung angefordert wird, um eine der zuvor gespeicherten Dateien in der gemeinschaftlich genutzten Speicherkapazität handelt.
  • Gemäß einer anderen Ausführungsform weist das Verfahren des Weiteren auf: nach der Speicherung von beliebigen der ersten Dateien und nach der Speicherung der zweiten Datei in der gemeinschaftlich genutzten Speicherkapazität ein Zuordnen der ersten und/oder der zweiten Datei zu einer Zugriffssteuerungsliste, die Benutzerkennungen von allen Benutzern aufweist, die Zugriff auf die gespeicherte erste oder zweite Datei haben. Darüber hinaus oder alternativ weist das Verfahren nach der Speicherung von beliebigen der ersten Dateien und nach der Speicherung der zweiten Datei in der gemeinschaftlich genutzten Speicherkapazität ein Zuordnen der gespeicherten Datei zu einer Referenzanzahl auf, die die Anzahl der Benutzer darstellt, welche Zugriff auf die gespeicherte erste oder zweite Datei haben.
  • Die Ausführungsform kann vorteilhaft sein, da sie einen sicheren und kontrollierten Zugriff auf die gespeicherten Dateien sicherstellt, die aufgrund dessen geschützt sind, dass nur den Benutzern der Zugriff gewährt wird, deren Benutzer-IDs in der Zugriffssteuerungsliste angegeben sind.
  • Gemäß Ausführungsformen sind nur Benutzerkennungen von Benutzern, denen der Zugriff auf eine gespeicherte Datei gestattet ist, in der Zugriffssteuerungsliste der gespeicherten Datei enthalten. Ein weiterer Vorteil kann darin bestehen, dass die Anzahl der Benutzer, die Zugriff auf eine gespeicherte Datei haben, einfach ermittelt werden kann, indem man eine Referenzanzahl liest, bei der es sich um eine einzelne Zahl handelt. Dies geht schneller, als wenn man diese Zahl aus der Zugriffssteuerungsliste der gespeicherten Datei lesen und ableiten müsste, indem man beispielsweise die Anzahl der in der Zugriffssteuerungsliste ausgewiesenen Benutzer zählt.
  • Gemäß einer weiteren Ausführungsform weist das Verfahren des Weiteren das Empfangen einer Löschanforderung von dem Benutzer auf. Die Löschanforderung gibt eine der ersten Dateien an. Nach dem Empfang der Löschanforderung wird die Benutzerkennung des Benutzers, der die Löschanforderung übergeben hat, aus der Zugriffssteuerungsliste derjenigen Datei gelöscht, die in der Löschanforderung angegeben ist. Gemäß einer weiteren Ausführungsform wird neben dem Entfernen der Benutzerkennung in diesem Fall die Referenzanzahl verringert. Dadurch wird sichergestellt, dass die Zugriffssteuerungsliste und die Referenzanzahl weiterhin die genaue Anzahl der Benutzer darstellen, die Zugriff auf die Datei haben. Gemäß einer anderen Ausführungsform wird in diesem Fall der Zeiger dieser Datei, die in dem lokalen Dateisystem des virtuellen Arbeitsplatzes des Benutzers gespeichert ist, ebenfalls gelöscht. Auch wird die Datei aus der gemeinsam genutzten Speicherkapazität gelöscht, wenn die Referenzanzahl den Wert null hat.
  • Gemäß einer anderen Ausführungsform weist der Schritt des Speicherns der angegebenen zweiten Datei des Weiteren die Schritte auf: Erzeugen der Zugriffssteuerungsliste und/oder der Referenzanzahl für die angegebene zweite Datei; und Hinzufügen der Benutzerkennung zu der Zugriffssteuerungsliste und/oder Erhöhen der Referenzanzahl.
  • Gemäß einer weiteren Ausführungsform weist der Schritt des Erzeugens des Zeigers den Schritt des Hinzufügens der Benutzerkennung zu der Zugriffssteuerungsliste der Datei, auf die der Zeiger gerichtet wird, und/oder das Erhöhen der Referenzanzahl auf.
  • Gemäß einer weiteren Ausführungsform weist das Verfahren des Weiteren auf:
    Empfangen einer zweiten Schreibanforderung, die zweite Datei zu schreiben;
    Erzeugen eines zweiten Zeigers auf die vorhandene erste Datei, die als Reaktion auf die erste Schreibanforderung gespeichert worden ist, wobei der zweite Zeiger in dem lokalen Dateisystem des virtuellen Arbeitsplatzes eines Benutzers erzeugt wird, der die zweite Schreibanforderung gestellt hat.
  • Gemäß einer Ausführungsform werden die erste Schreibanforderung und die zweite Schreibanforderung von demselben Benutzer empfangen, und die Referenzanzahl bleibt unverändert. Dies hat den Vorteil, dass dem Benutzer die Flexibilität gewährt wird, seine eigenen Dateien in dem Dateisystem zu organisieren, zum Beispiel, indem er dieselbe Datei ohne Einschränkungen an verschiedenen Speicherorten speichert. Gleichzeitig gestatten es diese Merkmale, nur eine Kopie der Datei in der gemeinschaftlich genutzten Speicherkapazität aufzubewahren.
  • Gemäß Ausführungsformen werden in dem Fall, in dem die erste Schreibanforderung und die zweite Schreibanforderung von verschiedenen Benutzern empfangen werden, die Referenzanzahl und die Dateizugriffsliste entsprechend aktualisiert.
  • Gemäß Ausführungsformen weist das Verfahren des Weiteren die Schritte auf:
    • – Empfangen einer Aktualisierungsanforderung von dem Benutzer, wobei die Aktualisierungsanforderung eine der ersten Dateien angibt, die von dem Benutzer geändert werden soll;
    • – Speichern der geänderten ersten Datei in der gemeinschaftlich genutzten Speicherkapazität;
    • – Erzeugen eines Zeigers auf die geänderte Datei in dem lokalen Dateisystem des Benutzers.
  • Gemäß Ausführungsformen weist das Verfahren des Weiteren das Löschen des Zeigers auf, der auf die gespeicherte geänderte erste Datei zeigt.
  • Gemäß Ausführungsformen wird die Änderung der Datei ausgeführt, indem eine geänderte lokale Kopie F' der ersten Datei F, die geändert werden soll, erzeugt wird, wobei die lokale Kopie in dem lokalen Dateisystem des Benutzers gespeichert wird, und eine Schreibanforderung wie zuvor beschrieben ausgeführt wird, um die geänderte lokale Kopie F zu schreiben.
  • Gemäß einer Ausführungsform wird der virtuelle Arbeitsplatz von der virtuellen Arbeitsplatzumgebung als eine Instanz eines Abbilds einer virtuellen Maschine bereitgestellt, und eine grafische Benutzeroberfläche des virtuellen Arbeitsplatzes wird auf einem Bildschirm einer benutzerspezifischen Verarbeitungseinheit dem Benutzer der Verarbeitungseinheit angezeigt. In Abhängigkeit von der Ausführungsform kann die Verarbeitungseinheit ein Smartphone, ein Netbook, ein Arbeitsplatzrechner (Workstation) oder dergleichen sein. Insbesondere kann die Verarbeitungseinheit eine Verarbeitungseinheit in Form eines Thin Client sein, der lediglich über begrenzte Hardware-Ressourcen verfügt.
  • Gemäß einer weiteren Ausführungsform ist der Benutzer ein Benutzer aus einer Vielzahl von Benutzern, denen jeweils eine benutzerspezifische Verarbeitungseinheit zugewiesen ist, und wobei der virtuelle Arbeitsplatz ein virtueller Arbeitsplatz aus einer Vielzahl von virtuellen Arbeitsplätzen ist. Jeder der Vielzahl der virtuellen Arbeitsplätze wird von der virtuellen Arbeitsplatzumgebung einer der Verarbeitungseinheiten bereitgestellt. Ein Server, der die virtuelle Arbeitsplatzumgebung beherbergt, ist über ein Netzwerk mit jeder der benutzerspezifischen Verarbeitungseinheiten verbunden. Die Schritte, die von Ausführungsformen der vorliegenden Erfindung, welche vorstehend beschrieben wurden, ausgeführt werden, werden von einer Speicherinfrastruktur-Verwaltungseinheit ausgeführt, die auf dem Server läuft.
  • In einer weiteren Erscheinungsform betrifft die Erfindung ein rechnerlesbares, übergangsloses Speichermedium, das rechnerlesbare Befehle aufweist, die, wenn sie von einem Prozessor ausgeführt werden, den Prozessor veranlassen, die Schritte des Verfahrens einer beliebigen der vorstehenden Ausführungsformen durchzuführen.
  • In einer anderen Erscheinungsform betrifft die Erfindung ein Rechnersystem zur Optimierung der Speicherzuordnung in einer virtuellen Arbeitsplatzumgebung, wobei die virtuelle Arbeitsplatzumgebung eine gemeinschaftlich genutzte Speicherkapazität verwaltet, wobei die geteilte Speicherkapazität eine oder mehrere zuvor gespeicherte Dateien speichert, wobei jede gespeicherte Datei einer jeweiligen eindeutigen ersten Dateikennung zugeordnet wird, wobei die virtuelle Arbeitsplatzumgebung einer Verarbeitungseinheit eines Benutzers mindestens einen virtuellen Arbeitsplatz bereitstellt, wobei das Rechnersystem aufweist:
    • – die gemeinschaftlich genutzte Speicherkapazität; und
    • – eine Server-Verarbeitungseinheit, die eine Verwaltungseinheit für eine virtuelle Speicherinfrastruktur beherbergt, wobei die Verwaltungseinheit für die virtuelle Speicherinfrastruktur so gestaltet ist, dass sie: – über die virtuelle Arbeitsplatzumgebung eine erste Schreibanforderung, eine in der Anforderung angegebene zweite Datei zu schreiben, empfängt; – eine zweite Dateikennung der angegebenen Datei festlegt; – die zweite Dateikennung mit einer jeden der ersten Dateikennungen einer beliebigen ersten Datei vergleicht, die in den gemeinschaftlich genutzten Speicherkapazitäten gespeichert worden sind; – wenn die zweite Dateikennung mit einer der ersten Dateikennungen identisch ist, einen Zeiger auf die gespeicherte erste Datei erzeugt, die dieser ersten Dateikennung zugeordnet ist; und – wenn die zweite Dateikennung nicht mit einer beliebigen der ersten Dateikennungen identisch ist, die angegebene zweite Datei, die der zweiten Dateikennung zugeordnet ist, in der gemeinschaftlich genutzten Speicherkapazität speichert, wobei die zweite Dateikennung als eine weitere erste Dateikennung gespeichert wird und die zweite Datei als eine weitere erste Datei gespeichert wird, und einen Zeiger auf die gespeicherte weitere erste Datei erzeugt.
  • Gemäß einer weiteren Ausführungsform ist die Client-Verarbeitungseinheit mit der Server-Verarbeitungseinheit über ein Netzwerk verbunden, und sie dient dazu, den virtuellen Arbeitsplatz über das Netzwerk von der virtuellen Arbeitsplatzumgebung anzufordern.
  • Gemäß weiteren Ausführungsformen ist die Client-Einheit eine Client-Einheit aus einer Vielzahl von Client-Einheiten, die jeweils einem Benutzer aus einer Vielzahl von verschiedenen Benutzern zugewiesen werden, wobei jede der Client-Einheiten dazu dient, über das Netzwerk einen virtuellen Arbeitsplatz von der virtuellen Arbeitsplatzumgebung anzufordern.
  • Gemäß bestimmten Ausführungsformen weisen die virtuellen Arbeitsplatzrechner, die jeder der Client-Einheiten bereitgestellt werden, GUI-Elemente auf, die jeweils die Zeiger darstellen, welche nach einer Schreibanforderung des Benutzers der jeweiligen Client-Einheit erzeugt worden sind. Die sichtbaren Eigenschaften der GUI-Elemente, z. B. die Farbe, der Symboltyp und dergleichen, sind identisch mit GUI-Elementen, die von der jeweiligen virtuellen Arbeitsplatzumgebung zur Anzeige von Dateien verwendet werden, so dass dem Benutzer folglich der Eindruck vermittelt wird, dass er mit einer realen Datei statt mit einer Verknüpfung arbeitet.
  • Wie der Fachmann verstehen wird, können Erscheinungsformen der vorliegenden Erfindung als ein System, ein Verfahren oder ein Rechnerprogrammprodukt realisiert werden. Folglich können Erscheinungsformen der vorliegenden Erfindung, soweit nicht ausdrücklich anders angegeben, die Gestalt einer ganz in Hardware realisierten Ausführungsform, einer ganz in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Erscheinungsformen kombiniert, die hier alle allgemein als ein „Modul” oder ein „System” bezeichnet werden können. Jede beliebige Kombination aus einem oder mehreren rechnerlesbaren Datenträgern kann verwendet werden.
  • Kurze Beschreibung der Zeichnungen
  • Im Folgenden werden bevorzugte Ausführungsformen der Erfindung lediglich beispielhaft ausführlicher beschrieben, wobei Bezug auf die Zeichnungen genommen wird, bei denen:
  • 1 eine Systemarchitektur für die Ausführung eines Verfahrens zur Optimierung der Speicherzuordnung in einer virtuellen Arbeitsplatzumgebung zeigt,
  • 2 ein Ablaufplan eines Verfahrens zur Optimierung der Speicherzuordnung in einer virtuellen Arbeitsplatzumgebung ist und
  • 3 ein Blockschaltbild einer Server-Verarbeitungseinheit und einer Client-Verarbeitungseinheit ist.
  • Ausführliche Beschreibung
  • Im Folgenden bezeichnen gleich nummerierte Elemente in den Figuren entweder ähnliche Elemente oder Elemente, die eine gleiche oder gleichwertige Funktion erfüllen. Elemente, die zuvor bereits erörtert worden sind, werden in späteren Figuren nicht unbedingt erörtert, wenn die Funktion gleich oder gleichwertig ist.
  • 1 zeigt eine vorgeschlagene Systemarchitektur 100, die dazu dient, einen Prozess zur Optimierung der Speicherzuordnung in einer virtuellen Arbeitsplatzumgebung auszuführen. In der hier beschriebenen Weise bedeutet der Begriff „virtuelle Arbeitsplatzumgebung” ein System, das zur Bereitstellung von Arbeitsplatzdiensten mittels verteilter Ressourcen an Endbenutzer dient.
  • Das System 100 stellt Thin Clients 123 bereit, die über eine Verwaltungseinheit 105 für eine virtuelle Speicherinfrastruktur (virtual storage infrastructure manager (VSIM)) und ein Rechnernetzwerk 103, wie zum Beispiel das Internet, zwecks Datenaustausch mit einer gemeinschaftlich genutzten Speicherkapazität 113 verbunden sind. Die Verwaltungseinheit 105 für eine virtuelle Speicherinfrastruktur hat über ein Speicherbereich-Optimierungsprogramm 109 Zugriff auf den gemeinschaftlich genutzten Datenspeicher 113. Das Speicherbereich-Optimierungsprogramm 109 kann ein Bestandteil der Verwaltungseinheit für eine virtuelle Speicherinfrastruktur, die auf einem fernen Server 120 läuft, sein oder zu Betriebszwecken mit dieser verbunden sein. Der Server 120 kann jede beliebige Serverfunktion ausführen und zum Beispiel Datenserver, Anwendungsserver oder Webserver aufweisen.
  • Der Thin Client 123 kann zum Beispiel eine vernetzte Desktop-Datenverarbeitungseinheit ohne lokalen Speicher sein. Er kann über ein eingebettetes Betriebssystem oder Firmware mit eingeschränktem Funktionsumfang verfügen und ermöglicht die Identitätsprüfung von Benutzern, Netzwerk/Serverzugriff, Fernanzeige sowie Unterstützung bei der Eingabe/Ausgabe einschließlich Tastatur, Maus, lokalem USB und Druckfunktionen. Der Thin Client 123 führt über seine Verbindung mit dem Server 120 einen virtuellen Arbeitsplatz aus. Der virtuelle Arbeitsplatz kann eine oder mehrere Ansichten bereitstellen, die einem Benutzer über eine grafische Benutzeroberfläche (graphical user interface (GUI)) 101 des Thin Client 123 angezeigt werden. Der Thin Client 123 hat die Funktion einer Schnittstelle zwischen dem Benutzer und der gemeinschaftlich genutzten Speicherkapazität 113. Der Thin Client 123 ist benutzerspezifisch und zeigt dem Benutzer GUI-Elemente an, die Elemente eines lokalen Dateisystems darstellen. Das lokale Dateisystem des Benutzers kann vom Benutzer angepasst werden und ermöglicht dem Benutzer folglich, die Organisation der Dateien, die dem Benutzer gehören, festzulegen. Das lokale Dateisystem kann einen benutzerspezifischen Speicher 316, 317 (vgl. 3) enthalten, in dem Dateizeiger, die auf Dateien zeigen, auf die der Benutzer zugreifen kann, gespeichert werden können.
  • Eine Anwendungsprogrammierschnittstelle (API) (107) verarbeitet Anforderungen des Benutzers des virtuellen Arbeitsplatzes und sendet Antworten auf diese Anforderungen zurück. Die Anforderungen können zum Beispiel CRUD-Operationen (CRUD steht für ”create, read, update, delete” beziehungsweise „erzeugen, lesen, aktualisieren, löschen”) sein. Diese Anforderungen werden an das Speicherbereich-Optimierungsprogramm 109 weitergeleitet. Das Speicherbereich-Optimierungsprogramm 109 ermöglicht und verwaltet die Anforderungen, wie zum Beispiel die CRUD-Operationen, und setzt Benutzeranforderungen in Anforderungen an die gemeinschaftlich genutzte Speicherkapazität 113, Informationen abzurufen und zu speichern, um. Die API-Schnittstelle 107 wird von der VSIM gesteuert und hindert die virtuellen Arbeitsplätze 310, die in 3 gezeigt sind, daran, direkt mit der gemeinschaftlich genutzten Speicherkapazität 113 in Dialogverkehr zu treten.
  • Die gemeinschaftlich genutzte Speicherkapazität 113 ist mit dem Server 120 zu Betriebszwecken verbunden. Die gemeinschaftlich genutzte Speicherkapazität kann zum Beispiel Teil des Servers sein, oder der Server kann über ein Netzwerk auf die gemeinschaftlich genutzte Speicherkapazität zugreifen. Die gemeinschaftlich genutzte Speicherkapazität 113 kann aus einer oder mehreren untereinander verbundenen Speichereinheiten wie zum Beispiel einer redundanten Anordnung unabhängiger Festplatten (RAID) bestehen, um Datendateien zu speichern. Das System 100 stellt auf den gespeicherten Dateien 117 Informationen bereit. Die Informationen weisen zum Beispiel eine Zugriffssteuerungsliste, eine Dateikennung, eine Referenzanzahl, die die Anzahl der Benutzer angibt, die auf eine Datei zugreifen können, usw. auf. Diese Informationen werden in einer Metadaten-Ablage 111 gespeichert. Die Metadaten-Ablage 111 ist zu Betriebszwecken mit dem Speicherbereich-Optimierungsprogramm 109 verbunden, um diese Informationen auszutauschen.
  • 2 ist ein Ablaufplan eines Verfahrens zur Optimierung der Speicherzuordnung in einer virtuellen Arbeitsplatzumgebung. Im Schritt 201 empfängt die API 107 der VSIM 105 Anforderungen, eine bestimmte Datei in die gemeinschaftlich genutzte Speicherkapazität 113 zu schreiben. Die Anforderung wird zum Beispiel von einem Benutzer ausgelöst, der eine bestimmte Datei, die an seine E-Mail angehängt ist, in einem benutzerspezifischen Speicher ablegt. Der benutzerspezifische Speicher weist ein lokales Dateisystem eines virtuellen Arbeitsplatzes auf. Der virtuelle Arbeitsplatz wird dem Thin Client 123 bereitgestellt. Die API leitet die Anforderung an das Speicherbereich-Optimierungsprogramm 109 weiter. Im Schritt 203 berechnet das Speicherbereich-Optimierungsprogramm 109 eine zweite Kennung für die angegebene Datei. Die zweite Kennung kann zum Beispiel, ohne darauf beschränkt zu sein, eine Nummer einer zyklischen Redundanzprüfung der Datei, eine Hash-Nummer, SHA-1 oder MD5, sein. Im Schritt 205 vergleicht das Speicherbereich-Optimierungsprogramm 109 die zweite Kennung der angegebenen Datei, die gerade angefordert wird, mit den ersten Kennungen der Dateien, die zuvor in der gemeinschaftlich genutzten Speicherkapazität 113 gespeichert wurden. Das Speicherbereich-Optimierungsprogramm 109 ruft die Kennungen der gespeicherten Dateien aus der Metadaten-Ablage 111 ab.
  • Falls die zweite Kennung mit einer der ersten Dateikennungen identisch ist, fügt das Speicherbereich-Optimierungsprogramm zuerst die Benutzerkennung zu der Zugriffssteuerungsliste hinzu und/oder erhöht eine Referenzanzahl, die der gespeicherten Datei zugeordnet ist, bei der die erste Kennung mit der zweiten Kennung identisch ist. Die Zugriffssteuerungsliste und die Referenzanzahl werden dann in der Metadaten-Ablage 111 gespeichert. Als Nächstes erzeugt das Speicherbereich-Optimierungsprogramm 109 einen Zeiger auf die vorhandene gespeicherte Datei, die dieser ersten Kennung zugeordnet ist. Im Schritt 209 wird der Zeiger in dem benutzerspezifischen Speicher erzeugt, der das lokale Dateisystem des virtuellen Arbeitsplatzes aufweist, der von dem Benutzer angefordert wird. Der benutzerspezifische Speicher kann ein logischer Datenträger oder ein physischer Speicherdatenträger sein. Wenn die angegebene Datei ein zweites Mal von demselben Benutzer angefordert wird, um die Datei an einem zweiten Speicherort in demselben Verzeichnisbaum des Dateisystems des virtuellen Arbeitsplatzes zu schreiben, wird ein zweiter Zeiger erzeugt, der auf die vorhandene erste Datei in dem benutzerspezifischen Speicher des Benutzers zeigt. In diesem Fall bleibt die Referenzanzahl unverändert.
  • Falls die zweite Schreibanforderung von einem zweiten Benutzer empfangen wurde, wobei der andere Benutzer eine Schreibanforderung für eine Datei stellt, die bereits von dem ersten Benutzer gespeichert worden ist, wird ein Zeiger, der auf die vorhandene Datei in der gemeinschaftlich genutzten Speicherkapazität 113 zeigt, in dem lokalen Dateiverzeichnis eines benutzerspezifischen Speichers des zweiten Benutzers erzeugt. Der zweite Benutzer kann zum Beispiel einen zweiten Thin Client verwenden. Der zweite Thin Client betreibt einen zweiten virtuellen Arbeitsplatz, der grafische Verweise von Elementen eines lokalen Dateiverzeichnisbaums anzeigt, der von dem zweiten Benutzer angegeben wurde. In diesem Fall wird die Referenzanzahl aktualisiert.
  • Falls die zweite Dateikennung nicht mit einer beliebigen der ersten Dateikennungen identisch ist, erzeugt das Speicherbereich-Optimierungsprogramm 109 zuerst eine Zugriffssteuerungsliste und/oder eine Referenzanzahl für die angegebene Datei und fügt die Benutzerkennung der Zugriffssteuerungsliste hinzu und/oder erhöht die Referenzanzahl. Die Zugriffssteuerungsliste und die Referenzanzahl werden dann in der Metadaten-Ablage 111 gespeichert. Als Nächstes speichert das Speicherbereich-Optimierungsprogramm 109 im Schritt 207 die angegebene Datei, die zu der zweiten Dateikennung gehört, in der gemeinschaftlich genutzten Speicherkapazität 113 und erzeugt einen neuen Zeiger auf die angegebene Datei in dem benutzerspezifischen Speicher, der das lokale Dateisystem des virtuellen Arbeitsplatzes aufweist, das von dem Benutzer gewählt wurde. Die zweite Kennung wird dann als eine weitere erste Kennung gespeichert.
  • Es gibt einen anderen Anwendungsfall, in dem der Benutzer eine Löschung einer der zuvor in der gemeinschaftlich genutzten Speicherkapazität gespeicherten Dateien anfordert. In diesem Fall wird die Benutzerkennung dieses Benutzers aus der Zugriffssteuerungsliste dieser Datei entfernt, und die Referenzanzahl dieser Datei wird verringert.
  • 3 zeigt eine virtuelle Arbeitsplatzumgebung, die eine Server-Verarbeitungseinheit 120 aufweist, welche mit einer Client-Verarbeitungseinheit, z. B. einem Thin Client 123.1, über ein Netzwerk 103, z. B. das Internet oder ein Intranet, verbunden ist. Der Thin Client weist einen Prozessor 304 und einen Arbeitsspeicher 303 auf. Der Arbeitsspeicher weist Benutzerdaten und Programmbefehle eines virtuellen Arbeitsplatzes 310 auf, der über das Netzwerk 103 von der Verwaltungseinheit 105 für eine virtuelle Speicherinfrastruktur, die von dem Server 120 betrieben wird, bereitgestellt wurde. Der virtuelle Arbeitsplatz 310 ist eine Instanz eines Abbilds 301 einer virtuellen Maschine und kann eine grafische Benutzeroberfläche 302 zur Verfügung stellen, die dem Benutzer 320 des Thin Client 123.1 auf einem Bildschirm des Thin Client angezeigt wird.
  • Die grafische Benutzeroberfläche, die dem Benutzer 320 angezeigt wird, kann Elemente einer grafischen Benutzeroberfläche (GUI-Elemente) aufweisen, die Dateizeiger darstellen, welche im Speichermedium 311 gespeichert werden.
  • Das Speichermedium 311 ist zu Betriebszwecken mit dem Server 120 verbunden und kann eine gemeinschaftlich genutzte Speicherkapazität 113 und einen oder mehrere benutzerspezifische Speicher (user-private storages (UPS)) 316, 317 aufweisen.
  • Die gemeinschaftlich genutzte Speicherkapazität 113 kann eine oder mehrere Dateien 313, 308, 321 aufweisen. Jeder der Dateien kann eine Kennung eines oder mehrerer Benutzer zugewiesen sein, die auf diese Datei zugreifen dürfen. Der Dateninhalt eines beliebigen der benutzerspezifischen Speicher weist Daten, insbesondere die Dateizeiger, auf, auf die nur von einem ganz bestimmten Benutzer zugegriffen werden kann, dem der benutzerspezifische Speicher zugeordnet ist. Der UPS 316 kann zum Beispiel dem Benutzer 320 zugeordnet sein.
  • Der Benutzer 320 kann einen Verzeichnisbaum erstellen und ändern, und er kann die Anforderung stellen, eine Datei an einen bestimmten Speicherort des Dateibaums zu schreiben, wobei der Pfad zu diesem Speicherort von dem Benutzer 320 über die GUI 302 angegeben worden ist.
  • Die GUI 302 kann dem Benutzer eine grafische Darstellung der Elemente des Verzeichnisbaums und insbesondere der Dateizeiger 314 anzeigen, die auf Dateien zeigen und Dateien darstellen, welche in der gemeinschaftlich genutzten Speicherkapazität 113 gespeichert sind. Beispielsweise kann ein Symbol (icon), das dem Benutzer 320 über die GUIs 302 angezeigt wird, den Dateizeiger 314 darstellen. Das Symbol kann möglicherweise nicht von einem Symbol einer realen Datei unterschieden werden. Der Benutzer 320 hat folglich den Eindruck, dass er auf eine reale Datei 313 zugreift, die in seinem lokalen Dateiverzeichnisbaum gespeichert ist, obgleich der Benutzer 320 tatsächlich nur auf einen Dateizeiger 316 zugreift, der in seinem benutzerspezifischen Speicher 316 gespeichert ist, wobei der Zeiger auf die Datei 313 in der gemeinschaftlich genutzten Speicherkapazität 113 zeigt.
  • Der benutzerspezifische Speicher 317 kann einem anderen Benutzer zugeordnet sein. Der UPS 317 kann auch einen Zeiger 315 aufweisen, der auf die Datei 313 zeigt. Der Datei 313 kann eine Zugriffsliste zugewiesen sein, welche die Benutzerkennungen der Benutzer aufweist, die dem UPS 316 und dem UPS 317 zugewiesen sind.
  • Bezugszeichenliste
  • 100
    System
    101
    Grafische Benutzeroberfläche
    103
    Netzwerk
    105
    Verwaltungseinheit für eine virtuelle Speicherinfrastruktur
    107
    API
    109
    Speicherbereich-Optimierungsprogramm
    111
    Metadaten-Ablage
    113
    gemeinschaftlich genutzte Speicherkapazität
    117
    gespeicherte Datei
    201–209
    Schritte
    123
    Thin Client
    301
    Abbild der virtuellen Maschine
    302
    GUI
    303
    Speicher
    304
    Prozessor
    305
    Prozessor
    308
    Datei
    309
    Speicher
    310
    virtueller Arbeitsplatz
    311
    Speichermedium
    313
    Datei
    314
    Zeiger auf Datei
    315
    Zeiger auf Datei
    316
    benutzerspezifischer Speicher
    317
    benutzerspezifischer Speicher
    320
    Benutzer
    321
    Datei
    322
    virtuelle Arbeitsplatzumgebung

Claims (15)

  1. Verfahren zur Optimierung der Speicherzuordnung in einer virtuellen Arbeitsplatzumgebung, wobei die virtuelle Arbeitsplatzumgebung (322) eine gemeinschaftlich genutzte Speicherkapazität (113) verwaltet, wobei die gemeinschaftlich genutzte Speicherkapazität (113) dazu dient, eine oder mehrere erste Dateien (117, 313, 314, 321) zu speichern, wobei jede gespeicherte erste Datei (117, 313, 314, 321) einer jeweiligen eindeutigen ersten Dateikennung zugeordnet wird, wobei die virtuelle Arbeitsplatzumgebung einer Verarbeitungseinheit (123) eines Benutzers (320) mindestens einen virtuellen Arbeitsplatz (310) bereitstellt, wobei das Verfahren aufweist: – Empfangen (201) einer ersten Schreibanforderung, eine in der Anforderung angegebene zweite Datei zu schreiben; – Festlegen (203) einer zweiten Dateikennung der angegebenen zweiten Datei; – Vergleichen (205) der zweiten Dateikennung mit der ersten Dateikennung einer beliebigen ersten Datei, die in der gemeinschaftlich genutzten Speicherkapazität gespeichert wird; – wenn die zweite Dateikennung mit einer der ersten Dateikennungen identisch ist, Erzeugen (209) eines Zeigers (314, 315) auf die gespeicherte erste Datei, die dieser ersten Dateikennung zugeordnet ist; und – wenn die zweite Dateikennung nicht mit einer beliebigen der ersten Dateikennungen identisch ist, Speichern (207) der angegebenen Datei, die der zweiten Dateikennung zugeordnet ist, in der gemeinschaftlich genutzten Speicherkapazität (113), wobei die zweite Dateikennung als eine weitere erste Dateikennung gespeichert wird und die zweite Datei als eine weitere erste Datei gespeichert wird, und Erzeugen des Zeigers (314, 315) auf die gespeicherte weitere erste Datei.
  2. Verfahren nach Anspruch 1, wobei die erste Schreibanforderung von dem mindestens einen virtuellen Arbeitsplatz (310) empfangen wird und wobei der Zeiger in einem lokalen Dateisystem von dem mindestens einen virtuellen Arbeitsplatz (310) erzeugt wird.
  3. Verfahren nach Anspruch 2, des Weiteren aufweisend: – Empfangen einer Angabe eines Pfades in dem lokalen Dateisystem von dem mindestens einen virtuellen Arbeitsplatz (310) des Benutzers des mindestens einen virtuellen Arbeitsplatzes, wobei der Zeiger an einem Speicherort in dem lokalen Dateisystem erzeugt wird, der von dem angegebenen Pfad angegeben wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei die erste und/oder die zweite Dateikennung eine Nummer einer zyklischen Redundanzprüfung der Datei, eine Hash-Nummer, SHA-1 oder MD5, der jeweiligen, zu der Kennung gehörenden Datei ist.
  5. Verfahren nach einem der vorhergehenden Ansprüche 1 bis 4, des Weiteren aufweisend: – nach der Speicherung von beliebigen der ersten Dateien und nach der Speicherung der zweiten Datei in der gemeinschaftlich genutzten Speicherkapazität (113) Zuordnen der ersten und/oder der zweiten Datei zu einer Zugriffssteuerungsliste, die Benutzerkennungen von allen Benutzern aufweist, die Zugriff auf die gespeicherte erste oder zweite Datei haben und/oder – nach der Speicherung von beliebigen der ersten Dateien und nach der Speicherung der zweiten Datei in der gemeinschaftlich genutzten Speicherkapazität (113) Zuordnen der ersten oder der zweiten Datei zu einer Referenzanzahl, welche die Anzahl der Benutzer darstellt, die Zugriff auf die gespeicherte erste oder zweite Datei haben.
  6. Verfahren nach einem der vorhergehenden Ansprüche 1 bis 5, des Weiteren aufweisend: – Empfangen einer Löschanforderung von dem Benutzer, wobei die Löschanforderung eine der ersten Dateien angibt; – Entfernen der Benutzerkennung dieses Benutzers aus der Zugriffssteuerungsliste von derjenigen Datei, die in der Löschanforderung angegeben ist.
  7. Verfahren nach einem der Ansprüche 5 bis 6, wobei der Schritt des Erzeugens des Zeigers des Weiteren den Schritt des Hinzufügens der Benutzerkennung zu der Zugriffssteuerungsliste und/oder das Erhöhen der Referenzanzahl aufweist.
  8. Verfahren nach einem der Ansprüche 5 bis 6, wobei der Schritt des Speicherns der angegebenen zweiten Datei die Schritte aufweist: – Erzeugen der Zugriffssteuerungsliste und/oder der Referenzanzahl für die angegebene zweite Datei; und – Hinzufügen der Benutzerkennung zu der Zugriffssteuerungsliste und/oder Erhöhen der Referenzanzahl.
  9. Verfahren nach einem der Ansprüche 1 bis 8, des Weiteren aufweisend: – Empfangen einer zweiten Schreibanforderung, die zweite Datei zu schreiben; – Erzeugen eines zweiten Zeigers auf die vorhandene erste Datei, die als Reaktion auf eine erste Schreibanforderung gespeichert worden ist, wobei der zweite Zeiger in dem lokalen Dateisystem des virtuellen Arbeitsplatzes (310) erzeugt wird.
  10. Verfahren nach Anspruch 9, wobei in dem Fall, in dem die erste Schreibanforderung und die zweite Schreibanforderung von demselben Benutzer empfangen werden, die Referenzanzahl unverändert bleibt.
  11. Verfahren nach einem der vorhergehenden Ansprüche 1 bis 9, wobei der virtuelle Arbeitsplatz (310) von der virtuellen Arbeitsplatzumgebung als eine Instanz eines Abbilds (301) einer virtuellen Maschine bereitgestellt wird, wobei der virtuelle Arbeitsplatz eine grafische Oberfläche aufweist, die dem Benutzer über einen Bildschirm der Verarbeitungseinheit des Benutzers angezeigt wird.
  12. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Benutzer ein Benutzer aus einer Vielzahl von Benutzern ist, denen jeweils eine benutzerspezifische Verarbeitungseinheit (213.1, 123.2, 123.3) zugewiesen ist, wobei der virtuelle Arbeitsplatz ein virtueller Arbeitsplatz aus einer Vielzahl von virtuellen Arbeitsplätzen ist, wobei jeder der Vielzahl der virtuellen Arbeitsplätze von der virtuellen Arbeitsplatzumgebung einer der Verarbeitungseinheiten bereitgestellt wird, wobei ein Server (120), der die virtuelle Arbeitsplatzumgebung (322) beherbergt, über ein Netzwerk mit jeder der benutzerspezifischen Verarbeitungseinheiten verbunden ist und wobei die Schritte des Verfahrens nach Anspruch 1 von einer Speicherinfrastruktur-Verwaltungseinheit (105) ausgeführt werden, die auf dem Server (120) läuft.
  13. Rechnerprogrammprodukt, das Befehle eines Programmiercodes aufweist, um die Schritte des Verfahrens nach einem der Ansprüche 1 bis 12 durchzuführen, wenn das Programm auf einem Prozessor (305) ausgeführt wird.
  14. Rechnersystem zur Optimierung der Speicherzuordnung in einer virtuellen Arbeitsplatzumgebung, wobei die virtuelle Arbeitsplatzumgebung (322) eine gemeinschaftlich genutzte Speicherkapazität (113) verwaltet, wobei die gemeinschaftlich genutzte Speicherkapazität (113) dazu dient, eine oder mehrere erste Dateien (117, 313, 308, 321) zu speichern, wobei jede gespeicherte erste Datei (117) einer jeweiligen eindeutigen ersten Dateikennung zugeordnet wird, wobei die virtuelle Arbeitsplatzumgebung einer Verarbeitungseinheit (123) eines Benutzers (320) mindestens einen virtuellen Arbeitsplatz (310) bereitstellt, wobei das Rechnersystem aufweist: – die gemeinschaftlich genutzte Speicherkapazität (113); und – eine Server-Verarbeitungseinheit (120), die eine Verwaltungseinheit (105) für eine virtuelle Speicherinfrastruktur beherbergt, wobei die Verwaltungseinheit (105) für die virtuelle Speicherinfrastruktur so ausgelegt ist, dass sie: – eine erste Schreibanforderung, eine in der Anforderung angegebene zweite Datei zu schreiben, empfängt (201); – eine zweite Dateikennung der angegebenen Datei festlegt (203); – die zweite Dateikennung mit der ersten Dateikennung einer beliebigen der ersten Dateien vergleicht (205), die in der gemeinschaftlich genutzten Speicherkapazität gespeichert werden; – wenn die zweite Dateikennung mit einer der ersten Dateikennungen identisch ist, einen Zeiger auf die gespeicherte erste Datei erzeugt (209), die dieser ersten Dateikennung zugeordnet ist; und – wenn die zweite Dateikennung nicht mit einer beliebigen der ersten Dateikennungen identisch ist, die angegebene zweite Datei, die der zweiten Dateikennung zugeordnet ist, in der gemeinschaftlich genutzten Speicherkapazität speichert (207), wobei die zweite Dateikennung als eine weitere erste Dateikennung gespeichert wird und die zweite Datei als eine weitere erste Datei gespeichert wird, und einen Zeiger auf die gespeicherte weitere erste Datei erzeugt.
  15. Rechnersystem nach Anspruch 14, wobei die Client-Verarbeitungseinheit dazu dient, den virtuellen Arbeitsplatz (310) anzufordern, der dem Benutzer von der virtuellen Arbeitsplatzumgebung (322) zugeordnet wird, wobei die Client-Verarbeitungseinheit über ein Netzwerk mit der Server-Verarbeitungseinheit verbunden ist.
DE102012221813A 2011-12-13 2012-11-29 Verfahren zur optimierung der speicherzuordnung in einer virtuellen arbeitsplatzumgebung Pending DE102012221813A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP11193141 2011-12-13
EP11193141.6 2011-12-13

Publications (1)

Publication Number Publication Date
DE102012221813A1 true DE102012221813A1 (de) 2013-06-13

Family

ID=48464944

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012221813A Pending DE102012221813A1 (de) 2011-12-13 2012-11-29 Verfahren zur optimierung der speicherzuordnung in einer virtuellen arbeitsplatzumgebung

Country Status (4)

Country Link
US (1) US9235589B2 (de)
CN (1) CN103198090B (de)
DE (1) DE102012221813A1 (de)
GB (1) GB2498626B (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150331916A1 (en) * 2013-02-06 2015-11-19 Hitachi, Ltd. Computer, data access management method and recording medium
WO2015172107A1 (en) 2014-05-09 2015-11-12 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
US9823842B2 (en) 2014-05-12 2017-11-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
US20160048529A1 (en) * 2014-08-13 2016-02-18 Netapp Inc. Coalescing storage operations
CN105279258B (zh) * 2015-10-21 2020-01-14 Tcl集团股份有限公司 一种均衡分布的文件存储方法及系统
JP6609471B2 (ja) * 2015-12-25 2019-11-20 Dynabook株式会社 電子機器、方法及びプログラム
US11550558B2 (en) 2016-02-12 2023-01-10 Nutanix, Inc. Virtualized file server deployment
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
KR102569734B1 (ko) * 2016-10-05 2023-08-25 삼성전자주식회사 전자장치 및 그 제어방법
CN106502927B (zh) * 2016-10-26 2019-08-13 北京德普信科技有限公司 终端可信计算及数据静态安全系统及方法
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US11568073B2 (en) * 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US20180293392A1 (en) * 2017-04-05 2018-10-11 Iswind Digital Engineering Inc. Method and system for selecting a communication interface
US10866963B2 (en) * 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
CN109582642A (zh) * 2018-11-08 2019-04-05 网宿科技股份有限公司 文件存储方法、删除方法、服务器及存储介质
EP3987387A1 (de) * 2019-06-28 2022-04-27 Amazon Technologies Inc. Virtualisierte blockspeicherserver in einer substraterweiterung eines cloud-anbieters
CN111290817B (zh) * 2020-01-21 2024-05-14 李岗 桌面系统的数据装载方法及系统
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5813008A (en) 1996-07-12 1998-09-22 Microsoft Corporation Single instance storage of information
US6810398B2 (en) 2000-11-06 2004-10-26 Avamar Technologies, Inc. System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences
US7584228B1 (en) 2001-07-18 2009-09-01 Swsoft Holdings, Ltd. System and method for duplication of virtual private server files
US7024427B2 (en) 2001-12-19 2006-04-04 Emc Corporation Virtual file system
US7783665B1 (en) * 2002-03-27 2010-08-24 Parallels Holdings, Ltd. Effective file-sharing among virtual environments
US7293154B1 (en) 2004-11-18 2007-11-06 Symantec Operating Corporation System and method for optimizing storage operations by operating only on mapped blocks
US8346726B2 (en) * 2005-06-24 2013-01-01 Peter Chi-Hsiung Liu System and method for virtualizing backup images
WO2009033074A2 (en) * 2007-09-05 2009-03-12 Emc Corporation De-duplication in virtualized server and virtualized storage environments
US8209506B2 (en) 2007-09-05 2012-06-26 Emc Corporation De-duplication in a virtualized storage environment
US20090204650A1 (en) 2007-11-15 2009-08-13 Attune Systems, Inc. File Deduplication using Copy-on-Write Storage Tiers
US8626723B2 (en) 2008-10-14 2014-01-07 Vmware, Inc. Storage-network de-duplication
US8191065B2 (en) * 2009-04-06 2012-05-29 Red Hat Israel, Ltd. Managing virtual machine images
US9087066B2 (en) 2009-04-24 2015-07-21 Swish Data Corporation Virtual disk from network shares and file servers
US9032181B2 (en) 2009-05-19 2015-05-12 Vmware, Inc. Shortcut input/output in virtual machine systems
US8516597B1 (en) * 2010-12-02 2013-08-20 Symantec Corporation Method to calculate a risk score of a folder that has been scanned for confidential information
US8996800B2 (en) * 2011-07-07 2015-03-31 Atlantis Computing, Inc. Deduplication of virtual machine files in a virtualized desktop environment

Also Published As

Publication number Publication date
US9235589B2 (en) 2016-01-12
CN103198090B (zh) 2016-12-21
CN103198090A (zh) 2013-07-10
GB2498626A (en) 2013-07-24
GB2498626B (en) 2015-02-18
US20130152085A1 (en) 2013-06-13

Similar Documents

Publication Publication Date Title
DE102012221813A1 (de) Verfahren zur optimierung der speicherzuordnung in einer virtuellen arbeitsplatzumgebung
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE112011102076B4 (de) Neuordnen des Zugriffs zum Verringern der Gesamtsuchzeit auf Bandmedien
DE102013215535B4 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE112010004969B4 (de) Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen
DE102012220201B4 (de) Verfahren und System zur Bildimplementierung in einer Cloud-Umgebung
DE102013208930B4 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE112019000321T5 (de) Transaktionsoperationen in verteilten Multi-Master-Datenverwaltungssystemen
DE102013215009A1 (de) Verfahren und System zur Optimierung der Datenübertragung
DE202009019139U1 (de) Asynchron verteilte Deduplizierung für replizierte inhaltsadressierte Speichercluster
DE112012005032T5 (de) Entfernen der Datenremanenz in deduplizierten Speicher-Clouds
DE102019111068A1 (de) Datenspeichersystem mit LUN-Archivierung in die Cloud unter Verwendung einer Volume-to-Object(Volumen-zu-Objekt)-Umsetzung
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE112012004318T5 (de) Verwendung eines virtuellen Laufwerks als Hot-Spare-Einheit für eine RAID-Gruppe
DE112018003524T5 (de) Dynamische datenverlagerung unter verwendung von speicherbänken auf cloud-grundlage
DE112020000694T5 (de) Erzeugung und ausführung von sicheren containern
DE102010001339A1 (de) Verwalten von Anforderungen von Betriebssystemen, die in virtuellen Maschinen ablaufen
DE102013222384A1 (de) Sicherheits-Screening auf Kontextgrundlage für Zugriff auf Daten
DE112013006646B4 (de) Computer, System und computerlesbares Ablagemedium zum Identifizieren von Arbeitslast und Dimensionierung von Puffern zum Zweck der Volumenreplikation
DE112012001162T5 (de) Defragmentierung von Datenspeicherpools
DE112017005588T5 (de) Speichern und abrufen von eingeschränkten datensätzen in und aus einem cloud-netzwerk mit nichteingeschränkten datensätzen
DE102018204427A1 (de) Simulieren mehrerer Speichergeräte mit einem einzelnen Speichergerät, das mit einem Rechengerät gekoppelt ist
DE112018005404T5 (de) Vereinfachen des zugriffs auf lokalitätsdomäneninformationen eines speichers
DE112018002955T5 (de) Kognitive datei- und objektverwaltung für verteilte speicherumgebungen
DE112020003929T5 (de) Verwaltung von metadaten von virtuellen speichern

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0012000000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012000000

Ipc: G06F0012060000

R016 Response to examination communication
R016 Response to examination communication
R084 Declaration of willingness to licence