GNU / Linux имеет монтируемое объединение, которое перекрывает каталоги. Таким образом, вы можете установить записываемый каталог поверх каталога, доступного только для чтения. Когда записываемый каталог отключен, доступный только для чтения каталог остается неизменным.
Я ищу те же функции для блочных устройств - желательно с записываемой частью, хранящейся в файле. Поэтому я хотел бы запустить что-то вроде:
device-setup /dev/newdevice /dev/read-only-device overlayfile
Если я пишу в / dev / newdevice, изменения должны быть сохранены в оверлейном файле. Если я читаю записанные сектора, я должен получить данные из оверлейного файла. Если я читаю сектора, не записанные в, я должен получить данные с / dev / read-only-device.
Существует ли такой инструмент?
block-device
loop-device
snapshot
Оле Танге
источник
источник
Ответы:
Вы можете сделать это с помощью устройства отображения и его
snapshot
цели.По сути, вы будете делать то же, что и LVM, когда создаете записываемый снимок.
Затем вы можете получить доступ к наложенному устройству как
/dev/mapper/newdevice
.Если вам одновременно необходим доступ к исходному устройству, вы можете сделать:
И доступ к нему окончен
/dev/mapper/originaldevice
.Вы можете записать на это устройство, тогда в дополнение к чанкам, записанным на устройство моментального снимка, файл оверлея будет содержать копию чанков, которые были перезаписаны при записи в источник моментального снимка.
Оверлейный файл может быть разреженным файлом. (например, создайте его как
truncate -s10G the-file
), и он не должен быть таким же большим, как оригинальное устройство. Вы можете сказать, насколько он полонdmsetup status "$newdevname"
.Примечание. На устройстве моментальных снимков имеются требования к размеру и содержанию .
источник