[Gluster-devel] Volume management proposal (4.0)
Jeff Darcy
jdarcy at redhat.com
Wed Dec 17 17:01:55 UTC 2014
> > (D) Secondary volumes may not be started and stopped by the user.
> > Instead, a secondary volume is automatically started or stopped along
> > with its primary.
>
> Wouldn't it help in some cases to have secondary volumes running while
> primary is not running? Some form of maintenance activity.
Yes, that's true.
> > (E) The user must specify an explicit option to see the status of
> > secondary volumes. Without this option, secondary volumes are hidden
> > and status for their constituent bricks will be shown as though they
> > were (directly) part of the corresponding primary volume.
> >
> > As it turns out, most of the "extra" volfiles in step 8 above also
> > have their own steps 6d and 7, so implementing step C will probably make
> > those paths simpler as well.
> >
> > The one big remaining question is how this will work in terms of
> > detecting and responding to volume configuration changes. Currently we
> > treat each volfile as a completely independent entity, and just compare
> > whole graphs. Instead, what we need to do is track dependencies between
> > graphs (a graph of graphs?) so that a change to a secondary volume will
> > "ripple up" to its primary where a new graph can be generated and
> > compared to its predecessor.
>
> IIUC, (E) describes that primary volume file would be generated with all
> secondary volume references resolved. Wouldn't that preclude the possibility
> of the respective processes discovering the dependencies?
That's not entirely clear. The *volfiles* might not contain the necessary
information, depending on exactly when we resolve references to other
volumes - e.g. at creation, volfile-fetch, or even periodically. However,
the *info* files from which the volfiles are generated would necessarily
include at least the parent-to-child links. We could scan all info files
during any configuration change to find such dependencies. Even better,
we could also store the child-to-parent links as well, so when we change
X we *immediately* know whether that might affect a parent volume.
More information about the Gluster-devel
mailing list