如何运行 lvm 的 thin_dump 或 thin_check?元数据无法实时显示,那么您会使用什么选项呢?

如何运行 lvm 的 thin_dump 或 thin_check?元数据无法实时显示,那么您会使用什么选项呢?

我想运行thin_dumpthin_check。他们说它们不能在实时元数据上运行。我同意。问题是我不知道如何让元数据不实时,同时仍然能够给出thin_dumpthin_check在什么上运行的参数。

我知道还有另一种使用元数据快照的方法,用于实时元数据,但我不想那样做。我现在不想更改驱动器上的任何内容。

# lvs -a
disk1thin           lvm    twi-aot---  <4.53t                     92.10  83.47
[disk1thin_tdata]   lvm    Twi-ao----  <4.53t
[disk1thin_tmeta]   lvm    ewi-ao---- 640.00m
# # Need to de-activate the metadata - this is the only way I know how, but must not be right
# lvchange -an lvm/disk1thin
# lvs -a
disk1thin           lvm    twi---t---  <4.53t
[disk1thin_tdata]   lvm    Twi-------  <4.53t
[disk1thin_tmeta]   lvm    ewi------- 640.00m
# thin_dump <uhh, what goes here?>
# thin_dump lvm/disk1thin
Couldn't stat path
# thin_dump lvm/disk1thin_tdata
Couldn't stat path
# thin_dump lvm/disk1thin_tmeta
Couldn't stat path
# thin_dump lvm/disk1thin-tpool
Couldn't stat path
# ls -la /dev/mapper
# crw-------  1 root root 10, 236 May 31 00:28 control
# # Not listed
# ls -la /dev/lvm/
ls: cannot access '/dev/lvm/': No such file or directory
# lvchange -ay lvm/disk1thin_tmeta
  Operation not permitted on hidden LV lvm/disk1thin_tmeta
# # Nope, that didn't work...

我也尝试过在激活它们之后dmsetup suspend在它们上运行,但是这确实会暂停对它们的所有读取,就像它的手册页所说的那样,所以虽然它们存在于中/dev/lvmthin_dumpthin_check无法在它们上运行。

一旦精简池被停用,我也尝试过:

# thin_dump /dev/sdh3
bad checksum in superblock, wanted 3832019051

并且它表示任何其他带有精简卷的设备都存在校验和错误。我知道并非所有磁盘都出现问题,因此我很确定这不是一个合适的选项。尽管精简池位于此设备上,但该设备以较小的非精简 lv 开始,因此该选项实际上并没有告诉它在正确的位置查找精简卷。

答案1

我不会将此标记为答案,因为我认为它很糟糕。而且,我不推荐它。它对我有用。

但是,一定有更好的方法。希望有人知道。

确保绝对没有任何东西在使用精简池。您无法在其上启动。如果它是您的根卷,则必须从 ISO 运行。您 umount可能正在使用的任何环回设备,停止交换文件等。 lvchange -an精简池中的所有 lv 以停用它们。(但不要停用精简卷本身。)

# dmsetup info -c
Name                Maj Min Stat Open
lvm-disk1thin-tpool 253  10 L--w    1...
lvm-disk1thin_tdata 253   9 L--w    0...
lvm-disk1thin_tmeta 253   8 L--w    0...

确保_tdata和 的open 为 0。_tmeta我不知道为什么 的 open 为 1。-tpool我不明白如何将其设为 0。

# dmsetup remove lvm-disk1thin-tpool
device-mapper: remove ioctl on lvm-disk1thin-tpool  failed: Device or resource busy

因此,为了安全起见,想办法将其设为 0。或者,如果你喜欢冒险:

# dmsetup remove -f lvm-disk1thin-tpool
device-mapper: remove ioctl on lvm-disk1thin-tpool  failed: Device or resource busy
Command failed

但,真的有吗?

# lvs -a
  disk1thin                       lvm    twi-XXt-X-  <4.53t
  [disk1thin_tdata]               lvm    Twi-------  <4.53t
  [disk1thin_tmeta]               lvm    ewi-a----- 640.00m

这些 X 代表状态未知、设备开放性未知、卷健康未知。

# thin_dump lvm-disk1thin_tmeta
(YAY, output!)

然后,让精简池再次处于活动状态:

# lvchange -ay lvm/disk1thin

(您需要重新激活所有已停用的 lv,重新挂载并启动所有已停止的程序,等等。)

答案2

@user1902689 解决方案是(适用于 Ubuntu 18.04):

# Reserve the metadata snapshot
dmsetup message /dev/mapper/volg-volg--thinpool-tpool 0 reserve_metadata_snap

# Run the dump (the -m is the crtical part here)
thin_dump --format xml -m  /dev/mapper/volg-volg--thinpool_tmeta

# Release the metadata snapshot
dmsetup message /dev/mapper/volg-volg--thinpool-tpool 0 release_metadata_snap

我相信元数据快照在内存中,因此您不想长时间保存它。

仅供参考 - volg 是我的卷组 - thinpool 是 thinpool 的卷 - tpool 是隐藏的。

# lvs -a
  LV                    VG   Attr       LSize  Pool          Origin      Data%  Meta%  Move Log Cpy%Sync Convert
  [lvol0_pmspare]       volg ewi------- 12.00m                                                                  
  thin_volume           volg Vwi-a-tz--  6.00g volg-thinpool             31.96                                  
  thin_volume_snap1     volg Vwi---tz-k  6.00g volg-thinpool thin_volume                                        
  thin_volume_snap2     volg Vwi---tz-k  6.00g volg-thinpool thin_volume                                        
  thin_volume_snap3     volg Vwi---tz-k  6.00g volg-thinpool thin_volume                                        
  volg-thinpool         volg twi-aotz--  9.80g                           20.51  9.41                            
  [volg-thinpool_tdata] volg Twi-ao----  9.80g                                                                  
  [volg-thinpool_tmeta] volg ewi-ao---- 12.00m                                                            

相关内容