L’ajout de LUN à un volume Xsan échoue

Dans certaines circonstances, les volumes Xsan peuvent ne pas s’étendre lorsque vous introduisez de nouveaux LUN à une réserve de stockage existante. Ce document présente le contexte de ce problème et la manière de le résoudre.

Extension de bande passante contre extension du stockage

L’ajout de LUN à une réserve de stockage existante augmentera à la fois la capacité d’un volume et la quantité de données qui peuvent y être écrites dans une période donnée. Cette opération s’appelle donc « extension de bande passante ». (Veuillez noter que cela n’est valide que dans certaines limites. Si vous essayez d’augmenter la taille d’un volume de manière arbitraire, vous finirez par obtenir un retour sur investissement en diminution, jusqu’à finalement rencontrer des problèmes de performances lorsque vous atteindrez les limites de votre équipement.)

Par contre, l’ajout de LUN à une nouvelle réserve de stockage augmente la capacité d’un volume mais pas la bande passante. Cette opération s’appelle donc « extension de stockage ».

Cet article discute d’extension de bande passante.

Description du problème

Xsan 1.1 et antérieur : après un ajout de LUN à une réserve de stockage existante, les volumes Xsan ne se montent plus comme clients Xsan.

Xsan 1.2 : après un ajout de LUN à une réserve de stockage existante, les modifications apportées à la configuration du volume ne sont plus prises en compte.

Ce problème concerne Xsan 1.2 et antérieur.

Solution

À chacune des étapes suivantes, remplacez l’élément par le nom de votre volume Xsan et l’élément par celui de la réserve de stockage que vous souhaitez étendre. Lorsque vous utilisez la commande sudo, authentifiez vous si vous y êtes invité.

Préparation :

Si vous utilisez plusieurs contrôleurs de métadonnées :

1- Pour déterminer quel contrôleur de métadonnées (MDC) contrôle le volume, consultez le résumé de dans Admin Xsan. Notez quel MDC héberge le volume en conservant la valeur « Hébergé par ». Suivez la procédure suivante sur l’ordinateur hébergeant le volume.

2 - Si le MDC exécute Xsan 1.1 ou antérieur, assurez-vous que le volume Xsan démarre et se monte. S’il ne démarre pas ou ne se monte pas, arrêtez ici et contactez AppleCare pour obtenir de l’assistance. S’il démarre et se monte, faites une sauvegarde du fichier de configuration en saisissant les commandes suivantes dans Terminal.

$ sudo cp /Library/Filesystems/Xsan/config/ .cfg/Library/Filesystems/Xsan/config/.cfg.bak

3 - Évaluez les besoins de votre site. Si vous souhaitez seulement augmenter la capacité du volume, ajoutez les LUN à une nouvelle réserve de stockage. Si votre site nécessite une augmentation de la bande passante du volume, vous devrez procéder comme suit :

a - Démontez et arrêtez le volume.
b - Vérifiez l’absence d’incohérence dans le système de fichiers en suivant la procédure décrite dans cet article.
c - Dans Admin Xsan > Configuration > LUN, nommez les nouveaux LUN.
d - Dans Admin Xsan > Configuration > Stockage, faites glisser les nouveaux LUN du tiroir « LUN disponibles » vers la réserve de stockage existante.
e - Cliquez sur Enregistrer.
f - Si l’extension échoue, passez à l’étape 4.

4 - Pour vérifier que le problème se produit, consultez le fichier d’historique cvupdatefs situé dans /var/run. Pour cela, tapez la commande suivante dans l’application Terminal, située dans /Applications/Utilitaires :

$ sudo cat /var/run/xsan_cvupdatefs_.log

(Veuillez noter que le redémarrage de votre MDC provoquer la suppression de ce fichier.)

Si un volume Xsan est touché par ce problème, la ligne suivante apparaîtra à la fin du fichier :



Bitmap fragmentation threshold exceeded. Aborting. Invalid argument

*Fatal*: Failed to expand stripe group

Check configuration and try again



En d’autres termes :

L’ajout de LUN à une réserve de stockage existante fragmenterait celle-ci, ce qui provoquerait des performances inacceptables.

Préparation de la solution de rechange

1 - Si votre MDC exécute Xsan 1.2 et que vous êtes touché par le problème, passez à l’étape 3.
2 - Si le MDC exécute Xsan 1.1 ou antérieur, restaurez la sauvegarde du fichier de configuration en saisissant les commandes suivantes dans Terminal :

$ sudo rm /Library/Filesystems/Xsan/config/.cfg
$ sudo cp /Library/Filesystems/Xsan/config/.cfg.bak/Library/Filesystems/Xsan/config/.cfg

Vérifiez que le volume démarre et se monte. Si ce n’est pas le cas, arrêtez ici et contactez le Support AppleCare. Si c’est le cas, passez à l’étape 3.

3 - Lancez à nouveau cvfsck pour vérifier l’absence d’incohérence dans le système de fichiers en suivant la procédure décrite dans cet article.

Solution de rechange

1 - Pour corriger le problème, toutes les données qui se trouvent sur la réserve de stockage devront être temporairement sauvegardées sur un autre volume.
a - Démarrez et montez le volume Xsan, uniquement sur le contrôleur de métadonnées.
b - Dans Terminal, tapez :

sudo cvfsck -x | awk -F, ’{print ","}’ | egrep -v "^none,"

Cette commande doit produire une liste de tous les dossiers situés à la racine du volume Xsan et qui comportent au moins un fichier situé sur la réserve de stockage listée avant le nom du dossier. Par exemple, dans l’exemple suivant, le dossier Affinité1 comporte au moins un fichier sur la réserve de stockage nommée « MaRéserve ».

MaRéserve,Affinité1

Remarque relative à « cvfsck -x » : cette commande ne renvoie que les huit premiers caractères du nom d’une réserve de stockage. Par exemple, si votre réserve de stockage s’appelle « RéserveVidéo », son nom serait transformé en « RéserveV ».

Si vous avez plusieurs réserves de stockage dont le nom comporte les mêmes huit premiers caractères, modifiera le nom du premier de ces réserves listées dans Admin Xsan > Configuration > Stockage de telle sorte qu’il ne comportera plus que huit caractères. Par exemple, un réserve nommée RéserveDonnées deviendrait « RéserveD ».

Ensuit, cvfsck convertit le nom de chacune des réserves rencontrées dans la liste de configuration d’Admin Xsan en ajoutant un nombre incrémenté aux huit mêmes caractères. Par exemple, si deux autres réserves de stockage s’appellent RéserveDeJean et RéserveDeMichel, cvfsck les convertit en RéserveD1 et RéserveD2. Pour déterminer quel nom convertit correspond à quelle réserve, accédez à Admin Xsan > Configuration > Stockage et notez dans quel ordre apparaissent les réserves de stockage.

2 - Après avoir déterminé l’emplacement où sauvegarder les données de manière temporaire, montez le volume de sauvegarde temporaire sur le MDC.
3 - Exécutez la commande suivante pour sauvegarder chaque dossier se trouvant sur la réserve de stockage que vous souhaitez étendre :

$ sudo tar -czpf /Volumes//.tgz -C/Volumes//

en remplaçant par le nom du volume où sauvegarder les données de manière temporaire, par le nom du dossier à sauvegarder et par le nom du volume Xsan.
4 - Vérifiez que tous les fichiers se trouvant sur la réserve de stockage ont été sauvegardés.
5 - Vérifiez que vous pouvez récupérer tous les dossiers sauvegardés et que leur contenu est identique à l’original.
6 - Supprimez du volume Xsan les dossiers qui ont été sauvegardés.
7 - Ajoutez les nouveaux LUN à la réserve de stockage comme indiqué plus haut.
8 - Vérifiez que les LUN ont bien été incorporés à la réserve de stockage.
9 - Lancez à nouveau cvfsck pour vérifier l’absence d’incohérence dans le système de fichiers en suivant la procédure décrite dans cet article.
10 - Démarrez et montez le volume Xsan.
11 - Restaurez les fichiers sauvegardez à partir de l’emplacement de sauvegarde temporaire et vers le système de fichiers qui vient d’être étendu :

$ sudo tar -xzf /Volumes//.tgz-C /Volumes//

12 - Vérifiez que tous les dossier restaurés et leur contenu sont identiques aux originaux.
13 - Supprimez les fichiers tar de l’emplacement temporaire.