A service for managing and provisioning Bare Metal servers.
Go to file
Robert Collins b272e61218 Make hash ring mapping be more consistent
Nejc Saje reported on the openstack-dev list that our hash ring was not
stable as hosts were added or removed. This is a significant issue since
the hash ring is meant to minimize the impact of adding or removing
conductors to only approximately the change in capacity.

IMPORTANT: When this patch is added to a running Ironic environment it
will cause ring calculations to change. This will cause most existing
node -> conductor mappings to be invalid, which will cause existing
deployed nodes to be unable to reboot (if using a netbooting driver like
pxe_ipmi). The cluster will self-correct over time as the periodic task
_sync_hash_ring() rebuilds PXE environments.

NOTE: The meaning of the hash_partition_exponent configuration setting
had to be changed - if we define the total number of partitions of the
ring via it then adding a host simultaneously removes some partitions of
each existing host as well as adding new partitions from the new host -
this results in more perturbation. Instead we use it to define the
number of partitions per host. Existing deployments will continue to
work, but may be able to reduce some CPU overhead by shrinking their
setting.

Change-Id: Iad3c9f6b460e9162ca91d5719e42f7950f2f18df
Closes-Bug: #1365334
DocImpact: See above.
UpgradeImpact: See above.
2014-10-02 09:09:26 -07:00
doc/source Adds openSUSE support for developer documentation 2014-09-26 15:51:20 +02:00
etc Make hash ring mapping be more consistent 2014-10-02 09:09:26 -07:00
ironic Make hash ring mapping be more consistent 2014-10-02 09:09:26 -07:00
tools Use auth_token from keystonemiddleware 2014-08-11 15:33:58 -07:00
.gitignore Ignore backup files 2014-09-04 14:59:19 +12:00
.gitreview Added project infrastructure needs. 2013-05-02 14:55:43 -04:00
.mailmap Update mailmap for Joe Gordon 2013-10-28 10:19:15 +00:00
.testr.conf Unbreak debugging via testr 2014-09-03 21:31:06 +00:00
babel.cfg Run extract_messages 2013-07-22 09:51:10 +02:00
CONTRIBUTING.rst Fix the section name in CONTRIBUTING.rst 2014-06-30 12:23:21 -06:00
LICENSE Added project infrastructure needs. 2013-05-02 14:55:43 -04:00
MANIFEST.in Added project infrastructure needs. 2013-05-02 14:55:43 -04:00
openstack-common.conf Remove unused modules from openstack-common.conf 2014-09-10 14:32:23 +03:00
README.rst Remove duplication from README, add link to docs. 2013-06-06 11:15:47 -07:00
requirements.txt Updated from global requirements 2014-10-01 07:11:54 +00:00
setup.cfg Replace custom lazy loading by stevedore 2014-10-01 12:32:06 +02:00
setup.py Updated from global requirements 2014-04-30 05:25:27 +00:00
test-requirements.txt Update hacking version in test requirements 2014-10-01 16:52:59 +00:00
tox.ini Stop running check_uptodate in the pep8 testenv 2014-09-29 16:28:09 -07:00

Ironic

Ironic is an Incubated OpenStack project which aims to provision bare metal machines instead of virtual machines, forked from the Nova Baremetal driver. It is best thought of as a bare metal hypervisor API and a set of plugins which interact with the bare metal hypervisors. By default, it will use PXE and IPMI in concert to provision and turn on/off machines, but Ironic also supports vendor-specific plugins which may implement additional functionality.

Project Resources

Project status, bugs, and blueprints are tracked on Launchpad:

http://launchpad.net/ironic

Developer documentation can be found here:

http://docs.openstack.org/developer/ironic

Additional resources are linked from the project wiki page:

https://wiki.openstack.org/wiki/Ironic

Anyone wishing to contribute to an OpenStack project should find plenty of helpful resources here:

https://wiki.openstack.org/wiki/HowToContribute

All OpenStack projects use Gerrit for code reviews. A good reference for that is here:

https://wiki.openstack.org/wiki/GerritWorkflow