Adaptation française : Deny
Relecture de la version française : Deny
Copyright © 2008 Amit Kumar Saha
Copyright © 2008 Deny
Article paru dans le n°150 de la Gazette Linux de mai 2008.
Article publié sous Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.
Table des matières
Le RAID logiciel est un RAID implémenté avec une application—aucun matériel supplémentaire tel qu'un contrôleur RAID n'est nécessaire. Ainsi, le logiciel RAID est un bon point de départ pour commencer à obtenir une certaine expérience du RAID. En outre, le RAID logiciel est indépendant du logiciel propriétaire de gestion—le maintien d'un RAID logiciel fonctionne de la même manière pour toutes les machines exécutant Linux
. Cependant, il y a également un point à soulever : en considérant le RAID logiciel, pensez aux performances. TOUS LES algorithmes de RAID sont effectués par l'unité centrale du système et chaque bloc doit être copié par dessus le bus des données du système (c'est-à-dire, sda1 <-> contrôleur IO (input/output, entrée-sortie) <-> Mémoire vive, éventuellement unité centrale <-> contrôleur IO <-> sdb1). (Merci à René Pfeiffer de l'Answer Gang d'avoir signaler ceci.)
J'utilise Ubuntu 7.10© avec le noyau stock par défaut pour mes expériences. La machine de test a un disque dur SATA de 80 Go.
D'abord, on examine si le support RAID est activé dans votre noyau :
cat /proc/mdtstat
Si on obtient un message spécifiant que :
cat: /proc/mdstat: No such file or directory
alors, on doit activer le support RAID. Il y a deux possibilités :
Le support RAID était désactivé lors de la compilation du noyau et vous devrez le recompiler
Vous devrez insérer le support du module md (multiple disk, disques multiples) manuellement. Vérifiez si les modules md*
sont présents sous /lib/modules/
et insérez le module de la façon suivante :
$(uname -r)
/kernel/drivers/md/
$ sudo modprobe md-mod Password:
(Je remercie Kapil de l'Answer Gang pour cette astuce)
À présent, on peut vérifier que le support RAID est actif :
amit@amit-desktop:~$ cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] unused devices:
Cela signifie que le support RAID fait partie du noyau.
À présent qu'on a obtenu un noyau avec RAID activé, on devra utiliser quelques outils utilisateurs pour s'aider à utiliser RAID.
amit@amit-desktop:~$ sudo apt-get install mdadm Reading package lists... Done Building dependency tree Reading state information... Done Recommended packages: mail-transport-agent The following NEW packages will be installed: mdadm 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 220kB of archives. After unpacking 627kB of additional disk space will be used. Get:1 http://in.archive.ubuntu.com gutsy/main mdadm 2.6.2-1ubuntu2 [220kB] Fetched 220kB in 48s (4515B/s) Preconfiguring packages ... Selecting previously deselected package mdadm. (Reading database ... 88932 files and directories currently installed.) Unpacking mdadm (from .../mdadm_2.6.2-1ubuntu2_i386.deb) ... Setting up mdadm (2.6.2-1ubuntu2) ... Generating array device nodes... done. Generating mdadm.conf... done. Removing any system startup links for /etc/init.d/mdadm-raid ... update-initramfs: deferring update (trigger activated) * Starting MD monitoring service mdadm --monitor [ OK ] Processing triggers for initramfs-tools ... update-initramfs: Generating /boot/initrd.img-2.6.22-14-generic
Mon disque à présent installé, se présente ainsi :
Name Flags Part Type FS Type [Label] Size (MB) --------------------------------------------------------------------------------- sda1 Boot Primary NTFS [] 20612.56 sda5 Logical W95 FAT32 20579.66 sda6 Logical W95 FAT32 20587.88 sda7 Logical Linux ext3 12000.69 sda8 Logical Linux swap / Solaris 1019.94 sda9 Logical Linux 2048.10 sda10 Logical Linux 2048.10 sda11 Logical Linux 3446.40
Je vais alors combiner sda9
et sda10
pour former un grand dispositif logique constituant un tableau RAID. Pour les besoins de la démonstration, et également parce que 0 est toujours un bon point de départ, on va créer un RAID de niveau 0.
Notez le type de partition. Le pilote du noyau RAID | ||
--René |
Combiner 2 partitions consécutives pour former un RAID n'est pas une chose à faire intelligente, m'a répondu l'Answer Gang. Mais jusqu'à ce que je trouve pourquoi, je persisterai.
Le but du RAID est de distribuer la charge des entrées/sorties de toutes les opérations en lecture/écriture par-dessus les disques multiples. Les disques durs sont lents et prennent un moment avant de terminer les commandes qu'on leur fournit. Selon les opérations d'entrée/sortie, un RAID permettra au système de laisser les disques du RAID fonctionner en parallèle. C'est particulièrement vrai quand on lit depuis un RAID0 ou un RAID1. Si on crée un dispositif RAID sur le même dispositif physique, le pilote du RAID ne s'en apercevra pas. Le problème que vous rencontrez alors est que vous placez le faible disque sous une charge élevée, puisque le pilote pense maintenant qu'il peut exécuter une commande en parallèle quand en réalité il n'y a pas parallélisme. Cela signifie que les têtes du disque se déplaceront probablement beaucoup— et il s'agit d'une mauvaise idée comme un de mes amis qui effectue des récupérations de données professionnelles me l'a expliqué une fois. Ainsi, il est correct de faire ceci à des fins éducatives, mais s'il-vous-plait, ne placez jamais les données en direct d'un serveur en production dans un RAID composé de partitions sur le même disque physique | ||
--René |
amit@amit-desktop:~$ sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda9 /dev/sda10 [sudo] password for amit: mdadm: chunk size defaults to 64K mdadm: array /dev/md0 started.
Examinons, à présent, le tableau RAID que nous venons de créer :
amit@amit-desktop:~$ cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sda10[1] sda9[0] 3999872 blocks 64k chunks unused devices:
Maintenant, nous créerons un système de fichiers dans le nouveau dispositif RAID :
amit@amit-desktop:~$ sudo mkfs -t ext3 /dev/md0 [sudo] password for amit: mke2fs 1.40.2 (12-Jul-2007) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 500960 inodes, 999968 blocks 49998 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1027604480 31 block groups 32768 blocks per group, 32768 fragments per group 16160 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 33 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
amit@amit-desktop:~$ sudo mkdir /media/RAID0 amit@amit-desktop:~$ mount /dev/md0 /media/RAID0/ mount: only root can do that amit@amit-desktop:~$ sudo mount /dev/md0 /media/RAID0/ amit@amit-desktop:~$ df Filesystem 1Blacks Used Available Use% Mounted on . . /dev/md0 3936940 73440 3663508 2% /media/RAID0
Utilisons à présent mdadm pour obtenir quelques détails sur le tableau RAID :
amit@amit-desktop:~$ sudo mdadm --query /dev/md0 --detail /dev/md0: 3.81GiB raid0 2 devices, 0 spares. Use mdadm --detail for more detail. amit@amit-desktop:~$ sudo mdadm --detail /dev/md0 /dev/md0: Version : 00.90.03 Creation Time : Tue Mar 11 13:05:22 2008 Raid Level : raid0 Array Size : 3999872 (3.81 GiB 4.10 GB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Tue Mar 11 13:05:22 2008 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Chunk Size : 64K UUID : f77bd177:706b589c:2a7af8c6:cbd32339 (local to host amit-desktop) Events : 0.1 Number Major Minor RaidDevice State 0 8 9 0 active sync /dev/sda9 1 8 10 1 active sync /dev/sda10
Une couche RAID expérimentale est maintenant disponible à notre usage. Dans des articles prochains, j'essaierai de partager mes expériences sur l'installation du RAID. Vous pouvez également envisager de visiter les contributions de mon blogue à propos du RAIDici
Je remercie l'Answer Gang (TAG) pour les entretiens à propos de RAID d'il y a un moment. Bien que je n'aie essayé aucune des judicieuses suggestions, je les essayerais, testerais et apprécierais lors du prochain article. J'ai également eu le privilège de voir mon article « édité » par l'Answer Gang, ce qui je pense était une offre limitée :-).
Amit Kumar Saha est rédacteur technique indépendant. Il écrit principalement sur le noyau
Linux
, la sécurité réseau et XML.