|


|
Par JF Maquiné le 10 Février 2004 |    | |
Si vous avez une connexion internet rapide, vous aurez constaté que depuis dimanche dernier, le site est beaucoup plus réactif, voire quasi instantané pour la majorité des pages. Cela est du au changement de serveur et en particulier à l'adoption par notre hébergeur d'une solution de 4 disques SCSI Seagate 15000 trs/min en mode RAID 10. C'est donc l'occasion de fournir toutes les informations pour comprendre ce qu'est le RAID 10 et 01, d'autant plus que je me suis aperçu que la différence entre ces deux modes n'était pas toujours bien expliquée voire qu'on les confondait. Nous verrons d'abord ce qu'est le RAID en général, puis le RAID 0 et le RAID 1. Nous aborderons ensuite les modes RAID 10 et 01 qui se basent sur les RAID 0 et 1 mais en les associant de manière différente.
Qu'est-ce que le RAID ? RAID est l'acronyme de Redundant Array of Inexpensive Disk. En français cela donne les matrices redondantes de disques peu coûteux. L'idée de base est de faire coopérer des disques durs produits en masse (donc peu coûteux) pour produire des performances de haut niveau ainsi qu'une sécurité et une disponibilité qui en cas de panne n'empêche pas le système de fonctionner. Cette idée a commencé à voir le jour vers la fin des années 1980 (plus précisément c'est l'université de Berkeley en 1987 qui en serait à l'origine). L'article le plus célèbre à ce sujet et qui a le plus contribué à lancer cette technique est celui de Patterson en 1988, publié par ACM où était présenté le principe de ce qu'on nomme le RAID 5 (titre de l'article : 'A case for Redundant Arrays of Inexpensive Disks'.
Avant d'aller plus dans les détails, retenez la chose suivante : la technique RAID permet d'avoir une grande fiabilité car les données sont découpées en segment et chaque segment est dupliqué dans des disques physiquement différents. Le RAID offre des performances supérieures à l'utilisation d'un seul disque car les segments étant répartis sur plusieurs disques, l'ordinateur peut lire plusieurs disques durs simultanément et donc plusieurs segments de données. Bon il existe des méthodes RAID qui ne nécessitent pas la duplication complète des données pour assurer la fiabilité mais utilisent le principe de contrôle de parité, comme le RAID 5, mais nous ne les verrons pas dans cet article. A travers les techniques RAID 10 et 01 vous comprendrez beaucoup sur les principaux principes des multiples techniques de RAID.
Le RAID 0 Ce mode est le plus basique mais il utilise une technique fondamentale du RAID : la segmentation des données. Cela signifie que l'on va découper les données en petits groupes, puis répartir ces groupes sur différents disques. Il faut au moins deux disques. Le but du RAID 0 est d'augmenter les performances mais sans offrir de sécurité. En cas de panne d'un des disques durs c'est l'ensemble des données situées sur tous les disques qui devient inaccessible.
Comment le RAID 0 permet-il d'augmenter les performances ? Statistiquement les fichiers vont être coupés en plusieurs parties. Quand il faudra lire ce fichier le RAID 0 permettra à l'ordinateur d'accéder simultanément à deux parties ou plus (cela dépend du nombre de disques durs utilisés pour le RAID 0). Prenons un exemple théorique. Imaginons un système RAID 0 avec deux disques durs et un fichier de 50 Mo segmenté en deux parties stockée chacune sur un des disques durs.Lors d'une lecture, l'ordinateur pourra lire à la fois la première partie de 25 Mo et la seconde partie de 25 Mo. En théorie les débits seront doublés, ce qui signifie que l'ordinateur pourra lire deux fois plus vite le fichier de 50 Mo que s'il était stocké sur un seul disque dur. Ce qui est valable pour la lecture est dans ce cas aussi valable pour l'écriture quoique, comme la lecture est l'opération la plus souvent réalisée en moyenne c'est d'elle que dépend la performance générale d'un système RAID.
On nomme aussi le RAID 0 le 'Stripping', du mot anglais 'strip' qui signifie bande, segment.
Le RAID 1 Comme le RAID 0, le RAID 1 est un cas particulier des modes RAID. Alors que le RAID 0 ne permet qu'un gain de vitesse sans sécurité en cas de panne d'un des disques durs, le RAID 1 offre une sécurité maximum, mais aucun gain de performances. L'idée consiste à avoir pour chaque disque dur un disque qui contiendra une copie complète. Ainsi si l'un des disques durs tombe en panne le second prend le relais de manière automatique et il n'y a pas d'interruption de service.
C'est une des règles fondamentales de la sécurité des systèmes RAID. Lors d'une panne, il ne faut pas seulement pouvoir disposer d'une copie des informations, mais aussi que le système puisse continuer à fonctionner en attendant le remplacement du disque défectueux. Des technologies ont été mises au point pour permettre le retrait et le branchement de disques durs sans l'arrêt du système. On les nomme souvent 'Hot plug' pour branchement à chaud. Dans le principe, lorsqu'un disque dur tombe en panne, le système d'exploitation en est informé et isole le disque dur. Le disque est retiré, puis on en place un autre. Dès la détection du nouveau disque dur, le système d'exploitation prend en charge de rétablir le fonctionnement en mode RAID 1 ou autre RAID.
On nomme aussi le mode RAID 1, le mirroring, car il établit une image d'un original comme votre reflet dans un miroir.
Il est à noter que le RAID 1 peut quand même offrir un gain de performances en lecture si le système qui gère ce mode est suffisamment sophistiqué. Effectivement, lors de lectures comme chaque disque est une copie de l'autre, il est tout à fait envisageable que le système puisse accéder à plusieurs parties d'un même fichier simultanément en répartissant les lectures sur les deux disques durs. Toutefois ce n'est pas forcément une bonne idée, car la durée de vie moyenne d'un disque dur dépend aussi du nombre de lectures / écritures qu'il effectue. En autorisant les lectures sur le disque de secours aussi nommé disque miroir, on diminue légèrement sa durée de vie et donc statistiquement on augmente la probabilité d'une panne (cette augmentation de probabilité de panne reste quand même très faible).
|

|
Par JF Maquiné le 10 Février 2004 |    | |
Nous avons vu tous les principes de base du RAID pour comprendre le fonctionnement des modes RAID 10 et 01. Ces modes sont nommés ainsi car ils associent les modes RAID 0 et 1, mais pas de la même manière et c'est ce que nous allons voir dans le détail dans cette seconde partie.
Le RAID 01 On établit d'abord un stripping (RAID 0) c'est-à-dire une segmentation entre deux disques durs. Dans le schéma ci-dessous je découpe en 4 segments (A,B,C,D), mais en réalité il y en a beaucoup plus, mais cela suffira pour les besoins de l'explication. Une fois le stripping réalisé, on effectue un mirroring (RAID 1) pour chaque stripping.
Il est important de comprendre que le stripping forme un tout, quelque soit le nombre de disques durs qui y participent. Le mirroring s'applique à l'ensemble du stripping. Le nombre de disques durs nécessaires pour le RAID 01 est : nombre de disque du stripping fois 2. Si un des disques durs tombe en panne, le mirroring s'arrête parce que justement le stripping forme un tout. On fait un miroir non sur des disques strippés mais sur un stripping complet. C'est une différence fondamentale entre le RAID 01 et RAID 10 que nous allons voir.
Le RAID 10 On établit d'abord un mirroring entre deux ensembles de disques (RAID 1). Puis chaque ensemble est strippé (RAID 0). La différence est qu'en fait on a deux stripping indépendants. Si l'un des disques durs tombe en panne, seule une partie du mirroing et du stripping s'arrête, on diminue la sécurité et les performances, mais on ne les arrête pas. Le RAID 10 est plus sécurisé, quoique pas parfait, que le RAID 01.
Je sais que à priori le RAID 10 et 01 se ressemblent, mais c'est juste en surface. Les mécanismes sont en fait assez différents, et si le RAID 01 est plus connu que le 10 c'est parce que le 10 est plus complexe à mettre en oeuvre c'est-à-dire qu'il nécessite une carte contrôleur vraiment adaptée à cela, puisque par exemple il faut pouvoir maintenir un mirroring partiel et balancer la charge de travail pour conserver les performances lors d'une perte d'un des disques alors qu'avec le RAID 01 le mirroring s'arrête et on se retrouve dans une simple situation de RAID 0.
Quel élément de l'ordinateur gère le RAID ? S'il s'agit de disque dur SCSI, c'est un contrôleur RAID SCSI, s'il s'agit de Sata, c'est un contrôleur RAID SATA. Mais seuls les contrôleurs SCSI gèrent généralement le RAID 10. De plus le RAID, de part sa capacité à lire sur plusieurs disques durs, implique que le contrôleur puisse gérer des débits élevés ce qu'assurent le SCSI et le SATA (quoique au-délà de 4 disque le SATA ne suit plus). Il faut aussi que le contrôleur sache gérer rapidement de multiples requêtes simultanées aux disques durs. Le SCSI dans ce dernier cas reste une solution de premier ordre quelque soit le nombre de disques durs.
Conclusion Bien que proches en apparence, les RAID 10 et 01 se distinguent essentiellement dans la partie sécurité. En termes de performances ces deux solutions sont assez proches. Par contre le RAID 10 nécessite une carte contrôleur généralement haut de gamme. Qui a besoin du RAId 10 ? Les serveurs devant tourner en permanence soit 7/7 jours et 24/24 heures.
A propos si vous vous orientez vers une solution RAID 10 ou 01, il vous faudra au moins 5 disques durs. 4 pour faire fonctionner le RAID et un cinquième pour pouvoir effectuer un changement immédiat de disque dur en cas de panne d'un des disques.
|

|
Par JF Maquiné le 06 Février 2004 |    | |
Il existe plus d'une centaine de planètes connues appartenant à d'autres systèmes solaires. Osiris, découverte par une équipe dirigée par Alfred Vidal-Madjar (France) grâce au télescope Hubble, est l'une d'elles. Son nom réel est HD209458b et tourne autour de son soleil nommé HD209458. A l'époque de sa découverte (1999), on avait constaté un grand flux d'hydrogène s'en échappant, mais de nouvelles analyses (octobre 2003) ont permis de constater que la planète disposait aussi d'oxygène et de carbone à haute altitude dans leur forme atomique et non associés à d'autres éléments comme c'est généralement le cas.
En fait Osiris, comme près de 15% de ses consoeurs extrasolaires, tourne très près de son soleil (7 millions de kilomètres contre 150 millions de kilomètres pour la Terre et son soleil). De fait elle effectue sa rotation autour de son soleil en 3,5 jours (contre 365 pour la Terre). En même temps cette faible distance fait que son atmosphère est aspirée par son soleil sous l'effet de la gravitation.
S'il n'est pas rare de trouver de l'hydrogène en haute altitude pour les planètes extrasolaire proches de leur soleil, ça l'est pour l'oxygène et le carbone qui sont des éléments beaucoup plus lourds et normalement situés proche du sol. Le fait de trouver des éléments lourds en haute altitude montre que le soleil d'Osiris n'aspire pas seulement son hydrogène mais aussi son oxygène et son carbone.
C'est la première fois que l'on observe un processus d'aspiration aussi 'violent' ce qui incitera vraisemblablement les astrophysiciens à créer une nouvelle catégorie de planètes extrasolaires du type d'Osiris.
Pour la petite histoire, sachez que cette planète est située à 150 années lumière, ce qui signifie que si on voyageait à la vitesse de la lumière, il faudrait 150 années pour l'atteindre.
Comment fait-on pour observer l'atmosphère d'une planète éloignée ? En premier on attend une éclipse solaire c'est-à-dire que la planète se trouve devant son soleil. La planète ne laisse alors filtrer la lumière de son soleil qu'à travers son atmosphère. Cette lumière est modifiée par l'atmosphère de la planète, lui donnant une sorte de signature qui varie en fonction de la composition de son atmosphère. C'est cette lumière qui nous arrive qui est analysée. Dans le cas d'Osiris cela se produit tous les 3,5 jours ce qui en fait une planète prédisposée à ce type d'observation car elle permet des études rapprochées dans le temps.
On utilise pour cela des détecteurs aux ultraviolets et dans ce cas précis ceux montés sur le télescope spatial Hubble. On prend en fait des photos qui sont ensuite analysées /traitées par ordinateur durant des semaines voire des mois.
|

|
Par JF Maquiné le 03 Février 2004 |    | |
J'ai déjà eu l'occasion d'aborder la dichotomie à plusieurs reprises dans des mini-articles et nous avons pu voir que la dichotomie, si elle est une méthode rapide de recherche, n'est généralement pas considérée comme la plus rapide. On lui préfère les tables de hashing. Toutefois dans deux situations particulières, la dichotomie reste une méthode extrêmement rapide (si le nombre d'éléments reste raisonnable). C'est de ces deux cas dont je vais vous parler. Je terminerais par une réflexion pouvant amener à une potentielle amélioration de la vitesse de la dichotomie.
Recherche de grandes chaînes de caractères Si on effectue une recherche sur une table de chaînes de caractères, et si la taille moyenne de ces chaînes dépasse une certaine valeur alors la dichotomie repend un peu de terrain au Hasing. Pourquoi ? De par son principe de fonctionnement la dichotomie utilise un mécanisme qu'on peut nommer d'éjection rapide, c'est-à-dire qu'elle n'a pas la nécessité d'analyser tous les caractères des chaînes comparées. En fait une bonne partie des chaînes d'une table (admettons 50%) pourra être comparée à la valeur recherchée avec seulement une comparaison de caractères.
L'utilisation des tables de hashing au contraire implique de faire des opérations mathématiques sur chaque caractère de la chaîne recherchée et ces opérations ont un coût élevé par rapport à une simple comparaison de chaîne. En fait plus les chaînes à comparer sont longues et plus, pour un nombre d'éléments N donnés, la vitesse de la dichotomie se rapproche de celle des tables de hashing.
Bien sur quand la dichotomie trouve une chaîne égale, elles sont comparées sur l'ensemble de leurs caractères. Toutefois il ne faut pas oublier que le hashing implique plusieurs opérations mathématiques et donc le coût par caractère analysé pour le hashing est plus important. On a les formules suivantes :
- Coût du hashing :
- C*a
- Coût de la dichotomie avec échec de recherche
- Cm * Ln(N)
- Coût de la dichotomie avec réussite de recherche
- (Cm - 1) * Ln(N) + C
- C = Nombre de caractères de la chaîne à trouver
- Cm = Nombre de caractères moyen testés par la dichotomie
- a = Coefficient multiplicateur pour le coût mathématique du hashing (> 2)
- N = Nombre d'éléments de la table
- ln(N) = Nombre de chaînes de la table à comparer.
Recherche multi-clef d'une base de données Si un fichier comporte des index basés sur plusieurs champs de chaîne de caractères on se retrouve en fait dans la situation précédente, où la somme des tailles des champs correspondra à une longue chaîne de caractères. La dichotomie est donc parfaitement adaptée aux bases de données gérant les index multi-clef orientés vers les chaînes de caractères, ce qu'est le moteur de base de données d'Onversity.
Le talon d'achille de la dichotomie La dichotomie a un talon d'achille et ce indépendament de la complexité algorithmique qui lui est défavorable par rapport aux tables de hashing. Il s'agit du nombre de conditions de branchement qu'implique un code de programme exploitant la dichotomie. Je ne parle pas du nombre de comparaisons de chaînes de caractères, mais du nombre de conditions de branchement, c'est-à-dire du nombre total de : if(test) ... que la dichotomie implique pour être exploitée. Toutefois la dichotomie reçoit une aide inespérée provenant des microprocesseurs, puisque leurs algorithmes de prédiction de branchement s'améliorent régulièrement.
A partir de cette réflexion sur le talon d'achille de la dichotomie et si on regarde attentivement une fonction de dichotomie on voit qu'elle est composée de deux parties. La première s'occupe de la dichotomie elle-même et la seconde de la comparaison de chaînes de caractères. Or il serait possible qu'en assemblant ces deux fonctions on puisse diminuer légèrement le nombre de conditions de branchement. Ce n'est pas une certitude mais une proposition de voie de recherche.
|


YOUM (analyseur syntaxique temps réel) | Nombre de définitions trouvées 48 Multi-dico par texte : actif - Multi-mots par définition : 4
|
|
|


 
 
|