LVM을 사용하여 메타데이터 전용 스냅샷을 생성할 수 있습니까?

LVM을 사용하여 메타데이터 전용 스냅샷을 생성할 수 있습니까?

dm Thin을 사용하면 이제 스냅샷 자체와 별도로 메타데이터를 저장할 수 있다는 것을 알고 있습니다.

동일한 I/O 오버헤드를 발생시키지 않는 메타데이터 전용 스냅샷을 생성하는 것이 가능한지 아는 사람이 있습니까? 어떤 블록이 변경되었는지는 관심이 있지만 이전 블록의 내용에는 관심이 없습니다.

이 질문에 대한 주된 동기는 lvmsync(https://github.com/mpalmer/lvmsync) - 하지만 상당한 오버헤드가 발생하지는 않습니다.

이 문서는 이를 달성하는 방법에 대한 정보에 대해 약간 가볍습니다. 내 생각은 /dev/null 또는 기록할 때 자동으로 삭제하는 유사한 기반의 씬 풀을 만드는 것이었습니다.

답변1

에 해당하는 장치 매퍼는 /dev/null제로 대상( dmsetup create --table '0 <nsectors> zero' myzeroes)입니다. 내 생각엔 이것을 씬 풀용 ​​데이터 장치로 사용할 수 있을 것 같습니다. 그런 다음 원본 볼륨의 스냅샷을 외부 원본으로 사용하여 변경 사항을 추적합니다. 이 모든 작업은 LVM 외부에서 수행됩니다. LVM은 보다 편리하고 안전하게 일반적인 사용 사례를 수행하는 반면 DM의 완전한 유연성이 필요합니다.

도움을 받아씬 프로비저닝.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"

관련 정보