)]}'
{"doc/ha-guide/source/compute-node-ha-api.rst":[{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The `Newton Installation Tutorials and Guides"},{"line_number":6,"context_line":"\u003chttp://docs.openstack.org/project-install-guide/newton/\u003e`_"},{"line_number":7,"context_line":"provides instructions for installing multiple compute nodes."},{"line_number":8,"context_line":"To make the compute nodes highly available, you must configure the"},{"line_number":9,"context_line":"environment to include multiple instances of the API and other services."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_2ae59d08","line":7,"updated":"2016-12-01 22:41:33.000000000","message":"provide","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/controller-ha-haproxy.rst":[{"author":{"_account_id":20836,"name":"Nathaniel Archer","email":"nate.archer@rackspace.com","username":"DonNateR"},"change_message_id":"dbe3592cf83202cf2c57216c7b7dbee3c86ec756","unresolved":false,"context_lines":[{"line_number":8,"context_line":"It realistically supports tens of thousands of connections with recent"},{"line_number":9,"context_line":"hardware."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Each instance of HAProxy configures its front end to accept connections only"},{"line_number":12,"context_line":"to the virtual IP (VIP) address, and its back end (termination"},{"line_number":13,"context_line":"point) is a list of all the IP addresses of instances for load balancing."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a74a57a_6202c40b","line":11,"updated":"2016-11-28 17:14:18.000000000","message":"I would make these into two different sentences, one for \"front end\" and one for \"back end\".","commit_id":"9bee1ad1c36c3bc0638c0d3fe629294ec0ebfb84"},{"author":{"_account_id":20836,"name":"Nathaniel Archer","email":"nate.archer@rackspace.com","username":"DonNateR"},"change_message_id":"dbe3592cf83202cf2c57216c7b7dbee3c86ec756","unresolved":false,"context_lines":[{"line_number":20,"context_line":"   You can also ensure the availability by other means, using Keepalived"},{"line_number":21,"context_line":"   or Pacemaker."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"You can alternatively use a commercial load balancer, which is a hardware"},{"line_number":24,"context_line":"or software. We recommend a hardware load balancer as it generally has"},{"line_number":25,"context_line":"good performance."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a74a57a_6229e489","line":23,"updated":"2016-11-28 17:14:18.000000000","message":"\"Alternatively, you can use a commercial load balancer...","commit_id":"9bee1ad1c36c3bc0638c0d3fe629294ec0ebfb84"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":20,"context_line":"   You can also ensure the availability by other means, using Keepalived"},{"line_number":21,"context_line":"   or Pacemaker."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Alternatively, you can use a commercial load balancer, which is a hardware"},{"line_number":24,"context_line":"or software. We recommend a hardware load balancer as it generally has"},{"line_number":25,"context_line":"good performance."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_2a1e7d0c","line":23,"updated":"2016-12-01 22:41:33.000000000","message":"which is hardware","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":35,"context_line":"#. Locate your HAProxy instance on each OpenStack controller in your"},{"line_number":36,"context_line":"   environment. The following is an example ``/etc/haproxy/haproxy.cfg``"},{"line_number":37,"context_line":"   configuration file. Configure your instance using the following"},{"line_number":38,"context_line":"   configuration file, you will need a copy of it on each"},{"line_number":39,"context_line":"   controller node."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_aad8cd54","line":38,"updated":"2016-12-01 22:41:33.000000000","message":"file. You will","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/controller-ha-identity.rst":[{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"2f6324f362d09b7556e7da6597f048c70c134b6a","unresolved":false,"context_lines":[{"line_number":73,"context_line":"paste the above lines into your live Pacemaker configuration, and then make"},{"line_number":74,"context_line":"changes as required."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For example, you may enter edit ``p_ip_keystone`` from the"},{"line_number":77,"context_line":":command:`crm configure` menu and edit the resource to match your preferred"},{"line_number":78,"context_line":"virtual IP address."},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a74a57a_c9fc1c41","line":76,"range":{"start_line":76,"start_character":27,"end_line":76,"end_character":34},"updated":"2016-11-30 20:47:35.000000000","message":"I think this \"edit\" is a part of the command","commit_id":"d8a8c0b014c7742b808ee71d6c49fdb211e052b2"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"1d23ab1693bc56f64566d79b4ee5830eb94df717","unresolved":false,"context_lines":[{"line_number":73,"context_line":"paste the above lines into your live Pacemaker configuration, and then make"},{"line_number":74,"context_line":"changes as required."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"For example, you may enter edit ``p_ip_keystone`` from the"},{"line_number":77,"context_line":":command:`crm configure` menu and edit the resource to match your preferred"},{"line_number":78,"context_line":"virtual IP address."},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a71b18c_86dde172","line":76,"range":{"start_line":76,"start_character":27,"end_line":76,"end_character":49},"updated":"2016-12-01 15:38:53.000000000","message":"``edit p_ip_keystone``","commit_id":"a560a012b9580e892dab9414065683b935ebcfdc"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"~~~~~~~~~~~~~"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Before beginning, ensure you have read the"},{"line_number":18,"context_line":"`OpenStack Identity service"},{"line_number":19,"context_line":"\u003chttp://docs.openstack.org/admin-guide/common/get-started-identity.html\u003e`_"},{"line_number":20,"context_line":"before proceeding."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_eacf25ae","line":18,"updated":"2016-12-01 22:41:33.000000000","message":"service getting started documentation","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":77,"context_line":":command:`crm configure` menu and edit the resource to match your preferred"},{"line_number":78,"context_line":"virtual IP address."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Pacemaker will now start the OpenStack Identity service and its dependent"},{"line_number":81,"context_line":"resources on all of your nodes."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Red Hat"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_6a5315e2","line":80,"updated":"2016-12-01 22:41:33.000000000","message":"Pacemaker now starts","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/controller-ha-memcached.rst":[{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":11,"context_line":"services to store ephemeral data, such as tokens."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Access to Memcached is not handled by HAProxy because replicated"},{"line_number":14,"context_line":"access is currently only in an experimental state. Instead, OpenStack"},{"line_number":15,"context_line":"services must be supplied with the full list of hosts running"},{"line_number":16,"context_line":"Memcached."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_eaf805e8","line":14,"updated":"2016-12-01 22:41:33.000000000","message":"currently in an","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Memcached."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The Memcached client implements hashing to balance objects among the"},{"line_number":19,"context_line":"instances. Failure of an instance only impacts a percentage of the"},{"line_number":20,"context_line":"objects and the client automatically removes it from the list of"},{"line_number":21,"context_line":"instances. The SLA is several minutes."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_6ae5d535","line":19,"updated":"2016-12-01 22:41:33.000000000","message":"impacts only a percentage","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/controller-ha-pacemaker.rst":[{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"`Pacemaker \u003chttp://clusterlabs.org/\u003e`_ cluster stack is a state-of-the-art"},{"line_number":6,"context_line":"high availability and load balancing stack for the Linux platform."},{"line_number":7,"context_line":"Pacemaker is useful to make OpenStack infrastructure highly available."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":".. note::"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_0447f7bb","line":7,"updated":"2016-12-01 22:41:33.000000000","message":"is used","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"messaging, quorum, and cluster membership to Pacemaker."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Pacemaker does not inherently understand the applications it manages."},{"line_number":20,"context_line":"Instead, it relies on resource agents (RAs), scripts that encapsulate the"},{"line_number":21,"context_line":"knowledge of how to start, stop, and check the health of each application"},{"line_number":22,"context_line":"managed by the cluster."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_848867e9","line":20,"updated":"2016-12-01 22:41:33.000000000","message":"(RAs) that are scripts","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":86,"context_line":"      Since the cluster is a single administrative domain, it is"},{"line_number":87,"context_line":"      acceptable to use the same password on all nodes."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"#. Use that password to authenticate to the nodes which will"},{"line_number":90,"context_line":"   make up the cluster:"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"   .. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_64e8ab7d","line":89,"updated":"2016-12-01 22:41:33.000000000","message":"nodes that will","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":99,"context_line":"      The :option:`-p` option is used to give the password on command"},{"line_number":100,"context_line":"      line and makes it easier to script."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"#. Create and name the cluster, then start it:"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"   .. code-block:: console"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_e4fcbb40","line":102,"updated":"2016-12-01 22:41:33.000000000","message":", and then","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"- In Corosync, configurations use redundant networking"},{"line_number":239,"context_line":"  (with more than one interface). This means you must select a Redundant"},{"line_number":240,"context_line":"  Ring Protocol (RRP) mode other than none. We recommend as ``active`` as"},{"line_number":241,"context_line":"  the RRP mode."},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"  Note the following about the recommended interface configuration:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_2463131c","line":240,"updated":"2016-12-01 22:41:33.000000000","message":"We recommend ``active``","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":258,"context_line":"  - For firewall configurations, Corosync communicates over UDP only,"},{"line_number":259,"context_line":"    and uses ``mcastport`` (for receives) and ``mcastport - 1`` (for sends)."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"- The service declaration for the pacemaker service"},{"line_number":262,"context_line":"  may be placed in the :file:`corosync.conf` file directly"},{"line_number":263,"context_line":"  or in its own separate file, :file:`/etc/corosync/service.d/pacemaker`."},{"line_number":264,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_e4811b91","line":261,"updated":"2016-12-01 22:41:33.000000000","message":"Pacemaker service","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":297,"context_line":""},{"line_number":298,"context_line":"For environments that do not support multicast, Corosync should be configured"},{"line_number":299,"context_line":"for unicast. An example fragment of the :file:`corosync.conf` file"},{"line_number":300,"context_line":"for unicastis shown below:"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"**Corosync configuration file fragment for unicast (``corosync.conf``)**"},{"line_number":303,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_8449478e","line":300,"updated":"2016-12-01 22:41:33.000000000","message":"is shown","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":415,"context_line":""},{"line_number":416,"context_line":"Note the following:"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"- Specifying ``corosync_votequorum`` enables the votequorum library;"},{"line_number":419,"context_line":"  this is the only required option."},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"- The cluster is fully operational with ``expected_votes`` set to 7 nodes"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_8aff9100","line":418,"updated":"2016-12-01 22:41:33.000000000","message":"library.","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":416,"context_line":"Note the following:"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"- Specifying ``corosync_votequorum`` enables the votequorum library;"},{"line_number":419,"context_line":"  this is the only required option."},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"- The cluster is fully operational with ``expected_votes`` set to 7 nodes"},{"line_number":422,"context_line":"  (each node has 1 vote), quorum: 4. If a list of nodes is specified as"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_aa044d15","line":419,"updated":"2016-12-01 22:41:33.000000000","message":"This","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":441,"context_line":"  required to recalculate quorum after one or more hosts"},{"line_number":442,"context_line":"  have been lost from the cluster. To perform a new quorum recalculation,"},{"line_number":443,"context_line":"  the cluster must have quorum for at least the interval"},{"line_number":444,"context_line":"  specified for  ``last_man_standing_window``. The default is 10000ms."},{"line_number":445,"context_line":""},{"line_number":446,"context_line":""},{"line_number":447,"context_line":".. _pacemaker-corosync-start:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_8a26b1b8","line":444,"updated":"2016-12-01 22:41:33.000000000","message":"(extra space after for","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":453,"context_line":"distribution, it may ship with an LSB init script, an upstart job, or"},{"line_number":454,"context_line":"a Systemd unit file."},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"- Starting ``corosync`` with the LSB init script:"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"  .. code-block:: console"},{"line_number":459,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_4a3579d8","line":456,"updated":"2016-12-01 22:41:33.000000000","message":"Start","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":465,"context_line":""},{"line_number":466,"context_line":"     # service corosync start"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"- Starting ``corosync`` with upstart:"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"  .. code-block:: console"},{"line_number":471,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_aa528d11","line":468,"updated":"2016-12-01 22:41:33.000000000","message":"Start","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":471,"context_line":""},{"line_number":472,"context_line":"     # start corosync"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":"- Starting ``corosync`` with systemd unit file:"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"  .. code-block:: console"},{"line_number":477,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_0a42a13e","line":474,"updated":"2016-12-01 22:41:33.000000000","message":"Start","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":525,"context_line":"Pacemaker master control process. Choose one from the following four ways to"},{"line_number":526,"context_line":"start it:"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"#. Starting ``pacemaker`` with the LSB init script:"},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"  .. code-block:: console"},{"line_number":531,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_2aad9de9","line":528,"updated":"2016-12-01 22:41:33.000000000","message":"Start","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":537,"context_line":""},{"line_number":538,"context_line":"     # service pacemaker start"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"#. Starting ``pacemaker`` with upstart:"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"  .. code-block:: console"},{"line_number":543,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_4abad924","line":540,"updated":"2016-12-01 22:41:33.000000000","message":"Start","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":543,"context_line":""},{"line_number":544,"context_line":"     # start pacemaker"},{"line_number":545,"context_line":""},{"line_number":546,"context_line":"#. Starting ``pacemaker`` with the systemd unit file:"},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"  .. code-block:: console"},{"line_number":549,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_aa87ed5f","line":546,"updated":"2016-12-01 22:41:33.000000000","message":"Start","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":549,"context_line":""},{"line_number":550,"context_line":"     # systemctl start pacemaker"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"After the ``pacemaker`` service have started, Pacemaker creates a default empty"},{"line_number":553,"context_line":"cluster configuration with no resources. Use the :command:`crm_mon` utility to"},{"line_number":554,"context_line":"observe the status of ``pacemaker``:"},{"line_number":555,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_2a94bd89","line":552,"updated":"2016-12-01 22:41:33.000000000","message":"service has started","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/controller-ha-telemetry.rst":[{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The `Telemetry service"},{"line_number":6,"context_line":"\u003chttp://docs.openstack.org/admin-guide/common/get-started-telemetry.html\u003e`_"},{"line_number":7,"context_line":"provides data collection service and alarming service."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Telemetry central agent"},{"line_number":10,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_c4925f57","line":7,"updated":"2016-12-01 22:41:33.000000000","message":"provides a data collection service and an alarming service.","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":25,"context_line":"`various drivers \u003chttp://docs.openstack.org/developer/tooz/drivers.html\u003e`_"},{"line_number":26,"context_line":"including the following back end solutions:"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* `Zookeeper \u003chttp://zookeeper.apache.org/\u003e`_."},{"line_number":29,"context_line":"    Recommended solution by the Tooz project."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* `Redis \u003chttp://redis.io/\u003e`_."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_c4a09f93","line":28,"updated":"2016-12-01 22:41:33.000000000","message":"__:","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":28,"context_line":"* `Zookeeper \u003chttp://zookeeper.apache.org/\u003e`_."},{"line_number":29,"context_line":"    Recommended solution by the Tooz project."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* `Redis \u003chttp://redis.io/\u003e`_."},{"line_number":32,"context_line":"    Recommended solution by the Tooz project."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* `Memcached \u003chttp://memcached.org/\u003e`_."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_e4ad9b89","line":31,"updated":"2016-12-01 22:41:33.000000000","message":"__:","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":31,"context_line":"* `Redis \u003chttp://redis.io/\u003e`_."},{"line_number":32,"context_line":"    Recommended solution by the Tooz project."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* `Memcached \u003chttp://memcached.org/\u003e`_."},{"line_number":35,"context_line":"    Recommended for testing."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"You must configure a supported Tooz driver for the HA deployment of"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_04ab7775","line":34,"updated":"2016-12-01 22:41:33.000000000","message":"__:","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"the Telemetry services."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"For information about the required configuration options"},{"line_number":41,"context_line":"to be set in the :file:`ceilometer.conf`, see the `coordination section"},{"line_number":42,"context_line":"\u003chttp://docs.openstack.org/newton/config-reference/telemetry.html\u003e`_"},{"line_number":43,"context_line":"in the OpenStack Configuration Reference."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_24ddd314","line":41,"updated":"2016-12-01 22:41:33.000000000","message":"to set","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"The availability check of the instances is provided by heartbeat messages."},{"line_number":51,"context_line":"When the connection with an instance is lost, the workload will be"},{"line_number":52,"context_line":"reassigned within the remained instances in the next polling cycle."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":".. note::"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_2404f37c","line":52,"updated":"2016-12-01 22:41:33.000000000","message":"the remaining","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/controller-ha-vip.rst":[{"author":{"_account_id":20836,"name":"Nathaniel Archer","email":"nate.archer@rackspace.com","username":"DonNateR"},"change_message_id":"dbe3592cf83202cf2c57216c7b7dbee3c86ec756","unresolved":false,"context_lines":[{"line_number":5,"context_line":"You must select and assign a virtual IP address (VIP) that can freely float"},{"line_number":6,"context_line":"between cluster nodes."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"This configuration creates ``vip``. A virtual IP address for use by the"},{"line_number":9,"context_line":"API node (``10.0.0.11``):"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"For ``crmsh``:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a74a57a_c25ab8f1","line":8,"updated":"2016-11-28 17:14:18.000000000","message":"The sentence starting with, \"A virtual IP address...\" is not a complete sentence. Since you already defined a VIP in the first paragraph, I would change this sentence to, \"This configuration creates a ``vip`` for us by the the API node (``10.0.0.11``).\"","commit_id":"9bee1ad1c36c3bc0638c0d3fe629294ec0ebfb84"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":6,"context_line":"between cluster nodes."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"This configuration creates ``vip``, a virtual IP address for use by the"},{"line_number":9,"context_line":"API node (``10.0.0.11``):"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"For ``crmsh``:"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_c4cb3f71","line":9,"updated":"2016-12-01 22:41:33.000000000","message":").","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/environment-hardware.rst":[{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Hardware considerations for high availability"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Hardware setup"},{"line_number":6,"context_line":"~~~~~~~~~~~~~~"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_a4dd6372","line":4,"updated":"2016-12-01 22:41:33.000000000","message":"Need some kind of introductory sentence? \n\nWhen you use high availability, consider the hardware requirements needed for your application.","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Hardware setup"},{"line_number":6,"context_line":"~~~~~~~~~~~~~~"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"The standard hardware requirements:"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"- Provider networks. See the *Overview -\u003e Networking Option 1: Provider"},{"line_number":11,"context_line":"  networks* section of the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_646eebca","line":8,"updated":"2016-12-01 22:41:33.000000000","message":"The following are the standard hardware requirements:","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"The standard hardware requirements:"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"- Provider networks. See the *Overview -\u003e Networking Option 1: Provider"},{"line_number":11,"context_line":"  networks* section of the"},{"line_number":12,"context_line":"  `Install Tutorials and Guides \u003chttp://docs.openstack.org/project-install-guide/newton\u003e`_"},{"line_number":13,"context_line":"  depending on your distribution."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_64ca6ba3","line":10,"updated":"2016-12-01 22:41:33.000000000","message":"Provider networks:","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":11,"context_line":"  networks* section of the"},{"line_number":12,"context_line":"  `Install Tutorials and Guides \u003chttp://docs.openstack.org/project-install-guide/newton\u003e`_"},{"line_number":13,"context_line":"  depending on your distribution."},{"line_number":14,"context_line":"- Self-service networks. See the *Overview -\u003e Networking Option 2:"},{"line_number":15,"context_line":"  Self-service networks* section of the"},{"line_number":16,"context_line":"  `Install Tutorials and Guides \u003chttp://docs.openstack.org/project-install-guide/newton\u003e`_"},{"line_number":17,"context_line":"  depending on your distribution."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_84cf87af","line":14,"updated":"2016-12-01 22:41:33.000000000","message":"Self-service networks:","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":33,"context_line":"operate at higher latencies, some vendors insist on this value before"},{"line_number":34,"context_line":"agreeing to support the installation."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"The `ping` command can be used to find the latency between two servers."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Virtualized hardware"},{"line_number":39,"context_line":"~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_443c8f93","line":36,"updated":"2016-12-01 22:41:33.000000000","message":"You can use the `ping` command to find the latency between two servers.","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"- One physical server can support multiple nodes,"},{"line_number":45,"context_line":"  each of which supports almost any number of network interfaces."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"- Ability to take periodic snap shots throughout the installation process"},{"line_number":48,"context_line":"  and roll back to a working configuration in the event of a problem."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"However, running an OpenStack environment on VMs degrades the performance of"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_c4e41f0f","line":47,"updated":"2016-12-01 22:41:33.000000000","message":"You can take","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/environment-operatingsystem.rst":[{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"ee8c671e769d018671f7edd5deea7a31fafa075d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Installing operating system on each node"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The first step in setting up your highly available OpenStack cluster"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_e906561f","line":2,"updated":"2016-12-01 22:41:33.000000000","message":"Installing the operating system","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/instance-ha.rst":[{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":6,"context_line":"designing and developing an official and unified way to provide high"},{"line_number":7,"context_line":"availability for instances. We are developing automatic"},{"line_number":8,"context_line":"recovery from failures of hardware or hypervisor-related software on"},{"line_number":9,"context_line":"the compute node, or other failures which could prevent instances from"},{"line_number":10,"context_line":"functioning correctly. For example, issues with a cinder volume I/O path."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"More details are available in the `user story"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_6e7c0c73","line":9,"updated":"2016-12-01 21:42:56.000000000","message":"failures that could","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"availability for instances. We are developing automatic"},{"line_number":8,"context_line":"recovery from failures of hardware or hypervisor-related software on"},{"line_number":9,"context_line":"the compute node, or other failures which could prevent instances from"},{"line_number":10,"context_line":"functioning correctly. For example, issues with a cinder volume I/O path."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"More details are available in the `user story"},{"line_number":13,"context_line":"\u003chttp://specs.openstack.org/openstack/openstack-user-stories/user-stories/proposed/ha_vm.html\u003e`_"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_ee901c98","line":10,"updated":"2016-12-01 21:42:56.000000000","message":"correctly, such as, issues","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"More details are available in the `user story"},{"line_number":13,"context_line":"\u003chttp://specs.openstack.org/openstack/openstack-user-stories/user-stories/proposed/ha_vm.html\u003e`_"},{"line_number":14,"context_line":"co-authored by OpenStack\u0027s HA community and `Product Working Group"},{"line_number":15,"context_line":"\u003chttps://wiki.openstack.org/wiki/ProductTeam\u003e`_ (PWG), who have"},{"line_number":16,"context_line":"identified this feature as missing functionality in OpenStack which"},{"line_number":17,"context_line":"should be addressed with high priority."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_cec1a082","line":15,"updated":"2016-12-01 21:42:56.000000000","message":"where this feature is identified as missing functionality in OpenStack, which","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"The architectural challenges of instance HA and several currently"},{"line_number":23,"context_line":"existing solutions were presented in `a talk at the Austin summit"},{"line_number":24,"context_line":"\u003chttps://www.openstack.org/videos/video/high-availability-for-pets-and-hypervisors-state-of-the-nation\u003e`_,"},{"line_number":25,"context_line":"for which `slides are also available"},{"line_number":26,"context_line":"\u003chttp://aspiers.github.io/openstack-summit-2016-austin-compute-ha/\u003e`_."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The code for three of these solutions can be found online:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_a94b7e2a","line":25,"updated":"2016-12-01 21:42:56.000000000","message":"are the `s right here?","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"for which `slides are also available"},{"line_number":26,"context_line":"\u003chttp://aspiers.github.io/openstack-summit-2016-austin-compute-ha/\u003e`_."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The code for three of these solutions can be found online:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* `a mistral-based auto-recovery workflow"},{"line_number":31,"context_line":"  \u003chttps://github.com/gryf/mistral-evacuate\u003e`_, by Intel"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_690fa6e1","line":28,"updated":"2016-12-01 21:42:56.000000000","message":"online at the following links:","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/intro-ha-arch-pacemaker.rst":[{"author":{"_account_id":20836,"name":"Nathaniel Archer","email":"nate.archer@rackspace.com","username":"DonNateR"},"change_message_id":"dbe3592cf83202cf2c57216c7b7dbee3c86ec756","unresolved":false,"context_lines":[{"line_number":17,"context_line":"   While SYS-V init replacements like systemd can provide"},{"line_number":18,"context_line":"   deterministic recovery of a complex stack of services, the"},{"line_number":19,"context_line":"   recovery is limited to one machine and lacks the context of what"},{"line_number":20,"context_line":"   is happening on other machines. This is context that is crucial to"},{"line_number":21,"context_line":"   determine the difference between a local failure, clean startup"},{"line_number":22,"context_line":"   and recovery after a total site failure."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a74a57a_22aa8c19","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":3},"updated":"2016-11-28 17:14:18.000000000","message":"Maybe switch to, \"This context is crucial...\"","commit_id":"9bee1ad1c36c3bc0638c0d3fe629294ec0ebfb84"},{"author":{"_account_id":20836,"name":"Nathaniel Archer","email":"nate.archer@rackspace.com","username":"DonNateR"},"change_message_id":"dbe3592cf83202cf2c57216c7b7dbee3c86ec756","unresolved":false,"context_lines":[{"line_number":18,"context_line":"   deterministic recovery of a complex stack of services, the"},{"line_number":19,"context_line":"   recovery is limited to one machine and lacks the context of what"},{"line_number":20,"context_line":"   is happening on other machines. This is context that is crucial to"},{"line_number":21,"context_line":"   determine the difference between a local failure, clean startup"},{"line_number":22,"context_line":"   and recovery after a total site failure."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"#. Awareness of instances on other machines"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a74a57a_f644d94a","line":21,"updated":"2016-11-28 17:14:18.000000000","message":"Is the difference between a local failure that occurs during a clean startup and recovery after a total site failure? \"Local failure, clean startup\" feels like two separate clauses without an action that connects them.","commit_id":"9bee1ad1c36c3bc0638c0d3fe629294ec0ebfb84"},{"author":{"_account_id":20836,"name":"Nathaniel Archer","email":"nate.archer@rackspace.com","username":"DonNateR"},"change_message_id":"dbe3592cf83202cf2c57216c7b7dbee3c86ec756","unresolved":false,"context_lines":[{"line_number":26,"context_line":"   Services like RabbitMQ and Galera have complicated boot-up"},{"line_number":27,"context_line":"   sequences that require co-ordination, and often serialization, of"},{"line_number":28,"context_line":"   startup operations across all machines in the cluster. This is"},{"line_number":29,"context_line":"   especially true after site-wide failure or shutdown where you must"},{"line_number":30,"context_line":"   first determine the last machine to be active."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"#. A shared implementation and calculation of `quorum"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a74a57a_f69939c5","line":29,"updated":"2016-11-28 17:14:18.000000000","message":"\"... after a site-wide failure.\"","commit_id":"9bee1ad1c36c3bc0638c0d3fe629294ec0ebfb84"},{"author":{"_account_id":20836,"name":"Nathaniel Archer","email":"nate.archer@rackspace.com","username":"DonNateR"},"change_message_id":"dbe3592cf83202cf2c57216c7b7dbee3c86ec756","unresolved":false,"context_lines":[{"line_number":45,"context_line":"   A single application does not have sufficient context to know the"},{"line_number":46,"context_line":"   difference between failure of a machine and failure of the"},{"line_number":47,"context_line":"   application on a machine. The usual practice is to assume the"},{"line_number":48,"context_line":"   machine is dead and carry on, however this is highly risky. A"},{"line_number":49,"context_line":"   rogue process or machine could still be responding to requests and"},{"line_number":50,"context_line":"   generally causing havoc. The safer approach is to make use of"},{"line_number":51,"context_line":"   remotely accessible power switches and/or network switches and SAN"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a74a57a_762fe93e","line":48,"updated":"2016-11-28 17:14:18.000000000","message":"\"Carry on\" to what? This needs more context.","commit_id":"9bee1ad1c36c3bc0638c0d3fe629294ec0ebfb84"},{"author":{"_account_id":20836,"name":"Nathaniel Archer","email":"nate.archer@rackspace.com","username":"DonNateR"},"change_message_id":"dbe3592cf83202cf2c57216c7b7dbee3c86ec756","unresolved":false,"context_lines":[{"line_number":58,"context_line":"   required volume of requests. A cluster can automatically recover"},{"line_number":59,"context_line":"   failed instances to prevent additional load induced failures."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"For this reason, we highly recommend the use of a cluster manager like"},{"line_number":62,"context_line":"`Pacemaker \u003chttp://clusterlabs.org\u003e`_."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Deployment flavors"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a74a57a_96d9e559","line":61,"updated":"2016-11-28 17:14:18.000000000","message":"\"For these reasons...\"","commit_id":"9bee1ad1c36c3bc0638c0d3fe629294ec0ebfb84"},{"author":{"_account_id":20836,"name":"Nathaniel Archer","email":"nate.archer@rackspace.com","username":"DonNateR"},"change_message_id":"dbe3592cf83202cf2c57216c7b7dbee3c86ec756","unresolved":false,"context_lines":[{"line_number":74,"context_line":"`quorum \u003cquorum_\u003e`_."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Quorum becomes important when a failure causes the cluster to split in"},{"line_number":77,"context_line":"two or more partitions. In this situation, you want the majority to"},{"line_number":78,"context_line":"ensure the minority are truly dead (through fencing) and continue to"},{"line_number":79,"context_line":"host resources. For a two-node cluster, no side has the majority and"},{"line_number":80,"context_line":"you can end up in a situation where both sides fence each other, or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a74a57a_76bfe960","line":77,"updated":"2016-11-28 17:14:18.000000000","message":"Majority of members of the system, or the majority of members in each cluster? Since \"Quorum\" was mentioned in the last section in regards to \"members of the system\", I assume thats what \"members\" means in the this section.","commit_id":"9bee1ad1c36c3bc0638c0d3fe629294ec0ebfb84"},{"author":{"_account_id":20836,"name":"Nathaniel Archer","email":"nate.archer@rackspace.com","username":"DonNateR"},"change_message_id":"dbe3592cf83202cf2c57216c7b7dbee3c86ec756","unresolved":false,"context_lines":[{"line_number":178,"context_line":"* MongoDB"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"However, the reasons vary and are discussed under each component\u0027s"},{"line_number":181,"context_line":"heading."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"We recommend HAProxy as the load balancer, however, there are many"},{"line_number":184,"context_line":"alternatives in the marketplace."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a74a57a_19aee6e5","line":181,"updated":"2016-11-28 17:14:18.000000000","message":"Does this mean the component\u0027s heading within the guide?","commit_id":"9bee1ad1c36c3bc0638c0d3fe629294ec0ebfb84"},{"author":{"_account_id":20836,"name":"Nathaniel Archer","email":"nate.archer@rackspace.com","username":"DonNateR"},"change_message_id":"dbe3592cf83202cf2c57216c7b7dbee3c86ec756","unresolved":false,"context_lines":[{"line_number":180,"context_line":"However, the reasons vary and are discussed under each component\u0027s"},{"line_number":181,"context_line":"heading."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"We recommend HAProxy as the load balancer, however, there are many"},{"line_number":184,"context_line":"alternatives in the marketplace."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"We use a check interval of 1 second, however, the timeouts vary by service."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a74a57a_19942641","line":183,"updated":"2016-11-28 17:14:18.000000000","message":"\"...however, there are many alternative load balancing solutions in the marketplace.\"","commit_id":"9bee1ad1c36c3bc0638c0d3fe629294ec0ebfb84"},{"author":{"_account_id":20836,"name":"Nathaniel Archer","email":"nate.archer@rackspace.com","username":"DonNateR"},"change_message_id":"dbe3592cf83202cf2c57216c7b7dbee3c86ec756","unresolved":false,"context_lines":[{"line_number":183,"context_line":"We recommend HAProxy as the load balancer, however, there are many"},{"line_number":184,"context_line":"alternatives in the marketplace."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"We use a check interval of 1 second, however, the timeouts vary by service."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Generally, we use round-robin to distribute load amongst instances of"},{"line_number":189,"context_line":"active/active services. Galera uses the ``stick-table`` options"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a74a57a_d90e2e8b","line":186,"updated":"2016-11-28 17:14:18.000000000","message":"This sentence has no context within the section. The last paragraph referenced load balancing alternatives, but alternatives don\u0027t seem to be mentioned till the next paragraph. I would add more context or move the sentence to the preceding paragraph, unless it belongs in the next paragraph.","commit_id":"9bee1ad1c36c3bc0638c0d3fe629294ec0ebfb84"},{"author":{"_account_id":20836,"name":"Nathaniel Archer","email":"nate.archer@rackspace.com","username":"DonNateR"},"change_message_id":"dbe3592cf83202cf2c57216c7b7dbee3c86ec756","unresolved":false,"context_lines":[{"line_number":186,"context_line":"We use a check interval of 1 second, however, the timeouts vary by service."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Generally, we use round-robin to distribute load amongst instances of"},{"line_number":189,"context_line":"active/active services. Galera uses the ``stick-table`` options"},{"line_number":190,"context_line":"to ensure that incoming connections to the virtual IP (VIP) should be"},{"line_number":191,"context_line":"directed to only one of the available back ends."},{"line_number":192,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a74a57a_59a5be44","line":189,"updated":"2016-11-28 17:14:18.000000000","message":"\"The Galera cluster uses ``stick-table`` options...\"","commit_id":"9bee1ad1c36c3bc0638c0d3fe629294ec0ebfb84"},{"author":{"_account_id":20836,"name":"Nathaniel Archer","email":"nate.archer@rackspace.com","username":"DonNateR"},"change_message_id":"dbe3592cf83202cf2c57216c7b7dbee3c86ec756","unresolved":false,"context_lines":[{"line_number":190,"context_line":"to ensure that incoming connections to the virtual IP (VIP) should be"},{"line_number":191,"context_line":"directed to only one of the available back ends."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"In Galera\u0027s case, although it can run active/active, this helps avoid"},{"line_number":194,"context_line":"lock contention and prevent deadlocks. It is used in combination with"},{"line_number":195,"context_line":"the ``httpchk`` option that ensures only nodes that are in sync with its"},{"line_number":196,"context_line":"peers are allowed to handle requests."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a74a57a_4c67bab6","line":193,"updated":"2016-11-28 17:14:18.000000000","message":"I would combine this paragraph with the last. Rewording suggestion, \"Generally, we use round-robin to distribute load amongst instances of active/active services. Alternatively, Gelera uses  ``stack-table`` options to ensure that incoming connection to virtual IP (VIP) are directed to only one of the available back ends. This helps avoid lock contention and prevent deadlocks, although Galera can run active/active. Used in combination with the ``httpchk`` option, this ensure only nodes that are in sync with their peers are allowed to handle requests.\"","commit_id":"9bee1ad1c36c3bc0638c0d3fe629294ec0ebfb84"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"2f6324f362d09b7556e7da6597f048c70c134b6a","unresolved":false,"context_lines":[{"line_number":181,"context_line":"load balancing solutions in the marketplace."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"Generally, we use round-robin to distribute load amongst instances of"},{"line_number":184,"context_line":"active/active services. Alternatively, Gelera uses  ``stack-table`` options"},{"line_number":185,"context_line":"to ensure that incoming connection to virtual IP (VIP) are directed to only one"},{"line_number":186,"context_line":"of the available back ends. This helps avoid lock contention and prevent"},{"line_number":187,"context_line":"deadlocks, although Galera can run active/active. Used in combination with"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a74a57a_49e72ce4","line":184,"range":{"start_line":184,"start_character":51,"end_line":184,"end_character":52},"updated":"2016-11-30 20:47:35.000000000","message":"remove double space","commit_id":"d8a8c0b014c7742b808ee71d6c49fdb211e052b2"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":10,"context_line":"across a set of machines."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Even a distributed or replicated application that is able to survive failures"},{"line_number":13,"context_line":"on one or more machines can benefit from a cluster manager:"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"#. Awareness of other applications in the stack"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_78bbf272","line":13,"updated":"2016-12-01 21:42:56.000000000","message":"cluster manager because a cluster manager has the following capabilities:","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"   first determine the last machine to be active."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"#. A shared implementation and calculation of `quorum"},{"line_number":33,"context_line":"   \u003chttp://en.wikipedia.org/wiki/Quorum_(Distributed_Systems)\u003e`_."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"   It is very important that all members of the system share the same"},{"line_number":36,"context_line":"   view of who their peers are and whether or not they are in the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_f31d6367","line":33,"updated":"2016-12-01 21:42:56.000000000","message":"(delete the period at the end for consistency with other bullets","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"You can have up to 16 cluster members (this is currently limited by"},{"line_number":89,"context_line":"the ability of corosync to scale higher). In extreme cases, 32 and"},{"line_number":90,"context_line":"even up to 64 nodes could be possible, however, this is not well tested."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Collapsed"},{"line_number":93,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_f3b9e32f","line":90,"updated":"2016-12-01 21:42:56.000000000","message":"possible. However, this","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":92,"context_line":"Collapsed"},{"line_number":93,"context_line":"---------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"In this configuration, there is a single cluster of 3 or more"},{"line_number":96,"context_line":"nodes on which every component is running."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"This scenario has the advantage of requiring far fewer, if more"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_737cf372","line":95,"updated":"2016-12-01 21:42:56.000000000","message":"In a collapsed configuration,","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":139,"context_line":"~~~~~~~~~~~~"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Almost all services in this stack benefit from being proxied."},{"line_number":142,"context_line":"Using a proxy server provides:"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"#. Load distribution"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_13e57f36","line":142,"updated":"2016-12-01 21:42:56.000000000","message":"provides the following capabilities:","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":181,"context_line":"load balancing solutions in the marketplace."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"Generally, we use round-robin to distribute load amongst instances of"},{"line_number":184,"context_line":"active/active services. Alternatively, Gelera uses ``stack-table`` options"},{"line_number":185,"context_line":"to ensure that incoming connection to virtual IP (VIP) are directed to only one"},{"line_number":186,"context_line":"of the available back ends. This helps avoid lock contention and prevent"},{"line_number":187,"context_line":"deadlocks, although Galera can run active/active. Used in combination with"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_1353bfe2","line":184,"updated":"2016-12-01 21:42:56.000000000","message":"Galera uses","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/intro-ha-concepts.rst":[{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":2,"context_line":"High availability concepts"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"High availability systems seek to minimize two things:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"#. System downtime: Occurs when a user-facing service is unavailable"},{"line_number":8,"context_line":"   beyond a specified maximum amount of time."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_550fdfe0","line":5,"updated":"2016-12-01 21:42:56.000000000","message":"minimize the following issues:","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":13,"context_line":"and data loss only in the event of a single failure."},{"line_number":14,"context_line":"However, they are also expected to protect against cascading failures,"},{"line_number":15,"context_line":"where a single failure deteriorates into a series of consequential failures."},{"line_number":16,"context_line":"Many service providers guarantee :term:`Service Level Agreement (SLA)`"},{"line_number":17,"context_line":"including uptime percentage of computing service, which is calculated based"},{"line_number":18,"context_line":"on the available time and system downtime excluding planned outage time."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_95e7b711","line":16,"updated":"2016-12-01 21:42:56.000000000","message":"quarantee a","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"You will need to address high availability concerns for any applications"},{"line_number":68,"context_line":"software that you run on your OpenStack environment. The important thing is"},{"line_number":69,"context_line":"to make sure that your services are redundant and available,"},{"line_number":70,"context_line":"how you achieve that is up to you."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Stateless versus stateful services"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_95a3379e","line":69,"updated":"2016-12-01 21:42:56.000000000","message":"available.","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"You will need to address high availability concerns for any applications"},{"line_number":68,"context_line":"software that you run on your OpenStack environment. The important thing is"},{"line_number":69,"context_line":"to make sure that your services are redundant and available,"},{"line_number":70,"context_line":"how you achieve that is up to you."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Stateless versus stateful services"},{"line_number":73,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_15b647dc","line":70,"updated":"2016-12-01 21:42:56.000000000","message":"How","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Preventing single points of failure can depend on whether or not a"},{"line_number":76,"context_line":"service is stateless."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Stateless service"},{"line_number":79,"context_line":"  A service that provides a response after your request"},{"line_number":80,"context_line":"  and then requires no further attention."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_d876c63d","line":77,"updated":"2016-12-01 21:42:56.000000000","message":"Following are the definitions of stateless and stateful services:","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":82,"context_line":"  you need to provide redundant instances and load balance them."},{"line_number":83,"context_line":"  OpenStack services that are stateless include ``nova-api``,"},{"line_number":84,"context_line":"  ``nova-conductor``, ``glance-api``, ``keystone-api``,"},{"line_number":85,"context_line":"  ``neutron-api`` and ``nova-scheduler``."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Stateful service"},{"line_number":88,"context_line":"  A service where subsequent requests to the service"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_b8a02a92","line":85,"updated":"2016-12-01 21:42:56.000000000","message":", and","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Active/passive versus active/active"},{"line_number":101,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Stateful services can be configured as active/passive or active/active:"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":":term:`active/passive configuration`"},{"line_number":106,"context_line":"  Maintains a redundant instance"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_b8ce6a58","line":103,"updated":"2016-12-01 21:42:56.000000000","message":"active/active, which are defined as follows:","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":171,"context_line":"When four nodes fail simultaneously, the cluster would continue to function as"},{"line_number":172,"context_line":"well. But if split to partitions of three and four nodes respectively, the"},{"line_number":173,"context_line":"quorum of three would have made both sides to attempt to fence the other and"},{"line_number":174,"context_line":"host resources. And without fencing enabled, it would go straight to running"},{"line_number":175,"context_line":"two copies of each resource."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"This is why setting the quorum to a value less than ``floor(n/2) + 1`` is"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_d82086fa","line":174,"updated":"2016-12-01 21:42:56.000000000","message":"resources. Without fending enabled,","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":175,"context_line":"two copies of each resource."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"This is why setting the quorum to a value less than ``floor(n/2) + 1`` is"},{"line_number":178,"context_line":"dangerous. However it may be required for some specific cases, like a"},{"line_number":179,"context_line":"temporary measure at a point it is known with 100% certainty that the other"},{"line_number":180,"context_line":"nodes are down."},{"line_number":181,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_585ab684","line":178,"updated":"2016-12-01 21:42:56.000000000","message":"cases, such as a","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/intro-ha-controller.rst":[{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"OpenStack is a set of multiple services exposed to the end users"},{"line_number":6,"context_line":"as HTTP(s) APIs. Additionally, for your own internal usage, OpenStack"},{"line_number":7,"context_line":"requires SQL database server and AMQP broker. The physical servers,"},{"line_number":8,"context_line":"where all the components are running, are called controllers."},{"line_number":9,"context_line":"This modular OpenStack architecture allows to duplicate all the"},{"line_number":10,"context_line":"components and run them on different controllers."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_c2097733","line":7,"updated":"2016-12-01 21:42:56.000000000","message":"requires an SQL","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":6,"context_line":"as HTTP(s) APIs. Additionally, for your own internal usage, OpenStack"},{"line_number":7,"context_line":"requires SQL database server and AMQP broker. The physical servers,"},{"line_number":8,"context_line":"where all the components are running, are called controllers."},{"line_number":9,"context_line":"This modular OpenStack architecture allows to duplicate all the"},{"line_number":10,"context_line":"components and run them on different controllers."},{"line_number":11,"context_line":"By making all the components redundant it is possible to make"},{"line_number":12,"context_line":"OpenStack highly available."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_35042314","line":9,"updated":"2016-12-01 21:42:56.000000000","message":"allows you to","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"In general we can divide all the OpenStack components into three categories:"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- OpenStack APIs, these are HTTP(s) stateless services written in python,"},{"line_number":17,"context_line":"  easy to duplicate and mostly easy to load balance."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"- SQL relational database server provides stateful type consumed by other"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_1574879a","line":16,"updated":"2016-12-01 21:42:56.000000000","message":"APIs: These","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Both use a cluster manager, such as Pacemaker or Veritas, to"},{"line_number":51,"context_line":"orchestrate the actions of the various services across a set of"},{"line_number":52,"context_line":"machines. Since we are focused on FOSS, we will refer to these as"},{"line_number":53,"context_line":"Pacemaker architectures."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Traditionally, Pacemaker has been positioned as an all-encompassing"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_1582c752","line":52,"updated":"2016-12-01 21:42:56.000000000","message":"Because we are focused on FOSS, we refer to these as","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"407f321fa4423c5ca592abdad3cd76bc5091ae8b","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"With this in mind, some vendors are restricting Pacemaker\u0027s use to"},{"line_number":62,"context_line":"services that must operate in an active/passive mode (such as"},{"line_number":63,"context_line":"``cinder-volume``), those with multiple states (for example, Galera) and"},{"line_number":64,"context_line":"those with complex bootstrapping procedures (such as RabbitMQ)."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"The majority of services, needing no real orchestration, are handled"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_b5c11383","line":63,"updated":"2016-12-01 21:42:56.000000000","message":"Galera), and","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/networking-ha-metadata.rst":[{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"628c318123de8b5ac3a5cedd38ee75d2e2b496e8","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Run Networking metadata agent"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"No native feature is available to make this service highly available."},{"line_number":6,"context_line":"At this time, the active/passive solution exists to run the neutron metadata"},{"line_number":7,"context_line":"agent in failover mode with Pacemaker."},{"line_number":8,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_6168a8f6","line":5,"updated":"2016-12-01 17:58:05.000000000","message":"Currently, no native...","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/shared-database-configure.rst":[{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"628c318123de8b5ac3a5cedd38ee75d2e2b496e8","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Firewall"},{"line_number":16,"context_line":"---------"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Galera Cluster requires that you open four ports to network traffic:"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"- On ``3306``, Galera Cluster uses TCP for database client connections"},{"line_number":21,"context_line":"  and State Snapshot Transfers methods that require the client,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_41372cb0","line":18,"updated":"2016-12-01 17:58:05.000000000","message":"open the following ports","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"628c318123de8b5ac3a5cedd38ee75d2e2b496e8","unresolved":false,"context_lines":[{"line_number":20,"context_line":"- On ``3306``, Galera Cluster uses TCP for database client connections"},{"line_number":21,"context_line":"  and State Snapshot Transfers methods that require the client,"},{"line_number":22,"context_line":"  (that is, ``mysqldump``)."},{"line_number":23,"context_line":"- On ``4567`` Galera Cluster uses TCP for replication traffic. Multicast"},{"line_number":24,"context_line":"  replication uses both TCP and UDP on this port."},{"line_number":25,"context_line":"- On ``4568`` Galera Cluster uses TCP for Incremental State Transfers."},{"line_number":26,"context_line":"- On ``4444`` Galera Cluster uses TCP for all other State Snapshot Transfer"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_015614d2","line":23,"updated":"2016-12-01 17:58:05.000000000","message":"On ``4567``, (adding the comma as in the previous one)","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"628c318123de8b5ac3a5cedd38ee75d2e2b496e8","unresolved":false,"context_lines":[{"line_number":22,"context_line":"  (that is, ``mysqldump``)."},{"line_number":23,"context_line":"- On ``4567`` Galera Cluster uses TCP for replication traffic. Multicast"},{"line_number":24,"context_line":"  replication uses both TCP and UDP on this port."},{"line_number":25,"context_line":"- On ``4568`` Galera Cluster uses TCP for Incremental State Transfers."},{"line_number":26,"context_line":"- On ``4444`` Galera Cluster uses TCP for all other State Snapshot Transfer"},{"line_number":27,"context_line":"  methods."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_215310e3","line":25,"updated":"2016-12-01 17:58:05.000000000","message":"On ``4568``,","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"628c318123de8b5ac3a5cedd38ee75d2e2b496e8","unresolved":false,"context_lines":[{"line_number":23,"context_line":"- On ``4567`` Galera Cluster uses TCP for replication traffic. Multicast"},{"line_number":24,"context_line":"  replication uses both TCP and UDP on this port."},{"line_number":25,"context_line":"- On ``4568`` Galera Cluster uses TCP for Incremental State Transfers."},{"line_number":26,"context_line":"- On ``4444`` Galera Cluster uses TCP for all other State Snapshot Transfer"},{"line_number":27,"context_line":"  methods."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":".. seealso::"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_415e4cea","line":26,"updated":"2016-12-01 17:58:05.000000000","message":"On ``4444``,","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"628c318123de8b5ac3a5cedd38ee75d2e2b496e8","unresolved":false,"context_lines":[{"line_number":40,"context_line":"     --protocol tcp --match tcp --dport ${PORT} \\"},{"line_number":41,"context_line":"     --source ${NODE-IP-ADDRESS} --jump ACCEPT"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Make sure to save the changes once you are done, this will vary"},{"line_number":44,"context_line":"depending on your distribution:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"- For `Ubuntu \u003chttp://askubuntu.com/questions/66890/how-can-i-make-a-specific-set-of-iptables-rules-permanent#66905\u003e`_"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_011b741c","line":43,"updated":"2016-12-01 17:58:05.000000000","message":"done. This","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"628c318123de8b5ac3a5cedd38ee75d2e2b496e8","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Security-Enhanced Linux is a kernel module for improving security on Linux"},{"line_number":61,"context_line":"operating systems. It is commonly enabled and configured by default on"},{"line_number":62,"context_line":"Red Hat-based distributions. In the context of Galera Cluster, systems with"},{"line_number":63,"context_line":"SELinux may block the database service, keep it from starting or prevent it"},{"line_number":64,"context_line":"from establishing network connections with the cluster."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"To configure SELinux to permit Galera Cluster to operate, you may need"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_41a1eca8","line":63,"updated":"2016-12-01 17:58:05.000000000","message":"starting, or","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"628c318123de8b5ac3a5cedd38ee75d2e2b496e8","unresolved":false,"context_lines":[{"line_number":87,"context_line":"   into enforcing mode."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    For more information on configuring SELinux to work with"},{"line_number":90,"context_line":"    Galera Cluster, see the `Documentation"},{"line_number":91,"context_line":"    \u003chttp://galeracluster.com/documentation-webpages/selinux.html\u003e`_"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"AppArmor"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_81994471","line":90,"updated":"2016-12-01 17:58:05.000000000","message":"`SELinux documentation","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"628c318123de8b5ac3a5cedd38ee75d2e2b496e8","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"      # service apparmor restart"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"   For servers that use ``systemd``, instead run this command:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"   .. code-block:: console"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_81b064df","line":116,"updated":"2016-12-01 17:58:05.000000000","message":"(delete instead)","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"628c318123de8b5ac3a5cedd38ee75d2e2b496e8","unresolved":false,"context_lines":[{"line_number":156,"context_line":"-----------------------"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"While all of the configuration parameters available to the standard MySQL,"},{"line_number":159,"context_line":"MariaDB or Percona XtraDB database servers are available in Galera Cluster,"},{"line_number":160,"context_line":"there are some that you must define an outset to avoid conflict or"},{"line_number":161,"context_line":"unexpected behavior."},{"line_number":162,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_61098895","line":159,"updated":"2016-12-01 17:58:05.000000000","message":"MariaDB, or Percona","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"628c318123de8b5ac3a5cedd38ee75d2e2b496e8","unresolved":false,"context_lines":[{"line_number":160,"context_line":"there are some that you must define an outset to avoid conflict or"},{"line_number":161,"context_line":"unexpected behavior."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"- Ensure that the database server is not bound only to to the localhost:"},{"line_number":164,"context_line":"  ``127.0.0.1``. Also, do not bind it to ``0.0.0.0``. Binding to the localhost"},{"line_number":165,"context_line":"  or ``0.0.0.0`` makes ``mySQL`` bind to all IP addresses on the machine,"},{"line_number":166,"context_line":"  including the virtual IP address causing ``HAProxy`` not to start. Instead,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_21f07090","line":163,"updated":"2016-12-01 17:58:05.000000000","message":"only to the (extra to)","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"628c318123de8b5ac3a5cedd38ee75d2e2b496e8","unresolved":false,"context_lines":[{"line_number":229,"context_line":"------------------------------"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"Galera Cluster configuration parameters all have the ``wsrep_`` prefix."},{"line_number":232,"context_line":"There are five that you must define for each cluster node in your"},{"line_number":233,"context_line":"OpenStack database."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"- **wsrep Provider**: The Galera Replication Plugin serves as the ``wsrep``"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_e16af819","line":232,"updated":"2016-12-01 17:58:05.000000000","message":"You must define the following parameters for each...","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"628c318123de8b5ac3a5cedd38ee75d2e2b496e8","unresolved":false,"context_lines":[{"line_number":295,"context_line":"   | wsrep_sync_wait              | 0     |"},{"line_number":296,"context_line":"   +------------------------------+-------+"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"For the documentation of these parameters, ``wsrep`` provider option, and status"},{"line_number":299,"context_line":"variables available in Galera Cluster, see the Galera cluster `Reference"},{"line_number":300,"context_line":"\u003chttp://galeracluster.com/documentation-webpages/reference.html\u003e`_."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_41ee4c8c","line":298,"updated":"2016-12-01 17:58:05.000000000","message":"documentation about these","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/shared-database-manage.rst":[{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"c0bbf474c3cd9ed1ef69a1bfeae17ee8abc1d6b4","unresolved":false,"context_lines":[{"line_number":109,"context_line":"initialize the Primary Component on that node."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"To find the most advanced cluster node, you need to check the"},{"line_number":112,"context_line":"sequence numbers, or seqnos, on the last committed transaction for"},{"line_number":113,"context_line":"each. You can find this by viewing ``grastate.dat`` file in"},{"line_number":114,"context_line":"database directory:"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_1ea8311f","line":112,"updated":"2016-12-01 17:35:10.000000000","message":"or the ``seqno``,","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"c0bbf474c3cd9ed1ef69a1bfeae17ee8abc1d6b4","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"- Use MySQL/Galera in active/passive mode to avoid deadlocks on"},{"line_number":170,"context_line":"  ``SELECT ... FOR UPDATE`` type queries (used, for example, by nova"},{"line_number":171,"context_line":"  and neutron). This issue is discussed more in the following:"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"  - `IMPORTANT: MySQL Galera does *not* support SELECT ... FOR UPDATE"},{"line_number":174,"context_line":"    \u003chttp://lists.openstack.org/pipermail/openstack-dev/2014-May/035264.html\u003e`_"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_9e49a18e","line":171,"updated":"2016-12-01 17:35:10.000000000","message":"The issue is discussed in the following:","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/shared-database.rst":[{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"2f6324f362d09b7556e7da6597f048c70c134b6a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"- `Galera Cluster for MySQL \u003chttp://galeracluster.com/\u003e`_ The MySQL"},{"line_number":17,"context_line":"  reference implementation from Codership, Oy."},{"line_number":18,"context_line":"- `MariaDB Galera Cluster \u003chttps://mariadb.org/\u003e`_ The MariaDB"},{"line_number":19,"context_line":"  implementation of Galera Cluster, which is co.mmonly supported in"},{"line_number":20,"context_line":"  environments based on Red Hat distributions"},{"line_number":21,"context_line":"- `Percona XtraDB Cluster \u003chttp://www.percona.com/\u003e`_ The XtraDB"},{"line_number":22,"context_line":"  implementation of Galera Cluster from Percona."}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a74a57a_4682bb01","line":19,"range":{"start_line":19,"start_character":47,"end_line":19,"end_character":48},"updated":"2016-11-30 20:47:35.000000000","message":"nit: the missing period from below :)","commit_id":"d8a8c0b014c7742b808ee71d6c49fdb211e052b2"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"2f6324f362d09b7556e7da6597f048c70c134b6a","unresolved":false,"context_lines":[{"line_number":17,"context_line":"  reference implementation from Codership, Oy."},{"line_number":18,"context_line":"- `MariaDB Galera Cluster \u003chttps://mariadb.org/\u003e`_ The MariaDB"},{"line_number":19,"context_line":"  implementation of Galera Cluster, which is co.mmonly supported in"},{"line_number":20,"context_line":"  environments based on Red Hat distributions"},{"line_number":21,"context_line":"- `Percona XtraDB Cluster \u003chttp://www.percona.com/\u003e`_ The XtraDB"},{"line_number":22,"context_line":"  implementation of Galera Cluster from Percona."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a74a57a_a6e2afff","line":20,"range":{"start_line":20,"start_character":32,"end_line":20,"end_character":45},"updated":"2016-11-30 20:47:35.000000000","message":"distributions.","commit_id":"d8a8c0b014c7742b808ee71d6c49fdb211e052b2"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"c0bbf474c3cd9ed1ef69a1bfeae17ee8abc1d6b4","unresolved":false,"context_lines":[{"line_number":13,"context_line":"different ways, depending on the type of database that you want to use."},{"line_number":14,"context_line":"There are three implementations of Galera Cluster available to you:"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- `Galera Cluster for MySQL \u003chttp://galeracluster.com/\u003e`_ The MySQL"},{"line_number":17,"context_line":"  reference implementation from Codership, Oy."},{"line_number":18,"context_line":"- `MariaDB Galera Cluster \u003chttps://mariadb.org/\u003e`_ The MariaDB"},{"line_number":19,"context_line":"  implementation of Galera Cluster, which is commonly supported in"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_be265d14","line":16,"updated":"2016-12-01 17:35:10.000000000","message":": The MySQL","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"c0bbf474c3cd9ed1ef69a1bfeae17ee8abc1d6b4","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- `Galera Cluster for MySQL \u003chttp://galeracluster.com/\u003e`_ The MySQL"},{"line_number":17,"context_line":"  reference implementation from Codership, Oy."},{"line_number":18,"context_line":"- `MariaDB Galera Cluster \u003chttps://mariadb.org/\u003e`_ The MariaDB"},{"line_number":19,"context_line":"  implementation of Galera Cluster, which is commonly supported in"},{"line_number":20,"context_line":"  environments based on Red Hat distributions."},{"line_number":21,"context_line":"- `Percona XtraDB Cluster \u003chttp://www.percona.com/\u003e`_ The XtraDB"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_5e7e29e5","line":18,"updated":"2016-12-01 17:35:10.000000000","message":": The MariaDB","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"c0bbf474c3cd9ed1ef69a1bfeae17ee8abc1d6b4","unresolved":false,"context_lines":[{"line_number":18,"context_line":"- `MariaDB Galera Cluster \u003chttps://mariadb.org/\u003e`_ The MariaDB"},{"line_number":19,"context_line":"  implementation of Galera Cluster, which is commonly supported in"},{"line_number":20,"context_line":"  environments based on Red Hat distributions."},{"line_number":21,"context_line":"- `Percona XtraDB Cluster \u003chttp://www.percona.com/\u003e`_ The XtraDB"},{"line_number":22,"context_line":"  implementation of Galera Cluster from Percona."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"In addition to Galera Cluster, you can also achieve high availability"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_de6a391a","line":21,"updated":"2016-12-01 17:35:10.000000000","message":": The XtraDB","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/shared-messaging.rst":[{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"c0bbf474c3cd9ed1ef69a1bfeae17ee8abc1d6b4","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"- :ref:`Configure RabbitMQ for HA queues\u003crabbitmq-configure\u003e`"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"- :ref:`Configure OpenStack services to use Rabbit HA queues"},{"line_number":35,"context_line":"  \u003crabbitmq-services\u003e`"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_9e5c4127","line":34,"updated":"2016-12-01 17:35:10.000000000","message":"RabbitMQ HA queues","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"c0bbf474c3cd9ed1ef69a1bfeae17ee8abc1d6b4","unresolved":false,"context_lines":[{"line_number":67,"context_line":"   * - SLES 12"},{"line_number":68,"context_line":"     - :command:`# zypper addrepo -f obs://Cloud:OpenStack:Kilo/SLE_12 Kilo`"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"       [Verify fingerprint of imported GPG key; see below]"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"       :command:`# zypper install rabbitmq-server`"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_3ee96d1b","line":70,"updated":"2016-12-01 17:35:10.000000000","message":"Verify the fingerprint of the imported GPG key; see below.","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"c0bbf474c3cd9ed1ef69a1bfeae17ee8abc1d6b4","unresolved":false,"context_lines":[{"line_number":179,"context_line":"   The default node type is a disc node. In this guide, nodes"},{"line_number":180,"context_line":"   join the cluster as RAM nodes."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"#. To verify the cluster status:"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"   .. code-block:: console"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_7eb4c5f1","line":182,"updated":"2016-12-01 17:35:10.000000000","message":"Verify the cluster status:","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"c0bbf474c3cd9ed1ef69a1bfeae17ee8abc1d6b4","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"Configure the OpenStack components to use at least two RabbitMQ nodes."},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"Do this configuration on all services using RabbitMQ:"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"#. RabbitMQ HA cluster ``host:port`` pairs:"},{"line_number":226,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_deceb959","line":223,"updated":"2016-12-01 17:35:10.000000000","message":"Use these steps to configurate all services using RabbitMQ:","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/storage-ha-backend.rst":[{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"c702d72202e930485a45b3ba0ddef0ddd2530baf","unresolved":false,"context_lines":[{"line_number":10,"context_line":"- Ephemeral storage is allocated for an instance and is deleted when the"},{"line_number":11,"context_line":"  instance is deleted. The Compute service manages ephemeral storage and"},{"line_number":12,"context_line":"  by default, Compute stores ephemeral drives as files on local disks on the"},{"line_number":13,"context_line":"  Compute node. Ceph RBD can instead be used as the storage back end for"},{"line_number":14,"context_line":"  ephemeral storage."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- Persistent storage exists outside all instances. Two types of persistent"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_1bd92322","line":13,"updated":"2016-12-01 17:13:33.000000000","message":"As an alternative, you can use Ceph RBD as the storage back end...","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/storage-ha-block.rst":[{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"c702d72202e930485a45b3ba0ddef0ddd2530baf","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Highly available Block Storage API"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Cinder provides Block-Storage-as-a-service suitable for performance"},{"line_number":6,"context_line":"sensitive scenarios such as databases, expandable file systems, or"},{"line_number":7,"context_line":"providing a server with access to raw block level storage."},{"line_number":8,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_384a6584","line":5,"updated":"2016-12-01 17:13:33.000000000","message":"maybe Block-Storage-as-a-Service? (Seems like abbreviations have the s in service in caps)","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"c702d72202e930485a45b3ba0ddef0ddd2530baf","unresolved":false,"context_lines":[{"line_number":81,"context_line":"Block Storage API service."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"The command :command:`crm configure` supports batch input, copy and paste the"},{"line_number":84,"context_line":"ines above into your live pacemaker configuration and then make changes as"},{"line_number":85,"context_line":"required. For example, you may enter ``edit p_ip_cinder-api`` from the"},{"line_number":86,"context_line":":command:`crm configure` menu and edit the resource to match your preferred"},{"line_number":87,"context_line":"virtual IP address."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_9baa93d3","line":84,"updated":"2016-12-01 17:13:33.000000000","message":"lines above (missing \"l\")\nShould pacemaker be Pacemaker (for consistency with other sections)?","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"c702d72202e930485a45b3ba0ddef0ddd2530baf","unresolved":false,"context_lines":[{"line_number":95,"context_line":"Configure Block Storage API service"},{"line_number":96,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Edit the ``/etc/cinder/cinder.conf`` file:"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"For example, on a RHEL-based system:"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_1b6a0381","line":98,"updated":"2016-12-01 17:13:33.000000000","message":"file. (Then bring the following line, which ends with a :,  into this paragraph","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"c702d72202e930485a45b3ba0ddef0ddd2530baf","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":".. _ha-blockstorage-services:"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Configure OpenStack services to use highly available Block Storage API"},{"line_number":175,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Your OpenStack services must now point their Block Storage API configuration"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_dbf6cbd6","line":174,"updated":"2016-12-01 17:13:33.000000000","message":"use the highly","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}],"doc/ha-guide/source/storage-ha-file-systems.rst":[{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"2f6324f362d09b7556e7da6597f048c70c134b6a","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"      # commit"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Pacemaker will now starts the Shared File Systems API service and its"},{"line_number":66,"context_line":"dependent resources on one of your nodes."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":".. _ha-sharedfilesystems-configure:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a74a57a_26077f82","line":65,"range":{"start_line":65,"start_character":19,"end_line":65,"end_character":26},"updated":"2016-11-30 20:47:35.000000000","message":"start","commit_id":"d8a8c0b014c7742b808ee71d6c49fdb211e052b2"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"1d070f6bb6c75937dbb21a8b2a575f74b757cbd4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"   .. note::"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"      The :command:`crm configure` supports batch input. Copy and paste"},{"line_number":36,"context_line":"      the lines above into your live Pacemaker configuration and then make changes"},{"line_number":37,"context_line":"      as required."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"      For example, you may enter ``edit p_ip_manila-api`` from the"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a71b18c_61818f4a","line":36,"updated":"2016-12-01 16:20:21.000000000","message":"the lines in the next step","commit_id":"a560a012b9580e892dab9414065683b935ebcfdc"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"1d070f6bb6c75937dbb21a8b2a575f74b757cbd4","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"      # commit"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Pacemaker will now start the Shared File Systems API service and its"},{"line_number":66,"context_line":"dependent resources on one of your nodes."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":".. _ha-sharedfilesystems-configure:"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a71b18c_0137fbb0","line":65,"updated":"2016-12-01 16:20:21.000000000","message":"Pacemaker now starts the...","commit_id":"a560a012b9580e892dab9414065683b935ebcfdc"}],"doc/ha-guide/source/storage-ha-image.rst":[{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"2f6324f362d09b7556e7da6597f048c70c134b6a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Before beginning, ensure you are familiar with the"},{"line_number":17,"context_line":"documentation for installing the OpenStack Image API service."},{"line_number":18,"context_line":"See the *Image service* section in the"},{"line_number":19,"context_line":"`Installation Tutorials and Guides \u003chttp://docs.openstack.org/project-install-guide/newton\u003e`_"},{"line_number":20,"context_line":"depending on your distribution."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":".. _glance-api-pacemaker:"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a74a57a_6686d7dc","line":20,"range":{"start_line":19,"start_character":0,"end_line":20,"end_character":31},"updated":"2016-11-30 20:47:35.000000000","message":"/project-install-guide/newton\u003e`_, depending on your distribution.\nAdd comma for consistency.","commit_id":"d8a8c0b014c7742b808ee71d6c49fdb211e052b2"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"2f6324f362d09b7556e7da6597f048c70c134b6a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"      the above into your live Pacemaker configuration and then make changes as"},{"line_number":46,"context_line":"      required."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"      For example, you may enter edit ``p_ip_glance-api`` from the"},{"line_number":49,"context_line":"      :command:`crm configure` menu and edit the resource to match your"},{"line_number":50,"context_line":"      preferred virtual IP address."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a74a57a_c6aa4b19","line":48,"range":{"start_line":48,"start_character":33,"end_line":48,"end_character":38},"updated":"2016-11-30 20:47:35.000000000","message":"Is this \"edit\" meant to be a part of the command?\n``edit p_ip_glance-api``","commit_id":"d8a8c0b014c7742b808ee71d6c49fdb211e052b2"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"2f6324f362d09b7556e7da6597f048c70c134b6a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"   OpenStack Image API service."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"#. Commit your configuration changes by entering the following command from"},{"line_number":67,"context_line":"   the :command:`crm configure` menu.:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"   .. code-block:: console"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a74a57a_a620efb1","line":67,"range":{"start_line":67,"start_character":36,"end_line":67,"end_character":37},"updated":"2016-11-30 20:47:35.000000000","message":"Remove period","commit_id":"d8a8c0b014c7742b808ee71d6c49fdb211e052b2"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"1d070f6bb6c75937dbb21a8b2a575f74b757cbd4","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Highly available Image API"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The OpenStack Image service offers a service for discovering, registering, and"},{"line_number":6,"context_line":"retrieving virtual machine images. To make the OpenStack Image API service"},{"line_number":7,"context_line":"highly available in active/passive mode, you must:"},{"line_number":8,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a71b18c_a63c9d30","line":5,"updated":"2016-12-01 16:20:21.000000000","message":"Should this be OpenStack Image API service to be consistent with the name at the end of the paragraph?","commit_id":"a560a012b9580e892dab9414065683b935ebcfdc"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"1d070f6bb6c75937dbb21a8b2a575f74b757cbd4","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Prerequisites"},{"line_number":14,"context_line":"~~~~~~~~~~~~~"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Before beginning, ensure you are familiar with the"},{"line_number":17,"context_line":"documentation for installing the OpenStack Image API service."},{"line_number":18,"context_line":"See the *Image service* section in the"},{"line_number":19,"context_line":"`Installation Tutorials and Guides \u003chttp://docs.openstack.org/project-install-guide/newton\u003e`_,"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a71b18c_66b525cc","line":16,"updated":"2016-12-01 16:20:21.000000000","message":"ensure that you","commit_id":"a560a012b9580e892dab9414065683b935ebcfdc"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"1d070f6bb6c75937dbb21a8b2a575f74b757cbd4","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"   .. note::"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"      The :command:`crm configure` command  supports batch input. Copy and paste"},{"line_number":45,"context_line":"      the above into your live Pacemaker configuration and then make changes as"},{"line_number":46,"context_line":"      required."},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a71b18c_e61db5be","line":44,"range":{"start_line":44,"start_character":42,"end_line":44,"end_character":43},"updated":"2016-12-01 16:20:21.000000000","message":"extra space after command","commit_id":"a560a012b9580e892dab9414065683b935ebcfdc"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"1d070f6bb6c75937dbb21a8b2a575f74b757cbd4","unresolved":false,"context_lines":[{"line_number":42,"context_line":"   .. note::"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"      The :command:`crm configure` command  supports batch input. Copy and paste"},{"line_number":45,"context_line":"      the above into your live Pacemaker configuration and then make changes as"},{"line_number":46,"context_line":"      required."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"      For example, you may enter ``edit p_ip_glance-api`` from the"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a71b18c_210a37d3","line":45,"updated":"2016-12-01 16:20:21.000000000","message":"the lines in the next step into your","commit_id":"a560a012b9580e892dab9414065683b935ebcfdc"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"1d070f6bb6c75937dbb21a8b2a575f74b757cbd4","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"      commit"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Pacemaker will then start the OpenStack Image API service and its dependent"},{"line_number":74,"context_line":"resources on one of your nodes."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":".. _glance-api-configure:"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a71b18c_868961cd","line":73,"updated":"2016-12-01 16:20:21.000000000","message":"Pacemaker then starts the OpenStack...","commit_id":"a560a012b9580e892dab9414065683b935ebcfdc"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"1d070f6bb6c75937dbb21a8b2a575f74b757cbd4","unresolved":false,"context_lines":[{"line_number":79,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Edit the :file:`/etc/glance/glance-api.conf` file"},{"line_number":82,"context_line":"to configure the OpenStack image service:"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":".. code-block:: ini"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a71b18c_0663911b","line":82,"updated":"2016-12-01 16:20:21.000000000","message":"image to Image?","commit_id":"a560a012b9580e892dab9414065683b935ebcfdc"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"1d070f6bb6c75937dbb21a8b2a575f74b757cbd4","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":".. _glance-services:"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Configure OpenStack services to use highly available OpenStack Image API"},{"line_number":109,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Your OpenStack services must now point their OpenStack Image API configuration"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3a71b18c_a65bbd53","line":108,"updated":"2016-12-01 16:20:21.000000000","message":"to use the highly","commit_id":"a560a012b9580e892dab9414065683b935ebcfdc"},{"author":{"_account_id":8803,"name":"Catherine Richardson","email":"catherine.richardson@rackspace.com","username":"cyrichardson"},"change_message_id":"c702d72202e930485a45b3ba0ddef0ddd2530baf","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"      commit"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Pacemaker will then start the OpenStack Image API service and its dependent"},{"line_number":74,"context_line":"resources on one of your nodes."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":".. _glance-api-configure:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a71b18c_b802f53c","line":73,"updated":"2016-12-01 17:13:33.000000000","message":"Pacemaker then starts","commit_id":"2f781e5f685c3e41be2b1d959411d65dcf8ff502"}]}
