On Tue, Jan 13, 2015 at 02:51:34PM +0200, Lior Vernia wrote:
On 13/01/15 10:21, Sahina Bose wrote:
>
> On 01/12/2015 08:52 PM, Dan Kenigsberg wrote:
>> On Mon, Jan 12, 2015 at 02:59:50PM +0200, Lior Vernia wrote:
>>>
>>> On 12/01/15 14:44, Oved Ourfali wrote:
>>>> Hi Sahina,
>>>>
>>>> Some comments:
>>>>
>>>> 1. As far as I understand, you might not have an IP available
>>>> immediately after setupNetworks runs (getCapabilities should run,
>>>> but it isn't run automatically, afair).
>>>> 2. Perhaps you should pass not the IP but the name of the network?
>>>> IPs might change.
>>> Actually, IP address can indeed change - which would be very bad for
>>> gluster functioning! I think moving networks or changing their IP
>>> addresses via Setup Networks should be blocked if they're used by
>>> gluster bricks.
>> In the suggested feature, there is no real storage "role". The
"storage
>> role" title means only "default value for glusterfs IP".
>>
>> For example, once a brick was created, nothing protects the admin from
>> accidently removing the storage network, or changing its IP address.
>>
>> Another "proof" that this is not a real "role", is that it
affects only
>> GUI: I am guessing that REST API would not make use of it at all. (maybe
>> I'm wrong; for sure, REST must be defined in the feature page)
>
> REST API that lists the available networks (with IP addresses) would be
> used to select the network and pass to the create gluster volume API
My question regarded the argument of the add brick API (in Engine
level). Is it an IPv4 address (like it seems) or could it be a network
name?
>
> I'll update the feature page with the REST API changes as well.
>
If REST allows to choose the network used for gluster traffic, then I
think so should the GUI - I would not drop the list box from the design
in that case.
>>
>> Maybe that's the behavior we want. But alternatively, Engine can enforce
>> a stronger linkage between the brick to the network that it uses. When
>> adding a brick, the dialog would list available networks instead of the
>> specific IP. As long as the brick is being used, the admin would be
>> blocked/warned against deleting the network.
>
> Is there a way to block against changing IP address used by a network?
>
Yes, this should be implemented at least in the canDoAction() method of
SetupNetworksCommand (most of it is done in the SetupNetworksHelper
class). And perhaps this should be blocked in the GUI as well.
Note that by the time 3.6 is released, the REST (and probably GUI) are
supposed to work with a different backend command that is currently
being implemented - so maybe you'll need to modify that instead, or on
top of the changes in SetupNetworksHelper.
>>
>> I'm missing a discussion regarding the upgrade path. If we would opt to
>> requiring a single storage role network in a cluster, in an upgraded
>> cluster the management network should take this role.
>
> There would not be any change to existing volumes on upgrade, as bricks
> have already been added. Users can use the Edit brick option to update
> the network to be used, if required as mentioned in "Change network used
> by brick "
>
I suspect Dan referred to the upgrade path of the engine itself - if you
add a new "Gluster Network" boolean column to the DB, it will initially
be null for all current networks. You'd likely need to write an upgrade
script to assign the role by default to the existing management networks
in each cluster.
yep.
>
>>
>>>> 3. Adding to "2", perhaps using DNS names is a more valid
approach?
>>>> 4. You're using the terminology "role", but it might be
confusing,
>>>> as we have "roles" with regards to permissions. Consider
changing
>>>> "storage usage" and not "storage role" in the
feature page.
>>> Well, we've already been using this terminology for a while now
>>> concerning display/migration roles for networks... That's probably the
>>> terminology to use.
If I am not mistaken, it could make sense to have a setup with one brick
using network A and another - using network B. Does your design support
this? I think that this would be particularly important on upgraded
clusters, where the management network is already used, but newly
created bricks should start using another network.
Would you add a feature page section regarding modification to the
Vdsm/Engine API?
One last comment - may I ask that new APIs accept both ipv4 and ipv6
addresses? There is an ongoing effort to support ipv6 on Vdsm.
Dan.