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
Introdução
Se o seu sistema está configurado com um mirror LVM nível 1, este artigo lhe ajudará a recuperar o sistema após uma falha, ou até mesmo caso você deseje fazer uma atualização do seu servidor ou recompilar seu kernel, entre outros.
O mirror LVM é uma ótima opção para aqueles que não possuem uma placa controladora RAID (o que é difícil atualmente), mas vai além. Mesmo como um RAID 5, o mirror LVM irá lhe ajudar neste caso, levando em consideração que o espelhamento não será quebrado diretamente via controladora.
Vamos parar de falar e por a mão na massa.
# fdisk -l /dev/sda /dev/sdb
# pvs
Verificando os VGs:
# vgs
Verificando a estrutura do mirror LVM nível 1:
# lvs
Voltando à nossa estrutura de discos e particionamento, possuímos uma partição fora do LVM: /dev/sdb1
# fdisk -l /dev/sdb
Vou utilizar o comando blkid para exibi-los:
# mkfs.ext4 -j /dev/sdb1
O comando acima criará um file system ext4 sobre a partição /dev/sdb1.
# blkid | grep sdb
# mkdir /boot.2
# mount /dev/sdb1 /boot.2
# cp -ap /boot/* /boot.2/
Cópia finalizada com sucesso.
O mirror LVM é uma ótima opção para aqueles que não possuem uma placa controladora RAID (o que é difícil atualmente), mas vai além. Mesmo como um RAID 5, o mirror LVM irá lhe ajudar neste caso, levando em consideração que o espelhamento não será quebrado diretamente via controladora.
Vamos parar de falar e por a mão na massa.
- Distribuição utilizada: Red Hat Enterprise 6.1
- Versão LVM: LVM 2.0
- Quantidade de discos: 2 discos de 20G
Análise de estrutura - cópia do /boot
Estrutura dos discos e particionamento:# fdisk -l /dev/sda /dev/sdb
Disk /dev/sda: 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/sda1 * 1 33 262144 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 33 2611 20708352 8e Linux LVM 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: 0xdef721d9 Device Boot Start End Blocks Id System /dev/sdb1 1 34 273073+ 83 Linux /dev/sdb2 35 2610 20691720 5 Extended /dev/sdb5 35 166 1060258+ 83 Linux /dev/sdb6 167 2610 19631398+ 83 LinuxVerificando se os discos estão relacionados a um PV:
# pvs
PV VG Fmt Attr PSize PFree /dev/sda2 rootvg lvm2 a- 19.73g 5.20g /dev/sdb5 rootvg lvm2 a- 1.00g 416.00m /dev/sdb6 rootvg lvm2 a- 18.72g 4.67gNa saída do comando acima, verificamos que existem 3 PVs associados ao VG rootvg.
Verificando os VGs:
# vgs
VG #PV #LV #SN Attr VSize VFree rootvg 3 7 0 wz--n- 39.45g 10.28gNa saída do comando acima, verificamos que no VG rootvg existem 3 PVs e 7 LVs.
Verificando a estrutura do mirror LVM nível 1:
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert jbosslv rootvg mwi-ao 5.00g jbosslv_mlog 100.00 locallv rootvg mwi-ao 2.00g locallv_mlog 100.00 rootlv rootvg mwi-ao 1.00g rootlv_mlog 100.00 swaplv rootvg mwi-ao 1.00g swaplv_mlog 100.00 tmplv rootvg mwi-ao 512.00m tmplv_mlog 100.00 usrlv rootvg mwi-ao 3.03g usrlv_mlog 100.00 varlv rootvg mwi-ao 2.00g varlv_mlog 100.00Obs.: O Linux ainda não trabalha com o /boot em LVM, diferentemente de outros Unix, como AIX, Solaris e HP-UX. Por isso temos que fazer uma cópia do nosso /boot para preservarmos o Boot Loader.
Fazendo uma cópia do /boot
Neste passo, vamos executar uma simples cópia do nosso /boot, pois como expliquei anteriormente, o Linux (LVM) não aceita que coloquemos /boot em LVM.Voltando à nossa estrutura de discos e particionamento, possuímos uma partição fora do LVM: /dev/sdb1
# 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: 0xdef721d9 Device Boot Start End Blocks Id System /dev/sdb1 1 34 273073+ 83 Linux /dev/sdb2 35 2610 20691720 5 Extended /dev/sdb5 35 166 1060258+ 83 Linux /dev/sdb6 167 2610 19631398+ 83 LinuxVamos criar um sistema de arquivos para esta partição, montá-la e fazer o backup do /boot atual.
Vou utilizar o comando blkid para exibi-los:
# mkfs.ext4 -j /dev/sdb1
O comando acima criará um file system ext4 sobre a partição /dev/sdb1.
# blkid | grep sdb
/dev/sdb1: UUID="0d99c5fb-4e35-4616-aac3-0ad6f091d81f" TYPE="ext4" /dev/sdb5: UUID="7otW2q-utkP-it3v-e8xy-M97Z-rbDl-nESC9Q" TYPE="LVM2_member" /dev/sdb6: UUID="Vfdz15-LMIz-U5aD-7XVj-97hP-I30q-xGHjQ3" TYPE="LVM2_member"Iniciando a cópia do /boot para o outro disco:
# mkdir /boot.2
# mount /dev/sdb1 /boot.2
# cp -ap /boot/* /boot.2/
Cópia finalizada com sucesso.