Brevet FR2938355A1 — publié le 20100514

La présente invention concerne un procédé de stockage virtualisé d'un ensemble de données numériques dans un système informatique comprenant plusieurs ressources matérielles de stockage interconnectées en réseau. Plus précisément, l'invention concerne un procédé de stockage virtualisé comportant la génération d'un ensemble d'espaces virtuels de stockage, dans lequel chaque espace virtuel de stockage est associé à une partie des ressources matérielles de stockage et à des paramètres caractéristiques liés à cette partie des ressources matérielles de stockage. Un tel procédé est par exemple décrit dans la demande de brevet internationale publiée sous le numéro WO 2006/077215. Dans ce document, lorsqu'un ensemble de données doit être stocké dans le réseau considéré de ressources matérielles de stockage, un module d'allocation de disque virtuel apte à réserver un espace virtuel commence par sélectionner une partie des ressources en fonction de leurs performances comparées avec des contraintes formulées dans une requête de stockage, puis crée un disque virtuel dédié à l'ensemble de données et associé à cette partie des ressources sélectionnée. Selon ce procédé, on génère autant de disques virtuels que d'ensembles de données à stocker et la répartition des données d'un ensemble dans les ressources matérielles de stockage est gérée par le disque virtuel correspondant, en fonction de ce qui lui a été alloué comme ressources par le module d'allocation. Ce procédé fonctionne bien sur un réseau statique, mais présente une flexibilité limitée lorsque le réseau évolue par l'ajout, la suppression, la défaillance ou le remplacement de ressources matérielles. Par exemple, en cas de panne d'une ressource matérielle de stockage, les données stockées par cette ressource doivent être déplacées et les disques virtuels associés à ces données, pouvant provenir de plusieurs ensembles de données, doivent être redéfinis. Il peut ainsi être souhaité de prévoir un procédé de stockage virtualisé qui permette de s'affranchir de ces problèmes et contraintes. L'invention a donc pour objet un procédé de stockage virtualisé d'un ensemble de données numériques dans un système informatique comprenant plusieurs ressources matérielles de stockage interconnectées en réseau, comportant la génération d'un ensemble d'espaces virtuels de stockage de premier niveau, dans lequel chaque espace virtuel de stockage de premier niveau est associé à une partie des ressources matérielles de stockage et à des paramètres caractéristiques liés à cette partie des ressources matérielles de stockage, caractérisé en ce qu'il comporte les étapes suivantes : création d'un espace virtuel de stockage de second niveau associé à une classe de service paramétrée en fonction de contraintes de stockage de l'ensemble de données et affectation de cet espace virtuel de stockage de second niveau à l'ensemble de données, - sélection d'au moins un espace virtuel de stockage de premier niveau par comparaison de la classe de service de l'espace virtuel de stockage de second niveau avec les paramètres caractéristiques de chaque espace virtuel de stockage de premier niveau, et - stockage de l'ensemble de données dans les ressources matérielles associées à l'espace virtuel de stockage de premier niveau sélectionné. Ainsi, grâce à la présence de deux niveaux d'espaces virtuels de stockage, il est possible de rendre le stockage virtuel de l'ensemble de données indépendant de la gestion des ressources matérielles de stockage. En effet, les ressources matérielles sont associées à des espaces virtuels de premier niveau qui sont donc concernés par les ajouts, suppressions, défaillances ou remplacements de ressources. En revanche, les espaces virtuels affectés aux ensembles de données à stocker ou stockés sont d'un deuxième niveau et leurs ressources sont les espaces virtuels du premier niveau. Ils n'ont donc pas de visibilité directe sur les ressources matérielles de stockage, ce qui rend le procédé plus flexible en cas d'évolution du réseau comprenant ces ressources. De façon optionnelle, les espaces virtuels de stockage de premier niveau sont conçus pour stocker des paquets de données de taille commune prédéterminée, et il est prévu une étape de transformation de l'ensemble de données en un ou plusieurs paquets de cette taille commune prédéterminée en fonction de la taille globale de l'ensemble de données. Cela permet de décorréler encore un peu plus les espaces virtuels de stockage de premier niveau, et donc les ressources, de la nature, et de la taille, de l'ensemble de données à stocker. De façon optionnelle également, la transformation de l'ensemble de données en un ou plusieurs paquets comporte les étapes suivantes : - découpage de l'ensemble de données en plusieurs sous-ensembles, - compression et/ou cryptage des données de chaque sous-ensemble, et ajout d'un en-tête à chaque sous-ensemble comprimé et crypté pour former un paquet de ladite taille commune prédéterminée. De façon optionnelle également, l'étape de stockage comportant une répartition de l'ensemble de données dans les ressources matérielles associées à l'espace virtuel de stockage de premier niveau sélectionné, le procédé de stockage virtualisé selon l'invention comporte en outre une étape de mémorisation de cette répartition en relation avec l'espace virtuel de stockage de second niveau créé. De façon optionnelle également, l'ensemble de données numériques est un fichier numérique ou un flux de données numériques. De façon optionnelle également, chaque espace virtuel de stockage de premier niveau est associé à une partie des ressources matérielles de stockage utilisant une unique technologie de stockage choisie parmi les éléments de l'ensemble constitué d'une technologie de stockage par disque dur et d'une technologie de stockage par bande magnétique. L'invention a également pour objet un programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution des étapes d'un procédé de stockage virtualisé tel que défini précédemment lorsque ledit programme est exécuté sur un ordinateur. L'invention a également pour objet un système de stockage virtualisé d'un ensemble de données numériques, comportant plusieurs ressources matérielles de stockage interconnectées en réseau, des moyens de génération d'un ensemble d'espaces virtuels de stockage de premier niveau dans lequel chaque espace virtuel de stockage de premier niveau est associé à une partie des ressources matérielles de stockage et à des paramètres caractéristiques liés à cette partie des ressources matérielles de stockage, caractérisé en ce qu'il comporte en outre : - des moyens de création d'un espace virtuel de stockage de second niveau associé à une classe de service paramétrée en fonction de contraintes de stockage de l'ensemble de données et d'affectation de cet espace virtuel de stockage de second niveau à l'ensemble de données, des moyens de sélection d'au moins un espace virtuel de stockage de premier niveau par comparaison de la classe de service de l'espace virtuel de stockage de second niveau avec les paramètres caractéristiques de chaque espace virtuel de stockage de premier niveau, et des moyens de stockage de l'ensemble de données dans les ressources matérielles associées à l'espace virtuel de stockage de premier niveau sélectionné. De façon optionnelle, un système de stockage virtualisé selon l'invention comprend plusieurs serveurs de stockage interconnectés en réseau, chaque serveur de stockage étant en outre connecté localement à une partie des ressources matérielles de stockage et comprenant lesdits moyens de génération d'un ensemble d'espaces virtuels de stockage de premier niveau, lesdits moyens de création d'un espace virtuel de stockage de second niveau, lesdits moyens de sélection et lesdits moyens de stockage. Dans ce cas, le service de stockage virtualisé peut être assuré à partir de plusieurs serveurs d'un système distribué. De façon optionnelle également, les espaces virtuels de stockage de premier et second niveaux étant conservés en mémoire sous forme de données de description réparties entre les serveurs de stockage et répliquées sur plusieurs serveurs pour au moins une partie d'entre elles, il comporte des moyens de synchronisation, entre les serveurs de stockage, d'actions agissant sur ces données de description. L'invention sera mieux comprise à l'aide de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés dans lesquels : la figure 1 représente schématiquement la structure générale d'un exemple de système informatique de stockage de données distribué en plusieurs serveurs interconnectés en réseau, - la figure 2 illustre un exemple de répartition de données de description dans le système informatique de stockage de la figure 1, la figure 3 représente schématiquement la structure d'un ensemble d'espaces virtuels de stockage à deux niveaux générés pour l'application d'un procédé de stockage virtualisé selon l'invention, et la figure 4 illustre les étapes successives d'un procédé de stockage virtualisé selon un mode de réalisation de l'invention. Le système informatique 10 représenté sur la figure 1 comporte plusieurs serveurs 121, 122, 123, 124 et 125 munis de ressources matérielles de stockage. Ces serveurs sont répartis sur plusieurs domaines ou sites géographiques. Chaque serveur est de type classique et ne sera pas détaillé. Ses ressources de stockage sont par exemple connectées localement sous forme de périphériques ou de disques durs internes. Dans un exemple d'architecture distribuée de gestion de service, au moins un module logiciel et matériel spécifique 141, 142, 143, 144 et 145 de gestion d'un service de stockage de données est installé sur chaque serveur 121, 122, 123, 124 et 125. Cinq serveurs de stockage et deux domaines sont représentés sur la figure 1 à titre purement illustratif mais toute autre structure de système informatique à ressources matérielles de stockage interconnectées en réseau peut convenir pour la mise en oeuvre d'un procédé de stockage virtualisé selon l'invention. En particulier, bien que l'exemple illustré sur cette figure porte sur un système de stockage distribué entre plusieurs serveurs de stockage tous a priori aptes à gérer le service de stockage de données, celui-ci pourrait aussi, de façon alternative et dans un autre exemple d'architecture, être géré de façon centralisée par un unique serveur ayant accès à toutes les ressources matérielles de stockage localement ou à distance. Par souci de simplification également, il est représenté un module logiciel et matériel par serveur, de sorte que les modules et leurs serveurs respectifs pourront être confondus dans la suite de la description, sans pour autant devoir être confondus dans une mise en oeuvre plus générale de l'invention. Le module logiciel et matériel 141 du serveur de stockage 121 est détaillé sur la figure 1. Il comporte une première couche logicielle 161 constituée d'un système d'exploitation du serveur 121. Il comporte une deuxième couche logicielle 181 de gestion de données de description du service de stockage de données fourni par le système informatique 10. Il comporte une troisième couche logicielle et matérielle 201 remplissant au moins deux fonctions : une première fonction de stockage, sur un disque dur interne du serveur 121, des données de description du service de stockage et une deuxième fonction de mémoire cache, sur ce disque dur également, de données stockées sur des ressources matérielles de stockage connectées au serveur 121. Enfin, il comporte une quatrième couche logicielle et matérielle 221, 241 d'entrepôts de données de premier niveau, comportant au moins un entrepôt de données sur disque dur 221 et/ou au moins un entrepôt de données sur bandes magnétiques 241. Pour la suite de la description, un entrepôt de données de premier niveau désigne un espace virtuel de stockage de données constitué d'une ou plusieurs partitions d'un ou plusieurs disques durs, ou d'un ou plusieurs dispositifs de stockage sur bandes magnétiques, parmi les ressources matérielles de stockage du serveur auquel il est associé. Les modules logiciels et matériels 142, 143, 144 et 145 des serveurs 122, 123, 124 et 125 ne seront pas détaillés parce qu'ils sont similaires au module logiciel et matériel 141. Dans l'exemple illustré par la figure 1, les serveurs 121, 122 et 123 sont interconnectés entre eux par un premier réseau 26 de type LAN pour créer un premier sous-ensemble ou domaine 28. Ce premier domaine 28 correspond par exemple à une organisation géographique localisée, telle qu'un site géographique, un bâtiment ou une salle informatique. Les serveurs 124 et 125 sont interconnectés entre eux par un second réseau 30 de type LAN pour créer un second sous-ensemble ou domaine 32. Ce second domaine 28 correspond également par exemple à une autre organisation géographique localisée, telle qu'un site géographique, un bâtiment ou une salle informatique. Ces deux domaines sont reliés entre eux par un réseau de type WAN 34, tel que le réseau Internet. Ainsi ce système informatique en grappe de serveurs répartis sur plusieurs sites géographiques permet d'envisager un stockage de données d'autant plus sûr que celles-ci peuvent être répliquées sur des modules logiciels et matériels situés sur des sites géographiques différents. Le service de stockage fourni par ce système informatique 10, comprenant notamment les espaces virtuels de stockage générés pour remplir ce service, et les données effectivement stockées sont avantageusement complètement définis et décrits par un ensemble de données de description qui vont être présentées dans leurs principes généraux en référence à la figure 2. De la sorte, la gestion de ces données de description par la couche logicielle 18; de l'un quelconque des modules logiciels et matériels 14; assure la gestion du service de stockage du système informatique 10. Les données de description sont par exemple regroupées en plusieurs ensembles structurés selon leur nature et éventuellement liés entre eux. Un ensemble structuré, qui sera appelé � catalogue � dans la suite de la description, peut se présenter sous la forme d'une arborescence de répertoires contenant eux- mêmes d'autres répertoires et/ou des fichiers de données de description. La représentation des données de description selon une arborescence de répertoires et de fichiers comporte l'avantage d'être simple et donc économique à concevoir et à gérer. De plus cette représentation est souvent suffisante pour le service visé. II est aussi possible, pour des applications plus complexes, de représenter et gérer les données de description en bases de données relationnelles. Un catalogue de données de description peut être global, c'est-à-dire concerner des données de description utiles à l'ensemble du système informatique 10, ou bien local, c'est-à-dire concerner des données de description propres à un ou plusieurs modules logiciels et matériels 141, 142, 143, 144 ou 145 de gestion du service. Avantageusement, chaque catalogue est répliqué sur plusieurs serveurs ou modules logiciels et matériels. Lorsqu'il est global, il est de préférence répliqué sur l'ensemble des modules logiciels et matériels. Lorsqu'il est local, il est répliqué sur un nombre prédéterminé de modules logiciels et matériels dont au moins celui ou ceux qu'il concerne. A titre d'exemple, la figure 2 représente une répartition possible de catalogues de données de description entre les cinq modules logiciels et matériels 141, 142, 143, 144 et 145. Un premier catalogue CA global est répliqué sur les cinq modules logiciels et matériels 141, 142, 143, 144 et 145. Il comporte par exemple des données décrivant l'infrastructure générale et le fonctionnement général du système informatique 10 pour la fourniture du service de stockage, notamment l'arborescence des domaines et des modules logiciels et matériels du système informatique 10. Il peut aussi comporter des données décrivant des utilisateurs potentiels du service de stockage de données et leurs droits d'accès, par exemple des utilisateurs préalablement inscrits, ainsi que les zones de partage, la structure ou le mode de stockage et la réplication de données stockées. D'autres catalogues sont locaux, comme par exemple le catalogue CB1, contenant des données de description propres au module logiciel et matériel 141 telles que l'infrastructure locale et le fonctionnement local du serveur 121 et de ses ressources matérielles de stockage, ou l'organisation en entrepôts de premier niveau du module logiciel et matériel 141. Ce catalogue est répliqué en trois exemplaires, dont un sur le module logiciel et matériel 141. Pour améliorer la sécurité et la robustesse du système informatique 10, le catalogue CB1 peut être répliqué dans plusieurs domaines différents. Ici, le système complet comportant deux domaines 28 et 32, le catalogue CBI est par exemple sauvegardé sur les modules 141 et 142 du domaine 28 et sur le module 145 du domaine 32. De même, les modules logiciels et matériels 142, 143, 144 et 145 sont associés à des catalogues locaux respectifs CB2, CB3, CB4 et CB5. Par exemple, le catalogue CB2 est sauvegardé sur les modules 142 et 143 du domaine 28 et sur le module 144 du domaine 32 ; le catalogue CB3 est sauvegardé sur le module 143 du domaine 28 et sur les modules 144 et 145 du domaine 32 ; le catalogue CB4 est sauvegardé sur le module 144 du domaine 32 et sur les modules 141 et 143 du domaine 28 ; et le catalogue °B5 est sauvegardé sur le module 145 du domaine 32 et sur les modules 141 et 142 du domaine 28. La liste précitée de catalogues de données de description n'est pas exhaustive et n'est fournie qu'à titre d'exemple, de même que le nombre de réplications de chaque catalogue. Par cette réplication des catalogues, ici sur au moins trois modules logiciels et matériels pour chaque catalogue, on remarque que même si un module logiciel et matériel, voire deux, est (sont) hors d'état de fonctionnement, le système dans son ensemble est capable d'accéder à l'ensemble des données de description de sorte que la gestion du service de stockage de données n'est pas nécessairement interrompue. En pratique, cette continuité de service maintenue est efficace à partir du moment où une synchronisation des catalogues est assurée. Pour cela, la couche logicielle de chaque module logiciel et matériel du système informatique 10 comporte par exemple - des moyens d'émission d'un message de synchronisation, identifiant une action agissant sur une donnée de description, vers l'ensemble des autres modules logiciels du système informatique comportant une réplication de cette donnée de description, suite à l'exécution de cette action sur ce module logiciel, et - des moyens d'exécution d'une action agissant sur une donnée de description et identifiée dans un message de synchronisation, de manière à agir sur la réplication de la donnée de description située sur ce module logiciel, en réponse à la réception d'un message de synchronisation provenant d'un autre module logiciel. On notera en revanche qu'une telle synchronisation, ainsi que la réplication des catalogues précédemment décrite, ne sont pas nécessaires dans le cas où la gestion du service de stockage est centralisée sur un seul serveur. Parmi les données de description pouvant être réparties en catalogues de données, conformément à l'invention, des entrepôts de données de premier et second niveaux sont définis. Comme indiqué précédemment, les entrepôts de premier niveau sont définis dans la quatrième couche logicielle et matérielle de chaque serveur de stockage 121, 122, 123, 124 et 125. Ils sont chacun associés à une partie des ressources matérielles de stockage du système informatique 10. Plus précisément, ils sont chacun associés à au moins une partie des ressources matérielles de stockage du serveur de stockage sur lequel ils sont générés. En particulier, sur la figure 1, au moins un premier entrepôt de stockage de premier niveau est par exemple défini dans la partie logicielle de la quatrième couche logicielle et matérielle 221 du serveur 121, en association avec des ressources matérielles de stockage constituées d'un ou plusieurs disques dur externes. Au moins un second entrepôt de stockage de premier niveau est par exemple défini dans la partie logicielle de la quatrième couche logicielle et matérielle 241 du serveur 121, en association avec des ressources matérielles de stockage constituées d'un ou plusieurs dispositifs de stockage sur bandes magnétiques. Chaque entrepôt de premier niveau est en outre associé à une classe de service reprenant des paramètres caractéristiques liés aux ressources matérielles de stockage de cet entrepôt. De préférence, chaque entrepôt de premier niveau est à cet effet associé à des ressources matérielles utilisant une unique technologie de stockage, c'est-à-dire en pratique, soit une technologie de stockage par disque dur, soit une technologie de stockage par bande magnétique. Les paramètres caractéristiques d'un entrepôt de premier niveau comportent donc par exemple le choix d'une technologie de stockage, des paramètres de temps d'accès aux données stockées, une capacité de stockage, l'accessibilité de ses différentes ressources matérielles, un coût à l'octet d'un espace élémentaire de stockage, une localisation des ressources matérielles, etc. En d'autres termes, les paramètres caractéristiques d'un entrepôt de premier niveau comportent des paramètres de performance (par exemple le temps d'accès aux données), mais aussi plus généralement d'autres caractéristiques (par exemple la localisation, la technologie, le coût à l'octet) permettant une meilleure prise en compte de contraintes et/ou fonctionnalités de stockage. Il apparaît clairement qu'une technologie de stockage a un impact sur la classe de service d'un entrepôt de premier niveau : un entrepôt utilisant une technologie de stockage par bande magnétique a ainsi des caractéristiques spécifiques, telles que la possibilité de déplacer facilement des données stockées hors site, la facilité d'augmenter sa capacité, de bonnes performances de stockage, mais un accès aux données plus long. Par ailleurs, par application des propriétés des catalogues énoncées précédemment, certains entrepôts de premier niveau sont locaux, d'autres sont globaux. Par exemple, il peut être établi qu'un entrepôt local est basé sur un serveur en particulier (celui qui est muni des ressources matérielles de stockage auxquelles cet entrepôt est associé) et n'est accessible qu'à partir de ce serveur. Cela peut être par exemple convenu à partir du moment où une certaine technologie est utilisée, telle que la technologie de stockage sur disque dur. Il peut être établi au contraire qu'un entrepôt global est accessible depuis plusieurs serveurs de stockage du système informatique 10. Dans ce cas, un tel entrepôt de premier niveau est représenté sur plusieurs serveurs et la classe de service à laquelle il est associé est la même quel que soit le serveur d'accès. A partir du moment où un dispositif de stockage par bandes magnétiques est accessible depuis n'importe quel serveur, pour peu qu'il y ait un lecteur compatible, on peut considérer comme global tout entrepôt utilisant cette technologie de stockage. De façon optionnelle, les entrepôts de premier niveau peuvent être conçus pour stocker des paquets de données de taille commune, selon une granularité de stockage prédéterminée. Ces paquets de données peuvent en outre être optimisés et sécurisés en étant comprimés et cryptés selon un niveau de service requis. Un entrepôt de premier niveau, quel qu'il soit, peut alors être vu comme contenant plusieurs conteneurs de taille fixe aptes à recevoir chacun un paquet de données. En conclusion, l'ensemble des entrepôts de premier niveau représente la capacité de stockage offerte par le système informatique 10, cette capacité pouvant évoluer au gré des ajouts, suppressions, remplacements, modifications des ressources matérielles de stockage. Conformément à l'invention, des entrepôts de second niveau sont définis en tant qu'espaces virtuels de stockage d'ensembles de données. Chaque entrepôt de second niveau est ainsi affecté à un ensemble de données particulier, que cet ensemble soit un fichier numérique ou un flux de données numériques à stocker. Il est par exemple dynamiquement créé, lors de la réception d'une requête de stockage de cet ensemble de données. Par conséquent, un ensemble d'entrepôts de second niveau représente à chaque instant une demande en stockage d'ensembles de donnée s'appliquant au système informatique 10. Les entrepôts de second niveau sont par exemple définis dans la deuxième couche logicielle 18; de gestion de données de description des serveurs 12;. De même que les entrepôts de premier niveau, ils peuvent être définis de façon locale ou globale. En revanche, ils ne sont associés à aucune ressource matérielle de stockage du système informatique 10. Leurs ressources potentielles sont les entrepôts de premier niveau qu'ils sont aptes à sélectionner en fonction de leurs paramètres caractéristiques. Chaque entrepôt de second niveau est en outre associé à une classe de service définie en fonction de contraintes et fonctionnalités de stockage relatives à l'ensemble de données correspondant. Par exemple ces contraintes et fonctionnalités de stockage peuvent être en partie formulées dans une requête de stockage de l'ensemble de données correspondant. Les contraintes sont plus particulièrement des conditions à remplir et peuvent être liées à une date de début et une date de fin. Les fonctionnalités sont des services supplémentaires proposés par l'entrepôt, tels qu'une compression, un cryptage, un horodatage, une signature électronique, une utilisation d'antivirus en lecture, une suppression complète des données lors d'une libération d'espace mémoire, etc. La classe de service d'un entrepôt de second niveau définit ainsi par exemple : - un nombre d'exemplaires de l'ensemble de données devant être stockés, d'éventuelles contraintes concernant une localisation des entrepôts de premier niveau à sélectionner, la désignation a priori d'un ou plusieurs entrepôts de premier niveau en particulier, d'éventuelles contraintes concernant le type de technologie de stockage à utiliser, - un niveau de sécurité requis, - une première durée pendant laquelle un premier type de stockage est requis, une deuxième durée pendant laquelle un deuxième type de stockage est requis, etc., - une durée au-delà de laquelle l'ensemble de données peut être supprimé et l'espace de stockage correspondant libéré, - une séquence de traitements à appliquer à l'ensemble de données (fonctionnalités précitées), au moment du stockage ou plus tard, - etc. Avantageusement, lorsqu'un entrepôt de second niveau est créé pour le stockage d'un ensemble de données, le système informatique 10 est conçu pour s'assurer régulièrement, voire en permanence, que la classe de service associée, paramétrée en fonction des contraintes de stockage de cet ensemble de données, est bien respectée. En effet, si la classe de service est modifiée, si un entrepôt de premier niveau sélectionné pour le stockage d'au moins une partie de l'ensemble de données est supprimé ou si ses caractéristiques changent, le système informatique 10 peut être amené à modifier la sélection d'entrepôts de premier niveau pour cet entrepôt de second niveau, afin que les paramètres caractéristiques des entrepôts de premier niveau sélectionnés soient à chaque instant compatibles avec les contraintes et fonctionnalités requises par la classe de service de l'entrepôt de second niveau. La figure 3 illustre la structure et le fonctionnement d'un ensemble d'espaces virtuels de stockage à deux niveaux tels que ceux décrits précédemment pour la mise en oeuvre d'un procédé de stockage virtualisé de données numériques. Sur cette figure, un ensemble de données 40, par exemple un fichier numérique ou un flux binaire de données, est associé à des informations 42 de contraintes de stockage. Ces contraintes de stockage peuvent être rassemblées sous la forme d'un fichier, d'une requête. Elles peuvent aussi exister implicitement, par défaut ou selon un contexte. Un entrepôt de second niveau 44 est créé pour gérer le stockage de l'ensemble de données 40. II remplit la fonction d'espace de stockage virtuel directement affecté à l'ensemble 40. lI est associé, comme indiqué précédemment, à une classe de service 46, se présentant sous la forme d'un ou plusieurs fichiers, paramétrée notamment en fonction des contraintes de stockage 42. Une contrainte peut par exemple se présenter sous la forme suivante : � conserver trois exemplaires dont un sur disque dur sur le site de Paris pendant cinq semaines �. Dans ce cas, cette contrainte se traduit dans la classe de service 46 par une date de début (celle du stockage de l'ensemble des données dans les ressources du système informatique 10), une date de fin (la date du début + cinq semaines), un nombre d'exemplaires devant être stockés établi à trois et un domaine géographique imposé pour l'un des exemplaires (les ressources matérielles de stockage du site de Paris). Une autre contrainte peut par exemple préciser la contrainte précédente de la façon suivante : � conserver un exemplaire dans des ressources de type RAID 5 sur disques sur le site de Paris pendant cinq semaines, conserver un exemplaire dans des ressources de type RAID 5 sur disques sur le site de Vannes pendant cinq semaines, conserver deux exemplaires sur bandes magnétiques pendant dix ans �. Cette précision signifie que, l'ensemble de données étant destiné à être consulté souvent pendant les cinq premières semaines mais moins souvent par la suite, on privilégie un stockage rapide mais cher et limité en volume pendant cinq semaines pour ensuite le transférer sur bandes magnétiques pendant dix ans. Au-delà de dix ans, les données seront supprimées et l'espace de stockage libéré, à moins que cela n'ait été fait avant par une requête spécifique du propriétaire de cet ensemble de données. Bien d'autres contraintes peuvent être imaginées. Elles sont chaque fois traduites en paramètres dans la classe de service 46. De façon optionnelle, les entrepôts de premier niveau sont conçus pour stocker des paquets de données de taille commune prédéterminée. Dans ce cas, l'ensemble de données 40 est transformé en un ou plusieurs paquets 401, ..., 40;, ..., 40n de cette même taille. Le nombre de paquets obtenus dépend donc de cette taille commune prédéterminée. La transformation de l'ensemble de données 40 en un ou plusieurs paquets 401, ..., 40;, ..., 40n comporte par exemple les étapes suivantes : - découpage de l'ensemble de données 40 en plusieurs sous-ensembles, - compression et cryptage des données de chaque sous-ensemble, et - ajout d'un en-tête à chaque sous-ensemble comprimé et crypté pour former un paquet de la taille commune prédéterminée. Pour stocker les paquets 401, ..., 40;, ..., 40r, obtenus, et conformément aux contraintes et fonctionnalités paramétrées dans la classe de données 46, des entrepôts de premier niveau 50, 52 et 54 sont sélectionnés en fonction de leurs paramètres caractéristiques. On notera que pour vérifier les contraintes et fonctionnalités paramétrées dans la classe de données 46, plusieurs méthodes de sélection, notamment séquentielles, peuvent être imaginées par l'homme du métier et ne seront donc pas détaillées. A titre d'exemple, si parmi les contraintes une duplication des données est exigée sur deux sites distants bien particuliers et qu'au cours de la sélection un entrepôt de premier niveau localisé sur le premier site est déjà déterminé à un instant donné, la sélection ne va alors s'intéresser qu'aux entrepôts de premier niveau localisés sur le second site et choisir finalement un entrepôt de premier niveau du second site répondant à un maximum des contraintes restantes. Trois entrepôts sélectionnés de premier niveau sont représentés sur la figure 3, à titre purement illustratif et non limitatif. Un premier entrepôt sélectionné 50 de premier niveau est par exemple associé à trois ressources matérielles de stockage 501, 502 et 503 de même type et de caractéristiques homogènes. Ce sont par exemple trois disques durs externes, trois partitions d'un même disque dur, etc. Chacune de ces ressources comporte des conteneurs de stockage aptes à recevoir des paquets. Il en est représenté trois par ressource pour l'entrepôt 50, par souci de simplification. En réalité, le nombre de conteneurs par ressource est beaucoup plus important. Un deuxième entrepôt sélectionné 52 de premier niveau est par exemple associé à deux ressources matérielles de stockage 521 et 522 de même type et de caractéristiques homogènes. Chacune de ces ressources comporte également des conteneurs de stockage aptes à recevoir des paquets. Il en est représenté trois par ressource pour l'entrepôt 52. Enfin, un troisième entrepôt sélectionné 54 de premier niveau est par exemple associé à quatre ressources matérielles de stockage 541, 542, 543 et 544 de même type et de caractéristiques homogènes. Chacune de ces ressources comporte également des conteneurs de stockage aptes à recevoir des paquets. II en est représenté deux par ressource pour l'entrepôt 54. Les paquets 401, ..., 40,, ..., 40, sont alors répartis (en un ou plusieurs exemplaires selon les contraintes de stockage) dans les ressources matérielles de stockage des entrepôts sélectionnés 50, 52 et 54 en fonction des paramètres de la classe de service 46. Cette répartition est conservée en mémoire en relation avec l'entrepôt de second niveau 44 créé. Au moyen par exemple de l'infrastructure illustrée sur la figure 1 et grâce à la structure en deux niveaux d'espaces de stockage virtuels illustrée sur la figure 3, un procédé de stockage virtualisé tel que celui illustré sur la figure 4 peut être mis en oeuvre. Au cours d'une première étape 100 qui peut être exécutée à tout moment, de la conception du système informatique 10 à toute modification de son infrastructure par l'ajout, la suppression, le remplacement ou la modification de tout serveur ou de toute ressource matérielle de stockage, un ensemble d'espaces virtuels de premier niveau, autrement dit l'ensemble des entrepôts de premier niveau, est créé ou modifié. En fonction des ressources matérielles de stockage affectées à chacun de ces entrepôts de premier niveau, des paramètres caractéristiques tels que ceux définis précédemment leur sont également attribués au cours de cette étape. Lors d'une étape 102, un ensemble de données à stocker, par exemple l'ensemble 40, est reçu par le système informatique 10, via l'un de ses serveurs 122, 123, 124 ou 125. Ensuite, à une étape 104, un espace virtuel de stockage de second niveau, en l'occurrence l'entrepôt de second niveau 44, est créé. Sa classe de service 46 est paramétrée en fonction notamment des contraintes de stockage 42 de l'ensemble de données 40. Il est affecté à la gestion du stockage de l'ensemble de données 40. A l'étape 106 optionnelle suivante, l'ensemble de données 40 est transformé en sous-ensembles de même taille. Ensuite, lors d'une étape 108 également optionnelle, chacun de ces sous-ensembles est comprimé et crypté, puis un en-tête est ajouté à chaque sous-ensemble comprimé et crypté pour former un paquet de taille prédéterminée. Les paquets 401, ..., 40;, ..., 40n sont ainsi obtenus. Au cours d'une étape de sélection 110, parmi l'ensemble des entrepôts de premier niveau existant, certains (50, 52 et 54) sont sélectionnés en fonction de leur accessibilité depuis le serveur ayant reçu l'ensemble de données 40 mais aussi par comparaison de la classe de service 46 de l'entrepôt de second niveau 44 avec les paramètres caractéristiques de chaque espace virtuel de stockage de premier niveau. A l'étape 112 suivante, les paquets 401, ..., 40,, ..., 40, sont répartis dans les ressources matérielles associées aux entrepôts de premier niveau sélectionnés 50, 52 et 54. Ensuite, lors d'une étape 114, la répartition des paquets dans les différentes ressources matérielles de stockage associées aux entrepôts de premier niveau sélectionnés 50, 52 et 54 est conservée en mémoire en relation avec l'entrepôt de second niveau 44. L'étape 116 suivante est une étape d'attente d'événements susceptibles de modifier la répartition des paquets stockés et relatifs à l'ensemble de données 40. Ces événements comportent notamment une modification de paramètres de la classe de service 46, une action prévue dans la classe de service 46, un changement des paramètres caractéristiques de l'un des entrepôts de premier niveau sélectionnés, l'ajout, la suppression ou la modification d'un entrepôt de premier niveau, etc. Si l'un de ces événements se produit, on retourne alors à l'étape 110 pour effectuer une nouvelle répartition des paquets de données 401, ..., 40,, ..., 40n. Sinon, on passe à une dernière étape 118 de fin de stockage de l'ensemble de données 40, lorsque la durée de stockage définie dans la classe de service 46 expire. Lors de cette dernière étape, les paquets de données 401, ..., 40;, ..., 40, sont supprimés et l'espace mémoire correspondant est libéré. II apparaît clairement qu'un procédé et/ou système tel que décrit précédemment permet une meilleure flexibilité en cas d'évolution des ressources de stockage. En effet, un premier niveau d'espaces virtuels de stockage gère les ressources matérielles de stockage tandis qu'un second niveau, ayant pour ressources les espaces virtuels de stockage du premier niveau, gère le stockage virtualisé des ensembles de données. Ainsi, il est possible de rendre le stockage virtuel des ensembles de données indépendant de la gestion des ressources matérielles de stockage. L'infrastructure du système informatique de stockage 10 peut donc évoluer sans perturber le service de stockage virtualisé. Par exemple, si un entrepôt de premier niveau perd un disque dur suite à une panne, il peut le signaler par une alarme pour tous les paquets de données concernés. Les entrepôts de second niveau concernés se verront alors affecter une nouvelle sélection d'entrepôts de premier niveau pour une nouvelle distribution des paquets de données, sans que l'ensemble de données ne se voie affecter un nouvel entrepôt de second niveau. Ce dernier est pérenne pendant toute la durée contractuelle du stockage. En cas d'obsolescence d'une ressource matérielle de stockage liée à un entrepôt de premier niveau, il est possible d'ajouter une nouvelle ressource matérielle plus performante, de recopier les paquets stockés dans la ressource obsolète vers la nouvelle ressource, puis de référencer les paquets de données sur cette nouvelle ressource. Tout cela se fait en totale transparence pour les entrepôts de second niveau ayant cet entrepôt de premier niveau comme ressource. Cela concerne en particulier les ressources matérielles de stockage sur bandes magnétiques. Lors d'un changement de technologie de stockage, il suffit de déclarer un nouvel entrepôt de premier niveau exploitant la nouvelle technologie. Lorsque des renouvellements de stockage d'ensembles de données sont requis ou programmés pour des données dont certains paquets sont stockés dans un entrepôt concerné par ce changement de technologie, ces paquets sont recopiés dans le nouvel entrepôt. L'ancien entrepôt pourra être supprimé lorsque tous les paquets qu'il contient auront été soit déplacés soit supprimés. Il est possible aussi de modifier les classes de service des entrepôts de second niveau concernés pour que les paquets destinés initialement à être stockés dans l'ancien entrepôt le soient dans le nouvel entrepôt. Ainsi, le changement de technologie de stockage se déroule de manière simple et fiable. II est à noter par ailleurs que le procédé de stockage virtualisé précédemment décrit n'est pas incompatible avec un service de stockage permettant l'archivage de données selon un format standard tel que le format TAR (de l'Anglais � Tape ARchiver �). En effet, la classe de service d'un ensemble de données devant être archivé selon ce format peut l'indiquer de sorte qu'une répartition en paquets de données sur différentes ressources ne soit pas réalisée, ou soit réalisée en plus de cet archivage. Enfin, on notera que l'invention n'est pas limitée au mode de réalisation décrit précédemment. En effet, elle a été présentée dans une architecture distribuée en plusieurs serveurs aptes à fournir un même service de stockage virtualisé, nécessitant alors une synchronisation entre ces serveurs. Mais elle pourrait aussi être mise en oeuvre dans une architecture centralisée et ne serait alors plus soumise à ces contraintes de synchronisation. REVENDICATIONS1. Procédé de stockage virtualisé d'un ensemble (40) de données numériques dans un système informatique comprenant plusieurs ressources matérielles de stockage (501, 502, 503, 521, 522, 541, 542, 543, 544) interconnectées en réseau, comportant la génération (100) d'un ensemble d'espaces virtuels de stockage de premier niveau (50, 52, 54), dans lequel chaque espace virtuel de stockage de premier niveau est associé à une partie des ressources matérielles de stockage et à des paramètres caractéristiques liés à cette partie des ressources matérielles de stockage, caractérisé en ce qu'il comporte les étapes suivantes : - création (104) d'un espace virtuel de stockage de second niveau (44) associé à une classe de service (46) paramétrée en fonction de contraintes de stockage (42) de l'ensemble de données (40) et affectation de cet espace virtuel de stockage de second niveau (44) à l'ensemble de données (40), sélection (110) d'au moins un espace virtuel de stockage de premier niveau (50, 52, 54) par comparaison de la classe de service (46) de l'espace virtuel de stockage de second niveau (44) avec les paramètres caractéristiques de chaque espace virtuel de stockage de premier niveau, et - stockage (112) de l'ensemble de données (40) dans les ressources matérielles associées à l'espace virtuel de stockage de premier niveau sélectionné (50, 52, 54). 2. Procédé de stockage virtualisé selon la revendication 1, dans lequel les 25 espaces virtuels de stockage de premier niveau (50, 52, 54) sont conçus pour stocker des paquets de données de taille commune prédéterminée, et dans lequel il est prévu une étape (106, 108) de transformation de l'ensemble de données (40) en un ou plusieurs paquets (401, ..., 40;, ..., 40n) de cette taille commune prédéterminée en fonction de la taille globale de l'ensemble de données. 30 3. Procédé de stockage virtualisé selon la revendication 2, dans lequel la transformation (106, 108) de l'ensemble de données en un ou plusieurs paquets (401, ..., 40,, ..., 40n) comporte les étapes suivantes : - découpage (106) de l'ensemble de données en plusieurs sous-ensembles, 20- compression et/ou cryptage (108) des données de chaque sous-ensemble, et - ajout (108) d'un en-tête à chaque sous-ensemble comprimé et crypté pour former un paquet de ladite taille commune prédéterminée. 4. Procédé de stockage virtualisé selon l'une quelconque des revendications 1 à 3, dans lequel l'étape de stockage (112) comportant une répartition de l'ensemble de données (40) dans les ressources matérielles (501, 502, 503, 521, 522, 541, 542, 543, 544) associées à l'espace virtuel de stockage de premier niveau sélectionné (50, 52, 54), il comporte en outre une étape (114) de mémorisation de cette répartition en relation avec l'espace virtuel de stockage de second niveau créé (44). 5. Procédé de stockage virtualisé selon l'une quelconque des revendications 1 à 4, dans lequel l'ensemble de données numériques (40) est un fichier numérique ou un flux de données numériques. 6. Procédé de stockage virtualisé selon l'une quelconque des revendications 1 à 5, dans lequel chaque espace virtuel de stockage de premier niveau (50, 52, 54) est associé à une partie des ressources matérielles de stockage (501, 502, 503, 521, 522, 541, 542, 543, 544) utilisant une unique technologie de stockage choisie parmi les éléments de l'ensemble constitué d'une technologie de stockage par disque dur (221) et d'une technologie de stockage par bande magnétique (241). 7. Programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution des étapes d'un procédé de stockage virtualisé selon l'une quelconque des revendications 1 à 6 lorsque ledit programme est exécuté sur un ordinateur. 8. Système (10) de stockage virtualisé d'un ensemble de données numériques (40), comportant plusieurs ressources matérielles de stockage (501, 502, 503, 521, 522, 541, 542, 543, 544) interconnectées en réseau (26, 30, 34), des moyens (141, 142, 143, 144, 145) de génération d'un ensemble d'espaces virtuels de stockage de premier niveau (50, 52, 54) dans lequel chaque espace virtuel de stockage de premier niveau est associé à une partie des ressources matérielles de stockage et à des paramètres caractéristiques liés à cette partie des ressources matérielles de stockage, caractérisé en ce qu'il comporte en outre: - des moyens (141, 142, 143, 144, 145) de création d'un espace virtuel de 35 stockage de second niveau (44) associé à une classe de service (46)paramétrée en fonction de contraintes de stockage (42) de l'ensemble de données (40) et d'affectation de cet espace virtuel de stockage de second niveau (44) à l'ensemble de données (40), - des moyens (141, 142, 143, 144, 145) de sélection d'au moins un espace virtuel de stockage de premier niveau (50, 52, 54) par comparaison de la classe de service (46) de l'espace virtuel de stockage de second niveau (44) avec les paramètres caractéristiques de chaque espace virtuel de stockage de premier niveau, et - des moyens (141, 142, 143, 144, 145) de stockage de l'ensemble de données dans les ressources matérielles associées à l'espace virtuel de stockage de premier niveau sélectionné (50, 52, 54). 9. Système de stockage virtualisé (10) selon la revendication 8, comprenant plusieurs serveurs de stockage (121, 122, 123, 124, 125) interconnectés en réseau (26, 30, 34), chaque serveur de stockage (121, 122, 123, 124, 125) étant en outre connecté localement à une partie des ressources matérielles de stockage (221, 241) et comprenant lesdits moyens de génération d'un ensemble d'espaces virtuels de stockage de premier niveau, lesdits moyens de création d'un espace virtuel de stockage de second niveau, lesdits moyens de sélection et lesdits moyens de stockage. 10. Système de stockage virtualisé (10) selon la revendication 9, dans lequel, les espaces virtuels de stockage de premier (50, 52, 54) et second (44) niveaux étant conservés en mémoire sous forme de données de description réparties entre les serveurs de stockage (121, 122, 123, 124, 125) et répliquées sur plusieurs serveurs pour au moins une partie d'entre elles, il comporte des moyens (141, 142, 143, 144, 145) de synchronisation, entre les serveurs de stockage, d'actions agissant sur ces données de description.