I have difficulties grabbing these two concepts. As far as I can tell, a snapshot is an instant, synchronized, photography of the filesystem at a given point in time; a subvolume is a "subroot" to a btrfs filesystem. While I fully understand (and use) the purpose of snapshots, I don''t quite fathom the use case for subvolumes, apart from btrfs-convert... Why has btrfs grown such a feature in the first place? Can someone give me a use case for them? -- Francis Galiegue, fgaliegue@gmail.com "It seems obvious [...] that at least some ''business intelligence'' tools invest so much intelligence on the business side that they have nothing left for generating SQL queries" (Stéphane Faroult, in "The Art of SQL", ISBN 0-596-00894-5) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
You may take a look at this article this isn''t actually a explanation of why snapshots or subvolumes are used, but maybe you can read the importance of the difference from the context: http://www.h-online.com/open/features/Snapshots-and-subvolumes-747029.html On Thu, Oct 7, 2010 at 13:39, Francis Galiegue <fgaliegue@gmail.com> wrote:> > I have difficulties grabbing these two concepts. > > As far as I can tell, a snapshot is an instant, synchronized, > photography of the filesystem at a given point in time; a subvolume is > a "subroot" to a btrfs filesystem. > > While I fully understand (and use) the purpose of snapshots, I don''t > quite fathom the use case for subvolumes, apart from btrfs-convert... > Why has btrfs grown such a feature in the first place? Can someone > give me a use case for them? > > -- > Francis Galiegue, fgaliegue@gmail.com > "It seems obvious [...] that at least some ''business intelligence'' > tools invest so much intelligence on the business side that they have > nothing left for generating SQL queries" (Stéphane Faroult, in "The > Art of SQL", ISBN 0-596-00894-5) > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html-- To be or not to be -- Shakespeare | To do is to be -- Nietzsche | To be is to do -- Sartre | Do be do be do -- Sinatra -- To be or not to be -- Shakespeare | To do is to be -- Nietzsche | To be is to do -- Sartre | Do be do be do -- Sinatra -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Just to tell you one of my use case, I do compilations of OpenWRT on a Btrfs filesystem, when I snapshot, I only snapshot the subvolume where all the sources are instead of the whole root filesystem, and when I need a snapshot of the root for backup purposes, only the root without all the snapshot (which are used to compile for different models of embedded devices) is snapshotted, which probably reduces the overhead (I can''t tell for sure) and makes deletion instantaneous, the cleaner just wipes behind the subvolume remove command. On Thu, Oct 7, 2010 at 7:39 AM, Francis Galiegue <fgaliegue@gmail.com> wrote:> I have difficulties grabbing these two concepts. > > As far as I can tell, a snapshot is an instant, synchronized, > photography of the filesystem at a given point in time; a subvolume is > a "subroot" to a btrfs filesystem. > > While I fully understand (and use) the purpose of snapshots, I don''t > quite fathom the use case for subvolumes, apart from btrfs-convert... > Why has btrfs grown such a feature in the first place? Can someone > give me a use case for them? > > -- > Francis Galiegue, fgaliegue@gmail.com > "It seems obvious [...] that at least some ''business intelligence'' > tools invest so much intelligence on the business side that they have > nothing left for generating SQL queries" (Stéphane Faroult, in "The > Art of SQL", ISBN 0-596-00894-5) > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >-- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Oct 07, 2010 at 08:30:31AM -0400, Jérôme Poulin wrote:> Just to tell you one of my use case, I do compilations of OpenWRT on a > Btrfs filesystem, when I snapshot, I only snapshot the subvolume where > all the sources are instead of the whole root filesystem, and when I > need a snapshot of the root for backup purposes, only the root without > all the snapshot (which are used to compile for different models of > embedded devices) is snapshotted, which probably reduces the overhead > (I can''t tell for sure) and makes deletion instantaneous, the cleaner > just wipes behind the subvolume remove command.BTW, it would be very useful to be able to turn existing directories into subvolumes. Mike -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Benjamin Griese
2010-Oct-07 14:00 UTC
Re: Can you please define "snapshot" and "subvolume"?
+1 from me On Thu, Oct 7, 2010 at 15:18, Mike Hommey <mh@glandium.org> wrote:> On Thu, Oct 07, 2010 at 08:30:31AM -0400, Jérôme Poulin wrote: >> Just to tell you one of my use case, I do compilations of OpenWRT on a >> Btrfs filesystem, when I snapshot, I only snapshot the subvolume where >> all the sources are instead of the whole root filesystem, and when I >> need a snapshot of the root for backup purposes, only the root without >> all the snapshot (which are used to compile for different models of >> embedded devices) is snapshotted, which probably reduces the overhead >> (I can''t tell for sure) and makes deletion instantaneous, the cleaner >> just wipes behind the subvolume remove command. > > BTW, it would be very useful to be able to turn existing directories > into subvolumes. > > Mike > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >-- To be or not to be -- Shakespeare | To do is to be -- Nietzsche | To be is to do -- Sartre | Do be do be do -- Sinatra -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Goffredo Baroncelli
2010-Oct-07 18:08 UTC
Re: Can you please define "snapshot" and "subvolume"?
On Thursday, 07 October, 2010, Francis Galiegue wrote:> I have difficulties grabbing these two concepts. > > As far as I can tell, a snapshot is an instant, synchronized, > photography of the filesystem at a given point in time; a subvolume is > a "subroot" to a btrfs filesystem. > > While I fully understand (and use) the purpose of snapshots, I don''t > quite fathom the use case for subvolumes, apart from btrfs-convert... > Why has btrfs grown such a feature in the first place? Can someone > give me a use case for them?By design in btrfs a snapshot is "a instant, synchronized, photography of" a subvolume. In fact you can snapshot only a subvolume [*]. Moreover the subvolumes have the following properties: 1) it is possible to mount a subvolume of a filesystem: if you execute the following commands: # mount -o subvol=name-of-subvol /dev/sdxx /mn/test the kernel will use the subvolume "name-of-subvol" of the btrfs filesystem of the partition /dev/sdxx. Pay attention: this work *only* if the subvolume "name-of-subvol" is under the root of the filesystem. 2) a subvolume may be deleted asynchronously by the command "btrfs subvol delete <path>". Pay attention that the deletion is performed not instantaneous but in background. In fact even though the subvolume disappear instantaneous the space is freed during the background removing. 3) If you have a subvolume into another one, and you snapshot the latter, in the snapshot you cannot see the nested subvolume. For example you have the root (''/'') under a subvolume and the /home under another subvolume. If you snapshot the root, this snapshot will not contain the subvolume /home. This may be useful if you want restore an old snapshot of the root filesystem without affecting the users homes directories. In the future some attributes (raid mode, compression) may be set per- subvolume basis. Regards G.Baroncelli [*] The btrfsctl utility doesn''t return an error when you snapshot a directory. But instead of snapshotting the directory you get a snapshot of the subvolume which contain the directory.> > -- > Francis Galiegue, fgaliegue@gmail.com > "It seems obvious [...] that at least some ''business intelligence'' > tools invest so much intelligence on the business side that they have > nothing left for generating SQL queries" (Stéphane Faroult, in "The > Art of SQL", ISBN 0-596-00894-5) > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >-- gpg key@ keyserver.linux.it:Goffredo Baroncelli (ghigo) <kreijackATinwind.it> Key fingerprint = 4769 7E51 5293 D36C 814E C054 BF04 F161 3DC5 0512 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Oct 7, 2010 at 6:39 AM, Francis Galiegue <fgaliegue@gmail.com> wrote:> While I fully understand (and use) the purpose of snapshots, I don''t > quite fathom the use case for subvolumes, apart from btrfs-convert... > Why has btrfs grown such a feature in the first place? Can someone > give me a use case for them?I''m new here; I trust that someone will correct me if wrong: As I understand it, since snapshotting works on volumes, having subvolumes allows a smaller thing that you can take a snapshot of. A use case? One could give each user on a multi-user system their own subvolume rather than their own directory, under /home/... and then take snapshots of these home directories to implement regular backups (1)without duplicating unchanged files and (2) with independence between the users. As to why they exist, I understand that they began as an implementation detail of snapshots, rather than their creation having been driven by the needs of a particular use case, and one could legitimately criticize currently offered use cases (such as the one above) as contrived. I believe it is fair to consider a new subvolume as equivalent of a snapshot of an empty file system. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Oct 7, 2010 at 8:18 AM, Mike Hommey <mh@glandium.org> wrote:> BTW, it would be very useful to be able to turn existing directories > into subvolumes.does a (link,unlink) move work across subvolumes? -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Goffredo Baroncelli
2010-Oct-07 21:13 UTC
Re: Can you please define "snapshot" and "subvolume"?
On Thursday, 07 October, 2010, David Nicol wrote:> On Thu, Oct 7, 2010 at 8:18 AM, Mike Hommey <mh@glandium.org> wrote: > > BTW, it would be very useful to be able to turn existing directories > > into subvolumes. > > does a (link,unlink) move work across subvolumes?The link across subvolumes is not allowable. In the beginning it was possible, but that was source of bugs. See the thread "Hard link across subvolumes" http://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg03286.html> -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >-- gpg key@ keyserver.linux.it: Goffredo Baroncelli (ghigo) <kreijack@inwind.it> Key fingerprint = 4769 7E51 5293 D36C 814E C054 BF04 F161 3DC5 0512 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
If I were to use the defrag option in btrfsctl, $ btrfsctl -d / would it also defragment the subvolumes under the root? -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Oct 07, 2010 at 11:13:18PM +0200, Goffredo Baroncelli wrote:> On Thursday, 07 October, 2010, David Nicol wrote: > > On Thu, Oct 7, 2010 at 8:18 AM, Mike Hommey <mh@glandium.org> wrote: > > > BTW, it would be very useful to be able to turn existing directories > > > into subvolumes. > > > > does a (link,unlink) move work across subvolumes? > > The link across subvolumes is not allowable. In the beginning it was > possible, but that was source of bugs. See the thread "Hard link across > subvolumes" > > http://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg03286.htmlBut couldn''t cp --reflink be made to work? Mike -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Goffredo Baroncelli
2010-Oct-09 13:55 UTC
Re: Can you please define "snapshot" and "subvolume"?
On Saturday, 09 October, 2010, you (Mike Hommey) wrote:> On Thu, Oct 07, 2010 at 11:13:18PM +0200, Goffredo Baroncelli wrote: > > On Thursday, 07 October, 2010, David Nicol wrote: > > > On Thu, Oct 7, 2010 at 8:18 AM, Mike Hommey <mh@glandium.org> wrote: > > > > BTW, it would be very useful to be able to turn existing directories > > > > into subvolumes. > > > > > > does a (link,unlink) move work across subvolumes? > > > > The link across subvolumes is not allowable. In the beginning it was > > possible, but that was source of bugs. See the thread "Hard link across > > subvolumes" > > > > http://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg03286.html > > But couldn''t cp --reflink be made to work? >I don''t know why, but I can confirm that in the btrfs kernel source it is checked the case that the "reflink" is preformed between two subvolume. And in this case this action is denied. http://git.kernel.org/?p=linux/kernel/git/mason/btrfs- unstable.git;a=blob;f=fs/btrfs/ioctl.c;h=9254b3d58dbef22974af3c7c61dbc9a4af7a33b6;hb=HEAD#l1489 -- gpg key@ keyserver.linux.it: Goffredo Baroncelli (ghigo) <kreijack@inwind.it> Key fingerprint = 4769 7E51 5293 D36C 814E C054 BF04 F161 3DC5 0512 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html