Partager via


Configurer le RAID logiciel sur Linux

Il s’agit d’un scénario courant d’utilisation du RAID logiciel sur des machines virtuelles Linux dans Azure pour présenter plusieurs disques de données attachés en tant qu’appareil RAID unique. En règle générale, cela peut être utilisé pour améliorer les performances et permettre une amélioration du débit par rapport à l’utilisation d’un seul disque.

Attachement de disques de données

Deux disques de données vides ou plus sont nécessaires pour configurer un appareil RAID. La principale raison de la création d’un appareil RAID est d’améliorer les performances de vos E/S de disque. En fonction de vos besoins en E/S, vous pouvez choisir d’attacher des disques stockés dans notre stockage Standard, avec jusqu’à 500 E/S/ps par disque ou notre stockage Premium avec jusqu’à 5 000 E/S par disque. Cet article ne décrit pas en détail comment approvisionner et attacher des disques de données à une machine virtuelle Linux. Consultez l’article Microsoft Azure attacher un disque pour obtenir des instructions détaillées sur l’attachement d’un disque de données vide à une machine virtuelle Linux sur Azure.

Important

Ne mélangez pas les disques de différentes tailles, ce qui entraînerait des performances du raidset à limiter à celui du disque le plus lent.

Installer l’utilitaire mdadm

  • Ubuntu

    sudo apt-get update
    sudo apt-get install mdadm
    
  • CentOS &Oracle Linux

    sudo yum install mdadm
    
  • SLES et openSUSE

    zypper install mdadm
    

Créer les partitions de disque

Dans cet exemple, nous créons une partition de disque unique sur /dev/sdc. La nouvelle partition de disque est appelée /dev/sdc1.

  1. Commencer fdisk à créer des partitions

    sudo fdisk /dev/sdc
    Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
    Building a new DOS disklabel with disk identifier 0xa34cb70c.
    Changes will remain in memory only, until you decide to write them.
    After that, of course, the previous content won't be recoverable.
    
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
                    switch off the mode (command 'c') and change display units to
                    sectors (command 'u').
    
  2. Appuyez sur « n » à l’invite pour créer une nouvelle partition :

    Command (m for help): n
    
  3. Ensuite, appuyez sur « p » pour créer une partition rimaire p:

    Command action
            e   extended
            p   primary partition (1-4)
    
  4. Appuyez sur « 1 » pour sélectionner le numéro de partition 1 :

    Partition number (1-4): 1
    
  5. Sélectionnez le point de départ de la nouvelle partition, ou appuyez <enter> pour accepter la valeur par défaut pour placer la partition au début de l’espace libre sur le lecteur :

    First cylinder (1-1305, default 1):
    Using default value 1
    
  6. Sélectionnez la taille de la partition, par exemple , tapez « +10G » pour créer une partition de 10 gigaoctets. Vous pouvez également appuyer sur <enter> créer une partition unique qui s’étend sur l’ensemble du lecteur :

    Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): 
    Using default value 1305
    
  7. Ensuite, modifiez l’ID et type de la partition de l’ID par défaut « 83 » (Linux) à l’ID « fd » (RAID automatique Linux) :

    Command (m for help): t
    Selected partition 1
    Hex code (type L to list codes): fd
    
  8. Enfin, écrivez la table de partition sur le lecteur et quittez fdisk :

    Command (m for help): w
    The partition table has been altered!
    

Créer le tableau RAID

  1. L’exemple suivant montre comment « bander » (niveau RAID 0) trois partitions situées sur trois disques de données distincts (sdc1, sdd1, sde1). Après avoir exécuté cette commande, un nouvel appareil RAID appelé /dev/md127 est créé. Notez également que si ces disques de données faisaient précédemment partie d’un autre tableau RAID obsolète, il peut être nécessaire d’ajouter le paramètre --force à la commande mdadm :

    sudo mdadm --create /dev/md127 --level 0 --raid-devices 3 \
        /dev/sdc1 /dev/sdd1 /dev/sde1
    
  2. Créer le système de fichiers sur le nouvel appareil RAID

    CentOS, Oracle Linux, SLES 12, openSUSE et Ubuntu

    sudo mkfs -t ext4 /dev/md127
    

    SLES 11

    sudo mkfs -t ext3 /dev/md127
    

    SLES 11 : activer boot.md et créer mdadm.conf

    sudo -i chkconfig --add boot.md
    sudo echo 'DEVICE /dev/sd*[0-9]' >> /etc/mdadm.conf
    

    Remarque

    Un redémarrage peut être nécessaire après avoir apporté ces modifications sur les systèmes SUSE. Cette étape n’est pas obligatoire sur SLES 12.

Ajouter le nouveau système de fichiers à /etc/fstab

Important

La modification incorrecte du fichier /etc/fstab peut entraîner un système indémarrable. En cas de doute, reportez-vous à la documentation de la distribution pour obtenir des informations sur la modification adéquate de ce fichier. Il est par ailleurs vivement recommandé de créer une sauvegarde du fichier /etc/fstab avant de le modifier.

  1. Créez le point de montage souhaité pour votre nouveau système de fichiers, par exemple :

    sudo mkdir /data
    
  2. Lors de la modification de /etc/fstab, l’UUID doit être utilisé pour référencer le système de fichiers plutôt que le nom de l’appareil. Utilisez l’utilitaire blkid pour déterminer l’UUID pour le nouveau système de fichiers :

    sudo /sbin/blkid
    ...........
    /dev/md127: UUID="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" TYPE="ext4"
    
  3. Ouvrez /etc/fstab dans un éditeur de texte et ajoutez une entrée pour le nouveau système de fichiers, par exemple :

    UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext4  defaults  0  2
    

    Ou sur SLES 11 :

    /dev/disk/by-uuid/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext3  defaults  0  2
    

    Ensuite, enregistrez et fermez /etc/fstab.

  4. Testez que l’entrée /etc/fstab est correcte :

    sudo mount -a
    

    Si cette commande génère un message d’erreur, vérifiez la syntaxe dans le fichier /etc/fstab.

    Exécutez ensuite la mount commande pour vous assurer que le système de fichiers est monté :

    mount
    .................
    /dev/md127 on /data type ext4 (rw)
    
  5. (Facultatif) Paramètres de démarrage sécurisés

    configuration fstab

    De nombreuses distributions incluent soit les paramètres de montage nobootwait, soit nofail, qui peuvent être ajoutés au fichier /etc/fstab. Ces paramètres permettent des échecs lors du montage d’un système de fichiers particulier et permettent au système Linux de continuer à démarrer même s’il n’est pas en mesure de monter correctement le système de fichiers RAID. Pour plus d’informations sur ces paramètres, reportez-vous à la documentation de votre distribution.

    Exemple (Ubuntu) :

    UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext4  defaults,nobootwait  0  2
    

    Paramètres de démarrage Linux

    En plus des paramètres ci-dessus, le paramètre de noyau «bootdegraded=true » peut permettre au système de démarrer même si le RAID est perçu comme endommagé ou détérioré, par exemple si un lecteur de données est supprimé par inadvertance de la machine virtuelle. Par défaut, cela peut également entraîner un système non démarrable.

    Reportez-vous à la documentation de votre distribution sur la façon de modifier correctement les paramètres du noyau. Par exemple, dans de nombreuses distributions (CentOS, Oracle Linux, SLES 11), ces paramètres peuvent être ajoutés manuellement au fichier «/boot/grub/menu.lst ». Sur Ubuntu, ce paramètre peut être ajouté à la GRUB_CMDLINE_LINUX_DEFAULT variable sur « /etc/default/grub ».

Prise en charge de TRIM/UNMAP

Certains noyaux Linux prennent en charge les opérations TRIM/UNMAP pour ignorer les blocs inutilisés sur le disque. Ces opérations sont principalement utiles dans le stockage standard pour informer Azure que les pages supprimées ne sont plus valides et peuvent être ignorées. L’abandon des pages peut réduire les coûts si vous créez des fichiers volumineux, puis les supprimez.

Remarque

RAID peut ne pas émettre de commandes d’abandon si la taille de bloc du tableau est inférieure à la valeur par défaut (512 Ko). Cela est dû au fait que la granularité unmap sur l’hôte est également de 512 Ko. Si vous avez modifié la taille de bloc du tableau via le paramètre mdadm --chunk= , les requêtes TRIM/unmap peuvent être ignorées par le noyau.

Il existe deux façons d’activer la prise en charge de TRIM sur votre machine virtuelle Linux. Comme d’habitude, consultez votre distribution pour connaître l’approche recommandée :

  • Utilisez l’option de montage discard dans /etc/fstab, par exemple :

    UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  /data  ext4  defaults,discard  0  2
    
  • Dans certains cas, l’option discard peut avoir des implications sur les performances. Vous pouvez également exécuter la commande fstrim manuellement à partir de la ligne de commande ou l’ajouter à votre crontab pour l’exécuter régulièrement :

    Ubuntu

    # sudo apt-get install util-linux
    # sudo fstrim /data
    

    RHEL/CentOS

    # sudo yum install util-linux
    # sudo fstrim /data