GNU / Linux a un montage union qui superpose les répertoires. Vous pouvez donc monter un répertoire accessible en écriture au-dessus d'un répertoire en lecture seule. Lorsque le répertoire inscriptible est démonté, le répertoire en lecture seule n'est pas modifié.
Je recherche la même fonctionnalité pour les périphériques blocs - de préférence avec la partie inscriptible stockée dans un fichier. Je voudrais donc exécuter quelque chose comme:
device-setup /dev/newdevice /dev/read-only-device overlayfile
Si j'écris dans / dev / newdevice, les modifications doivent être stockées dans un fichier de superposition. Si je lis les secteurs écrits, je devrais obtenir les données du fichier de superposition. Si je lis des secteurs non écrits, je devrais obtenir les données de / dev / read-only-device.
Un tel outil existe-t-il?
la source
Réponses:
Vous pouvez le faire avec le mappeur de périphériques et sa
snapshot
cible.Fondamentalement, vous feriez la même chose que LVM lorsque vous créez un instantané accessible en écriture.
Ensuite, vous pouvez accéder au périphérique superposé en tant que
/dev/mapper/newdevice
.Si vous avez également besoin d'accéder à l'appareil d'origine en même temps, vous pouvez faire:
Et accédez-y par-dessus
/dev/mapper/originaldevice
.Vous pouvez écrire sur ce périphérique, puis en plus des segments écrits sur le périphérique de capture instantanée, le fichier de superposition contiendra une copie des fragments qui ont été remplacés lors de l'écriture dans l'origine de la capture instantanée.
Le fichier de superposition peut être un fichier clairsemé. (par exemple, créez-le en tant que
truncate -s10G the-file
) et n'a pas besoin d'être aussi grand que l'appareil d'origine. Vous pouvez dire à quel point il est pleindmsetup status "$newdevname"
.Remarque: Il existe des exigences de taille et de contenu sur un périphérique d'instantané .
la source