Virtual Machine High Availability (VMHA) service for OpenStack.
Go to file
Mark Goddard 087f265891 Fix exception notification with no trace
The Exception notification code calls inspect.trace(), which returns an
empty list if called outside of an except clause. The returned list is
then indexed, causing an IndexError. In fact, every use of this
exception in the engine is from outside of an except clause.

This can affect notification processing, causing notifications to get
stuck in a running state, requiring manual DB deletion.

This change addresses the issue by checking whether the list returned by
inspect.trace() is empty.

A more complete solution would involve checking every call path to the
exception notification, and ensuring that it is made from an except
clause.

Change-Id: I01af664d53db20041ac7306d2bca63254ffc9ede
Partial-Bug: #1889765
(cherry picked from commit 69a9a41802)
2020-08-05 14:43:18 +00:00
api-ref/source Add progress details for recovery workflows 2019-03-08 10:52:51 +05:30
devstack Replace git.openstack.org URLs with opendev.org URLs 2019-08-11 15:00:14 +00:00
doc Replace git.openstack.org URLs with opendev.org URLs 2019-08-11 15:00:14 +00:00
etc/masakari fix oslo-config-generator conf 2019-03-12 15:53:17 +08:00
masakari Fix exception notification with no trace 2020-08-05 14:43:18 +00:00
playbooks/devstack Add functional CI job and tests for segments 2019-03-05 12:22:07 +05:30
releasenotes Switch from oslosphinx to openstackdocstheme 2019-04-10 09:07:04 -05:00
roles/devstack-config/tasks Add functional CI job and tests for segments 2019-03-05 12:22:07 +05:30
.coveragerc Initial Cookiecutter Commit. 2016-06-28 13:28:27 +09:00
.gitignore Merge "Remove testrepository" 2018-12-18 06:52:22 +00:00
.gitreview Update .gitreview for stable/train 2019-09-27 17:44:05 +00:00
.mailmap Initial Cookiecutter Commit. 2016-06-28 13:28:27 +09:00
.stestr.conf Switch to using stestr 2018-07-03 12:02:08 -04:00
.zuul.yaml Add Python 3 Train unit tests 2019-08-26 14:08:28 +05:30
CONTRIBUTING.rst Optimize the link address 2017-06-08 18:37:08 +07:00
HACKING.rst Register and Document policy in code 2018-07-27 12:15:14 +05:30
LICENSE Initial Cookiecutter Commit. 2016-06-28 13:28:27 +09:00
MANIFEST.in Drop MANIFEST.in - it's not needed by pbr 2016-10-13 16:55:15 +05:30
README.rst Replace git.openstack.org URLs with opendev.org URLs 2019-08-11 15:00:14 +00:00
babel.cfg Initial Cookiecutter Commit. 2016-06-28 13:28:27 +09:00
bindep.txt add libpq-dev and python-dev to build psycopg2 2019-08-26 13:36:36 +05:30
lower-constraints.txt Add progress details for recovery workflows 2019-03-08 10:52:51 +05:30
requirements.txt Switch from oslosphinx to openstackdocstheme 2019-04-10 09:07:04 -05:00
setup.cfg Add Python 3 Train unit tests 2019-08-26 14:08:28 +05:30
setup.py Updated from global requirements 2017-04-02 01:04:58 +00:00
test-requirements.txt Switch from oslosphinx to openstackdocstheme 2019-04-10 09:07:04 -05:00
tox.ini Update TOX/UPPER_CONSTRAINTS_FILE for stable/train 2019-09-27 17:44:08 +00:00

README.rst

Masakari

Virtual Machine High Availability (VMHA) service for OpenStack

Masakari provides Virtual Machine High Availability (VMHA) service for OpenStack clouds by automatically recovering the KVM-based Virtual Machine(VM)s from failure events such as VM process down, provisioning process down, and nova-compute host failure. It also provides API service for manage and control the automated rescue mechanism.

NOTE: Use masakari only if instance path is configured on shared storage system i.e, 'instances_path' config option of nova has a path of shared directory otherwise instance data will be lost after the evacuation of instance from failed host if, * instance is booted from image * flavor using ephemeral disks is used

Original version of Masakari: https://github.com/ntt-sic/masakari

Tokyo Summit Session: https://www.youtube.com/watch?v=BmjNKceW_9A

Masakari is distributed under the terms of the Apache License, Version 2.0. The full terms and conditions of this license are detailed in the LICENSE file.

Configure masakari-api

  1. Create masakari user:

    openstack user create --password-prompt masakari
    (give password as masakari)
  2. Add admin role to masakari user:

    openstack role add --project service --user masakari admin
  3. Create new service:

    openstack service create --name masakari --description "masakari high availability" instance-ha
  4. Create endpoint for masakari service:

    openstack endpoint create --region RegionOne masakari --publicurl http://<ip-address>:<port>/v1/%\(tenant_id\)s --adminurl http://<ip-address>:<port>/v1/%\(tenant_id\)s --internalurl http://<ip-address>:<port>/v1/%\(tenant_id\)s
  5. Clone masakari using

    git clone https://github.com/openstack/masakari.git
  6. Run setup.py from masakari

    sudo python setup.py install
  7. Create directory /etc/masakari

  8. Copy masakari.conf, api-paste.ini and policy.json file from masakari/etc/ to /etc/masakari folder

  9. To run masakari-api simply use following binary:

    masakari-api

Configure masakari database

  1. Create 'masakari' database

  2. After running setup.py for masakari (sudo python setup.py install), run masakari-manage command to sync the database

    masakari-manage db sync

Features

  • TODO