Я хочу бежать 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
на них, но это приостанавливает все чтения из них, как сказано на его странице руководства, поэтому, хотя они существуют в /dev/lvm
, thin_dump
и thin_check
на них нельзя наезжать.
Я также попробовал, когда тонкий пул отключен:
# thin_dump /dev/sdh3
bad checksum in superblock, wanted 3832019051
И это говорит о плохой контрольной сумме для любого другого устройства, на котором есть тонкий том. Я знаю, что все диски не испортились, поэтому я почти уверен, что это неподходящий вариант. Хотя тонкий пул есть на этом устройстве, устройство начинается с меньшего нетонкого 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
Я считаю, что снимок метаданных находится в памяти, поэтому вы не хотите хранить его надолго.
FYI - 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
Я не собираюсь отмечать это как ответ, потому что считаю это ужасным. И я не могу это рекомендовать. У меня это сработало.
Но должен быть способ получше. Надеюсь, кто-то это знает.
Убедитесь, что АБСОЛЮТНО НИЧЕГО не использует тонкий бассейн. На нем нельзя загрузиться. Если это ваш корневой том, вы должны работать с 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...
Убедитесь, что значение open равно 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
(Вам нужно будет повторно активировать все деактивированные уровни, заново смонтировать и запустить все, что вы остановили, и т. Д.)