Re: inconsistency between thin pool metadata mapped_blocks and lvs output

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

 



On 05/11/2018 10:21 AM, Joe Thornber wrote:
On Thu, May 10, 2018 at 07:30:09PM +0000, John Hamilton wrote:
I saw something today that I don't understand and I'm hoping somebody can
help.  We had a ~2.5TB thin pool that was showing 69% data utilization in
lvs:

# lvs -a
   LV                    VG       Attr       LSize  Pool Origin Data%
Meta%  Move Log Cpy%Sync Convert
   my-pool         myvg twi-aotz--  2.44t             69.04  4.90
   [my-pool_tdata] myvg Twi-ao----  2.44t
   [my-pool_tmeta] myvg ewi-ao---- 15.81g

Is this everything? Is this a pool used by docker, which does not (did not) use LVM to manage thin-volumes?

However, when I dump the thin pool metadata and look at the mapped_blocks
for the 2 devices in the pool, I can only account for about 950GB.  Here is
the superblock and device entries from the metadata xml.  There are no
other devices listed in the metadata:

<superblock uuid="" time="34" transaction="68" flags="0" version="2"
data_block_size="128" nr_data_blocks="0">
   <device dev_id="1" mapped_blocks="258767" transaction="0"
creation_time="0" snap_time="14">
   <device dev_id="8" mapped_blocks="15616093" transaction="27"
creation_time="15" snap_time="34">

That first device looks like it has about 16GB allocated to it and the
second device about 950GB.  So, I would expect lvs to show somewhere
between 950G-966G Is something wrong, or am I misunderstanding how to read
the metadata dump?  Where is the other 700 or so GB that lvs is showing
used?

The non zero snap_time suggests that you're using snapshots.  I which case it
could just be there is common data shared between volumes that is getting counted
more than once.

You can confirm this using the thin_ls tool and specifying a format line that
includes EXCLUSIVE_BLOCKS, or SHARED_BLOCKS.  Lvm doesn't take shared blocks into
account because it has to scan all the metadata to calculate what's shared.

LVM just queries DM, and displays whatever that provides. You could see that in `dmsetup status` output, there are two pairs of '/' separated entries - first is metadata usage (USED_BLOCKS/ALL_BLOCKS), second data usage (USED_CHUNKS/ALL_CHUNKS).

So the error lies somewhere between dmsetup and kernel.

What is kernel/lvm version?
Is thin_check_executable configured in lvm.conf?

-- Martian

_______________________________________________
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