Brevet FR3030802A1 — publié le 20160624

Système et procédé informatisés de gestion du stockage de données dans un environnement de stockage distribué en multi-nuage La présente invention concerne un système et un procédé informatisés de gestion du stockage de données dans un environnement de stockage distribué. Elle trouve notamment une application au stockage de données en environnement de stockage et d'hébergement en nuage (« Cloud ») ou multi-nuage (« Multi-cloud ») offrant plusieurs solutions et services de stockage en nuage pour un utilisateur. Le stockage de données informatiques en nuage permet à des entreprises ou individus, plus généralement à des utilisateurs, de stocker des données de façon délocalisées, auprès de fournisseurs de solutions de stockage qui mettent à disposition de ces utilisateurs des centres de données (« data centres ») et des serveurs pour le stockage. Les fournisseurs de stockage en nuage stockent de très grande quantité de données, avec des tarifs différenciés, et proposent des niveaux de service différents à des coûts divers, en fonction notamment des garanties de disponibilité des données. Les tarifs varient également en fonction de la demande, de la charge, de la fiabilité de l'infrastructure de stockage, de contraintes géographiques, etc. Les utilisateurs qui souhaitent bénéficier d'une garantie de disponibilité élevée choisissent un niveau de service élevé, ce qui conduit à des coûts de stockage importants, en particulier pour les utilisateurs souhaitant stocker une quantité de données importante. Certains fournisseurs de stockage en nuage proposent un service de stockage initial gratuit, pour attirer des utilisateurs. Mais, la récupération des données peut alors s'avérer compliquée et coûteuse, avec une augmentation du risque d'indisponibilité des données. De plus, pour renforcer la sécurité des données et de leur stockage, on peut dupliquer ces données. Ceci entraîne cependant une augmentation du coût du stockage puisque la quantité de données, ou le poids des données stockées est un des facteurs de coût les plus importants. En outre, la duplication des données ne garantit pas nécessairement une plus grande disponibilité des données en récupération, dans le cas où l'accès au service du fournisseur est interrompu. Concernant la sécurité du contenu des données, on peut chiffrer celles-ci avant de les stocker, mais on sait que la fiabilité d'un chiffrement est relative, surtout si l'on a à faire à des personnes ou organisations malintentionnées qui disposent de temps et de moyens pour déchiffrer les données. La littérature connue traite essentiellement du problème de stockage en nuage en connexion avec des techniques de réplication, pour améliorer la disponibilité des données. Dans « Brokering algorithms for optimizing the availability and cost of cloud storage services », Y. Mansouri, A. N. Toosi, and R. Buyya, in Proceedings of the 2013 IEEE International Conference on Cloud Computing Technology and Science - Volume 01, ser. CLOUDCOM '13, Washington, DC, USA: IEEE Computer Society, 2013, pp. 581589, (http://dx.doi.org/10.1109/CloudCom.2013.83), on s'intéresse au stockage en environnement distribué, en utilisant un algorithme qui minimise le coût de la réplication et maximise la disponibilité des données, sans cependant adresser la question de la sécurité des données de manière suffisante. Dans « Scalia: An adaptive scheme for efficient multi-cloud storage », T. G. Papaioannou, N. Bonvin, and K. Aberer, in Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis, ser. SC '12. Los Alamitos, CA, USA: IEEE Computer Society Press, 2012, pp. 20:1-20:10. (http://dLacm.org/citation.cfm?id=2388996.2389024), est présenté un système concernant le stockage en environnement distribué sous contraintes de disponibilité et de durabilité. Des algorithmes sont proposés pour résoudre le problème dans des cas d'instances de petite taille. Dans « Rf h: A resilient, fault-tolerant and high-efficient replication algorithm for distributed cloud storage », Y. Qu and N. Xiong, in Parallel Processing (ICPP), 2012 41st International Conference on, Sept 2012, pp. 520- 529, propose une solution de stockage en environnement distribué censée permettre d'éviter les défaillances et d'atteindre un niveau de disponibilité élevé, mais qui n'est pas optimisée, en ce sens qu'elle est basée sur des décisions d'actions de réplication, migration ou suicide, en fonction de la charge sur les différents noeuds de stockage utilisés, pour simplement vérifier la faisabilité des actions. Dans « Enhanced distributed storage on the cloud », S. Srivastava, V. Gupta, R. Yadav, and K. Kant, in Computer and Communication Technology (ICCCT), 2012 Third International Conference on, Nov 2012, pp. 321- 325, il est question d'une heuristique simple pour augmenter la protection et la disponibilité des données en divisant un fichier à stocker en sous-fichiers destinés à être placés sur différentes machines virtuelles sur les ressources physiques d'un ou plusieurs fournisseurs. Aucune publication ne propose cependant de solution optimisée de stockage en environnement distribué, qui prennent en compte certaines caractéristiques des centres de données disponible pour le stockage, telles que le coût du stockage et la disponibilité des données, de manière suffisamment sécurisée et fiable, et ce quel que soit la quantité de données à stocker et le nombre de centre de données disponible, donc quel que soit les dimensions du problème posé. En d'autres mots, les solutions citées ou existantes traitent le problème du stockage distribué dans le nuage d'une manière peu efficace et/ou qui ne passe pas à l'échelle dans les cas d'instances de grandes tailles. Ainsi, l'invention a pour objet, selon un premier aspect, un système informatisé de gestion du stockage de données dans un environnement de stockage distribué comprenant N centres de données, avec N k 2, chacun apte à stocker des données sur un ou plusieurs serveurs de stockage et associé à une ou plusieurs caractéristiques, telles que le coût de stockage et la probabilité d'indisponibilité, le système comprenant une interface d'entrée apte à permettre l'entrée d'une donnée à stocker, des moyens de détermination aptes à déterminer au moins un centre de données susceptible d'être utilisé pour stocker une donnée déterminée, parmi les centres de données disponibles dans l'environnement de stockage distribué, et une interface de transmission apte à transmettre une donnée déterminée pour stockage dans au moins un centre de données déterminé. Les moyens de détermination comprennent un module de fragmentation d'une donnée déterminée à stocker, apte à fragmenter ladite donnée déterminée en M fragments, avec M k 2, et un module d'optimisation apte à déterminer, pour chaque fragment, un centre de données susceptible d'être utilisé pour stocker ledit fragment, parmi les centres de données disponibles dans l'environnement de stockage distribué, en sorte de minimiser une fonction objectif dépendant des valeurs d'une ou plusieurs des caractéristiques de chacun des centres de données déterminés pour stocker respectivement chacun des fragments de la donnée déterminée. Suivant certains modes de réalisation, le système comprend en outre une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les combinaisons techniquement possibles : chacun des centre de données est associé au moins à un coût de stockage et une probabilité d'indisponibilité, et le module d'optimisation est apte à déterminer, pour chaque fragment, un centre de données susceptible d'être utilisé pour stocker ledit fragment, parmi les centres de données disponibles dans l'environnement de stockage distribué, en sorte de minimiser la fonction objectif suivante : xi,i 1 - fi avec - u; : coût du stockage par unité de poids de donnée dans le centre de données, - v; : poids du fragment en unité de poids de donnée, - fi : probabilité d'indisponibilité d'une donnée stockée dans le centre de données, - xi,1 est égal à 1 si le centre de données est sélectionné pour stocker le fragment, et 0 sinon ; le module d'optimisation est apte à déterminer, pour un fragment d'une donnée déterminée, un centre de données susceptible d'être utilisé pour stocker ledit fragment, différent de tous les centres de données déterminés pour stocker les autres fragments de la donnée déterminée ; - les moyens de détermination comprennent un module de réplication apte à répliquer chacun des M fragments d'une donnée déterminée en R-1 fragments répliqués, avec R k 2, de préférence R k 4, et le module d'optimisation est apte à déterminer, pour chacun des M x fragments répliqués, un centre de données susceptible d'être utilisé pour stocker ledit fragment répliqué, parmi les centres de données disponibles dans l'environnement de stockage distribué, en sorte de minimiser une fonction objectif dépendant des valeurs d'une ou plusieurs des caractéristiques de chacun des centres de données déterminés pour stocker respectivement chacun des M x fragments répliqués de chacun des M fragments de la donnée déterminée ; - chacun des centre de données est associé au moins à un coût de stockage et une probabilité d'indisponibilité, et le module d'optimisation est apte à déterminer, pour chaque fragment répliqué, un centre de données susceptible d'être utilisé pour stocker ledit fragment répliqué, parmi les centres de données disponibles dans l'environnement de stockage distribué, en sorte de minimiser la fonction objectif suivante : k avec u; : coût du stockage par unité de poids de donnée dans le centre de données, vk : poids du fragment répliqué en unité de poids de donnée, xi,k est égal à 1 si le centre de données est sélectionné pour stocker le fragment répliqué, et 0 sinon, et en sorte que la probabilité de disponibilité de la donnée déterminée, dépendant de la probabilité d'indisponibilité de chacun des centres de données sélectionnés, soit supérieure ou égale à un seuil déterminé ; le module d'optimisation est apte à déterminer, pour un fragment répliqué d'un fragment donné, un centre de données susceptible d'être utilisé pour stocker ledit fragment répliqué, différent de tous les centres de données déterminés pour stocker les autres fragments répliqués du fragment donné et différent du centre de données déterminé pour stocker le fragment donné ; les moyens de détermination comprennent un module de chiffrement apte à chiffrer une donnée ; L'invention concerne également, selon un deuxième aspect, un environnement de stockage informatique distribué comprend N centres de données, avec N k 2, chacun apte à stocker des données sur un ou plusieurs serveurs de stockage et associé à une ou plusieurs caractéristiques, telles que le coût de stockage et la probabilité d'indisponibilité, l'environnement comprenant un système informatisé de gestion du stockage de données tel que présenté plus haut. L'invention concerne encore, selon un troisième aspect, un procédé informatisé de gestion du stockage de données dans un environnement de stockage distribué comprenant N centres de données, avec N k 2, chacun apte à stocker des données sur un ou plusieurs serveurs de stockage et associé à une ou plusieurs caractéristiques, telles que le coût de stockage et la probabilité d'indisponibilité, le procédé comprenant une étape d'entrée, au moyen d'une interface d'entrée, d'une donnée à stocker, une étape de détermination, par des moyens de détermination, d'au moins un centre de données susceptible d'être utilisé pour stocker la donnée déterminée, parmi les centres de données disponibles dans l'environnement de stockage distribué, et une étape de transmission, par une interface de transmission, de la donnée déterminée pour stockage dans au moins un centre de données déterminé. L'étape de détermination comprend une étape de fragmentation, par un module de fragmentation, de la donnée déterminée à stocker, au cours de laquelle ladite donnée déterminée est fragmentée en M fragments, avec M k 2, et une étape d'optimisation, par un module d'optimisation, au cours de laquelle est déterminé, pour chaque fragment, un centre de données susceptible d'être utilisé pour stocker ledit fragment, parmi les centres de données disponibles dans l'environnement de stockage distribué, en sorte de minimiser une fonction objectif dépendant des valeurs d'une ou plusieurs des caractéristiques de chacun des centres de données déterminés pour stocker respectivement chacun des fragments de la donnée déterminée. Suivant certains modes de mise en oeuvre, le procédé comprend en outre une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les combinaisons techniquement possibles : chacun des centre de données étant associé au moins à un coût de stockage et une probabilité d'indisponibilité, et l'étape d'optimisation détermine, pour chaque fragment, un centre de données susceptible d'être utilisé pour stocker ledit fragment, parmi les centres de données disponibles dans l'environnement de stockage distribué, en sorte de minimiser la fonction objectif suivante : v L- 1 - fi jr=1..M avec uj : coût du stockage par unité de poids de donnée dans le centre de données, v; : poids du fragment en unité de poids de donnée, fi : probabilité d'indisponibilité d'une donnée stockée dans le centre de données, xi,1 est égal à 1 si le centre de données est sélectionné pour stocker le fragment, et 0 sinon ; l'étape d'optimisation détermine, pour un fragment d'une donnée déterminée, un centre de données susceptible d'être utilisé pour stocker ledit fragment, différent de tous les centres de données déterminés pour stocker les autres fragments de la donnée déterminée ; l'étape de détermination comprend une étape de réplication, par un module de réplication, au cours de laquelle chacun des M fragments de la donnée déterminée est répliqué en R-1 fragments répliqués, avec R k 2, de préférence R k 4, et l'étape d'optimisation détermine, pour chacun des M x fragments répliqués, un centre de données susceptible d'être utilisé pour stocker ledit fragment répliqué, parmi les centres de données disponibles dans l'environnement de stockage distribué, en sorte de minimiser une fonction objectif dépendant des valeurs d'une ou plusieurs des caractéristiques de chacun des centres de données déterminés pour stocker respectivement chacun des M x fragments répliqués de chacun des M fragments de la donnée déterminée ; chacun des centre de données est associé au moins à un coût de stockage et une probabilité d'indisponibilité, et l'étape d'optimisation détermine, pour chaque fragment répliqué, un centre de données susceptible d'être utilisé pour stocker ledit fragment répliqué, parmi les centres de données disponibles dans l'environnement de stockage distribué, en sorte de minimiser la fonction objectif suivante : ',,k. xi, k 1:=1..rv -1) avec - uj : coût du stockage par unité de poids de donnée dans le centre de données, - vk : poids du fragment répliqué en unité de poids de donnée, - xi,k est égal à 1 si le centre de données est sélectionné pour stocker le fragment répliqué, et 0 sinon, et en sorte que la probabilité de disponibilité de la donnée déterminée, dépendant de la probabilité d'indisponibilité de chacun des centres de données sélectionnés, soit supérieure ou égale à un seuil déterminé ; l'étape d'optimisation détermine, pour un fragment répliqué d'un fragment donné, un centre de données susceptible d'être utilisé pour stocker ledit fragment répliqué, différent de tous les centres de données déterminés pour stocker les autres fragments répliqués du fragment donné et différent du centre de données déterminé pour stocker le fragment donné ; l'étape de détermination comprend une étape de chiffrement, par un module de chiffrement de la donnée déterminée. Ainsi, l'invention permet de garantir la disponibilité de tous les fragments de données en les distribuant de façon optimale en terme de coût par exemple, sur un ensemble de centres de données. L'utilisateur n'est plus dépendant d'un unique fournisseur de services de stockage de données, et peut réduire considérablement le coût du stockage de ses données, ce qui représente un avantage significatif pour les utilisateurs (entreprises) qui ont besoin de stocker une quantité très importantes de données. Des contraintes utilisateurs telles que le nombre minimum de centres de données à utiliser, peuvent être prises en compte dans le processus d'optimisation. Dans le cas de la réplication des fragments de donnée, la disponibilité de la donnée D est encore augmentée, dans la mesure où cette donnée peut encore être récupérée lorsque certains serveurs de certains centres de données sont indisponibles. Les caractéristiques et avantages de l'invention apparaitront à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple, et non limitative, en référence aux figures annexées suivantes : - figure 1 : représentation schématique d'un exemple de système et de procédé selon l'invention, dans le cas du stockage d'une donnée ; - figure 2: représentation schématique d'un exemple de système et de procédé selon l'invention, dans le cas de la récupération, d'une donnée. Dans l'exemple des figures 1 et 2, l'environnement de stockage distribué comprend N centres de données DC1, DC2,... DCI,..., DON, avec N k 2, qui sont répartis dans un environnement en nuage. Chacun de ces centres de données DC; (i = 1,...,N) comprend une ou plusieurs ressources physiques de stockage de données, tels que des serveurs S. A chacun de ces centres de données DC; est (sont) associée(s) une ou plusieurs caractéristiques, telles que le coût de stockage ui, la probabilité d'indisponibilité fi, ou encore la qualité du réseau d'accès. Le coût de stockage u; est généralement donné en prix par unité de poids de données, éventuellement en prix par unité de poids de données et par période de temps. Un exemple de coût de stockage peut être 0,10 euros par gigabyte et par mois. La probabilité d'indisponibilité fi est généralement donnée en pourcentage de temps de d'indisponibilité du centre de donnée DC; sur une période de temps donnée. Ainsi, une probabilité d'indisponibilité de 0,1% signifie que l'accès au service peut être indisponible, en stockage ou en récupération, pendant 0,1% du temps d'une période donnée, par exemple un an ou un mois. En conséquence, à une probabilité d'indisponibilité fi correspond une probabilité de disponibilité 1 - fi, qui elle-même correspond au pourcentage de temps de disponibilité du service, en stockage ou en récupération, sur la période de temps donnée. La qualité du réseau d'accès peut par exemple être exprimée en fonction de la latence du réseau et/ou du temps de réponse. Un utilisateur souhaitant stocker une donnée D dans l'environnement distribué, communique avec le système de gestion du stockage par l'intermédiaire d'une interface d'entrée 1. La donnée D à stocker est ensuite traitée par des moyens de traitement informatiques qui comprennent des moyens de détermination 2 destinés à déterminer au moins un centre de données DC; susceptible d'être utilisé pour stocker la donnée D parmi tous les centres de données DC; disponibles dans l'environnement de stockage distribué. Par ailleurs, une interface de transmission 3 permet au système de communiquer avec l'ensemble des centres de données DCI, en vue notamment de transmettre la donnée D à stocker à un centre de données DC; préalablement déterminé par les moyens de détermination 2, pour le stockage de cette donnée D. Selon l'invention, la donnée D à stocker est d'abord fragmentée en M fragments Ci, avec M k 2, par l'intermédiaire d'un module de fragmentation 4. Ensuite, un module d'optimisation 5 détermine, pour chaque fragment Ci, un centre de données DC; susceptible d'être utilisé pour stocker ce fragment Ci, parmi les centres de données DC; disponibles dans l'environnement de stockage distribué. Dans notre exemple, le module d'optimisation 5 détermine que le fragment C-1 sera stocké dans le centre de données DC, (sur l'une des ressources physiques ou l'un des serveurs S de ce centre de données), que le fragment 02 sera stocké dans le centre de données DC2 (sur l'une des ressources physiques ou l'un des serveurs S de ce centre de données), et que le fragment C; sera stocké dans le centre de données DC; (sur l'une des ressources physiques ou l'un des serveurs S de ce centre de données). Dans le cadre de cette détermination des centres de données DC; vers lesquels les fragments C; seront respectivement envoyés, des méta-données 10 sont créés. Ces meta-données 10 contiennent notamment des informations d'identification des fragments .ainsi que de leurs emplacements identifiés par le procédé d'optimisation 5. Elles sont stockées dans le système, dans une base de données ou un registre de méta-données. Ces méta-données 10 sont notamment destinées à être utilisées pour faciliter la reconstitution de la donnée D dans le cadre d'une requête de récupération (« get ») de la donnée D par un utilisateur, comme on le verra plus loin. La détermination du sous-ensemble de centres de données {DC}, parmi les centres de données DC; disponibles, pour le stockage des fragments 01, est réalisée en sorte de minimiser une fonction objectif qui dépend des valeurs d'une ou plusieurs des caractéristiques, telles que le coût de stockage u; et la probabilité d'indisponibilité fi, de chacun des centres de données DC; déterminés ou sélectionnés pour stocker respectivement chacun des fragments c; de la donnée D. De préférence, on utilise la fonction objectif suivante : %Ji. VI 1 - fi avec u; : coût du stockage par unité de poids de donnée (éventuellement par période de temps) dans le centre de données DCI, v; : poids du fragment C; en unité de poids de donnée f; : probabilité d'indisponibilité d'une donnée stockée dans le centre de données DCI, x1,1 est égal à 1 si le centre de données (DC;) est sélectionné pour stocker le fragment (C;), et 0 sinon. Le module d'optimisation 5 réalise l'optimisation précitée, en faisant en sorte que chaque fragment C; de la donnée D soit stocké sur un et un seul centre de données DCI. Par ailleurs, cette optimisation est réalisée en sorte que deux fragments C; de la même donnée D ne soient pas stockés sur le même centre de donnée DCI. Ainsi, pour un fragment C; de la donnée D, le module d'optimisation 5 détermine un centre de données DC; susceptible d'être utilisé pour stocker ce fragment Ci, différent de tous les centres de données DC; déterminés pour stocker les autres fragments C; de la même donnée D. Pour augmenter encore les performances du système et du procédé, notamment en termes de sécurité et de fiabilité de récupération des données, on peut prévoir la réplication, par un module de réplication des fragments C; de la donnée D. Ce module de réplication fait partie des moyens de détermination 2. Il n'est pas représenté dans l'exemple de la figure 1. Il peut être mis en oeuvre parallèlement à la fragmentation par le module de fragmentation 4. Il peut aussi être intégré à ce module de fragmentation 4. La réplication permet de répliquer chacun des M fragment Cj de la donnée D en R1 fragments répliqués RCk, avec R k 2. Généralement, on préfère que chaque fragment Cj soit répliqué au moins 3 fois, donc que R soit supérieur ou égal à 4. Chacun des M x (R-1) fragments répliqués RCk est affecté, par le module d'optimisation 5, à un centre de données (DC;) susceptible d'être utilisé pour stocker ce fragment répliqué RCk, parmi les centres de données DC; disponibles dans l'environnement de stockage distribué. Cette optimisation est réalisée en sorte de minimiser une fonction objectif qui dépend des valeurs d'une ou plusieurs des caractéristiques, telles que le coût de stockage u; et la probabilité d'indisponibilité fi, de chacun des centres de données DC; déterminés pour stocker respectivement chacun des M x (R-1) fragments répliqués RCk de chacun des M fragments C1 de la donnée D. De préférence, on utilise la fonction objectif suivante : xi,k avec u1: coût du stockage par unité de poids de donnée dans le centre de données (DC;), vk : poids du fragment répliqué (RCk) en unité de poids de donnée, xl,k est égal à 1 si le centre de données (DC;) est sélectionné pour stocker le fragment répliqué (RCk), et 0 sinon, qui est minimisée sous la contrainte suivante : la probabilité de disponibilité de la donnée D, qui dépend de la probabilité d'indisponibilité f; de chacun des centres de données DC; sélectionnés, doit être supérieure ou égale à un seuil Aexp't déterminé. La probabilité d'indisponibilité de chacun des centres de données DC; étant notée fi, la probabilité d'indisponibilité d'un fragment C1 de donnée D est égale à: H fi où les indices i(j) = 1...R représentent les indices des centres de données DC; dans lesquels sont respectivement stockés le fragment C; et ses R-1 fragments répliqués RCk. Ainsi, la probabilité de disponibilité d'un fragment C; de donnée D est égale à: 1- fi 1..R Il s'ensuit que la probabilité de disponibilité de la donnée D est égale à: n(1_ H fi) 2=1.J14 c(j) = 1..R C'est donc cette valeur qui est calculée, à chaque étape principale de la minimisation de la fonction objectif précitée, et comparée à la valeur seuil Aexpect. 10 Seuls sont retenus au cours de l'algorithme de minimisation les ensembles de centres de données DC; pour lesquels la probabilité précitée de disponibilité de la donnée D est supérieure ou égale au seuil précité Aexpect. Par ailleurs, cette optimisation, est réalisée en sorte qu'un fragment répliqué RCk d'un fragment C1 de la donnée D ne soit pas stocké sur le même centre de données DC; 15 sur lequel sera stocké le fragment C1 ou l'un quelconque des autres fragments répliqués RCk. Ainsi, pour un fragment répliqué RCk d'un fragment C1 de la donnée D, le module d'optimisation détermine un centre de données DC; susceptible d'être utilisé pour stocker ce fragment répliqué RCk, différent de tous les centres de données DC; déterminés pour 20 stocker les autres fragments répliqués RCk du fragment C1 en question, et différent du centre de données DC; déterminé pour stocker le fragment C1 en question. De préférence, on, prévoit le chiffrement, par un module de chiffrement 6, de la donnée D en une donnée chiffrée Dcrypt , en sorte que les fragments C1 créés par le module de fragmentation 4 correspondent à des fragments de donnée chiffrée. 25 Il est préférable d'utiliser un algorithme qui permet de chiffrer et de déchiffrer des données D fragmentées en fragments C1, RCk multiples, en un temps court. On peut par exemple utiliser un algorithme de chiffrement symétrique, de type AES (« Advanced Encryption Standard ») pour un chiffrement efficace (voir par exemple : « ESPRESSO: An Encryption as a Service for Cloud Storage Systems, », S. Kang, B. Veeravalli, and K. 30 Aung, Monitoring and Securing Virtualized Networks and Services, pp. 15-28, 2014). On génère ainsi des fragments de la donnée D chiffrée, que l'on appelle fragments chiffrés, et on facilite donc les requêtes élémentaires de stockage (« put ») et de5 récupération (« get ») grâce à la petite taille des fragments, tout en assurant la confidentialité des données stockées dans l'environnement de stockage distribué. Alternativement, il est possible d'utiliser un tel algorithme de chiffrement pour chiffrer la donnée D après la fragmentation en fragments Ci, RCk multiples. Autrement dit, il est possible d'utiliser l'algorithme de chiffrement pour chiffrer individuellement chaque fragment Ci, RCk. Cette solution présente néanmoins l'inconvénient de nécessité la gestion d'autant de clés de chiffrement que de fragments C1, RCk, sachant que le nombre total M x R de fragment C1, RCk pour une donnée D peut être important (par exemple : 100 fragments C1 répliqués chacun trois fois donneront 300 fragments répliqués RCk, donc un total de 400 fragments C1, RCk, et ainsi de 400 clés à gérer). Le seuil Aexpect utilisé dans la minimisation sous contrainte de la fonction objectif présentée plus haut, pour déterminer les centres de données DC; sur lesquels doivent être stockés les fragments répliqués RCk, peut aussi être utilisé pour déterminer un nombre M raisonnable de fragments Cj à générer lors de l'étape de fragmentation par le module de fragmentation 4. Selon l'invention, on choisira M tel que : ln(A expect) M > - f4y) avec R correspondant au nombre de répliques du fragment C; (y compris le fragment initial C; lui-même), et f'yR correspondant à la probabilité d'indisponibilité moyenne des centres de données DCi, élevée à la puissance R. Le système de l'invention permet également, selon le procédé inverse la récupération des données D depuis l'environnement de stockage distribué pour la restituer à l'utilisateur, tel que représenté schématiquement à la figure 2. Les différents fragments de données Cj (et/ou les éventuels fragments répliqués RCk), sont récupérés par les moyens de préparation 2, via l'interface de transmission 3, à partir des différents centre de données DC; dans lesquels ils sont respectivement stockés. Les méta-données 10 sont alors utilisées pour trier et réorganiser les fragments C1, RCk et reconstituer la donnée D. Ainsi, ces fragments C1, RCk sont triés et réorganisés, par un module de tri 11 et de reconstitution 8, pour reconstituer une donnée chiffrée Dcrypt. Il serait possible de se passer de l'utilisation des méta-données 10, mais cela nécessiterait de relancer, à chaque requête de récupération de données, le processus d'optimisation du placement des fragments dans les différents centre de données, afin de retracer ce placement optimisé. La donnée chiffrée Dcrypt ainsi reconstituée est déchiffrée par un module de déchiffrement 9, pour restitution de la donnée D à l'utilisateur via l'interface 1 qui agit donc également en tant qu'interface de sortie vers l'utilisateur. On rappelle que les représentations présentées dans les figures 1 et 2 sont des représentations schématiques. Pour simplifier, comme précisé ci-dessus, on a représenté une seule interface 1 pour l'entrée et la sortie des données D respectivement depuis et vers l'utilisateur. Toutefois, deux interfaces distinctes peuvent être utilisées. Egalement pour simplifie, on a représenté une seule interface 3 pour la transmission et la récupération des fragments CJ, RCk de donnée respectivement vers et depuis l'environnement de stockage distribué et ses centres de données DCI. Toutefois, deux interfaces distinctes peuvent être utilisées. Par ailleurs, les modules 11, 8, 9 utilisés pour la récupération des fragments de données Ci, RCk et la restitution de la donnée D sont intégrés aux moyens de préparation 2, qui font eux-mêmes partie de moyens de traitement du système de l'invention. Cependant, ces modules 7, 8, 9 pourraient être intégrés à des moyens distincts des moyens de préparation 2. En outre chacun des modules effectuant un traitement symétrique dans le cadre des opérations de « put » et de « get », tels que par exemple le module de chiffrement 6 et de déchiffrement 9, peuvent être implémentés au sein d'un même module. La présente description est donnée à titre d'exemple et n'est pas limitative de l'invention.25 REVENDICATIONS1.- Système informatisé de gestion du stockage de données (D) dans un environnement de stockage distribué comprenant N centres de données (DCI), avec N 2, chacun apte à stocker des données (D) sur un ou plusieurs serveurs de stockage (S) et associé à une ou plusieurs caractéristiques (ui, fi), telles que le coût de stockage (ui) et la probabilité d'indisponibilité (fi), le système comprenant une interface d'entrée (1) apte à permettre l'entrée d'une donnée (D) à stocker, des moyens de détermination (2) aptes à déterminer au moins un centre de données (DCI) susceptible d'être utilisé pour stocker une donnée (D) déterminée, parmi les centres de données (DCI) disponibles dans l'environnement de stockage distribué, et une interface de transmission (3) apte à transmettre une donnée (D) déterminée pour stockage dans au moins un centre de données (DCI) déterminé, caractérisé en ce que les moyens de détermination (2) comprennent un module de fragmentation (4) d'une donnée (D) déterminée à stocker, apte à fragmenter ladite donnée (D) déterminée en M fragments (C1), avec M k 2, et un module d'optimisation (5) apte à déterminer, pour chaque fragment (C1), un centre de données (DCI) susceptible d'être utilisé pour stocker ledit fragment (C1), parmi les centres de données (DCI) disponibles dans l'environnement de stockage distribué, en sorte de minimiser une fonction objectif dépendant des valeurs d'une ou plusieurs des caractéristiques (ui, fi) de chacun des centres de données (DCI) déterminés pour stocker respectivement chacun des fragments (C1) de la donnée (D) déterminée. 2.- Système selon la revendication 1, chacun des centre de données (DCI) étant associé au moins à un coût de stockage (ui) et une probabilité d'indisponibilité (fi), caractérisé en ce que le module d'optimisation (5) est apte à déterminer, pour chaque fragment (C1), un centre de données (DCI) susceptible d'être utilisé pour stocker ledit fragment (C1), parmi les centres de données (DCI) disponibles dans l'environnement de stockage distribué, en sorte de minimiser la fonction objectif suivante : 1 - fi 1,1.m avec - u1: coût du stockage par unité de poids de donnée dans le centre de données (DCI), - v; : poids du fragment (C1) en unité de poids de donnée,fi : probabilité d'indisponibilité d'une donnée stockée dans le centre de données (DCI), xi,1 est égal à 1 si le centre de données (DCI) est sélectionné pour stocker le fragment (C;), et 0 sinon. 3.- Système selon l'une quelconque des revendications 1 et 2, caractérisé en ce que le module d'optimisation (5) est apte à déterminer, pour un fragment (C;) d'une donnée (D) déterminée, un centre de données (DCI) susceptible d'être utilisé pour stocker ledit fragment (C;), différent de tous les centres de données (DCI) déterminés pour stocker les autres fragments (C;) de la donnée (D) déterminée. 4. Système selon l'une quelconque des revendications 1 à 3, caractérisé en ce que les moyens de détermination (2) comprennent un module de réplication apte à répliquer chacun des M fragments (C;) d'une donnée (D) déterminée en R-1 fragments répliqués (RCk), avec R k 2, de préférence R k 4, et en ce que le module d'optimisation (5) est apte à déterminer, pour chacun des M x (R-1) fragments répliqués (RCk), un centre de données (DCI) susceptible d'être utilisé pour stocker ledit fragment répliqué (RCk), parmi les centres de données (DCI) disponibles dans l'environnement de stockage distribué, en sorte de minimiser une fonction objectif dépendant des valeurs d'une ou plusieurs des caractéristiques (ui, fi) de chacun des centres de données (DCI) déterminés pour stocker respectivement chacun des M x (R-1) fragments répliqués (RCk) de chacun des M fragments (C;) de la donnée (D) déterminée. 5.- Système selon la revendication 4, chacun des centre de données (DCI) étant associé au moins à un coût de stockage (ui) et une probabilité d'indisponibilité (fi), caractérisé en ce que le module d'optimisation (5) est apte à déterminer, pour chaque fragment répliqué (RCk), un centre de données (DCI) susceptible d'être utilisé pour stocker ledit fragment répliqué (RCk), parmi les centres de données (DCI) disponibles dans l'environnement de stockage distribué, en sorte de minimiser la fonction objectif suivante : k=1.M.(.2-1) avec - u1: coût du stockage par unité de poids de donnée dans le centre de données (DCI),vk : poids du fragment répliqué (RCk) en unité de poids de donnée, xi,k est égal à 1 si le centre de données (DCI) est sélectionné pour stocker le fragment répliqué (RCk), et 0 sinon, et en sorte que la probabilité de disponibilité de la donnée (D) déterminée, dépendant de la probabilité d'indisponibilité (fi) de chacun des centres de données (DCI) sélectionnés, soit supérieure ou égale à un seuil (Aekp't) déterminé. 6.- Système selon l'une quelconque des revendications 4 et 5, caractérisé en ce que le module d'optimisation (5) est apte à déterminer, pour un fragment répliqué (RCk) d'un fragment (C;) donné, un centre de données (DCI) susceptible d'être utilisé pour stocker ledit fragment répliqué (RCk), différent de tous les centres de données (DCI) déterminés pour stocker les autres fragments répliqués (RCk) du fragment (C;) donné et différent du centre de données (DCI) déterminé pour stocker le fragment (C;) donné. 7.- Système selon l'une quelconque des revendications 1 à 6, caractérisé en ce que les moyens de détermination (2) comprennent un module de chiffrement (6) apte à chiffrer une donnée (D). 8.- Environnement de stockage informatique distribué comprenant N centres de données (DCI), avec N k 2, chacun apte à stocker des données (D) sur un ou plusieurs serveurs de stockage (S) et associé à une ou plusieurs caractéristiques (ui, fi), telles que le coût de stockage (ui) et la probabilité d'indisponibilité (fi), caractérisé en ce qu'il comprend un système informatisé de gestion du stockage de données (D) selon l'une quelconque des revendications précédentes. 9.- Procédé informatisé de gestion du stockage de données (D) dans un environnement de stockage distribué comprenant N centres de données (DCI), avec N 2, chacun apte à stocker des données (D) sur un ou plusieurs serveurs de stockage (S) et associé à une ou plusieurs caractéristiques (ui, fi), telles que le coût de stockage (ui) et la probabilité d'indisponibilité (fi), le procédé comprenant une étape d'entrée, au moyen d'une interface d'entrée (1), d'une donnée (D) à stocker, une étape de détermination, par des moyens de détermination (2), d'au moins un centre de données (DCI) susceptible d'être utilisé pour stocker la donnée (D) déterminée, parmi les centres de données (DCI) disponibles dans l'environnement de stockage distribué, et une étape de transmission, par une interface de transmission (3), de la donnée (D) déterminée pour stockage dans au moins un centre de données (DCI) déterminé,caractérisé en ce que l'étape de détermination comprend une étape de fragmentation, par un module de fragmentation (4), de la donnée (D) déterminée à stocker, au cours de laquelle ladite donnée (D) déterminée est fragmentée en M fragments (C;), avec M k 2, et une étape d'optimisation, par un module d'optimisation (5), au cours de laquelle est déterminé, pour chaque fragment (C;), un centre de données (DCI) susceptible d'être utilisé pour stocker ledit fragment (C;), parmi les centres de données (DCI) disponibles dans l'environnement de stockage distribué, en sorte de minimiser une fonction objectif dépendant des valeurs d'une ou plusieurs des caractéristiques (ui, fi) de chacun des centres de données (DCI) déterminés pour stocker respectivement chacun des fragments (C;) de la donnée (D) déterminée. 10.- Procédé selon la revendication 9, chacun des centre de données (DCI) étant associé au moins à un coût de stockage (ui) et une probabilité d'indisponibilité (fi), caractérisé en ce que l'étape d'optimisation détermine, pour chaque fragment (C;), un centre de données (DCI) susceptible d'être utilisé pour stocker ledit fragment (C;), parmi les centres de données (DCI) disponibles dans l'environnement de stockage distribué, en sorte de minimiser la fonction objectif suivante : %Ji. VI 1 - fi avec u1: coût du stockage par unité de poids de donnée dans le centre de données (DCI), v; : poids du fragment (C;) en unité de poids de donnée, fi : probabilité d'indisponibilité d'une donnée stockée dans le centre de données (DCI), xi,1 est égal à 1 si le centre de données (DCI) est sélectionné pour stocker le fragment (C;), et 0 sinon. 11.- Procédé selon l'une quelconque des revendications 9 et 10, caractérisé en ce que l'étape d'optimisation détermine, pour un fragment (C;) d'une donnée (D) déterminée, un centre de données (DCI) susceptible d'être utilisé pour stocker ledit fragment (C;), différent de tous les centres de données (DCI) déterminés pour stocker les autres fragments (C;) de la donnée (D) déterminée. 12. Procédé selon l'une quelconque des revendications 9 à 11, caractérisé en ce que l'étape de détermination comprend une étape de réplication, par un module de réplication, au cours de laquelle chacun des M fragments (C;) de la donnée (D) déterminée est répliqué en R-1 fragments répliqués (RCk), avec R k 2, de préférence R 4, et en ce que l'étape d'optimisation détermine, pour chacun des M x (R-1) fragments répliqués (RCk), un centre de données (DCI) susceptible d'être utilisé pour stocker ledit fragment répliqué (RCk), parmi les centres de données (DCI) disponibles dans l'environnement de stockage distribué, en sorte de minimiser une fonction objectif dépendant des valeurs d'une ou plusieurs des caractéristiques (ui, fi) de chacun des centres de données (DCI) déterminés pour stocker respectivement chacun des M x (R-1) fragments répliqués (RCk) de chacun des M fragments (C;) de la donnée (D) déterminée. 13.- Procédé selon la revendication 12, chacun des centre de données (DCI) étant associé au moins à un coût de stockage (ui) et une probabilité d'indisponibilité (fi), caractérisé en ce que l'étape d'optimisation détermine, pour chaque fragment répliqué (RCk), un centre de données (DCI) susceptible d'être utilisé pour stocker ledit fragment répliqué (RCk), parmi les centres de données (DCI) disponibles dans l'environnement de stockage distribué, en sorte de minimiser la fonction objectif suivante : à= 1...M.(.2 -1) avec u1: coût du stockage par unité de poids de donnée dans le centre de données (DCI), vk : poids du fragment répliqué (RCk) en unité de poids de donnée, xi,k est égal à 1 si le centre de données (DCI) est sélectionné pour stocker le fragment répliqué (RCk), et 0 sinon, et en sorte que la probabilité de disponibilité de la donnée (D) déterminée, dépendant de la probabilité d'indisponibilité (fi) de chacun des centres de données (DCI) sélectionnés, soit supérieure ou égale à un seuil (Aexpect) déterminé. 14.- Procédé selon l'une quelconque des revendications 12 et 13, caractérisé en ce que l'étape d'optimisation détermine, pour un fragment répliqué (RCk) d'un fragment (C;) donné, un centre de données (DCI) susceptible d'être utilisé pour stocker ledit fragment répliqué (RCk), différent de tous les centres de données (DCI) déterminés pourstocker les autres fragments répliqués (RCk) du fragment (C;) donné et différent du centre de données (DCI) déterminé pour stocker le fragment (C;) donné. 15.- Procédé selon l'une quelconque des revendications 9 à 14, caractérisé en ce que l'étape de détermination comprend une étape de chiffrement, par un module de chiffrement (6) de la donnée (D) déterminée.