Il problema
Su CentOS/RHEL 6.x con Logical Volume Manager, tutti i comandi LVM restituiscono un errore di blocco subito dopo l'avvio, come mostrato di seguito:
# lvdisplay Failed to create directory /var/lock/lvm File-based locking initilisation failed.
La soluzione
Il messaggio sopra viene registrato a causa di un controllo aggiunto nel codice lvm per verificare se il percorso menzionato per l'opzione locking_dir in /etc/lvm/lvm.conf il file è disponibile o meno e quindi stampa un errore se il percorso utilizzato per locking_dir l'opzione non è disponibile. Questo errore si verifica in genere quando /var viene creato come un filesystem separato. Nella maggior parte dei casi ciò accade se il filesystem /var/ è montato in sola lettura.
$ grep -i "locking_dir" etc/lvm/lvm.conf # Configuration option global/locking_dir. locking_dir = "/var/lock/lvm"
Soluzione alternativa:
1. Configura l'opzione locking_dir in /etc/lvm/lvm.conf su un percorso nel filesystem root (/), come mostrato di seguito:
# vi /etc/lvm/lvm.conf locking_dir = "/run/lock"
2. Assicurati che la directory sopra sia presente sul server, oppure puoi crearla manualmente usando il seguente comando:
# mkdir -p /run/lock
3. Eseguire i comandi lvm definendo una directory di blocco temporanea
# lvdisplay --config 'global { locking_dir = "/run/lock" } ' # pvdisplay --config 'global { locking_dir = "/run/lock" } ' # vgdisplay --config 'global { locking_dir = "/run/lock" } '
Soluzione permanente:
Monta il filesystem /var con l'opzione rw o se il filesystem è di sola lettura a causa del danneggiamento del filesystem, esegui fsck sulla partizione /var non montata per risolverlo ma assicurati di avere un backup valido prima di eseguire fsck.