Skip to contentSkip to conversation

btrfs defra

DISCUSSION Bernhard Duebi 3 participants 4 messages Jun 13, 2011 – Jun 17, 2011 Btrfs file system

lore
Share & tools
lore
#0 lore raw

Hello everybody,

I'm no developer, just a simple user. I use btrfs as the root filesystem on my laptop. I use VirtualBox. Every VB disk lives in a separat btrfs subvolume. I use btrfs snapshots for backup and to clone VB VMs.

I wonder what happens when I defrag a file that is part of multiple snapshots? Will all instances of this file be defragmented, or will the file get its own fresh copy?

If it is important, my system is a 64bit ubuntu 10.10 and the filesystem is mounted with the option compress. If it helps, I would consider to upgrade to 11.04.

BTW: what is the difference between defrag and balance ?

Sincerely
Bernhard

#1 lore raw
Quoted 7 lines · Bernhard Duebi

I'm no developer, just a simple user. I use btrfs as the root filesystem on my laptop. I use VirtualBox. Every VB disk lives in a separat btrfs subvolume. I use btrfs snapshots for backup and to clone VB VMs.

I wonder what happens when I defrag a file that is part of multiple snapshots? Will all instances of this file be defragmented, or will the file get its own fresh copy?

The file gets its own copy.

Quoted 5 lines

If it is important, my system is a 64bit ubuntu 10.10 and the filesystem is mounted with the option compress. If it helps, I would consider to upgrade to 11.04.

BTW: what is the difference between defrag and balance ?

Defrag works on individual files, and tries to find a contiguous
sequence of bytes to write the file's data to. In the process, the current implementation will break any CoW duplication -- either within single files (copies with cp --reflink=always) or files copied via snapshotting.

Balance works at a much higher level, rewriting all (or large
quantities) of the filesystem data and metadata. Balance was originally designed to re-allocate all of the space the FS needs, thus enabling you to add more disks to a filesystem and ensure that they get used. (It's also useful for re-building spare copies of data if a disk's been removed as a result of failure). Balance will maintain all existing file semantics as it runs -- CoW copies are preserved, and no additional space will be used.

Hugo.

Signature · 3 lines
=== Hugo Mills: hugo@... carfax.org.uk | darksatanic.net | lug.org.uk ===
  PGP key: 515C238D from wwwkeys.eu.pgp.net or http://www.carfax.org.uk
       --- Someone's been throwing dead sheep down my Fun Well ---       
#2 lore raw
Quoted 1 line

=C2=A0 Defrag works on individual files, and tries to find a contiguo=

us

Quoted 2 lines

sequence of bytes to write the file's data to. In the process, the current implementation will break any CoW duplication -- either withi=

n

Quoted 2 lines

single files (copies with cp --reflink=3Dalways) or files copied via snapshotting.

While it's obviously impossible to defrag and maintain deduplicated partial chunks simultaneously without some kind of compromise (the ideal form of which is just beyond the reach of this list participant's obviousness flashlight), how difficult is it going to be to modify the current defrag implementation to hip the additional references to the file to the fact that a contiguous version (of an individual file) is now available and it's time to update their links too, after each file with multiple reflinks/snapshots to its current form has been copied to contiguous space?

Could Bernhard Duebi do it?
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" = in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw
Quoted 17 lines · David Nicol
Quoted 5 lines

Defrag works on individual files, and tries to find a contiguous
sequence of bytes to write the file's data to. In the process, the current implementation will break any CoW duplication -- either within single files (copies with cp --reflink=always) or files copied via snapshotting.

While it's obviously impossible to defrag and maintain deduplicated partial chunks simultaneously without some kind of compromise (the ideal form of which is just beyond the reach of this list participant's obviousness flashlight), how difficult is it going to be to modify the current defrag implementation to hip the additional references to the file to the fact that a contiguous version (of an individual file) is now available and it's time to update their links too, after each file with multiple reflinks/snapshots to its current form has been copied to contiguous space?

Quoted 1 line

Could Bernhard Duebi do it?

Unfortunately not, I'm just a system engineer with interest in storage. I'm sorry to disapoint you.

Sincerely
Bernhard