É possível criar instantâneos apenas de metadados com LVM?

É possível criar instantâneos apenas de metadados com LVM?

Usando dm thin, entendo que agora é possível armazenar os metadados separadamente do próprio instantâneo.

Alguém sabe se seria possível criar instantâneos apenas de metadados que não incorressem na mesma sobrecarga de E/S? Estou interessado em saber quais blocos foram alterados, mas não no conteúdo do bloco antigo.

Minha principal motivação para esta pergunta é que me pergunto se uma solução de backup usando algo como lvmsync (https://github.com/mpalmer/lvmsync) - mas não incorrendo em nenhuma sobrecarga significativa.

A documentação é um pouco leve em informações sobre como conseguir isso, meus pensamentos eram sobre a criação de um pool fino baseado em /dev/null ou similar que descarta silenciosamente quando gravado.

Responder1

O equivalente do mapeador de dispositivo /dev/nullé o alvo zero ( dmsetup create --table '0 <nsectors> zero' myzeroes). Acho que você poderá usar isso como um dispositivo de dados para seu thin pool; e, em seguida, faça um snapshot do seu volume original (como uma origem externa) para rastrear quais alterações são feitas nele. Tudo isso é feito fora do LVM; você precisa de toda a flexibilidade do DM, enquanto o LVM atende a casos de uso comuns de maneira mais conveniente e segura.

Com ajuda dethin-provisioning.txt:

dmsetup create --table "0 $nsectors zero" myzeroes
dmsetup create pool \
    --table "0 $nsectors thin-pool $metadata_dev /dev/mapper/myzeroes \
    $data_block_size $low_water_mark"
thinnum=0
dmsetup message /dev/mapper/pool 0 "create_thin $thinnum"
origsectors=$(blockdev --getsz /dev/myorigin)
dmsetup create snap \
    --table "0 $origsectors thin /dev/mapper/pool $thinnum /dev/myorigin"

informação relacionada