Как вы запускаете lvm's thin_dump или thin_check? метаданные не могут быть живыми, но какой вариант вы используете?

Я хочу бежать thin_dump, а также thin_check, Они говорят, что они не могут быть запущены на живых метаданных. Это нормально для меня. Проблема в том, что я не знаю, как заставить метаданные не жить, но я все еще могу дать thin_dump а также thin_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 на них, но это приостанавливает все чтения от них, как говорится в его man-странице, поэтому, хотя они существуют в /dev/lvm, thin_dump а также thin_check на них нельзя бегать.

Я также попробовал, как только тонкий пул деактивируется:

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

И это говорит плохую контрольную сумму для любого другого устройства, у которого есть тонкий объем на нем. Я знаю, что все диски не испортились, поэтому я уверен, что это неправильный вариант. Хотя тонкий пул находится на этом устройстве, устройство запускается с меньшего не тонкого lv, поэтому опция не говорит ему, чтобы искать в нужном месте тонкий объем.

1 ответ

Я не собираюсь отмечать это как ответ, потому что я думаю, что это ужасно. И я не могу рекомендовать это. Это сработало для меня.

Но должен быть лучший способ. Надеюсь, кто-то знает это.

Убедитесь, что АБСОЛЮТНО НИЧЕГО не использует тонкий бассейн. Вы не можете загрузиться на нем. Если это ваш корневой том, вы должны работать с ISO. umount любые петлевые устройства, которые вы можете использовать, остановить обмен файлами и т. д. lvchange -an все лв находятся в тонком бассейне, чтобы деактивировать их. (Но не деактивируйте сам тонкий том.)

# 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...

Убедитесь, что открыт 0 _tdata а также _tmeta, Я не знаю, почему открыт 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, перемонтировать и запустить все, что вы остановили и т. Д.)

@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                                                            
Другие вопросы по тегам