Brevet FR2981766A1 — publié le 20130426

La présente invention concerne de manière générale le stockage de données numériques. L'invention concerne plus particulièrement un procédé de stockage de données numériques dans une infrastructure comprenant une pluralité de sites de stockage de données distincts les uns des autres, chaque site comprenant plusieurs unités de stockage. L'invention concerne également un produit de programme d'ordinateur et une infrastructure correspondante. Pour un fichier de données stocké sur un site de stockage, les procédés de protection et de reprise de données après une panne ou un sinistre au niveau dudit site sont lourds et coûteux. La présente invention a pour but de proposer un procédé de stockage et une infrastructure correspondante permettant de réduire le risque de non accès à un fichier de données, lorsqu'une partie du site de stockage correspondant, ou le site entier, est inaccessible, tout en limitant le volume de données stockées. A cet effet, l'invention a pour objet un procédé de stockage de données numériques dans une infrastructure comprenant une pluralité de sites de stockage de données distincts les uns des autres, chaque site comprenant plusieurs unités de stockage, caractérisé en ce que ledit procédé comprend les étapes suivantes : -on réalise à partir d'un fichier de données un nombre donné, noté N, de morceaux éventuellement encodés, - on distribue sur N unités de stockage de l'un desdits sites, appelé site principal, lesdits N morceaux du fichier, - on distribue en outre les N morceaux dudit fichier sur N autres unités de 30 stockage, lesdites N autres unités de stockage appartenant à N autres sites de stockage distincts, appelés sites secondaires. Les morceaux du fichier sont ainsi copiés non seulement sur des unités de stockage du site principal mais en outre chaque morceau est recopié sur une unité de stockage d'un autre site, appelé site secondaire et faisant office de site de secours. En particulier, chaque site secondaire sur lequel est recopié un morceau du fichier ne comprend pas d'autres morceaux de ce fichier, de manière à limiter le volume de données stockées sur ledit site. Le fait de répartir ces morceaux par copie sur autant de sites secondaires qu'il y a de morceaux permet d'optimiser la probabilité de pouvoir reconstruire ledit fichier. Selon une caractéristique avantageuse de l'invention, on génère des informations, appelées métadonnées, permettant d'identifier les unités de stockage des différents sites sur lesquels sont hébergés les morceaux dudit fichier. Ces métadonnées permettent de connaitre précisément les unités de stockage du site principal et des sites secondaires, servant de sites de secours, qui hébergent les morceaux du fichier et leur copie. Ainsi en cas de problème sur une unité de stockage d'un site principal ces métadonnées permettent de déterminer rapidement et de manière fiable le chemin d'accès à une copie du ou des morceaux non accessible(s) au niveau dudit site principal. Selon une caractéristique avantageuse de l'invention, en vue de reconstruire ledit fichier, on récupère au moins une partie des N morceaux dudit fichier 25 hébergés sur les unités de stockage correspondantes du site principal. Lorsqu'un client émet une requête de lecture du fichier, le système de gestion récupère les morceaux correspondant à ce fichier, ou une partie seulement de ceux-ci dans le cas où ils sont encodés et permettent de reconstituer le fichier 30 avec une partie seulement desdits morceaux. Selon une caractéristique avantageuse de l'invention, si l'unité de stockage qui héberge l'un des morceaux requis est indisponible, on récupère ledit morceau auprès de l'unité de stockage correspondante du site secondaire qui héberge ledit morceau. Ainsi, même en cas d'indisponibilité d'une des unités de stockage, le fichier reste accessible pour le client puisque les morceaux nécessaires à la reconstruction de fichier peuvent être aisément récupérés sur les sites secondaires faisant office de sites de secours. Cette solution de redondance reste légère puisque les morceaux sont répartis un à un sur différents sites secondaires de sorte que cette solution permet de répartir la charge du fichier sur différents sites secondaires contrairement aux solutions connues qui prévoient de réaliser une copie complète du fichier sur un site de secours. Selon une caractéristique avantageuse de l'invention, en cas d'indisponibilité 15 de l'ensemble des unités de stockage du site principal sur lesquelles ont été répartis les N morceaux du fichier, l'un des sites secondaires, dont une unité de stockage héberge un morceau du fichier, est sélectionné en tant que nouveau site principal, et lesdits N-1 autres morceaux du fichier qui sont répartis sur N-1 sites 20 secondaires sont recopiés sur N-1 unités de stockage dudit nouveau site principal. On se sert ainsi d'un site secondaire jusque là considéré en tant que site secondaire pour prendre le relais du site principal inaccessible. Le système de 25 gestion permet à cet effet de recopier les morceaux manquants du fichier sur le nouveau site principal pour lui permettre de disposer de l'ensemble des morceaux du fichier, tout en conservant la possibilité, en cas de panne d'une unité du site principal, de rechercher le morceau correspondant sur un autre site secondaire. 30 Avantageusement, le morceau du fichier hébergé par le nouveau site principal, avant que l'ancien site principal ne soit inaccessible, est recopié sur un site secondaire supplémentaire distinct desdits sites secondaires sur lesquels sont présents les N-1 autres morceaux du fichier pour assurer une récupération possible dudit morceau en cas d'inaccessibilité de l'unité de stockage correspondante dudit nouveau site principal. Selon une caractéristique avantageuse de l'invention, les N morceaux du fichier sont générés en étant codés, de préférence à l'aide d'une transformée de Mojette, de telle sorte que la récupération d'un nombre donné, noté M, de morceaux dudit fichier, M étant inférieur à N, permet de reconstruire ledit fichier. L'utilisation d'un code à effacement permet d'améliorer la probabilité de reconstruction du fichier et donc la qualité d'accès au fichier. L'invention concerne également une infrastructure de stockage de données numériques comprenant une pluralité de sites de stockage de données distincts les uns des autres, chaque site comprenant plusieurs unités de stockage, caractérisée en ce que ladite infrastructure comprend un système de gestion comprenant : - des moyens de distribution dits principaux, configurés pour, à partir d'un fichier de données fragmenté en un nombre donné, noté N, de morceaux éventuellement encodés, distribuer sur N unités de stockage de l'un desdits sites, appelé site principal, lesdits N morceaux du fichier, - des moyens de distribution dits secondaires, configurés pour distribuer en 25 outre les N morceaux dudit fichier sur N autres unités de stockage, lesdites N autres unités de stockage appartenant à N autres sites de stockage distincts, appelés sites secondaires. Selon une caractéristique avantageuse de l'invention, ledit système de gestion 30 comprend des moyens de génération et de mémorisation d'informations, appelées métadonnées, configurés pour identifier les unités de stockage des différents sites sur lesquels sont hébergés les morceaux dudit fichier. Selon une caractéristique avantageuse de l'invention, chaque site comprend des moyens de génération et de mémorisation d'informations appelées métadonnées, configurés pour identifier les unités de stockage des différents 5 sites sur lesquels sont hébergés les morceaux dudit fichier. Selon une caractéristique avantageuse de l'invention, ladite infrastructure comprend des moyens de fragmentation, éventuellement avec encodage, du fichier en N morceaux, et des moyens de transmission desdits morceaux au 10 système de gestion pour distribuer lesdits morceaux sur lesdits sites de stockage. Selon une caractéristique avantageuse de l'invention, ladite infrastructure comprend des moyens de récupération d'au moins une partie des morceaux 15 dudit fichier, configurés pour transmettre au système de gestion une ou des requêtes de récupération d'au moins une partie desdits morceaux du fichier, et ledit système de gestion est configuré pour, à partir de ladite ou desdites requêtes et des métadonnées mémorisées, identifier les unités de stockage du site principal sur lesquelles sont hébergés les morceaux requis dudit fichier, et 20 transmettre lesdits morceaux auxdits moyens de récupération. Selon une caractéristique avantageuse de l'invention, ledit système de gestion est configuré pour, si l'unité de stockage du site principal qui héberge l'un des morceaux requis est indisponible, récupérer ledit morceau auprès de l'unité de 25 stockage correspondante du site secondaire qui héberge ledit morceau. Selon une caractéristique avantageuse de l'invention, ledit système de gestion est configuré pour, en cas d'indisponibilité de l'ensemble des unités de stockage du site principal sur lesquelles ont été répartis les N morceaux du 30 fichier, sélectionner l'un des sites secondaires dont une unité de stockage héberge un morceau du fichier, en tant que nouveau site principal, et recopier les N-1 autres morceaux du fichier, qui sont répartis sur N-1 sites secondaires, sur N-1 unités de stockage dudit nouveau site principal. L'invention sera bien comprise à la lecture de la description suivante 5 d'exemples de réalisation, en référence aux dessins annexés dans lesquels : - la figure 1 est une vue schématique de l'infrastructure selon l'invention montrant la répartition des morceaux d'un fichier sur un site principal et la copie desdits morceaux sur autant de sites secondaires ; - la figure 2 est une vue schématique de l'infrastructure de la figure 1 illustrant 10 le procédé de récupération des morceaux d'un fichier lorsqu'une unité de stockage du site principal est inaccessible ; - les figures 3 et 4 sont des vues schématiques de l'infrastructure de la figure 1 illustrant le procédé de restauration des morceaux de fichier mis en oeuvre lorsque le site principal est inaccessible. 15 En référence aux figures et comme rappelé ci-dessus, l'invention concerne un procédé de stockage de données numériques dans une infrastructure. Ladite infrastructure comprend une pluralité de sites SO, S1, ..., S5 de stockage de données. Lesdits sites SO, S1, ..., S5 de stockage de données sont 20 physiquement distincts les uns des autres. Chaque site SO, S1, ..., S5 comprend plusieurs unités de stockage U01,..., U05 ; U11,..., U15 ;...; U51,..., U55. On entend par unité de stockage un système muni d'au moins une mémoire de stockage de données numériques. 25 Chaque unité de stockage comprend de préférence au moins un serveur. Il doit être noté qu'on entend par "site" un ensemble d'unités de stockage tel qu'un centre de données, encore appelé couramment "Datacenter". Autrement dit, le procédé et l'infrastructure selon l'invention s'appliquent à tout type de 30 data center multi-site. Préférentiellement, les différents sites sont alimentés électriquement de manière indépendante les uns des autres. Chaque site comprend également un réseau de communication de données indépendant des réseaux de communication des autres sites de sorte que si le réseau de communication d'un site est défaillant, le risque d'impact sur les autres sites est faible. De manière similaire, chaque site comprend un système de refroidissement indépendant du système de refroidissement des autres sites. Avantageusement, lesdits sites SO, S1, ..., S5 de stockage de données sont éloignés les uns des autres d'au moins une centaine de mètre, ou encore d'au 10 moins 1 km, de sorte que si un sinistre atteint l'un de ces sites le risque d'impact sur les autres sites est très réduit Ladite infrastructure comprend un système de gestion SG, centralisé ou distribué, qui comprend des moyens de distribution, dits principaux, configurés 15 pour, à partir d'un fichier de données FL fragmenté en un nombre donné N de morceaux M1, ..., M5, éventuellement encodés, distribuer sur N unités de stockage U01,..., U05 de l'un SO desdits sites SO, S1, ..., S5, appelé site principal, lesdits N morceaux M1, ..., M5 du fichier FL. Le nombre N est un nombre entier au moins égal à 2. 20 Ladite infrastructure comprend également des moyens de distribution, dits secondaires, configurés pour distribuer en outre les N morceaux M1, ..., M5 dudit fichier FL sur N autres unités de stockage Ull, U22, U33, U44, U55. Lesdites N autres unités de stockage appartiennent à N sites de stockage S1, 25 ... , S5 secondaires distincts les uns des autres et du site principal SO. Lesdits N sites de stockage S1, ..., S5 secondaires sont choisis parmi ladite pluralité de sites de stockage secondaires. Ledit système de gestion se présente sous la forme d'un système électronique 30 et informatique qui comprend par exemple un microprocesseur et une mémoire de travail. Ainsi, lorsqu'il est précisé que ledit système de gestion comprend des moyens pour réaliser une action donnée, cela signifie que le système électronique et informatique correspondant comprend des instructions permettant d'exécuter ladite action. Ledit système de gestion SG, et de préférence chaque site, comprend des moyens MD de génération en temps réel et de mémorisation d'informations, appelées métadonnées, configurés pour identifier les unités de stockage des différents sites SO, ..., S5 sur lesquels sont hébergés les morceaux M1, ..., M5 dudit fichier. Le procédé de stockage d'un fichier à l'aide d'une telle infrastructure est détaillé ci-dessous. Comme illustré à la figure 1, le fichier à stocker est fragmenté par une application 2 en un nombre N de morceaux M1, ..., M5. Avantageusement, on peut prévoir que les N morceaux M1, ..., M5 du fichier FL sont codés, de préférence à l'aide d'une transformée de Mojette, de telle sorte que la récupération d'un nombre donné, noté M, de morceaux dudit fichier, M étant inférieur à N, permet de reconstruire ledit fichier. L'utilisation d'un code à effacement, tel que la transformée Mojette, permet de réduire les volumes de stockage nécessaires pour le stockage des morceaux de fichiers tout en conservant une bonne probabilité d'accès audit fichier. Lesdits N morceaux M1, ..., M5 du fichier FL sont distribués par le système de gestion SG sur N unités de stockage U01,..., U05 de l'un SO desdits sites SO, S1, ..., S5, appelé site principal. Les N morceaux M1, ..., M5 du fichier FL sont distribués en outre sur N autres unités de stockage Ull, U22, U33, U44, U55. Lesdites N autres unités de stockage appartiennent à N autres sites de stockage distincts S1, ..., S5, appelés sites secondaires. Le site principal est le site responsable de la délivrance des N morceaux du fichier. Autrement dit, les requêtes de récupération des morceaux lui sont adressées en priorité et ce n'est qu'en cas d'indisponibilité de l'une de ses unités de stockage que le morceau correspondant indisponible est récupéré à partir de l'unité de stockage correspondante d'un site secondaire dont l'adresse est mémorisée dans ledit système de gestion. L'indisponibilité d'une unité de stockage peut être liée à une défaillance logicielle ou matérielle qui peut être temporaire ou permanente. Ainsi, pour chaque morceau dudit fichier FL copié sur une unité de stockage du site principal SO, on réalise également une copie dudit morceau sur une unité de stockage d'un site secondaire. Ledit site secondaire qui comprend une unité de stockage sur laquelle est copié un morceau du fichier est distinct du site secondaire qui comprend l'unité de stockage sur laquelle est stockée une copie d'un autre morceau. Autrement dit, non seulement les morceaux du fichier sont répartis en un à un sur un nombre d'unités de stockage du site principal égal au nombre de morceaux du fichier, mais chaque morceau dudit fichier est en outre copié sur une unité de stockage d'un site secondaire distinct du site principal et des autres sites secondaires sur lesquels sont copiés les autres morceaux du fichier. Le site défini comme site principal est défini comme tel pour un fichier donné. On peut prévoir que pour un autre fichier le site défini comme site principal soit un autre site. La lecture du fichier FL peut être réalisée de la manière suivante. En vue de reconstruire ledit fichier FL, on récupère au moins une partie des N morceaux M1...M5 dudit fichier hébergés sur les unités de stockage U1 ...U5 correspondantes du site principal SO. Comme illustré à la figure 2, si l'unité de stockage U2 qui héberge l'un M2 des morceaux M1, ..., M5 requis est indisponible, on récupère ledit morceau M2 auprès de l'unité de stockage U22 correspondante du site secondaire S2 qui héberge ledit morceau M2. L'unité de stockage U22 est identifiée dans les métadonnées MD accessibles aux moyens de gestion SG. Comme illustré aux figures 3 et 4, en cas d'indisponibilité de l'ensemble des unités de stockage U01,..., U05 du site principal SO sur lesquelles ont été répartis les N morceaux M1, ..., M5 du fichier, l'un S1 des sites secondaires S1, ..., S5 dont une unité de stockage Ull héberge un morceau M1 du fichier, est sélectionné par le système de gestion SG en tant que nouveau site principal S1. Lesdits N-1 autres morceaux du fichier FL qui sont répartis sur N-1 unités de stockage U22,..., U55 appartenant à N-1 sites secondaires S2,..., S5 sont recopiés sur N-1 unités de stockage U12,..., U15 dudit nouveau site principal S1. Ainsi, les N morceaux M1, ..., M5 du fichier sont hébergés sur N unités de stockage du nouveau site principal S1. Lesdites N-1 copies correspondent à N-1 morceaux différents les uns des autres et du morceau qui est initialement déjà hébergé par le nouveau site principal S1. Par sécurité, ledit morceau M1 déjà hébergé par l'unité de stockage Ull du nouveau site principal S1 est copié sur une unité de stockage d'un site de stockage supplémentaire (non représenté) distinct du site principal S1 et desdits sites secondaires S2... S5. En pratique le statut de site principal correspond au site qui héberge les N morceaux du fichier et qui est opérationnel. Le statut de site secondaire correspond au site qui n'héberge qu'un morceau dudit fichier. Ces informations sont mémorisées, de préférence au niveau du système de gestion de chaque site, et mises à jour en temps réel de sorte qu'en cas de défaillance du site principal l'un ou l'autre des sites secondaires peut être redéfini en tant que site principal avec un risque réduit de perte d'information concernant la répartition des morceaux sur les différents sites. Le système de gestion SG qui reçoit une requête pour récupérer au moins une partie des morceaux du fichier FL peut ainsi identifier de manière fiable et en temps réel l'identité des unités du site principal qui hébergent les morceaux requis et si besoin l'identité d'une ou des unité(s) d'un ou des site(s) secondaire(s) qui héberge(nt) une ou des copie(s) d'un ou des morceau(x) requis. La présente invention n'est nullement limitée aux modes de réalisation décrits et représentés, mais l'homme du métier saura y apporter toute variante conforme à son esprit.