Lorsque vous utilisez un cluster E-MapReduce (EMR) basé sur une famille d'instances dotée de disques locaux, comme les séries i ou d, une notification peut vous informer d'une défaillance d'un disque local. Cette rubrique explique comment remplacer un disque local endommagé dans votre cluster.
Précautions
Pour éviter une interruption de service prolongée, nous vous recommandons de remplacer le nœud défectueux. Mettez hors service le nœud dont le disque a échoué et ajoutez un nouveau nœud au cluster.
Les données présentes sur le disque remplacé seront perdues. Avant de commencer, assurez-vous que vos données disposent de suffisamment de réplicas ou qu'elles ont fait l'objet d'une sauvegarde.
Le processus de remplacement implique l'arrêt des services, le démontage du disque, le montage d'un nouveau disque et le redémarrage des services. Cette opération prend généralement jusqu'à cinq jours ouvrables. Avant de poursuivre, évaluez si l'espace disque restant et la charge de travail du cluster peuvent soutenir vos activités pendant l'arrêt des services.
Procédure
Connectez-vous à la console ECS pour consulter les détails de l'événement, y compris l'ID de l'instance, le statut, l'ID du disque endommagé, la progression de l'événement et les opérations associées.
Étape 1 : Obtenir les informations sur le disque endommagé
Connectez-vous au nœud doté du disque endommagé via SSH. Pour plus d'informations, consultez Se connecter à un cluster.
-
Exécutez la commande suivante pour afficher les informations sur les périphériques bloc.
lsblkLe résultat de la commande ressemble à l'exemple suivant.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vdd 254:48 0 5.4T 0 disk /mnt/disk3 vdb 254:16 0 5.4T 0 disk /mnt/disk1 vde 254:64 0 5.4T 0 disk /mnt/disk4 vdc 254:32 0 5.4T 0 disk /mnt/disk2 vda 254:0 0 120G 0 disk └─vda1 254:1 0 120G 0 part / -
Exécutez la commande suivante pour afficher les informations sur le disque.
sudo fdisk -lLe résultat de la commande ressemble à l'exemple suivant.
Disk /dev/vdd: 5905.6 GB, 5905580032000 bytes, 11534336000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes -
Sur la base des résultats des deux étapes précédentes, notez le nom du périphérique en tant que
$device_nameet le point de montage en tant que$mount_path.Par exemple, si le périphérique du disque défaillant est vdd, le nom du périphérique est /dev/vdd et le point de montage est /mnt/disk3.
Étape 2 : Isoler le disque local endommagé
-
Arrêtez toutes les applications qui lisent ou écrivent sur le disque endommagé.
Dans la console EMR, accédez au cluster dont le disque a échoué. Sous l'onglet Services, repérez les services utilisant le disque, tels que HDFS, HBase et Kudu. Dans la colonne Actions du service, choisissez .
Vous pouvez également exécuter la commande
sudo fuser -mv $device_namesur le nœud pour répertorier tous les processus utilisant le disque. Arrêtez ensuite les services correspondants dans la console EMR. -
Exécutez la commande suivante pour empêcher les opérations de lecture et d'écriture sur le disque local.
sudo chmod 000 $mount_path -
Exécutez la commande suivante pour démonter le disque local.
sudo umount $device_name;sudo chmod 000 $mount_pathImportantSi vous ne démontez pas le disque, son nom de périphérique risque de changer après la réparation, ce qui pourrait amener les applications à lire ou écrire sur le mauvais disque.
-
Mettez à jour le fichier fstab.
Sauvegardez le fichier /etc/fstab existant.
-
Supprimez l'entrée correspondant au disque du fichier /etc/fstab.
Par exemple, si le disque défaillant est /dev/vdd, vous devez supprimer l'entrée associée à ce disque.

-
Redémarrez les services que vous avez arrêtés.
Sous l'onglet Services du cluster, repérez les services arrêtés à l'étape Étape 2. Dans la colonne Actions du service, choisissez .
Étape 3 : Remplacer le disque
Réparez le disque depuis la console ECS. Pour plus d'informations, consultez Isoler ou réparer un disque local.
Étape 4 : Monter le disque
Une fois le disque réparé, montez-le pour le rendre disponible.
-
Exécutez la commande suivante pour normaliser le nom du périphérique.
device_name=`echo "$device_name" | sed 's/x//1'`Cette commande normalise les noms de périphériques tels que /dev/xvdk en supprimant la lettre x, ce qui modifie le nom en /dev/vdk.
-
Exécutez la commande suivante pour créer le répertoire du point de montage.
mkdir -p "$mount_path" -
Exécutez la commande suivante pour monter le disque.
mount $device_name $mount_path;sudo chmod 755 $mount_pathSi le montage du disque échoue, effectuez les étapes suivantes :
-
Exécutez la commande suivante pour formater le disque.
fdisk $device_name << EOF n p 1 wq EOF -
Exécutez la commande suivante pour remonter le disque.
mount $device_name $mount_path;sudo chmod 755 $mount_path
-
-
Exécutez la commande suivante pour mettre à jour le fichier fstab.
echo "$device_name $mount_path $fstype defaults,noatime,nofail 0 0" >> /etc/fstabRemarqueExécutez
which mkfs.ext4pour vérifier si ext4 est installé. Si c'est le cas, définissez$fstypesur ext4. Sinon, définissez$fstypesur ext3. -
Créez un fichier de script et ajoutez le script correspondant à votre type de cluster.
Clusters Data Lake (Hadoop)
Autres clusters
-
Exécutez les commandes suivantes pour lancer le script, créer les répertoires de service, puis supprimer le script. Remplacez
$file_pathpar le chemin d'accès à votre fichier de script.chmod +x $file_path sudo $file_path -p $mount_path rm $file_path -
Utilisez le nouveau disque.
Dans la console EMR, redémarrez les services sur le nœud et vérifiez que le disque fonctionne correctement.
> Stop