cinder-api should run as active/standby

Bug #1393331 reported by Bogdan Dobrelya
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Fix Released
High
Michael Polenchuk
7.0.x
Won't Fix
High
Fuel Library (Deprecated)
8.0.x
Fix Released
High
Michael Polenchuk

Bug Description

Cinder is no A/A ready, see http://lists.openstack.org/pipermail/openstack-dev/2015-August/071125.html
and http://gorka.eguileor.com/a-cinder-road-to-activeactive-ha ,
http://gorka.eguileor.com/cinders-api-races/

Fuel should configure Cinder API to be active standby, like Galera.
HAproxy should be reconfigured to make only one API node serving requests at any time.

Not sure how this bug affects cinder-scheduler.
Update: it affects the volume services as well

Changed in fuel:
status: New → Triaged
milestone: none → 6.1
importance: Undecided → High
assignee: nobody → Fuel Library Team (fuel-library)
Revision history for this message
Bogdan Dobrelya (bogdando) wrote :

According to Jay Pipes comments: "I do not think you need to put nova-scheduler as a single resource for pacemaker, no. The state that each scheduler process keeps is kept up to date with calls to ComputeNode.get_all() during each beginning of scheduler select_destinations() loop call.
So there is no stale data anywhere... and when the compute node aborts a resource claim, the resource request is rescheduled to another host. so no, I don't think the scheduler needs to be a single resource for pacemaker :)
for cinder-api, there is no state, therefore it should be active/active as well."

Changed in fuel:
status: Triaged → Invalid
Revision history for this message
Bogdan Dobrelya (bogdando) wrote :

Reopening as Cinder is no A/A ready, see http://lists.openstack.org/pipermail/openstack-dev/2015-August/071125.html
and http://gorka.eguileor.com/a-cinder-road-to-activeactive-ha

Removed Nova-scheduler from this bug. If you think Nova is also affected, please submit another bug for it.

summary: - nova-scheduler and cinder-api should run at single controller instead of
- all
+ cinder-api should run as active/standby
Changed in fuel:
milestone: 6.1 → 8.0
status: Invalid → New
Changed in mos:
assignee: nobody → MOS Cinder (mos-cinder)
description: updated
tags: added: cinder ha
description: updated
Changed in fuel:
milestone: 8.0 → 7.0
Changed in fuel:
assignee: Fuel Library Team (fuel-library) → Michael Polenchuk (mpolenchuk)
Revision history for this message
Bogdan Dobrelya (bogdando) wrote :

Not sure if MOS Cinder could and should fix this bug ahead of upstream, so feel free to remove this projected from the list of affected ones.

no longer affects: mos
Changed in fuel:
status: New → Confirmed
Changed in fuel:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to fuel-library (master)

Fix proposed to branch: master
Review: https://review.openstack.org/211059

description: updated
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to fuel-library (master)

Reviewed: https://review.openstack.org/211059
Committed: https://git.openstack.org/cgit/stackforge/fuel-library/commit/?id=2d7258eec7bbedbd5371ce2d10463a12361b4ba3
Submitter: Jenkins
Branch: master

commit 2d7258eec7bbedbd5371ce2d10463a12361b4ba3
Author: Michael Polenchuk <email address hidden>
Date: Mon Aug 10 12:04:10 2015 +0300

    Run cinder-api as active/standby

    Configure Cinder API to be active/standby in order to avoid its
    races (http://gorka.eguileor.com/cinders-api-races/).

    DocImpact: Reflect changes upon reference architecture
    Closes-Bug: #1393331
    Change-Id: Ia91c33eabc531fe366ec88eedd07b7ecfea72466

Changed in fuel:
status: In Progress → Fix Committed
tags: added: on-verification
tags: removed: on-verification
tags: added: on-verification
Revision history for this message
Andrey Sledzinskiy (asledzinskiy) wrote :

verified on
{

    "build_id": "299",
    "build_number": "299",
    "release_versions":

{

    "2015.1.0-7.0":

{

    "VERSION":

{

    "build_id": "299",
    "build_number": "299",
    "api": "1.0",
    "fuel-library_sha": "6efc6698dd3d4b07e90a97a49c702128ccc88de7",
    "nailgun_sha": "d590b26dbb09785b8a8b3651b0ef69746fcf9991",
    "feature_groups":

            [
                "mirantis"
            ],
            "fuel-nailgun-agent_sha": "d7027952870a35db8dc52f185bb1158cdd3d1ebd",
            "openstack_version": "2015.1.0-7.0",
            "fuel-agent_sha": "50e90af6e3d560e9085ff71d2950cfbcca91af67",
            "production": "docker",
            "python-fuelclient_sha": "486bde57cda1badb68f915f66c61b544108606f3",
            "astute_sha": "6c5b73f93e24cc781c809db9159927655ced5012",
            "fuel-ostf_sha": "2cd967dccd66cfc3a0abd6af9f31e5b4d150a11c",
            "release": "7.0",
            "fuelmain_sha": "6b83d6a6a75bf7bca3177fcf63b2eebbf1ad0a85"
        }
    }

},
"auth_required": true,
"api": "1.0",
"fuel-library_sha": "6efc6698dd3d4b07e90a97a49c702128ccc88de7",
"nailgun_sha": "d590b26dbb09785b8a8b3651b0ef69746fcf9991",
"feature_groups":

    [
        "mirantis"
    ],
    "fuel-nailgun-agent_sha": "d7027952870a35db8dc52f185bb1158cdd3d1ebd",
    "openstack_version": "2015.1.0-7.0",
    "fuel-agent_sha": "50e90af6e3d560e9085ff71d2950cfbcca91af67",
    "production": "docker",
    "python-fuelclient_sha": "486bde57cda1badb68f915f66c61b544108606f3",
    "astute_sha": "6c5b73f93e24cc781c809db9159927655ced5012",
    "fuel-ostf_sha": "2cd967dccd66cfc3a0abd6af9f31e5b4d150a11c",
    "release": "7.0",
    "fuelmain_sha": "6b83d6a6a75bf7bca3177fcf63b2eebbf1ad0a85"

}

Changed in fuel:
status: Fix Committed → Fix Released
tags: removed: on-verification
Revision history for this message
Bogdan Dobrelya (bogdando) wrote :

Here is an update for the cinder-volume (so it seems affected as well):

There are currently concerns over the cinder-volume service ability
to run as a fully active-active service. During the Mitaka timeframe, this is being worked on, see:
   https://blueprints.launchpad.net/cinder/+spec/cinder-volume-active-active-support
   Thus, cinder-volume shall only be running on one of the controller nodes, even if it will be configured on all nodes

summary: - cinder-api should run as active/standby
+ cinder-api and volume should run as active/standby
description: updated
tags: added: area-library team-bugfix
Revision history for this message
Michael Polenchuk (mpolenchuk) wrote : Re: cinder-api and volume should run as active/standby

For controllers cinder-volume could be Active/Passive under pacemaker control.
How about compute and standalone cinder nodes?

Revision history for this message
Bogdan Dobrelya (bogdando) wrote :

AFAIK, not possible w/o the cluster management

Revision history for this message
Michael Polenchuk (mpolenchuk) wrote :

Therefore there should be constraint to place cinder-volume service to controllers only?

Revision history for this message
slava valyavskiy (slava-val-al) wrote :

Bogdan, could you please elaborate on suitable solution? Is Michael proposal correct?

Revision history for this message
Bogdan Dobrelya (bogdando) wrote :

I suggest to fix it only for controllers. For other cases only provide comment to the docs as known issues

Revision history for this message
slava valyavskiy (slava-val-al) wrote :

Guys, @bogdando,

It seems that we can only partially cover this issue(to avoid issue on controller nodes using ocf resource). And issue remains for all non-controller nodes and we are going to cover this affected part in our documentation as known issue. But, to avoid this issue on controller nodes we are gonna to introduce new cinder-volume ocf script ( https://github.com/openstack/openstack-resource-agents/blob/master/ocf/cinder-volume ) what was not tested before by us and may introduce some degradation in cinder's functionality. Btw, appropriate fix for cinder service addressing this issue should be landed in Mitaka release.
I propose to completely cover part of bug related to cinder-volume by documentation only and not to introduce tech debt like fixes.

Revision history for this message
slava valyavskiy (slava-val-al) wrote :

Also, I propose to create separate bug for cinder-volume service.

summary: - cinder-api and volume should run as active/standby
+ cinder-api should run as active/standby
Revision history for this message
Denis Meltsaykin (dmeltsaykin) wrote :

Closing as Won't Fix as this is clearly a feature not a bug.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.