All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anand Jain <anand.jain@oracle.com>
To: dsterba@suse.cz, linux-btrfs@vger.kernel.org, clm@fb.com,
	Gui Hecheng <guihc.fnst@cn.fujitsu.com>
Subject: Re: [PATCH 23/24] Btrfs: sysfs: support seed devices in the sysfs layout
Date: Tue, 10 Mar 2015 01:11:33 +0800	[thread overview]
Message-ID: <54FDD445.2090605@oracle.com> (raw)
In-Reply-To: <20150213173300.GM8720@twin.jikos.cz>



Hi Dave,

  Sorry for the delay I was caught up some issues... (hope I didn't miss 
any of the email).


On 02/13/2015 12:33 PM, David Sterba wrote:
> On Thu, Feb 12, 2015 at 02:25:32PM +0800, Anand Jain wrote:
>> On 02/12/2015 02:52 AM, David Sterba wrote:
>>> On Mon, Feb 09, 2015 at 07:56:24AM +0800, Anand Jain wrote:
>>>> This adds an enhancement to show the seed fsid and devices.
>>>>
>>>> The way sprouting handles fs_devices:
>>>>         clone seed fs_devices and add to the fs_uuids
>>>>         mem copy seed fs_devices and assign to fs_devices->seed (move dev_list)
>>>>         evacuate seed fs_devices contents to hold sprout fs devices contents
>>>>
>>>>     So to be inline with this fs_devices changes during seeding,
>>>>     represent seed fsid under the sprout fsid, this is achieved
>>>>     by using the kobject_move()
>>>>
>>>> eg: showing two levels of seeding.
>>>
>>> That's new to me, how does nested seeding work?
>>
>>    I called below operation as nested seeding:
>>       mark a sprout as seed, mount it, add a new sprout to it.
>>       eg:
>>        mkfs.btrfs /dev/sdz
>>        btrfstune -S 1 /dev/sdz
>>        mount /dev/sdz /btrfs
>>        btrfs dev add /dev/sdy /btrfs
>>        umount /btrfs
>>        btrfstune -S 1 /dev/sdy
>>        mount /dev/sdy /btrfs
>>        btrfs dev add /dev/sdx /btrfs
>
> While I'm not sure if seeding was originally expected to work on a
> multi-device filesystem, it makes sense to me. But what I don't
> understand here is the concept of 'nesting'.
>
> Let's say we have device A, B and C, and a * denotes a seeding device.
> Then we can start with a populated filesystem on device A.
>
> Then mark it seeding, A*, all fine.
>
> Add device B to A*, all writes are captured by B, fine.

yes. in this context B is called sprout (of A).

> Now, we make B seeding.
>
> Mounting the filesystem from A* should not IMO see any device B* as all
> changes were stored there, namely the superblock of A* is kept intact.

> Mouting from B* should see both A* and B*. Here it may resemble some
> nesting or chaining, if that's what you mean.

> (Adding a device C to A*, B* would mean that just all writes are captured
> by C, ie.  no difference compared to the respective situation for A*, B,
> so I can stop the example here.)

yes. you got that right.

In the same context there is this bug:
   search email for the sub: "replace seed/sprout hangs (regression ?)"

> I'm thinking about a representation of the possible relations between
> the devices. Seems that the seeding hierarchy for one filesystem is
> always linear, so it's ok to represent it by the filesystem UUID chain.

> /sys/fs/btrfs/UUID1/UUID2/UUID3

This been(being) done. I will send out the patch RFC for your kind 
integration.

> What I still find unsatisfying is lack of any explicit naming attached
> to the UUIDs. As we can use lots of types of UUID, saying that "if it
> looks like an uuid if the main filesystem directory in sysfs, then it's
> the seeding filesystem" is not the best we can come up with.
>
> I don't have a final idea, but at least
>
> /sys/fs/btrfs/UUID1/seeding/UUID2/seeding/UUID3
>
> would look more friendly to the user and also more accssible to
> scripting. We coud possibly add other files/dirs to the inserted
> directory.

in the above 'seeding' kobject dir is redundant, since there won't be a 
fsid under a fsid unless its a seed. And there would be a 'seeding' 
attribute to tell is its seeding.

>
> A sidenote: the nesting forms a tree structure so it's possible to do a
> snapshotting on the filesystem level, very similar to what the LVM
> snapshots do, but here we have to provide a new device manually to
> capture the new writes and make sure that all the devices do not
> disappear.



Thanks, Anand

  reply	other threads:[~2015-03-09 17:11 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-08 23:56 [PATCH 00/24 V2] provide frame work so that sysfs attributs from the fs_devices can be added Anand Jain
2015-02-08 23:56 ` [PATCH 01/24] Btrfs: sysfs: fix, btrfs_release_super_kobj() should to clean up the kobject data Anand Jain
2015-02-08 23:56 ` [PATCH 02/24] Btrfs: sysfs: fix, fs_info kobject_unregister has init_completion() twice Anand Jain
2015-02-08 23:56 ` [PATCH 03/24] Btrfs: sysfs: fix, undo sysfs device links Anand Jain
2015-02-08 23:56 ` [PATCH 04/24] Btrfs: sysfs: fix, kobject pointer clean up needed after kobject release Anand Jain
2015-02-08 23:56 ` [PATCH 05/24] Btrfc: sysfs: fix, check if device_dir_kobj is init before destroy Anand Jain
2015-02-08 23:56 ` [PATCH 06/24] Btrfs: sysfs: reorder the kobject creations Anand Jain
2015-02-08 23:56 ` [PATCH 07/24] Btrfs: sysfs: rename __btrfs_sysfs_remove_one to btrfs_sysfs_remove_fsid Anand Jain
2015-02-08 23:56 ` [PATCH 08/24] Btrfs: sysfs: introduce function btrfs_sysfs_add_fsid() to create sysfs fsid Anand Jain
2015-02-08 23:56 ` [PATCH 09/24] Btrfs: sysfs: let default_attrs be separate from the kset Anand Jain
2015-02-08 23:56 ` [PATCH 10/24] Btrfs: sysfs: separate device kobject and its attribute creation Anand Jain
2015-02-08 23:56 ` [PATCH 11/24] Btrfs: sysfs: move super_kobj and device_dir_kobj from fs_info to btrfs_fs_devices Anand Jain
2015-02-08 23:56 ` [PATCH 12/24] Btrfs: sysfs: add pointer to access fs_info from fs_devices Anand Jain
2015-02-08 23:56 ` [PATCH 13/24] Btrfs: introduce btrfs_get_fs_uuids Anand Jain
2015-02-08 23:56 ` [PATCH 14/24] Btrfs: sysfs: provide framework to remove all fsid kobject Anand Jain
2015-02-08 23:56 ` [PATCH 15/24] Btrfs: sysfs btrfs_kobj_add_device() pass fs_devices instead of fs_info Anand Jain
2015-02-08 23:56 ` [PATCH 16/24] Btrfs: sysfs btrfs_kobj_rm_device() " Anand Jain
2015-02-08 23:56 ` [PATCH 17/24] Btrfs: sysfs: make btrfs_sysfs_add_fsid() non static Anand Jain
2015-02-08 23:56 ` [PATCH 18/24] Btrfs: sysfs: make btrfs_sysfs_add_device() " Anand Jain
2015-02-08 23:56 ` [PATCH 19/24] Btrfs: sysfs: btrfs_sysfs_remove_fsid() make it " Anand Jain
2015-02-08 23:56 ` [PATCH 20/24] Btrfs: sysfs: separate kobject and attribute creation Anand Jain
2015-02-08 23:56 ` [PATCH 21/24] Btrfs: sysfs: add support to add parent for fsid Anand Jain
2015-02-11 18:41   ` David Sterba
2015-02-08 23:56 ` [PATCH 22/24] Btrfs: sysfs: don't fail seeding for the sake of sysfs kobject issue Anand Jain
2015-02-11 18:40   ` David Sterba
2015-02-12  3:22     ` Anand Jain
2015-02-13 16:15       ` David Sterba
2015-03-09 17:10         ` Anand Jain
2015-02-08 23:56 ` [PATCH 23/24] Btrfs: sysfs: support seed devices in the sysfs layout Anand Jain
2015-02-11 18:52   ` David Sterba
2015-02-12  6:25     ` Anand Jain
2015-02-13 17:33       ` David Sterba
2015-03-09 17:11         ` Anand Jain [this message]
2015-02-13 17:51       ` David Sterba
2015-02-18  3:04         ` Anand Jain
2015-02-08 23:56 ` [PATCH 24/24] Btrfs: sysfs: add check if super kobject is already initialized Anand Jain
2015-02-11 18:41   ` David Sterba
2015-02-11 19:01 ` [PATCH 00/24 V2] provide frame work so that sysfs attributs from the fs_devices can be added David Sterba
2015-02-12  7:23   ` Anand Jain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54FDD445.2090605@oracle.com \
    --to=anand.jain@oracle.com \
    --cc=clm@fb.com \
    --cc=dsterba@suse.cz \
    --cc=guihc.fnst@cn.fujitsu.com \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.