Comment obtenir NTFS comme comportement d'instantané dans BTRFS?

J'aimerais utiliser BTRFS pour héberger des machines virtuelles dans VirtualBox pour pouvoir utiliser des instantanés sans LVM ou tel. En théorie, je n'ai pas besoin de comportement de CoW tout le temps en raison de raisons de performance et d'utilisation de nodatacow il semble que je n'ai pas besoin. Ce que j'aimerais avoir à la place est une approche de ma compréhension que Windows et NTFS semblent utiliser: les données sont changées tout le temps sans CoW , mais si l'on crée un instantané du système de fichiers, les données actuelles sont conservées dans cet instantané en copiant les données Si cela doit être changé de quelque façon que ce soit. L'important semble être que cela ne se produit exactement qu'une seule fois par instantané et vraiment uniquement pour les blocs modifiés. Ainsi, après qu'un bloc à modifier a été copié au début, toutes les modifications ultérieures au même bloc sont simplement appliquées, encore une fois sans comportement de CoW .

En plus de copier le bloc d'origine des données modifiées vers un endroit sûr, du point de vue de la performance, cela m'a beaucoup de sens et j'aimerais avoir exactement ce comportement pour héberger mes machines virtuelles. Ceux-ci écrivent des données tout le temps et je ne vois simplement pas comment j'ai besoin de comportement CoW pour tous ces changements.

Je ne souhaite que CoW après avoir créé un instantané du système de fichiers par but, par exemple à des fins de sauvegarde. Par la suite, j'ai besoin de CoW bien sûr, pour pouvoir garder mon instantané cohérent tant qu'il en a besoin. Mais encore, même après la création des instantanés, je n'aurais pas besoin de CoW pour toute l'éternité pour toutes les données, mais une seule fois pour les blocs modifiés par la suite. Tous les changements après la première peuvent être appliqués comme sans aucune CoW .

D'après ma compréhension des documents BTRFS, si CoW arrive une fois à un fichier, il continue à se produire pour toujours. Mais je me trompe peut-être …

Alors, est ce que j'aimerais avoir avec BTRFS?

Si CoW arrive une fois à un fichier, il continue à se produire pour toujours. Mais je me trompe peut-être bien sûr.

Je pense que tu as tort. J'ai trouvé cette question sur la prise d'instantanés d'un volume BTRFS monté avec nodatacow . Il y a une citation (à partir de la liste de diffusion BTRFS ) qui semble cruciale pour votre cas:

Sur un fichier NOCOW, la première écriture dans un bloc de fichier (4096 octets) après une capture instantanée doit encore être COW, car l'instantané verrouille l'ancienne version en place, et maintenant le bloc de fichier a changé, donc il DOIT être écrit ailleurs malgré le NOCOW dans la commande Pour garder l'instantané tel quel. Cependant, le fichier conserve l'attribut NOCOW et des écritures supplémentaires sur le même bloc de fichiers seront en place … jusqu'au prochain instantané bien sur.

Il semble que nodatacow mount option vous donne exactement ce que vous voulez. Rappelez-vous qu'il y a des limites:

nodatacow
Ne pas copier-sur-écrire des données pour les fichiers nouvellement créés, les fichiers existants ne sont pas affectés. Cela éteint également la somme de contrôle! […] potentiellement obtenir des fichiers partiellement mis à jour sur les pannes du système. […] coupe la compression!

Source: options de montage BTRFS .