GNU / Linux: dispositivo de bloqueio de sobreposição / dispositivo de bloco empilhável

13

O GNU / Linux possui uma montagem de união que sobrepõe dirs. Assim, você pode montar um diretório gravável no topo de um diretório somente leitura. Quando o diretório gravável é desmontado, o diretório somente leitura é intocado.

Estou procurando a mesma funcionalidade para dispositivos de bloco - de preferência com a parte gravável armazenada em um arquivo. Então, gostaria de fazer algo como:

device-setup /dev/newdevice /dev/read-only-device overlayfile

Se eu gravar em / dev / newdevice, as alterações deverão ser armazenadas no arquivo de sobreposição. Se eu ler os setores escritos para, eu deveria obter os dados do arquivo de sobreposição. Se eu leio setores não gravados, devo pegar os dados de / dev / read-only-device.

Existe tal ferramenta?

    
por Ole Tange 12.03.2013 / 17:15

1 resposta

20

Você pode fazer isso com o mapeador de dispositivos e sua meta snapshot .

Basicamente, você faria o mesmo que o LVM ao criar um instantâneo gravável.

dev=/dev/read-only-device
ovl=/path/to/overlay.file
newdevname=newdevice
size=$(blockdev --getsz "$dev")

loop=$(losetup -f --show -- "$ovl")
printf '%s\n' "0 $size snapshot $dev $loop P 8" |
  dmsetup create "$newdevname"

Depois, você pode acessar o dispositivo sobreposto como /dev/mapper/newdevice .

Se você também precisar acessar o dispositivo original ao mesmo tempo, faça o seguinte:

printf '%s\n' "0 $size snapshot-origin $dev" |
  dmsetup create originaldevice

E acesse-o em mais de /dev/mapper/originaldevice .

Você pode gravar nesse dispositivo e, além dos fragmentos gravados no dispositivo de instantâneo, o arquivo de sobreposição conterá uma cópia dos fragmentos que foram sobrescritos ao gravar na origem do instantâneo.

O arquivo de sobreposição pode ser um arquivo esparso. (por exemplo, crie-o como truncate -s10G the-file ) e não precisa ser tão grande quanto o dispositivo original. Você pode dizer o quanto está cheio com dmsetup status "$newdevname" .

Observação: há requisitos de tamanho e conteúdo em um dispositivo de instantâneo .

    
por 12.03.2013 / 17:42