On 01/20/2016 09:11 PM, Li, Xiaoyan wrote:
> @ DuncanT and @dule: 
>
> I noticed from IRC log that you are discussing about c-bak upgrade, and I am 
> working on this, please see following message. Hope I don't miss anything.
>
> As you know, currently c-bak and c-vol are in same nodes. c-bak depends on 
> c-vol service. 
>
> But it is not necessary that all c-vols needs to be upgraded before c-backs.
>
> The sequences can be random. As described in the patch 
> https://review.openstack.org/#/c/269412/,
> when c-api decides which c-bak service to create/restore, it checks the 
> version of c-vol. If c-vol is new version, find a c-bak in new version.
> If c-vol is in old version, find a c-bak in old version.
>
> Let's us think a real case. Customers upgrade c-api, c-sch, and start to 
> upgrade c-vol and c-bak.
> There are two c-vol services c-vol1 and c-vol2, and two c-bak services c-bak1 
> and c-bak2.
> There are four typical upgrade sequences as following. 
> Meanwhile, please notice that c-vol and c-bak are in same nodes in Liberty. 
> So during upgrades, if c-vol went down to upgrade, c-bak is also down. 

It's not exactly like that. You may upgrade services on a single node
one-by-one if you're for example running them in containers.

> 1. c-vol1->c-bak1->c-vol2->c-bak2
> The only insufficiency is when c-vol1 upgrades, and other c-bak services 
> haven't upgraded, the request to create/restore backups from/to volumes in 
> c-vol1 will fail with reason "no valid c-bak service
> found". It is acceptable, as it is similar to scenario in Liberty: c-vol 
> active and c-bak fails.
>
> 2. c-vol1->c-vol2->c-bak1->c-bak2
> Before c-bak1 upgrades, no back request can be completed as no active c-bak 
> services. This is reasonable.
>
> 3. c-bak1->c-vol1->c-bak2->c-vol2:
> The issue is when c-bak2 upgrades, the request to create/restore backups 
> from/to volumes in c-vol2 will fail with reason c-vol not active. This is 
> consistent with behaviors in Liberty.
>
> 4. c-bak1->c-bak2->c-vol1->c-vol2: 
> Before c-vol1 upgrades, no back request can be completed as c-vol services 
> not active This is reasonable.

Resolution on this matter from the Cinder mid-cycle is that we're fine
as long as we safely fail in case of upgrade conducted in an improper
order. And it seems we can implement that in a simple way by raising an
exception from volume.rpcapi when c-vol is pinned to a version too old.
This means that scalable backup patches aren't blocked by this issue.


__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to