FR2865817A1 - Systeme de memorisation ayant une pluralite d'interfaces - Google Patents
Systeme de memorisation ayant une pluralite d'interfaces Download PDFInfo
- Publication number
- FR2865817A1 FR2865817A1 FR0405793A FR0405793A FR2865817A1 FR 2865817 A1 FR2865817 A1 FR 2865817A1 FR 0405793 A FR0405793 A FR 0405793A FR 0405793 A FR0405793 A FR 0405793A FR 2865817 A1 FR2865817 A1 FR 2865817A1
- Authority
- FR
- France
- Prior art keywords
- controller
- instruction
- san
- nas
- issued
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
La présente invention concerne un système de mémorisation de type hybride ayant des interfaces SAN et NAS mis en oeuvre par un matériel simple pouvant exécuter une fonction SAN indépendamment d'une fonction NAS et d'une charge NAS. Un contrôleur du système de mémorisation comporte un contrôleur NAS (145) pour accepter une instruction E/S émise pour une unité de fichier et un contrôleur SAN (140) pour accepter une instruction E/S émise pour une unité de bloc. Le contrôleur NAS convertit une instruction E/S pour une unité de fichier en une instruction E/S pour une unité de bloc, et transfère l'instruction E/S pour une unité de bloc vers le contrôleur SAN (140). Le contrôleur SAN accède aux données mémorisées dans un dispositif de disque conformément à une instruction E/S provenant du contrôleur SAN ou NAS en tant qu'instruction pour une unité de bloc.
Description
La présente invention concerne un système de mémorisation ayant une
pluralité d'interfaces. Plus spécifiquement, la présente invention concerne un système de mémorisation de type hybride permettant d'effectuer des
accès à des données par l'intermédiaire à la fois d'une instruction d'interface SAN (Réseau Local de Mémorisation) et d'une instruction d'interface NAS (Mémorisation en Réseau).
Récemment, accompagnant l'extension du champ d'application du système d'informations et les progrès de la répartition de traitement d'un système informatique, le nombre d'hôtes commandés dans un même site a augmenté de manière importante. Avec l'augmentation du nombre de ces hôtes, un problème relatif au coût élevé de gestion des systèmes de mémorisation est apparu. En particulier, si des systèmes de mémorisation d'hôtes répartis sont gérés individuellement, la capacité requise par chaque système de mémorisation en tant que capacité nécessaire pour effectuer des opérations est difficile à estimer à l'avance. Ainsi, s'il existe un besoin d'augmenter la capacité, il est nécessaire d'installer un système de mémorisation supplémentaire pour chaque hôte individuel. En conséquence, le coût de gestion augmente.
En tant que technologies destinées à résoudre le problème mentionné ci-dessus, les techniques SAN et NAS sont utilisées. Un but de ces deux technologies consiste à regrouper des systèmes de mémorisation possédés individuellement par des hôtes répartis. Cependant, du fait des caractéristiques différentes de ces technolo- gies, leurs champs d'application sont différents.
La technologie SAN est une technologie destinée à connecter une pluralité de systèmes de mémorisation et une pluralité d'hôtes entre eux en utilisant un réseau dédié à des communications entre les hôtes et les systè- mes de mémorisation afin d'exécuter des opérations d'entrée/sortie (E/S) ayant une vitesse élevée et un faible temps d'attente. Conformément à la technologie SAN, une opération E/S entre un hôte et un système de mémorisation est effectuée en unités de bloc. Un bloc est une unité de gestion de données de longueur fixe identifiée par une adresse. Un bloc est obtenu en résultat de la division de la capacité d'un système de mémorisation en parties plus petites, chacune ayant une taille prédéterminée correspondant à la longue fixe. Une base de données est repré- sentative d'applications pour lesquelles l'opération E/S exécutée en unités de bloc est appropriée. En regroupant une pluralité de volumes de base de données dans un système de mémorisation unique de manière à permettre d'effectuer leur gestion d'une manière uniforme, le coût de gestion du système informatique peut être réduit. De plus, la technologie SAN offre un réseau dédié ayant une fiabilité élevée et permet d'effectuer des communications avec un degré d'efficacité élevée. Ainsi, la technologie SAN peut également être utilisée en tant que technique délivrant un trajet de communication efficace pour transmettre des données en unités de volume. La transmission de données en unités de volume est effectuée pour copier un volume dans un système de mémorisation distant dans le but de créer une copie de sauvegarde du volume et dans le but de fournir une contre-mesure vis-à-vis d'accidents concernant le volume.
D'autre part, la technologie NAS est une technique fournissant un système de mémorisation ayant une fonction de serveur de fichiers destinée à délivrer des services de fichiers à une pluralité d'hôtes existant dans un réseau local (LAN). Des opérations E/S entre le système de mémorisation fourni par la technologie NAS et les hôtes sont exécutées dans des unités de fichier. En général, un fichier est identifié en utilisant un identifiant, qui est une chaîne de caractères. Un fichier est une unité de gestion de données ayant une longueur variable. Un type d'application pour laquelle des opérations E/S exécutées dans des unités de fichier sont appropriées est une application permettant à une pluralité d'hôtes de partager un fichier. En adoptant la technologie NAS, il est possible de mettre en oeuvre un système permettant à une pluralité de serveurs de la toile mondiale de partager un service du même contenu et un système permettant à une pluralité d'ordinateurs de bureau de partager un texte.
Comme ceci apparaît clairement dans la description ci-dessus, les technologies SAN et NAS sont mutuellement complémentaires. Ces technologies ont conduit à l'idée d'une réduction supplémentaire du coût de gestion en intégrant des systèmes de mémorisation conformes à la technologie SAN à l'aide de la technologie NAS dans un système de mémorisation unique. Conformément aux technologies décrites dans la référence hors brevet 1 et dans la référence de brevet 1, qui sont décrites ci-dessous, en fournissant un programme de commande d'un système de mémorisation en tant que programme de commande autorisant la commande à la fois des systèmes de mémorisation SAN et NAS à exécuter, un système de mémorisation conforme à la fois aux technologies SAN et NAS peut être mis en oeuvre.
Un système de mémorisation appliquant ces technologies dispose d'interfaces SAN et NAS et permet de partager sa capacité de mémorisation dans les interfaces SAN et NAS avec un degré élevé de liberté.
Il est à noter que la référence de brevet 1 mentionnée ci-dessus correspond au Brevet du Japon mis à l'Inspection Publique N 2003-162 439. D'autre part, la référence hors brevet 1 citée ci-dessus est une référence au document de Stephen Daniel intitulé "Converging SAN and NAS Storage - A Comparison of Unified and Gateway So- lutions", Network Appliance Inc., White Paper, octobre 2002.
Conformément à la technologie décrite dans la référence hors brevet 1, il est possible de se conformer aux technologies SAN et NAS en utilisant uniquement un système de mémorisation unique. Cependant, du fait que les technologies SAN et NAS sont mises en oeuvre en utilisant un programme de commande unique, leurs fonctions interfèrent entre elles, ce qui soulève un problème. Il est possible que la fonction SAN soit interrompue du fait d'une défaillance de la fonction NAS, entraînant un problème en ce qui concerne une caractéristique insensible aux défaillances. De plus, un travail de maintenance ne peut pas être effectué en interrompant uniquement la fonction NAS. En outre, lorsque la charge de la fonction SAN devient plus lourde, les performances de la fonction NAS se détériorent de manière importante. De manière similaire, si la charge de la fonction NAS devient plus lourde, d'autre part, les performances de la fonction SAN se détériorent de manière importante. Ce phénomène influe négativement sur les performances de l'ensemble du système. En général, la fonction SAN sert dans de nombreux cas de soutien au système de mémorisation. Ainsi, il existe une demande pour un système de mémorisation, qui permet de poursuivre des opérations destinées à effectuer des accès à des données mémorisées dans un système de mémorisation en utilisant la fonction SAN même si la fonction NAS est interrompue.
Conformément à la technologie décrite dans la référence de brevet 1, d'autre part, les fonctions NAS et SAN sont rendues plus indépendantes l'une de l'autre de sorte qu'il est possible de mettre en oeuvre un système de mémorisation dans lequel la fonction SAN n'est pas interrompue par une défaillance de la fonction NAS. Cepen- dant, du fait qu'une pluralité d'interfaces ayant les fonctions NAS et SAN commandent toutes un dispositif de disque du système de mémorisation, du matériel qui doit communiquer avec un réseau interne via une mémoire partagée devient onéreux. Ainsi, il est difficile d'appliquer cette technologie à un système de mémorisation dans une configuration à petite échelle ayant un petit nombre d'interfaces.
Ainsi, un but de la présente invention consiste à prendre en compte les problèmes décrits ci-dessus pour fournir un système de mémorisation de type hybride ayant à la fois des interfaces SAN et NAS en tant que système de mémorisation qui peut être mis en oeuvre par du maté-riel simple et qui est capable de fonctionner en tant que fonction SAN sans tenir compte de facteurs relatifs à la technologie NAS tels qu'une défaillance d'une fonction NAS et une charge NAS.
La présente invention fournit ainsi un système de mémorisation permettant de réaliser des accès à des données mémorisées dans le dispositif de mémorisation de celui-ci via une interface SAN en utilisant une instruction E/S émise pour une unité de bloc et une interface NAS en utilisant une instruction E/S émise pour une unité de fichier. Dans ce système de mémorisation, une unité de commande destinée à commander le dispositif de commande comporte un contrôleur NAS et un contrôleur SAN. Le contrôleur NAS est un contrôleur destiné à recevoir une instruction E/S émise pour une unité de fichier. D'autre part, le contrôleur SAN est un contrôleur destiné à recevoir une instruction E/S émise par une unité de bloc sous la forme d'une instruction pour effectuer en fin de compte un accès à des données mémorisées dans le dispositif de disque utilisé dans le système de mémorisation.
Le contrôleur NAS convertit une instruction E/S reçue émise pour une unité de fichier en une instruction E/S émise pour une unité de bloc et délivre l'instruction E/S pour une unité de bloc obtenue en résultat de la con-version d'instruction au contrôleur SAN.
Le contrôleur SAN effectue un accès aux données mémorisées dans le dispositif de disque conformément à une instruction reçue en provenance de l'interface SAN sous la forme d'une instruction E/S émise pour une unité de bloc ou à une instruction reçue en provenance du contrôleur NAS sous la forme d'une instruction E/S pour une unité de bloc en résultat de la conversion d'instruction.
En résultat, le système de mémorisation de type hybride ayant à la fois des interfaces SAN et NAS peut être mis en oeuvre par du matériel simple et est capable de fonctionner en tant que fonction SAN sans tenir compte de facteurs concernant la technologie NAS tels qu'une dé- faillance d'une fonction NAS et une charge NAS.
La présente invention va maintenant être mieux comprise à la lecture de la description qui va suivre faite en référence aux dessins annexés, sur lesquels: - la figure 1 est un schéma représentant la configuration d'un système informatique utilisant un système de mémorisation mis en oeuvre par un premier mode de réalisation, - la figure 2 est un schéma fonctionnel repré- sentant des configurations typiques de contrôleurs NAS et SAN, - la figure 3 est un ordinogramme représentant un processus de conversion d'instruction typique, - la figure 4 est un schéma représentant une structure de données typique d'une file d'attente d'ins- tructions, la figure 5 est un schéma représentant une autre structure de données typique de la file d'attente d'instructions, - la figure 6 montre des ordinogrammes représentant des processus typiques exécutés au moment de l'activation d'un programme de conversion d'instruction, d'un programme de commande du réseau de disques et d'un programme de gestion de contrôleur NAS, qui sont fournis par le premier mode de réalisation, - la figure 7 est un ordinogramme représentant un processus typique, qui est exécuté lorsque le pro-gramme de commande du réseau de disques interrompt un contrôleur NAS, - la figure 8 montre des ordinogrammes représentant un processus typique d'une sous-routine de fin de fonction NAS planifiée appelée à partir du processus représenté par la sous-routine indiquée sur la figure 7, - la figure 9 montre des ordinogrammes représentant un processus typique d'une sous-routine de fin de fonction NAS forcée appelée à partir du processus représenté par la sous-routine indiquée sur la figure 7, - la figure 10 est un schéma fonctionnel repré- sentant une configuration typique de contrôleurs SAN/NAS, et - la figure 11 montre des ordinogrammes représentant des processus typiques exécutés au moment de l'activation d'un programme de conversion d'instruction et d'un programme de commande du réseau de disques, qui sont fournis par un second mode de réalisation.
Des modes préférés de réalisation de la pré-sente invention vont être décrits en se reportant aux figures 1 à 11 ci-dessous. Cependant, il est à noter que la portée de la présente invention n'est pas limitée à ces modes préférés de réalisation décrits dans ce qui va suivre.
Un premier mode de réalisation de la présente invention va être décrit en se reportant aux figures 1 à 9 ci-dessous.
Tout d'abord, en se reportant à la figure 1, on va décrire une configuration typique d'un système informatique utilisant un système de mémorisation 100 mis en oeuvre par le premier mode de réalisation de la présente invention.
Le système de mémorisation 100 mis en oeuvre par le premier mode de réalisation est connecté à une pluralité d'ordinateurs tous appelés client SAN 30 par l'intermédiaire d'un réseau SAN 50 constitué d'une fibre canal de sorte que le système de mémorisation 100 est capable de recevoir une instruction E/S provenant d'un client SAN 30. De plus, le système de mémorisation 100 est également connecté à une pluralité d'ordinateurs tous appelés client NAS 20 par l'intermédiaire d'un réseau lo- cal (LAN) 40 de sorte que le système de mémorisation 100 est capable de recevoir une instruction E/S provenant d'un client NAS 20. Au lieu d'être constitué d'une fibre canal, le réseau SAN 50 peut également être un réseau IP pour lequel un protocole iSCSI peut être utilisé.
Le système de mémorisation 100 comporte un dis-positif de disque 105 et un contrôleur 110. Le dispositif de disque 105 également appelé ci- dessous réseau de disques 105 comporte une pluralité d'unités de disque 150 et une trajet de communication 155 pour connecter les unités de disque 150 au contrôleur 110.
Le contrôleur 110 est capable d'entrer des don-nées dans l'une. quelconque des unités de disque 150 ou de délivrer en sortie des données à partir de celles-ci via le trajet de communication 155. Il est également possible de fournir une configuration dans laquelle les unités de disque 150 et le trajet de communication 155 sont inclus dans le contrôleur 110. De plus, le système de mémorisation 100 peut également avoir une configuration incluant une pluralité de dispositifs de disque 105.
Un contrôleur SAN 140 représente le composant de configuration principal du contrôleur 110. Un contrôleur NAS 145 est mis en oeuvre en tant que carte fille montée sur le contrôleur SAN 140. Le contrôleur 110 peut également avoir une configuration incluant deux contrôleurs SAN 140 servant de contrôleurs de travail et de rechange respectivement. Cette configuration offre une redondance dans le but d'améliorer la fiabilité. De manière concrète, le contrôleur SAN de rechange 140 est capable de fonctionner en tant que remplaçant du contrôleur SAN de travail 140 afin de continuer la fonction du contrôleur SAN de travail 140 si une défaillance survient dans le contrôleur SAN de travail 140.
Des parties des zones de mémorisation des uni- tés de disque 150 sont collectées et regroupées pour for-mer une zone de mémorisation logique, à laquelle un espace d'adresse continue est affecté. Cette zone de mémorisation logique est appelée volume logique. Une instruction E/S émise pour une unité de bloc identifiée par une adresse dans l'espace d'adresse affecté au volume logique est appelée instruction d'accès à un bloc logique. D'autre part, une instruction E/S émise pour une unité de bloc identifiée par une adresse dans un espace d'adresse spécifique à une unité de disque 150 est appelée instruc- tion d'accès à un bloc physique.
Le contrôleur SAN 140 est connecté au dispositif de disque 105, à un terminal de gestion 60 et au ré-seau SAN 50. Le contrôleur SAN 140 a une fonction destinée à délivrer une instruction d'accès à un bloc physique à l'une des unités de disque 150 du dispositif de disque 105 conformément à une instruction d'accès à un bloc logique reçue en provenance d'un client SAN 30.
Le contrôleur NAS 145 connecté au réseau local 40 peut être branché à un connecteur 160 agencé sur le contrôleur SAN 140 ou débranché de celui-ci. Le contrô- leur NAS 145 dispose d'une fonction pour recevoir une instruction E/S émise pour une unité de fichier par un client NAS 20, convertir l'instruction E/S en une instruction d'accès à un bloc logique et délivrer l'instruc- tion d'accès à un bloc logique au contrôleur SAN 140. Une instruction E/S émise pour une unité de fichier est appelée ci-dessus instruction de fichier.
Le contrôleur SAN 140 gère des informations de configuration 165 définissant une relation entre les uni- tés de disque 150 et des volumes logiques. La capacité à gérer les informations de configuration 165 permet d'affecter les unités de disque 150 en tant que zone NAS 170 et zone SAN 175 avec un degré élevé de liberté. La zone NAS 170 est une zone qui peut être utilisée par le con- trôleur NAS 145. D'autre part, la zone SAN 175 est une zone qui peut être utilisée par un client SAN 30. Il est également possible de fournir une configuration dans la-quelle le contrôleur NAS 145 et le contrôleur SAN 140 sont mis en oeuvre en tant que carte unique comme dans le cas du second mode de réalisation qui va être décrit ultérieurement.
Le terminal de gestion connecté au contrôleur SAN 140 et au contrôleur NAS 145 en utilisant un réseau tel qu'un réseau local, comporte un écran, un clavier et une souris, qui sont actionnés pour effectuer la gestion du système de mémorisation 100. Des opérations de gestion incluent l'activation et l'arrêt du système de mémorisation 100, l'activation et l'arrêt du contrôleur NAS 145, la modification du paramétrage du système de mémorisation 100 incluant le contrôleur SAN 140 et le contrôleur NAS 145 et une référence à des informations concernant une défaillance.
Ensuite, les configurations du contrôleur SAN 140 et du contrôleur NAS 145 vont être décrites en se re- portant à la figure 2. La figure 2 est un schéma fonc- tionnel représentant des configurations typiques du contrôleur SAN 140 et du contrôleur NAS 145.
Un processeur SAN 1409 sur le contrôleur SAN 140 est un processeur destiné principalement à interpré- ter et à exécuter un programme de commande du réseau de disques 1405 et un programme de gestion de contrôleur NAS 1406. Le processeur SAN 1409 utilise une mémoire SAN 1407, qui est connectée à un contrôleur de mémoire SAN 1410, en tant que dispositif de mémorisation temporaire.
Le programme de commande du réseau de disques 1405 chargé dans la mémoire SAN 1407 dispose d'une fonction pour commander un contrôleur de disque 1403 en décodant une instruction d'accès à un bloc logique reçue par un contrôleur fibre canal 1401 et en convertissant l'instruction d'accès à un bloc logique en une instruction d'accès à un bloc physique. Le programme de commande du réseau de disques 1405 tire avantage d'un cache de disque 1402 pour accroître la vitesse pour générer une réponse à une instruction d'accès à un bloc logique.
D'autre part, le programme de gestion de contrôleur NAS 1406 dispose d'une fonction pour activer et arrêter le contrôleur NAS 145 et pour se reporter aux in-formations concernant une défaillance conformément à une opération de gestion effectuée sur le terminal de gestion 60. Le programme de commande du réseau de disques 1405 et le programme de gestion de contrôleur NAS 1406 sont exécutés par le processeur SAN 1409.
Un processeur NAS 1457 sur le contrôleur NAS 145 est un processeur destiné principalement à interpré- ter et à exécuter un programme de conversion d'instruction 1453. Le processeur NAS 1457 utilise une mémoire NAS 1452, qui est connectée à un contrôleur de mémoire NAS 1456, en tant que dispositif de mémorisation temporaire. Le programme de conversion d'instruction 1453 chargé dans la mémoire NAS 1452 dispose d'une fonction destinée à dé- coder une instruction de fichier reçue par un contrôleur LAN 1451 et à convertir l'instruction de fichier en une instruction d'accès à un bloc logique. Le programme de conversion d'instruction 1453 délivre l'instruction d'ac- cès à un bloc logique obtenue en résultat de la conversion au processeur SAN 1409.
Le programme de commande du réseau de disques 1405 exécuté par le processeur SAN 1409 dispose d'une fonction destinée à convertir une instruction d'accès à un bloc logique reçue en provenance du contrôleur NAS 145 en une instruction d'accès à un bloc physique. Cette con-version est identique au processus destiné à convertir une instruction d'accès à un bloc logique reçue en provenance d'un contrôleur fibre canal 1401 en une instruction d'accès à un bloc physique comme décrit ci-dessus.
Dans une opération destinée à transférer une instruction d'accès à un bloc logique du processeur NAS 1457 vers le processeur SAN 1409, le programme de conversion d'instruction 1453 commande un contrôleur de communications inter-processeur 1408. De manière plus détaillée, une instruction d'accès à un bloc logique est mémo-risée à l'origine dans une zone d'utilisation de communications NAS 1455 utilisée dans le contrôleur NAS 145. Le contrôleur de communications inter-processeur 1408 corn- mandé par le programme de conversion d'instruction 1453 effectue typiquement une opération DMA (accès direct à la mémoire) pour transférer l'instruction d'accès à un bloc logique de la zone d'utilisation de communications NAS 1455 vers une zone d'utilisation de communications SAN 1404. D'autre part, un état indiquant un résultat de l'exécution d'une instruction est à l'inverse transféré de la zone d'utilisation de communications SAN 1404 vers la zone d'utilisation de communications NAS 1455 à la fin de l'exécution de l'instruction. Si le contrôleur de corn- munications inter-processeur 1408 est muni d'une fonction d'interruption pour interrompre des processus en cours d'exécution par le processeur SAN 1409 et le processeur NAS 1457, la fin d'un transfert d'une instruction ou d'un état peut être reportée immédiatement dans le processeur SAN 1409 et le processeur NAS 1457.
Si une instruction de fichier reçue en provenance d'un client NAS 20 est une instruction effectuant une demande pour écrire des données dans le système de mémorisation 100, les données sont temporairement mémori- Sées dans un cache de fichier 1454. Ensuite, une instruction d'accès à un bloc logique obtenue en résultat d'une conversion de l'instruction de fichier conformément au processus décrit ci-dessus est transférée vers la zone d'utilisation de communications SAN 1404. Ensuite, le programme de commande du réseau de disques 1405 transfère les données mémorisées dans un cache de fichier 1454 vers le cache de disque 1402 conformément à l'instruction d'accès à un bloc logique transférée vers la zone d'utilisation de communications SAN 1404.
D'autre part, si une instruction de fichier reçue en provenance d'un client NAS 20 est une instruction effectuant une demande pour lire des données à partir du système de mémorisation 100, une instruction d'accès à un bloc logique obtenue en résultat d'une conversion de l'instruction de fichier conformément au processus décrit ci-dessus est transférée vers la zone d'utilisation de communications SAN 1404. Ensuite, le programme de commande du réseau de disques 1405 lit les données à partir d'une unité de disque 150, mémorisant les données dans le Cache de disque 1402. Enfin, le programme de commande du réseau de disques 1405 transfère les données mémorisées dans le cache de disque 1402 vers le cache de fichier 1454 conformément à l'instruction d'accès à un bloc logique transférée vers la zone d'utilisation de communica- tions SAN 1404.
Une instruction d'accès à un bloc logique et des données peuvent être échangées entre le contrôleur NAS 145 et le contrôleur SAN 140 via un bus connecté au connecteur 160 agencé sur le contrôleur SAN 140 en tant que connecteur utilisé pour monter le contrôleur NAS 145. De plus, le contrôleur NAS 145 peut être branché au connecteur 160 ou débranché de celui-ci pendant que le contrôleur SAN 140 est en fonctionnement. Un bus PCI est un bus typique satisfaisant à ces conditions. Il est éga- lement possible de fournir une configuration dans la-quelle une pluralité de contrôleurs 145 sont montés sur le contrôleur SAN 140. Dans cette configuration, autant de contrôleurs de communications inter-processeur 1408 que de contrôleurs NAS 145 sont agencés sur le contrôleur SAN 140 en tant que composants destinés à commander des communications entre le processeur SAN 1409 et les contrôleurs NAS 145. De plus, il est également possible de fournir une configuration dans laquelle le contrôleur de communications inter-processeur 1408 est agencé sur le contrôleur NAS 145.
Comme décrit ci-dessus, le programme de commande du réseau de disques 1405 est un programme ayant une fonction destinée à convertir une instruction d'accès à un bloc logique en une instruction d'accès à un bloc physique. Dans ce cas, une instruction d'accès à un bloc logique est une instruction E/S reçue par le système de mémorisation 100 en provenance d'un client SAN 30 par l'intermédiaire du réseau SAN 50 en tant qu'instruction émise pour une unité de bloc dans un volume logique défi- ni de manière logique en tant que volume comportant de manière logique une pluralité de disques dans le réseau de disques 105 du système de mémorisation 100. L'instruction d'accès à un bloc logique peut également être une instruction E/S reçue en provenance du contrôleur NAS 145 en résultat de la conversion d'une instruction de fi- chier. D'autre part, une instruction d'accès à un bloc physique est une instruction E/S émise vers un disque inclus dans le volume logique en tant que disque correspondant à l'unité logique.
D'autre part, le programme de conversion d'instruction 1453 est un programme ayant une fonction destinée à convertir une instruction E/S reçue par le système de mémorisation 100 en provenance d'un client NAS 20 par l'intermédiaire du réseau local 40 en tant qu'instruction émise pour une unité de fichier en une instruction E/S désignée en tant qu'instruction d'accès à un bloc logique émise pour une unité de bloc à convertir en définitive par le programme de commande du réseau de disques 1405 en une instruction d'accès à un bloc physique mentionnée précédemment comme décrit ci-dessus.
Le programme de commande du réseau de disques 1405 fonctionne indépendamment de la fonction de pro-gramme de conversion d'instruction 1453. Ainsi, même si un traitement exécuté par le programme de conversion d'instruction 1453 ne peut plus être exécuté du fait d'un problème du programme de conversion d'instruction 1453, le traitement du programme de commande du réseau de disques 1405 peut se poursuivre pour soutenir un processus exécuté pour une instruction E/S reçue en provenance d'un client SAN 30.
Ainsi, un travail de maintenance peut être exécuté en arrêtant uniquement la fonction NAS. De plus, il est également possible de fournir une configuration incluant une pluralité de processeurs pour exécuter le programme de commande du réseau de disques 1405. En désignant uniquement certains des processeurs en tant que processeurs pour une instruction E/S transférée par le programme de conversion d'instruction 1453, les performances SAN peuvent être maintenues au moins à un niveau prédéterminémême si la charge NAS devient plus lourde.
De manière similaire, à l'inverse même si la charge SAN devient plus lourde, les performances NAS peuvent être maintenues au moins à un niveau prédéterminé.
Le programme de conversion d'instruction 1453 et le programme de commande du réseau de disques 1405 pour commander le dispositif de disque 105 communiquent entre eux via un bus interne, sans nécessiter ni réseau interne ni mémoire partagée. Ainsi, cette configuration peut être mise en oeuvre à un faible coût.
En se reportant aux figures 3 à 9, la description qui va suivre concerne des opérations de commande exécutées par le système de mémorisation 100 mis en oeuvre par le premier mode de réalisation de la présente invention.
En se reportant à l'ordinogramme représenté sur la figure 3, la description commence par une explication des opérations de traitement, qui sont exécutées par le programme de commande du réseau de disques 1405 inclus dans la configuration représentée sur la figure 2 pour répertorier une instruction reçue en provenance du pro-gramme de conversion d'instruction 1453 également inclus dans la configuration représentée sur la figure 2 ou une instruction reçue en provenance du contrôleur fibre canal 1401 sur une file d'attente d'instructions.
La figure 3 est un ordinogramme représentant un déroulement typique d'une instruction depuis le programme de conversion d'instruction 1453 ou le contrôleur fibre canal 1401 jusqu'à la file d'attente d'instructions en tant que déroulement incluant un processus de conversion d'instruction. A l'étape 300, le programme de conversion d'instruction 1453 convertit une instruction de fichier en une instruction d'accès à un bloc logique. Ensuite, à l'étape suivante 302, le programme de conversion d'instruction 1453 transfère l'instruction d'accès à un bloc logique vers la zone d'utilisation de communications SAN 1404. Ensuite, à l'étape 305, un bit d'un registre du contrôleur de communications inter-processeur 1408 est établi pour générer une interruption. Dans le même temps, le programme de commande du réseau de disques 1405 se trouve dans l'état d'attente d'une instruction d'accès à un bloc logique à l'étape 310. Interrompu par le contrôleur de communications inter-processeur 1408, le pro-gramme de commande du réseau de disques 1405 exécute une étape 315 pour déterminer si oui ou non la file d'attente d'instructions est occupée. Si la file d'attente d'instructions n'est pas occupée, le processus passe à l'étape 320 pour transférer l'instruction d'accès à un bloc logique de la zone d'utilisation de communications SAN 1404 vers la file d'attente d'instructions. En revanche, si la file d'attente est occupée, le programme de commande du réseau de disques 1405 reste dans l'état d'attente jus-qu'à ce que la file d'attente ne soit plus occupée. La file d'attente d'instructions est occupée du fait qu'une instruction d'accès à un bloc logique reçue par le contrôleur fibre canal 1401 est en cours de transfert vers la file d'attente d'instructions à la suite d'une interruption délivrée en sortie par le contrôleur fibre canal 1401 au processeur SAN 1409 ou d'une instruction d'accès à un bloc logique mémorisée dans la zone d'utili- sation de communications SAN 1404 étant en cours de transfert vers la file d'attente d'instructions comme décrit ci-dessus. Ainsi, le processus de détermination de l'étape 315 est un type de commande d'exclusion pour empêcher une instruction d'accès à un bloc logique mémori- sée dans la zone d'utilisation de communications SAN 1404 d'être transférée par le programme de conversion d'instruction 1453 vers la file d'attente d'instructions pendant qu'une instruction d'accès à un bloc logique est en cours de transfert du contrôleur fibre canal 1401 vers la file d'attente, et pour empêcher une instruction d'accès à un bloc logique reçue par le contrôleur fibre canal 1401 d'être transférée vers la file d'attente d'instructions pendant qu'une instruction d'accès à un bloc logique est en cours de transfert par le programme de conver- sion d'instruction 1453 de la zone d'utilisation de communications SAN 1404 vers la file d'attente. La commande d'exclusion est typiquement mise en oeuvre en affectant un niveau de priorité égal à des interruptions délivrées en sortie par le contrôleur de communications in- ter-processeur 1408 et le contrôleur fibre canal 1401 au processeur SAN 1409 et en exécutant l'opération destinée à transférer une instruction d'accès à un bloc logique de la zone d'utilisation de communications SAN 1404 ou du contrôleur fibre canal 1401 vers la file d'attente d'ins- tructions en tant que processus destiné à gérer une interruption.
Des structures de données typiques de la file d'attente d'instructions vont être décrites en se reportant aux figures 4 et 5. Les figures 4 et 5 sont des schémas représentant une structure de données typique de la file d'attente d'instructions.
Chaque structure de données de file d'attente d'instructions représentée dans les schémas inclut à la fois des instructions d'accès à un bloc logique transfé- rées depuis la zone d'utilisation de communications SAN 1404 et des instructions d'accès à un bloc logique transférées depuis le contrôleur fibre canal 1401. Comme décrit précédemment, les instructions d'accès à un bloc logique transférées depuis la zone d'utilisation de commu- nications SAN 1404 sont toutes le résultat d'un processus de conversion d'instructions exécuté par le programme de conversion d'instruction 1453 inclus dans la configuration représentée sur la figure 2.
Dans la Structure de données typique représen- tée sur la figure 4, un pointeur de tête de file d'at- tente d'instructions 400 désigne l'adresse d'une instruction d'accès à un bloc logique à exécuter ensuite. D'autre part, un pointeur de queue de file d'attente d'instructions 410 désigne l'adresse d'une instruction d'accès à un bloc logique nouvellement ajoutée à la queue de la file d'attente d'instructions. Dans la structure de don-nées, chaque instruction NAS 415 est une instruction d'accès à un bloc logique transférée depuis la zone d'utilisation de communications SAN 1404 en résultat d'un processus de conversion d'instructions exécuté par le programme de conversion d'instruction 1453 alors que chaque instruction d'accès 420 coexistant avec les instructions NAS 415 est une instruction d'accès à un bloc logique transférée depuis le contrôleur fibre canal 1401. Les instructions d'accès à un bloc logique répertoriées sur la file d'attente d'instructions sont traitées de manière séquentielle sur une base Premier Entré, Premier Sorti (FIFO).
Il est à noter que la file d'attente d'instruc- tions est mémorisée dans la mémoire SAN 1407 incluse dans la configuration représentée sur la figure 2.
La structure de données typique représentée sur la figure 5 est différente de la structure de données typique représentée sur la figure 4 en ce que, dans le cas de la structure de données représentée sur la figure 5, les instructions d'accès à un bloc logique sont répertoriées dans des files d'attente séparées, c'est-à-dire une file d'attente NAS utilisée pour répertorier des instructions NAS 515 et une file d'attente SAN utilisée pour ré- pertorier des instructions SAN 565.
Une instruction d'accès à un bloc logique mémo-risée dans la zone d'utilisation de communications SAN 1404 en résultat d'un processus de conversion d'instruction exécuté par le programme de conversion d'instruction 1453 est transférée vers un emplacement de file d'attente NAS désigné par un pointeur de queue de file d'attente d'instructions NAS 510. D'autre part, une instruction d'accès à un bloc logique reçue en provenance du contrôleur fibre canal 1401 est transférée vers un emplacement de file d'attente SAN désigné par un pointeur de queue de file d'attente d'instructions SAN 560.
La structure de données de file d'attente d'instructions représentée sur la figure 5 est caractérisée en ce qu'une commande peut être exécutée pour déter- miner si un traitement d'une instruction NAS a la priori-té sur le traitement d'une instruction SAN, ou si le traitement d'une instruction SAN a la priorité sur le traitement d'une instruction NAS. A savoir, afin de traiter une demande E/S effectuée par un client NAS 20 repré- santé sur la figure 1, ayant priorité sur une demande E/S effectuée par un client SAN 30 représenté sur la même figure, une instruction NAS désignée par un pointeur de tête de file d'attente d'instructions 500 est exécutée en premier. D'autre part, afin de traiter une demande E/S effectuée par un client SAN 30 ayant priorité sur une de-mande E/S effectuée par un client NAS 20, une instruction SAN désignée par un pointeur de tête de file d'attente d'instructions SAN 550 est exécutée en premier.
En se reportant aux ordinogrammes représentés sur la figure 6, la description qui va suivre décrit un traitement d'activation du programme de conversion d'instruction 1453, du programme de commande du réseau de disques 1405 et du programme de gestion du contrôleur NAS 1406 qui sont fournis par le premier mode de réalisation.
La figure 6 montre des ordinogrammes représentant des processus typiques exécutés au moment de l'activation du programme de conversion d'instruction 1453, du programme de commande du réseau de disques 1405 et du programme de gestion du contrôleur NAS 1406.
Lorsque l'alimentation du système de mémorisation 100 représenté sur la figure 1 est mise sous tension, le contrôleur SAN 140 et le contrôleur NAS 145 sont initialisés. Une fois le contrôleur SAN 140 initialisé, un chargement de programme initial charge le programme de commande du réseau de disques 1405 et le programme de gestion du contrôleur NAS 1406 à partir d'une unité de disque 150 dans la mémoire SAN 1407 incluse dans la configuration représentée sur la figure 2. Ensuite, le processeur SAN 1409 commence à exécuter le programme de commande du réseau de disques 1405 et le programme de gestion du contrôleur NAS 1406. le programme de gestion de contrôleur NAS 1406 entre dans un état d'attente à l'étape 635.
Une fois le contrôleur NAS 145 initialisé, un chargement de programme initial charge une routine d'activation du programme de conversion d'instruction 1453 à partir d'une mémoire à lecture seule (ROM) montée sur le contrôleur NAS 145. Du fait que le programme de conver- sion d'instruction 1453 est installé dans une unité de disque 150, ce chargement du programme initial ne peut pas charger le programme de conversion d'instruction 1453 du fait que le chargement du programme initial ne peut pas effectuer d'accès à une quelconque unité de disque 150. Pour cette raison, le chargement du programme initial charge la routine d'activation du programme de conversion d'instruction 1453 en premier. La routine d'activation entre dans un état d'attente d'un avis indiquant la fin d'une initialisation du réseau de disques 105 à l'étape 600.
Dans le même temps, le programme de commande du réseau de disques 1405 lancé initialise le réseau de disques 105 à l'étape 625. Une fois, l'initialisation du ré-seau de disques 105 terminée, le programme de commande du réseau de disques 1405 transmet un avis indiquant la fin de l'initialisation du réseau de disques 105 à la routine d'activation à l'étape suivante 630.
A la réception de l'avis indiquant la fin de l'initialisation du réseau de disques 105, la routine d'activation initialise la mémoire NAS 1452 à l'étape 605.
Ensuite, à l'étape suivante 610, la routine d'activation informe le programme de gestion du contrôleur NAS 1406 que la mémoire NAS 1452 a été initialisée.
Puis, à l'étape suivante 615, la routine d'activation entre dans un état d'attente d'un avis à émettre par le programme de gestion du contrôleur NAS 1406. Informé du fait que la mémoire NAS 1452 a été initialisée à l'étape 635, le programme de gestion du contrôleur NAS 1406 charge le programme de conversion d'instruction 1453 à partir d'une unité de disque 150 dans la mémoire NAS 1452 à l'étape 640 en utilisant des moyens tels que la technique DMA.
A l'étape suivante 645, le programme de gestion du contrôleur NAS 1406 notifie à la routine d'activation du programme de conversion d'instruction 1453 que l'opération destinée à charger le programme de conversion d'instruction 1453 est terminée.
Informé du fait que l'opération de chargement du programme de conversion d'instruction 1453 est terminée à l'étape 615, la routine d'activation du programme de conversion d'instruction 1453 exécute un saut au point d'entrée du programme de conversion d'instruction 1453 à l'étape suivante 620. De cette manière, l'exécution du programme de conversion d'instruction 1453 est lancée.
En se reportant aux ordinogrammes représentés sur les figures 7 à 9, on va maintenant décrire un traitement exécuté par le programme de commande du réseau de disques 1405 pour arrêter le contrôleur NAS 145. La fi- Bure 7 est un ordinogramme représentant un processus ty- pique, qui est exécuté lorsque le programme de commande du réseau de disques 1405 arrête le contrôleur NAS 145. La figure 8 contient des ordinogrammes représentant un processus typique d'une sous-routine de fin de fonction NAS planifiée appelée à partir du processus représenté par la sous-routine indiquée sur la figure 7. La figure 9 contient des ordinogrammes représentant un processus typique d'une sous-routine de fin de fonction NAS forcée appelée à partir du processus représenté par la sous-routine indiquée sur la figure 7.
A l'étape 705 de l'ordinogramme représenté sur la figure 7, une instruction d'arrêt destinée à interrompre le contrôleur NAS 145 est reçue en provenance du terminal de gestion 60 pendant que le programme de commande du réseau de disques 1405 est en cours de traitement d'une instruction SAN ou NAS à l'étape 700. Dans ce cas, le déroulement du processus passe à l'étape 710 où un processus de fin de fonction NAS planifiée est exécuté. Des détails concernant le processus de fin de fonction NAS planifiée vont être décrits ultérieurement.
D'autre part, si aucune instruction destinée à arrêter le contrôleur NAS 145 n'est reçue en provenance du terminal de gestion 60 à l'étape 705, le déroulement du processus passe à l'étape 725 pour déterminer si oui ou non un dépassement du temps imparti d'un signal batte-ment de coeur reçu en provenance du programme de conversion d'instruction 1453 selon des intervalles prédéterminés est survenu. L'occurrence de ce dépassement du temps imparti peut être interprétée en tant que détection d'une anomalie du contrôleur NAS 145. Si une anomalie a été détectée, le déroulement du processus passe à l'étape 730 où les instructions NAS sont supprimées de la file d'attente d'instructions. Ensuite, à l'étape suivante 735, un processus de fin de fonction NAS forcée est exécuté. Des détails concernant le processus de fin de fonction NAS forcée vont être décrits ultérieurement. Une fois l'exécution du processus de fin de fonction NAS planifiée ou du processus de fin de fonction NAS forcée terminée, le déroulement du processus passe à l'étape 712 pour passer à un mode d'opération SAN de traitement d'uniquement des instructions SAN.
Lorsque le fonctionnement du contrôleur NAS 145 reprend conformément à une instruction de reprise reçue en provenance du terminal de gestion 60, le système de mémorisation 100 passe en mode d'opération SAN/NAS commençant à l'étape 700 où le programme de commande du ré-seau de disques 1405 traite une instruction SAN ou NAS. Le fonctionnement du contrôleur NAS 145 peut reprendre alors que le programme de commande du réseau de disques 1405 renvoie la commande à l'étape 630 de l'ordinogramme représenté sur la figure 6.
A l'étape 800 du processus de fin de fonction NAS planifiée représenté par les ordinogrammes contenus sur la figure 8, le programme de gestion du contrôleur NAS 1406 envoie un avis d'une fin planifiée au programme de conversion d'instruction 1453. Après avoir reçu l'avis d'une fin planifiée à l'étape 815, le programme de conversion d'instruction 1453 transfère des données écrites mémorisées dans le cache de fichier 1454 vers un ca- che de disque 1402 à l'étape 820. Ensuite, à l'étape sui-vante 825, le programme de conversion d'instruction 1453 envoie un avis d'achèvement de la fin planifiée au pro-gramme de gestion du contrôleur NAS 1406.
Après avoir reçu l'avis d'achèvement de la fin planifiée à l'étape 805, le programme de gestion du contrôleur NAS 1406 enregistre la fin du contrôleur NAS 145 à l'étape suivante 810. Ensuite, le contrôleur NAS 145 n'est plus surveillé.
A l'étape 905 du processus de fin de fonction NAS forcée représenté par les ordinogrammes contenus sur la figure 9, le programme de conversion d'instruction 1453 est placé dans un état inhibé provoqué par une défaillance générée, entrant dans une boucle sans fin à l'étape suivante 910. Dans cette boucle sans fin, le pro- gramme de conversion d'instruction 1453 n'est absolument pas capable d'effectuer des communications. Dans le même temps, le programme de gestion de contrôleur NAS 1406 en-voie un avis d'une fin forcée du programme de conversion d'instruction 1453 au processeur NAS 1457 en utilisant des moyens matériels tels qu'un signal de fin à l'étape 900. L'avis d'une fin forcée du programme de conversion d'instruction 1453 amène le contrôleur NAS 145 à entrer dans un état dans lequel le contrôleur SAN 140 n'est pas affecté et des données ne sont pas détruites même si l'alimentation du contrôleur NAS 145 est coupée. Ainsi, un travail de réparation tel qu'un remplacement du contrôleur NAS 145 peut être effectué.
Ce mode de réalisation a une configuration dans laquelle le fonctionnement du contrôleur SAN 140 servant de matériel avec la fonction SAN n'est pas dépendant du fonctionnement du contrôleur NAS 145 servant de matériel avec la fonction NAS. Ainsi, le fonctionnement de la fonction SAN peut être poursuivi dans l'éventualité d'une défaillance de la fonction SAN sans être affecté par la défaillance. Des exemples de défaillance de la fonction NAS incluent une défaillance matérielle du contrôleur NAS 145 et une défaillance logicielle du programme de conversion d'instruction 1453. De plus, un travail de maintenance peut être effectué en exécutant une fin planifiée de la fonction NAS, qui peut être reprise ultérieurement après le travail. A savoir, le programme de commande du réseau de disques 1405 exécuté par le processeur SAN 1409 monté sur le contrôleur SAN 140 est capable de fonctionner pour accepter une instruction E/S reçue en provenance du réseau SAN 50 en tant qu'instruction émise pour une unité de bloc. Le programme de commande du réseau de disques 1405 est capable de traiter cette instruction E/S indépendamment de l'existence d'une instruction d'accès à un bloc logique reçue en provenance du contrôleur NAS 145. Comme décrit précédemment, l'instruction d'accès à un bloc logique reçue en provenance du contrôleur NAS 145 est une instruction obtenue en résultat d'un processus de conversion d'une instruction E/S, qui est reçue par le contrôleur NAS 145 en tant qu'instruction émise pour une unité de fichier.
De plus, du fait que ni un réseau interne ni une mémoire partagée n'est nécessaire pour établir des communications entre le contrôleur NAS 145 et le contrôleur SAN 140, le système de mémorisation 100 peut être mis en oeuvre à un faible coût matériel. En outre, du fait que le contrôleur NAS 145 ne nécessite pas de processeur pour exécuter le programme de commande du réseau de disques 1405, le contrôleur NAS 145 peut également être mis en oeuvre à un faible coût matériel.
De plus, en séparant la file d'attente utilisée pour répertorier des instructions NAS 515 de la file d'attente utilisée pour répertorier des instructions SAN 565 comme représenté sur la figure 5, une instruction NAS 515 peut être traitée, en ayant priorité sur les instruc- tions SAN 565, ou une instruction SAN 565 peut être traitée, en ayant priorité sur les instructions NAS 515.
En outre, il est également possible de fournir une configuration incluant deux ou plus de deux paires du processeur SAN 1409 et de la mémoire SAN 1407, qui sont représentés dans la configuration de la figure 2, sur le même contrôleur SAN 140. Dans cette configuration, un processeur SAN 1409 destiné à traiter une file d'attente NAS pour gérer des instructions NAS 515 peut être agencé séparément d'un processeur SAN 1409 destiné à traiter une file d'attente SAN pour gérer des instructions SAN 565 et, de plus, la file d'attente utilisée pour répertorier les instructions NAS 515 et la file d'attente utilisée pour répertorier les instructions SAN 565 peuvent être mémorisées dans des mémoires SAN 1407 différentes. Dans cette configuration, un système de traitement traite des demandes E/S effectuées par un client NAS 20 indépendamment du traitement effectué par un autre système de traitement pour traiter des demandes E/S effectuées par un client SAN 30. Ainsi, même si la charge supportée par un système particulier parmi les systèmes de traitement de-vient plus lourde, les performances de l'autre système de traitement peuvent être garanties sans être affectées par le système de traitement particulier. En résultat, les performances de l'ensemble du système peuvent être amé- liorées.
Un second mode de réalisation de la présente invention va être décrit cidessous en se reportant aux figures 10 et 11. Tout d'abord, le second mode de réalisation de la présente invention va être décrit en se re- portant à la figure 10.
La figure 10 est un schéma fonctionnel représentant une configuration typique de contrôleurs SAN/NAS. Le second mode de réalisation est obtenu en remplaçant des parties correspondant au contrôleur SAN 140 et au contrôleur NAS 145 du premier mode de réalisation représenté sur la figure 1 par un contrôleur SAN/NAS 1000 représenté sur la figure 10.
Des interfaces du contrôleur SAN/NAS 1000 avec le réseau local (LAN) 40, le réseau SAN 50, le terminal de gestion 60 et le dispositif de disque 105 sont les mêmes que les interfaces du contrôleur SAN 140 et du contrôleur NAS 145. Le second mode de réalisation est différent du premier mode de réalisation en ce que, dans le cas du second mode de réalisation, le processeur SAN 1409 et le processeur NAS 1457 partagent un contrôleur de mémoire 1025 et une mémoire 1005. La mémoire 1005 est di-visée en une zone d'utilisation de processeur NAS 1010 et en une zone d'utilisation de processeur SAN 1015.
Le programme de conversion d'instruction 1453 exécuté par le processeur NAS 1457 dispose d'une fonction pour interpréter une instruction de fichier reçue par le contrôleur LAN 1451 et convertir l'instruction de fichier en une instruction d'accès à un bloc logique. Le pro-gramme de conversion d'instruction 1453 délivre l'ins- truction d'accès à un bloc logique provenant de la conversion au processeur SAN 1409. Le programme de conversion d'instruction 1453 exécuté par le processeur NAS 1457 délivre l'instruction d'accès à un bloc logique obtenue en résultat au processeur SAN 1409 par l'intermé- diaire d'une mémoire partagée 1020, qui est utilisée par le processeur SAN 1409 et le processeur NAS 1457 pour échanger des données entre eux. Le programme de commande du réseau de disques 1405 reconnaît une instruction d'accès à un bloc logique délivrée par le processeur SAN 1409 en interrogeant. ou en interrompant un processeur, et convertit l'instruction d'accès à un bloc logique en une instruction d'accès à un bloc physique de la même manière que dans le premier mode de réalisation.
Des dispositifs agencés sur le contrôleur SAN/NAS 1000 en tant que dispositifs autres que le contrôleur de mémoire 1025 et la mémoire 1005 ne sont pas partagés par le processeur SAN 1409 et le processeur NAS 1457. Pour être plus précis, le processeur SAN 1409 utilise exclusivement le contrôleur fibre canal 1401, le ca- che de disque 1402 et le contrôleur de disque 1403. D'autre part, le processeur NAS 1457 utilise exclusivement le contrôleur LAN.1451. Un trajet dans un contrôleur d'interruption intégré dans le contrôleur de mémoire 1025 est établi pour appliquer des interruptions générées par des dispositifs exclusivement utilisés par le processeur SAN 1409 au processeur SAN 1409 et des interruptions générées par des dispositifs exclusivement utilisés par le processeur NAS 1457 au processeur NAS 1457.
En se reportant aux ordinogrammes représentés sur la figure 11, on va maintenant décrire des processus d'activation du programme de conversion d'instruction 1453 et du programme de commande du réseau de disques 1405, qui sont exécutés dans le second mode de réalisation de la présente invention.
La figure 11 contient les ordinogrammes représentant des processus typiques exécutés au moment de l'activation du programme de conversion d'instruction 1453 et du programme de commande du réseau de disques 1405, qui sont fournis par le second mode de réalisation de la présente invention.
Dans ce mode de réalisation, du fait que le processeur SAN 1409 et le processeur NAS 1457 partagent le contrôleur de mémoire 1025, il est impossible d'activer et d'arrêter uniquement le programme de conversion d'instruction 1453 en utilisant des moyens matériels. Ainsi, avant d'activer ou de réactiver le programme de conversion d'instruction 1453, tout d'abord, le programme de gestion du contrôleur NAS 1406 efface (met à zéro) le contenu de la zone d'utilisation du processeur NAS 1010 à l'étape 1100. Ensuite, à l'étape suivante 1105, le pro-gramme de gestion du contrôleur NAS 1406 copie des don-nées mémorisées dans un disque utilisé par le programme de conversion d'instruction 1453 dans la zone d'utilisation du processeur NAS 1010. Ensuite, à l'étape suivante 1110, en utilisant une interruption, le programme de gestion du contrôleur NAS 1406 informe le processeur NAS 1457 que le processus de copie est terminé.
Dans le même temps, à l'étape 1115, le processeur NAS 1457 est dans un état d'attente d'une autre in- terruption du processeur d'instruction d'activation du système, qui est particulier à un système multiprocesseur. A la réception de cette interruption, le processeur NAS 1457 exécute un saut au point d'entrée du programme de conversion d'instruction 1453 à l'étape suivante 1120 pour lancer l'exécution du programme.
Le second mode de réalisation utilise moins de composants que le premier mode de réalisation de sorte que le système de mémorisation 100 fourni par le second mode de réalisation peut être mis en oeuvre à un coût inférieur. Le premier mode de réalisation utilise deux ou plus de deux ensembles d'un contrôleur de mémoire et du circuit périphérique associé. D'autre part, le second mode de réalisation peut fonctionner avec uniquement un ensemble d'un contrôleur de mémoire et du circuit périphérique associé. De plus, dans le cas du second mode de réalisation, la mémoire partagée 1020 partagée par le processeur NAS 1457 et le processeur SAN 1409 est utilisée pour établir des communications inter- processeur. Ainsi, le matériel tel que le contrôleur de communica- tions inter-processeur 1408 de la configuration représentée sur la figure 2 n'est pas nécessaire. Cependant, dans le cas du second mode de réalisation, le matériel utilisant la fonction NAS ne peut pas être remplacé pendant que le contrôleur SAN/NAS 1000 fonctionne sans affecter le fonctionnement de la fonction SAN.
Claims (16)
1. Système de mémorisation comportant: une pluralité de disques, et un contrôleur couplé à la pluralité de disques, caractérisé en ce que: le contrôleur comporte un contrôleur NAS (145) et un contrôleur SAN (140), le contrôleur NAS (145) reçoit une instruction E/S transmise par un ordinateur au système de mémorisa- tion par l'intermédiaire d'un réseau sous la forme d'une instruction E/S émise pour une unité de fichier, le contrôleur SAN (140) reçoit une instruction E/S transmise par un ordinateur au système de mémorisation par l'intermédiaire d'un réseau sous la forme d'une instruction E/S émise pour une unité de bloc et effectue un accès aux données mémorisées dans les disques sur la base de l'instruction E/S émise pour une unité de bloc, le contrôleur NAS (145) convertit une instruction E/S émise pour une unité de fichier en une instruc- tion E/S émise pour une unité de bloc et transfère l'instruction E/S obtenue en résultat émise pour une unité de bloc vers le contrôleur SAN, et le contrôleur SAN (140) effectue également un accès aux données mémorisées dans les disques sur la base d'une instruction E/S reçue en provenance du contrôleur NAS (145) sous la forme d'une instruction E/S émise pour une unité de bloc.
2. Système de mémorisation selon la revendication 1, caractérisé en ce que l'instruction E/S émise pour une unité de fichier est convertie en une instruction E/S émise pour une unité de bloc par un programme de conversion d'instruction (1453) exécuté par un processeur sur le contrôleur NAS (145).
3. Système de mémorisation selon la revendica- tion 1, caractérisé en ce que un programme de commande de dispositif de disque (1405) exécuté par un processeur sur le contrôleur SAN (140) fonctionne indépendamment du fait qu'une instruction E/S émise pour une unité de bloc soit ou non reçue en provenance du contrôleur NAS (145) sous la forme d'une instruction E/S obtenue en résultat de la conversion d'une instruction E/S émise pour une unité de fichier.
4. Système de mémorisation selon la revendication 1, caractérisé en ce que le processeur sur le con- trôleur NAS (145) communique avec un processeur sur le contrôleur SAN (140) via un bus interne connectant les contrôleurs NAS (145) et SAN (140) .
5. Système de mémorisation selon la revendication 1, caractérisé en ce que le contrôleur NAS (145) a une mémoire différente d'une mémoire utilisée dans le contrôleur SAN (140).
6. Système de mémorisation selon la revendication 1, caractérisé en ce que: le contrôleur NAS (145) est monté sur le con- trôleur SAN (140), et le contrôleur SAN (140) traite une instruction E/S reçue en provenance du réseau SAN (50) sous la forme d'une instruction E/S émise pour une unité de bloc même si le contrôleur NAS (145) est monté sur le contrôleur SAN (140) ou démonter de celui-ci au cours d'une opération exécutée par le contrôleur SAN (140).
7. Système de mémorisation selon la revendication 1, dans lequel, afin d'accéder à des données mémorisées dans les disques, le contrôleur SAN (140) traite une instruction SAN (565) émise par une unité de bloc, ayant priorité sur une instruction NAS (415) émise pour une unité de bloc, ou à l'inverse traite l'instruction NAS (415), ayant priorité sur l'instruction SAN (565), caractérisé en ce que l'instruction SAN (565) émise pour une unité de bloc est une instruction E/S reçue en provenance du ré-seau SAN (50), et l'instruction NAS (415) émise pour une unité de bloc est une instruction E/S reçue en provenance du contrôleur NAS (145) en tant qu'instruction résultant de la conversion d'une instruction E/S reçue en provenance du réseau NAS sous la forme d'une instruction E/S émise pour une unité de fichier.
8. Système de mémorisation comportant: une pluralité de disques, un contrôleur NAS (145) pour recevoir une ins- truction E/S émise pour une unité de fichier, et un contrôleur SAN (140) pour recevoir une instruction E/S émise pour une unité de bloc, caractérisé en ce que: le contrôleur NAS {145) comporte un contrôleur de communications NAS, un processeur NAS (1457), une mémoire NAS (1452) et un contrôleur de mémoire NAS (1456) pour commander la mémoire NAS (1452), le contrôleur SAN (140) comporte un contrôleur de communications SAN, un processeur SAN (1409), une mémoire SAN (1407), un contrôleur de mémoire SAN (1410) pour commander la mémoire SAN (1407), un contrôleur de communications inter- processeur (1408) pour commander une communication entre le processeur NAS (1457) et le processeur SAN (1409) et un contrôleur de disque (1403) pour commander les disques, le contrôleur NAS (145) est monté sur le con- trôleur SAN (140), le contrôleur SAN (140) traite une instruction E/S reçue par le contrôleur de communications SAN sous la forme d'une instruction E/S émise pour une unité de bloc même si le contrôleur NAS (145) est monté sur le contrô- leur SAN (140) ou démonté de celui-ci au cours d'une opération exécutée par le contrôleur SAN (140), la mémoire NAS (1452) est utilisée pour mémoriser également un programme de conversion d'instruction (1453), la mémoire SAN (1407) est utilisée pour mémoriser également un programme de commande du réseau de disques (1405), le processeur NAS (1457) exécute le programme de conversion d'instruction (1453) pour convertir une instruction E/S reçue par le contrôleur de communications NAS en tant qu'instruction E/S émise pour une unité de fichier en une instruction E/S émise pour une unité de bloc et mémorise l'instruction E/S émise pour une unité de bloc dans une zone d'utilisation de communications de la mémoire NAS (1452), le contrôleur de communications inter-processeur (1408) transfère une instruction E/S émise pour une unité de bloc de la zone d'utilisation de commu- nications de la mémoire NAS (1452) vers une zone d'utilisation de communications de la mémoire SAN (1410), et le processeur SAN (1409) exécute le programme de commande du réseau de disques (1405) pour répertorier une instruction E/S transférée vers la zone d'utilisation de communications de la mémoire SAN (1407) sous la forme d'une instruction E/S émise pour une unité de bloc ainsi qu'une instruction E/S reçue par le contrôleur de communications SAN sous la forme d'une instruction E/S émise pour une unité de bloc sur une file d'attente d'instruc- tions, et effectue des accès aux données mémorisées sur les disques via le contrôleur de disque (1403) sur la base des instructions E/S répertoriées sur la file d'attente d'instructions sous la forme d'instructions E/S toutes émises pour une unité de bloc.
9. Système de mémorisation comportant: une pluralité de disques, et un contrôleur couplé à la pluralité de disques, le contrôleur comportant: un contrôleur d'interface SAN pour recevoir une instruction E/S émise pour une unité de bloc en provenance d'un réseau SAN (50), un contrôleur d'interface NAS pour recevoir une instruction E/S émise pour une unité de fichier en provenance d'un réseau NAS, un processeur SAN (1409) pour effectuer un accès aux disques sur la base d'une instruction E/S reçue par le contrôleur d'interface SAN sous la forme d'une instruction E/S émise pour une unité de bloc, et un processeur NAS (1457) pour convertir une instruction E/S reçue par le contrôleur d'interface NAS sous la forme d'une instruction E/S émise pour une unité de fichier en une instruction E/S émise pour une unité de bloc, et caractérisé en ce que le processeur SAN {1409) reçoit une instruction E/S émise pour une unité de bloc en provenance du processeur NAS (1457) sous la forme d'une instruction résultant de la conversion d'une instruction E/S émise pour une unité de fichier et effectue également un accès aux disques sur la base de l'instruc- tion E/S émise pour une unité de bloc.
10. Système de mémorisation selon la revendication 9, caractérisé en ce que le contrôleur comporte en outre une mémoire (1005) utilisée pour mémoriser: un programme de conversion d'instruction (1453) destiné à convertir une instruction E/S émise pour une unité de fichier en une instruction E/S émise pour une unité de bloc, et un programme de commande de disque pour effectuer un accès aux disques sur la base d'une instruction E/S émise pour une unité de bloc.
11. Système de mémorisation selon la revendication 10, caractérisé en ce que: le processeur NAS (1457) exécute le programme de conversion d'instruction (1453), le processeur SAN (1409) exécute le programme de commande de disque, et l'exécution du programme de conversion d'instruction (1453) par le processeur NAS (1457) est indépendante de l'exécution du programme de commande de disque par le processeur SAN (1409).
12. Procédé d'accès à des données dans un système de mémorisation, le procédé comportant les étapes consistant à : (a) recevoir une demande E/S de bloc en prove- nance d'un réseau SAN (50) dans un contrôleur SAN (140), (b) effectuer un accès à un disque conformément à la demande E/S de bloc reçue dans le contrôleur SAN (140), (c) recevoir une demande E/S de fichier en pro- venance d'un réseau NAS dans un contrôleur NAS (145), (d) convertir la demande E/S de fichier reçue dans le contrôleur NAS {145) en une demande E/S de bloc, (e) transférer une demande E/S de bloc résultant de la conversion d'une demande E/S de fichier du contrôleur NAS (145) vers le contrôleur SAN (140), et (f) amener le contrôleur SAN (140) à effectuer un accès à un disque conformément à la demande VS de bloc reçue en provenance du contrôleur NAS (145).
13. Procédé d'accès à des données selon la re- vendication 12, caractérisé en ce que l'étape de conversion de la demande E/S de fichier reçue dans le contrôleur NAS (145) en une demande E/S de bloc est effectuée par un programme de conversion d'instruction (1453) exécuté par un processeur sur le contrôleur NAS (145).
14. Procédé d'accès à des données selon la revendication 12, le procédé comportant les étapes consistant à : (g) amener le contrôleur SAN (140) à réperto- rier une demande E/S de bloc reçue par le contrôleur SAN (140) sur une file d'attente d'instructions, (h) amener le contrôleur SAN (140) à répertorier une demande E/S de bloc reçue en provenance du contrôleur NAS {145) sous la forme d'une instruction ré- sultant de la conversion d'une demande E/S de fichier sur la file d'attente d'instructions, et (i) amener le contrôleur SAN (140) à effectuer des accès aux disques conformément aux demandes E/S de bloc répertoriées sur la file d'attente d'instructions.
15. Procédé d'accès à des données selon la revendication 12,. le procédé comportant les étapes consistant à : (g) amener le contrôleur SAN (140) à répertorier une demande E/S de bloc reçue par le contrôleur SAN (140) sur la file d'attente d'instructions SAN, (h) amener le contrôleur SAN (140) à répertorier une demande E/S de bloc reçue en provenance du contrôleur NAS (145) sous la forme d'une instruction résultant de la conversion d'une demande E/S de fichier sur une file d'attente d'instructions NAS, et (i) amener le contrôleur SAN (140) à effectuer un accès à un disque conformément à une demande E/S de bloc répertoriée sur la file d'attente d'instructions SAN ou NAS.
16. Procédé d'accès à des données selon la revendication 15, caractérisé en ce qu'une instruction E/S de bloc répertoriée sur la file d'attente SAN est traitée, en ayant priorité sur une instruction E/S de bloc répertoriée sur la file d'attente NAS, ou caractérisé en ce qu'une instruction E/S de bloc répertoriée sur la file d'attente NAS est traitée, en ayant priorité sur une instruction E/S de bloc répertoriée sur la file d'attente SAN.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004021208A JP4477365B2 (ja) | 2004-01-29 | 2004-01-29 | 複数インタフェースを有する記憶装置、および、その記憶装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2865817A1 true FR2865817A1 (fr) | 2005-08-05 |
FR2865817B1 FR2865817B1 (fr) | 2007-03-09 |
Family
ID=32501276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0405793A Expired - Fee Related FR2865817B1 (fr) | 2004-01-29 | 2004-05-28 | Systeme de memorisation ayant une pluralite d'interfaces |
Country Status (6)
Country | Link |
---|---|
US (4) | US6981094B2 (fr) |
JP (1) | JP4477365B2 (fr) |
CN (1) | CN1648842B (fr) |
DE (1) | DE102004025921A1 (fr) |
FR (1) | FR2865817B1 (fr) |
GB (1) | GB2411020B (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2854020A1 (fr) * | 2013-09-27 | 2015-04-01 | Fujitsu Limited | Appareil de commande de stockage, procédé et programme de commande de stockage |
Families Citing this family (117)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2003092265A1 (ja) * | 2002-04-23 | 2005-09-08 | シャープ株式会社 | 機器制御管理装置 |
JP2005250938A (ja) * | 2004-03-05 | 2005-09-15 | Hitachi Ltd | 記憶制御システム及び方法 |
US7240154B2 (en) * | 2004-06-28 | 2007-07-03 | Emc Corporation | Low cost flexible network accessed storage architecture |
US7711871B1 (en) * | 2004-08-30 | 2010-05-04 | Crossroads Systems, Inc. | Interface device and method for command processing |
US7716315B2 (en) * | 2004-09-24 | 2010-05-11 | Emc Corporation | Enclosure configurable to perform in-band or out-of-band enclosure management |
US7747836B2 (en) * | 2005-03-08 | 2010-06-29 | Netapp, Inc. | Integrated storage virtualization and switch system |
JP2008021116A (ja) * | 2006-07-12 | 2008-01-31 | Hitachi Ltd | San/nas統合管理計算機及び方法 |
WO2008070813A2 (fr) | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Appareil, système et procédé pour un raid distribué à extrémité avant |
US20080177907A1 (en) * | 2007-01-23 | 2008-07-24 | Paul Boerger | Method and system of a peripheral port of a server system |
US8615595B2 (en) * | 2007-01-31 | 2013-12-24 | Hewlett-Packard Development Company, L.P. | Automatic protocol switching |
JP4386926B2 (ja) * | 2007-02-16 | 2009-12-16 | 富士通株式会社 | 暗号通信プログラム、暗号通信方法および暗号通信装置 |
US20080270480A1 (en) * | 2007-04-26 | 2008-10-30 | Hanes David H | Method and system of deleting files from a remote server |
US8005993B2 (en) * | 2007-04-30 | 2011-08-23 | Hewlett-Packard Development Company, L.P. | System and method of a storage expansion unit for a network attached storage device |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US8751755B2 (en) | 2007-12-27 | 2014-06-10 | Sandisk Enterprise Ip Llc | Mass storage controller volatile memory containing metadata related to flash memory storage |
US20090228620A1 (en) * | 2008-03-05 | 2009-09-10 | Fred Thomas | Digital Adapter |
CN101566927B (zh) * | 2008-04-23 | 2010-10-27 | 杭州华三通信技术有限公司 | 存储系统和存储控制器以及数据缓存方法 |
US8359408B2 (en) | 2008-06-30 | 2013-01-22 | Intel Corporation | Enabling functional dependency in a multi-function device |
CN101753617B (zh) * | 2009-12-11 | 2013-05-08 | 中兴通讯股份有限公司 | 一种云存储系统和方法 |
JP5244831B2 (ja) * | 2010-01-25 | 2013-07-24 | 株式会社日立製作所 | 計算機システム及びストレージ統合管理方法 |
US8365041B2 (en) | 2010-03-17 | 2013-01-29 | Sandisk Enterprise Ip Llc | MLC self-raid flash data protection scheme |
WO2012004837A1 (fr) | 2010-07-09 | 2012-01-12 | Hitachi, Ltd. | Appareil de stockage et procédé de gestion de stockage |
US8555279B2 (en) | 2011-04-25 | 2013-10-08 | Hitachi, Ltd. | Resource allocation for controller boards management functionalities in a storage management system with a plurality of controller boards, each controller board includes plurality of virtual machines with fixed local shared memory, fixed remote shared memory, and dynamic memory regions |
JP5611889B2 (ja) * | 2011-05-17 | 2014-10-22 | 株式会社東芝 | データ転送装置、データ送信システムおよびデータ送信方法 |
US8909982B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | System and method for detecting copyback programming problems |
US8910020B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | Intelligent bit recovery for flash memory |
US9058289B2 (en) | 2011-11-07 | 2015-06-16 | Sandisk Enterprise Ip Llc | Soft information generation for memory systems |
US8954822B2 (en) | 2011-11-18 | 2015-02-10 | Sandisk Enterprise Ip Llc | Data encoder and decoder using memory-specific parity-check matrix |
US9048876B2 (en) | 2011-11-18 | 2015-06-02 | Sandisk Enterprise Ip Llc | Systems, methods and devices for multi-tiered error correction |
US8924815B2 (en) | 2011-11-18 | 2014-12-30 | Sandisk Enterprise Ip Llc | Systems, methods and devices for decoding codewords having multiple parity segments |
US20130132766A1 (en) * | 2011-11-23 | 2013-05-23 | Rajiv Bhatia | Method and apparatus for failover and recovery in storage cluster solutions using embedded storage controller |
CN102521138B (zh) * | 2011-11-28 | 2015-11-25 | 华为技术有限公司 | 数据迁移触发方法和装置 |
US9268727B1 (en) * | 2012-06-28 | 2016-02-23 | EMC Company | Method and apparatus for command abstraction |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9645926B2 (en) | 2012-10-19 | 2017-05-09 | Hitachi, Ltd. | Storage system and method for managing file cache and block cache based on access type |
US8984235B2 (en) | 2012-11-14 | 2015-03-17 | Hitachi, Ltd. | Storage apparatus and control method for storage apparatus |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
US9491056B1 (en) | 2012-12-28 | 2016-11-08 | Emc Corporation | Methods and apparatus for protocol independent model to provide event-based discovery |
US9003264B1 (en) | 2012-12-31 | 2015-04-07 | Sandisk Enterprise Ip Llc | Systems, methods, and devices for multi-dimensional flash RAID data protection |
US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9009576B1 (en) | 2013-03-15 | 2015-04-14 | Sandisk Enterprise Ip Llc | Adaptive LLR based on syndrome weight |
US9092350B1 (en) | 2013-03-15 | 2015-07-28 | Sandisk Enterprise Ip Llc | Detection and handling of unbalanced errors in interleaved codewords |
US9244763B1 (en) | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
US9136877B1 (en) | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
CN103198109A (zh) * | 2013-03-28 | 2013-07-10 | 北京圆通慧达管理软件开发有限公司 | 数据处理系统和方法 |
CN103150403A (zh) * | 2013-03-28 | 2013-06-12 | 北京圆通慧达管理软件开发有限公司 | 数据处理系统和方法 |
CN103226532A (zh) * | 2013-03-28 | 2013-07-31 | 北京圆通慧达管理软件开发有限公司 | 数据处理系统和方法 |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US20140359612A1 (en) * | 2013-06-03 | 2014-12-04 | Microsoft Corporation | Sharing a Virtual Hard Disk Across Multiple Virtual Machines |
US9159437B2 (en) | 2013-06-11 | 2015-10-13 | Sandisk Enterprise IP LLC. | Device and method for resolving an LM flag issue |
US9384126B1 (en) | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9043517B1 (en) | 2013-07-25 | 2015-05-26 | Sandisk Enterprise Ip Llc | Multipass programming in buffers implemented in non-volatile data storage systems |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9235509B1 (en) | 2013-08-26 | 2016-01-12 | Sandisk Enterprise Ip Llc | Write amplification reduction by delaying read access to data written during garbage collection |
US9442670B2 (en) | 2013-09-03 | 2016-09-13 | Sandisk Technologies Llc | Method and system for rebalancing data stored in flash memory devices |
US9519577B2 (en) | 2013-09-03 | 2016-12-13 | Sandisk Technologies Llc | Method and system for migrating data between flash memory devices |
US9983801B1 (en) * | 2013-09-21 | 2018-05-29 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Priority queueing for low latency storage networks |
US9158349B2 (en) | 2013-10-04 | 2015-10-13 | Sandisk Enterprise Ip Llc | System and method for heat dissipation |
GB2518884A (en) * | 2013-10-04 | 2015-04-08 | Ibm | Network attached storage system and corresponding method for request handling in a network attached storage system |
US9323637B2 (en) | 2013-10-07 | 2016-04-26 | Sandisk Enterprise Ip Llc | Power sequencing and data hardening architecture |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
US9263156B2 (en) | 2013-11-07 | 2016-02-16 | Sandisk Enterprise Ip Llc | System and method for adjusting trip points within a storage device |
US9244785B2 (en) | 2013-11-13 | 2016-01-26 | Sandisk Enterprise Ip Llc | Simulated power failure and data hardening |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9122636B2 (en) | 2013-11-27 | 2015-09-01 | Sandisk Enterprise Ip Llc | Hard power fail architecture |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9280429B2 (en) | 2013-11-27 | 2016-03-08 | Sandisk Enterprise Ip Llc | Power fail latching based on monitoring multiple power supply voltages in a storage device |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9250676B2 (en) | 2013-11-29 | 2016-02-02 | Sandisk Enterprise Ip Llc | Power failure architecture and verification |
US9092370B2 (en) | 2013-12-03 | 2015-07-28 | Sandisk Enterprise Ip Llc | Power failure tolerant cryptographic erase |
US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
US9129665B2 (en) | 2013-12-17 | 2015-09-08 | Sandisk Enterprise Ip Llc | Dynamic brownout adjustment in a storage device |
US9549457B2 (en) | 2014-02-12 | 2017-01-17 | Sandisk Technologies Llc | System and method for redirecting airflow across an electronic assembly |
US9497889B2 (en) | 2014-02-27 | 2016-11-15 | Sandisk Technologies Llc | Heat dissipation for substrate assemblies |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9519319B2 (en) | 2014-03-14 | 2016-12-13 | Sandisk Technologies Llc | Self-supporting thermal tube structure for electronic assemblies |
US9348377B2 (en) | 2014-03-14 | 2016-05-24 | Sandisk Enterprise Ip Llc | Thermal isolation techniques |
US9485851B2 (en) | 2014-03-14 | 2016-11-01 | Sandisk Technologies Llc | Thermal tube assembly structures |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US9070481B1 (en) | 2014-05-30 | 2015-06-30 | Sandisk Technologies Inc. | Internal current measurement for age measurements |
US9645749B2 (en) | 2014-05-30 | 2017-05-09 | Sandisk Technologies Llc | Method and system for recharacterizing the storage density of a memory device or a portion thereof |
US8891303B1 (en) | 2014-05-30 | 2014-11-18 | Sandisk Technologies Inc. | Method and system for dynamic word line based configuration of a three-dimensional memory device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US9093160B1 (en) | 2014-05-30 | 2015-07-28 | Sandisk Technologies Inc. | Methods and systems for staggered memory operations |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
US10353613B2 (en) * | 2014-11-12 | 2019-07-16 | Hitachi, Ltd. | Computer system and control method therefor for handling path failure |
CN104539746B (zh) * | 2015-01-30 | 2018-10-26 | 浪潮(北京)电子信息产业有限公司 | 一种访问数据的方法、nas机头和san |
CN106997274B (zh) * | 2016-01-25 | 2021-04-30 | 中兴通讯股份有限公司 | 一种实现存储空间管理的架构及方法 |
KR102438319B1 (ko) * | 2018-02-07 | 2022-09-01 | 한국전자통신연구원 | 공통 메모리 인터페이스 장치 및 방법 |
CN110879760B (zh) * | 2018-09-05 | 2022-09-02 | 北京鲸鲨软件科技有限公司 | 一种统一存储系统及方法、电子设备 |
US11586569B2 (en) * | 2021-07-23 | 2023-02-21 | EMC IP Holding Company, LLC | System and method for polling-based storage command processing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1100001A2 (fr) * | 1999-10-25 | 2001-05-16 | Sun Microsystems, Inc. | Système de stockage permettant des accès au niveau fichier et au niveau bloc |
US20020156984A1 (en) * | 2001-02-20 | 2002-10-24 | Storageapps Inc. | System and method for accessing a storage area network as network attached storage |
US20020178143A1 (en) * | 2001-05-25 | 2002-11-28 | Kazuhisa Fujimoto | Storage system, a method of file data backup and method of copying of file data |
US20030105767A1 (en) * | 2001-11-22 | 2003-06-05 | Koji Sonoda | Storage system and control method |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03138752A (ja) * | 1989-10-25 | 1991-06-13 | Canon Inc | 情報処理装置 |
JPH06161974A (ja) * | 1992-11-24 | 1994-06-10 | Komatsu Ltd | マルチcpuボードの診断方法 |
JP3614650B2 (ja) * | 1998-03-20 | 2005-01-26 | 富士通株式会社 | マルチプロセッサ制御方式及びこれに用いられるブート装置及びブート制御装置 |
US6697846B1 (en) | 1998-03-20 | 2004-02-24 | Dataplow, Inc. | Shared file system |
JP3741345B2 (ja) * | 1999-03-24 | 2006-02-01 | 株式会社日立製作所 | ネットワーク接続ディスク装置 |
US6769022B1 (en) * | 1999-07-09 | 2004-07-27 | Lsi Logic Corporation | Methods and apparatus for managing heterogeneous storage devices |
US20010044879A1 (en) | 2000-02-18 | 2001-11-22 | Moulton Gregory Hagan | System and method for distributed management of data storage |
US6868417B2 (en) * | 2000-12-18 | 2005-03-15 | Spinnaker Networks, Inc. | Mechanism for handling file level and block level remote file accesses using the same server |
US7165096B2 (en) | 2000-12-22 | 2007-01-16 | Data Plow, Inc. | Storage area network file system |
US6779063B2 (en) | 2001-04-09 | 2004-08-17 | Hitachi, Ltd. | Direct access storage system having plural interfaces which permit receipt of block and file I/O requests |
US20020161982A1 (en) | 2001-04-30 | 2002-10-31 | Erik Riedel | System and method for implementing a storage area network system protocol |
US20030037061A1 (en) | 2001-05-08 | 2003-02-20 | Gautham Sastri | Data storage system for a multi-client network and method of managing such system |
JP4672931B2 (ja) | 2001-09-07 | 2011-04-20 | 株式会社日立製作所 | 遠隔ファイル共用方法、その装置及びシステム |
US6883065B1 (en) * | 2001-11-15 | 2005-04-19 | Xiotech Corporation | System and method for a redundant communication channel via storage area network back-end |
JP3702231B2 (ja) * | 2002-01-31 | 2005-10-05 | 株式会社東芝 | ディスクアレイ装置及び同装置における動的記憶容量拡張方法 |
JP2003233520A (ja) | 2002-02-07 | 2003-08-22 | Fujitsu Ltd | ネットワーク上のファイル資源のためのファイル制御装置 |
US6880052B2 (en) * | 2002-03-26 | 2005-04-12 | Hewlett-Packard Development Company, Lp | Storage area network, data replication and storage controller, and method for replicating data using virtualized volumes |
US6868439B2 (en) * | 2002-04-04 | 2005-03-15 | Hewlett-Packard Development Company, L.P. | System and method for supervising use of shared storage by multiple caching servers physically connected through a switching router to said shared storage via a robust high speed connection |
JP2003316713A (ja) | 2002-04-26 | 2003-11-07 | Hitachi Ltd | 記憶装置システム |
US6757778B1 (en) | 2002-05-07 | 2004-06-29 | Veritas Operating Corporation | Storage management system |
EP1369773A2 (fr) * | 2002-05-27 | 2003-12-10 | Hitachi, Ltd. | Système de stockage et sous-système de stockage |
US7493404B2 (en) | 2002-05-30 | 2009-02-17 | Lsi Corporation | Apparatus and method for providing transparent sharing of channel resources by multiple host machines utilizing mixed mode block and file protocols |
WO2004008322A1 (fr) | 2002-07-16 | 2004-01-22 | Fujitsu Limited | Dispositif, programme et procede de gestion memoire en reseau |
US7107385B2 (en) | 2002-08-09 | 2006-09-12 | Network Appliance, Inc. | Storage virtualization by layering virtual disk objects on a file system |
US7873700B2 (en) | 2002-08-09 | 2011-01-18 | Netapp, Inc. | Multi-protocol storage appliance that provides integrated support for file and block access protocols |
AU2003268433B2 (en) * | 2002-09-03 | 2008-10-30 | Opentv, Inc. | A framework for maintenance and dissemination of distributed state information |
JP2004220216A (ja) | 2003-01-14 | 2004-08-05 | Hitachi Ltd | San/nas統合型ストレージ装置 |
JP4297747B2 (ja) * | 2003-08-06 | 2009-07-15 | 株式会社日立製作所 | ストレージ装置 |
-
2004
- 2004-01-29 JP JP2004021208A patent/JP4477365B2/ja not_active Expired - Fee Related
- 2004-03-22 US US10/805,260 patent/US6981094B2/en not_active Expired - Fee Related
- 2004-05-06 GB GB0410148A patent/GB2411020B/en not_active Expired - Fee Related
- 2004-05-27 DE DE102004025921A patent/DE102004025921A1/de not_active Withdrawn
- 2004-05-28 CN CN200410047672.4A patent/CN1648842B/zh not_active Expired - Fee Related
- 2004-05-28 FR FR0405793A patent/FR2865817B1/fr not_active Expired - Fee Related
-
2005
- 2005-11-15 US US11/272,730 patent/US7120742B2/en not_active Expired - Lifetime
-
2006
- 2006-09-08 US US11/517,387 patent/US7191287B2/en not_active Expired - Lifetime
-
2007
- 2007-01-30 US US11/699,554 patent/US7404038B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1100001A2 (fr) * | 1999-10-25 | 2001-05-16 | Sun Microsystems, Inc. | Système de stockage permettant des accès au niveau fichier et au niveau bloc |
US20020156984A1 (en) * | 2001-02-20 | 2002-10-24 | Storageapps Inc. | System and method for accessing a storage area network as network attached storage |
US20020178143A1 (en) * | 2001-05-25 | 2002-11-28 | Kazuhisa Fujimoto | Storage system, a method of file data backup and method of copying of file data |
US20030105767A1 (en) * | 2001-11-22 | 2003-06-05 | Koji Sonoda | Storage system and control method |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2854020A1 (fr) * | 2013-09-27 | 2015-04-01 | Fujitsu Limited | Appareil de commande de stockage, procédé et programme de commande de stockage |
US9483211B2 (en) | 2013-09-27 | 2016-11-01 | Fujitsu Limited | Storage control apparatus, storage control method, and computer-readable recording medium having stored storage control program |
Also Published As
Publication number | Publication date |
---|---|
CN1648842A (zh) | 2005-08-03 |
JP2005215947A (ja) | 2005-08-11 |
GB2411020A (en) | 2005-08-17 |
DE102004025921A1 (de) | 2005-08-25 |
US20070124550A1 (en) | 2007-05-31 |
US20050172043A1 (en) | 2005-08-04 |
JP4477365B2 (ja) | 2010-06-09 |
US7120742B2 (en) | 2006-10-10 |
US7191287B2 (en) | 2007-03-13 |
US7404038B2 (en) | 2008-07-22 |
US6981094B2 (en) | 2005-12-27 |
GB2411020B (en) | 2005-12-28 |
CN1648842B (zh) | 2010-04-28 |
US20070011413A1 (en) | 2007-01-11 |
US20060069868A1 (en) | 2006-03-30 |
GB0410148D0 (en) | 2004-06-09 |
FR2865817B1 (fr) | 2007-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2865817A1 (fr) | Systeme de memorisation ayant une pluralite d'interfaces | |
US10459657B2 (en) | Storage system with read cache-on-write buffer | |
KR100987746B1 (ko) | 작업 관리 장치, 클러스터 시스템 및 작업 관리 프로그램을기록한 컴퓨터 판독 가능한 기록 매체 | |
EP2541410B1 (fr) | Procédé de fourniture de service d'exécution de logiciel à la demande | |
JP4375435B2 (ja) | 予知型データ移行を行う階層ストレージシステム | |
CN111722786B (zh) | 基于NVMe设备的存储系统 | |
US8321558B1 (en) | Dynamically monitoring and modifying distributed execution of programs | |
US20070019636A1 (en) | Multi-threaded transmit transport engine for storage devices | |
US20160357451A1 (en) | Storage system having node with light weight container | |
US20180203612A1 (en) | Adaptive storage reclamation | |
US7562111B2 (en) | Multi-processor architecture with high capacity I/O | |
US11489911B2 (en) | Transmitting data including pieces of data | |
JP4322240B2 (ja) | 再起動方法、システム及びプログラム | |
CN1777177A (zh) | 用于适配器端口配置的装置、系统和方法 | |
CN107528871B (zh) | 存储系统中的数据分析 | |
Shu et al. | Disaggregated RAID storage in modern datacenters | |
CN101251815A (zh) | 用于恢复计算系统的系统和方法 | |
US11126371B2 (en) | Caching file data within a clustered computing system | |
WO2013110816A2 (fr) | Procédé d'utilisation d'une mémoire partagée | |
JP2004151824A (ja) | ネットワークシステム | |
EP1256050B1 (fr) | Mecanisme de transfert a haute vitesse | |
Wang | Supporting Scalable Data-Intensive Applications Using Software Defined Internet Exchanges | |
KR20010074343A (ko) | 네트워크로 연결된 다수의 컴퓨터 디스크장치를 하나의디스크장치로 사용하기 위한 서버시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20110131 |