David Sterba <dste...@suse.cz> schrieb: > On Tue, Feb 04, 2014 at 08:22:05PM -0500, Josef Bacik wrote: >> On 02/04/2014 03:52 PM, Kai Krakow wrote: >> >Hi! >> > >> >I'm curious... The whole snapshot thing on btrfs is based on its COW >> >design. But you can make individual files and directory contents nocow >> >by applying the C attribute on it using chattr. This is usually >> >recommended for database files and VM images. So far, so good... >> > >> >But what happens to such files when they are part of a snapshot? Do they >> >become duplicated during the snapshot? Do they become unshared (as a >> >whole) when written to? Or when the the parent snapshot becomes deleted? >> >Or maybe the nocow attribute is just ignored after a snapshot was taken? >> > >> >After all they are nocow and thus would be handled in another way when >> >snapshotted. >> > >> When snapshotted nocow files fallback to normal cow behaviour. > > This may seem unclear to people not familiar with the actual > implementation, and I had to think for a second about that sentence. The > file will keep the NOCOW status, but any modified blocks will be newly > allocated on the first write (in a COW manner), then the block location > will not change anymore (unlike ordinary COW).
Ah okay, that makes it clear. So, actually, in the snapshot the file is still nocow - just for the exception that blocks being written to become unshared and relocated. This may introduce a lot of fragmentation but it won't become worse when rewriting the same blocks over and over again. > HTH Yes, it does. ;-) -- Replies to list only preferred. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html