Oops, I forgot to follow up on this ... On Thu, Dec 22, 2016 at 12:21 AM, Ben Pfaff <b...@ovn.org> wrote:
> On Wed, Dec 21, 2016 at 10:56:35PM -0500, Russell Bryant wrote: > > On Wed, Dec 21, 2016 at 5:06 PM, Ben Pfaff <b...@ovn.org> wrote: > > > > > On Wed, Dec 07, 2016 at 02:28:13PM -0500, Russell Bryant wrote: > > > > Signed-off-by: Russell Bryant <russ...@ovn.org> > > > > > > This procedure isn't what I expected. It recommends: > > > > > > 1. Upgrade SB/NB databases and northd. > > > 2. Upgrade ovn-controller. > > > 3. Upgrade integration. > > > > > > I think that this is likely to cause problems in the common case, > > > because the new northd is likely to try to start using features that > are > > > not yet available on the hypervisors, such as new logical match fields > > > and actions. > > > > > > I expected: > > > > > > 1. Upgrade ovn-controller. > > > 2. Upgrade SB/NB databases and northd. > > > 3. Upgrade integration. > > > > > > (I don't think that it matters when the databases are upgraded, though, > > > as long as they're upgraded before northd.) > > > > > > > Thanks for the feedback! > > > > There's a possible problem in this case, too. ovn-controller could try > to > > start using new fields in the southbound database that aren't there yet. > > I guess that I have always considered that ovn-controller needs to > tolerate some version-related variation in the database schema. This is > a familiar problem, since ovs-vsctl and (to a lesser extent) > ovs-vswitchd also need to tolerate similar variation. > > Different kinds of tolerance must be considered. Missing columns > (because they were added in a later database schema) are one of the > easiest, and the IDL takes care of that for us; the column will just > appear empty. Over in OVS, we normally design the schema so that an > empty column yields the default new behavior anyhow. > > The related_datapaths column that had been proposed for optimizing > conditional monitoring was a tougher case for upgrade. With this > proposal, an empty column or a missing one would break ovn-controller, > since it wouldn't get all of the rows that it needed. Even if the > column was present, it still wouldn't help if ovn-northd was too old to > populate it correctly. I was about to propose that ovn-controller > needed to figure out not just whether the column was present but whether > ovn-northd was new enough and properly populating it, when I came up > with the approach we're now using that doesn't need this column at all. > > So, upgrading the databases earlier cannot hurt, but I doubt that it > solves many problems. > Thanks for the info. > > > Maybe it should be: > > > > 1. Upgrade SB/NB databases. > > 2. Upgrade ovn-controller. > > 3. Upgrade ovn-northd. > > 4. Upgrade integration. > > This ordering seems fine to me. > so we could do the above, or based on your comments: 1. Upgrade ovn-controller. 2. Upgrade databases. 3. Upgrade ovn-northd. 4. Upgrade integration. This one is a little easier to document since 2&3 can be done with a single command, so I'll just document it that way. > Thank you for writing down the upgrade procedure. (Have we written down > the installation procedure?) > No, I don't think so. We have options well documented, but not an OVN install guide. It tends to be covered along with integration guides, though. For example: https://github.com/openvswitch/ovn-kubernetes or http://docs.openstack.org/developer/networking-ovn/install.html but I think a standalone install guide would be good to have, too. -- Russell Bryant _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev