Thanks a lot for the explanation.

Regards,
Aastha.

On 3 December 2012 13:02, Hugo Mills <h...@carfax.org.uk> wrote:
> On Mon, Dec 03, 2012 at 10:52:41AM +0100, Aastha Mehta wrote:
>> On 2 December 2012 23:46, Hugo Mills <h...@carfax.org.uk> wrote:
>> > On Sun, Dec 02, 2012 at 11:17:26PM +0100, Aastha Mehta wrote:
>> >> I am looking at btrfs to understand some of its features. One of them
>> >> is the snapshot feature. Please tell me if my following understanding
>> >> about snapshots in btrfs is correct or not.
>> >>
>> >> Btrfs supports both readonly and writeable snapshots. Writeable
>> >> snapshots are like clone volumes (or subvolumes as in btrfs). We get a
>> >> point in time copy of the subvolume in both case.
>> >>
>> >> I looked through the kernel code and it seems that creating a
>> >> subvolume and taking a snapshot (readonly and writeable) all have a
>> >> common ioctl interface.
>> >>
>> >> What I am not completely clear about is whether snapshots get same
>> >> fsid as the source subvolume fsid or different.
>> >
>> >    Yes, it's the same UUID, because they're all part of the same
>> > filesystem.
>> >
>> Just to clarify, apart from UUID, is the FSID in the fs_info of the
>> root also same for all snapshots of a subvolume?
>>
>> >> Also, I do not understand what does it mean to be able to take
>> >> snapshot of a snapshot.
>> >
>> >    Snapshots are completely equal partners with their original
>> > subvolumes. This is not the case in, say, LVM.
>> >
>> >> What are benefits compared to say, being able to take snapshots only
>> >> of the active subvolume and not of the snapshots?
>> >
>> >    Let's say you take a snapshot (B) of your root filesystem (A). Then
>> > you decide to "roll back" to using the old version, so you mount B as
>> > root instead of A. Later that night, your backup process starts up and
>> > tries to take a temporary read-only snapshot (C) of your root
>> > filesystem (which is now B) so that it can make a stable backup.
>> > That's a snapshot of a snapshot.
>> >
>> Okay, but still the snapshot can be taken only for a subvolume in use.
>> Is that correct?
>
>    Well, it depends on what you mean by "in use". You can't snapshot
> something which doesn't appear somewhere in your directory hierarchy.
>
>> In your example, C is taken on B after file system
>> was rolled back to version B. What happens when the file system
>> version mounted is A (which contains snapshot B) and we take another
>> snapshot D on this mounted version. Does the snapshot D contain B or
>> only the active contents of A?
>
>    Snapshots are not recursive. If you have a subvolume inside another:
>
> subv1/subv2
>
> and then snapshot that
>
> # btrfs sub snap subv1 subv1-A
>
> you will end up with a subvolume subv1-A, containing an empty
> directory called subv2.
>
>    Note that you don't have to have subvolumes inside subvolumes at
> all, if you don't use the top level of your filesystem as anything
> other than a place to store and manage subvolumes.
>
>    Consider this btrfs filesystem layout:
>
> /               subvolid=5 (=0)
>     root        subvolid=256  (default subvol)
>     home        subvolid=257
>     snapshots   directory
>
> With this in fstab:
>
> /dev/sda        /                               btrfs   subvolid=256
> /dev/sda        /home                   btrfs   subvolid=257
> /dev/sda        /media/btrfs    btrfs   subvolid=5,noauto
>
> We get this filesystem hierarchy:
>
> /                 subvolid=256
>     home          subvolid=257
>     media         directory
>                 btrfs     subvolid=5
>
>    Note that the mount of the full filesystem on /media/btrfs isn't
> done automatically -- it only needs to be done when you're managing
> subvolumes.
>
>    So, we can take a snapshot of /, for example:
>
> # mount /media/btrfs
> # btrfs sub snap /media/btrfs/root /media/btrfs/snapshots/root.2012-12-03
> # umount /media/btrfs
>
> The FS (from its top level) now looks like this:
>
> /                           subvolid=5 (=0)
>     root                    subvolid=256  (default subvol)
>     home                    subvolid=257
>     snapshots               directory
>         root.2012-12-03     subvolid=258
>
> To "roll back" root temporarily to the earlier version, you can edit
> your boot manager's config to supply "subvolid=258" as a mount
> parameter. To do so permanently, you can set the default subvolume to
> 258, and optionally move the snapshot to /root within the btrfs
> filesystem:
>
> # mount /media/btrfs
> # mv /media/btrfs/root /media/btrfs/root.old
> # mv /media/btrfs/snapshots/root.2012-12-03 /media/btrfs/root
> # umount /media/btrfs
>
>    Hugo.
>
> --
> === 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
>          --- I'm on a 30-day diet. So far I've lost 18 days. ---
--
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

Reply via email to