Archives 2011

08
février 2011

INSIA - Technologies UNIX : TP N°3

Rédigé par Matthieu CERDA   Aucun commentaire   Mis à jour le  08/02/2011

Aujourd'hui, on fait du RAID !

Commençons par créer deux HDD pour la VM, soit via VirtualBox/QEMU/YMMV, soit via :

[code lang="shell"]
VBoxManage clonehd
VBoxManage clonehd
[/code]



On lance la VM et on obtient :

[code lang="shell"]
% dmesg

[    7.286698] sd 0:0:0:0: [sda] 16777216 512-byte hardware sectors (8590 MB)
[    7.287451] sd 0:0:0:0: [sda] Write Protect is off
[    7.287460] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    7.287757] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    7.289939] sd 0:0:0:0: [sda] 16777216 512-byte hardware sectors (8590 MB)
[    7.290105] sd 0:0:0:0: [sda] Write Protect is off
[    7.290114] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    7.290413] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    7.290447]  sda: sda1 sda2
[    7.319499] sd 0:0:0:0: [sda] Attached SCSI disk
[    7.320055] sd 1:0:0:0: [sdb] 16777216 512-byte hardware sectors (8590 MB)
[    7.320055] sd 1:0:0:0: [sdb] Write Protect is off
[    7.320055] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    7.320194] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    7.320644] sd 1:0:0:0: [sdb] 16777216 512-byte hardware sectors (8590 MB)
[    7.320858] sd 1:0:0:0: [sdb] Write Protect is off
[    7.320870] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    7.321269] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    7.321287]  sdb: sdb1 sdb2
[    7.325881] sd 1:0:0:0: [sdb] Attached SCSI disk

% sudo sfdisk -l /dev/sda
[sudo] password for kegeruneku:

Disk /dev/sda: 1044 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sda1          0+    248     249-   2000061   83  Linux
/dev/sda2        249     372     124     996030   82  Linux swap / Solaris
/dev/sda3          0       -       0          0    0  Empty
/dev/sda4          0       -       0          0    0  Empty

[/code]

On wipe le second disque si c'est une copie du premier :

[code lang="shell"]
root@VM # dd if=/dev/zero of=/dev/sd{b,c} bs=1M count=512
512+0 enregistrements lus
512+0 enregistrements écrits
536870912 bytes (537 MB) copied, 7,62033 s, 70,5 MB/s
root@VM # sync
root@VM # # Et on crée des partitions identiques sur les deux via cfdisk, puis :
root@VM # sfdisk -d /dev/sdb | sfdisk /dev/sdc # Hop on copie la table de partitions
root@VM # aptitude install mdadm
[/code]

Petit topo sur le RAID : Wikipédia

[code lang="shell"]
% # Et c'est parti !
% sudo mdadm -C /dev/md0 --level=raid1 --raid-devices=2 /dev/sdb /dev/sdc
# On peut utiliser un disque ou une partition, au choix. Linux MD Powah !
mdadm: array /dev/md0 started.
% sudo mke2fs -j /dev/md0

% sudo mkdir /mnt/raid && sudo mount /dev/md0 /mnt/raid
% # Et voila. On a un RAID1 *magie*
% # On peut essayer de déclarer un disque cassé :
% sudo mdadm --set-faulty /dev/md0 /dev/sdc
mdadm: set /dev/sdc faulty in /dev/md0

% mail
Mail version 8.1.2 01/15/2001.  Type ? for help.
"/var/mail/kegeruneku": 1 message 1 new
>N  1 root@trollface.et  Tue Feb 08 12:43   31/1126  Fail event on /dev/md0:trollface
& 1
Message 1:
From root@trollface.etudiant.insia.org Tue Feb 08 12:43:42 2011
Envelope-to: root@trollface.etudiant.insia.org
Delivery-date: Tue, 08 Feb 2011 12:43:42 +0100
From: mdadm monitoring
To: root@trollface.etudiant.insia.org
Subject: Fail event on /dev/md0:trollface
Date: Tue, 08 Feb 2011 12:43:42 +0100

This is an automatically generated mail message from mdadm
running on trollface

A Fail event had been detected on md device /dev/md0.

It could be related to component device /dev/sdc.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdc[2](F) sdb[0]
8388544 blocks [2/1] [U_]

unused devices:
% # Whaaaaaa ... moderne et poli j'aime
% sudo mdadm --detail /dev/md0
/dev/md0:
Version : 00.90
Creation Time : Tue Feb  8 12:25:41 2011
Raid Level : raid1
Array Size : 8388544 (8.00 GiB 8.59 GB)
Used Dev Size : 8388544 (8.00 GiB 8.59 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Tue Feb  8 12:43:42 2011
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0

UUID : 0d09dc47:55563fbe:86ade1c2:8d372aa1 (local to host trollface)
Events : 0.8

Number   Major   Minor   RaidDevice State
0       8       16        0      active sync   /dev/sdb
1       0        0        1      removed

2       8       32        -      faulty spare   /dev/sdc
% # Saytoucassé ? zut...
% sudo mdadm --remove /dev/md0 /dev/sdc
mdadm: hot removed /dev/sdc
% sudo dd if=/dev/zero of=/dev/sdc bs=1M count=128
% # On remet le disque a blanc vite fait
% sudo mdadm --adde /dev/md0 /dev/sdc
mdadm: re-added /dev/sdc
% # Et la c'est le pied !
% cat /proc/mdstat
0.00 0.00 - 3% 0%]
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdc[2] sdb[0]
8388544 blocks [2/1] [U_]
[=>...................]  recovery =  5.1% (430016/8388544) finish=3.3min speed=39092K/sec

unused devices:
% sudo mdadm --detail /dev/md0
/dev/md0:
Version : 00.90
Creation Time : Tue Feb  8 12:25:41 2011
Raid Level : raid1
Array Size : 8388544 (8.00 GiB 8.59 GB)
Used Dev Size : 8388544 (8.00 GiB 8.59 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Tue Feb  8 12:51:21 2011
State : clean, degraded, recovering
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1

Rebuild Status : 8% complete

UUID : 0d09dc47:55563fbe:86ade1c2:8d372aa1 (local to host trollface)
Events : 0.14

Number   Major   Minor   RaidDevice State
0       8       16        0      active sync   /dev/sdb
2       8       32        1      spare rebuilding   /dev/sdc
% # Ooooh ... merci uncle Tom, merci !
[/code]

Bon allez la ça rigole plus, on enfile ses plus beaux poils et on se lance dans LVM la hop hop allez on se grouille, motivé les enfants !!!

Allez trêve de parlottes, fais péter le shell tonton en avant :

[code lang="shell"]
% sudo aptitude install lvm2
<I CAN HAZ LVM PLZ ? KTHXBYE>
[/code]

La suite au prochain épisode !

Classé dans : INSIA Mots clés : aucun


25
janvier 2011

INSIA - Technologies UNIX : TP N°1

Rédigé par Matthieu CERDA   Aucun commentaire   Mis à jour le  25/01/2011

[code lang="shell"]
sudo visudo
On ajoute "Defaults env_keep = "EDITOR VISUAL PATH http_proxy ftp_proxy"
export http_proxy="http://proxy.etudiant.insia.org:3128"
export ftp_proxy="ftp://proxy.etudiant.insia.org:3128"
sudo apt-get update
sudo apt-get install aptitude # Oui oui, c'est mon choix
sudo aptitude install virtualbox-ose
wget "ftp://storm.etudiant.insia.org/vol01/srt2/debian-508-i386-netinst.iso"
[/code]




On installe via virtualbox la VM Debian, et crée une VM vierge, on donne l'ISO a connecter au cdrom virtuel.
Paramètres : 512 Mb de RAM, 8192 Mb de HDD, 1 NIC NATée et Son désactivé, le reste par défaut.
On peut installer la distrib en mode expert (cf image).
On se laisse guider par l'assistant :

  • Sélection de la langue : fr_FR.UTF8 et locales françaises

  • Clavier AT standard, en français (latin9)

  • Détection et montage automatique du CD


Mais on choisit l'installation rapide pour plus de simplicité.

  • On se laisse guider avec les mêmes paramètres que précédemment.

  • On partitionne le disque comme ceci après la création du MBR : 2Go de / et 1024Mo de SWAP

  • On confirme et c'est parti !

  • On paramètre les utilisateurs a notre convenance et on sélectionne une source de paquets APT (osef le premier c'est bien)

  • On renseigne le proxy : "http://proxy.etudiant.insia.org:3128/" (LE SLASH A LA FIN EST IMPORTANT)

  • On ne demande que le système standard (X11 c'est pour les enfants, nous on est des hommes, des vrais, avec des poils !)

  • Ok donc la, c'est long. TRES long. café time.

  • Digression : les VM sont dans ~/.VirtualBox/Machines, les HD Virtuels dans ~/.VirtualBox/HardDisks

  • TRES UTILE : Si on a zappé d'installer le set "Système standard" lors de l'assistant, on peut aussi lancer plus tard en root "tasksel install standard" pour corriger le tir !

  • On passe le réseau en Réseau privé hôte pour communiquer avec notre chère VM. Pas de chance, Virtualbox OSE fait des bêtises et ne NATe rien.

  • iptables -t nat -A POSTROUTING -o ethX -j MASQUERADE + sysctl net.ipv4.ip_forward=1


[code lang="shell"]

aptitude install openssh-server
less /etc/inittab
# On voit les différends niveaux d'exécution, et le mode single user
less /boot/grub/menu.lst
# Tous les noyaux au boot
dmesg
# Tout le blahblah du noyau on recherche le moment ou le noyau monte l'initrd.

[/code]

Classé dans : INSIA Mots clés : aucun


24
janvier 2011

INSIA - Technologies UNIX : Cours N°3

Rédigé par Matthieu CERDA   Aucun commentaire   Mis à jour le  24/01/2011

Petit howto sur l'utilisation de Vi :

Pour un résumé plus complet, voici une référence plus complète.

Déplacements



Déplacements sur l'écran :



h => gauche
j => bas
k => haut
l => droite

entrée => début de ligne
backspace => recule

H => En haut a gauche (HOME)
L => en bas a gauche (LAST)
M => au milieu a gauche (MIDDLE)

Déplacements dans le fichier :



Ctrl + F => une page vers le bas (FORWARD)
Ctrl + B => une page vers le haut (BACKWARD)
Ctrl + U => une demie page vers le haut (UP)
Ctrl + D => une demie page vers le bas (DOWN)

:n => positionne le curseur sur la ligne n
|=> $ => dernière ligne

Ctrl + G => récapitulatif sur la dernière ligne

Commandes de recherche



/chaîne(+regexp) => rechercher "chaîne"
|=> n => next dans le sens de la recherche
|=> N => next dans l'autre sens

?chaîne(+regexp) => vers le début de "chaîne"
|=> n => next dans le sens de la recherche
|=> N => next dans l'autre sens

Mode d'édition



Insertion



Esc => Fin d'insertion
i => insertion avant le curseur
a => insertion après le curseur
I => insertion en début de ligne
A => insertion en fin de ligne

Suppression



dd => supprimer la ligne
dw => supprimer le mot
x => supprimer le caractère


Commandes spéciales



u => annuler la dernière commande (UNDO)
. => répète la dernière commande
p => duplication du buffer
:sh => lancer un shell
:r "fichier" => insérer un fichier

Sortie et sauvegarde



:w => sauvegarder
:wq => sauvegarder et quitter
:q => quitter
:q! => forcer quitter même si des modifications sont faites
:w "nom" => sauvegarder sous le nom "nom"

Classé dans : INSIA Mots clés : aucun


10
janvier 2011

INSIA - Technologies UNIX : Cours N°2

Rédigé par Matthieu CERDA   Aucun commentaire   Mis à jour le  10/01/2011

Et c'est parti pour la seconde partie du cours de technologies UNIX !

Le cours commence par une introduction au fonctionnement des disques durs : HDD

On se porte ensuite sur l'étude des systèmes de fichiers de type UNIX, il faut donc définir les structures de base :

Un disque dur possède, dans le cas d'une table de type MBR :

  • Un MBR composé du code exécutable de boot ( Par exemple GRUB ou NTLDR )

  • Une table des partitions

  • Des partitions


Voici les structures de base d'un FS de type UNIX :

  • Table des i-nodes


Voici les types d'i-node utilisables :

  • - : fichier standard

  • d : répertoire

  • s : lien symbolique

  • b : périphérique de type block

  • c : périphérique de type char

  • p : pipe nommé (créé par exemple avec mknod)

  • s : socket nommé


Ainsi que des attributs :

  • UID

  • GID

  • Permissions : UGO - RWX

  • Bits spéciaux : SUID,SGID, Sticky


Voici un article résumant la partie du cours sur les structures des FS : i-node

Classé dans : INSIA Mots clés : aucun