[Deepsea-users] stage 1: network discovery

Ricardo Dias rdias at suse.com
Mon Dec 12 09:54:58 MST 2016

On 2016-12-12 11:26:13, Eric Jackson wrote:
> On Monday, December 12, 2016 03:50:15 PM Ricardo Dias wrote:
> > On 2016-12-12 10:28:10, Eric Jackson wrote:
> > 
> > I'm using a cluster created in OVH cloud provider. Every node has a
> > different IP address, but have a netmask of /32. The IP addresses are
> > public and the access rules are controlled by the security group of
> > the instances.
> I haven't tried OVH.
> > 
> > 
> > I think we can assume that all networks (in this case there is a network
> > for each node) are public. And by reading the "Network Configuration"
> Maybe in this instance, but if I have 4 network interfaces on a host, why 
> would I assume that all are public?  In the comments of the code, I wrote that 
> this is a best guess but it seems to be reasonable so far.
> > section [1] in Ceph documentation, we can specify several public
> > networks. This means we just need to extend a bit the code to deal with
> > a list of public networks instead of only one.
> > 
> > The rule for network detection should be:
> > Given a set of networks NTS:
> >  1) if each network in NTS only contains one node, then we consider all
> >     networks public
> >  2) otherwise we fallback to the current logic, which is:
> >     pick the network with more nodes as the public network, and the
> >     second with more nodes as the cluster network.
> I think I would prefer reversing the behavior.   That is, if nothing can be 
> deduced, then check if all nodes have a single network and apply the list to 
> both the cluster and public networks.

I agree.

> If I have several hosts with two networks, but a few of the hosts are 
> experiencing an issue with one network, I would prefer the current behavior.  
> Stage 1 would write the configuration and the validation would fail that some 
> nodes do not seem to have a cluster network.  (I think it would be hard for 
> Salt to work without a public network, but I'm sure there's a way.)
> If I follow the above, the entire cluster will be deployed and the admin will 
> learn that all nodes are configured to use a single network.  While there is a 
> few ways out of that scenario, I do not want to put them into it initially.

I don't understand what you said above. Is this a justification to
reverse the order that I proposed? If it is, I agree :)

> > 
> > > > - Why is DS storing the "public_network" and "cluster_network" in
> > > > 
> > > >   "pillar/ceph/stack/default/ceph/cluster.yml"? What are their purposes?
> > > >   Do we really need them?
> > > 
> > > Take a look at /srv/salt/ceph/configuration/files/ceph.conf.j2.  The
> > > public and cluster networks are specified there.
> > 
> > As I said in the comment above, we can add a list of public networks in
> > the "public_network" config option.
> You asked why the variables are defined in the pillar.  So, that this Jinja 
> template can use them is my answer.

I understood what you meant. My comment was just a followup of my
comment above.

> Converting the public_network/cluster_network to lists is not difficult, but 
> thinking about the upgrade to SES5 needs to be thought about too.

I don't understand what converting public_network to lists has to do
with upgrading to SES5. Can you clarify?

> > 
> > 
> > [1] http://docs.ceph.com/docs/jewel/rados/configuration/network-config-ref/

More information about the Deepsea-users mailing list