De alguma forma, estraguei alguns volumes lvm com provisionamento fino no ubuntu 14.04 e agora quero começar do zero excluindo o thinpool com todos os seus volumes e dados internos. Infelizmente, isso falha e não consigo encontrar uma solução.
Os volumes lógicos se parecem com isso:
user@server1:~$ sudo lvs
dm_report_object: report function failed for field data_percent
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
project2 vg0 Vwi-i-tz- 22.00g mythinpool
project1 vg0 Vwi---tz- 20.00g mythinpool
project3 vg0 Vwi---tz- 21.00g mythinpool
home vg0 -wi-ao--- 140.00g
mythinpool vg0 twi-i-tz- 78.82g 52.15
root vg0 -wi-ao--- 10.00g
swap vg0 -wi-ao--- 4.00g
tmp vg0 -wi-ao--- 5.00g
Agora quero remover o thinpool com os três lvms dentro:
sudo lvremove /dev/vg0/mythinpool
Removing pool mythinpool will also remove 3 thin volume(s). OK? [y/n]: y
Do you really want to remove and DISCARD logical volume project1? [y/n]: y
device-mapper: message ioctl on failed: Invalid argument
Unable to deactivate open vg0-mythinpool_tdata (252:5)
Unable to deactivate open vg0-mythinpool_tmeta (252:4)
Failed to deactivate vg0-mythinpool-tpool
Failed to resume mythinpool.
Failed to update thin pool mythinpool.
Eu não me importo com os dados dentro do mythinpool, mas o resto do grupo de volumes vg0 DEVE permanecer intacto. Como eu poderia resolver este problema? Obrigado por qualquer ajuda sobre isso.
EDIT 1: Depois de seguir a resposta de shodanshok, consegui remover uma imagem LVM inicializando no CentOS7, mas infelizmente os outros dois volumes, incluindo o thin pool, retornam outra mensagem de erro - transaction_id incompatível:
Também não há espaço disponível para lvconvert --repair
Eu finalmente resolvi isso com algumas etapas simples, conforme descrito aqui: remover pool fino LVM corrompido
Depois de seguir o conselho de @shodanshok para inicializar o Live CentOS7 preso ao servidor em um pendrive, consegui emitir os comandos descritos e, eventualmente, me livrar do thin pool corrompido sem danificar o sistema de arquivos raiz que reside dentro do mesmo grupo de volumes.
Obrigado a todos por seus conselhos úteis que levaram à solução.
Algo está mantendo seus volumes finos abertos. Faça o seguinte:
lsof | grep mountpoint
para encontrar os processos ofensivos. Mate-os e tente desmontar os sistemas de arquivosEDITAR:
Como você não pode usar uma imagem ao vivo e seu sistema de resgate não tem suporte para volumes finos, podemos tentar uma rota alternativa. Basicamente, definiremos o "sinalizador de ativação de salto" em seus volumes/pool finos e reinicializaremos a máquina. Siga esses passos:
lvchange -ky vg0/project1 ; lvchange -ky vg0/project2 ; lvchange -ky vg0/project3 ; lvchange -ky vg0/mythinpool
lvremove
No entanto, se algum desses volumes for necessário para a inicialização da máquina, você terminará com uma máquina não inicializável. Certifique-se de ter um "plano B" para restaurar a máquina por meio de um console de recuperação ou algo semelhante.
EDITAR 2
Se o seu sistema não suportar o
-k
sinalizador, você pode tentar usarlvchange -aay volumename
e reiniciar. Isso definirá o volume para ativação automática, que funciona apenas para volumes especificados em/etc/lvm.conf