DE102023206999A1 - System und verfahren zur verwaltung von pfad- und dateinamen unter verwendung eines universellen verbinders - Google Patents

System und verfahren zur verwaltung von pfad- und dateinamen unter verwendung eines universellen verbinders Download PDF

Info

Publication number
DE102023206999A1
DE102023206999A1 DE102023206999.7A DE102023206999A DE102023206999A1 DE 102023206999 A1 DE102023206999 A1 DE 102023206999A1 DE 102023206999 A DE102023206999 A DE 102023206999A DE 102023206999 A1 DE102023206999 A1 DE 102023206999A1
Authority
DE
Germany
Prior art keywords
file
size
file name
nas
request
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
DE102023206999.7A
Other languages
English (en)
Inventor
Sunil Yadav
Shelesh Chopra
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.)
Dell Products LP
Original Assignee
Dell Products LP
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 Dell Products LP filed Critical Dell Products LP
Publication of DE102023206999A1 publication Critical patent/DE102023206999A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • 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/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS
    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Verfahren zum Schreiben einer Datei in einen an ein Netzwerk angeschlossenen Speicherserver (NAS), wobei das Verfahren das Empfangen einer Schreibanfrage von einer Anwendung, die in dem Benutzerraum ausgeführt wird, durch einen universellen Verbinder, der in einem Benutzerraum ausgeführt wird, umfasst, wobei die Schreibanfrage einen Dateinamen umfasst, und in Reaktion auf das Empfangen der Schreibanfrage das Zuweisen eines dynamischen Puffers, wobei eine erste Größe des dynamischen Puffers größer als eine zweite Größe des Dateinamens ist, Senden einer Systembegrenzungsanfrage an den NAS-Server, Empfangen von Systembegrenzungen von dem NAS-Server als Reaktion auf die Systembegrenzungsanfrage, wobei die Systembegrenzungen eine Dateinamensgrößengrenze umfassen, Validieren des Dateinamens anhand der Systembegrenzungen und Senden der Schreibanfrage an den NAS-Server auf der Grundlage der Validierung.

Description

  • HINTERGRUND
  • Rechnervorrichtungen in einem System können eine beliebige Anzahl interner Komponenten umfassen, beispielsweise Prozessoren, Speicher und dauerhaften Speicher. Die rechnenden Vorrichtungen können Anwendungen (beispielsweise Software) ausführen. Jede Anwendung kann auf neuere Versionen aktualisiert werden. Der Zeitaufwand für die Aktualisierung der Anwendung auf eine neuere Version kann den Betrieb der Vorrichtungen unterbrechen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Bestimmte Ausführungsformen der Erfindung werden unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. Die beiliegenden Zeichnungen veranschaulichen jedoch nur bestimmte Aspekte oder Ausführungsformen der Erfindung in beispielhafter Weise und sollen den Schutzbereich der Ansprüche nicht einschränken.
    • 1 zeigt ein Diagramm eines Systems gemäß einer oder mehrerer Ausführungsformen der Erfindung.
    • 2 zeigt ein Flussdiagramm zur Optimierung einer Sicherung einer großen Menge von Dateien, die in einem NAS-System gespeichert sind, gemäß einer oder mehreren Ausführungsformen der Erfindung.
    • 3 zeigt ein Flussdiagramm zur Optimierung von inkrementellen Sicherungen von Daten in einem an das Netzwerk angeschlossenen Speicher (Network-Attached-Storage-NAS) gemäß einer oder mehreren Ausführungsformen der Erfindung.
    • 4 zeigt ein Flussdiagramm zur Verwaltung der Netzwerkbandbreite für mittlere und große Dateien, die in einem NAS-System gespeichert sind, gemäß einer oder mehreren Ausführungsformen der Erfindung.
    • 5 zeigt ein Flussdiagramm zur Optimierung von NAS-Sicherungen eines großen Dateisatzes auf der Grundlage der Ressourcenverfügbarkeit gemäß einer oder mehrerer Ausführungsformen der Erfindung.
    • 6 zeigt ein Flussdiagramm zur Parallelisierung von Sicherungen eines Ordners, der einen großen Satz von Dateien umfasst, gemäß einer oder mehreren Ausführungsformen der Erfindung.
    • 7 zeigt ein Flussdiagramm für die Verwaltung einer Sicherung einer großen Menge von Dateien unter Verwendung einer Dateisystemanalyse für Daten, die in einem NAS-System gemäß einer oder mehreren Ausführungsformen der Erfindung gespeichert sind.
    • 8 zeigt ein Flussdiagramm zum Erzeugen inkrementeller Sicherungen für dateibasierte Sicherungen, die in einem NAS-System gemäß einer oder mehreren Ausführungsformen der Erfindung gespeichert sind.
    • 9 zeigt ein Flussdiagramm zur Durchführung von Sicherungen mehrerer Versionen einer in einem NAS-System gespeicherten Datei gemäß einer oder mehrerer Ausführungsformen der Erfindung.
    • 10A-10H zeigen jeweils ein Beispiel gemäß einer oder mehrerer Ausführungsformen der Erfindung.
    • 11 zeigt ein Diagramm einer Vorrichtung gemäß einer oder mehrerer Ausführungsformen der Erfindung.
    • 12 zeigt ein Flussdiagramm zur Abfrage eines NAS-Dateisystems und zum Erzeugen einer Datei im NAS.
    • 13 zeigt ein Beispiel gemäß einer oder mehreren Ausführungsformen der Erfindung.
  • DETAILLIERTE BESCHREIBUNG
  • Spezifische Ausführungsformen werden nun unter Bezugnahme auf die begleitenden Figuren beschrieben. In der folgenden Beschreibung werden zahlreiche Details als Beispiele für die Erfindung aufgeführt. Der Fachmann wird verstehen, dass eine oder mehrere Ausführungsformen der vorliegenden Erfindung auch ohne diese spezifischen Details ausgeführt werden können und dass zahlreiche Variationen oder Modifikationen möglich sind, ohne dass der Umfang der Erfindung verlassen wird. Bestimmte Details, die dem Fachmann bekannt sind, werden weggelassen, um die Beschreibung nicht zu verkomplizieren.
  • In der folgenden Beschreibung der Figuren kann jede Komponente, die in Bezug auf eine Figur in verschiedenen Ausführungsformen der Erfindung beschrieben wird, einer oder mehreren gleichnamigen Komponenten entsprechen, die in Bezug auf eine andere Figur beschrieben werden. Der Kürze halber werden die Beschreibungen dieser Komponenten nicht in Bezug auf jede Figur wiederholt. Daher wird jede einzelne Ausführungsform der Komponenten jeder Figur durch Bezugnahme einbezogen und davon ausgegangen, dass sie optional in jeder anderen Figur mit einer oder mehreren gleichnamigen Komponenten vorhanden ist. Darüber hinaus ist gemäß verschiedenen Ausführungsformen der Erfindung jede Beschreibung der Komponenten einer Figur als eine optionale Ausführungsform zu verstehen, die zusätzlich zu, in Verbindung mit oder anstelle der Ausführungsformen implementiert werden kann, die in Bezug auf eine entsprechende gleichnamige Komponente in einer anderen Figur beschrieben sind.
  • Im Allgemeinen betreffen die Ausführungsformen der Erfindung ein Verfahren und ein System zur Verwaltung von Daten. Insbesondere umfassen Ausführungsformen der Erfindung ein Verfahren und ein System zum Verwalten von Sicherungen von Daten. Insbesondere sehen die Ausführungsformen ein Verfahren zur Bereitstellung eines effizienten und agnostischen Anwenderbereichs vor, der für die Verwaltung von Daten verwendet wird, die in einem NAS-Server (Network-Attached-Storage) gespeichert sind. Der hier offengelegte Anwenderraum kann einen effizienten universellen Verbinder verwenden, der Datenspeicherverwaltungsdienste für eine Vielzahl von Arbeitslasten vorsieht. Die Vielfalt der Arbeitslasten kann beispielsweise Arbeitslasten für die Sicherung einer großen Anzahl von Dateien, die Sicherung von Dateien mit großer Größe, die Sicherung in hochfrequenten Intervallen, Arbeitslasten für inkrementelle Sicherungen, Arbeitslasten für den Zugriff auf eine große Anzahl von Dateien und Arbeitslasten, die zwei oder mehr Protokolle (beispielsweise Network File System (NFS), Server Message Block (SMB) und so weiter) implementieren, umfassen. Ausführungsformen dieser Erfindung sehen Methoden und Systeme zur Verwaltung der hierin offengelegten Vielfalt von Arbeitslasten vor, wobei eine effiziente Ausführung der Arbeitslasten beibehalten wird.
  • In einer oder mehreren Ausführungsformen der Erfindung können die Client-Vorrichtungen eine oder mehrere Anwendungen ausführen, die auf den universellen Verbinder zugreifen. Der universelle Verbinder kann Multi-Thread-Verbindungen zur Verarbeitung mehrerer Workloads vorsehen. Der universelle Verbinder kann protokollunabhängig sein. Mit anderen Worten, der universelle Verbinder kann Funktionalität zur Implementierung mehrerer Protokolle umfassen (beispielsweise implementiert durch die Anwendungen und/oder einen NAS-Server (Network-Attached-Storage), der mit dem universellen Verbinder kommuniziert, wenn er die Arbeitslasten bedient).
  • In einer oder mehreren Ausführungsformen der Erfindung sieht der universelle Verbinder ein Verfahren zur Optimierung eines Backups für eine große Anzahl von Dateien kleinerer Größe vor. Das Verfahren umfasst das Identifizieren eines Satzes kleiner Dateien in einer Sicherungsanforderung, das Durchführen einer Stapelverarbeitung des Satzes kleiner Dateien, um einen Satz von Stapeln zu erhalten, und das Senden von Sicherungsdienstanforderungen an den NAS-Server in Übereinstimmung mit dem Satz von Stapeln, um die Dateidaten zu erhalten. Beispielsweise kann jede Sicherungsdienstanforderung einem der Stapel von kleinen Dateien zugehören.
  • In einer oder mehreren Ausführungsformen umfasst der universelle Verbinder eine Funktionalität zur Verwaltung inkrementeller Sicherungen. Das Verfahren umfasst das Erhalten von Anforderungen für Metadaten (verknüpft mit den inkrementellen Sicherungen) von den Anwendungen, das Stapeln der Anforderungen und das Senden einer gestapelten Version von Metadatenanforderungen an einen NAS-Server. Die gebündelte Version der Anforderungen kann sich auf Metadaten beziehen, die mit einem Dateisystem der inkrementellen Sicherung verknüpft sind. Der universelle Verbinder kann die angeforderten Metadaten vom NAS-Server empfangen und als Antwort die inkrementellen Sicherungen unter Verwendung der erhaltenen Metadaten durchführen.
  • In einer oder mehreren Ausführungsformen umfasst der universelle Verbinder eine Funktionalität zur Verwaltung der Netzwerkbandbreite zwischen dem NAS-Server und dem universellen Verbinder, der auf einer Client-Vorrichtung ausgeführt wird. Das Verfahren umfasst die Verringerung der Anzahl der Roundtrips (das heißt, der Anzahl der Übertragungen eines Teils einer Datensicherung zum und vom NAS-Server), indem die Anforderungen am universellen Verbinder gestapelt werden, bevor die Anforderungen an den NAS-Server ausgegeben werden.
  • In einer oder mehreren Ausführungsformen umfasst der universelle Verbinder eine Funktionalität zur Durchführung von rückmeldungsbasierten Stapelverarbeitungsvorgängen auf der Grundlage der Ressourcenverfügbarkeit des NAS-Servers. Das Verfahren umfasst die Überwachung der Ressourcenverfügbarkeit des NAS-Servers durch den universellen Verbinder. Die überwachten Ressourcen können beispielsweise die Netzwerkbandbreite zwischen dem universellen Verbinder und dem NAS-Server, die Speicherverfügbarkeit des NAS-Servers, die Speichernutzung des NAS-Servers und die Verarbeitungsnutzung (das heißt, die zentrale Verarbeitungseinheit (CPU)) des NAS-Servers umfassen.
  • In einer oder mehreren Ausführungsformen umfasst der universelle Verbinder eine Funktionalität zur Parallelisierung der Verarbeitung von Arbeitslasten, die Ordner mit einer großen Anzahl (beispielsweise Millionen) von Dateien umfassen. Das Verfahren umfasst das Erhalten einer Anforderung zum Sichern eines großen Ordners (z.B. eines Ordners mit Millionen von Dateien), das Identifizieren eines Satzes von Teilen des Ordners, das Erzeugen von virtuellen Ordnern, die jeweils einer der Teile des Ordners sind und gemeinsam die Dateien in dem Ordner umfassen, das Verarbeiten (z.B. Durchführen einer Sicherung) jedes der virtuellen Ordner gleichzeitig (d.h. parallel) und das Anweisen des NAS-Servers, die Sicherungen der virtuellen Ordner zu kombinieren, um die Sicherung des ursprünglichen Ordners zu erzeugen.
  • In einer oder mehreren Ausführungsformen umfasst der universelle Verbinder eine Funktionalität zum intelligenten Zwischenspeichern von Informationen, die mit Arbeitslasten verknüpft sind, um die Abfolge der Operationen der Arbeitslasten zu verwalten. Das Verfahren umfasst die dynamische Verwaltung der Puffer für Lese- und Schreibwarteschlangen auf der Grundlage der Ressourcenverfügbarkeit des universellen Verbinders und/oder des NAS-Servers, so dass das Netzwerk auf der Grundlage der Größe und/oder der Anzahl der Arbeitslastanforderungen effizienter genutzt wird. Beispielsweise können die Puffer vergrößert werden, wenn die Anzahl der Workloads gering und die Größe der Backups für jeden Workload groß ist. Umgekehrt kann die Anzahl der Puffer erhöht (und die Größe der Puffer verringert) werden, wenn die Anzahl der Workloads steigt.
  • In einer oder mehreren Ausführungsformen umfasst der universelle Verbinder eine Funktionalität zur Durchführung blockbasierter inkrementeller Sicherungen einer dateibasierten Sicherung. Im Gegensatz zur Sicherung ganzer Dateien in einer dateibasierten Sicherung, wenn sich eine Datei ändert, betreffen die hierin offengelegten Ausführungsformen die Durchführung von Sicherungen von geänderten Datenblöcken, die mit einer geänderten Datei verknüpft sind, und die Speicherung der geänderten Blöcke (beispielsweise eines Teils einer geänderten Datei) in den inkrementellen Sicherungen. Auf diese Weise ist für jede inkrementelle Sicherung weniger Erzeugung von Daten erforderlich, um die gleiche Menge an Daten zu sichern wie beispielsweise eine inkrementelle Sicherung pro geänderter Datei.
  • In einer oder mehreren Ausführungsformen umfasst der universelle Verbinder eine Funktionalität zur Unterstützung der Sicherung mehrerer Versionen einer Datei und/oder eines Ordners in einer Sicherungssitzung. Das Verfahren umfasst das Erhalten einer Anforderung zur Sicherung einer Datei und/oder eines Ordners, das Erhalten der Versionen der Datei und/oder des Ordners zur Sicherung unter Verwendung von Metadaten für die Datei und/oder den Ordner und das Initiieren einer Sicherung der erhaltenen Versionen der Datei und/oder des Ordners.
  • In einer oder mehreren Ausführungsformen kann auf einem Produktionshost ein Betriebssystem (OS) ausgeführt werden, das die Funktionalität der Anwendungen auf dem Produktionshost einschränkt. Beispielsweise kann eine Anwendung einen oder mehrere vom Betriebssystem bereitgestellte Dienste und Protokolle nutzen, um auf Daten zuzugreifen (beispielsweise auf eine interne Vorrichtung, ein externes NAS usw.). Die vom Betriebssystem bereitgestellten Dienste können jedoch die Nutzung der zugrunde liegenden Vorrichtungen einschränken. Insbesondere kann in einer oder mehreren Ausführungsformen das (vom Betriebssystem vorgesehene) Dateisystem eine Größen- und/oder Längenbeschränkung für den Pfad und den Dateinamen von Dateien einführen, die unter Verwendung des vom Betriebssystem bereitgestellten Dateisystems gespeichert werden.
  • Als nicht einschränkendes Beispiel gibt es in den meisten Varianten von Linux und den darin verwendeten Dateisystemen eine Größenbeschränkung von 255 Byte für Dateinamen. Unter Windows hingegen ist die Gesamtlänge des Pfades und des Dateinamens auf 30.000 Zeichen begrenzt (im lateinischen Alphabet hat ein einzelnes Zeichen normalerweise eine Größe von 1 Byte). Dementsprechend kann eine unter Windows auf einem NAS erstellte Datei einen Dateinamen haben, der größer als 255 Byte ist. Bei der Verwendung desselben NAS unter Linux kann auf diese Datei jedoch nicht zugegriffen werden (daher kann Linux nicht zum Erzeugen von Sicherungskopien des NAS verwendet werden). Darüber hinaus können andere Alphabete und Skripte Zeichen verwenden, die jeweils 2-4 Byte groß sind (beispielsweise Japanisch, Chinesisch, Koreanisch usw.). In diesen Fällen zwingt die von Linux auferlegte Dateinamenbegrenzung dazu, dass die Dateinamen kürzer als 255 Zeichen sind.
  • Dementsprechend kann ein universeller Verbinder, wie in einer oder mehreren Ausführungsformen hierin offenbart, verwendet werden, um die vom Betriebssystem auferlegten Pfad- und/oder Dateinamensbeschränkungen zu umgehen. Das heißt, als nicht einschränkendes Beispiel kann ein universeller Verbinder ein Dateisystem (im Anwenderbereich) vorsehen, das mit der vorhandenen Anwendung und den Speichervorrichtungen (beispielsweise interner Speicher, NAS) interagiert, wodurch die vom Betriebssystem bereitgestellten Dateisysteme umgangen werden. Darüber hinaus kann das vom universellen Verbinder vorgesehene Dateisystem Pfad- und Dateinamensgrenzen festlegen, die deutlich über denen des Betriebssystems liegen. Und da der universelle Verbinder unabhängig vom Betriebssystem arbeitet, sind die Beschränkungen über Produktionsrechner hinweg, auf denen unterschiedliche Betriebssysteme ausgeführt werden, konsistent.
  • Im Folgenden werden verschiedene Ausführungsformen der Erfindung beschrieben.
  • 1 zeigt ein Beispielsystem in Übereinstimmung mit einer oder mehreren Ausführungsformen der Erfindung. Das System umfasst einen Produktionshost (110), der eine oder mehrere Anwendungen (112) und einen universellen Verbinder (118) umfasst, einen Sicherungsspeicher (140), einen NAS-Server (142) und ein NAS-System (144). Das System kann zusätzliche, weniger und/oder andere Komponenten umfassen, ohne dass dies von der Erfindung abweicht. Jede Komponente kann mit jeder der anderen Komponenten über eine beliebige Kombination von drahtgebundenen und/oder drahtlosen Verbindungen funktionsfähig verbunden sein. Jede in 1 dargestellte Komponente wird im Folgenden erläutert.
  • In einer oder mehreren Ausführungsformen der Erfindung kann der Produktionshost (110) Anwendungen (112) umfassen. Die Anwendungen (114, 116) können logische Einheiten sein, die unter Verwendung von Rechenressourcen (nicht dargestellt) des Produktionshosts (110) ausgeführt werden. Jede der Anwendungen (114, 116) kann ähnliche oder unterschiedliche Prozesse durchführen. In einer oder mehreren Ausführungsformen der Erfindung sehen die Anwendungen (112) Dienste für Anwender vor, beispielsweise für Clients (nicht dargestellt). Beispielsweise können die Anwendungen (112) Komponenten hosten. Bei den Komponenten kann es sich beispielsweise um Instanzen von Datenbanken, E-Mail-Servern und/oder anderen Komponenten handeln. Die Anwendungen (112) können auch andere Arten von Komponenten hosten, ohne dass dies von der Erfindung abweicht. Eine Anwendung (112) kann auf einem oder mehreren Produktionshosts als Instanzen der Anwendung ausgeführt werden.
  • In einer oder mehreren Ausführungsformen können die Anwendungen (112) ein Dateisystem verwenden, um die Speicherung von Daten zu verwalten. In einer oder mehreren Ausführungsformen der Erfindung ist ein Dateisystem eine organisatorische Datenstruktur, die verfolgt, wie Daten in einem System gespeichert und abgerufen werden. Das Dateisystem kann Verweise auf Dateien und Datenblöcke bestimmen, die mit jeder Datei verknüpft sind. Jeder Datenblock kann einen Teil der Anwendungsdaten für eine Anwendung umfassen. In einer oder mehreren Ausführungsformen werden die Dateidaten, Anwendungsdaten und/oder andere Daten, die von den Anwendungen (112) genutzt werden, im NAS-System (144) gespeichert. Der Zugriff auf die genannten Daten erfolgt für die Anwendungen (112) über einen universellen Verbinder (118). Der universelle Verbinder (118) kann auf die Daten im NAS-System (144) über die Kommunikation mit einem NAS-Server (142) zugreifen (wird weiter unten erläutert).
  • In einer oder mehreren Ausführungsformen der Erfindung sind die Anwendungen (112) als Computerbefehle, beispielsweise als Computercode, implementiert, die in einem dauerhaften Speicher gespeichert sind und bei Ausführung durch einen oder mehrere Prozessoren einer Vorrichtung bewirken, dass die Vorrichtung die in dieser Anwendung beschriebene Funktionalität der Anwendungen (112) vorsieht.
  • In einer oder mehreren Ausführungsformen umfasst der universelle Verbinder (118) eine Funktionalität zur Bearbeitung von Anforderungen, die von den Anwendungen (112) ausgegeben werden. Die Anwendungen (112) können Anforderungen zur Durchführung von Arbeitslasten ausgeben, die mit den Daten verknüpft sind, auf die die Anwendungen (112) zugreifen. Die Arbeitslasten können Arbeitslasten für die Sicherung der Anwendungsdaten, für den Zugriff auf eine oder mehrere Dateien aus dem NAS-System (144), für die Durchführung inkrementeller Sicherungen der Anwendungsdaten und/oder beliebige andere Arbeitslasten umfassen, ohne von der Erfindung abzuweichen. In einer oder mehreren Ausführungsformen bedient der universelle Verbinder (118) Anforderungen für Arbeitslasten gemäß den 2-9.
  • In einer oder mehreren Ausführungsformen umfasst der universelle Verbinder (118) eine Funktionalität zum Verwalten einer universellen Bibliothek von zwei oder mehr Protokollen, die von den Anwendungen (112) verwendet werden. Auf diese Weise kann jede Anwendung (114, 116) unter Verwendung eines Protokolls arbeiten, beispielsweise so, dass der universelle Verbinder (118) die von den kollektiven Anwendungen (112) genutzten multiplen Protokolle bedienen kann. Beispiele für die in der Universalbibliothek umfassten Protokolle umfassen unter anderem: Network File System (NFS), Server Message Block (SMB) und Common Internet File System (CIFS). Beispielsweise kann der universelle Verbinder (118) eine Anwendungsprogrammierschnittstelle (API) für jede Anwendung (114, 116) und/oder für jedes vom universellen Verbinder (118) bereitgestellte Protokoll vorsehen.
  • In einer oder mehreren Ausführungsformen umfasst der universelle Verbinder (118) ferner eine Funktionalität zur Modifizierung der Anfragen in ein für den NAS-Server (144) lesbares Format. Der universelle Verbinder (118) kann die modifizierte Anfrage an den NAS-Server (142) senden. Auf diese Weise müssen die Anwendungen (112) ihre Anfragen nicht in ein für den NAS-Server (142) lesbares Format ändern.
  • Der universelle Verbinder (118) ist zwar als Abschnitt des Produktionshosts (110) dargestellt, kann aber eine separate Einheit sein. Beispielsweise ist der universelle Verbinder als eine rechnergestützte Vorrichtung implementiert (siehe beispielsweise 11). Bei der Vorrichtung kann es sich beispielsweise um ein Mobiltelefon, einen Tablet-Computer, einen Laptop-Computer, einen Desktop-Computer, einen Server, ein verteiltes Computersystem oder eine Cloud-Ressource handeln. Die Vorrichtung kann einen oder mehrere Prozessoren, Speicher (z. B. Direktzugriffsspeicher) und dauerhaften Speicher (beispielsweise Festplattenlaufwerke, Solid State Drives usw.) umfassen. Die Vorrichtung kann Anweisungen umfassen, die auf dem dauerhaften Speicher gespeichert sind und die, wenn sie von dem/den Prozessor(en) der Vorrichtung ausgeführt werden, die Vorrichtung veranlassen, die in dieser Anwendung beschriebene Funktionalität des universellen Verbinders (118) und/oder alle oder einen Teil der in den 2-9 dargestellten Verfahren auszuführen.
  • Obwohl in 1 nicht dargestellt, kann das System von 1 mehrere Produktionshosts umfassen. Jeder Produktionshost kann unabhängig von den anderen arbeiten. Jeder Produktionshost kann eine funktionsfähige Verbindung zum Speichersystem (140) und/oder dem NAS-Server (142) umfassen.
  • In einer oder mehreren Ausführungsformen umfasst der NAS-Server (142) eine Funktionalität zur Bearbeitung von Anfragen, die vom universellen Verbinder (118) ausgegeben werden. Der NAS-Server (142) kann die Anforderungen bedienen, indem er auf Daten aus dem NAS-System (144) zugreift oder sie auf andere Weise erhält. Der NAS-Server (142) kann ferner Funktionen zum Speichern von Daten umfassen, die vom universellen Verbinder (112) bereitgestellt werden, wie sie von den Anwendungen (112) initiiert wurden. Der NAS-Server (142) kann die Anfragen zumindest in Abschnitten in Übereinstimmung mit den Verfahren der 2-9 bedienen.
  • In einer oder mehreren Ausführungsformen ist der NAS-Server (142) als eine rechnende Vorrichtung implementiert (siehe beispielsweise 11). Bei der Vorrichtung kann es sich beispielsweise um ein Mobiltelefon, einen Tablet-Computer, einen Laptop-Computer, einen Desktop-Computer, einen Server, ein verteiltes Rechensystem oder eine Cloud-Ressource handeln. Die Vorrichtung kann einen oder mehrere Prozessoren, Speicher (z. B. Direktzugriffsspeicher) und dauerhaften Speicher (beispielsweise Festplattenlaufwerke, Solid State Drives usw.) umfassen. Die Vorrichtung kann Anweisungen umfassen, die auf dem dauerhaften Speicher gespeichert sind und die, wenn sie von dem/den Prozessor(en) der Vorrichtung ausgeführt werden, die Vorrichtung veranlassen, die in dieser Anwendung beschriebene Funktionalität des NAS-Servers (142) auszuführen.
  • In einer oder mehreren Ausführungsformen der Erfindung ist der NAS-Server (142) als eine logische Vorrichtung implementiert. Die logische Vorrichtung kann die Rechenressourcen einer beliebigen Anzahl von Vorrichtungen nutzen und dadurch die in dieser Anwendung beschriebene Funktionalität des NAS-Servers (142) vorsehen.
  • In einer oder mehreren Ausführungsformen der Erfindung speichert der NAS-Server (142) die Daten in einem NAS-System (144). Das NAS-System (144) kann eine beliebige Anzahl von Speichervorrichtungen (144A, 144P) umfassen. Jede Vorrichtung (144A, 144P) umfasst Funktionen zum Speichern von Anwendungsdaten, Dateidaten (beispielsweise Daten, die mit einem Dateisystem verknüpft sind) und/oder anderen Daten, ohne von der Erfindung abzuweichen. Die in dem NAS-System (144) gespeicherten Daten können über den NAS-Server (142) zugänglich sein.
  • In einer oder mehreren Ausführungsformen umfasst das Speichersystem (140) eine Funktionalität zum Speichern von Backups. Die Sicherungskopien können über den universellen Verbinder (118) erzeugt und/oder gespeichert werden. Das Speichersystem (140) für Sicherungskopien kann Sicherungskopien speichern, die von dem universellen Verbinder (118) erhalten wurden. Die Sicherungskopien können in Übereinstimmung mit den 2-9 erzeugt werden.
  • Die 2-9 zeigen Flussdiagramme gemäß einer oder mehreren Ausführungsformen der Erfindung. Jedes der in den 2-9 dargestellten Flussdiagramme beschreibt ein Verfahren zur Bedienung einer Arbeitslast gemäß einer oder mehrerer Ausführungsformen der Erfindung. Die verschiedenen Schritte in den Flussdiagrammen werden zwar der Reihe nach dargestellt und beschrieben, aber ein Fachmann wird verstehen, dass einige oder alle Schritte in unterschiedlicher Reihenfolge ausgeführt werden können, dass sie kombiniert oder weggelassen werden können und dass einige oder alle Schritte parallel ausgeführt werden können. In einer Ausführungsform der Erfindung können die in den 2 bis 9 gezeigten Schritte parallel zu allen anderen in den 2 bis 9 gezeigten Schritten durchgeführt werden, ohne dass dies vom Anwendungsbereich der Erfindung abweicht.
  • 2 zeigt ein Flussdiagramm zur Optimierung einer Sicherung einer großen Menge von Dateien, die in einem NAS-System gespeichert sind, gemäß einer oder mehreren Ausführungsformen der Erfindung. Das in 2 dargestellte Verfahren kann beispielsweise von einem universellen Verbinder (118, 1) durchgeführt werden. Andere Komponenten des in 1 dargestellten Systems können das Verfahren von 2 durchführen, ohne von der Erfindung abzuweichen.
  • In 2 werden in Schritt 200 eine oder mehrere Datenfreigabeanfragen für Daten eingeholt, die mit einem großen Satz von Dateien verknüpft sind. In einer oder mehreren Ausführungsformen bestimmen die Datenfreigabeanforderungen jeweils eine oder mehrere Dateien, auf die von Anwendungen zugegriffen werden soll. Die Datenfreigabeanforderungen können von der/den Anwendung(en) bezogen werden. In einer oder mehreren Ausführungsformen können die Datenfreigabeanforderungen außerdem die Durchführung eines Backups des großen Satzes von Dateien umfassen. In einer oder mehreren Ausführungsformen der Erfindung können die Sicherungen für jede der Datenfreigabeanforderungen durchgeführt werden.
  • In Schritt 202 wird ein Freigabescan durchgeführt, um Attribute zu erhalten, die mit jeder Datei in der großen Menge von Dateien verknüpft sind. In einer oder mehreren Ausführungsformen ist der Freigabescan ein Prozess zum Analysieren der mit der großen Menge von Dateien verknüpften Metadaten, um eine Attributtabelle unter Verwendung der erhaltenen Attribute der Metadaten zu erzeugen. Die Attributtabelle kann beispielsweise in Form einer SQLite-Tabelle gespeichert werden. Die Attributtabelle kann beispielsweise einen Dateibezeichner, einen Dateinamen, einen übergeordneten Bezeichner, eine Dateigröße, eine mit dem NAS-Server verknüpfte Zugriffskontrollliste (ACL), einen Zeitstempel und einen Abschnitt „andere Attribute“ bestimmen. Die Metadaten können von dem NAS-Server bezogen werden. Alternativ können die Metadaten zuvor von dem universellen Verbinder gespeichert worden sein.
  • In Schritt 204 wird eine Stapelverarbeitung des großen Satzes von Dateien durchgeführt, um einen Satz von Dateistapeln unter Verwendung der erhaltenen Attribute und unter Verwendung eines Schwellenwertes für die Stapelgröße zu erhalten. In einer oder mehreren Ausführungsformen der Erfindung ist die Stapelverarbeitung ein Verfahren zum Gruppieren der Dateien auf der Grundlage der in der Attributtabelle bestimmten Dateigrößen. Der Schwellenwert für die Stapelgröße bestimmt eine maximale kombinierte Größe für jeden Dateistapel. Das Stapeln umfasst die Minimierung der Anzahl von Dateistapeln, ohne den Schwellenwert für die Stapelgröße für jeden Dateistapel zu überschreiten.
  • In Schritt 206 wird eine Anforderungsumwandlung durchgeführt, um einen Satz von umgewandelten Stapelanforderungen zu erzeugen, die jeweils einem aus dem Satz von Dateistapeln zugehören. In einer oder mehreren Ausführungsformen ist die Anforderungskonvertierung ein Prozess zum Erzeugen einer Stapelanforderung für jeden Dateistapel. Jede Stapelanforderung wird in ein Format konvertiert, das für den NAS-Server lesbar ist, um die konvertierten Stapelanforderungen zu erzeugen. Jede konvertierte Stapelanforderung bestimmt einen Prozess für den Zugriff auf die Daten durch den NAS-Server. Der Prozess kann das Öffnen der Datei vom NAS-System, das Lesen der Datei und das Schließen der Datei umfassen. Die Stapelanforderung kann das Öffnen, Lesen und Schließen für jede Datei im jeweiligen Dateistapel bestimmen.
  • In Schritt 208 wird eine gemeinsame Nutzung der Daten des großen Dateisatzes eingeleitet, indem der Satz konvertierter Stapelanforderungen an einen NAS-Server gesendet wird. In einer oder mehreren Ausführungsformen umfasst die gemeinsame Nutzung von Daten das Senden des Satzes konvertierter Stapelanforderungen an den NAS-Server. Der NAS-Server kann seinerseits den Satz konvertierter Stapelanforderungen verarbeiten und die vom NAS-System erhaltenen Daten an den universellen Verbinder senden.
  • In einer oder mehreren Ausführungsformen kann der universelle Verbinder eine Sicherung des großen Satzes von Dateien unter Verwendung der erhaltenen Dateidaten erzeugen und die erzeugte(n) Sicherung(en) zur Speicherung an das Sicherungsspeichersystem senden.
  • 3 zeigt ein Flussdiagramm zur Optimierung von inkrementellen Sicherungen von Daten aus einem an das Netzwerk angeschlossenen Speicher (NAS) gemäß einer oder mehreren Ausführungsformen der Erfindung. Das in 3 dargestellte Verfahren kann beispielsweise durch den universellen Verbinder (118, 1) durchgeführt werden. Andere Komponenten des in 1 dargestellten Systems können das Verfahren von 3 durchführen, ohne von der Erfindung abzuweichen.
  • In 3, Schritt 300, wird eine Anforderung für ein inkrementelles Backup für einen Satz von Dateien erhalten. In einer oder mehreren Ausführungsformen wird die Anforderung von einer Anwendung eingeholt. Die Anforderung kann bestimmen, dass nur ein Teil der Dateien gesichert werden soll, die sich seit einer vorherigen Sicherung geändert haben. Bei der vorherigen Sicherung kann es sich um eine Vollsicherung handeln (das heißt beispielsweise eine Sicherung, die die Daten aller Dateien im Dateisatz umfasst), oder die vorherige Sicherung kann eine weitere inkrementelle Sicherung sein.
  • In Schritt 302 wird ein Metadaten-Batching des Dateisatzes durchgeführt, um einen Satz von Dateistapeln zu erhalten. In einer oder mehreren Ausführungsformen der Erfindung ist das Metadaten-Stapeln ein Verfahren zum Gruppieren der Dateien in dem Satz von Dateien und zum Erzeugen des Satzes von Dateistapeln, die jeweils mit einer Gruppierung der Dateien verknüpft sind.
  • In Schritt 304 wird eine Anforderungskonvertierung durchgeführt, um einen Satz von konvertierten Metadatenanforderungen zu erzeugen, die jeweils einem des Satzes von Dateistapeln zugehören. In einer oder mehreren Ausführungsformen ist die Anforderungskonvertierung ein Prozess zum Erzeugen einer Stapelanforderung für jeden Dateistapel. Jede Metadatenanforderung wird in ein Format konvertiert, das für den NAS-Server lesbar ist, um die konvertierten Stapelanforderungen zu erzeugen. Jede konvertierte Stapelanforderung bestimmt einen Prozess für den Zugriff auf die Daten durch den NAS-Server. Der Prozess kann einen Befehl zum Öffnen des Verzeichnisses mit den entsprechenden Dateien, einen Befehl zum Auflisten eines Satzes von Attributen, die den angegebenen Dateien zugehören, das Lesen einer Liste angegebener Attribute und einen Befehl zum Schließen des Verzeichnisses umfassen. Die Metadatenanforderung kann das Öffnen, Auflisten und Schließen für jede Datei im jeweiligen Dateistapel bestimmen. Der Satz von Metadatenanforderungen wird an den NAS-Server gesendet.
  • In Schritt 306 wird ein Ergebnisfeld vom NAS-Server abgerufen. In einer oder mehreren Ausführungsformen wird das Ergebnis-Array als Antwort auf den Satz von MetadatenAnforderungen abgerufen. Das Ergebnisfeld kann die angeforderte Liste von Attributen umfassen, die mit jeder Datei verknüpft sind, wie in dem Satz von Metadatenanforderungen bestimmt. Die angeforderte Liste von Attributen kann als die Metadaten bezeichnet werden.
  • In Schritt 308 wird ein Metadatenvergleich mit einer Attributtabelle des universellen Verbinders durchgeführt, um eine Teilmenge von geänderten Dateien zu bestimmen. In einer oder mehreren Ausführungsformen umfasst der Metadatenvergleich die Durchführung einer Hash-Funktion an der erhaltenen Liste von Attributen, um einen Hash-Wert für jede Datei zu erhalten. Die Hash-Werte werden mit gespeicherten Hash-Werten verglichen, die in der Attributtabelle bestimmt sind. Jede Datei, für die der erzeugte Hash-Wert nicht mit dem zuvor gespeicherten Hash-Wert übereinstimmt, wird in die Teilmenge der geänderten Dateien umfasst.
  • In Schritt 310 wird eine inkrementelle Sicherung des Dateisatzes unter Verwendung der Untergruppe der geänderten Dateien erzeugt. In einer oder mehreren Ausführungsformen wird die inkrementelle Sicherung erzeugt, indem eine oder mehrere Datenzugriffsanforderungen an den NAS-Server gesendet werden, um die Daten der Teilmenge der geänderten Dateien zu erhalten. Die inkrementelle Sicherung wird unter Verwendung der Dateidaten erzeugt und im Speichersystem der Sicherung gespeichert.
  • In Schritt 312 wird die Attributtabelle auf der Grundlage des Metadatenvergleichs aktualisiert. In einer oder mehreren Ausführungsformen wird die Attributtabelle aktualisiert, indem die Liste der Attribute in der Attributtabelle der Untergruppe der geänderten Dateien aktualisiert wird. Außerdem werden die Hash-Werte der Untergruppe der geänderten Dateien in der Attributtabelle aktualisiert.
  • 4 zeigt ein Flussdiagramm zur Verwaltung der Netzwerkbandbreite für mittlere und große Dateien, die in einem NAS-System gespeichert sind, gemäß einer oder mehreren Ausführungsformen der Erfindung. Das in 4 dargestellte Verfahren kann beispielsweise durch den universellen Verbinder (118, 1) durchgeführt werden. Andere Komponenten des in 1 dargestellten Systems können das Verfahren von 4 durchführen, ohne von der Erfindung abzuweichen.
  • In 4 wird in Schritt 400 eine Sicherungsanforderung für eine Datei erhalten. In einer oder mehreren Ausführungsformen der Erfindung wird die Sicherungsanforderung von einer Anwendung abgerufen. Die Sicherungsanforderung kann das Sichern einer Datei mittlerer oder großer Größe bestimmen. Die große Größe kann beispielsweise mehr als ein Gigabyte (GB) betragen. Die mit der Datei verknüpften Daten können beispielsweise im NAS-System gespeichert sein.
  • In Schritt 402 wird eine Anzahl von Lesepuffern (auch einfach als Puffer bezeichnet) bestimmt, die der NAS-Server zum Lesen der mit der Datei verknüpften Daten benötigt. In einer oder mehreren Ausführungsformen wird die Anzahl der Lesepuffer bestimmt, indem mit dem NAS-Server kommuniziert wird, um eine konfigurierte Puffergröße für den NAS-Server zu erhalten.
  • Die Größe der Puffer des NAS begrenzt die Menge der Daten, die der NAS-Server in jeder an den universellen Verbinder gesendeten Antwort umfassen kann. Dies kann die Menge der Daten begrenzen, die auf der Grundlage der vom universellen Verbinder erzeugten Anzahl von Puffern gleichzeitig verarbeitet werden können. Die Anzahl der Puffer, die vom universellen Verbinder erzeugt werden können, kann durch Variablen wie beispielsweise die Netzwerkbandbreite, die Größe der einzelnen Puffer, die Speicherressourcen und/oder die Cache-Ressourcen des universellen Verbinders begrenzt sein. Die ermittelte konfigurierte Puffergröße wird verwendet, um eine Anzahl von Puffern zu berechnen, die von dem universellen Verbinder erzeugt werden können, um die Rate der von dem universellen Verbinder verarbeiteten Daten zu maximieren. Beispielsweise kann der universelle Verbinder seine Puffergröße auf eine Größe ändern, die der Größe der erhaltenen Puffergröße des NAS-Servers entspricht. Auf diese Weise wird die Größe jedes Puffers maximiert, indem seine gesamte Größe für jeden Teil der Daten verwendet wird, die durch eine Antwort vom NAS-Server erhalten werden. Dies kann die Nutzung der Netzwerkbandbreite und die Anzahl der vom universellen Verbinder verwendeten Puffer maximieren, ohne die erforderliche Puffergröße zu opfern.
  • Um zur Beschreibung von 4 zurückzukehren, wird in Schritt 404 ein Satz von Datei-Leseanfragen auf der Grundlage der ermittelten Anzahl von Lesepuffern erzeugt. In einer oder mehreren Ausführungsformen bestimmen die Datei-Leseanfragen jeweils mindestens einen Teil der Daten, die mit der angeforderten Datei verknüpft sind.
  • In Schritt 406 wird eine Datenanforderung für die Datei gesendet, die die Datei-Leseanfragen umfasst. Die Datenanforderung kann an den NAS-Server gesendet werden.
  • In Schritt 408 wird ein Satz von Datenantworten vom NAS-Server erhalten, der ein mit der Datei verknüpftes Datenfeld umfasst. In einer oder mehreren Ausführungsformen gibt der NAS-Server den Satz von Antworten zurück, wenn die Daten verarbeitet werden (was beispielsweise bedeutet, dass sie vom NAS-Server abgerufen und in einem Puffer des NAS-Servers gespeichert werden). Auf diese Weise können die Antworten parallel oder sequentiell abgerufen werden, ohne dass dies von der Erfindung abweicht. Während die Antworten erhalten werden, die jeweils einen Teil der Daten umfassen, wird der entsprechende Teil der Daten in das Datenarray geschrieben.
  • In Schritt 410 wird eine Sicherung der Datei unter Verwendung des Daten-Arrays eingeleitet. In einer oder mehreren Ausführungsformen wird die Sicherung durch Speichern des Datenarrays, das die vom NAS-Server erhaltenen Datenabschnitte umfasst, die zusammen die Datei bilden, im Speichersystem für die Sicherung eingeleitet.
  • In einer oder mehreren Ausführungsformen der Erfindung ermöglicht die Anzahl der Datenpuffer eine Anzahl von Dateien, die gemäß 4 parallel gesichert werden können. Auf diese Weise wird die Effizienz des Netzwerks, das die Kommunikation zwischen dem NAS-Server und dem universellen Verbinder vorsieht, maximiert.
  • 5 zeigt ein Flussdiagramm zur Optimierung von NAS-Sicherungen einer großen Anzahl von Dateien auf der Grundlage der Ressourcenverfügbarkeit gemäß einer oder mehrerer Ausführungsformen der Erfindung. Das in 5 dargestellte Verfahren kann beispielsweise durch den universellen Verbinder (118, 1) durchgeführt werden. Andere Komponenten des in 1 dargestellten Systems können das Verfahren von 5 durchführen, ohne von der Erfindung abzuweichen.
  • In 5 wird in Schritt 500 eine Sicherungsanforderung für einen Satz von Dateien erhalten. In einer oder mehreren Ausführungsformen der Erfindung wird die Sicherungsanforderung von einer Anwendung eingeholt. Die Sicherungsanforderung kann das Sichern eines großen Satzes von Dateien bestimmen. Die mit dem großen Satz von Dateien verknüpften Daten können beispielsweise im NAS-System gespeichert werden.
  • In Schritt 502 wird eine anfängliche Stapelung von Datei-Leseanfragen für Daten durchgeführt, die mit dem Dateisatz verknüpft sind, um einen Satz von Dateilese-Stapeln zu erhalten. In einer oder mehreren Ausführungsformen der Erfindung wird die Sicherungsanforderung von einer Anwendung erhalten. Die Sicherungsanforderung kann das Sichern des Dateisatzes bestimmen. Die mit dem Dateisatz verknüpften Daten können beispielsweise im NAS-System gespeichert sein.
  • In Schritt 504 wird ein erster Datei-Leseauftrag an den NAS-Server gesendet. In einer oder mehreren Ausführungsformen ist der anfängliche Dateilesestapel eine erste Gruppierung der Dateien basierend auf einer Standardkonfiguration des universellen Verbinders. Die Standardkonfiguration kann eine Anfangsgröße des Dateilesestapels bestimmen. Beispielsweise kann die Standardkonfiguration eine vorbestimmte Anzahl von Dateien, die umfasst werden sollen, und/oder eine Gesamtgröße der Dateien in dem anfänglichen Dateilesestapel sein.
  • In Schritt 506 wird eine Ressourcennutzung des NAS-Servers auf der Grundlage einer Datei-Leseantwort vom NAS-Server bestimmt. In einer oder mehreren Ausführungsformen wird die Ressourcennutzung des NAS-Servers bestimmt, indem der anfängliche Dateilesestapel an den NAS-Server gesendet wird. Der anfängliche Dateilesestapel bestimmt die Rückgabe der Daten, die mit den Dateien des anfänglichen Dateilesestapels verknüpft sind.
  • Als Reaktion auf den Erhalt des Dateilesestapels kann der NAS-Server so viele Dateien aus dem Dateilesestapel lesen, wie es ihm aufgrund seiner verfügbaren Ressourcen möglich ist. Beispielsweise kann der NAS-Server nicht vollständig in der Lage sein, den Dateilesestapel zu bedienen. Möglicherweise liest der NAS-Server nur einen Teil der im Dateilesestapel bestimmten Dateien. Daher kann dem universellen Verbinder nur ein Teil der Dateien zugeführt werden. Die Datei-Leseantwort, die der universelle Verbinder vom NAS-Server erhält, kann den Teil der Dateien umfassen.
  • In einer oder mehreren Ausführungsformen der Erfindung bestimmt der universelle Verbinder die Ressourcennutzung des NAS-Servers, indem er die Fähigkeit des NAS-Servers auf der Basis eines Dateilesestapels identifiziert. Umfasst beispielsweise die Antwort auf einen Dateilesevorgang nur die Daten von 800 Dateien anstelle der in der Datei-Leseanfrage bestimmten 1000 Dateien, wird die Ressourcennutzung auf 200 Dateien festgelegt. Die Ressourcennutzung wird verwendet, um künftige Dateilesestapel anzupassen (weiter unten in Schritt 508 erläutert).
  • In Schritt 508 wird der Satz von Dateilesestapeln auf der Grundlage der Ressourcennutzung angepasst, um einen aktualisierten Satz von Dateilesestapeln zu erhalten. In einer oder mehreren Ausführungsformen wird der Satz von Dateilesestapeln angepasst, indem gegebenenfalls die Anzahl der Dateien (oder die Größe der Daten der Dateien), die im Satz von Dateilesestapeln bestimmt sind, reduziert wird. Auf diese Weise bestimmt jeder Datei-Lesestapel den Erhalt von Daten aus einer geringeren Anzahl als der vorherige Satz von Datei-Lesestapeln. Der universelle Verbinder kann den aktualisierten Satz von Dateilesestapeln an den NAS-Server senden.
  • In Schritt 510 werden die Dateidaten des Dateisatzes vom NAS-Server unter Verwendung des aktualisierten Satzes von Dateilesestapeln abgerufen.
  • In Schritt 512 wird eine Sicherung des Dateisatzes unter Verwendung der erhaltenen Daten eingeleitet. Das Backup kann durch Erzeugen des Backups unter Verwendung der erhaltenen Daten und Speichern des Backups im Speichersystem initiiert werden.
  • 6 zeigt ein Flussdiagramm zur Parallelisierung von Sicherungen eines Ordners, der einen großen Satz von Dateien umfasst, gemäß einer oder mehreren Ausführungsformen der Erfindung. Das in 6 dargestellte Verfahren kann beispielsweise durch den universellen Verbinder (118, 1) durchgeführt werden. Andere Komponenten des in 1 dargestellten Systems können das Verfahren von 6 durchführen, ohne von der Erfindung abzuweichen.
  • In 6 wird in Schritt 600 eine Sicherungsanforderung für einen Ordner, der einen großen Satz von Dateien umfasst, erhalten. In einer oder mehreren Ausführungsformen der Erfindung wird die Sicherungsanforderung von einer Anwendung eingeholt. Die Sicherungsanforderung kann das Sichern eines Ordners bestimmen, der eine große Anzahl von Dateien umfasst. Die große Anzahl von Dateien in dem Ordner kann beispielsweise mehrere Millionen betragen. Die mit der großen Menge an Dateien verknüpften Daten können beispielsweise im NAS-System gespeichert werden.
  • In Schritt 602 wird eine Stapelung von Datei-Leseanfragen für Daten durchgeführt, die mit dem Satz von Dateien verknüpft sind, um einen Satz von Dateilese-Stapeln zu erhalten. In einer oder mehreren Ausführungsformen wird der Ordner in Dateigruppierungen auf der Grundlage von Dateigrößen und/oder einer Anzahl von Dateien unterteilt. Jedem Dateilesestapel kann ein Offset und eine Stapelgröße basierend auf der Gesamtgröße der in jedem Dateilesestapel bestimmten Dateien zugewiesen werden.
  • In Schritt 604 wird der Satz von Dateilesestapeln an den NAS-Server gesendet. In einer oder mehreren Ausführungsformen der Erfindung bestimmt jeder Dateilesestapel einen Prozess für den Zugriff auf die Daten durch den NAS-Server. Der Prozess kann das Öffnen der Dateien vom NAS-System, das Lesen der Dateien und das Schließen der Dateien umfassen. Die Stapelanforderung kann das Öffnen, Lesen und Schließen für jede Datei im jeweiligen Dateilesestapel bestimmen.
  • In Schritt 606 wird eine Antwort für jeden Dateilesestapel von dem NAS-Server erhalten. In einer oder mehreren Ausführungsformen umfasst jede Antwort den Teil der Dateidaten für den Ordner und den Offset des entsprechenden Dateilesestapels.
  • In Schritt 608 wird während des Abrufs der Antworten in einen Sicherungscontainer geschrieben. In einer oder mehreren Ausführungsformen werden parallel zum Abrufen der Antworten die in den Antworten erhaltenen Daten in einen Sicherungscontainer geschrieben. Der Offset wird verwendet, um in einen vorbestimmten Speicherplatz zu schreiben, der mit dem Backup-Container verknüpft ist. Der Speicherort kann virtualisiert werden, ohne dass dies von der Erfindung abweicht. Der parallelisierte Prozess des Erhaltens der Antworten und des Speicherns der entsprechenden Daten in dem Backup-Container kann fortgesetzt werden, bis alle Antworten erhalten sind und alle dem Ordner zugehörigen Daten in dem Backup-Container gespeichert sind.
  • In Schritt 610 wird der Sicherungscontainer im Speichersystem für die Sicherung gespeichert. Auf diese Weise umfasst der Backup-Container alle mit dem Ordner verknüpften Daten, obwohl die Daten aus mehreren Antworten des NAS-Servers erhalten wurden.
  • 7 zeigt ein Flussdiagramm für die Verwaltung einer Sicherung eines großen Satzes von Dateien unter Verwendung einer Dateisystemanalyse für Daten, die in einem NAS-System gemäß einer oder mehreren Ausführungsformen der Erfindung gespeichert sind. Das in 7 gezeigte Verfahren kann beispielsweise durch den universellen Verbinder (118, 1) durchgeführt werden. Andere Komponenten des in 1 dargestellten Systems können das Verfahren von 7 durchführen, ohne von der Erfindung abzuweichen.
  • In 7 wird in Schritt 700 eine Sicherungsanforderung für einen großen Satz von Dateien erhalten. In einer oder mehreren Ausführungsformen der Erfindung wird die Sicherungsanforderung von einer Anwendung eingeholt. Die Sicherungsanforderung kann das Sichern eines großen Dateisatzes bestimmen. Die mit der großen Menge von Dateien verknüpften Daten können beispielsweise im NAS-System gespeichert werden. In einer oder mehreren Ausführungsformen kann die Sicherung für ein Dateisystem erfolgen, das die mit den Dateien verknüpften Daten umfasst.
  • In Schritt 702 wird eine Dateisystemanalyse für den großen Satz von Dateien durchgeführt, um eine Reihenfolge der Dateien zu ermitteln, auf die zugegriffen werden soll. In einer oder mehreren Ausführungsformen umfasst die Dateisystemanalyse die Identifizierung der übergeordneten Ordner jeder der Dateien im Dateisystem, die Identifizierung anderer Dateien, die im selben Ordner (z.B. übergeordnete Datei) gespeichert sind, die Identifizierung jeglicher Änderungen in den Dateiabhängigkeiten zwischen beliebigen Dateien seit einer vorherigen Sicherung und die Speicherung der Änderungen, falls vorhanden, im Cache des universellen Verbinders.
  • Betrachten Sie beispielsweise ein Szenario, in dem eine erste Datei in einem Container gesichert wird, und die Datei in einem Dateipfad von: a/b/c/t.txt gespeichert ist. Nun wird die Datei nach der Sicherung in den Dateipfad a/b/e/t.txt verschoben. Der universelle Verbinder kann diese Änderung im Cache speichern, so dass bei einem künftigen Sicherungsvorgang der Cache verwendet werden kann, um die Datei während des Lesens anderer Dateien im Dateipfad a/b/c zu lesen. Die Reihenfolge kann sich auch nach den Dateipfaden der Dateien richten. Um beispielsweise die Anzahl der Öffnungen eines ersten Ordners zu reduzieren, um auf die Dateien in diesem Ordner zuzugreifen, kann die Reihenfolge den sequentiellen Zugriff auf die Dateien in einem Ordner umfassen, bevor andere Dateien in anderen Ordnern geöffnet werden, und das Schließen des Ordners, nachdem auf alle Dateien in dem Ordner zugegriffen wurde (beispielsweise durch den NAS-Server gelesen, um eine Datei-Leseanfrage von einem universellen Verbinder zu bedienen).
  • In Schritt 704 wird ein Satz von Datei-Leseanfragen auf der Grundlage der Reihenfolge erzeugt. In einer oder mehreren Ausführungsformen bestimmt der Satz von Datei-Leseanfragen den Zugriff auf mindestens einen Teil des großen Satzes von Dateien der Sicherungsanforderung. Die große Menge von Dateien kann auf den Abhängigkeiten der Dateien und/oder den Dateipfaden basieren. Beispielsweise können Dateien in denselben Ordnern und/oder Unterordnern gruppiert und in denselben Datei-Leseanfragen bestimmt werden.
  • In Schritt 706 wird eine Anfrage zum Zugriff auf Daten an den NAS-Server gesendet. In einer oder mehreren Ausführungsformen der Erfindung umfasst die Datenzugriffsanforderung den in Schritt 704 erzeugten Satz von Datei-Leseanfragen. Ferner ordnet die Datenzugriffsanforderung die Datei-Leseanfragen so an, dass der NAS-Server die Dateien in der in Schritt 702 festgelegten Reihenfolge liest und darauf zugreift.
  • In Schritt 708 wird eine Antwort vom NAS-Server erhalten, die Daten umfasst, die mit dem großen Satz von Dateien verknüpft sind. In einer oder mehreren Ausführungsformen der Erfindung umfasst die Antwort die Daten aus dem großen Satz von Dateien, die vom NAS-Server erhalten wurden, nachdem der NAS-Server die Datenzugriffsanforderung in der bestimmten Reihenfolge bedient hat.
  • In Schritt 710 wird eine Sicherung des großen Dateisatzes unter Verwendung der in Schritt 708 erhaltenen Daten eingeleitet. In einer oder mehreren Ausführungsformen der Erfindung umfasst die Sicherung das Schreiben der Daten in einen Sicherungscontainer im Sicherungsspeicher auf der Grundlage der festgelegten Reihenfolge. Der universelle Verbinder kann ferner die zwischengespeicherten Informationen verwenden, die die geänderten Dateien bestimmen (d.h. die Dateien, deren Dateispeicherorte sich seit der vorherigen Sicherung geändert haben), und solche geänderten Dateien in der Reihenfolge der vorherigen Dateispeicherorte in den im Sicherungsspeichersystem gespeicherten Sicherungscontainer schreiben.
  • 8 zeigt ein Flussdiagramm zum Erzeugen inkrementeller Sicherungen für dateibasierte Sicherungen, die in einem NAS-System gemäß einer oder mehrerer Ausführungsformen der Erfindung gespeichert sind. Das in 8 dargestellte Verfahren kann beispielsweise durch den universellen Verbinder (118, 1) durchgeführt werden. Andere Komponenten des in 1 dargestellten Systems können das Verfahren von 8 durchführen, ohne von der Erfindung abzuweichen.
  • In 8 wird in Schritt 800 eine Sicherungsanforderung für eine inkrementelle Sicherung einer Gruppe von Dateien erhalten. In einer oder mehreren Ausführungsformen wird die Sicherungsanforderung von einer Anwendung eingeholt. Die Anforderung kann bestimmen, dass nur ein Teil der mit den Dateien verknüpften Daten, die sich seit einer vorherigen Sicherung geändert haben, gesichert werden soll. Bei der vorherigen Sicherung kann es sich um eine Vollsicherung handeln (das heißt beispielsweise eine Sicherung, die die Daten aller Dateien im Dateisatz umfasst), oder die vorherige Sicherung kann eine weitere inkrementelle Sicherung sein. Die Sicherungsanforderung in 8 bestimmt die Durchführung einer blockbasierten Sicherung. In einer oder mehreren Ausführungsformen ist die blockbasierte Sicherung ein Sicherungstyp, der die geänderten Datenblöcke eines Datensatzes (das heißt beispielsweise eines Satzes von Dateien) speichert. Im Gegensatz dazu können bei einer dateibasierten Sicherung die geänderten Dateien eines Dateisatzes gespeichert werden. Ein Beispiel für eine dateibasierte Sicherung findet sich in 3.
  • In Schritt 802 wird eine Dateierweiterungsanforderung an den NAS-Server gesendet. In einer oder mehreren Ausführungsformen der Erfindung bestimmt die Dateierweiterungsanforderung die Beschaffung eines Satzes von Dateierweiterungen. Die Dateierweiterungen können jeweils eine Datenstruktur sein, die einen Teil der Daten (beispielsweise einen oder mehrere Datenblöcke), einen Offset der Datenblöcke und einen Bereich bestimmt, der mit einem zusammenhängenden Teil der Daten verknüpft ist. Jede Dateiausdehnung kann außerdem eine Prüfsumme der entsprechenden Daten umfassen. Auf diese Weise kann bei einer Änderung der Daten die Prüfsumme neu generiert werden, um eine andere Prüfsumme zu erhalten. Die Dateierweiterungsanforderung kann bestimmen, die Menge aller mit der Menge der Dateien verknüpften Dateierweiterungen zu erhalten.
  • In Schritt 804 wird eine Dateierweiterungsantwort erhalten, die einen Satz von Dateierweiterungen umfasst, die mit den Daten des Satzes von Dateien verknüpft sind. In einer oder mehreren Ausführungsformen kann der NAS-Server auf das NAS-System zugreifen, um den angeforderten Satz von Dateierweiterungen zu erhalten und den Satz von Dateierweiterungen an den universellen Verbinder vorzusehen.
  • In Schritt 806 wird eine blockbasierte Analyse der Dateierweiterungen unter Verwendung einer gespeicherten Datenblocktabelle durchgeführt, um einen Satz von zu sichernden Datenblöcken zu bestimmen. In einer oder mehreren Ausführungsformen umfasst die blockbasierte Analyse den Vergleich der erhaltenen Prüfsummen des Satzes von Dateierweiterungen mit zuvor gespeicherten Prüfsummen der in der Datenblocktabelle gespeicherten Dateierweiterungen. Für alle Dateierweiterungen, deren Prüfsummen nicht übereinstimmen, werden die entsprechenden Datenblöcke von den universellen Verbindern verfolgt. Die blockbasierte Analyse kann für jede Dateierweiterung in der Menge der Dateierweiterungen durchgeführt werden.
  • In Schritt 808 wird eine Datenzugriffsanfrage für den ermittelten Satz von Datenblöcken an den NAS-Server gesendet. Die Datenzugriffsanforderung kann die Datenblöcke bestimmen, die von dem universellen Verbinder während der blockbasierten Analyse von Schritt 806 verfolgt wurden.
  • In Schritt 810 wird eine Antwort von dem NAS-Server erhalten, die den Satz von Datenblöcken umfasst. In einer oder mehreren Ausführungsformen greift der NAS-Server auf die in der Datenzugriffsanforderung bestimmten Daten zu und sendet die angeforderten Daten an den universellen Verbinder.
  • In Schritt 812 wird eine inkrementelle Sicherung des großen Satzes von Dateien unter Verwendung der erhaltenen Datenblöcke initiiert. Die inkrementelle Sicherung umfasst das Speichern der erhaltenen Daten, die die Daten aus den geänderten Datenblöcken umfassen, in einer Sicherung und das Speichern der Sicherung im Speichersystem der Sicherung.
  • 9 zeigt ein Flussdiagramm zur Durchführung von Sicherungen mehrerer Versionen einer in einem NAS-System gespeicherten Datei gemäß einer oder mehrerer Ausführungsformen der Erfindung. Das in 9 dargestellte Verfahren kann beispielsweise durch den universellen Verbinder (118, 1) durchgeführt werden. Andere Komponenten des in 1 dargestellten Systems können das Verfahren von 9 durchführen, ohne von der Erfindung abzuweichen.
  • In 9 wird in Schritt 900 eine Sicherungsanforderung für die Sicherung einer Datei erhalten. In einer oder mehreren Ausführungsformen der Erfindung wird die Sicherungsanforderung von einer Anwendung eingeholt. Die Sicherungsanforderung kann das Sichern der Datei bestimmen. Die mit der Datei verknüpften Daten können beispielsweise im NAS-System gespeichert sein.
  • In Schritt 902 wird ein Satz von Versionen, die mit der Datei verknüpft sind, identifiziert. In einer oder mehreren Ausführungsformen wird der Satz von Versionen durch den universellen Verbinder gespeichert. Der universelle Verbinder kann jede Version (beispielsweise unter Verwendung einer Dateiversionstabelle) jeder im Speichersystem gespeicherten Sicherung verfolgen. Außerdem kann der universelle Verbinder jede Version der im NAS-System gespeicherten Datei bestimmen. In einer oder mehreren Ausführungsformen bestimmt die Sicherungsanforderung außerdem die zu sichernden Dateiversionen. In solchen Ausführungsformen, in denen die Sicherungsanforderung die angeforderten Dateien nicht bestimmt, kann der universelle Verbinder eine Standardrichtlinie zur Identifizierung des Satzes der zu sichernden Versionen implementieren. Die Standardrichtlinie kann beispielsweise bestimmen, daß alle Versionen der Datei gesichert werden.
  • In einer oder mehreren Ausführungsformen bestimmt die Sicherungsanforderung einen Zeitraum, für den die Dateien erzeugt werden sollen. Die Dateiversionen können anhand der Zeitstempel der Dateien identifiziert werden, wie sie in der Dateiversionstabelle bestimmt sind. Die Dateiversionen, die einen Zeitstempel bestimmen, der innerhalb der angeforderten Sicherungsanforderung liegt, werden von dem angeforderten Zeitraum umfasst.
  • In Schritt 904 wird eine Datenzugriffsanforderung für jede Version im Versionssatz gesendet. In einer oder mehreren Ausführungsformen kann die Datenzugriffsanfrage bestimmen, dass jede der Dateiversionen in der Menge vom NAS-System bezogen wird.
  • In Schritt 906 wird eine Antwort vom NAS-Server erhalten, die den Satz von Dateiversionen für die Datei umfasst. In einer oder mehreren Ausführungsformen greift der NAS-Server auf die in der Datenzugriffsanfrage bestimmten Daten zu und sendet die angeforderten Daten an den universellen Verbinder.
  • In Schritt 908 wird eine Sicherung der Datei unter Verwendung der erhaltenen Dateiversionen eingeleitet. In einer oder mehreren Ausführungsformen umfasst das Initiieren des Backups das Speichern der erhaltenen Daten, die die Daten aus dem Satz von Dateiversionen umfassen, in einem Backup und das Speichern des Backups im Speichersystem des Backups. In einer oder mehreren Ausführungsformen wird für jede Dateiversion im Dateisatz ein Backup erzeugt und gespeichert.
  • In Schritt 910 wird die Dateiversionstabelle auf der Grundlage des Backups aktualisiert. In einer oder mehreren Ausführungsformen wird die Dateiversionstabelle aktualisiert, um alle neuen Dateiversionen zu bestimmen, die nach der in Schritt 908 initiierten Sicherung erzeugt und/oder im NAS-System gespeichert werden.
  • Die folgenden Abschnitte umfassen jeweils ein unabhängiges Beispiel, das die Systeme und Verfahren gemäß einer oder mehreren Ausführungsformen der Erfindung veranschaulicht. Die Beispiele 1-8 sind unabhängig voneinander zu betrachten.
  • Beispiel 1
  • Im folgenden Abschnitt wird ein Beispiel beschrieben. Das in 10A dargestellte Beispiel soll die Erfindung nicht einschränken und ist unabhängig von allen anderen in dieser Anmeldung behandelten Beispielen. Betrachten wir als Beispiel ein Szenario, in dem eine Anwendung einen universellen Verbinder verwendet, um einen großen Satz von Dateien, die mit einer Million Dateien verknüpft sind, von einem NAS-System (Network Attached Storage) zu erhalten.
  • In 10A ist ein Diagramm eines Beispielsystems dargestellt. Der Kürze halber sind in 10A möglicherweise nicht alle Komponenten des Beispielsystems dargestellt. Das Beispielsystem kann einen Produktionshost (1010), ein Sicherungsspeichersystem (1040), einen NAS-Server (1042) und ein NAS-System (1044) umfassen. Der Produktionshost (1010) umfasst die Anwendung A (1012) und einen universellen Verbinder (1018). Der universelle Verbinder (1018) ist über ein Netzwerk (120) operativ mit dem NAS-Server (1042) verbunden. Der NAS-Server (1042) ist operativ mit dem NAS-System (1044) verbunden. Das NAS-System (1044) kann eine beliebige Anzahl von Speichervorrichtungen (1044A, 1044P) umfassen.
  • Anwendung A (1012) kann mehrere Datenfreigabeanforderungen an den universellen Verbinder (1018) senden, die gemeinsam den Erhalt und die Sicherung eines großen Satzes von Dateien [1] bestimmen. Der große Dateisatz kann mehr als eine Million Dateien umfassen, wobei jede Datei eine Größe zwischen 1 Kilobyte (KB) und 16 KB aufweist. Die Anforderungen zur gemeinsamen Nutzung von Daten können in einem virtuellen Dateisystem (VFS) gesendet werden. Der universelle Verbinder (1018) führt als Reaktion auf den Erhalt des Satzes von Datenfreigabeanforderungen das Verfahren von 2 durch, um die mehrfachen Datenfreigabeanforderungen zu verarbeiten. Insbesondere erhält der universelle Verbinder (1018) die Attribute, die mit dem großen Satz von Dateien verknüpft sind, und führt eine BESCHREIBUNG durch, um einen Satz von Dateistapeln auf der Grundlage der Größen der Dateien, wie in den erhaltenen Attributen bestimmt, und auf der Grundlage eines Stapelgrößenschwellenwerts zu erzeugen. In diesem Beispiel beträgt der Schwellenwert für die Stapelgröße 256 KB. So kann die Anzahl der Dateien je nach Größe der Dateien variieren.
  • Wie in 2 erläutert, kann der universelle Verbinder (1018) eine Anforderungskonvertierung durchführen, um einen Satz konvertierter Stapelanforderungen zu erzeugen, die in einem Netzwerkdateisystemprotokoll (NFS) vorliegen, da dies das Protokoll ist, das vom NAS-Server (1042) gelesen werden kann. Der universelle Verbinder (1018) sendet den Satz konvertierter Batch-Anfragen an den NAS-Server (1042) [2]. Der NAS-Server (1042) bedient als Reaktion auf den Satz konvertierter Stapelanforderungen jeden Satz konvertierter Stapelanforderungen durch Zugriff auf die angeforderten Dateien in jeder konvertierten Stapelanforderung vom NAS-System (1044) [3]. Nach der Bearbeitung jeder konvertierten Stapelanforderung werden die entsprechenden Daten dem universellen Verbinder (1018) zugehört. Der universelle Verbinder (1018) holt die Daten vom NAS-Server (1042) ab. Die erhaltenen Daten bilden zusammen den großen Satz von Dateien (1020) [4]. Im weiteren Verlauf der Bearbeitung der Datenfreigabeanforderung erzeugt der universelle Verbinder (1018) nach Erhalt des großen Satzes von Dateien (1020) ein Backup des großen Satzes von Dateien (1020) und speichert das Backup im Speichersystem (1040) [5].
  • Ende von Beispiel 1
  • Beispiel 2
  • Im folgenden Abschnitt wird ein Beispiel beschrieben. Das in 10B dargestellte Beispiel soll die Erfindung nicht einschränken und ist unabhängig von allen anderen in dieser Anmeldung diskutierten Beispielen. Betrachten wir ein Szenario, in dem eine Anwendung einen universellen Verbinder verwendet, um Metadaten für einen großen Satz von Dateien, die mit einer Million Dateien verknüpft sind, von einem NAS-System (Network Attached Storage) zu erhalten.
  • In 10B ist ein Diagramm eines Beispielsystems dargestellt. Der Einfachheit halber sind in 10B nicht alle Komponenten des Beispielsystems dargestellt. Das Beispielsystem kann einen Produktionshost (1010), ein Sicherungsspeichersystem (1040), einen NAS-Server (1042) und ein NAS-System (1044) umfassen. Der Produktionshost (1010) umfasst die Anwendung A (1012) und einen universellen Verbinder (1018). Der universelle Verbinder (1018) ist über ein Netzwerk (120) operativ mit dem NAS-Server (1042) verbunden. Der NAS-Server (1042) ist operativ mit dem NAS-System (1044) verbunden. Das NAS-System (1044) kann eine beliebige Anzahl von Speichervorrichtungen (1044A, 1044P) umfassen.
  • Anwendung A (1012) kann eine inkrementelle Sicherungsanforderung an den universellen Verbinder (1018) senden, die die Durchführung einer inkrementellen Sicherung eines großen Satzes von Dateien bestimmt [6]. Der große Dateisatz kann über eine Million Dateien umfassen, wobei jede Datei eine Größe zwischen 1 Kilobyte (KB) und 16 KB hat. Die Anforderung für eine inkrementelle Sicherung kann in einem virtuellen Dateisystem (VFS)-Protokoll gesendet werden. Der universelle Verbinder (1018) führt als Reaktion auf den Erhalt der inkrementellen Sicherungsanforderung das Verfahren von 3 durch, um die inkrementelle Sicherungsanforderung zu verarbeiten. Insbesondere führt der universelle Verbinder (1018) ein Metadaten-Batching an dem großen Satz von Dateien durch, um einen Satz von Dateistapeln zu erhalten. Der Satz von Dateistapeln kann auf der Grundlage einer Anzahl von Dateien pro Dateistapel durchgeführt werden. In diesem Beispiel wird jeder Dateistapel mit 1.000 Dateien verknüpft. Der universelle Verbinder (1018) sendet Metadaten-Stapelanforderungen, die jeweils mit einem Dateistapel in der Gruppe von Dateistapeln verknüpft sind [7].
  • Der NAS-Server (1042) bedient als Reaktion auf den Satz von konvertierten Stapelanforderungen jede des Satzes von Metadatenanforderungen durch Zugriff auf die im NAS-System (1044) gespeicherten Metadaten. Nach der Bearbeitung jeder konvertierten Stapelanforderung werden die entsprechenden Metadaten dem universellen Verbinder (1018) zugehören. Der universelle Verbinder (1018) ruft die Metadaten vom NAS-Server (1042) ab. Die erhaltenen Daten bilden zusammen ein Ergebnis-Array (1022) [8]. Das Ergebnis-Array umfasst eine Reihe von Attributen, die mit jeder Datei in der großen Menge von Dateien verknüpft sind. Bei der weiteren Bearbeitung der inkrementellen Sicherungsanforderung vergleicht der universelle Verbinder (1018) nach dem Erhalt des Ergebnisfeldes (1022) das erhaltene Ergebnisfeld (1022) mit einer Attributtabelle (1024), die bereits auf dem Produktionshost (1010) gespeichert ist [9]. Der Vergleich (d.h. der Metadaten-Vergleich, auf den in 3 Bezug genommen wird) umfasst das Erzeugen eines Hash-Wertes auf der Liste der Attribute jeder Datei und den Vergleich mit jedem in der Attributtabelle (1024) gespeicherten Hash-Wert und die Feststellung, ob die Hash-Werte übereinstimmen. Die Untermenge von Dateien wird bestimmt, bei denen jeder Hashwert der erhaltenen Attribute nicht dem entsprechenden Hashwert der Attributtabelle (1024) zugehört.
  • Nach der Bestimmung der Teilmenge von Dateien werden die mit der Teilmenge von Dateien verknüpften Daten vom NAS-System (1044) [10] abgerufen. Obwohl in 10B nicht dargestellt, werden die Dateidaten durch Erzeugen einer Datenzugriffsanforderung, die den Erhalt der ermittelten Dateidaten bestimmt, und Senden der Datenzugriffsanforderung an den NAS-Server (1042) erhalten. Der NAS-Server (1042) greift als Reaktion auf die Datenzugriffsanforderung auf die angeforderten Daten aus dem NAS-System (1044) zu. Die entsprechenden Daten werden dem universellen Verbinder (1018) zugehören. Der universelle Verbinder (1018) holt sich die Daten vom NAS-Server (1042). Nachdem der universelle Verbinder (1018) die Dateidaten der Untergruppe von Dateien erhalten hat, erzeugt er die inkrementelle Sicherung der großen Gruppe von Dateien und speichert die inkrementelle Sicherung im Speichersystem (1040) [11].
  • Ende von Beispiel 2
  • Beispiel 3
  • Im folgenden Abschnitt wird ein Beispiel beschrieben. Das in 10C dargestellte Beispiel soll die Erfindung nicht einschränken und ist unabhängig von allen anderen in dieser Anmeldung diskutierten Beispielen. Betrachten wir ein Szenario, in dem zwei Anwendungen einen universellen Verbinder verwenden, um parallele Sicherungen von zwei Dateien zu erzeugen.
  • In 10C ist ein Diagramm eines Beispielsystems dargestellt. Der Kürze halber werden in 10C nicht alle Komponenten des Beispielsystems dargestellt. Das Beispielsystem kann einen Produktionshost (1010), ein Backup-Speichersystem (1040), einen NAS-Server (1042) und ein NAS-System (1044) umfassen. Der Produktionshost (1010) umfasst die Anwendung A (1012) und einen universellen Verbinder (1018). Der universelle Verbinder (1018) ist über ein Netzwerk (120) operativ mit dem NAS-Server (1042) verbunden. Der NAS-Server (1042) ist operativ mit dem NAS-System (1044) verbunden. Das NAS-System (1044) kann eine beliebige Anzahl von Speichervorrichtungen (1044A, 1044P) umfassen.
  • Anwendung A (1012A) sendet eine Sicherungsanforderung an den universellen Verbinder (1018), die die Durchführung einer inkrementellen Sicherung einer Datei mit einer Größe von 10 GB bestimmt [12], und Anwendung B (1012B) sendet eine Sicherungsanforderung an den universellen Verbinder (1018), die die Durchführung einer inkrementellen Sicherung einer Datei mit einer Größe von 15 GB bestimmt [13]. Die Sicherungsanforderung kann in einem virtuellen Dateisystemprotokoll (VFS) gesendet werden. Der universelle Verbinder (1018) führt als Reaktion auf den Erhalt der Sicherungsanforderung das Verfahren von 4 durch, um die Sicherungsanforderung zu verarbeiten. Konkret bestimmt der universelle Verbinder (1018) die Puffergröße des NAS-Servers (1042) [14]. In diesem Beispiel kann die Puffergröße im Speicher gespeichert werden. Unter Verwendung der ermittelten Puffergröße modifiziert der universelle Verbinder (1018) seine eigenen Lesepuffer so, dass sie die gleiche Größe wie der NAS-Server (1042) haben.
  • Der universelle Verbinder (1018) sieht seinerseits für jede der beiden Dateien einen Lesepuffer vor. Der universelle Verbinder (1018) sendet eine Reihe von Datei-Leseanfragen für jede der beiden Dateien. Jede Datei-Leseanfrage bestimmt einen Teil der jeweiligen Datei, wobei jeder Teil eine Größe hat, die mit der Puffergröße identisch ist. Der NAS-Server (1042) bearbeitet jede Datei-Leseanfrage nacheinander und sieht die daraus resultierenden Daten für den universellen Verbinder (1018) vor [15]. Wenn die Daten vom universellen Verbinder (1018) abgerufen werden, füllt dieser ein Daten-Array für Datei A (1026) und ein Daten-Array für Datei B (1028) [16]. Da zwei Datenpuffer vorhanden sind, die jeweils eine der beiden Dateien versorgen, können beide Daten-Arrays (1026, 1028) parallel befüllt werden.
  • Sobald die Daten-Arrays (1026, 1028) gefüllt sind, werden die resultierenden Sicherungen im Speichersystem (1040) [17] gespeichert.
  • Ende von Beispiel 3
  • Beispiel 4
  • Im folgenden Abschnitt wird ein Beispiel beschrieben. Das in 10D dargestellte Beispiel soll die Erfindung nicht einschränken und ist unabhängig von allen anderen in dieser Anmeldung diskutierten Beispielen. Betrachten wir ein Szenario, in dem zwei Anwendungen einen universellen Verbinder verwenden, um ein Backup eines Satzes von Dateien zu erzeugen, der eine Million Dateien umfasst.
  • In 10D ist ein Diagramm eines Beispielsystems dargestellt. Der Kürze halber sind in 10D möglicherweise nicht alle Komponenten des Beispielsystems dargestellt. Das Beispielsystem kann einen Produktionshost (1010), ein Speichersystem zur Datensicherung (1040), einen NAS-Server (1042) und ein NAS-System (1044) umfassen. Der Produktionshost (1010) umfasst die Anwendung A (1012) und einen universellen Verbinder (1018). Der universelle Verbinder (1018) ist über ein Netzwerk (120) operativ mit dem NAS-Server (1042) verbunden. Der NAS-Server (1042) ist operativ mit dem NAS-System (1044) verbunden. Das NAS-System (1044) kann eine beliebige Anzahl von Speichervorrichtungen (1044A, 1044P) umfassen.
  • Anwendung A (1012) kann eine Sicherungsanforderung an den universellen Verbinder (1018) senden, die die Durchführung einer Sicherung eines Satzes von Dateien [18] bestimmt. Die Sicherungsanforderung kann in einem virtuellen Dateisystemprotokoll (VFS) gesendet werden. Der universelle Verbinder (1018) führt als Reaktion auf den Erhalt der Sicherungsanforderung das Verfahren von 5 durch, um die Sicherungsanforderung zu verarbeiten. Insbesondere erzeugt der universelle Verbinder (1018) einen anfänglichen Dateistapel (1030). Der anfängliche Dateistapel (1030) bestimmt die Rückgabe von 800 Dateien [19]. Der anfängliche Dateistapel (1030) wird an den NAS-Server (1042) gesendet. Der NAS-Server (1042) greift als Reaktion auf den Erhalt des anfänglichen Dateistapels (1030) auf das NAS-System (1044) zu, um die angeforderten Dateien zu lesen. Aufgrund der begrenzten Ressourcenverfügbarkeit des NAS-Servers (1042) ist er nur in der Lage, 600 der 800 angeforderten Dateien zu verarbeiten. Daher sendet der NAS-Server (1042) eine Datei-Leseantwort zurück, die die Daten von 600 Dateien umfasst und eine Fehlermeldung umfasst, die bestimmt, dass die restlichen 200 Dateien nicht vorgesehen sind.
  • Auf der Grundlage der Datei-Leseantwort passt der universelle Verbinder (1018) die Anzahl der Dateien pro Dateistapel von 800 Dateien auf 600 Dateien an und erzeugt einen modifizierten Satz von Dateistapeln (1032), die jeweils die Bereitstellung der Daten für 600 Dateien der verbleibenden bereitzustellenden Dateien [20] bestimmen. Der geänderte Satz von Dateistapeln (1032) kann dem NAS-Server (1042) zugeführt werden. Der NAS-Server (1042) greift als Reaktion auf den Erhalt des geänderten Satzes von Dateistapeln (1032) auf das NAS-System (1044) zu, um die angeforderten Daten auf der Basis eines jeden Dateistapels zu lesen und die angeforderten Daten an den universellen Verbinder (1018) zurückzugeben [21].
  • Sobald die Daten für alle eine Million Dateien vom NAS-Server (1042) erhalten wurden, wird ein Backup unter Verwendung der angeforderten Daten erzeugt. Das resultierende Backup wird im Speichersystem (1040) [22] gespeichert.
  • Ende von Beispiel 4
  • Beispiel 5
  • Im folgenden Abschnitt wird ein Beispiel beschrieben. Das in 10E dargestellte Beispiel soll die Erfindung nicht einschränken und ist unabhängig von allen anderen in dieser Anmeldung diskutierten Beispielen. Betrachten wir ein Szenario, in dem zwei Anwendungen einen universellen Verbinder verwenden, um ein Backup eines Ordners zu erzeugen, der zehn Millionen Dateien umfasst.
  • In 10E ist ein Diagramm eines Beispielsystems dargestellt. Der Kürze halber sind in 10E möglicherweise nicht alle Komponenten des Beispielsystems dargestellt. Das Beispielsystem kann einen Produktionshost (1010), ein Sicherungsspeichersystem (1040), einen NAS-Server (1042) und ein NAS-System (1044) umfassen. Der Produktionshost (1010) umfasst die Anwendung A (1012) und einen universellen Verbinder (1018). Der universelle Verbinder (1018) ist über ein Netzwerk (120) operativ mit dem NAS-Server (1042) verbunden. Der NAS-Server (1042) ist operativ mit dem NAS-System (1044) verbunden. Das NAS-System (1044) kann eine beliebige Anzahl von Speichervorrichtungen (1044A, 1044P) umfassen.
  • Anwendung A (1012) kann eine Sicherungsanforderung an den universellen Verbinder (1018) senden, die die Durchführung einer Sicherung eines Ordners bestimmt, der zehn Millionen Dateien umfasst [23]. Die Sicherungsanforderung kann in einem virtuellen Dateisystemprotokoll (VFS) gesendet werden. Der universelle Verbinder (1018) führt als Reaktion auf den Erhalt der Sicherungsanforderung das Verfahren von 6 durch, um die Sicherungsanforderung zu verarbeiten. Insbesondere erzeugt der universelle Verbinder (1018) einen Satz von Dateilesestapeln (1034) auf der Grundlage einer Gruppierung der Dateien in dem Ordner. Jeder der Dateilesestapel (1034) bestimmt die Rückgabe von 500 Dateien [24]. Der Satz von Dateilesestapeln (1034) wird an den NAS-Server (1042) [25] gesendet.
  • Der NAS-Server (1042) greift als Reaktion auf den Erhalt des Satzes von Dateilesestapeln (1034) auf das NAS-System (1044) zu, um die angeforderten Dateien zu lesen. Der NAS-Server (1042) kann eine Antwort für jeden der Dateilesestapel erzeugen und die entsprechenden Daten für jeden Dateilesestapel dem universellen Verbinder (1018) zugehören [26].
  • Während der Verarbeitung der Dateilesestapel durch den NAS-Server (1042) füllt der universelle Verbinder (1018) einen Backup-Container (1036) mit den erhaltenen Daten unter Verwendung eines in den Dateilesestapeln umfassten Offsets [27]. Die Dateien können parallel gespeichert werden, im Gegensatz zu anderen Implementierungen, die das Warten auf die Daten für den gesamten Ordner vorsehen, die dem universellen Verbinder (1018) zur Verfügung gestellt werden. Sobald die Daten für alle zehn Millionen Dateien vom NAS-Server (1042) erhalten wurden, wird der Sicherungscontainer (1036) im Sicherungsspeichersystem (1040) gespeichert [28].
  • Ende von Beispiel 5
  • Beispiel 6
  • Im folgenden Abschnitt wird ein Beispiel beschrieben. Das in 10F dargestellte Beispiel soll die Erfindung nicht einschränken und ist unabhängig von allen anderen in dieser Anmeldung diskutierten Beispielen. Betrachten wir ein Szenario, in dem zwei Anwendungen einen universellen Verbinder verwenden, um ein Backup eines Ordners zu erzeugen, der zehn Millionen Dateien umfasst.
  • In 10F ist ein Diagramm eines Beispielsystems dargestellt. Der Kürze halber werden in 10F nicht alle Komponenten des Beispielsystems dargestellt. Das Beispielsystem kann einen Produktionshost (1010), ein Backup-Speichersystem (1040), einen NAS-Server (1042), einen Universalverbinder (1019) und ein NAS-System (1044) umfassen. Der Produktionshost (1010) umfasst die Anwendung A (1012). Der universelle Verbinder (1019) ist über ein Netzwerk (120) operativ mit dem NAS-Server (1042) verbunden. Der NAS-Server (1042) ist operativ mit dem NAS-System (1044) verbunden. Das NAS-System (1044) kann eine beliebige Anzahl von Speichervorrichtungen (1044A, 1044P) umfassen.
  • Anwendung A (1012) kann eine Sicherungsanforderung an den universellen Verbinder (1018) senden, die die Durchführung einer Sicherung eines Dateisystems bestimmt, das zehn Millionen Dateien umfasst [29]. Die Sicherungsanforderung kann in einem virtuellen Dateisystem (VFS) Protokoll gesendet werden. Der universelle Verbinder (1019) führt als Reaktion auf den Erhalt der Sicherungsanforderung das Verfahren von 7 durch, um die Sicherungsanforderung zu verarbeiten. Insbesondere erzeugt der universelle Verbinder (1018) einen Satz von Datei-Lesestapeln (1038) auf der Grundlage einer Gruppierung der Dateien in dem Ordner und auf der Grundlage einer Reihenfolge der Dateien, wie sie mit dem Verfahren von 7 bestimmt wurde. Außerdem identifiziert der universelle Verbinder (1019) einen Satz von Dateien, die seit der letzten Sicherung verschoben wurden. Die neuen Speicherorte des identifizierten Satzes von geänderten Dateien werden im Cache des universellen Verbinders (1019) gespeichert. Jeder der Dateilesebatches (1038) bestimmt die Rückgabe von 500 Dateien [30]. Der Satz von Dateilesestapeln (1038) wird an den NAS-Server (1042) gesendet.
  • Der NAS-Server (1042) greift als Reaktion auf den Erhalt des Satzes von Dateilesestapeln (1034) auf das NAS-System (1044) zu, um die angeforderten Dateien zu lesen. Der NAS-Server (1042) kann eine Antwort für jeden der Dateilesestapel erzeugen und die entsprechenden Daten für jeden Dateilesestapel dem universellen Verbinder (1019) [31] zugehören.
  • Während der Verarbeitung der Dateilesestapel durch den NAS-Server (1042) füllt der universelle Verbinder (1019) einen Backup-Container (nicht dargestellt) mit den erhaltenen Daten unter Verwendung eines in den Dateilesestapeln umfassten Offsets. Die Dateien können in der festgelegten Reihenfolge gespeichert werden. Der Sicherungscontainer kann im Sicherungsspeichersystem (1040) [32] gespeichert werden.
  • Ende von Beispiel 6
  • Beispiel 7
  • Im folgenden Abschnitt wird ein Beispiel beschrieben. Das in 10G dargestellte Beispiel soll die Erfindung nicht einschränken und ist unabhängig von allen anderen in dieser Anmeldung diskutierten Beispielen. Betrachten wir als Beispiel ein Szenario, in dem eine Anwendung einen universellen Verbinder verwendet, um Metadaten für einen Satz von Dateien zu erhalten, die mit einem NAS-System (Network-Attached-Storage) verknüpft sind.
  • In 10G ist ein Diagramm eines Beispielsystems dargestellt. Der Kürze halber werden in 10G möglicherweise nicht alle Komponenten des Beispielsystems dargestellt. Das Beispielsystem kann einen Produktionshost (1010), ein Sicherungsspeichersystem (1040), einen NAS-Server (1042) und ein NAS-System (1044) umfassen. Der Produktionshost (1010) umfasst die Anwendung A (1012) und einen universellen Verbinder (1019). Der universelle Verbinder (1019) ist über ein Netzwerk (120) operativ mit dem NAS-Server (1042) verbunden. Der NAS-Server (1042) ist operativ mit dem NAS-System (1044) verbunden. Das NAS-System (1044) kann eine beliebige Anzahl von Speichervorrichtungen (1044A, 1044P) umfassen.
  • Anwendung A (1012) kann eine inkrementelle Sicherungsanforderung an den universellen Verbinder (1019) senden, die die Durchführung einer blockbasierten inkrementellen Sicherung eines Satzes von Dateien [33] bestimmt. Die inkrementelle Sicherungsanforderung kann in einem virtuellen Dateisystem (VFS) Protokoll gesendet werden. Der universelle Verbinder (1019) führt als Reaktion auf den Erhalt der inkrementellen Sicherungsanforderung das Verfahren von 8 durch, um die inkrementelle Sicherungsanforderung zu verarbeiten. Insbesondere sendet der universelle Verbinder (1019) eine Dateierweiterungsanforderung, die den Erhalt eines Satzes von Dateierweiterungen für die Datenblöcke bestimmt, die mit dem Satz von Dateien verknüpft sind [34].
  • Der NAS-Server (1042) sieht als Reaktion auf den Empfang der Dateierweiterungsanforderung den Satz von Dateierweiterungen für den universellen Verbinder (1019) vor. Der universelle Verbinder (1018) erhält den Satz von Dateierweiterungen (1050) vom NAS-Server (1042) [35]. Die Dateiextents umfassen jeweils einen Offset, einen Bereich und eine Prüfsumme für die zugehörigen zusammenhängenden Daten. Im weiteren Verlauf der Bearbeitung der inkrementellen Sicherungsanforderung vergleicht der universelle Verbinder (1019) nach Erhalt der Dateiextents (1050) die erhaltenen Dateiextents (1050) mit einer Datenblockanalyse (1052), die bereits auf dem Produktionshost (1010) gespeichert ist [36]. Die Datenblockanalyse umfasst den Vergleich der erhaltenen Prüfsummen mit jeder in der Datenblocktabelle (1052) gespeicherten Prüfsumme und die Feststellung, ob die Prüfsummen übereinstimmen. Es wird eine Teilmenge von Datenblöcken bestimmt, bei denen jede Prüfsumme der Dateiextensionsdaten (1050) nicht den entsprechenden Prüfsummen der Datenblocktabelle (1052) zugehört.
  • Nach der Bestimmung der Teilmenge von Datenblöcken werden die mit der Teilmenge von Datenblöcken verknüpften Daten vom NAS-System (1044) abgerufen [37]. Obwohl in 10G nicht dargestellt, werden die Daten durch Erzeugen einer Datenzugriffsanforderung, die den Erhalt der bestimmten Daten bestimmt, und Senden der Datenzugriffsanforderung an den NAS-Server (1042) bezogen. Der NAS-Server (1042) greift als Reaktion auf die Datenzugriffsanforderung auf die angeforderten Datenblöcke aus dem NAS-System (1044) zu. Die entsprechenden Daten werden dem universellen Verbinder (1019) zugehören. Der universelle Verbinder (1019) holt die Daten vom NAS-Server (1042) ab. Nachdem der universelle Verbinder (1019) die Daten der Untergruppe von Datenblöcken erhalten hat, erzeugt er die inkrementelle Sicherung des Satzes von Dateien und speichert die inkrementelle Sicherung im Speichersystem (1040) [38].
  • Ende von Beispiel 7
  • Beispiel 8
  • Im folgenden Abschnitt wird ein Beispiel beschrieben. Das in 10H dargestellte Beispiel soll die Erfindung nicht einschränken und ist unabhängig von allen anderen in dieser Anmeldung diskutierten Beispielen. Betrachten wir ein Szenario, in dem zwei Anwendungen einen universellen Verbinder verwenden, um eine Sicherung einer Datei zu erzeugen, die mehrere Versionen umfasst, die jeweils einem anderen Zeitpunkt zugehören.
  • In 10H ist ein Diagramm eines Beispielsystems dargestellt. Der Kürze halber sind in 10H möglicherweise nicht alle Komponenten des Beispielsystems dargestellt. Das Beispielsystem kann einen Produktionshost (1010), ein Sicherungsspeichersystem (1040), einen NAS-Server (1042), einen universellen Verbinder (1019) und ein NAS-System (1044) umfassen. Der Produktionshost (1010) umfasst die Anwendung A (1012). Der universelle Verbinder (1019) ist über ein Netzwerk (120) operativ mit dem NAS-Server (1042) verbunden. Der NAS-Server (1042) ist operativ mit dem NAS-System (1044) verbunden. Das NAS-System (1044) kann eine beliebige Anzahl von Speichervorrichtungen (1044A, 1044P) umfassen.
  • Anwendung A (1012) kann eine Sicherungsanforderung an den universellen Verbinder (1018) senden, die die Durchführung einer Sicherung einer Datei und aller Dateiversionen der Datei bestimmt [39]. Die Sicherungsanforderung kann in einem virtuellen Dateisystemprotokoll (VFS) gesendet werden. Der universelle Verbinder (1019) führt als Reaktion auf den Erhalt der Sicherungsanforderung das Verfahren von 9 durch, um die Sicherungsanforderung zu verarbeiten. Insbesondere bestimmt der universelle Verbinder (1018) den verfügbaren Satz von Dateiversionen, die mit der Datei verknüpft sind, unter Verwendung einer Dateiversionstabelle.
  • Der NAS-Server (1042) greift als Reaktion auf den Erhalt der Datenzugriffsanforderung auf das NAS-System (1044) zu, um die angeforderten Dateien zu lesen. Der NAS-Server (1042) kann eine Antwort erzeugen, die dem universellen Verbinder (1018) [41] die entsprechenden Daten für die Dateiversionen zugehören. Der Satz von Dateiversionen (1054) wird vom universellen Verbinder (1019) [41] abgerufen. Ein Backup wird im Speichersystem (1040) gespeichert, das den Satz der Dateiversionen (1054) umfasst [42].
  • Ende von Beispiel 8
  • Wie oben beschrieben, können Ausführungsformen der Erfindung mit Hilfe von Vorrichtungen zur Datenverarbeitung implementiert werden. 11 zeigt ein Diagramm einer Vorrichtung gemäß einer oder mehrerer Ausführungsformen der Erfindung. Die Vorrichtung (1100) kann einen oder mehrere Computerprozessoren (1102), nicht-persistenten Speicher (1104) (z.B. flüchtigen Speicher, wie RAM, Cache-Speicher), persistenten Speicher (1106) (das heißt, eine Festplatte, ein optisches Laufwerk wie ein Compact-Disk-Laufwerk (CD) oder ein Digital-Variable-Disk-Laufwerk (DVD), ein Flash-Speicher usw.), eine Kommunikationsschnittstelle (1112) (beispielsweise eine Bluetooth-Schnittstelle, eine Infrarotschnittstelle, eine Netzwerkschnittstelle, eine optische Schnittstelle usw.), Eingabevorrichtungen (1110), Ausgabevorrichtungen (1108) und zahlreiche andere Elemente (nicht abgebildet) und Funktionalitäten. Jede dieser Komponenten wird im Folgenden beschrieben.
  • In einer Ausführungsform der Erfindung kann (können) der (die) Computerprozessor(en) (1102) eine integrierte Schaltung zur Verarbeitung von Anweisungen sein. Beispielsweise kann es sich bei dem/den Computerprozessor(en) um einen oder mehrere Kerne oder Mikrokerne eines Prozessors handeln. Die Vorrichtung (1100) kann auch eine oder mehrere Eingabevorrichtungen (1110) umfassen, beispielsweise einen Touchscreen, eine Tastatur, eine Maus, ein Mikrofon, ein Touchpad, einen elektronischen Stift oder jede andere Art von Eingabevorrichtung. Darüber hinaus kann die Kommunikationsschnittstelle (1112) einen integrierten Schaltkreis umfassen, um die Vorrichtung (1100) mit einem (nicht dargestellten) Netzwerk (beispielsweise einem lokalen Netzwerk (LAN), einem Weitverkehrsnetzwerk (WAN) wie dem Internet, einem mobilen Netzwerk oder einem anderen Netzwerktyp) und/oder mit einer anderen Vorrichtung, beispielsweise einer anderen Rechenvorrichtung, zu verbinden.
  • In einer Ausführungsform der Erfindung kann die Vorrichtung (1100) ein oder mehrere Ausgabegeräte (1108) umfassen, beispielsweise einen Bildschirm (beispielsweise eine Flüssigkristallanzeige (LCD), ein Plasmadisplay, einen Touchscreen, einen Kathodenstrahlröhrenmonitor (CRT), einen Projektor oder ein anderes Anzeigegerät), einen Drucker, einen externen Speicher oder ein anderes Ausgabegerät. Eine oder mehrere der Ausgabevorrichtungen können mit der (den) Eingabevorrichtung(en) identisch oder davon verschieden sein. Die Eingabe- und Ausgabevorrichtung(en) kann (können) lokal oder aus der Ferne mit dem (den) Computerprozessor(en) (1102), dem nicht-persistenten Speicher (1104) und dem persistenten Speicher (1106) verbunden sein. Es gibt viele verschiedene Arten von Computervorrichtungen, und die oben erwähnte(n) Eingabe- und Ausgabevorrichtung(en) können andere Formen annehmen.
  • Eine oder mehrere Ausführungsformen der Erfindung können unter Verwendung von Anweisungen implementiert werden, die von einem oder mehreren Prozessoren des universellen Verbinders ausgeführt werden. Ferner können solche Anweisungen computerlesbaren Anweisungen zugehören, die auf einem oder mehreren nicht-flüchtigen computerlesbaren Medien gespeichert sind.
  • 12 zeigt ein Flussdiagramm zur Abfrage eines NAS-Dateisystems und zum Erzeugen einer Datei im NAS. Das in 12 gezeigte Verfahren kann beispielsweise vom universellen Verbinder (118, 1) durchgeführt werden. Andere Komponenten des in 1 dargestellten Systems können das Verfahren von 12 durchführen, ohne von der Erfindung abzuweichen. In einer oder mehreren Ausführungsformen kann der universelle Verbinder im „Anwenderbereich“ des Produktionshosts (zusammen mit einer oder mehreren Anwendungen) arbeiten. Dementsprechend können Prozesse, die vom universellen Verbinder ausgeführt werden, getrennt von dem Betriebssystem und dem Kernel, die auf dem Produktionshost ausgeführt werden, stattfinden.
  • In Schritt 1200 sendet der universelle Verbinder eine Anforderung zur Begrenzung des Dateisystems an den NAS-Server. In einer oder mehreren Ausführungsformen kann der universelle Verbinder die Datei-System-Begrenzungsanfrage (i) bei der Initialisierung des universellen Verbinders, (ii) beim Zugriff auf den NAS-Server, (iii) beim Booten des Produktionshosts oder (iv) zu jedem anderen geeigneten Zeitpunkt senden.
  • In Schritt 1202 empfängt der universelle Verbinder die Dateisystembegrenzungen vom NAS-Server. In einer oder mehreren Ausführungsformen umfassen die Dateisystembeschränkungen (i) eine Begrenzung der Größe der vom NAS-System erlaubten Pfade und/oder Dateinamen und (ii) vom NAS-System unterstützte Kodierungsstandards und - versionen (beispielsweise Unicode-Version, ASCII-Version, ISO/EIC-Versionen usw.).
  • In Schritt 1204 weist der universelle Verbinder einen oder mehrere dynamische Puffer zur Speicherung von Pfad- und Dateinamen zu. In einer oder mehreren Ausführungsformen ist ein dynamischer Puffer ein Speicherbereich, der zur Verwendung durch den universellen Verbinder zugewiesen wird, um Informationen zu speichern, die das Dateisystem betreffen. Der dynamische Puffer kann im Speicher des Produktionshosts erstellt werden. Ein dynamischer Puffer kann nach der anfänglichen Erstellung neu zugewiesen werden, um die Größe des Puffers je nach Bedarf für die im Puffer gespeicherten Daten zu erhöhen (oder zu verringern). In einer oder mehreren Ausführungsformen kann ein dynamischer Puffer durch den universellen Verbinder vorab zugewiesen werden, wenn (i) der universelle Verbinder initiiert wird, (ii) das Dateisystem des universellen Verbinders verwendet wird oder (iii) der universelle Verbinder einen dynamischen Puffer für das Dateisystem verwenden muss.
  • In Schritt 1206 schreibt der universelle Verbinder eine Datei auf das NAS-System. In einer oder mehreren Ausführungsformen empfängt der universelle Verbinder eine Schreibanfrage von einer Anwendung, die auf dem Produktionshost ausgeführt wird, um eine Datei auf das NAS-System zu schreiben. Die Schreibanfrage kann einen Pfad, einen Dateinamen und Dateidaten umfassen. Der universelle Verbinder schreibt den Pfad und den Dateinamen, die in der Schreibanfrage bestimmt wurden, in den dynamischen Puffer (der in Schritt 1204 zugewiesen wurde). Ferner sendet der universelle Verbinder die Daten der Datei an das NAS-System zur Speicherung, wie von der Anwendung angefordert.
  • In einer oder mehreren Ausführungsformen kann der universelle Verbinder die Schreibanfrage validieren, indem er sicherstellt, dass der Pfad, der Dateiname und der verwendete Kodierungsstandard den Beschränkungen des Dateisystems entsprechen (empfangen in Schritt 1202). Ferner kann die Anwendung, die das Dateisystem des universellen Verbinders verwendet, so konfiguriert sein, dass sie die Dateisystembegrenzungen liest und Dateinamen (und Pfade) erzeugt, die mit den Dateisystembegrenzungen übereinstimmen. In einer oder mehreren Ausführungsformen kann der universelle Verbinder und/oder die Anwendung einen Fehler erzeugen und den universellen Verbinder daran hindern, wie bestimmt zu versuchen, die Datei zu erstellen, wenn eine Anwendung versucht, eine Datei zu erstellen, die nicht durch die Dateisystembeschränkungen erlaubt ist.
  • In einer oder mehreren Ausführungsformen, wenn der von der Anwendung bestimmte Pfad und/oder Dateiname die Größe des dynamischen Puffers überschreitet, weist der universelle Verbinder den dynamischen Puffer neu zu, um die Größe zu erhöhen, die zum Speichern des von der Anwendung erzeugten Pfades und Dateinamens erforderlich ist. Der universelle Verbinder kann die Größe des vorhandenen dynamischen Puffers erhöhen und/oder die Daten in einen größeren dynamischen Puffer kopieren.
  • In Schritt 1208 liest der universelle Verbinder eine Datei aus dem NAS-System. In einer oder mehreren Ausführungsformen empfängt der universelle Verbinder eine Leseanfrage von einer Anwendung, die auf dem Produktionshost ausgeführt wird, um eine Datei aus dem NAS-System zu lesen. Die Leseanfrage kann einen Pfad und einen Dateinamen umfassen. Der universelle Verbinder schreibt den Pfad und den Dateinamen, die in der Leseanfrage bestimmt wurden, in den dynamischen Puffer (der in Schritt 1204 zugewiesen oder in Schritt 1206 neu zugewiesen wurde).
  • In einer oder mehreren Ausführungsformen kopiert der universelle Verbinder die Daten (der in der Leseanfrage angeforderten Datei) vom NAS-System in den Speicher des Produktionshosts. Wenn die Dateidaten kopiert sind, sieht der universelle Verbinder die Dateidaten für die Anwendung vor, wie angefordert.
  • Beispiel 9
  • Im folgenden Abschnitt wird ein Beispiel beschrieben. Das in 13 dargestellte Beispiel soll die Erfindung nicht einschränken und ist unabhängig von allen anderen in dieser Anmeldung behandelten Beispielen.
  • Betrachten wir als Beispiel ein Szenario, in dem der universelle Verbinder (1319) bei (1) eine Anforderung zur Begrenzung des Dateisystems über das Netzwerk (1320) an den NAS-Server (1342) sendet. Bei (2) sendet der NAS-Server (1342) die Dateisystemeinschränkungen an den universellen Verbinder (1319). Insbesondere empfängt der universelle Verbinder (1319) Dateisystembegrenzungen, die bestimmen, dass die Kombination aus Pfad und Dateinamen eine Größe von 1 Megabyte nicht überschreiten darf. Außerdem umfassen die Dateisystembeschränkungen eine Liste der vom NAS-Server (1342) unterstützten Kodierungsstandards, die alle vom Produktionshost (1310) verwendeten Standards umfasst. Bei (3) weist der universelle Verbinder (1319) einen dynamischen Puffer (nicht gezeigt) von 1 Kilobyte im Speicher (nicht gezeigt) des Produktionshosts (1310) zu.
  • Bei (4) empfängt der universelle Verbinder (1319) eine Schreibanfrage von der Anwendung (1312). Die Schreibanfrage umfasst (i) einen Pfad, (ii) einen Dateinamen und (iii) die Daten, die in der Datei umfasst sind. Beim Empfang haben Pfad und Dateiname jedoch eine Größe von 2 Kilobytes. Dementsprechend ordnet der universelle Verbinder (1319) bei (5) den dynamischen Puffer neu zu, um die Größe von 1 Kilobyte auf 2 Kilobyte zu erhöhen. Nach der Neuzuweisung des dynamischen Puffers speichert der universelle Verbinder (1319) dann den Pfad und den Dateinamen in dem neu zugewiesenen dynamischen Puffer.
  • Bei (6) prüft der universelle Verbinder (1319) den Pfad und den Dateinamen anhand der Einschränkungen des Dateisystems. Der universelle Verbinder (1319) stellt keine Probleme mit der Schreibanfrage fest (der Pfad und der Dateiname sind kleiner als 1 Megabyte, und es wird ein akzeptabler Kodierungsstandard verwendet).
  • Bei (7) sendet der universelle Verbinder (1319) den Pfad, den Dateinamen und die Daten der Datei an den NAS-Server (1342). Und bei (8) schreibt der NAS-Server (1342) die Daten in das Speichersystem (1344) der Vorrichtung (1345) unter dem Pfad und dem Dateinamen, die in der Schreibanfrage bestimmt wurden.
  • Bei (9) empfängt der universelle Verbinder (1319) eine Leseanfrage von der Anwendung (1312). Die Leseanfrage umfasst (i) einen Pfad und (ii) einen Dateinamen. Bei (10) speichert der universelle Verbinder (1319) den Pfad und den Dateinamen in dem dynamischen Puffer (nicht gezeigt). Bei (11) prüft der universelle Verbinder (1319) den Pfad und den Dateinamen anhand der Einschränkungen des Dateisystems. Der universelle Verbinder (1319) stellt keine Probleme mit der Leseanfrage fest (der Pfad und der Dateiname sind kleiner als 1 Megabyte, und es wird ein akzeptabler Kodierungsstandard verwendet).
  • Bei (12) sendet der universelle Verbinder (1319) die Leseanfrage (die den Pfad und den Dateinamen umfasst) an den NAS-Server (1342). Und bei (13) sendet das NAS-System (1344) über den NAS-Server (1342) die Daten (aus dem angegebenen Pfad und Dateinamen) an den universellen Verbinder (1319). Nach Empfang der Dateidaten bei (14) schreibt der universelle Verbinder (1319) die Dateidaten in den Speicher des Produktionshosts (1310) und sieht die Anwendung (1312) mit den Dateidaten vor (beispielsweise über die Speicheradresse, die die Dateidaten speichert).
  • Ende von Beispiel 9
  • Während die Erfindung oben in Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, wird der Fachmann, der die Vorteile dieser Offenbarung kennt, erkennen, dass andere Ausführungsformen entwickelt werden können, die nicht vom Umfang der Erfindung, wie sie hier offenbart ist, abweichen. Dementsprechend sollte der Umfang der Erfindung nur durch die beigefügten Ansprüche begrenzt werden.

Claims (20)

  1. Ein Verfahren zum Schreiben einer Datei auf einen Network-Attached-Storage (NAS)-Server, wobei das Verfahren umfasst: Empfangen, durch einen universellen Verbinder, der in einem Anwenderraum ausgeführt wird, einer Schreibanfrage von einer Anwendung, die in dem Anwenderraum ausgeführt wird, wobei die Schreibanfrage einen Dateinamen umfasst; und in Reaktion auf den Empfang der Schreibanfrage: Zuordnen eines dynamischen Puffers, wobei eine erste Größe des dynamischen Puffers größer ist als eine zweite Größe des Dateinamens; Senden einer Systembegrenzungsanfrage an den NAS-Server; Empfangen, als Reaktion auf die Systembegrenzungsanfrage von Systembegrenzungen vom NAS-Server, wobei die Systembegrenzungen eine Dateinamensgrößengrenze umfassen; Validieren des Dateinamens anhand der Systembegrenzungen; und Senden der Schreibanfrage an den NAS-Server, basierend auf der Validierung.
  2. Verfahren nach Anspruch 1, wobei die Systembegrenzungen ferner umfassen: einen Kodierungsstandard, der von dem NAS-Server unterstützt wird.
  3. Verfahren nach Anspruch 2, wobei die Validierung des Dateinamens anhand der Systembeschränkungen Folgendes umfasst: Durchführen einer ersten Bestimmung, dass die zweite Größe des Dateinamens kleiner ist als der Dateinamensgrößengrenze; und Durchführen einer zweiten Bestimmung, dass der Dateiname den Kodierungsstandard verwendet.
  4. Verfahren nach Anspruch 1, wobei nach dem Senden der Schreibanfrage an den NAS-Server das Verfahren ferner Folgendes umfasst: Empfangen einer Leseanfrage von der Anwendung, wobei die Leseanfrage einen zweiten Dateinamen umfasst, wobei eine dritte Größe des zweiten Dateinamens größer ist als die erste Größe des dynamischen Puffers; und in Reaktion auf den Empfang der Schreibanfrage: Neuzuteilung des dynamischen Puffers auf eine vierte Größe, wobei die vierte Größe des dynamischen Puffers größer ist als die dritte Größe des zweiten Dateinamens.
  5. Verfahren nach Anspruch 4, wobei das Verfahren nach der Neuzuteilung des dynamischen Puffers auf die vierte Größe ferner Folgendes umfasst: das Schreiben des zweiten Dateinamens in den dynamischen Puffer; Senden der Leseanfrage an den NAS-Server; und in Reaktion auf das Senden der Leseanfrage: Empfangen von Dateidaten von dem NAS-Server, die mit dem zweiten Dateinamen verknüpft sind; und Bereitstellen der Dateidaten für die Anwendung.
  6. Verfahren nach Anspruch 4, wobei das Verfahren nach der Neuzuteilung des dynamischen Puffers auf die vierte Größe ferner Folgendes umfasst: Schreiben des zweiten Dateinamens in den dynamischen Puffer; Validieren des zweiten Dateinamens, umfassend: Durchführen einer ersten Bestimmung, dass die dritte Größe des zweiten Dateinamens größer als die Dateinamensgrößengrenze ist; und Erzeugen eines Fehlers als Reaktion auf die erste Bestimmung.
  7. Verfahren nach Anspruch 1, wobei der universelle Verbinder auf einem Produktionshost ausgeführt wird, wobei ein Betriebssystem auf dem Produktionshost ausgeführt wird, wobei ein Dateisystem des Betriebssystems eine zweite Dateinamen-Größengrenze umfasst, wobei die zweite Dateinamen-Größengrenze kleiner als die Dateinamen-Größengrenze ist.
  8. Ein nicht-flüchtiges computerlesbares Medium, das computerlesbaren Programmcode umfasst, der, wenn er von einem Computerprozessor ausgeführt wird, den Computerprozessor in die Lage versetzt, ein Verfahren zum Schreiben einer Datei auf einen Network-Attached-Storage (NAS)-Server durchzuführen, wobei das Verfahren Folgendes umfasst Empfangen, durch einen universellen Verbinder, der in einem Anwenderraum ausgeführt wird, einer Schreibanfrage von einer Anwendung, die in dem Anwenderraum ausgeführt wird, wobei die Schreibanfrage einen Dateinamen umfasst; und in Reaktion auf den Empfang der Schreibanfrage: Zuordnen eines dynamischen Puffers, wobei eine erste Größe des dynamischen Puffers größer ist als eine zweite Größe des Dateinamens; Senden einer Systembegrenzungsanfrage an den NAS-Server; Empfangen von Systembegrenzungen vom NAS-Server als Antwort auf die Systembegrenzungsanfrage, wobei die Systembegrenzungen eine Dateinamensgrößengrenze umfassen; Prüfen des Dateinamens anhand der Systembegrenzungen; und Senden der Schreibanfrage an den NAS-Server, basierend auf der Validierung.
  9. Nicht-flüchtiges computerlesbares Medium nach Anspruch 8, wobei die Systembegrenzungen ferner umfassen: einen Kodierungsstandard, der von dem NAS-Server unterstützt wird.
  10. Das nicht-flüchtige computerlesbare Medium nach Anspruch 9, wobei die Validierung des Dateinamens gegen die Systembeschränkungen umfasst: Durchführen einer ersten Bestimmung, dass die zweite Größe des Dateinamens kleiner als die Dateinamensgrößengrenze ist; und Durchführen einer zweiten Bestimmung, dass der Dateiname den Kodierungsstandard verwendet.
  11. Nicht-flüchtiges computerlesbares Medium nach Anspruch 8, wobei nach dem Senden der Schreibanfrage an den NAS-Server das Verfahren ferner umfasst Empfangen einer Leseanfrage von der Anwendung, wobei die Leseanfrage einen zweiten Dateinamen umfasst, wobei eine dritte Größe des zweiten Dateinamens größer ist als die erste Größe des dynamischen Puffers; und in Reaktion auf den Empfang der Schreibanfrage: Neuzuteilung des dynamischen Puffers auf eine vierte Größe, wobei die vierte Größe des dynamischen Puffers größer ist als die dritte Größe des zweiten Dateinamens.
  12. Nicht-flüchtiges computerlesbares Medium nach Anspruch 11, wobei nach der Neuzuweisung des dynamischen Puffers auf die vierte Größe das Verfahren ferner umfasst Schreiben des zweiten Dateinamens in den dynamischen Puffer; Senden der Leseanfrage an den NAS-Server; und in Reaktion auf das Senden der Leseanfrage: Empfangen von Dateidaten von dem NAS-Server, die mit dem zweiten Dateinamen verknüpft sind; und Bereitstellen der Dateidaten für die Anwendung.
  13. Nicht-flüchtiges computerlesbares Medium nach Anspruch 11, wobei das Verfahren nach der Neuzuteilung des dynamischen Puffers auf die vierte Größe ferner umfasst Schreiben des zweiten Dateinamens in den dynamischen Puffer; Validieren des zweiten Dateinamens, umfassend: Durchführen einer ersten Bestimmung, dass die dritte Größe des zweiten Dateinamens größer als die Dateinamensgrößengrenze ist; und Erzeugen eines Fehlers als Reaktion auf die erste Feststellung.
  14. Nicht-flüchtiges computerlesbares Medium nach Anspruch 8, wobei der universelle Verbinder auf einem Produktions-Host ausgeführt wird, wobei ein Betriebssystem auf dem Produktions-Host ausgeführt wird, wobei ein Dateisystem des Betriebssystems eine zweite Dateinamen-Größengrenze umfasst, wobei die zweite Dateinamen-Größengrenze kleiner als die Dateinamen-Größengrenze ist.
  15. Ein Produktions-Host, umfassend: einen Prozessor, der einen Anwenderraum ausführt, umfassend: einen universellen Verbinder; und eine Anwendung; wobei der universelle Verbinder so programmiert ist, dass er ein Verfahren zum Schreiben einer Datei auf einen Network-Attached-Storage (NAS)-Server durchführt, wobei das Verfahren Folgendes umfasst: Empfangen einer Schreibanfrage von der Anwendung, wobei die Schreibanfrage einen Dateinamen umfasst; und in Reaktion auf den Empfang der Schreibanfrage: Zuweisen eines dynamischen Puffers, wobei eine erste Größe des dynamischen Puffers größer ist als eine zweite Größe des Dateinamens; Senden einer Systembegrenzungsanfrage an den NAS-Server; Empfangen von Systembegrenzungen vom NAS-Server als Antwort auf die Systembegrenzungsanfrage, wobei die Systembegrenzungen eine Dateinamensgrößengrenze umfassen; Prüfen des Dateinamens anhand der Systembegrenzungen; und Senden der Schreibanfrage an den NAS-Server, basierend auf der Validierung.
  16. Produktionshost nach Anspruch 15, wobei die Systembegrenzungen ferner Folgendes umfassen: einen von dem NAS-Server unterstützten Kodierungsstandard.
  17. Produktionshost nach Anspruch 16, wobei die Validierung des Dateinamens anhand der Systembeschränkungen Folgendes umfasst: Durchführen einer ersten Bestimmung, dass die zweite Größe des Dateinamens kleiner ist als die Dateinamensgrößengrenze; und Durchführen einer zweiten Bestimmung, dass der Dateiname den Kodierungsstandard verwendet.
  18. Produktionshost nach Anspruch 15, wobei das Verfahren nach dem Senden der Schreibanfrage an den NAS-Server ferner Folgendes umfasst: Empfangen einer Leseanfrage von der Anwendung, wobei die Leseanfrage einen zweiten Dateinamen umfasst, wobei eine dritte Größe des zweiten Dateinamens größer ist als die erste Größe des dynamischen Puffers; und in Reaktion auf den Empfang der Schreibanfrage: Neuzuteilung des dynamischen Puffers auf eine vierte Größe, wobei die vierte Größe des dynamischen Puffers größer ist als die dritte Größe des zweiten Dateinamens.
  19. Produktionshost nach Anspruch 18, wobei das Verfahren nach der Neuzuweisung des dynamischen Puffers auf die vierte Größe ferner Folgendes umfasst: das Schreiben des zweiten Dateinamens in den dynamischen Puffer; Senden der Leseanfrage an den NAS-Server; und in Reaktion auf das Senden der Leseanfrage: Empfangen von Dateidaten von dem NAS-Server, die mit dem zweiten Dateinamen verknüpft sind; und Bereitstellen der Dateidaten für die Anwendung.
  20. Produktionshost nach Anspruch 15, wobei ein Betriebssystem auf dem Prozessor ausgeführt wird, wobei ein Dateisystem des Betriebssystems eine zweite Dateinamen-Größengrenze umfasst, wobei die zweite Dateinamen-Größengrenze kleiner als die Dateinamen-Größengrenze ist.
DE102023206999.7A 2022-07-25 2023-07-24 System und verfahren zur verwaltung von pfad- und dateinamen unter verwendung eines universellen verbinders Pending DE102023206999A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/872,650 2022-07-25
US17/872,650 US12007946B2 (en) 2022-07-25 2022-07-25 Systems and methods for managing path and file names using a universal connector

Publications (1)

Publication Number Publication Date
DE102023206999A1 true DE102023206999A1 (de) 2024-01-25

Family

ID=87851903

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102023206999.7A Pending DE102023206999A1 (de) 2022-07-25 2023-07-24 System und verfahren zur verwaltung von pfad- und dateinamen unter verwendung eines universellen verbinders

Country Status (3)

Country Link
US (1) US12007946B2 (de)
DE (1) DE102023206999A1 (de)
GB (1) GB2623151A (de)

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6647399B2 (en) 1999-11-29 2003-11-11 International Business Machines Corporation Method, system, program, and data structures for naming full backup versions of files and related deltas of the full backup versions
US7587422B2 (en) 2003-04-24 2009-09-08 Neopath Networks, Inc. Transparent file replication using namespace replication
US7506010B2 (en) 2005-02-08 2009-03-17 Pro Softnet Corporation Storing and retrieving computer data files using an encrypted network drive file system
JP2006325725A (ja) 2005-05-24 2006-12-07 Resource One Co Ltd 医療情報管理装置、医療情報管理システム、医療情報管理方法、および医療情報管理プログラム
US7865663B1 (en) 2007-02-16 2011-01-04 Vmware, Inc. SCSI protocol emulation for virtual storage device stored on NAS device
CN101169796B (zh) 2007-11-20 2012-01-11 中兴通讯股份有限公司 一种存储文件名及判断文件名超长的方法
WO2010098757A1 (en) 2009-02-26 2010-09-02 Hewlett-Packard Development Company, L.P. Network aware storage device
US8554736B2 (en) 2009-04-30 2013-10-08 Hewlett-Packard Development Company, L.P. Backup method
US8874522B2 (en) 2011-10-31 2014-10-28 Symantec Corporation Managing backups of data objects in containers
US9152686B2 (en) 2012-12-21 2015-10-06 Zetta Inc. Asynchronous replication correctness validation
US20150234703A1 (en) 2014-02-20 2015-08-20 Netapp, Inc. System and method to perform a backup operation using one or more attributes of files
US20150301930A1 (en) 2014-04-18 2015-10-22 HGST Netherlands B.V. File storage via physical block addresses
US10284645B1 (en) 2014-05-06 2019-05-07 Veritas Technologies Llc Backup from network attached storage to sequential access media in network data management protocol environments
US9774672B2 (en) 2014-09-03 2017-09-26 Commvault Systems, Inc. Consolidated processing of storage-array commands by a snapshot-control media agent
US10078555B1 (en) 2015-04-14 2018-09-18 EMC IP Holding Company LLC Synthetic full backups for incremental file backups
US9626120B1 (en) 2015-12-28 2017-04-18 Veritas Technologies Systems and methods for dynamically adjusting batch request sizes
CN106227830A (zh) 2016-07-25 2016-12-14 乐视控股(北京)有限公司 存储和读取文件的方法和装置
US10289494B1 (en) 2017-04-27 2019-05-14 EMC IP Holding Company LLC Smart connector for network data management protocol (NDMP) backups
US11042512B1 (en) 2017-08-02 2021-06-22 EMC IP Holding Company LLC Enabling granular snapshots and provisioning in NAS (network attached storage) clusters
US10740192B2 (en) 2018-01-31 2020-08-11 EMC IP Holding Company LLC Restoring NAS servers from the cloud
US11042448B2 (en) 2018-01-31 2021-06-22 EMC IP Holding Company LLC Archiving NAS servers to the cloud
US10728025B2 (en) 2018-04-13 2020-07-28 Amazon Technologies, Inc. Encryption by default in an elastic computing system
US11321183B2 (en) 2018-05-02 2022-05-03 Commvault Systems, Inc. Multi-tiered backup indexing
US10656841B1 (en) 2019-01-17 2020-05-19 Microsoft Technology Licensing, Llc Reducing per-I/O CPU overhead by queueing and batching read requests and read completion notifications
US11693744B2 (en) 2019-05-10 2023-07-04 Commvault Systems, Inc. Synthesizing format-specific full backup images
CN112748991A (zh) 2019-10-30 2021-05-04 伊姆西Ip控股有限责任公司 用于备份数据的方法、设备和计算机程序产品
US11281546B2 (en) 2019-12-16 2022-03-22 EMC IP Holding Company LLC System and method for performing an incremental backup for a persistent storage system that stores data for a node cluster
US11681653B2 (en) * 2020-06-18 2023-06-20 EMC IP Holding Company LLC Namespace representation and enhanced browsability for replicated file systems
US20220300198A1 (en) * 2020-12-31 2022-09-22 Pure Storage, Inc. Dynamic buffer for storage system
US11599274B2 (en) * 2021-04-15 2023-03-07 EMC IP Holding Company, LLC System and method for validating actions to be performed on a storage system objects
US11809281B2 (en) 2021-04-20 2023-11-07 EMC IP Holding Company LLC Metadata management for scaled and high density backup environments
US11561978B2 (en) 2021-06-29 2023-01-24 Commvault Systems, Inc. Intelligent cache management for mounted snapshots based on a behavior model
US11934276B2 (en) 2022-03-19 2024-03-19 Dell Products L.P. Enabling incremental backup operations targeting bare-metal recovery and system-state recovery data and metadata

Also Published As

Publication number Publication date
US12007946B2 (en) 2024-06-11
US20240028561A1 (en) 2024-01-25
GB202311126D0 (en) 2023-09-06
GB2623151A (en) 2024-04-10

Similar Documents

Publication Publication Date Title
US10831614B2 (en) Visualizing restoration operation granularity for a database
DE112018000193B4 (de) Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern
US20210073189A1 (en) Systems and methods of database tenant migration
US10579610B2 (en) Replicated database startup for common database storage
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
US9280591B1 (en) Efficient replication of system transactions for read-only nodes of a distributed database
DE202009019149U1 (de) Asynchron verteilte Speicherbereinigung für replizierte Speichercluster
US10409804B2 (en) Reducing I/O operations for on-demand demand data page generation
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE102019111068A1 (de) Datenspeichersystem mit LUN-Archivierung in die Cloud unter Verwendung einer Volume-to-Object(Volumen-zu-Objekt)-Umsetzung
DE112019000143T5 (de) Versionierungsvalidierung für die datenübertragung zwischen heterogenen datenspeichern
DE112017002497T5 (de) Systeme und verfahren zur aggregation von cloud-speicher
DE112018000227B4 (de) Verfahren zum teilweisen Aktualisieren von Dateninhalten in einem verteilten Speichernetzwerk
DE112019000402T5 (de) Chronologisch geordnetes out-of-place-aktualisierungs-schlüssel-wert-speichersystem
DE112021000408T5 (de) Prädiktives bereitstellen von fern gespeicherten dateien
DE102023206999A1 (de) System und verfahren zur verwaltung von pfad- und dateinamen unter verwendung eines universellen verbinders
US11568067B2 (en) Smart direct access
DE112021006882T5 (de) Ähnlichkeitsdeduplizierung
US20240028472A1 (en) System and method for managing network bandwidth for medium and large file sizes stored in a network attached storage system
US20240028473A1 (en) System and method for optimizing network attached storage backup of a large set of files based on resource availability
US12007983B2 (en) Optimization of application of transactional information for a hybrid transactional and analytical processing architecture
US20240028462A1 (en) System and method for parallelization backup of a folder including a large set of files stored in a network attached storage
US20240028474A1 (en) System and method for managing a backup of a large set of files using a file system analysis for data stored in a network attached storage
US20240028475A1 (en) System and method for generating incremental backups for file based backups stored in a network attached storage
US20240028476A1 (en) System and method for performing backups of multiple versions of a file stored in a network attached storage system