GNU / Linux tiene montaje de unión que superpone directorios. Por lo tanto, puede montar un directorio de escritura encima de un directorio de solo lectura. Cuando el directorio de escritura se desmonta, el directorio de solo lectura no se toca.
Estoy buscando la misma funcionalidad para dispositivos de bloque, preferiblemente con la parte grabable almacenada en un archivo. Entonces me gustaría ejecutar algo como:
device-setup /dev/newdevice /dev/read-only-device overlayfile
Si escribo en / dev / newdevice, los cambios deberían almacenarse en un archivo de superposición. Si leo los sectores escritos, debería obtener los datos del archivo de superposición. Si leo sectores en los que no se ha escrito, debería obtener los datos de / dev / read-only-device.
¿Existe tal herramienta?
block-device
loop-device
snapshot
Ole Tange
fuente
fuente
Respuestas:
Puede hacerlo con el mapeador de dispositivos y su
snapshot
objetivo.Básicamente, haría lo mismo que lo que hace LVM cuando crea una instantánea grabable.
Luego puede acceder al dispositivo superpuesto como
/dev/mapper/newdevice
.Si también necesita acceso al dispositivo original al mismo tiempo, puede hacer lo siguiente:
Y accede a ella
/dev/mapper/originaldevice
.Puede escribir en ese dispositivo, luego, además de los fragmentos escritos en el dispositivo de instantánea, el archivo de superposición contendrá una copia de los fragmentos que se han sobrescrito al escribir en el origen de la instantánea.
El archivo de superposición puede ser un archivo disperso. (por ejemplo, créelo como
truncate -s10G the-file
) y no tiene que ser tan grande como el dispositivo original. Puedes decir qué tan lleno estádmsetup status "$newdevname"
.Nota: Hay requisitos de tamaño y contenido en un dispositivo de instantánea .
fuente