DE102012221813A1 - METHOD FOR OPTIMIZING THE MEMORY ASSIGNMENT IN A VIRTUAL WORKPLACE ENVIRONMENT - Google Patents
METHOD FOR OPTIMIZING THE MEMORY ASSIGNMENT IN A VIRTUAL WORKPLACE ENVIRONMENT Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory 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)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (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.A method, computer system, and program product for optimizing memory allocation in a virtual desktop environment, wherein the virtual desktop environment manages a shared memory capacity. The shared storage capacity includes one or more previously stored files, each stored file being associated with a respective unique first file identifier, wherein the virtual desktop environment provides a user's processing unit with at least one virtual workstation. The method, after receiving a first write request to write a second file specified in the request, comprises the steps of: setting a second file identifier of the specified second file; Comparing the second file identifier with the first file identifier of any first file stored in the shared memory capacity; if the second file identifier is identical to one of the first file identifiers, generating a pointer to the stored first file associated with that first file identifier; and if the second file identifier is not identical to any of the first file identifiers, storing the specified file associated with the second file identifier in the shared memory capacity, the second file identifier being stored as another first file identifier and the second file being stored as a first file identifier another first file is stored, and generating the pointer to the stored further first file.
Description
Gebiet der ErfindungField of the invention
Die Erfindung betrifft Systeme in einer virtuellen Umgebung und insbesondere ein Verfahren zur Optimierung der Speicherzuordnung in einer virtuellen Arbeitsplatzumgebung.The invention relates to systems in a virtual environment, and more particularly to a method for optimizing memory allocation in a virtual workspace environment.
Hintergrundbackground
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.Virtualization of computers is becoming one of the more important technologies for companies of different sizes. It increases the computing power and flexibility of a data processing hardware platform. In particular, the use of storage virtualization in a virtual workplace environment is also becoming a critical part of enterprise information processing in these companies.
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.In a virtual workplace environment, the local file system assigned to each workstation is an area of dedicated virtualized storage taken from a physical storage pool. Each time a user saves a file to his file system, a copy of that file is stored in the dedicated area of physical memory for that workstation. In the case where multiple users of a virtual workstation belonging to the same business context store the same file in their file system, this will likely result in multiple copies of the same file being stored in the shared physical memory. This redundancy leads to an unnecessary allocation of additional storage space, which makes it necessary to purchase larger storage volumes than actually needed.
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.Another problem associated with the use of other prior art systems is that users need to use pre-determined or shared directory tree structures and can not store their files in a user-specified location. Users of the systems also can not change the directory structure of the shared storage volumes as this would confuse other users who assume that their files are still available through the original file path.
Kurzdarstellung der ErfindungBrief description of the invention
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.An object of embodiments of the invention is to provide an improved computer-implemented method, data processing system, and corresponding computer-readable storage medium. This object is achieved by the subject matter of the independent claims. Advantageous embodiments are described in the dependent claims.
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.As used herein, the term "virtual workstation" refers to a virtual machine that is physically located in a data store maintained by a virtual desktop environment. In particular, the virtual workspace may be provided by the virtual workspace running on a server instead of on the client's local storage. Thus, as users operate from their local client machines, all programs, applications, processes and data that are used are stored on the server and executed centrally according to embodiments. Virtualization of workstations allows users to run operating systems and applications from a smartphone or any other form of thin client that has limited hardware resources. According to some other applications, the virtual workstations may be temporarily loaded into the workstations of the client devices, while any change to the data will persist only in storage volumes maintained by the server.
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.The term "computer-readable storage medium" as used herein includes any physical storage medium capable of storing instructions that may be executed by a processor of a computing device. The computer readable storage medium may be referred to as a computer readable, seamless storage medium. The computer readable storage medium may be referred to as a physical computer readable medium. In some embodiments, a computer-readable storage medium may also be capable of storing data that the processor of the computing device may access. Examples of computer-readable storage media include, but are not limited to, a floppy disk, a punched tape, punched cards, a magnetic hard disk drive, a solid state drive, a flash memory, a USB flash drive, Random Access Memory (RAM), a read only memory (ROM), an optical disk, a magneto-optical disk, and the register file of the processor. Examples of optical disks include Compact Discs (CD) and Digital Versatile Disks (DVD), for example CD-ROM, CD-RW, CD-R, DVD-ROM, DVD-RW or DVD-R discs. Plates. The term "computer-readable storage medium" also refers to various types of recording media that can be accessed by the computing unit via a network or communication link. For example, data may be retrieved over a modem, over the Internet, or over a local area network. mentions A computer-readable storage medium should be understood as having possibly several computer-readable storage media. Various executable components of a program or programs may be stored in different locations. The computer-readable storage medium may, for example, comprise a plurality of computer-readable storage media in the same computer system. The computer-readable storage medium may also be a computer-readable storage medium which is distributed over a plurality of computer systems or data processing units.
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.The term "metadata repository" (metadata repository) in this case comprises a storage medium or a part of a storage medium with stored metadata. For example, the metadata store may be implemented as a database system designed to support the storage, use, and retrieval of metadata by a processor. For example, metadata may include information about how to access certain data or more details about the data.
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.As used herein, the term "application programming interface (API)" refers to an interface used by software that implements the interface to interact with each other; in much the same way that software could implement a user interface to allow users to interact with it. APIs are used by software applications (SAs), libraries, and operating systems to determine how other software programs can make calls to or request services from them.An API determines the vocabulary and calling conventions the programmer should use to use the services and may include specifications for routines, data structures, object classes, and protocols used for communication between a user and an implementer of the API.
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.The term "access control list" (ACL) in the present case denotes an indication of users and / or groups of users who are made in each security concept (eg access control concept, mandatory access control concept, user-defined access control concept, grid-based access control concept, etc.) the access to a file is allowed. According to embodiments, the level of allowed access (eg read-only access, read-write access, delete access, etc.) may also be specified in the access control list.
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.The term "computer memory" or "memory" is an example of a computer-readable storage medium. The computer memory is any memory that can be accessed by a processor. Examples of computer memory include, but are not limited to, RAM, registers, and register files. In some cases, a computer memory may also include: a hard disk drive, a floppy disk drive, or a solid state drive. Part of a memory can actually be swap space on a hard disk drive. Mention of the terms "computer memory" or "memory" should be understood to mean that the latter may have multiple memories. For example, the memory may include multiple memories in the same computer system. The memory may also have a plurality of memories which are distributed over a plurality of computer systems or data processing units.
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.The term "processor" herein includes an electronic component that can execute a program or machine-executable instruction. Mentions of the computing device to include "a processor" should be understood to potentially include more than one processor or processing core. The processor may be, for example, a multi-core processor. A processor may also refer to a group of processors residing in a single computer system or distributed across multiple computer systems.
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.
- - receiving a first write request to write a second file specified in the request;
- - specify a second file identifier of the specified second file;
- Comparing the second file identifier with the first file identifier of any first file stored in the shared memory capacity;
- If the second file identifier is identical to one of the first file identifiers, generating a pointer to the stored first file associated with that first file identifier; and
- If the second file identifier is not identical to any of the first file identifiers, storing the specified file associated with the second file identifier in the shared memory capacity, the second file identifier being stored as a further first file identifier and the second file being stored as a first file identifier another first file is stored, and generating the pointer to the stored further first file.
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.The embodiment may be advantageous because the method prevents the storage of identical files in the shared storage capacity and also allows different users to access the same stored file. This not only saves space in advance, but also improves the performance of the memory. This is in contrast to a post-storage deduplication process, which is performed only when the files in the storage area are already duplicated.
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.According to another embodiment, the pointer is generated in a local file system of the virtual workstation, wherein the local file system is preferably stored in a user-specific memory area, which only this user can access.
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.According to another embodiment, the first write request is received from the at least one virtual workstation and the pointer is generated in the local file system of the virtual workstation.
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.According to another embodiment, the method further comprises the steps of receiving an indication of a path in the local file system from the at least one virtual workstation of the user of the at least one virtual workstation. The pointer is generated to a location on the local file system specified by the specified path. According to embodiments, the user may access the path via a GUI element, e.g. A file selector, which gives the user the ability to navigate within an existing directory tree of a local file system. Thus, unlike some prior art systems, the user is allowed to specify a file path in his own local directory and does not need to remember and adopt a predetermined shared directory structure. In addition, the duplication of files stored in the shared storage capacity is avoided. The embodiments may be advantageous in that the user making the request to write a file to a particular folder of his virtual workstation determines that the file having the desired characteristics has been created on the local file system (eg, file name, location folder, etc.), although in reality the local file system merely has a link to the actual physical file stored in the shared storage capacity. According to embodiments, the user's local file system is stored in a user-specific storage medium of the user. The user-specific storage is also managed by the virtual workplace environment.
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.According to a further embodiment, the first and / or the second file identifier is a number of the cyclic redundancy check of the file, a hash number, SHA-1 or MD5, of the respective file belonging to the identifier. This may have the advantage of providing a robust method that serves to compute a unique identification number so that different files have different identifiers. This makes it possible to check if the file being requested for storage is one of the previously stored files in the shared storage capacity.
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.According to another embodiment, the method further comprises: after storing any of the first files and after storing the second file in the shared storage capacity, associating the first and / or the second file with an access control list containing user IDs from all users that has access to the stored first or second file. Additionally or alternatively, after storing any of the first files and storing the second file in the shared storage capacity, the method comprises associating the stored file with a reference number representative of the number of users accessing the stored first or have a second file.
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.The embodiment may be advantageous as it ensures secure and controlled access to the stored files that are protected by granting access only to users whose user IDs are specified in the access control list.
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.According to embodiments, only user IDs of users allowed to access a stored file are included in the ACL of the stored file. Another advantage may be that the number of users who access a stored File can be easily determined by reading a reference number, which is a single number. This is faster than having to read and derive this number from the access control list of the stored file, for example by counting the number of users listed in the access control list.
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.According to another embodiment, the method further comprises receiving an erase request from the user. The delete request specifies one of the first files. Upon receipt of the delete request, the user ID of the user who submitted the deletion request is deleted from the access control list of the file specified in the deletion request. According to a further embodiment, in addition to removing the user identifier in this case, the reference number is reduced. This will ensure that the access control list and the reference count continue to represent the exact number of users who have access to the file. According to another embodiment, in this case, the pointer of this file, which is stored in the local file system of the user's virtual workstation, is also deleted. Also, the file is deleted from the shared storage capacity if the reference count is null.
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.According to another embodiment, the step of storing the specified second file further comprises the steps of: generating the access control list and / or the reference number for the specified second file; and adding the user identifier to the access control list and / or increasing the reference number.
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.According to another embodiment, the step of generating the pointer comprises the step of adding the user identifier to the access control list of the file to which the pointer is being directed and / or increasing the reference number.
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.According to another embodiment, the method further comprises:
Receiving a second write request to write the second file;
Generating a second pointer to the existing first file that has been stored in response to the first write request, wherein the second pointer is generated in the local file system of the virtual workstation of a user who made the second write request.
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.According to one embodiment, the first write request and the second write request are received from the same user, and the reference number remains unchanged. This has the advantage of giving the user the flexibility to organize his own files in the file system, for example, by storing the same file in various locations without restrictions. At the same time, these features allow only one copy of the file to be kept in the shared memory.
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.According to embodiments, in the case where the first write request and the second write request are received from different users, the reference number and the file access list are updated accordingly.
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.
- - receiving an update request from the user, the update request indicating one of the first files to be changed by the user;
- Storing the changed first file in the shared storage capacity;
- Generate a pointer to the changed file in the user's local file system.
Gemäß Ausführungsformen weist das Verfahren des Weiteren das Löschen des Zeigers auf, der auf die gespeicherte geänderte erste Datei zeigt.According to embodiments, the method further includes deleting the pointer pointing to the stored modified first file.
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.According to embodiments, the modification of the file is performed by creating a modified local copy F 'of the first file F to be changed, storing the local copy in the user's local file system, and executing a write request as described above to write the modified local copy F.
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.According to one embodiment, the virtual workspace is provided by the virtual workspace environment as an instance of a virtual machine image, and a graphical user interface of the virtual workspace is displayed on a user-specific processing unit screen to the user of the processing unit. Depending on the embodiment, the processing unit may be a smartphone, a netbook, a workstation or the like. In particular, the processing unit may be a processing unit in the form of a thin client having only limited hardware resources.
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.According to another embodiment, the user is a user of a plurality of users, each of whom is assigned a user-specific processing unit, and wherein the virtual workstation is a virtual workstation from a plurality of virtual workstations. Each of the variety of virtual workplaces is covered by the virtual workspace environment of one of the processing units. A server hosting the virtual workspace environment is connected to each of the user-specific processing units via a network. The steps performed by embodiments of the present invention described above are performed by a storage infrastructure management unit running on the server.
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 another aspect, the invention relates to a computer-readable, seamless storage medium having computer-readable instructions that, when executed by a processor, cause the processor to perform the steps of the method of any of the foregoing embodiments.
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.
- - the shared storage capacity; and
- A server processing unit hosting a virtual storage infrastructure management unit, wherein the virtual storage infrastructure management unit is configured to: receive via the virtual desktop environment a first write request to write a second file specified in the request; - specifies a second file identifier of the specified file; - compares the second file identifier with each of the first file identifiers of any first file that has been stored in the shared storage capacities; If the second file identifier is identical to one of the first file identifiers, generates a pointer to the stored first file associated with that first file identifier; and if the second file identifier is not identical to any one of the first file identifiers, stores the specified second file associated with the second file identifier in the shared memory capacity, the second file identifier being stored as another first file identifier and the second file is stored as another first file, and generates a pointer to the stored further first file.
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.According to another embodiment, the client processing unit is connected to the server processing unit via a network and serves to request the virtual workstation via the network from the virtual workstation environment.
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.According to further embodiments, the client unit is a client unit of a plurality of client units, each assigned to a user of a plurality of different users, each of the client units serving to provide a virtual workstation over the network to request a virtual workplace environment.
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.According to certain embodiments, the virtual workstations provided to each of the client devices comprise GUI elements, each representing the pointers generated after a write request from the user of the respective client device. The visible properties of the GUI elements, e.g. The color, type of icon, and the like are identical to GUI elements used by the respective virtual desktop environment to display files, thus giving the user the impression of being with a real file rather than a link is working.
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.As those skilled in the art will appreciate, aspects of the present invention may be practiced as a system, method, or computer program product. Thus, unless expressly stated otherwise, aspects of the present invention may take the form of a wholly hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.), or an embodiment including software and hardware. Manifestations, all of which may be collectively referred to herein as a "module" or a "system." Any combination of one or more computer-readable media may be used.
Kurze Beschreibung der ZeichnungenBrief description of the drawings
Im Folgenden werden bevorzugte Ausführungsformen der Erfindung lediglich beispielhaft ausführlicher beschrieben, wobei Bezug auf die Zeichnungen genommen wird, bei denen:Hereinafter, preferred embodiments of the invention will be described in more detail by way of example only, with reference to the drawings, in which:
Ausführliche BeschreibungDetailed description
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.Hereinafter, like numbered elements in the figures indicate either similar elements or elements that perform the same or equivalent function. Elements previously discussed will not necessarily be discussed in later figures if the function is the same or equivalent.
Das System
Der Thin Client
Eine Anwendungsprogrammierschnittstelle (API) (
Die gemeinschaftlich genutzte Speicherkapazität
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
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
Falls die zweite Dateikennung nicht mit einer beliebigen der ersten Dateikennungen identisch ist, erzeugt das Speicherbereich-Optimierungsprogramm
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.There is another use case where the user requests deletion of one of the files previously stored in the shared storage capacity. In this case, this user's user ID is removed from the access control list of this file, and the reference count of this file is reduced.
Die grafische Benutzeroberfläche, die dem Benutzer
Das Speichermedium
Die gemeinschaftlich genutzte Speicherkapazität
Der Benutzer
Die GUI
Der benutzerspezifische Speicher
BezugszeichenlisteLIST OF REFERENCE NUMBERS
- 100100
- Systemsystem
- 101101
- Grafische BenutzeroberflächeGraphical user interface
- 103103
- Netzwerknetwork
- 105105
- Verwaltungseinheit für eine virtuelle SpeicherinfrastrukturManagement unit for a virtual storage infrastructure
- 107107
- APIAPI
- 109109
- Speicherbereich-OptimierungsprogrammStorage area optimization program
- 111111
- Metadaten-AblageMetadata storage
- 113113
- gemeinschaftlich genutzte Speicherkapazitätshared storage capacity
- 117117
- gespeicherte Dateisaved file
- 201–209201-209
- Schrittesteps
- 123123
- Thin ClientThin client
- 301301
- Abbild der virtuellen MaschineImage of the virtual machine
- 302302
- GUIGUI
- 303303
- SpeicherStorage
- 304304
- Prozessorprocessor
- 305305
- Prozessorprocessor
- 308308
- Dateifile
- 309309
- SpeicherStorage
- 310310
- virtueller Arbeitsplatzvirtual workplace
- 311311
- Speichermediumstorage medium
- 313313
- Dateifile
- 314314
- Zeiger auf DateiPointer to file
- 315315
- Zeiger auf DateiPointer to file
- 316316
- benutzerspezifischer Speicheruser-specific memory
- 317317
- benutzerspezifischer Speicheruser-specific memory
- 320320
- Benutzeruser
- 321321
- Dateifile
- 322322
- virtuelle Arbeitsplatzumgebungvirtual workplace environment
Claims (15)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP11193141.6 | 2011-12-13 | ||
EP11193141 | 2011-12-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102012221813A1 true DE102012221813A1 (en) | 2013-06-13 |
Family
ID=48464944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102012221813A Pending DE102012221813A1 (en) | 2011-12-13 | 2012-11-29 | METHOD FOR OPTIMIZING THE MEMORY ASSIGNMENT IN A VIRTUAL WORKPLACE ENVIRONMENT |
Country Status (4)
Country | Link |
---|---|
US (1) | US9235589B2 (en) |
CN (1) | CN103198090B (en) |
DE (1) | DE102012221813A1 (en) |
GB (1) | GB2498626B (en) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2014122733A1 (en) * | 2013-02-06 | 2017-01-26 | 株式会社日立製作所 | Computer, data access management method and recording medium |
EP3140734B1 (en) | 2014-05-09 | 2020-04-08 | 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 (en) * | 2015-10-21 | 2020-01-14 | Tcl集团股份有限公司 | File storage method and system with balanced distribution |
JP6609471B2 (en) * | 2015-12-25 | 2019-11-20 | Dynabook株式会社 | Electronic device, method and program |
US10831465B2 (en) | 2016-02-12 | 2020-11-10 | Nutanix, Inc. | Virtualized file server distribution across clusters |
US11218418B2 (en) | 2016-05-20 | 2022-01-04 | Nutanix, Inc. | Scalable leadership election in a multi-processing computing environment |
KR102569734B1 (en) * | 2016-10-05 | 2023-08-25 | 삼성전자주식회사 | Electronic apparatus and the control method thereof |
CN106502927B (en) * | 2016-10-26 | 2019-08-13 | 北京德普信科技有限公司 | Trusted end-user calculating and data inactivity security system and method |
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 |
US11281484B2 (en) | 2016-12-06 | 2022-03-22 | Nutanix, Inc. | Virtualized server systems and methods including scaling of file system virtual machines |
US11288239B2 (en) | 2016-12-06 | 2022-03-29 | Nutanix, Inc. | Cloning virtualized file servers |
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 (en) * | 2018-11-08 | 2019-04-05 | 网宿科技股份有限公司 | File memory method, delet method, server and storage medium |
CN116010035B (en) * | 2019-06-28 | 2024-06-25 | 亚马逊技术股份有限公司 | Virtualized block storage server in cloud provider underlying extensions |
CN111290817B (en) * | 2020-01-21 | 2024-05-14 | 李岗 | Data loading method and system of desktop system |
US11768809B2 (en) | 2020-05-08 | 2023-09-26 | Nutanix, Inc. | Managing incremental snapshots for fast leader node bring-up |
US12131192B2 (en) | 2021-03-18 | 2024-10-29 | Nutanix, Inc. | Scope-based distributed lock infrastructure for virtualized file server |
US20230066137A1 (en) | 2021-08-19 | 2023-03-02 | Nutanix, Inc. | User interfaces for disaster recovery of distributed file servers |
US12117972B2 (en) | 2021-08-19 | 2024-10-15 | Nutanix, Inc. | File server managers and systems for managing virtualized file servers |
Family Cites Families (16)
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 |
JP2009506399A (en) * | 2005-06-24 | 2009-02-12 | シンクソート インコーポレイテッド | System and method for virtualizing backup images |
US8209506B2 (en) | 2007-09-05 | 2012-06-26 | Emc Corporation | De-duplication in a virtualized storage environment |
CN102880626B (en) * | 2007-09-05 | 2016-02-10 | 伊姆西公司 | Deduplication in virtualized server and virtualized storage environments |
US20090204650A1 (en) | 2007-11-15 | 2009-08-13 | Attune Systems, Inc. | File Deduplication using Copy-on-Write Storage Tiers |
WO2010045262A1 (en) | 2008-10-14 | 2010-04-22 | Wanova Technologies, Ltd. | 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 |
EP2433217B1 (en) | 2009-05-19 | 2019-10-16 | 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 |
US8732401B2 (en) * | 2011-07-07 | 2014-05-20 | Atlantis Computing, Inc. | Method and apparatus for cache replacement using a catalog |
-
2012
- 2012-11-20 US US13/681,605 patent/US9235589B2/en not_active Expired - Fee Related
- 2012-11-23 CN CN201210483039.4A patent/CN103198090B/en not_active Expired - Fee Related
- 2012-11-29 DE DE102012221813A patent/DE102012221813A1/en active Pending
- 2012-12-05 GB GB1221901.0A patent/GB2498626B/en active Active
Also Published As
Publication number | Publication date |
---|---|
GB2498626B (en) | 2015-02-18 |
US20130152085A1 (en) | 2013-06-13 |
CN103198090B (en) | 2016-12-21 |
CN103198090A (en) | 2013-07-10 |
GB2498626A (en) | 2013-07-24 |
US9235589B2 (en) | 2016-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102012221813A1 (en) | METHOD FOR OPTIMIZING THE MEMORY ASSIGNMENT IN A VIRTUAL WORKPLACE ENVIRONMENT | |
DE112011102076B4 (en) | Reorder access to reduce total seek time on tape media | |
DE112012005037B4 (en) | Manage redundant immutable files using deduplications in storage clouds | |
DE102013215535B4 (en) | BACKUP OR RECOVERY OF DATA USING MAIN MEMORY AND NON-VOLATILE STORAGE MEDIA | |
DE112010004969B4 (en) | Hybrid storage subsystem and method of managing one | |
DE112012005032B4 (en) | Removing data remanence in deduplicated storage clouds | |
DE69803924T2 (en) | MAPPEDVIRTUELSYSTEM (MVS) DEVICE BACKUP FOR A DATA PROCESSOR USING A DATA STORAGE SUBSYSTEM SNAPSHOT POSSIBILITY | |
DE102012220201B4 (en) | Process and system for image implementation in a cloud environment | |
DE102013208930B4 (en) | Grouping of entries in a deduplication index | |
DE202019005484U1 (en) | Incremental feature development and workload recording in database systems | |
DE102012218329B4 (en) | Managing failover operations on a cluster of computers | |
DE102013204186B4 (en) | Determining priorities for cached objects to order the broadcast of changes to cached objects based on measured network bandwidth | |
DE102013215009A1 (en) | Method and system for optimizing data transmission | |
DE202009019139U1 (en) | Asynchronous distributed deduplication for replicated content-addressed storage clusters | |
DE112020000694T5 (en) | PRODUCTION AND EXECUTION OF SECURE CONTAINERS | |
DE202012013432U1 (en) | Storing data on storage nodes | |
DE112012004318T5 (en) | Use a virtual disk as a hot spare for a RAID group | |
DE112018003524T5 (en) | DYNAMIC DATA MOVEMENT USING LIBRARIES ON A CLOUD BASE | |
DE102010001339A1 (en) | Manage requirements of operating systems that run in virtual machines | |
DE102013222384A1 (en) | Context-based security screening for accessing data | |
DE112013006646B4 (en) | Computer, system and computer-readable storage medium for identifying workload and sizing buffers for volume replication purposes | |
DE112012001162T5 (en) | Defragmentation of datastore pools | |
DE102018204427A1 (en) | Simulate multiple storage devices with a single storage device coupled to a computing device | |
DE112018005404T5 (en) | SIMPLIFY ACCESSING A STORAGE'S LOCALITY DOMAIN INFORMATION | |
DE112018002955T5 (en) | COGNITIVE FILE AND OBJECT MANAGEMENT FOR DISTRIBUTED STORAGE ENVIRONMENTS |
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 |