CA2262986A1 - Procede et dispositif de connexion de l'unite centrale d'un systeme de traitement de donnees a un sous-systeme de stockage de donnees a redondance - Google Patents

Procede et dispositif de connexion de l'unite centrale d'un systeme de traitement de donnees a un sous-systeme de stockage de donnees a redondance Download PDF

Info

Publication number
CA2262986A1
CA2262986A1 CA002262986A CA2262986A CA2262986A1 CA 2262986 A1 CA2262986 A1 CA 2262986A1 CA 002262986 A CA002262986 A CA 002262986A CA 2262986 A CA2262986 A CA 2262986A CA 2262986 A1 CA2262986 A1 CA 2262986A1
Authority
CA
Canada
Prior art keywords
data storage
data
controller
input
output
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.)
Abandoned
Application number
CA002262986A
Other languages
English (en)
Inventor
Denis Pinson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SA
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CA2262986A1 publication Critical patent/CA2262986A1/fr
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing

Abstract

Le système comprend une unité centrale (CPU) associée à un ou plusieurs contrôleurs d'entrée-sortie (Ctl1-Ctl4) et un sous-système de disques à redondance (MD), divisés en unités logiques et sous la commande de deux contrôleurs de disques redondants (SP-A, SP-B). Ceux-ci sont attachés au(x) contrôleur(s) d'entrée-sortie par des bus également redondants. Une première partie des unités logiques est assignée au premier contrôleur de disques (SP A) et l'autre partie au second contrôleur de disque (SP-B). Lorsqu'une unité logique, assignée au premier contrôleur de disque (SP-A), est accédée, l'état du second contrôleur de disque (SP-B) est surveillé par le chemin de réserve. En cas de détection de défaillance du second contrôleur de disques (SP-B), toutes les unités logiques sont basculées sur le premier (SP-A) et lui sont assignées. Un mode de fonctionnement dégradé est initié et l'accès aux ressources s'effectue par le chemin de réserve. Applicable aux systèmes de traitement de données.

Description

W O 98149619 PCT~R98/00814 Titre: Procédé et dispositif de connexion de l'unité centrale d'un système de traitement de données à un sous-système de stockage de données à redondance.

La présente invention concerne un procédé de connexion de l'unité
s centrale d'un système de traitement de données à un sous-système de stockage de données à redondance.

L'invention concerne également un dispositif de mise en oeuvre du procédé.
Elle concerne plus particulièrement un dispositif de connexion de l'unité
10 centrale d'un système de traitement de données à un groupe de disques magnétiques à redondance, via des contrôleurs.

Dans le cadre de l'invention le terme "contrôleur" doit être compris dans son acceptation la plus large: il peut s'agir, par exemple, d'un processeur spécialisé, à programme enregistré. De même, le terme contrôleur sera utilisé indifféremment15 pour des contrôleurs disposés en entrée-sortie de l'unité centrale ou des contrôleurs de disques proprement dits, ou plus généralement d'unités de stockage de données.

La figure 1, annexée à la présente description, illustre de façon simplifiée l'architecture générale d'un système de traitement de données. I e système de traitement de données 1 comprend une unité centrale, CPU, des contrôleurs, Ctl1 à
20 Ctln, et un ou plusieurs sous-système(s) d'unités périphériques, S/Sp. Ce dernier sous-système S/Sp peut comprendre, par exemple, des disques simples, des groupes de disques à redondance, des bandes magnétiques, ou encore des imprimantes.

Les groupes de disques à redondance peuvent présenter différentes architectures et notamment des architectures connues sous le vocable anglo-saxonbien connu de "RAID" (pour "Redundancy Array of Independent Disks~' ou groupe dedisques indépendants a redondance).

Les groupements de disques à architecture "R~ID" se subdivisent a leur tour en plusieurs sous-catégories. On peut citer notamment, sans que cela soit exhaustif, les architectures "RAID-1" et "RAID-5".

On va tout d'abord rappeler brièvement les caractéristiques principales de 5 ces deux architectures qui sont avantageusement mises en oeuvre dans le cadre de l'invention.

Pour obtenir une redondance de type "RAID-1", on met en oeuvre des disques miroirs. Selon cette méthode, les données sont enregistrées normalement sur un premier disque et en redondance sur un second disque, physiquement distinct 10 du premier, qui represente le "miroir" du premier. Lorsqu'un disque "normal" est défaillant, les données peuvent être accédées, en lecture et/ou en écriture, a partir de son disque "miroir". Cela nécessite naturellement de doubler la capacité de stockage par rapport aux besoins réels, et donc le nombre de disques physiques.

La redondance de type "RAID-5" nécessite moins de capacité de mémoire supplémentaire. Les données sont découpées en segments de plusieurs blocs de longueur déterminée, que l'on peut appeler blocs de données "utiles". On associe à
un nombre déterminé de segments, un segment redondant composé de blocs de parité.

Selon cette méthode, on utilise aussi plusieurs disques physiques. En 20 général, on découpe les disques en "tranches" et on met en oeuvre un schéma d'enregistrement de données dit à parité tournante.

La figure 2a annexee à la présente description illustre cette méthode particulière d'enregistrement avec redondance de type "RAID-5" et parité tournante. A
titre d'exemple, on suppose que le sous-système de stockage de données comprend 25 cinq disques physiques: D1 à Ds sous la commande d'un contrôleur unique Ctl, par exemple muni d'interfaces du type connu sous la dénomination "SCSI" pour "Small Computer System Interface", SCS11 à SCSls. Le contrôleur Ctl compre"d également une interface du même type, SCSlo, reliée à l'unité centrale (non représentée). Sur la figure 2a, en partie basse, on a également représenté la configuration logique de la W O 98/49619 PCTfFR98100814 mémoire de stockage équivalente aux cinq disques, D1 ~ Ds. On appelle dispositifphysique PD chaque groupement de disques, D1 à Ds.
.

Ce groupement est divisé en y tranches, t1 à ty. On suppose que l'on enregistre dans une tranche d'un disque quelcQnque un seul segment, par exemple le 5 segment So ("Seg. 0") dans la tranche t1 du disque D2. Si on associe un segment de parité, P1. (enregistré dans la tranche t1 du disque D1 ) à quatre segments de données utiles, So à S4, on constate aisément qu'il y a un décalage de position d'enregistrement du prochain segment de parité, P2: celui-ci est enregistré, naturellement dans la tranche t2 (dans l'exemple décrit), mais sur le disque D2 et non 10 pas sur le disque D1. Il existe un décalage régulier également pour les segments P3 à Ps, enregistrés respectivement sur les disques D3 à Ds. On retrouve un enregistrement d'un segment parité, P6. enregistré sur le disque D1, dans la tranche t6. Il y a donc un décalage modulo 5 et de façon plus générale, moduto d, d étant le nombre de disques physiques et s = d-1 le nombre de segments de données utiles associés à un segment de parité.

Pour l'exemple illustré par la figure 2a, la carte de répartition, entre les disques, D1 à Ds, et les tranches, t1 à ty, des segments de données utiles (So ="Seg. So" à Sx+3 = "Seg. Sx+3") et des segments de parités ("parité po" a "parité pyll) est donné par la "TABLE 1" placée en fin de la présente description.

Naturellement, d'autres schémas de répartition sont possibles, mais si l'on désire un enregistrement a parité tournante, le rapport entre le nombre cumulé de segments de données utiles et le nombre de segments de parité associé et le nombre de disques physiques ne peut être quelconque.

Tel qu'il vient d'etre défini, I'espace de stockage de données constitue de fait un espace de mémoire virtuel ou unité logique LUN.

On peut encore subdiviser cet espace mémoire virtuel en plusieurs unités logiques, LUNo à LUN2, comme illustré plus particulièrement par la figure 2b.
Chaque unité logique, LUNo à LUN2, co",prend un certain nombre de tranches, le nombre de segments total (données utiles et données de parité) étant égal au W O 98/49619 PCT~R98/00814 nombre de tranches multiplié par le nombre de disques physiques. Dans l'exemple décrit sur la figure 2b, on a supposé que l'ensemble disque virtuel était divisé en trois unités logiques, ~UNo à LUN2. En d'autres termes, on a remplacé un découpage "vertical" (par disques physiques) en un découpage "horizontal", pour un dispositif physique PD donné. Le nombre de partitions sera choisi pour obtenir des performances optimisées en fonction de la capacité des disques élémentaires, D1 à
Ds, et donc de leur capacité cumulée (dispositif physique PD). Dans l'exemple décrit, chaque unité logique, LUNo à LUN2, forme un disque virtuel de capacité égale au tiers de la capacité cumulée, c'est-à-dire de la capacité du dispositif physique PD.

Le recours à une architecture de disques à redondance de données ne permet de résoudre qu'une partie des problèmes posés par les défaillances du materiel mis en oeuvre. En effet, bien que non représentés sur les figures précédentes, les disques ou les groupements de disques sont placés sous la commande d'au moins un contrôleur de disques. En cas de défaillance de cette unité, 15 I'accès à tout ou partie de l'information est gravement compromis. Aussi, on a proposé d'introduire également une redondance à ce niveau, comme illustré sur lahgure de détail 3a. Selon cette architecture, I'ensemble multidisque, sous la référence commune MD, est placé sous la commande de deux contrôleurs de disques, en l'occurrence deux processeurs de stockage d'information, SP-A et SP-B, fonctionnant en redondance. L'ensemble multidisque MD peut comprendre une ou plusieurs unitésphysiques PD (figures 2a à 2b), donc, a for~iori, une ou plusieurs unites logiques (figure 2b: LUNo à LUN2). Habituellement, on assigne une partie de l'espace disque, et donc des unités logiques (a priori la moitié ou une valeur s'en rapprochant, en fonction de l'architecture de redondance adoptée), à l'un des processeurs de stockage de données, par exemple SP-A, et le restant à l'autre processeur, par exemple SP-B.

En mode de fonctionnement normal, les accès à la première partition de l'espace total disque s'effectuent via le processeur SP-A, et les accès à la seconde partition de l'espace disque via le processeur SP-B. Si une unité logique LUN#m 30 (avec m arbitraire et compris entre O et n, n+1 étant le nombre maximum d'unités logiques) est assignée à SP-A, il y a lieu d'organiser une redondance d'accès à la .

W 0 98/49619 PCT~R98/OOX14 ressource LUN#m par le processeur SP-B en cas de défaillance du processeur SP-A.Or de nombreux types de processeurs disponibles dans le commerce ne permettent ~ pas de "voir" directement l'unité logique LUN#m par le processeur SP-B.

Habituellement, deux méthodes sont mises en oeuvre et vont être s explicitées en regard des figures 3b et 3c La première méthode est illustrée schématiquement par la figure 3b. Le contrôleur d'entrée-sortie Ctl de l'unité centrale CPU communique par des bus distincts, Bo et B1, avec les processeurs SP-A et SP-B, sous la commande du système d'exploitation OS de l'unité centrale CPU. Le système d'exploitation OS peut 10 être quelconque. Il peut s'agir d'un système d'exploitation "UNIX" ou "GCOS"
(marques déposées), par exemple. En mode normal, I'accès à l'unité logique LUN#m~
assignée au processeur SP-A, s'effectue via le bus Bo (trait plein sur la figure 3b).
Lorsque qu'une défaillance (matérielle ou logicielle), interdisant l'acces à cette unité
logique LUN#m via le bus Bo et le processeur SP-A, est détectée, on bascule au moins l'unité logique LUN#m, voire l'ensemble des unités logiques assignées au processeur SP-A, sur le processeur SP-B. L'accès s'effectue alors via le bus B1 (en traits pointillés) et le fonctionnement passe en mode dit "dégradé". Pour ce faire, on utilise une commande généralement connue sous le vocable anglo-saxon "trespass"
qui signifie 'Yorçage d'assignation". Naturellement, le processus est entièrement 20 similaire pour organiser le basculement des unités logiques assignées au processeur SP-B sur le processeur SP-A.

Cette méthode présente l'inconvénient de remonter aux "couches" les plus élevées de logiciel, c'est-à-dire au niveau du système d'exploitation OS de l'unité
centrale CPU. Il s'ensuit une surcharge probable de ce dernier. Il est même 25 nécessaire de modifier le code de certains systèmes d'exploitation pour pouvoir prendre en charge de telles tâches spécifiques.

La seconde méthode est illustrée schématiquement par la figure 3c. On n'utilise qu'un seul bus ~ reliant le contrôleur Ctl aux processeurs redo"dallls SP-A et SP-B. En cas de détection de défaillance, on utilise une fonction programmée dite 30 "auto-trespass" organisant l'auto-basculement d'un processeur à l'autre.

.

Cette méthode, bien qu'elle libère le système d'expioitation OS de l'unité
centrale CPU, n'est cependant pas exempte d'inconvénients. Le fait de ne disposer que d'un seul bus entraîne une surcharge, même en mode normal. En outre, on ne dispose plus que d'un seul canal physique entre le contrôleur Ctl et les processeurs de stockage SP-A et SP-B.

L'invention vise à pallier les inconvénients des procédés de l'art connu, tout en conservant, voire améliorant, la redondance d'accès aux ressources de stockage de données. Notamment, elle se fixe pour but de réaliser un accès transparent, pour le système central, aux ressources de stockage de données o redondantes.

Pour ce faire, on "descend" le contrôle et la détection des pannes dans le contrôleur d'entrée-sortie système, ce qui masque ces tâches au système d'exploitation. L'architecture physique adoptée est similaire à celle décrite en regard de ia figure 3b. Notamment, on utilise deux bus distincts, I'un servant de chemin de 15 transmission "normal" pour un premier contrôleur de disque, et l'autre de chemin de transmission redondant (c'est-à-dire de réserve) pour l'autre contrôleur de disques (ce dernier étant utilisé en redondance également), et inversement.

L'invention a donc pour objet un procédé de connexion de l'unité centrale d'un système de traitement de données à un sous-système comprenant des 20 ressources de stockage de données placées sous la commande de deux contrôleurs de stockage de données fonctionnant en redondance, ladite unité centrale étant associée à au moins un contrôleur d'entrée-sortie communiquant avec lesdits contrôleurs de stockage de données par deux chemins de transmission de données distincts, caractérisé en ce qu'il comprend au moins les étapes suivantes:

251) une étape initiale d'assignation de tout ou partie desdites ressources de stockage de données à un premier contrôleur de stockage de données;
2) une étape d'~ccession par au moins un contrôleur d'entrée-sortie, via un chel"in de ~,a"sl"ission de données, dit normal, à l'une au moins desdites ressources W O 98/49619 PCT~R98/00814 de stockage de données assignées audit contrôleur de stockage de données, dit actif,
3) une étape de surveillance, via l'autre chemin de transmission de données, dit de réserve, de l'état de l'autre contrôleur de stockage de données, dit de 5 réserve, et dudit chemin de transmission de données de réserve.

L'invention a encore pour objet un procédé de connexion de l'unité centrale d'un système de traitement de données a un sous-système comprenant des ressources de stockage de données placées sous la commande de deux contrôleurs de stockage de données fonctionnant en redondance, ladite unité centrale étant 10 associée à au moins un contrôleur d'entrée-sortie communiquant avec lesdits contrôleurs de stockage de données par deux chemins de transmission de données distincts, caractérisé en ce qu'il comprend au moins les étapes suivantes:

1) une étape initiale d'assignation de tout ou partie desdites ressources de stockage de données à un premier contrôleur de stockage de données;

2) une étape consistant en l'exécution de commandes d'entrée-sortie, transmises par un contrôleur d'entrée-sortie via ledit chemin de transmission dedonnées normal, de manière à accéder à l'une desdites ressources de stockage de données assignées audit contrôleur de stockage de données actif, 3) une étape de surveillance de l'état de ce contrôleur et dudit chemin de transmission de données normal, et en ce qu'il comprend, lors de la détection d'un état de défaillance pendant cette dernière étape, les étapes subséquentes suivantes:

a/ une étape de basculement desdites ressources de stockage assignées au contrôleur de stockage de données actif vers le contrôleur de donnees de réserve et de leur réassignation à ce dernier;

b/ et une étape de ré-exécution desdites commandes d'entrée-sortie par ledit chemin de transmission de données de réserve.

W O 98/49619 PCT~R98/00814 L'invention sera mieux comprise et d'autres caractéristiques et avantages apparaîtront à la lecture de la description qui suit, en référence aux figures annexées, parmi lesquelles:
- la figure 1 illustre schématiquement l'architecture générale d'un système de traitement de données selon l'art connu;
- les figures 2a et 2b illustrent deux architectures de disques redondants selon l'art connu;
- les figures 3a à 3b iltustrent schématiquement le fonctionnement de contrôleurs de disques redondants selon deux méthodes de l'art connu;
o - la figure 4 illustre schématiquement un premier exemple de réalisation d'un système de traitement de données conforme à l'invention;
- la figure 5 illustre schématiquement un exemple d'architecture logique d'un contrôleur utilisé dans le système de la figure 4;
- et les figures 6 et 7 illustrent des exemples supplémentaires de réalisation de systèmes de traitement de données conformes à l'invention.

Le procédé de connexion entre une unité centrale d'un système de traitement de données et un sous-système de disques à redondance conforme à
l'invention, ainsi qu'un exemple de dispositif, vont maintenant être décrits de façon détaillée.

Pour fixer les idées, on suppose que l'ensemble multidisque MD compre, Id trente disques individuels, D1 à D30, comme illustré plus particulièrement par la figure 4. Dans l'exemple décrit, ces trente disques sont répartis en cinq sous-ensembles "matériels" (tiroirs ou armoires) de six disques chacun et repérés par les lettres A à E. L'accès à chacun des disques des cinq sous-ensembles, A à E, est réalisé à l'aide de cinq bus, BA à BE, reliés chacun, en une première extrémité, au premier processe~lr de stockage, SP-A, et, en une seconde extrémité, au second processe~r de stockage de données1 SP-B, par exemple via des interfaces de type "SCSI". Les disques, D1 à D3~, sont donc arrangés selon une organisation matricielle W O 98149619 PCT~R98/00814 de cinq "lignes" et six "colonnes", les "lignes" étant formé~s par les sous-ensembles A à E.

Dans un mode de réalisation préférée de l'invention, la redondance de stockage peut être indifféremment configurée (à un stade initial) suivant une architecture "RAID-1" ou "RAID-5". La configuration initiale choisie est introduite dans les processeurs de stockage, SP-A et SP-B, à l'aide d'une console de commande, CONS, branchée à tour de rôle sur un port série de ces deux processeurs (ou à l'aide de deux consoles de commande dans une variante de réalisation non représentée).

Pour fixer les idées, si la redondance est du type "RAID-5", les cinq lO disques physiques de chaque "colonne" de la matrice sont associés et forment des dispositifs physiques, PD1 à PD6, de façon similaire à ce qui a été décrit en relation avec les figures 2a ou 2b (dispositif PD). Comme il a été indiqué, on peut encore subdiviser chaque dispositif physique en unités logiques, par exemple en trois unités logiques (figure 2b: LUNo à LUN2). A priori, la moitié des dispositifs physiques est 15 assignée, en mode normal, au processeur SP-A (par exemple les dispositifs physiques PD1 à PD3). L'autre moitié (PD4 à PD6) est assignée à l'autre proçessellr, SP-B.

Le contrôleur d'entrée-sortie, Ctl, de l'unité centrale, CPU, communique via deux ports distincts, Poo et Po1, avec les processeurs de stoclcage, SP-A et Sp-B, 20 respectivement, via deux bus, Bo et B1, et deux ports, PoA et Pog, associés chacun à l'un des processeurs de stockage. Tous ces ports comprennent, par exemple, desinterfaces du type "SCSI".

En mode"RAlD-5", I'ensemble multidisque MD est "vu" par l'unité centrale, CPU, et le système d'exploitation, OS, comme dix-huit disques logiques identifiés par 25 des numéros d'unités logiques (LUN#m), comme il le sera montré ci-après. ~n effet, cinq disques élémentaires (physiques) sont nécessaires pour consli~uer un groupe"RAID-5" ou dispositif physique, PD1 à PD6, soit six groupes. Ces groupes étant divisés en trois unités logiques, on obtient 6~3 = 18 disques logiques.

W O 98/4~619 PCT~R9810~814 En mode "RAID-1", ce même ensemble multidisque MD est "vu" comme quinze disques logiques, soit 2~15 = 30 disques élémentaires (physiques), également identifiés par des numéros d'unités logiques (LUN#m).

Pour obtenir une table de configuration d'adresses des disques logiques 5 qui puisse tenir compte des deux modes de redondance, lors de la configurationinitiale, on introduit une notion d'entité logique supplémentaire qui va être appelee "dispositif logique", également repéré par un numéro: LD#m, avec m compris entre00 et 17. En effet, le nombre maximum de dispositifs logiques (et également d'unités logiques) est égal a dix-huit et est obtenu pour une redondance de type "RAID-5".

Dans l'exemple choisi, pour une redondance de type "R~ID-5", les dispositifs logiques LD#00 à LD~08 sont assignés au processeur SP-A et les dispositifs logiques LD#09 à LD#17 sont assignés au processeur SP-B. Pour une redondance de type "RAID-1", les dispositifs logiques LD#00 à LD~07 sont assignés au processeur SP-A et les dispositifs logiques LD#09 à LD#15 sont assignés au 15 processeur SP-B (les dispositi~s logiques LD#08 et LD#16 et LD#17 n'étant pas affectés pour ce type de redondance).

Dans un exemple de réalisation pratique, on prévoit deux chemins de trcl ,s",ission, c'est-à-dire deux "canaux physiques". Pour différencier ces deux canaux physiques, on introduit un paramètre d'adresse PC#x. I 'indice x prend deux 2 o valeurs distinctes, par exemple x=0 et x=2.

On subdivise les canaux physiques en canaux logiques LC#y, avec y compris entre 0 et 9 (valeur maximale obtenue pour le mode "RAID-5").

Pour pouvoir adresser complètement et sans ambigurté une unité logique LUN#m, ou "cible" a accéder (en lecture ou en ecriture), quel que soit le mode de 25 redondance configuré initialernent ("RAID-1" ou "RAID-5"), il est necess~ire de définir un paramètre d'adressage supplementaire que l'on appellera numéro d'identification "SCSI" (type d'interface choisi dans l'exemple décrit) ou ID#z. Les valeurs que peuvent prendre z dépendent du mode de reJondance. En mode "RAID-1", un seul numéro d'identification ID#z est nécessaire, par exemple z=02. En mode "RAID-5", . . .

W O 98/49619 PCT~R98100814 chaque sous-ensemble de dispositifs logiques LD#m étarlt divisé en trois groupes"RAID-5", eux-mêmes subdivisés en trois unités logiques LUN#m, on définit trois valeurs de numéros d'identification ID#z pour chaque sous-ensemble, par exemple les valeurs hexadécimales 02, 03 et 04 pour le premier sous-ensemble (unités 5 logiques assignées au processeur SP-A en mode normal), et 08, 09 et OA pour lesecond sous-ensemble (unités logiques assignées au processeur SP-B en mode normal).

La '~ABLE 2" placée en fin de la présente description constitue la table complète de l'adressage des "cibles" en fonction de la configuration initiale 10 (redondance de type "RAID-1" ou "RAID-5"). Dans cette table, la colonne "LD#" est commune aux deux configurations initiales.

On constate d'après cette table que, en mode "RAID-~", pour adresser un disque virtuel particulier, c'est-à-dire un des dispositifs logiques LD#00 à LD#17, il est nécessaire d'utiliser une paire combinée ID#z/LUN#m, m prenant l'une des trois 15 valeurs 00, 01 ou 02, quel que soit le groupe "RAID-5" et le sous-ensemble dedispositifs lo~iques (LD#00 à LD#08 affectés au processeur SP-A ou LD#09 à LD#17affectés au processeur SP-B).

En mode "RAID-1", il y a correspondance biunivoque entre les numéros d'unités logiques LUN#m et les numéros de dispositifs logiques LD#m (exprimés en20 hexadécimal pour ces derniers), étant entendu, dans ce cas, que LD#08, LD#16 et LD#17 ne sont affectés à aucune unité logique LUN#m. Le numéro d'identification ID#z étant constant, il est donc seulement nécessaire de connaître le numéro d'une unité logique pour l'adressen On constate également, que les différents paramètres d'adresse du 25 dispositif logique LD#00, tels qu'ils ressortent de la "TABLE 2" sont identiques (LUN#00, ID#02) quel que soit le type de redondance. Cette propriété permet, parutilisation classique d'une commande d'interrogation, de déterminer le type de redol ,Jance configuré initialement.

Avant de décrire plus avant le procédé de coflnexion avec redondance selon l'invention, on va préciser tout d'abord l'architecture logique du contrôleur d'entrée-sortie Ctl par référence à la figure 5.

On a représenté sur cette figure 5 les differentes couches logiques du contrôleur Ctl. La couche superieure est constituée par un système d'exploitation en temps réel OS', par exemple du type "GPOS" décrit dans le brevet français No. 2 679 351 au nom de la Demanderesse. Les deux couches immédiatement inférieures sont constituées de couples "module de programme-canal logique". La première couche est constituée d'un module de gestion général de traitement Po (ou "process 10 manager" selon la terminologie anglo-saxonne) et d'un canal logique LCo, communs aux autres modules de gestion et aux autres canaux. Les canaux LC1 à LCg sont les canaux logiques associés aux différents dispositifs logiques d'un sous-ensemble (LD#OO à LD#08, pour SP-A, ou LD#O9 à LDi~17, pour SP-B). Ils correspondent aux numéros LC#01 à LC#O9 de la '~ABLE 2". Les deux couches inferieures sont des modules de gestion, Dro et DR1, ou "drivers" selon la terminologie anglo-saxonne, gérant les ports Poo et Po1 (figure 4), respectivement. Les modules de traitement P1 à Pg gèrent les canaux logiques correspondants, LC1 à LCg, et utilisent le port approprié, Poo ou Po1, pour transmettre des commandes "SCSI" (dans l'exemple décrit) au processeur SP-A ou SP-B, selon l'unité logique à accéder.

Considérée dans sa globalité, I'architecture logique decrite jusqu'à ce point est, en soi, commune à l'art connu. Cependant, seton une première caractéristique importante de l'invention, la couche logique des "modules de traitemenVcanaux lo~iques" est complétée par un module de programme spécifique Ps, que l'on appellera de "surveillance" et dont le fonctionnement va être explicité dans ce qui suit.

En mode normal, lorsqu'on accède à l'une des unités logiques assignées au processeur actif SP-A (par exemple à l'adresse ID#03/LUN~01 en mode "RAID-5"), une commande "SCSI" est transmise par le port Poo (figure 4) à ce processeur, sous la commande du module de programme de gestion Dro et emprunte le bus Bo, 30 c'est-à-dire le chemin dit "normal" pour ce processeur. Dans ces conditions, le processeur SP-B est en réserve, ainsi que le bus B1. Le Fnodule de programme PS
scrute alors en permanence l'état du processeur SP-B et du chemin y conduisant, en utilisant le bus libre B1 et le port Po1, sous la commande du module de programme de gestion Dr1. Pour fixer les idées, la période de scrutation est typiquement de 2 secondes.

Lorsqu'un état de dysfonctionnement est détecté, quelle qu'en soit la cause (panne ou défaillance du processeur SP-B, mauvais contacts des conducteurs constituant le bus B1, déconnexion de celui-ci, etc.), le contrôleur transmet une commande "SCSI" du type "trespass" précité au processeur de stockage "survivant", 10 en l'occurrence le processeur SP-A, via le chemin restant disponible, c'est-à-dire le port Poo et le bus Bo. Cette commande entraîne le basculement de toutes les unités logiques sur le processeur SP-A et leur assignation à ce processeur. Désormais l'accès à ces unités logiques s'effectue via le processeur SP-A. Il en est de même naturellement pour les unités logiques qui lui étaient précédemment assignées.

On passe alors en mode dit "dégradé". Un "signal d'avertissement" est transmis à l'unité centrale CPU (figure 4), mais les opérations précédemment decrites restent transparentes pour l'unité centrale CPU et, notamment, pour son système d'exploitation OS. Ce dernier continue à transmettre des requêtes pour les unités "basculées" comme il le faisait précédemment en mode dit "normal". Le "signal d'avertissement" est enregistré dans une table d'incidents. Il sert avantageusement à
signaler l'existence du "mode dégradé" et l'enregistrement pourra être utilisé
ultérieurement à des fins de maintenance (par exemple, changement des organes défectueux).

Le processus qui vient d'être décrit pour le processeur de stockage SP-A
se déroule de façon identique pour le processeur SP-B. Si une unité logique assignée à ce processeur est accédée (par exemple à l'adresse ID#08/LUN#02 en mode "RAID-~"), le module de programme PS scrute alors en permanence l'état du processeur SP-A et du chemin y conduisant, en utilisant le bus libre Bo et le port Poo, sous la commande du module de programme de gestion Dro. En cas de 3 o dysfonctionnement constaté du chemin de reserve, toutes les unités logiques assignées au processeur SP-A sont bascuiées sur le processeur SP-B et on passe en mode dégradé comme précédemment. De même un signal d'avertissement est élaboré par le contrôleur Ctl et "remonté" vers l'unité centrale CPU.

Dans une variante supplémentaire de réalisation, tous les dispositifs 5 lo~iques LD#OO à LD#17, et donc également toutes les unités logiques LUN#m, sont initialement assignés au même processeur de stockage de données, par exemple le processeur SP-A. En cas de détection d'un dysfonctionnement sur le chemin de réserve, un signal d'avertissement est elaboré, comme précédemment, par le contrôleur Ctl et "remonté" vers l'unité centrale CPU, signalant l'existence d'un "mode 10 dégradé". Cependant, aucune ressource de stockage de données n'étant assignéeau processeur SP-B, il ne peut y avoir de basculement de celles-ci vers le processeur SP-A.

Selon une autre caractéristique importante de l'invention, lorsqu'un dysfonctionnement est détecté en cours d'exécution d'une instruction d'entrée-sortie ("I/O" selon la terminologie anglo-saxonne), un signal du type "tresp~-ss" précité est llcllslllis par le chemin de réserve de manière a basculer également les unités logiques du processeur de stockage actif vers le processeur de stockage de réserve et a les lui assigner. Une condition dite "marginale" est générée pour chacune des instructions d'entrée-sortie en cours d'exécution et un nouvel essai est ef~ectué en empruntant le chemin de rése~ve. Pour ce faire, les instructions d'entrée-sortie sont stockées dans le contrôleur Ctl jusqu'a exécution complète.

Selon un aspect supplémentaire de l'invention, lorsqu'il n'y a pas d'exécution d'instructions d'entree-sortie ("IlO"), une surveillance continue de l'état du chemin "normal" et du processeur associé (par exemple SP-A) est réalisée sous lacommande des couples des modules de traitement, P1 a Pg, et de canaux logiques, LC1 a LCg. Cette surveillance s'effectue par l'envoi en boucle d'instructions d'entrée-sortie spécialisées pour cette tâche.

Comme précédemment, et dans les deux cas qui viennent d'être décrits (exécution d'instructions d'entrée-sortie non réussies, cycle de surveillance en , boucle), le mode dégradé est initié et un signal d'avertissement est "remonté" vers l'unité centrale CPU.

Conformément au procédé de l'invention, une double surveillance est donc effectuée: une première surveillance, via le chemin en cours ou actif, pour les commandes d'entrée-sortie en cours d'exécution, une seconde surveillance, via lechemin de réserve, pour scruter l'état du processeur de stockage de réserve, et par ce biais des unités logiques qui lui sont assignées. De cette manière, les performances des canaux logiques ne sont pratiquement pas affectées par cette seconde surveillance (attente des reponses ou "time-out" qui s'effectuent par le10 chemin de réserve).

Le procédé selon l'invention peut aussi accommoder des pannes ou défaillances dues aux modules de gestion Dro du port Poo et Dr1 du port Po1. Un dysfonctionnement détecté à ce niveau occasionne également, sous la conduite d'un des modules de traitement, P1 à Pg, associé aux canaux logiques, LC1 à LCg, du contrôleur Ctl, un basculement sur le port "survivant" (par exemple Po1, si c'est le port Poo eVou le "driver" Dro qui sont défaillants) et la génération d'une commande du type "trespass" précité vers le processeur de stockage attaché a ce port (parexemple SP-B). Il s'ensuit un basculement de toutes les unités logiques précédemment assignées à l'autre processeur (par exemple SP-A) et leur assignement au processeur de réserve (par exemple SP-B). De même, si le module de programme ("process manager") spécifique PS est défaillant, un signal du type"trespass" est transmis sur le chemin actif de manière à basculer les unités logiques assignées au processeur de stockage de réserve dont l'état n'a pu être scruté (par exemple SP-B) vers le processeur de stockage actif (par exemple SP-A).

25Dans ces deux cas, le mode dégradé est initié et un signal d'avertissement est "relllonté" vers l'unité centrale CPU.

De façon préférentielle, après passage en mode de fonctionnement dégradé, notamment pour éviter les effets dits de "ping-pong", on n'opère pas une reconfiguration automatique, même si les organes défaillants redeviennent 30 opérationnels. Tous les accès aux ressources de stockage de données continuent à

W O 98/49619 PCT~R98/00814 s'effectuer au travers du processeur de stockage qui restait opérationnel lors de la survenue de l'incident détecté et du chemin associé, ce jusqu'à ce que l'une desactions suivantes soit entreprise:

- action d'un opérateur qui provoque la reconfiguration du sous-système de stockage de données à l'aide de commandes spécifiques du contrôleur Ctl;

- ou réinitialisation complète au moins du sous-système de stockage de données, après mise hors tension.

Lors de l'initiaiisation du système, il est nécessaire de déterminer sous quel mode il devra fonctionner: en mode normal ou en mode dégradé. En d'autres 10 termes, il est nécessaire de déterminer si les deux processeurs de stockages et les chemins associés sont opérationnels. Dans ce cas, il est possible de configurer le sous-système de stockage de données en mode de fonctionnement normal et d'assigner les unités logiques selon le "TABLEAU 2". Dans le cas contraire, toutes les unités logiques sont assignées au seul processeur de stockage "survivant", le mode de fonctionnement dégradé est adopté et un signal d'avertissement est enregistrédans la table d'incidents préci~ée. Des tests initiaux sont aussi effectués pour détecter le bon fonctionnement des modules de gestion Dro et Dr~, et du module de programme de surveillance PS. Le résultat de ces tests détermine également le mode de fonctionnement à adopter et la configuration initiale: mode normal ou mode dégradé.

On constate que le procédé selon l'invention permet, non seulement d'obtenir une transparence totale vis-à-vis du système d'exploitation de l'unitécentrale CPU même en mode dégradé (effet de "masquage"), mais ménage un chemin de réserve.

Le système qui vient d'être décrit conserve cependant un "maillon" faible dans la chaîne de transmission de commandes eVou de données. En effet, si le contrôleur Ctl tombe en panne, malgré la redondance élevée présentée par le sous-système de stockage de données, que ce soit en ce qui co"cer"e l'ensemble multidisque MD (figure 4), par l'adoption d'une configuration "RAID-1" ou "RAID-5"

(ou de tout autre mode de redondance), ou de t'ensemble de processeurs de stockage, SP-A et SP-B fonctionnant en redondance (et des dispositions adoptées,- propres au procédé de l'invention), il n'existe plus de chemin disponible entre l'unité
centrale CPU (et son système d'exploitation OS) et les ressources de stockage deI'ensemble multidisque MD.

Pour pallier ce défaut, on prévoit avantageusement une redondance supplémentaire au niveau du contrôleur d'entrée-sortie en le doublant par un second contrôleur. La figure 6 illustre schématiquement une telle architecture.

Le système comprend désormais deux contrôleurs d'entrée-sortie, CtlA et o Ctlg, respectivement. Chaque contrôleur, CtlA ou Ctlg, "voit" les unités logiques LUN#m de façon identique, c'est-à-dire assignées de la même façon à l'un ou à
l'autre des deux processeurs, SP-A ou SP-B. En mode de fonctionnement normal, les unités logiques assignées au processeur SP-A sont accédées par le port PoAo du contrôleur CtlA. En cas de panne du contrôleur CtlA, ces unités logiques sont accédées par le port correspondant, Pogo, du contrôleur Ctlg. Le système d'exploitation OS de l'unité centrale CPU perd un chemin de transmission de données/commandes, mais peut continuer a accéder aux ressources de stockage via le contrôleur "survivant". Pour sa part, le processeur SP-B est attaché aux contrôleurs CtlA et Ctlg par les ports PoA1 et Pog1, respectivement.

Le mécanisme de basculement des unités logiques LUN#m et leur ré-assignement sur l'un ou l'autre des processeurs de stockage, SP-A ou SP-B, se déroule de façon identique à ce qui a déià éte décrit.

Les calculs montrent que la probabilité d'une panne simultanée des deux niveaux de contrôleurs (contrôleurs d'entrée-sortie, CtlA et CtlB, et processeurs de stockage, SP-A et SP-B) est extrêmement faible.

Bien que l'architecture qui vient d'être décrite reponde parfaitement aux besoins de l'invention, il est encore possible de l'améliorer, notamment pour assurer un parallélisme de fonctionnement plus élevé en doublant le nombre de contrôleurs d'entrée-sortie, c'est-à-dire en prévoyant deux ensembles redondants, soit quatre contrôleurs, Ctl1 à Ctl4 comme illustré schématiquement par la figure 7.

De façon pratique, on suppose que les contrôleurs sont réalisés, chacun, sur une carte de circuits imprimés et que ces cartes sont enfichées dans des emplacements de connecteurs. On suppose, en outre, pour les différentier lors del'adressage par le système d'exploitation OS de l'unité centrale CPU, que les cartes des contrôleurs Ctl1 et Ctl2 sont enfichées dans des emplacements impairs (fentes ou "slots" selon la terminologie anglo-saxonne) et que les cartes des contrôleurs Ctl3 et Ct4 sont enfichées dans des emplacements pairs. Les contrôleurs Ctl1 et Ctl2 10 constituent, pour le système d'exploitation OS de l'unité centrale CPU, le premier chemin d'accès pour les groupes de dispositifs logiques assignés aux processeursSP-A et SP-B, respectivement. Les contrôleurs Ctl3 et Ctl4 constituent le secondchemin d'accès pour les groupes de dispositifs logiques assignés aux processeursSP-A et SP-B, respectivement.

Les ports "0", Po10, et "1", Po21, des premier et deuxième contrôleurs, Ctl1 et Ctl2, sont reliés entre eux par un bus. Les ports "1", Po1 1, et "O", Po20, des premier et deuxième contrôleurs, Ctl1 et. Ctl2, sont reliés entre eux par un bus. De même, les ports "0", Po30, et "1", Po41, des troisième et quatrième controleurs, Ctl3 et Ctl4, sont reliés entre eux par un bus. Les ports "1", Po31, et "0", Po40, des troisième et quatrième contrôleurs, Ctl3 et Ctl4, sont reliés entre eux par un bus.Tous ces bus sont représentés en traits pointillés sur la figure 7 et forment des chemins de réserve pour l'accès à un dispositif logique donné.

Les ports"0", Po10 et Po30, des contrôleurs Ctl1 et Ctl3 sont attachés par une première paire de bus au premier processeur de stockage SP-A, et les ports "0", Po20 et Po40, des contrôleurs Ctl2 et Ctl4 sont attachés par une seconde paire de bus au second processeur de stockage SP-B. Ces bus sont représentés en traits pleins et constituent des chemins "normaux" pour l'accès à un dispositif logiquedonné.

Pour des architectures telles qu'lllustrées par la figure 6 et, de façon plus marquée, par la figure 7, il est nécess~ire de définir une configuration d'adressage W O 98149619 PCT~R98/00814 pour affecter les différents ports "SCSI" des contrôleurs, Ctl1 à Ctl4, en sus de la configuration d'adressage de cibles définie par la "TABLE 2".

On appelle G1 le groupe de dispositifs logiques assignés au processeur SP-A et G2 le groupe de dispositifs logiques assignés au processeur SP-B. On appelle LD#G1 et LDi~G2 les numeros de dispositifs logiques correspondant à ces groupes. On appelle enfin ID le numéro "SCSI" "initiateur" des contrôleurs Ctl1 à Ct4.
Le numéro ID pour chaque contrôleur est différent et doit suivre une règle appropriée, par exemple celle indiquée ci-après. On obtient alors la table suivante de configuration d'adressage de ces contrôleurs:
Accès Groupe Fente PortsllD
1 ~' LD#G1 impaire PortO, ID=0; Port 1, ID=1 1 ~' LD~G2 impaire Port O, ID=0; Port 1, ID=1 2 ~ LD#G1 paire Port O, ID=6; Port 1, ID=7 2 ~ LD#G2 paire PortO, ID=6; Port 1, ID=7 ll manque cependant une information permettant de configurer l'accès à un groupe de dispositifs logiques contrôlés. On utilise pour ce faire un numéro de canal physique PC. Le groupe G1 est déclaré sur un numero PC modulo 4, et le groupe G2sur un numéro PC (moduio 4)+2.

La table ci-dessus, en association avec la "TABLE 2", permet un adressage sans ambigulté de n'importe quelle ressource et à travers n'importe quel chemin d'accès, c'est-à-dire de n'importe quelle unité logique ~ccessihle individuellement par le système d'exploitation OS de l'unité centrale CPU, ce quel que soit le type de redondance ("RAID-1" ou "RAID-5") configuré pour l'ensemble multidisque MD.

A la lecture de ce qui précède, on constate aisément que l'invention atteint - bien les buts qu'elle s'est fixés. Elle permet notamment une transparence complète vis-à-vis du système d'exploitation de l'unité centrale, tout en offrant une grande redondance et en limitant les effets de suroharge en mode de fonctionnement dégradé.

W O 98/49619 PCT~R98/00814 Il doit être clair cependant que l'invention n'est pas limitée aux seuls exemples de réalisations explicitement décrits, notamment en relation avec les figures 4 à 7. En particulier, le nombre total de disques physiques élémentaires de l'ensemble multidisque et leur capacité dépend de l'application envisagée. De même, comme il a été indiqué le type de redondance adopté n'est pas limité aux deux seuls expressément décrits ("RAID1" et "RAID-5"). Enfin, bien que l'on ait considéré
implicitement que l'unité centrale était du type monoprocesseur, une architecture multiprocesseur est parfaitement concevable et reste dans le cadre de l'invention.

Disque D1 Disque D2 Disque D3 Disque D4 Disque Ds parité p1 Seg. So Seg. S1 Seg. S3 Seg. S4 Seg. Ss parité P2 Seg. Ss Seg. S6 Seg. S7 Seg. S8 Seg. Sg parité p3 Seg. S10 Seg. S11 Seg. S12 Seg. S13 Seg. S14 parité p4 Seg. S15 Seg. S16 Seg. S17 Seg. S18 Seg. S19 parité Ps seg. S20 Seg. S21 Seg. S22 Seg. S23 Seg. S24 ParitéP6 Seg. S25 Seg. S26 Seg. S27 Seg. S28 ... ... ... ... ...

Seg. Sx Seg. Sx+1 parité py Seg. Sx+2 Seg. Sx+3 W O 98/4961g PCT~R98/00814 MODE "RAID-1 " MODE "RAID-5"
LD# PC# LC# ID# LUN# PC# LC# ID# LUN#

17 2 -- 02 ~ 2 09 OA 02

Claims (17)

REVENDICATIONS
1. Procédé de connexion de l'unité centrale (CPU) d'un système de traitement de données à un sous-système comprenant des ressources de stockage de données (MD) placées sous la commande de deux contrôleurs de stockage de données (SP-A, SP-B) fonctionnant en redondance, ladite unité centrale (CPU) étant associée à au moins un contrôleur d'entrée-sortie (CtI) communiquant avec lesdits contrôleurs de stockage de données (SP-A, SP-B) par deux chemins de transmission de données distincts (B0, B1), caractérisé en ce qu'il comprend au moins les étapes suivantes:

1) une étape initiale d'assignation de tout ou partie desdites ressources de stockage de données (PD1-PD6) à un premier contrôleur de stockage de données SP-A);
2) une étape d'accession par au moins un contrôleur d'entrée-sortie (CtI), via un chemin de transmission de données (B0), dit normal, à l'une au moins desditesressources de stockage de données assignées audit contrôleur de stockage de données (SP-A), dit actif, 3) une étape de surveillance, via l'autre chemin de transmission de données (B1), dit de réserve, de l'état de l'autre contrôleur de stockage de données (SP-B), dit de réserve, et dudit chemin de transmission de données de réserve (B1).
2. Procédé selon la revendication 1, caractérisé en ce que ladite étape initiale consiste en l'assignation d'une première partition (PD1-PD3) desdites ressources de stockage de données à un premier contrôleur de stockage de données (SP-A) et d'une seconde partition (PD4-PD6) à un second contrôleur de stockage de données (SP-B) et, en cas de détection d'un état de défaillance pendant ladite étape de surveillance, ledit procédé comprend une étape supplémentaire de basculement desdites ressources de stockage de données assignées audit contrôleur de stockage de données de réserve (SP-B) vers ledit contrôleur de stockage de données actif (SP-A), et de leur réassignation à ce dernier.
3. Procédé selon la revendication 2, caractérisé en ce que, chaque contrôleur d'entrée-sortie (Ctl) associé à ladite unité centrale (CPU) stockant un module de programme de surveillance (P S) de l'état dudit contrôleur de stockagede données de réserve (SP-B), via ledit chemin de transmission de données de réserve (B1), le procédé comprend, en cas d'état de défaillance de ce module de programme de surveillance (P S) ou du chemin de réserve (B1), une étape supplémentaire de basculement desdites ressources de stockage de données assignées audit contrôleur de stockage de données de réserve (SP-B) vers ledit contrôleur de stockage de données actif (SP-A), et de leur réassignation à ce dernier.
4. Procédé de connexion de l'unité centrale (CPU) d'un système de traitement de données à un sous-système comprenant des ressources de stockage de données (MD) placées sous la commande de deux contrôleurs de stockage de données (SP-A, SP-B) fonctionnant en redondance, ladite unité centrale (CPU) étant associée à au moins un contrôleur d'entrée-sortie (Ctl) communiquant avec lesdits contrôleurs de stockage de données (SP-A, SP-B) par deux chemins de transmission de données distincts (B0, B1), caractérisé en ce qu'il comprend au moins les étapes suivantes:

1) une étape initiale d'assignation de tout ou partie desdites ressources de stockage de données (PD1-PD6) à un premier contrôleur de stockage de données SP-A);

2) une étape consistant en l'exécution de commandes d'entrée-sortie, transmises par un contrôleur d'entrée-sortie (Ctl) via ledit chemin de transmission de données normal (B0), de maniere à accéder à l'une desdites ressources de stockage de données assignées audit contrôleur de stockage de données actif (SP-A), 3) une étape de surveillance de l'état de ce contrôleur (SP-A) et dudit chemin de transmission de données normal (B0), et en ce qu'il comprend, lors de la détection d'un état de défaillance pendant cette dernière étape, les étapes subséquentes suivantes:
a/ une étape de basculement desdites ressources de stockage assignées au contrôleur de stockage de données actif (SP-A) vers le contrôleur de données de réserve (SP-B) et de leur réassignation à ce dernier;
b/ et une étape de ré-exécution desdites commandes d'entrée-sortie par ledit chemin de transmission de données de réserve (B1).
5. Procédé selon la revendication 4, caractérisé en ce qu'il comprend une étape supplémentaire, lorsqu'aucune commande d'entrée-sortie n'est exécutée, consistant en surveillance continue de l'état dudit contrôleur actif (SP-A) et dudit chemin de transmission de données normal (B0).
6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé
en ce que, chaque contrôleur d'entrée-sortie (Ctl) associé à ladite unité centrale (CPU) étant muni de deux ports d'entrée-sortie (Po0, Po1), associés par des bus de transmission de données (B0, B1) auxdits contrôleurs de stockage de données (SP-A, SP-B), et stockant des modules de programme de gestion (D0, D1) de ces ports d'entrée-sortie (Po0, Po1), le procédé comprend, en cas d'état de défaillance de l'un de ces modules de programme de gestion de port (D0 ou D1), une étape supplémentaire de basculement desdites ressources de stockage de données assignées audit contrôleur de stockage de données (SP-A ou SP-B) associé au module de programme de gestion de port défaillant (D0 ou D1) vers ledit contrôleur de stockage de données (SP-A ou SP-B) associé à l'autre port d'entrée-sortie (D0ou D1), et de leur réassignation à ce dernier.
7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé
en ce qu'il comprend une étape supplémentaire, sur détection d'un état de défaillance, consistant en la transmission d'un signal d'information vers ladite unité
centrale (CPU) indiquant ledit basculement de ressources de stockage de données et le passage d'un mode de fonctionnement dit normal à un mode de fonctionnement dit dégradé.
8. Procédé selon la revendication 7, caractérisé en ce qu'il comprend une étape initiale consistant en un test de détermination de l'état desdits contrôleurs de stockage de données (SP-A, SP-B) et des chemins associés (B0, B1), et, selon le résultat de ce test, à configurer le fonctionnement dudit sous-système de ressources de stockage (SP-A, SP-B, MD) dans ledit mode normal ou dans ledit mode dégradé.
9. Procédé selon l'une quelconque des revendications 1 à 8, caractérisé
en ce qu'il comprend une étape initiale consistant en l'application d'une configuration redondante déterminée auxdites ressources de stockage (MD).
10. Procédé selon la revendication 9, caractérisé en ce que, lesdites ressources de stockage (MD) étant constituées d'un ensemble de disques magnétiques individuels (D1-D30), ladite configuration redondante consiste à
associer à chaque disque magnétique individuel un second disque magnétique individuel, dit miroir, et à enregistrer en redondance sur celui-ci les données enregistrées sur le disque magnétique individuel qui lui est associé.
11. Procédé selon la revendication 9, caractérisé en ce que, lesdites ressources de stockage (MD) étant constituées d'un ensemble de disques magnétiques individuels (D1-D30), ladite configuration redondante consiste à
subdiviser ledit ensemble en au moins un sous-ensemble (PD1-PD6) d'un nombre déterminé de disques magnétiques individuels, à enregistrer sur ledit nombre déterminé de disques magnétiques individuels un nombre déterminé de blocs de données (S0-S4), dites utiles, et à associer à ces blocs de données au moins un bloc de données redondantes (p1), dites de parité.
12. Procédé selon l'une quelconque des revendications 9 à 11, caractérisé en ce qu'il comprend une étape initiale consistant à déterminer la nature de ladite configuration de redondance déterminée.
13. Dispositif de connexion de l'unité centrale (CPU) d'un système de traitement de données à un sous-système de stockage de données à redondance pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à
12, caractérisé en ce qu'il comprend au moins un controleur d'entrée-sortie (Ctl) associé à ladite unité centrale (CPU), deux contrôleurs de stockage de données (SP-A, SP-B) fonctionnant en redondance, un premier et un second bus de transmission de données (B0, B1) pour chaque contrôleur d'entrée-sortie (Ctl), connectés auxdits contrôleurs de stockage de données (SP-A, SP-B), de manière à former ledit chemin normal (B0) et ledit chemin de réserve (B1) pour la transmission de données, et un ensemble de ressources de stockage de données (MD) sous la commande desdits contrôleurs de stockage (SP-A, SP-B), en ce qu'une première partition (PD1-PD3) de ces ressources de stockage est assignée, dans un mode de fonctionnement dit normal, à un premier contrôleur de stockage de données (SP-A), et une seconde partition à l'autre contrôleur de stockage de données (SP-B), et en ce que chaque contrôleur d'entrée-sortie (Ctl) comprend des moyens (P S) de surveillance et de détection d'un état de défaillance des contrôleurs de stockage de données (SP-A, SP-B) et des chemins de transmission de données (B0, B1), et de basculement et de ré-assignation desdites ressources de stockage de données d'un contrôleur de stockage de données a l'autre en cas de détection d'un état de défaillance.
14. Dispositif selon la revendication 13, caractérisé en ce que lesdits moyens de surveillance et de détection d'un état de défaillance comprennent un module de programme (P S), enregistré dans ledit contrôieur d'entrée-sortie.
15. Dispositif selon l'une des revendications 13 ou 14, caractérisé en ce qu'il comprend deux contrôleurs d'entrée-sortie (Ctl A-Ctl B), fonctionnant en redondance, associés à ladite unité centrale (CPU), chacun comportant un premier(Po A0, Po B0) et un second port (Po A1, Po B1) d'entrée-sortie, le premier portd'entrée-sortie (Po A0) du premier desdits contrôleurs d'entrée-sortie (Ctl A) étant connecté par un premier bus de transmission de données audit premier contrôleur de stockage de données (SP-A) et le second port d'entrée-sortie (Po A1) de ce contrôleur (Ctl A) étant connecté par un second bus de transmission de données audit second contrôleur de stockage de données (SP-B), pour former ledit chemin normal vers lesdits premier (SP-A) et second (SP-B) contrôleurs de stockage de données, respectivement, et le premier port d'entrée-sortie (Po B1) du second desdits contrôleurs d'entrée-sortie (Ctl B) étant connecté par un premier bus detransmission de données audit premier contrôleur de stockage de données (SP-A) et le second port d'entrée-sortie (Po B1) de ce contrôleur d'entrée-sortie (Ctl B) étant connecté par un second bus de transmission de données audit second contrôleur de stockage de données (SP-B), pour former ledit chemin de réserve vers lesdits premier (SP-A) et second (SP-B) contrôleurs de stockage de données,respectivement.
16. Dispositif selon la revendication 15, caractérisé en ce qu'il comprend deux ensembles de contrôleurs d'entrée-sortie (Ctl1-Ctl2, Ctl3-Ctl4) associés à
ladite unité centrale (CPU), fonctionnant en redondance et disposés en parallèle.
17. Dispositif selon l'une quelconque des revendications 13 à 16, caractérisé en ce que lesdites ressources de stockage (MD) sont constituées d'unensemble de disques magnétiques individuels (D1-D30), en ce que ces disques individuels sont groupés en un ensemble formant une configuration de redondance déterminée, en ce que cet ensemble est divisé en unités logiques (LUN0-LUN2), eten ce que ces unités logiques sont subdivisées en des premier et second sous-ensembles, le premier sous-ensemble d'unités logiques étant assigné à un premier contrôleur de stockage (SP-A) et le second sous-ensemble d'unités logiques étantassigné au second contrôleur de stockage (SP-B).
CA002262986A 1997-04-29 1998-04-23 Procede et dispositif de connexion de l'unite centrale d'un systeme de traitement de donnees a un sous-systeme de stockage de donnees a redondance Abandoned CA2262986A1 (fr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9705279A FR2762695B1 (fr) 1997-04-29 1997-04-29 Procede et dispositif de connexion de l'unite centrale d'un systeme de traitement de donnees a un sous-systeme de stockage de donnees a redondance
FR97/05279 1997-04-29
PCT/FR1998/000814 WO1998049619A1 (fr) 1997-04-29 1998-04-23 Procede et dispositif de connexion de l'unite centrale d'un systeme de traitement de donnees a un sous-systeme de stockage de donnees a redondance

Publications (1)

Publication Number Publication Date
CA2262986A1 true CA2262986A1 (fr) 1998-11-05

Family

ID=9506417

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002262986A Abandoned CA2262986A1 (fr) 1997-04-29 1998-04-23 Procede et dispositif de connexion de l'unite centrale d'un systeme de traitement de donnees a un sous-systeme de stockage de donnees a redondance

Country Status (5)

Country Link
US (1) US6256748B1 (fr)
EP (1) EP0875832A1 (fr)
CA (1) CA2262986A1 (fr)
FR (1) FR2762695B1 (fr)
WO (1) WO1998049619A1 (fr)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19617646C2 (de) * 1996-05-02 1998-07-09 Siemens Ag Speicherzellenanordnung und ein Verfahren zu deren Herstellung
US7000069B2 (en) * 1999-04-05 2006-02-14 Hewlett-Packard Development Company, L.P. Apparatus and method for providing very large virtual storage volumes using redundant arrays of disks
US6658591B1 (en) * 2000-06-08 2003-12-02 International Business Machines Corporation Recovery from data fetch errors in hypervisor code
US6732289B1 (en) 2000-08-31 2004-05-04 Sun Microsystems, Inc. Fault tolerant data storage system
US6594745B2 (en) * 2001-01-31 2003-07-15 Hewlett-Packard Development Company, L.P. Mirroring agent accessible to remote host computers, and accessing remote data-storage devices, via a communcations medium
EP1370945B1 (fr) * 2001-02-13 2010-09-08 Candera, Inc. Traitement de basculement dans un systeme de stockage
US7472231B1 (en) 2001-09-07 2008-12-30 Netapp, Inc. Storage area network data cache
US6957236B1 (en) * 2002-05-10 2005-10-18 Oracle International Corporation Providing a useable version of a data item
US20030217211A1 (en) * 2002-05-14 2003-11-20 Rust Robert A. Controller communications over an always-on controller interconnect
US20040123027A1 (en) * 2002-10-03 2004-06-24 Workman Michael Lee Systems and methods of multiple access paths to single ported storage devices
US20040068591A1 (en) * 2002-10-03 2004-04-08 Workman Michael Lee Systems and methods of multiple access paths to single ported storage devices
US7272674B1 (en) * 2003-06-30 2007-09-18 Veritas Operating Corporation System and method for storage device active path coordination among hosts
CN100403273C (zh) * 2003-07-10 2008-07-16 中国科学院计算技术研究所 基于双向信息流的分布式监控方法
US7716406B1 (en) * 2005-03-02 2010-05-11 Crossroads Systems, Inc. Method and system for persistent reservation handling in a multi-initiator environment
US7454561B1 (en) * 2005-06-16 2008-11-18 Emc Corporation Method for operating disk drives in a data storage system
US7937617B1 (en) 2005-10-28 2011-05-03 Symantec Operating Corporation Automatic clusterwide fail-back
US20080010513A1 (en) * 2006-06-27 2008-01-10 International Business Machines Corporation Controlling computer storage systems
US8060775B1 (en) 2007-06-14 2011-11-15 Symantec Corporation Method and apparatus for providing dynamic multi-pathing (DMP) for an asymmetric logical unit access (ALUA) based storage system
JP5148236B2 (ja) 2007-10-01 2013-02-20 ルネサスエレクトロニクス株式会社 半導体集積回路及び半導体集積回路の制御方法
US7882389B2 (en) * 2008-11-18 2011-02-01 International Business Machines Corporation Dynamic reassignment of devices attached to redundant controllers
US8954808B1 (en) * 2010-11-30 2015-02-10 Symantec Corporation Systems and methods for performing input/output path failovers
WO2015047386A1 (fr) * 2013-09-30 2015-04-02 Hewlett-Packard Development Company, L.P. Interprétation de signaux reçus en provenance de bus redondants
US10181098B2 (en) 2014-06-06 2019-01-15 Google Llc Generating representations of input sequences using neural networks
US9910753B1 (en) * 2015-12-18 2018-03-06 EMC IP Holding Company LLC Switchless fabric based atomics via partial-proxy
US11068440B2 (en) 2018-08-17 2021-07-20 Jimmy C Lin Application-specific computing system and method
US11138077B2 (en) * 2019-01-24 2021-10-05 Walmart Apollo, Llc System and method for bootstrapping replicas from active partitions

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4684885A (en) * 1985-11-04 1987-08-04 Get Communication Systems Corporation Arrangement for on-line diagnostic testing of an off-line standby processor in a duplicated processor configuration
EP0288648B1 (fr) * 1987-04-22 1992-07-08 International Business Machines Corporation Commutateur de bus pour adaptateurs pour améliorer la disponibilité d'une unité de commande
US5212785A (en) * 1990-04-06 1993-05-18 Micro Technology, Inc. Apparatus and method for controlling data flow between a computer and memory devices
US5140592A (en) * 1990-03-02 1992-08-18 Sf2 Corporation Disk array system
US5379417A (en) * 1991-11-25 1995-01-03 Tandem Computers Incorporated System and method for ensuring write data integrity in a redundant array data storage system
WO1993018456A1 (fr) * 1992-03-13 1993-09-16 Emc Corporation Partage d'une unite de controle multiple dans un systeme d'unites de stockage redondant

Also Published As

Publication number Publication date
US6256748B1 (en) 2001-07-03
EP0875832A1 (fr) 1998-11-04
WO1998049619A1 (fr) 1998-11-05
FR2762695A1 (fr) 1998-10-30
FR2762695B1 (fr) 1999-05-28

Similar Documents

Publication Publication Date Title
CA2262986A1 (fr) Procede et dispositif de connexion de l'unite centrale d'un systeme de traitement de donnees a un sous-systeme de stockage de donnees a redondance
US7721146B2 (en) Method and system for bad block management in RAID arrays
JP5523468B2 (ja) 直接接続ストレージ・システムのためのアクティブ−アクティブ・フェイルオーバー
US7305579B2 (en) Method, apparatus and program storage device for providing intelligent rebuild order selection
US7111084B2 (en) Data storage network with host transparent failover controlled by host bus adapter
KR101107899B1 (ko) 동적인 물리적 및 가상 다중경로 i/o
EP2068247B1 (fr) Système de stockage et support de stockage stockant un programme correspondant de gestion de stockage
US20060277328A1 (en) System and method for updating the firmware of a device in a storage network
US20180067809A1 (en) Raid data loss prevention
FR2906908A1 (fr) Dispositif de memorisation qui est connecte a une memoire externe
US20200394112A1 (en) Reducing incidents of data loss in raid arrays of differing raid levels
US20060143503A1 (en) System and method of enhancing storage array read performance using a spare storage array
US20200393983A1 (en) Converting a raid to a more robust raid level
US20100211821A1 (en) Apparatus and method to manage redundant non-volatile storage backup in a multi-cluster data storage system
US20080126850A1 (en) System and Method of Repair Management for RAID Arrays
US10768822B2 (en) Increasing storage capacity in heterogeneous storage arrays
WO2020261023A1 (fr) Ajustement de capacité de stockage logique dynamique pour lecteurs de stockage
US7743201B2 (en) Apparatus and method to assign addresses to a plurality of information storage devices
US20200133516A1 (en) Safe shared volume access
FR2546319A1 (fr) Agencement de circuit capable d'empecher l'acces a une partie d'une memoire de commande lors de l'apparition d'une erreur dans cette partie
US10175888B2 (en) Performance-balanced heterogeneous raid
US20210072916A1 (en) Storage performance enhancement
US11809268B1 (en) Discovering host-switch link and ISL issues from the storage array
US11163482B2 (en) Dynamic performance-class adjustment for storage drives
US20240113946A1 (en) Targeted service level response time management

Legal Events

Date Code Title Description
FZDE Discontinued