Category Archives: Systèmes

Tout ce qui touche a Windows & Linux

Convertir VHD en VMDK

Bonjour, en attendant la publications des gros articles dans le pipe (cfr. tweet) un petit “tips” pour convertir des virtual machine Hyper-V et plus globalement des fichiers VHD en VMDK pour les charger dans VmWare Workstation. Après des essais infructueux avec VmWare vCenter Converter, qui reste un très bon outil gratuit de conversion de VM notamment pour pomper une machine physique vers une VM, j’ai testé l’outil WinImage qui a donné de très bon résultats, sauf en terme de compression de donnée (on ne peut pas tout avoir).

L’outil est en shareware 30 jours : Cliquez ici pour l’obtenir

1. L’outil installé et lancé, allez dans Disk -> Convert Virtual Hard Disk Image. Une fenêtre d’exploration s’ouvre, allez sélectionner le VHD à convertir.

2. Un fois le VHD sélectionner vous avez le choix entre un disque à taille fixe ou un disque dynamique. Pour rappel, si on a un disque de 100Go rempli a 50% (donc 50Go) :

  • Fixed : Fichier de 100Go sur le disque mais gain en performance, moins de fragmentation coté hôte, mais consomme plus de place.
  • Dynamic : Fichier de 50Go mais perte de performance et augmente le taux de fragmentation du fichier, mais consomme moin de place.

Pour ma part je m’oriente plus souvent vers du fixed 😉


3. Ensuite, un nouvelle boite d’exploration, n’oubliez pas de préciser le type de fichier cible (vmdk) car le choix par defaut est vhd.

4. Enfin, il n’y a plus qu’a attendre que la conversion soit finie.
J’ai converti un VHD de 150Go sur un 10 000k/rpm  en 1H +/-. (sur ce type d’actions c’est le HDD qui fait goulot d’étranglement)

A bientôt pour les articles sur FxCop et l’écriture de règles, Microsft Common Compiler Infrastructure, la création de custom template dans visual studio et pleins d’autres choses 🙂

Build 2011 : Présentation de Windows 8

Enfin plus d’infos sur Windows 8. Aujourd’hui se tenait la première keynote de l’event Build à Anaheim et franchement… WOAW !
(Désolé pour l’orthographe il est 5H30 du matin et j’en suis à mon 2éme thermo… ^^ )

Microsoft avait déjà publié une preview video d’un 10éne de minute si je me souviens bien sur win8 avant les vacances, vidéo que j’avais publié ici même. Mais là on a eu plus d’infos sur la partie développement et surtout la M3 la se mettre sous la dent. A ce sujet la fin de la keynote s’est conclue sur les prochaines étapes en insistant sur le fait que cela se déroulerait exactement comme avec seven, les spéculation sur la date de sortie vont donc aller de bon train, mais je ne rentrerai pas la dedans.

La conférence peut être divisé en 6 partie : Intro, User interface, Développement, Hardware, Professional et Live.

La dernière partie m’ayant nettement ennuyé je la résume directement : Tout sera externalisé sur le cloud. Y compris la configuration qui peut être roamé. Voila…

Bon, suivant, je passe l’intro, réalisé pour les pressés ne voulant pas attendre la fin et entame la partir User Interface. L’UI reprend la philosophie Metro de phone7. Philosophie qui peut se résumer à « no more chrome », remarque qui, lorsque faite lors de la présentation de ie10 prend un gout tout particulier. Donc un design épuré, des aplats, une navigation horizontal a l’inverse du phone7 qui est vertical.

Le système est orienté touch mais fonctionne très bien au combat clavier/souris. Au pire un clavier visuel est intégré. De même un T9 est intégré pour faciliter la saisie. Durant l’utilisation l’accès aux settings se fait aisément grâce a un menu latéral donnant à la fois accès aux settings système et applicatifs. Les applications peuvent être splitté gauche/droite, comme sous seven, très facilement. Les applicatifs suivent eux aussi la philosophie Metro. Le search a été amélioré puisqu’il peut maintenant en plus faire des recherche au travers des applicatifs installé et sur le web. L’interface classique avec menu démarrer reste toujours disponible pour une utilisation plus professionnelle. Le système semble aussi très orienté social networking avec des API qui semblent intégré de base.

L’expérience utilisateur se résumé en :

–          Rapide et fluide

–          Immersif et plein écran

–          « Touch first »

–          Connecté au web et consommation massive de web services

–          Multiplateforme (32/64/ARM)

Coté dev là c’est la surprise… je vous laisse savouré ce schéma et ne ferai aucun commentaire dessus… c’est beau…

Sinon coté blend5, support du html/css et possibilité de simuler le rendu sur différentes position (couché gauche, couché droite, retourné, normal) et différentes résolution. Une fonctionnalité rassurante pour beaucoup d’entre nous évitant ainsi le stress du rendu hasardeux. Coté VS2011 un nouveau menu apparait permettant de directement déployer ses applicatifs sur le Store qui fournit une gestion du licensing avec trial possible, vente et catégorisation. Une série de tests de validation sont effectué comme sous phone7 avec une amélioration niveau traçabilité au travers de 6 étapes : Pre-processing, Security, Technical compliance, Content compliance, Signing and publishing, Release.

La rétro compatibilité avec les applicatifs existant semble être assuré et la migration a Metro de l’existant semble également ultra simple. La « migration » d’application windows 8 vers phone7 se fait ultra simplement en une ligne et une option. Coté web IE10 améliore son moteur de rendu javascript/html5.

Coté hardware, début avec le temp de boot, impressionnant et quasi instantané. Ubuntu qui se vantait de booter rapidement peut aller se rhabiller. Coté consommation mémoire c’est aussi une bonne surprise puisque windows8 est plus leger que seven. Ceci dit seven a été comparé à windows8 sans le superfetch (consommation de 480Mo pour 7 et 250Mo pour 8). Un boot locker a été intégré évitant la catastrophe, démonstration à l’appui avec un rootkit. La consommation en veille a été aussi améliorée et s’approche du quasi nulle. L’usb3 sera supporté et la taille maximal des disque de boot passe de 2TB a 2056TB… de quoi voir venir… Une démonstration avec directx11 a été aussi réalisé afin de mettre en avant l’accélération graphique, ce qui, vu l’utilisation massive de ce qui ressemble à du WPF est logique. Comme sous phone7 la gestion des sensor est intégré et facile a développer. Un hardware de chez Samsung a été présenté comme le Windows 8 Developper PC avec un core i5 seconde génération, 4GBramDDR3, SSD64Gb, écran 11’’ tactile, dock station, système, environnement de développement, sensor, 3g… et un abonnement gratuit d’un an chez AT&T a 2GB/mois.

Ensuite partie Pro et « divers ». Un nouveau task manager apparait avec un mode enduser et avancé. Les processus peuvent être mis en suspend lorsqu’ils ne sont plus au premier plan. A ce moment ils ne consomment plus de CPU. Un historique des applications lancées est également accessible. Les copies de fichier peuvent être mises en pause. Un système de backup a deux niveaux est mis en place, restauration du système (conservation du fichier) et re-init usine. Ce qui existait déjà sous win7 donc j’attends de voir le nouveau dedans. Le remote desktop bénéficie aussi du touch. Coté virtualisation Hyper-V pourra être installé sur win8 et les VHD pourront directement être browsé depuis l’explorer qui intègre maintenant l’ergonomie Ribbon de Office. La gestion du multiscreen a été aussi modifiée avec des wallpaper étendu et des menus démarrés étendu avec une gestion isolée de chacun.

Et enfin la partie Live résumé plus haut.

Je vous conseille tout de même de jeter un oeuil au webcast. Si vous ne parlez pas anglais, je ne sais pas si le CC sera disponible (il ne l’était pas pour moi). Mais ça se passe ici : http://www.buildwindows.com/

Et pour obtenir la M3 de win8 : http://msdn.microsoft.com/en-us/windows/apps/br229516

Sur ce, je vais installer cette M3, chipoter et vous faire une vidéo de preview courant de journée.

Bon amusement 😀

(Désolé pour l’orthographe il est 5H30 du matin et j’en suis a mon 2éme thermo… ^^ )

Windows 8 – Metro 4 all’

Bonjour à tous,

Microsoft a dévoilé publiquement pour la première fois officiellement une preview de son système d’exploitation Windows 8 qui devrait normalement sortir vers 2013(1). Ce dernier reprend dans les grandes lignes la philosophie d’UI Metro, déjà utilisé sur les plateformes mobiles de Microsoft (phone7). Cette dernière est très efficace d’un point de vue expérience utilisateur sur des smart phone, mais le sera-t-elle sur des ordinateurs plus traditionnels ? N’ayant pas et ne comptant pas investir dans un écran 50” tactile comme dans la démo, cette ergonomie me fait pour ma part un peu peur, heureusement on voit que il est toujours possible d’utiliser conjointement a l’ergonomie Metro l’ergonomie de windows 7 (3”00 dans la vidéo). Cela ayant été dit je suis donc rassuré sur la prochaine mouture de Microsoft qui vise a unifier toutes les plateformes sur une interfaces communes. A noter aussi que ce sera la première fois que le menu démarrer ne sera plus central dans l’ergonomie d’utilisation du système. (Hors Windows 3.1 et <).

Une conférence aura lieu en septembre concernant le développement sur cette futur plateforme, qui, comme on peut déjà s’imaginer sera orienté principalement autour du WPF. (Iil serait étonnant que microsoft garde encore les winforms pour d’autre raison que la retro compatibilité).

Howto : Windows password recovery

Salut tout le monde, fait un bail que je n’ai plus rien publié donc voici un petit howto sur comment reprendre la main d’une machine windows xp/vista/seven quand on a perdu ses credentials.

Le howto est disponible sur Scribd : http://www.scribd.com/doc/55294877/chntpw

Et en téléchargement ici : chntpw

Je vais également publier courant de semaine prochaine 1 article et deux classes. Lesw deux classes : une première pour gérer les mmi (dans le but de lecture media), une second encapsulant de l’interop win32 permettant de manipuler l’écran et ses résolutions. L’ article : dev windows phone 7 ^^

A très bientôt

Migration de Debian 5 (Lenny) a Debian 6 (Squeeze)

Salut à tous, comme beaucoup, j’attends depuis longtemps la sortie de Debian 6 Squeeze et ça y est, la nouvelle mouture de Debian , nom de Code Squeeze (en rapport aux petits extra-terrestre vert de Toy Story) est disponible depuis peu.

Debian 6 introduit un système de boot « dependency based » (amorçage par dépendances) rendant le démarrage plus fiable et rapide grâce à l’exécution parallèle des scripts de démarrage. La prise en charge de LDAP a également été rajoutée mais également la configuration unifiée des claviers et la gestion des KMS.  Pour la liste complète veuillez-vous référer au site officiel de la distribution Debian. La migration de Debian 6 se fera avec l’outil de management de package apt.

Attention, il est plus que recommandé de faire un backup du système avant la migration ! De plus préparez-vous si vous a redémarrer votre machine (cette précision est importante pour les gens en environnement serveur)
Si vous rencontrez des problèmes lors de la migration, vous pouvez vous rendre sur le site de Debian.

Commençons maintenant la migration.
La première chose à faire est d’éditer /etc/apt/sources.list et remplacer « Lenny » par « squeeze ».

On met ensuite a jours la liste des package

apt-get update

Nous allons tout d’abord vérifier que l’espace disque est suffisant avec la commande suivant :

apt-get -o APT::Get::Trivial-Only=true dist-upgrade

Ensuite on passe a la mise a jours minimale des package :

apt-get upgrade

Les paquets a jours il nous faut mettre a jours notre kernel et udev. Pour récupérer la variante de votre noyau tapé la commande suivante :

dpkg -l “linux-image*” | grep ^ii

Ensuite installez le paquet linux image associé :

apt-get install linux-image-2.6-<variante>

Dans mon cas cela donne :

apt-get install linux-image-2.6-686

Et enfin udev :

apt-get install udev

Maintenant que les paquets, le kernel et udev sont à jours on redémarre la machine. (Nécessaire)

Le système redémarré nous pouvons faire la mise a jours complète du système. Cette commande installera les versions les plus récente de tous les packages, résoudra les problèmes de dépendances, installera des package supplémentaires si nécessaire et supprimera les paquets obsolètes et/ou conflictuels.

apt-get dist-upgrade

Par exemple durant l’upgrade, Bash pourra être remplacé par Dash (version plus light de Bash mais avec quelques fonctionnalités en moins) et Grub sera migré en Grub 2 ainsi que l’installation du système de chargement par dépendances.

Voila, si tout s’est bien passé vous avez maintenant votre système mis a jours avec Debian 6. Chez mois cette update n’a pris que 45 min +/-.

Si vous rencontrez des problèmes, le site de Debian fournit une documentation complète sur la migration du système.

Inform@tiquement
Istace Emmanuel

Howto : OTP pour SSH sous Debian GNU/Linux

Qu’est-ce que OTP ?

OTP signifie « One Time Password » ou Mot de passe a Usage Unique. C’est un mot de passe valable pour une seul session.

Pourquoi OTP ?

Le principal avantage de cette méthode est qu’elle ne permet pas de mettre en place de attaques par  rejeux. C’est-à-dire que si quelqu’un enregistre le traffic entre le client et le serveur puis rejoue ce traffic dans le but de s’authentifier, ce dernier ne pourra pas le pass n’etant valide que pour une session qui a déjà été consommé vu qu’il a pu l’enregistrer. OTP tire parti de nombres aléatoires afin de ne pas pouvoir prédire les OTP. (A l’inverse des Sequence Number sous NT4 par exemple).

Comment fonctionne OTP ?

Il y a 3 approches principales :

  • OTP basé sur la synchronisation entre le serveur et le client (valide pour une seule periode de temp).
  • La génération mathématique du password selon le précédent password.
  • L’utilisation de challenge et d’algorithmes mathématique et/ou un compteur.

Il y a plusieurs manières de faire parvenir au client le prochain OTP, avec des token electronique, un client web, d’autre avec un daemon qui tourne sur le mobile du client ou enfin, la plus simple, les OTP sont ecris sur une feuille emporté avec la machine. (La plus connue, mais la plus risqué !! )

Installation

Voici les paquets à installer pour faire fonctionner l’OTP sur Debian.

apt-get install libpam-opie opie-server opie-client

Configuration

Configuration OTP

Il est fortement recommandé de générer les OTP et les challenges en local sur la machine. En effet, si au moment de la création, via ssh par exemple, de vos OTP un hacker sniff votre communication,  il récupère alors les OTP, malgré le SSL dessus qui peut être Spoofé.

Nous allons maintenant générer un challenge OTP associé à votre compte avec un password.

debian:~# opiepasswd –c root
Updating root:
Using MD5 to compute reponses.
Enter new secret pass phrase : passwordopie
Again new secret pass phrase : passwordopie

ID root OTP key is 499 de8236
SLOB HOLM NARY MARE BOLO TORN
debian:~#

J’ai ici créé mon challenge pour me connecter. Mon password opie est « passwordopie » et mon password système est « password ». On vas ensuite généré 50  OTP pour root.

debian:~# opiekey -n 50 499 de8236
Using the MD5 algorithm to compute response.
Enter secret pass phrase : passwordopie
490 … ICI la liste des OTP
debian:~#

Nous avons maintenant créé nos OTP. Il ne nous reste plus qu’a intégré cela avec pam dans l’authentification SSH.

Configuration SSH

Pour permettre a ssh d’employer des OTP il faut modifier le fichier /etc/pam.d/sshd. On doit rajouter la ligne : auth sufficient pam_opie.so

Voici a quoi ressemble le mien :

debian:~# cat /etc/pam.d/sshd
# PAM configuration for the Secure Shell service
auth     sufficient pam_opie.so
auth     required    pam_unix.so
auth     required    pam_deny.so
session  required    pam_limits.so                # Limits
session  optional    pam_motd.so                  # MOTD
session  optional    pam_mail.so standard noenv   # MAILBOX
debian:~#

Se connecter

Un fois cela fait, redémarrez ssh et tentez de vous loguer en SSH.

login as: root
Password: password #celui du système
otp-md5 497 de8236 ext, Response: NIBS COME JILL BEAU ED MOB
Welcome Home Manu ^^
Last login: Fri Jan  7 00:12:11 2011 from 192.168.0.103
debian:~#

OTP Generator

Coté client j’utilise une petite applet java OTPGenerator qui est un s/Key Generator en Java et respecte le RFC 2289. Il dérive du projet JOTP de Harry Mantakos et reprend certaines de ses sources. Un lien vers le logiciel est fourni a la fin du howto. L’applet se trouve dans bin.

Dans password je renseigne passwordopie, le password donné lors de la création du challenge. Ensuite je renseigne la Sequence et le challenge que j’ai pour me connecter. Le hash doit être en MD5 (par defaut, le MD5 est utilisé). En fois cliqué sur calculé nous obtenons la clef a renseigné au serveur. Ici : NIBS COME JILL BEAU ED MOB

jsOTP(404)

jsOTP est un projet sous licence BSD de Jeremy Lin se composant de librairies javascript permettant de calculer ses Token en MD5, MD4, sha-1, ripemd-160 et de les traiter par lots.
Voici une implémentation que j’ai réalisé qui correspond a notre besoin en MD5 avec un format 6 mots. http://manu404.dyndns-home.com/jsotp404/

Il fonctionne en JavaScript avec JqueryUI. Une archive est disponible dans les ressources.

Référence

Logiciels

Documents

Liens

License

Copyright (c) 2011 Istace Emmanuel.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant sections, with Front-Cover Texts : “Howto : OTP pour SSH sous Debian GNU/Linux, and no Back-Cover Texts.  A copy of the license is included in the section entitled “GNU Free Documentation License”.

Copyright (c) 2011 Istace Emmanuel.
Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence GNU Free Documentation License, Version 1.2 ou ultérieure publiée par la Free Software Foundation ; avec aucune section altérable, Avec le texte de première page de couverture suivant : « Howto : OTP pour SSH sous Debian GNU/Linux », sans texte de dernière page de couverture. Une copie de cette Licence est incluse dans la section appelée « GNU Free Documentation License » de ce document.

Howto RAID sous Debian GNU/Linux

Voici un howto sur comment utiliser dur RAID5 avec mdadm sous Debian GNU Linux. Une version PDF est disponible.

Introduction

A Propos

Ce Howto a été écrit dans le but monter un serveur avec l’utilisation de RAID sous un système Debian  Lenny 5.0 GNU/Linux. Ce document est sous licence FDL v1.2. Ce Howto s’intègre dans une série de howto destiné a créé un RAID avec LVM et Quota.

Licence

Copyright (c) 2011 Istace Emmanuel.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant sections, with Front-Cover Texts : “Howto RAID LVM & Quota sous Linux”, and no Back-Cover Texts.  A copy of the license is included in the section entitled “GNU Free Documentation License”.

Copyright (c) 2011 Istace Emmanuel.
Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence GNU Free Documentation License, Version 1.2 ou ultérieure publiée par la Free Software Foundation ; avec aucune section altérable, Avec le texte de première page de couverture suivant : « Howto RAID LVM & Quota sous Linux », sans texte de dernière page de couverture. Une copie de cette Licence est incluse dans la section appelée « GNU Free Documentation License » de ce document.

Théorie

Un RAID est un ensemble de technique mise en œuvre sur plusieurs disques durs pour augmenter les performances, la sécurité ou la fault tolerance. Il y a 3 principaux types de RAID, le RAID 0, 1, 10 et 5.

RAID 0

Le RAID 0, aussi appelé striping consiste a répartir les données sur deux disque dur comme le montre le shema ci-dessous. Le premier bloc est sur sda et le second sur sdb. Sa capacité est egale a la taille du plus petit disque du RAID multiplié par le nombre de disque. Par exemple 1disque de 300Go et deux disque de 250Go en RAID 0 donnent une capacité totale de 750 Go (250 * 3). Malheureusement avec ce type de RAID il n’y a aucune redondance et donc, la perte d’un des disque provoque une perte de donnée.

RAID 1

Le RAID 1 ou mirroring consiste a utiliser n disque redondant (au minimum 2) et e copier sur chacun les mêmes données. Sa capacité est egale a celle du plus petit disque dur du RAID, au niveau de lka fiabilité par contre, le gain est évident. Elle accepte une déffaillance de n-1 disques. Ainsi, si nous mettons 4 disque de 200Go, nous aurons 200Go d’espace disponible et on pourra perdre 3 disque dur dans le RAID avant de perdre des données. Malheurement les couts sont proportionnelle au nombre de mirror alors que la capacité reste identique.

RAID 10 (ou RAID 1 + 0)

Ce type de RAID est un raid composé. Il consiste a créé un RAID 0 avec deux RAID 1. On a donc du striping de mirror. Il faut au minimum 4 disque pour créé un RAID 10. Sa capcité est egale a la taille du plus petit RAID1 multiplié par le nombre de RAID 1 dans le RAID0. Ainsi si je créé 2 RAID 1 composé de 2 disque de 200Go j’ai : 200Go * 2 = 400Go.

RAID 5

Le RAID5 se base sur le stripping et une parité. Chaque bande est donc constituée de N blocs de données et d’un bloc de parité. Ainsi, en cas de défaillance de l’un des disques de la grappe, pour chaque bande il manquera soit un bloc de données soit le bloc de parité. Si c’est le bloc de parité, ce n’est pas grave, car aucune donnée ne manque. Si c’est un bloc de données, on peut calculer son contenu à partir des N − 1 autres blocs de données et du bloc de parité. L’intégrité des données de chaque bande est préservée. Donc non seulement la grappe est toujours en état de fonctionner, mais il est de plus possible de reconstruire le disque une fois échangé à partir des données et des informations de parité contenues sur les autres disques. Le RAID5 utilise des Spare disque, disque qui sont mis en spool et monté puis reconstruit en cas de défaillance d’un des disque. Sa capacité est égale a la somme de la capacité des N – 1 disque. 3 disque de 200 Go en RAID5 fournissent donc 400 Go d’espace utile.

Mise en place sous Debian GNU Linux

L’outil mdadm

Cet outil sera utilisé pour créer et administrer notre RAID. S’il n’est pas présent sur votre système, installez le paquet.

root:~# apt-cache search mdadm
mdadm – tool to administer Linux MD arrays (software RAID)
root:~#

Son fichier de configuration se trouve dans /etc/mdadm/mdadm.conf sous Debian. Il est nécéssaire de formater les disque au type 0xFD (Linux RAID autodetect).

RAID 0

On va ici créer un RAID0, donc du striping. On aura donc un partie des données sur chacun des disques. Si vous utilisez une virtual machine mais en savez pas comment ajouter un disque dur, reportez-vous aux Annexes de ce HowTo pour VmWare Workstation et Oracle VirtualBox
Voici comment ce que l’on va faire :

On a donc deux partitions, sda et sdb que l’on montera en RAID 0.

root:~# mdadm –-create /dev/md0 –-level=raid0 –-raid-devices=2 /dev/sda /dev/sdb

–create /dev/md0     Création d’un RAID représenté par /dev/md0
–level=raid0         Type de raid a créé, ici raid0
–raid-devices=2      Nombre de disque dans le RAID
/dev/sda /dev/sdb     Devices du RAID

On peut maintenant créé notre filesystème sur le RAID

root:~# mkfs –t ext3 /dev/md0
root:~# mkdir /mnt/raid0
root:~# mount –t ext3 /dev/md0 /mnt/raid0

RAID 1

Passons au RAID 1, ici les données sont dupliquées sur chaque disque du RAID

Le principe est le même que en RAID0 mais avec un partition de secoure en plus et le level en raid1 et non raid0.

root:~# mdadm –-create /dev/md0 –-level=raid1 –-raid-devices=2 /dev/sda /dev/sdb -–spare-devices=1 /dev/sdd

–create /dev/md0     Création d’un RAID représenté par /dev/md0
–level=raid0         Type de raid a créé, ici raid0
–raid-devices=2      Nombre de disque dans le RAID
/dev/sda /dev/sdb     Devices du RAID
–spare-devices=1      Nombre de disque de secoure
/dev/sdd              Disques de secour a utilisé

On peut maintenant créé notre filesystème sur le RAID

root:~# mkfs –t ext3 /dev/md0
root:~# mkdir /mnt/raid1
root:~# mount –t ext3 /dev/md0 /mnt/raid1

RAID 10

Passons au RAID 10, nous allons pour cela créé deux matrices RAID 1 que l’on vas regrouper sur une matrice RAID 0.

On vas créé les deux matrices RAID 1

root:~# mdadm –-create /dev/md0 –-level=raid1 –-raid-devices=2 /dev/sda /dev/sdb
root:~# mdadm –-create /dev/md1 –-level=raid1 –-raid-devices=2 /dev/sdc /dev/sdd

Nos deux RAID 1 (/dev/md0 et /dev/md1) créé, on vas les regrouper dans un RAID 0

root:~# mdadm –-create /dev/md2 –-level=raid0 –-raid-devices=2 /dev/md0 /dev/md1

On peut maintenant créé notre filesystème sur le RAID0 de RAID1

root:~# mkfs –t ext3 /dev/md2
root:~# mkdir /mnt/raid10
root:~# mount –t ext3 /dev/md2 /mnt/raid10

RAID 5

Enfin le RAID 5, nous utiliserons ici 4  disques également dont un de secoure.

Le principe est le même que en RAID0 mais avec un partition de secoure en plus et le level en raid1 et non raid0.

root:~# mdadm –-create /dev/md0 –-level=raid5 –-raid-devices=3 /dev/sda /dev/sdb /dev/sdc -–spare-devices=1 /dev/sdd

On peut maintenant créé notre filesystème sur le RAID

root:~# mkfs –t ext3 /dev/md0
root:~# mkdir /mnt/raid5
root:~# mount –t ext3 /dev/md0 /mnt/raid5

Administration

Verifier le RAID

Il y a deux possibilities pour verifier l’etat du thread. Le fichier /proc/mdstat et la commande mdadm.

root:~# watch cat /proc/mdstat

Every 2,0s: cat /proc/mdstat                                                                                                                    Tue Jan  4 03:06:33 2011

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]

md0 : active (auto-read-only) raid5 sdb[0] sde[3](S) sdd[2] sdc[1] 208768 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

md1 : active (auto-read-only) raid5 sdf[0] sdi[3](S) sdh[2] sdg[1] 208768 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

resync=PENDING

unused devices: <none>

Ou bien mdadm –detail <device>

root:~# mdadm –detail /dev/md0
/dev/md0:
Version : 00.90
Creation Time : Tue Jan  4 01:24:08 2011
Raid Level : raid5
Array Size : 208768 (203.91 MiB 213.78 MB)
Used Dev Size : 104384 (101.95 MiB 106.89 MB)
Raid Devices : 3
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Tue Jan  4 01:46:14 2011
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1

Layout : left-symmetric
Chunk Size : 64K

UUID : b8c892c6:c59a3628:f0e976dc:8f6e00c0
Events : 0.10

Number   Major   Minor   RaidDevice State
0       8       16        0      active sync   /dev/sdb
1       8       32        1      active sync   /dev/sdc
2       8       48        2      active sync   /dev/sdd
3       8       64        –      spare   /dev/sde

Ajouter un disque dur

Pour ajouter un disque dur a la matrice de RAID on utilise l’option –a de mdadm :

root:~# mdadm /dev/md0 –a /dev/sdx
mdadm: hot added /dev/sdax

Avec cela on ajoute sdx au Raid md0

Suprimer un disque dur

Pour enlever un disque dur de la matrice de RAID on utilise l’option –d de mdadm :

root:~# mdadm /dev/md0 –d /dev/sdc
mdadm: hot removed /dev/sdc

Ainsi on suprimme /dev/sdc de md0

Simuler une panne et remplacer un disque

Pour tester le bon fonctionnement du RAID il est intéressant de créé des pannes.

root:~# mdadm /dev/md0 –f /dev/sdd
mdadm: set /dev/sdd to faulty in /dev/md0

Ainsi le disque sdc est passé en faulty :

md0 : active (auto-read-only) raid5 sdb[0] sde[3](S) sdd[2](F) sdc[1] 208768 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

Si un spare disk est présent, il sera automatiquement utilisé pour remplacer le disque déffecteux. Voici maintenant comment remplacer sdd, qui est maintenant « foutu » de notre RAID.

root:~# mdadm /dev/md0 –d /dev/sdd
mdadm: hot removed /dev/sdd

root:~# mdadm /dev/md0 –a /dev/sdr
mdadm: hot removed /dev/sdr

On a suprimer sdd du RAID et on a mis sdr a sa place. Si le RAID est complet, ce disque sera rajouté dans les spare disk en cas de futur panne.

Annexes

Annexe A : Ajout de disque dur sous VmWare Workstation

a.       Se rendre dans le menu de configuration du hardware de la VM. (Si elle est en exécution, double cliquer sur l’icône du disque dur en bas à droite)

b.      Cliquer sur Add

c.       Choisir Hard Disk puis suivant.

d.      Choisir Create a New Virtual Disk

e.      Choisir SCSI comme type de disque virtuel.

f.        Ici vous définissez la taille que vous désirez pour votre nouveau disque et cliquez sur suivant

g.       Sur la plupart du système, si vous ajoutez un disque, vous devrez redémarrer la VM.

Sources & Référence