Recuperando sistema em mirror LVM 1
Recuperando o sistema através de mirror LVM nível 1 e executando atualização/recompilação de kernel de modo
Parte 2: Quebrando mirror - alterando disco
Quebrando mirror LVM (nível 1)
Neste momento faremos a quebra do mirror para termos uma cópia do sistema até o momento, sugiro que todos os serviços estejam parados e o acesso ao servidor para usuários sejam bloqueados, para que tenhamos um imagem do sistema o mais íntegra possível.Iniciando a quebra do mirror LVM:
Para criar um mirror usamos a 'flags -m' informando 'degree' (degrau), que gostaríamos de criar. No caso, foi 1, para criação do mirror.
Neste momento iremos utilizar um 'degree 0' para quebrarmos o mirror.
Vamos remover o disco "/dev/sda2" do grupo "rootvg" para visualizarmos os PS (Physical Segments) relacionados a seus PE (Physical extent), vamos executar o comando abaixo para visualizar as informações necessárias.
# pvdisplay -m
--- Physical volume ---
PV Name /dev/sda2
VG Name rootvg
PV Size 19.75 GiB / not usable 15.00 MiB
Allocatable yes
PE Size 16.00 MiB
Total PE 1263
Free PE 364
Allocated PE 899
PV UUID 3sGMLy-k2pl-Ehof-lZ3o-MDKc-jGHS-jev0cW
--- Physical Segments ---
Physical extent 0 to 127:
Logical volume /dev/rootvg/locallv_mimage_1
Logical extents 0 to 127
Physical extent 128 to 191:
Logical volume /dev/rootvg/rootlv_mimage_1
Logical extents 0 to 63
Physical extent 192 to 255:
Logical volume /dev/rootvg/swaplv_mimage_1
Logical extents 0 to 63
Physical extent 256 to 256:
Logical volume /dev/rootvg/tmplv_mlog
Logical extents 0 to 0
Physical extent 257 to 450:
Logical volume /dev/rootvg/usrlv_mimage_1
Logical extents 0 to 193
Physical extent 451 to 770:
Logical volume /dev/rootvg/jbosslv_mimage_1
Logical extents 0 to 319
Physical extent 771 to 898:
Logical volume /dev/rootvg/varlv_mimage_1
Logical extents 0 to 127
Physical extent 899 to 1262:
FREE
Removendo o disco /dev/sda2 do mirror rootvg, conforme descrito abaixo:
# lvconvert -m0 root/locallv /dev/sda2:0-127
Volume group "root" not found# lvconvert -m0 rootvg/locallv /dev/sda2:0-127
Logical volume locallv converted.# lvconvert -m0 rootvg/rootlv /dev/sda2:128-191
Logical volume rootlv converted.# lvconvert -m0 rootvg/swaplv /dev/sda2:192-255
Logical volume swaplv converted.# lvconvert -m0 rootvg/tmplv /dev/sda2:256-256
Logical volume tmplv converted.# lvconvert -m0 rootvg/usrlv /dev/sda2:257-450
Logical volume usrlv converted.# lvconvert -m0 rootvg/jbosslv /dev/sda2:451-770
Logical volume jbosslv converted.# lvconvert -m0 rootvg/varlv /dev/sda2:771-898
Logical volume varlv converted.Após a quebra do mirror, o comando abaixo irá informar que não existe nenhum mirror ativo, conforme abaixo:
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert jbosslv rootvg -wi-ao 5.00g locallv rootvg -wi-ao 2.00g rootlv rootvg -wi-ao 1.00g swaplv rootvg -wi-ao 1.00g tmplv rootvg -wi-ao 512.00m usrlv rootvg -wi-ao 3.03g varlv rootvg -wi-ao 2.00gVamos, neste momento, retirar o disco /dev/sda2, que é na verdade um PV, executando o comando abaixo:
# vgreduce rootvg /dev/sda2
Removed "/dev/sda2" from volume group "rootvg"Executando o comando abaixo para listar todos os PVs relacionados a um VG, vamos verificar que não existe nenhum VG relacionado ao PV /dev/sda2.
# pvs
PV VG Fmt Attr PSize PFree /dev/sda2 lvm2 a- 19.75g 19.75g /dev/sdb5 rootvg lvm2 a- 1.00g 1.00g /dev/sdb6 rootvg lvm2 a- 18.72g 4.19gAté este ponto não tivemos problema algum e nosso mirror foi quebrado.
Alterando o disco que será iniciado
Acabamos de executar a quebra do nosso mirror nível 1, temos nossa partição /boot idêntica a do disco SDA.Vamos então mudar o disco que será inicializado pelo SO.
Para realizar está modificação, siga os passos abaixo utilizando o comando: fdisk /dev/sdb
E alterar o disco que será inicializado junto com o sistema "sdb" (não irei demonstrar como essa configuração é feita).
Após configurar o disco que irá iniciar o comando abaixo, deverá retornar as informações descritas abaixo:
# fdisk -l /dev/sdb
Disk /dev/sdb: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0004454b Device Boot Start End Blocks Id System /dev/sdb1 * 1 33 262144 83 Linux Partition 1 does not end on cylinder boundary. /dev/sdb2 33 2611 20708352 8e Linux LVMPronto, já temos nosso mirror (nível 1) interrompido e com todas as informações até o momento da quebra consistentes, e podemos executar com tranquilidade uma recompilação de kernel, atualizar o servidor sem medo de falhas, redimensionar discos etc.
Caso aconteça algum erro em algum dos processos acima, basta entrar como 'single user' e configurar o disco 'sda' para iniciar junto com o SO e pronto.
Dúvidas e sugestões, estou a disposição.
"Great times are coming. Think Open Source became Open Source"
Abraços/Regards