Le problème
Sur CentOS/RHEL 6.x avec Logical Volume Manager, toutes les commandes LVM renvoient une erreur de verrouillage immédiatement après le démarrage, comme indiqué ci-dessous :
# lvdisplay Failed to create directory /var/lock/lvm File-based locking initilisation failed.
La solution
Le message ci-dessus est enregistré en raison d'une vérification ajoutée dans le code lvm pour vérifier si le chemin mentionné pour l'option lockdown_dir dans /etc/lvm/lvm.conf le fichier est disponible ou non, puis affiche une erreur si le chemin utilisé pour locking_dir n'est pas disponible. Cette erreur est généralement observée lorsque /var est créé en tant que système de fichiers séparé. Dans la plupart des cas, cela se produit si le système de fichiers /var/ est monté en lecture seule.
$ grep -i "locking_dir" etc/lvm/lvm.conf # Configuration option global/locking_dir. locking_dir = "/var/lock/lvm"
Solution :
1. Configurez l'option lockdown_dir dans /etc/lvm/lvm.conf sur un chemin dans le système de fichiers racine (/) lui-même, comme indiqué ci-dessous :
# vi /etc/lvm/lvm.conf locking_dir = "/run/lock"
2. Assurez-vous que le répertoire ci-dessus est présent sur le serveur, ou vous pouvez le créer manuellement à l'aide de la commande suivante :
# mkdir -p /run/lock
3. Exécutez les commandes lvm en définissant le répertoire de verrouillage temporaire
# lvdisplay --config 'global { locking_dir = "/run/lock" } ' # pvdisplay --config 'global { locking_dir = "/run/lock" } ' # vgdisplay --config 'global { locking_dir = "/run/lock" } '
Solution permanente :
Montez le système de fichiers /var avec l'option rw ou si le système de fichiers est en lecture seule en raison d'une corruption du système de fichiers, exécutez fsck sur la partition /var non montée pour le réparer, mais assurez-vous d'avoir une sauvegarde valide avant d'exécuter fsck.