From 67bad97c52ae1738a99c13b2ccebd6820c920f70 Mon Sep 17 00:00:00 2001 From: Sean McGinnis Date: Mon, 17 Sep 2018 21:25:33 -0500 Subject: [PATCH] Remove ha-guide docs to avoid conflict The ha-guide repo is being restored and owned by the Operations Documentation SIG. Until the openstack-manuals content is removed, patches merged to either repo will overwrite the content of the web site. Depends-on: https://review.openstack.org/#/c/603219/ Change-Id: Iabd74139d1d73016563d0cfd30cf8ed6a3e1fc57 Signed-off-by: Sean McGinnis --- doc-tools-check-languages.conf | 5 +- .../design-storage/design-storage-arch.rst | 2 +- doc/doc-contrib-guide/source/doc-bugs.rst | 3 +- doc/doc-contrib-guide/source/topic-tags.rst | 3 - doc/ha-guide/setup.cfg | 27 - doc/ha-guide/setup.py | 30 - doc/ha-guide/source/appendix.rst | 8 - doc/ha-guide/source/common | 1 - doc/ha-guide/source/compute-node-ha.rst | 52 - doc/ha-guide/source/conf.py | 299 -- doc/ha-guide/source/controller-ha-haproxy.rst | 233 - .../source/controller-ha-identity.rst | 167 - .../source/controller-ha-memcached.rst | 21 - .../source/controller-ha-pacemaker.rst | 631 --- .../source/controller-ha-telemetry.rst | 80 - doc/ha-guide/source/controller-ha-vip.rst | 23 - doc/ha-guide/source/controller-ha.rst | 73 - doc/ha-guide/source/environment-hardware.rst | 61 - doc/ha-guide/source/environment-memcached.rst | 32 - doc/ha-guide/source/environment-ntp.rst | 10 - .../source/environment-operatingsystem.rst | 29 - doc/ha-guide/source/environment.rst | 14 - .../figures/Cluster-deployment-collapsed.png | Bin 228626 -> 0 bytes .../figures/Cluster-deployment-segregated.png | Bin 220348 -> 0 bytes doc/ha-guide/source/index.rst | 50 - .../source/intro-ha-arch-pacemaker.rst | 190 - doc/ha-guide/source/intro-ha.rst | 208 - .../locale/en_GB/LC_MESSAGES/ha-guide.po | 4161 ----------------- .../source/locale/ja/LC_MESSAGES/ha-guide.po | 3837 --------------- .../locale/tr_TR/LC_MESSAGES/ha-guide.po | 3971 ---------------- doc/ha-guide/source/networking-ha-dhcp.rst | 13 - doc/ha-guide/source/networking-ha-l3.rst | 37 - doc/ha-guide/source/networking-ha.rst | 35 - .../source/shared-database-configure.rst | 301 -- .../source/shared-database-manage.rst | 249 - doc/ha-guide/source/shared-database.rst | 32 - doc/ha-guide/source/shared-messaging.rst | 285 -- doc/ha-guide/source/shared-services.rst | 12 - doc/ha-guide/source/storage-ha-backend.rst | 59 - doc/ha-guide/source/storage-ha-block.rst | 189 - .../source/storage-ha-file-systems.rst | 113 - doc/ha-guide/source/storage-ha-image.rst | 141 - doc/ha-guide/source/storage-ha.rst | 20 - tools/build-all-rst.sh | 3 +- www/ja/index.html | 2 - www/ocata/index.html | 2 +- www/pike/index.html | 2 +- www/queens/index.html | 2 +- www/rocky/index.html | 2 +- www/static/sitemap.xml | 414 -- www/stein/index.html | 2 +- www/templates/ops_and_admin_guides.tmpl | 2 +- 52 files changed, 11 insertions(+), 16127 deletions(-) delete mode 100644 doc/ha-guide/setup.cfg delete mode 100644 doc/ha-guide/setup.py delete mode 100644 doc/ha-guide/source/appendix.rst delete mode 120000 doc/ha-guide/source/common delete mode 100644 doc/ha-guide/source/compute-node-ha.rst delete mode 100644 doc/ha-guide/source/conf.py delete mode 100644 doc/ha-guide/source/controller-ha-haproxy.rst delete mode 100644 doc/ha-guide/source/controller-ha-identity.rst delete mode 100644 doc/ha-guide/source/controller-ha-memcached.rst delete mode 100644 doc/ha-guide/source/controller-ha-pacemaker.rst delete mode 100644 doc/ha-guide/source/controller-ha-telemetry.rst delete mode 100644 doc/ha-guide/source/controller-ha-vip.rst delete mode 100644 doc/ha-guide/source/controller-ha.rst delete mode 100644 doc/ha-guide/source/environment-hardware.rst delete mode 100644 doc/ha-guide/source/environment-memcached.rst delete mode 100644 doc/ha-guide/source/environment-ntp.rst delete mode 100644 doc/ha-guide/source/environment-operatingsystem.rst delete mode 100644 doc/ha-guide/source/environment.rst delete mode 100644 doc/ha-guide/source/figures/Cluster-deployment-collapsed.png delete mode 100644 doc/ha-guide/source/figures/Cluster-deployment-segregated.png delete mode 100644 doc/ha-guide/source/index.rst delete mode 100644 doc/ha-guide/source/intro-ha-arch-pacemaker.rst delete mode 100644 doc/ha-guide/source/intro-ha.rst delete mode 100644 doc/ha-guide/source/locale/en_GB/LC_MESSAGES/ha-guide.po delete mode 100644 doc/ha-guide/source/locale/ja/LC_MESSAGES/ha-guide.po delete mode 100644 doc/ha-guide/source/locale/tr_TR/LC_MESSAGES/ha-guide.po delete mode 100644 doc/ha-guide/source/networking-ha-dhcp.rst delete mode 100644 doc/ha-guide/source/networking-ha-l3.rst delete mode 100644 doc/ha-guide/source/networking-ha.rst delete mode 100644 doc/ha-guide/source/shared-database-configure.rst delete mode 100644 doc/ha-guide/source/shared-database-manage.rst delete mode 100644 doc/ha-guide/source/shared-database.rst delete mode 100644 doc/ha-guide/source/shared-messaging.rst delete mode 100644 doc/ha-guide/source/shared-services.rst delete mode 100644 doc/ha-guide/source/storage-ha-backend.rst delete mode 100644 doc/ha-guide/source/storage-ha-block.rst delete mode 100644 doc/ha-guide/source/storage-ha-file-systems.rst delete mode 100644 doc/ha-guide/source/storage-ha-image.rst delete mode 100644 doc/ha-guide/source/storage-ha.rst diff --git a/doc-tools-check-languages.conf b/doc-tools-check-languages.conf index 97c74b5183..7172c0202c 100644 --- a/doc-tools-check-languages.conf +++ b/doc-tools-check-languages.conf @@ -7,10 +7,10 @@ declare -A BOOKS=( ["de"]="image-guide install-guide" ["fr"]="install-guide" ["id"]="image-guide install-guide" - ["ja"]="ha-guide image-guide install-guide" + ["ja"]="image-guide install-guide" ["ko_KR"]="install-guide" ["ru"]="install-guide" - ["tr_TR"]="arch-design ha-guide image-guide install-guide" + ["tr_TR"]="arch-design image-guide install-guide" ["zh_CN"]="install-guide" ) @@ -24,7 +24,6 @@ declare -A SPECIAL_BOOKS=( # This needs special handling, handle it with the RST tools. ["common"]="RST" ["glossary"]="RST" - ["ha-guide"]="RST" ["image-guide"]="RST" ["install-guide"]="RST" # Do not translate diff --git a/doc/arch-design/source/design-storage/design-storage-arch.rst b/doc/arch-design/source/design-storage/design-storage-arch.rst index 649b223d00..64edcafad9 100644 --- a/doc/arch-design/source/design-storage/design-storage-arch.rst +++ b/doc/arch-design/source/design-storage/design-storage-arch.rst @@ -496,7 +496,7 @@ servers and load balancing. HAProxy is one method of providing load balancing and high availability and is often combined with keepalived or pacemaker to ensure the HAProxy service maintains a stable VIP. Sample HAProxy configurations can be found in the `OpenStack HA Guide. -`_. +`_. Replication ----------- diff --git a/doc/doc-contrib-guide/source/doc-bugs.rst b/doc/doc-contrib-guide/source/doc-bugs.rst index 1f94458f11..f7c86dd025 100644 --- a/doc/doc-contrib-guide/source/doc-bugs.rst +++ b/doc/doc-contrib-guide/source/doc-bugs.rst @@ -249,8 +249,7 @@ Depending on the area a bug affects, it has one or more tags. For example: * **low-hanging-fruit** for documentation bugs that are straightforward to fix. If you are a newcomer, this is a way to start. -* **ha-guide**, **install-guide**, **image-guide**, and other for specific - guides. +* **install-guide**, **image-guide**, and other for specific guides. * **infra**, **theme** for documentation bugs that are in the documentation build tool chain. diff --git a/doc/doc-contrib-guide/source/topic-tags.rst b/doc/doc-contrib-guide/source/topic-tags.rst index 31cea25cfb..4fc417a0b6 100644 --- a/doc/doc-contrib-guide/source/topic-tags.rst +++ b/doc/doc-contrib-guide/source/topic-tags.rst @@ -18,9 +18,6 @@ to, use the following tags: [doc-contrib] OpenStack Documentation Contributor Guide -[ha-guide] - OpenStack High Availability Guide - [image-guide] OpenStack Virtual Machine Image Guide diff --git a/doc/ha-guide/setup.cfg b/doc/ha-guide/setup.cfg deleted file mode 100644 index d8b4586410..0000000000 --- a/doc/ha-guide/setup.cfg +++ /dev/null @@ -1,27 +0,0 @@ -[metadata] -name = openstackhaguide -summary = OpenStack High Availability Guide -author = OpenStack -author-email = openstack-dev@lists.openstack.org -home-page = https://docs.openstack.org/ -classifier = - Environment :: OpenStack - Intended Audience :: Information Technology - Intended Audience :: System Administrators - License :: OSI Approved :: Apache Software License - Operating System :: POSIX :: Linux - Topic :: Documentation - -[global] -setup-hooks = - pbr.hooks.setup_hook - -[files] - -[build_sphinx] -warning-is-error = 1 -build-dir = build -source-dir = source - -[wheel] -universal = 1 diff --git a/doc/ha-guide/setup.py b/doc/ha-guide/setup.py deleted file mode 100644 index 736375744d..0000000000 --- a/doc/ha-guide/setup.py +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env python -# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT -import setuptools - -# In python < 2.7.4, a lazy loading of package `pbr` will break -# setuptools if some other modules registered functions in `atexit`. -# solution from: http://bugs.python.org/issue15881#msg170215 -try: - import multiprocessing # noqa -except ImportError: - pass - -setuptools.setup( - setup_requires=['pbr'], - pbr=True) diff --git a/doc/ha-guide/source/appendix.rst b/doc/ha-guide/source/appendix.rst deleted file mode 100644 index ca6b1a7182..0000000000 --- a/doc/ha-guide/source/appendix.rst +++ /dev/null @@ -1,8 +0,0 @@ -Appendix -~~~~~~~~ - -.. toctree:: - :maxdepth: 1 - - common/app-support.rst - common/glossary.rst diff --git a/doc/ha-guide/source/common b/doc/ha-guide/source/common deleted file mode 120000 index dc879abe93..0000000000 --- a/doc/ha-guide/source/common +++ /dev/null @@ -1 +0,0 @@ -../../common \ No newline at end of file diff --git a/doc/ha-guide/source/compute-node-ha.rst b/doc/ha-guide/source/compute-node-ha.rst deleted file mode 100644 index 940ea507f9..0000000000 --- a/doc/ha-guide/source/compute-node-ha.rst +++ /dev/null @@ -1,52 +0,0 @@ -============================ -Configuring the compute node -============================ - -The `Installation Guides -`_ -provide instructions for installing multiple compute nodes. -To make the compute nodes highly available, you must configure the -environment to include multiple instances of the API and other services. - -Configuring high availability for instances -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -As of September 2016, the OpenStack High Availability community is -designing and developing an official and unified way to provide high -availability for instances. We are developing automatic -recovery from failures of hardware or hypervisor-related software on -the compute node, or other failures that could prevent instances from -functioning correctly, such as, issues with a cinder volume I/O path. - -More details are available in the `user story -`_ -co-authored by OpenStack's HA community and `Product Working Group -`_ (PWG), where this feature is -identified as missing functionality in OpenStack, which -should be addressed with high priority. - -Existing solutions -~~~~~~~~~~~~~~~~~~ - -The architectural challenges of instance HA and several currently -existing solutions were presented in `a talk at the Austin summit -`_, -for which `slides are also available `_. - -The code for three of these solutions can be found online at the following -links: - -* `a mistral-based auto-recovery workflow - `_, by Intel -* `masakari `_, by NTT -* `OCF RAs - `_, - as used by Red Hat and SUSE - -Current upstream work -~~~~~~~~~~~~~~~~~~~~~ - -Work is in progress on a unified approach, which combines the best -aspects of existing upstream solutions. More details are available on -`the HA VMs user story wiki -`_. diff --git a/doc/ha-guide/source/conf.py b/doc/ha-guide/source/conf.py deleted file mode 100644 index cf14559e54..0000000000 --- a/doc/ha-guide/source/conf.py +++ /dev/null @@ -1,299 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import os -# import sys - -import openstackdocstheme - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -# needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = ['openstackdocstheme'] - -# Add any paths that contain templates here, relative to this directory. -# templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -# source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -repository_name = "openstack/openstack-manuals" -bug_project = 'openstack-manuals' -project = u'High Availability Guide' -bug_tag = u'ha-guide' -copyright = u'2015-2018, OpenStack contributors' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '' -# The full version, including alpha/beta/rc tags. -release = '' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -# today = '' -# Else, today_fmt is used as the format for a strftime call. -# today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['common/cli*', 'common/nova*', - 'common/appendix.rst', - 'common/get-started*', 'common/dashboard*'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -# default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -# add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -# add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -# show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -# keep_warnings = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'openstackdocs' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -html_theme_options = { - 'display_badge': False -} - -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [openstackdocstheme.get_html_theme_path()] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -# html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -# html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -# html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -# html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -# html_static_path = [] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -# html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -# So that we can enable "log-a-bug" links from each output HTML page, this -# variable must be set to a format that includes year, month, day, hours and -# minutes. -html_last_updated_fmt = '%Y-%m-%d %H:%M' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -# html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -# html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -# html_additional_pages = {} - -# If false, no module index is generated. -# html_domain_indices = True - -# If false, no index is generated. -html_use_index = False - -# If true, the index is split into individual pages for each letter. -# html_split_index = False - -# If true, links to the reST sources are added to the pages. -html_show_sourcelink = False - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -# html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -# html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -# html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -# html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'ha-guide' - -# If true, publish source files -html_copy_source = False - -# -- Options for LaTeX output --------------------------------------------- -pdf_theme_path = openstackdocstheme.get_pdf_theme_path() -openstack_logo = openstackdocstheme.get_openstack_logo_path() - -latex_custom_template = r""" -\newcommand{\openstacklogo}{%s} -\usepackage{%s} -""" % (openstack_logo, pdf_theme_path) - -latex_engine = 'xelatex' - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - 'papersize': 'a4paper', - - # The font size ('10pt', '11pt' or '12pt'). - 'pointsize': '11pt', - - #Default figure align - 'figure_align': 'H', - - # Not to generate blank page after chapter - 'classoptions': ',openany', - - # Additional stuff for the LaTeX preamble. - 'preamble': latex_custom_template, -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - ('index', 'HAGuide.tex', u'High Availability Guide', - u'OpenStack contributors', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -# latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -# latex_use_parts = False - -# If true, show page references after internal links. -# latex_show_pagerefs = False - -# If true, show URL addresses after external links. -# latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# latex_appendices = [] - -# If false, no module index is generated. -# latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'haguide', u'High Availability Guide', - [u'OpenStack contributors'], 1) -] - -# If true, show URL addresses after external links. -# man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ('index', 'HAGuide', u'High Availability Guide', - u'OpenStack contributors', 'HAGuide', - 'This guide shows OpenStack operators and deployers how to configure' - 'OpenStack Networking to be robust and fault-tolerant.', 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -# texinfo_appendices = [] - -# If false, no module index is generated. -# texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -# texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -# texinfo_no_detailmenu = False - -# -- Options for Internationalization output ------------------------------ -locale_dirs = ['locale/'] diff --git a/doc/ha-guide/source/controller-ha-haproxy.rst b/doc/ha-guide/source/controller-ha-haproxy.rst deleted file mode 100644 index 1dbf09e515..0000000000 --- a/doc/ha-guide/source/controller-ha-haproxy.rst +++ /dev/null @@ -1,233 +0,0 @@ -======= -HAProxy -======= - -HAProxy provides a fast and reliable HTTP reverse proxy and load balancer -for TCP or HTTP applications. It is particularly suited for web crawling -under very high loads while needing persistence or Layer 7 processing. -It realistically supports tens of thousands of connections with recent -hardware. - -Each instance of HAProxy configures its front end to accept connections only -to the virtual IP (VIP) address. The HAProxy back end (termination -point) is a list of all the IP addresses of instances for load balancing. - -.. note:: - - Ensure your HAProxy installation is not a single point of failure, - it is advisable to have multiple HAProxy instances running. - - You can also ensure the availability by other means, using Keepalived - or Pacemaker. - -Alternatively, you can use a commercial load balancer, which is hardware -or software. We recommend a hardware load balancer as it generally has -good performance. - -For detailed instructions about installing HAProxy on your nodes, -see the HAProxy `official documentation `_. - -Configuring HAProxy -~~~~~~~~~~~~~~~~~~~ - -#. Restart the HAProxy service. - -#. Locate your HAProxy instance on each OpenStack controller node in your - environment. The following is an example ``/etc/haproxy/haproxy.cfg`` - configuration file. Configure your instance using the following - configuration file, you will need a copy of it on each - controller node. - - - .. code-block:: none - - global - chroot /var/lib/haproxy - daemon - group haproxy - maxconn 4000 - pidfile /var/run/haproxy.pid - user haproxy - - defaults - log global - maxconn 4000 - option redispatch - retries 3 - timeout http-request 10s - timeout queue 1m - timeout connect 10s - timeout client 1m - timeout server 1m - timeout check 10s - - listen dashboard_cluster - bind :443 - balance source - option tcpka - option httpchk - option tcplog - server controller1 10.0.0.12:443 check inter 2000 rise 2 fall 5 - server controller2 10.0.0.13:443 check inter 2000 rise 2 fall 5 - server controller3 10.0.0.14:443 check inter 2000 rise 2 fall 5 - - listen galera_cluster - bind :3306 - balance source - option mysql-check - server controller1 10.0.0.12:3306 check port 9200 inter 2000 rise 2 fall 5 - server controller2 10.0.0.13:3306 backup check port 9200 inter 2000 rise 2 fall 5 - server controller3 10.0.0.14:3306 backup check port 9200 inter 2000 rise 2 fall 5 - - listen glance_api_cluster - bind :9292 - balance source - option tcpka - option httpchk - option tcplog - server controller1 10.0.0.12:9292 check inter 2000 rise 2 fall 5 - server controller2 10.0.0.13:9292 check inter 2000 rise 2 fall 5 - server controller3 10.0.0.14:9292 check inter 2000 rise 2 fall 5 - - listen glance_registry_cluster - bind :9191 - balance source - option tcpka - option tcplog - server controller1 10.0.0.12:9191 check inter 2000 rise 2 fall 5 - server controller2 10.0.0.13:9191 check inter 2000 rise 2 fall 5 - server controller3 10.0.0.14:9191 check inter 2000 rise 2 fall 5 - - listen keystone_admin_public_internal_cluster - bind :5000 - balance source - option tcpka - option httpchk - option tcplog - server controller1 10.0.0.12:5000 check inter 2000 rise 2 fall 5 - server controller2 10.0.0.13:5000 check inter 2000 rise 2 fall 5 - server controller3 10.0.0.14:5000 check inter 2000 rise 2 fall 5 - - listen nova_ec2_api_cluster - bind :8773 - balance source - option tcpka - option tcplog - server controller1 10.0.0.12:8773 check inter 2000 rise 2 fall 5 - server controller2 10.0.0.13:8773 check inter 2000 rise 2 fall 5 - server controller3 10.0.0.14:8773 check inter 2000 rise 2 fall 5 - - listen nova_compute_api_cluster - bind :8774 - balance source - option tcpka - option httpchk - option tcplog - server controller1 10.0.0.12:8774 check inter 2000 rise 2 fall 5 - server controller2 10.0.0.13:8774 check inter 2000 rise 2 fall 5 - server controller3 10.0.0.14:8774 check inter 2000 rise 2 fall 5 - - listen nova_metadata_api_cluster - bind :8775 - balance source - option tcpka - option tcplog - server controller1 10.0.0.12:8775 check inter 2000 rise 2 fall 5 - server controller2 10.0.0.13:8775 check inter 2000 rise 2 fall 5 - server controller3 10.0.0.14:8775 check inter 2000 rise 2 fall 5 - - listen cinder_api_cluster - bind :8776 - balance source - option tcpka - option httpchk - option tcplog - server controller1 10.0.0.12:8776 check inter 2000 rise 2 fall 5 - server controller2 10.0.0.13:8776 check inter 2000 rise 2 fall 5 - server controller3 10.0.0.14:8776 check inter 2000 rise 2 fall 5 - - listen ceilometer_api_cluster - bind :8777 - balance source - option tcpka - option tcplog - server controller1 10.0.0.12:8777 check inter 2000 rise 2 fall 5 - server controller2 10.0.0.13:8777 check inter 2000 rise 2 fall 5 - server controller3 10.0.0.14:8777 check inter 2000 rise 2 fall 5 - - listen nova_vncproxy_cluster - bind :6080 - balance source - option tcpka - option tcplog - server controller1 10.0.0.12:6080 check inter 2000 rise 2 fall 5 - server controller2 10.0.0.13:6080 check inter 2000 rise 2 fall 5 - server controller3 10.0.0.14:6080 check inter 2000 rise 2 fall 5 - - listen neutron_api_cluster - bind :9696 - balance source - option tcpka - option httpchk - option tcplog - server controller1 10.0.0.12:9696 check inter 2000 rise 2 fall 5 - server controller2 10.0.0.13:9696 check inter 2000 rise 2 fall 5 - server controller3 10.0.0.14:9696 check inter 2000 rise 2 fall 5 - - listen swift_proxy_cluster - bind :8080 - balance source - option tcplog - option tcpka - server controller1 10.0.0.12:8080 check inter 2000 rise 2 fall 5 - server controller2 10.0.0.13:8080 check inter 2000 rise 2 fall 5 - server controller3 10.0.0.14:8080 check inter 2000 rise 2 fall 5 - - .. note:: - - The Galera cluster configuration directive ``backup`` indicates - that two of the three controllers are standby nodes. - This ensures that only one node services write requests - because OpenStack support for multi-node writes is not yet production-ready. - - .. note:: - - The Telemetry API service configuration does not have the ``option httpchk`` - directive as it cannot process this check properly. - -.. TODO: explain why the Telemetry API is so special - -#. Configure the kernel parameter to allow non-local IP binding. This allows - running HAProxy instances to bind to a VIP for failover. Add following line - to ``/etc/sysctl.conf``: - - .. code-block:: none - - net.ipv4.ip_nonlocal_bind = 1 - -#. Restart the host or, to make changes work immediately, invoke: - - .. code-block:: console - - $ sysctl -p - -#. Add HAProxy to the cluster and ensure the VIPs can only run on machines - where HAProxy is active: - - ``pcs`` - - .. code-block:: console - - $ pcs resource create lb-haproxy systemd:haproxy --clone - $ pcs constraint order start vip then lb-haproxy-clone kind=Optional - $ pcs constraint colocation add lb-haproxy-clone with vip - - ``crmsh`` - - .. code-block:: console - - $ crm cib new conf-haproxy - $ crm configure primitive haproxy lsb:haproxy op monitor interval="1s" - $ crm configure clone haproxy-clone haproxy - $ crm configure colocation vip-with-haproxy inf: vip haproxy-clone - $ crm configure order haproxy-after-vip mandatory: vip haproxy-clone diff --git a/doc/ha-guide/source/controller-ha-identity.rst b/doc/ha-guide/source/controller-ha-identity.rst deleted file mode 100644 index 3eaea9ae72..0000000000 --- a/doc/ha-guide/source/controller-ha-identity.rst +++ /dev/null @@ -1,167 +0,0 @@ -============================= -Highly available Identity API -============================= - -Making the OpenStack Identity service highly available -in active and passive mode involves: - -- :ref:`identity-pacemaker` -- :ref:`identity-config-identity` -- :ref:`identity-services-config` - -.. _identity-pacemaker: - -Prerequisites -~~~~~~~~~~~~~ - -Before beginning, ensure you have read the -`OpenStack Identity service getting started documentation -`_. - -Add OpenStack Identity resource to Pacemaker -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following section(s) detail how to add the OpenStack Identity -resource to Pacemaker on SUSE and Red Hat. - -SUSE ------ - -SUSE Enterprise Linux and SUSE-based distributions, such as openSUSE, -use a set of OCF agents for controlling OpenStack services. - -#. Run the following commands to download the OpenStack Identity resource - to Pacemaker: - - .. code-block:: console - - # cd /usr/lib/ocf/resource.d - # mkdir openstack - # cd openstack - # wget https://git.openstack.org/cgit/openstack/openstack-resource-agents/plain/ocf/keystone - # chmod a+rx * - -#. Add the Pacemaker configuration for the OpenStack Identity resource - by running the following command to connect to the Pacemaker cluster: - - .. code-block:: console - - # crm configure - -#. Add the following cluster resources: - - .. code-block:: console - - clone p_keystone ocf:openstack:keystone \ - params config="/etc/keystone/keystone.conf" os_password="secretsecret" os_username="admin" os_tenant_name="admin" os_auth_url="http://10.0.0.11:5000/v2.0/" \ - op monitor interval="30s" timeout="30s" - - .. note:: - - This configuration creates ``p_keystone``, - a resource for managing the OpenStack Identity service. - -#. Commit your configuration changes from the :command:`crm configure` menu - with the following command: - - .. code-block:: console - - # commit - -The :command:`crm configure` supports batch input. You may have to copy and -paste the above lines into your live Pacemaker configuration, and then make -changes as required. - -For example, you may enter ``edit p_ip_keystone`` from the -:command:`crm configure` menu and edit the resource to match your preferred -virtual IP address. - -Pacemaker now starts the OpenStack Identity service and its dependent -resources on all of your nodes. - -Red Hat --------- - -For Red Hat Enterprise Linux and Red Hat-based Linux distributions, -the following process uses Systemd unit files. - -.. code-block:: console - - # pcs resource create openstack-keystone systemd:openstack-keystone --clone interleave=true - -.. _identity-config-identity: - -Configure OpenStack Identity service -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -#. Edit the :file:`keystone.conf` file - to change the values of the :manpage:`bind(2)` parameters: - - .. code-block:: ini - - bind_host = 10.0.0.12 - public_bind_host = 10.0.0.12 - admin_bind_host = 10.0.0.12 - - The ``admin_bind_host`` parameter - lets you use a private network for admin access. - -#. To be sure that all data is highly available, - ensure that everything is stored in the MySQL database - (which is also highly available): - - .. code-block:: ini - - [catalog] - driver = keystone.catalog.backends.sql.Catalog - # ... - [identity] - driver = keystone.identity.backends.sql.Identity - # ... - -#. If the Identity service will be sending ceilometer notifications - and your message bus is configured for high availability, you will - need to ensure that the Identity service is correctly configured to - use it. For details on how to configure the Identity service for - this kind of deployment, see :doc:`shared-messaging`. - -.. _identity-services-config: - -Configure OpenStack services to use the highly available OpenStack Identity -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Your OpenStack services now point their OpenStack Identity configuration -to the highly available virtual cluster IP address. - -#. For OpenStack Compute, (if your OpenStack Identity service IP address - is 10.0.0.11) use the following configuration in the :file:`api-paste.ini` - file: - - .. code-block:: ini - - auth_host = 10.0.0.11 - -#. Create the OpenStack Identity Endpoint with this IP address. - - .. note:: - - If you are using both private and public IP addresses, - create two virtual IP addresses and define the endpoint. For - example: - - .. code-block:: console - - $ openstack endpoint create --region $KEYSTONE_REGION \ - $service-type public http://PUBLIC_VIP:5000/v2.0 - $ openstack endpoint create --region $KEYSTONE_REGION \ - $service-type admin http://10.0.0.11:35357/v2.0 - $ openstack endpoint create --region $KEYSTONE_REGION \ - $service-type internal http://10.0.0.11:5000/v2.0 - - -#. If you are using the horizon Dashboard, edit the :file:`local_settings.py` - file to include the following: - - .. code-block:: ini - - OPENSTACK_HOST = 10.0.0.11 diff --git a/doc/ha-guide/source/controller-ha-memcached.rst b/doc/ha-guide/source/controller-ha-memcached.rst deleted file mode 100644 index b5cebcc223..0000000000 --- a/doc/ha-guide/source/controller-ha-memcached.rst +++ /dev/null @@ -1,21 +0,0 @@ -========= -Memcached -========= - -Memcached is a general-purpose distributed memory caching system. It -is used to speed up dynamic database-driven websites by caching data -and objects in RAM to reduce the number of times an external data -source must be read. - -Memcached is a memory cache demon that can be used by most OpenStack -services to store ephemeral data, such as tokens. - -Access to Memcached is not handled by HAProxy because replicated -access is currently in an experimental state. Instead, OpenStack -services must be supplied with the full list of hosts running -Memcached. - -The Memcached client implements hashing to balance objects among the -instances. Failure of an instance impacts only a percentage of the -objects and the client automatically removes it from the list of -instances. The SLA is several minutes. diff --git a/doc/ha-guide/source/controller-ha-pacemaker.rst b/doc/ha-guide/source/controller-ha-pacemaker.rst deleted file mode 100644 index 8ea63fd008..0000000000 --- a/doc/ha-guide/source/controller-ha-pacemaker.rst +++ /dev/null @@ -1,631 +0,0 @@ -======================= -Pacemaker cluster stack -======================= - -`Pacemaker `_ cluster stack is a state-of-the-art -high availability and load balancing stack for the Linux platform. -Pacemaker is used to make OpenStack infrastructure highly available. - -.. note:: - - It is storage and application-agnostic, and in no way specific to OpenStack. - -Pacemaker relies on the -`Corosync `_ messaging layer -for reliable cluster communications. Corosync implements the Totem single-ring -ordering and membership protocol. It also provides UDP and InfiniBand based -messaging, quorum, and cluster membership to Pacemaker. - -Pacemaker does not inherently understand the applications it manages. -Instead, it relies on resource agents (RAs) that are scripts that encapsulate -the knowledge of how to start, stop, and check the health of each application -managed by the cluster. - -These agents must conform to one of the `OCF `_, -`SysV Init `_, Upstart, or Systemd standards. - -Pacemaker ships with a large set of OCF agents (such as those managing -MySQL databases, virtual IP addresses, and RabbitMQ), but can also use -any agents already installed on your system and can be extended with -your own (see the -`developer guide `_). - -The steps to implement the Pacemaker cluster stack are: - -- :ref:`pacemaker-install` -- :ref:`pacemaker-corosync-setup` -- :ref:`pacemaker-corosync-start` -- :ref:`pacemaker-start` -- :ref:`pacemaker-cluster-properties` - -.. _pacemaker-install: - -Install packages -~~~~~~~~~~~~~~~~ - -On any host that is meant to be part of a Pacemaker cluster, establish cluster -communications through the Corosync messaging layer. -This involves installing the following packages (and their dependencies, which -your package manager usually installs automatically): - -- `pacemaker` - -- `pcs` (CentOS or RHEL) or crmsh - -- `corosync` - -- `fence-agents` (CentOS or RHEL) or cluster-glue - -- `resource-agents` - -- `libqb0` - -.. _pacemaker-corosync-setup: - -Set up the cluster with pcs -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -#. Make sure `pcs` is running and configured to start at boot time: - - .. code-block:: console - - $ systemctl enable pcsd - $ systemctl start pcsd - -#. Set a password for hacluster user on each host: - - .. code-block:: console - - $ echo my-secret-password-no-dont-use-this-one \ - | passwd --stdin hacluster - - .. note:: - - Since the cluster is a single administrative domain, it is - acceptable to use the same password on all nodes. - -#. Use that password to authenticate to the nodes that will - make up the cluster: - - .. code-block:: console - - $ pcs cluster auth controller1 controller2 controller3 \ - -u hacluster -p my-secret-password-no-dont-use-this-one --force - - .. note:: - - The ``-p`` option is used to give the password on command - line and makes it easier to script. - -#. Create and name the cluster. Then, start it and enable all components to - auto-start at boot time: - - .. code-block:: console - - $ pcs cluster setup --force --name my-first-openstack-cluster \ - controller1 controller2 controller3 - $ pcs cluster start --all - $ pcs cluster enable --all - -.. note :: - - In Red Hat Enterprise Linux or CentOS environments, this is a recommended - path to perform configuration. For more information, see the `RHEL docs - `_. - -Set up the cluster with `crmsh` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -After installing the Corosync package, you must create -the :file:`/etc/corosync/corosync.conf` configuration file. - -.. note:: - - For Ubuntu, you should also enable the Corosync service in the - ``/etc/default/corosync`` configuration file. - -Corosync can be configured to work with either multicast or unicast IP -addresses or to use the votequorum library. - -- :ref:`corosync-multicast` -- :ref:`corosync-unicast` -- :ref:`corosync-votequorum` - -.. _corosync-multicast: - -Set up Corosync with multicast ------------------------------- - -Most distributions ship an example configuration file -(:file:`corosync.conf.example`) as part of the documentation bundled with -the Corosync package. An example Corosync configuration file is shown below: - -**Example Corosync configuration file for multicast (``corosync.conf``)** - -.. code-block:: none - - totem { - version: 2 - - # Time (in ms) to wait for a token (1) - token: 10000 - - # How many token retransmits before forming a new - # configuration - token_retransmits_before_loss_const: 10 - - # Turn off the virtual synchrony filter - vsftype: none - - # Enable encryption (2) - secauth: on - - # How many threads to use for encryption/decryption - threads: 0 - - # This specifies the redundant ring protocol, which may be - # none, active, or passive. (3) - rrp_mode: active - - # The following is a two-ring multicast configuration. (4) - interface { - ringnumber: 0 - bindnetaddr: 10.0.0.0 - mcastaddr: 239.255.42.1 - mcastport: 5405 - } - interface { - ringnumber: 1 - bindnetaddr: 10.0.42.0 - mcastaddr: 239.255.42.2 - mcastport: 5405 - } - } - - amf { - mode: disabled - } - - service { - # Load the Pacemaker Cluster Resource Manager (5) - ver: 1 - name: pacemaker - } - - aisexec { - user: root - group: root - } - - logging { - fileline: off - to_stderr: yes - to_logfile: no - to_syslog: yes - syslog_facility: daemon - debug: off - timestamp: on - logger_subsys { - subsys: AMF - debug: off - tags: enter|leave|trace1|trace2|trace3|trace4|trace6 - }} - -Note the following: - -- The ``token`` value specifies the time, in milliseconds, - during which the Corosync token is expected - to be transmitted around the ring. - When this timeout expires, the token is declared lost, - and after ``token_retransmits_before_loss_const lost`` tokens, - the non-responding processor (cluster node) is declared dead. - ``token × token_retransmits_before_loss_const`` - is the maximum time a node is allowed to not respond to cluster messages - before being considered dead. - The default for token is 1000 milliseconds (1 second), - with 4 allowed retransmits. - These defaults are intended to minimize failover times, - but can cause frequent false alarms and unintended failovers - in case of short network interruptions. The values used here are safer, - albeit with slightly extended failover times. - -- With ``secauth`` enabled, - Corosync nodes mutually authenticates using a 128-byte shared secret - stored in the :file:`/etc/corosync/authkey` file. - This can be generated with the :command:`corosync-keygen` utility. - Cluster communications are encrypted when using ``secauth``. - -- In Corosync, configurations use redundant networking - (with more than one interface). This means you must select a Redundant - Ring Protocol (RRP) mode other than none. We recommend ``active`` as - the RRP mode. - - Note the following about the recommended interface configuration: - - - Each configured interface must have a unique ``ringnumber``, - starting with 0. - - - The ``bindnetaddr`` is the network address of the interfaces to bind to. - The example uses two network addresses of /24 IPv4 subnets. - - - Multicast groups (``mcastaddr``) must not be reused - across cluster boundaries. No two distinct clusters - should ever use the same multicast group. - Be sure to select multicast addresses compliant with - `RFC 2365, "Administratively Scoped IP Multicast" - `_. - - - For firewall configurations, Corosync communicates over UDP only, - and uses ``mcastport`` (for receives) and ``mcastport - 1`` (for sends). - -- The service declaration for the Pacemaker service - may be placed in the :file:`corosync.conf` file directly - or in its own separate file, :file:`/etc/corosync/service.d/pacemaker`. - - .. note:: - - If you are using Corosync version 2 on Ubuntu 14.04, - remove or comment out lines under the service stanza. - These stanzas enable Pacemaker to start up. Another potential - problem is the boot and shutdown order of Corosync and - Pacemaker. To force Pacemaker to start after Corosync and - stop before Corosync, fix the start and kill symlinks manually: - - .. code-block:: console - - # update-rc.d pacemaker start 20 2 3 4 5 . stop 00 0 1 6 . - - The Pacemaker service also requires an additional - configuration file ``/etc/corosync/uidgid.d/pacemaker`` - to be created with the following content: - - .. code-block:: none - - uidgid { - uid: hacluster - gid: haclient - } - -- Once created, synchronize the :file:`corosync.conf` file - (and the :file:`authkey` file if the secauth option is enabled) - across all cluster nodes. - -.. _corosync-unicast: - -Set up Corosync with unicast ----------------------------- - -For environments that do not support multicast, Corosync should be configured -for unicast. An example fragment of the :file:`corosync.conf` file -for unicastis is shown below: - -**Corosync configuration file fragment for unicast (``corosync.conf``)** - -.. code-block:: none - - totem { - #... - interface { - ringnumber: 0 - bindnetaddr: 10.0.0.0 - broadcast: yes (1) - mcastport: 5405 - } - interface { - ringnumber: 1 - bindnetaddr: 10.0.42.0 - broadcast: yes - mcastport: 5405 - } - transport: udpu (2) - } - - nodelist { (3) - node { - ring0_addr: 10.0.0.12 - ring1_addr: 10.0.42.12 - nodeid: 1 - } - node { - ring0_addr: 10.0.0.13 - ring1_addr: 10.0.42.13 - nodeid: 2 - } - node { - ring0_addr: 10.0.0.14 - ring1_addr: 10.0.42.14 - nodeid: 3 - } - } - #... - -Note the following: - -- If the ``broadcast`` parameter is set to ``yes``, the broadcast address is - used for communication. If this option is set, the ``mcastaddr`` parameter - should not be set. - -- The ``transport`` directive controls the transport mechanism. - To avoid the use of multicast entirely, specify the ``udpu`` unicast - transport parameter. This requires specifying the list of members in the - ``nodelist`` directive. This potentially makes up the membership before - deployment. The default is ``udp``. The transport type can also be set to - ``udpu`` or ``iba``. - -- Within the ``nodelist`` directive, it is possible to specify specific - information about the nodes in the cluster. The directive can contain only - the node sub-directive, which specifies every node that should be a member - of the membership, and where non-default options are needed. Every node must - have at least the ``ring0_addr`` field filled. - - .. note:: - - For UDPU, every node that should be a member of the membership must be specified. - - Possible options are: - - - ``ring{X}_addr`` specifies the IP address of one of the nodes. - ``{X}`` is the ring number. - - - ``nodeid`` is optional when using IPv4 and required when using IPv6. - This is a 32-bit value specifying the node identifier delivered to the - cluster membership service. If this is not specified with IPv4, - the node ID is determined from the 32-bit IP address of the system to which - the system is bound with ring identifier of 0. The node identifier value of - zero is reserved and should not be used. - - -.. _corosync-votequorum: - -Set up Corosync with votequorum library ---------------------------------------- - -The votequorum library is part of the Corosync project. It provides an -interface to the vote-based quorum service and it must be explicitly enabled -in the Corosync configuration file. The main role of votequorum library is to -avoid split-brain situations, but it also provides a mechanism to: - -- Query the quorum status - -- List the nodes known to the quorum service - -- Receive notifications of quorum state changes - -- Change the number of votes assigned to a node - -- Change the number of expected votes for a cluster to be quorate - -- Connect an additional quorum device to allow small clusters remain quorate - during node outages - -The votequorum library has been created to replace and eliminate ``qdisk``, the -disk-based quorum daemon for CMAN, from advanced cluster configurations. - -A sample votequorum service configuration in the :file:`corosync.conf` file is: - -.. code-block:: none - - quorum { - provider: corosync_votequorum (1) - expected_votes: 7 (2) - wait_for_all: 1 (3) - last_man_standing: 1 (4) - last_man_standing_window: 10000 (5) - } - -Note the following: - -- Specifying ``corosync_votequorum`` enables the votequorum library. - This is the only required option. - -- The cluster is fully operational with ``expected_votes`` set to 7 nodes - (each node has 1 vote), quorum: 4. If a list of nodes is specified as - ``nodelist``, the ``expected_votes`` value is ignored. - -- When you start up a cluster (all nodes down) and set ``wait_for_all`` to 1, - the cluster quorum is held until all nodes are online and have joined the - cluster for the first time. This parameter is new in Corosync 2.0. - -- Setting ``last_man_standing`` to 1 enables the Last Man Standing (LMS) - feature. By default, it is disabled (set to 0). - If a cluster is on the quorum edge (``expected_votes:`` set to 7; - ``online nodes:`` set to 4) for longer than the time specified - for the ``last_man_standing_window`` parameter, the cluster can recalculate - quorum and continue operating even if the next node will be lost. - This logic is repeated until the number of online nodes in the cluster - reaches 2. In order to allow the cluster to step down from 2 members to only - 1, the ``auto_tie_breaker`` parameter needs to be set. - We do not recommended this for production environments. - -- ``last_man_standing_window`` specifies the time, in milliseconds, - required to recalculate quorum after one or more hosts - have been lost from the cluster. To perform a new quorum recalculation, - the cluster must have quorum for at least the interval - specified for ``last_man_standing_window``. The default is 10000ms. - - -.. _pacemaker-corosync-start: - -Start Corosync --------------- - -Corosync is started as a regular system service. Depending on your -distribution, it may ship with an LSB init script, an upstart job, or -a Systemd unit file. - -- Start ``corosync`` with the LSB init script: - - .. code-block:: console - - # /etc/init.d/corosync start - - Alternatively: - - .. code-block:: console - - # service corosync start - -- Start ``corosync`` with upstart: - - .. code-block:: console - - # start corosync - -- Start ``corosync`` with systemd unit file: - - .. code-block:: console - - # systemctl start corosync - -You can now check the ``corosync`` connectivity with one of these tools. - -Use the :command:`corosync-cfgtool` utility with the ``-s`` option -to get a summary of the health of the communication rings: - -.. code-block:: console - - # corosync-cfgtool -s - Printing ring status. - Local node ID 435324542 - RING ID 0 - id = 10.0.0.82 - status = ring 0 active with no faults - RING ID 1 - id = 10.0.42.100 - status = ring 1 active with no faults - -Use the :command:`corosync-objctl` utility to dump the Corosync cluster -member list: - -.. note:: - - If you are using Corosync version 2, use the :command:`corosync-cmapctl` - utility instead of :command:`corosync-objctl`; it is a direct replacement. - -.. code-block:: console - - # corosync-objctl runtime.totem.pg.mrp.srp.members - runtime.totem.pg.mrp.srp.435324542.ip=r(0) ip(10.0.0.82) r(1) ip(10.0.42.100) - runtime.totem.pg.mrp.srp.435324542.join_count=1 - runtime.totem.pg.mrp.srp.435324542.status=joined - runtime.totem.pg.mrp.srp.983895584.ip=r(0) ip(10.0.0.87) r(1) ip(10.0.42.254) - runtime.totem.pg.mrp.srp.983895584.join_count=1 - runtime.totem.pg.mrp.srp.983895584.status=joined - -You should see a ``status=joined`` entry for each of your constituent -cluster nodes. - -.. _pacemaker-start: - -Start Pacemaker ---------------- - -After the ``corosync`` service have been started and you have verified that the -cluster is communicating properly, you can start :command:`pacemakerd`, the -Pacemaker master control process. Choose one from the following four ways to -start it: - -#. Start ``pacemaker`` with the LSB init script: - - .. code-block:: console - - # /etc/init.d/pacemaker start - - Alternatively: - - .. code-block:: console - - # service pacemaker start - -#. Start ``pacemaker`` with upstart: - - .. code-block:: console - - # start pacemaker - -#. Start ``pacemaker`` with the systemd unit file: - - .. code-block:: console - - # systemctl start pacemaker - -After the ``pacemaker`` service has started, Pacemaker creates a default empty -cluster configuration with no resources. Use the :command:`crm_mon` utility to -observe the status of ``pacemaker``: - -.. code-block:: console - - # crm_mon -1 - Last updated: Sun Oct 7 21:07:52 2012 - Last change: Sun Oct 7 20:46:00 2012 via cibadmin on controller2 - Stack: openais - Current DC: controller2 - partition with quorum - Version: 1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f50c - 3 Nodes configured, 3 expected votes - 0 Resources configured. - - - Online: [ controller3 controller2 controller1 ] - ... - -.. _pacemaker-cluster-properties: - -Set basic cluster properties -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -After you set up your Pacemaker cluster, set a few basic cluster properties: - -- ``crmsh`` - - .. code-block:: console - - $ crm configure property pe-warn-series-max="1000" \ - pe-input-series-max="1000" \ - pe-error-series-max="1000" \ - cluster-recheck-interval="5min" - -- ``pcs`` - - .. code-block:: console - - $ pcs property set pe-warn-series-max=1000 \ - pe-input-series-max=1000 \ - pe-error-series-max=1000 \ - cluster-recheck-interval=5min - -Note the following: - -- Setting the ``pe-warn-series-max``, ``pe-input-series-max``, - and ``pe-error-series-max`` parameters to 1000 - instructs Pacemaker to keep a longer history of the inputs processed - and errors and warnings generated by its Policy Engine. - This history is useful if you need to troubleshoot the cluster. - -- Pacemaker uses an event-driven approach to cluster state processing. - The ``cluster-recheck-interval`` parameter (which defaults to 15 minutes) - defines the interval at which certain Pacemaker actions occur. - It is usually prudent to reduce this to a shorter interval, - such as 5 or 3 minutes. - -By default, STONITH is enabled in Pacemaker, but STONITH mechanisms (to -shutdown a node via IPMI or ssh) are not configured. In this case Pacemaker -will refuse to start any resources. -For production cluster it is recommended to configure appropriate STONITH -mechanisms. But for demo or testing purposes STONITH can be disabled completely -as follows: - -- ``crmsh`` - - .. code-block:: console - - $ crm configure property stonith-enabled=false - -- ``pcs`` - - .. code-block:: console - - $ pcs property set stonith-enabled=false - -After you make these changes, commit the updated configuration. diff --git a/doc/ha-guide/source/controller-ha-telemetry.rst b/doc/ha-guide/source/controller-ha-telemetry.rst deleted file mode 100644 index 8347ffee24..0000000000 --- a/doc/ha-guide/source/controller-ha-telemetry.rst +++ /dev/null @@ -1,80 +0,0 @@ -========================== -Highly available Telemetry -========================== - -The `Telemetry service -`_ -provides a data collection service and an alarming service. - -Telemetry polling agent -~~~~~~~~~~~~~~~~~~~~~~~ - -The Telemetry polling agent can be configured to partition its polling -workload between multiple agents. This enables high availability (HA). - -Both the central and the compute agent can run in an HA deployment. -This means that multiple instances of these services can run in -parallel with workload partitioning among these running instances. - -The `Tooz `_ library provides -the coordination within the groups of service instances. -It provides an API above several back ends that can be used for building -distributed applications. - -Tooz supports -`various drivers `_ -including the following back end solutions: - -* `Zookeeper `_: - Recommended solution by the Tooz project. - -* `Redis `_: - Recommended solution by the Tooz project. - -* `Memcached `_: - Recommended for testing. - -You must configure a supported Tooz driver for the HA deployment of -the Telemetry services. - -For information about the required configuration options -to set in the :file:`ceilometer.conf`, see the `coordination section -`_ -in the OpenStack Configuration Reference. - -.. note:: - - Only one instance for the central and compute agent service(s) is able - to run and function correctly if the ``backend_url`` option is not set. - -The availability check of the instances is provided by heartbeat messages. -When the connection with an instance is lost, the workload will be -reassigned within the remaining instances in the next polling cycle. - -.. note:: - - Memcached uses a timeout value, which should always be set to - a value that is higher than the heartbeat value set for Telemetry. - -For backward compatibility and supporting existing deployments, the central -agent configuration supports using different configuration files. This is for -groups of service instances that are running in parallel. -For enabling this configuration, set a value for the -``partitioning_group_prefix`` option in the -`polling section `_ -in the OpenStack Configuration Reference. - -.. warning:: - - For each sub-group of the central agent pool with the same - ``partitioning_group_prefix``, a disjoint subset of meters must be polled - to avoid samples being missing or duplicated. The list of meters to poll - can be set in the :file:`/etc/ceilometer/pipeline.yaml` configuration file. - For more information about pipelines see the `Data processing and pipelines - `_ - section. - -To enable the compute agent to run multiple instances simultaneously with -workload partitioning, the ``workload_partitioning`` option must be set to -``True`` under the `compute section `_ -in the :file:`ceilometer.conf` configuration file. diff --git a/doc/ha-guide/source/controller-ha-vip.rst b/doc/ha-guide/source/controller-ha-vip.rst deleted file mode 100644 index 15104a7140..0000000000 --- a/doc/ha-guide/source/controller-ha-vip.rst +++ /dev/null @@ -1,23 +0,0 @@ -================= -Configure the VIP -================= - -You must select and assign a virtual IP address (VIP) that can freely float -between cluster nodes. - -This configuration creates ``vip``, a virtual IP address for use by the -API node (``10.0.0.11``). - -For ``crmsh``: - -.. code-block:: console - - # crm configure primitive vip ocf:heartbeat:IPaddr2 \ - params ip="10.0.0.11" cidr_netmask="24" op monitor interval="30s" - -For ``pcs``: - -.. code-block:: console - - # pcs resource create vip ocf:heartbeat:IPaddr2 \ - ip="10.0.0.11" cidr_netmask="24" op monitor interval="30s" diff --git a/doc/ha-guide/source/controller-ha.rst b/doc/ha-guide/source/controller-ha.rst deleted file mode 100644 index ff99bc1dfa..0000000000 --- a/doc/ha-guide/source/controller-ha.rst +++ /dev/null @@ -1,73 +0,0 @@ -========================== -Configuring the controller -========================== - -The cloud controller runs on the management network and must talk to -all other services. - -.. toctree:: - :maxdepth: 2 - - intro-ha-arch-pacemaker.rst - controller-ha-pacemaker.rst - controller-ha-vip.rst - controller-ha-haproxy.rst - controller-ha-memcached.rst - controller-ha-identity.rst - controller-ha-telemetry.rst - -Overview of highly available controllers -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack is a set of services exposed to the end users -as HTTP(s) APIs. Additionally, for your own internal usage, OpenStack -requires an SQL database server and AMQP broker. The physical servers, -where all the components are running, are called controllers. -This modular OpenStack architecture allows you to duplicate all the -components and run them on different controllers. -By making all the components redundant, it is possible to make -OpenStack highly available. - -In general, we can divide all the OpenStack components into three categories: - -- OpenStack APIs: APIs that are HTTP(s) stateless services written in python, - easy to duplicate and mostly easy to load balance. - -- The SQL relational database server provides stateful type consumed by other - components. Supported databases are MySQL, MariaDB, and PostgreSQL. - Making the SQL database redundant is complex. - -- :term:`Advanced Message Queuing Protocol (AMQP)` provides OpenStack - internal stateful communication service. - -Common deployment architectures -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -We recommend two primary architectures for making OpenStack highly available. - -The architectures differ in the sets of services managed by the -cluster. - -Both use a cluster manager, such as Pacemaker or Veritas, to -orchestrate the actions of the various services across a set of -machines. Because we are focused on FOSS, we refer to these as -Pacemaker architectures. - -Traditionally, Pacemaker has been positioned as an all-encompassing -solution. However, as OpenStack services have matured, they are -increasingly able to run in an active/active configuration and -gracefully tolerate the disappearance of the APIs on which they -depend. - -With this in mind, some vendors are restricting Pacemaker's use to -services that must operate in an active/passive mode (such as -``cinder-volume``), those with multiple states (for example, Galera), and -those with complex bootstrapping procedures (such as RabbitMQ). - -The majority of services, needing no real orchestration, are handled -by systemd on each node. This approach avoids the need to coordinate -service upgrades or location changes with the cluster and has the -added advantage of more easily scaling beyond Corosync's 16 node -limit. However, it will generally require the addition of an -enterprise monitoring solution such as Nagios or Sensu for those -wanting centralized failure reporting. diff --git a/doc/ha-guide/source/environment-hardware.rst b/doc/ha-guide/source/environment-hardware.rst deleted file mode 100644 index 23a993f22e..0000000000 --- a/doc/ha-guide/source/environment-hardware.rst +++ /dev/null @@ -1,61 +0,0 @@ -============================================= -Hardware considerations for high availability -============================================= - -When you use high availability, consider the hardware requirements needed -for your application. - -Hardware setup -~~~~~~~~~~~~~~ - -The following are the standard hardware requirements: - -- Provider networks: See the *Overview -> Networking Option 1: Provider - networks* section of the - `Install Guides `_ - depending on your distribution. -- Self-service networks: See the *Overview -> Networking Option 2: - Self-service networks* section of the - `Install Guides `_ - depending on your distribution. - -OpenStack does not require a significant amount of resources and the following -minimum requirements should support a proof-of-concept high availability -environment with core services and several instances: - -+-------------------+------------------+----------+-----------+------+ -| Node type | Processor Cores | Memory | Storage | NIC | -+===================+==================+==========+===========+======+ -| controller node | 4 | 12 GB | 120 GB | 2 | -+-------------------+------------------+----------+-----------+------+ -| compute node | 8+ | 12+ GB | 120+ GB | 2 | -+-------------------+------------------+----------+-----------+------+ - -We recommended that the maximum latency between any two controller -nodes is 2 milliseconds. Although the cluster software can be tuned to -operate at higher latencies, some vendors insist on this value before -agreeing to support the installation. - -You can use the `ping` command to find the latency between two servers. - -Virtualized hardware -~~~~~~~~~~~~~~~~~~~~ - -For demonstrations and studying, you can set up a test environment on virtual -machines (VMs). This has the following benefits: - -- One physical server can support multiple nodes, - each of which supports almost any number of network interfaces. - -- You can take periodic snap shots throughout the installation process - and roll back to a working configuration in the event of a problem. - -However, running an OpenStack environment on VMs degrades the performance of -your instances, particularly if your hypervisor or processor lacks -support for hardware acceleration of nested VMs. - -.. note:: - - When installing highly available OpenStack on VMs, - be sure that your hypervisor permits promiscuous mode - and disables MAC address filtering on the external network. diff --git a/doc/ha-guide/source/environment-memcached.rst b/doc/ha-guide/source/environment-memcached.rst deleted file mode 100644 index cdf01a6ce1..0000000000 --- a/doc/ha-guide/source/environment-memcached.rst +++ /dev/null @@ -1,32 +0,0 @@ -==================== -Installing Memcached -==================== - -Most OpenStack services can use Memcached to store ephemeral data such as -tokens. Although Memcached does not support typical forms of redundancy such -as clustering, OpenStack services can use almost any number of instances -by configuring multiple hostnames or IP addresses. - -The Memcached client implements hashing to balance objects among the instances. -Failure of an instance only impacts a percentage of the objects, -and the client automatically removes it from the list of instances. - -To install and configure Memcached, read the -`official documentation `_. - -Memory caching is managed by `oslo.cache -`_. -This ensures consistency across all projects when using multiple Memcached -servers. The following is an example configuration with three hosts: - -.. code-block:: ini - - Memcached_servers = controller1:11211,controller2:11211,controller3:11211 - -By default, ``controller1`` handles the caching service. If the host goes down, -``controller2`` or ``controller3`` will complete the service. - -For more information about Memcached installation, see the -*Environment -> Memcached* section in the -`Installation Guides `_ -depending on your distribution. diff --git a/doc/ha-guide/source/environment-ntp.rst b/doc/ha-guide/source/environment-ntp.rst deleted file mode 100644 index 705986941e..0000000000 --- a/doc/ha-guide/source/environment-ntp.rst +++ /dev/null @@ -1,10 +0,0 @@ -============= -Configure NTP -============= - -You must configure NTP to properly synchronize services among nodes. -We recommend that you configure the controller node to reference -more accurate (lower stratum) servers and other nodes to reference -the controller node. For more information, see the -`Installation Guides -`_. diff --git a/doc/ha-guide/source/environment-operatingsystem.rst b/doc/ha-guide/source/environment-operatingsystem.rst deleted file mode 100644 index cada295540..0000000000 --- a/doc/ha-guide/source/environment-operatingsystem.rst +++ /dev/null @@ -1,29 +0,0 @@ -=============================== -Installing the operating system -=============================== - -The first step in setting up your highly available OpenStack cluster -is to install the operating system on each node. -Follow the instructions in the *Environment* section of the -`Installation Guides `_ -depending on your distribution. - -The OpenStack Installation Guides also include a list of -the services that use passwords with important notes about using -them. - -.. note:: - - Before following this guide to configure the highly available - OpenStack cluster, ensure the IP ``10.0.0.11`` and hostname - ``controller`` are not in use. - -This guide uses the following example IP addresses: - -.. code-block:: none - - # controller - 10.0.0.11 controller # virtual IP - 10.0.0.12 controller1 - 10.0.0.13 controller2 - 10.0.0.14 controller3 diff --git a/doc/ha-guide/source/environment.rst b/doc/ha-guide/source/environment.rst deleted file mode 100644 index 1f363afd78..0000000000 --- a/doc/ha-guide/source/environment.rst +++ /dev/null @@ -1,14 +0,0 @@ -================================= -Configuring the basic environment -================================= - -This chapter describes the basic environment for high availability, -such as hardware, operating system, common services. - -.. toctree:: - :maxdepth: 2 - - environment-hardware.rst - environment-operatingsystem.rst - environment-ntp.rst - environment-memcached.rst diff --git a/doc/ha-guide/source/figures/Cluster-deployment-collapsed.png b/doc/ha-guide/source/figures/Cluster-deployment-collapsed.png deleted file mode 100644 index 91feec0bb12272b48bcb47a661e1c78e431a38aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228626 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�WaI%?$NPQmSaUY##LST@vi!`j8y`C zdQyS8M`j#`K<-WuX**^*sYsWa?n|>*NCWh#48n483T6wq0vy#*5OqeGeP7vO__?$| zP89y^a};#hPh&W0ptz=wgB?jc2VI6nP%DeFOvd>2Qq8;?)VAAMVGG$icS~v|5mc{c{Yod(eb7#RQQ1iwB zy}}N53Uw%vrR$!St<^8HYP$RvCy>=_lz(6Izp@ZV7uY7sDhJD#FZ-Qj&bd-%=Y8V`iaGe-)={$aE4v)Y6qR@V+boa@M*RrUsfIdDVQ8j!Pw8q zabH#9!u%-cbB7Q6#CQ9iN<$t=0zul z_xbXJ-x{4381={7XRnUIW0ykU^sz^@A%pMVwCIJadfFow;EM6-n8O*ad|*6h^5%vx zYg@pP;@=DJ*7DevEEwD!PA!SuBR*!(mjMJf=Vhl}|G7PmXo!PvCt1=6-1zJYy9+v~ z@9YYE_Biw&+G&Uu+Q?imF840Zdg@V`dgxc6VLnfe|J;dk_ie9Ac1ba|6z0l_WA{Ly zb@I=5*T~=_TsKU|wgzl(NQL6M@uMNUhgZmT4?ZOe+Oy^KqdqGK*JR63%;XP$?p9eO zbL1iHwwt!+a4_Vl5Z(*rr5Em(x7+gMsDlreQMkOee8j$T;IpsEi|K`uk)JDjLi=qz z%?_k_WOACf$-;s>DI0yf3GZ!7X^YeRUAsm0EP-o@@%PRx#rCK6 zmz!^Yefwj7c+8`wT+#U0i2(K zp%TXM*vBQIs11~C&=_n6dX=gIS#B$PpU}OSq41`M$A!!{6k03qE?gzU##6LQlY_r- zf&Bd^zf)ZLPB?xv1v{9HugcvETOrtSHQSCH(V1<7lO9?(&D-aXcHwacK~oL0EjU3= zIs70u`5TtkZogRWTil^%?>V7TSq+W)P;k?ZGt$lPJuYh}jnOmmY1K!{dEx*iZ6WWEzKmRXVXO%EN+w&2UR0vi5z|u?h*(ulYieg7k9*mB_sSgZfQ71 z4ub-MtP#h_sR-4+{3&@BSI))I9;twi=ik%759kgNU&y34>*gnhlbqG6et4v$wgvndO$8nysS}qphHv1N_~oDC*z9y8qW=@(qo&=cTPt>d)`8odkG?Vs z4CYf`8gs}TxcjE8Fxi<8@S(125U>VM?Ua^@1H5)}Lx^`z6arhI)0WCzudkPHPp*)> zamUNa8BfSl%`K9J)$@ZPz1F|`x-7%F_rb0jAyp^?#sEpyuX#@%X`Crn{zEB3Xu8=v1_e4jt3>!9F#%FcNqgQ`J{=5L1Y;i@vi!ZK`-(B%VsIpiuE<>6>^=U4bH`~i){EzB@v<@M_&+}td$ZFpH4 zr<^IJP<(aAPcM;sqiJ&FxmPID(!Tr^d2k8CwW870$>U3olTqV}rLrVf+Pcf-WC-sf zjdIKV&&onDCSmMCczgBj^7HNj`RxfKuw@o2P@TNO3&arcWMgOj*?84_0Q|wkB@Xl^ z0RIWwtZn%6`_9P@X@fzcz4*>-q&TVASbb@RhVL*YH@N*diq)Q|ll&|;o{3}(On63c zpL5yBVX8Hp{Bwf1*UM|KEs{oTn=C0VlY9zE_z}>XC8KGvIVR$&({AxdNy)gPHx@aa z9iA{?J7nKCA=34E1wHKgHp~%*{8?Bq1h6Dsc=A+B>DF&|xsUN=8Fz7<8$k9=S5*h*R8ZE`)K^&B~rAAMY%u8x8BvU))4`6c(Js zppf3$%5iKcex-8!7mkysZ+Jq3GD@iIaH-Y(G3(@&nJWyR9sICh|{|Z-?N=GyxVP?N%|J++cZ84i#jGL~Z?i(=c3Lx9p;cQe7}uhF2u6 z&6{xix8<1ZcW~GG8<<3~INAoXN63(pS}CkNBo6o75y!{{r^IAK?@HO&zDm};dy6a` z`6C&Id7HG_W99ch%#iz^d`O}x17zYs7sxm$f5T;La_3Ed5Xg}-deR{>w04}7I-!i| zefh*@S>CcjT6)*9GE!88iQVFM@+6{hG;@gU>iyR?V1)-6hKv z)YjhEcHbZVglmf1zRDq(DDzliy0mLLN$%?AQq`W};(d7h5Vp!=f~&el#^cJ!*SfF+ z1rtuGxWpajBGGTl<;&AJ`2w?Uj$HlB2CQsDK^!JYx$@nzbc1Y~TCL~a8D#Yf_sOhH zYjq2IUU8m0|K@5r?AXEdQuEehk4t+Kj?rc3;=E#!o`a`Cx<0%P&b@TFN)i@OnCzot z5P%=P%-zOQC~E-Cw;-8SL%?suu+Fc6v_ETDd?rJD=fN+Lu9YBo1`zn9A+WtX8b@pl zz~EKG(A(76*^6CI*pZ5bHzPXmQex!BURF~(5-k?QY}O|@s(EjHJDTMCBfB_b+1tmo zH~Xr(Z_TrB(BNwqK>&Cn8mK!-^(XD3Y_==eBaX0D;b)(HwqLf8FK<_^wmlM7;H}<# z>RB0f7yQSW1^BBU{OxUBiqTwD9YkNf=SgXt{CTjrg>w8EQ{|yM=Exa)k4LPH^5CmW zabGf)t(*x#L#*FQ{_gx&WNpPrnSNxAjI61W3Me1&rmK0QbaeGfRza1qmN zbs$}`i#Etw9CWS3LDw#UHF>Rfw7x@wTVM$lsH5CV2^b>_Pq9nr~!aimV`j62WT`ega z0n3UuK`R(~^+P>g znx6ZvJ@(6T@koP5(hwqRW;`NKEO-ZsvN*aphnOA)?8p^8^D3-)-_dNQb zU%mOnjPKuq8Pw^3vKrr)-BGxm@lU2y}Z-14OJoj=L!wrnZQQAu1fOUB3nqb6dz`zkGSwEhm6y;+LOh&$ptR0M9Jgc-n`x0TF zu}qkHxXgI^J(S4_dpeOv+PX8~r&UGS**lmf`v5U!cEue!1G}wZl5ZOJGjVjl zKQ9MX<-!)hc4=H6h`yOS_z*e!oI_;cL*JGsHZ<#*X&!6IE}bTaPA0v_Vl-Bx@sL<* ztsHgM|3F#6Y`O8Tzr!hs74q;ue+NPCE3y}qycG_gDqqCUo0fI2%0vJDgUnciTS*|) zAN~2uWdAZGj`X;TKNc&KBhR=HtGn;WjW_-p0%yLAJK#Gq9Q2=glI4sQ>?P-3x|b}P zy;xV%wJZ?GQ&R`a2`3NsStY$U%A$F7xDf!`#9#ZR+!XpYG^|eoJui|2PrgJB^dWmT z%G}p(k=vep1uN81sX6dW`Nrp`z?WrX&V_Q)1wWOk@BK}#e)ws)#iSG4$LYiJSM2`< z`Of|g^1wA;lQrFBh)E-fCxbPEZ4Q6>@mP`Jj$t*3_B{=b2XRQc=KG|gnBQ>sN&6f= zI6iivkS=55<8zmMNe*7{uDmsGlWa^WlG+gi<-k30MjhT!wB@UQ{U|0_pk)TaeP&J} z+5j}bhni&mrd~Oqm~F069=PFg>5As-`Sctp#p_f$m`U@9Z5`8GSKhf@wvUqnMZ`8~& z8BTlG`qfg`z}r`BS08B=S!3T9@u?r4M^kd9j#jGR89*R_fI%P)t4z)4Ic^!jhI;Kt z9EZ{4P4G$vS0aqs@ZgG0YV0+6aPIMP&e&op8hf-HJ*ZR;hDPEI^In$MTXEqJwo|4$ z#t_oGCKw9k$(cugQT8w9sN5xs7QQQwFKCp*jyXmKfdP+U1*->|>TxdEF(V)vIG>uH z9RkBxECsb#A#jBVVHKdaD=e`{hMa!HSu&+)>uHjiqW1g6%Wxc_cA#WdA0$6Ia;f}d zQAo}@>qKk-#J$t6KO-+;#V@tDS|(Jx)u(8Ky!+OC3FTn&AqyIC>lQ-^Te~cWU?G(w zv_9dsjkrdsL06OWDk~(vdVr)AT3vD3y<}k5fC{K&An<1^o*LCX60jvfi^D$!`%n9! z;UJ;J7lfGg(SLGMG;BmkjFM-VD4;-5B$)6vWunrtZ8DQ*jAeeYB9*L%w38>dXg zRUb7nIyE9Qu@cV--{u9slYfTKm*e)|R|=rRam2pU#Pu?%TkvnW|LxVni%VmxZXFN{Ps* zF{X$ZLc01gnqz&D6Dq(T+&xZE0sPxU3;mY9 z_FY*3VU^1E*4MYo>J=^0h$BSY+CHEr7uwsQfE33fvLL~S>u!*L+ykK%n&UU&j5#&$ z*R5(*od6}!^gf^#%HkljW@XQnNALQo{IhL{467UC8v9o*Yf;Vbyl0)7<0~@O%d_{NFVCRd)CgaX{8&cb5K!#2 z%k!T4^|+m&ZYA8IzaSU8Kd88l$1&K(yTcJEwBv+92#Wc#rFs4z<;oXxB)4R|l!cn1 zYZ0r%;f1mStI53GpcUog+5hw*6xj-6}WT zd9$ot)h3GytKpL)q+y9V>vR6K`<8Cbc#bO0=^q0Rbht0iP9!Nb_P8$u$UUzDtmByf? z_Jq@9U+k8&CGsFOj5Rh!b7GzjllKzQo^9+Ub_m?XwzLuM`}3*c@_ zXOrunR99I0z-pV|*EfFfwfjJzKi&iHp-*~F9-ccTb+ksqHu{ecj*j?m|MqeD&cOAX zlMhNPpe6flx4kt@?)>*VIEF^vkBfOuz&A3bea{V8ak^#{aJzF1A_frnkAwh}*a@{k z?dKT)?L*2`kYPt3#~`b3SABkwC~!>Eu#h(N4?@?=FTEnCj6ELfZdeUF|9HgMAa_3Y z2DY7J>o{ieM^tfiHUdIoQ9R~26W+sXhz#@5yzoxJ znY{FDTqjgifFHN_F(4RIXrm3K^h)ulV@!BQn%5xB_qLKI3EJW}Zk1b#&z0%pDrMX; z=gO~-K{DMNW#-K1#sO^V}R+w4q)F_q4(?DFzdm55`J0AS0e% zfhU~wNBpK1;@s>hGO@}p&v<}z${j89=ap*)gL!XTEKlBdfjrz(A{$mV$l^t-R0I99 zuVO_QLLKimUx(}ITCmH9+RkerDCXcAvCOR1^1=h(lDk_5OBLu(BsClNe%Iq_v31at z9+5WWlam{k`>s1np2sy}J>jU-t!~Br^X)3+4u%%=o{m}a;N2JK^>IrUY*Im!f^8}U zWV-?dv|%T~&$oS|$K%Fhl!CpTjo`!!ai`#XKxhR{Q-NrQvjx7q$0S-dY8$2i{>hRcuXM+*U0IF zCi0{3&A7ZHp8b}$4e)MvDh;H*0?yas3(ULK9~=L@<7&w$1}3gu6Wdf69Hsg zd0w4L3OP~2_{@iGkrj@h{Dcq7MJ0>*xH>L9qZ@7Dd0DZ(LzQaMofA$>KZ|V^?ShjM zIe8hl1`sRvNLR1c!(;>N%Je+Us4F2Gx)e&wa-_WtgBwg3lLmx`hr54o4uAGF_60BG zGp?b|^+Nq%?{n^WGcDo_Fa7EG?cCt>0r8{q;*)R4BOBLaf~iYtFu|3D2?pM++uqtC zZ!d4ccG?!){oa7|F~L$=g{#>HLqIQ4VV>ozf9Eav&0EbSq$!%J@Og5~VFCDELHIMQ^ zi)B{DV69)%`c>$=^KkWJgJj_vxiTDuD6Y&`L7-vrJo)jQ8Is+xTG~MeR;^eeQRGF9 z`h^t(fm@6p*fF5}W2eH;@IV*`X7_?Xf4c*o&?kjZK3#jfI_P&YkEVKUNG#OwO{&3I zeN8)#mxi%87RHWL^1Qa=h+!>8oRIa27L{)7#~nThI#V_?>*vmrHMmB)5EFYvh1h|E zTZmYU59HA-yUkJxJ_88s-VjIwvpx%*dOtt>=-|)J0>+07i!p-e)aYPjOtgbjXosEW zxoK!8laUTZRFAJbOimlbZI>d=Z#*DREUm+K@^r~5s}{FI6^tL1xq%tdnKv*rO)KP` zbsO+*k#R>~Bonw-k0c0#EeC!w2XTXZbo)J4ZdDPK>)0WjS5LtTUKUn_Xqe{PYmp|- z;%}ZNZh{`QS8$*uFdHLc3>Dj7Uz zxKs}qsNXtS!ZeT&+p?C8WuzN^9H^377QXs{afd*2yKzW*7aJ(Fd-0jqesDHg+MQ5B z1C?rK2zkOR0VRAWz!*X;?hOG+nPB>R9OL91W&|P_=qW%^P|v{5bizN1)pcI+mhN`o z;7U7H6j#~Xq^qP{(WM|qVTcOma?v&_tMg@j-4a>8xFxI1jAq6(Z&4NGA=<^P6UYpke!Hz;M1wv|} zC*-Jrjo{19&Cqb|nYMkN!aiX}!!qs+__04K?T+IG2{V26C%QQ{jr~lm=B;4>I;H1S z(8ksFJP4``rvf?3sr?9eXPs5cKI*IKK#u2ifn3Svq({UFsZ5$T1TZ{tOCg%+<^T>| zoz!rSG?5<5OJSaA7%2j#di}$Y+e#8NH2c%-M zh!X)+e8{v2e=V!lH1S|MY$v{a>FEVh2!WiF6oe0(EGGlf(B5(Z4~FyOQW+HDv2AF+ zfD`MN3!$BL0AFqi^#ZCZ*?S?*;9F#W%;XDU%Ha2C*rZCC{ z!95MgW4JVK^(WsD?*jl0vPIRj{2Y091b&Pkm;eI(1p=fSaUq_xgAJYkAR_$hYY-Ow zliS)8eo>im!!PB!XBJ3DXB);-=nuh<3W9Y-AN@#^Byn+uX_H8Wpwjx>Uwq3uC*F}Y z^6;$>%91b?qSg-4D}D5RO~TcMvfdKWwuZ)L-sj9_I$GqGyPVU%*q4h$}_WNL(V7}r)Mtdo+g#UM@inM zl~ROzWQRfsKxR@tpi*)-)hT0=%2jPmBU?t}s-T=#u*IFhU^LCMww`7_(o8AbR}QGO z)!hBhxLigY50y9=+^Lp7glnVLE_qe%T(CwKEqX&%k333h!2}%f%|FY)IWNd8+yymY z=vX;m#9-O*=DqTJ%=*vVG*J#JPLkjs%Pb!v`{91!x4>+u z0FQ!t29WUnAowHv^H!_=^NbG+1UP;qzBDA=)TN+yZ8PTQ>q>VL|7>i#EDKeDu_CjM zv+5Am$N=i348rI@g3%$pVw9YC%7i3kR7?R{j8{A_mz?`^SqMQfKM#98%ByAYKnm}* zx`m$UF;6WC+b>5N7=F{nw>BMf#@Fs?rtbHvyPkjTvIth{ZUaoRtu1mg3b2ENorfm0 zV6<--J+ROB5e5;L!deLgn`{U>Oo&1awYpP~VY9GyVtCPQ&4^Q2LXFpUXF7#1hT~OT zTMAPqoMq)8O$dP$u5uxi*I)vm7{X%@gm4N@=@70d5K<_&$poylLOA3qs@?G&!c}4v z_;@DS?(XKwE(Jcikr|1Xo5C1`!m<=xHwWR8EA@I;JPV12MBz~dJLDOqpoo78{pDN* zMp-DZWnq<`s6mg-0@MO1tr9F_m${Bm%7PBYw%S zAq@WLMl72j<3S+Pc)T)?`Xq2f2?6M@MiVrlO+la!3iVhaM_pB0JOXN(^kW`)6Ndau z#Ze?()$Yv%925C7PvVRj!HPVg^bo>1ukB-9n35Wn4HkxFSvl##aw_RT26SV5L`OJ$ zqwv0d8lQel&%FT-v?F6kQ*nnoCkV98tTc0SnX~+gCxm4lJU+m@IhXCzSHT-m7?y5a zsi(lti3m6Y_AECinm-u+iZ9+&fQo2+SRux@m!_o-bmN!(_X+F$wWMNeuN1l{Uqd*E{)He&XT*@(l3gMhWb0*HWr@Ffv zS?6r*v?{9}hGP-cy7Hb0A>U{|;0chVW44bg_i5lv3NYy(1JFpvQ@Qhwj6TX?lL(cl zC#TJU4^BK}>h z^!SF}P0&db%b{RpM!Tb0*|Bx7(;j4uM1I-c^3Cx)7ei$hMe^UDzetY5xzz7Hy-ZTO z=gBJ#`^i!Ay8Lq;2l$X2dggcJoYB}mk1J!sII5OebBO%p$A`$<58oy4whoeUV7w}a zPn61*h4QBxpOQ&uoiCHI0(R87mrKRSw`H$G_tLmgjPOUE`@b^jojc_F&#pkP$F@iC z7bt}6ed>4Q`aSQIOP-x6bN3r0V<9Xg(tHwWUJy^SH2wSX=S}a)ie6kphbm{{oL-Gn zN@w-Qz0Rd4OGeK>oarkWBxA61e#64Y<@XEA_ZwX^N=aviqc75BU_>jwuzj=BR_+=CFJU>SknOH_FL zage3)Zn_%EZ{XhJ+u8;MS_rR25F!g>S?WjGLvam(i|8=i7-A?SQxKzo&vZ<1WPdQh zm%9L!qtbLD3_EO**y#~1#&zRkTEX-)_;U#+^fgE*kz!Laep z%Br~pnZIvC$?VnzHr}Dr4n+>VAS%8xqTg!U4Y0}Jer@~LO3Ld)|1p4DW@a#M233%eq^?@yTH24`+vHs=J z#yG7D-;&uG1+u&iJFqxmmsu`FIPyY$MeIi$^VuKcZ`$$8-s1rI;%6qr7p{DoUCW-4 zi@xw9S%SEQIFibvjs@V|GC&WM?`2**< zK&Slz-Pw7~(93mjv#K9EJj2AWB{kgEAuVg_WYe-$m{ISRqS|UH#9go{S=fHQZl%n7 zZ>c6#Hfop@R1MHAc}>tL+puUU?otm+eiaqHRZ2m2iKJmwecqzwl3fg~wzwlc46XGY z&<@WnZ>1xLN?v)Hv^Q>)#>LB(Ae9XtBE`c7BW#wmuWOKX?=94=?}dYFkZvVZrD3Lh z1In;q8PbFzBBa@cyWTq*HsTC!nw)XTwQ}Z|Qe0j4ru^Z?+ht`Fwou}ly0)Ud<-!Z5 z%UIk;6JGY1eEY#UxYNE!x>47zmZ(&5B`(|~>u~Nh3Z-;p08+7~KD($8^Al0oRJTbo zHu0Qbr?g>7gIn^Wxc00ASIhNuc1dm-&S;}P#RF?4EjI_u1|h0wP*`mN|CE&Le{%R| zzGgV-AJ3nC@3%1$ZxuXPde~V7WwI!#z$lTYh2h|)K^*hMZ}lPrhd=YTbSzDgp;K{h z@EFtduYvUuk=eIhF5mszOS+A#2&+U@m9`Isw%B0%DG3FcjaUSCw5LLuR8fhP z47HW!oRVVQM%ROT(8+*g<9vA(g14TXL-=+G#2ua8su+%LX}BUTqr4Pn=x}xw{$v=U zm>?jh!nj@ti1k3gzzQFQ_*`hE?}A{i#0sluP=zBcP!>dGcNElE#yp>9>SQ?@!n;K4 zeOrO z(y)qaD$(1K_qOAC8Ln( z4g6xE^prpN@BZ>;3CSGA+Xd{L?Nz}H)rbpds7u@q9D2NIJy>`CX??Bk_(Z}vGU>Eq zWL%}5nMkT~yWIP;>GFqX*6S>AS!o3X_rX#P0lpY_j&pk#2Lh%^!xY_^px^4|vf=ar zty+Ey9uKoSTP97qoL4LVWac}+ye=f|-|OiKeG5$$V>5AQkkR(3Ff-iIsw-)DbJjc_ zka$%9Gk|*Fn_(UF6&Duf(;8pv;u?|GP#+FZ{jUCo20~wtN8nBTu*j^3qJwU5QCfuZ z^KT3Hr0_xfT?;=l$o?pY??Q?n#S(4oQlP!?wEjst>~IE8($>wp;75ti+dzDLml<-@ zZmgfXI{zIl|0fY&0Tes}2zA&~hcry^2p|wZAPxZ);D30~32$EU!UOkXOYF&H6pR^&hfzU@j2s0b&(Out z@wif6FrXawwCAJmVI>+uY!DG-^d2UxtcMR)x%Tx&6ZS6{kif{*g9`2W>=J=D3z%F8#rSHzi zPJu3oVB#SS^(-D(B{>k}`K^o<2pm^@)3K7ycp+>B&&a~oJ$!dV5gx;E2SEnlL2bZM zl#d!b2@fg@BIC^M!UkJ=_kn*Xbk7eCJZZibrXM|wX>=r(lR8=lzcPe3D*>YdJ1zL8 zodbe57RI$E4G(*El^lKcRH@lq(R}*?x%R6U$^9$BIAfbF6;M_;sAi}PsI1X#SlNKD zZR=#dE`KD)a@v_#b=J0JA#8x~WeMJWA+Z1WA41i;eEYE%FR8%*eL4qLhf)n_6EPMi z5C%>7C7om2>aW7E?m|HcqufGIeBzH2E-bU_g=WVG`ziYl|C4FH9ZPZb4C3!{_>o2` zopksjSF3b1sWb8%D-mZ-#HPckwnx%ti$i<|@jo8;DH4K50D(^s0)2Tj(1fk=XiDPw zzz+l@nMWhtp+1Q$j0M;juXY$M| z*#N1n9-=ymxP3kc!aMnYHAs%+Ns~n~&ZMoYw!*r5J12|Abv0p0`A4w2Y)mc zm2u0u?@iXJeTU+k-HXJ5f@gYaE|k_}>vnqfJ`xG^O8Bv3LctGK#(9QLSMcDHNg*67 z(Ns)hh71ON;4*ltG`Ho`P$`WT0d}uFS~(OD8r{|B@=~D<%h-_jH7}lhB|k&LK!zq( zn5QfFOf!TD2W5spEP7)dvJ`8L6LQMr3!gh)T5q~V)|FLA)gBY&h)IXbffX6jQU8kk zWhFFdb20+E0y0qctb#mTX_JpK+0FtMQqv`o>pap4_Gia4_y;(1jh#ccg*F&S6S{A!9; z49(ULH7@tQ8GgcF=Y9E$k7Kf@AR60r^i4NC(E3RhCnY80ir!e{bOM%G)AsFPOn`eq zp6$WO5f+YN@iTk`!k|KraAO;Fu=%)!VeJdZ8)V81%0kwRW#c<;VC9$gap%kzaZL}6 zlWY&-?=tx5$~s|Aq$$jS743wIAlJbhlAOQd5q6G8-dG&sFNpuKz|R9dc<&Yv=#Tfn zEB)3kZ#13*&*nUu@!p^xq$x0djPRorcU5x0AWy~dN@)txv4ISh!l81~8B?T$s$P;z zWZf+J=@%}Onbr9iKj~?OCeJjMYlfrV+A}Oj*(sbM_+$Q()XSu zdk#NDe*DWrG>kpEW$}`i<`O*0L z`~3UFha=&OP#V_xU4HT86PKz(KYN%sheEM#D6$R~`UyNjk~3Vg?!+tb?%q}nYX^xq zB2`lkmy-^tHSeV7x>x@$XJ2-!x)eZzFt3TLsUECvJ3B>Xbv{*l6W(;AGwoz!`{r-O zW@uM@TKkU)3GRWH;;yc|c;Eb_3U~BDzk2hD8Q;GJN~5MbFvsC-Wpb`~1;U`U>;5VX zTR%asL;oZr$3DzH$UkrA+sbb}+_3BF#ThX*?9)Mf53^kfKOX(ke1JR~KO74BbVg5v zJ+?sCJW+JP`3mB*9XqoN;pejm-n$P3`r|$DM!^%j8R-;_(v!`2G#`M;;`kmglwG7zimxrNZWjfLDb+~(fhBOSPt zo+Ex9&erFaLJ6ME8iI*MeUzB(!un$e!xP_{a_p}!?Z>Ut<2F7pfD-Eruj1PZ?uovC zD?kB2A4f3xGvUOOWdD)4p`ed}vbul%N-n+OY3x*hHgjk{9Z*rD_q&&sROm`P-EB)3 zGKA3qKxcII3#jAyESDn(Acn!uiy{2hv5CR^kwLl9vT&LJ2hcyMVtwn!pFIGY$BzfV z4tVm}g<}poaA*wIq$Pl;CBwtv+|vgJ@OHifVUU0_%4of+j`51*^Hg+1aQE^2JK;jlApZ8kk93nX)zeS59)&GHPsY~_;H%%Hc!~aJ zZVX{@Xba-+diW8}fe9ecA0VLg7_>p(C=hw1WFCzaJWg9kFx0p{f>>&j;w#a?_)&Af z;d0ERD)UczE`H+o^3^Nv)s=c~lPAwsiv^c5oOjR5&9_~r82cz$2=o!)=~Y`(^u;xG&6Qv}4q@lkPEP^daSSS~!>(Ju(Y>s@ zGiJiB!W6#yb9^e}$c1vb2sFbludkO#Lm21op~0N19@vV{vKLg8;>>*s!WHV-dcWmI z>qqG@sm{sv9jQN7;@{0mNj)9;_j{V9ZGwcB#MiYIzP(X@LMiTNf{O}y=`}KK`cxTK zh*^_9rdb}k@*=tF(dDYFuA~@>Pbvqhw)vu>QkR%GUprsQq}XH^m?Lxy;*gLwOyaFp z-x;>@W)MWu{*u6c5Z{k}y9j>76I;K>ogxb8(aA9#e_#hv7)Hlq_<8zEToKotXot5m zumtgUDf~|O${zvYts5Qp95NJd))C`@x8@f2gylaaK3XA06=}kI5gP1ksiD+I_o+Jn z>B}z<*%`{@N(c5Gf&kl;Uvx|GVR3?>^uxD1dnfT|Y^x+B9CVc!Wyyq-kCjP-Hdj^` zhO)YEL0R24F1Az;7$~L1<*KZX$53_hfbCe51I_Zu!!2%46iw^xJCl`ahd>cT z4j}L!2Z1dF_|pd-*m>KcnI~>)Zn_`4U=C-e*FFV?K|3BmU|aOqwVa?tt{};-D@?v~ z_S5*hOP0#!ilJ053+M8CpzO|{TPHI_t@0UAhL?$};;0p01$z>nU0Ht!@0p?4(dSQ^ zhHJq4xd9-Qal}&zKflOS5=M@>)V4#)4C7wPgcOe4Pd=b25bTOc+4d~J9SD^?^}NbG{!0Z6exJO_ok*! zne+Bq*=KKD5eYZ;b{fUM538;&4uNdY-tx^LK#B%QO36|U;v3j@F8qiye+0_TGXisp z19*5G;5&gA;>b_hGK_^|T*I5kVGw^;!B0Y_NW`?$;Q<`*FPV^ef6u7X z&(mNP`hxf$3;ZInNPG-Lrvb`ra>c*nc!GOk7Y;+xaM6IXYie~a|FQ8iFoIX0lKdUi z8;f2%tM0nhC!KfwRi)M0H{5*rm%0=HpOQy^ya!%Ehqh$Y;sbazh9G@_aW8GRdj8!f z!bX`^F4NAQCWEn4wU3Fcky|hQlKg#6m%AOPQfdYa(yQW%$g|;gAnJQ!NjP@sq$0nN zq#xyczRZRtVL0!`Z*{{vFaZPt2=s-(76LrI&mOsd%Oi^x9lNx7>5cfDo?zNs$I}kR zZe^WKnZtOevyN&Vl!H<-)7OvUQ_&v&Q&J$L$NNDFQI2rGqV5t{Jjp@q?z^O2L}ZT?Of(2bE3O4NRIo!#cT9YSz9k_H#I8m z@}b}^I|m9A;mZ+0+aco+hjgMljDOqLC;zy-{bP4#Z5J(y#&7c~{$Kuh#Y-m>=df+CcAp^l{xC&;jrQIZ!qJeSY_;@w0{ZsFNixfF!=` zKrown6!PFtQ@3^K-{~?W9P;v9P8m3^TGIo9mo?n<370lzA$)kIBQy0%t32Hk_&bGu z$I3g~nk#al>`rQ>S5${5E+*E)Wls+JwPQ$_p8p9LRx3f25(tEyO>t^nY61=_%Ef5A zSBef&Ex9Fb7H5!@cGhqVMroS0pgDw1Uu?Ahtr1x?_I{fvFH^er8aqnykMr`^>LjL1CW$rZ?x3 z4K{Yyc5}CAj+t?9lHmSk=1jR$^x!{-%eO4Fw2m1Z1|sg0@1-riYaJ ze^__cav*Br?N9LDi4m|q5XL)T*#%^`Un%CNzrUyC@12hk(;wWlj)Q`1Y8F>{)uBo) zJ4r6rI3%ZA)ci{Yz6}c#n?!xNnSx-s%rmY6 z-uAE|JLL&LCg{eJ{ny$ig~pMjurEwp;{&K)SV3c3cW|c|tD(_&ot%kJ#@T#;5`<=wKV; z#k}icSt@RQYP`37fqEC`CRrzfWY~UJtt#=7wOu*BFgNZB1Riq7;$DQQOHPwrTqY%h zEx9^8B2PGZlx{aQ30QiEC0E21e6m=xoV?`G#KHeg%KY!X!uLQ4n*L-2@a}$~@oV=y{#JP`zUm!ho4k$x zlmFz#ZRi~yAu2zreCCuc1!GO7jq7+JU)jPe!XrLlcJ7rbS#PZnor)sBKE0cJ;oCiy z`-ieIYYkkJ&HGsPi+j04*U9Ub_Yw+loB#N`-+ke5fRKd;R#m*)*Y((&Za{R(bsjwH zc}}d)M!2I~nPG(q&l8s}q2m+*!KuEXGpQ9=2rPK zP0jdJGV4(Orw`RID@9)Y!_DDDjpvbZ`$_5%3YZ-vHz%b+>%{j>fZ5uMb0JzDc`_kF z947sRhD8c`M!AXbE7Aiggaj?ks-`9`8KD*jZTdxQqR3XNlL<@4#jdx>`)?#zILaCG zQ6f9O^X2$0%U!aa>20Y()%%w-=OWedz8@-=Kf1fCYDO_jT@tFe zTuB3&60{}rKdX-Ac}_-1?)_b16ewYHV;(ex#16!lRmwy%rEWbc=4rY_E9fOTvkKTd ziPoEjp=?-x*J9{Tec`xP=;1$M@*(x+qN5~2yQKviqCif2+tij8YO{}Xi;{*Xt#SHH zg7Dfs1V0Qfui>9WPyToETg|hq2&kq%e&vt|iGaLc+5$N_IIKFdxX!3QV_NuD=^-hA zFLvm3QEC<|LQ;llvG%}?+yij1biZ%6-{r06@cS=I$MgKzPfz5oaEy)kmizdz;#j`h z5XR8wAB_UH8_|ao(we_5sSCmXjcz+Q=((ml+(A z%9iU6O^rP{}YJ71lpnP3jUedxu5f14L}G2 zB=^qxIQ?Qk`vwaQpT#ZkA?cK(^TOZy#Jo96Sm92G4zV|l#+e9P2fxiqshb)rheJe< zpU>i%_1LTwA|JVobhpGTTLSPo9@lQo8aLSYhj&LYo5LPdsGTHlXHWk! zqzkY-TM3-Duf{Iap5@8)iXx)+%H3kX!7LZ{Mn0ns>A7V5;wEKWMwK7o^^{DXMi1EB>>=mlgTrHN7%6M=!QKXI=0FfQ_LCdLAohv= zE3ozJ$>Ay*RnA zH`z06s!ts}9Iy~fEb2ReT+s3QFZzq?{@P~dL(6Rt2d(95jrb;zx|!PSi-ahaL;uCL z+Pq8Dx>3Iw&Boot`3LY0~Z zmL&n-%V}h4uLuqWk1(vU=k>k{3}#I#IxEWsxA|m87y<52Br^<0cFn*Lc|Vz)>@%aC7mJ>rVay9^pBx*#g?vvr7DNHEmI z8)nco7znF{DhBImC;YDQw{JacFg<`?5###7*`y$URVw|T?-_AfqqND%q-m)j!wpuGt7bI{C6HNE2ypx_K$lHM*VodL}Pb5y<3x!RxDM;CAlqv-_ z6d!k_4TV(U4q$klnsc4nv7eWkNr`E;v>G>j|4+?VtkjL-^oI;Ifr&ZIY8C$0M|^wx z`}eXUk(bewH5ULYJjaINV7nInaTq{DC@SBmi+@!h_Q~SFIc3fEAVjCeIUN- z27fLc!Qw|e)JIdro+K^Z4zz}?qsu+(v6a$(-)NzJJTWCCOTd228KoDG4a#>PHoElO z!MPa;(Pi`PaF5P2XAbHSPyE%wnsPvyjf{^Xk7C$AhwWbvYgOBnix{u_kKNN29YQEZ zdT|3~%%q=Y8i3wCUg7aK5!&8ILc=Zm!1zxA)3>B%v5+RiH`ifyJxZUwOi)lz!Kt$jU(vNuO^O7c2JlxaROK*pp+0F-Z>V|MXTc5WuY-SYKBVU|^tw z8BAgbnll^eJ9M*xISe|)HcoclF_iWqQDRURnYw9GdNk&P?Iv~0T*dVyJt>LSr2LARQsH}Du~jhq{uZ}#cpFoCa!BX3e)zubTbi=CPK@As zLx>G8xscAdQ@2=){=TPfamhTtN~B{opag2vc8?&m1IOLB>NR?Mwr6K7*5-|h?_1ax zmrQvxrAt3NEY4bI;sXgfJqG7^Y+|*bumQ#R@EjyTfhQ~ zLBZ@(r$9?xdaSrR?gGo?X;B|UA(T-V5bDYv#Q*3fl|@w+Uc(Ls@*@emM}7C~Ho8ib=OSqR1+dHiZnt1sG`@5VlIUNwP zf;98UXm>(HBuDTcc(Na)36B#hF$eW+1ra9URu+%N@rx;;w#>5U#b4}%u?^xcT70U} z<+L1vy?pTce4D_eOrpoPR&);5?PqwArMZ(SS||Rpl0h3TbT9&gfk1IY`F`30T3cv{ zlqtO1WzxQgChAQmDzp$?*d`<-sY;nS@j|unnTaLP-&IH2ZQ>k|_WmqJ=X6~*>-LUL z;Gx)?s60$LA!1fqxfAJ8IkLDQh!0zp2*@Xrx6(wvox_fZh^d=q7}AzZ`9Ug|9eV>MaK12)nQnn{i*BFiV;Crg_w(3yBm5D)CIBBV#b#G`m(UPEvp>%D`ADU- zgwv1o^c|X{^9iDg%04ff0RrKHyfD9T!zjGwc}~=kAt8Uvs{z${2EC@cwjL#TJ`G+QugX>g-St^I;=1wvR)d^W-njj46I zE^>;y!jwG@YXWkygq{bAAM3G(goggxvFV1}y)_$>`DY%_efXRM=%M!k>qvrrBApA7 zLS5)r$*89ivI3X)gL*Ct7Z zfhO)OgjbnKnQOrSmW-drU?Ozagd)l)+x`zl#yDT9;k&5+u_Odwfgr@tl16J9FbM@o zGCzalKtTgG6>CFuBU!}z904Sf8scDfG4NXpyxGzDHD$>_`Xeb3LUD#Tso2qSV&{R@ z7dA}tK(GA<%-C5XjkNTgyxgTb>KArkKm+I{($7cC zp+uy%s3OnQDCDx8Ts3 z@5g-9RpAHmhlqf*D+%j%0}W(m#}WsU>Ooo`;eYn?F!>^z%#>8f-s7;1+jmn1R)53j z{qY;e*o+3HK?qJG>Vx+3Np2=d@)&NH&_k&Bzm22oR<=-F%}AB1H|9bZvia9dVgB6s>K`U z{HDM>xo-xUlphU=uLzRB!iI*pEnAC&oPSC5KA(Nl2Y~`ZGKc*g20Pe9{VQA|B>h^y z|Ni<-Li#)v-jlmq07kl~ddynioIJGE;xZ3EWFQ?#p)w7W#|z-2pn(k6xA3k0ty1-Yp>XYAwp}woF0*!eB>E;>beh7zmfUV61kc?5G2{?dfMJ% z4ngeUo<7j`*=V>MzA7-JKsUY4$`)Kkge12$AHZ5?E_0i?H4CSA< z{LBvL+h^GUrXl+8?ogV+-dVYlL^xbh_nTBdee8|0$fY}^9MNYr^*SB3z$csjG?zgE zxAG-Rp_1}ZOPlW1hl&Trq^MobqKq)GH-(Yv=o0|7iOZx1YCMNp9pFYhzZrA5_cZ3( zWUu?Qc7Lj(WK;bi{2B>LCZ1)KaHPMmMuXz>fzb0IAPCZ(BdR64Y&?6hv|xR6V?0tCf6$nqtWjOTqz#0WQ;HHA!BVm7)2qVsyhfR9ENLq0C)vL78`Jc5@&Xq`lgNuYVU*%ajR zFLHfaq_sfhkcL7O2N;pSaIZ=ylW$1h29Ug$LFe^)2=4&={8%vr=z_0O-(P-n>d6{) z-vZZS$gk{s%fp@1T07(d)y|-VD`tuco~(>))!%Phjg;(LH9jUCc=4oqzCFqDT(3_P zt_Rl<>1nDFOTOELhGbrdq~lW)4Oc+h6OQZQ%~+(M?qisSOLVgfU~#tff6Ky7ieM^q+4fPm#Pg(QL>OzZ!fj(m}xOu;{NcpGx*v zVR0bZzzN{yzzc(_Zun?A!BBTX2+7ZWUvG^g{HX##HuiEFVZ-I^(hEao24x2k_I7C) z89oMaaPQ)c&@H(n~H6u9Y8tu`H~$q}nPlWrctaQyp5?+8YT3AqVAf zc@1Ov74yahpuD$zkk_`KrWsZw7}3iKOoXb@(`KGbubuy1|I7f>3|G1cq@c&eeokD>hjJnGVwp1`Lpyy|I>>B%m<(C#e zrO>MWp({{buC^RWtWi7_oj6AIG;h}aWYYGu)W||3`k$b-02u-dv|6A)MpgV^pD8DK_oyVE0A3??;L zBp6BI#MS(hIgX3!JKMM?PP9@AlUA2#TJ1W;AQbjw-#VFXHoKI_z1Z(9{fv$6SLq^B zZS8bw2WE!k5rs7;s0h!Phutn34G2}I$0D-SQxZ0T8O-ZG!bFtk#=LnbNb&y%Xxj_s zH~Xoco`M-(?~E2Y1NY=4rviy3NtWc8%mTUc`;G&-s zy7rZml6A?odCgX3`spE(X{isW91rgAK9-$LCJ@B+tiz_(GQS-vTl=4-1{b!s$ra`< z=I2%^@bR)JrR;)00>%23k_z)_|E6#)gnta`2<%PNw(TBVK9uLjOZxUKF@!G_wprXhnyhw#I|Hbc*`kFQ3bhdasUN9Tw&;d>L zTLdJq=f8QP2LRI}1P0++iug}Gk{`x#M_Ug?f3$RA=RJn-5dnc9b|x8kU%t0k;{C3b z8DV#K1nE@SD_JoxZDTrOf;=Jo<(tlMO-Q0C>>Yl|>6?R~=!Ig;x=LcD5U1T%@}kIf z-kYi0@D-3nILM9VTELVC-cXfek%nPzpKB|vv<=-~3?_CYtRlh6>MlfriRkJzo+Q2bGn?v*O zr*%*w^dMP6P<*1*9kebefTh-jrq3%YAU^$RvdyAqRJbQ#!gzIB9X+sd1loNk!HL6n z&V#U9YoY=vpM09y1riFxH?=s$# zCC|ST=!=TDJ>9){Cu=&@<1;}-K4B_{#3Z@S#gJTf>{>xHSQI@Xjg?JF$eiD(Rnhf- zbbP=6H(CmMc55adHdg840kN`&)zqC zzwXlKJQN)m*dMS^5GipBu9EtWOU-}%JeIyXI)>veI%;6X=m;T{f2M4Imm547((dQ< zl?%U{ueaRH_GclOggXOYs+}&6-b@GcnJM3ssT^Jly6Pl60@o=70zNk$w$NlL**|?8 zwVrq@dY=Knt*+rT_b9n8>!@(D>Z~b2-3ocwbfzbIXlD&f8`~n#hMumcU$5pFYL!7T;D<~u3j~(93u5X?i&=NoK z#D%s#)d3q98@3ws*m-i%LQyO93T9d$%mv(GH|2mxEp)buSj!tc1Ce+#R~JmUL{oI~ zaS$~yvRoMsmp20giF=FrU? zSAngswVNRURVUtsd%vUCbLOQfRE%+UT2g8BTvHhXGGTg@0O>Jy(oW8tI{c$JI`Gir zO>9<5(BoiR|Da;crTBL8uZKuPhReO=!*XY4&LA!RL-ej+_2gd6kMVX7 z!hq6o$Y^1?8#r{Pl`^7Gc!smmiS~82~SJd8DwJ8Uz1P9j2qG;Vr zTb>wTCjKTaLMY=#vJ{8kg%63>lYoxhK~QPC#f`D0T>6)mHgxT%?OqG%R*aaZd8yu^ zhF_wtqzdfR&W1xS8@UA4K%ak9;E%u^CD`7R{42hQxtFMZ-EhXR%S@*+a@WH+%4kjt z7W=2d3_%w->&b2Jj&83DGy&I*YTy~7$3e=?W(;$8v|NKqa77ol5pZrEht-zDy3*Rq zOph|^JWF{;BXE74G>21>q(Av|_#rjBgt766iDg+EqwD5E(JjW_AlI-mF4wgobQ!Ho zf<2y+kb!(^E%z4dm<3%?YvyW$Dx+P$Zr;!euV)F@$D<{ho{Wd2pmbNeb6tth?KE#k z&(PPIcaqxV#^JB--DaX8(&|9S%RD1;M!DP=d|$yp<4TUe+gcY4|AAw%Wvblg?)S|_b>SJ z%<8s8pdQsg#S*w#i%IdFmNrh;f8U~)w=xWD^_F`bTAJB+`+-?4VlfLOU@HC&jqXrt zn{I%;DP*Ur)n9m*7>+%%!E!N9QlMo5&cdzmaL)c*a|uT|hZC z*{l#Q?xjX41?BC^oG5m!Asnz7+P zOo3rC#!X2&n8+MdC^7^IIA1krcU^wbSBY0T*hmKlwn2epnj!+ewrQtOA8r>hsgWwiEF>a*N9dpbKd6$r+f z@WlLm8Xd>ZCa@%2MI1;M)DYS$!cA%B+$}WsOcpft=v{NLpu%!8)-3GnjL0f>rdg0$ zv#NeO$hFyBPH>v8Hc?cA;b7>5h}d1EQ}Fq5!Ol4IB5Bb17^)gOI0GR2JG9=ytmU!O z&h|*>L8HEuxH5TD%3K+u!5L0M1Qjth^J*c}nIOVldj?YrBF!Z=U_cTXAGFqUw4vFg z-g^-y2B(QAxN;d!_UTV<;y<0J_5O$*2>{xxd0WqEYV3Zm#tC)+-^t9r%xB=>toRumn0>3@W@XX8*X~t8?auvxF<&`y^ z8i5^Y68;nPqMoV*Lmy^cc4^GTZWv6ieFDNSxA7l=M|cD_XFLZ{_zs&3>5wi_4T+R1 z_<90@TTfsK}IwJlRJUDkjnn+D;w)G{9~M{Hd+XTT8jo_}!h5-WprD zDz2E}u8WAE17BkIa&xe{mXvib~%U`b-!@-L+#9LLfE9^ zprU@!YMXY`>V*-d{Rx!<@CWv~&h!0q*7g(MKs`Mr!l<*vX>PIp!;v_(Zr_9GQCynZ zc&+2r?>m5IFV}|`mjb(xESxA&f=bH?VKnj%WKnv3Z6WSQ2X_eWow0?YUnY(+=A^&0 zXrqjfCO;#2KYu=UFU#EELP|QTV62gpL zap7DowzL(7u**G&=phi3r0j_zy7S2vZQz<$upnk3;xDvJs4B=i#sft)QBOe@r#`q` zC)uMJ_%hviU7qd!T1@wUf9?fN4OU)#7(?v~0xEUAK4)sFkgEOB!W+!IZ>{dpi}Yz$ zG73EBET{OcSqNAPMHJb`2Bi7ZraF;ZKhJv|Z}y)L%AkeAMN?)ccmfwRG$L6A4lGya z5>pN;y>5JwN9;7G2D7fTr+A+^a$akKl~XGQ9*Sq04DY{#@j)E+G)PE!JxnGa8JprIN=SMn$eIyqYj64u=q+1~var$gprJEbMIO}M)&(D7HKm9Y4AUn@*HhH|K`STjzsA z_ZEvXjY_MH6RNW2k@t{mke5{IL33X|SuU#H9rJ3khBdxt1n z0tCc`tshnXpywgf)?7c2h&kZey}xb8t0L8$6PE5)cl%T30SE1XkLs-_n({?1^r;vm;*6m2wQCkre?{}1g&=jVPszE|L* z=I(5-<)EuO&PlEl7!~qFf$NwlL4Z&I;iJ~;f|$VDkTYEv|N6{vX7^F;drG=(S{(WG zgbLwrBGLMlPFczg*~6%@){nlQE{(HCqm%A(=lY|J$QR3IJ{@alii0V?;7zs{sz4Cd zobLe)beLIwtw^h0+TKXAzcM~^V9)5MEJvC!%W#gd_g_4Y2>WlqKHDA}$=LJRZ)KPk z3C|OmAgV-B2B`q&%`kR$SDQE2r^o9}#YvlNOq#G7g&%ya1F=*TMvl^e{m9Pn-s;EV zM8y^p$0h5*&cdCf{o;aLHz%JcsPS*6yW=e8ys)a;CtXR+)WEpMs>y7$y+MogUynC( zQbmci1>YF^chz^Jnnk%16DFa1x+fv^&>HoB2%I(0xbMvW`ry{9UVF}uBTja}Zy1)k z6WD_KM~ldV+ZT#CVOfgFzj+$b41YcRD3E_jl&3^NSJo!qlf?~|>QrT-U>2HQkwkNR z>BCQLuuu_WXCqHlVtu;1goF8vRzmwVd^JVJO=_~0^h$}Bs=~A;Ds@i=>qmxeOfn$S zCsNV}Eidt;XhPzO&=5O`rZTnDVdiY$HpRt$(r#ZHmj#0MYoP+o;45u6^3F^^rUx}U zznyp|0N{b+I;WT8F+-a%yr_^^IW#mFKQe?X?R?*)h1oO#n7QrnGXJ*67=4KNY!*uD~<`IpOVR-CU|1~M* z#+L$CQdJ~X0qFnn|d>eX+X3 zb)7&}n+k@!_>SdgNB7ntz!l*7luE_b&AFGx0^-10w~!5EA;*3t4RSC)lvi@Q`!&l5 z96Z#CKp#^$h+5ER@2UE>)#=SN1@po;9?C|?!P{1sosXmuisPipYz~L}^`3n!Snv?BA#HyKp zR2TyNZfj>RGPO4U13A66^U5Os)v%~~c1olRx~C2qDe5iTl%vIW2^M!L(Fo#g|HfYO zEs@=6H6{{AZQqnRR1=9P5*$eY1Rl#yG)C4Na+bRCSiL8;X);{RM<_*vEw_+hPg5?b zAHwVBql#=-%#!A@jf0R+BSt>blKCywHzUOMU$(~hMWV6`Uys`Efd(G85p@k=}w+cR?_9w4WSV)%(LmDJ5+*JuPL!;CXr3oWsErQPVGgh-t~{5j!u^V>U0M zNpoAhP3EQ(hWN4_T}ik%GP~JJJxOMiR-W%21Yz2~Zyi5hl-@;#$}LuJ(+y&3@~GzS zD0bo}Fc0}7Q7EzFsD+e80Uqw6|{6G=Qv4sE0 zf|>eNDEp199Qj+*=HlKq?eRo1>8l07yo8jKOZ_8S|1<38{;7ndH|Y6BJm)*yqz$AdzUTeJBW6E@e@j)JeCkr4Wo9;|s#uJT>wU{oJd8mGtADwB(jkxuBKhMcS zvLoORT}o_T9J^5ej^wn~>!zyb;pdBGl=_;4d_(2xYLxR_{{X2&_%Buh3$T@Xx<2e~ z><_i_i&rz+P?ZT>vfjQxtCLOBL8^bp z17l5)gY#O`AZ4EBy0GcL)ZI0TQ^`9N7-QS+SJL;nh3NN?0VgV`)ASa8tvzQ^6I9g+B(b^4|m;5H&04S0Et8e1B-_I&r0j%k@YPS zm63y)9Q_n+Z13l82BMg=+GxrWA^TR5s zULI;!-F!K462nf)XIAPuocMnrnun{7loS-%Htka!L?!;q>mE(blfB#T+Dd$L2~9kB zbaIx~vG3H+^namf5!1f>i_=KfRxOw`D~b{bp97s41tCuJ(j|$)u$LYj+In6m`|w;r zvj-;JxBoAQ2GiNY*e=ReE&rYJ2}V)!>t3Y@D*P^&Nz%_R^7^Tx8w54;JnpB%cbq?8 z+;590+u{ZF?x}k|)LIU9_?e3%g#M%KQWO_T`!ceb`$2re?#BOgT<+O|-F? zy(PXM*66>Y{D#uI_#C7Znr*qa8_wa%To;}sP2SE?PTk0D=@Rkbv+>Ivmyq0_O2HjvHJ!dpnE=A(Bj+O+^)xeAfjDUDseUC$eI9@ z(DsJCi6EvvHnWo;-@v1A`8#tzWtlMPXyO|h;lu{w6_Fru07P&)dP(xa3VX!;^hQz; zSaT&^>|MWGg(eP@8^o@k{vw>P#3~6Vdq|s?NQTg4O&gw|RWfT+>w){ewE$dX4v5nA z*9k)x_GVJ#-BzenL&%RXnaPUqK#k|pUs#HKy=L&f^fpW#n&+9p52cD3HySKzwmdsl z1Cyp0+-s>3t;%_4?J=T2hdQVd^^CoQ0Y`<3_y*tNEBl#D`XGF7eQVpIH#&~AwrAm4 zmsx#g@cFDpvocE$&S#8^hp6C+X%y810kCwpRxF3ErVX8A9NL0KZTkrmkXVM9jhzMpytXnD+2!+QEr0!ce zC{^O%`WbR6ZlWwL$jL3>h%R4I=L;C}g&XG($=|Pp6;RbEBQ7zqkS?QOf4?HOZ7iS5mCl*xeMfOnkhj>q`b>sH>V@Y3+O(f)9xk=^5I z&xc2>A>KiUw>@=C)2`~x;5#Pf?#^(6#7GttV-ln9G7C;c=2OnP+o3Pz;k)fI;$6BR zHQe_MZ4l`)p<@u}@qJab&qd~8LN_YkjY*z2@mQWuiI4G!ww#Zlw8b0-ua$AIw)czC z6^R#x_;oHbgMB);X=`!q_iGrR?vt5jW(5OX87);|x}z7JxZ%5j*VnM&uP$h!de(aX zHt0Orv_wV1#`&m_^Rup6(RxSWTcY>hAiiT#a~G60PMoeRRxGg;Wu7XFa1=-W zIgFIqNbwlH^(U)nE{Ewcyj}SxlwlDJ5K&zCu`)7#8SDM)N~?*=k8r%${rvo$|Dczr z8C8L>dE}-@lx>N42U@GV&!bA!-bmAJ@|=SomiG%RI0RZB7~h-awH42_eZX$<-()*7 z7^->Ef8X->7RZFqD%7{ZpEUoMnEFd8!96Q+_WO8~nD*bKD)Q|1X{Wbn+nduj7` zR3IRH#xWdOHI>+Fj=(pkcbSnMFyRt?`+BZ{L0M|=YCIiP{l~%f1ZxycBa&?faQ~NV zInnoXJ&- zr4aZ|G^lHlwqxARM*1LiQ+|+%@~6rso~7UQbz0{c3FE{n=sIr9GWSobDh*QRXHSx6 z>3XtghRcasy*1Dvmi|?Pmv+Zw`uZ5g@$1lExlTLgE9A(w6W{81tLun_^Tl-%;~V0U zBz^x8n2?yixqfZrkD&Hbs}vi?IX5;_5OHK^Bg6JofY84DMO<>g+Uo1@;8LQe?yg?_MryqHH6#6 z+{T#e@%@!LdL?sdgDQRirr%qX)FErxO+M-!*8$r-Cw8)7dg1}t(S+!Z9kuI8o!?EG z_t{}xP)CX5r`qhcj+Du?+Q*`j6K{m!5PR4@EO&*Nk4}j?4y4 z#y?}CeD$IPERNZ6uczs5Mk>8#jn@W76Mjh-sa~m5WhT@%C|8E&hHO9L{|IY%U8}d% z>?mw^@ykz-Cbo$JQBD@;bz&sID2?{~O)}STC>2hA<8V7b4)mgEnB<0l1|5T6e6Vd$vK3(K~jwu{ZKByJwqjZZMUmyE|DJ#o` zM}Z!;#1|8Y6Oc&1@|D~h@|>f$YtjiS4t~S!*%DpB6fWq4G~}~;6|Dt3Tpw$LzH*#o zONqslJ@W2bPVjmxz^I2X%qDiWG&t#gN0`3i!t9d-4TY_WRkd3p%Zd3?b_~_!`|JQ% zWz;l2K0DdHTs$_SaX{T4N3mRQKtPO59lI;wXRZ71r&aj27LPsI`#)g`e)BvyG(+Em zKlU$j=Nk;Dp$7%gvP=7^yo*28^cthP?M^6IsRb^btZMyPsOjd^Bs?dh9@o=w{UgJS zIR;U3#pU~DqXc1%JM4J5cGZ?v%eA4C4Ow+9-Wci2+{GE;JD5zEsycM(yGvgf?l4Sd zr9v!IUmrW1vyYlGA&Q-ox;&0!93|^)o^B;mJc+dB`87iO_y=RNZcll~K}-3zN;ax+ zf^Gzas+i>bsliZxzFQk{eqxoK-g?9pTKn6K zK92i%-_7aKPXEtgMD2&Q*B$fp;hvr6UNfSam|VMbRYv23B0wEFS*f2|Lavl{jFPx6 zzQg&hw?~PvmDWnE7o)Q)aiAvil_d}DkNE^#F{HB=K_G57SXgc~Pdf*=h_PN6ec5p2 z?){HP&SqgiIY+1qqJ5?q6J-vDW0YS(IQ~!e4wSwL(bqqUhdQX}k-L$F{v-K_Vo^dv z-B~~W%|t+`|6reKc|G&HGk$;(2%X1RJa++HNCPbsV#W|9aDlC3<-I@ofxx8dIj1q9M7#6eVud$#M}|=ce4yy(vbcFR8vIp;rV-*(JA~X zDU{RYjXvn&SIh4n7_0o&4_L-Vy@TJed*eZ|bC2ADs&CSESozLvY@lfEizP*6AH~}U zH__EdI5-=B$`*vf4oRBUnDVGv-a7Em)xugXrbH#a=I&Uyi82+Fk$a!rO6n26arp z3BMKhtL9sw9JyOP^9=ndL3YdBJftPxsIJV9o@WL{mybIA4_PYMw6gPD;4e0-e^DjF zYovSob|8$)<2y6Qk3SPl$as5Nn_>a49v{tB*;p;qYeOPKth#2HfLYzDn4v|L6i0tKU3$kg{sdwL^ zJN;MQfVN#cmFXFRcg@Z@S_7NX?;UfhaCPyXv_4O!1=%gwI?S?Jq?HdOBc_3FJq z4yo7vX{)*(d!2CKxj!r*ErI9`of7Vrrcm^Thz>jL9vg)mBICPa?#-Id`|ya96|T!k z6a{ZM$fjG;y+T>ZT&=g76#seV4iyT*F8fRLjQwq95J@E&rxeCj?CWwR!whN1azfn9 zPOjLuw!P0j!rUwzi73;xL?A`HFxSf~9Lj&BVaDLv+3@|-eV_v*K8dpa$D~n=YpHCj z_r`QKqJ;_hS(tH{IPZ&B_G?5wI&Otj?PC>%h_@UgDZ4S+MV+8g^0k`mxlEt_#f{e4 zrmj^_k~#o6wrlj&Dg3A`{Xf9@HV(|Wg2T=!<3Qhrk;tVEVKBNL?*EUgcVLdRjoP(m zV%x^Vwl%SniEZ1qCbpeSY}>Z2j-7PuWaoL`+Ew4TtNIt*clXunTE~faJPykJ`Y8oT zg^^uu*q3m+FolsA{0*}-CaZM=2wex+W(R|L^jkP>i+UEru)IT!fw1A(dQTc6@SKu@ zX2&vBabf6no^^K}3`9xA>cAFeO=MagPxOCf>YxL)+F^C2`yED1TmADTp~_Bwekq|} z-F;LQ22&b`f|yq)BKp>&E|re98V>DQ5GXgSmg0<-P^u!D(}=cZ|0cGE-Iu4Blei$>g!*-hxSX66*o?HS{A1=(g;*G5vuU~sb(2_p^PKOSN{n@#uyoN?NfVm0 zlXnprxaYMe;kMRSXMjp?Dg$kP5DzVEx__4qe=GmHUEkg%BGZ$=U7$dCx*+Xc?{&XY z6uQauFmjc}=-xC-&`(l%ot?Z8wD!25h15E;Y%yXX{lVN{!7s3&pBYbDyD5$;t&mN~ z^1t3=sJN2K(`9gwDofxHc-3lde8Suhmi}t`4H6B^$UU|9g-OUg*{>!0GT=Piyw?BI zSKE(B{{dBBP!T98AT4e8yZ%KBN>9{C1!X=+Rbr_CnKf{S=NYw|O~Ul~NZ1*9N`&VF zyNeEG$GqcFas$Ad5AzqJ?}_2l+J3NH3~uXR=p3D;8ED2#sUEXtS+=^C!$-`Gfa2`i zA;hr6PS!@?T_^KklV_eQPTv#ar$~^`ELe_h5Je?_$FD*UZ%%CeZ!El|byL0^D(37+ zW-QtEwxpS{KihDjvS>FBG;L$8=^FJ3L4>%DPpog|d zwN9@;R)-5*&O!!>p!+%NzoIcZgOFh~o~bi%qx!#Ke_qiYEfLMEwKRnl&Sb~zf%GP+ z&1g_`u<{h%>z%svV{$^n+@MNA_axY3sUbCvRQN%T+upcXp`-`oWo{G=KDx~Fp%y%F zXH=Sp=uLswnAOh=uNf%f+>iIxy=*L+OIOSk7(=DZ8pky*KA<6#ww%zKl zA?nwJrfBG61tLH%aK8+Pbk}Dg_s885pEt$=j~2C6KA|Yza>DnCx!9b(%XKxd z8L1t=XCp7<&mrz;H3%}f%LNWrvlq970h}Z|x1$ujYDMmH9KC43_u@NRAYbh_k9SiFTETmRI?n0ZDtM^O%xdt#KSga<6P>}U$!4F+?Dpx0~w=5;5c zd=qixy9WWf<`gG**tD9qrkrF>6!B|8pwK>Hi019vBLJ zno!s;b2pd4yk}g3NNU_6j0AO0i@{6`i>Ov}q@e-b^k`wmJFQ{nIcf{gpao5Is6%G6!1a$<`jkkXlmgNBDkD{3~?vj&4gx!k(Nj{;J3Z4IE-E|K; zX`6?X+UYWv0W%!D(WIrlPKBi0TI~8$?GV*DlX;DelX8_aV<1xg0Csjj)+7D(|N8ZE%y(shbd&?=3aP*VS6<-NfrWC-y#)nt&}G?t;F~ z)3F|!@3_{To#p}9w0LcOw>jy)TP%-r2L}FAwp4TEK4`w>eiHO}Jmv$wZxYP`oj}FB zTEPuSAXe}~h$V^G-YE&lfRxD|+qhRymYgia{?NZr$#~;J0c)n`_fF4f%qEjCw(E{K zbtkp7l6J!n%pn1*q=9a&jEifedO~kde#dy~G0Q2g3Bjjf-jk>6YTL0nAvST1Oc~++ z)Y4!*YQPe5V&?GVH9*F0HW(7$iJ4(jQ)XxX(R1-OdbD%XUolqsmhT(S4Mk_9F2a|y zhZrV=L4go`EGmh_!vc`h%>aD~Kw{;Fpw?f)?Yzf)yrKq_@sfv+Wd6n(6vGz{!TUhW zSNpDs?8G^^nqf+)eM3n1Fx+bjoHk?pt-z>a?rHDewT2VsJd#Y;!Gy{@Xk=tltD7Lo zz`gFAD>+tHYjGOH`i80)YS{g65~n;pitWoaGm8ApEBy_=cWQ+ZwG&uK!pT5$IJFPz zFV^*QZsQxrnSdn^Fpjla?r8N&oa=7D7FL%j0S5h+7&(JU=B##1cBbqtqv;_anaXLe zLt3Y8z5mZYE_~YT`ldPp{Leupy6fh9Z^ip~>KgxScfdAmqFR>ETB{vA6tYcl5LT#s z7nIZRBGJZF11K|Uyaf4Na?!Y;H?#?JMgXR91 z;peSQu=ljW6>u7FN03Dv7J4$qv|Bc!+WH_uZ}pM%`EwvwDUJ1BQWHEQePNFHT3r4{ z9C;a4qBfro+aBzi+SP9_mg^!?Ol4$=tld>ZtRcb-$fbKtT~@K+5xVyrVMLD*UAZ76 zmgq*3{u}%{m|>qwR2$ENTs5h_Jhw?WG(Bx%+L{fz>)4p}$+C^-?H18 z5GmDt+2p9ZPq$@Va?>AJCy&BY3n1D1Gg_aH9Lq||_47VsGzm3cr%ed+Wz8R2Skx-$ za6qC=t!OALq^_H?8=Fh}9%{R>@%yO(w^V!P<_6c(vHDr#< zIHLsZ`>{%pZ*uyQbixG-{f;-+V;ydAV#aakBE_C6FCut<>E=?i3rC|cVv-qNvEqK- z+v~8DZIe-)e1m7k;Y$`ne(I$tYlKXvQB7*(0l@2eywTEXh~07>>>byq{x7dR_;3Bl zr7RMYJ>(zkIb!W&CIfMiVif;UUI%_u0V|M~~Zr$`*1jUm^ruoFgwrlhm2rO_+>z8mBRs1yVC`I-b*t6T;Tanm_ zM{9?nl6*f-DaCP+KtwKT(PDMlpvJ=K>o~i}{Rj})FZ(5=m{l_CBqTHW%Y&d!R$ z(xtg_)f#=+i6cJNPpkot0ey>-vh|DPc>d$fsEhS(RS4!npgpgl9920 zDNPrMHvn|aZRj$3EEsI94=7P%jtR%=Qiyg!1hq(Vx)7RBg!AFw^yZE0ze~M9&5w?| z7onf5)6@i48qLsR8S#iwX}`OvoVHy(UIfwhd-vrB0y>oZTLO2(Pqz5BilfqqM2qe4 z1#8}Y!g^U3DT3!aRT8|m1VXWC7yf;I@9w!X;^oFeT>!t53ezF@BNYB*49+5(uw(5% za0$m15@(0X#3HxvM~Gy~7pGpYfPSDapg~<5IH0XXp*XSr{qMX9zP`<8``aZaPGrxJ zaZ858@O-}2LH4{RP4w>qNj_Xl+hcSpmyMCTlP3_9fjkq zV%oLne3O@FqC)UB+STtB{r#>GfxSeWwn79IOPJyL1dYPVkT7;tl{;E^WloKH5Vik| zc!NaF_2^c33Py~ziD#|vrD|YJ9I8ZjC4;4e^H)gA*AmL9;o9~?o45+L?i9iv zBxMV(fRSE`b5dG44%$V8bu1HVdv|D`x<^$Ji-q+P<`YaoJF6KR3$oI+4=t^FtsrDn zsQ+C4O9)BXJ9%guG~OIn8|)f5yYkHP=lSD0X7gh~j(LEw+!3k0omAC1-a4NO+nps=eW{)V^aQfmS^ z1TZP?#k&*F{M?g`2-yO{GNnR8a+;SyOLc|4#^U_-4mypbeIHZJBX|D!rwG1ct)@ z7lQmJ9_YG3?z#klSS0@2QI5*k7jm61tiX&R$3uv*c&syOj9Kv5Xd`UoL<+G4=OUx0 zttV=XT~&Gp4HNZFYZ$Pjw~l=kFhlMxphbu~jqq@9PgfoMi>&%{1xZ-Cfm9Twa}1fg zv=_3IviLd^eWKF|JaI1t(YTc(+)~+?`4J_uWNxk#q)NvVKCT?{cQ;(iZ{yIytQSo* z4;LG8VXcY~s*z5VHY4|di&gd0C#q-THDwtrE_k+~q0PJ5h}TQ2TF(XVJuC4>_x&fO zC>%eq)6U+)iQQ$zCB>C^mRKjc^Cr{&ADLadUU`8;fw?G+o3y~HU6y3FG(Ps27Y5s( zk+ejg6pRo4yArm#v8fz)+TiqcaIDwo@AzWx$Jb&nPvo5&A`+y||823Hb2@MDl{bR7h#J8lfA*H&7IG{VHnLyHW6AaPl$d*-K%k?!c7 z&h|}xR@`g`x9;Um=+ULDE&8tA37g1*urEc$Kks!{&9qvdoDAf|&gb~W5q3>@H0LI#d8V8~m>nKZQ8FAG4bbB0 zpTRfm%YGal7mOHg=9qonrtA?MmkZ!mNOk9_WIBhm5@%Q!k?czy{=XEU7tD?!EAB31 zqS$&UH@o%-YzE-E2G*BV0IKVCK+N0aj=nzBX2H$v-oCYgotiWxQ8F)4^hY9D#c1BZ z$^QA7Iw?i~OPI%&VxdG~kIV1GYEc-fvo>+oODMrE^-dRdAD!kHHS>aMrRpkH2GmAI z><>hM>R_Ch~y&c-v0juaX`baD;Y-LHLzVsLWP` znWbc&UwXyEtF!D1r58u4&5+PEdKnku z#YiOKhsPRFUzlyDvl1qsTHAS_1`EwEqUw%)%SOqyJ%(vLB;Wh!zWaOSb^T~)t9x2F z77;J7biaC#k}O7eaT)Bu2xSQ&R}RfH+*)gN^sD1kgKdZs=PiMeum7b-2IWBZHw#fmhN=#oD(! zWw%;FNnd&to!u+>y;J>9YJ5I7eGL0elW?6+Ns)}zi{W4@cFuI?PV|)Q^ppU31PACn;QvD+po9D$x%;W!MjyYpvZo}f`Cr>l zX$xC~1yLGi_@HGG=?*$Q@P^V+5SoVF`)Kn=)11Mx05)v7Sjn5F3!)poyuETXPW9Re z^6Yz2&0Lz!6I*>W!M?W`9gkzH9WPv?|2x+HgxC%|#~l3oZGYMJ|5>Nw0)>O2a-7rA zJ&IMcT9sz6Fdw)Poe!f5TC|l4gYpYK z_ueQ+_32{D<8gW?S*s7GseODNd;zx`%&6E8EDU}ethFHOfrn@LiU6(a|U-7#yh z41=A;C}=9L!oulEV0Twn7>$i=`$dQ6G68xo2iJA}EZ36D1LGNR36dy_BY0|+g@)w6mX<>8}E+do*c?^OgH+)fjuqVfuYl`jV22c zjw!l~IQFno>7o}4x2b?FCyG3$ITGG(-Se7FqB_fBU~3D|Y^Mnl5yR!%K4^C-Y_9 zbZlY}Ae^4NCw7F-WdD9M0@>JQv`N{oC-6P{e%9oM`sFj&<5zabO+zazGsV$pjR1I{ z(dnJB&hnbXGPSCxF7Bw2VerupRZ0(PIxEMk{he6Y1M}y_+BSmmicNk8ucZ`_v?2(0 z{Yd}1{=D3HRvBO)oS>2Q7<2nn{eh{L2X5+jjF&T-AO9*ff|~f5Snf`m}TB4yo_eH z!hep8%tcEw5mKGNk}RG2;IX}zX9Lbge5bYKLD@w9S45m^dzNk&)xcQp z8}zdG9nI?C;p)vT3AOW;R?({D>7;ueSn8^)1D7i|s(2_1FdU6TOd)&;`qlKc?%nJ4 z!v~sSJK++U!w_GgOMy=@NP)ah9TeFwe;(!i(Ks&RvOd28+0WOL4*eNAWiO({_872g zCE-X!tD_krqd{kpAk;|_{fMEvyRI81dO#`^p!asMr4AeyqrO6?q_1h>UtHIx9lN#% z)z2@j4!G8Mp&6DR5$MsogjSzx1&giT1(tDpKfu;oJVJcZ7WzEynkNlVSZz#?nYU@K zF{GVZ?*p9FhS}if)*O+ayc_C{NU!n1ySY3MP`}w^|9@;!?cgdiwh39s1!AxKJ(b8% zZu&|Si|0MBF*ELWz|h)RTFd_KjzH+Hj&yvnVEh=Gk^Lp3vZ}IDzzQvIh{|+9rVOo6 zm>5Vf7-`GD*yj3VK&61_ZcRf2=mzfDY_A^Eb@B>|7kIfjxj48M^!&nnqL&{t(>AEQ zERl0Wfuj8cvbm}H4Bu}!m~#_Urq&}$xVg{qU2$S$ucUEabV<_gcw#lo1Z9$@GmJIU z#t}(G?y#8`lxg)xs?DypWXPi;#ee_xAue1*x?JyD!-zpi^Lg)&ve9v2$DnAYq!kD-n$ypfj{W(aA^h5{$e`=7h~KJ9XL+FMD>W+ zyzk2dO}GHQ|7bFLI`f`F1JE+HT#H^OxiC|lTUq0~V7*hSz9=Wt9IG%gB8LWItWTIS zT}?8XXP|$4ChWo+TE*FOwFeaLh0-L4c()%4?fngeUq{u@1xr@e+|#N$(Pi}=fZ$t#;I zL5ZIap%SISHv*%ZeWJ>br5s?%@p!!P@8!i_#V`ZE->Fy7$JD~XH&@zhz_XEKMbY9| zpK8OT{U3+}Lc|cZ{L6Xod~=Ly2-FeG|9{9%4ZAnFh zju(l!6{yNMk-I%#Gg=t0Qcn*V*ScCgZ`Fd{1hS|I?un#h%dGuocKWVa0R`17)2l?N)I?G@V zXEY&bR@+HAflf%R!!oURYE?G2?^XP!>DGiaOL-L~Ud!#(d{VCG531Wg zuN_qO=8Spm<-@`0C@{qAw|J{*EmODsqk&k}XK$_|{Qx&~=dCmn6 zSjd8G>%z>C|H$0=|(@AO$C8EHUQy%(_?1MbXP@AemsfGmjVKm{cL6qm-w_zt2xX5M~>nA@e<2 z4`lR?Kh#S@=s{(0N$VY8{pY?nkk+O9lez@~9u7#wo}6-7d>8`~D@UOaoxls2&h5!T ztYV;b7%rnw3aE3I#eR6iWCQAy_J_Y=O5jUo-ESp-(#h5ELME#}Y<7faLT1vax}Lt^ zx;C@<+BrZeevME!e0C_B9NqAkI$?){G)u!yd}&>c@Z%Oo3wkqTL|%I|auw9$%Ln(P zwkGwFLyZ1_-AzktJV-oF49M7nd4v9Hy*dKK&gQM%aQK3=b_k<-=~KN%tQ-*0Vp(_>KfEYQ|M)Bsj1 za04cUeA)!Paa_;uVXA+`yZtM;?A%3aJB35C=9>`M^6kSVNNWY zi|lqqkQsW&Y)h?%UACkXNystUjT)aNa}3|Ey=~cq{$3^Z=3Q{d>2N{l^R}z+6Hgo@#BBYFl^su7zs+nkzV?pzJ!%C9sCY!mZS^o6tRTx7cQ-QQ8afKA}Pf= zq)eaWy($g$q6&3WX{dw^09!>L2Q;B6c*{1Kh?L-w3_Z^mT&m-^JVh3_`q4Ba!fEU0hZ9VyDwzdDhT-CT9OUUQztc zP%-VK8a%gVNq1)!+O3a-)OQePGdqElZAGFWWLtTZXlY_~T2B1)x!A_}sxx6f0{;~r zP0AnK5W|gvp4Al}7`HVW*hzWVCm6nfE}V%+;x>s0lXbXSEjdQa-Fx} zv<~J$sy4nqeO^!9nJOwAGGDF79}tVF_l64%yr=|?5p7DYhOLq&7z|9oLf|~pv!8E- zKH69w#=ePK#=;9Cjpapzz54i>quzpSLMjm05R)@ipRD;=f$6NjS$AxhkeUwe{T$^~ z=e_;pFj7&|p#7WpE4USp{?Punv*%#?bDsd(E{EH8$npVul0xL%%a3A6)ZQfW^=8Yy z{hcYW2u_(05Z`*9fdE(p5K2&`By2!nx*19`w)o%X%k#EDA3n1O9tBlCw8JJ+8>(tk zU?mfBcU{P_4ol@Pm6!(lS0cGwRcZK2WGhW2PWyREJSHccoR0;aRtx0)oBa%reiu-& zpr&Ed8yjHs#HpH%^+=_Z>Jv$IuR%w$BaSru(8%W_mdvrfpqCFH&fX#3J!Su{jMLPe z{B8-Nwa8Es_VdWX$dT!-Dgt&)9qPp*_}ezAsoZeDlK|{wMzrvqR)@o+;{Hvh^!30y zJ2ea*t4u6jtbDG+k5C5?r-@L{Bskmv;o|6#aByWRtpNIzT$d~ZEa%ugwf~tx^Tpol=IS>$kLk$Ya?rL`gsV#cy2^JI zcyLPCC!sI(VCidTbFxl($fzkll{nT8$dE4qsMX!Fo&uT z-uJHDL%qEU5|w#0XH%SLmatojX&LAExZfLbIQ4z{*E_qI~Cex&M+NG;Peq3sji? zdZ!9hZf;^GF)IbLO4(AKs;yZ9WWysJ0=NLCH1xc|dv`hw_nMZufCwCrJl6~LET?;S zgkJl+h@GYF^%ypql>JAZRDDp7fTFSbvYKdzxApW9x#6D!<9$a$rki5{b1tptpQ7sP z#Xs?PbAG;0cOr}mZQABg^#ybb4Tx!JO*3zA_v<0(c>%EgKJ}t5R7%@@o5ftqy{3b4 z(rbda&7br2bb~5#y|Q6ranvbV*@kPzk!0d(9Gm6GXy+BkgUjN#+Fo;S?qcynmrWl9 zm>&13iJ$r>O0i;Q(m4ju%RR4Ug_aO>zmGkAzY)O`_$N1Bk)57Mtdk|7xP^=#BIH)t z&PeQz77%2!G^YoPntM41l>uM`&yDC=kL4b zuABIvl8qsEVMyeJ%`lq?t*zodSjgYm*kQuL5iUoAHN>OPKO#^}-{4Z_8eAoaP8BJ8 zwXP=w?+Wz+C@m$A4Fax1W=vOlH6xq5|6Dwo=|96}_QFziBG~C`R`RX5>QQw;na3L( zZ!sPE>cSYKZQKDVUttu>tOYC%aQrW2@YCr zEP>-*+l>l+cEf4=zG8ZOzVBfXTfwey}h_RO7!9!WU#X&jZ4`n2Dz*7(tek>V%H**Y%1S zd%JUOrTs7hPj3F1T>7o^yv2>p`tRwFu9xNRdeD@*w?HyND(1l0ib^Ulhdc#&42Ov7 zY__rymLoyS^`Dyqo!GNMA$(0|)O52LeR_5C$K}wVWR}e`7&CGzP}HJp1+a>!>%UNv zlxI8F@cgvl?&q$BTHJli`aY0_%=zxaa&xfY*L#bSsSaRJ4DZk<%xEoc-nDK-__?ol!Z-JZO{fSuxcB+nElCqSkF1 z6-r3XR3n}c8cB!{`p2WjAwk1_kD_J`I=sOtvAiJqFHFoZr@v^OG8)G;ucR-cWp1Fw zEHUuVm%=@8lyb)~hot9SK6iw#ux4nC+daq6?_ym5py%tGe5g21_7X|>;YO=<+wy#WY7JS%uurk`g0akG>Tt>`lg%7ZE$a?g zzTS;5!kxv=jYiac_rTMxieLkw=z4R1KWXl`l!4EVnc1tW{f4xLLYybNuE@Izeqx}9 zX2At?3`2Lmw+Qbl_YRlRjq^PuJWtcTxU>r_!U`J^Vq$r&riaKM$-fB41&aGt^f`$J zB!YM44=Je!UXFWUS;7*e9dQ?7@AQOV&2D2el!L+{WkymdRQEAcdH)vSvBuv0SRdH& z`8CZG4C>w`17k!XKU_k-0?3fQ8jjS)M6JP#Xo$&;8K4LWXg17x%k2TV|GYIiT&()#r? zwiAJ@4H+)N{cr4n9i01IS&P}XnjDbL7P3h9*zrQ_v;q|aT-pAx6h8~2u@5U}I?jE2n`OHWhj^wEpZ&G1Yi@63m z%y~f8?sDb4gR>_Nn~|+}wtU)-u*e%C=%E!$#UsG;%d^6myR$r4>Sz{OyI{g2y2} z&Qoj9ci8GT$G-6fzZqRY$V;%}e$ATqD3~<)_6xmD)BAa%XPA{bcS}34!&8ILGRzqe z{^tAFV~Aq^+xQ8O&I*$s%P{!rS>KtX2dJ0r8U9J}4n`4OC34qaag%SSZS~!Nw`AHH z>-LNPVQNAsJINH>*ZXG2=mq&Jitt^Qj9~4S_XHkmAQ$cQV ztIASX+}Xj+;7+Wju7W!o9CpiY5G{mK8;GlYBdEZlLTYK_I`}wqCSnQST*i;q&sb>u z!r8fkv=k%$31q&`-j14n#Grk?Bwb}a4#GmI=^f26aWAvQLabbD8LwrPk$xCTf)%${ ztxlo>E`d^l>~%$}Q0v!U!6?P{JXAMCZ<851?q9>YIpf{q3*ERVJetqJ~Oz&`J71o$P$pI(j z#ZJq!QL08y$Y6@17}R(AcltszAprvipsyLx?4uOs3F zVZykdkccj=Ea>AN+XH=Jlg+PfC)Ij;Z7x%)xmFNPNRh|<*1jL6n=STq%})N+6?Z@1 zpH}vtw@vi?mu2tmW1rhqq91iMk8%Nz1nK-Ex%PdrXz(`VIXe}u6pbALvQ6K)BZR|l zyOZAVISjWqS2_V^Y@_L*{LeOnyZ`<^`Q$q7I;54Eh*#m> zC{gdgw&ivw(#Y6mdj0eTevWa2ffIfRqJN%-F5!7+_zxf^-ERNgsAGI{UhHWyo+rc0tg7(WFMIOX|2%!A&aMUa3G+&CktUCyV)`` zaKA{-+Pahbyn#&ch~DFtFxO}}Pqk`E+GWx>jG5aTG-jZ_Hh8H-Wyv>LC(Jz`d$d`h zA{B$~e-Z=~{C`R{eA||5t+1f*gP=+G>RGwSHer7jqy3#&NXs*(A0q>?uUt#(+#c=H z5#QU>x(4iL79kKn(XYODVD+4P|JHqZ*QUqVBHLep`mC>_-1Z|<-_-f+E3lS#z+A35 zIlo03!TnnV-LH|aI6@^5Ke6WQ-r`aY!*Uuo(a_eYE6ozw=H1b?aA~9zXHJAw;%`nx zr8im1vZDJ$a%JI%&!Ou<$N#hzn-^-39Ht!=**bXpnyM%2vWiN@Sfs>qV7}ScNuwp+G4~k$S~uJ7YMD zgn$L){PYiFr-!{f>hR?jWT-GX;%^h>@Igeh-b;3U`h@(vn&TA9eNfUm3P;GvdN+h^ zW^-K)zfNY`yvFQ6kFDVcr-(g@B6|{X11dkqte$A|)8w{dGuT$p zXE_ftZMJ+OjkjTTa}JQzvI@oh=}6RaWh1@Ol6)B3i12To|Uenm2n&(q;ZF z3X}(Y2j}cTJl=|Hoe1)Ft5LZ*@D*ms%b%f)ss!Su@D) zj+l0;{xUq1`qsrgQKPnKR$Dg|t*g=F(G+BbT635ew^ue+O*2n6vDmR#SlQjH(KpiK zuSF1o?Yjl4%>^lLTQ(FOYT2(er5c@-@Q3Wq4>3ZS`CbV)9J+m>N8~lr^nw*|0 zu>2ZJ_-fByC~8fNBKcv1+)ahi?eZjk=?y9I-gq~{2Rp=MJ$S&{v0(9g{v^<9MLs4h z_*qY#WxqVv`V?BS)*a!_{mR5?47Z`O0sEaatg_7hFDg~Vx_4{EFObHru|=0gdYsW` zm{`V&8uBhJiX0^ztg5rDay+jf0#X1)&g)sld7#k#AIPnqZzzOMB@@WGyB28|e}G-&3JsoFb|* zV$=t?tsuwp3^hay`!^}sHTxZUwgWTOuUI0omo7D0E$W0(Uz#mo;ZzO4tp)MSFB`pg zR^J6QVJf@&*&Lq_>ehec`9bCuFpzlo!+6GvDb5MTmICxvil9V(X`R{QtBFu|9_%x;Ndt;bB*?l zJC-H?I(W6DwS!UI=&o?3P4x3+KBf>sodoJ=$ei8#!Vo>mMy-58{x~kV-r2r__}PteyAj=^FCV2Hy@jq)bfPTJ6}~Vpu28LbUqeqh|>|? zVGM^0kf@f>N`qYFfe<2DDo+xxC{jI1aUN0ybg+I9(RY}DeV%qcr6F;BcIgd-pHC0% zcUH8{4z{0J=l*kkzLhisEF{7RH$~<4d#<=zTU{ObEYgN?(C8lIm{lOY^B<)P`3!h}v66XFPhg2p#)p4sUkT_kUQw0jN&Rj-xfYX>?Or&bKmDtTEgr(nVE zk^_Onc#hfu{c>4qgD!>(uOr`0*sz*f+#Uq#9PK4OIBMQ^pjiVHF;u{6owZTXfvhPU znW8XU#q>%$P$?w=3U!TmEYp`&Si(AT>%E^2Mir59>D-uRE8n6eE~^4=17|bC{Om)3 z2Ir|{M%Z?{A+qk_V+fp?s`JG4L?riYtuHu%PPV98dot*+sEJvE|CQk^i{wr5KFbKYkKr2R9a5x_pxfIrTKTV$sep{3T@JYeT%%w`8J(Zn1|IYxnKwlD_3*3HyVopG7ALNhIu)xI$SQJpz5GSUMe=XR*5((VH{QotcP^2nWvL_+PS9| zdr@mOY2ZtwO7KV1e77<(=(&gb(9A;u>;&GhwH=2{%rlPiy)#U~wVBNAZRl=RErLwh zD(}#hv0PR)2iOt*xi3|_4!SR{@P%X$52-)(f0*-%(3tuwI!*VrS{-XZG(l$TA1hRP zzq+kXKISW3q4$JJGcc2(GM%5WFq&-sf}^{;XDbEf{h4Z>?>l_kvaX>vI!Sy*@hg62 zbeQ6X@!Mlr*6qwZxVcxjOs4SbM>pu_1A3}tHnny@G1Tho_U!XKkIPO}=Afr8t>#tu zG$4TOH-;W1AU5=68K_1QeHi?KA(& zjph9GiHe%n-1G1a+Li}aX2$5#F#JG8qhg{8a(TYak`mad4UT$zC81;2th3GA56Y^rS3@O%GgWgkCJJ>zJ>gtcCdu2Ur`i$V!eA}^Un%k}|3^D$!SuTvqlY*M{ zi1okmsml1ga^G?%0XuRzh zr1jSGt8MUZT9>U1OmNmEnhzSnM`&YtAnm2II z%A?NHn%3Z{3|7S|lX~OKmtu-29#aNTG3Rf3)|a82GSnb#K~p$gXa>RWT-h%6(8DP8 z;nP)L3Q9R+OqDO<);08sWP76@Dy)oXXiJIR$fPep_=jp!xfMrLzfYFP)Lsu+vGSc= zu%`eDFSKT7*9H&EksDqJdG~|bGJV5cG}jdSVZlFqZWL1kL<`X@FdJ~V?r%~vESMEn z?|xr2mFAOmG-(OUukizW^11%GmvMZi6u%<5FQyqvEg7JQduImSxEnA*KjKnxrl`vj z2=c|qLsVT@glwbjo4%`}YEtL{$ksQnlw*v?LY&6!UqT5fmPzej_!kz_AABWONp+MQ ztn8Wi{s7h|FyT3PeR>8J1Tu(??ysCNuEX_onR@HVAsrI&!^|f^ImQLVPg9L_Q~_DO z_^d9Ch6JICQs}O}1o)AwCtt)r=5->jI9A%cfw7*sQC923Wmih8tr54kwN6D(LwDo> zX&X}u|Ma!TtliVz*WDGhLqMUs{?USY?#ai5pMiy_IqRZf!n@RCIciRiPEU%^co`s& zGRJ7;?%=`-weD&t&_nrME-j-sN~i~yI}9Jhcy&_PjHZvq(dq_v9XZPR;-2xL+*NJB z*Kr#=01RPiqzf=U#z>pVYQj^aThfP(uBo7ow=IJ*{fKB%MS}M)i~hH;&fiZ14vBuk zJ1Ng{f{*t%vS}ysc;!1#5l=$+NFnQ`8fCMw7^b0VhOYw)aZ<1UHLXd7T4gg#?+**) zap#xeqULU!t;Ja3S8mt!kIIVHdH$L*4(WR1wo!CY2oNyC?~m|z0?n#*J#;{l>@9`g z_$ThFvG8h~*m^N$0xelE*g^tren|6uj7_^&BHh^8$HUj#bh^j20S&d;ks`)*ulQT zw3?4wGdocd&xl*NoBMjlFaf5w0smY9j>_x>5l^+JzO3l$!T$QSX;C-l&Q;VAM$8Sm znW5wQ$X9IEk>1FN%21Fy{LL~dJ5)k&hfLzpjzAsE=?_(gB+!MeD$0vwnF~uD!Fg6a zsv4CigDPpY4k29PrJ}WfNbnN^1nz(laJZNy4uE2;rGPUx`*Bo#fsPM`&GZ3a-e7XR zgiFKP?jkx{VE;K%XBMs3TmBNGmRrp1?n-+i(#hm*1T2qw{gG0L)Xk{j|Mp3d`v(E& z?-ndUlzB}iX zD5{?a{G|^bbBqmsC-I434EqwB6Wbf&LI}IhS5=38^4v@tCHn5WM^{-nH6Qc&k%JPHr_%8RkRK-EeMv(vz~{P zi%6sxLOgdHXd@?0 zbp+g1Yiuh|Bikf2GqrvPbA2AI*ia?Qp-YX-mP@4G6_pO~Gjp*fiDOGb&H)9bU}Gc58GK4D7}WAMErog8C!Gr8mfZ&RT2 z@q_tB3Q`Yf7UWQ<{n=CEMuH*KcvpULEYlyg?=K4iV!V@vPN#gP^TjizL$`;X-fq~Y zMs-ix#Fu?F`{)4=oH{w=A?F+F^G!1?`<^tDy_hq}ZrSQo0=nUf@KI=W*@S^YXc^tI zxc|V%T^Id``1bQS&)k*wt7)b^dKV;Fo<;}ni!s>Dt{NB=!v+4XCb_n*Z(Yw14cD5t! zj<+8v9}O1%{h=B{e0oBmz)SmKfc6#QT$eITbQCr-(r4~r^w8gf3nLbW8f#?ua#A}I zOlkhJ)2W_UCUYN#SKGnpBFQThf$+)N%j8#zd%60evkMu zDCyqJJNkGD-MCH%%sBX@--1Mw@c|zN19986-X?jSAk0&%9+8upmT6r%_RVL?@2;(r zMbPJ4AHM-tI%1|6$f?4fc-}X^__+5v@)a{#7W-Jy>Iv>&-*%2W+I|2u`Hvc2)-3)*kK?~6A=!hAcwU6n!@8AFBx}U$ z4CQr)$TWTi3s!uby!j2Mi>;!MN)6ZL?$FZU(JXW7pcTM0Ek0Jlx2;DVM%nO-gfUC% zDoHAZea-NTLNMWy`;qSLST=n)1_h#W;`{%PT>AKTR7tm$2$(T$Fa@*q$=jtHN@N)Z z6LPqL!_tTHr}=31c%(4%$a2|_cxB!7aH$NHokpp~64kb$v<@i5P{3kT@`~oOWwB0p zwaLxb-mUwEnKt2lI?P4Wh9Akya8Ed*NyFeroI$6R8~=Eh#LhfLmf~Kul36Fnzkc-? z2<7YKvGu(&09Cylh@3yCUXEq28YEp%TdQ1 zC5vl2<;Op~S9(gJ&_d}_1Lbug23~rgRO@ndhwF-I*aKU%ReB%4TUNbkksOV&kXL== zGxDw<|5pAN`^#r7St4)8N%N9ulZ!7~EnzH|uBw?Mm0EpD z%YK)=qDHQK8aOP#Y59zW*a}}Fk6wR^Y+d?(9Hln_ z!!o@I;Tk!uZwQFxlxr-aZ@XXaxOux?BgvZ*c%}%K+NZH9XJiOx5MZ^*n?Lk!r@SZS zp38p+KHa9bMo0+ffcOk(yW%mQl*5k&vrcfJ4TG8(B;){Kp;55C`u;p#JUn4v4Bp4v zAA2g^1FxI|m4fxqlyufjw0-(HTpGQB9bZ>-G+}LmzrtI4)$|z7Aiygxp-n&gSGR*y zbZS(GShgtzhs`#k?7_@RDN2o)LpfYX{HYMK^7fozso@^QKBkIzdyvO`+C;C*YcFXgH9tF`PbZ~ft?%PTfk zL%3Y8-x}(>M(*GIDp@ucibLIL^3C&xWW`@DlVoP0oU-iGG7I0FXunl{aQ#CPsldJD zOOBUXCnwK+^;_i7M~9%UcOriXMo{kUv#aIkH@!(7yXy($!Na83ZkRhCS!uvNVlHWa z)0y9sd5_;Dt2RF;k;)me;IOyIE9cHZSX@^9`FnED2=EH!rUWzeJorl$uYz<)H=`YF zZ5Mf2jL}rUf)E`oj?2}TUoH18K2-j3`B5?pX9CPV>)WO1>{I0Mnwj$MFMLJb?egt!+ay#4aS;xj_K3K+#G#veU`OeWN%XQ!Vg*<{i z#88Lu$7V;`z=0q66_t8b>{%Bm=u#BCLnn#pKDGzb~^saK0R>9E$ja@;8jT<1ss~2SK*pDw~r_WiIuwD6Wh= z=Op>g&8u|Vi}B*Q^2$Z5w`eQdZH^MD&D$!CfX~jFpGQS(j|ydBGnix=w1C+ zxw~aZ*;P$#iLSbd#<(w6lYurmUtW!Yz&~^h%fhAalaGD$ESX`AO9v5&6Y?F}`F229 z^W%Yx-s~&>G&KUFP^!qgj>dCFkNiDLZ{ew*d6NWB;A|*Yo`kp} z2JM>fK7GbpG}jJlG#KIm1;B4>+n`9ZjeabC-Fu|!`d{d5ei^P2i(s}~;~}9cEQJq8 zYUKDsIWh_}yj8Bbe~t8DNqrHvt&~+Al^aAMr_-5Sq|bWYfYlRbxNX9|*XM8aLFh|> zKUawTvZmra@Lom(RrTAvy(<}w5k|{MdyvtzLRz|7p$g!gFMaT1I{7E77me0IxcN#q zn&p`M&7Tnr-r_27@CYyvU?7KqK!MMpB5;fc1KJ@d6DAur2CO5zj_J}*JLCe}vt!?x zkU{6%o|6;Mvu#V73FUlEMzMGEHg_3jBr`pI(mgZ)Au@wmTI@H*OrLfDh{#xUdl`rC zgg0nS{-Aig;lyv<_qPYmy$)ZlIuS8rout`B0tGDJacYMTKaWA3;X^3jsaWLK*yA0@ zq#)dM=-F~gbFJ=$O_wZ`cbxU_^8BAZC;zj(8?=FZ3ox4z!;SUO%i@0GH29)Mv6J6FpsxBf(S_G3RK6pJVR z_bQqD&JRfwTfayssWZVsnp)~O$ri;g~0F8aw2Rhe4*^u4lV z+37gT9_n$^JV|%2mexZ)EAOZUTjYLC_%|H&F8Km}Yi{_0+`1D7ra`V<_rO*}sQpM5YslCdxMIl?$bxhG|mz-~e0fNne`Ejx_7QWY;kvp?EGsXTzL7Yt*RPzfb?^tV4F zpLx6#%4vm+41+)6ySX=>2lCZ6^fU@D{o2-uvaBm!G6_2ZBw4oX z{W6ov{m2@*1fBnb@e#>5wq{S z1tS`5k(SOunKOf{0jlL~U%pCC8%*J}>=H>2VU$xRq&!n-N* zhDRW2zwuXyf29xd0LGL*68EN{(8tjX4nIhv`Qx2&==N=raCDCc-i^C3bE%!qGX{33 zTiZM94ga(dmOls0yh$dyEq{b>dwhd*zp7Rb4J?^`y8P(NJLPLvJcrvrrt69s&Xg}c z`Y<`VxI?aaI4)TIZl<(BPMg^ymp&7hnMc1vKKH3N=LTlc@R2v`F*3lf4%c-$AX#|K z43Rr`YWY}J{`Tej_X&Tl6bGV3dfPvVZZt2H(deu6D6q8>C?yQ05I$EKH3)TwgI-#3 zH32+4G+hR-_075cAc6Uz)c~G-6lQs_4n3-ZaX(%-mRN<{KJ{`RH z?f^9w%j^)~PpO4N?~JXhhCH}+Kz4SvX*s5c8l(t{2!aW&eGlzI!{WPy3%y@fcNWJH z^J}9SNU@V-FtG8NcryN4Af--)Pt6CpI(l-yaXxd8dqy%}@1uL{aIKu{fgSyEi}n*= zk@b&cWS}=8tt|txV_QFj?FbHmtJIk@DwnJiydR#5d~N17x%m6{Lh!DVN87PD9jBnv zpR>rx_CLtae|)hFVupJ<4x5XP;CiqDTx$fvaxj3Ib3bfR>~2|c*a3md*{^WLsxn?f^I{2!psH zj^*co0`F&^HMdd~dJYdH3k~eDNB=w!|}d&DgbF7 zZl~XggA=igSihOyi@}mG(ka5}@1+&fbihE%gE*0qLD{mcRhR$r@UMs-w#Dy7`EfFR z6pB0!y_X&gOcdh)L!C88n#I^_9BU|%E({`U#kcDrT?OAx9Izz50!0&hOyO!+u|W>V6z>2Gq)ic4fA+9e0zrr`id?rCRUJTOaQ z&&g98x@6WNC|BEk^83~36sqj}h%zYp1v}G!;VZGLm_}G8^72;pN9pzW08Mq+rXcYhE z1ReQqc`NBiTfC}qw#MH}_-PH(@S+Re;*&6)DiowKALN5-#dxBitY0Qj|Y zvHhi?vP_O_LM3(PkT-r*&MJBaw|ex;`r#e2;-Pl=mlJr_2Tmx#iiV#b-6xy2c1nM= zO6JX~6YQpt{^xM;XsAopwI$?`Ih;|ikawK_Q+XZuX?Z!Wj~p13G`6|0zb>D*R6ek* zRUTZ^rJuTSQy=cDq!J&Ir62i*T=Bj^w9|5V_HVb!)tk{Kl)pGUBG#ng4{0CBhCBf> zh1NILIpZC^vY{$6TzP~KvkGf+0phVibAOoDSO4zdX|e8VoH1bE(M+*CFSS2#4Yp z4|eu6UTCGBKrb#C=8{@2ja8)zZq6<JHY}24`rR0 zXkI79awmDv8x*wCvH=721Oef)n+)4k&J;NZJH{Qt@^_Xvf%sH1d^=)# zJdiIwvQ{>3#i{Q24yMC>@Lnk6_wnTUX|<(#*dD*#!i+8^NU>}t6!V>if>G|&V12PV z5XD~9Fb;8xLGdnuVw|X*0i2AW{SbdFC4R7ZU|bZ-WvRqcxhusW%m`+esZ=vggad9+ z;5h@$<-Am2W5p2eaoRNDV+adF!7VA{Ufp_CT@GCBdK-6@4BM$0D-)6*bef%$(^a3YN z*mmmSTUMPfmtnxo4_I-)Z3HVwcq2m-PLQCoT#9e^@u_5o(BA5Xu9fe9=LV^-TO`lj zuu)=I`Jq=sp&X2p==y{F^n1U@fW=WVuLktQp^eedPHEZpr1V0OX1ihAszp8=Age?j zW<6)UXBV+!)rIn_`-^4$s;4A_10*ZaepttO2&9&Q@v^Js=IcHI#dD5ik>0?TXJp&( zu(r=Xe&_vi8TdsH{Mpu+&)jGdhpu4&2knRW@@9YV$22^=wpo0W(oXSj^vn^4bOCXh zvulDmys`?YUyg_c@x0$I;O8H8sJvkgmo#v20xOtsOlc%CQ{Mc(GjQ7DQ*z<2o|H7& zX-E%;i^;Jk9x6w0`vbR_fDff`z+$xV2zkf*j*!9UZ9Ki>L0jvW=b>$>}7{#mEWVYpSp529>ed6RtW`VI2VkDnu_ z&nm(o$^tp_(;pN0>esM!Bq80;uazfWQ7gwzv+jq=d+*wNi69Ijwll)_yM;-Egi~6zR!8l9#1bPYevl{3tCcGTH+CGK{ zgsmxQUA4Z6x1yLYqAKJnpGp;`Yq#O=jbWlS%eS z2WH@BG~gavl!ct17JCGii*EKmg&l&1GtLw-lX(w(;U}Jc{I_qt^WiU@4Zll4Lp|b2 z@dNA-SB5Qw5?T80XwF0&jdgYjK(@Ei;}|ylD9BULrt(eYl*tskQ{FkjMgf9;G@P9; zs|d-A*%i7xmj30OjYFw815IU_*LYQ9kFqY)bv-<1@Jpab@Gzz#r_AzhXe!df5Zp;{ zDg-tgjjO6S`vyUt0t1!)5-!(8`qLXLpuojcaptG#>>lD|APA?RNVER(06UhSKdug7 zy0w@!WE#BFJ&7g6iZ=(()9lNT2Nl>j;!nq&?_AnWg(a63XUX|pHJEi?z^k;ZY`jli z%K$uhrK}j=M?7*sBR*m$aT8C>lQWq7M$SwYVGuyKCn(Jf&n!QRuW|9TKek=cj)~AV zOC5}>-wef)v@OMSTQROp(|e);#6N9MfFpgNf$FR&UhzFtQmZit0(>x4WZ>f|58 zDlF3^Oaux|kt+GfQXBX%P=rF47bSQKF7FG-2Rv`$LkQUoG`$ zk7bwvXBgW@8QRqJriARoQv8QE4q^Z(qxF=xJt%%qShfq!zVlavcFQ);Z(^N^#S$_c z8j#ZZ3Ym>10Ic7>Zr z9sfw*iNYVtlf#YDobSXSsSEUhjv%9ZF}kTgyhvxpWjKEt*ZJXfkMOJRd{7=sV%PgX zkMwr5V9Url>Fe00<>4vxwM`48ig*gwLMaZ*Usl{B*We`i;r=d--?d}C^mnxa=Q!wd z`W%g4f$bqXo?0ar+<5~Of06kZ{0Jw9u|1?$S~~D8oFT`G4PN;M)-Aui_z!3RNhuxN zA%mNrm5qbA#R7v>mtOc)`88J04EA<_pJMQ&u1Ol2d%?52<BbTwQi$QX}v@(->r;>dO>4# zmo<`g(EO~HvW-|<(RW?NqtOV2%IVsWR$%8QL10+@Ek(NEhgBK8qoK3C4+HF2WrkHv zWw-+tTu{^UJdj0V3WTD`r(^HIGr&NA0mDF`zy~#9A2C1y#X1HiK&DRyOwQ{C8K1EF z>q}O)Z0^DlZKl8v_F_q1|1b{q!k?ZkWp*m5FUG}vB84_*;P4)c;`$jlN-FDc%?$*2 z%!>6vz?fdw2v{wVb_C`wOu*a+d&jVR={K*q`;jmAV~O4GK(k8UaZ>=N#=t(g(0FB% zWVZg=(;FQ%dtJn*z(B&qu;!P`kU2vReMV_X9f+`0n)7u6VSuB;8jUbM2#R->foU?H zhCw+hfpVZT_^wb4V?5eaTC-3-xQ|v91h{<}IlIZc`JSd?MmVHx>EjACC>teZP);D& zBar`U@TO%^2?Bm&%dgA)F_Xuob|{7i!P8SB+=ic>0PRvyCxzZD8N6hr8Z zc)>r*r{87xLTt#fxQ`wK8Jw-pW~i((Wi$HyP@X)T_xCp8^&flSsl<6@LurOc{(IeL zE0~9YYKpvw-+WiWZ{<(-Q~FH24J8lM%;AFGjLR|>nqB!7hI?GnFPnv8huK@g&@in+ zcq>P~d>V;SU6zG$H4G2>aVCAYX1DMl5V+5-(xif`-_AsL37^kzSMY@xBL4YZjHiPH zXixlnr5S8%XSq*gj(|W4_HX55`_T}4><*s(97tl@2{qx4b_^8hKojaE>l+8HbPxu~ z`21OSvnUe>rF0MqgKPX|4!m)8n=ereCRHJv?Uzb4w~u(kwxd@!qP#sZF}Igo-<_dDGM4vC^d&TT!@mB?kUHfd0ItD~at+)fgz?*(5wmV;agc0|(mG z>2?^dj>$mr2Pf98EO8uuh+_<-KQj~MfFJk_m3O`J(e)FPi9bd30sAmMN#&hJ>m-rs z>RusF&bza+;Pr2jlW_v&a6E~DQ?8`LU@TW_FcI{hv@_W5$c{s4!vyh9!#rp>aE(!2 za7wInVOs}XtEO{RWL)}syQRHj0M{7e_86W4!qq)FNJ8fgn}nw5($9wkt^fl82J#X` zfQtYFdx-&vlF&1>J5cUQ!H8Uz2ViL!l?3DLDx}cOIGn{A-n>JGWv+zR-Y6gV{4Zq? z2S!mq)g`-_$x^`#@l}{}9gn7MY&>5=GIXTLth3oN`RuQ+lx4MCp6beia58_sny}<- zrT|Y(pYDU)ocgM7{P~`h7aX5WC4LL?y@p7m(3^qKOIjG+%qFTxR->&c7Mzu(GNI&f zG|_mVX_!;-%3(CX2%_}@{`l9#KnsIM9*{F49O2glV0&6Z5FkK=vpz**($Y9Ce+UYM z(Rj?q!6PGuXPzTp2{%4k;*0E_(`-CKLz=lf?1HK zgZJOR$NZ5Nzkpy7T#-fx2P-_hD&-ce`7^2yQ$UAvT5Jm}pZ+`ywXLr`0)wFXF%+l>dq}rhyTkt5-BG>nRNiNI%_1gPD2Guq)4E z+hn?kf|5gDg+JmVst!iz_c(Z~^OhE47v@j5$MNp)R|u~-ab;vV{6GWoNaHN$#+&_X znSERh#A9#aiSKZRG^oP&&DJd=T#Z5$arH+S166uX1C%8WT+n2pNSEXM2yW}BO3g%E zj4mP_mY<3@&$ZAk9#HO!0LN`8$&q2i<4Pm+?@-9N+NQW1=RqJ2317_>C|E5M$5|3t zD1Ejy1_xQXL4hO&42Vyr%jNOBMIekVD^%L6Ff-4-B!XF44hV4Dj+UJSgPAn^Y3c{w zgRN{|Wwic547k{8VApo(#H}&KsCyYyQmdz|@7lz*$??U@XsiJY3rv84 z00W~j5Ge4Y@e#a@0|P3GDbuyCLWL3E(~{#lfq+SR;X8yAn7KQ)8hd|B(2>)>4Esn+ z;kJFZ5EjvCbJSR8o?IFRZ^EpmhX?a#HWYMr_G3hN=1gg>V8_oxu#l&ZSYVr<2?bNJ zPr!bb*WGK7puQA-i321-!@cL!=CNFT}eKNm4hxc*dk8Mcz zkVA+k4QW)7fxpqz{M2oMWBiSntP%md;c8OxNBXesfW|uG%`Aag6yQS(%>pn( zpBLO#CVr2VMB}-~-om4HU^r<)}@(g7QY~S z&6kQlU`Qd(i1R>6D&^Mab1;YfGy7`%94$G^8iP_+4n^GZ2G`eBDXgCuP;mYXWL1Rf`oSN2y>DPHd=0$zg&eoo;#kG3XHN>LE*0DbxfE&pg=*PK|31= zh1%t?BgY??VIeX8^G$7!0`yJNd*`+C^PQU{f>XhHuoX9A`#rIgXH;$>0NhN2C7Ozz z0*dwu6zwPprSz6%7Wt(xpc7HDg1@^TKmYV(ICTp=D0`cL2Rlc1Cv1W=2t?aC;*0yX5fs#V=$`e9q0y^nTATrf9 z&ivtKn9`4hQMV%%Ukd!#<^y=c$^PQcW@N$baJ?N@No)I4JBM;&U+JTRmLvrJJ+EV! zDc)>zFF$+)j9U8%mKi^qzo+u=4gT3ih<_b$aUaPROn={w_}%Ju2pH{8Ajcoa1#i8X zDet47bqwm6*qmL_iBow(0FA)i@MZQiIaj(J#Z;QjxNKj?Tur zzqioQ4zWj>80bowE{e$-oJcBljdfCj>6?*0til{=BC#F4)tTd4EQ;12q?VJ>c9X}b z41<>d0|yxf0tNmcBltvp?x+re43|<1|G{}(*Itkng%=7DRL(=vvuT6$^^ZtR^)&3A zE0)?Coc@d}!Xnr!til3Ppzunb%}&OIBD|||ubD6-{^!!1yKK1}8CfsCx%@7{LE%V? zf&`U+jq37uF!aNZT~@AxfO{&LOok&CFONC(m0!F4=KH?*S4^3`UGYcSI>W&e#T<}F zZ!U`^GKp!UF(aCwt~AnMgdq+o%INw~80)wL_?HNOK)$t45(NaHp#bOF8ebW%#?j0C z@MJt~a0PA#2Jn-IKSv7_!fi>Bwlg#!<7^}VjM9phbC{R5$HKOia|iH~hCdxh!A!HZ zGuM=qKxBL*4}Rp6f4_rVp3n0`_;25mV-Na)`EP~GUZ&{xTlo&mr}ei^i6{GJhplyx zA#jW`p04C9gR-q{L=Kr3mg~OwQTgSncGOv%X+UKht1L#XFaf=_&#N_X<&Uvc;_%V&9+&_F0R{{MfdU`Ygnhz*cHCsG zj?Y-ZL_9Qx5#*q1qKc)myv@2j--JeCo?n=o_-@RNc+ zN0I~5QXcRkG8$J*s#332i~}*oFIYeOy0Fo4UOD8mQYpptn8iFZ0jng7aLxfIM+m1Y zB>_V?tM9PQk?Z5Ne?a}^06?m%7snL~md-E4;dQ-m87Ct0wTe?1pc_AJ0B~K$!sAYfg^iC#oNq4VG+*zkGT(zJX`nC zDf7k)4Z6UqE ziauEf!VZFI(zXX3Q^RDF^1*C4RTl2puL5=dm~9`9WovL6a2-yU zhVfmkx9P{#6#359aLsTc)f7JZ;Scc)(H`0<7#f#pGcgs-D5<1);iW*52xc#o4j zCiVw^><4+}A#Lp+Nh!7!{4s~TO)8K`K7Y?M=}!_`T!wph06!V{GkovQb1L2g&w9p{ zJGA}e$_r#Pgt1Q1cwR#{VYb|NyZmKSR#x}o1_+!DTvatqS4tK^k>_NJ9x#VG$}}}y z4(2l{_%TVHfMM$D$wYamV!y1o>`K|NrVOhuc@spzxfCv*mIlp&EB2k0d-z zEK&eJ+4wW%-Lyf?OX){?fC7%Be9`6z8tV!c*leHl%bjt-cM>gtC$=UPe~M-Z$Dt4p z26KeU<>_0{E^HPHbYfGrmZm8=w=eT9;Cvnd{668&+6vo?{S5!XAlXzMBxI}DUjtH4 zxqIM^R~Qcm>wNy;TT}26p!rMXTzS(w7Rqy1UoCg7>(VRatXxi62RlMk{dt-&AOG`yfgNBV zz<^;OP~d}_Fm4Qxp;DovaKhz+baS+q3>;3gnJO7K{nS_o;@?#vjH={d z0{A>G6thGKFg4-$vl(~_Tr?D(XeiiuKdl1=?bf$fEemPpUwS&Jjx z^6ic^BOU1%43b%$f2r_C5*>)fsvG)QHG>2^T0v= zvA(jdtDRTgnXf;$i1k^o0;B`~#mzHu`%ndL9V(OZvIJIP7VBY;xmkL|@$4%nqcJ`F zC{+X|z(9b3(HIC6_|f56CLrTfRi>2=zy|24JtnQ* zq$Jn(N%11AXwVr~3*wB5cH+KkC1L^3KT{&?J%?Ktt~609FgzD(?f`z$@RtqYObDIH zHM$uUiGLHq*ly{zDnP<`k;%E)c+?a$D18s$y`nvl_zQ<|#4}LOfzfc-4n-rnNgv~# zppYYx_v3q^n+X^_71F2`z)u?f(pk(-0^w|Den5=;kjDBybCYn&I~{R6J(Zx~y&i^e z-W|YC!XQ}~m$e?CX0(ikdbBGU4g5m+zGEDPG8*e753RHP?!4~LP0%R59HYsW$-)zs z$fCK^rL4&MhYYrlV51|pI{KRH5R5Af%c?8!5|{4IJ{gG*;~w}D$?$4H@-a3ICc7IM zEzieXdVv*SAi#hG3Vcur#*G1G&B|;|VJG9YCG)PMaFV48CS!#Z<<`hjnYQEFI!X+8 zwp?b<&flK)%%3ijFa8pz%BSk&Tc<#QPqoX6-~3wIk!C3l!7EzvXZhHVej%sNs+Z_f z7s(}egr&Z&LGP81#$phXTyMZH^s*D2UKMeEl~=wEWh70eBQA*yX5trPutZTx2sn9AKKozNvcOPybuvLNjMYHn z!C`K#0M19gThrBc%6I`hak{_w%Z947 z9}MAOPvRM^L@B}cGZ}+Ch3TuC{hbW%gRvO zcIoU&VhMezCdZ2*;a8x{ z$6yr#j)0#$bIVUZeim^1PgDYE^yxbF!dxvBdU|(UMxN}J;sq5FuEq)oATJUPOD4fn z&GR(&%7w`VghrjfpVkeZ7<@TP#Y`DLfS-K)b@%n-a-fY;UNK+E`$C*si!{B%6cCUG zZOGG)Gy}nQOS1qTr~$rM<@X>F-H>;#`4yt zsd3mwRp_=N<=_H%wzrALUsf7G1I%3VkT0bXD?{D{gIw$fw5F=<>#Whj>aX=5FU=q! zXtgmm5iqTj%OJbNGId_`mT({Li7nDzT!Qv-3R5J&?VB; zG%P(E`=oLD3~h(TGL2{YT(nLg!0HRjAD93G0S3lmAW-1PVkCIqD-3AI0Iupg2vfwI zQsz?dBf8%9?AXJQE9czg*Z@zFW5cvR_bg8HO-WT{jm&ClmXWSLkpltkj&z*AQN#cOcp_=?@YmJ3Q?_pZrIeJ` zOVfh0F|&dJF3!lnD19B-jP_O!l$M-nCyBI<7_Bru-vfBX+GOBwWN5SWbq+}D&VH$? zD3N21nxQlCnwM1-M=_Gd+HWq*8W`F${TyW`iJBXD0)HNPlIn66~kr#1l`fEiNv8|9&Pj z(0W;K002M$NklTVZ#uIItx$yYB=kng?ZbDC@g_A35&x%02NfEs96r1 zS+LPD)hEwCu~K%FES6>9Q`;W8LGIt46b$oAsA!ffd&^SMjgAl9ic{^|c+ZA2?yg$7I6JQ{~Kpq2u0-wi4;2I|ev{MClRptu@%=dgpU>ydN zq@RVE!jK!?WrslSOfJq}c0hLQ9FYahC6Y`G>me$&HT6)`XUbqpx5)9+Wx>gBkfPhJ z!fB{6?4c@^qT*sHN@Bk#O!0!_WpVa4=^PxuwI?-tVk&hEO`2ITuL8sDwWA1yJ_*;G z3xZxY=g`Q=W-9QLX|n0;XMu})?Je;z`Y}f$Wb}-<;m*_55SHn}Y&?FU%9w<4SFF;I zkcv>gQW!1Rv*^OSKt`Lw08>*pY?=U`7@2tdG1ZQqVeDfJNiyCk{hbfXv>B&qUZl4+ zL)S>WQm%mvaJ2INxi+3_Oac6a;}5HjhWeh<*>ke2fx)=!XzQ0bvndAW+m0idYeS6b zXrVMiOfo;$&TMrx;{@Z(!{X z1H{#xcizcX6_^7U1Azj6026moKaKp{{b{E_cTR9LzTrD*mV>;X2Hgo}!NHF8oe%sx zTL%1=^*iO{<~g$9RVPTv6;I+ixGLS#9^TO|J+fG8nog2Wz2y;E@xTD~#wW0ks$LGo zGE*~YNund^2(?Ldb&V?cK3`_T+zLAhmpePP|3T0Om&nU%#p5FnX3}NrBc13OC&6S_ ztccvY^R`b?#kNivnK=BDUfvWq5zYKZ`7vUDQbGgRPYp$0aY_0+gWYp*Az`KsZ`Kv& zmrH|g4Rb;TqXqB|d&Jko;jg=U7>awE6i|hHpm!w{_}79K+^=HGRT-p09345L8NCYk zyOVyTCEKx?0N&T>iNfC?l=n<}(C9@Zqh0K1g#tgT8f^scY&(Yhe0$P&qnC49j9fdz zt1>^>0sMsHZ+mO6wh7jORI*=s+W%J?n*Y&gzz{SS<)d(TrBnkMK)zStpHs4smYD#4 z67V-vQzn0L2;MJ?_rRx8sqn@vEkE6_geDGn5J{cON={C}zun4c40ZL)SGSyursZKB zWc_r7LtTyXmIXBlx$(Q-mPc@KFz<)YY}$e&>Rus-p87_q{ofl@cB`qWlUVy*@`rmC z%Gsy9Q7-?=GxC*7pT(q1la!ZN+97$qnrnF-n{s}%`19FYzQHrVK!5>aAW-0gdN6Jb z_zrO0`q?b}v=|dUuZN0wiaL8@7SNKPjd2Jp(?CJcXQKRxYt>#VSEbC{5q z{(*$F?C3Kk-s7CaVq2okhqgWQQ@S#c;l_Fq1rEf?(L8{k5d0;QY1yW24E)j2W_Vz& zq?5f8E#j()V2}%FQDgOzPFHaez_6EmkT4Xwy|CCwM_}Wj&84r9(R%ft!5^y}AQ`7T&3Glm;(a6Gr8D+)# z9v{ITU5xl?|&4-j7wphnb(X8u|tB9&g^>Km7G|KP0I{yS7SV zIe|kWhjI2qBAJqBpKq5q-pRB`2hz#g+GGp-n1BywyXBAR=_;21K8Lr7z~B0fUAQ*O zZ5aY@Oyer8p`j6JZ@E231Er5XNEd5QIX}?F%3)!4dy3U3Ps3bXzy|R9iNCN66ct6j z#Wr$an+cH7fFR`@WFF)o_#fETE+c$R#f8WCm*GYrJ(H+vKz3rMqm(U>YAeey< zs=>H1pd-4y?KmAkge5{^BD^S-ZXi16oPY3pgh^9Bnh% zq-b}mn$nj@ zL1~YpkrmW|R5~k9tll9fozSdwWJ*3Y63beVwJzp3mMT^XLNLtgSpZ*%C&LEuwzv3e z+1@8RI|h}n@eb@^43PP@*1hv_nKu16si<0D11E}k!@oN5F#c=(BL~C^4f(YCp+NcV zMFD&vj`jtAfccNJPCvAzFr5R<&Gt1~nL;aAGM(q?)6@e$d&GN$|5 zON(RDvaMH+m{u*Pob^$8{M_H_eeclHrQzs9#Y=5fb;4m3gq-xFY9KQIs|@cV(hgB?^wMP<6yRZyC=4i%VD!4utwX$(1= zIP)Ti3X!V0=Q|qi4~&K~((?E-(%!iPjJ_SPfWbbiN}Ni+<&GQVzwWPN!T^Fqz+jc5RMHSn& zZQD*Nwr#s&R*Z^m+qPD`;+^L`XSeg^{DaljZ1SZ>tQ498wwXwaK2~V5H3()x;rd2M{Prwfw(M)*ox0NA(5LI6AW`26cxVs@{}EVCP3i z8YqK!5lEf~F7juaXdX**uAaz`M4tTq1q_TimB?nq=m$4GI{dsY(PP4=85{%}Hlvwl zz2ga7LAw!4!S!psH=_;X4&w&AxVGbPFU(#V`6n#@fnc2yw*yShHhUPBHmlXc>?lQw z!uPra^BT_C>%EcIF{csMz0%n7D*Qw9YVsHbL$q+#Kmphi29J5Jag4h=5I=|8R!Eju zUGAAcS$msZ^>DrBX4gssc7FFrTHQOR$U#RpGAVHFx~bWgC-8Lc6l>|+cP@;WA>s|D z118RZ9m@C6!|VBZddI;UYft+v7Su0vB~6N68i(^WOgoB`r;;pmwJx{)t-+X zW=>YA1kY)WrcMXMNAo;hC7qABS^|z4w6%s=L&_ZP{Dei5|0J$eGU-xfPu2Qt;oiH- zV@eec)t*I$8&JhJ~ zW)JsC^ea&xsF5iij%~G1R+g7bD$v!?{!MaR(B&ISfqNevt(z>T9&&zbT4bB*qve(7 zSR#K=NBhlLY07BVmWl3vSzetTWD|+jeU(KSC~fNnj~%Fi#wM z!VGY5?67W^ao?La02g@$<(;cFZv_r0XIwvdmsC9>?P6DH7C;=QxC?gUOmWxQzFog@ zOfX4IC%kfVEJNqm@R7`|DH09|A)JKeCMU6h$0k)Fg1!^oN|=4TG!xFR@fBOj85**L zu03Ph*xVMXYdtT{n0+R>6c;ziZzwa4rfLxJ(Nl?7=0X=4r#AmKvETUuwj3HMM!SHA zF+jzaI!@&{J_JuFWEE|+!nzmW50Ufhrh4qB*zN4GtsJ{Z0(iH_ET?xCU$Dn5jR-W| zM~LmymmyJcdsBOI@*ndgj4R0aG`+4ow04`jSs`an2*XQ`NfU*U|J-ICpx%*hYP-Pbji z7-<$J{ME&EQuTBPY%72Q(2_D(X|2<6moU+&;bfTPJ(pq}!;)+9$DIF?C<{WPR8^<7 zyO5&c=GD6Qs1(MJ9B_O8E$I&qhnNH8(yv!`W^-&K`M9j;ec|4MC6L9=%hVSVg%PS1 zV>0kI6O4BV6u?p`JN#}!$|tfRip{j&MEx>t#b78;sLPYTF$N-Jl992{WX#z^c!0eK zV$YCPp5WjBkLJ1C_H;I&OsCf6b=Z+r6*2Cw7Hvtl-<#~f9M<(wX+ncZIe0(tD=PV9 z@yrf-t z(UUi)<*t5ib4#$Df|Nn)@%#o)UYHT?omM@f&JGprjn=ao0k!YM;s$E^ejuIm5i)(^ zunAJS3HDS%6xz7`K*Q7Y#nDFkR#d9KQl^%Aq*_ucH?@fy@mW_yjQXrK_Wy*aYG zcncckDWY$wc-}3txmUEvss3^w zFrvwm>^Inj$O)h$Vj#>IFBL$;3Y(51To17Fs^q zDTUG%Xzm!{|4T%gyLPnEG1vuN*!jqL*wawfW>9mJc>t+RQbvf`(#p%WA3^z5PG)J2Rh>*UlvBr6qG6~!s9q~M1gziizWRH8w(OpcYjwx zeYhIIOEFp{MR5pY7%n3oQ{e1wxgtnd&iznUQzDH;JW|%s30sm8!|5F?ps@EYNT|(# z)~&6v<`Ge@tzmH}opLO}oiCZYL}K>Hd(IeC59=!|ZmFovGderl8>FkZyb`xclcb)O zq!z=##1Gk6FwQo1V9dOXXsYfJ|F=$*GR##bO{Dxp9~&JT9Q(Xd;DJ55qA)$RthIQD1dDLPfpXYf->nHZtc<-ob{F<6bIG9y zQc-+!Z;_UgBQ!r@V(E_q5umKH{!MQompSyyhuGqGGTO(!jQ`hR@y{4h?*+F+#Wpw9 z@KYZ9ec=wfr$xpT8WpK|9ENiVQ1m9{khx&8C;b9ee{_02K}lx4jMxzdU940~y0i(k zz3@4pBkC?~Aus4A4;=$PBa5%a@3;tcsAG5mJUV1M7lKm&r9 z%z+OpeE`+I1H*-_6RJIHq*%%a%1gJliy7L&Y_9fpvM5gWHT}9aK`WxI=chXkMwN50 zDLj+mGS!?h0T>>&Fukf?2LAnhWHvWCLXu}Q68mipuusqh&IcvfbRc-cw7`N6n$+o+ z#qURs9*?EsUpLZ}o8SuG*0^Fwm1H)FA6M$)B7|&y#fTy%Jcs`jm_5Xr$*bODg8j+G z$i4D;kde&s>Mdpcl~xxnEF`U@a9e<^#*DUtNk^39D?Oj=TF-C!;~!UMEla2$nAs6G zL90H%`!MMeq+CHVlqJn(_(_P(%txV%2cV}*8>-KD^l-FUQ zzD2=pEEpDRvCO(rLnf!uBw};91m`K++w_sfsu^ciOq!Y&s%iZl*q}}CkbC^wf!6V+ zVUAkx{F*&$d%8|D45b#`WESQ0m`gvPMHDi4<<8i9guj&hU`CPluAL^wCt3=94s#~b z$xeh|-r>;96ENdznar`BkimegrQ148MP+u#FlD*Lq^I>FkjVC!>!%~wXv0M^TONf| zjBH%t)DZyq-AG29KjvV7k^7&2l#bG*SxRe@Lnp}!)>5h(r4TZVs_4hf>?X|@DNAcg zl0G=Uc7-NK1yliB)t0q-)=T&H-9Kc5bFa%MM;F{PMst1fO6XzKcsTmk58i73zYD%%bG;o%2N+E!MX+fb_DNBl^*^eRl~ zBkM+0icN5DJ50SZCG^_^X4+-{2! zMETK~aDd6Hwwg(W!?VRrbHiNE*{w4A2&b%~k;5Qfsi*F9uiFlsj$P*h82)q25IB}I zag^mL`riETXxK4KWg&|a-W50z#NOp2&krecvg?uNPEOht1*1G}xo>5LQ^0`O@39P` z&)dC7?8+L#94A4?Bz4YGTO#G9BmEE>B>XDqZxJr1?X=dKrR$94kV1J+`r%A&Xo=Lj z*}f7CnHOwIVA|J)xh_an>t}!%O}!US&2?x5UMsNm5GL1QOq$ID{SaI| zxVqxtJf=XZ!$P8-H))m@8hrr?FQ@ijTn#O<60N~dC))n{ngY+SZ&EC~G43kK;+OUw zBhB_)BwUn5HTAhhbpcm$W0*~BhU=4Ur^g$3K-^Pzpr?VrJ>Sk}Jm$)46B1VTmA=`J zWs3J3W$}d{{5XBDft|Ku3@a!RO*tDcw}gg?<9JqiD-pien#%D@WQkM*Q;gD7v93&p zTB;byS!<2tq*B!w(vk{01>=xIycsw;jXo=J$H%$$gwp(U`S$+<;TisycPOBU!3VF* zNj%{h%8k**?Rho{2Pq;9VD>vvH-IOTtyP&-GXDL&yU!OdqdhBR({+#XXy2Q$sMfo( z(p8iLi)K0b^r{!Vzpm=fu8GX?1mn4mo*IqV(2zRCPCjS$n%7aTel2U-5r&7cz?Q>o zFk#|&F~9Q|d5^z2X>2^?d1Crk&A z88^VW9ZYFHvc&@i2HYtcoD4V9VkN|aNVlrwZ8}HH5K2+(P_rYlgA=m2hh*6xEA5-#hzvTi~FGJrx=gA51HqD^vbM~loA|O7Op%r z0<7@5%AP8frbnx#dOVJq>eehM2iEIuh{VABQ%NwXpggubBSZh^LzFXpI{Q!_>lS4e zDw5^V*(r5(Z?B>j(TvA}*%Rp0u%3n1j9VBAS?0$FE-r!Ou5MsPN-9>L0e(2r=q1Zm z0tED^$CJ?PvSx6sfaBA0$8+e);W{34y+@)9yWi9ay~oIwA_K!~ALPn*#31FS?02s> zwJ4dRfQZID%=_CjCaU$xdIuf$VAqR~t^Jc$hG=`|^IAceNcOoGdsi8%27wbkHtuK; zek(}ZW8pmB3uimkUvlc)>XU0=2>DH_`2WtGq83~hm-mHXjn;sgu|Z{415>*hys-C% z4^`vf$nfqRpETCdrZ5W#)qb0Zx@Dji|F&x}ok6C?X_u!Ff7&OT@SDwGie}_kZSCZ& z)U4!abRo?-mauO{9z3&czXPEx0&{$y2sk_M$o+?-Lf*7Oxo}>RD%$L_Qc-g}k6xN` z9@%v~5l)Gf;Pmkp11{qJlk40Qjf#&EWY^qLjg!0+EXf!Pm1Dgk9tmmoC}RKKh-wQX z0oJ%499R!5f?Lf9B+ZW<4U^RMs#_F-WEmnRng+59<|K7jdZ6^g9ph4=4>)aKf`ric z!k(f!tUg;+fQ(>EuynuSNDD|bg7`fH50qc8uTk~n70mMb*_Um%3G3e-%W@MVF@IdZNpX0T7da5;LHSW8|`&PDNmN7BOQTq4)d=2-1oSz*#E zEhcmgtjQs+{=fbCJ)yNZep2`>8Ai;Ak`TZ_MTuN&quJA>rzVj>pqci|hq@n@{=L}W z{yFb|ToVL+)qGp)$b$cjDFxm4F2CXbuL|VBxGX*}=?>h8?qKj51kz$*ThQKt$r;p_ zml9np^rT5htUhc$caRQ%=NoI0j1mJhII%27;7X=8@{M7JqP;q?pX>@LerI<_+jssy z1cx~=UDB82)8pvcXiwP+cBq6r`zP+AN6K4^FfYsG%;LiF$AME$`BVtzb1_-u2x~?F zSInVDk&;2|Bu6@~FPqc%M$8*je=CFx1Z2uWjNu1Io}n6vqWL~Yt~B$(mr+UW^vOoZ zjRLq!kQ47gE~m~JH>`w#wr&P2_=6OG^!(w4<)jQJ;yyuK9TaN(*(>rR%)jvD3p8Jk z{qDZNH-q+1?mu6G?AikX+q%fnQQA~RsP_lyb0BJqv}FW5SCHk=@d*F^>EVQk@XX2n zQL4@fxx|V^nlRL;LO@J6nt;)G@k}!-`T3@dD>pIKuo3_H{|p_o{x@{Y${*C~WGINq z!>sLS^r_DoWo^qrY<}K&R(`k%qk&WtdHVLm#>v{^Nl&j_l`hf;c#E1SMq{}-GCNX^ zA=kJJ7=3X2y>&E!`%;Q7pF&=5=ltfo(KO)vub7_1%x5af6B7rsa~OyTLF_oKN>%gR zdm?}UghunBygn<`qn0Xbt1o%{Tq=^Wk{o2lqZ2K_9Pu3!Hy{SliR^QK2N<^f1Ieg@ zk4UZ(py!jpVfxNK+-&bU{BF~%)6rnJu$AiC)0(>?vaLEUCJblpGwURHQ2y5@m=|)@ z%0bnv3#q7ha-35?m&7*Q4(=g#?Qxsl+iX^dmbY)qJHIfhWQ{R($^k(>e@!+b6W}7Y z;NjFQ;FhK%x39@Gyap83#{4&S@y=ss@3L#CHM^{@uCIhU9`^UMKlJA10lC}x3e=y2 z_f7Tapgh2nYtjwGk`3?L6y(C+oxCV;uMzA!Tx+G>Y#2puv7Xl^Kh5`?J|ARbLzTX! zC6=;~fvkhu!SD{6)(U=0P=wodJ&#Ok!4xruNhhl<y8I-)_NCM39v@E@tH4Vu3k z{4E0X&gHo*Cf~lyvLe=WthdYg6qf~;YsOH$wifv}TrEPtjqfW_dv~Sic5{;w|HD<| zVPy1YC0INWMR6o!10BaBIpslonwq23*?@nBuOJbNfK+eAwv-k5hkze=}|^kTh&~x14dZ&x%0w zsKKxbUNRaW8FORJ%6I>~Xc7U}7%`C37DO7rp?it^X)YM5P`K{k{w+?f)?b)MezU6;H|+9bHjmEf3c#jei&mG_0z*i2PyFiH!P{% zC(->rjPVmA(wtm-`$zaxjI@tSRns?FRK7!F|5v-DSSpj>)D8yXlR+q9zv=~!-`mCx zADey9B{@i(LDbJwik}z(nNoTo5{<^6I5BzbeQXdM5j0|^U?2p5Emy|UOP<|7Rs z`+_~(Z_dv?UiK}8%a(D|hK{QId>{aCF+E(XHk=XQFt3g<*izS$a;E5woPsn}EJ1_q z`BEpnS+EW<2WK|D>&K|)&<5{33vj!L8t8#Ns8k_Gno5HU=OgnmZSs2oLcih=I81JB zGv;6BoOv8G!a|u^h8`0hZvDRR<^Dp`zqb#^dhKeXXBzWNSQf-6FL+a_61JivKT#o!ppXV8r8N9=r!qUzTkr-O5++U(>$e z&b0>sp;wj7zScI@~$Cn3OM&@WX1_Hi7QqK~vV+zblN`(6Eh? zw1Ey1P4~Q$Cj_hiQQZH_bwWR(extKWJ6S-PJ=6xNdg~4xqk_VYHkU~>!(t@2uiDtO zewXX&Kej9sXX1P1R%km0bz=5(F_9I9TwYo)B<_&Xw*EEbf{EZ=BuXCbTV@h`h(|eV z_dSxvHtw67NbGlCE{+v9LU`&nk+p{#J$_!hAE;WMn$U52HvtyY? zV2B{@y}|xG4vjvnn5>%vRT!WLME7_EO%O)fNw}hb(0hkZt(In}6f|)17R;}J4Nnan z%YX<70S{WjSmk*~=52@SjWSseh%tqB{Hlc#?F*vVIh99FCp2D_WJq$#uy^iQTY;eO zpWin3zRZL;vR$I9IPNUMiHs&X7^Y-IK@AmN6A>CAu#2}-T)NO#zrlD2momrmc*(N{ z)WzH*~xRiY>qkJO)>P@^*7Y%h#9rj6VI15b;1&@U|rNf;hE1%!Zr9}Iy& z3ODF|-WsIxaI5u7;AA#9Tf-M^a3fqu$`-J;$a%p10fBrk;JtIqX6-3;>J*y?W}5!J zytGWsI@hMC3<6CReIn$_W@=Vhn5Wt7yNd{81pf;&g3a?v1xg6Esx_bg^LB$oS1~RR zLd8vx47~LRbxXIF^Le;pX`g5e*t(~8pwM2Re-$wVzzH|^2J~HY5BWl^7?ei+xB1m9 ztpu|kT^}YBC)J!JL^b}Lp2*y@aBC9zPJ$2T*#$azS8N*s;lVJ^!Ascb061`KH{M&U zz5%B3A5qs~tCKFe#Z?$g2uU~Q$x~%)qFwahPdQO7_?cmNdN@pnegZx_o(x?}V++DnM|_TjzHq92QSz zJWff6=q7|tWvuV@a=mCSlY_MvHV?KolR8?yH za=+n4;$)y=h+|uqYWPhTQP|a7C|Lu={^f7ck}2-OBTG5WJzJWEdpY%-%2)Kxds38g z={#kzqcaNJFUA?iS9CX_{)a24hiZuH@1Km9dvJb@8LWfmH}im|;Qjc8)v0DZUhlx2 zoFZ8*8`ir0lSkW&pdo^Mf5K#9Q(Qr=@96+duGmdzQHiyzhh=+54e@bl7sRjscH{#< z$Y~p$VoX!=pDPjxDkda#O#ZVw0V(hDd^oyHE>Am67({>?c;Jb)34dcH?rd7;s&!a-WT`KTLVoJ8{VH`EEAD>}0vDMV8M({kPaMV>HmqR%{O5tndyz&>9wKEoT_c6DDTfG}_+_?WHXKxoP?MnG1v@pV6?9Gk@G2 zuS`JhyroQ5l=t2(a9(4%tt4}ngrvz^qV$_V+erV01Llw^HEA5=xjqNdJ`85qa$+v6 zar*J16h^t0YnRe-D`lNmIRhnU;>O}^=v7MOtPml*N;ag8Q%vHc>6X`T8#>Gyn$*@7 zIJ!Oj=QmGp7EF0%q~I}n!9~zxd%mZ()y(^uf3(pMK*d>{4R+N7?+rp9*uGWuXu(>rZ6@ouD zw)@u!m&?hPJBcA0JI-kC*7J6|OWD@{*0Z=A$IyRb37xd0Gg>UA-?kT$G4gUjZaSTY zAZp-U43dJ8sQQtw%tWb)LnnN*Ym)a>VXuhjE^Kh`AQUVsfG@v&lB0Z zt9YkYG3DfjmL|;o2eQk+8Gnl>VK^jFxEX8QcHLj!2unzA1!Im4O3=JBBuPqZLd^YG z^+d0Wo%l08>zeM8dhXr1Ab0zeo3Wx21cK=JnN##+Zv1efFDU{%^tnmX$XEYW%9#E}y)ZT6`t>Vij4B7HOj z{xpt-HGXP1tXrM*{gPI56AgQk22FL!8t^IvGn;o!Mj^u?h#{?5)hD5SZuE|QGP}Nl z=^J*J0-76nYN$#5*vq#(a^3HPS~>ysj6{EU6b2&x&=9R_qA;8T3AP;AE)< zu|bo}bkL-tXwZdfv$90S^EU#_Cy8l-U4}MlI{&UEwIX!_psx2zI!Zd2Q47&H<&+$7 zzlMzP@9lNMTd*x|G@Xa+Dw7wwdnG=(5fd0Oxr$qgz>f4(@Jr`cQn8s_^w?%F3S?R@ zZ5alV`}EF%mJ^N=r@IrOCS46ZLaXzknyOqWu&$T5bjKecgIYwv3o!WgP%0$UqZ_~+ zxbq$tIWMyxGkRCmt#mAHB&2Wj`T;Ls)#_1$H5EC$FIb1{^xLpm3;&+ixWD`ObR;}f zy}+hiv6bOkkQZ8?tX5!oK7Jxgw;?g#Zoz|fxZc9=VZ)O(7NnT-HzsM(LCY=Zl4g4a z>Jg^Z^@qM5&zxo#)Z^m|K{R*!D*9qCW;uzpNPGne)cxdBr-oQaq6iGZPZSu9U1T)T z=W7dYYnnedU$zN`b$Lh6G^pZ0wular-ffyRu8wws%?sC5B;ys5>xj|aOIeQ0r6N%D(Y8w8SpSCgp*??7-CgxSZ5 z!^)2H#Gel}c)Z~v)Q;U~Hpzw`e8cGSW09yomHLbpWa5il-j(>ET%)A~f0vm_2NN=+ zMOw?|u&{jLr1YO$yQ(+I;2~@p|Hzmp4L^Iven*Qm0B1t&B{HhxFbbXtLobY{UuJ-K zv+!@_>}Le;fA~gE2gEu&AZ6VU`yuVd#cAb%`EuxAx;dod9`0S=4#i^wRGS=)@sICi8RRfS|~F^cf3ry@+gkCy<~Z+#P`+Iza9 zBvz=qTk@Oi_5qN>1}lXfbPr0!gjM_;I9 zTswD4eDoFU<);p76=;Z3G$i)bWYG-jjv(>6ZP95qSAnn5(o)i3J5`)H*3*U?#%WHn zhRz=TysjFrXC@!r5JVGsQ8U0iu=ri`$#fH}EYQ&E;X33l?nJi7g|qlFbh~*^-!`~3 z)z^3*RutsOl<*nCsfU?upph4HxII9uLzJOc zp{ljNFfcnONm|7}@`;Cr_IPewmDGUP6FBLA(BuKX;Liwfp#cQB!`vgwWUC;Kt@);2#b=)Hgn0U;wMCU#Td9#x4%H~C|g@1$yD!_z*`6zgV zD0qW_;v;l|pj;L??>CLshgeA@+NH|B+-iNEPF6#DHcWO5VMo>u9oI~quFS-i(9z`e zKPt>fh^J!VWQhV8dZ@c{QxY*ZQpx*f zJ316OU3HPeE;KrLI9@UUE8<6A)cnBsdJ~1Wc*K-g7*A-5p^4LPFc0}owD z0)>4a5Su6#b8*fAEo-NuxZa|xEBql%{Zwn=U-QWlWQcPaQv#IC(7bqKk^Q`Sp6*1k zfVx}3lzdmJdJqXBrI<=Rwo_UzG>Z=n$QF7JLY=I64_aOAI!97OjA2ZM;ihHm@}pLd zA+SlES*w#_9X-*7AX_(o4x*{3FF+Cbdk_j(7hIrXz>S(C(Ra=|!Dw(95stJ|o{$EI zN;Kt6b`*)~?+e{xmy2jNgg#L=IaV+nt;Z`}47WcTGmwIx4B73GO|sDJ1tJd@Z-z|5 zhyPcQN$^Bs@<|DK40?KG?Xfs3K+n0ddU>O-lRhbaf|8*Vx}@V7dh{`fA29!$NNi2mvM@jOy@jPBX+8)2kma z_u$nT0j)fg0GdVkFZ!@~&OrU(PI&l*8)6_XIOeW0onVeKh%^5Sb8HE-D5n9+HRXlz zcF36kClD5USwJ|45Mam7kCPG;hiYYH@Rl%#$ANIQ^!VScOgA&iyHS8XzcW^3<>T*8 zG*#jr63!X3H^+>G8;2S!jVS&iAv-|wU^iagFR&fsSWmv-!FKz->(xr=pEK)r=gXw= zV)3(xyaioSlIa3fdH#77j4Phoc3%;sNTL`F!}lWyg99N9%5MwfjTlHZ!0^Y~bwx=Z z9jcl129^mDifp!T3-b`B1(6W}rXgaPM7b4h<*ObqpZALs;naoT)60syw)@Gm*h#@V z3AbM5m|pFfEmC|npoNarqtzt)C^cUrAS8wWi6UmJ$R}Mpaa+HI{2ke#+=@MkF_&OO z>U_HvF7>cNc*lt403vcv-Z-KY4KR6|ma+?F@JtZ$HkTS0#qjeY7X1!$H-`!0;TO-; zbH}JL(P?u_ALE&;4u#PxGMwLt{3q!;&pH6$!hv@Q4#1!H!AIebM2*K=k;m9iz(vG9 z9(aJF?YL9`at*lk!Ku3^Znf3d+53oIpzT*n@O%}lR~Px)Z=%ETmphAecJKrIEY)P6 z*J*A7J&-z2<~FIW)(iQq-FdS@pLY`>WMa4NMNw+p`G-u2HcyByDo+GLdib00#vsWh z<>W-*5cerojp4bF&=1+dMrT;|c+g^rW#pyF6-Ji4*4gfoC-U6un1h6U*XoZ((ghaGJVMnHBsr+t81C6=CbuRG#8-NY52oX6St3?bX5W#vw9Q>jnfZ> zgNj*txHma5IWOXAnthP6w9smxXtg17*p{}&Ic-Eb;+62a>b~{A@%HR{}%Xs%UQ4_=L~u(*swy5a-<;Haz`^r!bO1Rj@8IOp|4@U#qxw*@CO0F zdj&qGqZ~tfWj8K~{*jutB82t#f_Ym9Rj>&ui_bux?2zo;iI%uOXz93#lYq~lnvqmv z7@DXG-#ZO#kVuJn?{>5F8vvCrgRn{*0zyMUibU|0rD6nzFOf3v;MVZsX~Og8=1MIq z_$>41N(3KBffa5;hduvSawGgFV%S4`g9DgSjGw{#{^Go{CS?hYET#ZG%C3S+VM1qj zM4YvR1`Aw(Tqn0KzZ~5Vi%wU!(>nJP0za?}MoAHO;oqP}Ez_hh@qQrU8i?$?PN?cl zu_LSZ(-KG~uH^Bha0DuzLNktMP~IlXK}uS|b%i7z%S-{s8Po4ZUSOk-W$=UJHxswhz{wyp;E z7Q0v=badbn#z44tBHfS|ZY+SfA+SfgGszM{{FgRca!LTsSxdx=rvDY<+ugyY{jDPC z(~qW21I=PX_0Rpm@7Lx{J07gql^pgcvn~mKx4~b6N5z?(j}iQw*Ag5B*Uw+ko=aAe z^3vuQX2m%jxsnRHQG>Bq)!HqvYD;XRlaoTmq;xAb`9;PZUzYev*6Awlw{Y-!Fo7sw zNdKKkOGsB(fMg>Sgp?0Og3Oc(0oj+GqIn#^fDda{a!x2idT|NrNz}L zPT)Qe$yVnT3d^C^Bu2fdnfd1Fx2PpBWLcrSdr08ik$k>Q&)QEQhDbNaBkyZ_aq;xr zJhlE;1+zLsn&Ck_6y(d%`xf8F$=|no0$^Khtw-#9SXG9C+<1kc^rxyRs+beFML~6S z)|@r1KBGQQr*gvSrFI$v~R=Lu_A5%uM8tTf3LDP=7rS5fg@(upGl$&vDF)=!&g6H%JG7&P9i0<_S#b^Y+}6(-v8MF1<>EGb~iLh)w0R9hK1#a}n(`*2RpCov&6CHi4 zeGfiLkYdp!f2?yI6Ih3$9x_H*b)T8Q2ci11>RR5@&*?>L2X6w6Ws`dsA0=%5w+)`# zND>oA$@eY{Ma`fPjH-0{Es-Re4L!TM2t;7STSpVvPVL7GlKZuOK+@QbApOX){B`X0 zBwlcl!u0TdnIBDzxRGVXfn<&(IGdFApo1M{%o%FJ+4s(-eg%}ahwHT-4W9vn-r2A- z0URJXg%}EPFTbD`?R-ezb=0U$ZZMGuFO!wsuvnx%pE8|Q#`Z301`NixZ$R{;WqKe6 z_cY4U5A*n~3HFb;KW41&clepvxl$*?&%b|$ku22=oFo5_>$ETeWM3%9UNCBCo}uv2 zIYp;u3N~TIr1)kPF5?q}EzO-ow3Sc+RQ0o$q)qW475UJ$Rm7gY8G&$Pi{) zJDD%};D-1}H5kU1&O!$&>$1IwhzR~2RVQ@&oq5Ts%ca;>ueRUpyU9-ICkhxe&-XEW z8ajZ!0Y2D^Y#`EAQ@`*KT+?6Jyhqgd(dRQ-iK#ZXrU1X>Q*@&lS-NoKO5#Pe6}7g) z_CC;*GLoX~uCzv{r^V#eiO@>&%si_&M-IzHr}ozQx6{m7mQ;i%bZvK_>} z>+RSCYd1l`aZwQ%Vcy*S>9`e0BwPgm-RnC`f*l?D&*e5}me&I_(KnfxAPPU}=s9M| zGA-IElR9ZnSu&+S8a+*}%&D=LC}D_H zQ59eG72l4sgNVOR^_jikfa6R<~+!7bE_0LHR;u4GhGNhYY zPhZFT@(z>`St6y~;fFJUBX8l^^L6N5)@;T?j7@sbd(#;5Ax4ohDYpR!B{WHZQP|q} zzbt?YVmRb2A`!#ahcl>gK6wC19H-4PEn9N%bST)nQ25>Un;|0FD@PGIJ9h*z>}w(? z8tU%u+K$@48!KrC_LW#g7S%6|Sqk-C@G?pX2C`Ex7$&A>h7)Eq zuZQnE2A*K84*FppM8uR!HAr~97e;z~REzdPxhb!LF4#VMn>IkF1FjdqBfdkYo4&(x zd|evCwYW%MZ=1LX3HBn-?CNG5QYAz2PuNl-L;Hpy3aboNZ>Ll--7NxM9tX}}{~DdF zf-ENZ%?+2`fuz3M*P88?Z2b>lvwlIujm>_Pt5rCUI`H?x1&xj zwfh-Apuq&tO;;&HTMIhYf5yNeOIC|W0k$3Sb|+y!p15Vdg!*Ql=^kl5-Ynd*ziqTz zMla)Ct~$%u3uvGK20LS{U2+!{-}a$y-6G;FOw9V!96)1VG`7vwyN zdlw#hV-Lh{>r(K)^0tofk_|$1l#NjoF*jk^%ShMV1!IuSk<(~O90cmEHI85-pa7UR zF~{6F-!x~bq6qCJg;7TR!GH-Pn(%AKA1K8!epB--$sX(-^x`pK;FQ+;m%)(49 zm-;2@m!|@m&V+fBK@QEBYOhwee<<(+I#kjWqKcbqelGLsV#nrLk}?%N2$Rdq+R?pE zN=jPLPaaO$gDAiFeK(a<>o!aR63(%6sI0|sBU!;{7p2R>&{4&-)oWkFb_q%~rN9oS zU%s(uUEm5f~Z`Actr{bPYEjS%8|30i`~B4<)^pV3%<{5t!X`;|WN z9kv;C+1=v&+UCu|lCfnT;#Y4HgBZNE)!P^)#5TU=P(Y~3NdiT&vMcj!frHol{Sgm>hh6W zUnuA#2%2Bq1y%M!x0OMd8$|)}PvFp(K>FHasaWluYoi})+?he%e!>lew|_YMlLz8O z((ZXOV5Lz_??E!P9*%f6Z6L55=`3I|A3FS_r=q#w%Vv67Ve#?Xk&hoLBqh&uOrxHbW9*hQA7tR5%2d$lVa2^%+K0GLP!nBk zq#K&J@Q=&9kx?=s%T=WteK%E74iSfe-G6u2j;=;WM-j|}2+2y6daIHv)9S&4`82nQ zKj8PK_yDW~Cg3G+`iLufgUP=e$w$X=^LacMb#?G-#?JLX81L_Ecu0r;kWdE}g2ve` zn$-o@dfEci+H4@VZg`Psm;18#3z4HFrUcdfh)prmNgJ+=Iv;>VP~v@>!i~F&9RT#t zRU7aSk4-KNgx)O{9ZyK%7|8$hUGNt#Jtn4{{9~Ls!XW9GEhIFE60~D zbS`FB*CVp@Z0gu5gZ+7Q+{n*s1Y6-5UFBfz}<5~aq)o9cV#?>H> zPK`<6#jaywr2L>`8)#Wu69w7G0oa;kCb=ygB)$<1N2OL^yt?4X*OKjG4q0?!$78YX z#H0M~SAZn}eEuh9Z-~R7^^p7w>(;bxEnQ35$$$OzSKj!Jf4bY(wOA5lr3&^47Em57 zC+`qvuskuU7PqziYgx1(iBhvkROZGDmMQ<&>_Yf!D#(hzp~2abs|yMqTdl~{mIx{q zKcM57cjRA+ix}5Zh;l3sJJ5CKPl?Xb)gMXdFq<3O9>#8XEjc^Q%?-Aw!MTWB*>SD{cTk~&sTA0stog>Q^0n+)i*pR`) zKUmi69xcDC%CvLwVrLo=3ZwL&$N3)THLu=F?t3&X0+p~CGH3C9AL1kop=EqP#x0)p zIn|A*bbUV}IRZK~w9tDdPW$sns*@*iml&0`TP$-reJP)j+hVYz*<>#Fk1cn08#ST* z)*a*SHT{>iKiJR)UIVFeZJwN+g!*3F&>3a~fd^&2a3byTZ0F@r8;i^G@C#>>QC1Ly zHEiXz+Cf_JdeN^!*!$IF(BjFX3qs%-h|O1$(ns4G)^}~}r5w=2)1oFYAY?*LPQ{X? z&a|4B(^ufzXyON_R{4Dy-DZ4mXZ8))+wAo1h|kl$h)z=Bd)18$qOfnaHcRkrXWjU- zq7SRvmW5+E4kkCq4i%XB1Gp;UKv}(MI@oebLMi!JRL_o3Qg%j=h_a#>wE`2E z_dDumCl68ID&aA+=Cw$ajoCz)*m^{pFa)OV9CHEftkVBwA=76fRtez-h6mFB{ZeIMfN^#{e0$ z8~VGRPwolco@_AU_{n3twab90KLunuPtqDNqun& z0;LJy@BlTpgT&7!dD&>|-xLLkG>;%0Shs%M?W*33`k$)SP9glnmGjD*#2w#N`}3P^ z3H;$t>77?*tj&AU`S@!&{P<3QQ2V!WuO0RY~c zCkvvJ&0!^Hqz|!h_SYbMg)<@V(ZR~JQ7qo!se=8D+@F^rx!yT*u2j5gY2$GoaS7Ne zk@eed-ZV8=tnB3RK+&|HykCUC&tq@W<)XIsV+z)>Gg9L}iR1|d`e6eImoy*7$uiiU zNo+Tlq^|I<)yR80IQv-d00&N+OvDoTO|}?mX@8t_&|6qP;Z~|8C0+`5`m9Xea2wVy zvg++r`0k?q4*;G(VZXQ)Brl$QT(#0q&eiY(!Feyje4pAJ%Qw2l#Jby$5a_M8Ry6eM z_~hgXG!Q0NgGH}Cgcn|W5v#XVqK&hjT^(EnEggr6Gd_i5M-M=JQZ~{_g=?ytkycWU z>|nwzDYForRn2HfiAQRh42=bog+$f9ez$7m+j{e=-{P9p*(e|LEw+*VdIhzS%1sU3 zZN!MVYa{QwulEw(t)lyI;ddW!=fL~^=h~nkOqwg?66D?=<f4je9h z@Y)42O?*NEa{3I#w24D8xUA6G&*8-1+S!lel~t`#Rr*L=B8mr>Q_E}%w$??s@RCd6 zJ)OpKld1J55k&dBwx>3vpLg>5pAQS~Ap}AQI0%FSeAp898UiAyVoGd0ketpx&GtIx zMFcpYz`RHOB*U?*@=D_@(5rYia8SbI3Z$N!@x;|v;m%i9k(um7Hr1_$WIIBioLPdD z7Oq;d2+NPL<9H^y7M4MFB`>WROLkS!m|Y>&xwxFmJiSwWm5x=m60QD0RehX~@?9(N z_RTgVc7LfGKKU&5XZ^hmCdLF9ybXK?zl3br8dztUNT`m&va1Fgp124r+Qwt-dFLZX zF;d2(IJ+Hht#3yG4dtb!&^7_{^KC=v(??D37T#MI;r3r%j(R3dPfbK_Rx+}=DlLY? z<`9TSLuF9Wp58+;v5V|f-SZw7Ad@`3l%fyT`+|UpUTgKbx z`X}~B9=nZ%S7ogJYJHFy8e_-2JBk0!)_P9Ozy$b)we#@Cnpz|iU)i~2wvxu+>~nsC z!IJJ}~o{(=W!fGHEw7Ac3bVG&OW`5+WXnTp?B=yZe5XCz$s}`R}*>KE3)#7xB_tbuJxy zF-{-j1aH*7iL3r_IhO5gK`X6DYjRH-6ta_m$XdMd^tE{H$v5!h-&};gl?(Cw+InQ= zwxYAJ0j=BX1TJ$OO|95TfiOLj6Q*jobo+uc|IHuf^w#EiQ9Cl%OKq)m>`#cdfiBO6 zMY!>IKgYaXEof=t$frpu;w%zr!^YLm+Hb=-*W(L^<=~YEAHufn2`Gr$jCw}p0ysKq zwqOINyg6Cx7Z?zRO%BVi5N6#G|J*fV#O1W z;Pp+kQAFM>A(6(2d16qs2xf2OgZC(p=1Pqj4c<{)7!X3>poKuUbaT*xApG#Xg@6qP z5(Gq6IY5{IMZX`6Ju@I?P6LTXYWZ!(Hz>@-@q>b5ImWMDx7ICqWqB>t<2#U_TgYSN z%FriEYqJrg<(4C@v58Ek%6F-f3UZ>tUn|dlucvxeQ&W>2C6^c!q3i?M#Y%FiEsKNZ zA|rM@C(alrgPmaF5EMYt9xSYT#jhJYNjVir$)AcW0xxdh43w2sGj0vxN!&82f!eq- zt>P_5O)HS&mWwcK>X~@pm)98%lBrg&f!o>u6Lp~iJ*u;dgcg&(yG05vbo1W_C?vnyUxH{YSm=L8J_fGxe zBGgDB1jL{_+=@vOJY1N0ctl`w$6|1y6}jB{uCS*1HWPf)(#PZ6Z(WQ-I46dNw{Y$6 zF30Oz8ci)$!h05lfh-F7shntu*I5UIugX#Nt?vhZrnY>o+_#r+aV-fW*_ZEg`kI|p zU<0+{ns+pyY6rimFa?QhQ}6oyy;%PHt-nuiU}L>{rOtVu!Kq$&$0pqV`%5uzV-s3i zJAw(A6f)ghk)^hULsEpAPSt4SQ+xeR;<|X~sSVXmTPLcw$5n6iRgKM} zEUa4Knz3x@0+yvo!`L?BVfFs{davQ#SN9`u@5!SPLTZcr6Qu1f!eVVx7ykJC?mQX+ zqWDU{^txw^n7Uixoi8bvH}IIbl_)FeOYONN(u^i7m{*Ci!-_EE$l;iC{j*5O$YOZ9 zm8tp3AlrB4(X4o79=Z?$Aq1ijh?3Z7NazV6@NXbs!>wq3Fer$wJ9VreOalU)30VQ< zjS5^g2=Jv5?O;%_Sz_rsb%S-xEfRiK`L1GGLbQ9WDkkNd_&MVK0 z?gvby1@+dpR?4YudZi@J1$Pzeh4-NJAi{xhyWorGUd>7$*3s4Zjhk+|?X}*l6$fbY zR&JoyfK0C&K<&;_8Kyy8=`jy^dXi=X-}LF^bX4^K^$ zBqpRHNxUJoBd8A!6wScovcF;>SB-Krxtg1(ZdTfU>3`I56e+e!m)=_Vv^gc;3_3%jH@M?6Y-@VUxJ~u zBHXd#W&GjV-(fkW{HDfszDq(rRi|?cQ)yY4S`tLH1eZu$I!epAl_I}@hSA#5uxlBX zt|b$%g7}}DT#A&$X7+QH&vJMILPx_kG#WnGWKv3z(A8}C&{4v56d;8g;jb%_gZ}*| zGw%}i`$q1+-b@wl1=!jsp~bb=t(BD6M^b=q-GJGP8&S zn#^>cXX*7}s&iZ{EV>Abnq^qFb|KnSkD$+~PS!Sq?>BlG^gZPnTW39bob4`+E0YZ? zDBr_u#?)h@baLh6SL4yu^=NJGu!)zV(sX3!rw}ik;9$q}<#$jj-@axQ+P74ix^+Ao ztlC7P7ZzC;eY91PMOs}M<8^c1F*Fi*BmU|x7Gh- zyHQi#7k40@18?vpLT&68X8Hei9!>4V`gzc4&2IouO9&c-y;FKVGrnsid9=e&9s{aY zRMJk-x~c|LOdN-djz(;&WIN+YKsniYq$w$=S-2dPW$6uYl46nIW<$9CTcCBkcJ@ zFnO3iGQ9&W6e>D96Rd3VF>U||7~!Ch=vdIRZ2$H@dnf#cv(l4kE#7}ruT_WxwjCp< zf!hPY586IV&rVQwKz7fBV`K+5JpNrQ=c-R-brV)^szWnZ?q*I1R?Z1bgC~<|&u%gq zd>Ti_rk5T^+?10*aSTVDeIB0v-8R*aN~VSEW6Kt7dihV-xH*EpQ!hkWX%U4?DkE6<^$g$6y6C&b?8qwhkkYm8u|E&3TmWKS|*n48v}f)Z2v3<&D1OvDA&=z73)Ls z-CtdXVeEcQo1eh1Z@!Uzlxp*|vMAxbpqRpYfrNJ+9Yo)2y#G6HQ>jpL?G=~@4y ztMSsqm*ce^I|)xhkp|3!|02R-#(ThG9``4ky#Q81@r5>$E4vFHhD+gvKXowvoAb|# z@QyT!WC?i>62xWCz@SW*mc0^>-Z_sGA8mmUn2!A7Gz#d%p@cc*sPs(S*;$7-p1<7o zQRh&=mj;6j)%l4h06Lqef zROA&NhM|L|U|8Q2%=-Jqs2_d-rVksA3>kQ2Kd9M0A9G&3ndux%MU!H`zih~7F?smm zC`eUbq+?mNyO!dm**9agEV1)bB&22*pMt65jzL)-SN}Mb)Y{y@iJv)m{)Kz7)A9`R z-yQsv3Bv<$_9)*V#TUAJdTL)M8nB1y4A;9WH{}=%%M03Q$2vT8`zxrgYei-@)!#Yk zBD|#uZ_;{+!CObo!+7xNcI?VZMRt4}PrK-c{zIo=^su8bFl{yda_w(XpUn2nJ@CmC zsw(;(jS+-l>XyIb|6Z=c^y5B_{@K|e31&B|!m1_rVfOL`LHpp>scrImeOpZ}n2ICE zeGGl`@)1XzHPmgyE({VjoKt-MGy&u$`1l+t!I+8X;L!e@2%{j^!F0_v>#*?6zhmx( zb=Iy#zat4bv~WHFLx)bqkesc!^S+xg=!oxNLO%+CaV=Q({H2(^ktZbx*7|2T9#KX! z_W*B#|Gv5d@f>*1qd6=IEbjY^_j((TrtkK=nuEc6@o1cE9XJ>zY!`Cd-g*?jzw%Bj z&W3O246Tlki;LTZ6&o5+G$0LwCl12>cP>K)PrZ=!`eg2d z?^(WUSE{mg3Ff!&*ikJ*7ee5p34ynBFCWdX48N+^Az%XnscLj!;7D#WyaCZwfu5Q1 zcTbLe8d2q_Uz`93(KSmpV{&R_+hh$}Zz)4;Vp4 zuhRy;6 zEB+bq7;X%xd#`J2dj}f1`qRPLkrYa|QQX?fAxjV*>EbEn3f6ITbMVBglX2d}d?fTa z7Sl@pjFmMl$m5oXWUk~T4?2a%0RojT`~w?GzlTvw)3SXv+9)U_Gk@&~FFNA?Vc1|! z6f~~HqDSsVP3BBYIC>KDhJ6~NB29R8^Jq*udc2A?mon)>Dvy$hXl_BAtg3Uhx8Jm% zqp+Da7APAl99*$-;on2mt=~d*2PX+=fFY7fLE_jmX&s&d>y9PZz(w8cK0}bjd@}QR zWY+cu9CFfcFmiAnI_kIZ7#(gCDB<)(S}FP;^F7qv^-Zn>Cm};x0~u2=oOx-^VRw0L zu4+U&wGQMmMtliBA0b~msEtgjsPgF7 zL*Tb&z*h+cN8z%+T!3L&oL^af8?OAv!`MmTy@ji`5+L%q>YhX4U8{e_XtS&VhhKu@ z2TOIm8ZSQh3p~SBKxCeR3(h?Y#Ysif+V~OH{_!Wc;s2^}(&=ADKkba6+w}aExcSv( z6d0Q*R6K~A?(M>-KXoQFi&ZuM@3`s7N70ge9L_yf!h1WGJbM}LeSL+ge~*}XInE+e z$OU_}<$WFB_{3qBr(NQ+G3v0%!Sgn}`3T$YfOB!~iPKH+-?Zp&xbw-UP}iJ<;Zwhh zGmqq?P0pb>?X#ERu4{gXn!=SryJ(?*4%Almnst7vMMZF>>I-UDa8zp5(UFS-}t zG_#<8bfTkW!(2Q?O&CoawHs_;aCAh&P=Mi<C>}L*4Lc#b}FK8rxelPir~tyem-=Gtt&jb}Y{ROh4rL zSuv(a;?W>uj`%jpvu?(%b7nJN3E{r29)iiod=ZD1y3-8m8)~?XhK5YpPjX#pcJ1PL zA$Zu2Fv=fv0X{K#qJ3NKrq}Vx)<#r};PJ6}hhWl-i_!13-{9}_7U9qn{)icUNr1d- zsK>bJmtkyQKffK1rm7lF*tFR89gP=}U?S0mH6de9;qS}%h}^9u>f2q5v~eJoM>Ei< z-OxqH@c?K(jlnKRZ*7aXOG$S`yJ^jA{OpepqLNz{lW34GBW*BJnO#SGnytROJl#}+ z{BdGB=(2K)(9rN2>Kp2imz$5ot|X&#daG{5(aGV=-K=zlhc1Lb2!Wmu2nG0_@Ccvw z0s-WxCR7ZBZ-x+Bpk=EePgvM;JKn)`L@ws8~t60e8_fa{0@tKQ%kGid^ zv2s}@a-_RWH)`4>o_kx2;X?-_&vDKcuFL9YALJSFO;pp$HtVLwVmN-r6~!WAor?Ek zQ*8K0)z9W3NI4gH{t0&d=IPZx%xl&%lO<`QyHF4A+!MV-rB@7t@~m8C!O$K zHTRd8_0mdI)ik5FF%dI<_&1EM-HB!EYS1@@%<8V^@YvmVV8_m8?C6||^M3p#P8y_B z&?&@*HJj0w8Ue~n!h6+gzrw5+SGc?ynAeY7Ua~r0(%#LQYOnl~B=J8Q7Dr2t2qdb$bkbxW?pQ%}Bvo!pcB`db_DiJx4~Rkb1v95W98dioWV z6{aJLLWm|&(?e^~(U`79+W642T_bNm+dnPbRyW zvkMuv@}7olYEnq$nz9(PV*0d`FvA2^VBPHh#Y1myv{l}&t~+t{!y|Fo>7yxJ^~dCa zxwz@ACvnfy6Y<@X##;UIBMcmNaWU;b1SVtNyP+y%Mx7tg|A^vMmb8-sGXBq zfve@OHLPBG=QwoJKkN64<8#0j3m3Zdf zUt;#kt!PU)9A|yun;4xdcB34}PMwZl-~R- za7;xGc5bca3VSL(_k)WuT+(Foa@=~uFR+}(IhuGB>BC3-96vpUZ8B*PJ~49!e*4hl z6fUS8#0dZi@doDre&!G8;CsQ}Gy_4HAr&D;ZTZv~MeUOs{nG}{kO>H>W?(;`}93>Auf(@Ceq;s^DkbNvZ zed<{zs5ftY7I)lp6V_4-sG%kYlTZ5rK0SGGP<0u{)JiOA55Fn7&lmY_qP<&BI{UY0 z7oefO6)kr^j4xhvB}TI^l^%8hhQ7iHv02xnYw&OkJM=h|rxOA-gd37OUo?^e(tTxl@(RG zMrxaBYff`B?KtrCm6T*^R+4sDpJDn~7fl}<82Up9gb*+YxZWB9BZR=-LO_H%_!Hq5 zr8eQs--l?kI=~=%6$#u4MextLa{fOpf%u|h7w<)aL)s>xb?zX{_ktbN;Ccw=il z)@`jr6PeidHA_HSYjk8uo9nT5%Sx=->dM&o$kn*>rCnIHsTS*J--ZB(lP9c@c6`?;kSwu1tES62g8&!30aU!H?{s*W#u z@c-eVTW_U6&hMzvM8-y}+~_iECj+~h<<^&;)ScI}OPE(JGw_somNzs+@QeF~Rc zb00RbydAqX;$JsB9P|OQsI|3NTYoey`Ad>%!K&Bav@Hy(TSCGbtlR9qJB5aUR`WZy z@8l}E8K)9nls)&vQkx-{du2@+q%h&|<%C1)#}0LT&*+whcWqD)Tyn`V`1xhr2hR+1 zsY)%uPb;w!5+p#VoB<=fT6qoLcxeTNghpGfH^X*oUZr+`b4i&6*ug#YRrCIV)vYcp z|Im+Nz%I4{3OtFd>!1nKOxRfV+^tyCKy^%7+fL!io-GU}4aNCqQ!^l^%mmNu+)6xn z*Nu31;T99b>l@ais)5V#a_w!LWa&iB)=j9asX_9DPh&{1y13%C$4!utU@Z&v5)4=W ziz?oMRz!NmI3#VTLroP0eBU@5=HsWo`zNX@X~2*81os->^UMNQ7O(X?8>yAih<;()vu9-!B3+Ix!ooe&?I@Hzl!OSC_@Qz(C;D!et#d;oNS1s+3ZExVVYoD+LD_>uZ zw$igOF4v`B^WycGx1qss(ag!LopbKMQld~Ut^Y*CuM@7D(Wbt`fg%=uu`rMI3k^p2zUgi~q!5et9;Y*c|jF z_Q(`Y{%qgcK)Vl#IDG0EZk3%ABe&mj9TpJ>Rc0GwGoHHr+qm+nwLyXGCY<=wDm-`I zW8%a~F1&3K?tXM0wrs593c3ivay&G9X^fAf=+GgKII3YUs&-nZW zXW$Eeco;S9Y!5u1ZWsG#3&#abW*M9V_&MC{8T_M_-Aj+of%j*@?`6{c8{OKOYe(wlRcr-V&sxCrWO%0g>YNnN!^harNvF4oEA(AXybi?JWxcMBv zoVXz)wlYv`wu)?9mlb5iDE{tvv>3K6h#cNR2!s&mp56^%5kg=OAt17B0|M!>h<$Vg zfK=8opN_cq^gH4mCF!El9Avu(3qEu3Rhp!lCAj_mRGfd>$Zqxc_o`dXLR@t2rP#?? z-NNjAJ3>y!lxPLg2tUhGzVfq38&oWu&;I^i*?*AlZn*8XCHt+sNY^?Ce}1)%l&&PN z{%ODoU}d;7zl$TKRj%OM*sT>fWzb2fM$E3g6CfFEetJ##S5k&0a&>R*lh2^}kWX?A zJ_XZ0doF(c=YQe&30(cc1}u1K33gI|>7)2`DqCr6uVi2dDWUWPeD&fJT!gn>+gsWo zqsx9VyP;{9F#$4wS5{b0;f>7SpmYjcyHL*~&oa61vpByVyCm=r%C?oVTCT{os7=ao zHFoPZGWuKja0z*3-RoFJn{QY# zd6hCRt&S_NrTkvyMOoEcYt44MC$h~-!=b2@M{-#RMIs7zJ9v(=lPi-k_H%!MTeo&; z{Z(kus{Bq)A{5a8U%+ns>m2RJzTQkzv-o=ac-BZ< z^{uH~8>P#hfFJ(mH@NLjmry~Tj_^`+2{iJhNPXE{Ha_{IdvRh5>&)Zvm_3C?TBr}+ zmJb+4%h)fXqis1}T(}7X$I~EE!XY^6gi`!%VI76VQJ6S{YSeuH_}ooY$Z-3vBUNiS zX*169$s2MkzH#xf#1%C%cCN$HB~N13daf!2bj@EdmmFH7vlk5tPu-W|}X|!L*SR z4oNA@%bZ|w&wIk6q3%UAvi(V;K~C-8(JRp{r-`7ug$dwMoCUZud@2IVcdr#$kJb+) z#O$mg#<*u%E?$gvkC$gyKkN;UN^!ByaAyV=FP|2mp5llYL0OXu3L?AbSI z9FYPwRl}v}kyQNeLs1-ncl|sH?=@ljL^hZ7b9v-pBs&Xi!LaYDgGBth_# z+Y|WvxQefS(a8+ny|1}(DT-?X){YG1J;HQGmj!I^61d-;Fm7Z=mr+l>Qrh=Q&s-Q+ zf)*!ReLlRm&@z1szg64O5>mRga$2|zZ60Y;dRL<1Mt$Oy*H+@VPiS)!%dT%mbxRy_ z%BNtcX;e@dY4!7XjX021e8En5&?H4+X9lxpOxW4hjvbXvrfCpuBkgPPmrL(*M~uGuM_l+N!kF8i(zvh4?X71qn$!s3 zr~a^~@b`7y+dDt4aBtJ>@A&HdqVH-$QQ9u*z<yO%p9EU%?eu%)_*kj>Nd3{gBPo*tfgp9c%H@(|6(O>mEZr z2W_1fUtCnmqvwh^n51zaa03Y|W&^_8)7xP2_P~$ub4o($TTN{=>ZCzEI$#P4h6sVl z22kA%B^pV+Q3kUQL8nbbQrIwCH0kg1y-Iu@XP5kvQ4uU(7zo4UAv zy^|~9E^=~GrfCWEp|D(0p2ef=0@0V@Qq3>PPecDwTF8~YA6-{syX_fo;p)0M?(b}& z5UkJ8UVRDi+FO}Jfugag0*9UV11CT1m~pt)dJ0m(^P-2Y!c#ndy@*0iUKUqv zdE&y3swym5zRc>}%1M=WTQU|?#Qw<-5p%1f`&wy3LPiSZ3^PIT?n!~&eIKCFN8 zr}#?bVqEjhnYLdQ>BDi(_pii#*ZdEsUMNsVt(7L+T_5)~r0~D&Wh|Tl`2>gwkg6ppPH5zpknr{sJ%0x~8XaXablNve6 z4vt(;Mrmn2x>js4p+kb7g#0e-z}A`u3^F?!+-kvgS>Gbb(>tmrvpzD~C!=nKoP^2A z@IWMtDQRe>k>_am1iOI+?Ho`_jfI6&+NFIU_^aEg?b!;JveviQzaBiSl|B9T!rfJ> zn@m$2hf&?t*XwJ#g{hQ5lW;h$!)E4SeVDM;-KQTs<>xq>XF0#qt-)QlUx8XpjJhTi zjiQ>#xm7oAlQ`xS4DCM{#TjnWz`ga?hzZ=9Oj15-o90?JVEInky-1;!2Pa!f$}_03 zAgz%g9ph=MLr(vp(aE5ODr&n>bzT}FGUz58$Hi~O`gNPpUYJSS6~1Q4IQsl6akQ_( z+wW|~ZCsUaVqUWFET8N_lW0mtJUE=XHqgPd-J>qO z3==r7^}LH=bUe1LSg~(QFZ^p+R2n9p)F?ld;mYN^WGm5%*}7thY1L?Qs<0%THWJup zf|XNC#|*X7-JVkrom}6#^es-rlyuM1Hv1i29%=AvAHK{%f{Z^wEYl!P8}{lD*%3J;NEG z*B<`6t-yymP&jrAEcy%w0}mUu%>X!h7xl9d8dO{gcXeqjTuF9rz=rxmF=*fn{P5hJ z_}c@E_=>nr;C39o?x5zDXuAP6F$be&9*a?h-Td2<*>lXmo$(-6t7s|m^l;JIbXT>< z`|u%zz`+cG?p}2;Lm~Y3y@G&e^lbPeVHF`3&DRcVdq8=n8pfzvVWm7I$zxvr9uOt8l8>48j515z$3?6S{ zh=eEa6mEm52KoTcwlz+`m9xB*Lip2zi!YULF^~yl`nSINJlgu5Ko+h5N1s^0k$w|q z-~S4BkV(@X-00cTM4f~gQz>@m%5h090UH*)fNjjHw1AAdtjrOQ4OB~(V4RbYL+uME zEX1)at+Gqt&ZaQuMUe!W#aG;1g_GIz;hFj66rR^3DNAA`9aXds8{UP7mO3MP65h3% zuW!g1c8U|;J9s?Vbw9%bZUty+X-Aq@1ytMO_a|oVF0TZe2uPxZ{sgXqrcoW4pXD4u zrgCI;Kb!T-NC_sN_*Q~@nJs}t3dvHLXAL=V!E?I#ZDx#% zc?uKi0EQDHP{L4`I-6W@Q{Pm7FxQQ8zK?L9H|=%5`D^^>nr2*a;Yn10rHdbc)4%x# zJo@KvV?`v5!ZBC8DIJh~c6o4{z`w5e3GSrox(NW>`zUo^HJ~O6NjjH0gLp{h_a}Bd zjRjlIz>%elQ$8KjaTWR>CjEl-nDzW36Bd%m{A*P&l{nqG;!pU^9JY^yQM9N%4kJg8 z#^B-{S1v7|kD|ry*|nTVi1`kEyS`g>NKBRma_2I$ImstnX|*s$jl7+P8qHCloV!kj z@toE|kj!8yHFDKUS`B9CEqEDW8&O~36haWp1q)A;qJ5J& z7+zR+haciG22HMoFo55xaDF9IbTj4xfqJ*zHBw8V6~lvxj|!Y}${_sd^{pllt3Su4 zUpw~-Y>iJuXZ&c)_}Hl^G=OcxLg_9Ut zRz8n67tY4KH7z*vtCwPkSHsY2)jO!49`)2t9O;CLY^|o#UPB7)U_=E^R?_HFOwri| zg%seHaXtrs10GpbOYNIx26JI$K&tCU0qmOQDvWus@cb8t__JVcs?=4LD(f6_acTaXPj2bO6N~!*4 zwgw2(wCE%V;m@|KPsuH)h)$w)a#J*w-)z#uw$`LOS{WZqoT{L>1h#K=!q%POZWu5M zkCs@1>;Ccxx;R0a$4S}b1WpWe(2fE3kL}#N5%XVPj5zi$;asPLm}9yG_E#C|6m2Qu zM6B@K$@XZcBS_LGV0yMIrVNt57yMlTAC0TpklLsI^snzWZ!mV-Hjn_OdS~Oi-PJJE zz8wthL9pXHwQFZZrv`Iot->JEkUmF#3jc4?aagx>1-3L6x=G%C!*Ie$oQNJZ41@X< zMCq;N)v^-zJh}#*RJ~6~kO4+D1lNXDMWWjJmdaCKQqe*2mOQ+K5C|dA4FS((bcck# z5CVG$0TFrqyOnNHcmDfs^oKl?o1 z>f(9P+|RzNwi-2Cs?gj*HAf2ZQg1COBBPv`jblIm1q_d@!kl?E$j!+&;oq}Y(ZYg4 z?H1IDH9X+l1?Qjp2Lg0bXIs~|ZoKu@S9`mHWQOkKfc;a4g#ZEqibEGY!Wp?SLq`C# zpb~~7`FF=4DcJDMtdtj@#R?>3Q&7h$3rKCEI&9^13@>t`bM>ot<5?a@CuXb$wlTmW`5yV-2I0qY~@eJ-n0V9Vr(Tmj|{t* zZ5iT{5WINNn-t)+FE#_8_}O2PQp|m>^ZtoNROQv`n&L^FIx%A=K6C2Hn0xzwNMXv%58!@py> z!S@@GO3;tTjLCIW(tsv$nZb%1Y%G))K3G&Qs)tv&vSy-wq2-2)zd^1QR>P zO_|f_3rr2$wjl(8_NHfjRGzDmy$t*@3^+sL8lJa8vx!l|sfu5~w%F6T?;b)M15S8v!K-(F z1NSbdrm-q%BlPDMmDm)D&x-5ce_C>19t{@3X0F0(QbiLT>TmwFB1#5Cq+7cozu!;> zKhOB_jL&c2dncT9(tukc(xST8oQT;r3(q~V$yVwmXlg=7!i!YD8@UZf0-@CUwa;Hd zqj1~pdir}j*+US*o1fV1lBITmmTtFwjrse0{Ckaw61=+8yo$Fro`GZfxHefZ>3p2| z@Pl}jFx5#Q%Gvc_!O6Abp6M+sE8qFtRdN02`Mchfj2KTiF0@HGZL!c+iyrNp^g!k9 z+`NVpLPJf6?>~AP;{LgU6FU^bnMM&?)~*ZJO|!?h1!$a`1|3}93ZX5sF4wDoG@PfBA#1Qj%gL#%Mzc7{v*e;hX*c+ zhAK}e_fIkR4$Qvhx0p{u!v$2i*YUtfJl@kLmlZ2OhR2P9gg3bu66*rOYY2f50?}oH z5ELN<_80;p<&Mz^$SNtWp8X2EWkgQP&+K*&rHUoz(z)T2AvQYmE@7T$LDjW#;O5aW zgG&-He?1w2tbFcU%ni;J<=!bth{}cOG>bcM_s?Z`bf?s^ud?^{7q@Ut#6#m)9B@LF#Y_ikn;B*;rqg|ReB1pk;njypLhhS7u|(Tt?aw1BlGU8dIYPRCt)CQoLyeQe0SiU`=3D_Rqz!j zi;TR|XZ9V>sR3FEr;w1vtrQaeJNW(0+gDN)kN{tgH=kUFU7b>^4d$lP`eAH-1hY5^ zqHk|m`xGiCjX)9o31u_!<}T^z;mluUQUk5zB??|F~V zI{qtjaLDw)_#15weD{(Iaq;!Hm>P0oBAI*&YqsTrc}gQDHH~&el!Y8uQ0uuzyn!pT z#brH(x&R!!^}#@HSuxkN1P{El4cn-aE}r zSLzinKY-C^oD)o(W#E*b-GP3wUEpS3K^E+zj#fbI0kUhU1i08oT8yyTpFX;GzdXDAMr0FO)JLmA@Vkx>y=U`<>Wi;N! zqwyZcqem9rb3d}rIi2H{w<{84^)9yscVB|bAK^p~wJWo;@{mQtn&RJ7nyMkvr&{Qu z_9uT(d#k@*g)W3Z2!U=0MEgf~Q0NOG@b4ku2M8nZMsP`S^{)Y6o*qsFTI4u*7rfSh zVu|b)1Twu>VQuA6G1a?v*s57tY6c4Pi&0kG7kx_m@z)>ayq6aD!L~J(R$Bjw!_l#; zif4@Km?RxrW4XJ*AQ-4LFsLN`g3>MR!E)&{`I3zsD6cg*1R#(7_CV${#>m1M(F+wy zBj*@f!jI3!6a+6^cp*wAe*+bx4yB+-!6<7CPX7E)F|L21shTI&K8`gM%&>Jf9@)j! z6Ee!>Q@)I2KXo4WbSnv0mO6^@@vr^}U;Okjv{btU^X|Hes=Ln8dRozNjG1~e1`i*N z}p=JGlrE>9iH{&5j!T#kl7u3_D}IYUpO8+=3IftXTJ{0n{*i%FyUhu zIq6sm?^&o`eji?+zZrEj9M&4BfXCu1%8aWI5^vT|d)$jq*5^o!9&@;@q1(sgjl%_J ze+J`*53!YDsVJAEKZmP+e*-p07eO;{#93G2gkjT=x#JEzxy z6&jDjj{61$0H-cpJa973|IU|q3Om)rS3Qacc$}03xms_9o?_2AS3iW`|K>hibm7Iw zYF~(FUR|tW=n^pX2mipS6DDz`G!wbSXW`6gQ%&Ww@~!J|%Nw;wEFO(96HdjU{@iI! z2%IpL2E6(ecf&EdqL_{;pZOdP9W@@ATW-Y@OZNm8Zq?nvVt069HHk2FJ;mw9UAJF- z*5OmJEPC+V9c}_%)$O?F_0<+fmz4ge;1^&2HgdQkrhUz}2cO|8M_UBasnNpi(NQN& zYE7tUGDZEyyY^NJ$%+?AX4)V$wE~k1I8{b1nm%LBqo$Of zfZzNN=>+Sq75D-gE|fOGgc)DMStm@jW5}d7t_g>Cz?!+fBaD?%{bJ#-`bGPiz4zZ4 zdzU}<+2hiOD-Sn;V7Tad5r2PlmNp|fmr#OJFZ>(MIQ#@8G{_j3g589x%a@a=Y2$F@ zF~7!{lRxI*Nn?aj$FZ?V6{WNIw4o7oW?ZbxCdS;5Nq-Ek(>TdyNt<54YJaQ*C-P4J zC|45&4GN{xhUek z`=Y^9aQd0w#>9acrWGMg3QqO8B&6ePBCZa)_kg2+?uK8__iu-@e|C3Qz(?oGuX5wF zpe0_&fZ^_X*VDa?M+;s?d!pekNW*-TS5k62p1$EaT=$PTShcMtrj^9x+}@0h^Jn48 zFQ10*{Dqn_TyZZfC?Ox$Cn~@zFICM?CdjXn^z(EeVBcag4!t1+LI|jjgf4`@UP0g& zKl+U=>*<_NTiFxEr88#6I5V=@+P7Om>i6i21OgG@fPhfgQ z8kXPpdtCeUCKKF?i?~mjd);I6vGSO{-!U_Acwcf0t?O{zMK_|3d*DlX1Wi^Z_q%e2 zS9yyOQlYMn&aV|pl|TK&BU~l-3JUut@|VAG?&GZFab2CACtQE?ZIADdQmS6QB&(sV zZ6SA=_Z3Wfj*>DIMI&fj(IVK~yVy#^gy}5THh&Hp<0vaR2?9Fmt+Kkwjyv1LW1`Z? zG!Ld4XkRjDT}egQzF`&SF5hK%88s*u1IjX)jzTZh(ig4XiA~!ZZ6Etco*CYc`y6#N z)v}#gv`(Fe6rMc`?oXBwp)zII%Jz;^1#>%%DJ@;Mi}5?mP~Bi^a-_5D&CGAf8fS%G z*58NnY-3q!-$ga;1uLqtc}D{ZsFpvZU$&{FZ`?^vHKT-z$+Jn4X6ZC@H?AFbx9hmDZTH`24a#?szR3p*`Wvg)GFN812DE3v?tM?QH^2RDcCr=_aM~R4?*9C5+n2WO zvs0h;d-kHIoonoGSM7#-H`$NBb(MX4<94;n8lTl~RwT+eR{OK|ikDulLkCCg`ak-4 z`}^C>R;qshQ=1)2M7wq!4 zyxmUbh1{wBeBi-mavpq)?H_PcYWOc=DKg#s&(3EZQUE~HJ3a?z-iD>VRc$T@P)tq4V^vTVr$R) zU3=lvp7d}m4hV~HUuECfv^@=u=yL+q)9Tqoc+;*^4lqjlRsVBCEqF$I6YoOFrv2fe zXKB0eIuEX8<(Kxw4*AWezTGZ==DC&GEz$Jsy3;mqzsI^qRo|PJSx4(yTeapa9oLz5 ziWs`xe)Cmtw}Z=1)AHC0?FmnR0KPy$znwkxB!*2yd*_$zny=iVL9x5-;x~NEE)n0t zjcPD;)LL7cY^+~KTZ>l25YTtOefFBq+8tdz8XP&tF1+ORcABrN9<`r-@uT*Y`|r2G z@jbTsWF1@9`Ye0ti(`{Rvt9PZk9^X$4Q{f7D_&%8d+p2osKK1qzODCI&zO!&T&CH6 zZJxLHwm-8k-M7`+&v=LZj|| zy&^clG~;(P__ww+1n$DW597K*thC@w$jK^iFINuBg{*#tpA1g))V`$BF}SCGyc*ML{Ja4A$$t5o{kh_I`O7{W4X8TcaeAM1GzNm=Q>u71>N9?-o-s%y z+|a3Thw4^ff{vEyktx})`HZL9OP;;bx*oX0KKr>J*w)?KY+u(wTXK?4uuz}oIzZPJ zyL01C(P$N=2Jzl;`T2JDr$1%eTTbywn1$NcrLlp}Ce%;q-;s1Q(wI+r+T*lZ9CyWj z&U2n4iE8%EZ+`Q*X}eQl(h2#}Qvs-q`)~x__pT34_zZ!BKZ4aeg(QRvgIxX(?-1w_ zLOG&iIO&q-+A~h8*BP+d2&{il-y#m!K^@Vx;`|Hj%w_eqOXoEI_ia06oM|UC^T>dI<7>{=V$MYi`iAfR=(X3zwDZGRFk_!>-`{ZY#MtnSl76x-l^l{FUB}qP z+-I^1uc`<+>oD~5naSXqH7LH#JRs$Dhc>*z5bxHG?i>rZMw`!_B4eywN^YmV9p9#- z+Nduluhh5fn%(Uc%|kMpw#ne{>2mo3fDyhBSi@lzUfazbiH^ z+L()PIGdGTi)aS*y)kFR_vxLRM0e84HakrN8f}_=-mBxd?%BLwc#ha|%^HFs?@U^h zkN0fWzyfp)!g!hDaO@o$_<=d~8v|ftGt8A*?PsKU@x5K-Sr5Wcx`tHtE*;gibISo8 zyVdJQf$?4Ny3;gxAj8bR9TrX;d$wmszioN2$InEE{Y!=Cnsx1d1laygop#XnWLv3? z1IH$Mt-oip_3E2?^5c)${1ux0Waf=!^kZYE*$ZC&JGQd>d-lfv`NvviFkvU3zR(SL zj#uNIF+hg~h1Z}qE*sGiWKA7f^4x8mJMXYP2gm$qGRjZ<)iSJ^Ek1a#(Y8G>Zi5fq zV|}U*OSE$}#mY<-zcmY7&>TQ{=!}MqL==RQetp~UkM}D zgZJHR|L5=iN@ufoXfWYCd)|xwm#x)oUkns!@Z_hTu)q8I4U&@2)X{^lvvYN7!=bKc z&kyX&U;K#4hICBZPWv@`(K9ZR@mndE(~R`kgLhwN|NZT+TA$v-=IgPvfKWyZ4GwX&sqLn)n&P%g<{^RZT<-G^g zUYc$7IlpZ$P(5K_F9xW(H9+-N+bZLEy!{vLh0lADow+y<+VFNg_Pu|5n|*cYN_+Pk z^tn_T;iHax`ERbYO^e%9igWFm&wH&-B}r$8XHazQ>%7apcjHxdvjzjtd*MIWi`id9 z%M8Ynh0XvP?w&8b)4tVnKr2GhDi$!7f0lW~Ia{uTD&cm2H8_TFdz{;_Y{SjQsusV$PLI&DQ|fKi2x zmdfbQ3d`l1PkP#1@~%w#=n*Il_@l?Fj9DV!2)s`-@Ca8QnMK&@9-+?_A&>JJcy5xP zN0HH<<8VFo#jnuP+q7FZacAm=9_rg^=2+G7CGnD%G zoOxux&lG~G(C_%(AHHm?X5usIX*CBWjBx67N2Qfx#AoL-eA0}Z&mP4ee3$qU87|&Y zXL^NW2o7rLY>&=O@6*w27{e$5%)&2{5yk9t7`h|Q2mBkfITE|MGb7GyBeU34C1$-l zq)q>*e%1q@?pc%w|K!%sb^IO(o&^lNQE)o2K_v)ef5$0}gEN z1{OnFa-ZL+Rdg8O94p7{e3#C4A5s~J%kKKnvFm(~j+SGk1CH{tQ$8yZh(lcJcy=3g z%pNb14S34Ovqyz!GeZfMQp63~9>Qu=*`_+0)Lm2fq4F zd;e#C>g76h{bE~tiUtJ0Q16EU3NN~p?hYBtLt16wn`X)Ar98Y6Wm~KP7zQ19?$$uU zwucT_kIo$@QH*3}_E{>;_w##I{(V|W0rnVgd~-`$)OBCh%loQ~>=?giN1w-Mkbq6o zVi#-;YG{x~qRq=iUSLQ$Fn%H*t;|rFJB7uN>NtZD%oMpmuaPo@M@4(?A=ROk687@qrPmYkIqfY`6HlOT24bcAl+Ydy-~4o3t6EHV+%u zx9Y|p+;wy%3c13CkaA3Rv8L5Wk&Sf~xC>a9luuRFH%dK#3CW8YS3e^O)TLVUHo_5ly3vJEG?Y2nu zj$PsQ?bf;OKi%gTv#H|AqGO<@Px7L3@C-XOZB%JB2d#VWUHar&#qwQ?fpxXiA&E66xpRUt8w6X@7zgP8P+vXl`R}6BUe0qni6i=Jf zt_RiDwkvGYz58|K=eVytS#wgm(pEhXKlgSm)R-(xdvu z>Lu#Ox>GecsR2CRW$O;DuvwxN1Faf7Jh<1oyEob30Li=sE3$$5h%8~%jSqeW^ntrlpdBAA{;zxKKY;v{-CM4F1G(BqKYq=$=%<|FQ4nMu zjXIn^$3P~7N7m88AeWyyTEF-3ios0W96#UtRcY2VpJ}hUQlDE5Y_`9B?={w~G}<)L zg5EbO<2_a@(T7Lc4GqieWpBUSPSM!+gJ1cSedX>EZ8*F{I)V1t(145&5~zS&$wNQh zFGRV*??lzpj)L7MY?Kq-fInn7`h=|q<%>@N0eUHv3s*X%xN8w(~oD&A@9Ipe49bP~20UzgXuqk7#g0pM*HJ41!>EwI+vkBKJwF@=Kpmzle z85PaqQEUho=f;m{FoS%d=iR}J&j^SM4QNmYJ&qoTL;VZ?hx3dwA4=nX0HSYss7N5O(R2@S?*i|QWYdPhqfLWA45HG$ zpsUfO`eL=snwoBXsD_1x=T{fM_g%1m9ukG4)YJJM4RsGrDE{E;tBR6)5T z;rD3xM+(Qsuh(6;8x_gx>vVLqXa!(GO;M_muvTlN0ejlm2$Tp^Ay69d zRbZ62M~48)i+@LjSXBo>rx^-Ox}u57p%C~T3Xkp)L@tX%u$^O%d$#bq^RGxLCf}U_E-uyI;5F{JFmC*zUxyqp(R-yJ6ErBj6G^q z55O!Let1<%Lh2{3TYK^QuHW(F4d+jcj(kk$JRf{qd37ENsSH^17b6SJ6dv-2pGQ|5 zjD-n3&?RH^c>>Vr7G;2Xkna`fyzn%Ms(J+16oV*Ur~IyphNGGMxG0Zt2)+CsmA)!1 zW#M_%k|r6-c^Um0`LnD(m+xWa*Gu}2?J3Q}(O1f^vMH@2zW-tJhu#MPRE){_%ji&i zu*&7*_R#WYAC!MDrrIC_4&38M0Bg9u7(?+UMUoeP6&J(3a?BaVy9`(v zKg}}G++a{#+8F8b4}%P)pP79x2k$@{gx8;BCoON#XBH3I(lg#_XK4j)_q|`WErlT` zV_5?O7=9Ge>m;ct1B@4D+$fiyfR@Th*)TS9{>Y@3Rt*^NJ`=1Hr=I3_P#HwWX9gJj zKCt3ol1ID)>5&%sU^rkPd48ni_)%pQhdLtHs!i4~m^==+s^|l;#5lLImxcChsFi-!z%o(!?&1DXHFrgjsUKq`M62X2JUOy9o z)03nMM_dLoFskY`n?0iC)(rGu80SGG>Z!-kfJ9q6*w@K8j9FmMOZ3zk41bKtz=hQa zwaxMUuFq|7_>;HqQm#Q222Td`y}j2pFSB?nL!a_8Sj1pK zo$?_s49C1_AGpIK|D;9fVRVvT<_BfT?r87_D`<)9{1oqwhVE$j29C9=N7R4t0$*mh z<48G58vSg3FHYKEa3~LWQ9qXnLmyNXzrY24(pDH8@J#?!cIrNPAP@3=UYWoE6 z<0c-*pd97V=RypWG2ld9P#uGZxMeF_+;C@q0Us!lKm4IhVWdOHzybA-vcd!MXK;&W z-kY||CqSMQA<@9I~tq|_EMJ1VPV zf2fXT^{ed#uX&m^XnFiV|A6ypVCbL?*R1dpHmt7ME_m7nwokiVE@@e=eTTH7QhTRx z6z#ZX0ctdGTi3eS&bsK_Vy}c{XDqkQ|Gd>di(I1BlJ&k5y?}SQ7QE5zBpr?7maasg zL|`%kr2#(~kMij#5bzGqg>7^O2woTb*^drE&J~y>dHvpfBg}=hMD!h>{WrUD|6bd& zZKIC-+2h|%J@KvoV1MEdO!RJ+x; zw6-~2(Nm`mfZS23ad@TD`15@DdGnQ*|BXucvlC;Z@A%j!|M~lmMVZz-ZNnDj^9#Fv z@P{vv{`~vWi+)ZEc9YSdt9a-gy)#YR7jWRl)nQFak(X5g#Lkh5a0fclbYdbykAF$; z(D~0C;TO#?c$rrWz#ArLT!GVt8CvdXZ_XST1%I5l>OLuat_+H#HnsQQxxYY#-jl-E zj!pD(oMlhA!Y(;uwPyJ=D<=cOY^UAu%^z5wK4-|YwJ7IQ4KG(J3-=3DX_#H5=(+9d zwkUs8$_R(7Rx^11BKcj4@*}r2(4=QKT)kpP`57oEXoyseMHM|sX8b5@9&DM6U!r#` z)H-}MLd=U#qOZz7V@})iC9ujS8z$8}%Xs=bSMjMDvmB?Io_6O09xXAz!BS-v%W=TC z%lTt8@m}x&gNgT}%*;|_RQbS&;{g!DT!UfIkUz#S#vJ8^SH9{%HzYriR?!q?QmPa2 zVh(kYr}86ClXjGE&}S;}DY8>OGBU}hp&^!uk87Vb>KOwlo-Sn;E%{PvHv}~>zyQ#= zW)Mk-_arO~KvqTgTe!a$B*h_eQC42YiG$wn@gpr=qpu^r64QGg4PDObsQIRM0)LKo z#CZ1ssKhrf1I1DP6d~SUgB~*8+d5!!Rk?Xz2=qSjO8#;lhx672UqQb>c`+d3162O5 z!c=%dU#Ecp1_#E+o0Sd&b`^dDO0HjILer{Mn|GdQ0G=84h2vVCL|u`uR)g^?p3v5# ztUef^`s8(!#8a6WBttLYJv}NnykONk9yR`?I}JA<&w&R&Fn~9p%Kt-kv}hxW2bOYC zZ@F{u;-W2b7BAP4Z+^}PVTZVe)%Mc2TzQD+kso*e^j2-~cu=2*>C+|cy+Cg6q8R=R z7jbxbcoE6H%byZ~5&M$BwZt;=un^` zjOA8sE$y~!=_)tCN3~H-*XORcJu={ztvy}KSbwaYx}`YiTd8`sx^}uG)X5XALw_v8 zVp9~3n&W7>)|NJbF4!Lmd{ynHXRlHT!{ef&V& zc_R2x+}w!|ewUu%aJHcckP5BmP^RHs;if~6)}9j){gOqo-%}XxLw3s-KVU!928MjM zyI7k9a&%lny}pgaNTXau=DMlMKO2|?&!qg3OR9@xHrww{0h6nd@#RkWJR1Hq7mQ+z zPsadRCSr`UR7{>i4k~iS%G1sMRq>IP52Gh-`KyA6N4dp%3EiK16YW%f#FOJ4Sjryx z;2rcl7v+)x=KjQ28cvz%H4|RMgXVDb*&q6<_t#^Q-lY5+D&_ZjQBAM<=lKgu??q%Z zGWY|%m+i3mCtQh>@aFxU<`M9ZS>Q<1%T`ratDl`ucq9;}+ScgV$P0R3J)|p~3;xGd zsjDFV>+w9kjQ;RGw64c@^zih;x3-f1;ph|L!{`|=lqMj48kQt`@5i9m^fBTyRf zWkr}40^T8{j*|rF0DOcu30?ehhmfyX9Oupisa&h?o||>X`>N$@w5iF`=t!*J{{7?s zZnp70Td{1lZ*;PB$#OT)T`@}vCH)P8p7a}*th2Q(eRiNA&`?xAc7kYER(~p;3wX4#d9+L+*64a_23Yi zBECl~=?gq&5kFVn;Z14_K<&nQ!aQ1s!f8)ZdY$71&q6VW@Ay0WXGp*4_J6Rxg(ur! zcaPnA;}`6ny+b|&%r~=qx8C9#1x9(v6-;I`e_s1ozW>qYj|}rA!>P?sX7JB^@OwRk ztkVtm@+`vLa0Nf;#8=%ojX$URYI=oM(<3p%Fg!~7ndU!J`a{akAnqfT-&YENW%c{d zIDdEn!f{QL(Q{wd^p<(m2!jFDJfK6hYUoJG&h2*n z$KPxJcJF{DTC~}vbhJ8+%D8k&{gRqr=xAPU&%UV3InDA~B2Xd_2$TkVSrev>K+Kwi z(53^JJc^5AggB1y2n+K$6e>yRWFXY*yY;#{o!2dGr{(mE>_r#X+86%$d$zlNiFVlK z8(SU6g#oWCo1)OU`|NrW`piz9`|_9BlUldib^m&c4N7Ul1VQoD1fIvID9}|qFWw=3 z)#1nFKHE;?lU1(Ax-4}K4IdpD9(tExY;dD5;gm6SJY7*mag5ScFvbJkXK;1Rw}e#j z;_&w+{cPjMvQ$_idr-@ogEiht#DL&m7&<(Fe#O|!6*AKV|A;gb`Y~;Cwoyl2?cCmL zI|nrQr#9QtUZ)+gTm2hlj_jK>`<|*35`;Q4)BGPd^uoDNt~2IhWSD5e0Y@Caq?_;x z`I~9Hp(UP`^mB%v4`S2MXlvpFP3>`0*HloNmj8IYIkDOruYSBa^e$gTg$fjjN0Kl_0;p4(#Ec5c=Q6}?L5Li<10{h6(|t@eQzTw&i5aD2Re|Z{ zaKWvULRuu_^{Hb=dx!KsodfUxqOL_>R3Y^Gs7KmT=}H7j1STU;8t{|xD4&iN0oN5n z^t#|j2&bu=yhJw)KSh+wf*IpoU#x}3DH?A0hvHMC+4wV_dX_C+Rd3I|@NWCuO@ls4 z%TaJGnx$tcJ!xaSSI@+s`pjqAlNKo{ZJN^4t7CAK8Q;J+H)_{nK9a+Ec_()gk$VKs zm*1MPk>Al4L4Tt0>U)k=nSSXl|8U{kKEB{3Z@8p$=hIH@KLy^UzPBh+HUyb%g8wks z*{}N?KPwEPcDnqWXQ-en=^q>XXk)Gg!6!98IO6qR&-tF4tbBQ!Rv2-J2~TmvP0f5p z^rY3Gl1w`9Z`v$Uncc*GbPoKab)2A9eol0M?0VdEgVS z79qwT z%BA~>xN6e*l;^zEp5OH``^r5!|5}E798CgkN>g{*1KTcq$t8CBl3b0)ZSS@Rtw%HR zoB`jUou54mj zGgl1T;#M6~RBg2hPv<0lX~*FVWT6bC`2L&#uXN~vb51i~@h#~AOE}Cje#~a$82G9z zqo(aSC-r-Xk>|`xe0Jt0qcF9k{NYOnsIgDsN5-5^7LY)r=p>ZQAH{JdRr--vx{e61~CHtPEiEz)O@c~^PlR!+#=9(XW~)yqyG>7<8%f- z^DgSfHD}uMo_CJ5r3rRV(uS>j+a}wqZ{U|KTBfzaY>+}$lW$4Ro=}ykNgLAX?>`mb(f98h%h;>D^H4tugB*{ z9d_|7|B^nCn=}025l1g{gK95F^vBR$BanKZ> z##B)P$Vp? zamyG@7e9Cf=%h~?!0vAT*R?>yU)%?PGCC(p`4gj#qsuJlXhOqluH;Z-L$e$3MZH!9 z*}rGV)~z|kMn*>b1fWHlrRS4K1QzlKoz1T_gr?K%<*&WKwq5@f`^heyKEmgao<5LQ zw-27f6?L%EkaAFYEfF~35hxA#6TS*e9RMHEb%9G~FO?`MEbKtY?%uC`!EWi=Yb&)Zi!venDH?;!#T6PoxKexw{fYP}!~NAdn&)c0dkd`a z-If6hC*U^kt+%Vcv(&D9c4so;6)W+KaCnPzFAx`P_RIBxnIKZkgC)*?r(;&6q<<{% z^G_Avfp8xOa{X0iY2gkYx;XFieR#>20Iv@P&1})9dT`A0&+m4u-v80^2WS6_wpJXq z2Au*zwt6DE*AQIhUog{`r{?Ayag~_2#*%(6@bdv?LG1EQ@{yzYylUa$?ijYUGJhfP zNcgiO>+$30W9fIjf2BSm1dt=s)X|U{^!K&;B+=y&Iv!pcgl&+)KBkJ!jCw<(Rz30^ zyu#ub!>Z36o0~LPJFc_j`>nr!#2OX1W!sz4tUJ zPRi6T_{-6i&o}p$H@)Gn1j)~hkBoZF zzuUJq+dtm0+^)Q&(^?uiKUq}jX%}ddKy5ov00|w?dS|O^t`h)FH2>kANIW|4b(0uT z($5Wkz79o@(@If_*wn}!Y=CF_7lvOvM$cwcu7Au_|YDatqT^2gSpKJ z|9qd7T7vN7x%wUkC9=eaN(25-M9Sw!MZh~@ zN%dl*6G_}`jB|CTAyqf@ToB`jSk9p#j!DO@w;Tt9PI35#iX-K^zVjvf-COUox4-=| zJALsv_KUAPN8yv*o?EZ8_x-_#?B3x)9|2yj^W;~pSYvJ4P=y&O9Ew?GWY_fwFXepf z6ok+dgv-TRUN)!az+d*iK6;t*`jB`e^rigkUyP|&xRm(=j`!_qwm<*!Dtqn4U3T{B zLFXJsd>9h~II$AEAfk;1%Bf?pE-Z(!ng3Od&tHc`Qc(S z!PGXyG90Y&c)E#u0`k2_DSk@&z_h?@7Vu-A0Me_~+1nWLS)Ovm1?J+W+Gm8pvnL&^so>3GM4AR zk~S&0=^HC0ot0PmA#&o+v#q3f!rZ;`9UnV$Y;^n+0zfvvAssc`10=u!EAOy@X2QA$ z>g~ffth9624cPOa*kh+J*SWCrhxZxZP!2>)Jt&evX$a>=g>H+brqqj)eopc09T^kG z+AKm$sFP7Rro9U)#$WIb?s(ha2cGJmw@)6E^ST00#j}#Ws?MW*%FQ-@UHb>De_%u# zM77csQ#;AL^DK*Yq)^Wv9#b0l!;Q;jJyXQsS>;L!xgD1DGsmy9t6w{G58JAh?T&q& z`m!-C87|w(+_#mP%PPBr_HaD8EW>@GCCdVdg`?8Z5)jd!Pu9^8G%J7ZdDAf7NwmS* z8h6=&17nhFD??bx7ulJ02$!Sy>Ca^uS8hsIB2XeQ34zjpp9DwwaI^>@*u7&w$|m6p zt#=w}iLM)h@(YDO3`OF&R8|}<5Dh7vC3QiEVp(hFJogvvnHQ|qc6JYU2e*9R{{FgK zeRI2|isZXR(I32_5hWLjZ)!_~C8mW@ z6A|NAEiejJ($4{Yof>f2x$A(f(16SO)0bKMLVe>q5*d|kO*p9TO|G|5XQN6UTUjF= z1YhjR|fbPl&#Xy9E3;E(dtgIOP=!Z1%g9^eKt5WdI)@VzCymPuF+2t zs;e8YzOG#wm~64}F+L57=!mQ%>1a9LA&HldB?2cj0;K_eLbHE*FP}RGuCC838Q*Ob z)6Dzn%7{BTWFw7xr*WdxSx9obNr1r!F|K8mJ@>L_*+~!k)_u2q`=(v?luORHwsT%? zU;D3f?dtb#uuTh2wYAy_bz#S1DZ9;n9F;FCRZ`VPdP=>>oqYX)>pXFz6Jzhxx8;8} zHb>{c|H^NF@}=YBW0z`SuD@~SB@cN7+ykn9B93^fe;9Syb@tcVO%E=#pFg`xUidqr z#cg!D$zMVKOqAk=+f0|Qm842~VUcm2CVtY9Z1etuI#FOk-yJ?A1HQ>FJZ}wSH|~6} z#&Ze&W+jS1!h8@cU9sk2-=T4cOTF-V;_Vopl71%m32N)?9(1gSq!e%6)@@H%uah;X z4~Y-758?$sqW$pfO1WRfch?Le%vYruK2ue0Cwb#Bp7S&epq23~S| zDchPr@)|t9WQAncs5VpkFE89Qe&*vj@X=@M(;EIE6yzSJqbV%+=ZETONRy;JRml*1 z^|xf9HF^} z7CHK_JX!dM$cpf)%*xvmff9iNfzp64peS#S9)TomC4lok?Ad#_`@sMHpxrtoCF$vJvQNGL3R~5--rn@rSKB>b z`@DTu=aKU5e2ge7P12?#&|g|j>e)rfBXQzXKOd6iF?qcD>Q8IC{W)|KZl9vrgWdk)&_Rb^WPkNGNVWOIK01wXf8kBT@gr#3k6&Vi2#i+n&< z#J@+>(NwRAN52jo|1y05lKfJ?(6&-X#YKP(ZTfHf)!+Xo8yy?9mgZLfbg@xq#n)+L zI{$>R5Ku9YFsARf*two#ew&+HB-+@&BN^+u61^Zvr8u-SDeLl5B5=YZP#W+jd=;2F z03qrT$P%{L>B-3RPQZmQG2|qPqhs&~#m^l@&=k9nr;fvFTJ71te5mo>XW#qe`|VHu zl+whh>_Uj+~Eqn6PMmzf#UTvqJf46=8%ePqHaEHzzRlXYK^~u0g z6iPsO>6`M%u9v?moH)m`d(H2B;%q_iv%YkW_bvd@gY(9j=@78w)8X=;6b^Xwt}MON z1%-8Ax7qhLw%fDL>Wv`cS2GxZXe%MgxLZ9!3Jm&%FpM>5ED`i}+0l|83%tvrRu^T0JqW zbCx$f)NN;L79M_PWjy!;Z!$lEO&*6p_y<36F04Zam-N(KVFEr}XMi95-_~tC1;5ly zY0zw3N61as1DiT+4Q-84kX%Rdl|0L~7INem$r^pBH=%t&-cJoUo?KLI)wwj4J#8H= z8i$}s4Mho0sNc_S^AB%uS=7tou~9w(6WP?LBj-A_ zZxM!mF|b40DI0GVm0UgdoM(A05hxJ|1WE(GtO-*_z&it!LBwkMjtW1w^-zNL}|MhnJ!j^ukSBJ1fN0zKuzFM2rt<;Y5 z4feUe{#)DfD_7b}p1i~wR-R)odR@JJ`a?I`*utfLl$?4Iom;AMrsS(`3!RqYohYuh zcEK-=@!gp^R#)J&bqoOV%lvaiAAZ6T;=mh$=P-(oBN{~?9v+c`Dos^E|MinLd$KmR zTiiMtoiTI~*>B>ret9H6uO6w6INLpa4=m{mMHbit$m!zuldYZBtL4`yQem(OV4tr?7*};#3Wo~E?o}CwsvdU$;e2q9cEWL&|!;(I*$(Uq}0{4vH zj-9=BP@AERs;v$Wk3}^QXEtr_w6&`{d>?~ifK5phJWFkg3;aRG=4M8|)jTWd6Xvsk z-)0%_1KMm52fs#qj|nkA|3^p1ZHqpCIPKKOz7lNL zt-Ec|*7-8}k)a9cV%iU9*(zJN`V{R!v`iByjjrn^uxAq%SNkNHEb(ZthTlmZCy{lgG*Pk#U#byl}h8!^Wo>sSH9sd zRE}p&jE()?$3FS#Z_jF(CTcFpquubs`Iz`aK6&uP{T0f2;oLi`bY;_-fuUjTVy;0J z@z~=D%;C{GyZXD!>>bbFqowo-QO8?9{y)COBcZ4>Rd1EzMV?jsDCq^#^zqx)({H!! z=uXBv?NfXd{_uEsc+~E^YnLrs(yS$q4esY~!%-r6w!wEO!q^MGMtukcFlZvplAby} zbNmJehV6cBI*382jV!%EL=z2!Z@F!UJ?j~#O8&)w8ot39&)uJRM#feA<38kGq!Y@# zv$`r?q*l@&J$?sz25rlhZplCy?!ydd(l!KsYP($TePEw9SZ&khs%2Zt_0DVSv6eM9 zaevdI#lHu)X5!}KIq=?}sv*6> zA*-k*@$C7gXyv6uphO@L$nB)WqeS4S5uiiJodQJOS?HSmk{tFCUBZ3#j~jQXLrG8c z2i0!-L%sg^qfdND=epEbtB!+Ptz+R%J$b!Gcu%=l5d;7LKmbWZK~(nh;hVHkU4uq> zTUy&~rOtfs{KoZmpX`42W!tr9hwa$4)%p$|kfEvBW_eG}KRN{RJv496_?Z824!m6~ zOLxhv7iEE+!#8L7&%se<-bd@|{_1e6pNWJ2s1($`{z0F0mzOI8#N!@CVDsL3yZSpz zb!d`mgZJ57Q_UcrcjEaP{!WX(zi4p7KfZORpTmoRUi^_~;+4;!_Wj_b>6G%&|=_RH}~`l;bJ&_7~#+%0}- zuw_)U?(}S76jk`e>KT^O-+cQ{Ur~{9_iNc!rrlO%ik}S2Zp{L};+bc^D-;gzgQoYx zIq>uCEcil4ORrSvWz`YrKe7dvb)$R@-y`d2HgUkd{?Y4ghsN<&KI0Acswc$v?yf&n zQjYYiersy#t)pe3Eo!fo9P8Igm7zkPn4Ev~S7-$M;c|K7sr)SwC=mdGat6Mv2h&2p zI|LNQBw7)`KEf-%Lg=Cq%DLk2cZ5KZ#Bmk9TNqMkhPK^rH+}nd`})RKAJuJYY|+g7 z$+l8U=UbZFv{4=3OvMhTb^6Y|7QgyoyZIa6x4X99XnV9Yt9@|5hDL@}4j)noB|$lp zdmgc(1g@~^dZIY-VUG4ECimSB^&|2?gN8%$DKOQx_4L&44ff6Jio*q>+K!1TW;NM z7d`bP#4Fsuds=m+Y->oe>EkEj?wZ=#7hQVcpZrwG9JkKvv4F~w`%oPX409izuYoEQ zgc6}b?{b7eCmG=IS*!{c5tgb;b@Y2!h8?>P?SH)+! zJhLk+pLC`+zZm5TeM@TcLbh3;v8`=)m9xulQu*d-nqjb>RG6zifhz?)LUaiL&PBqMJ)_R`DTZo zCzCzq!Brc~xpuN(!8k8Ct4?sXu)&gRkZ$0GL0x3xkS2v+xYC=lieX6KyMq&*dKe2) zv@jRKpU4;s_w8!7KmYP7d+o(tcJ}JQfH$QTN&=uK7s>d8^N2h7F}srMl1C}&ofk*K z4}<;3TRQFb9X$!p0GFN22Q>ggBf#fSW014PZ~D~ zQ6D_rWGI&Of%{bO8`PczKe=tUb?xsHS%IMQB3etx%apRm={+!H|KImE+moNjr$w=s zL6IjBS@KE)#wpFX*EO}J@DJ}I$ISDR{t@wG@bV!oncuu+zxDTPP)razyuhq~kHjzV z-lt>ce(>Y1_SC1WwWhMIIbPsW)Z63(hEzdZ<$jiAO^rREZ?s?jbLVe3u8sFVPxz^V zx=KOY)?e;dCxsWfK=k2(d&r!q;Hi>R(G|DpwDawS&s~?3&~>4m|ALp>`BgrTd^>D| z1D%p}z0%WawJK$i)u-gE+ft^7|G3Z`sU~qe;6-7j?+BcFL2_u$q0lZRbuMy+gc0N=JGP4UPJ~eW|rJx4UuPtnaE8EYLD7 zPlU*e?Pp$kp|ub6S#RH<43r_?Jm?e|kGJ33C_`U{f9pd3{wn9I;_*NFqbQy~r(1>0 z4>vJ7@veylV}H>L?Py z`I|K?KT!ZWd2|od+lOyhY3FKVyXQZ#$4*}{~t}ta86=cdy;|fHoUESXtqch&_5J zt`N(48gWljW7;6?Ct8~Q(AI7{^Ngk1A0+MhkuqaI&9ig`UH53nwA(BLig=;elZEF| z_?Pq*y?5fwxc z;Ljt}722xDk1C+3>DkE&&ypS}oN)mW_kv37T5wfkNBui5UcZ4auxHK9$8+HQ<%C1X z`e@&Nf2fY;^)2d-*EC ztMu(;MQ*gKT$Yr3X6H0=D@jTOj$Z^y1OE8s?VPDd2X^{G$YH&>+y z4B;0D#2@_2PvHkf@M^;PH8V&U8b2h?bH9-n{Gg|Gg+Nz@haVL2eCPHSyK}pCsBIs$ z^G+JDGi1oG>KM^?aAVd`=U>Z{x=1~jL+(jG()57hC*mropgU3M$7Dndjx4aw-g?_} zaMTVAY1N6A%#U&!0C+fGbtB*~?Af;05gGbFzGa6kml1f@8Ov<3 zHn=05g3r!iXNa@cEfpAq%XNT3pC$ zYp_gdD(!qve4J-@g3%)p`J{oB5%8wFyWjTi>sLPo;`%3$Ms&2Fx3_8VYghwoH{ZI$ z2VB;lUbeNll@&Fk>b}09ftL3_-5A|gw=?1An5w)Qk_HaulFZvCAPO73aD92CDKTM#_n*C;)T?iBr2&8Z^LUQlFgl1Z_Cn}qg(fJX@pzf!dZvJJ`9? zhIJ8|=n=!|zD+&>c!2Wv!%H(ucBh`kFny*8qlB#x1a_@fkui zA>Yd&g~DSLC1N|qu!FWCufSY}Wv7gl&WEhMtx?8co6hxZR-0_pN|^dI7~te&WM<%pr!5&^*SuvF%j%SdPplD(gG%j%CVRRzi4awI=5I`TZ66CZ2Xc%&DO4+>Kn_p zHZ55}71dbgXkFa`4T4YnRIIw8p}y|Fe&$IVb_JtOv|nUy81GSik1ZxZ zf+Ev}SI`o7$L4M`8Sr~<{x|#0_k7ZZ8v5;k)-^EMQXCiD-k~WLIVWqg=f3rQ_O=(C zq&hCS*EJGiD1!YL(Q>Gx-MRna0uPN`K9>lbUfHv)5mwb9S5StmnadZFJR1Qi2+-L1)ENG`A!2 zl?1(03#B)we>VcNY z;gj1PAKech+osjF^v9>7-GB>Z66JPr;x6Eh=uK1yS-PsZlPOP?-y8lJG-iXwYHZt08rxQ5+iYwbC$<{fwr$&OPEJme$@lla z=9-yn-t6~#ueH~DaDVRSB2Iv6`|{;WL0w(l`~<1p%8|g2ij_Yx-d-~Z9zsFb61)j& zhuL0|A|r7&qH0?yPcDHZ&GFQRu-pEx<)bef)%o_ilR;9#Z^F3pRJ5IE1o@XyKUGMU$+6pyK@9bSoHs{cUi z5;xtOGd#fR_7u-QlN6%*FfJ=n#v;7#-~^aD`1f16C}fb?JWU{yRSRw{H6^-*fa zG4Z7NXnlPD7d9$|idgk&1}X0-pg@KQd}M}tC`b26K=zZRe(gKwHI#oX2=!vM_3-<6 zU2(~mMO0CpYKv}ab!olc;WVB`a;vp;X?Xg{I=6Y~dI-&5<5T@}ceEAsd@q|`Tc0PG zJD~*Iwe=4DYNsZ9tI42ye45npL`{l4$y^~vx8LRB;I)WNGAALOenAKnp5wjao-v2? zTdz*j2o4P(xfG<%iN@0g{>-PZaNV;y?|Q^2^u6>pr`Lg0)3Whz65i#FT8sZ z_wwBF3qSFm{YaHKFVKIiuAF4O@j|CYj*#hQA6z-6z7)mg+}0NUm|gdj65Z&goyx}7 zGN*ystSzew=q*au#_ZTbse|eMb@?v96VP_@YFYHIC;mWi>LxAh1B`W=()x8r;h);F zVY2i(6uwnDv{{~f-s#3#2+Z5o#<9cl|DmXNGpaRROe+;vL~z;|#gU)I13J5Azzzn6 z+hB%2PFlgqtNj_}7X*u%FI||1!8E{LQru>7@F1hDVI`R#39}#J090ZuSpt8Ztjz`< z<)lNojPPye2TE#_hpoh~tjIft zFgMiRXv?g6Qw803gAZ4BdJ^;sGtSx0=Ls@5M7$FxmP8(Cm?@zsp^jOd&4@DiptSqP zWh=jS*;A;~$An@;xk@09aw3^d0Y9~yd{DLhX-wJ$^P8#u)l#cyJ!XJ6bTzkC#lEv{w{xyrIi}^3^XmzhU)?3s3^@@oaY_LXzDzZE z-eEaj+#=rx1UtdX%pZ!+FFV|+Rryv8fUbMa>$`I?IDZ?Yks7Hv#E7DARB)VpMt8hp zSre6uL)HF}68m~Y<_*Vwb07Sz#8`Z{4aElTm4zxI^FhUP*eIRkoF@_L$hph+Z`(xh zDR^9BC}xcsLvSsA5XpFwI;2(5F^}>3tig@mL(67Slt6BzGv7I!4Lj;?DW+fU78-_4 zXKSpFg+c@t&aC{dejwIY@@q0`+Cz9hHaF!ln8j<_0aQNaTRT9)vwW%hw7<_v^!iPb zYCf;YxCHuOw>(%=ojsW9aJ2gn;h%JZI;^D$o{$x0xW++OuojBTLLYw9&Rm3q&2PzK z6y`&r#Ze1cb*rzZAqDXr^0}w{+r%h6gr6nani^1yxLg)(@0ZTi(61%g_o(LdhET>M z2%)V8+RoM(-&FlR)Z+252$d=-DU6LH5q}@u@X=?~0e%FmLs+|rH1ms5 zYd6%-?H&J~5%ln#(vK#EjSp646!4p#Cbs2F7D+QxN7po$X}qcK zwf(>3H{&$Fo%!Q^*`{MsA2aDbeYE_VzF?`E4_7SO((sf!EJ=>ySJ$-ne_NWL!NQuJ zJ*KwgTZ&@=7wHdl?va39-x2I;k(*FZtn-rs$HK6{0U&AG^Q4VNc0@x#>KiYeei0}c z5Cl~bG*yhY{E#%{KrZE9HxN@Et~bM0(S3A;7$5ELMKVivQQZSSo-T`u9s@ohA@6g3 zuC6QLEPU%7P>@GJT!}YzOi?I#=5~an5GgdUE=tqt4KI$Na~{G~n2!*0@NJ{>*AmL3 zIni-+Tj9Y&JVNTH;@^;KcWvniq}%<(3>!N?A0a6mWG|YBfUy8&~f){MRLR)M3&*Fjg9tK=VHXIe71$Q zOJj7<$yP5I*@@&h^{!5{#@4}(&5w(&jE6{mg$CNcJqDaQxjL3$c*eiPTyE?Ein6c# zQmvg`ZmER(M#Be_H0Os)I8Tkml zL-#Y__?^&Nr&bp&p`_mW>Z+&L+v8>Luqsm2%8oB0l3mr_3Rj|xN1;6Rlv8(SDb;v` z&d+Nnc7896d&^y6_Y*`+evJL~K0TaTXMqIU{|EBcelC}ki&1=-VN@zz;+pd-ODo!kzr$FbQjP4yvL(Dn z-w5c_tT?%wOXJ95`p%$CJ+F4`b(hIFi@zE&7^lBV1Iwau@D8`n*_`NhS$ks?x_o^5 z*9_&KP-a0+&LHwpmyRUk zxWzMr)?BfKgoGNM=)&VF{_5O`-x7}n+GxIgb>eLl*IN+&?hj`+rn;KlT-=io1d|uZ zAmXN%OR_~flaDM4tCav?3RWepDfi}-yPIuK@~ohuC+0;Fn0cn`CKtp8o4j-iMOs$l z-otc?aNQ@-JG+SpERI)dO9IWq=FE6FJdiHeL4gj2+65vmzbB~VXqrZNHu$*Kv z1%&EWvCs-kxR0(~XIhtG*LPy`W6d%i!YdUY+`C!TJ)5Z&$pZuYzXWoIQ@TWU8jduW zpVC*}|9CnVWW_!#x*x(F%Tf2Ixz$+TNT!!LT|Ez8bBEk|&s}~je!Fi`BKUGW&)_{& z(A8JNv8H5bl*kBd@7B{WpTWS!*1f)0BspX?7Y16PEu^IK2@IQxtIt}}7RoW}} z0|cC==3YJRgClv`8K4Z{C)R^Pdc&k?K+;>s`b8)L?)&42Y8qnZII1;Mb-N9@bQuVY z{S#QF04UR%AR+TQ_n*mbqx8eoUL1BXDV*WD^>4^+Kha>cxnkT%WQTTDEt%B>ujkk( zL9=|}^O61KI1_8E?pC9LHxFxt(sMCJfR@L@G(-J12gH~S3mf5lEm5Sv07T$lhjv=> z(^ifm7!H%+q16pBAJB%5H5bE8LZvT>bp2#DPNRTRPE%esk7r*|rW z@x*9+UtDcg2NYRy0VDzMc;Oj5PlhOxLW7I^ zFU%vvQDl?l-I#sMvPSyRK9RuXkHrl?pG~d>GT{aA&Q5T{t@hDdw9y~+@Q?GIafj>_&~6gbG%i_1fLCn7k`O4^I^{^|D=FfNRMS|`yJ z7Or_9Y;f)sOor##JdN+V3j{g|2##TT{-IuDUqyte;C@3yXF&=TBN?Law&)b4KBF*rscV-&`J$Jj3RH zde{GlzJP+fMfT0&;)7579rh!)R(m~-!+pKlBF2N{o^ipU-lF@`!`AP%+yPNdchQpb zid43(Cl-Ic{nMDCyQ}o#dSJC{fsey(cV*649)&SWKYsfJ#}ZHIb(NFxR4U04iR010 z(9ppR)Uv}LTuB`G{d9&Dt6a{_MDOy#+RO$ifuqqNaKDb(bjuoEOvn>i=N<*3jDh7QrfJxUCDxFcZdf1N=0`4{}#Q$b5l*1O=xa4rm3VkFDX;uQ1h2-`ygi*#XH z;U%U*sJ>svz@#oGnhZDo#1=722A8bq?+{nK);)b}a^HY4uM9Y>sbAlvhO3qSi>evT z;O$VAF-lXPP+s?TTcGTH;XchILvXu#Mn=k}{rAso8&6mPqI@y2j5F|>5T3X``YnQs z^(jcX4sPD0>o^7cV~$tHK)C<(PgPx=@3Udo1#iH=+F4&rf1-FMkV8l$%gV>#g(dM2 z+E+Dtx7_NYbFCdX`vygWSI*7t8luqDxxGE3-$-GhRa<6&iROw=%WZ2N&#>+zP3G3J zS~i<=+=fVEEAPB!obS<8B#Y0bg%pU&oOXs$%LYO z68zdszkBDOdg+CEczFA=M*V(^(x^>k0YkpSBY0Q$FkPMC=m@_mz;cg40^L}Q%#&MK z%wnDo9HmC$(Imte_;c|6__W|2)9J^!n}Hw$1CQDQ^>HsEiGA7c-Jthnkf~WGSM#G8 zL%&N2`uP$Nxu6yMv}`rPvhh5#t81svqwc%6yS0D&>av4$V=*AoX{7bqj`6RMRT?X* z!Z{`!7j{Zn09T5jF>=5QZ@`1foj8Li>WQN#{B32PENHz?G1%zB1HXygFD&hIX!Tkd zX{5Z7N42cK`o%75bshe=e>~5F{OKfe!2jCY3+j0DK?(a{VKqrHP5y>BF5BI=Uc(lW z?Hc(jkhfp!3;5-Gf?4j&qjP`KQS>goz$DqIN0t6#N%U1kuX~W-eT8DBV594QiDxqUr@~*_F$GOBIM4%LT)eyk9d-P2LWn=xT$F*lk3YdRwn^1U zVCv!)n9);5a@HCb_j8BUC^%uWAk63nN#)+68JS&P4z!~!b7&%O&YWwdgH~pkPx}5=#(qzg1DeW80g{cp9@`4DW2zRpSWGH|DQyx zweFR}&f25u5n_v#X%Bt!#L00iGXrn@kyWjB{C#N35CDA+KRp7Q+kPc*uvpB44F$dP zagad<69{Ka$!`}u&yA4b`U+*a0mF5l2`bP)OeP)ay1J-VeNPsz$9r?kl6;F@QO zYKQ$e{S5FNPU3rPbsKQnj3z;u@qYUspm}LIzwi}${vEBX=>8t>to_Qvq(J=e?C4C%lz8;Va@*v_)}&hB3bieOFbJ^|h% z1pY-~Y)t}y89Na_hRhXuyQ zj-A;cdtvtuXvqE%3!@UEC{JuH@EqmLQa#qSwaj7e(AYhtQ(Bm1^2gMPZ4!CKC4K&^ z!C3DJQ}%XQO?85}lpoo!uN=A^NB83=(Qr1&>Jnj=`E=A~;j^oYmbGr}cI$0A`E7MI zbN=qEbj=j2zYdpW~H@!nm z8#p-4wS|8*CJuL&EO@u|aNM^kHg!?drL274594#E6Fr*B5d0*G1Pb%ST@Ip`^=~$lj^~sHnA7<_8PozU@b; zA`}Ibwi5p#%68W^6iaSyWo+Vl`waSl(jr&v;)txB#DLA?%zsg=@wNvUM&_4`)LvZH zukI+?Zv!PQZ7n-GS-M!Inf|8uUd}aGu_i}16&apRvkzsTqM5$`7@~&na%hkU8!Yn! zz`Iwvl0!Y9ig@RpLk zAn2K|s0_L?LTh*3Xqndk7h~8l#Kd#$%U`yyLy%f>23wLI#N$jGd7<#TSkNn;Mc7|r zMDjza@^u$AesxE9lMS02k{+yHV_4wsTl^TwWO(;fuJNdz<9PZplLN? zpt}`2wU7f=T^eTaml<+ng^^40?cVv?qUpY>8(w8r|(&NbeLQLRD#1yKXH zu}}n6{M1JhF)NoF_`%3@B*mtdopLAttNqSWD-6=ixLMY?n@}F~?QK!%Et^4aT>Io} z6a#r&c-cherRCEL=fdPgb#sY+GR5?Y*6xuvJ}jT}(Ce33ijAmUI>>Y`CJ~cBp`T8f z;`S&gC@o5|_qsYd98&Am@)3CDQwU$lC+qGG*WXl9KDDVz-<3o^rET-|ReYw}| zIeaYCqK;WD2dfk01Jp}P^8a^FKxpUk3rgW7%(5x6Fn6DTsdaN91Bv&rqx?e14O4DQ zy7tUz=B{WumiCYjSR{aFdp~`t@-GG9R9@xzP>Uk#5KC|IXq}~F*y-O&G-Ka43 z0(Q@f3HdRP=1VGAqbf(+&+ro4Buv=kZx=sYp3sI_yJ^I8dwg*bEg`qIBvO0u*q)Su z-y-G+Kk)$nWFiFM=@^C_>*o2>t3aqp==m>K(8@|RWRQ7HzPLyEPrMMOX1ubmytIz- zRmGUI#}5D938eqw{PG!8P-L!+kdop1h)irk2!}b21;7rPo0dx<-LS0y_=|5| zF3AVxy}p8w{IGu7B)PUD`MA{S!bEHtOAG7Je{PB}m+OL$_1xdR^9T07y7KT@#An>Q zJG|A$#PI+-NobQbfT>TY6FCRmLMvLhIMq4jTsJu$k+CJLxNgbba;Y%!zA)6iWi{xG zf-dsY)cZ1fQ)i>R{?*FYk<|iq39VzDo>Z%Z-=4*1j9)ICRQM;Iy;QWkN~v5kwqdkz1akl!Ub zX(!iOHmcOVvV)j7lGYIb3NQTgQMp?p8Hve%-U|;+CH`a{`2K6G7On<XXrg&r?zjMzVQsQqm;pGWv>O;XFrZQD#ev z0WRPXn^mb%N97aWm4Hs6Xxi!J7qA z2<2hgmUH7s7jAcMr%8;jJ@ecNTe84u*gcK|FD~2o{!_gYuLa78Jy}Mgiz({)Cn4^s zbA##lbV{kM{};{E{byGI6a8Qx1y6dU4>XY@FMR=&cw_9n@EVT)#xvj&-_L&L^RpOk zRq};H>y~xXM|_FT52q=c?DpMK%>3o*Jo~J3ZFkKV&D~StU~iiU0G&o?=~XR0#0@NF z3k(0(wYptoa-YS42yk6q27o}eX$)^w**Y2nL~)7!3|ELn-7@@bPD~TgReWD(5{AW zU$_OkI8X^w+PT80n?y}d5+7srkP6121?HKnA3C2BZe8?3sc%xB@GwU$?eBs~?#r@A zNqeVmzB50hm#s#!eHe|*-*rMbUvNL(69U2Co>rggo+furz2Az%#!5hmZjHW_G{b>> zbjfsXrO${4WF9esLfFFm@w34;$h3kb`80X)wWfyUB;xW%{?b-v>nHaSsvZ9y#^W30 z7haQgpg*2*b$}P_&SIkI!AKU8$qM87bCkl_!qPV5=FHhsHKkE_5A^ zN3eEgpr30UFtUnm#iDD6)5BxnxE2!`hy7L_zyJA4TU830;x<^9pM;6?jK`?joP756(d|$>9cI+3m!|vajmd%+0(DA(<$MbRMidMF*XUy;jpeP;+;yAUh%G#1s zPsG(E>3&g|B~o8L{Z!|_qL*?Sc7q$r&PXRu&!vu|L#{DHPVxV==wI1{EXOe$QUCL< z^e4%ivG;m7diz8{{Gx;n&pzBWxhb2NyH1X$zG0jBJw2=x-m#rk;DSU%ydMo2sgbT_D$L5Iql~nCXb>wTCC-Y< z`HaP98S8#rotujSXjCoX32@$be9AYaH5J)YLnx3yG*s=Kj&ytx7vQ*aK?m}#k++}b z%@n*p>z(?mm-gYGLte0_Aj&ZCNXEI3$epn1G0)cTOUIl=Z@c-hMGHJ7aJ${!QH5Aj zluiTUR2K&0+XvCQifWEqBG7zg1!M?E>h_w2i`kq2hn~9b@t^SFU9e_9^MdfF!;h~4A_x{;EO=;n9VEa~z9@abFE5j3-d_<4v17Je01oPCARZz7%|Srdj;l9Boo({m1;S=DQ` z1V!P4Gwzoj@0VkG2^(1dw~k3euTWdyBB90KMLZ8`CwB^=e&)AHI=C)#B{%~g4y_^r zN@bo?=nm4zS!j?Ri$<0FA27;ytxvO`dja>_8)otvW{0j{m+8#CSE@)uG+40j@st2FPV6v0EPi{dS(ZR6#)>b`v|rK^{68(!iydh`QUMA)jP9gGzd5fj z65cN1K}%99G^2r2E{pO>ls$%R!4q4?~2(+fit z-8~XGwd}z}(QteXwyEd5bDLn8VkeKtzRg95w0YSHKBpOL!{GKnT(*M6{4BVyA>U61 z>y|j(16gV<(dKu6v86wBhmYOm;Gd1#B#nAJyuW(0W1`5{6vK754>AjpA;Po{Z3gA3 zc1in|{@q6MBzzCiD?igZGv-Oh!!=$=+$vAs9dzZ0m+mzz_#`zA0`1f4!sq8nDXE8I zPbFO6j&Fo&>GT)oBSQZ(^>>gJXV@M@2hL>gEcqKPxG#c6cb*YL8y~wzzt4fn`?Ds6qoIio5XE`t)r_1>t`+DM zHZZ*q1xbGz*lZnY;^P<$M^~P@%~p}SE!tFeoy4=|9A}`ek4;Z)rcd(ACfL9cJ7V&vP|`V zx`!Y`Mx9l)yA1c4MR_bfJu`W0?d{_)fxa2_(pkw;d^12^sU zhajJA-TN)~+k~#6=igpGvQth#?Pu!%(00#5J4x~}%uk~ILqK82xaZsB;pe{qO-B&W zc;kD*>B96k2cG|S@Ax*iy|!7p{Pm3fKB+(ni^hBJj7CYRo19d~6*e#KtYKf_qp$nb z$5|P^EIB|LfIP-KqKFLf1~$Z3v6`B;__dOaS0nMwm(kZnUP}|}+_Zd@GTiI1@K5N; zBzF2i+7r{%307~yA51=MN|e&R)+EE9L^&RRId#Tj{FkRrwt4U3L*xEkSqQ(1U92*H z_3ZUOjOF&XkRVMPQvD(FrZKHq=R5sD?(>G$9F8TU_H@ZnKS1{J=(6>z-shS0R_&eN65isidThv@mxcx&Em(p06$wh373qVLEOp@Jd{5Y$S9_2Dk|giH zOTgyqcU*@14*Z2{Zd+_s*BE?l+| zE}kwYqjx&^ccbWFwo8nlQ4C0VMERKb$syDi{j=v3QG;5Cjsa%TF?Qi|g`IWh1Vf$g zIz$FT#YIxexhsId%0BalxR9s6B278|PMQm|c>W?thV3B5163jD5Kdeq8X_ozq zJusHLN0**>C*`>PQd_0t$F7R8{y*|Z%Dpq(Pfa}~88`s(@%cAh9!cF(rXW&AuFP%r zu2tO5$6s#nNS(b}4}tT}=)-@@i}A*GixDJ-og=vC6J)WJaBJlR{(h@>L3ZS2 zgszIy)0%td1IAVo*Vy}*-SL3X($;$gbhg?uU#X-Uq*6siKt&m?mMdd&u>S5Ywk~9z z4=|y)9UjU!qGTNr@ag|y5{>_rA#jbrJxk5_d~&7p?@sr}?(Ni6w?{gRd%C{X6nE$I z>q&MdyUR(==cCkGi5=ZY!h!Q!6;c*_jQ1xNB(?=UsqSv1#>c}X$s-mRpJGIiF_c|& zFC{rw5b~J_P2&-2TBBYRr$u9PgEhmoJj3u>AsAl9LfQ*+0NX5c7?j%g0{}X+2QtOK zN8VnJ`#lKXn(U1~68D1&x+QPpik^4UJO&H8ecVTU_MVv}iCry<`+iq3^LCIe-0j-8 zXs3@rD?g3g6=MKcW~STbMmdOmJM3Z&VLa1+)iSJUzJ%NMI`wm=GvhVaH`y$?Wn{mfACwV>Bhb(|U(E866JT>D zdHnr^76&fI*^JM+{8xE)m-Be_Mx&cp6_pLaW#)C?{i2#$O@xlZK~xu9FZ07WB~pzxA+wz-~0Myomk z*zb|KV+yY9yX^#*0So`U)|2>u`8T-AL-=p>zn6tu?&c6gyn;g%38}i6dGEQH(g1Cy zyMx@;An?Tye^lm&QxhPn;|4X-VW@q%$AJf`lQrRo4Gga1!!#j$MHg;iVPf5Q5fzUK zOS)Uc#a#ihm%}-nCCWu>EGS}oQqmK+U^F#))K+8+pj&|d2(Y1n{*natKFA^oodtsN z@dItDt{glk4y{^Ui z6Em?g%7m85fc~cjPd~DOg+K4$?OAV=Tg<%Oe4FB_%Ea3m zCMEve4Y<52%YiZMSAs&v4nM#${vc<3R_l}{W%p>(l~L~9!9s+l=xRw9B`a6@$eoDpG4=)a=fxjvXFYCLd9`G6W#lNmO`+z#PX;b;%_twviA#G`qM(ng!J$$lo@H9X#|IM~qv z4baPx35M(D1U;~pG(nSfUK1iIN-Qef( zPSfHtuB#yZRr&?z@KdIRA)W5+HG3`fGp}e2=pGG$!n6%$8z}(65@8Vq!Bg+^bScqd zo#Lh@g#k;#1vXNoM5RK8q}I|dB1^E$jEU}b?maQEi$B^@Xk>69FA z_`|9~*wFF3q_J$r$D#9iS-A2pvIodT^(tgiPVnm0dpvr(x*c)+?lG1D|sf}DhE$Lc1{Ra89Vc;?3t6`%Uq`1 zyEiu}DezsUvr(+!mV0lLJCAnZ{OyoJMWsQpeX~JE`?3(1Ze@|jtQ}jFfKoS`62PEe z6pR!@?r$C#=5h|5_oFB=`_1-g1N$A0xGN0-yC@Demd#ptBW-slT#wo!mdMzAvxxtw z(IYP%=2nRMrx~m35CM-D)gL26Jh!27=Yf9hYZU_!&-PRpg}rmsTB8%{fwHQVQlm36}P zG<)3*co-n6fdymD*GY6NR3f8LF!jjV5pG&J=&8JO2YGEfV?A%aXZ5HW^u1e<_ zy_@RM;4wc+b5Uy@EPM64%w=e3!9row)*LxRnvL-b7COzG%~nDc`fL^>P5i&DoEIZK z1P#m+);wm9i06A`mu1I`0wsg|6d>WvE;6L`t!W5=jc_SH5LF{XS&lZx+~~VdV&+@- zAj!sOvXxm_$fq6pSZmviA*khY`L_k{E^v#2wZm<+SIq){)eIbMhW zy;QBj?cx)cHpNs?cqUU?FpK$Fq~x}v5drt%BxCZji^o`f@@MuOfSO6+gr5M1)CFsR zE6FE*O6-wvRQA2BfFaZSMs3}BlKjEjuH}m=y9iE|)Xge58IOMvK;*FlT_+=vqb$!@ z4CVC;-&tiiqcrzXCG&L_Fa{QJ$aI}pW~18Wpu{HFP5yb?L!TYpDvLhph?ebG8N)R7 z6YC6!CMavZlsdU)fIN>#;8!;29iqD}4|h!mT;BvVcWH zyGM?VDVWa+*?Uw1fTFVCX4y*>Tw)Cpg%YZh4RTXR1wYBrGH)}SXPVddx%zsKlN~Cg zj$KF|KbpuX4_s;UE-2x*yhwicYyP9R(O~6y05r~jN!?4im#z126cB#Z8AryN2uZF> zOH7kIe^X3^Jf59s5K&qf4^N=V_qC`-@JxLFrC?dyRp)<*>UEK;NU7HiEvpJn%EZGm zq}x*#h;UH#?7$EMH4_KKUI+fBzLr8xEttR)!|YhVwdU!(mo05Ynolw4M(dWI!TWVO zG%1|a3qCj3HqfDWYgU$R*SLDd*LF{qj4$onWJMn&o*fd!LEYl>i^&!|nxA=mbQpK=Uza_-W92wh_VS1D+tYHB?1+x*k?+D3&C8RDs#l*qz zp2-MT(pta{dXeXC!5O*ynJSsQ!RuOLy`caj7zPi6PAdJWCw(lGnuswchoRC}TWF_C z1DjSMz9Z8mcJV-w|Bngc(DV|7KXuGK=PvRg>=aL1$hi6vm+r0zR!#J`6vs%OSaLYr zrkx;re!7R>Qwh}~QrIG^=f?2R!ZIT$(gv|AbPnK0 ztCwEj-ocfxaf`r5E!8$)&GkGgk^FCD5oB~rwo zUBmHk0&69bLO%4gT+E~xhC7xql|T$wZTwiQ%WvUQo^TpDOIGU?y(X;4ZKQLx6Vb8& zGoBE$2L*{m!QcJAL7;M4&6wawZI}GV&Er8IAFMMuEKi4%c(~=&C8Aolv{aQ>X#`~2 zL;3B-zwB(eYH}z<{#{!~K|4IKmlG9Wnp8Iwq1iQ;bo!_6g zp9PH1U|*m7Va&hNtgtomTFyrFfFA_Pbtgx|A7D{nUx7zr&{}v13U0i; zxq6OJ3rkNAj6Fvj>gOaR2twV%p2d=_;Y(%sEO2TNikD;=QQc+aXZsC+3^Wg!XHSJ< zlOq#c5JC*Y)_n}#fsC4jOb|RYcU!*@wF2r@c69W~;NoXi(En^)uW9O)IKj4$6W@)? zMm47!^Uz;GB;+=!q+Hkl^n4Hk7cGKZP_hqH!A7x=Js_qRqPXP_@5dbMe zrV#k2BvBRGI=jCWztNFH@oAxsG}vw^SomoeOd+R;4}|U8m>E?ZP`8yOzsQDJcs&OL zru*9{sbaC?NA3)J-jH4neYT6;2XP+O7i4JKg~sWn7S)j}cwZ{J*taViWN0^)iy9x# za}ue(i4SFsSmDN}(H!0{9w&yUl<$|K7Lys2M4oG|D}2LTOyRut+=iX5h$wl*%-&(G zpxchmV+y{>WY*1(D6_azB3@iqy}Bdy?T=tDsh@xFamBH&qSX7ELYU*10Lk;Pj`qWb z7#sRAqU`nzLa+G(TGB7MjIsYiB$&Df$g90>?SGxJ>zm2;A|8iSq0M_+$L1i9>!Vea z6s+yWWHHMqm8w=9W~8kdOW$JRoU`=Z!wMM?_W^<}6l>ii@=M7O5O!8bO(vTjCYifG3ng zpKTE{OWu!>Z)r`7D99Nz`d$flYLZRymGxt&+Y0ol7TGbFfWd|$F@Ixg3)#STrzmGI zJuQ_HZAG3!2eA@p1&bM>i!>)-X#X|KP5Cr@W6KE|{z|J9)2wtCI$&(lNcm&iq>=*k znJnt-OcvsKUJdSiUgN|RQ2oZzdcK8`zoT!E|2jx-UE-M<#zLMh2{^X7KKh5Wn(`03A%GKWJRG9HB@Udh zG_d8)rVM;SOf5FWL-w69i8tOa0;FvURRN~q zJ_0npIVt=zi@{dnMalPHOIQ2U_3&mVoIi8K zY0ym?6fNY(5UlISnq-0L&+C|Q?%ipc!)kJtW$aY%j;;xcC3S3>a^_OI!s5XFvanXC zMUv8r?94q8!dw)CKa@STlnI}HaUU=9@>PFyS-GH_T0>eQS{^4=_ck;04P1#~{)Iu+ z4wTiO?#zVcGDYxRTaK1Q$^H~Pw+5^4JVw6*+l_!Kc;_3?Wg&C9Bd+AeWTYV#k%@rF zuLexL&gbj~77m)8Tr$8+0d{lTy@Z2sDA-{k^n-;LQoeLsTuh03IHiZYN_a)j5w=4J zERUHjI7dX#x!BdY-Tv%xP+2rZSof3K&bn(7*9OGRESOs?z-}y4eb3^dLSqjF5#7QM zw_t4L9p zF*w$U3pWD^a*+|?#HG)-36G^1+E|6HARjd;C^#;0eo$h(6h=5bz*mJLQ>$_cGQ4~^ z+vnBquYjClu>~1ys8SYu9TD;5hyFtRe&8X~xx>8$=`=L%-h{QuoM^j*hLv7%uQI9p zk=nbJimO_I+>WPHs+^FUK>fFK_P^iHKh8W#s%^4n1`flF7r*|{TOXWB?7=OnH26sB zQg@E=9jqyqJZZxSY6O8{T*YCk$U6whN8<#4f;=wcg0RJjWB2-sYZ|PFAK5+{TMLY= z750NRA=zFh19v1RBlabwK&9&sXPek;$Hgus0rs`1b4%gTW`7&XOy{E%zvjHKbXlBa zeq7m)PVN^`PxRfqeL;dyinFHd`qkd`@lULw2@4J-2?K2LlLA66idifyrbh~uL_noO zYnW4qBrT~1Fy85~OIbBoN@ydQz>>wZjc7#L7fRu+|Pcfvhvo} ze;w8IUaAdHH0bZ~SgB*uU%ZFjZJ-$p489KG_pFWT^CxAfk&OI;0eQzzb6Md$vwkZ3 zNstDWvszgNJ8BGbt}!}iPkGz?A%@4RpS;)40A_nF%AuyvQXA3_cA7*Zpf2hD8;@2= z6;v5Py<&U|%b~(~;+HbteWPE`@rcrU&wX?vmL3Rs?4`w#7oziTfm)Fnk0WZMgarCo zY^=V)zTIyX{^FmoPKaw1NOin@+&lbtnDU@o5Ybfvu^5PILK6BTw2+c1 zVaa|=j^36cwsG~KzGG;Lf3RSC1ki)0cAVz4$XDc+HBXNH*6M%n%17N*IC@nMzElGm zvV6Sa)ImwG-(RvE(%unC=rEhaL*+(8oh{WfmxUc@5x~G-wvi9>_pHA}t~VzGml8_D zC;A*ke13QkLY9_gH7Z9u8(|`l(qv&01pTJ;@XkzF=HtUKIE1a8K_^0`QmQZ!njW)* z!b#Rn7KU3iJKJaTGKqA(6qZ9J=F}NMq2C)y3TdrN+jQuVOfwk~N<|b(KO{F8sawDN z@}gKO>@;xk?yky2Sf#%y?fv4r3=FE3isqQPxOaO29sNm5G4{Hc{ixAY#&#S@cuT6r zJYvXk-sw`AZ(E$X_Hj}rNQ@Nj(wq@+H`D>lAgpzm0sHF3Atfg!GjLZ6A#MuL3?i3V% z$a+Y`_D_QMbAoxiona4omHUwC96EBPDbB>$Aai?Px;nPnrg6oWyc z<$mPD^&?2ShhR^XuAoZ}&u@uSCBv^*;OXQ$5sgx2auU<8xJ+71&=EP-45ij%TuL!& z;yy0V__=!op~ncxk)>Y6$+OF`d<{duVej#=x-JE!O+(IOGu}dOl+Coni|xI|!kk%g zOi06e^K+u}1~+QDx&!#nbPd{mHdy(F(X#(0toy?Mkq{Pgx9ggNWqS^?kt7!u^F)0-AoTu_YIO+Cl9w zYmL3WxsOEbHkHOoy6+!(cl0mEnMM6W{m%avRo}o?3DmV6rcQQ~?UU`Prpb0quF1A- z+ns7Ao0DyGvTdF0x99n;?|QHIH|)LF+V@&F4kCs|E$3a{418~nn zeZ6+lOozPOv5pF`{2B0Z=X@ezMSw?T;pGNKf4SL&JOYE=TAilaPzWgq`)W4$_BZ}* z|L_hUILP@nI9c2X10viYw*{Ad^6?+@W7_|Bx56i|`tk|3&*hYuzr{g$i3WsU`r&&g zd_+B;@OUm(!2+!q2B~f>Nh=IZjPvTn?AZf}b;+IKmIMCUK)+1lrq5Sl6t;$l2E`X> znky_y`g~zQ4&cJ_rmc`$bnihoCF!O|q2|1yWU^Oni0?d*7P^w`%{9zEW_QTc;hyoK z+At}cpLH`2edIPIap1cDv1>1|uA=Y^sh7VMWMR42uxln&%M7kQUcOap>BcYz>C*W2 z_ifK1m`wL)_?ux(e(?m6X?!%(--{PZ8|E4|SFewEi1q1@wgWzL1seZA`aJAPE8!Nxyh(j#GBGBc>NBjI=Ky9J4?Ez*`<;Ac|A}te%aQ3`r!^KCSykrS@OU$ZMXWB^_ow z8S00wL}-CBsg)^_b>SCbhwoQdwgU#wdm`Bj5J5f)w`OnTv?&d+t~(r1-Lo^Px=U9R z!;f~-8B(wc6WklZ0k#}Hw?-aYPYS4pasv9k)52^{a_rFDK2K$gvl%4ytsw(iSmCEcZQ`3_2xr(Z7oJxlz>D*$c1*h4n{rhT_Kx>v zj4i$>qg4)vjF-aBC&)GFdxUi>BlGHtC&0e5^z?bZqJUNtx$Y zLAKw-1e@=b{$5k{f)TT2EYnPJugOu<$IWK)d-lBA#&%_Bc;Z*MfmW|g4*Gq35)Yx69#R%sr1Nd84$8U|$? z@ykwD04JF7@=dPulMLD zp#}iW@Lq!IM$5l>-4^8rE>h#X z?xd^)M!T^Xq1Tp*zISWeHuuxY;{A60Z&Wncjzli01!-wxjrOWgC0;=Y=X~$r0q|Oz z;j*6X>`(qnUoFq^%U?WZOMN86E}Lz7Ks*vtHyRxdT~ATw0mZm>a6hQdQ7|>t$UdNc zwsfF=f15it{!$Jf;=@0he;>o+g4qw9WRh)b)`>W?giXX^jqSPKo7>>{S?^{H>?LuG zg07P!*=HlL7MXX*Vt^;Oyq3QCl$ZjdV9n;;zM0?t3R{7IuvG-%*OHu^Ch7jRx%bf- zE-975`^wt%0*A*{(1kP+W%=r@x_uu@#7UPJmPN!?r%K-cW^U-&H=^m@wx;#>xdPK5K6)Pv(ln{I62D5-jiO0XT0i$wx&M5NmUHVmS|h9#+nAD}>-nStWZ8Qr#zjB{x49MD|fooZkh+F<)DiX)!1V z$H({98B;E-rGp(Cy+SY(11u$i?wSMh{#Z$Mz%Az9lP}5fzCzdLpOVFjrz9SuJot zCw1u%`=PU#(HJyBhmMMn;TxJQ(UlEUcwt4tuqVdWV@3B^LOE}~%`dISOl*?T(yOBI z@>d2?sVCTb-Ku8T{&w6>b_3dE2P`^{euv>>vt`ux?(4N1GF!ru=$wyBQ6iccBk8vc z*GL<=Qkkf@i?7zD^SG%>VnN{_Bfgiz`##XQW8-m=q`bGh#y&|KGoy)}cJ_{0lfIJ9 zEaWKz;7OO~Mw;9+jHgD^1lln#llw?KObdr}ybRwDL=^%|pFyRJT4W?Une0_nTOt9x ziiDeQ22@y&O8At~0ZBwIOE;i6QA(n8X1Ow!bmf@wJO4URn99eBI`KwtedOa($3XiqGJx}|;yrDUocdlC^E5ZmnDrlJgz5 z>!fz}cUhf0&+X0*aJdr?q*HO*O)3?)fm;AsttsD9mv^;gXYexksJk2H?tJ&?{ zpG9Ok^U~czgGPn>sFwa2^WT4HHWV+y$awIGFyIC?L(I9tn zv;pev2<{a=<0kvy;x5kU%W^0M&+GU_+Gqd&EcfkEAT_=R&no+MZq3S=DRew+q%dus z-?_>ec?}#6>?(EV3)2)rn1-h9nvcV;WCYawuHiH;!P*w@R)%vB!Y*VAsY7tPQ=|E8 zS<1LyaVDRw7`_Uh+q-?=9CgN|*)6P*2{qRAZQ^d1qj)!ZmE5EicqC<7P}%fm@p6C& z9SU&kK{LH|q+)MsTM>F)EU&vLv6J#k$tz7O%pNNvOU zgsnbxx2k8VZFfhTzzFDZ}3>G^@C{_SCNX>j_2qbvA zxb49v*HMmk53~;=lF3BQp-l$pmIncw;B2oo#g@Z*jHhSAFsnSODB?6D+J#?k-)D@U z3j!k29Qfxd^C0S*?q;zgSy452kt`rUX<#C4w0_zdm=I`I(T`Lt1GN4C+jpZH1fYjfT*qeXK~C&)-!E@VP`f6{>?#Tv0X%S#9bd=1k>KJ#0`rDg zbFAA$hej=^07cb|4EeULgM_i?rl3JQU?f%t4OqHn;DUGV+xi~EupDXyt{M7_DZY{x zBDHQQc`{4Rt8g#|eDy2n`pti3XZWZK9_tO0S H3629li4Q;8JhfRv;c`1CW8fS z2kV=|rfYRGTO^Ds3a_oU1l^gK8T_XTbx_d6`3mnH*_^G4tcR(o15r35L%CBaqrVr8 zIpG1axD+&t@tB&J`?8?B-`;a!4%%D~#2NKvI-Yw@^WPzcW*lCAge2RQC#T2=iTa3k z)Hv|gkg6BkBSLsgCm{&Hj-`XA^L-hMQQRIYp?#|%KO>|C&OSy^V+kVAV1@PpmEkNK zsXg+<@$Z$}X(J&Ix3tqwwEjW(Ue6vs^HVK+GQt>Neo91ey=rl~+Y`MIjW}j(0Mi;w zw$e()zWxw7KIl{flked7tBv(QEM@3;qa`6jA!CL)1dUrBiYBlbK005w&ZX^ae~4~L zC9Y)ttne!TzcdK(hkKSBs7+$k+np=gX?d*Xot9+DgTz?{x^X&SM2%jYJA1ZKtAO%Td>B{!l82~*XkWfbz`#DfCo zH;!(zmdfe5r97}vQopDFyS46*qRI!6evF4549x2D?>nmiaecE0afzEG@vNb$8`u+$ zl9FI$a$f=%2nDo@mM98Q+pg4k9o~?%2AAa+>|E=!-cUNEHZj`e~Ba+rWv%bUu&so7+bYnQ^&SI)Q;RJJY*div6 z8i?ttb{6v3iQpQEl?<#iMAU6yhcyzcqQm~Y<&VJqC~*%6K&N)Tj{Vo%?Y}n#9xM(l z^1jMXbHRjmF6q=gDxqY#8CB|1zPmx20bBSUH~I5y_OGPPk%ZoZO_XkZD0mrwwOXXN zWmN9dNazi+9K|ip5)aZ?TKP;j)43ILvB>(ejK@MFKdz^wO->6JR*b4X@KGz@L^R|; zr!`a4VPg=})3J1)EYpof5Ffs?ZZi3k^S(MBOSV%>3;2BVUCroWlb%XfV)WQ-Jf3)~ z@*iVb+sA8k&Y#KhYcRqe<*35kpHk&DO<6%~Tj*&EPI!C@GjRisRErggi&)0#9#v%l z7?Cv&9!Jx)4Zpf|XY{e9gSp%7_`9(13Jy`3lhxFU)6Y@t2?gJZXFuji=l%4)0r1n7~4%_s=oeC>T=bz3Re%4_@9ErY;I7j3;{?aK}YR|Eghu$_Gug)8U* zIpi@ozmZUrh}fRT6U^}%J1tT~eTLZp0u;|LN;s0-;FhvRJ&m<#&>e*#3q&YidP+!u zLUM|8GAq1n;)uFO^(w;ah1B3wOn2@3k|r9F!XcM?X7jNaA*MUc*{xM)CuNOg`NSvX zs51Fx%T)sMcBa?!oVlC`@f!k{OzQ%qOJA6iaGR+-sJK9(jIu^F(h|htGSql;B5#1N z;Z##tTBTQJuW5>eY^#%MK~DW^u2|_(uEPl$Ms8iU!wSKoGb@y;N^ZTA{Ax|q*`+{! z(rY`>PS@kar#{yvhrH6srPBB`uYLMIu+td{#=Elzt(?da)teM6iyocumsxd*u|!l| z2FP=zr6Du)yDB!X4PkT?`Zc}|3`0m8FbE+401Xk{%SBu*egU<0zQaC(i`qKljOP7^ z-7L}2Q9Oe6u}$FDcJLF4+(e=o@w4!^eQSLR=tu*ug!(Jb6he8*I72@sTdAll(yF?$ z@~U`PN%O`US&c01G@;Of^#gX4qgQ^~kIW*uXaOsT$@4;;ev4D^)~tvbxgbSw$7R!) zKZ!04bh5mM<9(c6V%M5y)IXzAYlu_(x8G81Gr-HDIo~dtleJLS$VkXeoRgU^wkO9=fV_$e^S^FWuAf*v z5=%R0P^}-Gm}#@r^JD!yzT*zMi}|?&_i%O(Ov4b`B5)Y0+N~Mk8^nqhyA9GEoGr zq2YJ^o0(_`4N>DUwO$V9>QJ;{G^a|0QO`lU-;KM20h<<+oR=twIR2YrS&dP*-1)?! z3h7L|QyXO(;*Qv2z?0P2@jvedf71pBQjoNGa9M28;O7k1cY!zyyJx;(gVmW<*uIgZ zBywYIo=cPuKR$R&ZR*?~x|<@biKmHa{Y7?(N@8NZXZU8)tv2xU&iPYaygKA*X?!U4 zQ>#G&0BDtq)@J`m?9|%H`YnOIo}L|}VtP+d?%Ync@dm+P3RqnmRg(Sit7BC6f5&VF zx!p$2MHh#BV}F>n+w^qY46?nN$X;%!AMt18ijk3s>S_1??`!%3LkjnI(0DHeqfU2% ziY87Ebz2}8T}86Kz7!$wZ~0acs6*(>tSuq_mz7SGxQIkfiXyf^c)GIuZ+ z?lAeo2eJzjGUCrW(j-dSJ5MrG@XNMnEwHq@G#+36iHnt5p(rTpTS**}qlSKn#z-J% zxN33#bjkNJ*VI=`)UYTpfd`u{JRc8!JQHD`#Yy!Az5-OJ?SX^|7b~VrB6`k)q}jeV z(?>U_@^nV@h=2|g-=!?w#^}BW`pAiox%ctS3ik(0;h*oL&Et5Sd9})h)l75EHad7u zvpB~k0Ww>->zxjJ7EV!v=u zS3b~zhfbLj*Eo1{HD-#ZXXwgg^U0fCWJiOK|U+H~9Fd`U~6Nl-vB~iWNx-c+=3COE# zg8P{am!*iHEB_ANyB;LlOtpyke64M$DFkPA3jbyaoW3j_!21StlYMh=uxRJfjR9D& z5F2y5qcgpq@BD3czYV55YXa%-^!14e)|l3%wOUi-Y>y;#0ub z(~gqFzg`nc6+$d7JD%5NCVUS!epTw;TD|S(%qG&|v_)IsP|Ybh1giw~PW1nIWADZT zys!}&6Nta0eXXL{PEs3_)Ga-T4Yx2ZdJ?wvDP?O%J+L`#H2640DXoB)Az?agDC#6$ zS3?wSR&4qPUdQy(-YjYNoD!{r%_rvNq528a;EJCC8|Y8^!u}C63m`ALZVFzUdHWSR zBR`4D?dm(CVVvmL6I~hxpOrN?4-*JgBYHD7$y?ompe9JI;K!%jX@SZ%M#QRHR6W?^ zK))dU?Sjg!=x~@$`TB8PQ+!=tKEpTP`@H6TfnKVV6v1Imd$RLH;OWi)^qDn9d=|av>*%iLe=j_|~4*xE=@D6&Pnq~@ApGy~nf=5|r z9s}0q7yCMuIy+UceUz0aWFe_%o;^(AVfL6H3#T%9_6I*kx+fX&mBY{j4xOnLv&kjb zkSDy>c$sk7^GMBe7+2KqdWYf3z)90=!=r@oa#fyKx`M%w7WW6*IykYSoP_yJOAShN zKT(Eyw9-jvL1n|3Rp;sOl-@Y(c7Dr+KtDMw)z|~>g<3z_j)HOV2KI^Y2 zKAU0vKEAt0phA62+S_PSJ?doV7tFumVB~3tGZL_~QHXfKH^q?P+*U{)>;oR_eEcp> z_)XOT_v&x?r}w6YG`wk!O9gVn1c77SE%^v50{h1de+spTd6#PN%!ldI`+#k?kvC0&?s}-G^3>NBMEAlZn|auD>D84<44UM;P9c;H)1lN_ z>ngAS3n}GW^G@MR<3_V#rg$8M>98FtuL_s74*h%& zA>A3PWDVT+-tyEwAqCG{Tv|a`VxsDE0LZb@o8rFp-&0g~R3*NI`

C!f*T{s>f~f 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

BiRloLE*m^Aaf#llmo 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 diff --git a/doc/ha-guide/source/figures/Cluster-deployment-segregated.png b/doc/ha-guide/source/figures/Cluster-deployment-segregated.png deleted file mode 100644 index a504ae18aa8b0106729e4de18cc84b32433c34bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220348 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

@&VI}0;xpX_Y$>S1z?B2*!YvgzN+^VVnH*dj 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

OpenStack Networking (neutron) のデプロイと管理

- 高可用性ガイド -

高可用性 OpenStack のためのインストールと設定方法

セキュリティーガイド

より安全な OpenStack クラウド構築のためのガイドラインとシナリオ

仮想マシンイメージガイド diff --git a/www/ocata/index.html b/www/ocata/index.html index 7085e64079..a23070815d 100644 --- a/www/ocata/index.html +++ b/www/ocata/index.html @@ -30,7 +30,7 @@

Operations and Administration Guides

Administrator Guides

Manage and troubleshoot an OpenStack cloud

- High Availability Guide[PDF] + High Availability Guide

Install and configure OpenStack for high availability

Security Guide

Guidelines and scenarios for creating more secure OpenStack clouds

diff --git a/www/pike/index.html b/www/pike/index.html index a362cdc6e6..c0b6780a4e 100644 --- a/www/pike/index.html +++ b/www/pike/index.html @@ -30,7 +30,7 @@

Operations and Administration Guides

Administrator Guides

Manage and troubleshoot an OpenStack cloud

- High Availability Guide[PDF] + High Availability Guide

Install and configure OpenStack for high availability

Architecture Guide

Plan and design an OpenStack cloud

diff --git a/www/queens/index.html b/www/queens/index.html index a362cdc6e6..c0b6780a4e 100644 --- a/www/queens/index.html +++ b/www/queens/index.html @@ -30,7 +30,7 @@

Operations and Administration Guides

Administrator Guides

Manage and troubleshoot an OpenStack cloud

- High Availability Guide[PDF] + High Availability Guide

Install and configure OpenStack for high availability

Architecture Guide

Plan and design an OpenStack cloud

diff --git a/www/rocky/index.html b/www/rocky/index.html index 913666de7f..cd2bb98689 100644 --- a/www/rocky/index.html +++ b/www/rocky/index.html @@ -30,7 +30,7 @@

Operations and Administration Guides

Administrator Guides

Manage and troubleshoot an OpenStack cloud

- High Availability Guide[PDF] + High Availability Guide

Install and configure OpenStack for high availability

Architecture Guide

Plan and design an OpenStack cloud

diff --git a/www/static/sitemap.xml b/www/static/sitemap.xml index 9b08e628da..7d1d911cd9 100644 --- a/www/static/sitemap.xml +++ b/www/static/sitemap.xml @@ -41,12 +41,6 @@ 2018-09-08T19:51:33+0000 daily - - 1.0 - https://docs.openstack.org/ha-guide/ - 2018-09-08T19:49:28+0000 - daily - 1.0 https://docs.openstack.org/upstream-training/ @@ -1013,12 +1007,6 @@ 2018-08-15T13:18:23+0000 weekly - - 1.0 - https://docs.openstack.org/ha-guide/HAGuide.pdf - 2018-09-08T19:49:42+0000 - daily - 1.0 https://docs.openstack.org/image-guide/ImageGuide.pdf @@ -90725,12 +90713,6 @@ 2018-08-30T17:22:12+0000 weekly - - 1.0 - https://docs.openstack.org/ha-guide/index.html - 2018-09-08T19:49:28+0000 - daily - 1.0 https://docs.openstack.org/congress/queens/admin/ha-deployment.html @@ -298979,12 +298961,6 @@ 2018-08-21T00:42:10+0000 weekly - - 1.0 - https://docs.openstack.org/ja/ha-guide/ - 2018-09-08T19:53:25+0000 - daily - 1.0 https://docs.openstack.org/newton/ja/install-guide-ubuntu/ @@ -301361,90 +301337,6 @@ 2017-10-11T08:24:53+0000 weekly - - 1.0 - https://docs.openstack.org/ja/ha-guide/common/glossary.html - 2018-09-08T19:53:24+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/common/app-support.html - 2018-09-08T19:53:22+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/appendix.html - 2018-09-08T19:53:22+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/compute-node-ha.html - 2018-09-08T19:53:24+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/storage-ha-backend.html - 2018-09-08T19:53:26+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/storage-ha-file-systems.html - 2018-09-08T19:53:26+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/storage-ha-block.html - 2018-09-08T19:53:26+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/storage-ha-image.html - 2018-09-08T19:53:26+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/storage-ha.html - 2018-09-08T19:53:26+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/networking-ha-l3.html - 2018-09-08T19:53:25+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/networking-ha-dhcp.html - 2018-09-08T19:53:25+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/networking-ha.html - 2018-09-08T19:53:25+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/controller-ha-telemetry.html - 2018-09-08T19:53:25+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/controller-ha-identity.html - 2018-09-08T19:53:24+0000 - daily - 1.0 https://docs.openstack.org/ja/user-guide/cli-access-instance-through-a-console.html @@ -301607,108 +301499,12 @@ 2017-07-18T09:01:39+0000 daily - - 1.0 - https://docs.openstack.org/ja/ha-guide/controller-ha-memcached.html - 2018-09-08T19:53:24+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/controller-ha-haproxy.html - 2018-09-08T19:53:24+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/controller-ha-vip.html - 2018-09-08T19:53:25+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/controller-ha-pacemaker.html - 2018-09-08T19:53:25+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/intro-ha-arch-pacemaker.html - 2018-09-08T19:53:25+0000 - daily - 1.0 https://docs.openstack.org/newton/ja/install-guide-ubuntu/common/get-started-conceptual-architecture.html 2017-10-11T08:24:53+0000 weekly - - 1.0 - https://docs.openstack.org/ja/ha-guide/controller-ha.html - 2018-09-08T19:53:24+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/shared-messaging.html - 2018-09-08T19:53:26+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/shared-database.html - 2018-09-08T19:53:25+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/shared-services.html - 2018-09-08T19:53:26+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/environment-memcached.html - 2018-09-08T19:53:25+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/environment-ntp.html - 2018-09-08T19:53:25+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/environment-operatingsystem.html - 2018-09-08T19:53:25+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/environment-hardware.html - 2018-09-08T19:53:25+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/environment.html - 2018-09-08T19:53:25+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/intro-ha.html - 2018-09-08T19:53:25+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/common/conventions.html - 2018-09-08T19:53:22+0000 - daily - 1.0 https://docs.openstack.org/ja/security-guide/common/glossary.html @@ -301829,12 +301625,6 @@ 2018-09-01T07:59:05+0000 daily - - 1.0 - https://docs.openstack.org/ja/ha-guide/index.html - 2018-09-08T19:53:25+0000 - daily - 1.0 https://docs.openstack.org/ja/ops-guide/ops-user-facing-operations.html @@ -302081,18 +301871,6 @@ 2017-07-19T10:36:22+0000 daily - - 1.0 - https://docs.openstack.org/ja/ha-guide/shared-database-configure.html - 2018-09-08T19:53:25+0000 - daily - - - 1.0 - https://docs.openstack.org/ja/ha-guide/shared-database-manage.html - 2018-09-08T19:53:25+0000 - daily - 1.0 https://docs.openstack.org/ja/ops-guide/ops-maintenance-controller.html @@ -344987,120 +344765,6 @@ 2018-09-04T06:41:21+0000 daily - - 1.0 - https://docs.openstack.org/ha-guide/networking-ha-dhcp.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/controller-ha-memcached.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/controller-ha-identity.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/networking-ha-l3.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/controller-ha-pacemaker.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/controller-ha-vip.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/compute-node-ha.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/storage-ha-file-systems.html - 2018-09-08T19:49:29+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/controller-ha-haproxy.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/common/app-support.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/intro-ha-arch-pacemaker.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/storage-ha-backend.html - 2018-09-08T19:49:29+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/controller-ha-telemetry.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/storage-ha.html - 2018-09-08T19:49:29+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/appendix.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/storage-ha-block.html - 2018-09-08T19:49:29+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/storage-ha-image.html - 2018-09-08T19:49:29+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/networking-ha.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/common/glossary.html - 2018-09-08T19:49:28+0000 - daily - 1.0 https://docs.openstack.org/ko_KR/install-guide/ @@ -345149,78 +344813,12 @@ 2018-08-28T17:50:00+0000 daily - - 1.0 - https://docs.openstack.org/ha-guide/shared-database.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/environment-operatingsystem.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/environment.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/common/conventions.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/shared-messaging.html - 2018-09-08T19:49:29+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/environment-memcached.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/intro-ha.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/environment-ntp.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/shared-services.html - 2018-09-08T19:49:29+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/controller-ha.html - 2018-09-08T19:49:28+0000 - daily - 1.0 https://docs.openstack.org/infra/manual/drivers.html 2018-08-28T17:50:01+0000 daily - - 1.0 - https://docs.openstack.org/ha-guide/environment-hardware.html - 2018-09-08T19:49:28+0000 - daily - 1.0 https://docs.openstack.org/infra/manual/sandbox.html @@ -345353,18 +344951,6 @@ 2015-06-12T20:49:17+0000 daily - - 1.0 - https://docs.openstack.org/ha-guide/shared-database-manage.html - 2018-09-08T19:49:28+0000 - daily - - - 1.0 - https://docs.openstack.org/ha-guide/shared-database-configure.html - 2018-09-08T19:49:28+0000 - daily - 1.0 https://docs.openstack.org/ko_KR/install-guide/firewalls-default-ports.html diff --git a/www/stein/index.html b/www/stein/index.html index 913666de7f..cd2bb98689 100644 --- a/www/stein/index.html +++ b/www/stein/index.html @@ -30,7 +30,7 @@

Operations and Administration Guides

Administrator Guides

Manage and troubleshoot an OpenStack cloud

- High Availability Guide[PDF] + High Availability Guide

Install and configure OpenStack for high availability

Architecture Guide

Plan and design an OpenStack cloud

diff --git a/www/templates/ops_and_admin_guides.tmpl b/www/templates/ops_and_admin_guides.tmpl index 047b9030d0..3a6221d12b 100644 --- a/www/templates/ops_and_admin_guides.tmpl +++ b/www/templates/ops_and_admin_guides.tmpl @@ -1,7 +1,7 @@

Operations and Administration Guides

Administrator Guides

Manage and troubleshoot an OpenStack cloud

- High Availability Guide[PDF] + High Availability Guide

Install and configure OpenStack for high availability

Security Guide

Guidelines and scenarios for creating more secure OpenStack clouds

u`^%l2%7yNe)p)1I>C^EhhS~ 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 p%JM&__3zrQNqz^6%?_mx{~0@ZWyAw=4+<~`_ to discuss - a range of topics relating to HA in OpenStack. The - `logs of all past meetings - `_ are still available to - read. - -Contents -~~~~~~~~ - -.. toctree:: - :maxdepth: 2 - - common/conventions.rst - intro-ha.rst - environment.rst - shared-services.rst - controller-ha.rst - networking-ha.rst - storage-ha.rst - compute-node-ha.rst - appendix.rst diff --git a/doc/ha-guide/source/intro-ha-arch-pacemaker.rst b/doc/ha-guide/source/intro-ha-arch-pacemaker.rst deleted file mode 100644 index afa231cbb8..0000000000 --- a/doc/ha-guide/source/intro-ha-arch-pacemaker.rst +++ /dev/null @@ -1,190 +0,0 @@ -========================== -The Pacemaker architecture -========================== - -What is a cluster manager? -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -At its core, a cluster is a distributed finite state machine capable -of co-ordinating the startup and recovery of inter-related services -across a set of machines. - -Even a distributed or replicated application that is able to survive failures -on one or more machines can benefit from a cluster manager because a cluster -manager has the following capabilities: - -#. Awareness of other applications in the stack - - While SYS-V init replacements like systemd can provide - deterministic recovery of a complex stack of services, the - recovery is limited to one machine and lacks the context of what - is happening on other machines. This context is crucial to - determine the difference between a local failure, and clean startup - and recovery after a total site failure. - -#. Awareness of instances on other machines - - Services like RabbitMQ and Galera have complicated boot-up - sequences that require co-ordination, and often serialization, of - startup operations across all machines in the cluster. This is - especially true after a site-wide failure or shutdown where you must - first determine the last machine to be active. - -#. A shared implementation and calculation of `quorum - `_ - - It is very important that all members of the system share the same - view of who their peers are and whether or not they are in the - majority. Failure to do this leads very quickly to an internal - `split-brain `_ - state. This is where different parts of the system are pulling in - different and incompatible directions. - -#. Data integrity through fencing (a non-responsive process does not - imply it is not doing anything) - - A single application does not have sufficient context to know the - difference between failure of a machine and failure of the - application on a machine. The usual practice is to assume the - machine is dead and continue working, however this is highly risky. A - rogue process or machine could still be responding to requests and - generally causing havoc. The safer approach is to make use of - remotely accessible power switches and/or network switches and SAN - controllers to fence (isolate) the machine before continuing. - -#. Automated recovery of failed instances - - While the application can still run after the failure of several - instances, it may not have sufficient capacity to serve the - required volume of requests. A cluster can automatically recover - failed instances to prevent additional load induced failures. - -For these reasons, we highly recommend the use of a cluster manager like -`Pacemaker `_. - -Deployment flavors -~~~~~~~~~~~~~~~~~~ - -It is possible to deploy three different flavors of the Pacemaker -architecture. The two extremes are ``Collapsed`` (where every -component runs on every node) and ``Segregated`` (where every -component runs in its own 3+ node cluster). - -Regardless of which flavor you choose, we recommend that -clusters contain at least three nodes so that you can take advantage of -`quorum `_. - -Quorum becomes important when a failure causes the cluster to split in -two or more partitions. In this situation, you want the majority members of -the system to ensure the minority are truly dead (through fencing) and continue -to host resources. For a two-node cluster, no side has the majority and -you can end up in a situation where both sides fence each other, or -both sides are running the same services. This can lead to data corruption. - -Clusters with an even number of hosts suffer from similar issues. A -single network failure could easily cause a N:N split where neither -side retains a majority. For this reason, we recommend an odd number -of cluster members when scaling up. - -You can have up to 16 cluster members (this is currently limited by -the ability of corosync to scale higher). In extreme cases, 32 and -even up to 64 nodes could be possible. However, this is not well tested. - -Collapsed ---------- - -In a collapsed configuration, there is a single cluster of 3 or more -nodes on which every component is running. - -This scenario has the advantage of requiring far fewer, if more -powerful, machines. Additionally, being part of a single cluster -allows you to accurately model the ordering dependencies between -components. - -This scenario can be visualized as below. - -.. image:: /figures/Cluster-deployment-collapsed.png - :width: 100% - -You would choose this option if you prefer to have fewer but more -powerful boxes. - -This is the most common option and the one we document here. - -Segregated ----------- - -In this configuration, each service runs in a dedicated cluster of -3 or more nodes. - -The benefits of this approach are the physical isolation between -components and the ability to add capacity to specific components. - -You would choose this option if you prefer to have more but -less powerful boxes. - -This scenario can be visualized as below, where each box below -represents a cluster of three or more guests. - -.. image:: /figures/Cluster-deployment-segregated.png - :width: 100% - -Mixed ------ - -It is also possible to follow a segregated approach for one or more -components that are expected to be a bottleneck and use a collapsed -approach for the remainder. - -Proxy server -~~~~~~~~~~~~ - -Almost all services in this stack benefit from being proxied. -Using a proxy server provides the following capabilities: - -#. Load distribution - - Many services can act in an active/active capacity, however, they - usually require an external mechanism for distributing requests to - one of the available instances. The proxy server can serve this - role. - -#. API isolation - - By sending all API access through the proxy, you can clearly - identify service interdependencies. You can also move them to - locations other than ``localhost`` to increase capacity if the - need arises. - -#. Simplified process for adding/removing of nodes - - Since all API access is directed to the proxy, adding or removing - nodes has no impact on the configuration of other services. This - can be very useful in upgrade scenarios where an entirely new set - of machines can be configured and tested in isolation before - telling the proxy to direct traffic there instead. - -#. Enhanced failure detection - - The proxy can be configured as a secondary mechanism for detecting - service failures. It can even be configured to look for nodes in - a degraded state (such as being too far behind in the - replication) and take them out of circulation. - -The following components are currently unable to benefit from the use -of a proxy server: - -* RabbitMQ -* Memcached -* MongoDB - -We recommend HAProxy as the load balancer, however, there are many alternative -load balancing solutions in the marketplace. - -Generally, we use round-robin to distribute load amongst instances of -active/active services. Alternatively, Galera uses ``stick-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. diff --git a/doc/ha-guide/source/intro-ha.rst b/doc/ha-guide/source/intro-ha.rst deleted file mode 100644 index fb27dbe734..0000000000 --- a/doc/ha-guide/source/intro-ha.rst +++ /dev/null @@ -1,208 +0,0 @@ -=========================================== -Introduction to OpenStack high availability -=========================================== - -High availability systems seek to minimize the following issues: - -#. System downtime: Occurs when a user-facing service is unavailable - beyond a specified maximum amount of time. - -#. Data loss: Accidental deletion or destruction of data. - -Most high availability systems guarantee protection against system downtime -and data loss only in the event of a single failure. -However, they are also expected to protect against cascading failures, -where a single failure deteriorates into a series of consequential failures. -Many service providers guarantee a :term:`Service Level Agreement (SLA)` -including uptime percentage of computing service, which is calculated based -on the available time and system downtime excluding planned outage time. - -Redundancy and failover -~~~~~~~~~~~~~~~~~~~~~~~ - -High availability is implemented with redundant hardware -running redundant instances of each service. -If one piece of hardware running one instance of a service fails, -the system can then failover to use another instance of a service -that is running on hardware that did not fail. - -A crucial aspect of high availability -is the elimination of single points of failure (SPOFs). -A SPOF is an individual piece of equipment or software -that causes system downtime or data loss if it fails. -In order to eliminate SPOFs, check that mechanisms exist for redundancy of: - -- Network components, such as switches and routers - -- Applications and automatic service migration - -- Storage components - -- Facility services such as power, air conditioning, and fire protection - -In the event that a component fails and a back-up system must take on -its load, most high availability systems will replace the failed -component as quickly as possible to maintain necessary redundancy. This -way time spent in a degraded protection state is minimized. - -Most high availability systems fail in the event of multiple -independent (non-consequential) failures. In this case, most -implementations favor protecting data over maintaining availability. - -High availability systems typically achieve an uptime percentage of -99.99% or more, which roughly equates to less than an hour of -cumulative downtime per year. In order to achieve this, high -availability systems should keep recovery times after a failure to -about one to two minutes, sometimes significantly less. - -OpenStack currently meets such availability requirements for its own -infrastructure services, meaning that an uptime of 99.99% is feasible -for the OpenStack infrastructure proper. However, OpenStack does not -guarantee 99.99% availability for individual guest instances. - -This document discusses some common methods of implementing highly -available systems, with an emphasis on the core OpenStack services and -other open source services that are closely aligned with OpenStack. - -You will need to address high availability concerns for any applications -software that you run on your OpenStack environment. The important thing is -to make sure that your services are redundant and available. -How you achieve that is up to you. - -Stateless versus stateful services -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following are the definitions of stateless and stateful services: - -Stateless service - A service that provides a response after your request - and then requires no further attention. - To make a stateless service highly available, - you need to provide redundant instances and load balance them. - OpenStack services that are stateless include ``nova-api``, - ``nova-conductor``, ``glance-api``, ``keystone-api``, - ``neutron-api``, and ``nova-scheduler``. - -Stateful service - A service where subsequent requests to the service - depend on the results of the first request. - Stateful services are more difficult to manage because a single - action typically involves more than one request. Providing - additional instances and load balancing does not solve the problem. - For example, if the horizon user interface reset itself every time - you went to a new page, it would not be very useful. - OpenStack services that are stateful include the OpenStack database - and message queue. - Making stateful services highly available can depend on whether you choose - an active/passive or active/active configuration. - -Active/passive versus active/active -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Stateful services can be configured as active/passive or active/active, -which are defined as follows: - -:term:`active/passive configuration` - Maintains a redundant instance - that can be brought online when the active service fails. - For example, OpenStack writes to the main database - while maintaining a disaster recovery database that can be brought online - if the main database fails. - - A typical active/passive installation for a stateful service maintains - a replacement resource that can be brought online when required. - Requests are handled using a :term:`virtual IP address (VIP)` that - facilitates returning to service with minimal reconfiguration. - A separate application (such as Pacemaker or Corosync) monitors - these services, bringing the backup online as necessary. - -:term:`active/active configuration` - Each service also has a backup but manages both the main and - redundant systems concurrently. - This way, if there is a failure, the user is unlikely to notice. - The backup system is already online and takes on increased load - while the main system is fixed and brought back online. - - Typically, an active/active installation for a stateless service - maintains a redundant instance, and requests are load balanced using - a virtual IP address and a load balancer such as HAProxy. - - A typical active/active installation for a stateful service includes - redundant services, with all instances having an identical state. In - other words, updates to one instance of a database update all other - instances. This way a request to one instance is the same as a - request to any other. A load balancer manages the traffic to these - systems, ensuring that operational systems always handle the - request. - -Clusters and quorums -~~~~~~~~~~~~~~~~~~~~ - -The quorum specifies the minimal number of nodes -that must be functional in a cluster of redundant nodes -in order for the cluster to remain functional. -When one node fails and failover transfers control to other nodes, -the system must ensure that data and processes remain sane. -To determine this, the contents of the remaining nodes are compared -and, if there are discrepancies, a majority rules algorithm is implemented. - -For this reason, each cluster in a high availability environment should -have an odd number of nodes and the quorum is defined as more than a half -of the nodes. -If multiple nodes fail so that the cluster size falls below the quorum -value, the cluster itself fails. - -For example, in a seven-node cluster, the quorum should be set to -``floor(7/2) + 1 == 4``. If quorum is four and four nodes fail simultaneously, -the cluster itself would fail, whereas it would continue to function, if -no more than three nodes fail. If split to partitions of three and four nodes -respectively, the quorum of four nodes would continue to operate the majority -partition and stop or fence the minority one (depending on the -no-quorum-policy cluster configuration). - -And the quorum could also have been set to three, just as a configuration -example. - -.. note:: - - We do not recommend setting the quorum to a value less than ``floor(n/2) + 1`` - as it would likely cause a split-brain in a face of network partitions. - -When four nodes fail simultaneously, the cluster would continue to function as -well. But if split to partitions of three and four nodes respectively, the -quorum of three would have made both sides to attempt to fence the other and -host resources. Without fencing enabled, it would go straight to running -two copies of each resource. - -This is why setting the quorum to a value less than ``floor(n/2) + 1`` is -dangerous. However it may be required for some specific cases, such as a -temporary measure at a point it is known with 100% certainty that the other -nodes are down. - -When configuring an OpenStack environment for study or demonstration purposes, -it is possible to turn off the quorum checking. Production systems should -always run with quorum enabled. - - -Single-controller high availability mode -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack supports a single-controller high availability mode -that is managed by the services that manage highly available environments -but is not actually highly available because -no redundant controllers are configured to use for failover. -This environment can be used for study and demonstration -but is not appropriate for a production environment. - -It is possible to add controllers to such an environment -to convert it into a truly highly available environment. - -High availability is not for every user. It presents some challenges. -High availability may be too complex for databases or -systems with large amounts of data. Replication can slow large systems -down. Different setups have different prerequisites. Read the guidelines -for each setup. - -.. important:: - - High availability is turned off as the default in OpenStack setups. diff --git a/doc/ha-guide/source/locale/en_GB/LC_MESSAGES/ha-guide.po b/doc/ha-guide/source/locale/en_GB/LC_MESSAGES/ha-guide.po deleted file mode 100644 index e7a0663e1a..0000000000 --- a/doc/ha-guide/source/locale/en_GB/LC_MESSAGES/ha-guide.po +++ /dev/null @@ -1,4161 +0,0 @@ -# Andi Chandler , 2017. #zanata -# Andi Chandler , 2018. #zanata -msgid "" -msgstr "" -"Project-Id-Version: openstackhaguide\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-22 22:08+0000\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2018-08-22 02:44+0000\n" -"Last-Translator: Andi Chandler \n" -"Language-Team: English (United Kingdom)\n" -"Language: en_GB\n" -"X-Generator: Zanata 4.3.3\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" - -msgid "**Cluster Address**: List the IP addresses for each cluster node." -msgstr "**Cluster Address**: List the IP addresses for each cluster node." - -msgid "**Cluster Name**: Define an arbitrary name for your cluster." -msgstr "**Cluster Name**: Define an arbitrary name for your cluster." - -msgid "" -"**Corosync configuration file fragment for unicast (``corosync.conf``)**" -msgstr "" -"**Corosync configuration file fragment for unicast (``corosync.conf``)**" - -msgid "" -"**Example Corosync configuration file for multicast (``corosync.conf``)**" -msgstr "" -"**Example Corosync configuration file for multicast (``corosync.conf``)**" - -msgid "**Node Address**: Define the IP address of the cluster node." -msgstr "**Node Address**: Define the IP address of the cluster node." - -msgid "**Node Name**: Define the logical name of the cluster node." -msgstr "**Node Name**: Define the logical name of the cluster node." - -msgid "" -"**wsrep Provider**: The Galera Replication Plugin serves as the ``wsrep`` " -"provider for Galera Cluster. It is installed on your system as the " -"``libgalera_smm.so`` file. Define the path to this file in your ``my.cnf``:" -msgstr "" -"**wsrep Provider**: The Galera Replication Plugin serves as the ``wsrep`` " -"provider for Galera Cluster. It is installed on your system as the " -"``libgalera_smm.so`` file. Define the path to this file in your ``my.cnf``:" - -msgid "/etc/neutron/neutron.conf parameters for high availability" -msgstr "/etc/neutron/neutron.conf parameters for High Availability" - -msgid "12 GB" -msgstr "12 GB" - -msgid "12+ GB" -msgstr "12+ GB" - -msgid "120 GB" -msgstr "120 GB" - -msgid "120+ GB" -msgstr "120+ GB" - -msgid "2" -msgstr "2" - -msgid "2 or more" -msgstr "2 or more" - -msgid "4" -msgstr "4" - -msgid "8+" -msgstr "8+" - -msgid ":doc:`Networking DHCP agent`" -msgstr ":doc:`Networking DHCP agent`" - -msgid ":doc:`Neutron L3 agent`" -msgstr ":doc:`Neutron L3 agent`" - -msgid "" -":ref:`Configure OpenStack services to use RabbitMQ HA queues `" -msgstr "" -":ref:`Configure OpenStack services to use RabbitMQ HA queues `" - -msgid ":ref:`Configure RabbitMQ for HA queues`" -msgstr ":ref:`Configure RabbitMQ for HA queues`" - -msgid ":ref:`Install RabbitMQ`" -msgstr ":ref:`Install RabbitMQ`" - -msgid ":ref:`corosync-multicast`" -msgstr ":ref:`corosync-multicast`" - -msgid ":ref:`corosync-unicast`" -msgstr ":ref:`corosync-unicast`" - -msgid ":ref:`corosync-votequorum`" -msgstr ":ref:`corosync-votequorum`" - -msgid ":ref:`glance-api-configure`" -msgstr ":ref:`glance-api-configure`" - -msgid ":ref:`glance-api-pacemaker`" -msgstr ":ref:`glance-api-pacemaker`" - -msgid ":ref:`glance-services`" -msgstr ":ref:`glance-services`" - -msgid ":ref:`ha-blockstorage-configure`" -msgstr ":ref:`ha-blockstorage-configure`" - -msgid ":ref:`ha-blockstorage-pacemaker`" -msgstr ":ref:`ha-blockstorage-pacemaker`" - -msgid ":ref:`ha-blockstorage-services`" -msgstr ":ref:`ha-blockstorage-services`" - -msgid ":ref:`ha-sharedfilesystems-configure`" -msgstr ":ref:`ha-sharedfilesystems-configure`" - -msgid ":ref:`ha-sharedfilesystems-pacemaker`" -msgstr ":ref:`ha-sharedfilesystems-pacemaker`" - -msgid ":ref:`ha-sharedfilesystems-services`" -msgstr ":ref:`ha-sharedfilesystems-services`" - -msgid ":ref:`identity-config-identity`" -msgstr ":ref:`identity-config-identity`" - -msgid ":ref:`identity-pacemaker`" -msgstr ":ref:`identity-pacemaker`" - -msgid ":ref:`identity-services-config`" -msgstr ":ref:`identity-services-config`" - -msgid ":ref:`pacemaker-cluster-properties`" -msgstr ":ref:`pacemaker-cluster-properties`" - -msgid ":ref:`pacemaker-corosync-setup`" -msgstr ":ref:`pacemaker-corosync-setup`" - -msgid ":ref:`pacemaker-corosync-start`" -msgstr ":ref:`pacemaker-corosync-start`" - -msgid ":ref:`pacemaker-install`" -msgstr ":ref:`pacemaker-install`" - -msgid ":ref:`pacemaker-start`" -msgstr ":ref:`pacemaker-start`" - -msgid "" -":term:`Advanced Message Queuing Protocol (AMQP)` provides OpenStack internal " -"stateful communication service." -msgstr "" -":term:`Advanced Message Queuing Protocol (AMQP)` provides OpenStack internal " -"stateful communication service." - -msgid ":term:`active/active configuration`" -msgstr ":term:`active/active configuration`" - -msgid ":term:`active/passive configuration`" -msgstr ":term:`active/passive configuration`" - -msgid "" -"A crucial aspect of high availability is the elimination of single points of " -"failure (SPOFs). A SPOF is an individual piece of equipment or software that " -"causes system downtime or data loss if it fails. In order to eliminate " -"SPOFs, check that mechanisms exist for redundancy of:" -msgstr "" -"A crucial aspect of high availability is the elimination of single points of " -"failure (SPOFs). A SPOF is an individual piece of equipment or software that " -"causes system downtime or data loss if it fails. In order to eliminate " -"SPOFs, check that mechanisms exist for redundancy of:" - -msgid "A minimum of three hosts" -msgstr "A minimum of three hosts" - -msgid "" -"A sample votequorum service configuration in the :file:`corosync.conf` file " -"is:" -msgstr "" -"A sample votequorum service configuration in the :file:`corosync.conf` file " -"is:" - -msgid "" -"A service that provides a response after your request and then requires no " -"further attention. To make a stateless service highly available, you need to " -"provide redundant instances and load balance them. OpenStack services that " -"are stateless include ``nova-api``, ``nova-conductor``, ``glance-api``, " -"``keystone-api``, ``neutron-api``, and ``nova-scheduler``." -msgstr "" -"A service that provides a response after your request and then requires no " -"further attention. To make a stateless service highly available, you need to " -"provide redundant instances and load balance them. OpenStack services that " -"are stateless include ``nova-api``, ``nova-conductor``, ``glance-api``, " -"``keystone-api``, ``neutron-api``, and ``nova-scheduler``." - -msgid "" -"A service where subsequent requests to the service depend on the results of " -"the first request. Stateful services are more difficult to manage because a " -"single action typically involves more than one request. Providing additional " -"instances and load balancing does not solve the problem. For example, if the " -"horizon user interface reset itself every time you went to a new page, it " -"would not be very useful. OpenStack services that are stateful include the " -"OpenStack database and message queue. Making stateful services highly " -"available can depend on whether you choose an active/passive or active/" -"active configuration." -msgstr "" -"A service where subsequent requests to the service depend on the results of " -"the first request. Stateful services are more difficult to manage because a " -"single action typically involves more than one request. Providing additional " -"instances and load balancing does not solve the problem. For example, if the " -"Horizon user interface reset itself every time you went to a new page, it " -"would not be very useful. OpenStack services that are stateful include the " -"OpenStack database and message queue. Making stateful services highly " -"available can depend on whether you choose an active/passive or active/" -"active configuration." - -msgid "" -"A shared implementation and calculation of `quorum `_" -msgstr "" -"A shared implementation and calculation of `quorum `_" - -msgid "" -"A single application does not have sufficient context to know the difference " -"between failure of a machine and failure of the application on a machine. " -"The usual practice is to assume the machine is dead and continue working, " -"however this is highly risky. A rogue process or machine could still be " -"responding to requests and generally causing havoc. The safer approach is to " -"make use of remotely accessible power switches and/or network switches and " -"SAN controllers to fence (isolate) the machine before continuing." -msgstr "" -"A single application does not have sufficient context to know the difference " -"between failure of a machine and failure of the application on a machine. " -"The usual practice is to assume the machine is dead and continue working, " -"however this is highly risky. A rogue process or machine could still be " -"responding to requests and generally causing havoc. The safer approach is to " -"make use of remotely accessible power switches and/or network switches and " -"SAN controllers to fence (isolate) the machine before continuing." - -msgid "" -"A typical active/active installation for a stateful service includes " -"redundant services, with all instances having an identical state. In other " -"words, updates to one instance of a database update all other instances. " -"This way a request to one instance is the same as a request to any other. A " -"load balancer manages the traffic to these systems, ensuring that " -"operational systems always handle the request." -msgstr "" -"A typical active/active installation for a stateful service includes " -"redundant services, with all instances having an identical state. In other " -"words, updates to one instance of a database update all other instances. " -"This way a request to one instance is the same as a request to any other. A " -"load balancer manages the traffic to these systems, ensuring that " -"operational systems always handle the request." - -msgid "" -"A typical active/passive installation for a stateful service maintains a " -"replacement resource that can be brought online when required. Requests are " -"handled using a :term:`virtual IP address (VIP)` that facilitates returning " -"to service with minimal reconfiguration. A separate application (such as " -"Pacemaker or Corosync) monitors these services, bringing the backup online " -"as necessary." -msgstr "" -"A typical active/passive installation for a stateful service maintains a " -"replacement resource that can be brought online when required. Requests are " -"handled using a :term:`virtual IP address (VIP)` that facilitates returning " -"to service with minimal reconfiguration. A separate application (such as " -"Pacemaker or Corosync) monitors these services, bringing the backup online " -"as necessary." - -msgid "API isolation" -msgstr "API isolation" - -msgid "Abstract" -msgstr "Abstract" - -msgid "" -"Access to Memcached is not handled by HAProxy because replicated access is " -"currently in an experimental state. Instead, OpenStack services must be " -"supplied with the full list of hosts running Memcached." -msgstr "" -"Access to Memcached is not handled by HAProxy because replicated access is " -"currently in an experimental state. Instead, OpenStack services must be " -"supplied with the full list of hosts running Memcached." - -msgid "" -"Access to RabbitMQ is not normally handled by HAProxy. Instead, consumers " -"must be supplied with the full list of hosts running RabbitMQ with " -"``rabbit_hosts`` and turn on the ``rabbit_ha_queues`` option. For more " -"information, read the `core issue `_. For more detail, read the `history and " -"solution `_." -msgstr "" -"Access to RabbitMQ is not normally handled by HAProxy. Instead, consumers " -"must be supplied with the full list of hosts running RabbitMQ with " -"``rabbit_hosts`` and turn on the ``rabbit_ha_queues`` option. For more " -"information, read the `core issue `_. For more detail, read the `history and " -"solution `_." - -msgid "Active/passive versus active/active" -msgstr "Active/passive versus active/active" - -msgid "Add Block Storage API resource to Pacemaker" -msgstr "Add Block Storage API resource to Pacemaker" - -msgid "" -"Add HAProxy to the cluster and ensure the VIPs can only run on machines " -"where HAProxy is active:" -msgstr "" -"Add HAProxy to the cluster and ensure the VIPs can only run on machines " -"where HAProxy is active:" - -msgid "Add OpenStack Identity resource to Pacemaker" -msgstr "Add OpenStack Identity resource to Pacemaker" - -msgid "Add OpenStack Image API resource to Pacemaker" -msgstr "Add OpenStack Image API resource to Pacemaker" - -msgid "Add Shared File Systems API resource to Pacemaker" -msgstr "Add Shared File Systems API resource to Pacemaker" - -msgid "" -"Add the Pacemaker configuration for the OpenStack Identity resource by " -"running the following command to connect to the Pacemaker cluster:" -msgstr "" -"Add the Pacemaker configuration for the OpenStack Identity resource by " -"running the following command to connect to the Pacemaker cluster:" - -msgid "" -"Add the Pacemaker configuration for the OpenStack Image API resource. Use " -"the following command to connect to the Pacemaker cluster:" -msgstr "" -"Add the Pacemaker configuration for the OpenStack Image API resource. Use " -"the following command to connect to the Pacemaker cluster:" - -msgid "" -"Add the Pacemaker configuration for the Shared File Systems API resource. " -"Connect to the Pacemaker cluster with the following command:" -msgstr "" -"Add the Pacemaker configuration for the Shared File Systems API resource. " -"Connect to the Pacemaker cluster with the following command:" - -msgid "Add the following cluster resources:" -msgstr "Add the following cluster resources:" - -msgid "Additional parameters" -msgstr "Additional parameters" - -msgid "" -"After installing the Corosync package, you must create the :file:`/etc/" -"corosync/corosync.conf` configuration file." -msgstr "" -"After installing the Corosync package, you must create the :file:`/etc/" -"corosync/corosync.conf` configuration file." - -msgid "" -"After the ``corosync`` service have been started and you have verified that " -"the cluster is communicating properly, you can start :command:`pacemakerd`, " -"the Pacemaker master control process. Choose one from the following four " -"ways to start it:" -msgstr "" -"After the ``corosync`` service have been started and you have verified that " -"the cluster is communicating properly, you can start :command:`pacemakerd`, " -"the Pacemaker master control process. Choose one from the following four " -"ways to start it:" - -msgid "" -"After the ``pacemaker`` service has started, Pacemaker creates a default " -"empty cluster configuration with no resources. Use the :command:`crm_mon` " -"utility to observe the status of ``pacemaker``:" -msgstr "" -"After the ``pacemaker`` service has started, Pacemaker creates a default " -"empty cluster configuration with no resources. Use the :command:`crm_mon` " -"utility to observe the status of ``pacemaker``:" - -msgid "After you make these changes, commit the updated configuration." -msgstr "After you make these changes, commit the updated configuration." - -msgid "" -"After you set up your Pacemaker cluster, set a few basic cluster properties:" -msgstr "" -"After you set up your Pacemaker cluster, set a few basic cluster properties:" - -msgid "All routers are highly available by default." -msgstr "All routers are Highly Available by default." - -msgid "" -"Almost all services in this stack benefit from being proxied. Using a proxy " -"server provides the following capabilities:" -msgstr "" -"Almost all services in this stack benefit from being proxied. Using a proxy " -"server provides the following capabilities:" - -msgid "" -"Alternatively, if the database server is running, use the " -"``wsrep_last_committed`` status variable:" -msgstr "" -"Alternatively, if the database server is running, use the " -"``wsrep_last_committed`` status variable:" - -msgid "" -"Alternatively, instead of using systemd agents, download and install the OCF " -"resource agent:" -msgstr "" -"Alternatively, instead of using systemd agents, download and install the OCF " -"resource agent:" - -msgid "" -"Alternatively, make modifications using the ``firewall-cmd`` utility for " -"FirewallD that is available on many Linux distributions:" -msgstr "" -"Alternatively, make modifications using the ``firewall-cmd`` utility for " -"FirewallD that is available on many Linux distributions:" - -msgid "" -"Alternatively, you can use a commercial load balancer, which is hardware or " -"software. We recommend a hardware load balancer as it generally has good " -"performance." -msgstr "" -"Alternatively, you can use a commercial load balancer, which is hardware or " -"software. We recommend a hardware load balancer as it generally has good " -"performance." - -msgid "Alternatively:" -msgstr "Alternatively:" - -msgid "" -"An AMQP (Advanced Message Queuing Protocol) compliant message bus is " -"required for most OpenStack components in order to coordinate the execution " -"of jobs entered into the system." -msgstr "" -"An AMQP (Advanced Message Queuing Protocol) compliant message bus is " -"required for most OpenStack components in order to coordinate the execution " -"of jobs entered into the system." - -msgid "An OpenStack environment includes multiple data pools for the VMs:" -msgstr "An OpenStack environment includes multiple data pools for the VMs:" - -msgid "" -"And the quorum could also have been set to three, just as a configuration " -"example." -msgstr "" -"And the quorum could also have been set to three, just as a configuration " -"example." - -msgid "AppArmor" -msgstr "AppArmor" - -msgid "AppArmor now permits Galera Cluster to operate." -msgstr "AppArmor now permits Galera Cluster to operate." - -msgid "Appendix" -msgstr "Appendix" - -msgid "" -"Application Armor is a kernel module for improving security on Linux " -"operating systems. It is developed by Canonical and commonly used on Ubuntu-" -"based distributions. In the context of Galera Cluster, systems with AppArmor " -"may block the database service from operating normally." -msgstr "" -"Application Armour is a kernel module for improving security on Linux " -"operating systems. It is developed by Canonical and commonly used on Ubuntu-" -"based distributions. In the context of Galera Cluster, systems with AppArmor " -"may block the database service from operating normally." - -msgid "Applications and automatic service migration" -msgstr "Applications and automatic service migration" - -msgid "" -"As another option to make RabbitMQ highly available, RabbitMQ contains the " -"OCF scripts for the Pacemaker cluster resource agents since version 3.5.7. " -"It provides the active/active RabbitMQ cluster with mirrored queues. For " -"more information, see `Auto-configuration of a cluster with a Pacemaker " -"`_." -msgstr "" -"As another option to make RabbitMQ highly available, RabbitMQ contains the " -"OCF scripts for the Pacemaker cluster resource agents since version 3.5.7. " -"It provides the active/active RabbitMQ cluster with mirrored queues. For " -"more information, see `Auto-configuration of a cluster with a Pacemaker " -"`_." - -msgid "" -"As of September 2016, the OpenStack High Availability community is designing " -"and developing an official and unified way to provide high availability for " -"instances. We are developing automatic recovery from failures of hardware or " -"hypervisor-related software on the compute node, or other failures that " -"could prevent instances from functioning correctly, such as, issues with a " -"cinder volume I/O path." -msgstr "" -"As of September 2016, the OpenStack High Availability community is designing " -"and developing an official and unified way to provide high availability for " -"instances. We are developing automatic recovery from failures of hardware or " -"hypervisor-related software on the compute node, or other failures that " -"could prevent instances from functioning correctly, such as, issues with a " -"cinder volume I/O path." - -msgid "" -"At its core, a cluster is a distributed finite state machine capable of co-" -"ordinating the startup and recovery of inter-related services across a set " -"of machines." -msgstr "" -"At its core, a cluster is a distributed finite state machine capable of co-" -"ordinating the start-up and recovery of inter-related services across a set " -"of machines." - -msgid "Automated recovery of failed instances" -msgstr "Automated recovery of failed instances" - -msgid "Awareness of instances on other machines" -msgstr "Awareness of instances on other machines" - -msgid "Awareness of other applications in the stack" -msgstr "Awareness of other applications in the stack" - -msgid "" -"Bear in mind, leaving SELinux in permissive mode is not a good security " -"practice. Over the longer term, you need to develop a security policy for " -"Galera Cluster and then switch SELinux back into enforcing mode." -msgstr "" -"Bear in mind, leaving SELinux in permissive mode is not a good security " -"practice. Over the longer term, you need to develop a security policy for " -"Galera Cluster and then switch SELinux back into enforcing mode." - -msgid "" -"Before beginning, ensure that you are familiar with the documentation for " -"installing the OpenStack Image API service. See the *Image service* section " -"in the `Installation Guides `_, " -"depending on your distribution." -msgstr "" -"Before beginning, ensure that you are familiar with the documentation for " -"installing the OpenStack Image API service. See the *Image service* section " -"in the `Installation Guides `_, " -"depending on your distribution." - -msgid "" -"Before beginning, ensure you have read the `OpenStack Identity service " -"getting started documentation `_." -msgstr "" -"Before beginning, ensure you have read the `OpenStack Identity service " -"getting started documentation `_." - -msgid "" -"Before following this guide to configure the highly available OpenStack " -"cluster, ensure the IP ``10.0.0.11`` and hostname ``controller`` are not in " -"use." -msgstr "" -"Before following this guide to configure the highly available OpenStack " -"cluster, ensure the IP ``10.0.0.11`` and hostname ``controller`` are not in " -"use." - -msgid "" -"Before you launch Galera Cluster, you need to configure the server and the " -"database to operate as part of the cluster." -msgstr "" -"Before you launch Galera Cluster, you need to configure the server and the " -"database to operate as part of the cluster." - -msgid "" -"Both the central and the compute agent can run in an HA deployment. This " -"means that multiple instances of these services can run in parallel with " -"workload partitioning among these running instances." -msgstr "" -"Both the central and the compute agent can run in an HA deployment. This " -"means that multiple instances of these services can run in parallel with " -"workload partitioning among these running instances." - -msgid "" -"Both use a cluster manager, such as Pacemaker or Veritas, to orchestrate the " -"actions of the various services across a set of machines. Because we are " -"focused on FOSS, we refer to these as Pacemaker architectures." -msgstr "" -"Both use a cluster manager, such as Pacemaker or Veritas, to orchestrate the " -"actions of the various services across a set of machines. Because we are " -"focused on FOSS, we refer to these as Pacemaker architectures." - -msgid "" -"By default, STONITH is enabled in Pacemaker, but STONITH mechanisms (to " -"shutdown a node via IPMI or ssh) are not configured. In this case Pacemaker " -"will refuse to start any resources. For production cluster it is recommended " -"to configure appropriate STONITH mechanisms. But for demo or testing " -"purposes STONITH can be disabled completely as follows:" -msgstr "" -"By default, STONITH is enabled in Pacemaker, but STONITH mechanisms (to " -"shutdown a node via IPMI or ssh) are not configured. In this case Pacemaker " -"will refuse to start any resources. For production cluster it is recommended " -"to configure appropriate STONITH mechanisms. But for demo or testing " -"purposes STONITH can be disabled completely as follows:" - -msgid "" -"By default, ``controller1`` handles the caching service. If the host goes " -"down, ``controller2`` or ``controller3`` will complete the service." -msgstr "" -"By default, ``controller1`` handles the caching service. If the host goes " -"down, ``controller2`` or ``controller3`` will complete the service." - -msgid "" -"By default, cluster nodes do not start as part of a Primary Component. In " -"the Primary Component, replication and state transfers bring all databases " -"to the same state." -msgstr "" -"By default, cluster nodes do not start as part of a Primary Component. In " -"the Primary Component, replication and state transfers bring all databases " -"to the same state." - -msgid "" -"By sending all API access through the proxy, you can clearly identify " -"service interdependencies. You can also move them to locations other than " -"``localhost`` to increase capacity if the need arises." -msgstr "" -"By sending all API access through the proxy, you can clearly identify " -"service interdependencies. You can also move them to locations other than " -"``localhost`` to increase capacity if the need arises." - -msgid "Ceph" -msgstr "Ceph" - -msgid "" -"Ceph RBD provides object replication capabilities by storing Block Storage " -"volumes as Ceph RBD objects. Ceph RBD ensures that each replica of an object " -"is stored on a different node. This means that your volumes are protected " -"against hard drive and node failures, or even the failure of the data center " -"itself." -msgstr "" -"Ceph RBD provides object replication capabilities by storing Block Storage " -"volumes as Ceph RBD objects. Ceph RBD ensures that each replica of an object " -"is stored on a different node. This means that your volumes are protected " -"against hard drive and node failures, or even the failure of the data centre " -"itself." - -msgid "" -"Certain services running on the underlying operating system of your " -"OpenStack database may block Galera Cluster from normal operation or prevent " -"``mysqld`` from achieving network connectivity with the cluster." -msgstr "" -"Certain services running on the underlying operating system of your " -"OpenStack database may block Galera Cluster from normal operation or prevent " -"``mysqld`` from achieving network connectivity with the cluster." - -msgid "Change the number of expected votes for a cluster to be quorate" -msgstr "Change the number of expected votes for a cluster to be quorate" - -msgid "Change the number of votes assigned to a node" -msgstr "Change the number of votes assigned to a node" - -msgid "" -"Cinder provides Block-Storage-as-a-Service suitable for performance " -"sensitive scenarios such as databases, expandable file systems, or providing " -"a server with access to raw block level storage." -msgstr "" -"Cinder provides Block-Storage-as-a-Service suitable for performance " -"sensitive scenarios such as databases, expandable file systems, or providing " -"a server with access to raw block level storage." - -msgid "Clusters and quorums" -msgstr "Clusters and quorums" - -msgid "" -"Clusters with an even number of hosts suffer from similar issues. A single " -"network failure could easily cause a N:N split where neither side retains a " -"majority. For this reason, we recommend an odd number of cluster members " -"when scaling up." -msgstr "" -"Clusters with an even number of hosts suffer from similar issues. A single " -"network failure could easily cause a N:N split where neither side retains a " -"majority. For this reason, we recommend an odd number of cluster members " -"when scaling up." - -msgid "Collapsed" -msgstr "Collapsed" - -msgid "" -"Commit your configuration changes by entering the following command from " -"the :command:`crm configure` menu:" -msgstr "" -"Commit your configuration changes by entering the following command from " -"the :command:`crm configure` menu:" - -msgid "" -"Commit your configuration changes from the :command:`crm configure` menu " -"with the following command:" -msgstr "" -"Commit your configuration changes from the :command:`crm configure` menu " -"with the following command:" - -msgid "Common deployment architectures" -msgstr "Common deployment architectures" - -msgid "Configuration" -msgstr "Configuration" - -msgid "Configuration tips" -msgstr "Configuration tips" - -msgid "Configure Block Storage API service" -msgstr "Configure Block Storage API service" - -msgid "Configure NTP" -msgstr "Configure NTP" - -msgid "Configure OpenStack Identity service" -msgstr "Configure OpenStack Identity service" - -msgid "Configure OpenStack Image service API" -msgstr "Configure OpenStack Image service API" - -msgid "Configure OpenStack services to use HA Shared File Systems API" -msgstr "Configure OpenStack services to use HA Shared File Systems API" - -msgid "Configure OpenStack services to use Rabbit HA queues" -msgstr "Configure OpenStack services to use Rabbit HA queues" - -msgid "" -"Configure OpenStack services to use the highly available Block Storage API" -msgstr "" -"Configure OpenStack services to use the highly available Block Storage API" - -msgid "" -"Configure OpenStack services to use the highly available OpenStack Identity" -msgstr "" -"Configure OpenStack services to use the highly available OpenStack Identity" - -msgid "" -"Configure OpenStack services to use the highly available OpenStack Image API" -msgstr "" -"Configure OpenStack services to use the highly available OpenStack Image API" - -msgid "Configure RabbitMQ for HA queues" -msgstr "Configure RabbitMQ for HA queues" - -msgid "Configure Shared File Systems API service" -msgstr "Configure Shared File Systems API service" - -msgid "" -"Configure networking on each node. See the basic information about " -"configuring networking in the *Networking service* section of the `Install " -"Guides `_, depending on your " -"distribution." -msgstr "" -"Configure networking on each node. See the basic information about " -"configuring networking in the *Networking service* section of the `Install " -"Guides `_, depending on your " -"distribution." - -msgid "Configure the OpenStack components to use at least two RabbitMQ nodes." -msgstr "Configure the OpenStack components to use at least two RabbitMQ nodes." - -msgid "Configure the VIP" -msgstr "Configure the VIP" - -msgid "" -"Configure the kernel parameter to allow non-local IP binding. This allows " -"running HAProxy instances to bind to a VIP for failover. Add following line " -"to ``/etc/sysctl.conf``:" -msgstr "" -"Configure the kernel parameter to allow non-local IP binding. This allows " -"running HAProxy instances to bind to a VIP for failover. Add following line " -"to ``/etc/sysctl.conf``:" - -msgid "Configuring Block Storage to listen on the VIP address" -msgstr "Configuring Block Storage to listen on the VIP address" - -msgid "Configuring HAProxy" -msgstr "Configuring HAProxy" - -msgid "Configuring InnoDB" -msgstr "Configuring InnoDB" - -msgid "Configuring OpenStack services to use this IP address" -msgstr "Configuring OpenStack services to use this IP address" - -msgid "" -"Configuring RAID on the hard drives that implement storage protects your " -"data against a hard drive failure. If the node itself fails, data may be " -"lost. In particular, all volumes stored on an LVM node can be lost." -msgstr "" -"Configuring RAID on the hard drives that implement storage protects your " -"data against a hard drive failure. If the node itself fails, data may be " -"lost. In particular, all volumes stored on an LVM node can be lost." - -msgid "Configuring high availability for instances" -msgstr "Configuring high availability for instances" - -msgid "Configuring mysqld" -msgstr "Configuring mysqld" - -msgid "Configuring storage" -msgstr "Configuring storage" - -msgid "Configuring the basic environment" -msgstr "Configuring the basic environment" - -msgid "Configuring the compute node" -msgstr "Configuring the compute node" - -msgid "Configuring the controller" -msgstr "Configuring the controller" - -msgid "Configuring the networking services" -msgstr "Configuring the networking services" - -msgid "Configuring the server" -msgstr "Configuring the server" - -msgid "Configuring the shared services" -msgstr "Configuring the shared services" - -msgid "Configuring wsrep replication" -msgstr "Configuring wsrep replication" - -msgid "" -"Connect an additional quorum device to allow small clusters remain quorate " -"during node outages" -msgstr "" -"Connect an additional quorum device to allow small clusters remain quorate " -"during node outages" - -msgid "" -"Consider that, while exchanges and bindings survive the loss of individual " -"nodes, queues and their messages do not because a queue and its contents are " -"located on one node. If we lose this node, we also lose the queue." -msgstr "" -"Consider that, while exchanges and bindings survive the loss of individual " -"nodes, queues and their messages do not because a queue and its contents are " -"located on one node. If we lose this node, we also lose the queue." - -msgid "Contents" -msgstr "Contents" - -msgid "" -"Corosync can be configured to work with either multicast or unicast IP " -"addresses or to use the votequorum library." -msgstr "" -"Corosync can be configured to work with either multicast or unicast IP " -"addresses or to use the votequorum library." - -msgid "" -"Corosync is started as a regular system service. Depending on your " -"distribution, it may ship with an LSB init script, an upstart job, or a " -"Systemd unit file." -msgstr "" -"Corosync is started as a regular system service. Depending on your " -"distribution, it may ship with an LSB init script, an upstart job, or a " -"Systemd unit file." - -msgid "" -"Create a configuration file for ``clustercheck`` at ``/etc/sysconfig/" -"clustercheck``:" -msgstr "" -"Create a configuration file for ``clustercheck`` at ``/etc/sysconfig/" -"clustercheck``:" - -msgid "" -"Create a configuration file for the HAProxy monitor service, at ``/etc/" -"xinetd.d/galera-monitor``:" -msgstr "" -"Create a configuration file for the HAProxy monitor service, at ``/etc/" -"xinetd.d/galera-monitor``:" - -msgid "" -"Create a symbolic link for the database server in the ``disable`` directory:" -msgstr "" -"Create a symbolic link for the database server in the ``disable`` directory:" - -msgid "" -"Create and name the cluster. Then, start it and enable all components to " -"auto-start at boot time:" -msgstr "" -"Create and name the cluster. Then, start it and enable all components to " -"auto-start at boot time:" - -msgid "Create the Block Storage API endpoint with this IP." -msgstr "Create the Block Storage API endpoint with this IP." - -msgid "Create the OpenStack Identity Endpoint with this IP address." -msgstr "Create the OpenStack Identity Endpoint with this IP address." - -msgid "Current upstream work" -msgstr "Current upstream work" - -msgid "" -"Data integrity through fencing (a non-responsive process does not imply it " -"is not doing anything)" -msgstr "" -"Data integrity through fencing (a non-responsive process does not imply it " -"is not doing anything)" - -msgid "Data loss: Accidental deletion or destruction of data." -msgstr "Data loss: Accidental deletion or destruction of data." - -msgid "Database (Galera Cluster) for high availability" -msgstr "Database (Galera Cluster) for high availability" - -msgid "Database configuration" -msgstr "Database configuration" - -msgid "Database hosts with Galera Cluster installed" -msgstr "Database hosts with Galera Cluster installed" - -msgid "" -"Define the InnoDB memory buffer pool size. The default value is 128 MB, but " -"to compensate for Galera Cluster's additional memory usage, scale your usual " -"value back by 5%:" -msgstr "" -"Define the InnoDB memory buffer pool size. The default value is 128 MB, but " -"to compensate for Galera Cluster's additional memory usage, scale your usual " -"value back by 5%:" - -msgid "Deployment flavors" -msgstr "Deployment flavours" - -msgid "Deployment strategies" -msgstr "Deployment strategies" - -msgid "Description" -msgstr "Description" - -msgid "" -"Do not change this value. Other modes may cause ``INSERT`` statements on " -"tables with auto-increment columns to fail as well as unresolved deadlocks " -"that leave the system unresponsive." -msgstr "" -"Do not change this value. Other modes may cause ``INSERT`` statements on " -"tables with auto-increment columns to fail as well as unresolved deadlocks " -"that leave the system unresponsive." - -msgid "Download the resource agent to your system:" -msgstr "Download the resource agent to your system:" - -msgid "" -"Each configured interface must have a unique ``ringnumber``, starting with 0." -msgstr "" -"Each configured interface must have a unique ``ringnumber``, starting with 0." - -msgid "Each instance has its own IP address:" -msgstr "Each instance has its own IP address:" - -msgid "" -"Each instance of HAProxy configures its front end to accept connections only " -"to the virtual IP (VIP) address. The HAProxy back end (termination point) is " -"a list of all the IP addresses of instances for load balancing." -msgstr "" -"Each instance of HAProxy configures its front end to accept connections only " -"to the virtual IP (VIP) address. The HAProxy back end (termination point) is " -"a list of all the IP addresses of instances for load balancing." - -msgid "" -"Each service also has a backup but manages both the main and redundant " -"systems concurrently. This way, if there is a failure, the user is unlikely " -"to notice. The backup system is already online and takes on increased load " -"while the main system is fixed and brought back online." -msgstr "" -"Each service also has a backup but manages both the main and redundant " -"systems concurrently. This way, if there is a failure, the user is unlikely " -"to notice. The backup system is already online and takes on increased load " -"while the main system is fixed and brought back online." - -msgid "" -"Edit the :file:`/etc/glance/glance-api.conf` file to configure the OpenStack " -"Image service:" -msgstr "" -"Edit the :file:`/etc/glance/glance-api.conf` file to configure the OpenStack " -"Image service:" - -msgid "Edit the :file:`/etc/manila/manila.conf` file:" -msgstr "Edit the :file:`/etc/manila/manila.conf` file:" - -msgid "" -"Edit the :file:`keystone.conf` file to change the values of the :manpage:" -"`bind(2)` parameters:" -msgstr "" -"Edit the :file:`keystone.conf` file to change the values of the :manpage:" -"`bind(2)` parameters:" - -msgid "" -"Edit the ``/etc/cinder/cinder.conf`` file. For example, on a RHEL-based " -"system:" -msgstr "" -"Edit the ``/etc/cinder/cinder.conf`` file. For example, on a RHEL-based " -"system:" - -msgid "Enhanced failure detection" -msgstr "Enhanced failure detection" - -msgid "" -"Ensure that the InnoDB locking mode for generating auto-increment values is " -"set to ``2``, which is the interleaved locking mode:" -msgstr "" -"Ensure that the InnoDB locking mode for generating auto-increment values is " -"set to ``2``, which is the interleaved locking mode:" - -msgid "" -"Ensure that the InnoDB log buffer is written to file once per second, rather " -"than on each commit, to improve performance:" -msgstr "" -"Ensure that the InnoDB log buffer is written to file once per second, rather " -"than on each commit, to improve performance:" - -msgid "" -"Ensure that the binary log format is set to use row-level replication, as " -"opposed to statement-level replication:" -msgstr "" -"Ensure that the binary log format is set to use row-level replication, as " -"opposed to statement-level replication:" - -msgid "" -"Ensure that the database server is not bound only to the localhost: " -"``127.0.0.1``. Also, do not bind it to ``0.0.0.0``. Binding to the localhost " -"or ``0.0.0.0`` makes ``mySQL`` bind to all IP addresses on the machine, " -"including the virtual IP address causing ``HAProxy`` not to start. Instead, " -"bind to the management IP address of the controller node to enable access by " -"other nodes through the management network:" -msgstr "" -"Ensure that the database server is not bound only to the localhost: " -"``127.0.0.1``. Also, do not bind it to ``0.0.0.0``. Binding to the localhost " -"or ``0.0.0.0`` makes ``mySQL`` bind to all IP addresses on the machine, " -"including the virtual IP address causing ``HAProxy`` not to start. Instead, " -"bind to the management IP address of the controller node to enable access by " -"other nodes through the management network:" - -msgid "Ensure that the default storage engine is set to InnoDB:" -msgstr "Ensure that the default storage engine is set to InnoDB:" - -msgid "" -"Ensure your HAProxy installation is not a single point of failure, it is " -"advisable to have multiple HAProxy instances running." -msgstr "" -"Ensure your HAProxy installation is not a single point of failure, it is " -"advisable to have multiple HAProxy instances running." - -msgid "" -"Ephemeral storage is allocated for an instance and is deleted when the " -"instance is deleted. The Compute service manages ephemeral storage and by " -"default, Compute stores ephemeral drives as files on local disks on the " -"compute node. As an alternative, you can use Ceph RBD as the storage back " -"end for ephemeral storage." -msgstr "" -"Ephemeral storage is allocated for an instance and is deleted when the " -"instance is deleted. The Compute service manages ephemeral storage and by " -"default, Compute stores ephemeral drives as files on local disks on the " -"compute node. As an alternative, you can use Ceph RBD as the storage back " -"end for ephemeral storage." - -msgid "" -"Even a distributed or replicated application that is able to survive " -"failures on one or more machines can benefit from a cluster manager because " -"a cluster manager has the following capabilities:" -msgstr "" -"Even a distributed or replicated application that is able to survive " -"failures on one or more machines can benefit from a cluster manager because " -"a cluster manager has the following capabilities:" - -msgid "Existing solutions" -msgstr "Existing solutions" - -msgid "Facility services such as power, air conditioning, and fire protection" -msgstr "Facility services such as power, air conditioning, and fire protection" - -msgid "Firewall" -msgstr "Firewall" - -msgid "" -"For Liberty, you can not have the standalone network nodes. The Networking " -"services are run on the controller nodes. In this guide, the term `network " -"nodes` is used for convenience." -msgstr "" -"For Liberty, you can not have the standalone network nodes. The Networking " -"services are run on the controller nodes. In this guide, the term `network " -"nodes` is used for convenience." - -msgid "" -"For OpenStack Compute, (if your OpenStack Identity service IP address is " -"10.0.0.11) use the following configuration in the :file:`api-paste.ini` file:" -msgstr "" -"For OpenStack Compute, (if your OpenStack Identity service IP address is " -"10.0.0.11) use the following configuration in the :file:`api-paste.ini` file:" - -msgid "For RHEL, Fedora, or CentOS:" -msgstr "For RHEL, Fedora, or CentOS:" - -msgid "" -"For Red Hat Enterprise Linux and Red Hat-based Linux distributions, the " -"following process uses Systemd unit files." -msgstr "" -"For Red Hat Enterprise Linux and Red Hat-based Linux distributions, the " -"following process uses Systemd unit files." - -msgid "" -"For SLES 12, the packages are signed by GPG key 893A90DAD85F9316. You should " -"verify the fingerprint of the imported GPG key before using it." -msgstr "" -"For SLES 12, the packages are signed by GPG key 893A90DAD85F9316. You should " -"verify the fingerprint of the imported GPG key before using it." - -msgid "For SLES 12:" -msgstr "For SLES 12:" - -msgid "" -"For UDPU, every node that should be a member of the membership must be " -"specified." -msgstr "" -"For UDPU, every node that should be a member of the membership must be " -"specified." - -msgid "" -"For Ubuntu 16.04.1: Create a configuration file for ``clustercheck`` at ``/" -"etc/default/clustercheck``." -msgstr "" -"For Ubuntu 16.04.1: Create a configuration file for ``clustercheck`` at ``/" -"etc/default/clustercheck``." - -msgid "For Ubuntu or Debian:" -msgstr "For Ubuntu or Debian:" - -msgid "" -"For Ubuntu, you should also enable the Corosync service in the ``/etc/" -"default/corosync`` configuration file." -msgstr "" -"For Ubuntu, you should also enable the Corosync service in the ``/etc/" -"default/corosync`` configuration file." - -msgid "" -"For `Fedora `_" -msgstr "" -"For `Fedora `_" - -msgid "" -"For `Ubuntu `_" -msgstr "" -"For `Ubuntu `_" - -msgid "For ``crmsh``:" -msgstr "For ``crmsh``:" - -msgid "For ``pcs``:" -msgstr "For ``pcs``:" - -msgid "" -"For a complete list of the available parameters, run the ``SHOW VARIABLES`` " -"command from within the database client:" -msgstr "" -"For a complete list of the available parameters, run the ``SHOW VARIABLES`` " -"command from within the database client:" - -msgid "" -"For backward compatibility and supporting existing deployments, the central " -"agent configuration supports using different configuration files. This is " -"for groups of service instances that are running in parallel. For enabling " -"this configuration, set a value for the ``partitioning_group_prefix`` option " -"in the `polling section `_ in the OpenStack Configuration " -"Reference." -msgstr "" -"For backward compatibility and supporting existing deployments, the central " -"agent configuration supports using different configuration files. This is " -"for groups of service instances that are running in parallel. For enabling " -"this configuration, set a value for the ``partitioning_group_prefix`` option " -"in the `polling section `_ in the OpenStack Configuration " -"Reference." - -msgid "" -"For demonstrations and studying, you can set up a test environment on " -"virtual machines (VMs). This has the following benefits:" -msgstr "" -"For demonstrations and studying, you can set up a test environment on " -"virtual machines (VMs). This has the following benefits:" - -msgid "" -"For detailed instructions about installing HAProxy on your nodes, see the " -"HAProxy `official documentation `_." -msgstr "" -"For detailed instructions about installing HAProxy on your nodes, see the " -"HAProxy `official documentation `_." - -msgid "" -"For documentation about these parameters, ``wsrep`` provider option, and " -"status variables available in Galera Cluster, see the Galera cluster " -"`Reference `_." -msgstr "" -"For documentation about these parameters, ``wsrep`` provider option, and " -"status variables available in Galera Cluster, see the Galera cluster " -"`Reference `_." - -msgid "" -"For each sub-group of the central agent pool with the same " -"``partitioning_group_prefix``, a disjoint subset of meters must be polled to " -"avoid samples being missing or duplicated. The list of meters to poll can be " -"set in the :file:`/etc/ceilometer/pipeline.yaml` configuration file. For " -"more information about pipelines see the `Data processing and pipelines " -"`_ " -"section." -msgstr "" -"For each sub-group of the central agent pool with the same " -"``partitioning_group_prefix``, a disjoint subset of meters must be polled to " -"avoid samples being missing or duplicated. The list of meters to poll can be " -"set in the :file:`/etc/ceilometer/pipeline.yaml` configuration file. For " -"more information about pipelines see the `Data processing and pipelines " -"`_ " -"section." - -msgid "" -"For environments that do not support multicast, Corosync should be " -"configured for unicast. An example fragment of the :file:`corosync.conf` " -"file for unicastis is shown below:" -msgstr "" -"For environments that do not support multicast, Corosync should be " -"configured for unicast. An example fragment of the :file:`corosync.conf` " -"file for unicast is shown below:" - -msgid "" -"For example, if your OpenStack Image API service IP address is 10.0.0.11 (as " -"in the configuration explained here), you would use the following " -"configuration in your :file:`nova.conf` file:" -msgstr "" -"For example, if your OpenStack Image API service IP address is 10.0.0.11 (as " -"in the configuration explained here), you would use the following " -"configuration in your :file:`nova.conf` file:" - -msgid "" -"For example, in a seven-node cluster, the quorum should be set to " -"``floor(7/2) + 1 == 4``. If quorum is four and four nodes fail " -"simultaneously, the cluster itself would fail, whereas it would continue to " -"function, if no more than three nodes fail. If split to partitions of three " -"and four nodes respectively, the quorum of four nodes would continue to " -"operate the majority partition and stop or fence the minority one (depending " -"on the no-quorum-policy cluster configuration)." -msgstr "" -"For example, in a seven-node cluster, the quorum should be set to " -"``floor(7/2) + 1 == 4``. If quorum is four and four nodes fail " -"simultaneously, the cluster itself would fail, whereas it would continue to " -"function, if no more than three nodes fail. If split to partitions of three " -"and four nodes respectively, the quorum of four nodes would continue to " -"operate the majority partition and stop or fence the minority one (depending " -"on the no-quorum-policy cluster configuration)." - -msgid "" -"For example, you may enter ``edit p_ip_glance-api`` from the :command:`crm " -"configure` menu and edit the resource to match your preferred virtual IP " -"address." -msgstr "" -"For example, you may enter ``edit p_ip_glance-api`` from the :command:`crm " -"configure` menu and edit the resource to match your preferred virtual IP " -"address." - -msgid "" -"For example, you may enter ``edit p_ip_keystone`` from the :command:`crm " -"configure` menu and edit the resource to match your preferred virtual IP " -"address." -msgstr "" -"For example, you may enter ``edit p_ip_keystone`` from the :command:`crm " -"configure` menu and edit the resource to match your preferred virtual IP " -"address." - -msgid "" -"For example, you may enter ``edit p_ip_manila-api`` from the :command:`crm " -"configure` menu and edit the resource to match your preferred virtual IP " -"address." -msgstr "" -"For example, you may enter ``edit p_ip_manila-api`` from the :command:`crm " -"configure` menu and edit the resource to match your preferred virtual IP " -"address." - -msgid "" -"For firewall configurations, Corosync communicates over UDP only, and uses " -"``mcastport`` (for receives) and ``mcastport - 1`` (for sends)." -msgstr "" -"For firewall configurations, Corosync communicates over UDP only, and uses " -"``mcastport`` (for receives) and ``mcastport - 1`` (for sends)." - -msgid "" -"For information about the required configuration options to set in the :file:" -"`ceilometer.conf`, see the `coordination section `_ in the OpenStack Configuration " -"Reference." -msgstr "" -"For information about the required configuration options to set in the :file:" -"`ceilometer.conf`, see the `coordination section `_ in the OpenStack Configuration " -"Reference." - -msgid "" -"For more information about Memcached installation, see the *Environment -> " -"Memcached* section in the `Installation Guides `_ depending on your distribution." -msgstr "" -"For more information about Memcached installation, see the *Environment -> " -"Memcached* section in the `Installation Guides `_ depending on your distribution." - -msgid "" -"For more information about configuring storage back ends for the different " -"storage options, see `Manage volumes `_ in the OpenStack Administrator Guide." -msgstr "" -"For more information about configuring storage back ends for the different " -"storage options, see `Manage volumes `_ in the OpenStack Administrator Guide." - -msgid "" -"For more information on configuring SELinux to work with Galera Cluster, see " -"the `SELinux Documentation `_" -msgstr "" -"For more information on configuring SELinux to work with Galera Cluster, see " -"the `SELinux Documentation `_" - -msgid "" -"For more information on firewalls, see `firewalls and default ports `_ in OpenStack " -"Administrator Guide." -msgstr "" -"For more information on firewalls, see `firewalls and default ports `_ in OpenStack " -"Administrator Guide." - -msgid "" -"For more information, see the official installation manual for the " -"distribution:" -msgstr "" -"For more information, see the official installation manual for the " -"distribution:" - -msgid "For openSUSE:" -msgstr "For openSUSE:" - -msgid "For servers that use ``systemd``, run the following command:" -msgstr "For servers that use ``systemd``, run the following command:" - -msgid "For servers that use ``systemd``, run the following commands:" -msgstr "For servers that use ``systemd``, run the following commands:" - -msgid "" -"For these reasons, we highly recommend the use of a cluster manager like " -"`Pacemaker `_." -msgstr "" -"For these reasons, we highly recommend the use of a cluster manager like " -"`Pacemaker `_." - -msgid "" -"For this reason, each cluster in a high availability environment should have " -"an odd number of nodes and the quorum is defined as more than a half of the " -"nodes. If multiple nodes fail so that the cluster size falls below the " -"quorum value, the cluster itself fails." -msgstr "" -"For this reason, each cluster in a High Availability environment should have " -"an odd number of nodes and the quorum is defined as more than a half of the " -"nodes. If multiple nodes fail so that the cluster size falls below the " -"quorum value, the cluster itself fails." - -msgid "" -"Galera Cluster configuration parameters all have the ``wsrep_`` prefix. You " -"must define the following parameters for each cluster node in your OpenStack " -"database." -msgstr "" -"Galera Cluster configuration parameters all have the ``wsrep_`` prefix. You " -"must define the following parameters for each cluster node in your OpenStack " -"database." - -msgid "" -"Galera Cluster does not support non-transactional storage engines and " -"requires that you use InnoDB by default. There are some additional " -"parameters that you must define to avoid conflicts." -msgstr "" -"Galera Cluster does not support non-transactional storage engines and " -"requires that you use InnoDB by default. There are some additional " -"parameters that you must define to avoid conflicts." - -msgid "" -"Galera Cluster requires that you open the following ports to network traffic:" -msgstr "" -"Galera Cluster requires that you open the following ports to network traffic:" - -msgid "Galera can be configured using one of the following strategies:" -msgstr "Galera can be configured using one of the following strategies:" - -msgid "Galera runs behind HAProxy:" -msgstr "Galera runs behind HAProxy:" - -msgid "" -"Galera synchronous replication guarantees a zero slave lag. The failover " -"procedure completes once HAProxy detects that the active back end has gone " -"down and switches to the backup one, which is then marked as ``UP``. If no " -"back ends are ``UP``, the failover procedure finishes only when the Galera " -"Cluster has been successfully reassembled. The SLA is normally no more than " -"5 minutes." -msgstr "" -"Galera synchronous replication guarantees a zero slave lag. The failover " -"procedure completes once HAProxy detects that the active back end has gone " -"down and switches to the backup one, which is then marked as ``UP``. If no " -"back ends are ``UP``, the failover procedure finishes only when the Galera " -"Cluster has been successfully reassembled. The SLA is normally no more than " -"5 minutes." - -msgid "" -"Generally, we use round-robin to distribute load amongst instances of active/" -"active services. Alternatively, Galera uses ``stick-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." -msgstr "" -"Generally, we use round-robin to distribute load amongst instances of active/" -"active services. Alternatively, Galera uses ``stick-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." - -msgid "HAProxy" -msgstr "HAProxy" - -msgid "" -"HAProxy load balances incoming requests and exposes just one IP address for " -"all the clients." -msgstr "" -"HAProxy load balances incoming requests and exposes just one IP address for " -"all the clients." - -msgid "" -"HAProxy provides a fast and reliable HTTP reverse proxy and load balancer " -"for TCP or HTTP applications. It is particularly suited for web crawling " -"under very high loads while needing persistence or Layer 7 processing. It " -"realistically supports tens of thousands of connections with recent hardware." -msgstr "" -"HAProxy provides a fast and reliable HTTP reverse proxy and load balancer " -"for TCP or HTTP applications. It is particularly suited for web crawling " -"under very high loads while needing persistence or Layer 7 processing. It " -"realistically supports tens of thousands of connections with recent hardware." - -msgid "Hardware considerations for high availability" -msgstr "Hardware considerations for high availability" - -msgid "Hardware setup" -msgstr "Hardware setup" - -msgid "" -"High availability is implemented with redundant hardware running redundant " -"instances of each service. If one piece of hardware running one instance of " -"a service fails, the system can then failover to use another instance of a " -"service that is running on hardware that did not fail." -msgstr "" -"High Availability is implemented with redundant hardware running redundant " -"instances of each service. If one piece of hardware running one instance of " -"a service fails, the system can then failover to use another instance of a " -"service that is running on hardware that did not fail." - -msgid "" -"High availability is not for every user. It presents some challenges. High " -"availability may be too complex for databases or systems with large amounts " -"of data. Replication can slow large systems down. Different setups have " -"different prerequisites. Read the guidelines for each setup." -msgstr "" -"High Availability is not for every user. It presents some challenges. High " -"availability may be too complex for databases or systems with large amounts " -"of data. Replication can slow large systems down. Different setups have " -"different prerequisites. Read the guidelines for each setup." - -msgid "High availability is turned off as the default in OpenStack setups." -msgstr "High Availability is turned off as the default in OpenStack setups." - -msgid "High availability systems seek to minimize the following issues:" -msgstr "High Availability systems seek to minimise the following issues:" - -msgid "" -"High availability systems typically achieve an uptime percentage of 99.99% " -"or more, which roughly equates to less than an hour of cumulative downtime " -"per year. In order to achieve this, high availability systems should keep " -"recovery times after a failure to about one to two minutes, sometimes " -"significantly less." -msgstr "" -"High Availability systems typically achieve an uptime percentage of 99.99% " -"or more, which roughly equates to less than an hour of cumulative downtime " -"per year. In order to achieve this, high availability systems should keep " -"recovery times after a failure to about one to two minutes, sometimes " -"significantly less." - -msgid "Highly available Block Storage API" -msgstr "Highly available Block Storage API" - -msgid "Highly available Identity API" -msgstr "Highly available Identity API" - -msgid "Highly available Image API" -msgstr "Highly available Image API" - -msgid "Highly available Shared File Systems API" -msgstr "Highly available Shared File Systems API" - -msgid "Highly available Telemetry" -msgstr "Highly available Telemetry" - -msgid "How long to back-off for between retries when connecting to RabbitMQ:" -msgstr "How long to back-off for between retries when connecting to RabbitMQ:" - -msgid "" -"However, running an OpenStack environment on VMs degrades the performance of " -"your instances, particularly if your hypervisor or processor lacks support " -"for hardware acceleration of nested VMs." -msgstr "" -"However, running an OpenStack environment on VMs degrades the performance of " -"your instances, particularly if your hypervisor or processor lacks support " -"for hardware acceleration of nested VMs." - -msgid "" -"If the Block Storage service runs on the same nodes as the other services, " -"then it is advisable to also include:" -msgstr "" -"If the Block Storage service runs on the same nodes as the other services, " -"then it is advisable to also include:" - -msgid "" -"If the Identity service will be sending ceilometer notifications and your " -"message bus is configured for high availability, you will need to ensure " -"that the Identity service is correctly configured to use it. For details on " -"how to configure the Identity service for this kind of deployment, see :doc:" -"`shared-messaging`." -msgstr "" -"If the Identity service will be sending Ceilometer notifications and your " -"message bus is configured for high availability, you will need to ensure " -"that the Identity service is correctly configured to use it. For details on " -"how to configure the Identity service for this kind of deployment, see :doc:" -"`shared-messaging`." - -msgid "" -"If the ``broadcast`` parameter is set to ``yes``, the broadcast address is " -"used for communication. If this option is set, the ``mcastaddr`` parameter " -"should not be set." -msgstr "" -"If the ``broadcast`` parameter is set to ``yes``, the broadcast address is " -"used for communication. If this option is set, the ``mcastaddr`` parameter " -"should not be set." - -msgid "" -"If the cluster is working, you can create usernames and passwords for the " -"queues." -msgstr "" -"If the cluster is working, you can create usernames and passwords for the " -"queues." - -msgid "" -"If you are using Corosync version 2 on Ubuntu 14.04, remove or comment out " -"lines under the service stanza. These stanzas enable Pacemaker to start up. " -"Another potential problem is the boot and shutdown order of Corosync and " -"Pacemaker. To force Pacemaker to start after Corosync and stop before " -"Corosync, fix the start and kill symlinks manually:" -msgstr "" -"If you are using Corosync version 2 on Ubuntu 14.04, remove or comment out " -"lines under the service stanza. These stanzas enable Pacemaker to start up. " -"Another potential problem is the boot and shutdown order of Corosync and " -"Pacemaker. To force Pacemaker to start after Corosync and stop before " -"Corosync, fix the start and kill symlinks manually:" - -msgid "" -"If you are using Corosync version 2, use the :command:`corosync-cmapctl` " -"utility instead of :command:`corosync-objctl`; it is a direct replacement." -msgstr "" -"If you are using Corosync version 2, use the :command:`corosync-cmapctl` " -"utility instead of :command:`corosync-objctl`; it is a direct replacement." - -msgid "" -"If you are using both private and public IP addresses, create two virtual IP " -"addresses and define the endpoint. For example:" -msgstr "" -"If you are using both private and public IP addresses, create two virtual IP " -"addresses and define the endpoint. For example:" - -msgid "" -"If you are using both private and public IP addresses, create two virtual " -"IPs and define your endpoint. For example:" -msgstr "" -"If you are using both private and public IP addresses, create two virtual " -"IPs and define your endpoint. For example:" - -msgid "" -"If you are using both private and public IP addresses, you should create two " -"virtual IPs and define your endpoints like this:" -msgstr "" -"If you are using both private and public IP addresses, you should create two " -"virtual IPs and define your endpoints like this:" - -msgid "" -"If you are using the Block Storage service OCF agent, some settings will be " -"filled in for you, resulting in a shorter configuration file:" -msgstr "" -"If you are using the Block Storage service OCF agent, some settings will be " -"filled in for you, resulting in a shorter configuration file:" - -msgid "" -"If you are using the horizon Dashboard, edit the :file:`local_settings.py` " -"file to include the following:" -msgstr "" -"If you are using the horizon Dashboard, edit the :file:`local_settings.py` " -"file to include the following:" - -msgid "" -"If you change the configuration from an old set-up that did not use HA " -"queues, restart the service:" -msgstr "" -"If you change the configuration from an old set-up that did not use HA " -"queues, restart the service:" - -msgid "" -"If you use HAProxy as a load-balancing client to provide access to the " -"Galera Cluster, as described in the :doc:`controller-ha-haproxy`, you can " -"use the ``clustercheck`` utility to improve health checks." -msgstr "" -"If you use HAProxy as a load-balancing client to provide access to the " -"Galera Cluster, as described in the :doc:`controller-ha-haproxy`, you can " -"use the ``clustercheck`` utility to improve health checks." - -msgid "" -"In Corosync, configurations use redundant networking (with more than one " -"interface). This means you must select a Redundant Ring Protocol (RRP) mode " -"other than none. We recommend ``active`` as the RRP mode." -msgstr "" -"In Corosync, configurations use redundant networking (with more than one " -"interface). This means you must select a Redundant Ring Protocol (RRP) mode " -"other than none. We recommend ``active`` as the RRP mode." - -msgid "" -"In Red Hat Enterprise Linux or CentOS environments, this is a recommended " -"path to perform configuration. For more information, see the `RHEL docs " -"`_." -msgstr "" -"In Red Hat Enterprise Linux or CentOS environments, this is a recommended " -"path to perform configuration. For more information, see the `RHEL docs " -"`_." - -msgid "" -"In a collapsed configuration, there is a single cluster of 3 or more nodes " -"on which every component is running." -msgstr "" -"In a collapsed configuration, there is a single cluster of 3 or more nodes " -"on which every component is running." - -msgid "" -"In addition to Galera Cluster, you can also achieve high availability " -"through other database options, such as PostgreSQL, which has its own " -"replication system." -msgstr "" -"In addition to Galera Cluster, you can also achieve High Availability " -"through other database options, such as PostgreSQL, which has its own " -"replication system." - -msgid "" -"In general, we can divide all the OpenStack components into three categories:" -msgstr "" -"In general, we can divide all the OpenStack components into three categories:" - -msgid "" -"In the Galera Cluster, the Primary Component is the cluster of database " -"servers that replicate into each other. In the event that a cluster node " -"loses connectivity with the Primary Component, it defaults into a non-" -"operational state, to avoid creating or serving inconsistent data." -msgstr "" -"In the Galera Cluster, the Primary Component is the cluster of database " -"servers that replicate into each other. In the event that a cluster node " -"loses connectivity with the Primary Component, it defaults into a non-" -"operational state, to avoid creating or serving inconsistent data." - -msgid "" -"In the event that a component fails and a back-up system must take on its " -"load, most high availability systems will replace the failed component as " -"quickly as possible to maintain necessary redundancy. This way time spent in " -"a degraded protection state is minimized." -msgstr "" -"In the event that a component fails and a back-up system must take on its " -"load, most High Availability systems will replace the failed component as " -"quickly as possible to maintain necessary redundancy. This way time spent in " -"a degraded protection state is minimized." - -msgid "" -"In the event that you need to restart any cluster node, you can do so. When " -"the database server comes back it, it establishes connectivity with the " -"Primary Component and updates itself to any changes it may have missed while " -"down." -msgstr "" -"In the event that you need to restart any cluster node, you can do so. When " -"the database server comes back it, it establishes connectivity with the " -"Primary Component and updates itself to any changes it may have missed while " -"down." - -msgid "" -"In theory, you can run the Block Storage service as active/active. However, " -"because of sufficient concerns, we recommend running the volume component as " -"active/passive only." -msgstr "" -"In theory, you can run the Block Storage service as active/active. However, " -"because of sufficient concerns, we recommend running the volume component as " -"active/passive only." - -msgid "" -"In this configuration, each service runs in a dedicated cluster of 3 or more " -"nodes." -msgstr "" -"In this configuration, each service runs in a dedicated cluster of 3 or more " -"nodes." - -msgid "" -"Individual cluster nodes can stop and be restarted without issue. When a " -"database loses its connection or restarts, the Galera Cluster brings it back " -"into sync once it reestablishes connection with the Primary Component. In " -"the event that you need to restart the entire cluster, identify the most " -"advanced cluster node and initialize the Primary Component on that node." -msgstr "" -"Individual cluster nodes can stop and be restarted without issue. When a " -"database loses its connection or restarts, the Galera Cluster brings it back " -"into sync once it re-establishes connection with the Primary Component. In " -"the event that you need to restart the entire cluster, identify the most " -"advanced cluster node and initialise the Primary Component on that node." - -msgid "" -"Initialize the Primary Component on one cluster node. For servers that use " -"``init``, run the following command:" -msgstr "" -"Initialise the Primary Component on one cluster node. For servers that use " -"``init``, run the following command:" - -msgid "Initializing the cluster" -msgstr "Initialising the cluster" - -msgid "Install RabbitMQ" -msgstr "Install RabbitMQ" - -msgid "Install packages" -msgstr "Install packages" - -msgid "Installing Memcached" -msgstr "Installing Memcached" - -msgid "Installing the operating system" -msgstr "Installing the operating system" - -msgid "Introduction to OpenStack high availability" -msgstr "Introduction to OpenStack High Availability" - -msgid "" -"It is also possible to follow a segregated approach for one or more " -"components that are expected to be a bottleneck and use a collapsed approach " -"for the remainder." -msgstr "" -"It is also possible to follow a segregated approach for one or more " -"components that are expected to be a bottleneck and use a collapsed approach " -"for the remainder." - -msgid "" -"It is possible to add controllers to such an environment to convert it into " -"a truly highly available environment." -msgstr "" -"It is possible to add controllers to such an environment to convert it into " -"a truly highly available environment." - -msgid "" -"It is possible to deploy three different flavors of the Pacemaker " -"architecture. The two extremes are ``Collapsed`` (where every component runs " -"on every node) and ``Segregated`` (where every component runs in its own 3+ " -"node cluster)." -msgstr "" -"It is possible to deploy three different flavours of the Pacemaker " -"architecture. The two extremes are ``Collapsed`` (where every component runs " -"on every node) and ``Segregated`` (where every component runs in its own 3+ " -"node cluster)." - -msgid "" -"It is storage and application-agnostic, and in no way specific to OpenStack." -msgstr "" -"It is storage and application-agnostic, and in no way specific to OpenStack." - -msgid "" -"It is very important that all members of the system share the same view of " -"who their peers are and whether or not they are in the majority. Failure to " -"do this leads very quickly to an internal `split-brain `_ state. This is where different parts of " -"the system are pulling in different and incompatible directions." -msgstr "" -"It is very important that all members of the system share the same view of " -"who their peers are and whether or not they are in the majority. Failure to " -"do this leads very quickly to an internal `split-brain `_ state. This is where different parts of " -"the system are pulling in different and incompatible directions." - -msgid "List the nodes known to the quorum service" -msgstr "List the nodes known to the quorum service" - -msgid "Load distribution" -msgstr "Load distribution" - -msgid "" -"Locate your HAProxy instance on each OpenStack controller node in your " -"environment. The following is an example ``/etc/haproxy/haproxy.cfg`` " -"configuration file. Configure your instance using the following " -"configuration file, you will need a copy of it on each controller node." -msgstr "" -"Locate your HAProxy instance on each OpenStack controller node in your " -"environment. The following is an example ``/etc/haproxy/haproxy.cfg`` " -"configuration file. Configure your instance using the following " -"configuration file, you will need a copy of it on each controller node." - -msgid "" -"Log in to the database client and grant the ``clustercheck`` user " -"``PROCESS`` privileges:" -msgstr "" -"Log in to the database client and grant the ``clustercheck`` user " -"``PROCESS`` privileges:" - -msgid "" -"Maintains a redundant instance that can be brought online when the active " -"service fails. For example, OpenStack writes to the main database while " -"maintaining a disaster recovery database that can be brought online if the " -"main database fails." -msgstr "" -"Maintains a redundant instance that can be brought online when the active " -"service fails. For example, OpenStack writes to the main database while " -"maintaining a disaster recovery database that can be brought online if the " -"main database fails." - -msgid "Make sure `pcs` is running and configured to start at boot time:" -msgstr "Make sure `pcs` is running and configured to start at boot time:" - -msgid "" -"Make sure to save the changes once you are done. This will vary depending on " -"your distribution:" -msgstr "" -"Make sure to save the changes once you are done. This will vary depending on " -"your distribution:" - -msgid "" -"Making the Block Storage (cinder) API service highly available in active/" -"active mode involves:" -msgstr "" -"Making the Block Storage (Cinder) API service highly available in active/" -"active mode involves:" - -msgid "" -"Making the Block Storage API service highly available in active/passive mode " -"involves:" -msgstr "" -"Making the Block Storage API service highly available in active/passive mode " -"involves:" - -msgid "" -"Making the OpenStack Identity service highly available in active and passive " -"mode involves:" -msgstr "" -"Making the OpenStack Identity service highly available in active and passive " -"mode involves:" - -msgid "" -"Making the RabbitMQ service highly available involves the following steps:" -msgstr "" -"Making the RabbitMQ service highly available involves the following steps:" - -msgid "" -"Making the Shared File Systems (manila) API service highly available in " -"active/passive mode involves:" -msgstr "" -"Making the Shared File Systems (Manila) API service highly available in " -"active/passive mode involves:" - -msgid "Management" -msgstr "Management" - -msgid "" -"Managing the Block Storage API daemon with the Pacemaker cluster manager" -msgstr "" -"Managing the Block Storage API daemon with the Pacemaker cluster manager" - -msgid "" -"Many services can act in an active/active capacity, however, they usually " -"require an external mechanism for distributing requests to one of the " -"available instances. The proxy server can serve this role." -msgstr "" -"Many services can act in an active/active capacity, however, they usually " -"require an external mechanism for distributing requests to one of the " -"available instances. The proxy server can serve this role." - -msgid "Maximum number of network nodes to use for the HA router." -msgstr "Maximum number of network nodes to use for the HA router." - -msgid "" -"Maximum retries with trying to connect to RabbitMQ (infinite by default):" -msgstr "" -"Maximum retries with trying to connect to RabbitMQ (infinite by default):" - -msgid "Memcached" -msgstr "Memcached" - -msgid "" -"Memcached is a general-purpose distributed memory caching system. It is used " -"to speed up dynamic database-driven websites by caching data and objects in " -"RAM to reduce the number of times an external data source must be read." -msgstr "" -"Memcached is a general-purpose distributed memory caching system. It is used " -"to speed up dynamic database-driven websites by caching data and objects in " -"RAM to reduce the number of times an external data source must be read." - -msgid "" -"Memcached is a memory cache demon that can be used by most OpenStack " -"services to store ephemeral data, such as tokens." -msgstr "" -"Memcached is a memory cache demon that can be used by most OpenStack " -"services to store ephemeral data, such as tokens." - -msgid "" -"Memcached uses a timeout value, which should always be set to a value that " -"is higher than the heartbeat value set for Telemetry." -msgstr "" -"Memcached uses a timeout value, which should always be set to a value that " -"is higher than the heartbeat value set for Telemetry." - -msgid "Memory" -msgstr "Memory" - -msgid "" -"Memory caching is managed by `oslo.cache `_. This " -"ensures consistency across all projects when using multiple Memcached " -"servers. The following is an example configuration with three hosts:" -msgstr "" -"Memory caching is managed by `oslo.cache `_. This " -"ensures consistency across all projects when using multiple Memcached " -"servers. The following is an example configuration with three hosts:" - -msgid "Messaging service for high availability" -msgstr "Messaging service for High Availability" - -msgid "" -"Minimum number of network nodes to use for the HA router. A new router can " -"be created only if this number of network nodes are available." -msgstr "" -"Minimum number of network nodes to use for the HA router. A new router can " -"be created only if this number of network nodes are available." - -msgid "" -"Mirrored queues in RabbitMQ improve the availability of service since it is " -"resilient to failures." -msgstr "" -"Mirrored queues in RabbitMQ improve the availability of service since it is " -"resilient to failures." - -msgid "Mixed" -msgstr "Mixed" - -msgid "MongoDB" -msgstr "MongoDB" - -msgid "" -"More details are available in the `user story `_ co-" -"authored by OpenStack's HA community and `Product Working Group `_ (PWG), where this feature is " -"identified as missing functionality in OpenStack, which should be addressed " -"with high priority." -msgstr "" -"More details are available in the `user story `_ co-" -"authored by OpenStack's HA community and `Product Working Group `_ (PWG), where this feature is " -"identified as missing functionality in OpenStack, which should be addressed " -"with high priority." - -msgid "More information is available in the RabbitMQ documentation:" -msgstr "More information is available in the RabbitMQ documentation:" - -msgid "" -"Most OpenStack services can use Memcached to store ephemeral data such as " -"tokens. Although Memcached does not support typical forms of redundancy such " -"as clustering, OpenStack services can use almost any number of instances by " -"configuring multiple hostnames or IP addresses." -msgstr "" -"Most OpenStack services can use Memcached to store ephemeral data such as " -"tokens. Although Memcached does not support typical forms of redundancy such " -"as clustering, OpenStack services can use almost any number of instances by " -"configuring multiple hostnames or IP addresses." - -msgid "" -"Most distributions ship an example configuration file (:file:`corosync.conf." -"example`) as part of the documentation bundled with the Corosync package. An " -"example Corosync configuration file is shown below:" -msgstr "" -"Most distributions ship an example configuration file (:file:`corosync.conf." -"example`) as part of the documentation bundled with the Corosync package. An " -"example Corosync configuration file is shown below:" - -msgid "" -"Most high availability systems fail in the event of multiple independent " -"(non-consequential) failures. In this case, most implementations favor " -"protecting data over maintaining availability." -msgstr "" -"Most High Availability systems fail in the event of multiple independent " -"(non-consequential) failures. In this case, most implementations favour " -"protecting data over maintaining availability." - -msgid "" -"Most high availability systems guarantee protection against system downtime " -"and data loss only in the event of a single failure. However, they are also " -"expected to protect against cascading failures, where a single failure " -"deteriorates into a series of consequential failures. Many service providers " -"guarantee a :term:`Service Level Agreement (SLA)` including uptime " -"percentage of computing service, which is calculated based on the available " -"time and system downtime excluding planned outage time." -msgstr "" -"Most High Availability systems guarantee protection against system downtime " -"and data loss only in the event of a single failure. However, they are also " -"expected to protect against cascading failures, where a single failure " -"deteriorates into a series of consequential failures. Many service providers " -"guarantee a :term:`Service Level Agreement (SLA)` including uptime " -"percentage of computing service, which is calculated based on the available " -"time and system downtime excluding planned outage time." - -msgid "" -"Multicast groups (``mcastaddr``) must not be reused across cluster " -"boundaries. No two distinct clusters should ever use the same multicast " -"group. Be sure to select multicast addresses compliant with `RFC 2365, " -"\"Administratively Scoped IP Multicast\" `_." -msgstr "" -"Multicast groups (``mcastaddr``) must not be reused across cluster " -"boundaries. No two distinct clusters should ever use the same multicast " -"group. Be sure to select multicast addresses compliant with `RFC 2365, " -"\"Administratively Scoped IP Multicast\" `_." - -msgid "" -"MySQL databases, including MariaDB and Percona XtraDB, manage their " -"configurations using a ``my.cnf`` file, which is typically located in the ``/" -"etc`` directory. Configuration options available in these databases are also " -"available in Galera Cluster, with some restrictions and several additions." -msgstr "" -"MySQL databases, including MariaDB and Percona XtraDB, manage their " -"configurations using a ``my.cnf`` file, which is typically located in the ``/" -"etc`` directory. Configuration options available in these databases are also " -"available in Galera Cluster, with some restrictions and several additions." - -msgid "NIC" -msgstr "NIC" - -msgid "Network components, such as switches and routers" -msgstr "Network components, such as switches and routers" - -msgid "Networking L2 agent" -msgstr "Networking L2 agent" - -msgid "No firewalls between the hosts" -msgstr "No firewalls between the hosts" - -msgid "Node type" -msgstr "Node type" - -msgid "Note the following about the recommended interface configuration:" -msgstr "Note the following about the recommended interface configuration:" - -msgid "Note the following:" -msgstr "Note the following:" - -msgid "" -"Older versions of some distributions, which do not have an up-to-date policy " -"for securing Galera, may also require SELinux to be more relaxed about " -"database access and actions:" -msgstr "" -"Older versions of some distributions, which do not have an up-to-date policy " -"for securing Galera, may also require SELinux to be more relaxed about " -"database access and actions:" - -msgid "On CentOS, RHEL, openSUSE, and SLES:" -msgstr "On CentOS, RHEL, openSUSE, and SLES:" - -msgid "" -"On RHEL-based systems, create resources for cinder's systemd agents and " -"create constraints to enforce startup/shutdown ordering:" -msgstr "" -"On RHEL-based systems, create resources for cinder's systemd agents and " -"create constraints to enforce start-up/shutdown ordering:" - -msgid "" -"On ``3306``, Galera Cluster uses TCP for database client connections and " -"State Snapshot Transfers methods that require the client, (that is, " -"``mysqldump``)." -msgstr "" -"On ``3306``, Galera Cluster uses TCP for database client connections and " -"State Snapshot Transfers methods that require the client, (that is, " -"``mysqldump``)." - -msgid "" -"On ``4444``, Galera Cluster uses TCP for all other State Snapshot Transfer " -"methods." -msgstr "" -"On ``4444``, Galera Cluster uses TCP for all other State Snapshot Transfer " -"methods." - -msgid "" -"On ``4567``, Galera Cluster uses TCP for replication traffic. Multicast " -"replication uses both TCP and UDP on this port." -msgstr "" -"On ``4567``, Galera Cluster uses TCP for replication traffic. Multicast " -"replication uses both TCP and UDP on this port." - -msgid "On ``4568``, Galera Cluster uses TCP for Incremental State Transfers." -msgstr "On ``4568``, Galera Cluster uses TCP for Incremental State Transfers." - -msgid "" -"On any host that is meant to be part of a Pacemaker cluster, establish " -"cluster communications through the Corosync messaging layer. This involves " -"installing the following packages (and their dependencies, which your " -"package manager usually installs automatically):" -msgstr "" -"On any host that is meant to be part of a Pacemaker cluster, establish " -"cluster communications through the Corosync messaging layer. This involves " -"installing the following packages (and their dependencies, which your " -"package manager usually installs automatically):" - -msgid "" -"On each target node, verify the correct owner, group, and permissions of the " -"file :file:`erlang.cookie`:" -msgstr "" -"On each target node, verify the correct owner, group, and permissions of the " -"file :file:`erlang.cookie`:" - -msgid "" -"On the infrastructure layer, the SLA is the time for which RabbitMQ cluster " -"reassembles. Several cases are possible. The Mnesia keeper node is the " -"master of the corresponding Pacemaker resource for RabbitMQ. When it fails, " -"the result is a full AMQP cluster downtime interval. Normally, its SLA is no " -"more than several minutes. Failure of another node that is a slave of the " -"corresponding Pacemaker resource for RabbitMQ results in no AMQP cluster " -"downtime at all." -msgstr "" -"On the infrastructure layer, the SLA is the time for which RabbitMQ cluster " -"reassembles. Several cases are possible. The Mnesia keeper node is the " -"master of the corresponding Pacemaker resource for RabbitMQ. When it fails, " -"the result is a full AMQP cluster downtime interval. Normally, its SLA is no " -"more than several minutes. Failure of another node that is a slave of the " -"corresponding Pacemaker resource for RabbitMQ results in no AMQP cluster " -"downtime at all." - -msgid "" -"Once completed, commit your configuration changes by entering :command:" -"`commit` from the :command:`crm configure` menu. Pacemaker then starts the " -"Block Storage API service and its dependent resources on one of your nodes." -msgstr "" -"Once completed, commit your configuration changes by entering :command:" -"`commit` from the :command:`crm configure` menu. Pacemaker then starts the " -"Block Storage API service and its dependent resources on one of your nodes." - -msgid "" -"Once created, synchronize the :file:`corosync.conf` file (and the :file:" -"`authkey` file if the secauth option is enabled) across all cluster nodes." -msgstr "" -"Once created, synchronise the :file:`corosync.conf` file (and the :file:" -"`authkey` file if the secauth option is enabled) across all cluster nodes." - -msgid "" -"Once the database server starts, check the cluster status using the " -"``wsrep_cluster_size`` status variable. From the database client, run the " -"following command:" -msgstr "" -"Once the database server starts, check the cluster status using the " -"``wsrep_cluster_size`` status variable. From the database client, run the " -"following command:" - -msgid "" -"One physical server can support multiple nodes, each of which supports " -"almost any number of network interfaces." -msgstr "" -"One physical server can support multiple nodes, each of which supports " -"almost any number of network interfaces." - -msgid "" -"Only one instance for the central and compute agent service(s) is able to " -"run and function correctly if the ``backend_url`` option is not set." -msgstr "" -"Only one instance for the central and compute agent service(s) is able to " -"run and function correctly if the ``backend_url`` option is not set." - -msgid "" -"OpenStack APIs: APIs that are HTTP(s) stateless services written in python, " -"easy to duplicate and mostly easy to load balance." -msgstr "" -"OpenStack APIs: APIs that are HTTP(s) stateless services written in python, " -"easy to duplicate and mostly easy to load balance." - -msgid "OpenStack Block Storage" -msgstr "OpenStack Block Storage" - -msgid "OpenStack Compute" -msgstr "OpenStack Compute" - -msgid "OpenStack High Availability Guide" -msgstr "OpenStack High Availability Guide" - -msgid "OpenStack Networking" -msgstr "OpenStack Networking" - -msgid "" -"OpenStack currently meets such availability requirements for its own " -"infrastructure services, meaning that an uptime of 99.99% is feasible for " -"the OpenStack infrastructure proper. However, OpenStack does not guarantee " -"99.99% availability for individual guest instances." -msgstr "" -"OpenStack currently meets such availability requirements for its own " -"infrastructure services, meaning that an uptime of 99.99% is feasible for " -"the OpenStack infrastructure proper. However, OpenStack does not guarantee " -"99.99% availability for individual guest instances." - -msgid "" -"OpenStack does not require a significant amount of resources and the " -"following minimum requirements should support a proof-of-concept high " -"availability environment with core services and several instances:" -msgstr "" -"OpenStack does not require a significant amount of resources and the " -"following minimum requirements should support a proof-of-concept high " -"availability environment with core services and several instances:" - -msgid "" -"OpenStack is a set of services exposed to the end users as HTTP(s) APIs. " -"Additionally, for your own internal usage, OpenStack requires an SQL " -"database server and AMQP broker. The physical servers, where all the " -"components are running, are called controllers. This modular OpenStack " -"architecture allows you to duplicate all the components and run them on " -"different controllers. By making all the components redundant, it is " -"possible to make OpenStack highly available." -msgstr "" -"OpenStack is a set of services exposed to the end users as HTTP(s) APIs. " -"Additionally, for your own internal usage, OpenStack requires an SQL " -"database server and AMQP broker. The physical servers, where all the " -"components are running, are called controllers. This modular OpenStack " -"architecture allows you to duplicate all the components and run them on " -"different controllers. By making all the components redundant, it is " -"possible to make OpenStack highly available." - -msgid "OpenStack network nodes contain:" -msgstr "OpenStack network nodes contain:" - -msgid "" -"OpenStack services are configured with the list of these IP addresses so " -"they can select one of the addresses from those available." -msgstr "" -"OpenStack services are configured with the list of these IP addresses so " -"they can select one of the addresses from those available." - -msgid "" -"OpenStack supports a single-controller high availability mode that is " -"managed by the services that manage highly available environments but is not " -"actually highly available because no redundant controllers are configured to " -"use for failover. This environment can be used for study and demonstration " -"but is not appropriate for a production environment." -msgstr "" -"OpenStack supports a single-controller High Availability mode that is " -"managed by the services that manage highly available environments but is not " -"actually highly available because no redundant controllers are configured to " -"use for failover. This environment can be used for study and demonstration " -"but is not appropriate for a production environment." - -msgid "Overview of highly available controllers" -msgstr "Overview of highly available controllers" - -msgid "Pacemaker cluster stack" -msgstr "Pacemaker cluster stack" - -msgid "" -"Pacemaker does not inherently understand the applications it manages. " -"Instead, it relies on resource agents (RAs) that are scripts that " -"encapsulate the knowledge of how to start, stop, and check the health of " -"each application managed by the cluster." -msgstr "" -"Pacemaker does not inherently understand the applications it manages. " -"Instead, it relies on resource agents (RAs) that are scripts that " -"encapsulate the knowledge of how to start, stop, and check the health of " -"each application managed by the cluster." - -msgid "" -"Pacemaker now starts the OpenStack Identity service and its dependent " -"resources on all of your nodes." -msgstr "" -"Pacemaker now starts the OpenStack Identity service and its dependent " -"resources on all of your nodes." - -msgid "" -"Pacemaker now starts the Shared File Systems API service and its dependent " -"resources on one of your nodes." -msgstr "" -"Pacemaker now starts the Shared File Systems API service and its dependent " -"resources on one of your nodes." - -msgid "" -"Pacemaker relies on the `Corosync `_ " -"messaging layer for reliable cluster communications. Corosync implements the " -"Totem single-ring ordering and membership protocol. It also provides UDP and " -"InfiniBand based messaging, quorum, and cluster membership to Pacemaker." -msgstr "" -"Pacemaker relies on the `Corosync `_ " -"messaging layer for reliable cluster communications. Corosync implements the " -"Totem single-ring ordering and membership protocol. It also provides UDP and " -"InfiniBand based messaging, quorum, and cluster membership to Pacemaker." - -msgid "" -"Pacemaker ships with a large set of OCF agents (such as those managing MySQL " -"databases, virtual IP addresses, and RabbitMQ), but can also use any agents " -"already installed on your system and can be extended with your own (see the " -"`developer guide `_)." -msgstr "" -"Pacemaker ships with a large set of OCF agents (such as those managing MySQL " -"databases, virtual IP addresses, and RabbitMQ), but can also use any agents " -"already installed on your system and can be extended with your own (see the " -"`developer guide `_)." - -msgid "" -"Pacemaker then starts the OpenStack Image API service and its dependent " -"resources on one of your nodes." -msgstr "" -"Pacemaker then starts the OpenStack Image API service and its dependent " -"resources on one of your nodes." - -msgid "" -"Pacemaker uses an event-driven approach to cluster state processing. The " -"``cluster-recheck-interval`` parameter (which defaults to 15 minutes) " -"defines the interval at which certain Pacemaker actions occur. It is usually " -"prudent to reduce this to a shorter interval, such as 5 or 3 minutes." -msgstr "" -"Pacemaker uses an event-driven approach to cluster state processing. The " -"``cluster-recheck-interval`` parameter (which defaults to 15 minutes) " -"defines the interval at which certain Pacemaker actions occur. It is usually " -"prudent to reduce this to a shorter interval, such as 5 or 3 minutes." - -msgid "Parameter" -msgstr "Parameter" - -msgid "" -"Persistent block storage can survive instance termination and can also be " -"moved across instances like any external storage device. Cinder also has " -"volume snapshots capability for backing up the volumes." -msgstr "" -"Persistent block storage can survive instance termination and can also be " -"moved across instances like any external storage device. Cinder also has " -"volume snapshots capability for backing up the volumes." - -msgid "" -"Persistent storage exists outside all instances. Two types of persistent " -"storage are provided:" -msgstr "" -"Persistent storage exists outside all instances. Two types of persistent " -"storage are provided:" - -msgid "Possible options are:" -msgstr "Possible options are:" - -msgid "Prerequisites" -msgstr "Prerequisites" - -msgid "Processor Cores" -msgstr "Processor Cores" - -msgid "" -"Production servers should run (at least) three RabbitMQ servers for testing " -"and demonstration purposes, however it is possible to run only two servers. " -"In this section, we configure two nodes, called ``rabbit1`` and ``rabbit2``. " -"To build a broker, ensure that all nodes have the same Erlang cookie file." -msgstr "" -"Production servers should run (at least) three RabbitMQ servers for testing " -"and demonstration purposes, however it is possible to run only two servers. " -"In this section, we configure two nodes, called ``rabbit1`` and ``rabbit2``. " -"To build a broker, ensure that all nodes have the same Erlang cookie file." - -msgid "" -"Provider networks: See the *Overview -> Networking Option 1: Provider " -"networks* section of the `Install Guides `_ depending on your distribution." -msgstr "" -"Provider networks: See the *Overview -> Networking Option 1: Provider " -"networks* section of the `Install Guides `_ depending on your distribution." - -msgid "Proxy server" -msgstr "Proxy server" - -msgid "Query the quorum status" -msgstr "Query the quorum status" - -msgid "" -"Quorum becomes important when a failure causes the cluster to split in two " -"or more partitions. In this situation, you want the majority members of the " -"system to ensure the minority are truly dead (through fencing) and continue " -"to host resources. For a two-node cluster, no side has the majority and you " -"can end up in a situation where both sides fence each other, or both sides " -"are running the same services. This can lead to data corruption." -msgstr "" -"Quorum becomes important when a failure causes the cluster to split in two " -"or more partitions. In this situation, you want the majority members of the " -"system to ensure the minority are truly dead (through fencing) and continue " -"to host resources. For a two-node cluster, no side has the majority and you " -"can end up in a situation where both sides fence each other, or both sides " -"are running the same services. This can lead to data corruption." - -msgid "RAID drives" -msgstr "RAID drives" - -msgid "RabbitMQ" -msgstr "RabbitMQ" - -msgid "" -"RabbitMQ HA cluster Transport URL using ``[user:pass@]host:port`` format:" -msgstr "" -"RabbitMQ HA cluster Transport URL using ``[user:pass@]host:port`` format:" - -msgid "" -"RabbitMQ nodes fail over on the application and the infrastructure layers." -msgstr "" -"RabbitMQ nodes fail over on the application and the infrastructure layers." - -msgid "Receive notifications of quorum state changes" -msgstr "Receive notifications of quorum state changes" - -msgid "Recommended for testing." -msgstr "Recommended for testing." - -msgid "Recommended solution by the Tooz project." -msgstr "Recommended solution by the Tooz project." - -msgid "Red Hat" -msgstr "Red Hat" - -msgid "Redundancy and failover" -msgstr "Redundancy and failover" - -msgid "" -"Regardless of which flavor you choose, we recommend that clusters contain at " -"least three nodes so that you can take advantage of `quorum `_." -msgstr "" -"Regardless of which flavour you choose, we recommend that clusters contain " -"at least three nodes so that you can take advantage of `quorum `_." - -msgid "" -"Replace ``CINDER_DBPASS`` with the password you chose for the Block Storage " -"database." -msgstr "" -"Replace ``CINDER_DBPASS`` with the password you chose for the Block Storage " -"database." - -msgid "" -"Replace ``CINDER_DBPASS`` with the password you chose for the Block Storage " -"database. Replace ``CINDER_PASS`` with the password you chose for the " -"``cinder`` user in the Identity service." -msgstr "" -"Replace ``CINDER_DBPASS`` with the password you chose for the Block Storage " -"database. Replace ``CINDER_PASS`` with the password you chose for the " -"``cinder`` user in the Identity service." - -msgid "" -"Replace ``RABBIT_USER`` with RabbitMQ username and ``RABBIT_PASS`` with " -"password for respective RabbitMQ host. For more information, see `oslo " -"messaging transport `_." -msgstr "" -"Replace ``RABBIT_USER`` with RabbitMQ username and ``RABBIT_PASS`` with " -"password for respective RabbitMQ host. For more information, see `oslo " -"messaging transport `_." - -msgid "" -"Replace the IP addresses given here with comma-separated list of each " -"OpenStack database in your cluster." -msgstr "" -"Replace the IP addresses given here with comma-separated list of each " -"OpenStack database in your cluster." - -msgid "" -"Restart AppArmor. For servers that use ``init``, run the following command:" -msgstr "" -"Restart AppArmor. For servers that use ``init``, run the following command:" - -msgid "Restart the HAProxy service." -msgstr "Restart the HAProxy service." - -msgid "Restart the host or, to make changes work immediately, invoke:" -msgstr "Restart the host or, to make changes work immediately, invoke:" - -msgid "Restarting the cluster" -msgstr "Restarting the cluster" - -msgid "Retry connecting with RabbitMQ:" -msgstr "Retry connecting with RabbitMQ:" - -msgid "Run Networking DHCP agent" -msgstr "Run Networking DHCP agent" - -msgid "Run Networking L3 agent" -msgstr "Run Networking L3 agent" - -msgid "Run the following commands on each node except the first one:" -msgstr "Run the following commands on each node except the first one:" - -msgid "" -"Run the following commands to download the OpenStack Identity resource to " -"Pacemaker:" -msgstr "" -"Run the following commands to download the OpenStack Identity resource to " -"Pacemaker:" - -msgid "SELinux" -msgstr "SELinux" - -msgid "SELinux and AppArmor set to permit access to ``mysqld``" -msgstr "SELinux and AppArmor set to permit access to ``mysqld``" - -msgid "SUSE" -msgstr "SUSE" - -msgid "" -"SUSE Enterprise Linux and SUSE-based distributions, such as openSUSE, use a " -"set of OCF agents for controlling OpenStack services." -msgstr "" -"SUSE Enterprise Linux and SUSE-based distributions, such as openSUSE, use a " -"set of OCF agents for controlling OpenStack services." - -msgid "" -"Security-Enhanced Linux is a kernel module for improving security on Linux " -"operating systems. It is commonly enabled and configured by default on Red " -"Hat-based distributions. In the context of Galera Cluster, systems with " -"SELinux may block the database service, keep it from starting, or prevent it " -"from establishing network connections with the cluster." -msgstr "" -"Security-Enhanced Linux is a kernel module for improving security on Linux " -"operating systems. It is commonly enabled and configured by default on Red " -"Hat-based distributions. In the context of Galera Cluster, systems with " -"SELinux may block the database service, keep it from starting, or prevent it " -"from establishing network connections with the cluster." - -msgid "Segregated" -msgstr "Segregated" - -msgid "" -"Self-service networks: See the *Overview -> Networking Option 2: Self-" -"service networks* section of the `Install Guides `_ depending on your distribution." -msgstr "" -"Self-service networks: See the *Overview -> Networking Option 2: Self-" -"service networks* section of the `Install Guides `_ depending on your distribution." - -msgid "" -"Services like RabbitMQ and Galera have complicated boot-up sequences that " -"require co-ordination, and often serialization, of startup operations across " -"all machines in the cluster. This is especially true after a site-wide " -"failure or shutdown where you must first determine the last machine to be " -"active." -msgstr "" -"Services like RabbitMQ and Galera have complicated boot-up sequences that " -"require co-ordination, and often serialisation, of start-up operations " -"across all machines in the cluster. This is especially true after a site-" -"wide failure or shutdown where you must first determine the last machine to " -"be active." - -msgid "Set a password for hacluster user on each host:" -msgstr "Set a password for hacluster user on each host:" - -msgid "Set automatic L3 agent failover for routers" -msgstr "Set automatic L3 agent failover for routers" - -msgid "Set basic cluster properties" -msgstr "Set basic cluster properties" - -msgid "Set up Corosync with multicast" -msgstr "Set up Corosync with multicast" - -msgid "Set up Corosync with unicast" -msgstr "Set up Corosync with unicast" - -msgid "Set up Corosync with votequorum library" -msgstr "Set up Corosync with votequorum library" - -msgid "Set up the cluster with `crmsh`" -msgstr "Set up the cluster with `crmsh`" - -msgid "Set up the cluster with pcs" -msgstr "Set up the cluster with pcs" - -msgid "" -"Setting ``last_man_standing`` to 1 enables the Last Man Standing (LMS) " -"feature. By default, it is disabled (set to 0). If a cluster is on the " -"quorum edge (``expected_votes:`` set to 7; ``online nodes:`` set to 4) for " -"longer than the time specified for the ``last_man_standing_window`` " -"parameter, the cluster can recalculate quorum and continue operating even if " -"the next node will be lost. This logic is repeated until the number of " -"online nodes in the cluster reaches 2. In order to allow the cluster to step " -"down from 2 members to only 1, the ``auto_tie_breaker`` parameter needs to " -"be set. We do not recommended this for production environments." -msgstr "" -"Setting ``last_man_standing`` to 1 enables the Last Man Standing (LMS) " -"feature. By default, it is disabled (set to 0). If a cluster is on the " -"quorum edge (``expected_votes:`` set to 7; ``online nodes:`` set to 4) for " -"longer than the time specified for the ``last_man_standing_window`` " -"parameter, the cluster can recalculate quorum and continue operating even if " -"the next node will be lost. This logic is repeated until the number of " -"online nodes in the cluster reaches 2. In order to allow the cluster to step " -"down from 2 members to only 1, the ``auto_tie_breaker`` parameter needs to " -"be set. We do not recommended this for production environments." - -msgid "" -"Setting the ``pe-warn-series-max``, ``pe-input-series-max``, and ``pe-error-" -"series-max`` parameters to 1000 instructs Pacemaker to keep a longer history " -"of the inputs processed and errors and warnings generated by its Policy " -"Engine. This history is useful if you need to troubleshoot the cluster." -msgstr "" -"Setting the ``pe-warn-series-max``, ``pe-input-series-max``, and ``pe-error-" -"series-max`` parameters to 1000 instructs Pacemaker to keep a longer history " -"of the inputs processed and errors and warnings generated by its Policy " -"Engine. This history is useful if you need to troubleshoot the cluster." - -msgid "" -"Setting this parameter to ``0`` or ``2`` can improve performance, but it " -"introduces certain dangers. Operating system failures can erase the last " -"second of transactions. While you can recover this data from another node, " -"if the cluster goes down at the same time (in the event of a data center " -"power outage), you lose this data permanently." -msgstr "" -"Setting this parameter to ``0`` or ``2`` can improve performance, but it " -"introduces certain dangers. Operating system failures can erase the last " -"second of transactions. While you can recover this data from another node, " -"if the cluster goes down at the same time (in the event of a data centre " -"power outage), you lose this data permanently." - -msgid "Simplified process for adding/removing of nodes" -msgstr "Simplified process for adding/removing of nodes" - -msgid "" -"Since all API access is directed to the proxy, adding or removing nodes has " -"no impact on the configuration of other services. This can be very useful in " -"upgrade scenarios where an entirely new set of machines can be configured " -"and tested in isolation before telling the proxy to direct traffic there " -"instead." -msgstr "" -"Since all API access is directed to the proxy, adding or removing nodes has " -"no impact on the configuration of other services. This can be very useful in " -"upgrade scenarios where an entirely new set of machines can be configured " -"and tested in isolation before telling the proxy to direct traffic there " -"instead." - -msgid "" -"Since the cluster is a single administrative domain, it is acceptable to use " -"the same password on all nodes." -msgstr "" -"Since the cluster is a single administrative domain, it is acceptable to use " -"the same password on all nodes." - -msgid "Single-controller high availability mode" -msgstr "Single-controller High Availability mode" - -msgid "" -"Specifying ``corosync_votequorum`` enables the votequorum library. This is " -"the only required option." -msgstr "" -"Specifying ``corosync_votequorum`` enables the votequorum library. This is " -"the only required option." - -msgid "Start Corosync" -msgstr "Start Corosync" - -msgid "Start Pacemaker" -msgstr "Start Pacemaker" - -msgid "Start ``corosync`` with systemd unit file:" -msgstr "Start ``corosync`` with systemd unit file:" - -msgid "Start ``corosync`` with the LSB init script:" -msgstr "Start ``corosync`` with the LSB init script:" - -msgid "Start ``corosync`` with upstart:" -msgstr "Start ``corosync`` with upstart:" - -msgid "Start ``pacemaker`` with the LSB init script:" -msgstr "Start ``pacemaker`` with the LSB init script:" - -msgid "Start ``pacemaker`` with the systemd unit file:" -msgstr "Start ``pacemaker`` with the systemd unit file:" - -msgid "Start ``pacemaker`` with upstart:" -msgstr "Start ``pacemaker`` with upstart:" - -msgid "" -"Start the ``xinetd`` daemon for ``clustercheck``. For servers that use " -"``init``, run the following commands:" -msgstr "" -"Start the ``xinetd`` daemon for ``clustercheck``. For servers that use " -"``init``, run the following commands:" - -msgid "" -"Start the database server on all other cluster nodes. For servers that use " -"``init``, run the following command:" -msgstr "" -"Start the database server on all other cluster nodes. For servers that use " -"``init``, run the following command:" - -msgid "" -"Start the message queue service on all nodes and configure it to start when " -"the system boots. On Ubuntu, it is configured by default." -msgstr "" -"Start the message queue service on all nodes and configure it to start when " -"the system boots. On Ubuntu, it is configured by default." - -msgid "Stateful service" -msgstr "Stateful service" - -msgid "" -"Stateful services can be configured as active/passive or active/active, " -"which are defined as follows:" -msgstr "" -"Stateful services can be configured as active/passive or active/active, " -"which are defined as follows:" - -msgid "Stateless service" -msgstr "Stateless service" - -msgid "Stateless versus stateful services" -msgstr "Stateless versus stateful services" - -msgid "" -"Stop RabbitMQ and copy the cookie from the first node to each of the other " -"node(s):" -msgstr "" -"Stop RabbitMQ and copy the cookie from the first node to each of the other " -"node(s):" - -msgid "Storage" -msgstr "Storage" - -msgid "Storage back end" -msgstr "Storage back end" - -msgid "Storage components" -msgstr "Storage components" - -msgid "" -"System downtime: Occurs when a user-facing service is unavailable beyond a " -"specified maximum amount of time." -msgstr "" -"System downtime: Occurs when a user-facing service is unavailable beyond a " -"specified maximum amount of time." - -msgid "Telemetry" -msgstr "Telemetry" - -msgid "Telemetry polling agent" -msgstr "Telemetry polling agent" - -msgid "" -"The :command:`crm configure` command supports batch input. Copy and paste " -"the lines in the next step into your live Pacemaker configuration and then " -"make changes as required." -msgstr "" -"The :command:`crm configure` command supports batch input. Copy and paste " -"the lines in the next step into your live Pacemaker configuration and then " -"make changes as required." - -msgid "" -"The :command:`crm configure` supports batch input. Copy and paste the lines " -"in the next step into your live Pacemaker configuration and then make " -"changes as required." -msgstr "" -"The :command:`crm configure` supports batch input. Copy and paste the lines " -"in the next step into your live Pacemaker configuration and then make " -"changes as required." - -msgid "" -"The :command:`crm configure` supports batch input. You may have to copy and " -"paste the above lines into your live Pacemaker configuration, and then make " -"changes as required." -msgstr "" -"The :command:`crm configure` supports batch input. You may have to copy and " -"paste the above lines into your live Pacemaker configuration, and then make " -"changes as required." - -msgid "" -"The Block Storage service (cinder) that can use LVM or Ceph RBD as the " -"storage back end." -msgstr "" -"The Block Storage service (Cinder) that can use LVM or Ceph RBD as the " -"storage back end." - -msgid "" -"The Galera cluster configuration directive ``backup`` indicates that two of " -"the three controllers are standby nodes. This ensures that only one node " -"services write requests because OpenStack support for multi-node writes is " -"not yet production-ready." -msgstr "" -"The Galera cluster configuration directive ``backup`` indicates that two of " -"the three controllers are standby nodes. This ensures that only one node " -"services write requests because OpenStack support for multi-node writes is " -"not yet production-ready." - -msgid "" -"The Image service (glance) that can use the Object Storage service (swift) " -"or Ceph RBD as the storage back end." -msgstr "" -"The Image service (Glance) that can use the Object Storage service (Swift) " -"or Ceph RBD as the storage back end." - -msgid "" -"The L2 agent cannot be distributed and highly available. Instead, it must be " -"installed on each data forwarding node to control the virtual network driver " -"such as Open vSwitch or Linux Bridge. One L2 agent runs per node and " -"controls its virtual interfaces." -msgstr "" -"The L2 agent cannot be distributed and Highly Available. Instead, it must be " -"installed on each data forwarding node to control the virtual network driver " -"such as Open vSwitch or Linux Bridge. One L2 agent runs per node and " -"controls its virtual interfaces." - -msgid "" -"The Memcached client implements hashing to balance objects among the " -"instances. Failure of an instance impacts only a percentage of the objects " -"and the client automatically removes it from the list of instances. The SLA " -"is several minutes." -msgstr "" -"The Memcached client implements hashing to balance objects among the " -"instances. Failure of an instance impacts only a percentage of the objects " -"and the client automatically removes it from the list of instances. The SLA " -"is several minutes." - -msgid "" -"The Memcached client implements hashing to balance objects among the " -"instances. Failure of an instance only impacts a percentage of the objects, " -"and the client automatically removes it from the list of instances." -msgstr "" -"The Memcached client implements hashing to balance objects among the " -"instances. Failure of an instance only impacts a percentage of the objects, " -"and the client automatically removes it from the list of instances." - -msgid "" -"The Networking (neutron) service L3 agent is scalable, due to the scheduler " -"that supports Virtual Router Redundancy Protocol (VRRP) to distribute " -"virtual routers across multiple nodes. For more information about the VRRP " -"and keepalived, see `Linux bridge: High availability using VRRP `_ and " -"`Open vSwitch: High availability using VRRP `_." -msgstr "" -"The Networking (Neutron) service L3 agent is scalable, due to the scheduler " -"that supports Virtual Router Redundancy Protocol (VRRP) to distribute " -"virtual routers across multiple nodes. For more information about the VRRP " -"and keepalived, see `Linux bridge: High availability using VRRP `_ and " -"`Open vSwitch: High availability using VRRP `_." - -msgid "" -"The OpenStack HA community used to hold `weekly IRC meetings `_ to discuss a range of topics " -"relating to HA in OpenStack. The `logs of all past meetings `_ are still available to read." -msgstr "" -"The OpenStack HA community used to hold `weekly IRC meetings `_ to discuss a range of topics " -"relating to HA in OpenStack. The `logs of all past meetings `_ are still available to read." - -msgid "" -"The OpenStack HA team is based on voluntary contributions from the OpenStack " -"community. You can contact the HA community directly in the #openstack-ha " -"channel on Freenode IRC, or by sending mail to the openstack-dev mailing " -"list with the [HA] prefix in the subject header." -msgstr "" -"The OpenStack HA team is based on voluntary contributions from the OpenStack " -"community. You can contact the HA community directly in the #openstack-ha " -"channel on Freenode IRC, or by sending mail to the openstack-dev mailing " -"list with the [HA] prefix in the subject header." - -msgid "" -"The OpenStack Image service offers a service for discovering, registering, " -"and retrieving virtual machine images. To make the OpenStack Image API " -"service highly available in active/passive mode, you must:" -msgstr "" -"The OpenStack Image service offers a service for discovering, registering, " -"and retrieving virtual machine images. To make the OpenStack Image API " -"service highly available in active/passive mode, you must:" - -msgid "" -"The OpenStack Installation Guides also include a list of the services that " -"use passwords with important notes about using them." -msgstr "" -"The OpenStack Installation Guides also include a list of the services that " -"use passwords with important notes about using them." - -msgid "" -"The OpenStack Networking (neutron) service has a scheduler that lets you run " -"multiple agents across nodes. The DHCP agent can be natively highly " -"available." -msgstr "" -"The OpenStack Networking (Neutron) service has a scheduler that lets you run " -"multiple agents across nodes. The DHCP agent can be natively highly " -"available." - -msgid "The Pacemaker architecture" -msgstr "The Pacemaker architecture" - -msgid "" -"The Pacemaker service also requires an additional configuration file ``/etc/" -"corosync/uidgid.d/pacemaker`` to be created with the following content:" -msgstr "" -"The Pacemaker service also requires an additional configuration file ``/etc/" -"corosync/uidgid.d/pacemaker`` to be created with the following content:" - -msgid "" -"The SQL relational database server provides stateful type consumed by other " -"components. Supported databases are MySQL, MariaDB, and PostgreSQL. Making " -"the SQL database redundant is complex." -msgstr "" -"The SQL relational database server provides stateful type consumed by other " -"components. Supported databases are MySQL, MariaDB and PostgreSQL. Making " -"the SQL database redundant is complex." - -msgid "" -"The Telemetry API service configuration does not have the ``option httpchk`` " -"directive as it cannot process this check properly." -msgstr "" -"The Telemetry API service configuration does not have the ``option httpchk`` " -"directive as it cannot process this check properly." - -msgid "" -"The Telemetry polling agent can be configured to partition its polling " -"workload between multiple agents. This enables high availability (HA)." -msgstr "" -"The Telemetry polling agent can be configured to partition its polling " -"workload between multiple agents. This enables high availability (HA)." - -msgid "" -"The `Installation Guides `_ " -"provide instructions for installing multiple compute nodes. To make the " -"compute nodes highly available, you must configure the environment to " -"include multiple instances of the API and other services." -msgstr "" -"The `Installation Guides `_ " -"provide instructions for installing multiple compute nodes. To make the " -"compute nodes highly available, you must configure the environment to " -"include multiple instances of the API and other services." - -msgid "" -"The `Telemetry service `_ provides a data collection service and an alarming " -"service." -msgstr "" -"The `Telemetry service `_ provides a data collection service and an alarming " -"service." - -msgid "" -"The `Tooz `_ library provides the " -"coordination within the groups of service instances. It provides an API " -"above several back ends that can be used for building distributed " -"applications." -msgstr "" -"The `Tooz `_ library provides the " -"coordination within the groups of service instances. It provides an API " -"above several back ends that can be used for building distributed " -"applications." - -msgid "" -"The ``-p`` option is used to give the password on command line and makes it " -"easier to script." -msgstr "" -"The ``-p`` option is used to give the password on command line and makes it " -"easier to script." - -msgid "" -"The ``admin_bind_host`` parameter lets you use a private network for admin " -"access." -msgstr "" -"The ``admin_bind_host`` parameter lets you use a private network for admin " -"access." - -msgid "" -"The ``bindnetaddr`` is the network address of the interfaces to bind to. The " -"example uses two network addresses of /24 IPv4 subnets." -msgstr "" -"The ``bindnetaddr`` is the network address of the interfaces to bind to. The " -"example uses two network addresses of /24 IPv4 subnets." - -msgid "" -"The ``token`` value specifies the time, in milliseconds, during which the " -"Corosync token is expected to be transmitted around the ring. When this " -"timeout expires, the token is declared lost, and after " -"``token_retransmits_before_loss_const lost`` tokens, the non-responding " -"processor (cluster node) is declared dead. ``token × " -"token_retransmits_before_loss_const`` is the maximum time a node is allowed " -"to not respond to cluster messages before being considered dead. The default " -"for token is 1000 milliseconds (1 second), with 4 allowed retransmits. These " -"defaults are intended to minimize failover times, but can cause frequent " -"false alarms and unintended failovers in case of short network " -"interruptions. The values used here are safer, albeit with slightly extended " -"failover times." -msgstr "" -"The ``token`` value specifies the time, in milliseconds, during which the " -"Corosync token is expected to be transmitted around the ring. When this " -"timeout expires, the token is declared lost, and after " -"``token_retransmits_before_loss_const lost`` tokens, the non-responding " -"processor (cluster node) is declared dead. ``token × " -"token_retransmits_before_loss_const`` is the maximum time a node is allowed " -"to not respond to cluster messages before being considered dead. The default " -"for token is 1000 milliseconds (1 second), with 4 allowed retransmits. These " -"defaults are intended to minimise failover times, but can cause frequent " -"false alarms and unintended failovers in case of short network " -"interruptions. The values used here are safer, albeit with slightly extended " -"failover times." - -msgid "" -"The ``transport`` directive controls the transport mechanism. To avoid the " -"use of multicast entirely, specify the ``udpu`` unicast transport parameter. " -"This requires specifying the list of members in the ``nodelist`` directive. " -"This potentially makes up the membership before deployment. The default is " -"``udp``. The transport type can also be set to ``udpu`` or ``iba``." -msgstr "" -"The ``transport`` directive controls the transport mechanism. To avoid the " -"use of multicast entirely, specify the ``udpu`` unicast transport parameter. " -"This requires specifying the list of members in the ``nodelist`` directive. " -"This potentially makes up the membership before deployment. The default is " -"``udp``. The transport type can also be set to ``udpu`` or ``iba``." - -msgid "" -"The application layer is controlled by the ``oslo.messaging`` configuration " -"options for multiple AMQP hosts. If the AMQP node fails, the application " -"reconnects to the next one configured within the specified reconnect " -"interval. The specified reconnect interval constitutes its SLA." -msgstr "" -"The application layer is controlled by the ``oslo.messaging`` configuration " -"options for multiple AMQP hosts. If the AMQP node fails, the application " -"reconnects to the next one configured within the specified reconnect " -"interval. The specified reconnect interval constitutes its SLA." - -msgid "" -"The architectural challenges of instance HA and several currently existing " -"solutions were presented in `a talk at the Austin summit `_, for which `slides are also available `_." -msgstr "" -"The architectural challenges of instance HA and several currently existing " -"solutions were presented in `a talk at the Austin summit `_, for which `slides are also available `_." - -msgid "" -"The architectures differ in the sets of services managed by the cluster." -msgstr "" -"The architectures differ in the sets of services managed by the cluster." - -msgid "" -"The availability check of the instances is provided by heartbeat messages. " -"When the connection with an instance is lost, the workload will be " -"reassigned within the remaining instances in the next polling cycle." -msgstr "" -"The availability check of the instances is provided by heartbeat messages. " -"When the connection with an instance is lost, the workload will be " -"reassigned within the remaining instances in the next polling cycle." - -msgid "" -"The benefits of this approach are the physical isolation between components " -"and the ability to add capacity to specific components." -msgstr "" -"The benefits of this approach are the physical isolation between components " -"and the ability to add capacity to specific components." - -msgid "" -"The cloud controller runs on the management network and must talk to all " -"other services." -msgstr "" -"The cloud controller runs on the management network and must talk to all " -"other services." - -msgid "" -"The cluster is fully operational with ``expected_votes`` set to 7 nodes " -"(each node has 1 vote), quorum: 4. If a list of nodes is specified as " -"``nodelist``, the ``expected_votes`` value is ignored." -msgstr "" -"The cluster is fully operational with ``expected_votes`` set to 7 nodes " -"(each node has 1 vote), quorum: 4. If a list of nodes is specified as " -"``nodelist``, the ``expected_votes`` value is ignored." - -msgid "" -"The code for three of these solutions can be found online at the following " -"links:" -msgstr "" -"The code for three of these solutions can be found online at the following " -"links:" - -msgid "" -"The command :command:`crm configure` supports batch input, copy and paste " -"the lines above into your live Pacemaker configuration and then make changes " -"as required. For example, you may enter ``edit p_ip_cinder-api`` from the :" -"command:`crm configure` menu and edit the resource to match your preferred " -"virtual IP address." -msgstr "" -"The command :command:`crm configure` supports batch input, copy and paste " -"the lines above into your live Pacemaker configuration and then make changes " -"as required. For example, you may enter ``edit p_ip_cinder-api`` from the :" -"command:`crm configure` menu and edit the resource to match your preferred " -"virtual IP address." - -msgid "" -"The commands for installing RabbitMQ are specific to the Linux distribution " -"you are using." -msgstr "" -"The commands for installing RabbitMQ are specific to the Linux distribution " -"you are using." - -msgid "" -"The correct path to ``libgalera_smm.so`` given to the ``wsrep_provider`` " -"parameter" -msgstr "" -"The correct path to ``libgalera_smm.so`` given to the ``wsrep_provider`` " -"parameter" - -msgid "" -"The default node type is a disc node. In this guide, nodes join the cluster " -"as disc nodes. Also, nodes can join the cluster as RAM nodes. For more " -"details about this feature, check `Clusters with RAM nodes `_." -msgstr "" -"The default node type is a disc node. In this guide, nodes join the cluster " -"as disc nodes. Also, nodes can join the cluster as RAM nodes. For more " -"details about this feature, check `Clusters with RAM nodes `_." - -msgid "" -"The first step in setting up your highly available OpenStack cluster is to " -"install the operating system on each node. Follow the instructions in the " -"*Environment* section of the `Installation Guides `_ depending on your distribution." -msgstr "" -"The first step in setting up your highly available OpenStack cluster is to " -"install the operating system on each node. Follow the instructions in the " -"*Environment* section of the `Installation Guides `_ depending on your distribution." - -msgid "" -"The first step is to install the database that sits at the heart of the " -"cluster. To implement high availability, run an instance of the database on " -"each controller node and use Galera Cluster to provide replication between " -"them. Galera Cluster is a synchronous multi-master database cluster, based " -"on MySQL and the InnoDB storage engine. It is a high-availability service " -"that provides high system uptime, no data loss, and scalability for growth." -msgstr "" -"The first step is to install the database that sits at the heart of the " -"cluster. To implement high availability, run an instance of the database on " -"each controller node and use Galera Cluster to provide replication between " -"them. Galera Cluster is a synchronous multi-master database cluster, based " -"on MySQL and the InnoDB storage engine. It is a high-availability service " -"that provides high system uptime, no data loss, and scalability for growth." - -msgid "The following are the definitions of stateless and stateful services:" -msgstr "The following are the definitions of stateless and stateful services:" - -msgid "The following are the standard hardware requirements:" -msgstr "The following are the standard hardware requirements:" - -msgid "" -"The following components are currently unable to benefit from the use of a " -"proxy server:" -msgstr "" -"The following components are currently unable to benefit from the use of a " -"proxy server:" - -msgid "The following components/services can work with HA queues:" -msgstr "The following components/services can work with HA queues:" - -msgid "" -"The following section(s) detail how to add the OpenStack Identity resource " -"to Pacemaker on SUSE and Red Hat." -msgstr "" -"The following section(s) detail how to add the OpenStack Identity resource " -"to Pacemaker on SUSE and Red Hat." - -msgid "" -"The majority of services, needing no real orchestration, are handled by " -"systemd on each node. This approach avoids the need to coordinate service " -"upgrades or location changes with the cluster and has the added advantage of " -"more easily scaling beyond Corosync's 16 node limit. However, it will " -"generally require the addition of an enterprise monitoring solution such as " -"Nagios or Sensu for those wanting centralized failure reporting." -msgstr "" -"The majority of services, needing no real orchestration, are handled by " -"systemd on each node. This approach avoids the need to coordinate service " -"upgrades or location changes with the cluster and has the added advantage of " -"more easily scaling beyond Corosync's 16 node limit. However, it will " -"generally require the addition of an enterprise monitoring solution such as " -"Nagios or Sensu for those wanting centralized failure reporting." - -msgid "" -"The most popular AMQP implementation used in OpenStack installations is " -"RabbitMQ." -msgstr "" -"The most popular AMQP implementation used in OpenStack installations is " -"RabbitMQ." - -msgid "" -"The proxy can be configured as a secondary mechanism for detecting service " -"failures. It can even be configured to look for nodes in a degraded state " -"(such as being too far behind in the replication) and take them out of " -"circulation." -msgstr "" -"The proxy can be configured as a secondary mechanism for detecting service " -"failures. It can even be configured to look for nodes in a degraded state " -"(such as being too far behind in the replication) and take them out of " -"circulation." - -msgid "" -"The quorum specifies the minimal number of nodes that must be functional in " -"a cluster of redundant nodes in order for the cluster to remain functional. " -"When one node fails and failover transfers control to other nodes, the " -"system must ensure that data and processes remain sane. To determine this, " -"the contents of the remaining nodes are compared and, if there are " -"discrepancies, a majority rules algorithm is implemented." -msgstr "" -"The quorum specifies the minimal number of nodes that must be functional in " -"a cluster of redundant nodes in order for the cluster to remain functional. " -"When one node fails and failover transfers control to other nodes, the " -"system must ensure that data and processes remain sane. To determine this, " -"the contents of the remaining nodes are compared and, if there are " -"discrepancies, a majority rules algorithm is implemented." - -msgid "" -"The service declaration for the Pacemaker service may be placed in the :file:" -"`corosync.conf` file directly or in its own separate file, :file:`/etc/" -"corosync/service.d/pacemaker`." -msgstr "" -"The service declaration for the Pacemaker service may be placed in the :file:" -"`corosync.conf` file directly or in its own separate file, :file:`/etc/" -"corosync/service.d/pacemaker`." - -msgid "The steps to implement the Pacemaker cluster stack are:" -msgstr "The steps to implement the Pacemaker cluster stack are:" - -msgid "" -"The votequorum library has been created to replace and eliminate ``qdisk``, " -"the disk-based quorum daemon for CMAN, from advanced cluster configurations." -msgstr "" -"The votequorum library has been created to replace and eliminate ``qdisk``, " -"the disk-based quorum daemon for CMAN, from advanced cluster configurations." - -msgid "" -"The votequorum library is part of the Corosync project. It provides an " -"interface to the vote-based quorum service and it must be explicitly enabled " -"in the Corosync configuration file. The main role of votequorum library is " -"to avoid split-brain situations, but it also provides a mechanism to:" -msgstr "" -"The votequorum library is part of the Corosync project. It provides an " -"interface to the vote-based quorum service and it must be explicitly enabled " -"in the Corosync configuration file. The main role of votequorum library is " -"to avoid split-brain situations, but it also provides a mechanism to:" - -msgid "" -"These agents must conform to one of the `OCF `_, `SysV Init " -"`_, Upstart, or Systemd standards." -msgstr "" -"These agents must conform to one of the `OCF `_, `SysV Init " -"`_, Upstart, or Systemd standards." - -msgid "This can be achieved using the :command:`iptables` command:" -msgstr "This can be achieved using the :command:`iptables` command:" - -msgid "" -"This chapter describes the basic environment for high availability, such as " -"hardware, operating system, common services." -msgstr "" -"This chapter describes the basic environment for High Availability, such as " -"hardware, operating system, common services." - -msgid "" -"This chapter describes the shared services for high availability, such as " -"database, messaging service." -msgstr "" -"This chapter describes the shared services for High Availability, such as " -"database, messaging service." - -msgid "" -"This configuration creates ``p_cinder-api``, a resource for managing the " -"Block Storage API service." -msgstr "" -"This configuration creates ``p_cinder-api``, a resource for managing the " -"Block Storage API service." - -msgid "" -"This configuration creates ``p_glance-api``, a resource for managing the " -"OpenStack Image API service." -msgstr "" -"This configuration creates ``p_glance-api``, a resource for managing the " -"OpenStack Image API service." - -msgid "" -"This configuration creates ``p_keystone``, a resource for managing the " -"OpenStack Identity service." -msgstr "" -"This configuration creates ``p_keystone``, a resource for managing the " -"OpenStack Identity service." - -msgid "" -"This configuration creates ``p_manila-api``, a resource for managing the " -"Shared File Systems API service." -msgstr "" -"This configuration creates ``p_manila-api``, a resource for managing the " -"Shared File Systems API service." - -msgid "" -"This configuration creates ``vip``, a virtual IP address for use by the API " -"node (``10.0.0.11``)." -msgstr "" -"This configuration creates ``vip``, a virtual IP address for use by the API " -"node (``10.0.0.11``)." - -msgid "" -"This document discusses some common methods of implementing highly available " -"systems, with an emphasis on the core OpenStack services and other open " -"source services that are closely aligned with OpenStack." -msgstr "" -"This document discusses some common methods of implementing highly available " -"systems, with an emphasis on the core OpenStack services and other open " -"source services that are closely aligned with OpenStack." - -msgid "" -"This example assumes that you are using NFS for the physical storage, which " -"will almost never be true in a production installation." -msgstr "" -"This example assumes that you are using NFS for the physical storage, which " -"will almost never be true in a production installation." - -msgid "" -"This guide describes how to install and configure OpenStack for high " -"availability. It supplements the Installation Guides and assumes that you " -"are familiar with the material in those guides." -msgstr "" -"This guide describes how to install and configure OpenStack for High " -"Availability. It supplements the Installation Guides and assumes that you " -"are familiar with the material in those guides." - -msgid "This guide is intended as advice only." -msgstr "This guide is intended as advice only." - -msgid "This guide uses the following example IP addresses:" -msgstr "This guide uses the following example IP addresses:" - -msgid "" -"This guide was last updated as of the Ocata release, documenting the " -"OpenStack Ocata, Newton, and Mitaka releases. It may not apply to EOL " -"releases Kilo and Liberty." -msgstr "" -"This guide was last updated as of the Ocata release, documenting the " -"OpenStack Ocata, Newton, and Mitaka releases. It may not apply to EOL " -"releases Kilo and Liberty." - -msgid "This is the most common option and the one we document here." -msgstr "This is the most common option and the one we document here." - -msgid "" -"This is why setting the quorum to a value less than ``floor(n/2) + 1`` is " -"dangerous. However it may be required for some specific cases, such as a " -"temporary measure at a point it is known with 100% certainty that the other " -"nodes are down." -msgstr "" -"This is why setting the quorum to a value less than ``floor(n/2) + 1`` is " -"dangerous. However it may be required for some specific cases, such as a " -"temporary measure at a point it is known with 100% certainty that the other " -"nodes are down." - -msgid "" -"This scenario can be visualized as below, where each box below represents a " -"cluster of three or more guests." -msgstr "" -"This scenario can be visualised as below, where each box below represents a " -"cluster of three or more guests." - -msgid "This scenario can be visualized as below." -msgstr "This scenario can be visualised as below." - -msgid "" -"This scenario has the advantage of requiring far fewer, if more powerful, " -"machines. Additionally, being part of a single cluster allows you to " -"accurately model the ordering dependencies between components." -msgstr "" -"This scenario has the advantage of requiring far fewer, if more powerful, " -"machines. Additionally, being part of a single cluster allows you to " -"accurately model the ordering dependencies between components." - -msgid "" -"This section discusses ways to protect against data loss in your OpenStack " -"environment." -msgstr "" -"This section discusses ways to protect against data loss in your OpenStack " -"environment." - -msgid "" -"This value increments with each transaction, so the most advanced node has " -"the highest sequence number and therefore is the most up to date." -msgstr "" -"This value increments with each transaction, so the most advanced node has " -"the highest sequence number and therefore is the most up to date." - -msgid "" -"To be sure that all data is highly available, ensure that everything is " -"stored in the MySQL database (which is also highly available):" -msgstr "" -"To be sure that all data is highly available, ensure that everything is " -"stored in the MySQL database (which is also highly available):" - -msgid "" -"To configure AppArmor to work with Galera Cluster, complete the following " -"steps on each cluster node:" -msgstr "" -"To configure AppArmor to work with Galera Cluster, complete the following " -"steps on each cluster node:" - -msgid "" -"To configure SELinux to permit Galera Cluster to operate, you may need to " -"use the ``semanage`` utility to open the ports it uses. For example:" -msgstr "" -"To configure SELinux to permit Galera Cluster to operate, you may need to " -"use the ``semanage`` utility to open the ports it uses. For example:" - -msgid "" -"To configure the number of DHCP agents per network, modify the " -"``dhcp_agents_per_network`` parameter in the :file:`/etc/neutron/neutron." -"conf` file. By default this is set to 1. To achieve high availability, " -"assign more than one DHCP agent per network. For more information, see `High-" -"availability for DHCP `_." -msgstr "" -"To configure the number of DHCP agents per network, modify the " -"``dhcp_agents_per_network`` parameter in the :file:`/etc/neutron/neutron." -"conf` file. By default this is set to 1. To achieve high availability, " -"assign more than one DHCP agent per network. For more information, see `High-" -"availability for DHCP `_." - -msgid "" -"To enable high availability for configured routers, edit the :file:`/etc/" -"neutron/neutron.conf` file to set the following values:" -msgstr "" -"To enable High Availability for configured routers, edit the :file:`/etc/" -"neutron/neutron.conf` file to set the following values:" - -msgid "" -"To enable the compute agent to run multiple instances simultaneously with " -"workload partitioning, the ``workload_partitioning`` option must be set to " -"``True`` under the `compute section `_ in the :file:`ceilometer.conf` configuration " -"file." -msgstr "" -"To enable the compute agent to run multiple instances simultaneously with " -"workload partitioning, the ``workload_partitioning`` option must be set to " -"``True`` under the `compute section `_ in the :file:`ceilometer.conf` configuration " -"file." - -msgid "" -"To ensure that all queues except those with auto-generated names are " -"mirrored across all running nodes, set the ``ha-mode`` policy key to all by " -"running the following command on one of the nodes:" -msgstr "" -"To ensure that all queues except those with auto-generated names are " -"mirrored across all running nodes, set the ``ha-mode`` policy key to all by " -"running the following command on one of the nodes:" - -msgid "" -"To find the most advanced cluster node, you need to check the sequence " -"numbers, or the ``seqnos``, on the last committed transaction for each. You " -"can find this by viewing ``grastate.dat`` file in database directory:" -msgstr "" -"To find the most advanced cluster node, you need to check the sequence " -"numbers, or the ``seqnos``, on the last committed transaction for each. You " -"can find this by viewing ``grastate.dat`` file in database directory:" - -msgid "" -"To install and configure Memcached, read the `official documentation " -"`_." -msgstr "" -"To install and configure Memcached, read the `official documentation " -"`_." - -msgid "To start the cluster, complete the following steps:" -msgstr "To start the cluster, complete the following steps:" - -msgid "" -"Tooz supports `various drivers `_ including the following back end solutions:" -msgstr "" -"Tooz supports `various drivers `_ including the following back end solutions:" - -msgid "" -"Traditionally, Pacemaker has been positioned as an all-encompassing " -"solution. However, as OpenStack services have matured, they are increasingly " -"able to run in an active/active configuration and gracefully tolerate the " -"disappearance of the APIs on which they depend." -msgstr "" -"Traditionally, Pacemaker has been positioned as an all-encompassing " -"solution. However, as OpenStack services have matured, they are increasingly " -"able to run in an active/active configuration and gracefully tolerate the " -"disappearance of the APIs on which they depend." - -msgid "True" -msgstr "True" - -msgid "" -"Typically, an active/active installation for a stateless service maintains a " -"redundant instance, and requests are load balanced using a virtual IP " -"address and a load balancer such as HAProxy." -msgstr "" -"Typically, an active/active installation for a stateless service maintains a " -"redundant instance, and requests are load balanced using a virtual IP " -"address and a load balancer such as HAProxy." - -msgid "Use HA queues in RabbitMQ (``x-ha-policy: all``):" -msgstr "Use HA queues in RabbitMQ (``x-ha-policy: all``):" - -msgid "" -"Use MySQL/Galera in active/passive mode to avoid deadlocks on ``SELECT ... " -"FOR UPDATE`` type queries (used, for example, by nova and neutron). This " -"issue is discussed in the following:" -msgstr "" -"Use MySQL/Galera in active/passive mode to avoid deadlocks on ``SELECT ... " -"FOR UPDATE`` type queries (used, for example, by Nova and Neutron). This " -"issue is discussed in the following:" - -msgid "Use durable queues in RabbitMQ:" -msgstr "Use durable queues in RabbitMQ:" - -msgid "" -"Use that password to authenticate to the nodes that will make up the cluster:" -msgstr "" -"Use that password to authenticate to the nodes that will make up the cluster:" - -msgid "" -"Use the :command:`corosync-cfgtool` utility with the ``-s`` option to get a " -"summary of the health of the communication rings:" -msgstr "" -"Use the :command:`corosync-cfgtool` utility with the ``-s`` option to get a " -"summary of the health of the communication rings:" - -msgid "" -"Use the :command:`corosync-objctl` utility to dump the Corosync cluster " -"member list:" -msgstr "" -"Use the :command:`corosync-objctl` utility to dump the Corosync cluster " -"member list:" - -msgid "Use these steps to configurate all services using RabbitMQ:" -msgstr "Use these steps to configure all services using RabbitMQ:" - -msgid "Value" -msgstr "Value" - -msgid "Verify that the nodes are running:" -msgstr "Verify that the nodes are running:" - -msgid "Verify the cluster status:" -msgstr "Verify the cluster status:" - -msgid "Virtualized hardware" -msgstr "Virtualised hardware" - -msgid "" -"We advise that you read this at your own discretion when planning on your " -"OpenStack cloud." -msgstr "" -"We advise that you read this at your own discretion when planning on your " -"OpenStack cloud." - -msgid "" -"We do not recommend setting the quorum to a value less than ``floor(n/2) + " -"1`` as it would likely cause a split-brain in a face of network partitions." -msgstr "" -"We do not recommend setting the quorum to a value less than ``floor(n/2) + " -"1`` as it would likely cause a split-brain in a face of network partitions." - -msgid "" -"We recommend HAProxy as the load balancer, however, there are many " -"alternative load balancing solutions in the marketplace." -msgstr "" -"We recommend HAProxy as the load balancer, however, there are many " -"alternative load balancing solutions in the marketplace." - -msgid "" -"We recommend two primary architectures for making OpenStack highly available." -msgstr "" -"We recommend two primary architectures for making OpenStack highly available." - -msgid "" -"We recommended that the maximum latency between any two controller nodes is " -"2 milliseconds. Although the cluster software can be tuned to operate at " -"higher latencies, some vendors insist on this value before agreeing to " -"support the installation." -msgstr "" -"We recommended that the maximum latency between any two controller nodes is " -"2 milliseconds. Although the cluster software can be tuned to operate at " -"higher latencies, some vendors insist on this value before agreeing to " -"support the installation." - -msgid "What is a cluster manager?" -msgstr "What is a cluster manager?" - -msgid "" -"When Ceph RBD is used for ephemeral volumes as well as block and image " -"storage, it supports `live migration `_ of VMs with ephemeral drives. LVM only " -"supports live migration of volume-backed VMs." -msgstr "" -"When Ceph RBD is used for ephemeral volumes as well as block and image " -"storage, it supports `live migration `_ of VMs with ephemeral drives. LVM only " -"supports live migration of volume-backed VMs." - -msgid "" -"When configuring an OpenStack environment for study or demonstration " -"purposes, it is possible to turn off the quorum checking. Production systems " -"should always run with quorum enabled." -msgstr "" -"When configuring an OpenStack environment for study or demonstration " -"purposes, it is possible to turn off the quorum checking. Production systems " -"should always run with quorum enabled." - -msgid "" -"When each cluster node starts, it checks the IP addresses given to the " -"``wsrep_cluster_address`` parameter. It then attempts to establish network " -"connectivity with a database server running there. Once it establishes a " -"connection, it attempts to join the Primary Component, requesting a state " -"transfer as needed to bring itself into sync with the cluster." -msgstr "" -"When each cluster node starts, it checks the IP addresses given to the " -"``wsrep_cluster_address`` parameter. It then attempts to establish network " -"connectivity with a database server running there. Once it establishes a " -"connection, it attempts to join the Primary Component, requesting a state " -"transfer as needed to bring itself into sync with the cluster." - -msgid "" -"When four nodes fail simultaneously, the cluster would continue to function " -"as well. But if split to partitions of three and four nodes respectively, " -"the quorum of three would have made both sides to attempt to fence the other " -"and host resources. Without fencing enabled, it would go straight to running " -"two copies of each resource." -msgstr "" -"When four nodes fail simultaneously, the cluster would continue to function " -"as well. But if split to partitions of three and four nodes respectively, " -"the quorum of three would have made both sides to attempt to fence the other " -"and host resources. Without fencing enabled, it would go straight to running " -"two copies of each resource." - -msgid "" -"When installing highly available OpenStack on VMs, be sure that your " -"hypervisor permits promiscuous mode and disables MAC address filtering on " -"the external network." -msgstr "" -"When installing highly available OpenStack on VMs, be sure that your " -"hypervisor permits promiscuous mode and disables MAC address filtering on " -"the external network." - -msgid "" -"When you finish installing and configuring the OpenStack database, you can " -"initialize the Galera Cluster." -msgstr "" -"When you finish installing and configuring the OpenStack database, you can " -"initialise the Galera Cluster." - -msgid "" -"When you have all cluster nodes started, log into the database client of any " -"cluster node and check the ``wsrep_cluster_size`` status variable again:" -msgstr "" -"When you have all cluster nodes started, log into the database client of any " -"cluster node and check the ``wsrep_cluster_size`` status variable again:" - -msgid "" -"When you start up a cluster (all nodes down) and set ``wait_for_all`` to 1, " -"the cluster quorum is held until all nodes are online and have joined the " -"cluster for the first time. This parameter is new in Corosync 2.0." -msgstr "" -"When you start up a cluster (all nodes down) and set ``wait_for_all`` to 1, " -"the cluster quorum is held until all nodes are online and have joined the " -"cluster for the first time. This parameter is new in Corosync 2.0." - -msgid "" -"When you use high availability, consider the hardware requirements needed " -"for your application." -msgstr "" -"When you use high availability, consider the hardware requirements needed " -"for your application." - -msgid "" -"While SYS-V init replacements like systemd can provide deterministic " -"recovery of a complex stack of services, the recovery is limited to one " -"machine and lacks the context of what is happening on other machines. This " -"context is crucial to determine the difference between a local failure, and " -"clean startup and recovery after a total site failure." -msgstr "" -"While SYS-V init replacements like systemd can provide deterministic " -"recovery of a complex stack of services, the recovery is limited to one " -"machine and lacks the context of what is happening on other machines. This " -"context is crucial to determine the difference between a local failure, and " -"clean start-up and recovery after a total site failure." - -msgid "" -"While all of the configuration parameters available to the standard MySQL, " -"MariaDB, or Percona XtraDB database servers are available in Galera Cluster, " -"there are some that you must define an outset to avoid conflict or " -"unexpected behavior." -msgstr "" -"While all of the configuration parameters available to the standard MySQL, " -"MariaDB, or Percona XtraDB database servers are available in Galera Cluster, " -"there are some that you must define an outset to avoid conflict or " -"unexpected behaviour." - -msgid "" -"While the application can still run after the failure of several instances, " -"it may not have sufficient capacity to serve the required volume of " -"requests. A cluster can automatically recover failed instances to prevent " -"additional load induced failures." -msgstr "" -"While the application can still run after the failure of several instances, " -"it may not have sufficient capacity to serve the required volume of " -"requests. A cluster can automatically recover failed instances to prevent " -"additional load induced failures." - -msgid "" -"With ``secauth`` enabled, Corosync nodes mutually authenticates using a 128-" -"byte shared secret stored in the :file:`/etc/corosync/authkey` file. This " -"can be generated with the :command:`corosync-keygen` utility. Cluster " -"communications are encrypted when using ``secauth``." -msgstr "" -"With ``secauth`` enabled, Corosync nodes mutually authenticates using a 128-" -"byte shared secret stored in the :file:`/etc/corosync/authkey` file. This " -"can be generated with the :command:`corosync-keygen` utility. Cluster " -"communications are encrypted when using ``secauth``." - -msgid "" -"With this in mind, some vendors are restricting Pacemaker's use to services " -"that must operate in an active/passive mode (such as ``cinder-volume``), " -"those with multiple states (for example, Galera), and those with complex " -"bootstrapping procedures (such as RabbitMQ)." -msgstr "" -"With this in mind, some vendors are restricting Pacemaker's use to services " -"that must operate in an active/passive mode (such as ``cinder-volume``), " -"those with multiple states (for example, Galera), and those with complex " -"bootstrapping procedures (such as RabbitMQ)." - -msgid "" -"Within the ``nodelist`` directive, it is possible to specify specific " -"information about the nodes in the cluster. The directive can contain only " -"the node sub-directive, which specifies every node that should be a member " -"of the membership, and where non-default options are needed. Every node must " -"have at least the ``ring0_addr`` field filled." -msgstr "" -"Within the ``nodelist`` directive, it is possible to specify specific " -"information about the nodes in the cluster. The directive can contain only " -"the node sub-directive, which specifies every node that should be a member " -"of the membership, and where non-default options are needed. Every node must " -"have at least the ``ring0_addr`` field filled." - -msgid "" -"Work is in progress on a unified approach, which combines the best aspects " -"of existing upstream solutions. More details are available on `the HA VMs " -"user story wiki `_." -msgstr "" -"Work is in progress on a unified approach, which combines the best aspects " -"of existing upstream solutions. More details are available on `the HA VMs " -"user story wiki `_." - -msgid "" -"You can achieve high availability for the OpenStack database in many " -"different ways, depending on the type of database that you want to use. " -"There are three implementations of Galera Cluster available to you:" -msgstr "" -"You can achieve high availability for the OpenStack database in many " -"different ways, depending on the type of database that you want to use. " -"There are three implementations of Galera Cluster available to you:" - -msgid "" -"You can also ensure the availability by other means, using Keepalived or " -"Pacemaker." -msgstr "" -"You can also ensure the availability by other means, using Keepalived or " -"Pacemaker." - -msgid "" -"You can have up to 16 cluster members (this is currently limited by the " -"ability of corosync to scale higher). In extreme cases, 32 and even up to 64 " -"nodes could be possible. However, this is not well tested." -msgstr "" -"You can have up to 16 cluster members (this is currently limited by the " -"ability of Corosync to scale higher). In extreme cases, 32 and even up to 64 " -"nodes could be possible. However, this is not well tested." - -msgid "" -"You can now add the Pacemaker configuration for Block Storage API resource. " -"Connect to the Pacemaker cluster with the :command:`crm configure` command " -"and add the following cluster resources:" -msgstr "" -"You can now add the Pacemaker configuration for Block Storage API resource. " -"Connect to the Pacemaker cluster with the :command:`crm configure` command " -"and add the following cluster resources:" - -msgid "" -"You can now check the ``corosync`` connectivity with one of these tools." -msgstr "" -"You can now check the ``corosync`` connectivity with one of these tools." - -msgid "" -"You can read more about these concerns on the `Red Hat Bugzilla `_ and there is a `psuedo " -"roadmap `_ " -"for addressing them upstream." -msgstr "" -"You can read more about these concerns on the `Red Hat Bugzilla `_ and there is a `psuedo " -"roadmap `_ " -"for addressing them upstream." - -msgid "" -"You can take periodic snap shots throughout the installation process and " -"roll back to a working configuration in the event of a problem." -msgstr "" -"You can take periodic snap shots throughout the installation process and " -"roll back to a working configuration in the event of a problem." - -msgid "You can use the `ping` command to find the latency between two servers." -msgstr "" -"You can use the `ping` command to find the latency between two servers." - -msgid "" -"You must also create the OpenStack Image API endpoint with this IP address. " -"If you are using both private and public IP addresses, create two virtual IP " -"addresses and define your endpoint. For example:" -msgstr "" -"You must also create the OpenStack Image API endpoint with this IP address. " -"If you are using both private and public IP addresses, create two virtual IP " -"addresses and define your endpoint. For example:" - -msgid "" -"You must configure NTP to properly synchronize services among nodes. We " -"recommend that you configure the controller node to reference more accurate " -"(lower stratum) servers and other nodes to reference the controller node. " -"For more information, see the `Installation Guides `_." -msgstr "" -"You must configure NTP to properly synchronise services among nodes. We " -"recommend that you configure the controller node to reference more accurate " -"(lower stratum) servers and other nodes to reference the controller node. " -"For more information, see the `Installation Guides `_." - -msgid "" -"You must configure a supported Tooz driver for the HA deployment of the " -"Telemetry services." -msgstr "" -"You must configure a supported Tooz driver for the HA deployment of the " -"Telemetry services." - -msgid "You must create the Shared File Systems API endpoint with this IP." -msgstr "You must create the Shared File Systems API endpoint with this IP." - -msgid "" -"You must select and assign a virtual IP address (VIP) that can freely float " -"between cluster nodes." -msgstr "" -"You must select and assign a virtual IP address (VIP) that can freely float " -"between cluster nodes." - -msgid "" -"You must use the same name on every cluster node. The connection fails when " -"this value does not match." -msgstr "" -"You must use the same name on every cluster node. The connection fails when " -"this value does not match." - -msgid "" -"You only need to do this on one cluster node. Galera Cluster replicates the " -"user to all the others." -msgstr "" -"You only need to do this on one cluster node. Galera Cluster replicates the " -"user to all the others." - -msgid "" -"You should see a ``status=joined`` entry for each of your constituent " -"cluster nodes." -msgstr "" -"You should see a ``status=joined`` entry for each of your constituent " -"cluster nodes." - -msgid "" -"You will need to address high availability concerns for any applications " -"software that you run on your OpenStack environment. The important thing is " -"to make sure that your services are redundant and available. How you achieve " -"that is up to you." -msgstr "" -"You will need to address High Availability concerns for any applications " -"software that you run on your OpenStack environment. The important thing is " -"to make sure that your services are redundant and available. How you achieve " -"that is up to you." - -msgid "" -"You would choose this option if you prefer to have fewer but more powerful " -"boxes." -msgstr "" -"You would choose this option if you prefer to have fewer but more powerful " -"boxes." - -msgid "" -"You would choose this option if you prefer to have more but less powerful " -"boxes." -msgstr "" -"You would choose this option if you prefer to have more but less powerful " -"boxes." - -msgid "" -"Your OpenStack services must now point their Block Storage API configuration " -"to the highly available, virtual cluster IP address rather than a Block " -"Storage API server’s physical IP address as you would for a non-HA " -"environment." -msgstr "" -"Your OpenStack services must now point their Block Storage API configuration " -"to the highly available, virtual cluster IP address rather than a Block " -"Storage API server’s physical IP address as you would for a non-HA " -"environment." - -msgid "" -"Your OpenStack services must now point their OpenStack Image API " -"configuration to the highly available, virtual cluster IP address instead of " -"pointing to the physical IP address of an OpenStack Image API server as you " -"would in a non-HA cluster." -msgstr "" -"Your OpenStack services must now point their OpenStack Image API " -"configuration to the highly available, virtual cluster IP address instead of " -"pointing to the physical IP address of an OpenStack Image API server as you " -"would in a non-HA cluster." - -msgid "" -"Your OpenStack services must now point their Shared File Systems API " -"configuration to the highly available, virtual cluster IP address rather " -"than a Shared File Systems API server’s physical IP address as you would for " -"a non-HA environment." -msgstr "" -"Your OpenStack services must now point their Shared File Systems API " -"configuration to the highly available, virtual cluster IP address rather " -"than a Shared File Systems API server’s physical IP address as you would for " -"a non-HA environment." - -msgid "" -"Your OpenStack services now point their OpenStack Identity configuration to " -"the highly available virtual cluster IP address." -msgstr "" -"Your OpenStack services now point their OpenStack Identity configuration to " -"the highly available virtual cluster IP address." - -msgid "[TODO: need more discussion of these parameters]" -msgstr "[TODO: need more discussion of these parameters]" - -msgid "" -"`Ceph RBD `_ is an innately high availability storage " -"back end. It creates a storage cluster with multiple nodes that communicate " -"with each other to replicate and redistribute data dynamically. A Ceph RBD " -"storage cluster provides a single shared set of storage nodes that can " -"handle all classes of persistent and ephemeral data (glance, cinder, and " -"nova) that are required for OpenStack instances." -msgstr "" -"`Ceph RBD `_ is an innately High Availability storage " -"back end. It creates a storage cluster with multiple nodes that communicate " -"with each other to replicate and redistribute data dynamically. A Ceph RBD " -"storage cluster provides a single shared set of storage nodes that can " -"handle all classes of persistent and ephemeral data (Glance, Cinder, and " -"Nova) that are required for OpenStack instances." - -msgid "`Clustering Guide `_" -msgstr "`Clustering Guide `_" - -msgid "`Debian and Ubuntu `_" -msgstr "`Debian and Ubuntu `_" - -msgid "" -"`Galera Cluster for MySQL `_: The MySQL reference " -"implementation from Codership, Oy." -msgstr "" -"`Galera Cluster for MySQL `_: The MySQL reference " -"implementation from Codership, Oy." - -msgid "`Highly Available Queues `_" -msgstr "`Highly Available Queues `_" - -msgid "" -"`IMPORTANT: MySQL Galera does *not* support SELECT ... FOR UPDATE `_" -msgstr "" -"`IMPORTANT: MySQL Galera does *not* support SELECT ... FOR UPDATE `_" - -msgid "" -"`MariaDB Galera Cluster `_: The MariaDB implementation " -"of Galera Cluster, which is commonly supported in environments based on Red " -"Hat distributions." -msgstr "" -"`MariaDB Galera Cluster `_: The MariaDB implementation " -"of Galera Cluster, which is commonly supported in environments based on Red " -"Hat distributions." - -msgid "`Memcached `_:" -msgstr "`Memcached `_:" - -msgid "" -"`OCF RAs `_, as used by Red Hat and SUSE" -msgstr "" -"`OCF RAs `_, as used by Red Hat and SUSE" - -msgid "" -"`Pacemaker `_ cluster stack is a state-of-the-art " -"high availability and load balancing stack for the Linux platform. Pacemaker " -"is used to make OpenStack infrastructure highly available." -msgstr "" -"`Pacemaker `_ cluster stack is a state-of-the-art " -"high availability and load balancing stack for the Linux platform. Pacemaker " -"is used to make OpenStack infrastructure highly available." - -msgid "" -"`Percona XtraDB Cluster `_: The XtraDB " -"implementation of Galera Cluster from Percona." -msgstr "" -"`Percona XtraDB Cluster `_: The XtraDB " -"implementation of Galera Cluster from Percona." - -msgid "" -"`RPM based `_ (RHEL, Fedora, " -"CentOS, openSUSE)" -msgstr "" -"`RPM based `_ (RHEL, Fedora, " -"CentOS, openSUSE)" - -msgid "`Redis `_:" -msgstr "`Redis `_:" - -msgid "" -"`Understanding reservations, concurrency, and locking in Nova `_" -msgstr "" -"`Understanding reservations, concurrency, and locking in Nova `_" - -msgid "`Zookeeper `_:" -msgstr "`Zookeeper `_:" - -msgid "``crmsh``" -msgstr "``crmsh``" - -msgid "" -"``last_man_standing_window`` specifies the time, in milliseconds, required " -"to recalculate quorum after one or more hosts have been lost from the " -"cluster. To perform a new quorum recalculation, the cluster must have quorum " -"for at least the interval specified for ``last_man_standing_window``. The " -"default is 10000ms." -msgstr "" -"``last_man_standing_window`` specifies the time, in milliseconds, required " -"to recalculate quorum after one or more hosts have been lost from the " -"cluster. To perform a new quorum recalculation, the cluster must have quorum " -"for at least the interval specified for ``last_man_standing_window``. The " -"default is 10000ms." - -msgid "" -"``nodeid`` is optional when using IPv4 and required when using IPv6. This is " -"a 32-bit value specifying the node identifier delivered to the cluster " -"membership service. If this is not specified with IPv4, the node ID is " -"determined from the 32-bit IP address of the system to which the system is " -"bound with ring identifier of 0. The node identifier value of zero is " -"reserved and should not be used." -msgstr "" -"``nodeid`` is optional when using IPv4 and required when using IPv6. This is " -"a 32-bit value specifying the node identifier delivered to the cluster " -"membership service. If this is not specified with IPv4, the node ID is " -"determined from the 32-bit IP address of the system to which the system is " -"bound with ring identifier of 0. The node identifier value of zero is " -"reserved and should not be used." - -msgid "``pcs``" -msgstr "``pcs``" - -msgid "" -"``ring{X}_addr`` specifies the IP address of one of the nodes. ``{X}`` is " -"the ring number." -msgstr "" -"``ring{X}_addr`` specifies the IP address of one of the nodes. ``{X}`` is " -"the ring number." - -msgid "" -"`a mistral-based auto-recovery workflow `_, by Intel" -msgstr "" -"`a mistral-based auto-recovery workflow `_, by Intel" - -msgid "`corosync`" -msgstr "`corosync`" - -msgid "`fence-agents` (CentOS or RHEL) or cluster-glue" -msgstr "`fence-agents` (CentOS or RHEL) or cluster-glue" - -msgid "`libqb0`" -msgstr "`libqb0`" - -msgid "`masakari `_, by NTT" -msgstr "`masakari `_, by NTT" - -msgid "`pacemaker`" -msgstr "`pacemaker`" - -msgid "`pcs` (CentOS or RHEL) or crmsh" -msgstr "`pcs` (CentOS or RHEL) or crmsh" - -msgid "`resource-agents`" -msgstr "`resource-agents`" - -msgid "allow_automatic_l3agent_failover" -msgstr "allow_automatic_l3agent_failover" - -msgid "compute node" -msgstr "compute node" - -msgid "controller node" -msgstr "controller node" - -msgid "l3_ha" -msgstr "l3_ha" - -msgid "max_l3_agents_per_router" -msgstr "max_l3_agents_per_router" - -msgid "min_l3_agents_per_router" -msgstr "min_l3_agents_per_router" diff --git a/doc/ha-guide/source/locale/ja/LC_MESSAGES/ha-guide.po b/doc/ha-guide/source/locale/ja/LC_MESSAGES/ha-guide.po deleted file mode 100644 index 958b955c46..0000000000 --- a/doc/ha-guide/source/locale/ja/LC_MESSAGES/ha-guide.po +++ /dev/null @@ -1,3837 +0,0 @@ -# Akihiro Motoki , 2016. #zanata -# KATO Tomoyuki , 2016. #zanata -# Yuta Hono , 2016. #zanata -# KATO Tomoyuki , 2017. #zanata -msgid "" -msgstr "" -"Project-Id-Version: openstackhaguide\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-22 22:08+0000\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2017-03-22 02:26+0000\n" -"Last-Translator: KATO Tomoyuki \n" -"Language-Team: Japanese\n" -"Language: ja\n" -"X-Generator: Zanata 4.3.3\n" -"Plural-Forms: nplurals=1; plural=0\n" - -msgid "**Cluster Address**: List the IP addresses for each cluster node." -msgstr "**クラスターアドレス**: 各クラスターノードの IP アドレスを表示します。" - -msgid "**Cluster Name**: Define an arbitrary name for your cluster." -msgstr "**クラスター名**: 任意のクラスターの名前を定義します。" - -msgid "" -"**Corosync configuration file fragment for unicast (``corosync.conf``)**" -msgstr "**ユニキャスト向け Corosync 設定ファイルの断片 (``corosync.conf``)**" - -msgid "" -"**Example Corosync configuration file for multicast (``corosync.conf``)**" -msgstr "**マルチキャスト用の Corosync 設定ファイル例 (``corosync.conf``)**" - -msgid "**Node Address**: Define the IP address of the cluster node." -msgstr "**ノードアドレス**: クラスターノードの IP アドレスを定義します。" - -msgid "**Node Name**: Define the logical name of the cluster node." -msgstr "**ノード名**: クラスターノードの論理名を定義します。" - -msgid "" -"**wsrep Provider**: The Galera Replication Plugin serves as the ``wsrep`` " -"provider for Galera Cluster. It is installed on your system as the " -"``libgalera_smm.so`` file. Define the path to this file in your ``my.cnf``:" -msgstr "" -"**wsrep Provider**: Galera Replication Plugin は、Galera Cluster の " -"``wsrep`` プロバイダーとして動作します。お使いのシステムに ``libgalera_smm." -"so`` ファイルとしてインストールされます。このファイルへのパスを ``my.cnf`` に" -"定義します。" - -msgid "/etc/neutron/neutron.conf parameters for high availability" -msgstr "高可用性のための /etc/neutron/neutron.conf のパラメーター" - -msgid "12 GB" -msgstr "12 GB" - -msgid "12+ GB" -msgstr "12+ GB" - -msgid "120 GB" -msgstr "120 GB" - -msgid "120+ GB" -msgstr "120+ GB" - -msgid "2" -msgstr "2" - -msgid "2 or more" -msgstr "2 以上" - -msgid "4" -msgstr "4" - -msgid "8+" -msgstr "8+" - -msgid ":doc:`Networking DHCP agent`" -msgstr ":doc:`Networking DHCP エージェント `" - -msgid ":doc:`Neutron L3 agent`" -msgstr ":doc:`Networking L3 エージェント `" - -msgid "" -":ref:`Configure OpenStack services to use RabbitMQ HA queues `" -msgstr "" -":ref:`Configure OpenStack services to use RabbitMQ HA queues `" - -msgid ":ref:`Configure RabbitMQ for HA queues`" -msgstr ":ref:`高可用性 キュー用の RabbitMQ の設定 `" - -msgid ":ref:`Install RabbitMQ`" -msgstr ":ref:`RabbitMQ のインストール`" - -msgid ":ref:`corosync-multicast`" -msgstr ":ref:`corosync-multicast`" - -msgid ":ref:`corosync-unicast`" -msgstr ":ref:`corosync-unicast`" - -msgid ":ref:`corosync-votequorum`" -msgstr ":ref:`corosync-votequorum`" - -msgid ":ref:`glance-api-configure`" -msgstr ":ref:`glance-api-configure`" - -msgid ":ref:`glance-api-pacemaker`" -msgstr ":ref:`glance-api-pacemaker`" - -msgid ":ref:`glance-services`" -msgstr ":ref:`glance-services`" - -msgid ":ref:`ha-blockstorage-configure`" -msgstr ":ref:`ha-blockstorage-configure`" - -msgid ":ref:`ha-blockstorage-pacemaker`" -msgstr ":ref:`ha-blockstorage-pacemaker`" - -msgid ":ref:`ha-blockstorage-services`" -msgstr ":ref:`ha-blockstorage-services`" - -msgid ":ref:`ha-sharedfilesystems-configure`" -msgstr ":ref:`ha-sharedfilesystems-configure`" - -msgid ":ref:`ha-sharedfilesystems-pacemaker`" -msgstr ":ref:`ha-sharedfilesystems-pacemaker`" - -msgid ":ref:`ha-sharedfilesystems-services`" -msgstr ":ref:`ha-sharedfilesystems-services`" - -msgid ":ref:`identity-config-identity`" -msgstr ":ref:`identity-config-identity`" - -msgid ":ref:`identity-pacemaker`" -msgstr ":ref:`identity-pacemaker`" - -msgid ":ref:`identity-services-config`" -msgstr ":ref:`identity-services-config`" - -msgid ":ref:`pacemaker-cluster-properties`" -msgstr ":ref:`pacemaker-cluster-properties`" - -msgid ":ref:`pacemaker-corosync-setup`" -msgstr ":ref:`pacemaker-corosync-setup`" - -msgid ":ref:`pacemaker-corosync-start`" -msgstr ":ref:`pacemaker-corosync-start`" - -msgid ":ref:`pacemaker-install`" -msgstr ":ref:`pacemaker-install`" - -msgid ":ref:`pacemaker-start`" -msgstr ":ref:`pacemaker-start`" - -msgid "" -":term:`Advanced Message Queuing Protocol (AMQP)` provides OpenStack internal " -"stateful communication service." -msgstr "" -":term:`Advanced Message Queuing Protocol (AMQP)` は、OpenStack 内部のステート" -"フルな通信サービスを提供します。" - -msgid ":term:`active/active configuration`" -msgstr ":term:`アクティブ/アクティブ設定 `" - -msgid ":term:`active/passive configuration`" -msgstr ":term:`アクティブ/パッシブ設定 `" - -msgid "" -"A crucial aspect of high availability is the elimination of single points of " -"failure (SPOFs). A SPOF is an individual piece of equipment or software that " -"causes system downtime or data loss if it fails. In order to eliminate " -"SPOFs, check that mechanisms exist for redundancy of:" -msgstr "" -"高可用性の重要な側面は、単一障害点 (SPOF) を減らすことです。SPOF は、障害が発" -"生した場合にシステム停止やデータ損失を引き起こす、設備やソフトウェアの個々の" -"部品です。SPOF を削減するために、以下の冗長性に対するメカニズムを確認します。" - -msgid "A minimum of three hosts" -msgstr "最小 3 ノード" - -msgid "" -"A sample votequorum service configuration in the :file:`corosync.conf` file " -"is:" -msgstr ":file:`corosync.conf` ファイルの votequorum サービス設定例:" - -msgid "" -"A service that provides a response after your request and then requires no " -"further attention. To make a stateless service highly available, you need to " -"provide redundant instances and load balance them. OpenStack services that " -"are stateless include ``nova-api``, ``nova-conductor``, ``glance-api``, " -"``keystone-api``, ``neutron-api``, and ``nova-scheduler``." -msgstr "" -"リクエストに応答して、その後さらなる注意を必要としないサービス。ステートレス" -"なサービスを高可用化するために、複数のインスタンスを配備して、負荷分散する必" -"要があります。ステートレスな OpenStack サービスに ``nova-api``、``nova-" -"conductor``、``glance-api``、``keystone-api``、``neutron-api``、``nova-" -"scheduler`` があります。" - -msgid "" -"A service where subsequent requests to the service depend on the results of " -"the first request. Stateful services are more difficult to manage because a " -"single action typically involves more than one request. Providing additional " -"instances and load balancing does not solve the problem. For example, if the " -"horizon user interface reset itself every time you went to a new page, it " -"would not be very useful. OpenStack services that are stateful include the " -"OpenStack database and message queue. Making stateful services highly " -"available can depend on whether you choose an active/passive or active/" -"active configuration." -msgstr "" -"最初のリクエストの結果に応じて、後続のリクエストがあるサービス。ステートフル" -"サービスは、あるアクションが一般的に複数のリクエストに影響するため、管理する" -"ことが難しいです。追加インスタンスを配備して負荷分散するだけでは、問題を解決" -"できません。例えば、horizon ユーザーインターフェースが、新しいページを開くた" -"びに毎回リセットされると、ほとんど役に立たないでしょう。ステートフルな " -"OpenStack サービスには、OpenStack のデータベース、メッセージキューがありま" -"す。ステートレスなサービスの高可用化には、アクティブ/パッシブまたはアクティ" -"ブ/アクティブな設定のどちらを選択するかに依存する可能性があります。" - -msgid "" -"A shared implementation and calculation of `quorum `_" -msgstr "" -"`クォーラム `_ の" -"共有実装と計算" - -msgid "" -"A single application does not have sufficient context to know the difference " -"between failure of a machine and failure of the application on a machine. " -"The usual practice is to assume the machine is dead and continue working, " -"however this is highly risky. A rogue process or machine could still be " -"responding to requests and generally causing havoc. The safer approach is to " -"make use of remotely accessible power switches and/or network switches and " -"SAN controllers to fence (isolate) the machine before continuing." -msgstr "" -"単一アプリケーションは、マシンの障害とマシン上のアプリケーション障害の違いを" -"十分に理解できません。一般的なプラクティスは、マシンが停止したと仮定して、動" -"作し続けることです。しかしながら、これは非常にリスクがあります。はぐれたプロ" -"セスやマシンがリクエストに応答し続け、一般的に大破壊を引き起こし続ける可能性" -"があります。より安全なアプローチは、継続する前にマシンをフェンス (隔離) する" -"ために、リモートアクセス可能な電源スイッチ、ネットワークスイッチ、SAN コント" -"ローラーを使用することです。" - -msgid "" -"A typical active/active installation for a stateful service includes " -"redundant services, with all instances having an identical state. In other " -"words, updates to one instance of a database update all other instances. " -"This way a request to one instance is the same as a request to any other. A " -"load balancer manages the traffic to these systems, ensuring that " -"operational systems always handle the request." -msgstr "" -"一般的にステートレスサービスをアクティブ / アクティブにインストールすること" -"は、すべてのインスタンスが同じ状態を持つ冗長なサービスになることを含みます。" -"別の言い方をすると、あるインスタンスのデータベースの更新は、他のすべてのイン" -"スタンスも更新されます。このように、あるインスタンスへのリクエストは、他への" -"リクエストと同じです。ロードバランサーがこれらのシステムのトラフィックを管理" -"し、利用可能なシステムが常にリクエストを確実に処理します。" - -msgid "" -"A typical active/passive installation for a stateful service maintains a " -"replacement resource that can be brought online when required. Requests are " -"handled using a :term:`virtual IP address (VIP)` that facilitates returning " -"to service with minimal reconfiguration. A separate application (such as " -"Pacemaker or Corosync) monitors these services, bringing the backup online " -"as necessary." -msgstr "" -"一般的にステートレスサービスをアクティブ / パッシブにインストールすると、必要" -"に応じてオンラインにできる置換リソースを維持します。リクエストは、サービスの" -"最小限の再設定により返す機能を持つ :term:`仮想 IP アドレス ` を使用して処理されます。 独立したアプリケーション (Pacemaker " -"や Corosync など) がこれらのサービスを監視し、必要に応じてバックアップ側をオ" -"ンラインにします。" - -msgid "API isolation" -msgstr "API 分離" - -msgid "Abstract" -msgstr "概要" - -msgid "" -"Access to Memcached is not handled by HAProxy because replicated access is " -"currently in an experimental state. Instead, OpenStack services must be " -"supplied with the full list of hosts running Memcached." -msgstr "" -"重複アクセスは現在実験的な位置づけのため、Memcached へのアクセスは HAproxy を" -"利用しません。代わりに、OpenStack のサービスは Memcached を実行しているホスト" -"をすべて指定する必要があります。" - -msgid "Active/passive versus active/active" -msgstr "アクティブ/パッシブとアクティブ/アクティブ" - -msgid "Add Block Storage API resource to Pacemaker" -msgstr "Block Storage API リソースの Pacemaker への追加" - -msgid "" -"Add HAProxy to the cluster and ensure the VIPs can only run on machines " -"where HAProxy is active:" -msgstr "" -"HAProxy をクラスターに追加して、仮想 IP が HAProxy の動作しているマシンにおい" -"てのみ動作できることを確認します。" - -msgid "Add OpenStack Identity resource to Pacemaker" -msgstr "OpenStack Identity リソースの Pacemaker への追加" - -msgid "Add OpenStack Image API resource to Pacemaker" -msgstr "OpenStack Image API リソースの Pacemaker への追加" - -msgid "Add Shared File Systems API resource to Pacemaker" -msgstr "Shared File Systems API リソースの Pacemaker への追加" - -msgid "" -"Add the Pacemaker configuration for the OpenStack Identity resource by " -"running the following command to connect to the Pacemaker cluster:" -msgstr "" -"ここで以下のコマンドを使用して、Pacemaker クラスターに接続することにより、" -"OpenStack Identity リソース向けに Pacemaker の設定を追加します。" - -msgid "" -"Add the Pacemaker configuration for the OpenStack Image API resource. Use " -"the following command to connect to the Pacemaker cluster:" -msgstr "" -"ここで OpenStack Image API リソース向けに Pacemaker の設定を追加します。以下" -"のコマンドを使用して、Pacemaker クラスターに接続します。" - -msgid "" -"Add the Pacemaker configuration for the Shared File Systems API resource. " -"Connect to the Pacemaker cluster with the following command:" -msgstr "" -"Shared File Systems API リソース用の Pacemaker 設定を追加します。以下のコマン" -"ドを使用して Pacemaker クラスターに接続します。" - -msgid "Add the following cluster resources:" -msgstr "以下のクラスターリソースを追加します。" - -msgid "Additional parameters" -msgstr "追加パラメーター" - -msgid "" -"After installing the Corosync package, you must create the :file:`/etc/" -"corosync/corosync.conf` configuration file." -msgstr "" -"Corosync パッケージのインストール後、 :file:`/etc/corosync/corosync.conf` 設" -"定ファイルを作成する必要があります。" - -msgid "" -"After the ``corosync`` service have been started and you have verified that " -"the cluster is communicating properly, you can start :command:`pacemakerd`, " -"the Pacemaker master control process. Choose one from the following four " -"ways to start it:" -msgstr "" -"``corosync`` サービスが起動して、クラスターが正常に通信していることを確認した" -"後、Pacemaker のマスター制御プロセス :command:`pacemakerd` を起動できます。以" -"下の 4 通りの方法からどれかを選択してください。" - -msgid "" -"After the ``pacemaker`` service has started, Pacemaker creates a default " -"empty cluster configuration with no resources. Use the :command:`crm_mon` " -"utility to observe the status of ``pacemaker``:" -msgstr "" -"``pacemaker`` サービスの起動後、Pacemaker がリソースを持たないデフォルトの空" -"クラスターを作成します。 :command:`crm_mon` ユーティリティーを使用して、" -"``pacemaker`` の状態を確認します。" - -msgid "After you make these changes, commit the updated configuration." -msgstr "これらの変更実行後、更新した設定を反映します。" - -msgid "" -"After you set up your Pacemaker cluster, set a few basic cluster properties:" -msgstr "" -"Pacemaker クラスターのセットアップ後、いくつかの基本的なクラスターのプロパ" -"ティーを設定します。" - -msgid "All routers are highly available by default." -msgstr "すべてのルーターは、デフォルトで高可用性になっています。" - -msgid "" -"Almost all services in this stack benefit from being proxied. Using a proxy " -"server provides the following capabilities:" -msgstr "" -"このスタックのほぼすべてのサービスは、プロキシーする恩恵を受けられます。プロ" -"キシーサーバを使用することにより、以下の機能が提供されます。" - -msgid "" -"Alternatively, if the database server is running, use the " -"``wsrep_last_committed`` status variable:" -msgstr "" -"代わりに、データベースサーバーが動作している場合、 ``wsrep_last_committed`` " -"状態変数を使用します。" - -msgid "" -"Alternatively, instead of using systemd agents, download and install the OCF " -"resource agent:" -msgstr "" -"または、systemd エージェントを使用する代わりに、OCF リソースエージェントをダ" -"ウンロードしてインストールします。" - -msgid "" -"Alternatively, make modifications using the ``firewall-cmd`` utility for " -"FirewallD that is available on many Linux distributions:" -msgstr "" -"代わりに、多くの Linux ディストリビューションにおいて利用できる FirewallD 向" -"けの ``firewall-cmd`` ユーティリティーを使用して変更することもできます。" - -msgid "" -"Alternatively, you can use a commercial load balancer, which is hardware or " -"software. We recommend a hardware load balancer as it generally has good " -"performance." -msgstr "" -"代わりに、ハードウェアやソフトウェアの商用ロードバランサーを使用することもで" -"きます。ハードウェアロードバランサーは一般的に高性能なので、推奨されます。" - -msgid "Alternatively:" -msgstr "他の" - -msgid "" -"An AMQP (Advanced Message Queuing Protocol) compliant message bus is " -"required for most OpenStack components in order to coordinate the execution " -"of jobs entered into the system." -msgstr "" -"AMQP (Advanced Message Queuing Protocol) 互換メッセージバスが、システム内の" -"ジョブ実行を調整するために、ほとんどの OpenStack コンポーネントに必要となりま" -"す。" - -msgid "An OpenStack environment includes multiple data pools for the VMs:" -msgstr "OpenStack 環境は、仮想マシン向けの複数のデータプールがあります。" - -msgid "" -"And the quorum could also have been set to three, just as a configuration " -"example." -msgstr "また、クォーラムが、設定例にあるように 3 つに設定されているでしょう。" - -msgid "AppArmor" -msgstr "AppArmor" - -msgid "AppArmor now permits Galera Cluster to operate." -msgstr "AppArmor により Galera Cluster の動作を許可されます。" - -msgid "Appendix" -msgstr "付録" - -msgid "" -"Application Armor is a kernel module for improving security on Linux " -"operating systems. It is developed by Canonical and commonly used on Ubuntu-" -"based distributions. In the context of Galera Cluster, systems with AppArmor " -"may block the database service from operating normally." -msgstr "" -"Application Armor は、Linux オペレーティングシステムにおいてセキュリティーを" -"向上するためのカーネルモジュールです。Canonical により開発され、一般的に " -"Ubuntu 系のディストリビューションにおいて使用されています。Galera Cluster の" -"観点では、AppArmor を有効化したシステムは、データベースサービスが正常に動作す" -"ることを妨げる可能性があります。" - -msgid "Applications and automatic service migration" -msgstr "アプリケーションおよびサービスの自動的なマイグレーション" - -msgid "" -"As another option to make RabbitMQ highly available, RabbitMQ contains the " -"OCF scripts for the Pacemaker cluster resource agents since version 3.5.7. " -"It provides the active/active RabbitMQ cluster with mirrored queues. For " -"more information, see `Auto-configuration of a cluster with a Pacemaker " -"`_." -msgstr "" -"RabbitMQ を高可用化する別の選択肢として、RabbitMQ バージョン 3.5.7 以降、" -"Pacemaker クラスターリソースエージェント向けの OCF スクリプトが含まれます。ア" -"クティブ/アクティブ RabbitMQ クラスターにミラーキューを提供します。詳細は " -"`Auto-configuration of a cluster with a Pacemaker `_ を参照してください。" - -msgid "" -"As of September 2016, the OpenStack High Availability community is designing " -"and developing an official and unified way to provide high availability for " -"instances. We are developing automatic recovery from failures of hardware or " -"hypervisor-related software on the compute node, or other failures that " -"could prevent instances from functioning correctly, such as, issues with a " -"cinder volume I/O path." -msgstr "" -"2016年9月時点、OpenStack High Availability コミュニティーは、インスタンスの高" -"可用性を提供するために、公式な統一された方法を設定および開発しています。ハー" -"ドウェアやハイパーバイザー関連ソフトウェアの障害、cinder ボリュームの I/O パ" -"スに関する問題のように、インスタンスが正常に動作しないような他の障害から自動" -"的に復旧する方法を開発しています。" - -msgid "" -"At its core, a cluster is a distributed finite state machine capable of co-" -"ordinating the startup and recovery of inter-related services across a set " -"of machines." -msgstr "" -"クラスターは、その中心において、複数のセットのマシン間で関連するサービスのス" -"タートアップとリカバリーを調整する機能を持つ、分散有限状態マシンです。" - -msgid "Automated recovery of failed instances" -msgstr "障害インスタンスの自動復旧" - -msgid "Awareness of instances on other machines" -msgstr "他のマシンにあるインスタンスの把握" - -msgid "Awareness of other applications in the stack" -msgstr "スタックにある他のアプリケーションの認識" - -msgid "" -"Bear in mind, leaving SELinux in permissive mode is not a good security " -"practice. Over the longer term, you need to develop a security policy for " -"Galera Cluster and then switch SELinux back into enforcing mode." -msgstr "" -"SELinux を permissive モードにすることは、良いセキュリティー慣行ではないこと" -"を覚えておいてください。長い間、Galera Cluster のセキュリティーポリシーを開発" -"して、SELinux を enforcing モードに切り替える必要があります。" - -msgid "" -"Before beginning, ensure you have read the `OpenStack Identity service " -"getting started documentation `_." -msgstr "" -"進める前に `OpenStack Identity サービスの概要 `_ をきちんと読んでください。" - -msgid "" -"Before following this guide to configure the highly available OpenStack " -"cluster, ensure the IP ``10.0.0.11`` and hostname ``controller`` are not in " -"use." -msgstr "" -"このガイドを読み進める前に、高可用性 OpenStack クラスターが IP アドレス " -"``10.0.0.11`` とホスト名 ``controller`` を使わないよう設定してください。" - -msgid "" -"Before you launch Galera Cluster, you need to configure the server and the " -"database to operate as part of the cluster." -msgstr "" -"Galera クラスターを起動する前に、クラスターの一部として動作するよう、サーバー" -"とデータベースを設定する必要があります。" - -msgid "" -"Both the central and the compute agent can run in an HA deployment. This " -"means that multiple instances of these services can run in parallel with " -"workload partitioning among these running instances." -msgstr "" -"中央エージェントとコンピュートエージェントの両方は、高可用性で動作できます。" -"これらのサービスの複数のインスタンスが、これらを実行しているインスタンス間で" -"並行して負荷分散できることを意味します。" - -msgid "" -"Both use a cluster manager, such as Pacemaker or Veritas, to orchestrate the " -"actions of the various services across a set of machines. Because we are " -"focused on FOSS, we refer to these as Pacemaker architectures." -msgstr "" -"どちらも Pacemaker や Veritas のようなクラスターマネージャーを使用して、複数" -"のマシンにまたがるさまざまなサービスの動作を協調させます。私たちは FOSS に注" -"力しているため、Pacemaker のアーキテクチャーを参照します。" - -msgid "" -"By default, STONITH is enabled in Pacemaker, but STONITH mechanisms (to " -"shutdown a node via IPMI or ssh) are not configured. In this case Pacemaker " -"will refuse to start any resources. For production cluster it is recommended " -"to configure appropriate STONITH mechanisms. But for demo or testing " -"purposes STONITH can be disabled completely as follows:" -msgstr "" -"デフォルトでは、STONITH は Pacemaker で有効化されていますが、Pacemaker メカニ" -"ズム (IPMI や SSH 経由のノードのシャットダウン) は設定されていません。この場" -"合、Pacemaker はリソースの開始をすべて拒否します。本番環境のクラスターは、適" -"切な STONITH メカニズムを設定することが推奨されます。デモ目的やテスト目的の場" -"合、STONITH は以下のとおり完全に無効化できます。" - -msgid "" -"By default, ``controller1`` handles the caching service. If the host goes " -"down, ``controller2`` or ``controller3`` will complete the service." -msgstr "" -"デフォルトで ``controller1`` がキャッシュサービスを処理します。そのホストが停" -"止している場合、 ``controller2`` または ``controller3`` がサービスを実施しま" -"す。" - -msgid "" -"By default, cluster nodes do not start as part of a Primary Component. In " -"the Primary Component, replication and state transfers bring all databases " -"to the same state." -msgstr "" -"クラスターノードは、デフォルトで Primary Component の一部として起動しません。" -"Primary Component において、レプリケーションと状態転送により、すべてのデータ" -"ベースが同じ状態になります。" - -msgid "" -"By sending all API access through the proxy, you can clearly identify " -"service interdependencies. You can also move them to locations other than " -"``localhost`` to increase capacity if the need arises." -msgstr "" -"すべての API アクセスをプロキシー経由で送信することにより、サービスの相互依存" -"関係を明確に識別できます。キャパシティーを必要に応じて増やすために、それらを " -"``localhost`` から別の場所に移動できます。" - -msgid "Ceph" -msgstr "Ceph" - -msgid "" -"Ceph RBD provides object replication capabilities by storing Block Storage " -"volumes as Ceph RBD objects. Ceph RBD ensures that each replica of an object " -"is stored on a different node. This means that your volumes are protected " -"against hard drive and node failures, or even the failure of the data center " -"itself." -msgstr "" -"Ceph RBD は、Ceph RBD オブジェクトとして Block Storage のボリュームを保存する" -"ことにより、オブジェクトレプリケーション機能を提供します。オブジェクトの各レ" -"プリカが別々のノードに保存されることを保証します。このことは、お使いのボ" -"リュームがハードディスクやノードの障害時、データセンター自体の障害時にも保護" -"されることを意味します。" - -msgid "" -"Certain services running on the underlying operating system of your " -"OpenStack database may block Galera Cluster from normal operation or prevent " -"``mysqld`` from achieving network connectivity with the cluster." -msgstr "" -"OpenStack データベースのベースとなるオペレーティングシステムで動作している特" -"定のサービスは、Galera Cluster が通常の動作をブロックしたり、``mysqld`` がク" -"ラスターとのネットワーク接続を妨害したりする可能性があります。" - -msgid "Change the number of expected votes for a cluster to be quorate" -msgstr "クラスターが定数になるために期待されるボート数を変更します" - -msgid "Change the number of votes assigned to a node" -msgstr "ノードに割り当てられたボート数を変更します" - -msgid "" -"Cinder provides Block-Storage-as-a-Service suitable for performance " -"sensitive scenarios such as databases, expandable file systems, or providing " -"a server with access to raw block level storage." -msgstr "" -"Cinder は、データベースなどの性能を必要とするシナリオ、拡張可能なファイルシス" -"テム、ローブロックレベルストレージにアクセスするサーバーに適するサービスとし" -"て Block-Storage-as-a-Service を提供します。" - -msgid "Clusters and quorums" -msgstr "クラスターとクォーラム" - -msgid "" -"Clusters with an even number of hosts suffer from similar issues. A single " -"network failure could easily cause a N:N split where neither side retains a " -"majority. For this reason, we recommend an odd number of cluster members " -"when scaling up." -msgstr "" -"偶数のホストを持つクラスターは、同じような問題に苦しみます。単一のネットワー" -"ク障害により、どちらの側も多数派になれない N:N 分断を簡単に引き起こす可能性が" -"あります。この理由により、スケールアップするとき、奇数個のクラスターメンバー" -"を推奨します。" - -msgid "Collapsed" -msgstr "Collapsed" - -msgid "" -"Commit your configuration changes by entering the following command from " -"the :command:`crm configure` menu:" -msgstr "" -":command:`crm configure` メニューから以下のコマンドを実行して、設定の変更を反" -"映します。" - -msgid "" -"Commit your configuration changes from the :command:`crm configure` menu " -"with the following command:" -msgstr "" -":command:`crm configure` メニューから以下のコマンドを入力して、設定の変更をコ" -"ミットします。" - -msgid "Common deployment architectures" -msgstr "一般的な配備のアーキテクチャー" - -msgid "Configuration" -msgstr "設定" - -msgid "Configuration tips" -msgstr "設定のヒント" - -msgid "Configure Block Storage API service" -msgstr "Block Storage API サービスの設定" - -msgid "Configure NTP" -msgstr "NTP の設定" - -msgid "Configure OpenStack Identity service" -msgstr "OpenStack Identity Service の設定" - -msgid "Configure OpenStack Image service API" -msgstr "OpenStack Image サービス API の設定" - -msgid "Configure OpenStack services to use HA Shared File Systems API" -msgstr "" -"高可用性 Shared File Systems API を使用するための OpenStack サービスの設定" - -msgid "Configure OpenStack services to use Rabbit HA queues" -msgstr "RabbitMQ HA キューを使用するための OpenStack サービスの設定" - -msgid "" -"Configure OpenStack services to use the highly available Block Storage API" -msgstr "高可用性 Block Storage API を使用するための OpenStack サービスの設定" - -msgid "" -"Configure OpenStack services to use the highly available OpenStack Identity" -msgstr "高可用性 OpenStack Identity を使用するための OpenStack サービスの設定" - -msgid "" -"Configure OpenStack services to use the highly available OpenStack Image API" -msgstr "" -"高可用性 OpenStack Image Service API を使用するための OpenStack サービスの設" -"定" - -msgid "Configure RabbitMQ for HA queues" -msgstr "高可用性 キュー用の RabbitMQ の設定" - -msgid "Configure Shared File Systems API service" -msgstr "Shared File Systems API サービスの設定" - -msgid "Configure the OpenStack components to use at least two RabbitMQ nodes." -msgstr "" -"2 つ以上の RabbitMQ ノードを使用するよう、OpenStack のコンポーネントを設定し" -"ます。" - -msgid "Configure the VIP" -msgstr "仮想 IP の設定" - -msgid "" -"Configure the kernel parameter to allow non-local IP binding. This allows " -"running HAProxy instances to bind to a VIP for failover. Add following line " -"to ``/etc/sysctl.conf``:" -msgstr "" -"ローカル IP 以外のバインドを許可するために、カーネルパラメーターを設定しま" -"す。これにより、動作中の HAProxy インスタンスがフェイルオーバー用の仮想 IP を" -"バインドできるようになります。" - -msgid "Configuring Block Storage to listen on the VIP address" -msgstr "Block Storage がその仮想 IP アドレスをリッスンする設定" - -msgid "Configuring HAProxy" -msgstr "HAProxy の設定" - -msgid "Configuring InnoDB" -msgstr "InnoDB の設定" - -msgid "Configuring OpenStack services to use this IP address" -msgstr "OpenStack のサービスがこの IP アドレスを使用する設定" - -msgid "" -"Configuring RAID on the hard drives that implement storage protects your " -"data against a hard drive failure. If the node itself fails, data may be " -"lost. In particular, all volumes stored on an LVM node can be lost." -msgstr "" -"ストレージを実装するハードディスクに RAID を設定することにより、ハードディス" -"ク障害からデータを保護します。ノード自体が故障した場合、データが失われるかも" -"しれません。とくに、LVM ノードに保存されている全ボリュームは失われる可能性が" -"あります。" - -msgid "Configuring high availability for instances" -msgstr "インスタンスの高可用性の設定" - -msgid "Configuring mysqld" -msgstr "mysqld の設定" - -msgid "Configuring storage" -msgstr "ストレージの設定" - -msgid "Configuring the basic environment" -msgstr "基本環境の設定" - -msgid "Configuring the compute node" -msgstr "コンピュートノードの設定" - -msgid "Configuring the controller" -msgstr "コントローラーの設定" - -msgid "Configuring the networking services" -msgstr "ネットワークサービスの設定" - -msgid "Configuring the server" -msgstr "サーバーの設定" - -msgid "Configuring the shared services" -msgstr "共有サービスの設定" - -msgid "Configuring wsrep replication" -msgstr "wsrep レプリケーションの設定" - -msgid "" -"Connect an additional quorum device to allow small clusters remain quorate " -"during node outages" -msgstr "" -"追加のクォーラムデバイスを接続して、小規模なクラスターがノード障害時にクォー" -"ラムを取得できるようにします。" - -msgid "" -"Consider that, while exchanges and bindings survive the loss of individual " -"nodes, queues and their messages do not because a queue and its contents are " -"located on one node. If we lose this node, we also lose the queue." -msgstr "" -"エクスチェンジとバインドは個々のノード障害に耐えられますが、キューとそのメッ" -"セージは、あるノードに置かれるため、失われることを考慮してください。このノー" -"ドを失うとき、キューも失われます。" - -msgid "Contents" -msgstr "内容" - -msgid "" -"Corosync can be configured to work with either multicast or unicast IP " -"addresses or to use the votequorum library." -msgstr "" -"Corosync を動作させるための設定としては、マルチキャスト IP アドレスを使う、ユ" -"ニキャスト IP アドレスを使う、 votequorum ライブラリーを使う、の選択肢があり" -"ます。" - -msgid "" -"Corosync is started as a regular system service. Depending on your " -"distribution, it may ship with an LSB init script, an upstart job, or a " -"Systemd unit file." -msgstr "" -"Corosync は通常のシステムサービスとして起動します。お使いのディストリビュー" -"ションに応じて、LSB init スクリプト、upstart ジョブ、systemd ユニットファイル" -"を同梱しているかもしれません。" - -msgid "" -"Create a configuration file for ``clustercheck`` at ``/etc/sysconfig/" -"clustercheck``:" -msgstr "" -"``clustercheck`` の設定ファイルを ``/etc/sysconfig/clustercheck`` に作成しま" -"す。" - -msgid "" -"Create a configuration file for the HAProxy monitor service, at ``/etc/" -"xinetd.d/galera-monitor``:" -msgstr "" -"HAProxy モニターサービスの設定ファイルを ``/etc/xinetd.d/galera-monitor`` に" -"作成します。" - -msgid "" -"Create a symbolic link for the database server in the ``disable`` directory:" -msgstr "" -"``disable`` ディレクトリーにデータベースサーバーへのシンボリックリンクを作成" -"します。" - -msgid "" -"Create and name the cluster. Then, start it and enable all components to " -"auto-start at boot time:" -msgstr "" -"クラスターを作成して、名前を付けます。そして、それを起動して、すべてのコン" -"ポーネントが起動時に自動起動するようにします。" - -msgid "Create the Block Storage API endpoint with this IP." -msgstr "この IP を用いて Block Storage API エンドポイントを作成します。" - -msgid "Create the OpenStack Identity Endpoint with this IP address." -msgstr "" -"この IP アドレスを用いて OpenStack Identity エンドポイントを作成します。" - -msgid "Current upstream work" -msgstr "アップストリームの現在の取り組み" - -msgid "" -"Data integrity through fencing (a non-responsive process does not imply it " -"is not doing anything)" -msgstr "" -"フェンシングによるデータ完全性 (応答なしプロセスが何もしていないことを意味し" -"ます)" - -msgid "Data loss: Accidental deletion or destruction of data." -msgstr "データ損失: 意図しないデータの削除や破損。" - -msgid "Database (Galera Cluster) for high availability" -msgstr "データベース (Galera クラスター) の高可用性" - -msgid "Database configuration" -msgstr "データベース設定" - -msgid "Database hosts with Galera Cluster installed" -msgstr "Galera Cluster をインストールしたデータベースホスト" - -msgid "" -"Define the InnoDB memory buffer pool size. The default value is 128 MB, but " -"to compensate for Galera Cluster's additional memory usage, scale your usual " -"value back by 5%:" -msgstr "" -"InnoDB メモリーバッファープールサイズを定義します。デフォルト値は 128 MB です" -"が、Galera Cluster の追加メモリー使用状況に対して補うために、通常の値を 5% ま" -"でスケールさせてください。" - -msgid "Deployment flavors" -msgstr "デプロイフレーバー" - -msgid "Deployment strategies" -msgstr "デプロイ戦略" - -msgid "Description" -msgstr "説明" - -msgid "" -"Do not change this value. Other modes may cause ``INSERT`` statements on " -"tables with auto-increment columns to fail as well as unresolved deadlocks " -"that leave the system unresponsive." -msgstr "" -"この値を変更してはいけません。他のモジュールが、自動インクリメントの列を用い" -"てテーブルに ``INSERT`` ステートメントを発行するかもしれません。これは、シス" -"テムが応答不可になる解決不能なデッドロックに陥ります。" - -msgid "Download the resource agent to your system:" -msgstr "まず、お使いのシステムにリソースエージェントをダウンロードします。" - -msgid "" -"Each configured interface must have a unique ``ringnumber``, starting with 0." -msgstr "" -"設定済みの各インターフェースは、0 から始まる一意な ``ringnumber`` を持つ必要" -"があります。" - -msgid "Each instance has its own IP address:" -msgstr "各インスタンスは、自身の IP アドレスを持ちます。" - -msgid "" -"Each instance of HAProxy configures its front end to accept connections only " -"to the virtual IP (VIP) address. The HAProxy back end (termination point) is " -"a list of all the IP addresses of instances for load balancing." -msgstr "" -"HAProxy の各インスタンスは、仮想 IP アドレスへの接続のみを受け付けるよう、そ" -"のフロントエンドを設定します。HAProxy のバックエンド (接続先) は、負荷分散さ" -"れるインスタンスの IP アドレスの一覧です。" - -msgid "" -"Each service also has a backup but manages both the main and redundant " -"systems concurrently. This way, if there is a failure, the user is unlikely " -"to notice. The backup system is already online and takes on increased load " -"while the main system is fixed and brought back online." -msgstr "" -"各サービスはバックアップも持ちますが、メインと冗長システムを同時に管理しま" -"す。このように、ユーザーが気が付かない障害が発生した場合、バックアップシステ" -"ムはすでにオンラインであり、メインシステムが復旧され、オンラインになるまでの" -"間は負荷が高くなります。" - -msgid "" -"Edit the :file:`/etc/glance/glance-api.conf` file to configure the OpenStack " -"Image service:" -msgstr "" -":file:`/etc/glance/glance-api.conf` ファイルを編集して、OpenStack Image サー" -"ビスを設定します。" - -msgid "Edit the :file:`/etc/manila/manila.conf` file:" -msgstr "`/etc/manila/manila.conf` ファイルを編集します。" - -msgid "" -"Edit the :file:`keystone.conf` file to change the values of the :manpage:" -"`bind(2)` parameters:" -msgstr "" -":file:`keystone.conf` ファイルを編集して、 :manpage:`bind(2)` パラメーターの" -"値を変更します。" - -msgid "" -"Edit the ``/etc/cinder/cinder.conf`` file. For example, on a RHEL-based " -"system:" -msgstr "" -"``/etc/cinder/cinder.conf`` ファイルを編集します。たとえば、RHEL 系システムの" -"場合:" - -msgid "Enhanced failure detection" -msgstr "高度な障害検出" - -msgid "" -"Ensure that the InnoDB locking mode for generating auto-increment values is " -"set to ``2``, which is the interleaved locking mode:" -msgstr "" -"自動インクリメント値を生成するための InnoDB ロックモードがをきちんと``2`` に" -"設定してください。これは、インターリーブ・ロックモードです。" - -msgid "" -"Ensure that the InnoDB log buffer is written to file once per second, rather " -"than on each commit, to improve performance:" -msgstr "" -"パフォーマンスを改善するために、InnoDB ログバッファーが、コミットごとではな" -"く、1 秒ごとにファイルに書き込むことを確認します。" - -msgid "" -"Ensure that the binary log format is set to use row-level replication, as " -"opposed to statement-level replication:" -msgstr "" -"バイナリーログ形式が、ステートメントレベルのレプリケーションではなく、行レベ" -"ルのレプリケーションに設定されていることを確認してください。" - -msgid "" -"Ensure that the database server is not bound only to the localhost: " -"``127.0.0.1``. Also, do not bind it to ``0.0.0.0``. Binding to the localhost " -"or ``0.0.0.0`` makes ``mySQL`` bind to all IP addresses on the machine, " -"including the virtual IP address causing ``HAProxy`` not to start. Instead, " -"bind to the management IP address of the controller node to enable access by " -"other nodes through the management network:" -msgstr "" -"データベースサーバーが localhost: ``127.0.0.1`` のみにバインドされていないこ" -"とを確認してください。また、``0.0.0.0`` にバインドしないでください。" -"localhost や ``0.0.0.0`` にバインドすることにより、MySQL がマシンのすべての " -"IP アドレスにバインドされます。これは仮想 IP アドレスを含み、``HAProxy`` が起" -"動しなくなります。代わりに、コントローラーノードの管理 IP アドレスにバインド" -"して、管理ネットワーク経由で他のノードによりアクセスできるようにします。" - -msgid "Ensure that the default storage engine is set to InnoDB:" -msgstr "デフォルトのストレージエンジンをきちんと InnoDB に設定してください。" - -msgid "" -"Ensure your HAProxy installation is not a single point of failure, it is " -"advisable to have multiple HAProxy instances running." -msgstr "" -"HAProxy が単一障害点にならないようにします。複数の HAProxy インスタンスを実行" -"することが推奨されます。" - -msgid "" -"Ephemeral storage is allocated for an instance and is deleted when the " -"instance is deleted. The Compute service manages ephemeral storage and by " -"default, Compute stores ephemeral drives as files on local disks on the " -"compute node. As an alternative, you can use Ceph RBD as the storage back " -"end for ephemeral storage." -msgstr "" -"一時ストレージは、インスタンスのために割り当てられ、インスタンスの削除時に削" -"除されます。Compute サービスが一時ストレージを管理します。Compute はデフォル" -"トで、コンピュートノードのローカルディスクにファイルとして一時ディスクを保存" -"します。代わりに、一時ストレージのストレージバックエンドとして Ceph RBD を使" -"用できます。" - -msgid "" -"Even a distributed or replicated application that is able to survive " -"failures on one or more machines can benefit from a cluster manager because " -"a cluster manager has the following capabilities:" -msgstr "" -"いくつかのマシンの障害に耐えられる分散アプリケーションやレプリケーションで" -"も、クラスターマネージャーが以下の機能を持つので、クラスターマネージャーによ" -"る恩恵があります。" - -msgid "Existing solutions" -msgstr "既存のソリューション" - -msgid "Facility services such as power, air conditioning, and fire protection" -msgstr "電源、空調、防火などに関する設備" - -msgid "Firewall" -msgstr "ファイアウォール" - -msgid "" -"For Liberty, you can not have the standalone network nodes. The Networking " -"services are run on the controller nodes. In this guide, the term `network " -"nodes` is used for convenience." -msgstr "" -"Liberty の場合、独立したネットワークノードを一般的に持ちません。Networking " -"サービスはコントローラーノードにおいて実行されます。このガイドでは、便宜上" -"「ネットワークノード」という言葉を使用します。" - -msgid "" -"For OpenStack Compute, (if your OpenStack Identity service IP address is " -"10.0.0.11) use the following configuration in the :file:`api-paste.ini` file:" -msgstr "" -"OpenStack Compute の場合 (OpenStack Identity サービスの IP アドレスが " -"10.0.0.11 の場合)、以下の設定を :file:`api-paste.ini` ファイルに使用します。" - -msgid "For RHEL, Fedora, or CentOS:" -msgstr "RHEL、Fedora、CentOS の場合:" - -msgid "" -"For Red Hat Enterprise Linux and Red Hat-based Linux distributions, the " -"following process uses Systemd unit files." -msgstr "" -"Red Hat Enterprise Linux および Red Hat 系の Linux ディストリビューションの場" -"合、以下のプロセスが Systemd ユニットファイルを使用します。" - -msgid "" -"For SLES 12, the packages are signed by GPG key 893A90DAD85F9316. You should " -"verify the fingerprint of the imported GPG key before using it." -msgstr "" -"SLES 12 の場合、パッケージは GPG キー 893A90DAD85F9316 により署名されていま" -"す。使用する前に、インポートした GPG キーのフィンガープリントを検証すべきで" -"す。" - -msgid "For SLES 12:" -msgstr "SLES 12 の場合:" - -msgid "" -"For UDPU, every node that should be a member of the membership must be " -"specified." -msgstr "" -"UDPUでは、全てのノードがメンバーシップメンバーを指定しなければなりません。" - -msgid "" -"For Ubuntu 16.04.1: Create a configuration file for ``clustercheck`` at ``/" -"etc/default/clustercheck``." -msgstr "" -"Ubuntu 16.04.1 の場合: ``clustercheck`` の設定ファイルを ``/etc/default/" -"clustercheck`` に作成します。" - -msgid "For Ubuntu or Debian:" -msgstr "Ubuntu、Debian の場合:" - -msgid "" -"For Ubuntu, you should also enable the Corosync service in the ``/etc/" -"default/corosync`` configuration file." -msgstr "" -"Ubuntu の場合、 ``/etc/default/corosync`` 設定ファイルにおいて Corosync サー" -"ビスも有効化すべきです。" - -msgid "" -"For `Fedora `_" -msgstr "" -"`Fedora `_ の場合" - -msgid "For ``crmsh``:" -msgstr "``crmsh`` の場合:" - -msgid "For ``pcs``:" -msgstr "``pcs`` の場合:" - -msgid "" -"For a complete list of the available parameters, run the ``SHOW VARIABLES`` " -"command from within the database client:" -msgstr "" -"利用できるパラメーターの一覧は、データベースクライアントから ``SHOW " -"VARIABLES`` コマンドを実行してください。" - -msgid "" -"For backward compatibility and supporting existing deployments, the central " -"agent configuration supports using different configuration files. This is " -"for groups of service instances that are running in parallel. For enabling " -"this configuration, set a value for the ``partitioning_group_prefix`` option " -"in the `polling section `_ in the OpenStack Configuration " -"Reference." -msgstr "" -"既存の環境の後方互換性とサポートのために、中央エージェントの設定は、別の設定" -"ファイルを使用することをサポートします。これは並列で実行しているサービスイン" -"スタンスのグループのためです。この設定を有効化するために、OpenStack " -"Configuration Reference の `polling section `_ にある " -"``partitioning_group_prefix`` オプションの値を設定します。" - -msgid "" -"For demonstrations and studying, you can set up a test environment on " -"virtual machines (VMs). This has the following benefits:" -msgstr "" -"デモや学習の場合、仮想マシンにテスト環境をセットアップできます。これには以下" -"の利点があります。" - -msgid "" -"For detailed instructions about installing HAProxy on your nodes, see the " -"HAProxy `official documentation `_." -msgstr "" -"お使いのノードに HAProxy をインストールする方法の詳細は HAProxy `公式ドキュメ" -"ント `_ を参照してください。" - -msgid "" -"For documentation about these parameters, ``wsrep`` provider option, and " -"status variables available in Galera Cluster, see the Galera cluster " -"`Reference `_." -msgstr "" -"Galera Cluster において利用できる、これらのパラメーター、``wsrep`` プロバイ" -"ダーオプション、状態変数のドキュメントは、Galera クラスターの`リファレンス " -"`_ を参照して" -"ください。" - -msgid "" -"For each sub-group of the central agent pool with the same " -"``partitioning_group_prefix``, a disjoint subset of meters must be polled to " -"avoid samples being missing or duplicated. The list of meters to poll can be " -"set in the :file:`/etc/ceilometer/pipeline.yaml` configuration file. For " -"more information about pipelines see the `Data processing and pipelines " -"`_ " -"section." -msgstr "" -"同じ ``partitioning_group_prefix`` を持つ中央エージェントプールの各サブグルー" -"プに対して、サンプルの損失や重複を避けるために、互いに関わらないメーターのサ" -"ブセットが取得される必要があります。取得されるメーターの一覧は :file:`/etc/" -"ceilometer/pipeline.yaml` 設定ファイルに設定できます。パイプラインの詳細は " -"`Data processing and pipelines `_ のセクションを参照してください。" - -msgid "" -"For environments that do not support multicast, Corosync should be " -"configured for unicast. An example fragment of the :file:`corosync.conf` " -"file for unicastis is shown below:" -msgstr "" -"マルチキャストをサポートしていない場合、Corosync はユニキャストで設定すべきで" -"す。ユニキャスト向け :file:`corosync.conf` ファイルの設定例を以下に示します。" - -msgid "" -"For example, if your OpenStack Image API service IP address is 10.0.0.11 (as " -"in the configuration explained here), you would use the following " -"configuration in your :file:`nova.conf` file:" -msgstr "" -"例えば、OpenStack Image API サービスの IP アドレスが (ここで説明されている設" -"定のように) 10.0.0.11 ならば、以下の設定を :file:`nova.conf` ファイルに使用し" -"ます。" - -msgid "" -"For example, in a seven-node cluster, the quorum should be set to " -"``floor(7/2) + 1 == 4``. If quorum is four and four nodes fail " -"simultaneously, the cluster itself would fail, whereas it would continue to " -"function, if no more than three nodes fail. If split to partitions of three " -"and four nodes respectively, the quorum of four nodes would continue to " -"operate the majority partition and stop or fence the minority one (depending " -"on the no-quorum-policy cluster configuration)." -msgstr "" -"たとえば、7 ノードクラスターにおいて、クォーラムは ``floor(7/2) + 1 == 4`` に" -"設定されるべきです。クォーラムが 4 で、4 ノードが同時に停止した場合、クラス" -"ター自身が停止するでしょう。一方、3 ノード以下の停止の場合、動作し続けられる" -"でしょう。それぞれ 3 ノードと 4 ノードに分割された場合、4 ノードのクラスター" -"のクォーラムが多数派のパーティションを動作し続け、(no-quorum-policy クラス" -"ター設定に応じて) 少数派を停止またはフェンスするでしょう。" - -msgid "" -"For example, you may enter ``edit p_ip_glance-api`` from the :command:`crm " -"configure` menu and edit the resource to match your preferred virtual IP " -"address." -msgstr "" -"例えば、お好みの仮想 IP アドレスに一致させるために、:command:`crm configure` " -"メニューから ``edit p_ip_glance-api`` と入力し、リソースを編集できます。" - -msgid "" -"For example, you may enter ``edit p_ip_keystone`` from the :command:`crm " -"configure` menu and edit the resource to match your preferred virtual IP " -"address." -msgstr "" -"例えば、お好みの仮想 IP アドレスに一致させるために、:command:`crm configure` " -"メニューから ``edit p_ip_keystone`` と入力し、リソースを編集できます。" - -msgid "" -"For example, you may enter ``edit p_ip_manila-api`` from the :command:`crm " -"configure` menu and edit the resource to match your preferred virtual IP " -"address." -msgstr "" -"例えば、お好みの仮想 IP アドレスに一致させるために、:command:`crm configure` " -"メニューから ``edit p_ip_manila-api`` と入力し、リソースを編集できます。" - -msgid "" -"For firewall configurations, Corosync communicates over UDP only, and uses " -"``mcastport`` (for receives) and ``mcastport - 1`` (for sends)." -msgstr "" -"ファイアウォール設定に向け、Corosync は UDP のみで通信して、 ``mcastport`` " -"(受信用) と ``mcastport - 1`` (送信用) を使用します。" - -msgid "" -"For information about the required configuration options to set in the :file:" -"`ceilometer.conf`, see the `coordination section `_ in the OpenStack Configuration " -"Reference." -msgstr "" -":file:`ceilometer.conf` 設定ファイルに設定する必要があるオプションの詳細は、" -"OpenStack Configuration Reference の `coordination section `_ を参照してください。" - -msgid "" -"For more information about configuring storage back ends for the different " -"storage options, see `Manage volumes `_ in the OpenStack Administrator Guide." -msgstr "" -"さまざまなストレージの選択肢に対して、ストレージバックエンドを設定する方法の" -"詳細は、OpenStack Administrator Guide の `Manage volumes `_ を参照してくだ" -"さい。" - -msgid "" -"For more information on configuring SELinux to work with Galera Cluster, see " -"the `SELinux Documentation `_" -msgstr "" -"Galera Cluster と動作する SELinux を設定する方法の詳細は `SELinux ドキュメン" -"ト `_ を参照し" -"てください。" - -msgid "" -"For more information on firewalls, see `firewalls and default ports `_ in OpenStack " -"Administrator Guide." -msgstr "" -"ファイアウォールの詳細は、OpenStack Administrator Guide の `Firewalls and " -"default ports `_ を参照してください。" - -msgid "" -"For more information, see the official installation manual for the " -"distribution:" -msgstr "" -"詳細はディストリビューションの公式インストールガイドを参照してください。" - -msgid "For openSUSE:" -msgstr "openSUSE の場合:" - -msgid "For servers that use ``systemd``, run the following command:" -msgstr "``systemd`` を使用するサーバーの場合、以下のコマンドを実行します。" - -msgid "For servers that use ``systemd``, run the following commands:" -msgstr "``systemd`` を使用するサーバーの場合、以下のコマンドを実行します。" - -msgid "" -"For these reasons, we highly recommend the use of a cluster manager like " -"`Pacemaker `_." -msgstr "" -"これらの理由のため、`Pacemaker `_ のようなクラスター" -"マネージャーを使用することを強く推奨します。" - -msgid "" -"For this reason, each cluster in a high availability environment should have " -"an odd number of nodes and the quorum is defined as more than a half of the " -"nodes. If multiple nodes fail so that the cluster size falls below the " -"quorum value, the cluster itself fails." -msgstr "" -"この理由により、高可用性環境における各クラスターは、奇数個のコードを持つべき" -"であり、クォーラムがノードの過半数に定義されます。クラスター数がクォーラム値" -"を下回るよう、複数のノードが停止した場合、クラスター自身が停止します。" - -msgid "" -"Galera Cluster configuration parameters all have the ``wsrep_`` prefix. You " -"must define the following parameters for each cluster node in your OpenStack " -"database." -msgstr "" -"Galera Cluster の設定パラメーターは、すべて ``wsrep_`` プレフィックスを持ちま" -"す。OpenStack データベースにおいて、各クラスターノード向けに以下のパラメー" -"ターを定義する必要があります。" - -msgid "" -"Galera Cluster does not support non-transactional storage engines and " -"requires that you use InnoDB by default. There are some additional " -"parameters that you must define to avoid conflicts." -msgstr "" -"Galera Cluster は、トランザクション未対応ストレージエンジンをサポートしませ" -"ん。デフォルトでは InnoDB を使用する必要があります。競合を避けるために定義す" -"る必要のある追加パラメーターがいくつかあります。" - -msgid "" -"Galera Cluster requires that you open the following ports to network traffic:" -msgstr "" -"Galera Cluster は、ネットワーク通信のために以下のポートを開く必要があります。" - -msgid "Galera can be configured using one of the following strategies:" -msgstr "Galera は、以下の方法のどれかにより設定できます。" - -msgid "Galera runs behind HAProxy:" -msgstr "Galera は HAProxy の後ろで動作します。" - -msgid "" -"Galera synchronous replication guarantees a zero slave lag. The failover " -"procedure completes once HAProxy detects that the active back end has gone " -"down and switches to the backup one, which is then marked as ``UP``. If no " -"back ends are ``UP``, the failover procedure finishes only when the Galera " -"Cluster has been successfully reassembled. The SLA is normally no more than " -"5 minutes." -msgstr "" -"Galera の同期レプリケーションは、スレーブのラグがないことを保証します。フェイ" -"ルオーバー手順は、アクティブなバックエンドがダウンしたことを HAProxy が検知す" -"ると、バックアップに切り替え、``UP`` 状態になります。バックエンドが ``UP`` に" -"ならない場合、Galera クラスターが再び正常に再構成された場合のみ、フェイルオー" -"バー手順が完了します。SLA は、通常 5 分以内です。" - -msgid "HAProxy" -msgstr "HAProxy" - -msgid "" -"HAProxy load balances incoming requests and exposes just one IP address for " -"all the clients." -msgstr "" -"HAProxy は、受信リクエストを負荷分散して、すべてのクライアントに 1 つの IP ア" -"ドレスを公開します。" - -msgid "" -"HAProxy provides a fast and reliable HTTP reverse proxy and load balancer " -"for TCP or HTTP applications. It is particularly suited for web crawling " -"under very high loads while needing persistence or Layer 7 processing. It " -"realistically supports tens of thousands of connections with recent hardware." -msgstr "" -"HAProxy は、TCP や HTTP ベースのアプリケーションに、高速かつ高信頼な HTTP リ" -"バースプロキシーとロードバランサーを提供します。とくに、永続性や L7 処理を必" -"要とする、非常に高負荷な Web サイトに適しています。最近のハードウェアを用いる" -"と、数千の接続を現実的にサポートします。" - -msgid "Hardware considerations for high availability" -msgstr "高可用性のためのハードウェア考慮事項" - -msgid "Hardware setup" -msgstr "ハードウェアのセットアップ" - -msgid "" -"High availability is implemented with redundant hardware running redundant " -"instances of each service. If one piece of hardware running one instance of " -"a service fails, the system can then failover to use another instance of a " -"service that is running on hardware that did not fail." -msgstr "" -"高可用性は、各サービスの冗長インスタンスを実行する、冗長ハードウェアを用いて" -"実装されます。あるサービスのインスタンスの 1 つを実行しているハードウェアの部" -"品が故障した場合、システムはフェイルオーバーして、故障していないハードウェア" -"で動作している別のサービスインスタンスを使用します。" - -msgid "" -"High availability is not for every user. It presents some challenges. High " -"availability may be too complex for databases or systems with large amounts " -"of data. Replication can slow large systems down. Different setups have " -"different prerequisites. Read the guidelines for each setup." -msgstr "" -"高可用性はあらゆるユーザー向けではありません。いくつかの挑戦を妨害します。高" -"可用性は、大量のデータを持つデータベースやシステムをあまりに複雑にする可能性" -"があります。レプリケーションは大規模システムをスローダウンさせる可能性があり" -"ます。異なるセットアップには、異なる事前要件があります。各セットアップのガイ" -"ドラインを参照してください。" - -msgid "High availability is turned off as the default in OpenStack setups." -msgstr "高可用性は、デフォルトの OpenStack セットアップで無効化されています。" - -msgid "High availability systems seek to minimize the following issues:" -msgstr "高可用性システムは、以下の問題を最小化することを目指しています。" - -msgid "" -"High availability systems typically achieve an uptime percentage of 99.99% " -"or more, which roughly equates to less than an hour of cumulative downtime " -"per year. In order to achieve this, high availability systems should keep " -"recovery times after a failure to about one to two minutes, sometimes " -"significantly less." -msgstr "" -"高可用性システムは、一般的に 99.99% 以上の稼働率を達成します。おそよ年間 1 時" -"間未満の停止時間になります。高可用性システムは、これを実現するために、障害発" -"生後の復旧時間を 1 ~ 2 分以内に、ときにはさらに短く抑えるべきです。" - -msgid "Highly available Block Storage API" -msgstr "高可用性 Block Storage API" - -msgid "Highly available Identity API" -msgstr "高可用性 Identity API" - -msgid "Highly available Image API" -msgstr "高可用性 Image API" - -msgid "Highly available Shared File Systems API" -msgstr "高可用性 Shared File Systems API" - -msgid "Highly available Telemetry" -msgstr "高可用性 Telemetry" - -msgid "How long to back-off for between retries when connecting to RabbitMQ:" -msgstr "RabbitMQ に接続するとき再試行するまでにバックオフする間隔:" - -msgid "" -"However, running an OpenStack environment on VMs degrades the performance of " -"your instances, particularly if your hypervisor or processor lacks support " -"for hardware acceleration of nested VMs." -msgstr "" -"しかしながら、仮想マシン上で OpenStack 環境を実行すると、インスタンスの性能が" -"悪くなります。とくに、ハイパーバイザーとプロセッサーが nested 仮想マシンの" -"ハードウェア支援機能をサポートしない場合は顕著です。" - -msgid "" -"If the Block Storage service runs on the same nodes as the other services, " -"then it is advisable to also include:" -msgstr "" -"Block Storage サービスが他のサービスと同じノードで実行している場合、以下も含" -"めることを推奨します。" - -msgid "" -"If the Identity service will be sending ceilometer notifications and your " -"message bus is configured for high availability, you will need to ensure " -"that the Identity service is correctly configured to use it. For details on " -"how to configure the Identity service for this kind of deployment, see :doc:" -"`shared-messaging`." -msgstr "" -"Identity サービスが ceilometer の通知を送信して、メッセージバスが高可用性のた" -"めに設定されている場合、Identity サービスがきちんとそれを使用するよう設定する" -"必要があります。この種の導入向けに Identity サービスを設定する方法の詳細は、:" -"doc:`shared-messaging` を参照してください。" - -msgid "" -"If the ``broadcast`` parameter is set to ``yes``, the broadcast address is " -"used for communication. If this option is set, the ``mcastaddr`` parameter " -"should not be set." -msgstr "" -"``broadcast`` パラメーターが ``yes`` に設定されている場合、ブロードキャストア" -"ドレスが通信に使用されます。このオプションが設定されている場合、" -"``mcastaddr`` パラメーターは設定すべきではありません。" - -msgid "" -"If the cluster is working, you can create usernames and passwords for the " -"queues." -msgstr "" -"クラスターが動作していると、キューのユーザー名とパスワードを作成できます。" - -msgid "" -"If you are using Corosync version 2 on Ubuntu 14.04, remove or comment out " -"lines under the service stanza. These stanzas enable Pacemaker to start up. " -"Another potential problem is the boot and shutdown order of Corosync and " -"Pacemaker. To force Pacemaker to start after Corosync and stop before " -"Corosync, fix the start and kill symlinks manually:" -msgstr "" -"Ubuntu 14.04 において Corosync バージョン 2 を使用している場合、サービスの節" -"の下にある行を削除するかコメントアウトします。これらの節により、Pacemaker が" -"起動できます。別の潜在的な問題は、Corosync と Pacemaker の起動と停止の順番で" -"す。必ず Pacemaker が Corosync の後に起動して、Corosync の前に停止させるため" -"に、start と kill のシンボリックリンクを手動で修正します。" - -msgid "" -"If you are using Corosync version 2, use the :command:`corosync-cmapctl` " -"utility instead of :command:`corosync-objctl`; it is a direct replacement." -msgstr "" -"Corosync バージョン 2 を使用している場合、 :command:`corosync-objctl` の代わ" -"りに :command:`corosync-cmapctl` ユーティリティーを使用します。これは、そのま" -"ま置き換えられます。" - -msgid "" -"If you are using both private and public IP addresses, create two virtual IP " -"addresses and define the endpoint. For example:" -msgstr "" -"プライベート IP とパブリック IP の両方を使用する場合、2 つの仮想 IP アドレス" -"を作成し、次のようにエンドポイントを定義します。" - -msgid "" -"If you are using both private and public IP addresses, create two virtual " -"IPs and define your endpoint. For example:" -msgstr "" -"プライベート IP アドレスとパブリック IP アドレスの両方を使用する場合、2 つの" -"仮想 IP アドレスを作成し、次のようにエンドポイントを定義します。" - -msgid "" -"If you are using both private and public IP addresses, you should create two " -"virtual IPs and define your endpoints like this:" -msgstr "" -"プライベート IP アドレスとパブリック IP アドレスの両方を使用する場合、2 つの" -"仮想 IP アドレスを作成し、次のようにエンドポイントを定義すべきです。" - -msgid "" -"If you are using the Block Storage service OCF agent, some settings will be " -"filled in for you, resulting in a shorter configuration file:" -msgstr "" -"Block Storage サービス OCF エージェントを使用している場合、いくつかの設定は入" -"力されていて、設定ファイルを短くできます。" - -msgid "" -"If you are using the horizon Dashboard, edit the :file:`local_settings.py` " -"file to include the following:" -msgstr "" -"Dashboard を使用している場合、以下の内容を含めた :file:`local_settings.py` " -"ファイルを編集します。" - -msgid "" -"If you change the configuration from an old set-up that did not use HA " -"queues, restart the service:" -msgstr "" -"HA キューを使用していない古いセットアップから設定を変更した場合、サービスを再" -"起動します。" - -msgid "" -"If you use HAProxy as a load-balancing client to provide access to the " -"Galera Cluster, as described in the :doc:`controller-ha-haproxy`, you can " -"use the ``clustercheck`` utility to improve health checks." -msgstr "" -":doc:`controller-ha-haproxy` に記載されているとおり、Galera Cluster へのクラ" -"イアントアクセスを負荷分散するために、HAProxy を使用している場合、 " -"``clustercheck`` ユーティリティーを使用して、より良くヘルスチェックできます。" - -msgid "" -"In Corosync, configurations use redundant networking (with more than one " -"interface). This means you must select a Redundant Ring Protocol (RRP) mode " -"other than none. We recommend ``active`` as the RRP mode." -msgstr "" -"Corosync において、設定は (複数のインターフェースを用いた) 冗長ネットワークを" -"使用します。これは ``none`` ではなく、Redundant Ring Protocol (RRP) を選択す" -"る必要があることを意味します。``active`` が RRP の推奨モードです。" - -msgid "" -"In Red Hat Enterprise Linux or CentOS environments, this is a recommended " -"path to perform configuration. For more information, see the `RHEL docs " -"`_." -msgstr "" -"Red Hat Enterprise Linux や CentOS 環境の場合、設定するための推奨パスがありま" -"す。詳細は `RHEL docs `_ を参照してください。" - -msgid "" -"In a collapsed configuration, there is a single cluster of 3 or more nodes " -"on which every component is running." -msgstr "" -"この折りたたまれた設定では、すべてのコンポーネントが動作する、3 つ以上のノー" -"ドを持つシングルクラスターがあります。" - -msgid "" -"In addition to Galera Cluster, you can also achieve high availability " -"through other database options, such as PostgreSQL, which has its own " -"replication system." -msgstr "" -"Galera Cluster 以外に、独自のレプリケーションシステムを持つ PostgreSQL など、" -"他のデータベースにより高可用性を実現することもできます。" - -msgid "" -"In general, we can divide all the OpenStack components into three categories:" -msgstr "" -"一般的に、すべての OpenStack コンポーネントは 3 つのカテゴリーに分割できま" -"す。" - -msgid "" -"In the Galera Cluster, the Primary Component is the cluster of database " -"servers that replicate into each other. In the event that a cluster node " -"loses connectivity with the Primary Component, it defaults into a non-" -"operational state, to avoid creating or serving inconsistent data." -msgstr "" -"Galera Cluster では、Primary Component が、お互いにレプリケーションするデータ" -"ベースサーバーのクラスターです。クラスターノードが Primary Component との接続" -"性を失った場合、不整合なデータの作成や処理を避けるために、デフォルトで非稼働" -"状態になります。" - -msgid "" -"In the event that a component fails and a back-up system must take on its " -"load, most high availability systems will replace the failed component as " -"quickly as possible to maintain necessary redundancy. This way time spent in " -"a degraded protection state is minimized." -msgstr "" -"コンポーネントが故障して、バックアップシステムがその負荷を引き継ぐ場合、多く" -"の高可用性システムは、十分な冗長性を維持するために、できる限り早く故障したコ" -"ンポーネントを置き換えます。この方法は、デグレードされた保護状態を最小化する" -"ことに時間を使います。" - -msgid "" -"In the event that you need to restart any cluster node, you can do so. When " -"the database server comes back it, it establishes connectivity with the " -"Primary Component and updates itself to any changes it may have missed while " -"down." -msgstr "" -"クラスターノードをどれか再起動する必要がある場合、実行できます。データベース" -"サーバーが戻ってきたとき、Primary Component との接続を確立して、停止中に失っ" -"た変更をすべて自身に適用します。" - -msgid "" -"In theory, you can run the Block Storage service as active/active. However, " -"because of sufficient concerns, we recommend running the volume component as " -"active/passive only." -msgstr "" -"理論的には、Block Storage サービスをアクティブ/アクティブとして実行できます。" -"しかしながら、いくつかの課題のため、ボリュームコンポーネントをアクティブ/パッ" -"シブのみとして実行することが推奨されます。" - -msgid "" -"In this configuration, each service runs in a dedicated cluster of 3 or more " -"nodes." -msgstr "" -"この設定では、各サービスが 3 以上のノードの専用クラスターで動作します。" - -msgid "" -"Individual cluster nodes can stop and be restarted without issue. When a " -"database loses its connection or restarts, the Galera Cluster brings it back " -"into sync once it reestablishes connection with the Primary Component. In " -"the event that you need to restart the entire cluster, identify the most " -"advanced cluster node and initialize the Primary Component on that node." -msgstr "" -"各クラスターノードは、問題なく停止したり再起動したりできます。データベースが" -"接続を失ったり、再起動したりしたとき、Primary Component と再接続されると、" -"Galera Cluster は同期状態に戻ります。クラスター全体を再起動する必要があると" -"き、最も高度なクラスターノードを識別し、そのノードの Primary Component を初期" -"化します。" - -msgid "" -"Initialize the Primary Component on one cluster node. For servers that use " -"``init``, run the following command:" -msgstr "" -"1 つのクラスターノードにおいて Primary Component を初期化します。``init`` を" -"使用するサーバーの場合、以下のコマンドを実行します。" - -msgid "Initializing the cluster" -msgstr "クラスターの初期化" - -msgid "Install RabbitMQ" -msgstr "RabbitMQ のインストール" - -msgid "Install packages" -msgstr "パッケージのインストール" - -msgid "Installing Memcached" -msgstr "Memcached のインストール" - -msgid "Installing the operating system" -msgstr "オペレーティングシステムのインストール" - -msgid "Introduction to OpenStack high availability" -msgstr "OpenStack 高可用性の概要" - -msgid "" -"It is also possible to follow a segregated approach for one or more " -"components that are expected to be a bottleneck and use a collapsed approach " -"for the remainder." -msgstr "" -"1 つ以上のコンポーネントに対して、別々のアプローチをとることができますが、ボ" -"トルネックになり、思い出すことが難しいアプローチを使用する可能性があります。" - -msgid "" -"It is possible to add controllers to such an environment to convert it into " -"a truly highly available environment." -msgstr "" -"コントローラーをそのような環境に追加して、それを信頼できる高可用性環境に変え" -"られます。" - -msgid "" -"It is possible to deploy three different flavors of the Pacemaker " -"architecture. The two extremes are ``Collapsed`` (where every component runs " -"on every node) and ``Segregated`` (where every component runs in its own 3+ " -"node cluster)." -msgstr "" -"3 種類の Pacemaker アーキテクチャーを導入できます。2 つの極端なものは、" -"``Collapsed`` (すべてのコンポーネントがすべてのノードで動作する) と " -"``Segregated`` (すべてのコンポーネントが自身の 3+ ノードクラスターで動作す" -"る) です。" - -msgid "" -"It is storage and application-agnostic, and in no way specific to OpenStack." -msgstr "" -"ストレージとアプリケーションから独立していて、OpenStack 特有の方法はありませ" -"ん。" - -msgid "" -"It is very important that all members of the system share the same view of " -"who their peers are and whether or not they are in the majority. Failure to " -"do this leads very quickly to an internal `split-brain `_ state. This is where different parts of " -"the system are pulling in different and incompatible directions." -msgstr "" -"システムのすべてのメンバーが、誰がメンバーであるか、それらが多数派かどうかに" -"ついて、同じビューを共有することが非常に重要です。これを行う障害は、かなりす" -"ぐに `スプリットブレイン `_ 状態を引き起こします。これは、システムの別々の部分が、" -"別々な互換性のない方向を引き込むことです。" - -msgid "List the nodes known to the quorum service" -msgstr "クォーラムサービスが把握しているノードの一覧表示" - -msgid "Load distribution" -msgstr "負荷分散" - -msgid "" -"Log in to the database client and grant the ``clustercheck`` user " -"``PROCESS`` privileges:" -msgstr "" -"データベースクライアントにログインして、``clustercheck`` ユーザーに " -"``PROCESS`` 権限を与えます。" - -msgid "" -"Maintains a redundant instance that can be brought online when the active " -"service fails. For example, OpenStack writes to the main database while " -"maintaining a disaster recovery database that can be brought online if the " -"main database fails." -msgstr "" -"動作中のサービスが停止したとき、オンラインにできる冗長インスタンスを維持しま" -"す。例えば、メインのデータベースが故障したとき、オンラインになる災害対策デー" -"タベースを維持する限り、OpenStack はメインのデータベースに書き込みます。" - -msgid "Make sure `pcs` is running and configured to start at boot time:" -msgstr "" -"`pcs` が実行中で、ブート時に起動するよう設定されていることを確認してくださ" -"い。" - -msgid "" -"Make sure to save the changes once you are done. This will vary depending on " -"your distribution:" -msgstr "" -"完了後、きちんと変更を保存してください。これは、お使いのディストリビューショ" -"ンにより異なります。" - -msgid "" -"Making the Block Storage (cinder) API service highly available in active/" -"active mode involves:" -msgstr "" -"Block Storage (cinder) API サービスのアクティブ/アクティブモードでの高可用性" -"は、以下が関係します。" - -msgid "" -"Making the Block Storage API service highly available in active/passive mode " -"involves:" -msgstr "" -"Block Storage API サービスのアクティブ/パッシブモードでの高可用性は、以下が関" -"係します。" - -msgid "" -"Making the OpenStack Identity service highly available in active and passive " -"mode involves:" -msgstr "" -"OpenStack Identity Service をアクティブ・パッシブモードで高可用性にすること" -"は、次のことが関連します。" - -msgid "" -"Making the RabbitMQ service highly available involves the following steps:" -msgstr "RabbitMQ サービスを高可用性にすることは、以下の手順が関連します。" - -msgid "" -"Making the Shared File Systems (manila) API service highly available in " -"active/passive mode involves:" -msgstr "" -"Shared File Systems (manila) API サービスのアクティブ/パッシブモードでの高可" -"用性は、以下が関係します。" - -msgid "Management" -msgstr "マネジメント" - -msgid "" -"Managing the Block Storage API daemon with the Pacemaker cluster manager" -msgstr "" -"Pacemaker クラスターマネージャーを用いた Block Storge API デーモンの管理" - -msgid "" -"Many services can act in an active/active capacity, however, they usually " -"require an external mechanism for distributing requests to one of the " -"available instances. The proxy server can serve this role." -msgstr "" -"ほとんどのサービスがアクティブ/アクティブ機能で動作できます。しかしながら、通" -"常は分散されたリクエストが利用できるインスタンスのどれかになる外部機能が必要" -"になります。プロキシーサーバーはこの役割になれます。" - -msgid "Maximum number of network nodes to use for the HA router." -msgstr "HA ルーターのために使用するネットワークノードの最大数" - -msgid "" -"Maximum retries with trying to connect to RabbitMQ (infinite by default):" -msgstr "RabbitMQ に接続を試行する最大回数 (デフォルトで無制限):" - -msgid "Memcached" -msgstr "Memcached" - -msgid "" -"Memcached is a general-purpose distributed memory caching system. It is used " -"to speed up dynamic database-driven websites by caching data and objects in " -"RAM to reduce the number of times an external data source must be read." -msgstr "" -"Memcached は汎用の分散メモリーキャッシュシステムです。データやオブジェクトを" -"メモリーにキャッシュすることにより、外部データソースの読み込み回数を減らし、" -"データベースを利用した動的 Web サイトを高速化するために使用されます。" - -msgid "" -"Memcached is a memory cache demon that can be used by most OpenStack " -"services to store ephemeral data, such as tokens." -msgstr "" -"Memcached は、ほとんどの OpenStack サービスがトークンなどの一時的なデータを保" -"存するために使用できる、メモリーキャッシュのデーモンです。" - -msgid "" -"Memcached uses a timeout value, which should always be set to a value that " -"is higher than the heartbeat value set for Telemetry." -msgstr "" -"Memcached は、タイムアウト値を使用します。これは、Telemetry 向けに設定された" -"ハートビート値よりも大きい値を常に設定されるべきです。" - -msgid "Memory" -msgstr "メモリー" - -msgid "" -"Memory caching is managed by `oslo.cache `_. This " -"ensures consistency across all projects when using multiple Memcached " -"servers. The following is an example configuration with three hosts:" -msgstr "" -"メモリーキャッシュは `oslo.cache `_ により管理されます。これに" -"より、複数の Memcached サーバーの使用時に全プロジェクト間で一貫性を保証できま" -"す。以下の例は 3 ノードの設定例です。" - -msgid "Messaging service for high availability" -msgstr "メッセージサービスの高可用性" - -msgid "" -"Minimum number of network nodes to use for the HA router. A new router can " -"be created only if this number of network nodes are available." -msgstr "" -"HA ルーターのために使用するネットワークノードの最小数。この数だけのネットワー" -"クノードを利用できる場合のみ、新規ルーターを作成できます。" - -msgid "" -"Mirrored queues in RabbitMQ improve the availability of service since it is " -"resilient to failures." -msgstr "" -"RabbitMQ のキューミラーは、障害耐性があるので、サービスの可用性を改善します。" - -msgid "Mixed" -msgstr "Mixed" - -msgid "MongoDB" -msgstr "MongoDB" - -msgid "More information is available in the RabbitMQ documentation:" -msgstr "詳細は RabbitMQ のドキュメントにあります。" - -msgid "" -"Most OpenStack services can use Memcached to store ephemeral data such as " -"tokens. Although Memcached does not support typical forms of redundancy such " -"as clustering, OpenStack services can use almost any number of instances by " -"configuring multiple hostnames or IP addresses." -msgstr "" -"ほとんどの OpenStack サービスは、トークンなどの一時データを保存するために " -"Memcached を使用できます。Memcached はクラスターなどの一般的な形式の冗長化を" -"サポートしませんが、OpenStack サービスは複数のホスト名や IP アドレスを設定す" -"ることにより、ほぼ任意の数のインスタンスを使用できます。" - -msgid "" -"Most distributions ship an example configuration file (:file:`corosync.conf." -"example`) as part of the documentation bundled with the Corosync package. An " -"example Corosync configuration file is shown below:" -msgstr "" -"ほとんどのディストリビューションは、Corosync パッケージに同梱されているドキュ" -"メントの一部として、サンプル設定ファイル (:file:`corosync.conf.example`) を同" -"梱しています。" - -msgid "" -"Most high availability systems fail in the event of multiple independent " -"(non-consequential) failures. In this case, most implementations favor " -"protecting data over maintaining availability." -msgstr "" -"多くの高可用性システムは、複数の独立した (不連続な) 障害が発生すると停止しま" -"す。この場合、多くのシステムは可用性の維持よりデータを保護することを優先しま" -"す。" - -msgid "" -"Most high availability systems guarantee protection against system downtime " -"and data loss only in the event of a single failure. However, they are also " -"expected to protect against cascading failures, where a single failure " -"deteriorates into a series of consequential failures. Many service providers " -"guarantee a :term:`Service Level Agreement (SLA)` including uptime " -"percentage of computing service, which is calculated based on the available " -"time and system downtime excluding planned outage time." -msgstr "" -"多くの高可用性システムは、単一障害事象のみにおいて、システム停止時間やデータ" -"損失に対する保護を保証します。しかしながら、単一障害が一連の障害を悪化させて" -"いく、段階的な障害に対しても保護されることが期待されます。多くのサービスプロ" -"バイダーは、コンピューティングサービスの稼働率などの :term:`Service Level " -"Agreement (SLA)` を保証します。それは、計画停止を除くシステム停止時間と稼働時" -"間に基づいて計算されます。" - -msgid "" -"Multicast groups (``mcastaddr``) must not be reused across cluster " -"boundaries. No two distinct clusters should ever use the same multicast " -"group. Be sure to select multicast addresses compliant with `RFC 2365, " -"\"Administratively Scoped IP Multicast\" `_." -msgstr "" -"マルチキャストグループ (``mcastaddr``) は、クラスターの境界を越えて再利用でき" -"ません。2 つの独立したクラスターは、同じマルチキャストグループを使用すべきで" -"はありません。選択したマルチキャストアドレス をきちんと`RFC 2365, " -"\"Administratively Scoped IP Multicast\" `_ に準拠させてください。" - -msgid "" -"MySQL databases, including MariaDB and Percona XtraDB, manage their " -"configurations using a ``my.cnf`` file, which is typically located in the ``/" -"etc`` directory. Configuration options available in these databases are also " -"available in Galera Cluster, with some restrictions and several additions." -msgstr "" -"MariaDB や Percona XtraDB を含む、MySQL は ``my.cnf`` ファイルを使用して設定" -"を管理します。一般的に ``/etc`` ディレクトリーにあります。これらのデータベー" -"スにおいて利用できる設定オプションは、Galera Cluster においても利用できます。" -"いくつかの制約や追加があります。" - -msgid "NIC" -msgstr "NIC" - -msgid "Network components, such as switches and routers" -msgstr "スイッチやルーターなどのネットワークの構成要素" - -msgid "Networking L2 agent" -msgstr "Neutron L2 エージェント" - -msgid "No firewalls between the hosts" -msgstr "ホスト間のファイアウォールなし" - -msgid "Node type" -msgstr "ノード種別" - -msgid "Note the following about the recommended interface configuration:" -msgstr "インターフェースの推奨設定に関する注意事項がいくつかあります。" - -msgid "Note the following:" -msgstr "以下に注意してください。" - -msgid "" -"Older versions of some distributions, which do not have an up-to-date policy " -"for securing Galera, may also require SELinux to be more relaxed about " -"database access and actions:" -msgstr "" -"いくつかのディストリビューションの古いバージョンは、Galera をセキュア化するた" -"めの最新ポリシーを提供していません。データベースへのアクセスと操作のために " -"SELinux をもう少しゆるく設定する必要があるかもしれません。" - -msgid "On CentOS, RHEL, openSUSE, and SLES:" -msgstr "CentOS、RHEL、openSUSE、SLES の場合:" - -msgid "" -"On RHEL-based systems, create resources for cinder's systemd agents and " -"create constraints to enforce startup/shutdown ordering:" -msgstr "" -"RHEL 系のシステムでは、cinder の systemd エージェント向けリソースを作成して、" -"起動と停止の順番を強制する制約を作成します。" - -msgid "" -"On ``3306``, Galera Cluster uses TCP for database client connections and " -"State Snapshot Transfers methods that require the client, (that is, " -"``mysqldump``)." -msgstr "" -"``3306`` では、Galera Cluster がデータベースクライアント接続のために TCP を使" -"用します。また、クライアント 、つまり ``mysqldump`` を必要とする State " -"Snapshot Transfers メソッドを使用します。" - -msgid "" -"On ``4444``, Galera Cluster uses TCP for all other State Snapshot Transfer " -"methods." -msgstr "" -"``4444`` では、Galera Cluster が他のすべての State Snapshot Transfer メソッド" -"のために TCP を使用します。" - -msgid "" -"On ``4567``, Galera Cluster uses TCP for replication traffic. Multicast " -"replication uses both TCP and UDP on this port." -msgstr "" -"``4567`` では、Galera Cluster が複製通信のために TCP を使用します。マルチキャ" -"ストレプリケーションは、このポートで TCP と UDP を使用します。" - -msgid "On ``4568``, Galera Cluster uses TCP for Incremental State Transfers." -msgstr "" -"``4568`` では、Galera Cluster が Incremental State Transfers のために TCP を" -"使用します。" - -msgid "" -"On any host that is meant to be part of a Pacemaker cluster, establish " -"cluster communications through the Corosync messaging layer. This involves " -"installing the following packages (and their dependencies, which your " -"package manager usually installs automatically):" -msgstr "" -"Pacemaker クラスターに参加させる各ホストで、まず Corosync メッセージレイヤー" -"でクラスター通信を確立します。これには、以下のパッケージをインストールする必" -"要があります (依存パッケージも含みます。依存パッケージは通常パッケージマネー" -"ジャーにより自動的にインストールされます)。" - -msgid "" -"On each target node, verify the correct owner, group, and permissions of the " -"file :file:`erlang.cookie`:" -msgstr "" -"各ターゲットノードにおいて、 :file:`erlang.cookie` の所有者、所有グループ、" -"パーミッションが正しいことを確認します。" - -msgid "" -"On the infrastructure layer, the SLA is the time for which RabbitMQ cluster " -"reassembles. Several cases are possible. The Mnesia keeper node is the " -"master of the corresponding Pacemaker resource for RabbitMQ. When it fails, " -"the result is a full AMQP cluster downtime interval. Normally, its SLA is no " -"more than several minutes. Failure of another node that is a slave of the " -"corresponding Pacemaker resource for RabbitMQ results in no AMQP cluster " -"downtime at all." -msgstr "" -"インフラ層では、SLA は RabbitMQ クラスターが再構成されるまでの時間です。いく" -"つかの場合では実現できます。Mnesia keeper ノードは、対応する RabbitMQ 用 " -"Pacemaker リソースのマスターです。停止したとき、結果として AMQP クラスターの" -"停止時間になります。通常、その SLA は、数分間より長くなることはありません。対" -"応する RabbitMQ 用 Pacemaker リソースのスレーブになっている、他のノードの停止" -"により AMQP クラスターが停止することはありません。" - -msgid "" -"Once completed, commit your configuration changes by entering :command:" -"`commit` from the :command:`crm configure` menu. Pacemaker then starts the " -"Block Storage API service and its dependent resources on one of your nodes." -msgstr "" -"これらの手順の完了後、:command:`crm configure` メニューから :command:" -"`commit` と入力し、設定の変更をコミットします。Pacemaker は Block Storage " -"API サービスおよび依存するリソースを同じノードに起動します。" - -msgid "" -"Once created, synchronize the :file:`corosync.conf` file (and the :file:" -"`authkey` file if the secauth option is enabled) across all cluster nodes." -msgstr "" -"作成され同期された後、 :file:`corosync.conf` ファイル (および、secauth オプ" -"ションが有効化されている場合、 :file:`authkey` ファイル) が、すべてのクラス" -"ターノードにわたり同期されます。" - -msgid "" -"Once the database server starts, check the cluster status using the " -"``wsrep_cluster_size`` status variable. From the database client, run the " -"following command:" -msgstr "" -"データベースサーバーが起動すると、``wsrep_cluster_size`` 状態変数を使用して、" -"クラスター状態を確認します。データベースクライアントから、以下のコマンドを実" -"行します。" - -msgid "" -"One physical server can support multiple nodes, each of which supports " -"almost any number of network interfaces." -msgstr "" -"1 台の物理サーバーで複数のノードを構築できます。各ノードは複数のネットワーク" -"インターフェースを持てます。" - -msgid "" -"Only one instance for the central and compute agent service(s) is able to " -"run and function correctly if the ``backend_url`` option is not set." -msgstr "" -"``backend_url`` オプションが設定されていない場合、中央エージェントとコン" -"ピュートエージェントのサービスのインスタンスが 、1 つだけ動作できて正しく機能" -"します。" - -msgid "" -"OpenStack APIs: APIs that are HTTP(s) stateless services written in python, " -"easy to duplicate and mostly easy to load balance." -msgstr "" -"OpenStack API: これらは HTTP のステートレスサービスです。Python で書かれてい" -"て、簡単に冗長化でき、かなり簡単に負荷分散できます。" - -msgid "OpenStack Block Storage" -msgstr "OpenStack Block Storage" - -msgid "OpenStack Compute" -msgstr "OpenStack Compute" - -msgid "OpenStack High Availability Guide" -msgstr "OpenStack 高可用性ガイド" - -msgid "OpenStack Networking" -msgstr "OpenStack Networking" - -msgid "" -"OpenStack currently meets such availability requirements for its own " -"infrastructure services, meaning that an uptime of 99.99% is feasible for " -"the OpenStack infrastructure proper. However, OpenStack does not guarantee " -"99.99% availability for individual guest instances." -msgstr "" -"OpenStack 自体のインフラストラクチャーは、現在その可用性要件を満たせます。つ" -"まり、適切な OpenStack インフラストラクチャーの 99.99% の稼働率が実現可能で" -"す。しかしながら、OpenStack は個々のゲストインスタンスの可用性 99.99% を保証" -"できません。" - -msgid "" -"OpenStack does not require a significant amount of resources and the " -"following minimum requirements should support a proof-of-concept high " -"availability environment with core services and several instances:" -msgstr "" -"OpenStack は膨大なリソースを必要としません。以下の最小要件は、コアサービスと" -"いくつかのインスタンスを動かす検証 (POC) 環境には対応できることでしょう。" - -msgid "" -"OpenStack is a set of services exposed to the end users as HTTP(s) APIs. " -"Additionally, for your own internal usage, OpenStack requires an SQL " -"database server and AMQP broker. The physical servers, where all the " -"components are running, are called controllers. This modular OpenStack " -"architecture allows you to duplicate all the components and run them on " -"different controllers. By making all the components redundant, it is " -"possible to make OpenStack highly available." -msgstr "" -"OpenStack は、HTTP(s) API としてエンドユーザーに公開されるサービス群です。さ" -"らに、その内部利用のために、OpenStack は SQL データベースサーバーと AMQP ブ" -"ローカーを必要とします。すべてのコンポーネントが動作している、物理サーバーは" -"よくコントローラーと呼ばれます。このモジュール型の OpenStack アーキテクチャー" -"により、すべてのコンポーネントを複製して、それらを別々のコントローラーで実行" -"できます。すべてのコンポーネントを冗長にすることにより、OpenStack の高可用性" -"を実現できます。" - -msgid "OpenStack network nodes contain:" -msgstr "OpenStack ネットワークノードでは、以下のものが動作します。" - -msgid "" -"OpenStack services are configured with the list of these IP addresses so " -"they can select one of the addresses from those available." -msgstr "" -"OpenStack サービスは、利用できるものから 1 つを選択できるよう、これらの IP ア" -"ドレスの一覧を用いて設定されます。" - -msgid "" -"OpenStack supports a single-controller high availability mode that is " -"managed by the services that manage highly available environments but is not " -"actually highly available because no redundant controllers are configured to " -"use for failover. This environment can be used for study and demonstration " -"but is not appropriate for a production environment." -msgstr "" -"OpenStack は、シングルコントローラーの高可用性モードをサポートします。これ" -"は、高可用性環境を管理するソフトウェアにより、サービスが管理されますが、コン" -"トローラーがフェイルオーバーのために冗長化設定されていないため、実際には高可" -"用性ではありません。この環境は、学習やデモのために使用できますが、本番環境と" -"しては適していません。" - -msgid "Overview of highly available controllers" -msgstr "高可用性コントローラーの概要" - -msgid "Pacemaker cluster stack" -msgstr "Pacemaker クラスタースタック" - -msgid "" -"Pacemaker does not inherently understand the applications it manages. " -"Instead, it relies on resource agents (RAs) that are scripts that " -"encapsulate the knowledge of how to start, stop, and check the health of " -"each application managed by the cluster." -msgstr "" -"Pacemaker は、管理するアプリケーションを本質的に理解してません。代わりに、リ" -"ソースエージェント (RA) に依存します。これは、クラスターにより管理される各ア" -"プリケーションの起動、停止、ヘルスチェック方法に関する知識を隠蔽するスクリプ" -"トです。" - -msgid "" -"Pacemaker now starts the OpenStack Identity service and its dependent " -"resources on all of your nodes." -msgstr "" -"Pacemaker は OpenStack Identity API サービスおよび依存するリソースをすべての" -"ノードに起動します。" - -msgid "" -"Pacemaker now starts the Shared File Systems API service and its dependent " -"resources on one of your nodes." -msgstr "" -"Pacemaker は Shared File Systems API サービスおよび依存するリソースを同じノー" -"ドに起動します。" - -msgid "" -"Pacemaker ships with a large set of OCF agents (such as those managing MySQL " -"databases, virtual IP addresses, and RabbitMQ), but can also use any agents " -"already installed on your system and can be extended with your own (see the " -"`developer guide `_)." -msgstr "" -"Pacemaker は、(MySQL データベース、仮想 IP アドレス、RabbitMQ などの) OCF " -"エージェントをたくさん同梱していますが、お使いのシステムにインストールした任" -"意のエージェントも使用できます。また、自身で拡張することもできます " -"(`developer guide `_ 参照)。" - -msgid "" -"Pacemaker then starts the OpenStack Image API service and its dependent " -"resources on one of your nodes." -msgstr "" -"Pacemaker は OpenStack Image API サービスおよび依存するリソースを同じノードに" -"起動します。" - -msgid "" -"Pacemaker uses an event-driven approach to cluster state processing. The " -"``cluster-recheck-interval`` parameter (which defaults to 15 minutes) " -"defines the interval at which certain Pacemaker actions occur. It is usually " -"prudent to reduce this to a shorter interval, such as 5 or 3 minutes." -msgstr "" -"Pacemaker は、クラスターの状態を処理するために、イベントドリブンのアプローチ" -"を使用します。 ``cluster-recheck-interval`` パラメーター (デフォルトは 15 " -"分) が、ある Pacemaker のアクションが発生する間隔を定義します。通常、5 分や " -"3 分など、より短い間隔に減らすことは慎重になるべきです。" - -msgid "Parameter" -msgstr "パラメーター" - -msgid "" -"Persistent block storage can survive instance termination and can also be " -"moved across instances like any external storage device. Cinder also has " -"volume snapshots capability for backing up the volumes." -msgstr "" -"永続ブロックストレージは、インスタンス終了後に残存して、任意の外部ストレージ" -"デバイスのようにインスタンスを越えて移動できます。Cinder は、ボリュームをバッ" -"クアップするために、ボリュームスナップショット機能も持ちます。" - -msgid "" -"Persistent storage exists outside all instances. Two types of persistent " -"storage are provided:" -msgstr "" -"永続ストレージは、すべてのインスタンスの外部にあります。2 種類の永続ストレー" -"ジが提供されます。" - -msgid "Possible options are:" -msgstr "利用できるオプションは次のとおりです。" - -msgid "Prerequisites" -msgstr "前提条件" - -msgid "Processor Cores" -msgstr "プロセッサーのコア" - -msgid "" -"Production servers should run (at least) three RabbitMQ servers for testing " -"and demonstration purposes, however it is possible to run only two servers. " -"In this section, we configure two nodes, called ``rabbit1`` and ``rabbit2``. " -"To build a broker, ensure that all nodes have the same Erlang cookie file." -msgstr "" -"本番サーバーは、(少なくとも) 3 つの RabbitMQ サーバーを実行すべきです。しかし" -"ながらテストやデモの目的の場合、サーバーを 2 つだけ実行することもできます。こ" -"のセクションでは、``rabbit1`` と ``rabbit2`` という 2 つのノードを設定しま" -"す。ブローカーを構築するために、すべてのノードがきちんと同じ Erlang クッキー" -"ファイルを持ちます。" - -msgid "Proxy server" -msgstr "プロキシーサーバー" - -msgid "Query the quorum status" -msgstr "クォーラム状態を問い合わせます" - -msgid "" -"Quorum becomes important when a failure causes the cluster to split in two " -"or more partitions. In this situation, you want the majority members of the " -"system to ensure the minority are truly dead (through fencing) and continue " -"to host resources. For a two-node cluster, no side has the majority and you " -"can end up in a situation where both sides fence each other, or both sides " -"are running the same services. This can lead to data corruption." -msgstr "" -"障害がクラスターを 2 つ以上のパーティションに分割した場合、クォーラムは重要に" -"なります。この状況では、システムの多数派のメンバーが、少数派を確実に (フェン" -"ス経由で) 停止させ、ホストリソースを継続することを確実にしたいでしょう。2 " -"ノードクラスターの場合、多数派になる側がなく、両方がお互いをフェンスする状" -"況、または両方が同じサービスを実行する状況になる可能性があります。これはデー" -"タ破損を引き起こします。" - -msgid "RAID drives" -msgstr "RAID ドライブ" - -msgid "RabbitMQ" -msgstr "RabbitMQ" - -msgid "" -"RabbitMQ nodes fail over on the application and the infrastructure layers." -msgstr "" -"RabbitMQ ノードは、アプリケーションとインフラ層の両方においてフェイルオーバー" -"します。" - -msgid "Receive notifications of quorum state changes" -msgstr "クォーラムの状態変更の通知を受け付けます" - -msgid "Recommended for testing." -msgstr "テスト向けの推奨。" - -msgid "Recommended solution by the Tooz project." -msgstr "Tooz プロジェクトによる推奨ソリューション。" - -msgid "Red Hat" -msgstr "Red Hat" - -msgid "Redundancy and failover" -msgstr "冗長性とフェールオーバー" - -msgid "" -"Regardless of which flavor you choose, we recommend that clusters contain at " -"least three nodes so that you can take advantage of `quorum `_." -msgstr "" -"選択するフレーバーに関わらず、クラスターは `quorum `_ の利点を得るた" -"めに、少なくとも 3 ノードを持つことを推奨します。" - -msgid "" -"Replace ``CINDER_DBPASS`` with the password you chose for the Block Storage " -"database." -msgstr "" -"``CINDER_DBPASS`` を Block Storage データベース用に選択したパスワードで置き換" -"えます。" - -msgid "" -"Replace ``CINDER_DBPASS`` with the password you chose for the Block Storage " -"database. Replace ``CINDER_PASS`` with the password you chose for the " -"``cinder`` user in the Identity service." -msgstr "" -"``CINDER_DBPASS`` を Block Storage サービス用に選択したパスワードで置き換えま" -"す。``CINDER_PASS`` を Identity サービスで ``cinder`` ユーザー用に選択したパ" -"スワードで置き換えます。" - -msgid "" -"Replace the IP addresses given here with comma-separated list of each " -"OpenStack database in your cluster." -msgstr "" -"ここで指定された IP アドレスを、お使いのクラスターにある OpenStack の各データ" -"ベースのコンマ区切りリストに置き換えます。" - -msgid "" -"Restart AppArmor. For servers that use ``init``, run the following command:" -msgstr "" -"AppArmor を再起動します。``init`` を使用するサーバーの場合、以下のコマンドを" -"実行します。" - -msgid "Restart the HAProxy service." -msgstr "HAProxy サービスを再起動します。" - -msgid "Restart the host or, to make changes work immediately, invoke:" -msgstr "" -"すぐに変更を反映するため、ホストを再起動します。または、以下を実行します。" - -msgid "Restarting the cluster" -msgstr "クラスターの再起動" - -msgid "Retry connecting with RabbitMQ:" -msgstr "RabbitMQ の接続を再試行します。" - -msgid "Run Networking DHCP agent" -msgstr "Networking DHCP エージェントの実行" - -msgid "Run Networking L3 agent" -msgstr "Networking L3 エージェントの実行" - -msgid "Run the following commands on each node except the first one:" -msgstr "1 番目のノード以外の各ノードで以下のコマンドを実行します。" - -msgid "" -"Run the following commands to download the OpenStack Identity resource to " -"Pacemaker:" -msgstr "" -"以下のコマンドを実行して、OpenStack Identity のリソースを Pacemaker にダウン" -"ロードします。" - -msgid "SELinux" -msgstr "SELinux" - -msgid "SELinux and AppArmor set to permit access to ``mysqld``" -msgstr "``mysqld`` へのアクセス許可を設定した SELinux や AppArmor" - -msgid "SUSE" -msgstr "SUSE" - -msgid "" -"SUSE Enterprise Linux and SUSE-based distributions, such as openSUSE, use a " -"set of OCF agents for controlling OpenStack services." -msgstr "" -"SUSE Enterprise Linux、openSUSE などの SUSE 系ディストリビューションは、" -"OpenStack のサービスを制御するために OCF エージェント群を使用します。" - -msgid "" -"Security-Enhanced Linux is a kernel module for improving security on Linux " -"operating systems. It is commonly enabled and configured by default on Red " -"Hat-based distributions. In the context of Galera Cluster, systems with " -"SELinux may block the database service, keep it from starting, or prevent it " -"from establishing network connections with the cluster." -msgstr "" -"Security-Enhanced Linux は、Linux オペレーティングシステムにおいてセキュリ" -"ティーを向上させるためのカーネルモジュールです。Red Hat 系のディストリビュー" -"ションでは、一般的にデフォルトで有効化され、設定されています。Galera Cluster " -"の観点では、SELinux を有効化したシステムは、データベースサービスをブロックす" -"るかもしれません。また、クラスターを起動しても、ネットワーク接続を確立できな" -"いかもしれません。" - -msgid "Segregated" -msgstr "Segregated" - -msgid "" -"Services like RabbitMQ and Galera have complicated boot-up sequences that " -"require co-ordination, and often serialization, of startup operations across " -"all machines in the cluster. This is especially true after a site-wide " -"failure or shutdown where you must first determine the last machine to be " -"active." -msgstr "" -"RabbitMQ や Galera などのサービスは、複雑な起動順番を持ちます。クラスター内の" -"全マシンに渡り、起動処理の協調動作を必要とし、しばしば順番に実行する必要があ" -"ります。とくに、サイト全体の障害後、最後にアクティブにするマシンを判断する必" -"要のあるシャットダウンのときに当てはまります。" - -msgid "Set a password for hacluster user on each host:" -msgstr "各ホストにおいて hacluster ユーザーのパスワードを設定します。" - -msgid "Set automatic L3 agent failover for routers" -msgstr "ルーター向け L3 エージェントの自動フェイルオーバーの設定" - -msgid "Set basic cluster properties" -msgstr "基本的なクラスターのプロパティの設定" - -msgid "Set up Corosync with multicast" -msgstr "マルチキャストを使う場合の Corosync の設定" - -msgid "Set up Corosync with unicast" -msgstr "ユニキャストを使う場合の Corosync の設定" - -msgid "Set up Corosync with votequorum library" -msgstr "votequorum ライブラリーを使う場合の Corosync の設定" - -msgid "Set up the cluster with `crmsh`" -msgstr "`crmsh` を用いたクラスターのセットアップ" - -msgid "Set up the cluster with pcs" -msgstr "pcs を用いたセットアップ" - -msgid "" -"Setting ``last_man_standing`` to 1 enables the Last Man Standing (LMS) " -"feature. By default, it is disabled (set to 0). If a cluster is on the " -"quorum edge (``expected_votes:`` set to 7; ``online nodes:`` set to 4) for " -"longer than the time specified for the ``last_man_standing_window`` " -"parameter, the cluster can recalculate quorum and continue operating even if " -"the next node will be lost. This logic is repeated until the number of " -"online nodes in the cluster reaches 2. In order to allow the cluster to step " -"down from 2 members to only 1, the ``auto_tie_breaker`` parameter needs to " -"be set. We do not recommended this for production environments." -msgstr "" -"``last_man_standing`` を 1 に設定することにより、Last Man Standing (LMS) 機能" -"を有効化できます。デフォルトで、無効化されています (0 に設定)。クラスターが、" -"``last_man_standing_window`` パラメーターに指定した時間より長く、クォーラム" -"エッジ (``expected_votes:`` が 7 に設定、 ``online nodes:`` が 4 に設定) にあ" -"る場合、クラスターはクォーラムを再計算して、次のノードが失われても動作を継続" -"します。この論理は、クラスターのオンラインノードが 2 になるまで繰り返されま" -"す。クラスターが 2 つのメンバーから 1 つだけに減ることを許可するために、 " -"``auto_tie_breaker`` パラメーターを設定する必要があります。これは本番環境では" -"推奨されません。" - -msgid "" -"Setting the ``pe-warn-series-max``, ``pe-input-series-max``, and ``pe-error-" -"series-max`` parameters to 1000 instructs Pacemaker to keep a longer history " -"of the inputs processed and errors and warnings generated by its Policy " -"Engine. This history is useful if you need to troubleshoot the cluster." -msgstr "" -"パラメーター ``pe-warn-series-max``, ``pe-input-series-max``, ``pe-error-" -"series-max`` を 1000 に設定することにより、Pacemaker が処理した入力履歴、ポリ" -"シーエンジンにより生成されたログと警告を保持するよう指定できます。この履歴" -"は、クラスターのトラブルシューティングを必要とする場合に役立ちます。" - -msgid "Simplified process for adding/removing of nodes" -msgstr "ノードの追加と削除を簡単化したプロセス" - -msgid "" -"Since all API access is directed to the proxy, adding or removing nodes has " -"no impact on the configuration of other services. This can be very useful in " -"upgrade scenarios where an entirely new set of machines can be configured " -"and tested in isolation before telling the proxy to direct traffic there " -"instead." -msgstr "" -"すべての API アクセスがプロキシーに向けられているので、ノードの追加や削除は、" -"他のサービスの設定に影響を与えません。これにより、プロキシーが新しいマシン群" -"に通信を向ける前に、それらを独立した環境において設定してテストする、アップグ" -"レードシナリオにおいて非常に役立ちます。" - -msgid "" -"Since the cluster is a single administrative domain, it is acceptable to use " -"the same password on all nodes." -msgstr "" -"クラスターは単一の管理ドメインなので、一般的にすべてのノードで同じパスワード" -"を使用できます。" - -msgid "Single-controller high availability mode" -msgstr "シングルコントローラーの高可用性モード" - -msgid "" -"Specifying ``corosync_votequorum`` enables the votequorum library. This is " -"the only required option." -msgstr "" -"``corosync_votequorum`` を指定することにより、votequorum ライブラリーを有効化" -"します。これは唯一の必須オプションです。" - -msgid "Start Corosync" -msgstr "Corosync の開始" - -msgid "Start Pacemaker" -msgstr "Pacemaker の開始" - -msgid "Start ``corosync`` with systemd unit file:" -msgstr "systemd ユニットファイルを用いた ``corosync`` の起動:" - -msgid "Start ``corosync`` with the LSB init script:" -msgstr "LSBinit スクリプトを用いた ``corosync`` の起動:" - -msgid "Start ``corosync`` with upstart:" -msgstr "upstart を用いた ``corosync`` の起動:" - -msgid "Start ``pacemaker`` with the LSB init script:" -msgstr "LSBinit スクリプトを用いた ``pacemaker`` の起動:" - -msgid "Start ``pacemaker`` with the systemd unit file:" -msgstr "systemd ユニットファイルを用いた ``pacemaker`` の起動:" - -msgid "Start ``pacemaker`` with upstart:" -msgstr "upstart を用いた ``pacemaker`` の起動:" - -msgid "" -"Start the ``xinetd`` daemon for ``clustercheck``. For servers that use " -"``init``, run the following commands:" -msgstr "" -"``clustercheck`` の ``xinetd`` デーモンを起動します。 ``init`` を使用するサー" -"バーの場合、以下のコマンドを実行します。" - -msgid "" -"Start the database server on all other cluster nodes. For servers that use " -"``init``, run the following command:" -msgstr "" -"すべての他のクラスターノードにおいてデータベースサーバーを起動します。" -"``init`` を使用するサーバーに対して、以下のコマンドを実行します。" - -msgid "" -"Start the message queue service on all nodes and configure it to start when " -"the system boots. On Ubuntu, it is configured by default." -msgstr "" -"すべてのノードにおいてメッセージキューサービスを起動し、システム起動時に起動" -"するよう設定します。Ubuntu の場合、デフォルトで設定されます。" - -msgid "Stateful service" -msgstr "ステートフルサービス" - -msgid "" -"Stateful services can be configured as active/passive or active/active, " -"which are defined as follows:" -msgstr "" -"ステートフルサービスは、アクティブ/パッシブまたはアクティブ/アクティブとして" -"設定できます。これらは以下のように定義されます。" - -msgid "Stateless service" -msgstr "ステートレスサービス" - -msgid "Stateless versus stateful services" -msgstr "ステートレスサービスとステートフルサービス" - -msgid "" -"Stop RabbitMQ and copy the cookie from the first node to each of the other " -"node(s):" -msgstr "" -"RabbitMQ を停止して、1 番目のノードから他のノードにクッキーをコピーします。" - -msgid "Storage" -msgstr "ストレージ" - -msgid "Storage back end" -msgstr "ストレージバックエンド" - -msgid "Storage components" -msgstr "ストレージ構成要素" - -msgid "" -"System downtime: Occurs when a user-facing service is unavailable beyond a " -"specified maximum amount of time." -msgstr "" -"システム停止時間: 指定された最大時間を超えて、ユーザーサービスが利用不可能に" -"なること。" - -msgid "Telemetry" -msgstr "Telemetry" - -msgid "Telemetry polling agent" -msgstr "Telemetry ポーリングエージェント" - -msgid "" -"The :command:`crm configure` command supports batch input. Copy and paste " -"the lines in the next step into your live Pacemaker configuration and then " -"make changes as required." -msgstr "" -":command:`crm configure` はバッチ入力をサポートします。そのため、現在の " -"pacemaker 設定の中に上の行をコピー・ペーストし、適宜変更を反映できます。" - -msgid "" -"The :command:`crm configure` supports batch input. Copy and paste the lines " -"in the next step into your live Pacemaker configuration and then make " -"changes as required." -msgstr "" -":command:`crm configure` はバッチ入力をサポートします。そのため、現在の " -"pacemaker 設定の中に上の行をコピー・ペーストし、適宜変更を反映できます。" - -msgid "" -"The :command:`crm configure` supports batch input. You may have to copy and " -"paste the above lines into your live Pacemaker configuration, and then make " -"changes as required." -msgstr "" -":command:`crm configure` はバッチ入力をサポートします。そのため、現在の " -"Pacemaker 設定の中に上をコピー・ペーストし、適宜変更を反映できます。" - -msgid "" -"The Block Storage service (cinder) that can use LVM or Ceph RBD as the " -"storage back end." -msgstr "" -"ストレージバックエンドとして LVM や Ceph RBD を使用できる Block Storage サー" -"ビス (cinder)。" - -msgid "" -"The Galera cluster configuration directive ``backup`` indicates that two of " -"the three controllers are standby nodes. This ensures that only one node " -"services write requests because OpenStack support for multi-node writes is " -"not yet production-ready." -msgstr "" -"この Galera cluster の設定ディレクティブ ``backup`` は、3 つのコントローラー" -"の内 2 つがスタンバイノードであることを意味します。" - -msgid "" -"The Image service (glance) that can use the Object Storage service (swift) " -"or Ceph RBD as the storage back end." -msgstr "" -"ストレージバックエンドとして Object Storage サービス (swift) や Ceph RBD を使" -"用できる Image サービス (glance)。" - -msgid "" -"The L2 agent cannot be distributed and highly available. Instead, it must be " -"installed on each data forwarding node to control the virtual network driver " -"such as Open vSwitch or Linux Bridge. One L2 agent runs per node and " -"controls its virtual interfaces." -msgstr "" -"分散させることはできず、高可用構成にはできません。その代わり、 L2 エージェン" -"トを各データ転送ノードにインストールして、 Open vSwitch や Linux ブリッジなど" -"の仮想ネットワークドライバーを制御します。ノードあたり 1 つの L2 エージェント" -"が動作し、そのノードの仮想インターフェースの制御を行います。" - -msgid "" -"The Memcached client implements hashing to balance objects among the " -"instances. Failure of an instance impacts only a percentage of the objects " -"and the client automatically removes it from the list of instances. The SLA " -"is several minutes." -msgstr "" -"Memcached クライアントは、インスタンス間でオブジェクトを分散するハッシュ機能" -"を持ちます。インスタンスの障害は、オブジェクトの使用率のみに影響します。クラ" -"イアントは、インスタンスの一覧から自動的に削除されます。SLA は数分です。" - -msgid "" -"The Memcached client implements hashing to balance objects among the " -"instances. Failure of an instance only impacts a percentage of the objects, " -"and the client automatically removes it from the list of instances." -msgstr "" -"Memcached クライアントは、インスタンス間でオブジェクトを分散するハッシュ機能" -"を持ちます。インスタンスの障害は、オブジェクトの使用率のみに影響します。クラ" -"イアントは、インスタンスの一覧から自動的に削除されます。" - -msgid "" -"The Networking (neutron) service L3 agent is scalable, due to the scheduler " -"that supports Virtual Router Redundancy Protocol (VRRP) to distribute " -"virtual routers across multiple nodes. For more information about the VRRP " -"and keepalived, see `Linux bridge: High availability using VRRP `_ and " -"`Open vSwitch: High availability using VRRP `_." -msgstr "" -"Networking (neutron) サービス L3 エージェントは、スケーラブルです。複数のノー" -"ドにわたり仮想ルーターを分散するために、スケジューラーが Virtual Router " -"Redundancy Protocol (VRRP) をサポートするためです。設定済みのルーターを高可用" -"化するために、 :file:`/etc/neutron/neutron.conf` ファイルを編集して、以下の値" -"を設定します。VRRP と keepalived の詳細は、`Linux bridge: High availability " -"using VRRP `_ および `Open vSwitch: High availability using VRRP `_ を参照" -"してください。" - -msgid "" -"The OpenStack Image service offers a service for discovering, registering, " -"and retrieving virtual machine images. To make the OpenStack Image API " -"service highly available in active/passive mode, you must:" -msgstr "" -"OpenStack Image サービスは、仮想マシンイメージを検索、登録、取得するための" -"サービスを提供します。OpenStack Image API サービスをアクティブ/パッシブモード" -"で高可用性にするために、以下が必要になります。" - -msgid "" -"The OpenStack Installation Guides also include a list of the services that " -"use passwords with important notes about using them." -msgstr "" -"OpenStack インストールガイドは、パスワードを使用するサービスの一覧、それらを" -"使用する上の重要な注意点もまとめてあります。" - -msgid "" -"The OpenStack Networking (neutron) service has a scheduler that lets you run " -"multiple agents across nodes. The DHCP agent can be natively highly " -"available." -msgstr "" -"OpenStack Networking (neutron) サービスには、ノードにまたがって複数のエージェ" -"ントを実行できるスケジューラーがあります。" - -msgid "The Pacemaker architecture" -msgstr "Pacemaker アーキテクチャー" - -msgid "" -"The Pacemaker service also requires an additional configuration file ``/etc/" -"corosync/uidgid.d/pacemaker`` to be created with the following content:" -msgstr "" -"Pacemaker サービスは、以下の内容で作成された、追加の設定ファイル ``/etc/" -"corosync/uidgid.d/pacemaker`` も必要とします。" - -msgid "" -"The SQL relational database server provides stateful type consumed by other " -"components. Supported databases are MySQL, MariaDB, and PostgreSQL. Making " -"the SQL database redundant is complex." -msgstr "" -"SQL リレーショナルデータベースサーバーは、他のコンポーネントにより利用される" -"ステートフルな状態を提供します。サポートされるデータベースは、MySQL、" -"MariaDB、PostgreSQL です。SQL データベースを冗長化することは複雑です。" - -msgid "" -"The Telemetry API service configuration does not have the ``option httpchk`` " -"directive as it cannot process this check properly." -msgstr "" -"Telemetry API サービスの設定は、このチェックを正常に実行できないため、 " -"``option httpchk`` ディレクティブがありません。" - -msgid "" -"The Telemetry polling agent can be configured to partition its polling " -"workload between multiple agents. This enables high availability (HA)." -msgstr "" -"Telemetry ポーリングエージェントは、複数のエージェント間でポーリングする負荷" -"を分割するよう設定できます。これにより、高可用性 (HA) を有効化できます。" - -msgid "" -"The `Telemetry service `_ provides a data collection service and an alarming " -"service." -msgstr "" -"`Telemetry サービス `_ は、データ収集サービスとアラームサービスを提供しま" -"す。" - -msgid "" -"The ``-p`` option is used to give the password on command line and makes it " -"easier to script." -msgstr "" -"``-p`` オプションは、コマンドラインにおいてパスワードを指定して、スクリプト化" -"しやすくするために使用されます。" - -msgid "" -"The ``admin_bind_host`` parameter lets you use a private network for admin " -"access." -msgstr "" -"``admin_bind_host`` パラメーターにより、管理アクセスのためのプライベートネッ" -"トワークを使用できます。" - -msgid "" -"The ``bindnetaddr`` is the network address of the interfaces to bind to. The " -"example uses two network addresses of /24 IPv4 subnets." -msgstr "" -"``bindnetaddr`` は、バインドするインターフェースのネットワークアドレスです。" -"この例は、2 つの /24 IPv4 サブネットを使用します。" - -msgid "" -"The ``token`` value specifies the time, in milliseconds, during which the " -"Corosync token is expected to be transmitted around the ring. When this " -"timeout expires, the token is declared lost, and after " -"``token_retransmits_before_loss_const lost`` tokens, the non-responding " -"processor (cluster node) is declared dead. ``token × " -"token_retransmits_before_loss_const`` is the maximum time a node is allowed " -"to not respond to cluster messages before being considered dead. The default " -"for token is 1000 milliseconds (1 second), with 4 allowed retransmits. These " -"defaults are intended to minimize failover times, but can cause frequent " -"false alarms and unintended failovers in case of short network " -"interruptions. The values used here are safer, albeit with slightly extended " -"failover times." -msgstr "" -"``token`` の値は、Corosync トークンがリング内を転送されることが予想される時間" -"をミリ秒単位で指定します。このタイムアウトを過ぎると、トークンが失われます。 " -"``token_retransmits_before_loss_const lost`` トークンの後、応答しないプロセッ" -"サー (クラスターノード) が停止していると宣言されます。 ``token × " -"token_retransmits_before_loss_const`` は、ノードが停止とみなされるまでに、ク" -"ラスターメッセージに応答しないことが許される最大時間です。トークン向けのデ" -"フォルトは、1000 ミリ秒 (1 秒)、4 回の再送許可です。これらのデフォルト値は、" -"フェイルオーバー時間を最小化することを意図していますが、頻繁な誤検知と短い" -"ネットワーク中断による意図しないフェイルオーバーを引き起こす可能性がありま" -"す。ここで使用される値は、フェイルオーバー時間がわずかに長くなりますが、より" -"安全です。" - -msgid "" -"The ``transport`` directive controls the transport mechanism. To avoid the " -"use of multicast entirely, specify the ``udpu`` unicast transport parameter. " -"This requires specifying the list of members in the ``nodelist`` directive. " -"This potentially makes up the membership before deployment. The default is " -"``udp``. The transport type can also be set to ``udpu`` or ``iba``." -msgstr "" -"``transport`` ディレクティブは使用するトランスポートメカニズムを制御します。 " -"マルチキャストを完全に無効にするためには、``udpu`` ユニキャストトランスポート" -"パラメーターを指定します。``nodelist`` ディレクティブにメンバー一覧を指定する" -"必要があります。展開する前にメンバーシップを構成することができます。デフォル" -"トは ``udp`` です。トランスポート形式は ``udpu`` や ``iba`` に設定することも" -"できます。" - -msgid "" -"The application layer is controlled by the ``oslo.messaging`` configuration " -"options for multiple AMQP hosts. If the AMQP node fails, the application " -"reconnects to the next one configured within the specified reconnect " -"interval. The specified reconnect interval constitutes its SLA." -msgstr "" -"アプリケーション層は、複数 AMQP ホスト向けの ``oslo.messaging`` 設定オプショ" -"ンにより制御されます。AMQP ノードが故障したとき、アプリケーションが、指定され" -"た再接続間隔で、設定された次のノードに再接続します。" - -msgid "" -"The architectural challenges of instance HA and several currently existing " -"solutions were presented in `a talk at the Austin summit `_, for which `slides are also available `_." -msgstr "" -"インスタンス HA のアーキテクチャー的な考慮事項と既存のソリューションは、" -"`Austin summit の講演 `_ にあります。ま" -"た `スライド `_ も参照できます。" - -msgid "" -"The architectures differ in the sets of services managed by the cluster." -msgstr "" -"アーキテクチャーは、クラスターにより管理されるサービス群により異なります。" - -msgid "" -"The availability check of the instances is provided by heartbeat messages. " -"When the connection with an instance is lost, the workload will be " -"reassigned within the remaining instances in the next polling cycle." -msgstr "" -"インスタンスの死活監視は、ハートビートメッセージによって提供されます。インス" -"タンスとの接続が失われた時、次のポーリングサイクルにて、ワークロードは、残っ" -"たインスタンスの中で再割り当てが行われます。" - -msgid "" -"The benefits of this approach are the physical isolation between components " -"and the ability to add capacity to specific components." -msgstr "" -"この方法の利点は、コンポーネント間の物理的な隔離、特定のコンポーネントへの" -"キャパシティーの追加です。" - -msgid "" -"The cloud controller runs on the management network and must talk to all " -"other services." -msgstr "" -"クラウドコントローラーは、管理ネットワークで動作し、他のすべてのサービスと通" -"信できる必要があります。" - -msgid "" -"The cluster is fully operational with ``expected_votes`` set to 7 nodes " -"(each node has 1 vote), quorum: 4. If a list of nodes is specified as " -"``nodelist``, the ``expected_votes`` value is ignored." -msgstr "" -"このクラスターは、7 ノード (各ノードが 1 つの投票権を持つ)、クォーラム 4 つに" -"設定した ``expected_votes`` で完全に動作します。ノードの一覧は ``nodelist`` " -"に指定された場合、 ``expected_votes`` の値は無視されます。" - -msgid "" -"The code for three of these solutions can be found online at the following " -"links:" -msgstr "" -"これら 3 つのソリューションのコードは、以下のリンクからオンライン参照できま" -"す。" - -msgid "" -"The command :command:`crm configure` supports batch input, copy and paste " -"the lines above into your live Pacemaker configuration and then make changes " -"as required. For example, you may enter ``edit p_ip_cinder-api`` from the :" -"command:`crm configure` menu and edit the resource to match your preferred " -"virtual IP address." -msgstr "" -":command:`crm configure` コマンドはバッチ入力をサポートします。現在の " -"Pacemaker 設定の中に上の行をコピー・ペーストし、適宜変更を反映できます。例え" -"ば、お好みの仮想 IP アドレスに一致させるために、:command:`crm configure` メ" -"ニューから ``edit p_ip_cinder-api`` と入力し、リソースを編集できます。" - -msgid "" -"The commands for installing RabbitMQ are specific to the Linux distribution " -"you are using." -msgstr "" -"RabbitMQ のインストールコマンドは、使用している Linux ディストリビューション" -"により異なります。" - -msgid "" -"The correct path to ``libgalera_smm.so`` given to the ``wsrep_provider`` " -"parameter" -msgstr "" -"``wsrep_provider`` パラメーターに指定された ``libgalera_smm.so`` への適切なパ" -"ス" - -msgid "" -"The first step is to install the database that sits at the heart of the " -"cluster. To implement high availability, run an instance of the database on " -"each controller node and use Galera Cluster to provide replication between " -"them. Galera Cluster is a synchronous multi-master database cluster, based " -"on MySQL and the InnoDB storage engine. It is a high-availability service " -"that provides high system uptime, no data loss, and scalability for growth." -msgstr "" -"最初の手順は、クラスターの中心になるデータベースをインストールすることです。" -"高可用性を実現するために、各コントローラーノードにおいてデータベースを実行" -"し、ノード間でレプリケーションできる Galera Cluster を使用します。Galera " -"Cluster は、MySQL と InnoDB ストレージエンジンをベースにした、同期型のマルチ" -"マスターデータベースクラスターです。高いシステム稼働時間、データ損失なし、ス" -"ケーラビリティーを提供する、高可用性サービスです。" - -msgid "The following are the definitions of stateless and stateful services:" -msgstr "以下は、ステートレスサービスとステートフルサービスの定義です。" - -msgid "The following are the standard hardware requirements:" -msgstr "標準ハードウェア要件:" - -msgid "" -"The following components are currently unable to benefit from the use of a " -"proxy server:" -msgstr "" -"以下のコンポーネントは、現在、プロキシサーバーの利用による利点はありません。" - -msgid "The following components/services can work with HA queues:" -msgstr "以下のコンポーネントやサービスは、HA キューを用いて動作できます。" - -msgid "" -"The following section(s) detail how to add the OpenStack Identity resource " -"to Pacemaker on SUSE and Red Hat." -msgstr "" -"以下のセクションは、SUSE と Red Hat において OpenStack Identity のリソースを " -"Pacemaker にダウンロードする方法を記載します。" - -msgid "" -"The majority of services, needing no real orchestration, are handled by " -"systemd on each node. This approach avoids the need to coordinate service " -"upgrades or location changes with the cluster and has the added advantage of " -"more easily scaling beyond Corosync's 16 node limit. However, it will " -"generally require the addition of an enterprise monitoring solution such as " -"Nagios or Sensu for those wanting centralized failure reporting." -msgstr "" -"実際のオーケストレーションを必要としない、大多数のサービスは各ノードにおいて " -"systemd により処理されます。このアプローチは、クラスターでサービスのアップグ" -"レードや位置の変更を調整する必要性を避けます。また、Corosync の 16 ノード制限" -"を超えて簡単にスケールするという利点を得られます。しかしながら一般的に、障害" -"レポートを集約するために、Nagios や Sensu のようなエンタープライズモニタリン" -"グソリューションを追加する必要があります。" - -msgid "" -"The most popular AMQP implementation used in OpenStack installations is " -"RabbitMQ." -msgstr "" -"OpenStack 環境に使用される最も一般的な AMQP ソフトウェアは RabbitMQ です。" - -msgid "" -"The proxy can be configured as a secondary mechanism for detecting service " -"failures. It can even be configured to look for nodes in a degraded state " -"(such as being too far behind in the replication) and take them out of " -"circulation." -msgstr "" -"プロキシーは、サービスの障害を検知するための 2 番目の機構として設定できます。" -"(長く複製から外れているなど) デグレード状態にあるノードを探して、それらを除外" -"するよう設定することもできます。" - -msgid "" -"The quorum specifies the minimal number of nodes that must be functional in " -"a cluster of redundant nodes in order for the cluster to remain functional. " -"When one node fails and failover transfers control to other nodes, the " -"system must ensure that data and processes remain sane. To determine this, " -"the contents of the remaining nodes are compared and, if there are " -"discrepancies, a majority rules algorithm is implemented." -msgstr "" -"クォーラムは、クラスターが機能し続けるために、冗長化されたノードのクラスター" -"において機能し続ける必要がある最小ノード数を指定します。あるノードが停止し" -"て、他のノードに制御がフェールオーバーするとき、システムはデータとプロセスが" -"維持されることを保証する必要があります。これを判断するために、残りのノードの" -"内容が比較される必要があります。また、不整合がある場合、多数決論理が実装され" -"ます。" - -msgid "" -"The service declaration for the Pacemaker service may be placed in the :file:" -"`corosync.conf` file directly or in its own separate file, :file:`/etc/" -"corosync/service.d/pacemaker`." -msgstr "" -"Pacemaker サービスに関するサービス定義は、直接 :file:`corosync.conf` ファイル" -"にあるか、単独ファイル :file:`/etc/corosync/service.d/pacemaker` にある可能性" -"があります。" - -msgid "The steps to implement the Pacemaker cluster stack are:" -msgstr "Pacemaker クラスタースタックを実行する手順は、次のとおりです。" - -msgid "" -"The votequorum library has been created to replace and eliminate ``qdisk``, " -"the disk-based quorum daemon for CMAN, from advanced cluster configurations." -msgstr "" -"votequorum ライブラリーは、高度なクラスター設定により、 ``qdisk`` 、CMAN 向け" -"ディスクベースのクォーラムデーモンを置き換えて除去するために作成されます。" - -msgid "" -"The votequorum library is part of the Corosync project. It provides an " -"interface to the vote-based quorum service and it must be explicitly enabled " -"in the Corosync configuration file. The main role of votequorum library is " -"to avoid split-brain situations, but it also provides a mechanism to:" -msgstr "" -"votequorum ライブラリーは Corosync プロジェクトの一部です。投票ベースのクォー" -"ラムサービスへのインターフェースを提供し、Corosync 設定ファイルにおいて明示的" -"に有効化する必要があります。votequorum ライブラリーのおもな役割は、スプリット" -"ブレイン状態を避けるためですが、以下の機能も提供します。" - -msgid "" -"These agents must conform to one of the `OCF `_, `SysV Init " -"`_, Upstart, or Systemd standards." -msgstr "" -"これらのエージェントは、 `OCF `_, `SysV Init `_, Upstart, Systemd 標準に従う必要があります。" - -msgid "This can be achieved using the :command:`iptables` command:" -msgstr "これは :command:`iptables` コマンドを使用して実現できます。" - -msgid "" -"This chapter describes the basic environment for high availability, such as " -"hardware, operating system, common services." -msgstr "" -"この章は高可用性を実現するための基本的な環境、例えばハードウェアやオペレー" -"ションシステム、共通サービスについて説明します。" - -msgid "" -"This chapter describes the shared services for high availability, such as " -"database, messaging service." -msgstr "" -"この章では、データベース、メッセージングサービスといった共有サービスの高可用" -"性について説明します。" - -msgid "" -"This configuration creates ``p_cinder-api``, a resource for managing the " -"Block Storage API service." -msgstr "" -"この設定は Block Storage API サービスを管理するためのリソース ``p_cinder-" -"api`` を作成します。" - -msgid "" -"This configuration creates ``p_glance-api``, a resource for managing the " -"OpenStack Image API service." -msgstr "" -"この設定は ``p_glance-api`` を作成します。これは OpenStack Image API サービス" -"を管理するリソースです。" - -msgid "" -"This configuration creates ``p_keystone``, a resource for managing the " -"OpenStack Identity service." -msgstr "" -"この設定は OpenStack Identity サービスを管理するためのリソース " -"``p_keystone`` を作成します。" - -msgid "" -"This configuration creates ``p_manila-api``, a resource for managing the " -"Shared File Systems API service." -msgstr "" -"この設定は Shared File Systems API サービスを管理するためのリソース " -"``p_manila-api`` を作成します。" - -msgid "" -"This configuration creates ``vip``, a virtual IP address for use by the API " -"node (``10.0.0.11``)." -msgstr "" -"この設定は、API ノード (``10.0.0.11``) により使用される仮想 IP アドレス " -"``vip`` を作成します。" - -msgid "" -"This document discusses some common methods of implementing highly available " -"systems, with an emphasis on the core OpenStack services and other open " -"source services that are closely aligned with OpenStack." -msgstr "" -"このドキュメントは、高可用性システムを実行する方法をいくつか議論します。コア" -"な OpenStack サービス、OpenStack とかなり一緒に使われる他のオープンソースサー" -"ビスを強調しています。" - -msgid "" -"This example assumes that you are using NFS for the physical storage, which " -"will almost never be true in a production installation." -msgstr "" -"この例は、物理ストレージに NFS を使用していることを仮定します。これは、ほとん" -"どの本番環境のインストールにおいて正しくありません。" - -msgid "This guide uses the following example IP addresses:" -msgstr "このガイドは、以下の IP アドレス例を使用します。" - -msgid "This is the most common option and the one we document here." -msgstr "これは最も一般的なオプションで、ここにドキュメント化します。" - -msgid "" -"This is why setting the quorum to a value less than ``floor(n/2) + 1`` is " -"dangerous. However it may be required for some specific cases, such as a " -"temporary measure at a point it is known with 100% certainty that the other " -"nodes are down." -msgstr "" -"これがクォーラムの値を ``floor(n/2) + 1`` より小さく設定することが危険な理由" -"です。しかしながら、いくつかの特別な場合に必要となる可能性があります。例え" -"ば、他のノードが 100% 確実に停止していることがわかっている場合の一時的な計測" -"などです。" - -msgid "" -"This scenario can be visualized as below, where each box below represents a " -"cluster of three or more guests." -msgstr "" -"このシナリオは、以下のように可視化できます。以下の各ボックスは 3 つ以上のゲス" -"トのクラスターを表します。" - -msgid "This scenario can be visualized as below." -msgstr "このシナリオは以下のように可視化できます。" - -msgid "" -"This scenario has the advantage of requiring far fewer, if more powerful, " -"machines. Additionally, being part of a single cluster allows you to " -"accurately model the ordering dependencies between components." -msgstr "" -"このシナリオは、より高性能ならば、より少ないマシンを必要とする利点がありま" -"す。加えて、シングルクラスターの一部になることにより、コンポーネント間の順序" -"依存関係を正確にモデル化できます。" - -msgid "" -"This section discusses ways to protect against data loss in your OpenStack " -"environment." -msgstr "" -"このセクションは、お使いの OpenStack 環境におけるデータ損失から保護する方法を" -"議論します。" - -msgid "" -"This value increments with each transaction, so the most advanced node has " -"the highest sequence number and therefore is the most up to date." -msgstr "" -"この値は各トランザクションによりインクリメントされます。ほとんどの高度なノー" -"ドは、最大のシーケンス番号を持つため、ほとんど最新です。" - -msgid "" -"To be sure that all data is highly available, ensure that everything is " -"stored in the MySQL database (which is also highly available):" -msgstr "" -"すべてのものを (高可用性) MySQL データベースに保存して、すべてのデータが高可" -"用性になっていることを確認します。" - -msgid "" -"To configure AppArmor to work with Galera Cluster, complete the following " -"steps on each cluster node:" -msgstr "" -"各クラスターノードにおいて以下の手順を実行して、Galera Cluster を正常に動作さ" -"せるために AppArmor を設定します。" - -msgid "" -"To configure SELinux to permit Galera Cluster to operate, you may need to " -"use the ``semanage`` utility to open the ports it uses. For example:" -msgstr "" -"SELinux を設定して Galera Cluster の動作を許可するために、``semanage`` ユー" -"ティリティーを使用して、使用ポートを開く必要があるかもしれません。例:" - -msgid "" -"To configure the number of DHCP agents per network, modify the " -"``dhcp_agents_per_network`` parameter in the :file:`/etc/neutron/neutron." -"conf` file. By default this is set to 1. To achieve high availability, " -"assign more than one DHCP agent per network. For more information, see `High-" -"availability for DHCP `_." -msgstr "" -"ネットワークあたりの DHCP エージェント数を設定するには、 file:`/etc/neutron/" -"neutron.conf` ファイルの``dhcp_agents_per_network`` パラメーターを変更しま" -"す。このパラメーターのデフォルト値は 1 です。高可用性を持たせるには、ネット" -"ワークあたりの DHCP エージェント数を 1 以上にする必要があります。詳細は " -"`High-availability for DHCP `_ を参照してください。" - -msgid "" -"To enable high availability for configured routers, edit the :file:`/etc/" -"neutron/neutron.conf` file to set the following values:" -msgstr "" -"設定済みルーターを高可用性にするために、:file:`/etc/neutron/neutron.conf` " -"ファイルを編集し、以下の値を設定します。" - -msgid "" -"To enable the compute agent to run multiple instances simultaneously with " -"workload partitioning, the ``workload_partitioning`` option must be set to " -"``True`` under the `compute section `_ in the :file:`ceilometer.conf` configuration " -"file." -msgstr "" -"コンピュートエージェントがワークロード分割により同時に複数のインスタンスを実" -"行できるようにするために、``workload_partitioning`` オプションが :file:" -"`ceilometer.conf` 設定ファイルの `compute セクション `_ において ``True`` に設定する必要" -"があります。" - -msgid "" -"To ensure that all queues except those with auto-generated names are " -"mirrored across all running nodes, set the ``ha-mode`` policy key to all by " -"running the following command on one of the nodes:" -msgstr "" -"自動生成された名前を持つキューを除いて、すべてのキューがすべての動作中のノー" -"ドで確実にミラーするために、以下のコマンドをどこかのノードで実行して、 ``ha-" -"mode`` ポリシーキーを all に設定します。" - -msgid "" -"To find the most advanced cluster node, you need to check the sequence " -"numbers, or the ``seqnos``, on the last committed transaction for each. You " -"can find this by viewing ``grastate.dat`` file in database directory:" -msgstr "" -"最も高度なクラスターノードを見つけるために、各ノードの最新コミットのトランザ" -"クションにある ``seqnos`` を確認する必要があります。データベースディレクト" -"リーにある ``grastate.dat`` ファイルを表示すると、これを見つけられます。" - -msgid "" -"To install and configure Memcached, read the `official documentation " -"`_." -msgstr "" -"Memcached をインストールして設定する方法は、 `公式ドキュメント `_ を参照してください。" - -msgid "To start the cluster, complete the following steps:" -msgstr "以下の手順を実行して、クラスターを起動します。" - -msgid "" -"Traditionally, Pacemaker has been positioned as an all-encompassing " -"solution. However, as OpenStack services have matured, they are increasingly " -"able to run in an active/active configuration and gracefully tolerate the " -"disappearance of the APIs on which they depend." -msgstr "" -"伝統的に、Pacemaker は全方位的なソリューションとして位置づけられてきました。" -"しかしながら、OpenStack サービスが成熟するにつれて、徐々にアクティブ/アクティ" -"ブ設定にて動作でき、依存している API の消失に自然に耐えられます。" - -msgid "True" -msgstr "True (真)" - -msgid "" -"Typically, an active/active installation for a stateless service maintains a " -"redundant instance, and requests are load balanced using a virtual IP " -"address and a load balancer such as HAProxy." -msgstr "" -"一般的にステートレスサービスをアクティブ / アクティブにインストールすると、冗" -"長なインスタンスを維持することになります。リクエストは HAProxy のような仮想 " -"IP アドレスとロードバランサーを使用して負荷分散されます。" - -msgid "Use HA queues in RabbitMQ (``x-ha-policy: all``):" -msgstr "RabbitMQ における HA キューの使用 (``x-ha-policy: all``):" - -msgid "" -"Use MySQL/Galera in active/passive mode to avoid deadlocks on ``SELECT ... " -"FOR UPDATE`` type queries (used, for example, by nova and neutron). This " -"issue is discussed in the following:" -msgstr "" -"MySQL/Galera をアクティブ/パッシブモードで使用して、 ``SELECT ... FOR " -"UPDATE`` のような形式のクエリーにおけるデッドロックを避けます (例えば、nova " -"や neutron により使用されます)。この問題は、以下で議論されています。" - -msgid "Use durable queues in RabbitMQ:" -msgstr "RabbitMQ での永続キューの使用:" - -msgid "" -"Use that password to authenticate to the nodes that will make up the cluster:" -msgstr "このパスワードを使用して、クラスターを構成するノードに認証します。" - -msgid "" -"Use the :command:`corosync-cfgtool` utility with the ``-s`` option to get a " -"summary of the health of the communication rings:" -msgstr "" -":command:`corosync-cfgtool` ユーティリティーに ``-s`` オプションを付けて実行" -"して、コミュニケーションリングの稼働状態の概要を取得します。" - -msgid "" -"Use the :command:`corosync-objctl` utility to dump the Corosync cluster " -"member list:" -msgstr "" -":command:`corosync-objctl` ユーティリティーを使用して、Corosync クラスターの" -"メンバー一覧を出力します。" - -msgid "Use these steps to configurate all services using RabbitMQ:" -msgstr "" -"これらの手順を使用して、RabbitMQ を使用するすべてのサービスを設定します。" - -msgid "Value" -msgstr "値" - -msgid "Verify that the nodes are running:" -msgstr "そのノードが動作していることを検証します。" - -msgid "Verify the cluster status:" -msgstr "クラスターの状態を確認します。" - -msgid "Virtualized hardware" -msgstr "仮想ハードウェア" - -msgid "" -"We do not recommend setting the quorum to a value less than ``floor(n/2) + " -"1`` as it would likely cause a split-brain in a face of network partitions." -msgstr "" -"クォーラムの値を ``floor(n/2) + 1`` より小さく設定することは推奨しません。こ" -"れはネットワーク分割の発生時にスプリットブレインを引き起こす可能性がありま" -"す。" - -msgid "" -"We recommend HAProxy as the load balancer, however, there are many " -"alternative load balancing solutions in the marketplace." -msgstr "" -"ロードバランサーとして HAProxy を推奨しますが、マーケットプレースにさまざまな" -"同等品があります。" - -msgid "" -"We recommend two primary architectures for making OpenStack highly available." -msgstr "" -"OpenStack の高可用性のために基本的な 2 つのアーキテクチャーを推奨します。" - -msgid "" -"We recommended that the maximum latency between any two controller nodes is " -"2 milliseconds. Although the cluster software can be tuned to operate at " -"higher latencies, some vendors insist on this value before agreeing to " -"support the installation." -msgstr "" -"すべての 2つのコントローラーノード間の最大レイテンシーが 2 ミリ秒であることを" -"推奨します。クラスターソフトウェアがより大きなレイテンシーで動作するよう" -"チューニングできますが、いくつかのベンダーはサポートする前にこの値を主張しま" -"す。" - -msgid "What is a cluster manager?" -msgstr "クラスターマネージャーとは?" - -msgid "" -"When Ceph RBD is used for ephemeral volumes as well as block and image " -"storage, it supports `live migration `_ of VMs with ephemeral drives. LVM only " -"supports live migration of volume-backed VMs." -msgstr "" -"Ceph RBD をブロックストレージやイメージストレージと同じように一時ストレージ用" -"に使用する場合、一時ボリュームを持つ仮想マシンの `ライブマイグレーション " -"` " -"がサポートされます。LVM のみがボリュームをバックエンドとした仮想マシンのライ" -"ブマイグレーションをサポートします。" - -msgid "" -"When configuring an OpenStack environment for study or demonstration " -"purposes, it is possible to turn off the quorum checking. Production systems " -"should always run with quorum enabled." -msgstr "" -"学習やデモの目的に OpenStack 環境を設定している場合、クォーラムのチェックを無" -"効化できます。本番システムは必ずクォーラムを有効化して実行すべきです。" - -msgid "" -"When each cluster node starts, it checks the IP addresses given to the " -"``wsrep_cluster_address`` parameter. It then attempts to establish network " -"connectivity with a database server running there. Once it establishes a " -"connection, it attempts to join the Primary Component, requesting a state " -"transfer as needed to bring itself into sync with the cluster." -msgstr "" -"各クラスターノードが起動したとき、``wsrep_cluster_address`` パラメーターに指" -"定された IP アドレスを確認して、それで動作しているデータベースサーバーへの" -"ネットワーク接続性を確立しようとします。接続が確立されると、クラスターを同期" -"するために必要となる状態転送を要求する、Primary Component に参加しようとしま" -"す。" - -msgid "" -"When four nodes fail simultaneously, the cluster would continue to function " -"as well. But if split to partitions of three and four nodes respectively, " -"the quorum of three would have made both sides to attempt to fence the other " -"and host resources. Without fencing enabled, it would go straight to running " -"two copies of each resource." -msgstr "" -"4 ノードが同時に停止するとき、クラスターは十分に動作し続けるでしょう。しか" -"し、ノードがそれぞれ 3 つと 4 つに分断された場合、3 つのクォーラムが両方で他" -"のノードとホストリソースをフェンスしようとするでしょう。フェンスを有効化して" -"いないと、各リソースの 2 つのコピーが動作し続けるでしょう。" - -msgid "" -"When installing highly available OpenStack on VMs, be sure that your " -"hypervisor permits promiscuous mode and disables MAC address filtering on " -"the external network." -msgstr "" -"仮想マシン上に高可用性 OpenStack をインストールする場合、ハイパーバイザーが外" -"部ネットワークにおいてプロミスキャスモードを許可して、MAC アドレスフィルタリ" -"ングを無効化していることを確認してください。" - -msgid "" -"When you finish installing and configuring the OpenStack database, you can " -"initialize the Galera Cluster." -msgstr "" -"OpenStack のデータベースをインストールして設定するとき、Galera Cluster を初期" -"化できます。" - -msgid "" -"When you have all cluster nodes started, log into the database client of any " -"cluster node and check the ``wsrep_cluster_size`` status variable again:" -msgstr "" -"クラスターノードをどれか起動したとき、どれか 1 つにデータベースクライアントか" -"らログインして、``wsrep_cluster_size`` 状態変数を再び確認します。" - -msgid "" -"When you start up a cluster (all nodes down) and set ``wait_for_all`` to 1, " -"the cluster quorum is held until all nodes are online and have joined the " -"cluster for the first time. This parameter is new in Corosync 2.0." -msgstr "" -"クラスター (全ノードダウン) を起動して、 ``wait_for_all`` を 1 に設定すると" -"き、クラスターのクォーラムはすべてのノードがオンラインになり、まずクラスター" -"に参加するまで保持されることを意味します。このパラメーターは Corosync 2.0 の" -"新機能です。" - -msgid "" -"When you use high availability, consider the hardware requirements needed " -"for your application." -msgstr "" -"高可用性にするとき、アプリケーションに必要となるハードウェア要件を考慮してく" -"ださい。" - -msgid "" -"While SYS-V init replacements like systemd can provide deterministic " -"recovery of a complex stack of services, the recovery is limited to one " -"machine and lacks the context of what is happening on other machines. This " -"context is crucial to determine the difference between a local failure, and " -"clean startup and recovery after a total site failure." -msgstr "" -"systemd のような SYS-V init の代替は、複雑なスタックのサービスにおける順序を" -"守った復旧を提供できますが、復旧は 1 台のマシンに限定され、他のマシンにおいて" -"起きたことを把握できません。このコンテキストは、ローカル障害間の違いを判断" -"し、全サイト障害から正常に起動して復旧するために重要です。" - -msgid "" -"While all of the configuration parameters available to the standard MySQL, " -"MariaDB, or Percona XtraDB database servers are available in Galera Cluster, " -"there are some that you must define an outset to avoid conflict or " -"unexpected behavior." -msgstr "" -"標準的な MySQL、MariaDB、Percona XtraDB データベースに利用できる設定パラメー" -"ターは Galera Cluster で利用できますが、競合や予期しない動作を避けるために始" -"めに定義する必要があるものがあります。" - -msgid "" -"While the application can still run after the failure of several instances, " -"it may not have sufficient capacity to serve the required volume of " -"requests. A cluster can automatically recover failed instances to prevent " -"additional load induced failures." -msgstr "" -"アプリケーションは、いくつかのインスタンスが故障した後も動作できますが、要求" -"されたリクエスト量を処理するための十分な容量がないかもしれません。クラスター" -"は自動的に故障したインスタンスを復旧して、さらなる負荷が障害を引き起こさない" -"ようにできます。" - -msgid "" -"With ``secauth`` enabled, Corosync nodes mutually authenticates using a 128-" -"byte shared secret stored in the :file:`/etc/corosync/authkey` file. This " -"can be generated with the :command:`corosync-keygen` utility. Cluster " -"communications are encrypted when using ``secauth``." -msgstr "" -"``secauth`` を有効化すると、Corosync ノードが :file:`/etc/corosync/authkey` " -"に保存された 128 バイトの共有シークレットを使用して相互に認証されます。これ" -"は、 :command:`corosync-keygen` ユーティリティーを使用して生成できます。 " -"``secauth`` を使用するとき、クラスター通信は暗号化されます。" - -msgid "" -"With this in mind, some vendors are restricting Pacemaker's use to services " -"that must operate in an active/passive mode (such as ``cinder-volume``), " -"those with multiple states (for example, Galera), and those with complex " -"bootstrapping procedures (such as RabbitMQ)." -msgstr "" -"この点を考慮して、いくつかのベンダーは、``cinder-volume`` などのアクティブ/" -"パッシブモードで動作させる必要があるサービス、Galera などの複数の状態を持つ" -"サービス、RabbitMQ のように複雑なブートストラップ手順を持つサービスに " -"Pacemaker を使用することを制限しています。" - -msgid "" -"Within the ``nodelist`` directive, it is possible to specify specific " -"information about the nodes in the cluster. The directive can contain only " -"the node sub-directive, which specifies every node that should be a member " -"of the membership, and where non-default options are needed. Every node must " -"have at least the ``ring0_addr`` field filled." -msgstr "" -"``nodelist`` ディレクティブに、クラスター内のノードに関する具体的な情報を指定" -"できます。このディレクティブは、node サブディレクティブのみを含められます。こ" -"れは、メンバーシップのすべてのメンバーを指定し、デフォルト以外に必要となるオ" -"プションを指定します。すべてのノードは、少なくとも ``ring0_addr`` の項目を入" -"力する必要があります。" - -msgid "" -"Work is in progress on a unified approach, which combines the best aspects " -"of existing upstream solutions. More details are available on `the HA VMs " -"user story wiki `_." -msgstr "" -"検討は統一された方法により進行中です。既存のアップストリームのソリューション" -"における利点を組み合わせます。詳細は `HA VMs user story wiki `_ にあります。" - -msgid "" -"You can achieve high availability for the OpenStack database in many " -"different ways, depending on the type of database that you want to use. " -"There are three implementations of Galera Cluster available to you:" -msgstr "" -"使用したいデータベースの種類に応じて、さまざまな情報で OpenStack のデータベー" -"スの高可用性を実現できます。Galera Cluster は 3 種類の実装があります。" - -msgid "" -"You can also ensure the availability by other means, using Keepalived or " -"Pacemaker." -msgstr "" -"他の手段として、Pacemaker や Keepalived を使用して可能性を確保することもでき" -"ます。" - -msgid "" -"You can have up to 16 cluster members (this is currently limited by the " -"ability of corosync to scale higher). In extreme cases, 32 and even up to 64 " -"nodes could be possible. However, this is not well tested." -msgstr "" -"クラスターのメンバーを 16 まで持てます (これは、corosync をよりスケールさせる" -"機能による、現在の制限です)。極端な場合、32 や 64 までのノードさえ利用できま" -"すが、十分にテストされていません。" - -msgid "" -"You can now add the Pacemaker configuration for Block Storage API resource. " -"Connect to the Pacemaker cluster with the :command:`crm configure` command " -"and add the following cluster resources:" -msgstr "" -"Block Storage API リソース用の Pacemaker 設定を追加できます。 :command:`crm " -"configure` を用いて Pacemaker クラスターに接続し、以下のクラスターリソースを" -"追加します。" - -msgid "" -"You can now check the ``corosync`` connectivity with one of these tools." -msgstr "corosyncの接続性をそれらのツールの一つで確認することができます。" - -msgid "" -"You can read more about these concerns on the `Red Hat Bugzilla `_ and there is a `psuedo " -"roadmap `_ " -"for addressing them upstream." -msgstr "" -"これらの課題の詳細は `Red Hat Bugzilla `_ にあります。また、アップストリームにおいて解決するための " -"`psuedo roadmap `_ があります。" - -msgid "" -"You can take periodic snap shots throughout the installation process and " -"roll back to a working configuration in the event of a problem." -msgstr "" -"インストール中に定期的にスナップショットを取得したり、問題発生時に動作する設" -"定にロールバックしたりできます。" - -msgid "You can use the `ping` command to find the latency between two servers." -msgstr "`ping` コマンドを使用して、サーバー間のレイテンシーを調べられます。" - -msgid "" -"You must also create the OpenStack Image API endpoint with this IP address. " -"If you are using both private and public IP addresses, create two virtual IP " -"addresses and define your endpoint. For example:" -msgstr "" -"この IP アドレスを用いて OpenStack Image API エンドポイントを作成する必要があ" -"ります。プライベート IP アドレスとパブリック IP アドレスを両方使用している場" -"合、2 つの仮想 IP アドレスを作成して、次のようにエンドポイントを定義します。" - -msgid "" -"You must configure a supported Tooz driver for the HA deployment of the " -"Telemetry services." -msgstr "" -"Telemetry サービスの高可用性デプロイのために、サポートされる Tooz ドライバー" -"を設定する必要があります。" - -msgid "You must create the Shared File Systems API endpoint with this IP." -msgstr "" -"この IP を用いて Shared File Systems API エンドポイントを作成する必要がありま" -"す。" - -msgid "" -"You must select and assign a virtual IP address (VIP) that can freely float " -"between cluster nodes." -msgstr "" -"クラスターノード間で自由に移動できる仮想 IP アドレス (VIP) を選択して割り当て" -"る必要があります。" - -msgid "" -"You must use the same name on every cluster node. The connection fails when " -"this value does not match." -msgstr "" -"すべてのクラスターノードにおいて同じ名前を使用する必要があります。この値が一" -"致しない場合、接続が失敗します。" - -msgid "" -"You only need to do this on one cluster node. Galera Cluster replicates the " -"user to all the others." -msgstr "" -"どれか 1 つのクラスターノードにおいてのみ実行する必要があります。Galera " -"Cluster が、他のすべてのノードにユーザーを複製します。" - -msgid "" -"You should see a ``status=joined`` entry for each of your constituent " -"cluster nodes." -msgstr "" -"構成している各クラスターノードが ``status=joined`` になっているはずです。" - -msgid "" -"You will need to address high availability concerns for any applications " -"software that you run on your OpenStack environment. The important thing is " -"to make sure that your services are redundant and available. How you achieve " -"that is up to you." -msgstr "" -"お使いの OpenStack 環境で動作するアプリケーションソフトウェアすべてに対する高" -"可用性の課題を解決する必要があります。重要なことは、お使いのサービスが冗長で" -"あり利用できることを確実にすることです。どのように実現するのかは、あなた自身" -"によります。" - -msgid "" -"You would choose this option if you prefer to have fewer but more powerful " -"boxes." -msgstr "より少数の高性能なマシンを好む場合、この選択肢を選択するでしょう。" - -msgid "" -"You would choose this option if you prefer to have more but less powerful " -"boxes." -msgstr "より多数の低性能なマシンを好む場合、この選択肢を選択するでしょう。" - -msgid "" -"Your OpenStack services must now point their Block Storage API configuration " -"to the highly available, virtual cluster IP address rather than a Block " -"Storage API server’s physical IP address as you would for a non-HA " -"environment." -msgstr "" -"OpenStack サービスは、非 HA 環境と同じように Block Storage API サーバーの物" -"理 IP アドレスを指定する代わりに、Block Storage API の設定が高可用性と仮想ク" -"ラスター IP アドレスを指し示す必要があります。" - -msgid "" -"Your OpenStack services must now point their OpenStack Image API " -"configuration to the highly available, virtual cluster IP address instead of " -"pointing to the physical IP address of an OpenStack Image API server as you " -"would in a non-HA cluster." -msgstr "" -"OpenStack サービスが、非 HA クラスターであるような OpenStack Image API サー" -"バーの物理 IP アドレスを指し示す代わりに、高可用性な仮想クラスター IP アドレ" -"スを指し示すように、それらの OpenStack Image API の設定を変更する必要がありま" -"す。" - -msgid "" -"Your OpenStack services must now point their Shared File Systems API " -"configuration to the highly available, virtual cluster IP address rather " -"than a Shared File Systems API server’s physical IP address as you would for " -"a non-HA environment." -msgstr "" -"OpenStack サービスは、通常の非高可用性環境のように、Shared File Systems API " -"サーバーの物理 IP アドレスを指定する代わりに、Shared File Systems API の設定" -"が高可用性と仮想クラスター IP アドレスを指し示す必要があります。" - -msgid "" -"Your OpenStack services now point their OpenStack Identity configuration to " -"the highly available virtual cluster IP address." -msgstr "" -"OpenStack サービスが OpenStack Identity サーバーの設定が高可用性と仮想クラス" -"ター IP アドレスを指し示します。" - -msgid "[TODO: need more discussion of these parameters]" -msgstr "[TODO: need more discussion of these parameters]" - -msgid "" -"`Ceph RBD `_ is an innately high availability storage " -"back end. It creates a storage cluster with multiple nodes that communicate " -"with each other to replicate and redistribute data dynamically. A Ceph RBD " -"storage cluster provides a single shared set of storage nodes that can " -"handle all classes of persistent and ephemeral data (glance, cinder, and " -"nova) that are required for OpenStack instances." -msgstr "" -"`Ceph RBD `_ は、本質的に高可用性なストレージバックエンド" -"です。複数のノードを用いてストレージクラスターを作成し、お互いに通信して動的" -"にレプリケーションとデータ再配布を実行します。Ceph RBD ストレージクラスター" -"は、OpenStack インスタンスに必要となる、すべての種類の永続データと一時データ " -"(glance、cinder、nova) を取り扱える、単一の共有ストレージノードを提供します。" - -msgid "`Clustering Guide `_" -msgstr "`Clustering Guide `_" - -msgid "`Debian and Ubuntu `_" -msgstr "`Debian および Ubuntu `_" - -msgid "" -"`Galera Cluster for MySQL `_: The MySQL reference " -"implementation from Codership, Oy." -msgstr "" -"`Galera Cluster for MySQL `_: The MySQL reference " -"implementation from Codership, Oy." - -msgid "`Highly Available Queues `_" -msgstr "`Highly Available Queues `_" - -msgid "" -"`IMPORTANT: MySQL Galera does *not* support SELECT ... FOR UPDATE `_" -msgstr "" -"`IMPORTANT: MySQL Galera does *not* support SELECT ... FOR UPDATE `_" - -msgid "" -"`MariaDB Galera Cluster `_: The MariaDB implementation " -"of Galera Cluster, which is commonly supported in environments based on Red " -"Hat distributions." -msgstr "" -"`MariaDB Galera Cluster `_: The MariaDB implementation " -"of Galera Cluster, which is commonly supported in environments based on Red " -"Hat distributions." - -msgid "" -"`Pacemaker `_ cluster stack is a state-of-the-art " -"high availability and load balancing stack for the Linux platform. Pacemaker " -"is used to make OpenStack infrastructure highly available." -msgstr "" -"`Pacemaker `_ クラスタースタックは、Linux プラット" -"フォーム向けの最高水準の高可用性と負荷分散を実現します。Pacemaker は " -"OpenStack インフラを高可用化するために役立ちます。" - -msgid "" -"`Percona XtraDB Cluster `_: The XtraDB " -"implementation of Galera Cluster from Percona." -msgstr "" -"`Percona XtraDB Cluster `_: The XtraDB " -"implementation of Galera Cluster from Percona." - -msgid "" -"`RPM based `_ (RHEL, Fedora, " -"CentOS, openSUSE)" -msgstr "" -"`RPM 系 `_ (RHEL, Fedora, CentOS, " -"openSUSE)" - -msgid "" -"`Understanding reservations, concurrency, and locking in Nova `_" -msgstr "" -"`Understanding reservations, concurrency, and locking in Nova `_" - -msgid "``crmsh``" -msgstr "``crmsh``" - -msgid "" -"``last_man_standing_window`` specifies the time, in milliseconds, required " -"to recalculate quorum after one or more hosts have been lost from the " -"cluster. To perform a new quorum recalculation, the cluster must have quorum " -"for at least the interval specified for ``last_man_standing_window``. The " -"default is 10000ms." -msgstr "" -"``last_man_standing_window`` は、1 つ以上のホストがクラスターから失われた後、" -"クォーラムを再計算するために必要となる時間をミリ秒単位で指定します。新しく" -"クォーラムを再計算するために、クラスターは少なくとも " -"``last_man_standing_window`` に指定された間隔はクォーラムを保持する必要があり" -"ます。デフォルトは 10000ms です。" - -msgid "" -"``nodeid`` is optional when using IPv4 and required when using IPv6. This is " -"a 32-bit value specifying the node identifier delivered to the cluster " -"membership service. If this is not specified with IPv4, the node ID is " -"determined from the 32-bit IP address of the system to which the system is " -"bound with ring identifier of 0. The node identifier value of zero is " -"reserved and should not be used." -msgstr "" -"``nodeid`` は、IPv4 を使用するときにオプション、IPv6 を使用するときに必須で" -"す。クラスターメンバーシップサービスに配信される、ノード識別子を指定する 32 " -"ビットの値です。IPv4 で指定されていない場合、ノード ID は、システムがリング識" -"別子 0 に割り当てた 32 ビットの IP アドレスになります。ノード識別子の値 0 " -"は、予約済みであり、使用してはいけません。" - -msgid "``pcs``" -msgstr "``pcs``" - -msgid "" -"``ring{X}_addr`` specifies the IP address of one of the nodes. ``{X}`` is " -"the ring number." -msgstr "" -"``ring{X}_addr`` は、1 つのノードの IP アドレスを指定します。 ``{X}`` はリン" -"グの番号です。" - -msgid "" -"`a mistral-based auto-recovery workflow `_, by Intel" -msgstr "" -"`a mistral-based auto-recovery workflow `_, by Intel" - -msgid "`corosync`" -msgstr "`corosync`" - -msgid "`fence-agents` (CentOS or RHEL) or cluster-glue" -msgstr "`fence-agents` (CentOS、RHEL) または cluster-glue" - -msgid "`libqb0`" -msgstr "`libqb0`" - -msgid "`masakari `_, by NTT" -msgstr "`masakari `_, by NTT" - -msgid "`pacemaker`" -msgstr "`pacemaker`" - -msgid "`pcs` (CentOS or RHEL) or crmsh" -msgstr "`pcs` (CentOS、RHEL) または crmsh" - -msgid "`resource-agents`" -msgstr "`resource-agents`" - -msgid "allow_automatic_l3agent_failover" -msgstr "allow_automatic_l3agent_failover" - -msgid "compute node" -msgstr "コンピュートノード" - -msgid "controller node" -msgstr "コントローラーノード" - -msgid "l3_ha" -msgstr "l3_ha" - -msgid "max_l3_agents_per_router" -msgstr "max_l3_agents_per_router" - -msgid "min_l3_agents_per_router" -msgstr "min_l3_agents_per_router" diff --git a/doc/ha-guide/source/locale/tr_TR/LC_MESSAGES/ha-guide.po b/doc/ha-guide/source/locale/tr_TR/LC_MESSAGES/ha-guide.po deleted file mode 100644 index 213c8bea6b..0000000000 --- a/doc/ha-guide/source/locale/tr_TR/LC_MESSAGES/ha-guide.po +++ /dev/null @@ -1,3971 +0,0 @@ -# işbaran akçayır , 2017. #zanata -msgid "" -msgstr "" -"Project-Id-Version: openstackhaguide\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-22 22:08+0000\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2017-07-27 09:49+0000\n" -"Last-Translator: Copied by Zanata \n" -"Language-Team: Turkish (Turkey)\n" -"Language: tr_TR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Zanata 4.3.3\n" -"X-POOTLE-MTIME: 1499419470.000000\n" - -msgid "**Cluster Address**: List the IP addresses for each cluster node." -msgstr "**Küme Adresi**: Her küme düğümü için IP adreslerini listeleyin." - -msgid "**Cluster Name**: Define an arbitrary name for your cluster." -msgstr "**Küme İsmi**: Kümeniz için isteğe göre bir isim tanımlayın." - -msgid "" -"**Corosync configuration file fragment for unicast (``corosync.conf``)**" -msgstr "" -"**Corosync yapılandırma dosyası tekil yayın içi parçalanır (``corosync." -"conf``)**" - -msgid "" -"**Example Corosync configuration file for multicast (``corosync.conf``)**" -msgstr "" -"**Çoklu yayın için örnek Corosync yapılandırma dosyası (``corosync.conf``)**" - -msgid "**Node Address**: Define the IP address of the cluster node." -msgstr "**Düğüm Adresi**: Küme düğümünün IP adresini tanımlayın." - -msgid "**Node Name**: Define the logical name of the cluster node." -msgstr "**Düğüm İsmi**: Küme düğümünün mantıksal ismini tanımlayın." - -msgid "" -"**wsrep Provider**: The Galera Replication Plugin serves as the ``wsrep`` " -"provider for Galera Cluster. It is installed on your system as the " -"``libgalera_smm.so`` file. Define the path to this file in your ``my.cnf``:" -msgstr "" -"**wsrep Sağlayıcı**: Galera Çoğaltma Eklentisi Galera Kümesi için ``wsrep`` " -"sağlayıcı olarak çalışır. Sisteminizde ``libgalera_smm.so`` dosyası olarak " -"yüklüdür. ``my.cnf`` dosyanızda bu dosyanın yolunu tanımlayın:" - -msgid "/etc/neutron/neutron.conf parameters for high availability" -msgstr "Yüksek kullanılırlık için /etc/neutron/neutron.conf parametreleri" - -msgid "12 GB" -msgstr "12 GB" - -msgid "12+ GB" -msgstr "12+ GB" - -msgid "120 GB" -msgstr "120 GB" - -msgid "120+ GB" -msgstr "120+ GB" - -msgid "2" -msgstr "2" - -msgid "2 or more" -msgstr "2 veya fazla" - -msgid "4" -msgstr "4" - -msgid "8+" -msgstr "8+" - -msgid ":doc:`Networking DHCP agent`" -msgstr ":doc:`Ağ DHCP aracısı`" - -msgid ":doc:`Neutron L3 agent`" -msgstr ":doc:`Neutron L3 aracısı`" - -msgid "" -":ref:`Configure OpenStack services to use RabbitMQ HA queues `" -msgstr "" -":ref:`OpenStack servislerini RabbitMQ HA kuyrukları kullanacak şekilde " -"yapılandır `" - -msgid ":ref:`Configure RabbitMQ for HA queues`" -msgstr ":ref:`HA kuyrukları için RabbitMQ yapılandırması`" - -msgid ":ref:`Install RabbitMQ`" -msgstr ":ref:`RabbitMQ kurulumu`" - -msgid ":ref:`corosync-multicast`" -msgstr ":ref:`corosync-multicast`" - -msgid ":ref:`corosync-unicast`" -msgstr ":ref:`corosync-unicast`" - -msgid ":ref:`corosync-votequorum`" -msgstr ":ref:`corosync-votequorum`" - -msgid ":ref:`glance-api-configure`" -msgstr ":ref:`glance-api-configure`" - -msgid ":ref:`glance-api-pacemaker`" -msgstr ":ref:`glance-api-pacemaker`" - -msgid ":ref:`glance-services`" -msgstr ":ref:`glance-services`" - -msgid ":ref:`ha-blockstorage-configure`" -msgstr ":ref:`ha-blockstorage-configure`" - -msgid ":ref:`ha-blockstorage-pacemaker`" -msgstr ":ref:`ha-blockstorage-pacemaker`" - -msgid ":ref:`ha-blockstorage-services`" -msgstr ":ref:`ha-blockstorage-services`" - -msgid ":ref:`ha-sharedfilesystems-configure`" -msgstr ":ref:`ha-sharedfilesystems-configure`" - -msgid ":ref:`ha-sharedfilesystems-pacemaker`" -msgstr ":ref:`ha-sharedfilesystems-pacemaker`" - -msgid ":ref:`ha-sharedfilesystems-services`" -msgstr ":ref:`ha-sharedfilesystems-services`" - -msgid ":ref:`identity-config-identity`" -msgstr ":ref:`identity-config-identity`" - -msgid ":ref:`identity-pacemaker`" -msgstr ":ref:`identity-pacemaker`" - -msgid ":ref:`identity-services-config`" -msgstr ":ref:`identity-services-config`" - -msgid ":ref:`pacemaker-cluster-properties`" -msgstr ":ref:`pacemaker-cluster-properties`" - -msgid ":ref:`pacemaker-corosync-setup`" -msgstr ":ref:`pacemaker-corosync-setup`" - -msgid ":ref:`pacemaker-corosync-start`" -msgstr ":ref:`pacemaker-corosync-start`" - -msgid ":ref:`pacemaker-install`" -msgstr ":ref:`pacemaker-install`" - -msgid ":ref:`pacemaker-start`" -msgstr ":ref:`pacemaker-start`" - -msgid "" -":term:`Advanced Message Queuing Protocol (AMQP)` provides OpenStack internal " -"stateful communication service." -msgstr "" -":term:`Gelişmiş İleti Kuyruklama İletişim Kuralı (AMQP)` OpenStack'e dahili " -"durumsal iletişim servisi sağlar." - -msgid ":term:`active/active configuration`" -msgstr ":term:`etkin/etkin yapılandırma`" - -msgid ":term:`active/passive configuration`" -msgstr ":term:`etkin/pasif yapılandırma`" - -msgid "" -"A crucial aspect of high availability is the elimination of single points of " -"failure (SPOFs). A SPOF is an individual piece of equipment or software that " -"causes system downtime or data loss if it fails. In order to eliminate " -"SPOFs, check that mechanisms exist for redundancy of:" -msgstr "" -"Yüksek kullanılırlığın önemli bir yönü tek bir arıza noktasını elemesidir " -"(SPOF'lar). SPOF arızalandığında sistemin kapalı kalmasına ya da veri " -"kaybına yol açan ekipman parçasıdır. SPOF'ları elemek için, aşağıdakiler " -"için yedekleme yöntemleriniz olduğundan emin olun:" - -msgid "A minimum of three hosts" -msgstr "En az üç sunucu" - -msgid "" -"A sample votequorum service configuration in the :file:`corosync.conf` file " -"is:" -msgstr "" -":file:`corosync.conf` dosyasında örnek bir votequorum servis yapılandırması " -"şöyledir:" - -msgid "" -"A service that provides a response after your request and then requires no " -"further attention. To make a stateless service highly available, you need to " -"provide redundant instances and load balance them. OpenStack services that " -"are stateless include ``nova-api``, ``nova-conductor``, ``glance-api``, " -"``keystone-api``, ``neutron-api``, and ``nova-scheduler``." -msgstr "" -"İsteğinizden sonra bir yanıt sağlayan ve ardından başka ilgi beklemeyen bir " -"servis. Durumsuz bir servisi yüksek kullanılabilir yapmak için, yedekli " -"sunucular kullanmalı ve yük dengelemesi kullanmalısınız. Durumsuz OpenStack " -"servisleri ``nova-api``, ``nova-conductor``, ``glance-api``, ``keystone-" -"api``, ``neutron-api``, ve ``nova-scheduler``i içerir." - -msgid "" -"A service where subsequent requests to the service depend on the results of " -"the first request. Stateful services are more difficult to manage because a " -"single action typically involves more than one request. Providing additional " -"instances and load balancing does not solve the problem. For example, if the " -"horizon user interface reset itself every time you went to a new page, it " -"would not be very useful. OpenStack services that are stateful include the " -"OpenStack database and message queue. Making stateful services highly " -"available can depend on whether you choose an active/passive or active/" -"active configuration." -msgstr "" -"Servise yapılan sıralı isteklerin ilk isteğin sonucuna bağlı olması. " -"Durumsal servisleri yönetmesi daha zordur çünkü tek bir eylem genellikle bir " -"istekten fazlasını içerir. Ek sunucular ve yük dengeleme eklemek sorunu " -"çözmez. Örneğin horizon kullanıcı arayüzü her yeni sayfa istediğinizde " -"kendisini sıfırlasa pek faydalı olmaz. OpenStack servislerini yüksek " -"kullanılır yapmak etkin/pasif veya etkin/etkin yapılandırma seçmenize bağlı " -"olarak değişebilir." - -msgid "" -"A shared implementation and calculation of `quorum `_" -msgstr "" -"`Yetersayının `_ " -"paylaşımlı uygulanması ve hesaplanması" - -msgid "" -"A single application does not have sufficient context to know the difference " -"between failure of a machine and failure of the application on a machine. " -"The usual practice is to assume the machine is dead and continue working, " -"however this is highly risky. A rogue process or machine could still be " -"responding to requests and generally causing havoc. The safer approach is to " -"make use of remotely accessible power switches and/or network switches and " -"SAN controllers to fence (isolate) the machine before continuing." -msgstr "" -"Tek bir uygulama bir makinenin arızası ve makine üzerindeki uygulamanın " -"arızası arasındaki farkı bilmek için yeterli içeriğe sahip değildir. Yaygın " -"olarak makinenin ölü olduğu varsayılır, ancak bunun riski yüksektir. Yaramaz " -"bir süreç veya makine hala isteklere yanıt veriyor ve büyük hasara sebep " -"oluyor olabilir. Güvenli yaklaşım uzaktan erişilebilir güç anahtarlarını ve/" -"veya ağ anahtalarını ve SAN denetleyicilerini kullanarak makineyi devam " -"etmeden önce parmaklığa almaktır (yalıtım)." - -msgid "" -"A typical active/active installation for a stateful service includes " -"redundant services, with all instances having an identical state. In other " -"words, updates to one instance of a database update all other instances. " -"This way a request to one instance is the same as a request to any other. A " -"load balancer manages the traffic to these systems, ensuring that " -"operational systems always handle the request." -msgstr "" -"Durumsal bir servis için genel bir etkin/etkin kurulumu tüm sunucuların aynı " -"durumda olduğu yedekli servisler içerir. Başka bir deyişle, bir veritabanı " -"sunucusuna yapılan güncelleme diğer tüm sunucuları da günceller. Bu yolla " -"bir sunucuya yapılan istek herhangi başka birine yapılanla aynı olur. Bir " -"yük dengeleyici bu sistemlere trafiği yönetir, işlevsel sistemlerin her " -"zaman isteği ele aldığından emin olur." - -msgid "" -"A typical active/passive installation for a stateful service maintains a " -"replacement resource that can be brought online when required. Requests are " -"handled using a :term:`virtual IP address (VIP)` that facilitates returning " -"to service with minimal reconfiguration. A separate application (such as " -"Pacemaker or Corosync) monitors these services, bringing the backup online " -"as necessary." -msgstr "" -"Durumsal bir servis için tipik bir etkin/pasif kurulum gerektiğinde " -"çevrimiçi yapılabilecek yedek bir kaynak bakımı da yapar. İstekler servise " -"asgari yeniden yapılandırma ile dönen bir :term:`sanal IP adresi (VIP)` " -"tarafından ele alınır. Ayrı bir uygulama (Pacemaker veya Corosync gibi) bu " -"servisleri izler, gerektiğinde yedeği çevrimiçi yapar." - -msgid "API isolation" -msgstr "API yalıtımı" - -msgid "Abstract" -msgstr "Özet" - -msgid "" -"Access to Memcached is not handled by HAProxy because replicated access is " -"currently in an experimental state. Instead, OpenStack services must be " -"supplied with the full list of hosts running Memcached." -msgstr "" -"Memcached erişimi HAProxy tarafından ele alınmaz çünkü yedekli erişim şu an " -"deneysel bir durumda. Bunun yerine, OpenStack servislerineMemcached " -"çalıştıran tüm sunucuların listesi verilmelidir." - -msgid "Active/passive versus active/active" -msgstr "Etkin/pasif karşısında etkin/etkin" - -msgid "Add Block Storage API resource to Pacemaker" -msgstr "Pacemaker'e Blok Depolama API kaynağı ekleyin" - -msgid "" -"Add HAProxy to the cluster and ensure the VIPs can only run on machines " -"where HAProxy is active:" -msgstr "" -"HAProxy'i kümeye ekleyin ve VIP'lerin yalnızca HAProxy'nin etkin olduğu " -"makinelerde çalıştığından emin olun:" - -msgid "Add OpenStack Identity resource to Pacemaker" -msgstr "OpenStack Kimlik kaynağını Pacemaker'e ekleyin" - -msgid "Add OpenStack Image API resource to Pacemaker" -msgstr "OpenStack İmaj API kaynağını Pacemaker'e ekleyin" - -msgid "Add Shared File Systems API resource to Pacemaker" -msgstr "Paylaşımlı Dosya Sistemleri API kaynağının Pacemaker'e eklenmesi" - -msgid "" -"Add the Pacemaker configuration for the OpenStack Identity resource by " -"running the following command to connect to the Pacemaker cluster:" -msgstr "" -"OpenStack Kimlik kaynağı için Pacemaker yapılandırmasını Pacemaker kümesine " -"bağlanmak için aşağıdaki komutları çalıştırarak ekleyin:" - -msgid "" -"Add the Pacemaker configuration for the OpenStack Image API resource. Use " -"the following command to connect to the Pacemaker cluster:" -msgstr "" -"OpenStack İmaj API kaynağı için Pacemaker yapılandırmasını ekleyin. " -"Pacemaker kümesine bağlanmak için aşağıdaki komutu kullanın:" - -msgid "" -"Add the Pacemaker configuration for the Shared File Systems API resource. " -"Connect to the Pacemaker cluster with the following command:" -msgstr "" -"Paylaşımlı Dosya Sistemleri API kaynağı için Pacemaker yapılandırmasını " -"ekleyin. Aşağıdaki komut ile Pacemaker kümesine bağlanın:" - -msgid "Add the following cluster resources:" -msgstr "Şu küme kaynaklarını ekleyin:" - -msgid "Additional parameters" -msgstr "Ek parametreler" - -msgid "" -"After installing the Corosync package, you must create the :file:`/etc/" -"corosync/corosync.conf` configuration file." -msgstr "" -"Corosync paketini kurduktan sonra, :file:`/etc/corosync/corosync.conf` " -"yapılandırma dosyasını oluşturmalısınız." - -msgid "" -"After the ``corosync`` service have been started and you have verified that " -"the cluster is communicating properly, you can start :command:`pacemakerd`, " -"the Pacemaker master control process. Choose one from the following four " -"ways to start it:" -msgstr "" -"``corosync`` servisini başlatıp kümenin düzgün iletişim sürdürdüğünü " -"doğruladıktan sonra, Pacemaker ana kontrol süreci :command:`pacemakerd`yi " -"başlatabilirsiniz. Başlatmak için aşağıdaki dört yoldan birini seçin:" - -msgid "" -"After the ``pacemaker`` service has started, Pacemaker creates a default " -"empty cluster configuration with no resources. Use the :command:`crm_mon` " -"utility to observe the status of ``pacemaker``:" -msgstr "" -"``pacemaker`` servisi başladıktan sonra, Pacemaker kaynakları olmayan " -"öntanımlı boş bir küme yapılandırması oluşturur. ``pacemaker`` durumunu " -"gözetlemek için :command:`crm_mon` aracını kullanın:" - -msgid "After you make these changes, commit the updated configuration." -msgstr "Bu değişiklikleri yaptıktan sonra, güncel yapılandırmayı gönderin." - -msgid "" -"After you set up your Pacemaker cluster, set a few basic cluster properties:" -msgstr "" -"Pacemaker kümenizi ayarladıktan sonra, temel birkaç küme özelliğini " -"ayarlayın:" - -msgid "All routers are highly available by default." -msgstr "Tüm yönlendiriciler öntanımlı olarak yüksek kullanılırlığa sahip." - -msgid "" -"Almost all services in this stack benefit from being proxied. Using a proxy " -"server provides the following capabilities:" -msgstr "" -"Bu yığındaki rerdeyse tüm servisler vekillenmekten faydalanır. Vekil sunucu " -"kullanmak şu yetenekleri sağlar:" - -msgid "" -"Alternatively, if the database server is running, use the " -"``wsrep_last_committed`` status variable:" -msgstr "" -"Alternatif olarak, veritabanı sunucusu çalışıyorsa, ``wsrep_last_committed`` " -"durum değişkenini kullanın:" - -msgid "" -"Alternatively, instead of using systemd agents, download and install the OCF " -"resource agent:" -msgstr "" -"Alternatif olarak, systemd aracıları kullanmak yerine, OCF kaynak " -"aracılarını indirin ve kurun:" - -msgid "" -"Alternatively, make modifications using the ``firewall-cmd`` utility for " -"FirewallD that is available on many Linux distributions:" -msgstr "" -"Alternatif olarak, çoğu Linux dağıtımında kullanılabilir olan FirewallID " -"için ``firewall-cmd`` aracını kullanarak değişiklikler yapın:" - -msgid "" -"Alternatively, you can use a commercial load balancer, which is hardware or " -"software. We recommend a hardware load balancer as it generally has good " -"performance." -msgstr "" -"Alternatif olarak, donanımsal veya yazılımsal ticari bir yük dengeleyici " -"kullanabilirsiniz. Genellikle daha iyi başarımı olduğundan donanımsal bir " -"yük dengeleyici öneriyoruz." - -msgid "Alternatively:" -msgstr "Alternatif olarak:" - -msgid "" -"An AMQP (Advanced Message Queuing Protocol) compliant message bus is " -"required for most OpenStack components in order to coordinate the execution " -"of jobs entered into the system." -msgstr "" -"Sisteme girilen işlerin çalıştırılmasını düzenlemek için çoğu OpenStack " -"bileşenleri için bir AMQP (Gelişmiş İleti Kuyruklama İletişim Kuralı) uyumlu " -"ileti yolu gereklidir." - -msgid "An OpenStack environment includes multiple data pools for the VMs:" -msgstr "OpenStack ortamı sanal makineler için birçok veri havuzu içerir:" - -msgid "" -"And the quorum could also have been set to three, just as a configuration " -"example." -msgstr "" -"Ve yetersayı yalnızca örnek bir yapılandırma olarak üçe ayarlanmış olabilir." - -msgid "AppArmor" -msgstr "AppArmor" - -msgid "AppArmor now permits Galera Cluster to operate." -msgstr "AppArmor artık Galera Kümesinin çalışmasına izin veriyor." - -msgid "Appendix" -msgstr "Ek Bölüm" - -msgid "" -"Application Armor is a kernel module for improving security on Linux " -"operating systems. It is developed by Canonical and commonly used on Ubuntu-" -"based distributions. In the context of Galera Cluster, systems with AppArmor " -"may block the database service from operating normally." -msgstr "" -"Uygulama Zırhı Linux işletim sistemlerinde güvenliği artırmak için " -"kullanılan bir çekirdek modülüdür. Canonical tarafından geliştirilmiştir ve " -"yaygın olarak Ubuntu tabanlı dağıtımlarda kullanılır. Galera Kümesi " -"kapsamında AppArmor'a sahip sistemlerin veritabanı servisinin normal " -"işleyişini engelleyebileceğini söyleyebiliriz." - -msgid "Applications and automatic service migration" -msgstr "Uygulamalar ve otomatik servis göçü" - -msgid "" -"As another option to make RabbitMQ highly available, RabbitMQ contains the " -"OCF scripts for the Pacemaker cluster resource agents since version 3.5.7. " -"It provides the active/active RabbitMQ cluster with mirrored queues. For " -"more information, see `Auto-configuration of a cluster with a Pacemaker " -"`_." -msgstr "" -"RabbitMQ'yu yüksek kullanılır yapmak için başka bir seçenek de, RabbitMQ'nun " -"3.5.7 sürümünden itibaren Pacemaker küme kaynak aracıları için içerdiği OCF " -"betikleridir. Etkin/etkin RabbitMQ kümesine yansılı kuyruklar sağlar. Daha " -"fazla bilgi için `Pacemaker ile bir kümenin otomatik yapılandırılmasına " -"`_ göz atın." - -msgid "" -"As of September 2016, the OpenStack High Availability community is designing " -"and developing an official and unified way to provide high availability for " -"instances. We are developing automatic recovery from failures of hardware or " -"hypervisor-related software on the compute node, or other failures that " -"could prevent instances from functioning correctly, such as, issues with a " -"cinder volume I/O path." -msgstr "" -"Eylül 2016 itibariyle, OpenStack Yüksek Kullanılırlık topluluğu sunucular " -"için yüksek kullanılırlık sağlamak için resmi ve birleştirilmiş bir yol " -"tasarlıyor ve geliştiriyorlar. Hesaplama düğümünde donanımsal veya " -"hipervizörle ligili yazılımsal arızalardan, veya cinder birim I/O yoluyla " -"ilgili sunucuların düzgün işlemesine engel olan sorunlarda otomatik kurtarma " -"geliştiriyoruz." - -msgid "" -"At its core, a cluster is a distributed finite state machine capable of co-" -"ordinating the startup and recovery of inter-related services across a set " -"of machines." -msgstr "" -"Özünde, bir küme, dahili ilişkili servisleri bir makine kümesi arasında " -"başlatıp kurtarmayı düzenleme yetisine sahip dağıtık sonlu makinedir." - -msgid "Automated recovery of failed instances" -msgstr "Arızalı sunucuların otomatik kurtarılması" - -msgid "Awareness of instances on other machines" -msgstr "Diğer makinelerdeki sunuculardan haberdar olmak" - -msgid "Awareness of other applications in the stack" -msgstr "Yığındaki diğer uygulamaların farkında olmak" - -msgid "" -"Bear in mind, leaving SELinux in permissive mode is not a good security " -"practice. Over the longer term, you need to develop a security policy for " -"Galera Cluster and then switch SELinux back into enforcing mode." -msgstr "" -"SELinux'u izin veren kipte bırakmanın pek iyi bir güvenlik tercihi " -"olmadığını unutmayın. Uzun vadede, Galera Kümesi için bir güvenlik ilkesi " -"geliştirmeli ve SELinux'u tekrar etkin kipe geçirmelisiniz." - -msgid "" -"Before beginning, ensure you have read the `OpenStack Identity service " -"getting started documentation `_." -msgstr "" -"Başlamadan önce, `OpenStack Kimlik servisi başlama belgelendirmesini " -"`_ " -"okuduğunuzdan emin olun." - -msgid "" -"Before following this guide to configure the highly available OpenStack " -"cluster, ensure the IP ``10.0.0.11`` and hostname ``controller`` are not in " -"use." -msgstr "" -"Bu kılavuzu takip ederek yüksek kullanılır OpenStack kümesi yapılandırmadan " -"önce, ``10.0.0.11`` IP adresinin ve ``controller`` makine adının kullanımda " -"olmadığından emin olun." - -msgid "" -"Before you launch Galera Cluster, you need to configure the server and the " -"database to operate as part of the cluster." -msgstr "" -"Galera Kümesini başlatmadan önce sunucu ve veritabanını kümenin bir parçası " -"olarak çalışacak şekilde yapılandırmalısınız." - -msgid "" -"Both the central and the compute agent can run in an HA deployment. This " -"means that multiple instances of these services can run in parallel with " -"workload partitioning among these running instances." -msgstr "" -"Hem merkezi hem hesaplama aracısı HA bir kurulumda çalışabilirler. Bunun " -"anlamı bu servislerin çoklu şekilde paralel olarak iş yükünü çalışan " -"sunucular arasında dağıtarak çalışabileceğidir." - -msgid "" -"Both use a cluster manager, such as Pacemaker or Veritas, to orchestrate the " -"actions of the various services across a set of machines. Because we are " -"focused on FOSS, we refer to these as Pacemaker architectures." -msgstr "" -"Her biri makine kümeleri arasındaçi çeşitli eylemleri yönetmek için " -"Pacemaker veya Veritas gibi bir küme yönetici kullanır. FOSS üzerine " -"eğildiğimizden, bunlara Pacemaker mimarileri olarak başvuracağız." - -msgid "" -"By default, STONITH is enabled in Pacemaker, but STONITH mechanisms (to " -"shutdown a node via IPMI or ssh) are not configured. In this case Pacemaker " -"will refuse to start any resources. For production cluster it is recommended " -"to configure appropriate STONITH mechanisms. But for demo or testing " -"purposes STONITH can be disabled completely as follows:" -msgstr "" -"Öntanımlı olarak, STONITH Pacemaker'de etkindir, ama STONITH yöntemleri (bir " -"düğümü IPMI veya ssh ile kapatmak için) yapılandırılmamıştır. Bu durumda " -"Pacemaker herhangi bir kaynağı başlatmayı reddedecektir. Üretim kümesi için " -"uygun STONITH yöntemlerini yapılandırmanız önerilir. Tanıtım veya deneme " -"amaçlı olarak STONITH aşağıdaki gibi tamamen kapatılabilir:" - -msgid "" -"By default, ``controller1`` handles the caching service. If the host goes " -"down, ``controller2`` or ``controller3`` will complete the service." -msgstr "" -"Öntanımlı olarak, ``controller1`` önbellek servisini ele alır. Sunucu " -"kapanırsa, ``controller2`` veya ``controller3`` servisi tamamlayacaktır." - -msgid "" -"By default, cluster nodes do not start as part of a Primary Component. In " -"the Primary Component, replication and state transfers bring all databases " -"to the same state." -msgstr "" -"Öntanımlı olarak, küme düğümleri bir Birincil Bileşenin parçası olarak " -"başlamazlar. Birincil Bileşende, yedekleme ve durum aktarımları tüm " -"veritabanlarını aynı duruma getirir." - -msgid "" -"By sending all API access through the proxy, you can clearly identify " -"service interdependencies. You can also move them to locations other than " -"``localhost`` to increase capacity if the need arises." -msgstr "" -"Tüm API erişimini vekil aracılığıyla göndererek, servis dahili " -"bağımlılıklarını açıkça tanımlayabilirsiniz. Ayrıca ihtiyaç halinde " -"kapasiteyi artırmak için ``localhost`` dışında konumlara da taşıyabilirsiniz." - -msgid "Ceph" -msgstr "Ceph" - -msgid "" -"Ceph RBD provides object replication capabilities by storing Block Storage " -"volumes as Ceph RBD objects. Ceph RBD ensures that each replica of an object " -"is stored on a different node. This means that your volumes are protected " -"against hard drive and node failures, or even the failure of the data center " -"itself." -msgstr "" -"Ceph RBD Blok Depolama birimlerini Ceph RBD nesneleri olarak saklayarak " -"nesne yedekleme yeteneği sağlar. Ceph RBD bir nesnenin her bir yedeğinin " -"farklı bir düğümde saklandığından emin olur. Yani birimleriniz sabit disk ve " -"düğüm arızalarından korunur, hatta veri merkezinin arızalanmasından bile." - -msgid "" -"Certain services running on the underlying operating system of your " -"OpenStack database may block Galera Cluster from normal operation or prevent " -"``mysqld`` from achieving network connectivity with the cluster." -msgstr "" -"OpenStack veritabanınızın altta yatan işletim sisteminde çalışan belli " -"servisler Galera Kümesini normal işlemekten veya ``mysqld``yi küme ile ağ " -"iletişimine geçmekten alıkoyabilir." - -msgid "Change the number of expected votes for a cluster to be quorate" -msgstr "" -"Bir kümenin yeterli çoğunluğu almış olması için beklenen oy sayısını değiştir" - -msgid "Change the number of votes assigned to a node" -msgstr "Bir düğüme atanan oy sayısını değiştir" - -msgid "" -"Cinder provides Block-Storage-as-a-Service suitable for performance " -"sensitive scenarios such as databases, expandable file systems, or providing " -"a server with access to raw block level storage." -msgstr "" -"Cinder veritabanları, genişleyebilir dosya sistemleri veya bir sunucuya ham " -"blok seviyesinde depolama erişimi sağlamak gibi hassas başarım senaryoları " -"için Servis olarak blok depolama sağlar." - -msgid "Clusters and quorums" -msgstr "Kümeler ve yetersayılar" - -msgid "" -"Clusters with an even number of hosts suffer from similar issues. A single " -"network failure could easily cause a N:N split where neither side retains a " -"majority. For this reason, we recommend an odd number of cluster members " -"when scaling up." -msgstr "" -"Eşit sayıda sunucuya sahip kümeler benzer sorunlarla karşılaşır. Tek bir ağ " -"arızası kolaylıkla iki tarafın da çoğunluğu tutmadığı N:N ayrımına yol " -"açabilir. Bu sebeple ölçeklemede tek sayıda küme ögesi seçmenizi tavsiye " -"ediyoruz." - -msgid "Collapsed" -msgstr "Kapalı" - -msgid "" -"Commit your configuration changes by entering the following command from " -"the :command:`crm configure` menu:" -msgstr "" -":command:`crm configure` menüsünden aşağıdaki komutu girerek yapılandırma " -"değişikliklerinizi gönderin:" - -msgid "" -"Commit your configuration changes from the :command:`crm configure` menu " -"with the following command:" -msgstr "" -"Aşağıdaki komutla yapılandırma değişikliklerinizi :command:`crm configure` " -"menüsünden gönderin:" - -msgid "Common deployment architectures" -msgstr "Genel kurulum mimarileri" - -msgid "Configuration" -msgstr "Yapılandırma" - -msgid "Configuration tips" -msgstr "Yapılandırma ipuçları" - -msgid "Configure Block Storage API service" -msgstr "Blok Depolama API servisini yapılandırın" - -msgid "Configure NTP" -msgstr "NTP'yi yapılandır" - -msgid "Configure OpenStack Identity service" -msgstr "OpenStack Kimlik servisini yapılandırın" - -msgid "Configure OpenStack Image service API" -msgstr "OpenStack İmaj API servisini yapılandırın" - -msgid "Configure OpenStack services to use HA Shared File Systems API" -msgstr "" -"OpenStack servislerini HA Paylaşımlı Dosya Sistemleri API'sini kullanacak " -"şekilde yapılandırın" - -msgid "Configure OpenStack services to use Rabbit HA queues" -msgstr "" -"OpenStack servislerini Rabbit HA kuyrukları kullanacak şekilde yapılandırın:" - -msgid "" -"Configure OpenStack services to use the highly available Block Storage API" -msgstr "" -"OpenStack servislerini yüksek kullanılır Blok Depolama API'sini kullanacak " -"şekilde yapılandırın" - -msgid "" -"Configure OpenStack services to use the highly available OpenStack Identity" -msgstr "" -"OpenStack servislerini yüksek kullanılırlıklı OpenStack Kimliği kullanacak " -"şekilde yapılandırın" - -msgid "" -"Configure OpenStack services to use the highly available OpenStack Image API" -msgstr "" -"OpenStack servislerini yüksek kullanılır OpenStack İmaj API'sini kullanacak " -"şekilde yapılandırma" - -msgid "Configure RabbitMQ for HA queues" -msgstr "RabbitMQ'yu HA kuyrukları için yapılandır" - -msgid "Configure Shared File Systems API service" -msgstr "Paylaşımlı Dosya Sistemleri API servisini yapılandırın" - -msgid "Configure the OpenStack components to use at least two RabbitMQ nodes." -msgstr "" -"OpenStack bileşenlerini en az iki RabbitMQ düğümü kullanacak şekilde " -"yapılandırın." - -msgid "Configure the VIP" -msgstr "VIP Yapılandırma" - -msgid "" -"Configure the kernel parameter to allow non-local IP binding. This allows " -"running HAProxy instances to bind to a VIP for failover. Add following line " -"to ``/etc/sysctl.conf``:" -msgstr "" -"Yerel-olmayan IP bağlamaya izin vermek için çekirdek parametresini " -"yapılandırın. Bu HAProxy sunucuların bir VIP'e bağlanmasını ya da yedeğe " -"geçmesine izin verir. ``/etc/sysctl.conf`` dosyasına şu satırı ekleyin:" - -msgid "Configuring Block Storage to listen on the VIP address" -msgstr "Blok Depolamayı VIP adresinde dinleyecek şekilde yapılandırmak" - -msgid "Configuring HAProxy" -msgstr "HAProxy Yapılandırması" - -msgid "Configuring InnoDB" -msgstr "InnoDB yapılandırması" - -msgid "Configuring OpenStack services to use this IP address" -msgstr "OpenStack serislerini bu IP adresini kullanacak şekilde yapılandırmak" - -msgid "" -"Configuring RAID on the hard drives that implement storage protects your " -"data against a hard drive failure. If the node itself fails, data may be " -"lost. In particular, all volumes stored on an LVM node can be lost." -msgstr "" -"Depolamayı sağlayan sabit diskler üzerinde RAID yapılandırmak verinizi sabit " -"disk arızalarından korur. Düğüm kendisi arızalanırsa veri kaybolabilir. " -"Özellikle LVM düğümünde depolanan tüm birimler kaybolabilir." - -msgid "Configuring high availability for instances" -msgstr "Sunucular için yüksek kullanılırlık yapılandırması" - -msgid "Configuring mysqld" -msgstr "Mysqld'yi yapılandırma" - -msgid "Configuring storage" -msgstr "Depolamanın yapılandırılması" - -msgid "Configuring the basic environment" -msgstr "Temel ortamın yapılandırılması" - -msgid "Configuring the compute node" -msgstr "Hesaplama düğümünü yapılandırın" - -msgid "Configuring the controller" -msgstr "Denetleyicini yapılandırılması" - -msgid "Configuring the networking services" -msgstr "Ağ servislerinin yapılandırılması" - -msgid "Configuring the server" -msgstr "Sunucunun yapılandırılması" - -msgid "Configuring the shared services" -msgstr "Paylaşımlı servisleri yapılandırın" - -msgid "Configuring wsrep replication" -msgstr "Wsrep yedeklemenin yapılandırılması" - -msgid "" -"Connect an additional quorum device to allow small clusters remain quorate " -"during node outages" -msgstr "" -"Düğüm arızalarında küçük kümelerin yeterli sayıda kalması için ek bir " -"yetersayı aygıtı bağla" - -msgid "" -"Consider that, while exchanges and bindings survive the loss of individual " -"nodes, queues and their messages do not because a queue and its contents are " -"located on one node. If we lose this node, we also lose the queue." -msgstr "" -"Değişimler ve bağlar tek düğümlerin kaybını kaldırabilse de, kuyruklar ve " -"iletileri kaldıramaz çünkü bir kuyruk ve içerikleri bir düğüm üzerinde " -"bulunur. Bu düğümü kaybedersek, kuyruğu da kaybederiz." - -msgid "Contents" -msgstr "İçindekiler" - -msgid "" -"Corosync can be configured to work with either multicast or unicast IP " -"addresses or to use the votequorum library." -msgstr "" -"Corosync çoklu yayın ya da tekli yayın IP adresleriyle veya votequorum " -"kitaplığını kullanacak şekilde yapılandırılabilir." - -msgid "" -"Corosync is started as a regular system service. Depending on your " -"distribution, it may ship with an LSB init script, an upstart job, or a " -"Systemd unit file." -msgstr "" -"Corosync düzenli bir sistem servisi olarak başlatılır. Dağıtımınıza göre, " -"bir LSB başlangıç betiği, upstart işi veya Systemd birim dosyası olabilir." - -msgid "" -"Create a configuration file for ``clustercheck`` at ``/etc/sysconfig/" -"clustercheck``:" -msgstr "" -"``clustercheck`` için ``/etc/sysconfig/clustercheck`` konumunda bir " -"yapılandırma dosyası oluşturun:" - -msgid "" -"Create a configuration file for the HAProxy monitor service, at ``/etc/" -"xinetd.d/galera-monitor``:" -msgstr "" -"``/etc/xinetd.d/galera-monitor`` konumunda HAProxy izleme servisi için " -"yapılandırma dosyası oluşturun:" - -msgid "" -"Create a symbolic link for the database server in the ``disable`` directory:" -msgstr "" -"``disable`` dizininde veritabanı servisi için bir sembolik bağlantı " -"oluşturun:" - -msgid "" -"Create and name the cluster. Then, start it and enable all components to " -"auto-start at boot time:" -msgstr "" -"Kümeyi oluşturun ve isimlendirin. Ardından başlatın ve tüm bileşenleri " -"önyükleme zamanında otomatik başlayacak şekilde etkinleştirin:" - -msgid "Create the Block Storage API endpoint with this IP." -msgstr "Bu IP ile Blok Depolama API uç noktasını oluşturun." - -msgid "Create the OpenStack Identity Endpoint with this IP address." -msgstr "Bu IP adresiyle OpenStack Kimlik Uç Noktasını oluşturun." - -msgid "Current upstream work" -msgstr "Mevcut yapılan iş" - -msgid "" -"Data integrity through fencing (a non-responsive process does not imply it " -"is not doing anything)" -msgstr "" -"Parmaklık ile veri bütünlüğü (yanıt vermeyen bir süreç hiçbir şey " -"yapmadığını ima etmez)" - -msgid "Data loss: Accidental deletion or destruction of data." -msgstr "Veri kaybı: Verinin kazayla silinmesi veya bozulması." - -msgid "Database (Galera Cluster) for high availability" -msgstr "Yüksek kullanılırlık için veritabanı (Galera Kümesi)" - -msgid "Database configuration" -msgstr "Veritabanı yapılandırması" - -msgid "Database hosts with Galera Cluster installed" -msgstr "Galera Kümesi yüklü veritabanı sunucuları" - -msgid "" -"Define the InnoDB memory buffer pool size. The default value is 128 MB, but " -"to compensate for Galera Cluster's additional memory usage, scale your usual " -"value back by 5%:" -msgstr "" -"InnoDB bellek tampon havuz boyutunu belirtin. Öntanımlı değer 128 MB'dir, " -"ama Galera Kümesinin ek hafıza kullanımına yer açmak için genel değerinizi " -"5% geri ölçekleyin:" - -msgid "Deployment flavors" -msgstr "Dağıtım nitelikleri" - -msgid "Deployment strategies" -msgstr "Kurulum stratejileri" - -msgid "Description" -msgstr "Açıklama" - -msgid "" -"Do not change this value. Other modes may cause ``INSERT`` statements on " -"tables with auto-increment columns to fail as well as unresolved deadlocks " -"that leave the system unresponsive." -msgstr "" -"Bu değeri değiştirmeyin. Diğer kipler otomatik artırmalı sütunlara sahip " -"tablolardaki ``INSERT`` işlemlerinin başarısız olmasına ve sistemi yanıtsız " -"bırakan çözülmemiş ölükilitlere yol açabilir." - -msgid "Download the resource agent to your system:" -msgstr "Kaynak aracısını sisteminize indirin:" - -msgid "" -"Each configured interface must have a unique ``ringnumber``, starting with 0." -msgstr "" -"Yapılandırılan her arayüzün 0 ile başlayan, benzersiz bir ``ringnumber`` " -"değeri olmalıdır." - -msgid "Each instance has its own IP address:" -msgstr "Her bir sunucu kendi IP adresine sahiptir:" - -msgid "" -"Each instance of HAProxy configures its front end to accept connections only " -"to the virtual IP (VIP) address. The HAProxy back end (termination point) is " -"a list of all the IP addresses of instances for load balancing." -msgstr "" -"Her bir HAProxy ön yüzünü yalnızca sanal IP (VIP) adresinden bağlantı kabul " -"edecek şekilde yapılandırır. HAProxy arka ucu (sonlanma noktası) yük " -"dengeleme için olan sunucuların IP adresi listesidir." - -msgid "" -"Each service also has a backup but manages both the main and redundant " -"systems concurrently. This way, if there is a failure, the user is unlikely " -"to notice. The backup system is already online and takes on increased load " -"while the main system is fixed and brought back online." -msgstr "" -"Her servis ayrıca bir yedeğe sahiptir ama hem ana hem yedek sistemleri aynı " -"zamanda yönetir. Bu yolla, bir arıza olduğunda kullanıcı fark etmeyecektir " -"bile. Yedek sistem zaten çevrimiçidir ve ana sistem düzeltilip tekrar " -"çevrimiçi yapılana kadar artan yükü kaldıracaktır." - -msgid "" -"Edit the :file:`/etc/glance/glance-api.conf` file to configure the OpenStack " -"Image service:" -msgstr "" -":file:`/etc/glance/glance-api.conf` dosyasını düzenleyerek OpenStack İmaj " -"servisini yapılandırın:" - -msgid "Edit the :file:`/etc/manila/manila.conf` file:" -msgstr ":file:`/etc/manila/manila.conf` dosyasını düzenleyin:" - -msgid "" -"Edit the :file:`keystone.conf` file to change the values of the :manpage:" -"`bind(2)` parameters:" -msgstr "" -":manpage:`bind(2)` parametrelerinin değerlerini değiştirmek için :file:" -"`keystone.conf` dosyasını düzenleyin:" - -msgid "" -"Edit the ``/etc/cinder/cinder.conf`` file. For example, on a RHEL-based " -"system:" -msgstr "" -"``/etc/cinder/cinder.conf`` dosyasını düzenleyin. Örneğin RHEL tabanlı " -"sistemlerde:" - -msgid "Enhanced failure detection" -msgstr "Gelişmiş arıza algılama" - -msgid "" -"Ensure that the InnoDB locking mode for generating auto-increment values is " -"set to ``2``, which is the interleaved locking mode:" -msgstr "" -"Otomatik artırma değerleri üretmek için InnoDB kilitleme kipinin sıralı " -"birleştirme kilit kipi olan ``2`` olarak ayarlandığından emn olun:" - -msgid "" -"Ensure that the InnoDB log buffer is written to file once per second, rather " -"than on each commit, to improve performance:" -msgstr "" -"Başarımı artırmak için InnoDB kayıt tampon belleğinin dosyaya her gönderide " -"değil saniyede bir yazıldığına emin olun:" - -msgid "" -"Ensure that the binary log format is set to use row-level replication, as " -"opposed to statement-level replication:" -msgstr "" -"İkilik kayıt biçiminin açıklama-seviyesinde değil satır-seviyesinde " -"yedekleme kullanacak şekilde yapılandırıldığından emin olun:" - -msgid "" -"Ensure that the database server is not bound only to the localhost: " -"``127.0.0.1``. Also, do not bind it to ``0.0.0.0``. Binding to the localhost " -"or ``0.0.0.0`` makes ``mySQL`` bind to all IP addresses on the machine, " -"including the virtual IP address causing ``HAProxy`` not to start. Instead, " -"bind to the management IP address of the controller node to enable access by " -"other nodes through the management network:" -msgstr "" -"Veritabanı sunucusunun yalnızca localhost: ``127.0.0.1`` adresine bağlı " -"olmadığından emin olun. Ayrıca ``0.0.0.0`` adresine de bağlamayın. localhost " -"veya ``0.0.0.0`` adresine bağlamak ``mySQL``in makinedeki tüm IP adreslerine " -"bağlanması demektir, buna sanal IP adresi de dahildir bu da ``HAProxy``nin " -"başlamamasına sebep olur. Bunun yerine kontrol düğümünün yönetim IP adresine " -"bağlayarak diğer düğümlerden erişimi yönetim ağı üzerinden etkinleştirin:" - -msgid "Ensure that the default storage engine is set to InnoDB:" -msgstr "Öntanımlı depolama motorunun InnoDB'ye ayarlandığından emin olun:" - -msgid "" -"Ensure your HAProxy installation is not a single point of failure, it is " -"advisable to have multiple HAProxy instances running." -msgstr "" -"HAProxy kurulumunuzun tek bir kırılma noktası olmadığından emin olun, birden " -"çok HAProxy sunucusu çalıştırılması önerilir." - -msgid "" -"Ephemeral storage is allocated for an instance and is deleted when the " -"instance is deleted. The Compute service manages ephemeral storage and by " -"default, Compute stores ephemeral drives as files on local disks on the " -"compute node. As an alternative, you can use Ceph RBD as the storage back " -"end for ephemeral storage." -msgstr "" -"Geçici depolama sunucu için ayrılır ve sunucu silindiğinde silinir. Geçici " -"depolamayı Hesaplama servisi yönetir, ve öntanımlı olarak Hesaplama geçici " -"sürücüleri hesaplama düğümündeki yerel disklerde dosya olarak tutar. " -"Alternatif olarak, geçici depolama için arka uç olarak Ceph RBD " -"kullanabilirsiniz." - -msgid "" -"Even a distributed or replicated application that is able to survive " -"failures on one or more machines can benefit from a cluster manager because " -"a cluster manager has the following capabilities:" -msgstr "" -"Bir ya da daha fazla makinede arızaları kaldırabilen dağıtık ya da yedekli " -"bir uygulama bile bir küme yöneticiden faydalanabilir çünkü küme yönetici şu " -"yeteneklere sahiptir:" - -msgid "Existing solutions" -msgstr "Mevcut çözümler" - -msgid "Facility services such as power, air conditioning, and fire protection" -msgstr "Güç, havalandırma, yangın koruması gibi tesis servisleri" - -msgid "Firewall" -msgstr "Güvenlik duvarı" - -msgid "" -"For Liberty, you can not have the standalone network nodes. The Networking " -"services are run on the controller nodes. In this guide, the term `network " -"nodes` is used for convenience." -msgstr "" -"Liberty için, bağımsız ağ düğümlerine sahip olamazsınız. Ağ servisleri " -"kontrol düğümlerinde çalışır. Bu kılavuzda, kolaylık olması için `ağ " -"düğümleri` terimi kullanılmıştır." - -msgid "" -"For OpenStack Compute, (if your OpenStack Identity service IP address is " -"10.0.0.11) use the following configuration in the :file:`api-paste.ini` file:" -msgstr "" -"OpenStack Hesaplama için, (OpenStack Kimlik servisi IP adresiniz 10.0.0.11 " -"ise) :file:`api-paste.ini` dosyasında şu yapılandırmayı kullanın:" - -msgid "For RHEL, Fedora, or CentOS:" -msgstr "RHEL, Fedora veya CentOS için:" - -msgid "" -"For Red Hat Enterprise Linux and Red Hat-based Linux distributions, the " -"following process uses Systemd unit files." -msgstr "" -"Red Hat Kurumsal Linux ve Red Hat tabanlı Linux dağıtımları için, aşağıdaki " -"süreç Systemd birim dosyaları kullanır." - -msgid "" -"For SLES 12, the packages are signed by GPG key 893A90DAD85F9316. You should " -"verify the fingerprint of the imported GPG key before using it." -msgstr "" -"SLES 12 için, paketler GPG anahtarı 893A90DAD85F9316 ile imzalanmıştır. " -"Kullanmadan önce içe aktarılan GPG anahtarının parmakizini doğrulamalısınız." - -msgid "For SLES 12:" -msgstr "SLES 12 için:" - -msgid "" -"For UDPU, every node that should be a member of the membership must be " -"specified." -msgstr "UDPU için, aboneliğin üyesi olması gereken her düğüm belirtilmelidir." - -msgid "" -"For Ubuntu 16.04.1: Create a configuration file for ``clustercheck`` at ``/" -"etc/default/clustercheck``." -msgstr "" -"Ubuntu 16.04.1 için: ``/etc/default/clustercheck`` konumunda " -"``clustercheck`` için bir yapılandırma dosyası oluşturun." - -msgid "For Ubuntu or Debian:" -msgstr "Ubuntu veya Debian için:" - -msgid "" -"For Ubuntu, you should also enable the Corosync service in the ``/etc/" -"default/corosync`` configuration file." -msgstr "" -"Ubuntu için, ayrıca ``/etc/default/corosync`` yapılandırma dosyasında " -"Corosync servisini etkinleştirmelisiniz." - -msgid "" -"For `Fedora `_" -msgstr "" -"`Fedora `_ için" - -msgid "" -"For `Ubuntu `_" -msgstr "" -"`Ubuntu `_ için" - -msgid "For ``crmsh``:" -msgstr "``crmsh`` için:" - -msgid "For ``pcs``:" -msgstr "``pcs`` için:" - -msgid "" -"For a complete list of the available parameters, run the ``SHOW VARIABLES`` " -"command from within the database client:" -msgstr "" -"Kullanılabilir parametrelerin tam listesi için, veritabanı istemcisinden " -"``SHOW VARIABLES`` komutunu çalıştırın:" - -msgid "" -"For backward compatibility and supporting existing deployments, the central " -"agent configuration supports using different configuration files. This is " -"for groups of service instances that are running in parallel. For enabling " -"this configuration, set a value for the ``partitioning_group_prefix`` option " -"in the `polling section `_ in the OpenStack Configuration " -"Reference." -msgstr "" -"Geriye uyumluluk ve mevcut kurulumlara destek için, merkezi aracı " -"yapılandırması farklı yapılandırma dosyalarının kullanımını destekler. Bu " -"paralel olarak çalışan servis sunucu grupları içindir. Bu yapılandırmayı " -"etkinleştirmek için, OpenStack Yapılandırma Kılavuzunda `yoklama kısmındaki " -"`_ ``partitioning_group_prefix`` seçeneği için bir değer " -"ayarlayın." - -msgid "" -"For demonstrations and studying, you can set up a test environment on " -"virtual machines (VMs). This has the following benefits:" -msgstr "" -"Gösterim çalışma amaçlı, sanal makineler (VM) üzerine bir deneme ortamı " -"kurabilirsiniz. Bunun aşağıdaki faydaları bulunur:" - -msgid "" -"For detailed instructions about installing HAProxy on your nodes, see the " -"HAProxy `official documentation `_." -msgstr "" -"Düğümlerinize HAProxy kurmak hakkında ayrıntılı bilgi için, HAProxy `resmi " -"belgelendirmesine `_ göz atın." - -msgid "" -"For documentation about these parameters, ``wsrep`` provider option, and " -"status variables available in Galera Cluster, see the Galera cluster " -"`Reference `_." -msgstr "" -"Bu parametrelerle ilgili belgelendirme, ``wsrep`` sağlayıcı seçeneği, ve " -"Galera Kümesindeki kullanılabilir durum değişkenleri için, Galera küme " -"`Başvurusuna`_ göz atın." - -msgid "" -"For each sub-group of the central agent pool with the same " -"``partitioning_group_prefix``, a disjoint subset of meters must be polled to " -"avoid samples being missing or duplicated. The list of meters to poll can be " -"set in the :file:`/etc/ceilometer/pipeline.yaml` configuration file. For " -"more information about pipelines see the `Data processing and pipelines " -"`_ " -"section." -msgstr "" -"Aynı ``partitioning_group_prefix`` değerine sahip merkezi aracı havuzu alt " -"grubu için, örneklerin kayıp ya da kopya olmasını engellemek için " -"ölçümlerin ayrık alt kümeler yoklanmalıdır. Yoklanacak ölçümlerin listesi :" -"file:`/etc/ceilometer/pipeline.yaml` yapılandırma dosyasında ayarlanabilir. " -"Yönlendirmelerle ilgili daha fazla bilgi için `Veri işleme ve yönlendirme " -"`_ " -"kısmına göz atın." - -msgid "" -"For environments that do not support multicast, Corosync should be " -"configured for unicast. An example fragment of the :file:`corosync.conf` " -"file for unicastis is shown below:" -msgstr "" -"Çoklu yayın desteklemeyen ortamlar için, Corosync tekli yayın için " -"yapılandırılmalıdır. Tekli yayınlar için ayarlanmış :file:`corosync.conf` " -"dosyasının örnek bir parçası aşağıdadır:" - -msgid "" -"For example, if your OpenStack Image API service IP address is 10.0.0.11 (as " -"in the configuration explained here), you would use the following " -"configuration in your :file:`nova.conf` file:" -msgstr "" -"Örneğin, OpenStack İmaj API servisi IP adresiniz 10.0.0.11 ise (burada " -"açıklanan yapılandırmadaki gibi) :file:`nova.conf` dosyanızda aşağıdaki " -"yapılandırmayı kullanırdınız:" - -msgid "" -"For example, in a seven-node cluster, the quorum should be set to " -"``floor(7/2) + 1 == 4``. If quorum is four and four nodes fail " -"simultaneously, the cluster itself would fail, whereas it would continue to " -"function, if no more than three nodes fail. If split to partitions of three " -"and four nodes respectively, the quorum of four nodes would continue to " -"operate the majority partition and stop or fence the minority one (depending " -"on the no-quorum-policy cluster configuration)." -msgstr "" -"Örneğin yedi düğümlük bir kümede, yetersayı ``taban(7/2) + 1 == 4`` olarak " -"ayarlanmalıdır. Yetersayı dört ise ve dört düğüm aynı anda arızalanırsa, " -"küme de başarısız olur, üç düğümden fazlası arızalanmazsa çalışmaya devam " -"eder. Eğer üç ve dört düğüm olarak parçalandıysa, dört düğümlük yetersayı " -"ile çoğunluğun olduğu kısımda işlemeye devam edecektir ve azınlıkta " -"kalanları durduracak ya da yalıtacaktır (no-quorum-policy küme " -"yapılandırmasına dayanarak)." - -msgid "" -"For example, you may enter ``edit p_ip_glance-api`` from the :command:`crm " -"configure` menu and edit the resource to match your preferred virtual IP " -"address." -msgstr "" -"Örneğin :command:`crm configure` menüsünden ``edit p_ip_glance-api`` girip " -"kaynağı düzenleyerek tercih ettiğiniz sanal IP adresi ile " -"eşleştirebilirsiniz." - -msgid "" -"For example, you may enter ``edit p_ip_keystone`` from the :command:`crm " -"configure` menu and edit the resource to match your preferred virtual IP " -"address." -msgstr "" -"Örneğin, :command:`crm configure` menüsünden ``edit p_ip_keystone`` girmeniz " -"ve kaynağı tercih edilen sanal IP adresiyle eşleşecek şekilde düzenlemeniz " -"gerekebilir." - -msgid "" -"For example, you may enter ``edit p_ip_manila-api`` from the :command:`crm " -"configure` menu and edit the resource to match your preferred virtual IP " -"address." -msgstr "" -"Örneğin :command:`crm configure` menüsünden ``edit p_ip_manila-api`` " -"girebilir ve kaynağı tercih ettiğiniz sanal IP adresi ile eşleşecek şekilde " -"düzenleyebilirsiniz." - -msgid "" -"For firewall configurations, Corosync communicates over UDP only, and uses " -"``mcastport`` (for receives) and ``mcastport - 1`` (for sends)." -msgstr "" -"Güvenlik duvarı yapılandırmaları için, Corosync yalnızca UDP üzerinden " -"iletişim kurar, ve ``mcastport`` (alıcılar için) ve ``mcastport - 1`` " -"(göndericiler için) kullanır." - -msgid "" -"For information about the required configuration options to set in the :file:" -"`ceilometer.conf`, see the `coordination section `_ in the OpenStack Configuration " -"Reference." -msgstr "" -":file:`ceilometer.conf` dosyasında ayarlanacak gerekli yapılandırma " -"seçenekleri hakkında bilgi için, OpenStack Yapılandırma Başvurusundaki " -"`eşgüdüm kısmına `_ göz atın." - -msgid "" -"For more information about configuring storage back ends for the different " -"storage options, see `Manage volumes `_ in the OpenStack Administrator Guide." -msgstr "" -"Farklı depolama seçenekleri için depolama arka uçları yapılandırmayla ilgili " -"daha fazla bilgi için, OpenStack Yönetici Kılavuzundaki `Birimlerin " -"yönetimine `_ göz atın." - -msgid "" -"For more information on configuring SELinux to work with Galera Cluster, see " -"the `SELinux Documentation `_" -msgstr "" -"SELinux'u Galera Kümesi ile çalışacak şekilde yapılandırmayla ilgili daha " -"fazla bilgi için `SELinux Belgelendirmesine `_ göz atın" - -msgid "" -"For more information on firewalls, see `firewalls and default ports `_ in OpenStack " -"Administrator Guide." -msgstr "" -"Güvenlik duvarlarıyla ilgili daha fazla bilgi için, OpenStack Yönetici " -"Kılavuzunda `güvenlik duvarları ve öntanımlı bağlantı noktalarına `_ göz atın." - -msgid "" -"For more information, see the official installation manual for the " -"distribution:" -msgstr "Daha fazla bilgi için, dağıtım için resmi kurulum kılavuzuna göz atın:" - -msgid "For openSUSE:" -msgstr "openSUSE için:" - -msgid "For servers that use ``systemd``, run the following command:" -msgstr "``systemd`` kullanan sunucularda şu komutu çalıştırın:" - -msgid "For servers that use ``systemd``, run the following commands:" -msgstr "``systemd`` kullanan sunucular için, aşağıdaki komutları çalıştırın:" - -msgid "" -"For these reasons, we highly recommend the use of a cluster manager like " -"`Pacemaker `_." -msgstr "" -"Bu sebeplerle, `Pacemaker `_ gibi bir küme " -"yöneticiyi kesinlikle öneriyoruz." - -msgid "" -"For this reason, each cluster in a high availability environment should have " -"an odd number of nodes and the quorum is defined as more than a half of the " -"nodes. If multiple nodes fail so that the cluster size falls below the " -"quorum value, the cluster itself fails." -msgstr "" -"Bu sebeple, yüksek kullanılır bir ortamdaki her bir küme tek sayıda düğüme " -"sahip olmalı ve yetersayı düğümlerin yarısından fazlası olarak " -"tanımlanmalıdır. Birden çok düğüm arızalanır ve küme boyutu yetersayı " -"boyutunun altına düşerse, küme kendisi başarısız olur." - -msgid "" -"Galera Cluster configuration parameters all have the ``wsrep_`` prefix. You " -"must define the following parameters for each cluster node in your OpenStack " -"database." -msgstr "" -"Galera Kümesi yapılandırma parametrelerinin ``wsrep_`` öneki bulunur. " -"OpenStak veritabanınızdaki her küme düğümü için aşağıdaki parametreleri " -"tanımlamalısınız." - -msgid "" -"Galera Cluster does not support non-transactional storage engines and " -"requires that you use InnoDB by default. There are some additional " -"parameters that you must define to avoid conflicts." -msgstr "" -"Galera Kümesi aktarımsal olmayan depolama motorlarını desteklemez ve " -"öntanımlı olarak InnoDB kullanmanızı gerektirir. Çakışmaları önlemek için " -"tanımlamanız gereken bazı ek parametreler bulunur." - -msgid "" -"Galera Cluster requires that you open the following ports to network traffic:" -msgstr "" -"Galera Kümesi aşağıdaki bağlantı noktalarını ağ trafiğine açmanızı " -"gerektirir:" - -msgid "Galera can be configured using one of the following strategies:" -msgstr "Galera aşağıdaki stratejilerden biri kullanılarak yapılandırılabilir:" - -msgid "Galera runs behind HAProxy:" -msgstr "Galera HAProxy arkasında çalışır:" - -msgid "" -"Galera synchronous replication guarantees a zero slave lag. The failover " -"procedure completes once HAProxy detects that the active back end has gone " -"down and switches to the backup one, which is then marked as ``UP``. If no " -"back ends are ``UP``, the failover procedure finishes only when the Galera " -"Cluster has been successfully reassembled. The SLA is normally no more than " -"5 minutes." -msgstr "" -"Galera eşzamanlı çoğaltma sıfır gecikmeli köleler garantiler. Arıza geçiş " -"yöntemi HAProxy etkin arka ucun gittiğini algılayıp yedek olana geçtiğinde " -"tamamlanır, ardından yeni etkin ``AÇIK`` olarak işaretlenir. Hiçbir arka uç " -"``AÇIK`` değilse arıza geçiş yöntemi yalnızca Galera Kümesi yeniden bir " -"araya geldiğinde biter. SLA normalde 5 dakikadan fazla değildir." - -msgid "HAProxy" -msgstr "HAProxy" - -msgid "" -"HAProxy load balances incoming requests and exposes just one IP address for " -"all the clients." -msgstr "" -"HAProxy gelen isteklerin yükünü dengeler ve istemciler için yalnızca bir IP " -"adresi sunar." - -msgid "" -"HAProxy provides a fast and reliable HTTP reverse proxy and load balancer " -"for TCP or HTTP applications. It is particularly suited for web crawling " -"under very high loads while needing persistence or Layer 7 processing. It " -"realistically supports tens of thousands of connections with recent hardware." -msgstr "" -"HAProxy TCP ve HTTP uygulamalar için hızlı ve güvenilir HTTP ters vekili " -"sağlar. Kalıcılık ve Katman 7 işleme ihtiyacı duyulan çok yüksek yüklerde " -"web yürütmelerine özellikle uygundur. Güncel donanımla gerçekçi bir şekilde " -"on binlerce bağlantıyı destekler." - -msgid "Hardware considerations for high availability" -msgstr "Yüksek kullanılırlık için donanım etmenleri" - -msgid "Hardware setup" -msgstr "Donanım kurulumu" - -msgid "" -"High availability is implemented with redundant hardware running redundant " -"instances of each service. If one piece of hardware running one instance of " -"a service fails, the system can then failover to use another instance of a " -"service that is running on hardware that did not fail." -msgstr "" -"Yüksek kullanılırlık her servisin yedeğini çalıştıran yedekli donanım ile " -"uygulanır. Bir servisi çalıştıran bir donanım parçası arızalanırsa, sistem " -"arızalanmayan donanımda çalışan servisi kullanacak şekilde geçiş yapabilir." - -msgid "" -"High availability is not for every user. It presents some challenges. High " -"availability may be too complex for databases or systems with large amounts " -"of data. Replication can slow large systems down. Different setups have " -"different prerequisites. Read the guidelines for each setup." -msgstr "" -"Yüksek kullanılırlık her kullanıcı için değildir. Bazı zorlukları " -"beraberinde getirir. Yüksek kullanılırlık veritabanları veya büyük miktarda " -"veriye sahip sistemlerde çok karmaşık olabilir. Çoğaltma işlemi büyük " -"sistemleri yavaşlatabilir. Farklı kurulumların farklı ön gereksinimleri " -"bulunur. Her bir kurulum için kılavuzları okuyun." - -msgid "High availability is turned off as the default in OpenStack setups." -msgstr "" -"OpenStack kurulumlarında yüksek kullanılırlık öntanımlı olarak kapalıdır." - -msgid "High availability systems seek to minimize the following issues:" -msgstr "" -"Yüksek kullanılabilir sistemler şu sorunları asgariye indirmeye çalışır:" - -msgid "" -"High availability systems typically achieve an uptime percentage of 99.99% " -"or more, which roughly equates to less than an hour of cumulative downtime " -"per year. In order to achieve this, high availability systems should keep " -"recovery times after a failure to about one to two minutes, sometimes " -"significantly less." -msgstr "" -"Yüksek kullanılır sistemler genellikle çalışma zamanı yüzdesini 99.99% veya " -"daha yukarıda tutar, bunun anlamı yılda bir saatten az kapalı kalma " -"süresidir. Bunu elde etmek için, yüksek kullanılabilir sistemler arıza " -"sonrası kurtarma sürelerini bir iki dakikada, bazen daha da aşağıda " -"tutmalıdırlar." - -msgid "Highly available Block Storage API" -msgstr "Yüksek kullanılır Blok Depolama API'si" - -msgid "Highly available Identity API" -msgstr "Yüksek kullanılırlıklı Kimlik API'si" - -msgid "Highly available Image API" -msgstr "Yüksek kullanılır İmaj API'si" - -msgid "Highly available Shared File Systems API" -msgstr "Yüksek kullanılır Paylaşımlı Dosya Sistemi API'si" - -msgid "Highly available Telemetry" -msgstr "Yüksek kullanılır Telemetri" - -msgid "How long to back-off for between retries when connecting to RabbitMQ:" -msgstr "" -"RabbitMQ'ya bağlanırken yeniden denemeler arasında ne kadar bekleneceği:" - -msgid "" -"However, running an OpenStack environment on VMs degrades the performance of " -"your instances, particularly if your hypervisor or processor lacks support " -"for hardware acceleration of nested VMs." -msgstr "" -"Ancak, bir OpenStack ortamını sanal makineler üzerinde çalıştırmak " -"sunucularınızın başarımını azaltır, özellikle hipervizörünüz veya işlemciniz " -"içiçe sanal makinler için donanım hızlandırması desteğine sahip değilse." - -msgid "" -"If the Block Storage service runs on the same nodes as the other services, " -"then it is advisable to also include:" -msgstr "" -"Blok Depolama servisi diğer servislerle aynı düğümlerde çalışırsa, ayrıca " -"şunları içermesi de tavsiye edilir:" - -msgid "" -"If the Identity service will be sending ceilometer notifications and your " -"message bus is configured for high availability, you will need to ensure " -"that the Identity service is correctly configured to use it. For details on " -"how to configure the Identity service for this kind of deployment, see :doc:" -"`shared-messaging`." -msgstr "" -"Kimlik servisi ceilometer bildirilerini gönderecekse ve ileti yolunuz yüksek " -"kullanılırlık için yapılandırılmışsa, Kimlik servisinin bunu kullanacak " -"şekilde düzgün yapılandırıldığından emin olmalısınız. Kimlik servisinin bu " -"tür bir kurulum için nasıl yapılandırılacağıyla ilgili ayrıntılar için bknz :" -"doc:`shared-messaging`." - -msgid "" -"If the ``broadcast`` parameter is set to ``yes``, the broadcast address is " -"used for communication. If this option is set, the ``mcastaddr`` parameter " -"should not be set." -msgstr "" -"``broadcast`` parametresi ``yes`` olarak ayarlanırsa, yayın adresi iletişim " -"için kullanılır. Bu seçenek ayarlıysa, ``mcastaddr`` parametresi " -"ayarlanmamalıdır." - -msgid "" -"If the cluster is working, you can create usernames and passwords for the " -"queues." -msgstr "" -"Küme çalışıyorsa, kuyruklar için kullanıcı adları ve parolalar " -"oluşturabilirsiniz." - -msgid "" -"If you are using Corosync version 2 on Ubuntu 14.04, remove or comment out " -"lines under the service stanza. These stanzas enable Pacemaker to start up. " -"Another potential problem is the boot and shutdown order of Corosync and " -"Pacemaker. To force Pacemaker to start after Corosync and stop before " -"Corosync, fix the start and kill symlinks manually:" -msgstr "" -"Ubuntu 14.04 üzerinde Corosync sürüm 2 kullanıyorsanız, servis kıtasındaki " -"satırları silin veya yorum satırına alın. Bu kıtalar Pacemaker'in " -"başlayışını etkinleştirir. Potansiyel başka bir problem Corosync ve " -"Pacemaker'in önyükleniş ve kapanış sıralarıyla ilgilidir. Pacemaker'in " -"Corosync'den sonra başlamasını ve Corosync'den önce durmasını sağlamak için, " -"başlama ve öldürme sembolik bağlarını elle düzeltin:" - -msgid "" -"If you are using Corosync version 2, use the :command:`corosync-cmapctl` " -"utility instead of :command:`corosync-objctl`; it is a direct replacement." -msgstr "" -"Corosync sürüm 2 kullanıyorsanız, :command:`corosync-objctl`; yerine :" -"command:`corosync-cmapctl` aracını kullanın, doğrudan yerine geçer." - -msgid "" -"If you are using both private and public IP addresses, create two virtual IP " -"addresses and define the endpoint. For example:" -msgstr "" -"Hem özel hem açık IP adresleri kullanıyorsanız, iki sanal IP adresi " -"oluşturun ve uç noktayı tanımlayın. Örneğin:" - -msgid "" -"If you are using both private and public IP addresses, create two virtual " -"IPs and define your endpoint. For example:" -msgstr "" -"Hep gizli hem açık IP adresleri kullanıyorsanız, iki sanal IP oluşturun ve " -"uç noktanızı tanımlayın. Örneğin:" - -msgid "" -"If you are using both private and public IP addresses, you should create two " -"virtual IPs and define your endpoints like this:" -msgstr "" -"Hem özel hem açık IP adresleri kullanıyorsanız, iki sanal IP tanımlamalı ve " -"uç noktalarınızı şu şekilde tanımlamalısınız:" - -msgid "" -"If you are using the Block Storage service OCF agent, some settings will be " -"filled in for you, resulting in a shorter configuration file:" -msgstr "" -"Blok Depolama servisi OCF aracısını kullanıyorsanız, bazı ayarlar sizin için " -"doldurulacaktır, bu da daha kısa bir yapılandırma dosyasına sebep olur." - -msgid "" -"If you are using the horizon Dashboard, edit the :file:`local_settings.py` " -"file to include the following:" -msgstr "" -"Horizon Kontrol Panelini kullanıyorsanız, :file:`local_settings.py` " -"dosyasını aşağıdakileri içerecek şekilde düzenleyin:" - -msgid "" -"If you change the configuration from an old set-up that did not use HA " -"queues, restart the service:" -msgstr "" -"Yapılandırmayı HA kuyrukları kullanmayan eski bir kurulumdan " -"değiştirirseniz, servisi yeniden başlatın:" - -msgid "" -"If you use HAProxy as a load-balancing client to provide access to the " -"Galera Cluster, as described in the :doc:`controller-ha-haproxy`, you can " -"use the ``clustercheck`` utility to improve health checks." -msgstr "" -":doc:`controller-ha-haproxy` belgesinde tanımlandığı gibi Galera Kümesine " -"erişim sağlamak için yük dengeleyen istemci olarak HAProxy kullanıyorsanız, " -"sağlık kontrollerini iyileştirmek için ``clustercheck`` aracını " -"kullanabilirsiniz." - -msgid "" -"In Corosync, configurations use redundant networking (with more than one " -"interface). This means you must select a Redundant Ring Protocol (RRP) mode " -"other than none. We recommend ``active`` as the RRP mode." -msgstr "" -"Corosync'de, yapılandırmalar yedekli ağ kullanır (birden fazla arayüzle). " -"Bunun anlamı hiçbir şeyden ziyade Yedekli Halka İletişim Kuralı (RRP) kipini " -"seçmeniz gerekeceğidir. RRP kipi olarak ``etkin`` öneriyoruz." - -msgid "" -"In Red Hat Enterprise Linux or CentOS environments, this is a recommended " -"path to perform configuration. For more information, see the `RHEL docs " -"`_." -msgstr "" -"Red Hat Kurumsal Linux ve CentOS ortamlarında, bu yapılandırma yapmak için " -"tavsiye edilen yoldur. Daha fazla bilgi için `RHEL belgelerine `_ göz atın." - -msgid "" -"In a collapsed configuration, there is a single cluster of 3 or more nodes " -"on which every component is running." -msgstr "" -"Kapalı yapılandırmada, her birinde tüm bileşenlerin çalıştığı 3 ya da daha " -"fazla düğümden oluşan tek bir küme bulunur." - -msgid "" -"In addition to Galera Cluster, you can also achieve high availability " -"through other database options, such as PostgreSQL, which has its own " -"replication system." -msgstr "" -"Galera Kümesine ek olarak, kendi yedekleme sistemi olan PostgreSQL gibi " -"başka veritabanı seçenekleri ile de yüksek kullanılırlığı elde edebilirsiniz." - -msgid "" -"In general, we can divide all the OpenStack components into three categories:" -msgstr "Genelde, tüm OpenStack bileşenlerini üç kategoriye bölebiliriz:" - -msgid "" -"In the Galera Cluster, the Primary Component is the cluster of database " -"servers that replicate into each other. In the event that a cluster node " -"loses connectivity with the Primary Component, it defaults into a non-" -"operational state, to avoid creating or serving inconsistent data." -msgstr "" -"Galera Kümesinde, Birincil Bileşen birbiriyle yedekleme yapan veritabanı " -"sunucuları kümesidir. Bir küme düğümünün Birincil Bileşenle bağlantıyı " -"kaybettiği olaylarda, tutarsız veri oluşturmamak ya da sunmamak için " -"öntanımlı olarak işlevsiz bir duruma düşer." - -msgid "" -"In the event that a component fails and a back-up system must take on its " -"load, most high availability systems will replace the failed component as " -"quickly as possible to maintain necessary redundancy. This way time spent in " -"a degraded protection state is minimized." -msgstr "" -"Bir bileşenin arızalandığı ve yükünü yedek bir sistemin alması gerektiği " -"durumlarda, çoğu yüksek kullanılır sistem arızalı bileşeni olabildiğince " -"hızlı değiştirerek gerekli yedekliliği sağlar. Bu yolla kullanılamayan " -"koruma durumunda geçirilen zaman asgari düzeyde tutulur." - -msgid "" -"In the event that you need to restart any cluster node, you can do so. When " -"the database server comes back it, it establishes connectivity with the " -"Primary Component and updates itself to any changes it may have missed while " -"down." -msgstr "" -"Herhangi bir küme düğümünü yeniden başlatmanız gerekirse, yapabilirsiniz. " -"Veritabanı sunucusu geri geldiğinde, Birincil Bileşen ile bağlantıyı kurar " -"ve kapalıyken alamadığı tüm değişikliklerle kendini günceller." - -msgid "" -"In theory, you can run the Block Storage service as active/active. However, " -"because of sufficient concerns, we recommend running the volume component as " -"active/passive only." -msgstr "" -"Teoride Blok Depolama servisini etkin/etkin olarak çalıştırabilirsiniz. " -"Ancak birim bileşenini yalnızca etkin/pasif çalıştırmanızı önermek için " -"yeterli endişelerimiz var." - -msgid "" -"In this configuration, each service runs in a dedicated cluster of 3 or more " -"nodes." -msgstr "" -"Bu yapılandırmada, her servis 3 veya daha fazla düğümden oluşan adanmış bir " -"kümede çalışır. " - -msgid "" -"Individual cluster nodes can stop and be restarted without issue. When a " -"database loses its connection or restarts, the Galera Cluster brings it back " -"into sync once it reestablishes connection with the Primary Component. In " -"the event that you need to restart the entire cluster, identify the most " -"advanced cluster node and initialize the Primary Component on that node." -msgstr "" -"Bağımsız küme düğümleri durdurulabilir ve sorunsuzca yeniden başlatılabilir. " -"Bir veritabanı bağlantısını kaybettiğinde veya yeniden başladığında, Galera " -"Kümesi Birincil Bileşenle bağlantısını yeniden sağladığında tekrar onu " -"eşzamanlar. Tüm kümeyi yeniden başlatmanız gerekirse, en gelişmiş küme " -"düğümünü bulun ve Birincil Bİleşeni onun üzerinde başlatın." - -msgid "" -"Initialize the Primary Component on one cluster node. For servers that use " -"``init``, run the following command:" -msgstr "" -"Birincil Bileşeni bir küme düğümünde ilklendirin. ``init`` kullanan " -"sunucularda şu komutu çalıştırın:" - -msgid "Initializing the cluster" -msgstr "Kümenin başlatılması" - -msgid "Install RabbitMQ" -msgstr "RabbitMQ Kurulumu" - -msgid "Install packages" -msgstr "Paketleri kurun" - -msgid "Installing Memcached" -msgstr "Memcached Kurulumu" - -msgid "Installing the operating system" -msgstr "İşletim sisteminin kurulumu" - -msgid "Introduction to OpenStack high availability" -msgstr "OpenStack yüksek kullanılırlığa giriş" - -msgid "" -"It is also possible to follow a segregated approach for one or more " -"components that are expected to be a bottleneck and use a collapsed approach " -"for the remainder." -msgstr "" -"Ayrıca darboğaz oluşturması beklenen bileşenler bir ya da daha fazla bileşen " -"için ayrık bir yaklaşım ve geri kalanlar için kapalı yaklaşım tercih " -"edilebilir." - -msgid "" -"It is possible to add controllers to such an environment to convert it into " -"a truly highly available environment." -msgstr "" -"Böyle bir ortama denetleyiciler ekleyerek gerçekten yüksek kullanılabilir " -"bir ortama dönüştürmek mümkündür." - -msgid "" -"It is possible to deploy three different flavors of the Pacemaker " -"architecture. The two extremes are ``Collapsed`` (where every component runs " -"on every node) and ``Segregated`` (where every component runs in its own 3+ " -"node cluster)." -msgstr "" -"Pacemaker mimarisinin üç farklı niteliğini kurmak mümkündür. En uç ikisi " -"``Kapalı`` (her bileşen her düğümde çalışır) ve ``Ayrılmış``tır (her bileşen " -"kendi 3+ düğümlük kümesinde çalışır)." - -msgid "" -"It is storage and application-agnostic, and in no way specific to OpenStack." -msgstr "" -"Depolama ve uygulama bilgisi yoktur, herhangi bir yönden OpenStack'e özel " -"değildir." - -msgid "" -"It is very important that all members of the system share the same view of " -"who their peers are and whether or not they are in the majority. Failure to " -"do this leads very quickly to an internal `split-brain `_ state. This is where different parts of " -"the system are pulling in different and incompatible directions." -msgstr "" -"Sistemin tüm ögelerinin eşlerinin kim olduğuyla ve çoğunlukta olup " -"olmadıklarıyla ilgili aynı görüşe sahip olması çok önemlidir. Bunun " -"yapılmaması çabucak dahili bir `ayrık-beyin `_ durumuna yol açar. Bu sistemin farklı " -"parçalarının farklı ve uyumsuz yönlere çekmeye başladığı noktadır." - -msgid "List the nodes known to the quorum service" -msgstr "Yetersayı servisi tarafından bilinen düğümleri listele" - -msgid "Load distribution" -msgstr "Yük dağıtımı" - -msgid "" -"Locate your HAProxy instance on each OpenStack controller node in your " -"environment. The following is an example ``/etc/haproxy/haproxy.cfg`` " -"configuration file. Configure your instance using the following " -"configuration file, you will need a copy of it on each controller node." -msgstr "" -"Ortamınızdaki her bir OpenStack kontrol düğümündeki HAProxy sunucunuzu " -"bulun. Aşağıdaki bir ``/etc/haproxy/haproxy.cfg`` yapılandırma dosyası " -"örneğidir. Aşağıdaki yapılandırma dosyasıyla sunucunuzu yapılandırın, her " -"bir kontrol düğümünde bir kopyasına ihtiyacınız olacaktır." - -msgid "" -"Log in to the database client and grant the ``clustercheck`` user " -"``PROCESS`` privileges:" -msgstr "" -"Veritabanı istemcisine giriş yapın ve ``clustercheck`` kullanıcısına " -"``PROCESS`` yetkisi verin:" - -msgid "" -"Maintains a redundant instance that can be brought online when the active " -"service fails. For example, OpenStack writes to the main database while " -"maintaining a disaster recovery database that can be brought online if the " -"main database fails." -msgstr "" -"Etkin servis arızalandığında yedek bir sunucuyu ayağa kaldıracak şekilde " -"yönetir. Örneğin, OpenStack ana veritabanına yazarken ana veritabanı " -"arızalanırsa çevrimiçi yapılacak bir felaket durumu kurtarma veritabanı " -"yönetir." - -msgid "Make sure `pcs` is running and configured to start at boot time:" -msgstr "" -"`pcs`nin çalıştığına ve önyükleme aşamasında başlayacak şekilde " -"yapılandırıldığına emin olun:" - -msgid "" -"Make sure to save the changes once you are done. This will vary depending on " -"your distribution:" -msgstr "" -"İşiniz bittiğinde değişiklikleri kaydettiğinizden emin olun. Bu dağıtımınıza " -"göre değişiklik gösterecektir:" - -msgid "" -"Making the Block Storage (cinder) API service highly available in active/" -"active mode involves:" -msgstr "" -"Blok Depolama (cinder) API servisini etkin/etkin kipte yüksek kullanılır " -"yapmak şunları içerir:" - -msgid "" -"Making the Block Storage API service highly available in active/passive mode " -"involves:" -msgstr "" -"Blok Depolama API servisini etkin/pasif kipte yüksek kullanılabilir yapmak " -"şunları içerir:" - -msgid "" -"Making the OpenStack Identity service highly available in active and passive " -"mode involves:" -msgstr "" -"OpenStack Kimlik servisini etkin ve pasif kiplerde yüksek kullanılırlıklı " -"yapmak şunları içerir:" - -msgid "" -"Making the RabbitMQ service highly available involves the following steps:" -msgstr "RabbitMQ servisinin yüksek kullanılır olması şu adımları içerir:" - -msgid "" -"Making the Shared File Systems (manila) API service highly available in " -"active/passive mode involves:" -msgstr "" -"Paylaşımlı Dosya Sistemleri (manila) API servisini etkin/pasif kipte yüksek " -"kullanılır yapmak şunları içerir:" - -msgid "Management" -msgstr "Yönetim" - -msgid "" -"Managing the Block Storage API daemon with the Pacemaker cluster manager" -msgstr "Blok Depolama API artalan işini Pacemaker küme yöneticisi ile yönetmek" - -msgid "" -"Many services can act in an active/active capacity, however, they usually " -"require an external mechanism for distributing requests to one of the " -"available instances. The proxy server can serve this role." -msgstr "" -"Çoğu servis etkin/etkin kapasitede davranabilir, ancak genellikle istekleri " -"kullanılabilir sunuculardan birine dağıtabilecek harici bir mekanizmaya " -"ihtiyaç duyarlar. Vekil sunucu bu rolü üstlenebilir." - -msgid "Maximum number of network nodes to use for the HA router." -msgstr "HA yönlendirici için kullanılacak azami ağ düğümleri sayısı." - -msgid "" -"Maximum retries with trying to connect to RabbitMQ (infinite by default):" -msgstr "" -"RabbitMQ'ya bağlanmaya çalışırken kaç kere deneneceği (öntanımlı olarak " -"sonsuz):" - -msgid "Memcached" -msgstr "Memcached" - -msgid "" -"Memcached is a general-purpose distributed memory caching system. It is used " -"to speed up dynamic database-driven websites by caching data and objects in " -"RAM to reduce the number of times an external data source must be read." -msgstr "" -"Memcached genel amaçlı dağıtık hafıza önbellekleme sistemidir. Veri ve " -"nesneleri RAM'de tutarak harici bir veri kaynağının okunma sıklığını " -"düşürerek dinamik veritabanı güdümlü websitelerini hızlandırmak için " -"kullanılır." - -msgid "" -"Memcached is a memory cache demon that can be used by most OpenStack " -"services to store ephemeral data, such as tokens." -msgstr "" -"Memcached çoğu OpenStack servisi tarafından jetonlar gibi geçici verileri " -"tutmak için kullanılabilecek bir hafıza önbellekleme artalan işidir." - -msgid "" -"Memcached uses a timeout value, which should always be set to a value that " -"is higher than the heartbeat value set for Telemetry." -msgstr "" -"Memcached her zaman Telemetri için ayarlanan kalp atışı değerinden yüksek " -"olması gereken bir zaman aşımı değeri kullanır." - -msgid "Memory" -msgstr "Bellek" - -msgid "" -"Memory caching is managed by `oslo.cache `_. This " -"ensures consistency across all projects when using multiple Memcached " -"servers. The following is an example configuration with three hosts:" -msgstr "" -"Hafıza önbellekleme `oslo.cache `_ tarafından yönetilir. Bu " -"birden çok Memcached sunucusu kullanırken tüm projeler arasında tutarlılık " -"sağlar. Aşağıda üç sunuculu bir yapılandırma örneği görebilirsiniz:" - -msgid "Messaging service for high availability" -msgstr "Yüksek kullanılırlık için ileti servisi" - -msgid "" -"Minimum number of network nodes to use for the HA router. A new router can " -"be created only if this number of network nodes are available." -msgstr "" -"HA yönlendirici için kullanılacak asgari ağ düğümü sayısı. Yeni bir " -"yönlendirici ancak bu sayıda ağ düğümü kullanılabilirse oluşturulabilir." - -msgid "" -"Mirrored queues in RabbitMQ improve the availability of service since it is " -"resilient to failures." -msgstr "" -"RabbitMQ'de yansılı kuyruklar arızalara dayanıklı olduklarından servisin " -"kullanılabilirliğini artırır." - -msgid "Mixed" -msgstr "Karışık" - -msgid "MongoDB" -msgstr "MongoDB" - -msgid "" -"More details are available in the `user story `_ co-" -"authored by OpenStack's HA community and `Product Working Group `_ (PWG), where this feature is " -"identified as missing functionality in OpenStack, which should be addressed " -"with high priority." -msgstr "" -"Daha fazla ayrıntıyı OpenStack HA topluluğu ve `Ürün Çalışma Grubu `_ (PWG) tarafından ortak yazılan ve bu " -"özelliğin OpenStack'de eksik bir işlevsellik olduğunu, yüksek öncelikle ele " -"alınması gerektiğini bildiren `kullanıcı hikayesinde `_ bulabilirsiniz." - -msgid "More information is available in the RabbitMQ documentation:" -msgstr "RabbitMQ belgelendirmesinde daha fazla bilgi bulunur:" - -msgid "" -"Most OpenStack services can use Memcached to store ephemeral data such as " -"tokens. Although Memcached does not support typical forms of redundancy such " -"as clustering, OpenStack services can use almost any number of instances by " -"configuring multiple hostnames or IP addresses." -msgstr "" -"Çoğu OpenStack servisi jetonlar gibi geçici verileri saklamak için Memcached " -"kullanabilir. Memcached kümeleme gibi tipik yedekleme biçimlerini " -"desteklemese de, OpenStack servisleri çoklu makine adları veya IP adresleri " -"yapılandırarak istenen sayıda sunucuyu kullanabilir." - -msgid "" -"Most distributions ship an example configuration file (:file:`corosync.conf." -"example`) as part of the documentation bundled with the Corosync package. An " -"example Corosync configuration file is shown below:" -msgstr "" -"Çoğu dağıtım Corosync paketiyle beraber bir yapılandırma dosyası (:file:" -"`corosync.conf.example`) dağıtır. Örnek bir Corosync yapılandırma dosyası " -"aşağıda gösterilmiştir:" - -msgid "" -"Most high availability systems fail in the event of multiple independent " -"(non-consequential) failures. In this case, most implementations favor " -"protecting data over maintaining availability." -msgstr "" -"Çoğu yüksek kullanılabilir sistem birden fazla bağımsız arıza durumunda " -"başarısız olur (takip etmeyen). Bu durumda çoğu uygulama kullanılabilirliği " -"sağlamaktan ziyade veriyi korumayı ön plana alır." - -msgid "" -"Most high availability systems guarantee protection against system downtime " -"and data loss only in the event of a single failure. However, they are also " -"expected to protect against cascading failures, where a single failure " -"deteriorates into a series of consequential failures. Many service providers " -"guarantee a :term:`Service Level Agreement (SLA)` including uptime " -"percentage of computing service, which is calculated based on the available " -"time and system downtime excluding planned outage time." -msgstr "" -"Çoğu yüksek kullanılabilir sistem sistem kapalı süresine ve veri kaybına " -"karşı yalnızca tek bir arıza olayında koruma garantiler. Ancak aynı zamanda " -"bir arızanın bir çok arızayı tetiklediği takip eden arızalara karşı " -"korumaları beklenir. Çoğu servis sağlayıcı planlı kesintiler ve sistem " -"kapalı süresi çıkarıldıktan sonra kalan kullanılabilir süreyi taban alarak " -"hesaplanan bir :term:`Servis Seviyesi Anlaşması (SLA)` ile hesaplama " -"servisinin açık kalma süresini garantiler." - -msgid "" -"Multicast groups (``mcastaddr``) must not be reused across cluster " -"boundaries. No two distinct clusters should ever use the same multicast " -"group. Be sure to select multicast addresses compliant with `RFC 2365, " -"\"Administratively Scoped IP Multicast\" `_." -msgstr "" -"Çoklu yayın grupları (``mcastaddr``) küme sınırları arasında tekrar " -"kullanılmamalıdır. Ayrı iki küme aynı çoklu yayın grubunu kullanmamalıdır. " -"`RFC 2365, \"Yönetimsel Kapsamlı IP Çoklu Yayını\" `_ ile uyumlu çoklu yayın adresleri seçtiğinizden emin olun." - -msgid "" -"MySQL databases, including MariaDB and Percona XtraDB, manage their " -"configurations using a ``my.cnf`` file, which is typically located in the ``/" -"etc`` directory. Configuration options available in these databases are also " -"available in Galera Cluster, with some restrictions and several additions." -msgstr "" -"MariaDB ve Percona XtraDB dahil MySQL veritabanları yapılandırmalarını " -"genellikle ``/etc`` dizininde bulunan bir ``my.cnf`` dosyasında yönetirler. " -"Bu veritabanlarında bulunan yapılandırma seçenekleri bazı kısıtlamalar ve " -"bir çok ek ile Galera Kümesinde de kullanılabilir." - -msgid "NIC" -msgstr "NIC" - -msgid "Network components, such as switches and routers" -msgstr "Ağ bileşenleri, örneğin anahtarlar ve yönlendiriciler" - -msgid "Networking L2 agent" -msgstr "Ağ L2 aracısı" - -msgid "No firewalls between the hosts" -msgstr "Sunucular arasında güvenlik duvarı yok" - -msgid "Node type" -msgstr "Düğüm türü" - -msgid "Note the following about the recommended interface configuration:" -msgstr "Önerilen arayüz yapılandırmasıyla ilgili şunları not edin:" - -msgid "Note the following:" -msgstr "Şunları unutmayın:" - -msgid "" -"Older versions of some distributions, which do not have an up-to-date policy " -"for securing Galera, may also require SELinux to be more relaxed about " -"database access and actions:" -msgstr "" -"Galera'yı güvenli hale getirmek için güncel ilkeleri olmayan bazı " -"dağıtımların eski sürümleri de SELinux'un veritabanı erişimi ve eylemleri " -"konusunda daha esnek olmasını bekleyebilir:" - -msgid "On CentOS, RHEL, openSUSE, and SLES:" -msgstr "CentOS, RHEL, openSUSE ve SLES üzerinde:" - -msgid "" -"On RHEL-based systems, create resources for cinder's systemd agents and " -"create constraints to enforce startup/shutdown ordering:" -msgstr "" -"RHEL tabanlı sistemlerde, cinder'in systemd aracıları için kaynaklar " -"oluşturun ve başlangıç/kapatma sıralamasını zırlayacak kısıtlar oluşturun:" - -msgid "" -"On ``3306``, Galera Cluster uses TCP for database client connections and " -"State Snapshot Transfers methods that require the client, (that is, " -"``mysqldump``)." -msgstr "" -"``3306`` üzerinde, Galera Kümesi veritabanı istemci bağlantıları ve " -"istemciyi gerektiren Durum Anlık Görüntü Aktarımları için TCP kullanır, " -"(yani ``mysqldump``)." - -msgid "" -"On ``4444``, Galera Cluster uses TCP for all other State Snapshot Transfer " -"methods." -msgstr "" -"``4444`` üzerinde, Galera Kümesi diğer tüm Durum Anlık Görüntü Aktarım " -"yöntemleri için TCP kullanır." - -msgid "" -"On ``4567``, Galera Cluster uses TCP for replication traffic. Multicast " -"replication uses both TCP and UDP on this port." -msgstr "" -"``4567`` üzerinde, Galera Kümesi çoğaltma trafiği için TCP kullanır. Çoklu " -"yayın çoğaltma bu bağlantı noktası üzerinde hem TCP hem UDP kullanır." - -msgid "On ``4568``, Galera Cluster uses TCP for Incremental State Transfers." -msgstr "" -"``4568`` üzerinde, Galera Kümesi Artan Durum Aktarımları için TCP kullanır." - -msgid "" -"On any host that is meant to be part of a Pacemaker cluster, establish " -"cluster communications through the Corosync messaging layer. This involves " -"installing the following packages (and their dependencies, which your " -"package manager usually installs automatically):" -msgstr "" -"Bir Pacemaker kümesinin parçası olacak herhangi bir sunucu üzerinde, küme " -"iletişimini Corosync iletileme katmanı ile sağlayın. Bu aşağıdaki paketlerin " -"kurulumunu içerir (ve bağımlılıklarını, paket yöneticiniz genellikle " -"otomatik olarak kurar):" - -msgid "" -"On each target node, verify the correct owner, group, and permissions of the " -"file :file:`erlang.cookie`:" -msgstr "" -"Her bir hedef düğümde, :file:`erlang.cookie` dosyasının doğru sahip, grup ve " -"izinleri olduğunu doğrulayın:" - -msgid "" -"On the infrastructure layer, the SLA is the time for which RabbitMQ cluster " -"reassembles. Several cases are possible. The Mnesia keeper node is the " -"master of the corresponding Pacemaker resource for RabbitMQ. When it fails, " -"the result is a full AMQP cluster downtime interval. Normally, its SLA is no " -"more than several minutes. Failure of another node that is a slave of the " -"corresponding Pacemaker resource for RabbitMQ results in no AMQP cluster " -"downtime at all." -msgstr "" -"Altyapı katmanında, SLA RabbitMQ kümesinin yeniden bir araya gelme " -"süresidir. Bir çok durum mümkündür. Mnesia tutucu düğümü RabbitMQ için " -"ilişkili Pacemaker kaynağının anasıdır. Başarısız olduğunda, sonuç tüm AMQP " -"kümesinin kapalı süre aralığıdır. Normalde SLA'sı bir kaç dakikadan fazla " -"değildir. RabbitMQ için ilişkili Pacemaker kaynağının kölesi olan başka bir " -"düğümün arızalanması herhangi bir AMQP kümesinin kapalı kalmasına sebep " -"olmaz." - -msgid "" -"Once completed, commit your configuration changes by entering :command:" -"`commit` from the :command:`crm configure` menu. Pacemaker then starts the " -"Block Storage API service and its dependent resources on one of your nodes." -msgstr "" -"Tamamlandığında, yapılandırma değişikliklerinizi :command:`crm configure` " -"menüsünden :command:`commit` girerek kaydedin. Pacemaker ardından Blok " -"Depolama API servisini ve bağımlı kaynaklarını düğümlerinizden birinde " -"başlatır." - -msgid "" -"Once created, synchronize the :file:`corosync.conf` file (and the :file:" -"`authkey` file if the secauth option is enabled) across all cluster nodes." -msgstr "" -"Oluşturulduktan sonra, :file:`corosync.conf` dosyasını tüm küme düğümlerinde " -"eşitleyin (secauth seçeneği etkinse :file:`authkey` dosyasını da)." - -msgid "" -"Once the database server starts, check the cluster status using the " -"``wsrep_cluster_size`` status variable. From the database client, run the " -"following command:" -msgstr "" -"Veritabanı başladıktan sonra ``wsrep_cluster_size`` durum değişkenini " -"kullanarak küme durumunu kontrol edin. Veritabanı istemcisinden şu komutları " -"çalıştırın:" - -msgid "" -"One physical server can support multiple nodes, each of which supports " -"almost any number of network interfaces." -msgstr "" -"Bir fiziksel sunucu her biri istenen sayıda ağ arayüzüne sahip birden çok " -"düğümü destekleyebilir." - -msgid "" -"Only one instance for the central and compute agent service(s) is able to " -"run and function correctly if the ``backend_url`` option is not set." -msgstr "" -"``backend_url`` seçeneği ayarlı değilse merkezi ve hesaplama aracı " -"servis(ler)i için yalnızca tek bir sunucu çalışıp düzgün işleyebilir." - -msgid "" -"OpenStack APIs: APIs that are HTTP(s) stateless services written in python, " -"easy to duplicate and mostly easy to load balance." -msgstr "" -"OpenStack API'leri: Python ile yazılmış HTTP(s) durumsuz servisler olan " -"API'ler, çoğaltması ve yük dengelemesi kolaydır." - -msgid "OpenStack Block Storage" -msgstr "OpenStack Blok Depolama" - -msgid "OpenStack Compute" -msgstr "OpenStack Hesaplama" - -msgid "OpenStack High Availability Guide" -msgstr "OpenStack Yüksek Kullanılırlık Kılavuzu" - -msgid "OpenStack Networking" -msgstr "OpenStack Ağı" - -msgid "" -"OpenStack currently meets such availability requirements for its own " -"infrastructure services, meaning that an uptime of 99.99% is feasible for " -"the OpenStack infrastructure proper. However, OpenStack does not guarantee " -"99.99% availability for individual guest instances." -msgstr "" -"OpenStack şu anda bu kullanılırlık gereksinimlerini kendi alt yapı " -"servislerinde sağlayabiliyor, yani düzgün bir OpenStack alt yapısında 99.99% " -"çalışma zamanı elde edilebilir. Ancak OpenStack bağımsız misafir sunucular " -"için 99.99% kullanılırlık garanti etmez." - -msgid "" -"OpenStack does not require a significant amount of resources and the " -"following minimum requirements should support a proof-of-concept high " -"availability environment with core services and several instances:" -msgstr "" -"OpenStack kayda değer miktarda kaynak gerektirmez ve aşağıdaki asgari " -"gereklilikler kavram ispatı niteliğinde çekirdek servisler ve bir çok " -"sunucuya sahip yüksek kullanılabilir bir ortamı destekler:" - -msgid "" -"OpenStack is a set of services exposed to the end users as HTTP(s) APIs. " -"Additionally, for your own internal usage, OpenStack requires an SQL " -"database server and AMQP broker. The physical servers, where all the " -"components are running, are called controllers. This modular OpenStack " -"architecture allows you to duplicate all the components and run them on " -"different controllers. By making all the components redundant, it is " -"possible to make OpenStack highly available." -msgstr "" -"OpenStack son kullanıcılara HTTP(s) API'leri olarak ortaya çıkan servisler " -"kümesidir. Ek olarak, dahili kullanımınız için, OpenStack bir SQL veritabanı " -"sunucusu ve AMQP aracısı gerektirir. Tüm bileşenlerin çalıştığı fiziksel " -"sunuculara denetleyiciler denir. Bu modüler OpenStack mimarisi tüm " -"bileşnleri çoğaltabilmenize farklı denetleyiciler üzerinde " -"çalıştırabilmenize izin verir. Tüm bileşenleri yedekli yaparak, OpenStack'i " -"yüksek kullanılır hale getirmek mümkündür." - -msgid "OpenStack network nodes contain:" -msgstr "OpenStack ağ düğümü şunu içerir:" - -msgid "" -"OpenStack services are configured with the list of these IP addresses so " -"they can select one of the addresses from those available." -msgstr "" -"OpenStack servisleri bu IP adreslerinin listesiyle yapılandırılır yani bu " -"kullanılabilir olanlardan bir adresi seçebilirler." - -msgid "" -"OpenStack supports a single-controller high availability mode that is " -"managed by the services that manage highly available environments but is not " -"actually highly available because no redundant controllers are configured to " -"use for failover. This environment can be used for study and demonstration " -"but is not appropriate for a production environment." -msgstr "" -"OpenStack arıza durumunda yer değiştirme için yapılandırılmış yedekleme " -"denetleyicileri olmadığı için aslında yüksek kullanılabilir olmayan yüksek " -"kullanılırlık ortamlarını yönetmek için tek-denetleyicili yüksek " -"kullanılabilirlik kipini destekler. Bu ortam çalışma ve gösterim amaçlı " -"kullanılabilir ama üretim ortamları için uygun değildir." - -msgid "Overview of highly available controllers" -msgstr "Yüksek kullanılabilir denetleyicilerin genel görünümü" - -msgid "Pacemaker cluster stack" -msgstr "Pacemaker küme yığını" - -msgid "" -"Pacemaker does not inherently understand the applications it manages. " -"Instead, it relies on resource agents (RAs) that are scripts that " -"encapsulate the knowledge of how to start, stop, and check the health of " -"each application managed by the cluster." -msgstr "" -"Pacemaker yönettiği uygulamaları doğuştan anlamaz. Bunun yerine küme " -"tarafından yönetilen her bir uygulamanın başlatma, durdurma ve sağlığını " -"kontrol etme bilgisini içeren betiklerden oluşan kaynak aracılarına (RA'lar) " -"güvenir." - -msgid "" -"Pacemaker now starts the OpenStack Identity service and its dependent " -"resources on all of your nodes." -msgstr "" -"Pacemaker artık OpenStack Kimlik servisini ve tüm bağımlı kaynakları tüm " -"düğümlerinizde başlatır." - -msgid "" -"Pacemaker now starts the Shared File Systems API service and its dependent " -"resources on one of your nodes." -msgstr "" -"Pacemaker şimdi Paylaşımlı Dosya Sistemleri API servisini ve bağımlı olduğu " -"kaynakları düğümlerinizden birinde başlatır." - -msgid "" -"Pacemaker relies on the `Corosync `_ " -"messaging layer for reliable cluster communications. Corosync implements the " -"Totem single-ring ordering and membership protocol. It also provides UDP and " -"InfiniBand based messaging, quorum, and cluster membership to Pacemaker." -msgstr "" -"Pacemaker güvenilir küme iletişimi için `Corosync `_ mesajlaşma katmanına güvenir. Corosync Totem tek-halka " -"sıralama ve abonelik iletişim kuralını uygular. Ayrıca Pacemaker'e UDP ve " -"InfiniBand tabanlı mesajlaşma, yetersayı ve küme üyeliği sağlar." - -msgid "" -"Pacemaker ships with a large set of OCF agents (such as those managing MySQL " -"databases, virtual IP addresses, and RabbitMQ), but can also use any agents " -"already installed on your system and can be extended with your own (see the " -"`developer guide `_)." -msgstr "" -"Pacemaker büyük bir OCF aracı kümesiyle gelir (MySQL veritabanlarını, sanal " -"IP adreslerini ve RabbitMQ'yi yönetenler gibi), ama sisteminizde kurulu " -"herhangi bir aracıyı da kullanabilir ve kendi aracılarınızla " -"genişletilebilir (bknz `geliştirici kılavuzu `_)." - -msgid "" -"Pacemaker then starts the OpenStack Image API service and its dependent " -"resources on one of your nodes." -msgstr "" -"Pacemaker ardından OpenStack İmaj API servisini ve bağımlı olduğu kaynakları " -"düğümlerinizden birinde başlatır." - -msgid "" -"Pacemaker uses an event-driven approach to cluster state processing. The " -"``cluster-recheck-interval`` parameter (which defaults to 15 minutes) " -"defines the interval at which certain Pacemaker actions occur. It is usually " -"prudent to reduce this to a shorter interval, such as 5 or 3 minutes." -msgstr "" -"Pacemaker küme durumu işlemede olay güdümlü bir yaklaşım kullanır. ``cluster-" -"recheck-interval`` (öntanımlı olarak 15 dakikadır) parametresi belli " -"Pacemaker eylemlerinin oluş aralığını tanımlar. Bunu 5 veya 3 dakikalık daha " -"kısa bir aralığa kısaltmak mantıklıdır." - -msgid "Parameter" -msgstr "Parametre" - -msgid "" -"Persistent block storage can survive instance termination and can also be " -"moved across instances like any external storage device. Cinder also has " -"volume snapshots capability for backing up the volumes." -msgstr "" -"Kalıcı blok depolama sunucu sonlandırmasından kurtulabilir ve ayrıca " -"herhangi bir harici depolama sürücüsü gibi sunucular arasında taşınabilir. " -"Cinder ayrıca birimleri yedeklemek için birim anlık görüntü yeteneğine " -"sahiptir." - -msgid "" -"Persistent storage exists outside all instances. Two types of persistent " -"storage are provided:" -msgstr "" -"Kalıcı depolama tüm sunucuların dışında mevcuttur. İki tür kalıcı depolama " -"sağlanmıştır:" - -msgid "Possible options are:" -msgstr "Muhtemel seçenekler:" - -msgid "Prerequisites" -msgstr "Giriş koşulları" - -msgid "Processor Cores" -msgstr "İşlemci Çekirdekleri" - -msgid "" -"Production servers should run (at least) three RabbitMQ servers for testing " -"and demonstration purposes, however it is possible to run only two servers. " -"In this section, we configure two nodes, called ``rabbit1`` and ``rabbit2``. " -"To build a broker, ensure that all nodes have the same Erlang cookie file." -msgstr "" -"Üretim sunucuları deneme ve gösterim amaçlı (en az) üç RabbitMQ sunucusu " -"çalıştırmalıdır, ancak iki sunucu çalıştırmak da mümkündür. Bu kısımda, " -"``rabbit1`` ve ``rabbit2`` isimli iki düğüm yapılandırıyoruz. Bir aracı inşa " -"etmek için tüm düğümlerin aynı Erlang çerez dosyasına sahip olduğundan emin " -"olun." - -msgid "Proxy server" -msgstr "Vekil sunucu" - -msgid "Query the quorum status" -msgstr "Yetersayı durumunu sorgula" - -msgid "" -"Quorum becomes important when a failure causes the cluster to split in two " -"or more partitions. In this situation, you want the majority members of the " -"system to ensure the minority are truly dead (through fencing) and continue " -"to host resources. For a two-node cluster, no side has the majority and you " -"can end up in a situation where both sides fence each other, or both sides " -"are running the same services. This can lead to data corruption." -msgstr "" -"Yetersayı bir arızanın kümenin iki ya da daha fazla parçaya bölünmesine " -"sebep olduğu arıza durumlarında önemli hale gelir. Bu durumda, sistem " -"üyelerinin çoğunluğunun azınlığın gerçekten ölü (parmaklıklarla) olduğundan " -"emin olarak kaynakları sunmayı devam ettirmesini istersiniz. İki düğümlü bir " -"kümede, hiçbir taraf çoğunluğu oluşturmaz, iki tarafın da birbirini " -"yalıttığı ya da iki tarafın da aynı servisleri çalıştırdığı bir durumla " -"karşılaşabilirsiniz. Bu veri bozukluğuna yol açabilir." - -msgid "RAID drives" -msgstr "RAID sürücüler" - -msgid "RabbitMQ" -msgstr "RabbitMQ" - -msgid "" -"RabbitMQ HA cluster Transport URL using ``[user:pass@]host:port`` format:" -msgstr "" -"``[kullanıcı:parola@]sunucu:bağlantınoktası`` biçimini kullanan RabbitMQ HA " -"küme Aktarım URL'si:" - -msgid "" -"RabbitMQ nodes fail over on the application and the infrastructure layers." -msgstr "" -"RabbitMQ düğümleri uygulama ve altyapı katmanlarında arıza giderme yapar." - -msgid "Receive notifications of quorum state changes" -msgstr "Yetersayı durum değişikliklerinde bildirileri al" - -msgid "Recommended for testing." -msgstr "Deneme amaçlı önerilir." - -msgid "Recommended solution by the Tooz project." -msgstr "Tooz projesi tarafından önerilen çözüm." - -msgid "Red Hat" -msgstr "Red Hat" - -msgid "Redundancy and failover" -msgstr "Yedeklilik ve arıza ele alma" - -msgid "" -"Regardless of which flavor you choose, we recommend that clusters contain at " -"least three nodes so that you can take advantage of `quorum `_." -msgstr "" -"Hangi niteliği seçtiğinizden bağımsız olarak, `yetersayıdan `_ " -"faydalanabilmek için kümelerin en az üç düğüm içermesini öneriyoruz." - -msgid "" -"Replace ``CINDER_DBPASS`` with the password you chose for the Block Storage " -"database." -msgstr "" -"``CINDER_DBPASS`` anahtarını Blok Depolama veritabanı için seçtiğiniz " -"parolayla değiştirin." - -msgid "" -"Replace ``CINDER_DBPASS`` with the password you chose for the Block Storage " -"database. Replace ``CINDER_PASS`` with the password you chose for the " -"``cinder`` user in the Identity service." -msgstr "" -"``CINDER_DBPASS`` anahtarını Blok Depolama veritabanı için seçtiğiniz " -"parolayla değiştirin. ``CINDER_PASS`` anahtarını Kimlik servisinde " -"``cinder`` kullanıcısı için seçtiğiniz parola ile değiştirin." - -msgid "" -"Replace the IP addresses given here with comma-separated list of each " -"OpenStack database in your cluster." -msgstr "" -"Burada verilen IP adreslerini kümenizdeki her bir OpenStack veritabanının " -"virgülle ayrılmış listesiyle değiştirin." - -msgid "" -"Restart AppArmor. For servers that use ``init``, run the following command:" -msgstr "" -"AppArmor'u yeniden başlatın. ``init`` kullanan sunucularda şu komutu " -"çalıştırın:" - -msgid "Restart the HAProxy service." -msgstr "HAProxy servisini yeniden başlatın." - -msgid "Restart the host or, to make changes work immediately, invoke:" -msgstr "" -"Değişikliklerin hemen etkin olması için sunucuyu yeniden başlatın, ya da " -"şunu çalıştırın:" - -msgid "Restarting the cluster" -msgstr "Kümenin yenidene başlatılması" - -msgid "Retry connecting with RabbitMQ:" -msgstr "RabbitMQ ile bağlanmayı yeniden dene:" - -msgid "Run Networking DHCP agent" -msgstr "Ağ DHCP aracısını çalıştır" - -msgid "Run Networking L3 agent" -msgstr "Ağ L3 aracısı çalıştır" - -msgid "Run the following commands on each node except the first one:" -msgstr "İlk düğüm hariç geri kalan düğümlerde aşağıdaki komutları çalıştırın:" - -msgid "" -"Run the following commands to download the OpenStack Identity resource to " -"Pacemaker:" -msgstr "" -"OpenStack Kimlik kaynağını Pacemaker'e indirmek için şu komutları çalıştırın:" - -msgid "SELinux" -msgstr "SELinux" - -msgid "SELinux and AppArmor set to permit access to ``mysqld``" -msgstr "SELinux ve AppArmor ``mysqld``ye izin verecek şekilde ayarlanmış" - -msgid "SUSE" -msgstr "SUSE" - -msgid "" -"SUSE Enterprise Linux and SUSE-based distributions, such as openSUSE, use a " -"set of OCF agents for controlling OpenStack services." -msgstr "" -"SUSE Kurumsal Linux ve SUSE tabanlı dağıtımlar, örneğin openSUSE, OpenStack " -"servislerini kontrol etmek için bir takım OCF aracıları kullanır." - -msgid "" -"Security-Enhanced Linux is a kernel module for improving security on Linux " -"operating systems. It is commonly enabled and configured by default on Red " -"Hat-based distributions. In the context of Galera Cluster, systems with " -"SELinux may block the database service, keep it from starting, or prevent it " -"from establishing network connections with the cluster." -msgstr "" -"Gelişmiş-Güvenlikli Linux Linux işletim sistemlerinde güvenliği artıran bir " -"çekirdek modülüdür. Genellikle etkindir ve Red Hat tabanlı dağıtımlarda " -"öntanımlı olarak yapılandırılır. Galera Kümesi kapsamında, SELinux'a sahip " -"sistemler veritabanı servisini engelleyerek başlamasını ya da küme ile ağ " -"bağlantısı kurmasını önleyebilirler." - -msgid "Segregated" -msgstr "Ayrılmış" - -msgid "" -"Services like RabbitMQ and Galera have complicated boot-up sequences that " -"require co-ordination, and often serialization, of startup operations across " -"all machines in the cluster. This is especially true after a site-wide " -"failure or shutdown where you must first determine the last machine to be " -"active." -msgstr "" -"RabbitMQ ve Galera gibi servislerin genellikle kümedeki tüm makineler " -"arasında başlangıç koordinasyonu ve yaygın olarak serileştirme gerektiren " -"karmaşık önyükleme düzenleri bulunur. Bu özellikle ilk önce etkin olacak son " -"makineye karar vermenizi gerektiren site genelinde bir arıza ya da kapatma " -"durumunda doğrudur." - -msgid "Set a password for hacluster user on each host:" -msgstr "Hacluster kullanıcısı için her bir sunucuda parola ayarlayın:" - -msgid "Set automatic L3 agent failover for routers" -msgstr "Yönlendiriciler için otomatik L3 aracısı kurtarmayı ayarla" - -msgid "Set basic cluster properties" -msgstr "Temel küme özelliklerini ayarlayın" - -msgid "Set up Corosync with multicast" -msgstr "Corosync'i çoklu yayın ile ayarla" - -msgid "Set up Corosync with unicast" -msgstr "Corosync'i tekli yayın ile ayarla" - -msgid "Set up Corosync with votequorum library" -msgstr "Corosync'i votequorum kitaplığıyla ayarla" - -msgid "Set up the cluster with `crmsh`" -msgstr "Kümeyi `crmsh` ile ayarla" - -msgid "Set up the cluster with pcs" -msgstr "Kümeyi pcs ile ayarla" - -msgid "" -"Setting ``last_man_standing`` to 1 enables the Last Man Standing (LMS) " -"feature. By default, it is disabled (set to 0). If a cluster is on the " -"quorum edge (``expected_votes:`` set to 7; ``online nodes:`` set to 4) for " -"longer than the time specified for the ``last_man_standing_window`` " -"parameter, the cluster can recalculate quorum and continue operating even if " -"the next node will be lost. This logic is repeated until the number of " -"online nodes in the cluster reaches 2. In order to allow the cluster to step " -"down from 2 members to only 1, the ``auto_tie_breaker`` parameter needs to " -"be set. We do not recommended this for production environments." -msgstr "" -"``last_man_standing`` anahtarını 1 olarak ayarlamak Ayakta Kalan Son Adam " -"(LMS) özelliğini etkinleştirir. Öntanımlı olarak kapalıdır (0 olarak " -"ayarlıdır). Bir küme ``last_man_standing_window`` parametresinden daha uzun " -"süre yetersayı sınırındaysa (``expected_votes:`` 7; ``online nodes:`` 4 " -"olarak ayarlıysa) küme yetersayıyı tekrar hesaplayıp sonraki düğüm kaybolsa " -"bile işlemeye devam edebilir. Bu mantık kümedeki çevrimiçi düğüm sayısı 2'yi " -"bulana kadar devam eder. Kümenin 2 üyeden 1 üyeye düşebilmesi için " -"``auto_tie_breaker`` parametresinin ayarlanması gerekir. Bunu üretim " -"ortamları için önermiyoruz." - -msgid "" -"Setting the ``pe-warn-series-max``, ``pe-input-series-max``, and ``pe-error-" -"series-max`` parameters to 1000 instructs Pacemaker to keep a longer history " -"of the inputs processed and errors and warnings generated by its Policy " -"Engine. This history is useful if you need to troubleshoot the cluster." -msgstr "" -"``pe-warn-series-max``, ``pe-input-series-max``, ve ``pe-error-series-max`` " -"parametrelerini 1000 olarak ayarlamak Pacemaker'e işlenen girdilerin ve İlke " -"Motoru tarafından üretilen hata ve uyarıların daha uzun bir geçmişini " -"tutmasını söyler. Bu geçmiş kümede arıza tesbiti yapmak isterseniz " -"faydalıdır." - -msgid "Simplified process for adding/removing of nodes" -msgstr "Düğümlerin eklenip/çıkarılması için basitleştirilmiş süreç" - -msgid "" -"Since all API access is directed to the proxy, adding or removing nodes has " -"no impact on the configuration of other services. This can be very useful in " -"upgrade scenarios where an entirely new set of machines can be configured " -"and tested in isolation before telling the proxy to direct traffic there " -"instead." -msgstr "" -"Tüm API erişimi vekile yönlendirildiğinden, düğüm ekleme ve çıkarmanın diğer " -"servis yapılandırmaları üzerinde etkisi yoktur. Bu tamamen yeni bir makine " -"kümesinin yalıtılarak yapılandırılıp denendiği ve ardından vekile trafik " -"yönlendirmesinin söylendiği güncelleme senaryolarında oldukça faydalıdır." - -msgid "" -"Since the cluster is a single administrative domain, it is acceptable to use " -"the same password on all nodes." -msgstr "" -"Küme tek bir yönetim alanında olduğundan, tüm düğümlerde aynı parolayı " -"kullanmak kabul edilebilir." - -msgid "Single-controller high availability mode" -msgstr "Tek-denetleyicili yüksek kullanılabilirlik kipi" - -msgid "" -"Specifying ``corosync_votequorum`` enables the votequorum library. This is " -"the only required option." -msgstr "" -"``corosync_votequorum`` votequorum kitaplığını etkinleştirir. Bu gerekli tek " -"seçenektir." - -msgid "Start Corosync" -msgstr "Corosync'i Başlat" - -msgid "Start Pacemaker" -msgstr "Pacemaker'i Başlat" - -msgid "Start ``corosync`` with systemd unit file:" -msgstr "``corosync``i systemd birim dosyasıyla başlat:" - -msgid "Start ``corosync`` with the LSB init script:" -msgstr "``corosync`` i LSB başlangıç betiğiyle başlat:" - -msgid "Start ``corosync`` with upstart:" -msgstr "``corosync`` i upstart ile başlat:" - -msgid "Start ``pacemaker`` with the LSB init script:" -msgstr "``pacemaker``i LSB başlangıç betiğiyle başlatın:" - -msgid "Start ``pacemaker`` with the systemd unit file:" -msgstr "``pacemaker``i systemd birim dosyasıyla başlatın:" - -msgid "Start ``pacemaker`` with upstart:" -msgstr "``pacemaker``i upstart ile başlatın:" - -msgid "" -"Start the ``xinetd`` daemon for ``clustercheck``. For servers that use " -"``init``, run the following commands:" -msgstr "" -"``clustercheck`` için ``xinetd`` artalan işini başlatın. ``init`` kullanan " -"sunucular için aşağıdaki komutları çalıştırın:" - -msgid "" -"Start the database server on all other cluster nodes. For servers that use " -"``init``, run the following command:" -msgstr "" -"Dİğer tüm küme düğümlerinde veritabanı sunucusunu başlatın. ``init`` " -"kullanan sunucularda şu komutu çalıştırın:" - -msgid "" -"Start the message queue service on all nodes and configure it to start when " -"the system boots. On Ubuntu, it is configured by default." -msgstr "" -"Tüm düğümlerde ileti kuyruğu servisini başlatın ve sistem önyüklenirken " -"başlayacak şekilde yapılandırın. Ubuntu üzerinde öntanımlı olarak " -"yapılandırılır." - -msgid "Stateful service" -msgstr "Durumsal servis" - -msgid "" -"Stateful services can be configured as active/passive or active/active, " -"which are defined as follows:" -msgstr "" -"Durumsal servisler etkin/pasif veya etkin/etkin olarak " -"yapılandırılabilirler, şu şekilde tanımlayabiliriz:" - -msgid "Stateless service" -msgstr "Durumsuz servis" - -msgid "Stateless versus stateful services" -msgstr "Durumsuz karşısında durumsal servisler" - -msgid "" -"Stop RabbitMQ and copy the cookie from the first node to each of the other " -"node(s):" -msgstr "RabbitMQ'yu durdurun ve çerezi ilk düğümden diğer düğüm(ler)e dağıtın:" - -msgid "Storage" -msgstr "Depolama" - -msgid "Storage back end" -msgstr "Depolama arka ucu" - -msgid "Storage components" -msgstr "Depolama bileşenleri" - -msgid "" -"System downtime: Occurs when a user-facing service is unavailable beyond a " -"specified maximum amount of time." -msgstr "" -"Sistem kapalı süresi: Kullanıcı taraflı bir servisin belirli bir azami " -"süreden daha fazla kullanılamaz olduğu durumlardır." - -msgid "Telemetry" -msgstr "Telemetri" - -msgid "Telemetry polling agent" -msgstr "Telemetri yoklama aracısı" - -msgid "" -"The :command:`crm configure` command supports batch input. Copy and paste " -"the lines in the next step into your live Pacemaker configuration and then " -"make changes as required." -msgstr "" -":command:`crm configure` komutu çoklu girdi destekler. Sonraki adımdaki " -"satırları kopyalayın ve canlı Pacemaker yapılandırmanıza yapıştırarak " -"gerekli değişiklikleri yapın." - -msgid "" -"The :command:`crm configure` supports batch input. Copy and paste the lines " -"in the next step into your live Pacemaker configuration and then make " -"changes as required." -msgstr "" -":command:`crm configure` çoklu girdiyi destekler. Sonraki adımdaki satırları " -"kopyalayın ve canlı Pacemaker yapılandırmanıza yapıştırın ardından gerekli " -"değişiklikleri yapın." - -msgid "" -"The :command:`crm configure` supports batch input. You may have to copy and " -"paste the above lines into your live Pacemaker configuration, and then make " -"changes as required." -msgstr "" -":command:`crm configure` toplu giriş destekler. Yukarıdaki satırları canlı " -"Pacemaker yapılandırmanıza kopyalayıp yapıştırmanız, ve gerektikçe " -"değişiklikler yapmanız gerekebilir." - -msgid "" -"The Block Storage service (cinder) that can use LVM or Ceph RBD as the " -"storage back end." -msgstr "" -"Depolama arka ucu olarak LVM veya Ceph RBD kullanan Blok Depolama servisi " -"(cinder)." - -msgid "" -"The Galera cluster configuration directive ``backup`` indicates that two of " -"the three controllers are standby nodes. This ensures that only one node " -"services write requests because OpenStack support for multi-node writes is " -"not yet production-ready." -msgstr "" -"Galera kümesi yapılandırma yönergesi ``backup`` üç kontrol düğümünden " -"ikisinin bekleme düğümü olduğunu gösterir. Böylece OpenStack çoklu-düğüm " -"yazma henüz üretim için hazır olmadığından tek bir düğümün yazma isteklerini " -"karşılması sağlanır." - -msgid "" -"The Image service (glance) that can use the Object Storage service (swift) " -"or Ceph RBD as the storage back end." -msgstr "" -"Nesne Depolama servisini (swift) ya da Ceph RBD'yi depolama arka ucu olarak " -"kullanabilen İmaj servisi (glance)." - -msgid "" -"The L2 agent cannot be distributed and highly available. Instead, it must be " -"installed on each data forwarding node to control the virtual network driver " -"such as Open vSwitch or Linux Bridge. One L2 agent runs per node and " -"controls its virtual interfaces." -msgstr "" -"L2 aracısı dağıtılamaz ve yüksek kullanılabilir değildir. Bunun yerine Open " -"vSwitch veya Linux Köprüsü gibi sanal ağ sürücüsünü kontrol etmek için her " -"bir veri yönlendiren düğüm üzerinde yüklenmelidir. Düğüm başına bir L2 " -"aracısı çalışır ve sanal arayüzlerini kontrol eder." - -msgid "" -"The Memcached client implements hashing to balance objects among the " -"instances. Failure of an instance impacts only a percentage of the objects " -"and the client automatically removes it from the list of instances. The SLA " -"is several minutes." -msgstr "" -"Memcached istemcisi nesneleri sunucular arasında dengelemek için özetleme " -"uygular. Bir sunucu arızası yalnızca nesnelerin belli bir yüzdesini etkiler " -"ve istemci otomatik olarak bu sunucuyu listeden çıkarır. SLA birkaç " -"dakikadır." - -msgid "" -"The Memcached client implements hashing to balance objects among the " -"instances. Failure of an instance only impacts a percentage of the objects, " -"and the client automatically removes it from the list of instances." -msgstr "" -"Memcached istemcisi nesneleri sunucular arasında dengelemek için özetleme " -"uygular. Bir sunucu arızası yalnızca nesnelerin belirli bir yüzdesini " -"etkiler, ve istemci otomatik olarak sunucu listesinden bu sunucuyu çıkarır." - -msgid "" -"The Networking (neutron) service L3 agent is scalable, due to the scheduler " -"that supports Virtual Router Redundancy Protocol (VRRP) to distribute " -"virtual routers across multiple nodes. For more information about the VRRP " -"and keepalived, see `Linux bridge: High availability using VRRP `_ and " -"`Open vSwitch: High availability using VRRP `_." -msgstr "" -"Ağ (neutron) servis L3 aracısı birden çok düğüm arasında sanal " -"yönlendiriciler dağıtmak için Sanal Yönlendirici Yedeklilik İletişim Kuralı " -"(VRRP) destekleyen zamanlayıcı sebebiyle ölçeklenebilirdir. VRRP ve " -"keepalived hakkında daha fazla bilgi için `Linux köprüsü: VRRP kullanarak " -"yüksek kullanılırlık `_ ve `Open vSwitch: VRRP kullanarak yüksek " -"kullanılırlık `_ belgelerine göz atın." - -msgid "" -"The OpenStack Image service offers a service for discovering, registering, " -"and retrieving virtual machine images. To make the OpenStack Image API " -"service highly available in active/passive mode, you must:" -msgstr "" -"OpenStack İmaj servisi sanal makine imajlarını keşfetmek, kaydetmek ve almak " -"için bir servis sağlar. OpenStack İmaj API servisini etkin/pasif kipte " -"yüksek kullanılır yapmak için şunları yapmalısınız:" - -msgid "" -"The OpenStack Networking (neutron) service has a scheduler that lets you run " -"multiple agents across nodes. The DHCP agent can be natively highly " -"available." -msgstr "" -"OpenStack Ağ (neutron) servisi düğümler arasında birden fazla aracı " -"çalıştırmanızı sağlayan bir zamanlayıcıya sahiptir. DHCP aracısı yerel " -"olarak yüksek kullanılır olabilir." - -msgid "The Pacemaker architecture" -msgstr "Pacemaker mimarisi" - -msgid "" -"The Pacemaker service also requires an additional configuration file ``/etc/" -"corosync/uidgid.d/pacemaker`` to be created with the following content:" -msgstr "" -"Pacemaker servisi ayrıca aşağıdaki içeriğe sahip ek bir ``/etc/corosync/" -"uidgid.d/pacemaker`` yapılandırma dosyasına ihtiyaç duyar:" - -msgid "" -"The SQL relational database server provides stateful type consumed by other " -"components. Supported databases are MySQL, MariaDB, and PostgreSQL. Making " -"the SQL database redundant is complex." -msgstr "" -"SQL ilişkisel veritabanı sunucusu diğer bileşenler tarafından tüketilen " -"durumsal türü sağlar. Desteklenen veritabanları MySQL, MariaDB, ve " -"PostgreSQL'dir. SQL veritabanını yedekli hale getirmek karmaşıktır." - -msgid "" -"The Telemetry API service configuration does not have the ``option httpchk`` " -"directive as it cannot process this check properly." -msgstr "" -"Telemetri API servis yapılandırması bu kontrolü düzgün işleyemediğinden " -"``option httpchk`` yönergesine sahip değildir." - -msgid "" -"The Telemetry polling agent can be configured to partition its polling " -"workload between multiple agents. This enables high availability (HA)." -msgstr "" -"Telemetri yoklama aracısı yoklama iş yükünü birçok aracı arasında dağıtacak " -"şekilde yapılandırılabilir. Bu yüksek kullanılırlığı etkinleştirir (HA)." - -msgid "" -"The `Telemetry service `_ provides a data collection service and an alarming " -"service." -msgstr "" -"`Telemetri servisi `_ veri toplama servisi ve uyarı servisi sağlar." - -msgid "" -"The ``-p`` option is used to give the password on command line and makes it " -"easier to script." -msgstr "" -"``-p`` seçeneği komut satırından parola vermek için kullanılır ve betiklerde " -"kolaylık sağlar." - -msgid "" -"The ``admin_bind_host`` parameter lets you use a private network for admin " -"access." -msgstr "" -"``admin_bind_host`` parametresi yönetici erişimi için özel bir ağ " -"kullanmanızı sağlar." - -msgid "" -"The ``bindnetaddr`` is the network address of the interfaces to bind to. The " -"example uses two network addresses of /24 IPv4 subnets." -msgstr "" -"``bindnetaddr`` bağlanılacak arayüzün ağ adresidir. Örnek /24 IPv4 alt " -"ağlarının iki ağ adresini kullanır." - -msgid "" -"The ``token`` value specifies the time, in milliseconds, during which the " -"Corosync token is expected to be transmitted around the ring. When this " -"timeout expires, the token is declared lost, and after " -"``token_retransmits_before_loss_const lost`` tokens, the non-responding " -"processor (cluster node) is declared dead. ``token × " -"token_retransmits_before_loss_const`` is the maximum time a node is allowed " -"to not respond to cluster messages before being considered dead. The default " -"for token is 1000 milliseconds (1 second), with 4 allowed retransmits. These " -"defaults are intended to minimize failover times, but can cause frequent " -"false alarms and unintended failovers in case of short network " -"interruptions. The values used here are safer, albeit with slightly extended " -"failover times." -msgstr "" -"``token`` değeri Corosync jetonunun halka etrafında aktarım zamanını " -"milisaniye türünden belirtir. Bu zaman aşıldığında, jeton kayıp olarak ilan " -"edilir, ve ``token_retransmits_before_loss_const lost`` jeton sonra, yanıt " -"vermeyen işletic (küme düğümü) ölü olarak ilan edilir. Bir düğümün küme " -"iletilerine ölü olarak işaretlenmeden önce cevap vermeyebileceği azami süre " -"``token × token_retransmits_before_loss_const`` kadardır. Jeton için " -"öntanımlı değer 4 tekrar gönderime izin verilecek şekilde 1000 milisaniyedir " -"(1 saniye). Bu öntanımlılar arıza sürelerini asgariye indirmek için " -"düşünülmüştür, ama kısa ağ kesintileri olduğunda sık sık yanlış alarm " -"verebilir ve istenmeyen arıza bildirimlerine neden olabilir. Burada " -"kullanılan değerler daha güvenli olsa da biraz daha uzun arıza sürelerine " -"sahiptir." - -msgid "" -"The ``transport`` directive controls the transport mechanism. To avoid the " -"use of multicast entirely, specify the ``udpu`` unicast transport parameter. " -"This requires specifying the list of members in the ``nodelist`` directive. " -"This potentially makes up the membership before deployment. The default is " -"``udp``. The transport type can also be set to ``udpu`` or ``iba``." -msgstr "" -"``transport`` yönergesi aktarım yöntemini kontrol eder. Çoklu yayın " -"kullanmaktan tamamen kaçınmak için, ``udpu`` tekli yayın aktarım " -"parametresini belirtin. Bu, üye listesini ``nodelist`` yönergesinde " -"belirtmeyi gerektirir. Bunun kurulumdan önce üyeliği yapma potansiyeli " -"vardır. Öntanımlı değer ``udp`` dir. Aktarım türü ayrıca ``udpu`` veya " -"``iba`` olabilir." - -msgid "" -"The application layer is controlled by the ``oslo.messaging`` configuration " -"options for multiple AMQP hosts. If the AMQP node fails, the application " -"reconnects to the next one configured within the specified reconnect " -"interval. The specified reconnect interval constitutes its SLA." -msgstr "" -"Uygulama katmanı birçok AMQP sunucusu için ``oslo.messaging`` yapılandırma " -"seçeneği tarafından kontrol edilir. AMQP düğümü başarısız olursa, uygulama " -"belirtilen yeniden bağlanma aralığı dahilinde yapılandırılan bir sonrakine " -"bağlanır. Belirtilen yeniden bağlanma aralığı SLA'sını teşkil eder." - -msgid "" -"The architectural challenges of instance HA and several currently existing " -"solutions were presented in `a talk at the Austin summit `_, for which `slides are also available `_." -msgstr "" -"Sunucu yüksek kullanılırlığının mimari zorlukları ve mevcut çeşitli çözümler " -"`Austin zirvesindeki bir konuşmada `_ " -"sunulmuştur, `slaytlar da mevcuttur `_." - -msgid "" -"The architectures differ in the sets of services managed by the cluster." -msgstr "" -"Mimariler küme tarafından yönetilen servisler kümesinde değişiklik gösterir." - -msgid "" -"The availability check of the instances is provided by heartbeat messages. " -"When the connection with an instance is lost, the workload will be " -"reassigned within the remaining instances in the next polling cycle." -msgstr "" -"Sunucuların kullanılırlık kontrolleri kalp atışı iletileri ile sağlanır. Bir " -"sunucu ile olan bağlantı kaybolduğunda, iş yükü sonraki yoklama döngüsüyle " -"beraber kalan sunuculara yeniden atanır." - -msgid "" -"The benefits of this approach are the physical isolation between components " -"and the ability to add capacity to specific components." -msgstr "" -"Bu yaklaşımın faydaları bileşenler arasındaki fiziksel yalıtım ve belirli " -"bileşenlere kapasite ekleyebilme becerisidir." - -msgid "" -"The cloud controller runs on the management network and must talk to all " -"other services." -msgstr "" -"Bulut denetleyici yönetim ağı üzerinde çalışır ve tüm diğer servislerle " -"konuşmalıdır." - -msgid "" -"The cluster is fully operational with ``expected_votes`` set to 7 nodes " -"(each node has 1 vote), quorum: 4. If a list of nodes is specified as " -"``nodelist``, the ``expected_votes`` value is ignored." -msgstr "" -"Küme ``expected_votes`` 7 düğüm (her düğümün 1 oyu var) olarak ayarlanmış ve " -"tamamen işlevsel, yetersayı: 4. Eğer düğüm listesi ``nodelist`` olarak " -"belirtilmişse, ``expected_votes`` değeri göz ardı edilir." - -msgid "" -"The code for three of these solutions can be found online at the following " -"links:" -msgstr "" -"Bu çözümlerden üçü için kod şu bağlantılarda çevrimiçi olarak bulunabilir:" - -msgid "" -"The command :command:`crm configure` supports batch input, copy and paste " -"the lines above into your live Pacemaker configuration and then make changes " -"as required. For example, you may enter ``edit p_ip_cinder-api`` from the :" -"command:`crm configure` menu and edit the resource to match your preferred " -"virtual IP address." -msgstr "" -":command:`crm configure` komutu toplu girişi destekler, yukarıdaki satırları " -"kopyalayıp Pacemaker yapılandırmanıza yapıştırın ve gerekli değişiklikleri " -"yapın. Örneğin :command:`crm configure` menüsünden ``edit p_ip_cinder-api`` " -"girebilir ve kaynağı tercih ettiğiniz sanal IP adresi ile eşleşecek şekilde " -"düzenleyebilirsiniz." - -msgid "" -"The commands for installing RabbitMQ are specific to the Linux distribution " -"you are using." -msgstr "" -"RabbitMQ kurmak için kullanılan komutlar kullandığınız Linux dağıtımına " -"özeldir." - -msgid "" -"The correct path to ``libgalera_smm.so`` given to the ``wsrep_provider`` " -"parameter" -msgstr "" -"``wsrep_provider`` parametresine verilmiş ``libgalera_smm.so`` dosyasının " -"doğru yolu" - -msgid "" -"The first step is to install the database that sits at the heart of the " -"cluster. To implement high availability, run an instance of the database on " -"each controller node and use Galera Cluster to provide replication between " -"them. Galera Cluster is a synchronous multi-master database cluster, based " -"on MySQL and the InnoDB storage engine. It is a high-availability service " -"that provides high system uptime, no data loss, and scalability for growth." -msgstr "" -"İlk adım kümenin kalbinde olan veritabanının kurulumudur. Yüksek " -"kullanılırlık uygulamak için her bir kontrol düğümünde veritabanı sunucusu " -"çalıştırın ve aralarında yedekliliği sağlamak için Galera Kümesini kullanın. " -"Galera Kümesi MySQL ve InnoDB depolama motoru tabanlı, eşzamanlı, çoklu-ana " -"sunuculu veritabanı kümesidir. Yüksek sistem çalışma süresi, kayıpsız veri " -"ve büyüme için ölçeklenebilirlik sağlayan yüksek kullanılır bir servistir." - -msgid "The following are the definitions of stateless and stateful services:" -msgstr "Aşağıda durumsuz ve durumsal servis tanımları bulunur:" - -msgid "The following are the standard hardware requirements:" -msgstr "Aşağıdakiler standart donanım gereksinimleridir:" - -msgid "" -"The following components are currently unable to benefit from the use of a " -"proxy server:" -msgstr "Aşağıdaki bileşenler şu anda bir vekil sunucudan faydalanamıyorlar:" - -msgid "The following components/services can work with HA queues:" -msgstr "Aşağıdaki bileşenler/servisler HA kuyruklarıyla çalışabilir:" - -msgid "" -"The following section(s) detail how to add the OpenStack Identity resource " -"to Pacemaker on SUSE and Red Hat." -msgstr "" -"Aşağıdaki kısım(lar) OpenStack Kimlik kaynağını SUSE ve Red Hat üzerinde " -"nasıl Pacemaker'e ekleyeceğinizi ayrıntılar." - -msgid "" -"The majority of services, needing no real orchestration, are handled by " -"systemd on each node. This approach avoids the need to coordinate service " -"upgrades or location changes with the cluster and has the added advantage of " -"more easily scaling beyond Corosync's 16 node limit. However, it will " -"generally require the addition of an enterprise monitoring solution such as " -"Nagios or Sensu for those wanting centralized failure reporting." -msgstr "" -"Gerçek bir düzenleyiciye ihtiyaç duymayan servislerin büyük çoğunluğu her " -"bir düğümde systemd tarafından ele alınır. Bu yaklaşım küme ile servis " -"yükseltmeleri veya konum değişikliklerini eşgüdümleme ihtiyacını ortadan " -"kaldırır ve Corosync'in 16 düğüm sınırının ötesine daha kolay geçme " -"avantajınıa sahiptir. Ancak merkezi hata raporlama isteyenler için " -"genellikle Nagios veya Sensu gibi kurumsal bir izleme çözümü ihtiyacı " -"çıkarır." - -msgid "" -"The most popular AMQP implementation used in OpenStack installations is " -"RabbitMQ." -msgstr "" -"OpenStack kurulumlarında en yaygın kullanılan AMQP uygulaması RabbitMQ'dur." - -msgid "" -"The proxy can be configured as a secondary mechanism for detecting service " -"failures. It can even be configured to look for nodes in a degraded state " -"(such as being too far behind in the replication) and take them out of " -"circulation." -msgstr "" -"Vekil servis arızalarını algılamak için ikinci bir mekanizma olarak " -"yapılandırılabilir. Hatta artık kullanılmayan durumda olan düğümleri bulacak " -"ve döngüden çıkaracak şekilde bile yapılandırılabilir (örneğin yedeklemede " -"çok geride kalmak gibi sebeplerden)." - -msgid "" -"The quorum specifies the minimal number of nodes that must be functional in " -"a cluster of redundant nodes in order for the cluster to remain functional. " -"When one node fails and failover transfers control to other nodes, the " -"system must ensure that data and processes remain sane. To determine this, " -"the contents of the remaining nodes are compared and, if there are " -"discrepancies, a majority rules algorithm is implemented." -msgstr "" -"Yetersayı kümenin işlevsel kalabilmesi için yedekli düğümlerden oluşan bir " -"kümede bulunması gereken asgari düğüm sayısını belirtir. Bir düğüm " -"arızalandığında ve kurtarma kontrolü diğer düğümlere aktardığında, sistem " -"veri ve süreçlerin mantıklı kaldığından emin olmalıdır. Buna karar vermek " -"için kalan düğümlerin içerikleri karşılaştırılır ve çelişkiler varsa, " -"çoğunluk kuralı algoritması uygulanır." - -msgid "" -"The service declaration for the Pacemaker service may be placed in the :file:" -"`corosync.conf` file directly or in its own separate file, :file:`/etc/" -"corosync/service.d/pacemaker`." -msgstr "" -"Pacemaker servisi için servis tanımı doğrudan :file:`corosync.conf` " -"dosyasına veya kendine ait ayrı bir dosyaya konabilir, :file:`/etc/corosync/" -"service.d/pacemaker`." - -msgid "The steps to implement the Pacemaker cluster stack are:" -msgstr "Pacemaker küme yığınını uygulamak için gerekli adımlar:" - -msgid "" -"The votequorum library has been created to replace and eliminate ``qdisk``, " -"the disk-based quorum daemon for CMAN, from advanced cluster configurations." -msgstr "" -"Votequorum kitaplığı gelişmiş küme yapılandırmalarından, CMAN için disk " -"tabanlı yetersayı artalan işi olan ``qdisk``i değiştirmek veya çıkarmak için " -"oluşturuldu." - -msgid "" -"The votequorum library is part of the Corosync project. It provides an " -"interface to the vote-based quorum service and it must be explicitly enabled " -"in the Corosync configuration file. The main role of votequorum library is " -"to avoid split-brain situations, but it also provides a mechanism to:" -msgstr "" -"Votequorum kitaplığı Corosync projesinin parçasıdır. Oy tabanlı yetersayı " -"servisine bir arayüz sunar ve Corosync yapılandırma dosyasında özellikle " -"etkinleştirilmelidir. Voteqourum kitaplığının ana rolü ayrık beyin " -"durumlarını engellemektir, ama ayrıca şunlar için de bir yöntem sağlar:" - -msgid "" -"These agents must conform to one of the `OCF `_, `SysV Init " -"`_, Upstart, or Systemd standards." -msgstr "" -"Bu aracılar `OCF `_, `SysV Init `_, Upstart, " -"veya Systemd'den birine uyumludurlar." - -msgid "This can be achieved using the :command:`iptables` command:" -msgstr "Bu :command:`iptables` komutuyla elde edilebilir:" - -msgid "" -"This chapter describes the basic environment for high availability, such as " -"hardware, operating system, common services." -msgstr "" -"Bu bölüm donanım, işletim sistemi, yaygın servisler gibi yüksek " -"kullanılırlık için temel ortamı tanımlar." - -msgid "" -"This chapter describes the shared services for high availability, such as " -"database, messaging service." -msgstr "" -"Bu bölüm yüksek kullanılırlık için veritabanı, ileti servisi gibi paylaşımlı " -"servisleri tanımlar." - -msgid "" -"This configuration creates ``p_cinder-api``, a resource for managing the " -"Block Storage API service." -msgstr "" -"Bu yapılandırma Blok Depolama API servisini yönetmek için bir kaynak olan " -"``p_cinder-api`` oluşturur." - -msgid "" -"This configuration creates ``p_glance-api``, a resource for managing the " -"OpenStack Image API service." -msgstr "" -"Bu yapılandırma OpenStack İmaj API servisini yönetmek için bir kaynak olan " -"``p_glance-api`` oluşturur." - -msgid "" -"This configuration creates ``p_keystone``, a resource for managing the " -"OpenStack Identity service." -msgstr "" -"Bu yapılandırma OpenStack Kimlik servisini yönetmek için bir kaynak olan " -"``p_keystone``yi oluşturur." - -msgid "" -"This configuration creates ``p_manila-api``, a resource for managing the " -"Shared File Systems API service." -msgstr "" -"Bu yapılandırma Paylaşımlı Dosya Sistemleri API servisini yönetmek için bir " -"kaynak olan ``p_manila-api`` oluşturur." - -msgid "" -"This configuration creates ``vip``, a virtual IP address for use by the API " -"node (``10.0.0.11``)." -msgstr "" -"Bu yapılandırma API düğümü (``10.0.0.11``) tarafından kullanılmak üzere bir " -"sanal IP adresi ``vip`` oluşturur." - -msgid "" -"This document discusses some common methods of implementing highly available " -"systems, with an emphasis on the core OpenStack services and other open " -"source services that are closely aligned with OpenStack." -msgstr "" -"Bu belge OpenStack servisleri ve OpenStack ile ilgili diğer açık kaynak " -"servisleri ön planda tutarak bazı yaygın yüksek kullanılırlık sistemleri " -"uygulamalarını tartışır." - -msgid "" -"This example assumes that you are using NFS for the physical storage, which " -"will almost never be true in a production installation." -msgstr "" -"Bu örnek fiziksel depolama için NFS kullandığınızı varsayar, ki bu üretim " -"kurulumlarında nerdeyse hiçbir zaman doğru olmaz." - -msgid "This guide is intended as advice only." -msgstr "Bu kılavuz yalnıca öneri niteliğindedir." - -msgid "This guide uses the following example IP addresses:" -msgstr "Bu kılavuz şu örnek IP adreslerini kullanır:" - -msgid "" -"This guide was last updated as of the Ocata release, documenting the " -"OpenStack Ocata, Newton, and Mitaka releases. It may not apply to EOL " -"releases Kilo and Liberty." -msgstr "" -"Bu kılavuz en son Ocata dağıtımında güncellendi, OpenStack Ocata, Newton ve " -"Mitaka dağıtımlarını belgeler. Kilo ve Liberty gibi ömrü dolmuş dağıtımlara " -"uygulanamayabilir." - -msgid "This is the most common option and the one we document here." -msgstr "Bu burada belgelediğimiz en yaygın seçenektir." - -msgid "" -"This is why setting the quorum to a value less than ``floor(n/2) + 1`` is " -"dangerous. However it may be required for some specific cases, such as a " -"temporary measure at a point it is known with 100% certainty that the other " -"nodes are down." -msgstr "" -"Yetersayıyı ``taban(n/2) + 1`` değerinden küçük bir değere ayarlamak bu " -"yüzden tehlikelidir. Ancak bazı özel durumlarda gerekli olabilir, örneğin " -"diğer düğümlerin 100% bozuk olduğunun bilindiği geçici önlemler için." - -msgid "" -"This scenario can be visualized as below, where each box below represents a " -"cluster of three or more guests." -msgstr "" -"Bu senaryo aşağıdaki gibi görselleştirilebilir, her bir kutu üç ya da daha " -"fazla misafire sahip bir kümeyi temsil eder." - -msgid "This scenario can be visualized as below." -msgstr "Bu senaryo şu şekilde görselleştirilebilir." - -msgid "" -"This scenario has the advantage of requiring far fewer, if more powerful, " -"machines. Additionally, being part of a single cluster allows you to " -"accurately model the ordering dependencies between components." -msgstr "" -"Bu senaryonun çok daha az, daha güçlü makineler gerektirme avantajı vardır. " -"Ek olarak, tek bir kümenin üyesi olmak bileşenler arasındaki sıralama " -"bağımlılıklarını daha doğru modellemenizi sağlar." - -msgid "" -"This section discusses ways to protect against data loss in your OpenStack " -"environment." -msgstr "" -"Bu kısım OpenStack ortamınızda veri kaybına karşı alınabilecek yolları " -"tartışır." - -msgid "" -"This value increments with each transaction, so the most advanced node has " -"the highest sequence number and therefore is the most up to date." -msgstr "" -"Bu değer her bir aktarımla artar, yani en gelişmiş düğüm en yüksek sıra " -"numarasına sahiptir böylece en güncel olandır." - -msgid "" -"To be sure that all data is highly available, ensure that everything is " -"stored in the MySQL database (which is also highly available):" -msgstr "" -"Tüm verinin yüksek kullanılırlıklı olduğundan emin olmak için, herşeyin " -"MYSQL veritabanında depolandığından emin olun (kendisi de yüksek " -"kullanılırlıklı olmak üzere):" - -msgid "" -"To configure AppArmor to work with Galera Cluster, complete the following " -"steps on each cluster node:" -msgstr "" -"AppArmor'u Galera Kümesi ile çalışacak şekilde yapılandırmak için, her bir " -"küme düğümünde aşağıdaki adımları tamamlayın:" - -msgid "" -"To configure SELinux to permit Galera Cluster to operate, you may need to " -"use the ``semanage`` utility to open the ports it uses. For example:" -msgstr "" -"SELinux'u Galera Kümesinin işlemesine izin verecek şekilde yapılandırmak " -"için, kullandığı bağlantı noktalarını açmak için ``semanage`` aracını " -"kullanmanız gerekebilir. Örneğin:" - -msgid "" -"To configure the number of DHCP agents per network, modify the " -"``dhcp_agents_per_network`` parameter in the :file:`/etc/neutron/neutron." -"conf` file. By default this is set to 1. To achieve high availability, " -"assign more than one DHCP agent per network. For more information, see `High-" -"availability for DHCP `_." -msgstr "" -"Ağ başına DHCP aracısı sayısını yapılandırmak için :file:`/etc/neutron/" -"neutron.conf` dosyasındaki ``dhcp_agents_per_network`` parametresini " -"değiştirin. Öntanımlı olarak bu değer 1 olarak ayarlıdır. Yüksek " -"kullanılırlık elde etmek için, ağ başına birden fazla DHCP aracısı atayın. " -"Daha fazla bilgi için, `DHCP için yüksek kullanılırlık `_ belgesine göz " -"atın." - -msgid "" -"To enable high availability for configured routers, edit the :file:`/etc/" -"neutron/neutron.conf` file to set the following values:" -msgstr "" -"Yapılandırılan yönlendiriciler için yüksek kullanılırlığı etkinleştirmek " -"için, :file:`/etc/neutron/neutron.conf` dosyasını düzenleyerek aşağıdaki " -"değerleri ayarlayın:" - -msgid "" -"To enable the compute agent to run multiple instances simultaneously with " -"workload partitioning, the ``workload_partitioning`` option must be set to " -"``True`` under the `compute section `_ in the :file:`ceilometer.conf` configuration " -"file." -msgstr "" -"Hesaplama aracısının iş yükünü dağıtarak birkaç sunucuyu aynı anda " -"çalıştırmasını etkinleştirmek için, :file:`ceilometer.conf` yapılandırma " -"dosyasında `hesaplama kısmı `_ altındaki ``workload_partitioning`` seçeneği " -"``True`` olarak ayarlanmalıdır." - -msgid "" -"To ensure that all queues except those with auto-generated names are " -"mirrored across all running nodes, set the ``ha-mode`` policy key to all by " -"running the following command on one of the nodes:" -msgstr "" -"Otomatik üretilen isimlere sahip olanlar hariç tüm kuyrukların tüm çalışan " -"düğümlerde yansılandığından emin olmak için, düğümlerden biri üzerinde " -"aşağıdaki komutu çalıştırarak ``ha-mode`` ilke anahtarını hepsi olarak " -"ayarlayın:" - -msgid "" -"To find the most advanced cluster node, you need to check the sequence " -"numbers, or the ``seqnos``, on the last committed transaction for each. You " -"can find this by viewing ``grastate.dat`` file in database directory:" -msgstr "" -"En gelişmiş küme düğümünü bulmak için, her biri için son gönderilen " -"aktarımın sıra numarasını, veya ``seqno``sunu kontrol etmelisiniz. Bunu " -"veritabanı dizinindeki ``grastate.dat`` dosyasını görüntüleyerek " -"bulabilirsiniz:" - -msgid "" -"To install and configure Memcached, read the `official documentation " -"`_." -msgstr "" -"Memecached kurulum ve yapılandırması için `resmi belgelendirmeyi `_ okuyun." - -msgid "To start the cluster, complete the following steps:" -msgstr "Kümeyi başlatmak için, aşağıdaki adımları tamamlayın:" - -msgid "" -"Traditionally, Pacemaker has been positioned as an all-encompassing " -"solution. However, as OpenStack services have matured, they are increasingly " -"able to run in an active/active configuration and gracefully tolerate the " -"disappearance of the APIs on which they depend." -msgstr "" -"Geleneksel olarak, Pacemaker herşeyi kapsayan bir çözüm olarak " -"konulandırıldı. Ancak, OpenStack servisleri olgunlaştıkça, giderek artan " -"şekilde etkin/etkin yapılandırmalarda çalışmaya başladılar ve bağımlılık " -"duydukları API'lerin kaybolması durumunu daha iyi kaldırabiliyorlar." - -msgid "True" -msgstr "Doğru" - -msgid "" -"Typically, an active/active installation for a stateless service maintains a " -"redundant instance, and requests are load balanced using a virtual IP " -"address and a load balancer such as HAProxy." -msgstr "" -"Genellikle, durumsuz bir servis için etkin/etkin bir kurulum yedek bir " -"sunucuya da bakar, ve istekler bir sanal IP adresi ve HAProxy gibi bir yük " -"dengeleyici ile dengelenir." - -msgid "Use HA queues in RabbitMQ (``x-ha-policy: all``):" -msgstr "RabbitMQ'da HA kuyrukları kullan (``x-ha-policy: all``):" - -msgid "" -"Use MySQL/Galera in active/passive mode to avoid deadlocks on ``SELECT ... " -"FOR UPDATE`` type queries (used, for example, by nova and neutron). This " -"issue is discussed in the following:" -msgstr "" -"``SELECT ... FOR UPDATE`` türü sorgularda ölükilitlere yol açmamak için " -"MySQL/Galera'yı etkin/pasif kipte kullanın (örneğin nova ve neutron " -"tarafından kullanılır). Bu sorun aşağıda tartışılmıştır:" - -msgid "Use durable queues in RabbitMQ:" -msgstr "RabbitMQ'da dayanıklı kuyruklar kullan:" - -msgid "" -"Use that password to authenticate to the nodes that will make up the cluster:" -msgstr "Kümeyi oluşturan düğümlere kimlik doğrulama için bu parolayı kullan:" - -msgid "" -"Use the :command:`corosync-cfgtool` utility with the ``-s`` option to get a " -"summary of the health of the communication rings:" -msgstr "" -"İletişim halkalarının sağlık özetini almak için :command:`corosync-cfgtool` " -"aracını ``-s`` seçeneğiyle kullanın:" - -msgid "" -"Use the :command:`corosync-objctl` utility to dump the Corosync cluster " -"member list:" -msgstr "" -"Corosync kümesi üye listesini dökmek için :command:`corosync-objctl` aracını " -"kullanın:" - -msgid "Use these steps to configurate all services using RabbitMQ:" -msgstr "" -"Tüm servisleri RabbitMQ kullanarak yapılandırmak için bu adımları kullanın:" - -msgid "Value" -msgstr "Değer" - -msgid "Verify that the nodes are running:" -msgstr "Düğümlerin çalıştığını doğrulayın:" - -msgid "Verify the cluster status:" -msgstr "Küme durumunu doğrula:" - -msgid "Virtualized hardware" -msgstr "Sanallaştırılmış donanım" - -msgid "" -"We advise that you read this at your own discretion when planning on your " -"OpenStack cloud." -msgstr "" -"OpenStack bulutunuzu planlarken bunu tedbirli şekilde okumanızı öneririz." - -msgid "" -"We do not recommend setting the quorum to a value less than ``floor(n/2) + " -"1`` as it would likely cause a split-brain in a face of network partitions." -msgstr "" -"Yetersayıyı ``taban(n/2) + 1`` değerinden daha küçük bir değer yapmanızı " -"önermiyoruz çünkü ağ bölümlemesi durumunda ayrık-beyine sebep olabilir." - -msgid "" -"We recommend HAProxy as the load balancer, however, there are many " -"alternative load balancing solutions in the marketplace." -msgstr "" -"Yük dengeleyici olarak HAProxy öneriyoruz, ancak, markette birçok alternatif " -"yük dengeleme çözümü mevcut." - -msgid "" -"We recommend two primary architectures for making OpenStack highly available." -msgstr "" -"OpenStack'i yüksek kullanılabilir yapmak için iki ana mimari öneriyoruz." - -msgid "" -"We recommended that the maximum latency between any two controller nodes is " -"2 milliseconds. Although the cluster software can be tuned to operate at " -"higher latencies, some vendors insist on this value before agreeing to " -"support the installation." -msgstr "" -"İki kontrol düğümü arasındaki azami gecikmenin 2 milisaniye olmasını " -"önerdik. Küme yazılımı daha yüksek gecikmelerle çalışabilecek olsa da, bazı " -"üreticiler kurulumu destekleme konusunda anlaşmaya varmadan öcne bu değer " -"üzerinde durur." - -msgid "What is a cluster manager?" -msgstr "Küme yöneticisi nedir?" - -msgid "" -"When Ceph RBD is used for ephemeral volumes as well as block and image " -"storage, it supports `live migration `_ of VMs with ephemeral drives. LVM only " -"supports live migration of volume-backed VMs." -msgstr "" -"Ceph RBD geçici birimler için kullanıldığı gibi blok ve imaj depolama için " -"de kullanıldığında, sanal makinelerin `canlı göçünü `_ geçici sürücülerle " -"sağlar. LVM yalnızca birim destekli sanal makinelerin canlı göçünü destekler." - -msgid "" -"When configuring an OpenStack environment for study or demonstration " -"purposes, it is possible to turn off the quorum checking. Production systems " -"should always run with quorum enabled." -msgstr "" -"OpenStack ortamını çalışma ya da gösterim amacıyla yapılandırırken, " -"yetersayı kontrolünü kapatmak mümkündür. Üretim sistemleri her zaman " -"yetersayı etkin olarak çalışmalıdır." - -msgid "" -"When each cluster node starts, it checks the IP addresses given to the " -"``wsrep_cluster_address`` parameter. It then attempts to establish network " -"connectivity with a database server running there. Once it establishes a " -"connection, it attempts to join the Primary Component, requesting a state " -"transfer as needed to bring itself into sync with the cluster." -msgstr "" -"Her bir küme düğümü başladığında ``wsrep_cluster_address`` parametresine " -"verilen IP adreslerini kontrol eder. Ardından orada çalışan bir veritabanı " -"sunucusu ile ağ bağlantısı kurmaya çalışır. Bağlantı elde ettiğinde, " -"Birincil Bileşene katılmaya çalışır, kendisini küme ile eşzamanlamak için " -"bir durum aktarımı ister." - -msgid "" -"When four nodes fail simultaneously, the cluster would continue to function " -"as well. But if split to partitions of three and four nodes respectively, " -"the quorum of three would have made both sides to attempt to fence the other " -"and host resources. Without fencing enabled, it would go straight to running " -"two copies of each resource." -msgstr "" -"Dört düğüm aynı anda arızalanırsa da küme işlemeye devam edecektir. Ama üç " -"ve dört düğüm olmak üzere bölümlere ayrıldıysa, üç olan yetersayı iki " -"tarafın da karşı tarafı yalıtıp kaynakları sunmaya çalışmasına yol " -"açacaktır. Parmaklıklama etkin değilse doğrudan her bir kaynağın iki " -"kopyasının sunulduğu duruma düşülür." - -msgid "" -"When installing highly available OpenStack on VMs, be sure that your " -"hypervisor permits promiscuous mode and disables MAC address filtering on " -"the external network." -msgstr "" -"Sanal makineler üzerinde yüksek kullanılabilir OpenStack kurarken, " -"hipervizörünüzün harici ağ üzerinde MAC adres süzmeyi kapatmaya ve seçici " -"olmayan kipe izin vermesine dikkat edin." - -msgid "" -"When you finish installing and configuring the OpenStack database, you can " -"initialize the Galera Cluster." -msgstr "" -"OpenStack veritabanını kurup yapılandırmayı bitirdiğinizde, Galera Kümesini " -"ilklendirebilirsiniz." - -msgid "" -"When you have all cluster nodes started, log into the database client of any " -"cluster node and check the ``wsrep_cluster_size`` status variable again:" -msgstr "" -"Tüm küme düğümleri başladıktan sonra, herhangi bir küme düğümünden " -"veritabanı istemcisine giriş yapın ve ``wsrep_cluster_size`` durum " -"değişkenini tekrar kontrol edin:" - -msgid "" -"When you start up a cluster (all nodes down) and set ``wait_for_all`` to 1, " -"the cluster quorum is held until all nodes are online and have joined the " -"cluster for the first time. This parameter is new in Corosync 2.0." -msgstr "" -"Bir küme başlattığınızda (tüm düğümler kapalı) ve ``wait_for_all`` değerini " -"1 yaptığınızda, tüm düğümler çevrimiçi olup kümeye ilk defa katılana kadar " -"küme yetersayısı bekletilir. Bu parametre Corosync 2.0 sürümüyle yeni " -"gelmiştir." - -msgid "" -"When you use high availability, consider the hardware requirements needed " -"for your application." -msgstr "" -"Yüksek kullanılırlık kullandığınızda, uygulamanız için gerekli donanım " -"gereksinimlerini göz önüne almalısınız." - -msgid "" -"While SYS-V init replacements like systemd can provide deterministic " -"recovery of a complex stack of services, the recovery is limited to one " -"machine and lacks the context of what is happening on other machines. This " -"context is crucial to determine the difference between a local failure, and " -"clean startup and recovery after a total site failure." -msgstr "" -"Systemd gibi SYS-V başlangıcının yerine geçen uygulamalar karmaşık servis " -"yığınlarının belirleyici şekilde kurtarılmasını sağlarken, kurtarma bir " -"makineyle sınırlıdır ve diğer makinelerde ne olduğuyla ilgili içeriğe sahip " -"değildir. İçerik, yerel bir arıza, temiz başlangıç ve toplu site arızasının " -"kurtarılması arasındaki farkı belirlemek için çok önemlidir." - -msgid "" -"While all of the configuration parameters available to the standard MySQL, " -"MariaDB, or Percona XtraDB database servers are available in Galera Cluster, " -"there are some that you must define an outset to avoid conflict or " -"unexpected behavior." -msgstr "" -"Standart MySQL, MariaDB veya Percona XtraDB veritabanı sunucularında " -"kullanılabilir tüm yapılandırma parametreleri Galera Kümesinde de " -"kullanılabilir olsa da, çakışmayı ya da beklenmedik davranışları önlemek " -"için kullanmamanız gereken bazıları vardır." - -msgid "" -"While the application can still run after the failure of several instances, " -"it may not have sufficient capacity to serve the required volume of " -"requests. A cluster can automatically recover failed instances to prevent " -"additional load induced failures." -msgstr "" -"Uygulama birçok sunucunun arızası durumunda da çalışabilse de, istek " -"yoğunluğuna yanıt verecek yeterli kapasiteye sahip olmayabilir. Küme arızalı " -"sunucuları otomatik olarak kurtarıp ek yüke dayalı arızaları önleyebilir." - -msgid "" -"With ``secauth`` enabled, Corosync nodes mutually authenticates using a 128-" -"byte shared secret stored in the :file:`/etc/corosync/authkey` file. This " -"can be generated with the :command:`corosync-keygen` utility. Cluster " -"communications are encrypted when using ``secauth``." -msgstr "" -"``secauth`` etkin olduğunda, Corosync düğümleri karşılıklı olarak :file:`/" -"etc/corosync/authkey` dosyasında bulunan 128-bayt paylaşımlı bir gizi " -"kullanarak kimlik doğrular. Bu :command:`corosync-keygen` aracı ile " -"üretilebilir. Küme iletişimi ``secauth`` kullanıldığında şifrelidir." - -msgid "" -"With this in mind, some vendors are restricting Pacemaker's use to services " -"that must operate in an active/passive mode (such as ``cinder-volume``), " -"those with multiple states (for example, Galera), and those with complex " -"bootstrapping procedures (such as RabbitMQ)." -msgstr "" -"Bunun yanında bazı üreticiler Pacemaker'in etkin/pasif kipinde çalışması " -"gereken servislerlere (``cinder-volume`` gibi), çoklu duruma sahip olanlara " -"(örneğin, Galera), ve karmaşık önyükleme yordamlarına sahip olanlarına " -"(örneğin RabbitMQ) kullanımını kısıtlıyorlar." - -msgid "" -"Within the ``nodelist`` directive, it is possible to specify specific " -"information about the nodes in the cluster. The directive can contain only " -"the node sub-directive, which specifies every node that should be a member " -"of the membership, and where non-default options are needed. Every node must " -"have at least the ``ring0_addr`` field filled." -msgstr "" -"``nodelist`` yönergesi içinde, küme içindeki düğümlerle ilgili belirli " -"bilgileri belirtmek mümkündür. Yönerge yalnızca düğüm alt-yönergesini " -"içerebilir, bu da aboneliğin üyesi olması gereken ve varsayılan dışında " -"seçeneklerin gerektiği her düğümü belirtir. Her düğümün en azından " -"``ring0_addr`` alanı dolu olmalıdır." - -msgid "" -"Work is in progress on a unified approach, which combines the best aspects " -"of existing upstream solutions. More details are available on `the HA VMs " -"user story wiki `_." -msgstr "" -"İş birleştirilmiş bir yaklaşımla sürmektedir, bu da mevcut çözümlerin en iyi " -"yönlerini birleştirir. Daha fazla ayrıntı `Yüksek kullanılırlıklı sanal " -"makineler kullanıcı hikayesi wiki'sinde `_ bulunabilir." - -msgid "" -"You can achieve high availability for the OpenStack database in many " -"different ways, depending on the type of database that you want to use. " -"There are three implementations of Galera Cluster available to you:" -msgstr "" -"OpenStack veritabanı için yüksek kullanılırlığı kullanmak istediğiniz " -"veritabanı türüne göre farklı yollarla elde edebilirsiniz. " -"Kullanabileceğiniz üç Galera Kümesi uygulaması bulunmaktadır:" - -msgid "" -"You can also ensure the availability by other means, using Keepalived or " -"Pacemaker." -msgstr "" -"Kullanılırlığı Keepalived veya Pacemaker kullanarak başka yollarla da " -"sağlayabilirsiniz." - -msgid "" -"You can have up to 16 cluster members (this is currently limited by the " -"ability of corosync to scale higher). In extreme cases, 32 and even up to 64 " -"nodes could be possible. However, this is not well tested." -msgstr "" -"En fazla 16 küme ögesine sahip olabilirsiniz (bu şu anda corosync'in daha " -"yukarı ölçekleme yeteneği tarafından kısıtlanıyor). Uç durumlarda, 32 ve " -"hatta 64 düğüm mümkün olabilir. Ancak bu iyi denenmemiştir." - -msgid "" -"You can now add the Pacemaker configuration for Block Storage API resource. " -"Connect to the Pacemaker cluster with the :command:`crm configure` command " -"and add the following cluster resources:" -msgstr "" -"Artık Blok Depolama API kaynağı için Pacemaker yapılandırması " -"ekleyebilirsiniz. :command:`crm configure` komutu ile Pacemaker kümesine " -"bağlanın ve aşağıdaki küme kaynaklarını ekleyin:" - -msgid "" -"You can now check the ``corosync`` connectivity with one of these tools." -msgstr "" -"Artık ``corosync`` bağlantısını şu araçlardan biriyle kontrol edebilirsiniz." - -msgid "" -"You can read more about these concerns on the `Red Hat Bugzilla `_ and there is a `psuedo " -"roadmap `_ " -"for addressing them upstream." -msgstr "" -"Bu endişelerle ilgili daha fazla bilgiyi `Red Hat Bugzilla'sında `_ okuyabilirsiniz, ayrıca nasıl " -"çözülecekleriyle ilgili bir `kalıp yol haritası `_ bulunur." - -msgid "" -"You can take periodic snap shots throughout the installation process and " -"roll back to a working configuration in the event of a problem." -msgstr "" -"Kurulum sürecinde aralıklarla anlık görüntüler alabilir ve sorun olması " -"durumunda çalışan bir yapılandırmaya dönebilirsiniz." - -msgid "You can use the `ping` command to find the latency between two servers." -msgstr "" -"İki sunucu arasındaki gecikmeyi bulmak için `ping` komutunu " -"kullanabilirsiniz." - -msgid "" -"You must also create the OpenStack Image API endpoint with this IP address. " -"If you are using both private and public IP addresses, create two virtual IP " -"addresses and define your endpoint. For example:" -msgstr "" -"Ayrıca OpenStack İmaj API uç noktasını da bu adresle oluşturmalısınız. Hem " -"özel hem açık IP adresleri kullanıyorsanız, iki sanal IP adresi oluşturup uç " -"noktanızı tanımlayın. Örneğin:" - -msgid "" -"You must configure a supported Tooz driver for the HA deployment of the " -"Telemetry services." -msgstr "" -"Telemetri servislerinin HA kurulumu için desteklenen bir Tooz sürücüsü " -"yapılandırmalısınız." - -msgid "You must create the Shared File Systems API endpoint with this IP." -msgstr "" -"Paylaşımlı Dosya Sistemleri API uç noktasını bu IP ile oluşturmalısınız." - -msgid "" -"You must select and assign a virtual IP address (VIP) that can freely float " -"between cluster nodes." -msgstr "" -"Küme düğümleri arasında serbestçe kayabilen bir sanal IP adresi (VIP) " -"seçmeli ve atamalısınız." - -msgid "" -"You must use the same name on every cluster node. The connection fails when " -"this value does not match." -msgstr "" -"Her küme düğümünde aynı ismi kullanmalısınız. Bu değer eşleşmediğinde " -"bağlantı başarısız olur." - -msgid "" -"You only need to do this on one cluster node. Galera Cluster replicates the " -"user to all the others." -msgstr "" -"Bunu yalnızca tek bir küme düğümünde yapmanız gerekir. Galera Kümesi " -"kullanıcıyı diğerlerine çoğaltır." - -msgid "" -"You should see a ``status=joined`` entry for each of your constituent " -"cluster nodes." -msgstr "" -"Kurucu küme düğümlerinizin her biri için bir ``durum=katıldı`` girdisi " -"görmelisiniz." - -msgid "" -"You will need to address high availability concerns for any applications " -"software that you run on your OpenStack environment. The important thing is " -"to make sure that your services are redundant and available. How you achieve " -"that is up to you." -msgstr "" -"OpenStack ortamınızda çalıştırdığınız tüm uygulama yazılımları için yüksek " -"kullanılırlık endişelerini gidermeniz gerekir. Önemli olan servislerinizin " -"yedekli ve kullanılabilir olduğundan emin olmaktır. Bunu nasıl elde " -"edeceğiniz size kalmış." - -msgid "" -"You would choose this option if you prefer to have fewer but more powerful " -"boxes." -msgstr "" -"Bu seçeneği daha az ama daha güçlü kutuları tercih ettiğinizde seçmeniz " -"mantıklıdır." - -msgid "" -"You would choose this option if you prefer to have more but less powerful " -"boxes." -msgstr "" -"Bu seçeneği daha fazla sayıda ama daha güçsüz kutuları tercih ettiğinizde " -"seçmeniz mantıklıdır." - -msgid "" -"Your OpenStack services must now point their Block Storage API configuration " -"to the highly available, virtual cluster IP address rather than a Block " -"Storage API server’s physical IP address as you would for a non-HA " -"environment." -msgstr "" -"OpenStack servisleriniz artık Blok Depolama API yapılandırmalarını yüksek " -"kullanılabilir olmayan bir ortamdaki gibi Blok Depolama API sunucusunun IP " -"adresi yerine yüksek kullanılır, sanal küme IP adresine çevirmelidir." - -msgid "" -"Your OpenStack services must now point their OpenStack Image API " -"configuration to the highly available, virtual cluster IP address instead of " -"pointing to the physical IP address of an OpenStack Image API server as you " -"would in a non-HA cluster." -msgstr "" -"OpenStack servisleriniz artık OpenStack İmaj API yapılandırmasını yüksek " -"kullanılır olmayan bir ortamdaki gibi OpenStack İmaj API sunucusunun " -"fiziksel IP adresine değil yüksek kullanılır, sanal küme IP adresine " -"çevirmelidir." - -msgid "" -"Your OpenStack services must now point their Shared File Systems API " -"configuration to the highly available, virtual cluster IP address rather " -"than a Shared File Systems API server’s physical IP address as you would for " -"a non-HA environment." -msgstr "" -"OpenStack servisleriniz artık Paylaşımlı Dosya Sistemleri API " -"yapılandırmalarını yüksek kullanılabilir olmayan bir ortamdaki gibi " -"Paylaşımlı Dosya Sistemleri API sunucusunun fiziksel IP adresi yerine yüksek " -"kullanılabilir, sanal küme IP adresine çevirmelidir." - -msgid "" -"Your OpenStack services now point their OpenStack Identity configuration to " -"the highly available virtual cluster IP address." -msgstr "" -"OpenStack servisleriniz artık OpenStack Kimlik yapılandırmalarını yüksek " -"kullanılırlıklı sanal küme IP adresine işaret ettiriyor." - -msgid "[TODO: need more discussion of these parameters]" -msgstr "[YAPILACAK: bu parametrelerle ilgili daha fazla tartışmak gerek]" - -msgid "" -"`Ceph RBD `_ is an innately high availability storage " -"back end. It creates a storage cluster with multiple nodes that communicate " -"with each other to replicate and redistribute data dynamically. A Ceph RBD " -"storage cluster provides a single shared set of storage nodes that can " -"handle all classes of persistent and ephemeral data (glance, cinder, and " -"nova) that are required for OpenStack instances." -msgstr "" -"`Ceph RBD `_ doğuştan yüksek kullanılabilirliğe sahip " -"depolama arka ucudur. Veriyi dinamik olarak birbiri arasında yeniden dağıtan " -"birçok düğümden oluşan bir depolama kümesi oluşturur. Bir Ceph RBD depolama " -"kümesi OpenStack sunucuları tarafından ihtiyaç duyulan her sınıf kalıcı ya " -"da geçici (glance, cinder ve nova) veriyi ele alabilen paylaşımlı depolama " -"düğümleri kümesini sağlar." - -msgid "`Clustering Guide `_" -msgstr "`Kümeleme Kılavuzu `_" - -msgid "`Debian and Ubuntu `_" -msgstr "`Debian ve Ubuntu `_" - -msgid "" -"`Galera Cluster for MySQL `_: The MySQL reference " -"implementation from Codership, Oy." -msgstr "" -"`MySQL için Galera Kümesi `_: Codership, Oy'den " -"MySQL başvuru uygulaması." - -msgid "`Highly Available Queues `_" -msgstr "`Yüksek Kullanılır Kuyruklar `_" - -msgid "" -"`IMPORTANT: MySQL Galera does *not* support SELECT ... FOR UPDATE `_" -msgstr "" -"`ÖNEMLİ: MySQL Galera SELECT ... FOR UPDATE *desteklemez* `_" - -msgid "" -"`MariaDB Galera Cluster `_: The MariaDB implementation " -"of Galera Cluster, which is commonly supported in environments based on Red " -"Hat distributions." -msgstr "" -"`MariaDB Galera Kümesi `_: Galera Kümesinin MariaDB " -"uygulaması, genellikle Red Hat dağıtımı tabanlı ortamlarda desteklenir." - -msgid "`Memcached `_:" -msgstr "`Memcached `_:" - -msgid "" -"`OCF RAs `_, as used by Red Hat and SUSE" -msgstr "" -"Red Hat ve SUSE tarafından kullanılan şekliyle `OCF RA'ları `_" - -msgid "" -"`Pacemaker `_ cluster stack is a state-of-the-art " -"high availability and load balancing stack for the Linux platform. Pacemaker " -"is used to make OpenStack infrastructure highly available." -msgstr "" -"`Pacemaker `_ küme yığını Linux platformu için " -"modern bir yüksek kullanılırlık ve yük dengeleme yığınıdır. Pacemaker " -"OpenStack alt yapısını yüksek kullanılır yapmak için kullanılır." - -msgid "" -"`Percona XtraDB Cluster `_: The XtraDB " -"implementation of Galera Cluster from Percona." -msgstr "" -"`Percona XtraDB Kümesi `_: Percona'dan Galera " -"Kümesi için XtraDB uygulaması." - -msgid "" -"`RPM based `_ (RHEL, Fedora, " -"CentOS, openSUSE)" -msgstr "" -"`RPM tabanlı `_ (RHEL, Fedora, " -"CentOS, openSUSE)" - -msgid "`Redis `_:" -msgstr "`Redis `_:" - -msgid "" -"`Understanding reservations, concurrency, and locking in Nova `_" -msgstr "" -"`Nova'da yer ayırmaların, aynı anda kullanımın ve kilitlerin anlaşılması " -"`_" - -msgid "`Zookeeper `_:" -msgstr "`Zookeeper `_:" - -msgid "``crmsh``" -msgstr "``crmsh``" - -msgid "" -"``last_man_standing_window`` specifies the time, in milliseconds, required " -"to recalculate quorum after one or more hosts have been lost from the " -"cluster. To perform a new quorum recalculation, the cluster must have quorum " -"for at least the interval specified for ``last_man_standing_window``. The " -"default is 10000ms." -msgstr "" -"``last_man_standing_window`` bir ya da daha fazla sunucu kümeden " -"kaybolduğunda yetersayıyı tekrar hesaplamak için gerekli sürenin milisaniye " -"cinsinden değeridir. Yeni bir yetersayı hesaplaması yapmak için, küme en az " -"``last_man_standing_window`` değerinde belirtilen aralık kadar beklemelidir. " -"Öntanımlı değer 10000 ms'dir." - -msgid "" -"``nodeid`` is optional when using IPv4 and required when using IPv6. This is " -"a 32-bit value specifying the node identifier delivered to the cluster " -"membership service. If this is not specified with IPv4, the node ID is " -"determined from the 32-bit IP address of the system to which the system is " -"bound with ring identifier of 0. The node identifier value of zero is " -"reserved and should not be used." -msgstr "" -"``nodeid`` IPv4 kullanırken isteğe bağlı, IPv6 kullanırken gereklidir. Küme " -"üyelik servisine gönderilen düğüm tanımlayıcısını belirten 32-bit bir " -"değerdir. IPv4 ile bu değer belirtilmezse, düğüm kimliği sistemin 0 halka " -"tanımlayıcısı ile bağlı bulunduğu sistemin 32-bit IP adresinden karar " -"verilir. Düğüm tanımlayıcı değeri olan sıfır ayrılmıştır, ve " -"kullanılmamalıdır." - -msgid "``pcs``" -msgstr "``pcs``" - -msgid "" -"``ring{X}_addr`` specifies the IP address of one of the nodes. ``{X}`` is " -"the ring number." -msgstr "" -"``ring{X}_addr`` düğümlerden birinin IP adresini belirtir. ``{X}`` halka " -"numarasıdır." - -msgid "" -"`a mistral-based auto-recovery workflow `_, by Intel" -msgstr "" -"Intel tarafından `mistral-tabanlı otomatik kurtarma iş akışı `_" - -msgid "`corosync`" -msgstr "`corosync`" - -msgid "`fence-agents` (CentOS or RHEL) or cluster-glue" -msgstr "`fence-agents` (CentOS veya RHEL) veya cluster-glue" - -msgid "`libqb0`" -msgstr "`libqb0`" - -msgid "`masakari `_, by NTT" -msgstr "NTT tarafından `masakari `_" - -msgid "`pacemaker`" -msgstr "`pacemaker`" - -msgid "`pcs` (CentOS or RHEL) or crmsh" -msgstr "`pcs` (CentOS veya RHEL) veya crmsh" - -msgid "`resource-agents`" -msgstr "`resource-agents`" - -msgid "allow_automatic_l3agent_failover" -msgstr "allow_automatic_l3agent_failover" - -msgid "compute node" -msgstr "hesaplama düğümü" - -msgid "controller node" -msgstr "kontrol düğümü" - -msgid "l3_ha" -msgstr "l3_ha" - -msgid "max_l3_agents_per_router" -msgstr "max_l3_agents_per_router" - -msgid "min_l3_agents_per_router" -msgstr "min_l3_agents_per_router" diff --git a/doc/ha-guide/source/networking-ha-dhcp.rst b/doc/ha-guide/source/networking-ha-dhcp.rst deleted file mode 100644 index b59f282973..0000000000 --- a/doc/ha-guide/source/networking-ha-dhcp.rst +++ /dev/null @@ -1,13 +0,0 @@ -========================= -Run Networking DHCP agent -========================= - -The OpenStack Networking (neutron) service has a scheduler that lets you run -multiple agents across nodes. The DHCP agent can be natively highly available. - -To configure the number of DHCP agents per network, modify the -``dhcp_agents_per_network`` parameter in the :file:`/etc/neutron/neutron.conf` -file. By default this is set to 1. To achieve high availability, assign more -than one DHCP agent per network. For more information, see -`High-availability for DHCP -`_. diff --git a/doc/ha-guide/source/networking-ha-l3.rst b/doc/ha-guide/source/networking-ha-l3.rst deleted file mode 100644 index 231b262b72..0000000000 --- a/doc/ha-guide/source/networking-ha-l3.rst +++ /dev/null @@ -1,37 +0,0 @@ -======================= -Run Networking L3 agent -======================= - -The Networking (neutron) service L3 agent is scalable, due to the scheduler -that supports Virtual Router Redundancy Protocol (VRRP) to distribute virtual -routers across multiple nodes. For more information about the VRRP and -keepalived, see `Linux bridge: High availability using VRRP -`_ -and `Open vSwitch: High availability using VRRP -`_. - -To enable high availability for configured routers, edit the -:file:`/etc/neutron/neutron.conf` file to set the following values: - -.. tabularcolumns:: |l|l|L| -.. list-table:: /etc/neutron/neutron.conf parameters for high availability - :widths: 15 10 30 - :header-rows: 1 - - * - Parameter - - Value - - Description - * - l3_ha - - True - - All routers are highly available by default. - * - allow_automatic_l3agent_failover - - True - - Set automatic L3 agent failover for routers - * - max_l3_agents_per_router - - 2 or more - - Maximum number of network nodes to use for the HA router. - * - min_l3_agents_per_router - - 2 or more - - Minimum number of network nodes to use for the HA router. - A new router can be created only if this number - of network nodes are available. diff --git a/doc/ha-guide/source/networking-ha.rst b/doc/ha-guide/source/networking-ha.rst deleted file mode 100644 index 81615ca83e..0000000000 --- a/doc/ha-guide/source/networking-ha.rst +++ /dev/null @@ -1,35 +0,0 @@ -=================================== -Configuring the networking services -=================================== - -.. toctree:: - :maxdepth: 2 - - networking-ha-dhcp.rst - networking-ha-l3.rst - -Configure networking on each node. See the basic information -about configuring networking in the *Networking service* -section of the -`Install Guides `_, -depending on your distribution. - -OpenStack network nodes contain: - -- :doc:`Networking DHCP agent` -- :doc:`Neutron L3 agent` -- Networking L2 agent - - .. note:: - - The L2 agent cannot be distributed and highly available. - Instead, it must be installed on each data forwarding node - to control the virtual network driver such as Open vSwitch - or Linux Bridge. One L2 agent runs per node and controls its - virtual interfaces. - -.. note:: - - For Liberty, you can not have the standalone network nodes. - The Networking services are run on the controller nodes. - In this guide, the term `network nodes` is used for convenience. diff --git a/doc/ha-guide/source/shared-database-configure.rst b/doc/ha-guide/source/shared-database-configure.rst deleted file mode 100644 index 808b5576fc..0000000000 --- a/doc/ha-guide/source/shared-database-configure.rst +++ /dev/null @@ -1,301 +0,0 @@ -============== -Configuration -============== - -Before you launch Galera Cluster, you need to configure the server -and the database to operate as part of the cluster. - -Configuring the server -~~~~~~~~~~~~~~~~~~~~~~~ - -Certain services running on the underlying operating system of your -OpenStack database may block Galera Cluster from normal operation -or prevent ``mysqld`` from achieving network connectivity with the cluster. - -Firewall ---------- - -Galera Cluster requires that you open the following ports to network traffic: - -- On ``3306``, Galera Cluster uses TCP for database client connections - and State Snapshot Transfers methods that require the client, - (that is, ``mysqldump``). -- On ``4567``, Galera Cluster uses TCP for replication traffic. Multicast - replication uses both TCP and UDP on this port. -- On ``4568``, Galera Cluster uses TCP for Incremental State Transfers. -- On ``4444``, Galera Cluster uses TCP for all other State Snapshot Transfer - methods. - -.. seealso:: - - For more information on firewalls, see `firewalls and default ports - `_ - in OpenStack Administrator Guide. - -This can be achieved using the :command:`iptables` command: - -.. code-block:: console - - # iptables --append INPUT --in-interface eth0 \ - --protocol tcp --match tcp --dport ${PORT} \ - --source ${NODE-IP-ADDRESS} --jump ACCEPT - -Make sure to save the changes once you are done. This will vary -depending on your distribution: - -- For `Ubuntu `_ -- For `Fedora `_ - -Alternatively, make modifications using the ``firewall-cmd`` utility for -FirewallD that is available on many Linux distributions: - -.. code-block:: console - - # firewall-cmd --add-service=mysql --permanent - # firewall-cmd --add-port=3306/tcp --permanent - -SELinux --------- - -Security-Enhanced Linux is a kernel module for improving security on Linux -operating systems. It is commonly enabled and configured by default on -Red Hat-based distributions. In the context of Galera Cluster, systems with -SELinux may block the database service, keep it from starting, or prevent it -from establishing network connections with the cluster. - -To configure SELinux to permit Galera Cluster to operate, you may need -to use the ``semanage`` utility to open the ports it uses. For -example: - -.. code-block:: console - - # semanage port -a -t mysqld_port_t -p tcp 3306 - -Older versions of some distributions, which do not have an up-to-date -policy for securing Galera, may also require SELinux to be more -relaxed about database access and actions: - -.. code-block:: console - - # semanage permissive -a mysqld_t - -.. note:: - - Bear in mind, leaving SELinux in permissive mode is not a good - security practice. Over the longer term, you need to develop a - security policy for Galera Cluster and then switch SELinux back - into enforcing mode. - - For more information on configuring SELinux to work with - Galera Cluster, see the `SELinux Documentation - `_ - -AppArmor ---------- - -Application Armor is a kernel module for improving security on Linux -operating systems. It is developed by Canonical and commonly used on -Ubuntu-based distributions. In the context of Galera Cluster, systems -with AppArmor may block the database service from operating normally. - -To configure AppArmor to work with Galera Cluster, complete the -following steps on each cluster node: - -#. Create a symbolic link for the database server in the ``disable`` directory: - - .. code-block:: console - - # ln -s /etc/apparmor.d/usr /etc/apparmor.d/disable/.sbin.mysqld - -#. Restart AppArmor. For servers that use ``init``, run the following command: - - .. code-block:: console - - # service apparmor restart - - For servers that use ``systemd``, run the following command: - - .. code-block:: console - - # systemctl restart apparmor - -AppArmor now permits Galera Cluster to operate. - -Database configuration -~~~~~~~~~~~~~~~~~~~~~~~ - -MySQL databases, including MariaDB and Percona XtraDB, manage their -configurations using a ``my.cnf`` file, which is typically located in the -``/etc`` directory. Configuration options available in these databases are -also available in Galera Cluster, with some restrictions and several -additions. - -.. code-block:: ini - - [mysqld] - datadir=/var/lib/mysql - socket=/var/lib/mysql/mysql.sock - user=mysql - binlog_format=ROW - bind-address=10.0.0.12 - - # InnoDB Configuration - default_storage_engine=innodb - innodb_autoinc_lock_mode=2 - innodb_flush_log_at_trx_commit=0 - innodb_buffer_pool_size=122M - - # Galera Cluster Configuration - wsrep_provider=/usr/lib/libgalera_smm.so - wsrep_provider_options="pc.recovery=TRUE;gcache.size=300M" - wsrep_cluster_name="my_example_cluster" - wsrep_cluster_address="gcomm://GALERA1-IP,GALERA2-IP,GALERA3-IP" - wsrep_sst_method=rsync - - -Configuring mysqld -------------------- - -While all of the configuration parameters available to the standard MySQL, -MariaDB, or Percona XtraDB database servers are available in Galera Cluster, -there are some that you must define an outset to avoid conflict or -unexpected behavior. - -- Ensure that the database server is not bound only to the localhost: - ``127.0.0.1``. Also, do not bind it to ``0.0.0.0``. Binding to the localhost - or ``0.0.0.0`` makes ``mySQL`` bind to all IP addresses on the machine, - including the virtual IP address causing ``HAProxy`` not to start. Instead, - bind to the management IP address of the controller node to enable access by - other nodes through the management network: - - .. code-block:: ini - - bind-address=10.0.0.12 - -- Ensure that the binary log format is set to use row-level replication, - as opposed to statement-level replication: - - .. code-block:: ini - - binlog_format=ROW - - -Configuring InnoDB -------------------- - -Galera Cluster does not support non-transactional storage engines and -requires that you use InnoDB by default. There are some additional -parameters that you must define to avoid conflicts. - -- Ensure that the default storage engine is set to InnoDB: - - .. code-block:: ini - - default_storage_engine=InnoDB - -- Ensure that the InnoDB locking mode for generating auto-increment values - is set to ``2``, which is the interleaved locking mode: - - .. code-block:: ini - - innodb_autoinc_lock_mode=2 - - Do not change this value. Other modes may cause ``INSERT`` statements - on tables with auto-increment columns to fail as well as unresolved - deadlocks that leave the system unresponsive. - -- Ensure that the InnoDB log buffer is written to file once per second, - rather than on each commit, to improve performance: - - .. code-block:: ini - - innodb_flush_log_at_trx_commit=0 - - Setting this parameter to ``0`` or ``2`` can improve - performance, but it introduces certain dangers. Operating system failures can - erase the last second of transactions. While you can recover this data - from another node, if the cluster goes down at the same time - (in the event of a data center power outage), you lose this data permanently. - -- Define the InnoDB memory buffer pool size. The default value is 128 MB, - but to compensate for Galera Cluster's additional memory usage, scale - your usual value back by 5%: - - .. code-block:: ini - - innodb_buffer_pool_size=122M - - -Configuring wsrep replication ------------------------------- - -Galera Cluster configuration parameters all have the ``wsrep_`` prefix. -You must define the following parameters for each cluster node in your -OpenStack database. - -- **wsrep Provider**: The Galera Replication Plugin serves as the ``wsrep`` - provider for Galera Cluster. It is installed on your system as the - ``libgalera_smm.so`` file. Define the path to this file in - your ``my.cnf``: - - .. code-block:: ini - - wsrep_provider="/usr/lib/libgalera_smm.so" - -- **Cluster Name**: Define an arbitrary name for your cluster. - - .. code-block:: ini - - wsrep_cluster_name="my_example_cluster" - - You must use the same name on every cluster node. The connection fails - when this value does not match. - -- **Cluster Address**: List the IP addresses for each cluster node. - - .. code-block:: ini - - wsrep_cluster_address="gcomm://192.168.1.1,192.168.1.2,192.168.1.3" - - Replace the IP addresses given here with comma-separated list of each - OpenStack database in your cluster. - -- **Node Name**: Define the logical name of the cluster node. - - .. code-block:: ini - - wsrep_node_name="Galera1" - -- **Node Address**: Define the IP address of the cluster node. - - .. code-block:: ini - - wsrep_node_address="192.168.1.1" - -Additional parameters -^^^^^^^^^^^^^^^^^^^^^^ - -For a complete list of the available parameters, run the -``SHOW VARIABLES`` command from within the database client: - -.. code-block:: mysql - - SHOW VARIABLES LIKE 'wsrep_%'; - - +------------------------------+-------+ - | Variable_name | Value | - +------------------------------+-------+ - | wsrep_auto_increment_control | ON | - +------------------------------+-------+ - | wsrep_causal_reads | OFF | - +------------------------------+-------+ - | wsrep_certify_nonPK | ON | - +------------------------------+-------+ - | ... | ... | - +------------------------------+-------+ - | wsrep_sync_wait | 0 | - +------------------------------+-------+ - -For documentation about these parameters, ``wsrep`` provider option, and status -variables available in Galera Cluster, see the Galera cluster `Reference -`_. diff --git a/doc/ha-guide/source/shared-database-manage.rst b/doc/ha-guide/source/shared-database-manage.rst deleted file mode 100644 index ec5ef304a9..0000000000 --- a/doc/ha-guide/source/shared-database-manage.rst +++ /dev/null @@ -1,249 +0,0 @@ -========== -Management -========== - -When you finish installing and configuring the OpenStack database, -you can initialize the Galera Cluster. - -Prerequisites -~~~~~~~~~~~~~ - -- Database hosts with Galera Cluster installed -- A minimum of three hosts -- No firewalls between the hosts -- SELinux and AppArmor set to permit access to ``mysqld`` -- The correct path to ``libgalera_smm.so`` given to the - ``wsrep_provider`` parameter - -Initializing the cluster -~~~~~~~~~~~~~~~~~~~~~~~~~ - -In the Galera Cluster, the Primary Component is the cluster of database -servers that replicate into each other. In the event that a -cluster node loses connectivity with the Primary Component, it -defaults into a non-operational state, to avoid creating or serving -inconsistent data. - -By default, cluster nodes do not start as part of a Primary Component. -In the Primary Component, replication and state transfers bring all databases -to the same state. - -To start the cluster, complete the following steps: - -#. Initialize the Primary Component on one cluster node. For - servers that use ``init``, run the following command: - - .. code-block:: console - - # service mysql start --wsrep-new-cluster - - For servers that use ``systemd``, run the following command: - - .. code-block:: console - - # systemctl start mariadb --wsrep-new-cluster - -#. Once the database server starts, check the cluster status using - the ``wsrep_cluster_size`` status variable. From the database - client, run the following command: - - .. code-block:: mysql - - SHOW STATUS LIKE 'wsrep_cluster_size'; - - +--------------------+-------+ - | Variable_name | Value | - +--------------------+-------+ - | wsrep_cluster_size | 1 | - +--------------------+-------+ - -#. Start the database server on all other cluster nodes. For - servers that use ``init``, run the following command: - - .. code-block:: console - - # service mysql start - - For servers that use ``systemd``, run the following command: - - .. code-block:: console - - # systemctl start mariadb - -#. When you have all cluster nodes started, log into the database - client of any cluster node and check the ``wsrep_cluster_size`` - status variable again: - - .. code-block:: mysql - - SHOW STATUS LIKE 'wsrep_cluster_size'; - - +--------------------+-------+ - | Variable_name | Value | - +--------------------+-------+ - | wsrep_cluster_size | 3 | - +--------------------+-------+ - -When each cluster node starts, it checks the IP addresses given to -the ``wsrep_cluster_address`` parameter. It then attempts to establish -network connectivity with a database server running there. Once it -establishes a connection, it attempts to join the Primary -Component, requesting a state transfer as needed to bring itself -into sync with the cluster. - -.. note:: - - In the event that you need to restart any cluster node, you can do - so. When the database server comes back it, it establishes - connectivity with the Primary Component and updates itself to any - changes it may have missed while down. - -Restarting the cluster ------------------------ - -Individual cluster nodes can stop and be restarted without issue. -When a database loses its connection or restarts, the Galera Cluster -brings it back into sync once it reestablishes connection with the -Primary Component. In the event that you need to restart the -entire cluster, identify the most advanced cluster node and -initialize the Primary Component on that node. - -To find the most advanced cluster node, you need to check the -sequence numbers, or the ``seqnos``, on the last committed transaction for -each. You can find this by viewing ``grastate.dat`` file in -database directory: - -.. code-block:: console - - $ cat /path/to/datadir/grastate.dat - - # Galera saved state - version: 3.8 - uuid: 5ee99582-bb8d-11e2-b8e3-23de375c1d30 - seqno: 8204503945773 - -Alternatively, if the database server is running, use the -``wsrep_last_committed`` status variable: - -.. code-block:: mysql - - SHOW STATUS LIKE 'wsrep_last_committed'; - - +----------------------+--------+ - | Variable_name | Value | - +----------------------+--------+ - | wsrep_last_committed | 409745 | - +----------------------+--------+ - -This value increments with each transaction, so the most advanced -node has the highest sequence number and therefore is the most up to date. - -Configuration tips -~~~~~~~~~~~~~~~~~~~ - -Deployment strategies ----------------------- - -Galera can be configured using one of the following -strategies: - -- Each instance has its own IP address: - - OpenStack services are configured with the list of these IP - addresses so they can select one of the addresses from those - available. - -- Galera runs behind HAProxy: - - HAProxy load balances incoming requests and exposes just one IP - address for all the clients. - - Galera synchronous replication guarantees a zero slave lag. The - failover procedure completes once HAProxy detects that the active - back end has gone down and switches to the backup one, which is - then marked as ``UP``. If no back ends are ``UP``, the failover - procedure finishes only when the Galera Cluster has been - successfully reassembled. The SLA is normally no more than 5 - minutes. - -- Use MySQL/Galera in active/passive mode to avoid deadlocks on - ``SELECT ... FOR UPDATE`` type queries (used, for example, by nova - and neutron). This issue is discussed in the following: - - - `IMPORTANT: MySQL Galera does *not* support SELECT ... FOR UPDATE - `_ - - `Understanding reservations, concurrency, and locking in Nova - `_ - -Configuring HAProxy --------------------- - -If you use HAProxy as a load-balancing client to provide access to the -Galera Cluster, as described in the :doc:`controller-ha-haproxy`, you can -use the ``clustercheck`` utility to improve health checks. - -#. Create a configuration file for ``clustercheck`` at - ``/etc/sysconfig/clustercheck``: - - .. code-block:: ini - - MYSQL_USERNAME="clustercheck_user" - MYSQL_PASSWORD="my_clustercheck_password" - MYSQL_HOST="localhost" - MYSQL_PORT="3306" - -.. note:: - For Ubuntu 16.04.1: Create a configuration file for ``clustercheck`` - at ``/etc/default/clustercheck``. - -#. Log in to the database client and grant the ``clustercheck`` user - ``PROCESS`` privileges: - - .. code-block:: mysql - - GRANT PROCESS ON *.* TO 'clustercheck_user'@'localhost' - IDENTIFIED BY 'my_clustercheck_password'; - - FLUSH PRIVILEGES; - - You only need to do this on one cluster node. Galera Cluster - replicates the user to all the others. - -#. Create a configuration file for the HAProxy monitor service, at - ``/etc/xinetd.d/galera-monitor``: - - .. code-block:: none - - service galera-monitor - { - port = 9200 - disable = no - socket_type = stream - protocol = tcp - wait = no - user = root - group = root - groups = yes - server = /usr/bin/clustercheck - type = UNLISTED - per_source = UNLIMITED - log_on_success = - log_on_failure = HOST - flags = REUSE - } - -#. Start the ``xinetd`` daemon for ``clustercheck``. For servers - that use ``init``, run the following commands: - - .. code-block:: console - - # service xinetd enable - # service xinetd start - - For servers that use ``systemd``, run the following commands: - - .. code-block:: console - - # systemctl daemon-reload - # systemctl enable xinetd - # systemctl start xinetd diff --git a/doc/ha-guide/source/shared-database.rst b/doc/ha-guide/source/shared-database.rst deleted file mode 100644 index 6f99515d81..0000000000 --- a/doc/ha-guide/source/shared-database.rst +++ /dev/null @@ -1,32 +0,0 @@ -=============================================== -Database (Galera Cluster) for high availability -=============================================== - -.. toctree:: - :maxdepth: 2 - - shared-database-configure.rst - shared-database-manage.rst - -The first step is to install the database that sits at the heart of the -cluster. To implement high availability, run an instance of the database on -each controller node and use Galera Cluster to provide replication between -them. Galera Cluster is a synchronous multi-master database cluster, based -on MySQL and the InnoDB storage engine. It is a high-availability service -that provides high system uptime, no data loss, and scalability for growth. - -You can achieve high availability for the OpenStack database in many -different ways, depending on the type of database that you want to use. -There are three implementations of Galera Cluster available to you: - -- `Galera Cluster for MySQL `_: The MySQL - reference implementation from Codership, Oy. -- `MariaDB Galera Cluster `_: The MariaDB - implementation of Galera Cluster, which is commonly supported in - environments based on Red Hat distributions. -- `Percona XtraDB Cluster `_: The XtraDB - implementation of Galera Cluster from Percona. - -In addition to Galera Cluster, you can also achieve high availability -through other database options, such as PostgreSQL, which has its own -replication system. diff --git a/doc/ha-guide/source/shared-messaging.rst b/doc/ha-guide/source/shared-messaging.rst deleted file mode 100644 index 4daa882187..0000000000 --- a/doc/ha-guide/source/shared-messaging.rst +++ /dev/null @@ -1,285 +0,0 @@ -======================================= -Messaging service for high availability -======================================= - -An AMQP (Advanced Message Queuing Protocol) compliant message bus is -required for most OpenStack components in order to coordinate the -execution of jobs entered into the system. - -The most popular AMQP implementation used in OpenStack installations -is RabbitMQ. - -RabbitMQ nodes fail over on the application and the infrastructure layers. - -The application layer is controlled by the ``oslo.messaging`` -configuration options for multiple AMQP hosts. If the AMQP node fails, -the application reconnects to the next one configured within the -specified reconnect interval. The specified reconnect interval -constitutes its SLA. - -On the infrastructure layer, the SLA is the time for which RabbitMQ -cluster reassembles. Several cases are possible. The Mnesia keeper -node is the master of the corresponding Pacemaker resource for -RabbitMQ. When it fails, the result is a full AMQP cluster downtime -interval. Normally, its SLA is no more than several minutes. Failure -of another node that is a slave of the corresponding Pacemaker -resource for RabbitMQ results in no AMQP cluster downtime at all. - -Making the RabbitMQ service highly available involves the following steps: - -- :ref:`Install RabbitMQ` - -- :ref:`Configure RabbitMQ for HA queues` - -- :ref:`Configure OpenStack services to use RabbitMQ HA queues - ` - -.. note:: - - Access to RabbitMQ is not normally handled by HAProxy. Instead, - consumers must be supplied with the full list of hosts running - RabbitMQ with ``rabbit_hosts`` and turn on the ``rabbit_ha_queues`` - option. For more information, read the `core issue - `_. - For more detail, read the `history and solution - `_. - -.. _rabbitmq-install: - -Install RabbitMQ -~~~~~~~~~~~~~~~~ - -The commands for installing RabbitMQ are specific to the Linux distribution -you are using. - -For Ubuntu or Debian: - -.. code-block:: console - - # apt-get install rabbitmq-server - -For RHEL, Fedora, or CentOS: - -.. code-block:: console - - # yum install rabbitmq-server - -For openSUSE: - -.. code-block:: console - - # zypper install rabbitmq-server - -For SLES 12: - -.. code-block:: console - - # zypper addrepo -f obs://Cloud:OpenStack:Kilo/SLE_12 Kilo - [Verify the fingerprint of the imported GPG key. See below.] - # zypper install rabbitmq-server - -.. note:: - - For SLES 12, the packages are signed by GPG key 893A90DAD85F9316. - You should verify the fingerprint of the imported GPG key before using it. - - .. code-block:: none - - Key ID: 893A90DAD85F9316 - Key Name: Cloud:OpenStack OBS Project - Key Fingerprint: 35B34E18ABC1076D66D5A86B893A90DAD85F9316 - Key Created: Tue Oct 8 13:34:21 2013 - Key Expires: Thu Dec 17 13:34:21 2015 - -For more information, see the official installation manual for the -distribution: - -- `Debian and Ubuntu `_ -- `RPM based `_ - (RHEL, Fedora, CentOS, openSUSE) - -.. _rabbitmq-configure: - -Configure RabbitMQ for HA queues -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. [TODO: This section should begin with a brief mention -.. about what HA queues are and why they are valuable, etc] - -.. [TODO: replace "currently" with specific release names] - -.. [TODO: Does this list need to be updated? Perhaps we need a table -.. that shows each component and the earliest release that allows it -.. to work with HA queues.] - -The following components/services can work with HA queues: - -- OpenStack Compute -- OpenStack Block Storage -- OpenStack Networking -- Telemetry - -Consider that, while exchanges and bindings survive the loss of individual -nodes, queues and their messages do not because a queue and its contents -are located on one node. If we lose this node, we also lose the queue. - -Mirrored queues in RabbitMQ improve the availability of service since -it is resilient to failures. - -Production servers should run (at least) three RabbitMQ servers for testing -and demonstration purposes, however it is possible to run only two servers. -In this section, we configure two nodes, called ``rabbit1`` and ``rabbit2``. -To build a broker, ensure that all nodes have the same Erlang cookie file. - -.. [TODO: Should the example instead use a minimum of three nodes?] - -#. Stop RabbitMQ and copy the cookie from the first node to each of the - other node(s): - - .. code-block:: console - - # scp /var/lib/rabbitmq/.erlang.cookie root@NODE:/var/lib/rabbitmq/.erlang.cookie - -#. On each target node, verify the correct owner, - group, and permissions of the file :file:`erlang.cookie`: - - .. code-block:: console - - # chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie - # chmod 400 /var/lib/rabbitmq/.erlang.cookie - -#. Start the message queue service on all nodes and configure it to start - when the system boots. On Ubuntu, it is configured by default. - - On CentOS, RHEL, openSUSE, and SLES: - - .. code-block:: console - - # systemctl enable rabbitmq-server.service - # systemctl start rabbitmq-server.service - -#. Verify that the nodes are running: - - .. code-block:: console - - # rabbitmqctl cluster_status - Cluster status of node rabbit@NODE... - [{nodes,[{disc,[rabbit@NODE]}]}, - {running_nodes,[rabbit@NODE]}, - {partitions,[]}] - ...done. - -#. Run the following commands on each node except the first one: - - .. code-block:: console - - # rabbitmqctl stop_app - Stopping node rabbit@NODE... - ...done. - # rabbitmqctl join_cluster rabbit@rabbit1 - # rabbitmqctl start_app - Starting node rabbit@NODE ... - ...done. - -.. note:: - - The default node type is a disc node. In this guide, nodes - join the cluster as disc nodes. Also, nodes can join the cluster - as RAM nodes. For more details about this feature, check - `Clusters with RAM nodes `_. - -#. Verify the cluster status: - - .. code-block:: console - - # rabbitmqctl cluster_status - Cluster status of node rabbit@NODE... - [{nodes,[{disc,[rabbit@rabbit1]},{ram,[rabbit@NODE]}]}, \ - {running_nodes,[rabbit@NODE,rabbit@rabbit1]}] - - If the cluster is working, you can create usernames and passwords - for the queues. - -#. To ensure that all queues except those with auto-generated names - are mirrored across all running nodes, - set the ``ha-mode`` policy key to all - by running the following command on one of the nodes: - - .. code-block:: console - - # rabbitmqctl set_policy ha-all '^(?!amq\.).*' '{"ha-mode": "all"}' - -More information is available in the RabbitMQ documentation: - -- `Highly Available Queues `_ -- `Clustering Guide `_ - -.. note:: - - As another option to make RabbitMQ highly available, RabbitMQ contains the - OCF scripts for the Pacemaker cluster resource agents since version 3.5.7. - It provides the active/active RabbitMQ cluster with mirrored queues. - For more information, see `Auto-configuration of a cluster with - a Pacemaker `_. - -.. _rabbitmq-services: - -Configure OpenStack services to use Rabbit HA queues -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Configure the OpenStack components to use at least two RabbitMQ nodes. - -Use these steps to configurate all services using RabbitMQ: - -#. RabbitMQ HA cluster Transport URL using ``[user:pass@]host:port`` format: - - .. code-block:: ini - - transport_url = rabbit://RABBIT_USER:RABBIT_PASS@rabbit1:5672, - RABBIT_USER:RABBIT_PASS@rabbit2:5672 - - Replace ``RABBIT_USER`` with RabbitMQ username and ``RABBIT_PASS`` with - password for respective RabbitMQ host. For more information, see - `oslo messaging transport - `_. - -#. Retry connecting with RabbitMQ: - - .. code-block:: console - - rabbit_retry_interval=1 - -#. How long to back-off for between retries when connecting to RabbitMQ: - - .. code-block:: console - - rabbit_retry_backoff=2 - -#. Maximum retries with trying to connect to RabbitMQ (infinite by default): - - .. code-block:: console - - rabbit_max_retries=0 - -#. Use durable queues in RabbitMQ: - - .. code-block:: console - - rabbit_durable_queues=true - -#. Use HA queues in RabbitMQ (``x-ha-policy: all``): - - .. code-block:: console - - rabbit_ha_queues=true - -.. note:: - - If you change the configuration from an old set-up - that did not use HA queues, restart the service: - - .. code-block:: console - - # rabbitmqctl stop_app - # rabbitmqctl reset - # rabbitmqctl start_app diff --git a/doc/ha-guide/source/shared-services.rst b/doc/ha-guide/source/shared-services.rst deleted file mode 100644 index 933c807a0a..0000000000 --- a/doc/ha-guide/source/shared-services.rst +++ /dev/null @@ -1,12 +0,0 @@ -=============================== -Configuring the shared services -=============================== - -This chapter describes the shared services for high availability, -such as database, messaging service. - -.. toctree:: - :maxdepth: 2 - - shared-database.rst - shared-messaging.rst diff --git a/doc/ha-guide/source/storage-ha-backend.rst b/doc/ha-guide/source/storage-ha-backend.rst deleted file mode 100644 index f0e8786a2a..0000000000 --- a/doc/ha-guide/source/storage-ha-backend.rst +++ /dev/null @@ -1,59 +0,0 @@ - -.. _storage-ha-backend: - -================ -Storage back end -================ - -An OpenStack environment includes multiple data pools for the VMs: - -- Ephemeral storage is allocated for an instance and is deleted when the - instance is deleted. The Compute service manages ephemeral storage and - by default, Compute stores ephemeral drives as files on local disks on the - compute node. As an alternative, you can use Ceph RBD as the storage back - end for ephemeral storage. - -- Persistent storage exists outside all instances. Two types of persistent - storage are provided: - - - The Block Storage service (cinder) that can use LVM or Ceph RBD as the - storage back end. - - The Image service (glance) that can use the Object Storage service (swift) - or Ceph RBD as the storage back end. - -For more information about configuring storage back ends for -the different storage options, see `Manage volumes -`_ -in the OpenStack Administrator Guide. - -This section discusses ways to protect against data loss in your OpenStack -environment. - -RAID drives ------------ - -Configuring RAID on the hard drives that implement storage protects your data -against a hard drive failure. If the node itself fails, data may be lost. -In particular, all volumes stored on an LVM node can be lost. - -Ceph ----- - -`Ceph RBD `_ is an innately high availability storage back -end. It creates a storage cluster with multiple nodes that communicate with -each other to replicate and redistribute data dynamically. -A Ceph RBD storage cluster provides a single shared set of storage nodes that -can handle all classes of persistent and ephemeral data (glance, cinder, and -nova) that are required for OpenStack instances. - -Ceph RBD provides object replication capabilities by storing Block Storage -volumes as Ceph RBD objects. Ceph RBD ensures that each replica of an object -is stored on a different node. This means that your volumes are protected -against hard drive and node failures, or even the failure of the data center -itself. - -When Ceph RBD is used for ephemeral volumes as well as block and image storage, -it supports `live migration -`_ -of VMs with ephemeral drives. LVM only supports live migration of -volume-backed VMs. diff --git a/doc/ha-guide/source/storage-ha-block.rst b/doc/ha-guide/source/storage-ha-block.rst deleted file mode 100644 index a667a7d942..0000000000 --- a/doc/ha-guide/source/storage-ha-block.rst +++ /dev/null @@ -1,189 +0,0 @@ -================================== -Highly available Block Storage API -================================== - -Cinder provides Block-Storage-as-a-Service suitable for performance -sensitive scenarios such as databases, expandable file systems, or -providing a server with access to raw block level storage. - -Persistent block storage can survive instance termination and can also -be moved across instances like any external storage device. Cinder -also has volume snapshots capability for backing up the volumes. - -Making the Block Storage API service highly available in -active/passive mode involves: - -- :ref:`ha-blockstorage-pacemaker` -- :ref:`ha-blockstorage-configure` -- :ref:`ha-blockstorage-services` - -In theory, you can run the Block Storage service as active/active. -However, because of sufficient concerns, we recommend running -the volume component as active/passive only. - -You can read more about these concerns on the -`Red Hat Bugzilla `_ -and there is a -`psuedo roadmap `_ -for addressing them upstream. - -.. _ha-blockstorage-pacemaker: - -Add Block Storage API resource to Pacemaker -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -On RHEL-based systems, create resources for cinder's systemd agents and create -constraints to enforce startup/shutdown ordering: - -.. code-block:: console - - pcs resource create openstack-cinder-api systemd:openstack-cinder-api --clone interleave=true - pcs resource create openstack-cinder-scheduler systemd:openstack-cinder-scheduler --clone interleave=true - pcs resource create openstack-cinder-volume systemd:openstack-cinder-volume - - pcs constraint order start openstack-cinder-api-clone then openstack-cinder-scheduler-clone - pcs constraint colocation add openstack-cinder-scheduler-clone with openstack-cinder-api-clone - pcs constraint order start openstack-cinder-scheduler-clone then openstack-cinder-volume - pcs constraint colocation add openstack-cinder-volume with openstack-cinder-scheduler-clone - - -If the Block Storage service runs on the same nodes as the other services, -then it is advisable to also include: - -.. code-block:: console - - pcs constraint order start openstack-keystone-clone then openstack-cinder-api-clone - -Alternatively, instead of using systemd agents, download and -install the OCF resource agent: - -.. code-block:: console - - # cd /usr/lib/ocf/resource.d/openstack - # wget https://git.openstack.org/cgit/openstack/openstack-resource-agents/plain/ocf/cinder-api - # chmod a+rx * - -You can now add the Pacemaker configuration for Block Storage API resource. -Connect to the Pacemaker cluster with the :command:`crm configure` command -and add the following cluster resources: - -.. code-block:: none - - primitive p_cinder-api ocf:openstack:cinder-api \ - params config="/etc/cinder/cinder.conf" \ - os_password="secretsecret" \ - os_username="admin" \ - os_tenant_name="admin" \ - keystone_get_token_url="http://10.0.0.11:5000/v2.0/tokens" \ - op monitor interval="30s" timeout="30s" - -This configuration creates ``p_cinder-api``, a resource for managing the -Block Storage API service. - -The command :command:`crm configure` supports batch input, copy and paste the -lines above into your live Pacemaker configuration and then make changes as -required. For example, you may enter ``edit p_ip_cinder-api`` from the -:command:`crm configure` menu and edit the resource to match your preferred -virtual IP address. - -Once completed, commit your configuration changes by entering :command:`commit` -from the :command:`crm configure` menu. Pacemaker then starts the Block Storage -API service and its dependent resources on one of your nodes. - -.. _ha-blockstorage-configure: - -Configure Block Storage API service -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Edit the ``/etc/cinder/cinder.conf`` file. For example, on a RHEL-based system: - -.. code-block:: ini - :linenos: - - [DEFAULT] - # This is the name which we should advertise ourselves as and for - # A/P installations it should be the same everywhere - host = cinder-cluster-1 - - # Listen on the Block Storage VIP - osapi_volume_listen = 10.0.0.11 - - auth_strategy = keystone - control_exchange = cinder - - volume_driver = cinder.volume.drivers.nfs.NfsDriver - nfs_shares_config = /etc/cinder/nfs_exports - nfs_sparsed_volumes = true - nfs_mount_options = v3 - - [database] - connection = mysql+pymysql://cinder:CINDER_DBPASS@10.0.0.11/cinder - max_retries = -1 - - [keystone_authtoken] - # 10.0.0.11 is the Keystone VIP - identity_uri = http://10.0.0.11:5000/ - www_authenticate_uri = http://10.0.0.11:5000/ - admin_tenant_name = service - admin_user = cinder - admin_password = CINDER_PASS - - [oslo_messaging_rabbit] - # Explicitly list the rabbit hosts as it doesn't play well with HAProxy - rabbit_hosts = 10.0.0.12,10.0.0.13,10.0.0.14 - # As a consequence, we also need HA queues - rabbit_ha_queues = True - heartbeat_timeout_threshold = 60 - heartbeat_rate = 2 - -Replace ``CINDER_DBPASS`` with the password you chose for the Block Storage -database. Replace ``CINDER_PASS`` with the password you chose for the -``cinder`` user in the Identity service. - -This example assumes that you are using NFS for the physical storage, which -will almost never be true in a production installation. - -If you are using the Block Storage service OCF agent, some settings will -be filled in for you, resulting in a shorter configuration file: - -.. code-block:: ini - :linenos: - - # We have to use MySQL connection to store data: - connection = mysql+pymysql://cinder:CINDER_DBPASS@10.0.0.11/cinder - # Alternatively, you can switch to pymysql, - # a new Python 3 compatible library and use - # connection = mysql+pymysql://cinder:CINDER_DBPASS@10.0.0.11/cinder - # and be ready when everything moves to Python 3. - # Ref: https://wiki.openstack.org/wiki/PyMySQL_evaluation - - # We bind Block Storage API to the VIP: - osapi_volume_listen = 10.0.0.11 - - # We send notifications to High Available RabbitMQ: - notifier_strategy = rabbit - rabbit_host = 10.0.0.11 - -Replace ``CINDER_DBPASS`` with the password you chose for the Block Storage -database. - -.. _ha-blockstorage-services: - -Configure OpenStack services to use the highly available Block Storage API -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Your OpenStack services must now point their Block Storage API configuration -to the highly available, virtual cluster IP address rather than a Block Storage -API server’s physical IP address as you would for a non-HA environment. - -Create the Block Storage API endpoint with this IP. - -If you are using both private and public IP addresses, create two virtual IPs -and define your endpoint. For example: - -.. code-block:: console - - $ openstack endpoint create volume --region $KEYSTONE_REGION \ - --publicurl 'http://PUBLIC_VIP:8776/v1/%(tenant_id)s' \ - --adminurl 'http://10.0.0.11:8776/v1/%(tenant_id)s' \ - --internalurl 'http://10.0.0.11:8776/v1/%(tenant_id)s' diff --git a/doc/ha-guide/source/storage-ha-file-systems.rst b/doc/ha-guide/source/storage-ha-file-systems.rst deleted file mode 100644 index 11e235812b..0000000000 --- a/doc/ha-guide/source/storage-ha-file-systems.rst +++ /dev/null @@ -1,113 +0,0 @@ -======================================== -Highly available Shared File Systems API -======================================== - -Making the Shared File Systems (manila) API service highly available -in active/passive mode involves: - -- :ref:`ha-sharedfilesystems-pacemaker` -- :ref:`ha-sharedfilesystems-configure` -- :ref:`ha-sharedfilesystems-services` - -.. _ha-sharedfilesystems-pacemaker: - -Add Shared File Systems API resource to Pacemaker -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -#. Download the resource agent to your system: - - .. code-block:: console - - # cd /usr/lib/ocf/resource.d/openstack - # wget https://git.openstack.org/cgit/openstack/openstack-resource-agents/plain/ocf/manila-api - # chmod a+rx * - -#. Add the Pacemaker configuration for the Shared File Systems - API resource. Connect to the Pacemaker cluster with the following - command: - - .. code-block:: console - - # crm configure - - .. note:: - - The :command:`crm configure` supports batch input. Copy and paste - the lines in the next step into your live Pacemaker configuration and then - make changes as required. - - For example, you may enter ``edit p_ip_manila-api`` from the - :command:`crm configure` menu and edit the resource to match your preferred - virtual IP address. - -#. Add the following cluster resources: - - .. code-block:: none - - primitive p_manila-api ocf:openstack:manila-api \ - params config="/etc/manila/manila.conf" \ - os_password="secretsecret" \ - os_username="admin" \ - os_tenant_name="admin" \ - keystone_get_token_url="http://10.0.0.11:5000/v2.0/tokens" \ - op monitor interval="30s" timeout="30s" - - This configuration creates ``p_manila-api``, a resource for managing the - Shared File Systems API service. - -#. Commit your configuration changes by entering the following command - from the :command:`crm configure` menu: - - .. code-block:: console - - # commit - -Pacemaker now starts the Shared File Systems API service and its -dependent resources on one of your nodes. - -.. _ha-sharedfilesystems-configure: - -Configure Shared File Systems API service -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Edit the :file:`/etc/manila/manila.conf` file: - -.. code-block:: ini - :linenos: - - # We have to use MySQL connection to store data: - sql_connection = mysql+pymysql://manila:password@10.0.0.11/manila?charset=utf8 - - # We bind Shared File Systems API to the VIP: - osapi_volume_listen = 10.0.0.11 - - # We send notifications to High Available RabbitMQ: - notifier_strategy = rabbit - rabbit_host = 10.0.0.11 - - -.. _ha-sharedfilesystems-services: - -Configure OpenStack services to use HA Shared File Systems API -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Your OpenStack services must now point their Shared File Systems API -configuration to the highly available, virtual cluster IP address rather than -a Shared File Systems API server’s physical IP address as you would -for a non-HA environment. - -You must create the Shared File Systems API endpoint with this IP. - -If you are using both private and public IP addresses, you should create two -virtual IPs and define your endpoints like this: - -.. code-block:: console - - $ openstack endpoint create --region RegionOne \ - sharev2 public 'http://PUBLIC_VIP:8786/v2/%(tenant_id)s' - - $ openstack endpoint create --region RegionOne \ - sharev2 internal 'http://10.0.0.11:8786/v2/%(tenant_id)s' - - $ openstack endpoint create --region RegionOne \ - sharev2 admin 'http://10.0.0.11:8786/v2/%(tenant_id)s' diff --git a/doc/ha-guide/source/storage-ha-image.rst b/doc/ha-guide/source/storage-ha-image.rst deleted file mode 100644 index 9081a5ebeb..0000000000 --- a/doc/ha-guide/source/storage-ha-image.rst +++ /dev/null @@ -1,141 +0,0 @@ -========================== -Highly available Image API -========================== - -The OpenStack Image service offers a service for discovering, registering, and -retrieving virtual machine images. To make the OpenStack Image API service -highly available in active/passive mode, you must: - -- :ref:`glance-api-pacemaker` -- :ref:`glance-api-configure` -- :ref:`glance-services` - -Prerequisites -~~~~~~~~~~~~~ - -Before beginning, ensure that you are familiar with the -documentation for installing the OpenStack Image API service. -See the *Image service* section in the -`Installation Guides `_, -depending on your distribution. - -.. _glance-api-pacemaker: - -Add OpenStack Image API resource to Pacemaker -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -#. Download the resource agent to your system: - - .. code-block:: console - - # cd /usr/lib/ocf/resource.d/openstack - # wget https://git.openstack.org/cgit/openstack/openstack-resource-agents/plain/ocf/glance-api - # chmod a+rx * - -#. Add the Pacemaker configuration for the OpenStack Image API resource. - Use the following command to connect to the Pacemaker cluster: - - .. code-block:: console - - crm configure - - .. note:: - - The :command:`crm configure` command supports batch input. Copy and paste - the lines in the next step into your live Pacemaker configuration and - then make changes as required. - - For example, you may enter ``edit p_ip_glance-api`` from the - :command:`crm configure` menu and edit the resource to match your - preferred virtual IP address. - -#. Add the following cluster resources: - - .. code-block:: console - - primitive p_glance-api ocf:openstack:glance-api \ - params config="/etc/glance/glance-api.conf" \ - os_password="secretsecret" \ - os_username="admin" os_tenant_name="admin" \ - os_auth_url="http://10.0.0.11:5000/v2.0/" \ - op monitor interval="30s" timeout="30s" - - This configuration creates ``p_glance-api``, a resource for managing the - OpenStack Image API service. - -#. Commit your configuration changes by entering the following command from - the :command:`crm configure` menu: - - .. code-block:: console - - commit - -Pacemaker then starts the OpenStack Image API service and its dependent -resources on one of your nodes. - -.. _glance-api-configure: - -Configure OpenStack Image service API -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Edit the :file:`/etc/glance/glance-api.conf` file -to configure the OpenStack Image service: - -.. code-block:: ini - - # We have to use MySQL connection to store data: - sql_connection=mysql://glance:password@10.0.0.11/glance - # Alternatively, you can switch to pymysql, - # a new Python 3 compatible library and use - # sql_connection=mysql+pymysql://glance:password@10.0.0.11/glance - # and be ready when everything moves to Python 3. - # Ref: https://wiki.openstack.org/wiki/PyMySQL_evaluation - - # We bind OpenStack Image API to the VIP: - bind_host = 10.0.0.11 - - # Connect to OpenStack Image registry service: - registry_host = 10.0.0.11 - - # We send notifications to High Available RabbitMQ: - notifier_strategy = rabbit - rabbit_host = 10.0.0.11 - -[TODO: need more discussion of these parameters] - -.. _glance-services: - -Configure OpenStack services to use the highly available OpenStack Image API -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Your OpenStack services must now point their OpenStack Image API configuration -to the highly available, virtual cluster IP address instead of pointing to the -physical IP address of an OpenStack Image API server as you would in a non-HA -cluster. - -For example, if your OpenStack Image API service IP address is 10.0.0.11 -(as in the configuration explained here), you would use the following -configuration in your :file:`nova.conf` file: - -.. code-block:: ini - - [glance] - # ... - api_servers = 10.0.0.11 - # ... - - -You must also create the OpenStack Image API endpoint with this IP address. -If you are using both private and public IP addresses, create two virtual IP -addresses and define your endpoint. For example: - -.. code-block:: console - - $ openstack endpoint create --region $KEYSTONE_REGION \ - image public http://PUBLIC_VIP:9292 - - $ openstack endpoint create --region $KEYSTONE_REGION \ - image admin http://10.0.0.11:9292 - - $ openstack endpoint create --region $KEYSTONE_REGION \ - image internal http://10.0.0.11:9292 diff --git a/doc/ha-guide/source/storage-ha.rst b/doc/ha-guide/source/storage-ha.rst deleted file mode 100644 index 583b214ef9..0000000000 --- a/doc/ha-guide/source/storage-ha.rst +++ /dev/null @@ -1,20 +0,0 @@ -=================== -Configuring storage -=================== - -.. toctree:: - :maxdepth: 2 - - storage-ha-image.rst - storage-ha-block.rst - storage-ha-file-systems.rst - storage-ha-backend.rst - -Making the Block Storage (cinder) API service highly available in -active/active mode involves: - -* Configuring Block Storage to listen on the VIP address - -* Managing the Block Storage API daemon with the Pacemaker cluster manager - -* Configuring OpenStack services to use this IP address diff --git a/tools/build-all-rst.sh b/tools/build-all-rst.sh index a61038649c..9cdc47668b 100755 --- a/tools/build-all-rst.sh +++ b/tools/build-all-rst.sh @@ -28,12 +28,11 @@ done # PDF targets for Install guides are dealt in build-install-guides-rst.sh PDF_TARGETS=( 'arch-design'\ - 'ha-guide' \ 'image-guide' \ 'install-guide') for guide in arch-design doc-contrib-guide glossary \ - ha-guide ha-guide-draft image-guide install-guide; do + ha-guide-draft image-guide install-guide; do if [[ ${PDF_TARGETS[*]} =~ $guide ]]; then tools/build-rst.sh doc/$guide --build build \ --target $guide $LINKCHECK $PDF_OPTION diff --git a/www/ja/index.html b/www/ja/index.html index d95f5fa0e9..b059ef0edc 100644 --- a/www/ja/index.html +++ b/www/ja/index.html @@ -58,8 +58,6 @@ ネットワークガイド (Mitaka 版) ネットワークガイド (Liberty 版)