EP1588357B1

Apparatus, method and system for managing partitioned distributed storage

Abstract

This record has no abstract on file.

EP1588357B1, drawing sheet 1
Sheet 1 of 13

Term

Term ended

Expired 21 January 2024, 2.7 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

15 claims: 15 independent, 0 dependent

  1. 1
    A component for moving resources across a storage system (116), said system having a plurality of storage servers (32a ...32n, 161, 162...) with a set of resources (170, 180) partitioned thereon, said component comprising:a load monitor (220A, 220B, 220C) capable of generating a measure of loading on respective ones of the plurality of servers (32a ...32n, 161, 162...);anda resource migration component (240A, 240B, 240C) for transferring a resource from said one of said plurality of servers (32a ...32n, 161, 162) to another of said plurality of servers (32a ...32n, 161, 162) in response to said measure of loading;characterized in that: the load monitor (220A, 220B, 220C) is capable of communicating with other load monitors (220A, 220B, 220C);and in thatthe resource migration component (240A, 240B, 240C) includes a further component to detect when a resource write request applies to a resource that is in the process of being moved from said one server to a second server, and to apply such resource write request to both copies of the resource held at said one and said second server. Komponente zum Verschieben von Betriebsmitteln über ein Speichersystem (116), wobei das genannte System eine Mehrzahl von Speicherservern (32a...32n, 161, 162...) mit einem darauf partitionierten Satz von Betriebsmitteln (170, 180) hat, wobei die genannte Komponente Folgendes umfasst: einen Lastmonitor (220A, 220B, 220C), der ein Maß für die Belastung auf jeweiligen aus der Mehrzahl von Servern (32a...32n, 161, 162...) erzeugen kann;undeine Betriebsmittelmigrationskomponente (240A, 240B, 240C) zum Übertragen eines Betriebsmittels von dem genannten einen aus der genannten Mehrzahl von Servern (32a...32n, 161, 162) zu einem anderen aus der genannten Mehrzahl von Servern (32a...32n, 161, 162) als Reaktion auf das genannte Belastungsmaß;dadurch gekennzeichnet, dass: der Lastmonitor (220A, 220B, 220C) mit anderen Lastmonitoren (220A, 220B, 220C) kommunizieren kann;und dadurch, dassdie Betriebsmittelmigrationskomponente (240A, 240B, 240C) eine weitere Komponente beinhaltet, um zu erfassen, wann eine Betriebsmittelschreibanforderung ein Betriebsmittel betrifft, das gerade von dem genannten einen Server zu einem zweiten Server verschoben wird, und um eine solche Betriebsmittelschreibanforderung auf beide Kopien des auf dem genannten einen und dem genannten zweiten Server gehaltenen Betriebsmittels anzuwenden. Un composant destiné à déplacer des ressources à l'intérieur d'un système de stockage (116), ledit système possédant une pluralité de serveurs de stockage (32a ... 32n, 161, 162...) avec un ensemble de ressources (170, 180) réparties sur ceux-ci, ledit composant comprenant : un moniteur de charge (220A, 220B, 220C) capable de générer une mesure de charge sur des serveurs respectifs de la pluralité de serveurs (32a ... 32n, 161, 162...), etun composant de migration de ressources (240A, 240B, 240C) pour le transfert d'une ressource dudit un serveur de ladite pluralité de serveurs (32a ... 32n, 161, 162) vers un autre serveur de ladite pluralité de serveurs (32a ... 32n, 161, 162) en réponse à ladite mesure de charge,caractérisé en ce que : le moniteur de charge (220A, 220B, 220C) est capable de communiquer avec d'autres moniteurs de charge (220A, 220B, 220C), et en ce quele composant de migration de ressources (240A, 240B, 240C) comprend un autre composant destiné à détecter quand une demande d'écriture de ressource s'applique à une ressource qui est en cours de déplacement dudit un serveur vers un deuxième serveur, et à appliquer une telle demande d'écriture de ressource aux deux copies de la ressource hébergées sur ledit un et ledit deuxième serveur.
  2. 2
    Komponente nach Anspruch 1, wobei die genannten Betriebsmittel (170, 180) ausgewählt sind aus einer Gruppe bestehend aus Datenblöcken, Programmdateien, Multimedia-Dateien, Anwendungen und Datenbankdateien. Le composant selon la Revendication 1, où lesdites ressources (170, 180) sont sélectionnées dans un groupe se composant de blocs de données, fichiers de programmes, fichiers multimédias, applications et fichiers de bases de données. The component of claim 1, wherein said resources (170, 180) are selected from a group consisting of data blocks, program files, multimedia files, applications, and database files.
  3. 3
    Komponente nach einem der vorherigen Ansprüche, wobei der Lastmonitor (220A, 220B, 220C) eine Komponente zum Messen eines Anteils der Client-Anforderungen beinhaltet, die von jedem Server aus der genannten Mehrzahl von Servern gehandhabt werden. Le composant selon l'une quelconque des Revendications précédentes, où le moniteur de charge (220A, 220B, 220C) comprend un composant destiné à mesurer une part des demandes clients étant traitées par chaque serveur de ladite pluralité de serveurs. The component of one of the preceding claims, wherein the load monitor (220A, 220B, 220C) includes a component to measure a share of the client requests being handled by each server of said plurality of servers.
  4. 4
    Komponente nach einem der vorherigen Ansprüche, wobei die Betriebsmittelmigrationskomponente (240A, 240B, 240C) eine Blockdatenmigrationskomponente beinhaltet. Le composant selon l'une quelconque des Revendications précédentes, où le composant de migration de ressources (240A, 240B, 240C) comprend un composant de migration de données en blocs. The component of one of the preceding claims, wherein the resource migration component (240A, 240B, 240C) includes a block data migration component.
  5. 5
    Komponente nach einem der vorherigen Ansprüche, wobei ein Zeiger auf ein Betriebsmittel (170, 180) während einer Zugriffsoperation geführt wird, um kontinuierlichen Datenzugang bereitzustellen. Le composant selon l'une quelconque des Revendications précédentes, où un pointeur vers une ressource (170, 180) est entretenu au cours d'une opération d'accès de façon à fournir un accès continu aux données. The component of one of the preceding claims, wherein a pointer to a resource (170, 180) is maintained during an access operation to provide continuous data access.
  6. 6
    Komponente nach einem der vorherigen Ansprüche, wobei der Lastmonitor (220A, 220B, 220C) Netzwerkverkehrslast, E/A-Anforderungslast und/oder den Speicherverkehrsmustertyp überwacht. Le composant selon l'une quelconque des Revendications précédentes, où le moniteur de charge (220A, 220B, 220C) surveille un ou plusieurs des éléments suivants :charge de trafic réseau, charge de demandes d'E/S, type de modèle de trafic de stockage. The component of one of the preceding claims, wherein the load monitor(220A, 220B, 220C) monitors one or more of network traffic load, I/O request load, storage traffic pattern type.
  7. 7
    Komponente nach einem der vorherigen Ansprüche, wobei die Betriebsmittelmigrationskomponente (240A, 240B, 240C) die Aufgabe hat, das verschobene Betriebsmittel (170, 180) in Unterbetriebsmittel zu unterteilen, und jedes Unterbetriebsmittel nacheinander von einem ersten Server zu einem zweiten Server verschoben wird, so dass eine Wiederherstellung nach einem Ausfall lediglich die Wiederherstellung des Unterbetriebsmittels, das zum Zeitpunkt des Ausfalls verschoben wurde, und nachfolgender Unterbetriebsmittel erfordert. Le composant selon l'une quelconque des Revendications précédentes, où le composant de migration de ressources (240A, 240B, 240C) est agencé de façon à diviser la ressource (170, 180) en cours de déplacement en sous-ressources, et où chaque sous-ressource est déplacée d'un premier serveur vers un deuxième serveur à tour de rôle, de sorte qu'une restauration après défaillance exige uniquement la restauration de la sous-ressource en cours de déplacement au moment de la défaillance et les sous-ressources subséquentes. The component of one of the preceding claims, wherein the resource migration component (240A, 240B, 240C) is arranged to divide the resource (170, 180) being moved into sub-resources, and each sub-resource is moved from a first server to a second server in turn, so that recovery from failure requires only the recovery of the sub-resource being moved at the time of failure and subsequent sub-resources.
  8. 8
    Komponente nach einem der vorherigen Ansprüche, wobei die weitere Komponente als Reaktion auf einen Schreibausfall auf dem zweiten Server die Migrationskomponente (240A, 240B, 240C) für das Betriebsmittel neu startet, um sicherzustellen, dass die Schreibanforderung zu dem zweiten Server propagiert wird. Le composant selon l'une quelconque des Revendications précédentes, où, en réponse à un incident d'écriture sur le deuxième serveur, le composant supplémentaire relance le composant de migration (240A, 240B, 240C) pour la ressource afin de garantir que la demande d'écriture soit propagée vers le deuxième serveur. The component of any one of the preceding claims, wherein in response to a write failure on the second server, the further component restarts the migration component (240A, 240B, 240C) for the resource to ensure that the write request is propagated to the second server.
  9. 9
    A storage system (116) comprising a plurality of storage servers (32a ...32n, 161, 162) with a set of resources partitioned thereon (170, 180), said storage servers capable of generating a measure of loading on respective ones of the plurality of servers (32a ...32n, 161, 162...), wherein at least one of said servers comprises the component of claim 1. Speichersystem (116), das eine Mehrzahl von Speicherservern (32a...32n, 161, 162) mit einem darauf partitionierten Satz von Betriebsmitteln (170, 180) umfasst, wobei die genannten Speicherserver ein Maß für die Belastung auf jeweiligen aus der Mehrzahl von Servern (32a...32n, 161, 162...) erzeugen können, wobei wenigstens einer der genannten Server die Komponente von Anspruch 1 umfasst. Un système de stockage (116) possédant une pluralité de serveurs de stockage (32a ... 32n, 161, 162) avec un ensemble de ressources (170, 180) réparties sur ceux-ci, lesdits serveurs de stockage étant capables de générer une mesure de charge sur des serveurs respectifs de la pluralité de serveurs (32a ... 32n, 161, 162...), où au moins un desdits serveurs comprend le composant selon la Revendication 1.
  10. 10
    Le système selon la Revendication 9, où lesdits serveurs (32a ... 32n, 161, 162...) présentent une interface uniforme à un client. System nach Anspruch 9, wobei die genannten Server (32a...32n, 161, 162...) eine gleichförmige Schnittstelle zu einem Client exponieren. The system of claim 9, wherein said servers (32a ...32n, 161, 162...) expose a uniform interface to a client.
  11. 11
    Le système selon la Revendication 9, où ladite mesure de charge reflète à la fois une charge de système de stockage et une charge de serveur. System nach Anspruch 9, wobei das genannte Belastungsmaß sowohl eine Speichersystemlast als auch eine Serverlast reflektiert. The system of claim 9, wherein said measure of loading reflects both a storage system load and a server load.
  12. 12
    Le système selon la Revendication 9, où ledit système de stockage est un réseau de stockage. System nach Anspruch 9, wobei das genannte Speichersystem ein Speicherbereichsnetzwerk ist. The system of claim 9, wherein said storage system is a Storage Area Network.
  13. 13
    Le système selon la Revendication 9, comprenant en outre une table d'acheminement (200A, 200B, 200C) destinée à assurer le suivi des ressources entretenues sur le système. System nach Anspruch 9, das ferner eine Routingtabelle (200A, 200B, 200C) zum Verfolgen von auf dem System geführten Betriebsmitteln umfasst. The system of claim 9, further comprising a routing table (200A, 200B, 200C) for tracking resources maintained on the system.
  14. 14
    A method of moving resources across a storage system (116), said system having a plurality of storage servers (32, 161, 162...) with a set of resources (170, 180) partitioned thereon, said method comprising:generating a measure of loading on respective ones of the plurality of servers (32);transferring a resource from said one of said plurality of servers (32) to another of said plurality of servers (32) in response to said measure of loading;characterized by: communicating the measure of loading with the plurality of servers;detecting when a resource write request applies to a resource that is in the process of being moved from said one server to a second server, andapplying such resource write request to both copies of the resource held at said one and said second server. Un procédé destiné à déplacer des ressources à l'intérieur d'un système de stockage (116), ledit système possédant une pluralité de serveurs de stockage (32, 161, 162...) avec un ensemble de ressources (170, 180) réparties sur ceux-ci, ledit procédé comprenant : la génération d'une mesure de charge sur des serveurs respectifs de la pluralité de serveurs (32),le transfert d'une ressource dudit un serveur de ladite pluralité de serveurs (32) vers un autre serveur de ladite pluralité de serveurs (32) en réponse à ladite mesure de charge,caractérisé par : la communication de la mesure de charge à la pluralité de serveurs,la détection du moment où une demande d'écriture de ressources s'applique à une ressource qui est en cours de déplacement dudit un serveur vers un deuxième serveur, etl'application d'une telle demande d'écriture de ressource aux deux copies de la ressource hébergées sur ledit un et ledit deuxième serveur. Verfahren zum Verschieben von Betriebsmitteln über ein Speichersystem (116), wobei das genannte System eine Mehrzahl von Speicherservern (32, 161, 162...) mit einem darauf partitionierten Satz von Betriebsmitteln (170, 180) hat, wobei das genannte Verfahren die folgenden Schritte beinhaltet: Erzeugen eines Maßes für die Belastung auf jeweiligen aus der Mehrzahl von Servern (32);Übertragen eines Betriebsmittels von dem genannten einen aus der genannten Mehrzahl von Servern (32) zu einem anderen aus der genannten Mehrzahl von Servern (32) als Reaktion auf das genannte Belastungsmaß;gekennzeichnet durch: Kommunizieren des Belastungsmaßes mit der Mehrzahl von Servern;Erfassen, wenn eine Betriebsmittelschreibanforderung ein Betriebsmittel betrifft, das gerade von dem genannten einen Server zu einem zweiten Server verschoben wird, undAnwenden einer solchen Betriebsmittelschreibanforderung auf beide Kopien des auf dem genannten einen und dem genannten zweiten Server gehaltenen Betriebsmittels.
  15. 15
    A computer program product comprising computer readable code which is arranged when executed on a computing device to carry out the steps of claim 14. Computerprogrammprodukt, das rechnerlesbaren Code aufweist, der beim Betrieb auf einem Rechengerät die Schritte von Anspruch 14 ausführt. Un programme informatique comprenant du code lisible par ordinateur qui est agencé de façon à, lorsqu'il est exécuté sur un dispositif informatique, effectuer les opérations selon la Revendication 14.
Independent claims15