Re: Data percentage too large after thin_dump --repair/thin_restore

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for the reply Zdenek!

I realized that the biggest confusion for me is that I'm using LVM2 tools 2.02.98-6 (which is the latest version in Ubuntu) and the swapping support was added in 2.02.98-9 (I'm curious why they didn't pick the latest of 2.02.98).

On Tue, Sep 2, 2014 at 2:06 AM, Zdenek Kabelac <zkabelac@redhat.com> wrote:
Dne 1.9.2014 v 20:13 Timur Alperovich napsal(a):

Hi there,

I'm using LVM 2.02.98 and encountered a metadata corruption issue. To recover
from it, I attempted to perform the following steps:
1. thin_check /dev/mapper/pool_tmeta
2. thin_dump /dev/mapper/pool_tmeta > /tmp/metadata

Hi

NEVER EVER use _tmeta device from running active thin-pool volume.
It's the very same case like you would be running  'fsck' on
a mounted filesystem. 
3. dd if=/dev/zero of=/dev/mapper/pool_tmeta
4. thin_restore -i /tmp/metadata -o /dev/mapper/pool_tmeta

All of the above steps have succeeded, however, when attempting to list the
_metadata\_percent_ field, I get an error:

I'm surprised you've not got kernel OOPS after such brutal destruction
of life metadata device (i.e. almost equal to zeroing your root volume).


Is this a known issue and is there a workaround? I need to be able to examine
the _metadata\_percent_ field to make sure we don't exhaust the metadata space.


Normal way -

lvconvert --repair vg/pool

I believe this was added in 2.02.102. Unfortunately, upgrading LVM2 is a bit tricky on Ubuntu (will need to build the package from source).
 


If this is not working - then you can 'swap' metadata out of your thin-pool
using following sequence-

- make sure pool is not active.
- build temporary local LV   (lvcreate -l1 vg -n temp)
- swap this LV with metadata of to-be-repaired pool
  (lvconvert --thinpool vg/fixpool --poolmetadata temp)

This command fails, as --poolmetadata is not a valid option. I found that the swapping was not supported until 2.02.98-9 and I'm using 2.02.98-6 (in 2.02.98-9 changelog: "Add lvconvert support to swap thin pool metadata volume."). Is there a way to do this without the swapping support? I guess I should be able to do it with dmsetup? I'm not sure how painful that would be.

I'll look into upgrading the version, as well (which is probably the right thing to do).

- activate 'temp' LV now with pool's metadata 
  (lvchange -ay vg/temp)
- repair metadata
  (you may need other 'bigger' volume to restore fixed metadata)
  (i.e.  thin_restore -i /dev/vg/temp -o /dev/vg/biggertemp)
- thin_check restored volume
- thin_dump - and compare  vgcfgrestore & this dump are at the same
  transaction_id state (look at lvm2 metadata for thin pool)
- deactivate again related volumes
- swap repaired LV back
  (lvconvert --thinpool vg/fixpool --poolmetadata repairedtemp)
- try to active repaired thin pool
- remove unneeded volumes from vg....


Zdenek



_______________________________________________
linux-lvm mailing list
linux-lvm@redhat.com
https://www.redhat.com/mailman/listinfo/linux-lvm
read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/

Timur
_______________________________________________
linux-lvm mailing list
linux-lvm@redhat.com
https://www.redhat.com/mailman/listinfo/linux-lvm
read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/

[Index of Archives]     [Gluster Users]     [Kernel Development]     [Linux Clusters]     [Device Mapper]     [Security]     [Bugtraq]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]

  Powered by Linux