Thanks Han! It's clear!

Tony

> -----Original Message-----
> From: Han Zhou <hz...@ovn.org>
> Sent: Friday, July 31, 2020 10:11 AM
> To: Tony Liu <tonyliu0...@hotmail.com>
> Cc: Han Zhou <hz...@ovn.org>; Numan Siddique <nusid...@redhat.com>; ovs-
> dev <ovs-...@openvswitch.org>; ovs-discuss <ovs-discuss@openvswitch.org>
> Subject: Re: [ovs-discuss] [OVN] DB backup and restore
> 
> 
> 
> On Thu, Jul 30, 2020 at 11:07 PM Tony Liu <tonyliu0...@hotmail.com
> <mailto:tonyliu0...@hotmail.com> > wrote:
> 
> 
>       Hi Han,
> 
>       ovsdb-client backup and restore work as expected. Sorry for the
> false alarm.
>       I messed up with the container. When restore the snapshot for nb-db,
> sb-db is
>       updated accordingly by ovn-northd.
> 
> 
> 
> Great!
> 
> 
> 
>       I think this man page should be updated saying RAFT cluster is also
> supported
>       by backup and restore.
>       http://www.openvswitch.org/support/dist-docs/ovsdb-client.1.txt
> 
> 
> 
> I didn't see it saying RAFT cluster is not supported in the above
> document. Probably you misunderstood this statement:
> "Reads  snapshot,  which  must  be  a OVSDB standalone or active-backup
> database"
> The backup file you generated from ovsdb-client backup command is in
> OVSDB standalone format, which is mentioned in the "backup" document.
> 
> 
> In addition, the document ovsdb(7) also made it clear that this is the
> right way to backup/restore clustered DB.
> Did this clarify?
> 
> 
> 
>       Thanks!
> 
>       Tony
>       > -----Original Message-----
>       > From: Han Zhou <hz...@ovn.org <mailto:hz...@ovn.org> >
>       > Sent: Thursday, July 30, 2020 7:19 PM
>       > To: Tony Liu <tonyliu0...@hotmail.com
> <mailto:tonyliu0...@hotmail.com> >
>       > Cc: Numan Siddique <nusid...@redhat.com
> <mailto:nusid...@redhat.com> >; Han Zhou <hz...@ovn.org
> <mailto:hz...@ovn.org> >; ovs-
>       > dev <ovs-...@openvswitch.org <mailto:ovs-...@openvswitch.org> >;
> ovs-discuss <ovs-discuss@openvswitch.org <mailto:ovs-
> disc...@openvswitch.org> >
>       > Subject: Re: [ovs-discuss] [OVN] DB backup and restore
>       >
>       >
>       >
>       > On Thu, Jul 30, 2020 at 7:04 PM Tony Liu <tonyliu0...@hotmail.com
> <mailto:tonyliu0...@hotmail.com>
>       > <mailto:tonyliu0...@hotmail.com
> <mailto:tonyliu0...@hotmail.com> > > wrote:
>       >
>       >
>       >       Hi,
>       >
>       >
>       >
>       >       Just update, finally make this snapshot/rollback work for
> me.
>       >
>       >       The rollback is not live though. Here is what I did.
>       >
>       >
>       >
>       >       1. Make a snapshot by ovsdb-client. Assuming no ongoing
>       >
>       >          Transactions, and data is consistent on all nodes. The
>       >
>       >          Snapshot can be done on any node. It doesn't include any
>       >
>       >          cluster info. That's probably why the man page says this
> is
>       >
>       >          for standalone and A/B only. But that cluster info seems
>       >
>       >          not required to restore.
>       >
>       >
>       >
>       >       2. To rollback/restore, stop services on all nodes,
> starting
>       >
>       >          from followers to the leader.
>       >
>       >
>       >
>       >       3. Pick a node as the new leader, copy snapshot to be the
> DB
>       >
>       >          file. Then start the service. A cluster with new cluster
> ID
>       >
>       >          will be created. The node will be allocated a new server
> ID
>       >
>       >          as well.
>       >
>       >
>       >
>       >       4. On the rest two nodes, remove the DB file, restart
> service
>       >
>       >          with remote-address pointing to the leader.
>       >
>       >
>       >
>       >       Now, the new cluster starts working with the rollback data.
>       >
>       >
>       > The steps you gave may work, but it is weird. It is better to
> just
>       > follow the steps mentioned in this section:
>       >
>       >
> https://github.com/openvswitch/ovs/blob/master/Documentation/ref/ovsdb.7
>       > .rst#backing-up-and-restoring-a-database
>       >
>       >
>       >
>       >
>       >
>       >
>       >       "ovs-client restore" doesn't work for me, not sure why.
>       >
>       >       ====
>       >
>       >       ovsdb-client: ovsdb error: /dev/stdin: cannot identify file
> type
>       >
>       >       ====
>       >
>       >       I tried to restore the snapshot created by backup, also the
>       >
>       >       Directly copied DB file, neither of them works. Wondering
> anyone
>       >
>       >       experienced such issue?
>       >
>       >
>       >
>       > Maybe your command was wrong. Could you share your command line,
> and the
>       > version used?
>       >
>       >
>       >
>       >
>       >
>       >       To Numan, it would great if you could share the details to
> use
>       >
>       >       Neutron-ovn-sync-util.
>       >
>       >
>       >
>       >
>       >
>       >       Thanks!
>       >
>       >
>       >
>       >       Tony
>       >
>       >
>       >
>       >       From: Tony Liu <mailto:tonyliu0...@hotmail.com
> <mailto:tonyliu0...@hotmail.com> >
>       >       Sent: Thursday, July 30, 2020 4:51 PM
>       >       To: Numan Siddique <mailto:nusid...@redhat.com
> <mailto:nusid...@redhat.com> > ; Han Zhou
>       > <mailto:hz...@ovn.org <mailto:hz...@ovn.org> >
>       >       Cc: Han Zhou <mailto:hz...@ovn.org
> <mailto:hz...@ovn.org> > ; ovs-dev <mailto:ovs- <mailto:ovs->
>       > d...@openvswitch.org <mailto:d...@openvswitch.org> > ; ovs-discuss
> <mailto:ovs-discuss@openvswitch.org <mailto:ovs-
> disc...@openvswitch.org> >
>       >       Subject: Re: [ovs-dev] [ovs-discuss] [OVN] DB backup and
> restore
>       >
>       >
>       >
>       >       Hi Numan,
>       >
>       >       I found this comment you made a few years back.
>       >
>       >       - At neutron-server startup, OVN ML2 driver syncs the
> neutron
>       >       DB and OVN DB if sync mode is set to repair.
>       >       - Admin can run the "neutron-ovn-db-sync-util" to sync the
> DBs.
>       >
>       >       Could you share the details to try those two options?
>       >
>       >
>       >       Thanks!
>       >
>       >       Tony
>       >
>       >       From: Tony Liu<mailto:tonyliu0...@hotmail.com
> <mailto:tonyliu0...@hotmail.com> >
>       >       Sent: Thursday, July 30, 2020 4:38 PM
>       >       To: Han Zhou<mailto:hz...@ovn.org <mailto:hz...@ovn.org> >
>       >       Cc: Han Zhou<mailto:hz...@ovn.org <mailto:hz...@ovn.org> >;
> ovs-dev<mailto:ovs- <mailto:ovs->
>       > d...@openvswitch.org <mailto:d...@openvswitch.org> >; ovs-
> discuss<mailto:ovs-discuss@openvswitch.org <mailto:ovs-
> disc...@openvswitch.org> >
>       >       Subject: Re: [ovs-dev] [ovs-discuss] [OVN] DB backup and
> restore
>       >
>       >       Hi,
>       >
>       >       I have another thought after some diggings. Since I am with
>       >       OpenStack, all networking configurations are from OpenStack.
>       >       I could snapshot OpenStack MariaDB, restore and run
>       >       neutron-ovn-db-sync to update OVN DB. Would that be a
> cleaner
>       >       solution?
>       >
>       >       BTW, I got this error when restore the OVN DB.
>       >       ovsdb-client: ovsdb error: /dev/stdin: cannot identify file
> type
>       >
>       >       The file was created by "backup" command.
>       >
>       >
>       >       Thanks!
>       >
>       >       Tony
>       >
>       >       From: Tony Liu<mailto:tonyliu0...@hotmail.com
> <mailto:tonyliu0...@hotmail.com> >
>       >       Sent: Thursday, July 30, 2020 3:41 PM
>       >       To: Han Zhou<mailto:hz...@ovn.org <mailto:hz...@ovn.org> >
>       >       Cc: Han Zhou<mailto:hz...@ovn.org <mailto:hz...@ovn.org> >;
> ovs-dev<mailto:ovs- <mailto:ovs->
>       > d...@openvswitch.org <mailto:d...@openvswitch.org> >; ovs-
> discuss<mailto:ovs-discuss@openvswitch.org <mailto:ovs-
> disc...@openvswitch.org> >
>       >       Subject: Re: [ovs-dev] [ovs-discuss] [OVN] DB backup and
> restore
>       >
>       >       Hi,
>       >
>       >       A quick question here. Given this man page.
>       >       http://www.openvswitch.org/support/dist-docs/ovsdb-
> client.1.txt
>       >
>       >       It says backup and restore commands are for OVSDB
> standalone and
>       >
>       >       active-backup databases.
>       >
>       >
>       >
>       >       Can they be used for RAFT cluster? If not, what would be
> the
>       > concern,
>       >
>       >       like inconsistency?
>       >
>       >
>       >
>       >       If I restore to a follower, is the request going to be
> forwarded to
>       > the
>       >
>       >       leader to restore DB for the whole cluster? But I believe
> it's
>       > recommended
>       >
>       >       to restore to the leader directly for performance sake.
>       >
>       >
>       >
>       >       I am going to give it a try anyways, see how it works. Will
> make
>       > sure
>       >
>       >       there is no configuration update from OpenStack side while
> running
>       > such
>       >
>       >       snapshot and restore process.
>       >
>       >
>       >
>       >
>       >
>       >       Thanks!
>       >
>       >
>       >
>       >       Tony
>       >
>       >       From: Han Zhou<mailto:hz...@ovn.org <mailto:hz...@ovn.org> >
>       >       Sent: Thursday, July 30, 2020 12:23 PM
>       >       To: Tony Liu<mailto:tonyliu0...@hotmail.com
> <mailto:tonyliu0...@hotmail.com> >
>       >       Cc: Han Zhou<mailto:hz...@ovn.org <mailto:hz...@ovn.org> >;
> ovs-discuss<mailto:ovs- <mailto:ovs->
>       > disc...@openvswitch.org <mailto:disc...@openvswitch.org> >; ovs-
> dev<mailto:ovs-...@openvswitch.org <mailto:ovs-...@openvswitch.org> >
>       >       Subject: Re: [ovs-discuss] [OVN] DB backup and restore
>       >
>       >
>       >
>       >       On Thu, Jul 30, 2020 at 10:56 AM Tony Liu
> <tonyliu0...@hotmail.com <mailto:tonyliu0...@hotmail.com>
>       > <mailto:tonyliu0...@hotmail.com <mailto:tonyliu0...@hotmail.com> >
> <mailto:tonyliu0...@hotmail.com <mailto:tonyliu0...@hotmail.com>
>       > <mailto:tonyliu0...@hotmail.com
> <mailto:tonyliu0...@hotmail.com> > >> wrote:
>       >       Hi Han,
>       >
>       >       That doc helps. I will run some tests and update here. The
> use case
>       > I want
>       >       to cover is snapshot/rollback and backup/restore.
>       >
>       >       ========
>       >       Actually, "at-least-once" consistency, because OVSDB does
> not have
>       > a session
>       >       mechanism to drop duplicate transactions if a connection
> drops
>       > after the server
>       >       commits it but before the client receives the result.
>       >       ========
>       >       I saw duplicated datapath bindings for the same logical
> switch once,
>       > if you
>       >       recall. This may explain that. The ovn-northd connection to
> sb-db
>       > is dropped
>       >       before receiving the result. So ovn-northd initiates
> another
>       > transaction to
>       >       create datapath binding for the same logical switch.
>       >
>       >       Yes, this is a possibility.
>       >       However, in reality, this is usually not a problem:
>       >
>       >       1) If DB schema has table keys properly defined, the
> redundant
>       > transaction from clients would be rejected by DB server because
> of key
>       > constraint check. In the datapath binding case, this doesn't work
>       > because of the poor definition of the datapath_binding table. It
> should
>       > have had "logical_switch_router" column defined and set as a key
> (in
>       > addition to the "tunnel_key") instead of storing it in
> external_ids. The
>       > duplicated entries would have been avoided. The other tables such
> as
>       > port_binding would never have such problem.
>       >
>       >       2) OVSDB clients usually monitors and syncs all (interested)
> data
>       > from server to local, so when they do declarative processing,
> they could
>       > correct problems by themselves. In fact, ovn-northd does the
> check and
>       > deletes duplicated datapaths. I did a simple test and it did
> cleanup by
>       > itself:
>       >       2020-07-30T18:55:53.057Z|00006|ovn_northd|INFO|ovn-northd
> lock
>       > acquired. This ovn-northd instance is now active.
>       >       2020-07-30T19:02:10.465Z|00007|ovn_northd|INFO|deleting
>       > Datapath_Binding abef9503-445e-4a52-ae88-4c826cbad9d6 with
> duplicate
>       > external-ids:logical-switch/router ee80c38b-2016-4cbc-9437-
> f73e3a59369e
>       >
>       >       I am not sure why in your case north was stuck, but I agree
> there
>       > must be something wrong. Please collect northd logs if you
> encounter
>       > this again so we can dig further.
>       >
>       >       I see two ways to improve it.
>       >       1) On client side, if the connection is broken while
> waiting for
>       > the result
>       >          of a transaction, the client checks the transaction
> state,
>       > committed or not,
>       >          when it reconnects to the leader (maybe a different
> node).
>       >          Do we have such check today?
>       >
>       >       Clients does check. In this case when transaction was
> actually
>       > successful but appears to be failed from client point of view,
> the check
>       > doesn't help.
>       >
>       >       2) I see client connection is dropped by the leader when
> it's busy.
>       > I don't
>       >          think this is a good way to control the traffic. The
> server can
>       > cache and
>       >          hold the request when it's busy, or even push back.
> Dropping
>       > connection
>       >          is not a good option. Any thoughts here?
>       >
>       >       The server doesn't make this kind of decisions. It could be
> simply
>       > overloaded and disconnected from the cluster, or even worse, a
> node
>       > could crash after commiting the transaction.
>       >
>       >       Thanks,
>       >       Han
>       >
>       >
>       >       Thanks!
>       >
>       >       Tony
>       >
>       >       From: Han Zhou<mailto:hz...@ovn.org <mailto:hz...@ovn.org> >
>       >       Sent: Wednesday, July 29, 2020 11:38 PM
>       >       To: Tony Liu<mailto:tonyliu0...@hotmail.com
> <mailto:tonyliu0...@hotmail.com> >
>       >       Cc: ovs-discuss<mailto:ovs-discuss@openvswitch.org
> <mailto:ovs-discuss@openvswitch.org> >; ovs-
>       > dev<mailto:ovs-...@openvswitch.org <mailto:ovs-
> d...@openvswitch.org> >
>       >       Subject: Re: [ovs-discuss] [OVN] DB backup and restore
>       >
>       >
>       >
>       >       On Wed, Jul 29, 2020 at 10:58 PM Tony Liu
> <tonyliu0...@hotmail.com <mailto:tonyliu0...@hotmail.com>
>       > <mailto:tonyliu0...@hotmail.com <mailto:tonyliu0...@hotmail.com> >
> <mailto:tonyliu0...@hotmail.com <mailto:tonyliu0...@hotmail.com>
>       > <mailto:tonyliu0...@hotmail.com
> <mailto:tonyliu0...@hotmail.com> > >> wrote:
>       >       >
>       >       > Hi,
>       >       >
>       >       >
>       >       >
>       >       > There is any guidance to backup and restore OVN nb-db and
> sb-db?
>       >       >
>       >       >
>       >       >
>       >       > Is /var/lib/openvswitch/ovn-[ns]b/ovn[ns]b.db the only
> database
>       > file?
>       >       >
>       >       >
>       >       >
>       >       > For 3-node DB cluster, is replication 3 (the data is
> replicated
>       > onto
>       >       >
>       >       > All 3 nodes)?
>       >       >
>       >       >
>       >       >
>       >       > Are DB files on 3 nodes identical?
>       >       >
>       >       >
>       >       >
>       >       > If I stop a DB follower and empty the DB file on the
> follower
>       > node,
>       >       >
>       >       > when I start it back, is the whole DB going to be
> replicated to
>       > it?
>       >       >
>       >       >
>       >       >
>       >       > To backup the DB, is it OK to copy the DB file from any
> node,
>       > assuming
>       >       >
>       >       > no transaction ongoing?
>       >       >
>       >       >
>       >       >
>       >       > Is the following going to work to restore the DB?
>       >       >
>       >       > * Stop all 3 DBs.
>       >       >
>       >       > * Copy backup DB file to one node, empty DB file on the
> rest two
>       > nodes.
>       >       >
>       >       > * Bootstrap the node with DB file.
>       >       >
>       >       > * Start the rest two nodes to join the cluster.
>       >       >
>       >
>       >       For ovsdb operations, please refer to "man 7 ovsdb", or
> here:
>       >
> https://github.com/openvswitch/ovs/blob/master/Documentation/ref/ovsdb.7
>       > .rst
>       >
> <https://github.com/openvswitch/ovs/blob/master/Documentation/ref/ovsdb.
>       > 7.rst>
>       >
>       >       >
>       >       >
>       >       > Do I need to restore sb-db as well? Or restore nb-db only
> and let
>       >       >
>       >       > ovn-northd to sync data from nb-db to sb-db. Chassis data
> should
>       > be
>       >       >
>       >       > updated by onv-controller?
>       >       >
>       >
>       >       You don't have to restore sb-db. ovn-northd and ovn-
> controllers
>       > will sync the data in SB DB.
>       >       However, it may take quite some time to sync if the scale
> is large.
>       >       Also, remember that the mac_binding table in SB will not be
>       > restored by ovn-controller because it is populated as a result of
> ARP
>       > packets handling by ovn-controller. The entries will be generated
> again
>       > only if new ARP packets are observed by ovn-controller.
>       >
>       >       >
>       >       >
>       >       > I am running scaling test. It takes quite a lot of time
> to build
>       >       >
>       >       > Configurations. Wondering if I can back and restore DB to
>       > rollback
>       >       >
>       >       > to some checkpoint to avoid restart all over.
>       >       >
>       >       >
>       >       >
>       >       >
>       >       >
>       >       > Thanks!
>       >       >
>       >       >
>       >       >
>       >       > Tony
>       >       >
>       >       >
>       >       >
>       >       > _______________________________________________
>       >       > discuss mailing list
>       >       > disc...@openvswitch.org <mailto:disc...@openvswitch.org>
> <mailto:disc...@openvswitch.org <mailto:disc...@openvswitch.org> >
>       > <mailto:disc...@openvswitch.org <mailto:disc...@openvswitch.org>
> <mailto:disc...@openvswitch.org <mailto:disc...@openvswitch.org> > >
>       >       > https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
>       >
>       >
>       >       _______________________________________________
>       >       dev mailing list
>       >       d...@openvswitch.org <mailto:d...@openvswitch.org>
> <mailto:d...@openvswitch.org <mailto:d...@openvswitch.org> >
>       >       https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>       >
>       >       _______________________________________________
>       >       dev mailing list
>       >       d...@openvswitch.org <mailto:d...@openvswitch.org>
> <mailto:d...@openvswitch.org <mailto:d...@openvswitch.org> >
>       >       https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>       >
>       >       _______________________________________________
>       >       dev mailing list
>       >       d...@openvswitch.org <mailto:d...@openvswitch.org>
> <mailto:d...@openvswitch.org <mailto:d...@openvswitch.org> >
>       >       https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>       >
>       >
> 
> 

_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to