From 1510c36ac5df4dd8d998cbdcd3b76347136676c5 Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Fri, 6 May 2016 08:48:37 +0200 Subject: [PATCH] Retire repository Retire repository following the process on retiring an OpenStack repository: http://docs.openstack.org/infra/manual/drivers.html#remove-project-content This removes *all* content and just leaves a single README.rst that explains how to get the content Depends-On: I9f4e21b44c717d11511fea48db54a52103e294b1 Change-Id: I4281697640489a779a3ef82b23174262a0baa3fc --- .gitignore | 24 - .gitreview | 4 - README.rst | 72 +- doc-test.conf | 2 - doc-tools-check-languages.conf | 31 - doc/common/README.txt | 7 - doc/common/app_support.rst | 256 - doc/common/conventions.rst | 47 - doc/common/glossary.rst | 3950 ------ .../source/locale/ja/LC_MESSAGES/common.po | 10567 ---------------- doc/ha-guide/setup.cfg | 30 - doc/ha-guide/setup.py | 30 - doc/ha-guide/source/common | 1 - doc/ha-guide/source/compute-node-ha-api.rst | 12 - doc/ha-guide/source/compute-node-ha.rst | 10 - doc/ha-guide/source/conf.py | 289 - .../source/controller-ha-galera-config.rst | 396 - .../source/controller-ha-galera-install.rst | 275 - .../source/controller-ha-galera-manage.rst | 256 - doc/ha-guide/source/controller-ha-galera.rst | 33 - doc/ha-guide/source/controller-ha-haproxy.rst | 229 - .../source/controller-ha-keystone.rst | 147 - .../source/controller-ha-memcached.rst | 21 - .../source/controller-ha-pacemaker.rst | 633 - .../source/controller-ha-rabbitmq.rst | 310 - .../source/controller-ha-telemetry.rst | 78 - doc/ha-guide/source/controller-ha-vip.rst | 24 - doc/ha-guide/source/controller-ha.rst | 20 - .../figures/Cluster-deployment-collapsed.png | Bin 228626 -> 0 bytes .../figures/Cluster-deployment-segregated.png | Bin 220348 -> 0 bytes .../source/figures/keepalived-arch.jpg | Bin 52834 -> 0 bytes doc/ha-guide/source/hardware-ha-basic.rst | 47 - doc/ha-guide/source/hardware-ha.rst | 15 - doc/ha-guide/source/index.rst | 43 - doc/ha-guide/source/install-ha-memcached.rst | 42 - doc/ha-guide/source/install-ha-ntp.rst | 9 - doc/ha-guide/source/install-ha-os.rst | 24 - doc/ha-guide/source/install-ha.rst | 12 - .../source/intro-ha-arch-keepalived.rst | 96 - .../source/intro-ha-arch-pacemaker.rst | 198 - doc/ha-guide/source/intro-ha-compute.rst | 4 - doc/ha-guide/source/intro-ha-concepts.rst | 213 - doc/ha-guide/source/intro-ha-controller.rst | 62 - doc/ha-guide/source/intro-ha-other.rst | 4 - doc/ha-guide/source/intro-ha-storage.rst | 12 - doc/ha-guide/source/intro-ha.rst | 15 - doc/ha-guide/source/locale/ha-guide.pot | 4261 ------- .../source/locale/ja/LC_MESSAGES/ha-guide.po | 4398 ------- doc/ha-guide/source/networking-ha-dhcp.rst | 17 - doc/ha-guide/source/networking-ha-l3.rst | 37 - doc/ha-guide/source/networking-ha-lbaas.rst | 17 - .../source/networking-ha-metadata.rst | 18 - doc/ha-guide/source/networking-ha.rst | 60 - doc/ha-guide/source/noncore-ha.rst | 4 - doc/ha-guide/source/storage-ha-backend.rst | 85 - doc/ha-guide/source/storage-ha-cinder.rst | 238 - doc/ha-guide/source/storage-ha-glance.rst | 130 - doc/ha-guide/source/storage-ha-manila.rst | 101 - doc/ha-guide/source/storage-ha.rst | 13 - other-requirements.txt | 13 - test-requirements.txt | 9 - tools/build-all-rst.sh | 6 - tools/generatepot-rst.sh | 42 - tox.ini | 76 - 64 files changed, 10 insertions(+), 28065 deletions(-) delete mode 100644 .gitignore delete mode 100644 .gitreview delete mode 100644 doc-test.conf delete mode 100644 doc-tools-check-languages.conf delete mode 100644 doc/common/README.txt delete mode 100644 doc/common/app_support.rst delete mode 100644 doc/common/conventions.rst delete mode 100644 doc/common/glossary.rst delete mode 100644 doc/common/source/locale/ja/LC_MESSAGES/common.po delete mode 100644 doc/ha-guide/setup.cfg delete mode 100644 doc/ha-guide/setup.py delete mode 120000 doc/ha-guide/source/common delete mode 100644 doc/ha-guide/source/compute-node-ha-api.rst 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-galera-config.rst delete mode 100644 doc/ha-guide/source/controller-ha-galera-install.rst delete mode 100644 doc/ha-guide/source/controller-ha-galera-manage.rst delete mode 100644 doc/ha-guide/source/controller-ha-galera.rst delete mode 100644 doc/ha-guide/source/controller-ha-haproxy.rst delete mode 100644 doc/ha-guide/source/controller-ha-keystone.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-rabbitmq.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/figures/Cluster-deployment-collapsed.png delete mode 100644 doc/ha-guide/source/figures/Cluster-deployment-segregated.png delete mode 100644 doc/ha-guide/source/figures/keepalived-arch.jpg delete mode 100644 doc/ha-guide/source/hardware-ha-basic.rst delete mode 100644 doc/ha-guide/source/hardware-ha.rst delete mode 100644 doc/ha-guide/source/index.rst delete mode 100644 doc/ha-guide/source/install-ha-memcached.rst delete mode 100644 doc/ha-guide/source/install-ha-ntp.rst delete mode 100644 doc/ha-guide/source/install-ha-os.rst delete mode 100644 doc/ha-guide/source/install-ha.rst delete mode 100644 doc/ha-guide/source/intro-ha-arch-keepalived.rst delete mode 100644 doc/ha-guide/source/intro-ha-arch-pacemaker.rst delete mode 100644 doc/ha-guide/source/intro-ha-compute.rst delete mode 100644 doc/ha-guide/source/intro-ha-concepts.rst delete mode 100644 doc/ha-guide/source/intro-ha-controller.rst delete mode 100644 doc/ha-guide/source/intro-ha-other.rst delete mode 100644 doc/ha-guide/source/intro-ha-storage.rst delete mode 100644 doc/ha-guide/source/intro-ha.rst delete mode 100644 doc/ha-guide/source/locale/ha-guide.pot delete mode 100644 doc/ha-guide/source/locale/ja/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-lbaas.rst delete mode 100644 doc/ha-guide/source/networking-ha-metadata.rst delete mode 100644 doc/ha-guide/source/networking-ha.rst delete mode 100644 doc/ha-guide/source/noncore-ha.rst delete mode 100644 doc/ha-guide/source/storage-ha-backend.rst delete mode 100644 doc/ha-guide/source/storage-ha-cinder.rst delete mode 100644 doc/ha-guide/source/storage-ha-glance.rst delete mode 100644 doc/ha-guide/source/storage-ha-manila.rst delete mode 100644 doc/ha-guide/source/storage-ha.rst delete mode 100644 other-requirements.txt delete mode 100644 test-requirements.txt delete mode 100755 tools/build-all-rst.sh delete mode 100755 tools/generatepot-rst.sh delete mode 100644 tox.ini diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 762e1683..00000000 --- a/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -.DS_Store -*.xpr - -# Packages -.venv -*.egg -*.egg-info - -# Build directories -target/ -publish-docs/ -build/ -/build-*.log.gz - -# Testenvironment -.tox/ - -# Transifex Client Setting -.tx - -# Editors -*~ -.*.swp -.bak diff --git a/.gitreview b/.gitreview deleted file mode 100644 index ebfed28e..00000000 --- a/.gitreview +++ /dev/null @@ -1,4 +0,0 @@ -[gerrit] -host=review.openstack.org -port=29418 -project=openstack/ha-guide.git diff --git a/README.rst b/README.rst index 1fc53151..cd0f8453 100644 --- a/README.rst +++ b/README.rst @@ -1,65 +1,13 @@ -OpenStack High Availability Guide -+++++++++++++++++++++++++++++++++ +This project is no longer maintained. -This repository contains the OpenStack High Availability Guide. +The contents of this repository are still available in the Git +source code management system. To see the contents of this +repository before it reached its end of life, please check out the +previous commit with "git checkout HEAD^1". -For more details, see the `OpenStack Documentation wiki page -`_. +The content has been merged into the openstack-manuals repository at +http://git.openstack.org/cgit/openstack/openstack-manuals/ -Building -======== - -The root directory of the *OpenStack High Availability Guide* -is ``doc/ha-guide``. - -To build the guide, run ``tox -e docs``. - -Testing of changes and building of the manual -============================================= - -Install the python tox package and run ``tox`` from the top-level -directory to use the same tests that are done as part of our Jenkins -gating jobs. - -If you like to run individual tests, run: - - * ``tox -e checkniceness`` - to run the niceness tests - * ``tox -e checkbuild`` - to actually build the manual - -tox will use the openstack-doc-tools package for execution of these -tests. - - -Contributing -============ - -Our community welcomes all people interested in open source cloud -computing, and encourages you to join the `OpenStack Foundation -`_. - -The best way to get involved with the community is to talk with others -online or at a meet up and offer contributions through our processes, -the `OpenStack wiki `_, blogs, or on IRC at -``#openstack`` on ``irc.freenode.net``. - -We welcome all types of contributions, from blueprint designs to -documentation to testing to deployment scripts. - -If you would like to contribute to the documents, please see the -`OpenStack Documentation Contributor Guide -`_. - - -Bugs -==== - -Bugs should be filed on Launchpad, not GitHub: - - https://bugs.launchpad.net/openstack-manuals - - -Installing -========== - -Refer to http://docs.openstack.org to see where these documents are published -and to learn more about the OpenStack project. +For any further questions, please email +openstack-docs@lists.openstack.org or join #openstack-doc on +Freenode. diff --git a/doc-test.conf b/doc-test.conf deleted file mode 100644 index c1851fa1..00000000 --- a/doc-test.conf +++ /dev/null @@ -1,2 +0,0 @@ -[DEFAULT] -repo_name = ha-guide diff --git a/doc-tools-check-languages.conf b/doc-tools-check-languages.conf deleted file mode 100644 index 30d30e04..00000000 --- a/doc-tools-check-languages.conf +++ /dev/null @@ -1,31 +0,0 @@ -# Configuration for translation setup. - -# directories to be set up -declare -A DIRECTORIES=( -) - -# books to be built -declare -A BOOKS=( - ["ja"]="ha-guide" -) - -# draft books -declare -A DRAFTS=( - ["ja"]="ha-guide" -) - -# Where does the top-level pom live? -# Set to empty to not copy it. -POM_FILE="" - -# Location of doc dir -DOC_DIR="doc/" - -# Books with special handling -# Values need to match content in project-config/jenkins/scripts/common_translation_update.sh -declare -A SPECIAL_BOOKS -SPECIAL_BOOKS=( - ["ha-guide"]="RST" - # These are translated in openstack-manuals - ["common"]="skip" -) diff --git a/doc/common/README.txt b/doc/common/README.txt deleted file mode 100644 index f46538ad..00000000 --- a/doc/common/README.txt +++ /dev/null @@ -1,7 +0,0 @@ -Important note about this directory -=================================== - -Because this directory is synced from openstack-manuals, make any changes in -openstack-manuals/doc/common. After changes to the synced files merge to -openstack-manuals/doc/common, a patch is automatically proposed for this -directory. diff --git a/doc/common/app_support.rst b/doc/common/app_support.rst deleted file mode 100644 index 79ca3ad3..00000000 --- a/doc/common/app_support.rst +++ /dev/null @@ -1,256 +0,0 @@ -.. ## WARNING ########################################################## -.. This file is synced from openstack/openstack-manuals repository to -.. other related repositories. If you need to make changes to this file, -.. make the changes in openstack-manuals. After any change merged to, -.. openstack-manuals, automatically a patch for others will be proposed. -.. ##################################################################### - -================= -Community support -================= - -The following resources are available to help you run and use OpenStack. -The OpenStack community constantly improves and adds to the main -features of OpenStack, but if you have any questions, do not hesitate to -ask. Use the following resources to get OpenStack support, and -troubleshoot your installations. - -Documentation -~~~~~~~~~~~~~ - -For the available OpenStack documentation, see -`docs.openstack.org `__. - -To provide feedback on documentation, join and use the -openstack-docs@lists.openstack.org mailing list at `OpenStack -Documentation Mailing -List `__, -or `report a -bug `__. - -The following books explain how to install an OpenStack cloud and its -associated components: - -* `Installation Guide for openSUSE Leap 42.1 and SUSE Linux Enterprise - Server 12 SP1 - `__ - -* `Installation Guide for Red Hat Enterprise Linux 7 and CentOS 7 - `__ - -* `Installation Guide for Ubuntu 14.04 (LTS) - `__ - -The following books explain how to configure and run an OpenStack cloud: - -* `Architecture Design Guide `__ - -* `Administrator Guide `__ - -* `Configuration Reference `__ - -* `Operations Guide `__ - -* `Networking Guide `__ - -* `High Availability Guide `__ - -* `Security Guide `__ - -* `Virtual Machine Image Guide `__ - -The following books explain how to use the OpenStack dashboard and -command-line clients: - -* `API Guide `__ - -* `End User Guide `__ - -* `Command-Line Interface Reference - `__ - -The following documentation provides reference and guidance information -for the OpenStack APIs: - -* `API Complete Reference - (HTML) `__ - -* `API Complete Reference - (PDF) `__ - -The following guide provides how to contribute to OpenStack documentation: - -* `Documentation Contributor Guide `__ - -ask.openstack.org -~~~~~~~~~~~~~~~~~ - -During the set up or testing of OpenStack, you might have questions -about how a specific task is completed or be in a situation where a -feature does not work correctly. Use the -`ask.openstack.org `__ site to ask questions -and get answers. When you visit the https://ask.openstack.org site, scan -the recently asked questions to see whether your question has already -been answered. If not, ask a new question. Be sure to give a clear, -concise summary in the title and provide as much detail as possible in -the description. Paste in your command output or stack traces, links to -screen shots, and any other information which might be useful. - -OpenStack mailing lists -~~~~~~~~~~~~~~~~~~~~~~~ - -A great way to get answers and insights is to post your question or -problematic scenario to the OpenStack mailing list. You can learn from -and help others who might have similar issues. To subscribe or view the -archives, go to -http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack. If you are -interested in the other mailing lists for specific projects or development, -refer to `Mailing Lists `__. - -The OpenStack wiki -~~~~~~~~~~~~~~~~~~ - -The `OpenStack wiki `__ contains a broad -range of topics but some of the information can be difficult to find or -is a few pages deep. Fortunately, the wiki search feature enables you to -search by title or content. If you search for specific information, such -as about networking or OpenStack Compute, you can find a large amount -of relevant material. More is being added all the time, so be sure to -check back often. You can find the search box in the upper-right corner -of any OpenStack wiki page. - -The Launchpad Bugs area -~~~~~~~~~~~~~~~~~~~~~~~ - -The OpenStack community values your set up and testing efforts and wants -your feedback. To log a bug, you must sign up for a Launchpad account at -https://launchpad.net/+login. You can view existing bugs and report bugs -in the Launchpad Bugs area. Use the search feature to determine whether -the bug has already been reported or already been fixed. If it still -seems like your bug is unreported, fill out a bug report. - -Some tips: - -* Give a clear, concise summary. - -* Provide as much detail as possible in the description. Paste in your - command output or stack traces, links to screen shots, and any other - information which might be useful. - -* Be sure to include the software and package versions that you are - using, especially if you are using a development branch, such as, - ``"Kilo release" vs git commit bc79c3ecc55929bac585d04a03475b72e06a3208``. - -* Any deployment-specific information is helpful, such as whether you - are using Ubuntu 14.04 or are performing a multi-node installation. - -The following Launchpad Bugs areas are available: - -* `Bugs: OpenStack Block Storage - (cinder) `__ - -* `Bugs: OpenStack Compute (nova) `__ - -* `Bugs: OpenStack Dashboard - (horizon) `__ - -* `Bugs: OpenStack Identity - (keystone) `__ - -* `Bugs: OpenStack Image service - (glance) `__ - -* `Bugs: OpenStack Networking - (neutron) `__ - -* `Bugs: OpenStack Object Storage - (swift) `__ - -* `Bugs: Application catalog (murano) `__ - -* `Bugs: Bare metal service (ironic) `__ - -* `Bugs: Clustering service (senlin) `__ - -* `Bugs: Containers service (magnum) `__ - -* `Bugs: Data processing service - (sahara) `__ - -* `Bugs: Database service (trove) `__ - -* `Bugs: Deployment service (fuel) `__ - -* `Bugs: DNS service (designate) `__ - -* `Bugs: Key Manager Service (barbican) `__ - -* `Bugs: Monitoring (monasca) `__ - -* `Bugs: Orchestration (heat) `__ - -* `Bugs: Rating (cloudkitty) `__ - -* `Bugs: Shared file systems (manila) `__ - -* `Bugs: Telemetry - (ceilometer) `__ - -* `Bugs: Telemetry v3 - (gnocchi) `__ - -* `Bugs: Workflow service - (mistral) `__ - -* `Bugs: Messaging service - (zaqar) `__ - -* `Bugs: OpenStack API Documentation - (developer.openstack.org) `__ - -* `Bugs: OpenStack Documentation - (docs.openstack.org) `__ - -The OpenStack IRC channel -~~~~~~~~~~~~~~~~~~~~~~~~~ - -The OpenStack community lives in the #openstack IRC channel on the -Freenode network. You can hang out, ask questions, or get immediate -feedback for urgent and pressing issues. To install an IRC client or use -a browser-based client, go to -`https://webchat.freenode.net/ `__. You can -also use Colloquy (Mac OS X, http://colloquy.info/), mIRC (Windows, -http://www.mirc.com/), or XChat (Linux). When you are in the IRC channel -and want to share code or command output, the generally accepted method -is to use a Paste Bin. The OpenStack project has one at -http://paste.openstack.org. Just paste your longer amounts of text or -logs in the web form and you get a URL that you can paste into the -channel. The OpenStack IRC channel is ``#openstack`` on -``irc.freenode.net``. You can find a list of all OpenStack IRC channels -at https://wiki.openstack.org/wiki/IRC. - -Documentation feedback -~~~~~~~~~~~~~~~~~~~~~~ - -To provide feedback on documentation, join and use the -openstack-docs@lists.openstack.org mailing list at `OpenStack -Documentation Mailing -List `__, -or `report a -bug `__. - -OpenStack distribution packages -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following Linux distributions provide community-supported packages -for OpenStack: - -* **Debian:** https://wiki.debian.org/OpenStack - -* **CentOS, Fedora, and Red Hat Enterprise Linux:** - https://www.rdoproject.org/ - -* **openSUSE and SUSE Linux Enterprise Server:** - https://en.opensuse.org/Portal:OpenStack - -* **Ubuntu:** https://wiki.ubuntu.com/ServerTeam/CloudArchive diff --git a/doc/common/conventions.rst b/doc/common/conventions.rst deleted file mode 100644 index b3cbabb2..00000000 --- a/doc/common/conventions.rst +++ /dev/null @@ -1,47 +0,0 @@ -.. ## WARNING ########################################################## -.. This file is synced from openstack/openstack-manuals repository to -.. other related repositories. If you need to make changes to this file, -.. make the changes in openstack-manuals. After any change merged to, -.. openstack-manuals, automatically a patch for others will be proposed. -.. ##################################################################### - -=========== -Conventions -=========== - -The OpenStack documentation uses several typesetting conventions. - -Notices -~~~~~~~ - -Notices take these forms: - -.. note:: A comment with additional information that explains a part of the - text. - -.. important:: Something you must be aware of before proceeding. - -.. tip:: An extra but helpful piece of practical advice. - -.. caution:: Helpful information that prevents the user from making mistakes. - -.. warning:: Critical information about the risk of data loss or security - issues. - -Command prompts -~~~~~~~~~~~~~~~ - -.. code-block:: console - - $ command - -Any user, including the ``root`` user, can run commands that are -prefixed with the ``$`` prompt. - -.. code-block:: console - - # command - -The ``root`` user must run commands that are prefixed with the ``#`` -prompt. You can also prefix these commands with the :command:`sudo` -command, if available, to run them. diff --git a/doc/common/glossary.rst b/doc/common/glossary.rst deleted file mode 100644 index fe9cbc41..00000000 --- a/doc/common/glossary.rst +++ /dev/null @@ -1,3950 +0,0 @@ -======== -Glossary -======== - -.. comments - This file is automatically generated, edit the master doc/glossary/glossary-terms.xml to update it. - -This glossary offers a list of terms and definitions to define a -vocabulary for OpenStack-related concepts. - -To add to OpenStack glossary, clone the `openstack/openstack-manuals repository `__ and update the source file -``doc/glossary/glossary-terms.xml`` through the -OpenStack contribution process. - -.. glossary:: - - 6to4 - - A mechanism that allows IPv6 packets to be transmitted - over an IPv4 network, providing a strategy for migrating to - IPv6. - - absolute limit - - Impassable limits for guest VMs. Settings include total RAM - size, maximum number of vCPUs, and maximum disk size. - - access control list - - A list of permissions attached to an object. An ACL specifies - which users or system processes have access to objects. It also - defines which operations can be performed on specified objects. Each - entry in a typical ACL specifies a subject and an operation. For - instance, the ACL entry ``(Alice, delete)`` for a file gives - Alice permission to delete the file. - - access key - - Alternative term for an Amazon EC2 access key. See EC2 access - key. - - account - - The Object Storage context of an account. Do not confuse with a - user account from an authentication service, such as Active Directory, - /etc/passwd, OpenLDAP, OpenStack Identity, and so on. - - account auditor - - Checks for missing replicas and incorrect or corrupted objects - in a specified Object Storage account by running queries against the - back-end SQLite database. - - account database - - A SQLite database that contains Object Storage accounts and - related metadata and that the accounts server accesses. - - account reaper - - An Object Storage worker that scans for and deletes account - databases and that the account server has marked for deletion. - - account server - - Lists containers in Object Storage and stores container - information in the account database. - - account service - - An Object Storage component that provides account services such - as list, create, modify, and audit. Do not confuse with OpenStack - Identity service, OpenLDAP, or similar user-account services. - - accounting - - The Compute service provides accounting information through the - event notification and system usage data facilities. - - ACL - - See access control list. - - active/active configuration - - In a high-availability setup with an active/active - configuration, several systems share the load together and if one - fails, the load is distributed to the remaining systems. - - Active Directory - - Authentication and identity service by Microsoft, based on LDAP. - Supported in OpenStack. - - active/passive configuration - - In a high-availability setup with an active/passive - configuration, systems are set up to bring additional resources online - to replace those that have failed. - - address pool - - A group of fixed and/or floating IP addresses that are assigned - to a project and can be used by or assigned to the VM instances in a - project. - - admin API - - A subset of API calls that are accessible to authorized - administrators and are generally not accessible to end users or the - public Internet. They can exist as a separate service (keystone) or - can be a subset of another API (nova). - - administrator - - The person responsible for installing, configuring, - and managing an OpenStack cloud. - - admin server - - In the context of the Identity service, the worker process that - provides access to the admin API. - - Advanced Message Queuing Protocol (AMQP) - - The open standard messaging protocol used by OpenStack - components for intra-service communications, provided by RabbitMQ, - Qpid, or ZeroMQ. - - Advanced RISC Machine (ARM) - - Lower power consumption CPU often found in mobile and embedded - devices. Supported by OpenStack. - - alert - - The Compute service can send alerts through its notification - system, which includes a facility to create custom notification - drivers. Alerts can be sent to and displayed on the horizon - dashboard. - - allocate - - The process of taking a floating IP address from the address - pool so it can be associated with a fixed IP on a guest VM - instance. - - Amazon Kernel Image (AKI) - - Both a VM container format and disk format. Supported by Image - service. - - Amazon Machine Image (AMI) - - Both a VM container format and disk format. Supported by Image - service. - - Amazon Ramdisk Image (ARI) - - Both a VM container format and disk format. Supported by Image - service. - - Anvil - - A project that ports the shell script-based project named - DevStack to Python. - - Apache - - The Apache Software Foundation supports the Apache community of - open-source software projects. These projects provide software - products for the public good. - - Apache License 2.0 - - All OpenStack core projects are provided under the terms of the - Apache License 2.0 license. - - Apache Web Server - - The most common web server software currently used on the - Internet. - - API endpoint - - The daemon, worker, or service that a client communicates with - to access an API. API endpoints can provide any number of services, - such as authentication, sales data, performance meters, Compute VM - commands, census data, and so on. - - API extension - - Custom modules that extend some OpenStack core APIs. - - API extension plug-in - - Alternative term for a Networking plug-in or Networking API - extension. - - API key - - Alternative term for an API token. - - API server - - Any node running a daemon or worker that provides an API - endpoint. - - API token - - Passed to API requests and used by OpenStack to verify that the - client is authorized to run the requested operation. - - API version - - In OpenStack, the API version for a project is part of the URL. - For example, ``example.com/nova/v1/foobar``. - - applet - - A Java program that can be embedded into a web page. - - Application Programming Interface (API) - - A collection of specifications used to access a service, - application, or program. Includes service calls, required parameters - for each call, and the expected return values. - - Application Catalog service - - OpenStack project that provides an application catalog - service so that users can compose and deploy composite - environments on an application abstraction level while - managing the application lifecycle. The code name of the - project is murano. - - application server - - A piece of software that makes available another piece of - software over a network. - - Application Service Provider (ASP) - - Companies that rent specialized applications that help - businesses and organizations provide additional services - with lower cost. - - Address Resolution Protocol (ARP) - - The protocol by which layer-3 IP addresses are resolved into - layer-2 link local addresses. - - arptables - - Tool used for maintaining Address Resolution Protocol packet - filter rules in the Linux kernel firewall modules. Used along with - iptables, ebtables, and ip6tables in Compute to provide firewall - services for VMs. - - associate - - The process associating a Compute floating IP address with a - fixed IP address. - - Asynchronous JavaScript and XML (AJAX) - - A group of interrelated web development techniques used on the - client-side to create asynchronous web applications. Used extensively - in horizon. - - ATA over Ethernet (AoE) - - A disk storage protocol tunneled within Ethernet. - - attach - - The process of connecting a VIF or vNIC to a L2 network in - Networking. In the context of Compute, this process connects a storage - volume to an instance. - - attachment (network) - - Association of an interface ID to a logical port. Plugs an - interface into a port. - - auditing - - Provided in Compute through the system usage data - facility. - - auditor - - A worker process that verifies the integrity of Object Storage - objects, containers, and accounts. Auditors is the collective term for - the Object Storage account auditor, container auditor, and object - auditor. - - Austin - - The code name for the initial release of - OpenStack. The first design summit took place in - Austin, Texas, US. - - auth node - - Alternative term for an Object Storage authorization - node. - - authentication - - The process that confirms that the user, process, or client is - really who they say they are through private key, secret token, - password, fingerprint, or similar method. - - authentication token - - A string of text provided to the client after authentication. - Must be provided by the user or process in subsequent requests to the - API endpoint. - - AuthN - - The Identity service component that provides authentication - services. - - authorization - - The act of verifying that a user, process, or client is - authorized to perform an action. - - authorization node - - An Object Storage node that provides authorization - services. - - AuthZ - - The Identity component that provides high-level - authorization services. - - Auto ACK - - Configuration setting within RabbitMQ that enables or disables - message acknowledgment. Enabled by default. - - auto declare - - A Compute RabbitMQ setting that determines whether a message - exchange is automatically created when the program starts. - - availability zone - - An Amazon EC2 concept of an isolated area that is used for fault - tolerance. Do not confuse with an OpenStack Compute zone or - cell. - - AWS - - Amazon Web Services. - - AWS CloudFormation template - - AWS CloudFormation allows AWS users to create and manage a - collection of related resources. The Orchestration service - supports a CloudFormation-compatible format (CFN). - - back end - - Interactions and processes that are obfuscated from the user, - such as Compute volume mount, data transmission to an iSCSI target by - a daemon, or Object Storage object integrity checks. - - back-end catalog - - The storage method used by the Identity service catalog service - to store and retrieve information about API endpoints that are - available to the client. Examples include an SQL database, LDAP - database, or KVS back end. - - back-end store - - The persistent data store used to save and retrieve information - for a service, such as lists of Object Storage objects, current state - of guest VMs, lists of user names, and so on. Also, the method that the - Image service uses to get and store VM images. Options include Object - Storage, local file system, S3, and HTTP. - - backup restore and disaster recovery as a service - - The OpenStack project that provides integrated tooling for - backing up, restoring, and recovering file systems, - instances, or database backups. The project name is freezer. - - bandwidth - - The amount of available data used by communication resources, - such as the Internet. Represents the amount of data that is used to - download things or the amount of data available to download. - - barbican - - Code name of the key management service for OpenStack. - - bare - - An Image service container format that indicates that no - container exists for the VM image. - - Bare Metal service - - OpenStack project that provisions bare metal, as opposed to - virtual, machines. The code name for the project is ironic. - - base image - - An OpenStack-provided image. - - Bell-LaPadula model - - A security model that focuses on data confidentiality - and controlled access to classified information. - This model divide the entities into subjects and objects. - The clearance of a subject is compared to the classification of the - object to determine if the subject is authorized for the specific access mode. - The clearance or classification scheme is expressed in terms of a lattice. - - Benchmark service - - OpenStack project that provides a framework for - performance analysis and benchmarking of individual - OpenStack components as well as full production OpenStack - cloud deployments. The code name of the project is rally. - - Bexar - - A grouped release of projects related to - OpenStack that came out in February of 2011. It - included only Compute (nova) and Object Storage (swift). - Bexar is the code name for the second release of - OpenStack. The design summit took place in - San Antonio, Texas, US, which is the county seat for Bexar county. - - binary - - Information that consists solely of ones and zeroes, which is - the language of computers. - - bit - - A bit is a single digit number that is in base of 2 (either a - zero or one). Bandwidth usage is measured in bits per second. - - bits per second (BPS) - - The universal measurement of how quickly data is transferred - from place to place. - - block device - - A device that moves data in the form of blocks. These device - nodes interface the devices, such as hard disks, CD-ROM drives, flash - drives, and other addressable regions of memory. - - block migration - - A method of VM live migration used by KVM to evacuate instances - from one host to another with very little downtime during a - user-initiated switchover. Does not require shared storage. Supported - by Compute. - - Block Storage service - - The OpenStack core project that enables management of volumes, - volume snapshots, and volume types. The project name of Block Storage - is cinder. - - Block Storage API - - An API on a separate endpoint for attaching, - detaching, and creating block storage for compute - VMs. - - BMC - - Baseboard Management Controller. The intelligence in the IPMI - architecture, which is a specialized micro-controller that is embedded - on the motherboard of a computer and acts as a server. Manages the - interface between system management software and platform - hardware. - - bootable disk image - - A type of VM image that exists as a single, bootable - file. - - Bootstrap Protocol (BOOTP) - - A network protocol used by a network client to obtain an IP - address from a configuration server. Provided in Compute through the - dnsmasq daemon when using either the FlatDHCP manager or VLAN manager - network manager. - - Border Gateway Protocol (BGP) - - The Border Gateway Protocol is a dynamic routing protocol - that connects autonomous systems. Considered the - backbone of the Internet, this protocol connects disparate - networks to form a larger network. - - browser - - Any client software that enables a computer or device to access - the Internet. - - builder file - - Contains configuration information that Object Storage uses to - reconfigure a ring or to re-create it from scratch after a serious - failure. - - bursting - - The practice of utilizing a secondary environment to - elastically build instances on-demand when the primary - environment is resource constrained. - - button class - - A group of related button types within horizon. Buttons to - start, stop, and suspend VMs are in one class. Buttons to associate - and disassociate floating IP addresses are in another class, and so - on. - - byte - - Set of bits that make up a single character; there are usually 8 - bits to a byte. - - CA - - Certificate Authority or Certification Authority. In - cryptography, an entity that issues digital certificates. The digital - certificate certifies the ownership of a public key by the named - subject of the certificate. This enables others (relying parties) to - rely upon signatures or assertions made by the private key that - corresponds to the certified public key. In this model of trust - relationships, a CA is a trusted third party for both the subject - (owner) of the certificate and the party relying upon the certificate. - CAs are characteristic of many public key infrastructure (PKI) - schemes. - - cache pruner - - A program that keeps the Image service VM image cache at or - below its configured maximum size. - - Cactus - - An OpenStack grouped release of projects that came out in the - spring of 2011. It included Compute (nova), Object Storage (swift), - and the Image service (glance). - Cactus is a city in Texas, US and is the code name for - the third release of OpenStack. When OpenStack releases went - from three to six months long, the code name of the release - changed to match a geography nearest the previous - summit. - - CADF - - Cloud Auditing Data Federation (CADF) is a - specification for audit event data. CADF is - supported by OpenStack Identity. - - CALL - - One of the RPC primitives used by the OpenStack message queue - software. Sends a message and waits for a response. - - capability - - Defines resources for a cell, including CPU, storage, and - networking. Can apply to the specific services within a cell or a - whole cell. - - capacity cache - - A Compute back-end database table that contains the current - workload, amount of free RAM, and number of VMs running on each host. - Used to determine on which host a VM starts. - - capacity updater - - A notification driver that monitors VM instances and updates the - capacity cache as needed. - - CAST - - One of the RPC primitives used by the OpenStack message queue - software. Sends a message and does not wait for a response. - - catalog - - A list of API endpoints that are available to a user after - authentication with the Identity service. - - catalog service - - An Identity service that lists API endpoints that are available - to a user after authentication with the Identity service. - - ceilometer - - The project name for the Telemetry service, which is an - integrated project that provides metering and measuring facilities for - OpenStack. - - cell - - Provides logical partitioning of Compute resources in a child - and parent relationship. Requests are passed from parent cells to - child cells if the parent cannot provide the requested - resource. - - cell forwarding - - A Compute option that enables parent cells to pass resource - requests to child cells if the parent cannot provide the requested - resource. - - cell manager - - The Compute component that contains a list of the current - capabilities of each host within the cell and routes requests as - appropriate. - - CentOS - - A Linux distribution that is compatible with OpenStack. - - Ceph - - Massively scalable distributed storage system that consists of - an object store, block store, and POSIX-compatible distributed file - system. Compatible with OpenStack. - - CephFS - - The POSIX-compliant file system provided by Ceph. - - certificate authority - - A simple certificate authority provided by Compute for cloudpipe - VPNs and VM image decryption. - - Challenge-Handshake Authentication Protocol (CHAP) - - An iSCSI authentication method supported by Compute. - - chance scheduler - - A scheduling method used by Compute that randomly chooses an - available host from the pool. - - changes since - - A Compute API parameter that downloads changes to the requested - item since your last request, instead of downloading a new, fresh set - of data and comparing it against the old data. - - Chef - - An operating system configuration management tool supporting - OpenStack deployments. - - child cell - - If a requested resource such as CPU time, disk storage, or - memory is not available in the parent cell, the request is forwarded - to its associated child cells. If the child cell can fulfill the - request, it does. Otherwise, it attempts to pass the request to any of - its children. - - cinder - - A core OpenStack project that provides block storage services - for VMs. - - CirrOS - - A minimal Linux distribution designed for use as a test - image on clouds such as OpenStack. - - Cisco neutron plug-in - - A Networking plug-in for Cisco devices and technologies, - including UCS and Nexus. - - cloud architect - - A person who plans, designs, and oversees the creation of - clouds. - - cloud computing - - A model that enables access to a shared pool of configurable - computing resources, such as networks, servers, storage, applications, - and services, that can be rapidly provisioned and released with - minimal management effort or service provider interaction. - - cloud controller - - Collection of Compute components that represent the global state - of the cloud; talks to services, such as Identity authentication, - Object Storage, and node/storage workers through a - queue. - - cloud controller node - - A node that runs network, volume, API, scheduler, and image - services. Each service may be broken out into separate nodes for - scalability or availability. - - Cloud Data Management Interface (CDMI) - - SINA standard that defines a RESTful API for managing objects in - the cloud, currently unsupported in OpenStack. - - Cloud Infrastructure Management Interface (CIMI) - - An in-progress specification for cloud management. Currently - unsupported in OpenStack. - - cloud-init - - A package commonly installed in VM images that performs - initialization of an instance after boot using information that it - retrieves from the metadata service, such as the SSH public key and - user data. - - cloudadmin - - One of the default roles in the Compute RBAC system. Grants - complete system access. - - Cloudbase-Init - - A Windows project providing guest initialization features, - similar to cloud-init. - - cloudpipe - - A compute service that creates VPNs on a per-project - basis. - - cloudpipe image - - A pre-made VM image that serves as a cloudpipe server. - Essentially, OpenVPN running on Linux. - - Clustering service - - The OpenStack project that OpenStack project that implements - clustering services and libraries for the management of - groups of homogeneous objects exposed by other OpenStack - services. The project name of Clustering service is - senlin. - - CMDB - - Configuration Management Database. - - congress - - OpenStack project that provides the Governance service. - - command filter - - Lists allowed commands within the Compute rootwrap - facility. - - Common Internet File System (CIFS) - - A file sharing protocol. It is a public or open variation of the - original Server Message Block (SMB) protocol developed and used by - Microsoft. Like the SMB protocol, CIFS runs at a higher level and uses - the TCP/IP protocol. - - community project - - A project that is not officially endorsed by the OpenStack - Foundation. If the project is successful enough, it might be elevated - to an incubated project and then to a core project, or it might be - merged with the main code trunk. - - compression - - Reducing the size of files by special encoding, the file can be - decompressed again to its original content. OpenStack supports - compression at the Linux file system level but does not support - compression for things such as Object Storage objects or Image service - VM images. - - Compute service - - The OpenStack core project that provides compute services. The - project name of Compute service is nova. - - Compute API - - The nova-api daemon - provides access to nova services. Can communicate with other APIs, - such as the Amazon EC2 API. - - compute controller - - The Compute component that chooses suitable hosts on which to - start VM instances. - - compute host - - Physical host dedicated to running compute nodes. - - compute node - - A node that runs the nova-compute daemon that manages VM - instances that provide a wide - range of services, such as web applications and analytics. - - Compute service - - Name for the Compute component that manages VMs. - - compute worker - - The Compute component that runs on each compute node and manages - the VM instance lifecycle, including run, reboot, terminate, - attach/detach volumes, and so on. Provided by the nova-compute daemon. - - concatenated object - - A set of segment objects that Object Storage combines and sends - to the client. - - conductor - - In Compute, conductor is the process that proxies database - requests from the compute process. Using conductor improves security - because compute nodes do not need direct access to the - database. - - consistency window - - The amount of time it takes for a new Object Storage object to - become accessible to all clients. - - console log - - Contains the output from a Linux VM console in Compute. - - container - - Organizes and stores objects in Object Storage. Similar to the - concept of a Linux directory but cannot be nested. Alternative term - for an Image service container format. - - container auditor - - Checks for missing replicas or incorrect objects in specified - Object Storage containers through queries to the SQLite back-end - database. - - container database - - A SQLite database that stores Object Storage containers and - container metadata. The container server accesses this - database. - - container format - - A wrapper used by the Image service that contains a VM image and - its associated metadata, such as machine state, OS disk size, and so - on. - - container server - - An Object Storage server that manages containers. - - Containers service - - OpenStack project that provides a set of services for - management of application containers in a multi-tenant cloud - environment. The code name of the project name is magnum. - - container service - - The Object Storage component that provides container services, - such as create, delete, list, and so on. - - content delivery network (CDN) - - A content delivery network is a specialized network that is - used to distribute content to clients, typically located - close to the client for increased performance. - - controller node - - Alternative term for a cloud controller node. - - core API - - Depending on context, the core API is either the OpenStack API - or the main API of a specific core project, such as Compute, - Networking, Image service, and so on. - - core service - - An official OpenStack service defined as core by - DefCore Committee. Currently, consists of - Block Storage service (cinder), Compute service (nova), - Identity service (keystone), Image service (glance), - Networking service (neutron), and Object Storage service (swift). - - cost - - Under the Compute distributed scheduler, this is calculated by - looking at the capabilities of each host relative to the flavor of the - VM instance being requested. - - credentials - - Data that is only known to or accessible by a user and - used to verify that the user is who he says he is. - Credentials are presented to the server during - authentication. Examples include a password, secret key, - digital certificate, and fingerprint. - - Cross-Origin Resource Sharing (CORS) - - A mechanism that allows many resources (for example, - fonts, JavaScript) on a web page to be requested from - another domain outside the domain from which the resource - originated. In particular, JavaScript's AJAX calls can use - the XMLHttpRequest mechanism. - - Crowbar - - An open source community project by Dell that aims to provide - all necessary services to quickly deploy clouds. - - current workload - - An element of the Compute capacity cache that is calculated - based on the number of build, snapshot, migrate, and resize operations - currently in progress on a given host. - - customer - - Alternative term for tenant. - - customization module - - A user-created Python module that is loaded by horizon to change - the look and feel of the dashboard. - - daemon - - A process that runs in the background and waits for requests. - May or may not listen on a TCP or UDP port. Do not confuse with a - worker. - - DAC - - Discretionary access control. Governs the ability of subjects to - access objects, while enabling users to make policy decisions and - assign security attributes. The traditional UNIX system of users, - groups, and read-write-execute permissions is an example of - DAC. - - Dashboard - - The web-based management interface for OpenStack. An alternative - name for horizon. - - data encryption - - Both Image service and Compute support encrypted virtual machine - (VM) images (but not instances). In-transit data encryption is - supported in OpenStack using technologies such as HTTPS, SSL, TLS, and - SSH. Object Storage does not support object encryption at the - application level but may support storage that uses disk encryption. - - database ID - - A unique ID given to each replica of an Object Storage - database. - - database replicator - - An Object Storage component that copies changes in the account, - container, and object databases to other nodes. - - Database service - - An integrated project that provide scalable and reliable - Cloud Database-as-a-Service functionality for both - relational and non-relational database engines. The project - name of Database service is trove. - - Data Processing service - - OpenStack project that provides a scalable - data-processing stack and associated management - interfaces. The code name for the project is sahara. - - data store - - A database engine supported by the Database service. - - deallocate - - The process of removing the association between a floating IP - address and a fixed IP address. Once this association is removed, the - floating IP returns to the address pool. - - Debian - - A Linux distribution that is compatible with OpenStack. - - deduplication - - The process of finding duplicate data at the disk block, file, - and/or object level to minimize storage use—currently unsupported - within OpenStack. - - default panel - - The default panel that is displayed when a user accesses the - horizon dashboard. - - default tenant - - New users are assigned to this tenant if no tenant is specified - when a user is created. - - default token - - An Identity service token that is not associated with a specific - tenant and is exchanged for a scoped token. - - delayed delete - - An option within Image service so that an image is deleted after - a predefined number of seconds instead of immediately. - - delivery mode - - Setting for the Compute RabbitMQ message delivery mode; can be - set to either transient or persistent. - - denial of service (DoS) - - Denial of service (DoS) is a short form for - denial-of-service attack. This is a malicious attempt to - prevent legitimate users from using a service. - - deprecated auth - - An option within Compute that enables administrators to create - and manage users through the ``nova-manage`` command as - opposed to using the Identity service. - - designate - - Code name for the DNS service project for OpenStack. - - Desktop-as-a-Service - - A platform that provides a suite of desktop environments - that users access to receive a desktop experience from - any location. This may provide general use, development, or - even homogeneous testing environments. - - developer - - One of the default roles in the Compute RBAC system and the - default role assigned to a new user. - - device ID - - Maps Object Storage partitions to physical storage - devices. - - device weight - - Distributes partitions proportionately across Object Storage - devices based on the storage capacity of each device. - - DevStack - - Community project that uses shell scripts to quickly build - complete OpenStack development environments. - - DHCP - - Dynamic Host Configuration Protocol. A network protocol that - configures devices that are connected to a network so that they can - communicate on that network by using the Internet Protocol (IP). The - protocol is implemented in a client-server model where DHCP clients - request configuration data, such as an IP address, a default route, - and one or more DNS server addresses from a DHCP server. - - DHCP agent - - OpenStack Networking agent that provides DHCP services - for virtual networks. - - Diablo - - A grouped release of projects related to OpenStack that came out - in the fall of 2011, the fourth release of OpenStack. It included - Compute (nova 2011.3), Object Storage (swift 1.4.3), and the Image - service (glance). - Diablo is the code name for the fourth release of - OpenStack. The design summit took place in - the Bay Area near Santa Clara, - California, US and Diablo is a nearby city. - - direct consumer - - An element of the Compute RabbitMQ that comes to life when a RPC - call is executed. It connects to a direct exchange through a unique - exclusive queue, sends the message, and terminates. - - direct exchange - - A routing table that is created within the Compute RabbitMQ - during RPC calls; one is created for each RPC call that is - invoked. - - direct publisher - - Element of RabbitMQ that provides a response to an incoming MQ - message. - - disassociate - - The process of removing the association between a floating IP - address and fixed IP and thus returning the floating IP address to the - address pool. - - disk encryption - - The ability to encrypt data at the file system, disk partition, - or whole-disk level. Supported within Compute VMs. - - disk format - - The underlying format that a disk image for a VM is stored as - within the Image service back-end store. For example, AMI, ISO, QCOW2, - VMDK, and so on. - - dispersion - - In Object Storage, tools to test and ensure dispersion of - objects and containers to ensure fault tolerance. - - distributed virtual router (DVR) - - Mechanism for highly-available multi-host routing when using - OpenStack Networking (neutron). - - Django - - A web framework used extensively in horizon. - - DNS - - Domain Name System. A hierarchical and distributed naming system - for computers, services, and resources connected to the Internet or a - private network. Associates a human-friendly names to IP - addresses. - - DNS record - - A record that specifies information about a particular domain - and belongs to the domain. - - DNS service - - OpenStack project that provides scalable, on demand, self - service access to authoritative DNS services, in a - technology-agnostic manner. The code name for the project is - designate. - - dnsmasq - - Daemon that provides DNS, DHCP, BOOTP, and TFTP services for - virtual networks. - - domain - - An Identity API v3 entity. Represents a collection of - projects, groups and users that defines administrative boundaries for - managing OpenStack Identity entities. - On the Internet, separates a website from other sites. Often, - the domain name has two or more parts that are separated by dots. - For example, yahoo.com, usa.gov, harvard.edu, or - mail.yahoo.com. - Also, a domain is an entity or container of all DNS-related - information containing one or more records. - - Domain Name System (DNS) - - A system by which Internet domain name-to-address and - address-to-name resolutions are determined. - DNS helps navigate the Internet by translating the IP address - into an address that is easier to remember. For example, translating - 111.111.111.1 into www.yahoo.com. - All domains and their components, such as mail servers, utilize - DNS to resolve to the appropriate locations. DNS servers are usually - set up in a master-slave relationship such that failure of the master - invokes the slave. DNS servers might also be clustered or replicated - such that changes made to one DNS server are automatically propagated - to other active servers. - In Compute, the support that enables associating DNS entries - with floating IP addresses, nodes, or cells so that hostnames are - consistent across reboots. - - download - - The transfer of data, usually in the form of files, from one - computer to another. - - DRTM - - Dynamic root of trust measurement. - - durable exchange - - The Compute RabbitMQ message exchange that remains active when - the server restarts. - - durable queue - - A Compute RabbitMQ message queue that remains active when the - server restarts. - - Dynamic Host Configuration Protocol (DHCP) - - A method to automatically configure networking for a host at - boot time. Provided by both Networking and Compute. - - Dynamic HyperText Markup Language (DHTML) - - Pages that use HTML, JavaScript, and Cascading Style Sheets to - enable users to interact with a web page or show simple - animation. - - east-west traffic - - Network traffic between servers in the same cloud or data center. - See also north-south traffic. - - EBS boot volume - - An Amazon EBS storage volume that contains a bootable VM image, - currently unsupported in OpenStack. - - ebtables - - Filtering tool for a Linux bridging firewall, enabling - filtering of network traffic passing through a Linux bridge. - Used in Compute along with arptables, iptables, and ip6tables - to ensure isolation of network communications. - - EC2 - - The Amazon commercial compute product, similar to - Compute. - - EC2 access key - - Used along with an EC2 secret key to access the Compute EC2 - API. - - EC2 API - - OpenStack supports accessing the Amazon EC2 API through - Compute. - - EC2 Compatibility API - - A Compute component that enables OpenStack to communicate with - Amazon EC2. - - EC2 secret key - - Used along with an EC2 access key when communicating with the - Compute EC2 API; used to digitally sign each request. - - Elastic Block Storage (EBS) - - The Amazon commercial block storage product. - - encryption - - OpenStack supports encryption technologies such as HTTPS, SSH, - SSL, TLS, digital certificates, and data encryption. - - endpoint - - See API endpoint. - - endpoint registry - - Alternative term for an Identity service catalog. - - encapsulation - - The practice of placing one packet type within another for - the purposes of abstracting or securing data. Examples - include GRE, MPLS, or IPsec. - - endpoint template - - A list of URL and port number endpoints that indicate where a - service, such as Object Storage, Compute, Identity, and so on, can be - accessed. - - entity - - Any piece of hardware or software that wants to connect to the - network services provided by Networking, the network connectivity - service. An entity can make use of Networking by implementing a - VIF. - - ephemeral image - - A VM image that does not save changes made to its volumes and - reverts them to their original state after the instance is - terminated. - - ephemeral volume - - Volume that does not save the changes made to it and reverts to - its original state when the current user relinquishes control. - - Essex - - A grouped release of projects related to OpenStack that came out - in April 2012, the fifth release of OpenStack. It included Compute - (nova 2012.1), Object Storage (swift 1.4.8), Image (glance), Identity - (keystone), and Dashboard (horizon). - Essex is the code name for the fifth release of - OpenStack. The design summit took place in - Boston, Massachusetts, US and Essex is a nearby city. - - ESXi - - An OpenStack-supported hypervisor. - - ETag - - MD5 hash of an object within Object Storage, used to ensure data - integrity. - - euca2ools - - A collection of command-line tools for administering VMs; most - are compatible with OpenStack. - - Eucalyptus Kernel Image (EKI) - - Used along with an ERI to create an EMI. - - Eucalyptus Machine Image (EMI) - - VM image container format supported by Image service. - - Eucalyptus Ramdisk Image (ERI) - - Used along with an EKI to create an EMI. - - evacuate - - The process of migrating one or all virtual machine (VM) - instances from one host to another, compatible with both shared - storage live migration and block migration. - - exchange - - Alternative term for a RabbitMQ message exchange. - - exchange type - - A routing algorithm in the Compute RabbitMQ. - - exclusive queue - - Connected to by a direct consumer in RabbitMQ—Compute, the - message can be consumed only by the current connection. - - extended attributes (xattr) - - File system option that enables storage of additional - information beyond owner, group, permissions, modification time, and - so on. The underlying Object Storage file system must support extended - attributes. - - extension - - Alternative term for an API extension or plug-in. In the context - of Identity service, this is a call that is specific to the - implementation, such as adding support for OpenID. - - external network - - A network segment typically used for instance Internet - access. - - extra specs - - Specifies additional requirements when Compute determines where - to start a new instance. Examples include a minimum amount of network - bandwidth or a GPU. - - FakeLDAP - - An easy method to create a local LDAP directory for testing - Identity and Compute. Requires Redis. - - fan-out exchange - - Within RabbitMQ and Compute, it is the messaging interface that - is used by the scheduler service to receive capability messages from - the compute, volume, and network nodes. - - federated identity - - A method to establish trusts between identity providers and the - OpenStack cloud. - - Fedora - - A Linux distribution compatible with OpenStack. - - Fibre Channel - - Storage protocol similar in concept to TCP/IP; encapsulates SCSI - commands and data. - - Fibre Channel over Ethernet (FCoE) - - The fibre channel protocol tunneled within Ethernet. - - fill-first scheduler - - The Compute scheduling method that attempts to fill a host with - VMs rather than starting new VMs on a variety of hosts. - - filter - - The step in the Compute scheduling process when hosts that - cannot run VMs are eliminated and not chosen. - - firewall - - Used to restrict communications between hosts and/or nodes, - implemented in Compute using iptables, arptables, ip6tables, and - ebtables. - - FWaaS - - A Networking extension that provides perimeter firewall - functionality. - - fixed IP address - - An IP address that is associated with the same instance each - time that instance boots, is generally not accessible to end users or - the public Internet, and is used for management of the - instance. - - Flat Manager - - The Compute component that gives IP addresses to authorized - nodes and assumes DHCP, DNS, and routing configuration and services - are provided by something else. - - flat mode injection - - A Compute networking method where the OS network configuration - information is injected into the VM image before the instance - starts. - - flat network - - Virtual network type that uses neither VLANs nor tunnels to - segregate tenant traffic. Each flat network typically requires - a separate underlying physical interface defined by bridge - mappings. However, a flat network can contain multiple - subnets. - - FlatDHCP Manager - - The Compute component that provides dnsmasq (DHCP, DNS, BOOTP, - TFTP) and radvd (routing) services. - - flavor - - Alternative term for a VM instance type. - - flavor ID - - UUID for each Compute or Image service VM flavor or instance - type. - - floating IP address - - An IP address that a project can associate with a VM so that the - instance has the same public IP address each time that it boots. You - create a pool of floating IP addresses and assign them to instances as - they are launched to maintain a consistent IP address for maintaining - DNS assignment. - - Folsom - - A grouped release of projects related to OpenStack that came out - in the fall of 2012, the sixth release of OpenStack. It includes - Compute (nova), Object Storage (swift), Identity (keystone), - Networking (neutron), Image service (glance), and Volumes or Block - Storage (cinder). - Folsom is the code name for the sixth release of - OpenStack. The design summit took place in - San Francisco, California, US and Folsom is a nearby city. - - FormPost - - Object Storage middleware that uploads (posts) an image through - a form on a web page. - - freezer - - OpenStack project that provides backup restore and disaster - recovery as a service. - - front end - - The point where a user interacts with a service; can be an API - endpoint, the horizon dashboard, or a command-line tool. - - gateway - - An IP address, typically assigned to a router, that - passes network traffic between different networks. - - generic receive offload (GRO) - - Feature of certain network interface drivers that - combines many smaller received packets into a large packet - before delivery to the kernel IP stack. - - generic routing encapsulation (GRE) - - Protocol that encapsulates a wide variety of network - layer protocols inside virtual point-to-point links. - - glance - - A core project that provides the OpenStack Image service. - - glance API server - - Processes client requests for VMs, updates Image service - metadata on the registry server, and communicates with the store - adapter to upload VM images from the back-end store. - - glance registry - - Alternative term for the Image service image registry. - - global endpoint template - - The Identity service endpoint template that contains services - available to all tenants. - - GlusterFS - - A file system designed to aggregate NAS hosts, compatible with - OpenStack. - - golden image - - A method of operating system installation where a finalized disk - image is created and then used by all nodes without - modification. - - Governance service - - OpenStack project to provide Governance-as-a-Service across - any collection of cloud services in order to monitor, - enforce, and audit policy over dynamic infrastructure. The - code name for the project is congress. - - Graphic Interchange Format (GIF) - - A type of image file that is commonly used for animated images - on web pages. - - Graphics Processing Unit (GPU) - - Choosing a host based on the existence of a GPU is currently - unsupported in OpenStack. - - Green Threads - - The cooperative threading model used by Python; reduces race - conditions and only context switches when specific library calls are - made. Each OpenStack service is its own thread. - - Grizzly - - The code name for the seventh release of - OpenStack. The design summit took place in - San Diego, California, US and Grizzly is an element of the state flag of - California. - - Group - - An Identity v3 API entity. Represents a collection of users that is - owned by a specific domain. - - guest OS - - An operating system instance running under the control of a - hypervisor. - - Hadoop - - Apache Hadoop is an open source software framework that supports - data-intensive distributed applications. - - Hadoop Distributed File System (HDFS) - - A distributed, highly fault-tolerant file system designed to run - on low-cost commodity hardware. - - handover - - An object state in Object Storage where a new replica of the - object is automatically created due to a drive failure. - - hard reboot - - A type of reboot where a physical or virtual power button is - pressed as opposed to a graceful, proper shutdown of the operating - system. - - Havana - - The code name for the eighth release of OpenStack. The - design summit took place in Portland, Oregon, US and Havana is - an unincorporated community in Oregon. - - heat - - An integrated project that aims to orchestrate multiple cloud - applications for OpenStack. - - Heat Orchestration Template (HOT) - - Heat input in the format native to OpenStack. - - health monitor - - Determines whether back-end members of a VIP pool can - process a request. A pool can have several health monitors - associated with it. When a pool has several monitors - associated with it, all monitors check each member of the - pool. All monitors must declare a member to be healthy for - it to stay active. - - high availability (HA) - - A high availability system design approach and associated - service implementation ensures that a prearranged level of - operational performance will be met during a contractual - measurement period. High availability systems seeks to - minimize system downtime and data loss. - - horizon - - OpenStack project that provides a dashboard, which is a web - interface. - - horizon plug-in - - A plug-in for the OpenStack dashboard (horizon). - - host - - A physical computer, not a VM instance (node). - - host aggregate - - A method to further subdivide availability zones into hypervisor - pools, a collection of common hosts. - - Host Bus Adapter (HBA) - - Device plugged into a PCI slot, such as a fibre channel or - network card. - - hybrid cloud - - A hybrid cloud is a composition of two or more clouds - (private, community or public) that remain distinct entities - but are bound together, offering the benefits of multiple - deployment models. Hybrid cloud can also mean the ability - to connect colocation, managed and/or dedicated services - with cloud resources. - - Hyper-V - - One of the hypervisors supported by OpenStack. - - hyperlink - - Any kind of text that contains a link to some other site, - commonly found in documents where clicking on a word or words opens up - a different website. - - Hypertext Transfer Protocol (HTTP) - - An application protocol for distributed, collaborative, - hypermedia information systems. It is the foundation of data - communication for the World Wide Web. Hypertext is structured - text that uses logical links (hyperlinks) between nodes containing - text. HTTP is the protocol to exchange or transfer hypertext. - - Hypertext Transfer Protocol Secure (HTTPS) - - An encrypted communications protocol for secure communication - over a computer network, with especially wide deployment on the - Internet. Technically, it is not a protocol in and of itself; - rather, it is the result of simply layering the Hypertext Transfer - Protocol (HTTP) on top of the TLS or SSL protocol, thus adding the - security capabilities of TLS or SSL to standard HTTP communications. - most OpenStack API endpoints and many inter-component communications - support HTTPS communication. - - hypervisor - - Software that arbitrates and controls VM access to the actual - underlying hardware. - - hypervisor pool - - A collection of hypervisors grouped together through host - aggregates. - - IaaS - - Infrastructure-as-a-Service. IaaS is a provisioning model in - which an organization outsources physical components of a data center, - such as storage, hardware, servers, and networking components. A - service provider owns the equipment and is responsible for housing, - operating and maintaining it. The client typically pays on a per-use - basis. IaaS is a model for providing cloud services. - - Icehouse - - The code name for the ninth release of OpenStack. The - design summit took place in Hong Kong and Ice House is a - street in that city. - - ICMP - - Internet Control Message Protocol, used by network - devices for control messages. For example, - :command:`ping` uses ICMP to test - connectivity. - - ID number - - Unique numeric ID associated with each user in Identity, - conceptually similar to a Linux or LDAP UID. - - Identity API - - Alternative term for the Identity service API. - - Identity back end - - The source used by Identity service to retrieve user - information; an OpenLDAP server, for example. - - identity provider - - A directory service, which allows users to login with a user - name and password. It is a typical source of authentication - tokens. - - Identity service - - The OpenStack core project that provides a central directory of - users mapped to the OpenStack services they can access. It also - registers endpoints for OpenStack services. It acts as a common - authentication system. The project name of Identity is - keystone. - - Identity service API - - The API used to access the OpenStack Identity service provided - through keystone. - - IDS - - Intrusion Detection System. - - image - - A collection of files for a specific operating system (OS) that - you use to create or rebuild a server. OpenStack provides pre-built - images. You can also create custom images, or snapshots, from servers - that you have launched. Custom images can be used for data backups or - as "gold" images for additional servers. - - Image API - - The Image service API endpoint for management of VM - images. - - image cache - - Used by Image service to obtain images on the local host rather - than re-downloading them from the image server each time one is - requested. - - image ID - - Combination of a URI and UUID used to access Image service VM - images through the image API. - - image membership - - A list of tenants that can access a given VM image within Image - service. - - image owner - - The tenant who owns an Image service virtual machine - image. - - image registry - - A list of VM images that are available through Image - service. - - Image service - - An OpenStack core project that provides discovery, registration, - and delivery services for disk and server images. The project name of - the Image service is glance. - - Image service API - - Alternative name for the glance image API. - - image status - - The current status of a VM image in Image service, not to be - confused with the status of a running instance. - - image store - - The back-end store used by Image service to store VM images, - options include Object Storage, local file system, S3, or HTTP. - - image UUID - - UUID used by Image service to uniquely identify each VM - image. - - incubated project - - A community project may be elevated to this status and is then - promoted to a core project. - - ingress filtering - - The process of filtering incoming network traffic. Supported by - Compute. - - INI - - The OpenStack configuration files use an INI format to - describe options and their values. It consists of sections - and key value pairs. - - injection - - The process of putting a file into a virtual machine image - before the instance is started. - - instance - - A running VM, or a VM in a known state such as suspended, that - can be used like a hardware server. - - instance ID - - Alternative term for instance UUID. - - instance state - - The current state of a guest VM image. - - instance tunnels network - - A network segment used for instance traffic tunnels - between compute nodes and the network node. - - instance type - - Describes the parameters of the various virtual machine images - that are available to users; includes parameters such as CPU, storage, - and memory. Alternative term for flavor. - - instance type ID - - Alternative term for a flavor ID. - - instance UUID - - Unique ID assigned to each guest VM instance. - - interface - - A physical or virtual device that provides connectivity - to another device or medium. - - interface ID - - Unique ID for a Networking VIF or vNIC in the form of a - UUID. - - Internet protocol (IP) - - Principal communications protocol in the internet protocol - suite for relaying datagrams across network boundaries. - - Internet Service Provider (ISP) - - Any business that provides Internet access to individuals or - businesses. - - Internet Small Computer System Interface (iSCSI) - - Storage protocol that encapsulates SCSI frames for transport - over IP networks. - - ironic - - OpenStack project that provisions bare metal, as opposed to - virtual, machines. - - IOPS - - IOPS (Input/Output Operations Per Second) are a common - performance measurement used to benchmark computer storage - devices like hard disk drives, solid state drives, and - storage area networks. - - IP address - - Number that is unique to every computer system on the Internet. - Two versions of the Internet Protocol (IP) are in use for addresses: - IPv4 and IPv6. - - IP Address Management (IPAM) - - The process of automating IP address allocation, deallocation, - and management. Currently provided by Compute, melange, and - Networking. - - IPL - - Initial Program Loader. - - IPMI - - Intelligent Platform Management Interface. IPMI is a - standardized computer system interface used by system administrators - for out-of-band management of computer systems and monitoring of their - operation. In layman's terms, it - is a way to manage a computer using a direct network connection, - whether it is turned on or not; connecting to the hardware rather than - an operating system or login shell. - - ip6tables - - Tool used to set up, maintain, and inspect the tables of IPv6 - packet filter rules in the Linux kernel. In OpenStack Compute, - ip6tables is used along with arptables, ebtables, and iptables to - create firewalls for both nodes and VMs. - - ipset - - Extension to iptables that allows creation of firewall rules - that match entire "sets" of IP addresses simultaneously. These - sets reside in indexed data structures to increase efficiency, - particularly on systems with a large quantity of rules. - - iptables - - Used along with arptables and ebtables, iptables create - firewalls in Compute. iptables are the tables provided by the Linux - kernel firewall (implemented as different Netfilter modules) and the - chains and rules it stores. Different kernel modules and programs are - currently used for different protocols: iptables applies to IPv4, - ip6tables to IPv6, arptables to ARP, and ebtables to Ethernet frames. - Requires root privilege to manipulate. - - IQN - - iSCSI Qualified Name (IQN) is the format most commonly used - for iSCSI names, which uniquely identify nodes in an iSCSI network. - All IQNs follow the pattern iqn.yyyy-mm.domain:identifier, where - 'yyyy-mm' is the year and month in which the domain was registered, - 'domain' is the reversed domain name of the issuing organization, and - 'identifier' is an optional string which makes each IQN under the same - domain unique. For example, 'iqn.2015-10.org.openstack.408ae959bce1'. - - iSCSI - - The SCSI disk protocol tunneled within Ethernet, supported by - Compute, Object Storage, and Image service. - - ISO9660 - - One of the VM image disk formats supported by Image - service. - - itsec - - A default role in the Compute RBAC system that can quarantine an - instance in any project. - - Java - - A programming language that is used to create systems that - involve more than one computer by way of a network. - - JavaScript - - A scripting language that is used to build web pages. - - JavaScript Object Notation (JSON) - - One of the supported response formats in OpenStack. - - Jenkins - - Tool used to run jobs automatically for OpenStack - development. - - jumbo frame - - Feature in modern Ethernet networks that supports frames up to - approximately 9000 bytes. - - Juno - - The code name for the tenth release of OpenStack. The - design summit took place in Atlanta, Georgia, US and Juno is - an unincorporated community in Georgia. - - Kerberos - - A network authentication protocol which works on the basis of - tickets. Kerberos allows nodes communication over a non-secure - network, and allows nodes to prove their identity to one another in a - secure manner. - - kernel-based VM (KVM) - - An OpenStack-supported hypervisor. KVM is a full - virtualization solution for Linux on x86 hardware containing - virtualization extensions (Intel VT or AMD-V), ARM, IBM - Power, and IBM zSeries. It consists of a loadable kernel - module, that provides the core virtualization infrastructure - and a processor specific module. - - Key Manager service - - OpenStack project that produces a secret storage and - generation system capable of providing key management for - services wishing to enable encryption features. The code name - of the project is barbican. - - keystone - - The project that provides OpenStack Identity services. - - Kickstart - - A tool to automate system configuration and installation on Red - Hat, Fedora, and CentOS-based Linux distributions. - - Kilo - - The code name for the eleventh release of OpenStack. The - design summit took place in Paris, France. Due to delays in the name - selection, the release was known only as K. Because ``k`` is the - unit symbol for kilo and the reference artifact is stored near Paris - in the Pavillon de Breteuil in Sèvres, the community chose Kilo as - the release name. - - large object - - An object within Object Storage that is larger than 5 GB. - - Launchpad - - The collaboration site for OpenStack. - - Layer-2 network - - Term used in the OSI network architecture for the data link - layer. The data link layer is responsible for media access - control, flow control and detecting and possibly correcting - errors that may occur in the physical layer. - - Layer-3 network - - Term used in the OSI network architecture for the network - layer. The network layer is responsible for packet - forwarding including routing from one node to another. - - Layer-2 (L2) agent - - OpenStack Networking agent that provides layer-2 - connectivity for virtual networks. - - Layer-3 (L3) agent - - OpenStack Networking agent that provides layer-3 - (routing) services for virtual networks. - - Liberty - - The code name for the twelfth release of OpenStack. The - design summit took place in Vancouver, Canada and Liberty is - the name of a village in the Canadian province of - Saskatchewan. - - libvirt - - Virtualization API library used by OpenStack to interact with - many of its supported hypervisors. - - Lightweight Directory Access Protocol (LDAP) - - An application protocol for accessing and maintaining distributed - directory information services over an IP network. - - Linux bridge - - Software that enables multiple VMs to share a single physical - NIC within Compute. - - Linux Bridge neutron plug-in - - Enables a Linux bridge to understand a Networking port, - interface attachment, and other abstractions. - - Linux containers (LXC) - - An OpenStack-supported hypervisor. - - live migration - - The ability within Compute to move running virtual machine - instances from one host to another with only a small service - interruption during switchover. - - load balancer - - A load balancer is a logical device that belongs to a cloud - account. It is used to distribute workloads between multiple back-end - systems or services, based on the criteria defined as part of its - configuration. - - load balancing - - The process of spreading client requests between two or more - nodes to improve performance and availability. - - LBaaS - - Enables Networking to distribute incoming requests evenly - between designated instances. - - Logical Volume Manager (LVM) - - Provides a method of allocating space on mass-storage - devices that is more flexible than conventional partitioning - schemes. - - magnum - - Code name for the OpenStack project that provides the - Containers Service. - - management API - - Alternative term for an admin API. - - management network - - A network segment used for administration, not accessible to the - public Internet. - - manager - - Logical groupings of related code, such as the Block Storage - volume manager or network manager. - - manifest - - Used to track segments of a large object within Object - Storage. - - manifest object - - A special Object Storage object that contains the manifest for a - large object. - - manila - - OpenStack project that provides shared file systems as - service to applications. - - maximum transmission unit (MTU) - - Maximum frame or packet size for a particular network - medium. Typically 1500 bytes for Ethernet networks. - - mechanism driver - - A driver for the Modular Layer 2 (ML2) neutron plug-in that - provides layer-2 connectivity for virtual instances. A - single OpenStack installation can use multiple mechanism - drivers. - - melange - - Project name for OpenStack Network Information Service. To be - merged with Networking. - - membership - - The association between an Image service VM image and a tenant. - Enables images to be shared with specified tenants. - - membership list - - A list of tenants that can access a given VM image within Image - service. - - memcached - - A distributed memory object caching system that is used by - Object Storage for caching. - - memory overcommit - - The ability to start new VM instances based on the actual memory - usage of a host, as opposed to basing the decision on the amount of - RAM each running instance thinks it has available. Also known as RAM - overcommit. - - message broker - - The software package used to provide AMQP messaging capabilities - within Compute. Default package is RabbitMQ. - - message bus - - The main virtual communication line used by all AMQP messages - for inter-cloud communications within Compute. - - message queue - - Passes requests from clients to the appropriate workers and - returns the output to the client after the job completes. - - Message service - - OpenStack project that aims to produce an OpenStack - messaging service that affords a variety of distributed - application patterns in an efficient, scalable and - highly-available manner, and to create and maintain associated - Python libraries and documentation. The code name for the - project is zaqar. - - Metadata agent - - OpenStack Networking agent that provides metadata - services for instances. - - Meta-Data Server (MDS) - - Stores CephFS metadata. - - migration - - The process of moving a VM instance from one host to - another. - - mistral - - OpenStack project that provides the Workflow service. - - Mitaka - - The code name for the thirteenth release of OpenStack. - The design summit took place in Tokyo, Japan. Mitaka - is a city in Tokyo. - - monasca - - OpenStack project that provides a Monitoring service. - - multi-host - - High-availability mode for legacy (nova) networking. - Each compute node handles NAT and DHCP and acts as a gateway - for all of the VMs on it. A networking failure on one compute - node doesn't affect VMs on other compute nodes. - - multinic - - Facility in Compute that allows each virtual machine instance to - have more than one VIF connected to it. - - murano - - OpenStack project that provides an Application catalog. - - Modular Layer 2 (ML2) neutron plug-in - - Can concurrently use multiple layer-2 networking technologies, - such as 802.1Q and VXLAN, in Networking. - - Monitor (LBaaS) - - LBaaS feature that provides availability monitoring using the - ``ping`` command, TCP, and HTTP/HTTPS GET. - - Monitor (Mon) - - A Ceph component that communicates with external clients, checks - data state and consistency, and performs quorum functions. - - Monitoring - - The OpenStack project that provides a multi-tenant, highly - scalable, performant, fault-tolerant Monitoring-as-a-Service - solution for metrics, complex event processing, and logging. - It builds an extensible platform for advanced monitoring - services that can be used by both operators and tenants to - gain operational insight and visibility, ensuring - availability and stability. The project name is monasca. - - multi-factor authentication - - Authentication method that uses two or more credentials, such as - a password and a private key. Currently not supported in - Identity. - - MultiNic - - Facility in Compute that enables a virtual machine instance to - have more than one VIF connected to it. - - Nebula - - Released as open source by NASA in 2010 and is the basis for - Compute. - - netadmin - - One of the default roles in the Compute RBAC system. Enables the - user to allocate publicly accessible IP addresses to instances and - change firewall rules. - - NetApp volume driver - - Enables Compute to communicate with NetApp storage devices - through the NetApp OnCommand - Provisioning Manager. - - network - - A virtual network that provides connectivity between entities. - For example, a collection of virtual ports that share network - connectivity. In Networking terminology, a network is always a layer-2 - network. - - NAT - - Network Address Translation; Process of modifying IP address - information while in transit. Supported by Compute and - Networking. - - network controller - - A Compute daemon that orchestrates the network configuration of - nodes, including IP addresses, VLANs, and bridging. Also manages - routing for both public and private networks. - - Network File System (NFS) - - A method for making file systems available over the network. - Supported by OpenStack. - - network ID - - Unique ID assigned to each network segment within Networking. - Same as network UUID. - - network manager - - The Compute component that manages various network components, - such as firewall rules, IP address allocation, and so on. - - network namespace - - Linux kernel feature that provides independent virtual - networking instances on a single host with separate routing - tables and interfaces. Similar to virtual routing and forwarding - (VRF) services on physical network equipment. - - network node - - Any compute node that runs the network worker daemon. - - network segment - - Represents a virtual, isolated OSI layer-2 subnet in - Networking. - - Newton - - The code name for the fourteenth release of OpenStack. The - design summit took place in Austin, Texas, US. The - release is named after "Newton House" which is located at - 1013 E. Ninth St., Austin, TX. which is listed on the - National Register of Historic Places. - - NTP - - Network Time Protocol; Method of keeping a clock for a host or - node correct via communication with a trusted, accurate time - source. - - network UUID - - Unique ID for a Networking network segment. - - network worker - - The ``nova-network`` worker daemon; provides - services such as giving an IP address to a booting nova - instance. - - Networking service - - A core OpenStack project that provides a network connectivity - abstraction layer to OpenStack Compute. The project name of Networking - is neutron. - - Networking API - - API used to access OpenStack Networking. Provides an extensible - architecture to enable custom plug-in creation. - - neutron - - A core OpenStack project that provides a network connectivity - abstraction layer to OpenStack Compute. - - neutron API - - An alternative name for Networking API. - - neutron manager - - Enables Compute and Networking integration, which enables - Networking to perform network management for guest VMs. - - neutron plug-in - - Interface within Networking that enables organizations to create - custom plug-ins for advanced features, such as QoS, ACLs, or - IDS. - - Nexenta volume driver - - Provides support for NexentaStor devices in Compute. - - No ACK - - Disables server-side message acknowledgment in the Compute - RabbitMQ. Increases performance but decreases reliability. - - node - - A VM instance that runs on a host. - - non-durable exchange - - Message exchange that is cleared when the service restarts. Its - data is not written to persistent storage. - - non-durable queue - - Message queue that is cleared when the service restarts. Its - data is not written to persistent storage. - - non-persistent volume - - Alternative term for an ephemeral volume. - - north-south traffic - - Network traffic between a user or client (north) and a - server (south), or traffic into the cloud (south) and - out of the cloud (north). See also east-west traffic. - - nova - - OpenStack project that provides compute services. - - Nova API - - Alternative term for the Compute API. - - nova-network - - A Compute component that manages IP address allocation, - firewalls, and other network-related tasks. This is the legacy - networking option and an alternative to Networking. - - object - - A BLOB of data held by Object Storage; can be in any - format. - - object auditor - - Opens all objects for an object server and verifies the MD5 - hash, size, and metadata for each object. - - object expiration - - A configurable option within Object Storage to automatically - delete objects after a specified amount of time has passed or a - certain date is reached. - - object hash - - Uniquely ID for an Object Storage object. - - object path hash - - Used by Object Storage to determine the location of an object in - the ring. Maps objects to partitions. - - object replicator - - An Object Storage component that copies an object to remote - partitions for fault tolerance. - - object server - - An Object Storage component that is responsible for managing - objects. - - Object Storage service - - The OpenStack core project that provides eventually consistent - and redundant storage and retrieval of fixed digital content. The - project name of OpenStack Object Storage is swift. - - Object Storage API - - API used to access OpenStack Object Storage. - - Object Storage Device (OSD) - - The Ceph storage daemon. - - object versioning - - Allows a user to set a flag on an Object Storage container so - that all objects within the container are versioned. - - Ocata - - The code name for the fifteenth release of OpenStack. The - design summit will take place in Barcelona, Spain. Ocata is - a beach north of Barcelona. - - Oldie - - Term for an Object Storage process that runs for a long time. - Can indicate a hung process. - - Open Cloud Computing Interface (OCCI) - - A standardized interface for managing compute, data, and network - resources, currently unsupported in OpenStack. - - Open Virtualization Format (OVF) - - Standard for packaging VM images. Supported in OpenStack. - - Open vSwitch - - Open vSwitch is a production quality, multilayer virtual - switch licensed under the open source Apache 2.0 license. It - is designed to enable massive network automation through - programmatic extension, while still supporting standard - management interfaces and protocols (for example NetFlow, - sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). - - Open vSwitch (OVS) agent - - Provides an interface to the underlying Open vSwitch service for - the Networking plug-in. - - Open vSwitch neutron plug-in - - Provides support for Open vSwitch in Networking. - - OpenLDAP - - An open source LDAP server. Supported by both Compute and - Identity. - - OpenStack - - OpenStack is a cloud operating system that controls large pools - of compute, storage, and networking resources throughout a data - center, all managed through a dashboard that gives administrators - control while empowering their users to provision resources through a - web interface. OpenStack is an open source project licensed under the - Apache License 2.0. - - OpenStack code name - - Each OpenStack release has a code name. Code names ascend in - alphabetical order: Austin, Bexar, Cactus, Diablo, Essex, - Folsom, Grizzly, Havana, Icehouse, Juno, Kilo, Liberty, - and Mitaka. - Code names are cities or counties near where the - corresponding OpenStack design summit took place. An - exception, called the Waldon exception, is granted to - elements of the state flag that sound especially cool. Code - names are chosen by popular vote. - - openSUSE - - A Linux distribution that is compatible with OpenStack. - - operator - - The person responsible for planning and maintaining an OpenStack - installation. - - optional service - - An official OpenStack service defined as optional by - DefCore Committee. Currently, consists of - Dashboard (horizon), Telemetry service (Telemetry), - Orchestration service (heat), Database service (trove), - Bare Metal service (ironic), and so on. - - Orchestration service - - An integrated project that orchestrates multiple cloud - applications for OpenStack. The project name of Orchestration is - heat. - - orphan - - In the context of Object Storage, this is a process that is not - terminated after an upgrade, restart, or reload of the service. - - Oslo - - OpenStack project that produces a set of Python libraries - containing code shared by OpenStack projects. - - parent cell - - If a requested resource, such as CPU time, disk storage, or - memory, is not available in the parent cell, the request is forwarded - to associated child cells. - - partition - - A unit of storage within Object Storage used to store objects. - It exists on top of devices and is replicated for fault - tolerance. - - partition index - - Contains the locations of all Object Storage partitions within - the ring. - - partition shift value - - Used by Object Storage to determine which partition data should - reside on. - - path MTU discovery (PMTUD) - - Mechanism in IP networks to detect end-to-end MTU and adjust - packet size accordingly. - - pause - - A VM state where no changes occur (no changes in memory, network - communications stop, etc); the VM is frozen but not shut down. - - PCI passthrough - - Gives guest VMs exclusive access to a PCI device. Currently - supported in OpenStack Havana and later releases. - - persistent message - - A message that is stored both in memory and on disk. The message - is not lost after a failure or restart. - - persistent volume - - Changes to these types of disk volumes are saved. - - personality file - - A file used to customize a Compute instance. It can be used to - inject SSH keys or a specific network configuration. - - Platform-as-a-Service (PaaS) - - Provides to the consumer the ability to deploy applications - through a programming language or tools supported by the cloud - platform provider. An example of Platform-as-a-Service is an - Eclipse/Java programming platform provided with no downloads - required. - - plug-in - - Software component providing the actual implementation for - Networking APIs, or for Compute APIs, depending on the context. - - policy service - - Component of Identity that provides a rule-management - interface and a rule-based authorization engine. - - pool - - A logical set of devices, such as web servers, that you - group together to receive and process traffic. The load - balancing function chooses which member of the pool handles - the new requests or connections received on the VIP - address. Each VIP has one pool. - - pool member - - An application that runs on the back-end server in a - load-balancing system. - - port - - A virtual network port within Networking; VIFs / vNICs are - connected to a port. - - port UUID - - Unique ID for a Networking port. - - preseed - - A tool to automate system configuration and installation on - Debian-based Linux distributions. - - private image - - An Image service VM image that is only available to specified - tenants. - - private IP address - - An IP address used for management and administration, not - available to the public Internet. - - private network - - The Network Controller provides virtual networks to enable - compute servers to interact with each other and with the public - network. All machines must have a public and private network - interface. A private network interface can be a flat or VLAN network - interface. A flat network interface is controlled by the - flat_interface with flat managers. A VLAN network interface is - controlled by the ``vlan_interface`` option with VLAN - managers. - - project - - Projects represent the base unit of “ownership” in OpenStack, - in that all resources in OpenStack should be owned by a specific project. - In OpenStack Identity, a project must be owned by a specific domain. - - project ID - - User-defined alphanumeric string in Compute; the name of a - project. - - project VPN - - Alternative term for a cloudpipe. - - promiscuous mode - - Causes the network interface to pass all traffic it - receives to the host rather than passing only the frames - addressed to it. - - protected property - - Generally, extra properties on an Image service image to - which only cloud administrators have access. Limits which user - roles can perform CRUD operations on that property. The cloud - administrator can configure any image property as - protected. - - provider - - An administrator who has access to all hosts and - instances. - - proxy node - - A node that provides the Object Storage proxy service. - - proxy server - - Users of Object Storage interact with the service through the - proxy server, which in turn looks up the location of the requested - data within the ring and returns the results to the user. - - public API - - An API endpoint used for both service-to-service communication - and end-user interactions. - - public image - - An Image service VM image that is available to all - tenants. - - public IP address - - An IP address that is accessible to end-users. - - public key authentication - - Authentication method that uses keys rather than - passwords. - - public network - - The Network Controller provides virtual networks to enable - compute servers to interact with each other and with the public - network. All machines must have a public and private network - interface. The public network interface is controlled by the - ``public_interface`` option. - - Puppet - - An operating system configuration-management tool supported by - OpenStack. - - Python - - Programming language used extensively in OpenStack. - - QEMU Copy On Write 2 (QCOW2) - - One of the VM image disk formats supported by Image - service. - - Qpid - - Message queue software supported by OpenStack; an alternative to - RabbitMQ. - - quarantine - - If Object Storage finds objects, containers, or accounts that - are corrupt, they are placed in this state, are not replicated, cannot - be read by clients, and a correct copy is re-replicated. - - Quick EMUlator (QEMU) - - QEMU is a generic and open source machine emulator and - virtualizer. - One of the hypervisors supported by OpenStack, generally used - for development purposes. - - quota - - In Compute and Block Storage, the ability to set resource limits - on a per-project basis. - - RabbitMQ - - The default message queue software used by OpenStack. - - Rackspace Cloud Files - - Released as open source by Rackspace in 2010; the basis for - Object Storage. - - RADOS Block Device (RBD) - - Ceph component that enables a Linux block device to be striped - over multiple distributed data stores. - - radvd - - The router advertisement daemon, used by the Compute VLAN - manager and FlatDHCP manager to provide routing services for VM - instances. - - rally - - OpenStack project that provides the Benchmark service. - - RAM filter - - The Compute setting that enables or disables RAM - overcommitment. - - RAM overcommit - - The ability to start new VM instances based on the actual memory - usage of a host, as opposed to basing the decision on the amount of - RAM each running instance thinks it has available. Also known as - memory overcommit. - - rate limit - - Configurable option within Object Storage to limit database - writes on a per-account and/or per-container basis. - - raw - - One of the VM image disk formats supported by Image service; an - unstructured disk image. - - rebalance - - The process of distributing Object Storage partitions across all - drives in the ring; used during initial ring creation and after ring - reconfiguration. - - reboot - - Either a soft or hard reboot of a server. With a soft reboot, - the operating system is signaled to restart, which enables a graceful - shutdown of all processes. A hard reboot is the equivalent of power - cycling the server. The virtualization platform should ensure that the - reboot action has completed successfully, even in cases in which the - underlying domain/VM is paused or halted/stopped. - - rebuild - - Removes all data on the server and replaces it with the - specified image. Server ID and IP addresses remain the same. - - Recon - - An Object Storage component that collects meters. - - record - - Belongs to a particular domain and is used to specify - information about the domain. - There are several types of DNS records. Each record type contains - particular information used to describe the purpose of that record. - Examples include mail exchange (MX) records, which specify the mail - server for a particular domain; and name server (NS) records, which - specify the authoritative name servers for a domain. - - record ID - - A number within a database that is incremented each time a - change is made. Used by Object Storage when replicating. - - Red Hat Enterprise Linux (RHEL) - - A Linux distribution that is compatible with OpenStack. - - reference architecture - - A recommended architecture for an OpenStack cloud. - - region - - A discrete OpenStack environment with dedicated API endpoints - that typically shares only the Identity (keystone) with other - regions. - - registry - - Alternative term for the Image service registry. - - registry server - - An Image service that provides VM image metadata information to - clients. - - Reliable, Autonomic Distributed Object Store - (RADOS) - - A collection of components that provides object storage within - Ceph. Similar to OpenStack Object Storage. - - Remote Procedure Call (RPC) - - The method used by the Compute RabbitMQ for intra-service - communications. - - replica - - Provides data redundancy and fault tolerance by creating copies - of Object Storage objects, accounts, and containers so that they are - not lost when the underlying storage fails. - - replica count - - The number of replicas of the data in an Object Storage - ring. - - replication - - The process of copying data to a separate physical device for - fault tolerance and performance. - - replicator - - The Object Storage back-end process that creates and manages - object replicas. - - request ID - - Unique ID assigned to each request sent to Compute. - - rescue image - - A special type of VM image that is booted when an instance is - placed into rescue mode. Allows an administrator to mount the file - systems for an instance to correct the problem. - - resize - - Converts an existing server to a different flavor, which scales - the server up or down. The original server is saved to enable rollback - if a problem occurs. All resizes must be tested and explicitly - confirmed, at which time the original server is removed. - - RESTful - - A kind of web service API that uses REST, or Representational - State Transfer. REST is the style of architecture for hypermedia - systems that is used for the World Wide Web. - - ring - - An entity that maps Object Storage data to partitions. A - separate ring exists for each service, such as account, object, and - container. - - ring builder - - Builds and manages rings within Object Storage, assigns - partitions to devices, and pushes the configuration to other storage - nodes. - - Role Based Access Control (RBAC) - - Provides a predefined list of actions that the user can perform, - such as start or stop VMs, reset passwords, and so on. Supported in - both Identity and Compute and can be configured using the - horizon dashboard. - - role - - A personality that a user assumes to perform a specific set of - operations. A role includes a set of rights and privileges. A user - assuming that role inherits those rights and privileges. - - role ID - - Alphanumeric ID assigned to each Identity service role. - - rootwrap - - A feature of Compute that allows the unprivileged "nova" user to - run a specified list of commands as the Linux root user. - - round-robin scheduler - - Type of Compute scheduler that evenly distributes instances - among available hosts. - - router - - A physical or virtual network device that passes network - traffic between different networks. - - routing key - - The Compute direct exchanges, fanout exchanges, and topic - exchanges use this key to determine how to process a message; - processing varies depending on exchange type. - - RPC driver - - Modular system that allows the underlying message queue software - of Compute to be changed. For example, from RabbitMQ to ZeroMQ or - Qpid. - - rsync - - Used by Object Storage to push object replicas. - - RXTX cap - - Absolute limit on the amount of network traffic a Compute VM - instance can send and receive. - - RXTX quota - - Soft limit on the amount of network traffic a Compute VM - instance can send and receive. - - S3 - - Object storage service by Amazon; similar in function to Object - Storage, it can act as a back-end store for Image service VM images. - - sahara - - OpenStack project that provides a scalable data-processing stack - and associated management interfaces. - - SAML assertion - - Contains information about a user as provided by the identity - provider. It is an indication that a user has been authenticated. - - scheduler manager - - A Compute component that determines where VM instances should - start. Uses modular design to support a variety of scheduler - types. - - scoped token - - An Identity service API access token that is associated with a - specific tenant. - - scrubber - - Checks for and deletes unused VMs; the component of Image - service that implements delayed delete. - - secret key - - String of text known only by the user; used along with an access - key to make requests to the Compute API. - - secure shell (SSH) - - Open source tool used to access remote hosts through an - encrypted communications channel, SSH key injection is supported by - Compute. - - security group - - A set of network traffic filtering rules that are applied to a - Compute instance. - - segmented object - - An Object Storage large object that has been broken up into - pieces. The re-assembled object is called a concatenated - object. - - self-service - - For IaaS, ability for a regular (non-privileged) account to - manage a virtual infrastructure component such as networks without - involving an administrator. - - SELinux - - Linux kernel security module that provides the mechanism for - supporting access control policies. - - senlin - - OpenStack project that provides a Clustering service. - - server - - Computer that provides explicit services to the client software - running on that system, often managing a variety of computer - operations. - A server is a VM instance in the Compute system. Flavor and - image are requisite elements when creating a server. - - server image - - Alternative term for a VM image. - - server UUID - - Unique ID assigned to each guest VM instance. - - service - - An OpenStack service, such as Compute, Object Storage, or Image - service. Provides one or more endpoints through which users can access - resources and perform operations. - - service catalog - - Alternative term for the Identity service catalog. - - service ID - - Unique ID assigned to each service that is available in the - Identity service catalog. - - service provider - - A system that provides services to other system entities. In - case of federated identity, OpenStack Identity is the service - provider. - - service registration - - An Identity service feature that enables services, such as - Compute, to automatically register with the catalog. - - service tenant - - Special tenant that contains all services that are listed in the - catalog. - - service token - - An administrator-defined token used by Compute to communicate - securely with the Identity service. - - session back end - - The method of storage used by horizon to track client sessions, - such as local memory, cookies, a database, or memcached. - - session persistence - - A feature of the load-balancing service. It attempts to force - subsequent connections to a service to be redirected to the same node - as long as it is online. - - session storage - - A horizon component that stores and tracks client session - information. Implemented through the Django sessions framework. - - share - - A remote, mountable file system in the context of the Shared File - Systems. You can mount a share to, and access a share from, several - hosts by several users at a time. - - share network - - An entity in the context of the Shared File Systems that - encapsulates interaction with the Networking service. If the driver - you selected runs in the mode requiring such kind of interaction, you - need to specify the share network to create a share. - - Shared File Systems API - - A Shared File Systems service that provides a stable RESTful API. - The service authenticates and routes requests throughout the Shared - File Systems service. There is python-manilaclient to interact with - the API. - - Shared File Systems service - - An OpenStack service that provides a set of services for - management of shared file systems in a multi-tenant cloud - environment. The service is similar to how OpenStack provides - block-based storage management through the OpenStack Block Storage - service project. With the Shared File Systems service, you can create - a remote file system and mount the file system on your instances. You - can also read and write data from your instances to and from your - file system. The project name of the Shared File Systems service is - manila. - - shared IP address - - An IP address that can be assigned to a VM instance within the - shared IP group. Public IP addresses can be shared across multiple - servers for use in various high-availability scenarios. When an IP - address is shared to another server, the cloud network restrictions - are modified to enable each server to listen to and respond on that IP - address. You can optionally specify that the target server network - configuration be modified. Shared IP addresses can be used with many - standard heartbeat facilities, such as keepalive, that monitor for - failure and manage IP failover. - - shared IP group - - A collection of servers that can share IPs with other members of - the group. Any server in a group can share one or more public IPs with - any other server in the group. With the exception of the first server - in a shared IP group, servers must be launched into shared IP groups. - A server may be a member of only one shared IP group. - - shared storage - - Block storage that is simultaneously accessible by multiple - clients, for example, NFS. - - Sheepdog - - Distributed block storage system for QEMU, supported by - OpenStack. - - Simple Cloud Identity Management (SCIM) - - Specification for managing identity in the cloud, currently - unsupported by OpenStack. - - Single-root I/O Virtualization (SR-IOV) - - A specification that, when implemented by a physical PCIe - device, enables it to appear as multiple separate PCIe devices. This - enables multiple virtualized guests to share direct access to the - physical device, offering improved performance over an equivalent - virtual device. Currently supported in OpenStack Havana and later - releases. - - Service Level Agreement (SLA) - - Contractual obligations that ensure the availability of a - service. - - SmokeStack - - Runs automated tests against the core OpenStack API; written in - Rails. - - snapshot - - A point-in-time copy of an OpenStack storage volume or image. - Use storage volume snapshots to back up volumes. Use image snapshots - to back up data, or as "gold" images for additional servers. - - soft reboot - - A controlled reboot where a VM instance is properly restarted - through operating system commands. - - Software Development Lifecycle Automation service - - OpenStack project that aims to make cloud services easier to - consume and integrate with application development process - by automating the source-to-image process, and simplifying - app-centric deployment. The project name is solum. - - SolidFire Volume Driver - - The Block Storage driver for the SolidFire iSCSI storage - appliance. - - solum - - OpenStack project that provides a Software Development - Lifecycle Automation service. - - SPICE - - The Simple Protocol for Independent Computing Environments - (SPICE) provides remote desktop access to guest virtual machines. It - is an alternative to VNC. SPICE is supported by OpenStack. - - spread-first scheduler - - The Compute VM scheduling algorithm that attempts to start a new - VM on the host with the least amount of load. - - SQL-Alchemy - - An open source SQL toolkit for Python, used in OpenStack. - - SQLite - - A lightweight SQL database, used as the default persistent - storage method in many OpenStack services. - - stack - - A set of OpenStack resources created and managed by the - Orchestration service according to a given template (either an - AWS CloudFormation template or a Heat Orchestration - Template (HOT)). - - StackTach - - Community project that captures Compute AMQP communications; - useful for debugging. - - static IP address - - Alternative term for a fixed IP address. - - StaticWeb - - WSGI middleware component of Object Storage that serves - container data as a static web page. - - storage back end - - The method that a service uses for persistent storage, such as - iSCSI, NFS, or local disk. - - storage node - - An Object Storage node that provides container services, account - services, and object services; controls the account databases, - container databases, and object storage. - - storage manager - - A XenAPI component that provides a pluggable interface to - support a wide variety of persistent storage back ends. - - storage manager back end - - A persistent storage method supported by XenAPI, such as iSCSI - or NFS. - - storage services - - Collective name for the Object Storage object services, - container services, and account services. - - strategy - - Specifies the authentication source used by Image service or - Identity. In the Database service, it refers to the extensions - implemented for a data store. - - subdomain - - A domain within a parent domain. Subdomains cannot be - registered. Subdomains enable you to delegate domains. Subdomains can - themselves have subdomains, so third-level, fourth-level, fifth-level, - and deeper levels of nesting are possible. - - subnet - - Logical subdivision of an IP network. - - SUSE Linux Enterprise Server (SLES) - - A Linux distribution that is compatible with OpenStack. - - suspend - - Alternative term for a paused VM instance. - - swap - - Disk-based virtual memory used by operating systems to provide - more memory than is actually available on the system. - - swauth - - An authentication and authorization service for Object Storage, - implemented through WSGI middleware; uses Object Storage itself as the - persistent backing store. - - swift - - An OpenStack core project that provides object storage - services. - - swift All in One (SAIO) - - Creates a full Object Storage development environment within a - single VM. - - swift middleware - - Collective term for Object Storage components that provide - additional functionality. - - swift proxy server - - Acts as the gatekeeper to Object Storage and is responsible for - authenticating the user. - - swift storage node - - A node that runs Object Storage account, container, and object - services. - - sync point - - Point in time since the last container and accounts database - sync among nodes within Object Storage. - - sysadmin - - One of the default roles in the Compute RBAC system. Enables a - user to add other users to a project, interact with VM images that are - associated with the project, and start and stop VM instances. - - system usage - - A Compute component that, along with the notification system, - collects meters and usage information. This information can be used - for billing. - - Telemetry service - - An integrated project that provides metering and measuring - facilities for OpenStack. The project name of Telemetry is - ceilometer. - - TempAuth - - An authentication facility within Object Storage that enables - Object Storage itself to perform authentication and authorization. - Frequently used in testing and development. - - Tempest - - Automated software test suite designed to run against the trunk - of the OpenStack core project. - - TempURL - - An Object Storage middleware component that enables creation of - URLs for temporary object access. - - tenant - - A group of users; used to isolate access to Compute resources. - An alternative term for a project. - - Tenant API - - An API that is accessible to tenants. - - tenant endpoint - - An Identity service API endpoint that is associated with one or - more tenants. - - tenant ID - - Unique ID assigned to each tenant within the Identity service. - The project IDs map to the tenant IDs. - - token - - An alpha-numeric string of text used to access OpenStack APIs - and resources. - - token services - - An Identity service component that manages and validates tokens - after a user or tenant has been authenticated. - - tombstone - - Used to mark Object Storage objects that have been - deleted; ensures that the object is not updated on another node after - it has been deleted. - - topic publisher - - A process that is created when a RPC call is executed; used to - push the message to the topic exchange. - - Torpedo - - Community project used to run automated tests against the - OpenStack API. - - transaction ID - - Unique ID assigned to each Object Storage request; used for - debugging and tracing. - - transient - - Alternative term for non-durable. - - transient exchange - - Alternative term for a non-durable exchange. - - transient message - - A message that is stored in memory and is lost after the server - is restarted. - - transient queue - - Alternative term for a non-durable queue. - - TripleO - - OpenStack-on-OpenStack program. The code name for the - OpenStack Deployment program. - - trove - - OpenStack project that provides database services to - applications. - - Ubuntu - - A Debian-based Linux distribution. - - unscoped token - - Alternative term for an Identity service default token. - - updater - - Collective term for a group of Object Storage components that - processes queued and failed updates for containers and objects. - - user - - In OpenStack Identity, entities represent individual API - consumers and are owned by a specific domain. In OpenStack Compute, - a user can be associated with roles, projects, or both. - - user data - - A blob of data that the user can specify when they launch - an instance. The instance can access this data through the - metadata service or config drive. - Commonly used to pass a shell script that the instance runs on boot. - - User Mode Linux (UML) - - An OpenStack-supported hypervisor. - - VIF UUID - - Unique ID assigned to each Networking VIF. - - VIP - - The primary load balancing configuration object. - Specifies the virtual IP address and port where client traffic - is received. Also defines other details such as the load - balancing method to be used, protocol, and so on. This entity - is sometimes known in load-balancing products as a virtual - server, vserver, or listener. - - Virtual Central Processing Unit (vCPU) - - Subdivides physical CPUs. Instances can then use those - divisions. - - Virtual Disk Image (VDI) - - One of the VM image disk formats supported by Image - service. - - VXLAN - - A network virtualization technology that attempts to reduce the - scalability problems associated with large cloud computing - deployments. It uses a VLAN-like encapsulation technique to - encapsulate Ethernet frames within UDP packets. - - Virtual Hard Disk (VHD) - - One of the VM image disk formats supported by Image - service. - - virtual IP - - An Internet Protocol (IP) address configured on the load - balancer for use by clients connecting to a service that is load - balanced. Incoming connections are distributed to back-end nodes based - on the configuration of the load balancer. - - virtual machine (VM) - - An operating system instance that runs on top of a hypervisor. - Multiple VMs can run at the same time on the same physical - host. - - virtual network - - An L2 network segment within Networking. - - virtual networking - - A generic term for virtualization of network functions - such as switching, routing, load balancing, and security using - a combination of VMs and overlays on physical network - infrastructure. - - Virtual Network Computing (VNC) - - Open source GUI and CLI tools used for remote console access to - VMs. Supported by Compute. - - Virtual Network InterFace (VIF) - - An interface that is plugged into a port in a Networking - network. Typically a virtual network interface belonging to a - VM. - - virtual port - - Attachment point where a virtual interface connects to a virtual - network. - - virtual private network (VPN) - - Provided by Compute in the form of cloudpipes, specialized - instances that are used to create VPNs on a per-project basis. - - virtual server - - Alternative term for a VM or guest. - - virtual switch (vSwitch) - - Software that runs on a host or node and provides the features - and functions of a hardware-based network switch. - - virtual VLAN - - Alternative term for a virtual network. - - VirtualBox - - An OpenStack-supported hypervisor. - - VLAN manager - - A Compute component that provides dnsmasq and radvd and sets up - forwarding to and from cloudpipe instances. - - VLAN network - - The Network Controller provides virtual networks to enable - compute servers to interact with each other and with the public - network. All machines must have a public and private network - interface. A VLAN network is a private network interface, which is - controlled by the ``vlan_interface`` option with VLAN - managers. - - VM disk (VMDK) - - One of the VM image disk formats supported by Image - service. - - VM image - - Alternative term for an image. - - VM Remote Control (VMRC) - - Method to access VM instance consoles using a web browser. - Supported by Compute. - - VMware API - - Supports interaction with VMware products in Compute. - - VMware NSX Neutron plug-in - - Provides support for VMware NSX in Neutron. - - VNC proxy - - A Compute component that provides users access to the consoles - of their VM instances through VNC or VMRC. - - volume - - Disk-based data storage generally represented as an iSCSI target - with a file system that supports extended attributes; can be - persistent or ephemeral. - - Volume API - - Alternative name for the Block Storage API. - - volume controller - - A Block Storage component that oversees and coordinates storage - volume actions. - - volume driver - - Alternative term for a volume plug-in. - - volume ID - - Unique ID applied to each storage volume under the Block Storage - control. - - volume manager - - A Block Storage component that creates, attaches, and detaches - persistent storage volumes. - - volume node - - A Block Storage node that runs the cinder-volume daemon. - - volume plug-in - - Provides support for new and specialized types of back-end - storage for the Block Storage volume manager. - - volume worker - - A cinder component that interacts with back-end storage to manage - the creation and deletion of volumes and the creation of compute - volumes, provided by the cinder-volume daemon. - - vSphere - - An OpenStack-supported hypervisor. - - weighting - - A Compute process that determines the suitability of the VM - instances for a job for a particular host. For example, not enough RAM - on the host, too many CPUs on the host, and so on. - - weight - - Used by Object Storage devices to determine which storage - devices are suitable for the job. Devices are weighted by size. - - weighted cost - - The sum of each cost used when deciding where to start a new VM - instance in Compute. - - worker - - A daemon that listens to a queue and carries out tasks in - response to messages. For example, the cinder-volume worker manages volume - creation and deletion on storage arrays. - - Workflow service - - OpenStack project that provides a simple YAML-based language - to write workflows, tasks and transition rules, and a - service that allows to upload them, modify, run them at - scale and in a highly available manner, manage and monitor - workflow execution state and state of individual tasks. The - code name of the project is mistral. - - Xen - - Xen is a hypervisor using a microkernel design, providing - services that allow multiple computer operating systems to - execute on the same computer hardware concurrently. - - Xen API - - The Xen administrative API, which is supported by - Compute. - - Xen Cloud Platform (XCP) - - An OpenStack-supported hypervisor. - - Xen Storage Manager Volume Driver - - A Block Storage volume plug-in that enables communication with - the Xen Storage Manager API. - - XenServer - - An OpenStack-supported hypervisor. - - XFS - - High-performance 64-bit file system created by Silicon - Graphics. Excels in parallel I/O operations and data - consistency. - - zaqar - - OpenStack project that provides a message service to - applications. - - ZeroMQ - - Message queue software supported by OpenStack. An alternative to - RabbitMQ. Also spelled 0MQ. - - Zuul - - Tool used in OpenStack development to ensure correctly ordered - testing of changes in parallel. diff --git a/doc/common/source/locale/ja/LC_MESSAGES/common.po b/doc/common/source/locale/ja/LC_MESSAGES/common.po deleted file mode 100644 index c696f871..00000000 --- a/doc/common/source/locale/ja/LC_MESSAGES/common.po +++ /dev/null @@ -1,10567 +0,0 @@ -# Translators: -# Akihiro Motoki , 2013 -# Andreas Jaeger , 2014 -# myamamot , 2014 -# nao nishijima , 2015 -# Tomoyuki KATO , 2015 -# yfukuda , 2014 -# ykatabam , 2014 -# -# -# Akihiro Motoki , 2016. #zanata -# Andreas Jaeger , 2016. #zanata -# KATO Tomoyuki , 2016. #zanata -msgid "" -msgstr "" -"Project-Id-Version: Common documents 1.0.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-04 01:03+0000\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2016-04-19 01:30+0000\n" -"Last-Translator: KATO Tomoyuki \n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Zanata 3.7.3\n" -"Language-Team: Japanese\n" - -msgid "(RADOS)" -msgstr "(RADOS)" - -msgid "" -"**CentOS, Fedora, and Red Hat Enterprise Linux:** https://www.rdoproject.org/" -msgstr "" -"**CentOS、Fedora、Red Hat Enterprise Linux:** https://www.rdoproject.org/" - -msgid "**Debian:** https://wiki.debian.org/OpenStack" -msgstr "**Debian:** https://wiki.debian.org/OpenStack" - -msgid "**Disk and CD-ROM bus model values**" -msgstr "**ディスクと CD-ROM のバスモデルの値**" - -msgid "**MacOS**" -msgstr "**MacOS**" - -msgid "**Microsoft Windows**" -msgstr "**Microsoft Windows**" - -msgid "**Process flow example**" -msgstr "**プロセスフロー例**" - -msgid "**Red Hat Enterprise Linux, CentOS, or Fedora.**" -msgstr "**Red Hat Enterprise Linux、CentOS、Fedora。**" - -msgid "**SUSE Linux Enterprise Server**" -msgstr "**SUSE Linux Enterprise Server**" - -msgid "**Ubuntu or Debian**" -msgstr "**Ubuntu または Debian**" - -msgid "**Ubuntu:** https://wiki.ubuntu.com/ServerTeam/CloudArchive" -msgstr "**Ubuntu:** https://wiki.ubuntu.com/ServerTeam/CloudArchive" - -msgid "**VIF model values**" -msgstr "**仮想インターフェースのモデルの値**" - -msgid "" -"**openSUSE and SUSE Linux Enterprise Server:** https://en.opensuse.org/" -"Portal:OpenStack" -msgstr "" -"**openSUSE、SUSE Linux Enterprise Server:** https://en.opensuse.org/Portal:" -"OpenStack" - -msgid "**openSUSE**" -msgstr "**openSUSE**" - -msgid "" -"*The OpenStack Image service is used to manage the virtual machine images in " -"an OpenStack cluster, not store them.* It provides an abstraction to " -"different methods for storage - a bridge to the storage, not the storage " -"itself." -msgstr "" -"*OpenStack Image service は、OpenStack クラスターにおける仮想マシンイメージを" -"管理するために使用されます。それらを保存するためではありません。* さまざまな" -"種類のストレージを抽象化します。ストレージへの架け橋となりますが、ストレージ" -"ではありません。" - -msgid "" -"*The OpenStack Object Storage can function on its own.* The Object Storage " -"(swift) product can be used independently of the Compute (nova) product." -msgstr "" -"*OpenStack Object Storage は、単体で機能できます。* Object Storage (swift) 製" -"品は、Compute (nova) 製品と独立して使用できます。" - -msgid "" -"*You cannot use OpenStack Object Storage like a traditional hard drive.* The " -"Object Storage relaxes some of the constraints of a POSIX-style file system " -"to get other gains. You can access the objects through an API which uses " -"HTTP. Subsequently you don't have to provide atomic operations (that is, " -"relying on eventual consistency), you can scale a storage system easily and " -"avoid a central point of failure." -msgstr "" -"*OpenStack Object Storage は従来のハードディスクのように使用する事が出来ませ" -"ん。* Object Storage は他のメリットを得るために、POSIX 形式のファイルシステム" -"の制約を緩和しています。オブジェクトには HTTP を使用する API 経由でアクセス出" -"来ます。また、Object Storage はオブジェクトに対するアトミックな操作を提供しな" -"い(=結果整合性(Eventual Consistency)に依る)ので、ストレージシステムを簡" -"単にスケールアウトでき、単一点障害を避ける事ができます。" - -msgid "6to4" -msgstr "6to4" - -msgid ":option:`--description`" -msgstr ":option:`--description`" - -msgid ":option:`--id-type`" -msgstr ":option:`--id-type`" - -msgid ":option:`--metadata`" -msgstr ":option:`--metadata`" - -msgid ":option:`--name`" -msgstr ":option:`--name`" - -msgid "A BLOB of data held by Object Storage; can be in any format." -msgstr "" -"Object Storage により保持されるデータの BLOB。あらゆる形式の可能性がある。" - -msgid "" -"A Block Storage component that creates, attaches, and detaches persistent " -"storage volumes." -msgstr "" -"永続ストレージボリュームを作成、接続、切断する Block Storage コンポーネント。" - -msgid "" -"A Block Storage component that oversees and coordinates storage volume " -"actions." -msgstr "" -"ストレージボリュームの操作を監督、調整する、Block Storage のコンポーネント。" - -msgid "A Block Storage node that runs the cinder-volume daemon." -msgstr "cinder-volume デーモンを実行する Block Storage ノード。" - -msgid "" -"A Block Storage volume plug-in that enables communication with the Xen " -"Storage Manager API." -msgstr "" -"Xen Storage Manager API と通信できる Block Storage ボリュームプラグイン。" - -msgid "" -"A CLI that communicates with the ``heat-api`` to run :term:`AWS` " -"CloudFormation APIs. End developers can directly use the Orchestration REST " -"API." -msgstr "" -":term:`AWS` CloudFormation API を実行するために、 ``heat-api`` と通信する " -"CLI。エンドの開発者は直接 Orchestration REST API を使用することもできます。" - -msgid "A CLI that communicates with the ``trove-api`` component." -msgstr "``trove-api`` コンポーネントと通信する CLI。" - -msgid "" -"A Ceph component that communicates with external clients, checks data state " -"and consistency, and performs quorum functions." -msgstr "" -"外部クライアントと通信し、データの状態と整合性を確認し、クォーラム機能を実行" -"する、Ceph コンポーネント。" - -msgid "" -"A Compute API parameter that downloads changes to the requested item since " -"your last request, instead of downloading a new, fresh set of data and " -"comparing it against the old data." -msgstr "" -"Compute API のパラメーター。古いデータと比較するために、新しいデータ群をダウ" -"ンロードする代わりに、最後に要求した後に実行された、要求した項目への変更をダ" -"ウンロードする。" - -msgid "" -"A Compute RabbitMQ message queue that remains active when the server " -"restarts." -msgstr "" -"サーバーの再起動時に有効なままとなる、Compute RabbitMQ メッセージキュー。" - -msgid "" -"A Compute RabbitMQ setting that determines whether a message exchange is " -"automatically created when the program starts." -msgstr "" -"メッセージ交換がプログラム起動時に自動的に作成されるかどうかを決める、" -"Compute の RabbitMQ の設定。" - -msgid "" -"A Compute back-end database table that contains the current workload, amount " -"of free RAM, and number of VMs running on each host. Used to determine on " -"which host a VM starts." -msgstr "" -"Computeバックエンドデータベースのテーブルには現在のワークロード、RAMの空き" -"量、各ホストで起動しているVMの数が含まれている。VMがどのホストで開始するのか" -"を決めるのに利用される。" - -msgid "" -"A Compute component that determines where VM instances should start. Uses " -"modular design to support a variety of scheduler types." -msgstr "" -"仮想マシンインスタンスが起動する場所を決める、Compute のコンポーネント。さま" -"ざまな種類のスケジューラーをサポートするために、モジュール型設計を使用する。" - -msgid "" -"A Compute component that enables OpenStack to communicate with Amazon EC2." -msgstr "" -"OpenStack が Amazon EC2 を利用できるようにするための Compute のコンポーネン" -"ト。" - -msgid "" -"A Compute component that manages IP address allocation, firewalls, and other " -"network-related tasks. This is the legacy networking option and an " -"alternative to Networking." -msgstr "" -"IP アドレス割り当て、ファイアウォール、その他ネットワーク関連タスクを管理す" -"る Compute のコンポーネント。レガシーネットワークのオプション。Networking の" -"代替。" - -msgid "" -"A Compute component that provides dnsmasq and radvd and sets up forwarding " -"to and from cloudpipe instances." -msgstr "" -"dnsmasq と radvd を提供し、cloudpipe インスタンスとの転送処理をセットアップす" -"る、Compute のコンポーネント。" - -msgid "" -"A Compute component that provides users access to the consoles of their VM " -"instances through VNC or VMRC." -msgstr "" -"ユーザーが VNC や VMRC 経由で仮想マシンインスタンスのコンソールにアクセスでき" -"るようにする Compute のコンポーネント。" - -msgid "" -"A Compute component that, along with the notification system, collects " -"meters and usage information. This information can be used for billing." -msgstr "" -"通知システムと一緒に動作し、計測項目と使用状況を収集する、Compute のコンポー" -"ネント。この情報は課金のために使用できる。" - -msgid "" -"A Compute daemon that orchestrates the network configuration of nodes, " -"including IP addresses, VLANs, and bridging. Also manages routing for both " -"public and private networks." -msgstr "" -"IP アドレス、VLAN、ブリッジなど、ノードのネットワーク設定をオーケストレーショ" -"ンする Compute のデーモン。また、パブリックネットワークとプライベートネット" -"ワークのルーティングを管理する。" - -msgid "" -"A Compute networking method where the OS network configuration information " -"is injected into the VM image before the instance starts." -msgstr "" -"インスタンスの起動前に、OS のネットワーク設定情報を仮想マシンイメージ内に注入" -"する、Compute のネットワーク方式。" - -msgid "" -"A Compute option that enables parent cells to pass resource requests to " -"child cells if the parent cannot provide the requested resource." -msgstr "" -"親が要求されたリソースを提供できない場合、親セルがリソース要求を子セルに渡す" -"事を可能にする Compute のオプション。" - -msgid "" -"A Compute process that determines the suitability of the VM instances for a " -"job for a particular host. For example, not enough RAM on the host, too many " -"CPUs on the host, and so on." -msgstr "" -"特定のホストがあるジョブ向けの仮想マシンインスタンスに対して適切かどうかを判" -"断する、Compute の処理。例えば、ホストのメモリー不足、ホストの CPU 過剰など。" - -msgid "A Debian-based Linux distribution." -msgstr "Debian ベースの Linux ディストリビューション。" - -msgid "A Java program that can be embedded into a web page." -msgstr "Web ページの中に組み込める Java プログラム。" - -msgid "A Linux distribution compatible with OpenStack." -msgstr "OpenStack と互換性のある Linux ディストリビューション。" - -msgid "A Linux distribution that is compatible with OpenStack." -msgstr "OpenStack と互換性のある Linux ディストリビューション。" - -msgid "A Networking extension that provides perimeter firewall functionality." -msgstr "境界ファイアウォール機能を提供する Networking 拡張。" - -msgid "" -"A Networking plug-in for Cisco devices and technologies, including UCS and " -"Nexus." -msgstr "UCS や Nexus などの Cisco デバイスや技術の Networking プラグイン。" - -msgid "" -"A SQLite database that contains Object Storage accounts and related metadata " -"and that the accounts server accesses." -msgstr "" -"Object Storage のアカウントと関連メタデータを保持し、アカウントサーバーがアク" -"セスする、SQLite データベース。" - -msgid "" -"A SQLite database that stores Object Storage containers and container " -"metadata. The container server accesses this database." -msgstr "" -"Object Storage コンテナーとコンテナーメタデータを保存する SQLite データベー" -"ス。コンテナーサーバーは、このデータベースにアクセスする。" - -msgid "" -"A Shared File Systems service that provides a stable RESTful API. The " -"service authenticates and routes requests throughout the Shared File Systems " -"service. There is python-manilaclient to interact with the API." -msgstr "" -"安定版の RESTful API を提供する Shared File Systems サービス。 Shared File " -"Systems サービスへのすべてのリクエストの認証と転送を行う。この API と通信する" -"ための python-manilaclient が提供されています。" - -msgid "" -"A VM image that does not save changes made to its volumes and reverts them " -"to their original state after the instance is terminated." -msgstr "" -"ボリュームへの変更が保存されない仮想マシンイメージ。インスタンスの終了後、元" -"の状態に戻される。" - -msgid "A VM instance that runs on a host." -msgstr "ホストで動作する仮想マシンインスタンス。" - -msgid "" -"A VM state where no changes occur (no changes in memory, network " -"communications stop, etc); the VM is frozen but not shut down." -msgstr "" -"変更が発生しない (メモリーの変更なし、ネットワーク通信の停止など)、仮想マシン" -"の状態。仮想マシンは停止するが、シャットダウンしない。" - -msgid "" -"A Windows project providing guest initialization features, similar to cloud-" -"init." -msgstr "cloud-init 同様のゲスト初期化機能を提供する Windows プロジェクト。" - -msgid "" -"A XenAPI component that provides a pluggable interface to support a wide " -"variety of persistent storage back ends." -msgstr "" -"さまざまな種類の永続ストレージバックエンドをサポートするために、プラグイン可" -"能なインターフェースを提供する XenAPI コンポーネント。" - -msgid "" -"A bit is a single digit number that is in base of 2 (either a zero or one). " -"Bandwidth usage is measured in bits per second." -msgstr "" -"ビットは、2 を基数とする単一のデジタル数値 (0 または 1)。帯域使用量は、ビット" -"毎秒 (bps) で計測される。" - -msgid "" -"A blob of data that the user can specify when they launch an instance. The " -"instance can access this data through the metadata service or config drive. " -"Commonly used to pass a shell script that the instance runs on boot." -msgstr "" -"インスタンス起動時にユーザが指定できる BLOB データ。インスタンスはこのデータ" -"にメタデータサービスやコンフィグドライブ経由でアクセスできる。通常、インスタ" -"ンスがブート時に実行するシェルスクリプトを渡すために使用される。" - -msgid "A central agent (``ceilometer-agent-central``)" -msgstr "中央エージェント (``ceilometer-agent-central``)" - -msgid "" -"A centralized server provides authentication and authorization services " -"using a RESTful interface." -msgstr "" -"中央サーバーが、RESTful インターフェースを使用して、認証と認可のサービスを提" -"供します。" - -msgid "" -"A cinder component that interacts with back-end storage to manage the " -"creation and deletion of volumes and the creation of compute volumes, " -"provided by the cinder-volume daemon." -msgstr "" -"ボリュームの作成や削除、コンピュートボリュームの作成を管理するために、バック" -"エンドのストレージと相互作用する cinder のコンポーネント。cinder-volume デー" -"モンにより提供される。" - -msgid "" -"A cli tool used to retrieve various metrics and telemetry information about " -"a cluster that has been collected by the swift-recon middleware." -msgstr "" -"swift-recon ミドルウェアにより収集されたクラスターの様々な性能情報や統計情報" -"を取得するために使用する CLI ツール。" - -msgid "" -"A collection of command-line tools for administering VMs; most are " -"compatible with OpenStack." -msgstr "" -"仮想マシンを管理するためのコマンドラインツール群。ほとんどは OpenStack と互換" -"性がある。" - -msgid "" -"A collection of components that provides object storage within Ceph. Similar " -"to OpenStack Object Storage." -msgstr "" -"Ceph 内にオブジェクトストレージを提供するコンポーネント群。OpenStack Object " -"Storage に似ている。" - -msgid "" -"A collection of files for a specific operating system (OS) that you use to " -"create or rebuild a server. OpenStack provides pre-built images. You can " -"also create custom images, or snapshots, from servers that you have " -"launched. Custom images can be used for data backups or as \"gold\" images " -"for additional servers." -msgstr "" -"サーバーの作成、再構築に使用する特定のオペレーティングシステム(OS)用のファ" -"イルの集合。OpenStack は構築済みイメージを提供する。起動したサーバーからカス" -"タムイメージ(またはスナップショット)を作成できる。" - -msgid "A collection of hypervisors grouped together through host aggregates." -msgstr "ホストアグリゲートにより一緒にグループ化されたハイパーバイザーの集合。" - -msgid "" -"A collection of servers that can share IPs with other members of the group. " -"Any server in a group can share one or more public IPs with any other server " -"in the group. With the exception of the first server in a shared IP group, " -"servers must be launched into shared IP groups. A server may be a member of " -"only one shared IP group." -msgstr "" -"グループの他のメンバーと IP を共有できるサーバー群。グループ内のサーバーは、" -"そのグループ内の他のサーバーと 1 つ以上のパブリック IP を共有できる。共有 IP " -"グループにおける 1 番目のサーバーを除き、サーバーは共有 IP グループの中で起動" -"する必要がある。サーバーは、共有 IP グループ 1 つだけのメンバーになれる。" - -msgid "" -"A collection of specifications used to access a service, application, or " -"program. Includes service calls, required parameters for each call, and the " -"expected return values." -msgstr "" -"サービス、アプリケーション、プログラムへのアクセスに使用される仕様の集合。" -"サービス呼出、各呼出に必要なパラメーター、想定される戻り値を含む。" - -msgid "A collector (``ceilometer-collector``)" -msgstr "コレクター (``ceilometer-collector``)" - -msgid "A comment with additional information that explains a part of the text." -msgstr "本文を補足する説明コメントです。" - -msgid "" -"A common API for vendors, admins, services, and users to meaningfully define " -"their own custom metadata. This metadata can be used on different types of " -"resources like images, artifacts, volumes, flavors, and aggregates. A " -"definition includes the new property's key, description, constraints, and " -"the resource types which it can be associated with." -msgstr "" -"ベンダー、管理者、サービス、ユーザーの独自のメタデータを有意義に定義するため" -"の共通 API。このメタデータは、イメージ、アーティファクト、ボリューム、フレー" -"バー、アグリゲートなどの、さまざまなリソースにおいて使用できます。定義には、" -"新しいプロパティーのキー、説明、制約、それが関連付けられるリソース種別が含ま" -"れます。" - -msgid "" -"A community project may be elevated to this status and is then promoted to a " -"core project." -msgstr "" -"コミュニティプロジェクトがこの状態に昇格する事があり、その後コアプロジェクト" -"に昇格する。" - -msgid "A compute agent (``ceilometer-agent-compute``)" -msgstr "コンピュートエージェント (``ceilometer-agent-compute``)" - -msgid "A compute service that creates VPNs on a per-project basis." -msgstr "プロジェクトごとの VPN を作成するコンピュートのサービス。" - -msgid "" -"A configurable option within Object Storage to automatically delete objects " -"after a specified amount of time has passed or a certain date is reached." -msgstr "" -"指定された時間経過後、又は指定日になった際に自動的にオブジェクトを削除するた" -"めの Object Storage の設定オプション。" - -msgid "" -"A content delivery network is a specialized network that is used to " -"distribute content to clients, typically located close to the client for " -"increased performance." -msgstr "" -"コンテンツ配信ネットワークは、クライアントにコンテンツを配信するために使用さ" -"れる特別なネットワーク。一般的に、パフォーマンス改善のために、クライアントの" -"近くに置かれる。" - -msgid "" -"A controlled reboot where a VM instance is properly restarted through " -"operating system commands." -msgstr "" -"オペレーティングシステムのコマンド経由で、仮想マシンインスタンスが正常に再起" -"動する、制御された再起動。" - -msgid "" -"A core OpenStack project that provides a network connectivity abstraction " -"layer to OpenStack Compute." -msgstr "" -"OpenStack のコアプロジェクトで、OpenStack Compute に対してネットワーク接続の" -"抽象化レイヤーを提供する。" - -msgid "" -"A core OpenStack project that provides a network connectivity abstraction " -"layer to OpenStack Compute. The project name of Networking is neutron." -msgstr "" -"ネットワーク接続性の抽象化レイヤーを OpenStack Compute に提供する、OpenStack " -"コアプロジェクト。Networking のプロジェクト名は neutron。" - -msgid "A core OpenStack project that provides block storage services for VMs." -msgstr "" -"ブロックストレージサービスを仮想マシンに提供する、OpenStack のコアプロジェク" -"ト。" - -msgid "A core project that provides the OpenStack Image service." -msgstr "OpenStack Image service を提供するコアプロジェクト。" - -msgid "" -"A daemon that listens to a queue and carries out tasks in response to " -"messages. For example, the cinder-volume worker manages volume creation and " -"deletion on storage arrays." -msgstr "" -"キューをリッスンし、メッセージに応じたタスクを実行するデーモン。例えば、" -"cinder-volume ワーカーは、ストレージにおけるボリュームの作成と削除を管理しま" -"す。" - -msgid "A database engine supported by the Database service." -msgstr "Database サービスがサポートしているデータベースエンジン。" - -msgid "" -"A default role in the Compute RBAC system that can quarantine an instance in " -"any project." -msgstr "" -"あらゆるプロジェクトにあるインスタンスを検疫できる、Compute RBAC システムにお" -"けるデフォルトのロール。" - -msgid "" -"A device that moves data in the form of blocks. These device nodes interface " -"the devices, such as hard disks, CD-ROM drives, flash drives, and other " -"addressable regions of memory." -msgstr "" -"ブロック状態のデータを移動するデバイス。これらのデバイスノードにはハードディ" -"スク、CD-ROM ドライブ、フラッシュドライブ、その他のアドレス可能なメモリの範囲" -"等がある。" - -msgid "" -"A directory service, which allows users to login with a user name and " -"password. It is a typical source of authentication tokens." -msgstr "" -"ユーザーがユーザー名とパスワードを用いてログインできるようにする、ディレクト" -"リーサービス。認証トークンの一般的な情報源。" - -msgid "" -"A discrete OpenStack environment with dedicated API endpoints that typically " -"shares only the Identity (keystone) with other regions." -msgstr "" -"専用の API エンドポイントを持つ、分離した OpenStack 環境。一般的に Identity " -"(keystone) のみを他のリージョンと共有する。" - -msgid "A disk storage protocol tunneled within Ethernet." -msgstr "Ethernet 内をトンネルされるディスクストレージプロトコル。" - -msgid "" -"A distributed memory object caching system that is used by Object Storage " -"for caching." -msgstr "" -"Object Storage がキャッシュのために使用する、メモリーオブジェクトの分散キャッ" -"シュシステム。" - -msgid "" -"A distributed, highly fault-tolerant file system designed to run on low-cost " -"commodity hardware." -msgstr "" -"低価格のコモディティーサーバー上で動作することを念頭に設計された、耐故障性に" -"優れた分散ファイルシステム。" - -msgid "" -"A domain within a parent domain. Subdomains cannot be registered. Subdomains " -"enable you to delegate domains. Subdomains can themselves have subdomains, " -"so third-level, fourth-level, fifth-level, and deeper levels of nesting are " -"possible." -msgstr "" -"親ドメイン内のドメイン。サブドメインは登録できない。サブドメインによりドメイ" -"ンを委譲できる。サブドメインは、サブドメインを持てるので、第 3 階層、第 4 階" -"層、第 5 階層と深い階層構造にできる。" - -msgid "" -"A driver for the Modular Layer 2 (ML2) neutron plug-in that provides layer-2 " -"connectivity for virtual instances. A single OpenStack installation can use " -"multiple mechanism drivers." -msgstr "" -"仮想インスタンス向けに L2 接続性を提供する、ML2 neutron プラグイン向けのドラ" -"イバー。単一の OpenStack インストール環境が、複数のメカニズムドライバーを使用" -"できます。" - -msgid "" -"A feature of Compute that allows the unprivileged \"nova\" user to run a " -"specified list of commands as the Linux root user." -msgstr "" -"非特権の「nova」ユーザーが Linux の root ユーザーとして指定したコマンド一覧を" -"実行できるようにする、Compute の機能。" - -msgid "" -"A feature of the load-balancing service. It attempts to force subsequent " -"connections to a service to be redirected to the same node as long as it is " -"online." -msgstr "" -"負荷分散サービスの機能の 1 つ。ノードがオンラインである限り、強制的に一連の接" -"続を同じノードにリダイレクトしようとする。" - -msgid "" -"A file sharing protocol. It is a public or open variation of the original " -"Server Message Block (SMB) protocol developed and used by Microsoft. Like " -"the SMB protocol, CIFS runs at a higher level and uses the TCP/IP protocol." -msgstr "" -"ファイル共有プロトコル。 Microsoft が開発し使用している Server Message Block " -"(SMB) プロトコルが公開されオープンになったものです。 SMB プロトコルと同様" -"に、 CIFS は上位レイヤーで動作し、TCP/IP プロトコルを使用します。" - -msgid "" -"A file system designed to aggregate NAS hosts, compatible with OpenStack." -msgstr "" -"NAS ホストを集約するために設計されたファイルシステム。OpenStack と互換性があ" -"る。" - -msgid "" -"A file used to customize a Compute instance. It can be used to inject SSH " -"keys or a specific network configuration." -msgstr "" -"Compute インスタンスをカスタマイズするために使用されるファイル。SSH 鍵や特定" -"のネットワーク設定を注入するために使用できます。" - -msgid "" -"A generic term for virtualization of network functions such as switching, " -"routing, load balancing, and security using a combination of VMs and " -"overlays on physical network infrastructure." -msgstr "" -"複数の仮想マシンを使用して、物理ネットワーク上にオーバーレイされる、スイッチ" -"ング、ルーティング、負荷分散、セキュリティーなどのネットワーク機能の仮想化に" -"関する一般的な用語。" - -msgid "" -"A group of fixed and/or floating IP addresses that are assigned to a project " -"and can be used by or assigned to the VM instances in a project." -msgstr "" -"プロジェクトに割り当てられ、プロジェクトの仮想マシンインスタンスに使用でき" -"る、 Fixed IP アドレスと Floating IP アドレスのグループ。" - -msgid "" -"A group of interrelated web development techniques used on the client-side " -"to create asynchronous web applications. Used extensively in horizon." -msgstr "" -"非同期 Web アプリケーションを作成する為にクライアント側で使用される相互関係の" -"ある Web 開発技術の集合。Horizon で広く使用されている。" - -msgid "" -"A group of related button types within horizon. Buttons to start, stop, and " -"suspend VMs are in one class. Buttons to associate and disassociate floating " -"IP addresses are in another class, and so on." -msgstr "" -"Horizon 内で関連するボタン種別のグループ。仮想マシンを起動、停止、休止するボ" -"タンは、1 つのクラスにある。Floating IP アドレスを関連付ける、関連付けを解除" -"するボタンは、別のクラスにある。" - -msgid "" -"A group of users; used to isolate access to Compute resources. An " -"alternative term for a project." -msgstr "" -"ユーザーのグループ。Compute リソースへのアクセスを分離するために使用される。" -"プロジェクトの別名。" - -msgid "" -"A grouped release of projects related to OpenStack that came out in April " -"2012, the fifth release of OpenStack. It included Compute (nova 2012.1), " -"Object Storage (swift 1.4.8), Image (glance), Identity (keystone), and " -"Dashboard (horizon). Essex is the code name for the fifth release of " -"OpenStack. The design summit took place in Boston, Massachusetts, US and " -"Essex is a nearby city." -msgstr "" -"2012年4月に登場した OpenStack 関連プロジェクトのリリース。Compute (nova " -"2012.1), Object Storage (swift 1.4.8), Image (glance), Identity (keystone), " -"Dashboard (horizon) が含まれる。Essex は、OpenStack の 5 番目のリリースのコー" -"ド名。デザインサミットは、アメリカ合衆国マサチューセッツ州ボストンで開催され" -"た。Essex はその近郊都市。" - -msgid "" -"A grouped release of projects related to OpenStack that came out in February " -"of 2011. It included only Compute (nova) and Object Storage (swift). Bexar " -"is the code name for the second release of OpenStack. The design summit took " -"place in San Antonio, Texas, US, which is the county seat for Bexar county." -msgstr "" -"2011 年 2 月に登場した OpenStack 関連プロジェクトのリリース。Compute (nova) " -"と Object Storage (swift) が含まれる。Bexar は OpenStack の 2 番目のコード" -"名。デザインサミットは、アメリカ合衆国テキサス州サンアントニオで開催された。" -"ベア郡の郡庁所在地。" - -msgid "" -"A grouped release of projects related to OpenStack that came out in the fall " -"of 2011, the fourth release of OpenStack. It included Compute (nova 2011.3), " -"Object Storage (swift 1.4.3), and the Image service (glance). Diablo is the " -"code name for the fourth release of OpenStack. The design summit took place " -"in the Bay Area near Santa Clara, California, US and Diablo is a nearby city." -msgstr "" -"2011年秋に登場した OpenStack 関連プロジェクトのリリース。Compute (nova " -"2011.3)、Object Storage (swift 1.4.3)、Image service (glance) が含まれる。" -"Diablo は、OpenStack の 4 番目のリリースのコード名。デザインサミットは、アメ" -"リカ合衆国カリフォルニア州サンタクララ近くにある海岸エリアで開催された。" -"Diablo はその近郊都市。" - -msgid "" -"A grouped release of projects related to OpenStack that came out in the fall " -"of 2012, the sixth release of OpenStack. It includes Compute (nova), Object " -"Storage (swift), Identity (keystone), Networking (neutron), Image service " -"(glance), and Volumes or Block Storage (cinder). Folsom is the code name for " -"the sixth release of OpenStack. The design summit took place in San " -"Francisco, California, US and Folsom is a nearby city." -msgstr "" -"2012年秋に登場した OpenStack 関連プロジェクトのリリース。Compute (nova), " -"Object Storage (swift), Identity (keystone), Networking (neutron), Image " -"service (glance)、Volumes 又は Block Storage (cinder) が含まれる。Folsom は、" -"OpenStack の 6 番目のリリースのコード名。デザインサミットは、アメリカ合衆国カ" -"リフォルニア州サンフランシスコで開催された。Folsom は、その近郊都市。" - -msgid "" -"A high availability system design approach and associated service " -"implementation ensures that a prearranged level of operational performance " -"will be met during a contractual measurement period. High availability " -"systems seeks to minimize system downtime and data loss." -msgstr "" -"高可用性システムの設計手法および関連サービスの実装により、契約された計測期間" -"中、合意された運用レベルを満たします。高可用性システムは、システムの停止時間" -"とデータ損失を最小化しようとします。" - -msgid "" -"A horizon component that stores and tracks client session information. " -"Implemented through the Django sessions framework." -msgstr "" -"クライアントセッションの保持と追跡を行う Horizon のコンポーネント。 Django の" -"セッションフレームワークを用いて実装されている。" - -msgid "" -"A hybrid cloud is a composition of two or more clouds (private, community or " -"public) that remain distinct entities but are bound together, offering the " -"benefits of multiple deployment models. Hybrid cloud can also mean the " -"ability to connect colocation, managed and/or dedicated services with cloud " -"resources." -msgstr "" -"ハイブリッドクラウドは、複数のクラウド (プライベート、コミュニティー、パブ" -"リック) の組み合わせ。別々のエンティティーのままですが、一緒にまとめられる。" -"複数の配備モデルの利点を提供する。ハイブリッドクラウドは、コロケーション、マ" -"ネージドサービス、専用サービスをクラウドのリソースに接続する機能を意味するこ" -"ともある。" - -msgid "" -"A kind of web service API that uses REST, or Representational State " -"Transfer. REST is the style of architecture for hypermedia systems that is " -"used for the World Wide Web." -msgstr "" -"REST を使用する Web サービス API の 1 種。REST は、WWW 向けに使用される、ハイ" -"パーメディアシステム向けのアーキテクチャーの形式である。" - -msgid "" -"A lightweight SQL database, used as the default persistent storage method in " -"many OpenStack services." -msgstr "" -"軽量 SQL データベース。多くの OpenStack サービスでデフォルトの永続ストレージ" -"として使用されている。" - -msgid "" -"A list of API endpoints that are available to a user after authentication " -"with the Identity service." -msgstr "Identity による認証後、ユーザーが利用可能な API エンドポイントの一覧。" - -msgid "" -"A list of URL and port number endpoints that indicate where a service, such " -"as Object Storage, Compute, Identity, and so on, can be accessed." -msgstr "" -"URL やポート番号のエンドポイントの一覧。Object Storage、Compute、Identity な" -"どのサービスがアクセスできる場所を意味する。" - -msgid "A list of VM images that are available through Image service." -msgstr "Image service 経由で利用可能な仮想マシンイメージの一覧。" - -msgid "" -"A list of permissions attached to an object. An ACL specifies which users or " -"system processes have access to objects. It also defines which operations " -"can be performed on specified objects. Each entry in a typical ACL specifies " -"a subject and an operation. For instance, the ACL entry ``(Alice, delete)`` " -"for a file gives Alice permission to delete the file." -msgstr "" -"オブジェクトに対するアクセス許可の一覧。オブジェクトにアクセスできるユーザー" -"やシステムプロセスを指定する。また、特定のオブジェクトに対してどのような操作" -"が行えるかを定義する。通常のアクセス制御リスト (ACL) の項目では対象項目と操作" -"を指定する。例えば、あるファイルに対して ``(Alice, delete)`` という ACL 項目" -"が定義されると、 Alice にファイルを削除する許可が付与される。" - -msgid "" -"A list of tenants that can access a given VM image within Image service." -msgstr "" -"Image service 内で指定した仮想マシンイメージにアクセスできるテナントの一覧。" - -msgid "" -"A load balancer is a logical device that belongs to a cloud account. It is " -"used to distribute workloads between multiple back-end systems or services, " -"based on the criteria defined as part of its configuration." -msgstr "" -"負荷分散装置は、クラウドアカウントに属する論理デバイスである。その設定に定義" -"されている基準に基づき、複数のバックエンドのシステムやサービス間でワークロー" -"ドを分散するために使用される。" - -msgid "" -"A logical set of devices, such as web servers, that you group together to " -"receive and process traffic. The load balancing function chooses which " -"member of the pool handles the new requests or connections received on the " -"VIP address. Each VIP has one pool." -msgstr "" -"Web サーバーなどのデバイスの論理的な集合。一緒にトラフィックを受け、処理する" -"ために、グループ化する。負荷分散機能は、プール内のどのメンバーが仮想 IP アド" -"レスで受信した新規リクエストや接続を処理するかを選択します。各仮想 IP は 1 つ" -"のプールを持ちます。" - -msgid "" -"A mechanism that allows IPv6 packets to be transmitted over an IPv4 network, " -"providing a strategy for migrating to IPv6." -msgstr "" -"IPv6 パケットを IPv4 ネットワーク経由で送信するための機構。IPv6 に移行する手" -"段を提供する。" - -msgid "" -"A mechanism that allows many resources (for example, fonts, JavaScript) on a " -"web page to be requested from another domain outside the domain from which " -"the resource originated. In particular, JavaScript's AJAX calls can use the " -"XMLHttpRequest mechanism." -msgstr "" -"Web ページのさまざまなリソース (例: フォント、JavaScript) を、リソースのある" -"ドメインの外部から要求できるようになる機能。とくに、JavaScript の AJAX コール" -"が XMLHttpRequest 機能を使用できる。" - -msgid "" -"A message that is stored both in memory and on disk. The message is not lost " -"after a failure or restart." -msgstr "" -"メモリーとディスクの両方に保存されているメッセージ。メッセージは、故障や再起" -"動した後も失われません。" - -msgid "" -"A message that is stored in memory and is lost after the server is restarted." -msgstr "メモリーに保存され、サービスの再起動後に失われるメッセージ。" - -msgid "" -"A method for making file systems available over the network. Supported by " -"OpenStack." -msgstr "" -"ネットワーク経由でファイルシステムを利用可能にある方式。OpenStack によりサ" -"ポートされる。" - -msgid "" -"A method of VM live migration used by KVM to evacuate instances from one " -"host to another with very little downtime during a user-initiated " -"switchover. Does not require shared storage. Supported by Compute." -msgstr "" -"ユーザー操作によりあるホストから別のホストに切り替え中、わずかな停止時間でイ" -"ンスタンスを退避するために、KVM により使用される仮想マシンのライブマイグレー" -"ションの方法。共有ストレージ不要。Compute によりサポートされる。" - -msgid "" -"A method of operating system installation where a finalized disk image is " -"created and then used by all nodes without modification." -msgstr "" -"最終的なディスクイメージが作成され、すべてのノードで変更することなく使用され" -"る、オペレーティングシステムのインストール方法。" - -msgid "" -"A method to automatically configure networking for a host at boot time. " -"Provided by both Networking and Compute." -msgstr "" -"ホストの起動時にネットワークを自動的に設定する方式。Networking と Compute に" -"より提供される。" - -msgid "" -"A method to establish trusts between identity providers and the OpenStack " -"cloud." -msgstr "認証プロバイダーと OpenStack クラウド間で信頼を確立する方法。" - -msgid "" -"A method to further subdivide availability zones into hypervisor pools, a " -"collection of common hosts." -msgstr "" -"アベイラビリティーゾーンをさらに小さいハイパーバイザープールに分割するための" -"方法。一般的なホスト群。" - -msgid "" -"A minimal Linux distribution designed for use as a test image on clouds such " -"as OpenStack." -msgstr "" -"OpenStack などのクラウドでテストイメージとして使用するために設計された最小の " -"Linux ディストリビューション。" - -msgid "" -"A model that enables access to a shared pool of configurable computing " -"resources, such as networks, servers, storage, applications, and services, " -"that can be rapidly provisioned and released with minimal management effort " -"or service provider interaction." -msgstr "" -"ネットワーク、サーバー、ストレージ、アプリケーション、サービスなどの設定可能" -"なコンピューティングリソースの共有プールにアクセスできるモデル。最小限の管理" -"作業やサービスプロバイダーとのやりとりで、迅速に配備できてリリースできる。" - -msgid "" -"A network authentication protocol which works on the basis of tickets. " -"Kerberos allows nodes communication over a non-secure network, and allows " -"nodes to prove their identity to one another in a secure manner." -msgstr "" -"チケットベースで機能するネットワーク認証プロトコル。 Kerberos により、安全で" -"ないネットワークを通したノード通信ができ、ノードは安全な方法で互いに本人確認" -"ができるようになります。" - -msgid "" -"A network protocol used by a network client to obtain an IP address from a " -"configuration server. Provided in Compute through the dnsmasq daemon when " -"using either the FlatDHCP manager or VLAN manager network manager." -msgstr "" -"管理サーバーから IP アドレスを取得するために、ネットワーククライアントにより" -"使用されるネットワークプロトコル。FlatDHCP マネージャーや VLAN マネージャー使" -"用時、dnsmasq デーモン経由で Compute で提供される。" - -msgid "A network segment typically used for instance Internet access." -msgstr "" -"一般的にインスタンスのインターネットアクセスに使用されるネットワークセグメン" -"ト。" - -msgid "" -"A network segment used for administration, not accessible to the public " -"Internet." -msgstr "" -"管理のために使用されるネットワークセグメント。パブリックなインターネットから" -"アクセスできない。" - -msgid "" -"A network segment used for instance traffic tunnels between compute nodes " -"and the network node." -msgstr "" -"コンピュートノードとネットワークノード間で、インスタンスのトラフィックをトン" -"ネルするために使用されるネットワークセグメント。" - -msgid "" -"A network virtualization technology that attempts to reduce the scalability " -"problems associated with large cloud computing deployments. It uses a VLAN-" -"like encapsulation technique to encapsulate Ethernet frames within UDP " -"packets." -msgstr "" -"大規模なクラウドコンピューティング環境に関連するスケーラビリティー問題を削減" -"するためのネットワーク仮想化技術。VLAN のようなカプセル化技術を使用して、" -"Ethernet フレームを UDP パケット内にカプセル化する。" - -msgid "A node that provides the Object Storage proxy service." -msgstr "Object Storage プロキシサービスを提供するノード。" - -msgid "" -"A node that runs Object Storage account, container, and object services." -msgstr "" -"Object Storage のアカウントサービス、コンテナーサービス、オブジェクトサービス" -"を実行するノード。" - -msgid "" -"A node that runs network, volume, API, scheduler, and image services. Each " -"service may be broken out into separate nodes for scalability or " -"availability." -msgstr "" -"ネットワーク、ボリューム、API、スケジューラー、イメージサービスなどを実行する" -"ノード。各サービスは、スケーラビリティーや可用性のために、別々のノードに分割" -"することもできます。" - -msgid "" -"A node that runs the nova-compute daemon that manages VM instances that " -"provide a wide range of services, such as web applications and analytics." -msgstr "" -"nova-compute デーモン、Web アプリケーションや分析のような幅広いサービスを提供" -"する仮想マシンインスタンスを実行するノード。" - -msgid "A notification agent (``ceilometer-agent-notification``)" -msgstr "通知エージェント (``ceilometer-agent-notification``)" - -msgid "" -"A notification driver that monitors VM instances and updates the capacity " -"cache as needed." -msgstr "" -"VM インスタンスを監視し、必要に応じて容量キャッシュを更新する通知ドライバ。" - -msgid "A notification listener (``aodh-listener``)" -msgstr "通知リスナー (``aodh-listener``)" - -msgid "" -"A number of periodic processes run on the OpenStack Image service to support " -"caching. Replication services ensure consistency and availability through " -"the cluster. Other periodic processes include auditors, updaters, and " -"reapers." -msgstr "" -"キャッシュをサポートするために、 OpenStack Image service 上では多くの定期的な" -"プロセスが実行されます。複製サービスにより、クラスター全体での一貫性と可用性" -"が確保されます。他の定期的なプロセスには auditor、 updater, reaper がありま" -"す。" - -msgid "" -"A number within a database that is incremented each time a change is made. " -"Used by Object Storage when replicating." -msgstr "" -"変更が行われる度に増加するデータベース内の数値。Object Storage が複製を行う際" -"に使用する。" - -msgid "" -"A package commonly installed in VM images that performs initialization of an " -"instance after boot using information that it retrieves from the metadata " -"service, such as the SSH public key and user data." -msgstr "" -"メタデータサービスから取得した、SSH 公開鍵やユーザーデータなどの情報を使用し" -"て、インスタンスの起動後に初期化を実行する、一般的に仮想マシンイメージにイン" -"ストールされるパッケージ。" - -msgid "" -"A packaged version available in the Open Build Service (`https://build." -"opensuse.org/package/show? package=python-pip&project=Cloud:OpenStack:Master " -"`__) enables you to use YaST or zypper to install the " -"package." -msgstr "" -"Open Build Service (`https://build.opensuse.org/package/show?package=python-" -"pip&project=Cloud:OpenStack:Master `__) にあるパッケージを利用" -"できます。または、パッケージをインストールするために YaST や zypper を使用で" -"きます。" - -msgid "A packaged version enables you to use yum to install the package:" -msgstr "yum を使用してインストールできるパッケージがあります。" - -msgid "A persistent storage method supported by XenAPI, such as iSCSI or NFS." -msgstr "iSCSI や NFS など、XenAPI によりサポートされる永続ストレージ方式。" - -msgid "A person who plans, designs, and oversees the creation of clouds." -msgstr "クラウドの作成を計画、設計および監督する人。" - -msgid "" -"A personality that a user assumes to perform a specific set of operations. A " -"role includes a set of rights and privileges. A user assuming that role " -"inherits those rights and privileges." -msgstr "" -"ユーザーが特定の操作の組を実行すると仮定する人格。ロールは一組の権利と権限を" -"含みます。そのロールを仮定しているユーザーは、それらの権利と権限を継承しま" -"す。" - -msgid "A physical computer, not a VM instance (node)." -msgstr "物理コンピューター。仮想マシンインスタンス (ノード) ではない。" - -msgid "" -"A physical or virtual device that provides connectivity to another device or " -"medium." -msgstr "他のデバイスやメディアに接続する物理デバイスまたは仮想デバイス。" - -msgid "" -"A physical or virtual network device that passes network traffic between " -"different networks." -msgstr "" -"異なるネットワーク間でネットワーク通信を転送する、物理または仮想のネットワー" -"クデバイス。" - -msgid "" -"A piece of software that makes available another piece of software over a " -"network." -msgstr "" -"他のソフトウェア部品をネットワーク経由で利用可能にするソフトウェア部品。" - -msgid "" -"A platform that provides a suite of desktop environments that users access " -"to receive a desktop experience from any location. This may provide general " -"use, development, or even homogeneous testing environments." -msgstr "" -"デスクトップ環境群を提供するプラットフォーム。ユーザーがどこからでもデスク" -"トップを利用するためにアクセスする可能性がある。一般的な使用、開発、同種のテ" -"スト環境さえも提供できる。" - -msgid "A plug-in for the OpenStack dashboard (horizon)." -msgstr "OpenStack dashboard (horizon) のプラグイン。" - -msgid "" -"A point-in-time copy of an OpenStack storage volume or image. Use storage " -"volume snapshots to back up volumes. Use image snapshots to back up data, or " -"as \"gold\" images for additional servers." -msgstr "" -"OpenStack ストレージボリュームやイメージの、ある時点でのコピー。ストレージの" -"ボリュームスナップショットは、ボリュームをバックアップするために使用する。イ" -"メージスナップショットは、データのバックアップを行ったり、新しいサーバー用の" -"「ゴールド」イメージ(設定済みイメージ)としてバックアップしたりするのに使用" -"する。" - -msgid "" -"A pre-made VM image that serves as a cloudpipe server. Essentially, OpenVPN " -"running on Linux." -msgstr "" -"cloudpipe サーバとしてサービスを行う為の、予め用意された VM イメージ。本質的" -"には Linux 上で実行される OpenVPN。" - -msgid "" -"A process that is created when a RPC call is executed; used to push the " -"message to the topic exchange." -msgstr "" -"RPC コールが実行されるときに作成されるプロセス。メッセージをトピック交換者に" -"プッシュするために使用される。" - -msgid "" -"A process that runs in the background and waits for requests. May or may not " -"listen on a TCP or UDP port. Do not confuse with a worker." -msgstr "" -"バックグラウンドで動作し、リクエストを待機するプロセス。TCP ポートや UDP ポー" -"トをリッスンする可能性がある。ワーカーとは異なる。" - -msgid "" -"A program that keeps the Image service VM image cache at or below its " -"configured maximum size." -msgstr "" -"Image service の仮想マシンイメージキャッシュを設定した最大値以下に保つプログ" -"ラム。" - -msgid "" -"A programming language that is used to create systems that involve more than " -"one computer by way of a network." -msgstr "" -"ネットワーク経由で複数のコンピューターが関連するシステムを作成するために使用" -"されるプログラミング言語。" - -msgid "" -"A project that is not officially endorsed by the OpenStack Foundation. If " -"the project is successful enough, it might be elevated to an incubated " -"project and then to a core project, or it might be merged with the main code " -"trunk." -msgstr "" -"OpenStack Foundation で公認されていないプロジェクト。プロジェクトが充分成功し" -"た場合、育成プロジェクトに昇格し、その後コアプロジェクトに昇格する事がある。" -"あるいはメインの code trunk にマージされる事もある。" - -msgid "" -"A project that ports the shell script-based project named DevStack to Python." -msgstr "" -"DevStack という名前のシェルスクリプトベースのプロジェクトを Python に移植する" -"プロジェクト。" - -msgid "A recommended architecture for an OpenStack cloud." -msgstr "OpenStack クラウドの推奨アーキテクチャー。" - -msgid "" -"A record that specifies information about a particular domain and belongs to " -"the domain." -msgstr "特定のドメインに関する情報を指定し、ドメインに所属するレコード。" - -msgid "" -"A remote, mountable file system in the context of the Shared File Systems. " -"You can mount a share to, and access a share from, several hosts by several " -"users at a time." -msgstr "" -"Shared File System サービスにおいて、リモートのマウント可能なファイルシステム" -"のこと。同時に、複数のユーザーが複数のホストから、共有をマウントしたり、アク" -"セスしたりできる。" - -msgid "A routing algorithm in the Compute RabbitMQ." -msgstr "Compute RabbitMQ におけるルーティングアルゴリズム。" - -msgid "" -"A routing table that is created within the Compute RabbitMQ during RPC " -"calls; one is created for each RPC call that is invoked." -msgstr "" -"RPC コール中に Compute RabbitMQ 内で作成されるルーティングテーブル。関連する" -"各 RPC コールに対して作成されるもの。" - -msgid "" -"A running VM, or a VM in a known state such as suspended, that can be used " -"like a hardware server." -msgstr "" -"実行中の仮想マシン。または、一時停止などの既知の状態にある仮想マシン。ハード" -"ウェアサーバーのように使用できる。" - -msgid "" -"A scheduling method used by Compute that randomly chooses an available host " -"from the pool." -msgstr "" -"利用可能なホストをプールからランダムに選択する、Compute により使用されるスケ" -"ジューリング方式。" - -msgid "A scripting language that is used to build web pages." -msgstr "Web ページを構築するために使用されるスクリプト言語。" - -msgid "" -"A security model that focuses on data confidentiality and controlled access " -"to classified information. This model divide the entities into subjects and " -"objects. The clearance of a subject is compared to the classification of the " -"object to determine if the subject is authorized for the specific access " -"mode. The clearance or classification scheme is expressed in terms of a " -"lattice." -msgstr "" -"データの機密性、および区分けした情報へのアクセスの制御に注力したセキュリ" -"ティーモデル。このモデルは、エンティティーをサブジェクト (主体) とオブジェク" -"ト (対象) に分ける。サブジェクトが特定のアクセスモードを許可されるかどうかを" -"判断するために、サブジェクトの権限がオブジェクトの区分と比較される。権限や区" -"分のスキーマは、格子モデルで表現される。" - -msgid "" -"A server daemon that serves the Nova Cert service for X509 certificates. " -"Used to generate certificates for ``euca-bundle-image``. Only needed for the " -"EC2 API." -msgstr "" -"X509 証明書用の Nova Cert サービスを提供するサーバーデーモン。 ``euca-bundle-" -"image`` 用の証明書を生成するのに使用されます。 EC2 API を使用する場合にのみ必" -"要です。" - -msgid "" -"A set of OpenStack resources created and managed by the Orchestration " -"service according to a given template (either an AWS CloudFormation template " -"or a Heat Orchestration Template (HOT))." -msgstr "" -"指定されたテンプレート (AWS CloudFormation テンプレートまたは Heat " -"Orchestration Template (HOT)) に基づいて、Orchestration により作成、管理され" -"る OpenStack リソース群。" - -msgid "" -"A set of network traffic filtering rules that are applied to a Compute " -"instance." -msgstr "" -"Compute のインスタンスに適用される、ネットワーク通信のフィルタリングルールの" -"集合。" - -msgid "" -"A set of segment objects that Object Storage combines and sends to the " -"client." -msgstr "" -"Object Storage が結合し、クライアントに送信する、オブジェクトの断片の塊。" - -msgid "" -"A simple certificate authority provided by Compute for cloudpipe VPNs and VM " -"image decryption." -msgstr "" -"cloudpipe VPN と仮想マシンイメージの復号のために、Compute により提供される簡" -"単な認証局。" - -msgid "" -"A special Object Storage object that contains the manifest for a large " -"object." -msgstr "" -"大きなオブジェクト向けのマニフェストを含む、特別な Object Storage のオブジェ" -"クト。" - -msgid "" -"A special type of VM image that is booted when an instance is placed into " -"rescue mode. Allows an administrator to mount the file systems for an " -"instance to correct the problem." -msgstr "" -"インスタンスがレスキューモード時に起動する、特別な種類の仮想マシンイメージ。" -"管理者が問題を修正するために、インスタンスのファイルシステムをマウントでき" -"る。" - -msgid "" -"A specification that, when implemented by a physical PCIe device, enables it " -"to appear as multiple separate PCIe devices. This enables multiple " -"virtualized guests to share direct access to the physical device, offering " -"improved performance over an equivalent virtual device. Currently supported " -"in OpenStack Havana and later releases." -msgstr "" -"物理 PCIe デバイスにより実装されるとき、複数の別々の PCIe デバイスとして見え" -"るようにできる仕様。これにより、複数の仮想化ゲストが物理デバイスへの直接アク" -"セスを共有できるようになる。同等の仮想デバイス経由より性能を改善できる。" - -msgid "" -"A standardized interface for managing compute, data, and network resources, " -"currently unsupported in OpenStack." -msgstr "" -"コンピュート、データ、ネットワークのリソースを管理するための標準的なインター" -"フェース。現在 OpenStack でサポートされない。" - -msgid "" -"A string of text provided to the client after authentication. Must be " -"provided by the user or process in subsequent requests to the API endpoint." -msgstr "" -"認証後にクライアントに提供されるテキスト文字列。API エンドポイントに続くリク" -"エストにおいて、ユーザーまたはプロセスにより提供される必要がある。" - -msgid "" -"A subset of API calls that are accessible to authorized administrators and " -"are generally not accessible to end users or the public Internet. They can " -"exist as a separate service (keystone) or can be a subset of another API " -"(nova)." -msgstr "" -"認可された管理者がアクセスでき、一般的にエンドユーザーとパブリックなインター" -"ネットがアクセスできない、API コールのサブセット。専用のサービス (keystone) " -"が存在し、他の API (nova) のサブセットになる可能性がある。" - -msgid "" -"A system by which Internet domain name-to-address and address-to-name " -"resolutions are determined. DNS helps navigate the Internet by translating " -"the IP address into an address that is easier to remember. For example, " -"translating 111.111.111.1 into www.yahoo.com. All domains and their " -"components, such as mail servers, utilize DNS to resolve to the appropriate " -"locations. DNS servers are usually set up in a master-slave relationship " -"such that failure of the master invokes the slave. DNS servers might also be " -"clustered or replicated such that changes made to one DNS server are " -"automatically propagated to other active servers. In Compute, the support " -"that enables associating DNS entries with floating IP addresses, nodes, or " -"cells so that hostnames are consistent across reboots." -msgstr "" -"インターネットのドメイン名からアドレス、アドレスからドメイン名に名前解決する" -"システム。DNS は、IP アドレスを人間が覚えやすいアドレスに変換することにより、" -"インターネットを参照しやすくする。例えば、111.111.111.1 を www.yahoo.com に変" -"換する。すべてのドメイン、メールサーバーなどのコンポーネントは、DNS を利用し" -"て、適切な場所を解決する。DNS サーバーは、マスターの障害がスレーブにより助け" -"られるよう、一般的にマスターとスレーブの関係で構築する。DNS サーバーは、ある " -"DNS サーバーへの変更が他の動作中のサーバーに自動的に反映されるよう、クラス" -"ター化やレプリケーションされることもある。 Compute では、 Floating IP アドレ" -"ス、ノード、セルを DNS エントリーに関連付けることができ、リブートの前後でホス" -"ト名が変わらないようにできます。" - -msgid "" -"A system that provides services to other system entities. In case of " -"federated identity, OpenStack Identity is the service provider." -msgstr "" -"サービスを他のシステムエンティティーに提供するシステム。連合認証の場合、" -"OpenStack Identity がサービスプロバイダーとなる。" - -msgid "" -"A tool to automate system configuration and installation on Debian-based " -"Linux distributions." -msgstr "" -"Debian 系の Linux ディストリビューションでシステム設定やインストールを自動化" -"するツール。" - -msgid "" -"A tool to automate system configuration and installation on Red Hat, Fedora, " -"and CentOS-based Linux distributions." -msgstr "" -"Red Hat、Fedora、CentOS 系の Linux ディストリビューションにおいて、システム設" -"定とインストールを自動化するためのツール。" - -msgid "A type of VM image that exists as a single, bootable file." -msgstr "単独の、ブート可能なファイルとして存在する仮想マシンイメージの形式。" - -msgid "" -"A type of image file that is commonly used for animated images on web pages." -msgstr "Web ページのアニメーション画像によく使用される画像ファイルの形式。" - -msgid "" -"A type of reboot where a physical or virtual power button is pressed as " -"opposed to a graceful, proper shutdown of the operating system." -msgstr "" -"きちんとした正常なOSのシャットダウンを行わず、物理又は仮想電源ボタンを押すタ" -"イプの再起動。" - -msgid "A unique ID given to each replica of an Object Storage database." -msgstr "Object Storage データベースの各レプリカに与えられる一意な ID。" - -msgid "" -"A unit of storage within Object Storage used to store objects. It exists on " -"top of devices and is replicated for fault tolerance." -msgstr "" -"オブジェクトを保存するために使用される、Object Storage 内の保存単位。デバイス" -"の上位に存在し、耐障害のために複製される。" - -msgid "" -"A user specifies their username and password credentials to interact with " -"OpenStack, using any client command. These credentials can be specified " -"using various mechanisms, namely, the environment variable or command-line " -"argument. It is not safe to specify the password using either of these " -"methods." -msgstr "" -"ユーザーは、何らかのクライアントコマンドを使用して、ユーザー名とパスワードを" -"指定して、OpenStack を使用します。これらのクレデンシャルは、環境変数やコマン" -"ドライン引数など、さまざまな方法により指定できます。これらの方法を用いて、パ" -"スワードを指定することは安全ではありません。" - -msgid "" -"A user-created Python module that is loaded by horizon to change the look " -"and feel of the dashboard." -msgstr "" -"ダッシュボードのルックアンドフィールを変更する為に Horizon がロードする、ユー" -"ザが作成した Python モジュール。" - -msgid "" -"A virtual network port within Networking; VIFs / vNICs are connected to a " -"port." -msgstr "" -"Networking 内の仮想ネットワークポート。仮想インターフェースや仮想 NIC は、" -"ポートに接続されます。" - -msgid "" -"A virtual network that provides connectivity between entities. For example, " -"a collection of virtual ports that share network connectivity. In Networking " -"terminology, a network is always a layer-2 network." -msgstr "" -"エンティティ間の接続性を提供する仮想ネットワーク。例えば、ネットワーク接続性" -"を共有する仮想ポート群。Networking の用語では、ネットワークは必ず L2 ネット" -"ワークを意味する。" - -msgid "" -"A volume is a detachable block storage device, similar to a USB hard drive. " -"You can attach a volume to only one instance. To create and manage volumes, " -"you use a combination of ``nova`` and ``cinder`` client commands." -msgstr "" -"ボリュームは、USB ハードディスクのように、着脱可能なブロックストレージです。" -"ボリュームは、インスタンス 1 つだけに接続できます。``nova`` コマンドと " -"``cinder`` コマンドを組み合わせて、ボリュームを作成して管理します。" - -msgid "A web framework used extensively in horizon." -msgstr "Horizon 中で広く使用される Web フレームワーク。" - -msgid "" -"A worker daemon that creates and terminates virtual machine instances " -"through hypervisor APIs. For example:" -msgstr "" -"ハイパーバイザー API を使用して仮想マシンインスタンスの作成、終了を行うワー" -"カーデーモン。例えば、以下のようなハイパーバイザー API に対応しています。" - -msgid "" -"A worker process that verifies the integrity of Object Storage objects, " -"containers, and accounts. Auditors is the collective term for the Object " -"Storage account auditor, container auditor, and object auditor." -msgstr "" -"Object Storage のオブジェクト、コンテナー、アカウントの完全性を検証するワー" -"カープロセス。auditor は、Object Storage アカウント auditor、コンテナー " -"auditor、オブジェクト auditor の総称。" - -msgid "" -"A wrapper used by the Image service that contains a VM image and its " -"associated metadata, such as machine state, OS disk size, and so on." -msgstr "" -"仮想マシンイメージ、および、マシンの状態や OS ディスク容量などの関連メタデー" -"タを含む、Image service により使用されるラッパー。" - -msgid "ACL" -msgstr "ACL" - -msgid "API endpoint" -msgstr "API エンドポイント" - -msgid "API extension" -msgstr "API 拡張" - -msgid "API extension plug-in" -msgstr "API 拡張プラグイン" - -msgid "API key" -msgstr "API キー" - -msgid "API server" -msgstr "API サーバー" - -msgid "API token" -msgstr "API トークン" - -msgid "" -"API used to access OpenStack Networking. Provides an extensible architecture " -"to enable custom plug-in creation." -msgstr "" -"OpenStack Networking にアクセスするために利用する API。独自プラグインを作成で" -"きる拡張性を持ったアーキテクチャーになっている。" - -msgid "API used to access OpenStack Object Storage." -msgstr "OpenStack Object Storage にアクセスするために使用する API。" - -msgid "API version" -msgstr "API バージョン" - -msgid "ATA over Ethernet (AoE)" -msgstr "ATA over Ethernet (AoE)" - -msgid "AWS" -msgstr "AWS" - -msgid "" -"AWS CloudFormation allows AWS users to create and manage a collection of " -"related resources. The Orchestration service supports a CloudFormation-" -"compatible format (CFN)." -msgstr "" -"AWS CloudFormation により、AWS ユーザーは関連するリソース群を作成し、管理でき" -"るようになる。オーケストレーションサービスは CloudFormation 互換形式 (CFN) を" -"サポートする。" - -msgid "AWS CloudFormation template" -msgstr "AWS CloudFormation テンプレート" - -msgid "" -"Absolute limit on the amount of network traffic a Compute VM instance can " -"send and receive." -msgstr "" -"Compute の仮想マシンインスタンスが送受信できるネットワーク通信量の絶対制限。" - -msgid "Accept a volume transfer request" -msgstr "ボリュームの譲渡要求の受理" - -msgid "Accept the request:" -msgstr "要求を確定します。" - -msgid "" -"Accepts API requests, and routes them to the ``cinder-volume`` for action." -msgstr "" -"API リクエストを受け付け、それらを処理するために ``cinder-volume`` に中継しま" -"す。" - -msgid "Accepts Image API calls for image discovery, retrieval, and storage." -msgstr "イメージの検索、取得、保存の Image API を受け付けます。" - -msgid "" -"Accepts OpenStack Object Storage API and raw HTTP requests to upload files, " -"modify metadata, and create containers. It also serves file or container " -"listings to web browsers. To improve performance, the proxy server can use " -"an optional cache that is usually deployed with memcache." -msgstr "" -"OpenStack Object Storage API と生の HTTP リクエストを受け付け、ファイルのアッ" -"プロード、メタデータの変更、コンテナーの作成などを行います。ウェブブラウザー" -"に対するファイルやコンテナーの一覧表示も行えます。性能を向上させるために、プ" -"ロキシーサーバーがキャッシュを使うこともできます。通常はキャッシュには " -"memcache が使用されます。" - -msgid "" -"Accepts and responds to end user compute API calls. The service supports the " -"OpenStack Compute API, the Amazon EC2 API, and a special Admin API for " -"privileged users to perform administrative actions. It enforces some " -"policies and initiates most orchestration activities, such as running an " -"instance." -msgstr "" -"エンドユーザーからの compute API 呼び出しを受け取り応答します。このサービス" -"は OpenStack Compute API、Amazon EC2 API 、および、特権ユーザーが管理用操作を" -"実行するための特別な管理 API をサポートしています。ポリシーの適用を行います。" -"インスタンス起動などのほとんどの処理がこのサービスから開始されます。" - -msgid "" -"Accepts and routes API requests to the appropriate OpenStack Networking plug-" -"in for action." -msgstr "" -"API リクエストを受け付け、適切な OpenStack Networking プラグインに処理を中継" -"します。" - -msgid "Access associated with a VM" -msgstr "割り当てられた VM がアクセス" - -msgid "Access can be provided to a VM" -msgstr "VM からアクセス可能" - -msgid "" -"Access the Database service instance using typical database access commands. " -"For example, with MySQL:" -msgstr "" -"一般的なデータベースアクセスコマンドを使用して、Database サービスのインスタン" -"スにアクセスします。MySQL の例:" - -msgid "Account servers (swift-account-server)" -msgstr "アカウントサーバー (swift-account-server)" - -msgid "Active Directory" -msgstr "Active Directory" - -msgid "" -"Acts as the gatekeeper to Object Storage and is responsible for " -"authenticating the user." -msgstr "Object Storage へのゲートとして動作する。ユーザーの認証に責任を持つ。" - -msgid "" -"Add a line to include your newly created style sheet. For example, ``custom." -"css`` file:" -msgstr "" -"新しく作成したスタイルシートを含む行を追加します。``custom.css`` ファイルの" -"例::" - -msgid "Address Resolution Protocol (ARP)" -msgstr "Address Resolution Protocol (ARP)" - -msgid "Administrator configures size setting, based on flavors" -msgstr "管理者がフレーバーに基づいてサイズを設定" - -msgid "Advanced Message Queuing Protocol (AMQP)" -msgstr "Advanced Message Queuing Protocol (AMQP)" - -msgid "Advanced RISC Machine (ARM)" -msgstr "Advanced RISC Machine (ARM)" - -msgid "" -"After the volume recipient, or new owner, accepts the transfer, you can see " -"that the transfer is no longer available:" -msgstr "" -"ボリュームの転送先 (新しい所有者) が転送を確定した後は、その転送がすでに利用" -"できない状態になっていることが分かります。" - -msgid "" -"After you restart the Image service, you can use the following syntax to " -"view the image's location information:" -msgstr "" -"Image service を再起動してから、以下の構文を使用してイメージの場所情報を確認" -"します。" - -msgid "After you upload an image, you cannot change it." -msgstr "イメージをアップロードした後は、イメージを変更できません。" - -msgid "" -"All OpenStack core projects are provided under the terms of the Apache " -"License 2.0 license." -msgstr "" -"すべての OpenStack コアプロジェクトは Apache License 2.0 ライセンスの条件で提" -"供されている。" - -msgid "" -"Allows a user to set a flag on an Object Storage container so that all " -"objects within the container are versioned." -msgstr "" -"コンテナー内のすべてのオブジェクトがバージョンを付けられるように、ユーザーが " -"Object Storage のコンテナーにフラグを設定できる。" - -msgid "Alphanumeric ID assigned to each Identity service role." -msgstr "各 Identity service ロールに割り当てられる英数 ID。" - -msgid "Alternative name for the Block Storage API." -msgstr "Block Storage API の別名。" - -msgid "Alternative name for the glance image API." -msgstr "Glance イメージ API の別名。" - -msgid "Alternative term for a Networking plug-in or Networking API extension." -msgstr "Networking プラグインや Networking API 拡張の別名。" - -msgid "Alternative term for a RabbitMQ message exchange." -msgstr "RabbitMQ メッセージ交換の別名。" - -msgid "Alternative term for a VM image." -msgstr "VM イメージの別名。" - -msgid "Alternative term for a VM instance type." -msgstr "VM インスタンスタイプの別名。" - -msgid "Alternative term for a VM or guest." -msgstr "仮想マシンやゲストの別名。" - -msgid "Alternative term for a cloud controller node." -msgstr "クラウドコントローラーノードの別名。" - -msgid "Alternative term for a cloudpipe." -msgstr "cloudpipe の別名。" - -msgid "Alternative term for a fixed IP address." -msgstr "Fixed IP アドレスの別名。" - -msgid "Alternative term for a flavor ID." -msgstr "フレーバー ID の別名。" - -msgid "Alternative term for a non-durable exchange." -msgstr "非永続交換の別名。" - -msgid "Alternative term for a non-durable queue." -msgstr "非永続キューの別名。" - -msgid "Alternative term for a paused VM instance." -msgstr "一時停止 VM インスタンスの別名。" - -msgid "Alternative term for a virtual network." -msgstr "仮想ネットワークの別名。" - -msgid "Alternative term for a volume plug-in." -msgstr "ボリュームプラグインの別名。" - -msgid "" -"Alternative term for an API extension or plug-in. In the context of Identity " -"service, this is a call that is specific to the implementation, such as " -"adding support for OpenID." -msgstr "" -"API 拡張やプラグインの別名。Identity service では、OpenID のサポートの追加な" -"ど、特定の実装を意味する。" - -msgid "Alternative term for an API token." -msgstr "API トークンの別名。" - -msgid "Alternative term for an Amazon EC2 access key. See EC2 access key." -msgstr "Amazon EC2 アクセスキーの別名。EC2 アクセスキー参照。" - -msgid "Alternative term for an Identity service catalog." -msgstr "Identity サービスカタログの別名。" - -msgid "Alternative term for an Identity service default token." -msgstr "Identity service デフォルトトークンの別名。" - -msgid "Alternative term for an Object Storage authorization node." -msgstr "Object Storage 認可ノードの別名。" - -msgid "Alternative term for an admin API." -msgstr "管理 API(admin API)の別名。" - -msgid "Alternative term for an ephemeral volume." -msgstr "エフェメラルボリュームの別名。" - -msgid "Alternative term for an image." -msgstr "イメージの別名。" - -msgid "Alternative term for instance UUID." -msgstr "インスタンス UUID の別名。" - -msgid "Alternative term for non-durable." -msgstr "非永続の別名。" - -msgid "Alternative term for tenant." -msgstr "テナントの別名。" - -msgid "Alternative term for the Compute API." -msgstr "Compute API の別名。" - -msgid "Alternative term for the Identity service API." -msgstr "Identity service API の別名。" - -msgid "Alternative term for the Identity service catalog." -msgstr "Identity サービスカタログの別名。" - -msgid "Alternative term for the Image service image registry." -msgstr "Image service イメージレジストリの別名。" - -msgid "Alternative term for the Image service registry." -msgstr "Image service レジストリの別名。" - -msgid "Alternatively, users can set ``os_distro`` to a URL:" -msgstr "代わりに、ユーザーは ``os_distro`` を URL に設定できます。" - -msgid "" -"Alternatively, you can create the ``PROJECT-openrc.sh`` file from scratch, " -"if you cannot download the file from the dashboard." -msgstr "" -"何らかの理由によりダッシュボードからファイルをダウンロードできない場合、代わ" -"りに最初から ``PROJECT-openrc.sh`` ファイルを作成できます。" - -msgid "Amazon Kernel Image (AKI)" -msgstr "Amazon Kernel Image (AKI)" - -msgid "Amazon Machine Image (AMI)" -msgstr "Amazon Machine Image (AMI)" - -msgid "Amazon Ramdisk Image (ARI)" -msgstr "Amazon Ramdisk Image (ARI)" - -msgid "Amazon Web Services." -msgstr "Amazon Web Services。" - -msgid "" -"An API endpoint used for both service-to-service communication and end-user " -"interactions." -msgstr "" -"サービス間通信やエンドユーザーの操作などに使用される API エンドポイント。" - -msgid "" -"An API on a separate endpoint for attaching, detaching, and creating block " -"storage for compute VMs." -msgstr "" -"コンピュート VM 用のブロックストレージの作成、接続、接続解除を行うための API " -"で、独立したエンドポイントとして提供される。" - -msgid "An API server (``aodh-api``)" -msgstr "API サーバー (``aodh-api``)" - -msgid "An API server (``ceilometer-api``)" -msgstr "API サーバー (``ceilometer-api``)" - -msgid "An API that is accessible to tenants." -msgstr "テナントにアクセス可能な API。" - -msgid "" -"An AWS Query API that is compatible with AWS CloudFormation. It processes " -"API requests by sending them to the ``heat-engine`` over RPC." -msgstr "" -"AWS CloudFormation 互換の AWS Query API を提供します。受け取った API リスクエ" -"ストを RPC 経由で ``heat-engine`` に送信します。" - -msgid "" -"An Amazon EBS storage volume that contains a bootable VM image, currently " -"unsupported in OpenStack." -msgstr "" -"ブート可能な仮想マシンイメージを含む Amazon EBS ストレージボリューム。現在 " -"OpenStack では未サポート。" - -msgid "" -"An Amazon EC2 concept of an isolated area that is used for fault tolerance. " -"Do not confuse with an OpenStack Compute zone or cell." -msgstr "" -"耐障害性のために使用されるエリアを分離する Amazon EC2 の概念。OpenStack " -"Compute のゾーンやセルと混同しないこと。" - -msgid "" -"An IP address that a project can associate with a VM so that the instance " -"has the same public IP address each time that it boots. You create a pool of " -"floating IP addresses and assign them to instances as they are launched to " -"maintain a consistent IP address for maintaining DNS assignment." -msgstr "" -"インスタンスを起動するたびに同じパブリック IP アドレスを持てるように、プロ" -"ジェクトが仮想マシンに関連付けられる IP アドレス。DNS 割り当てを維持するため" -"に、Floating IP アドレスのプールを作成し、インスタンスが起動するたびにそれら" -"をインスタンスに割り当て、一貫した IP アドレスを維持します。" - -msgid "" -"An IP address that can be assigned to a VM instance within the shared IP " -"group. Public IP addresses can be shared across multiple servers for use in " -"various high-availability scenarios. When an IP address is shared to another " -"server, the cloud network restrictions are modified to enable each server to " -"listen to and respond on that IP address. You can optionally specify that " -"the target server network configuration be modified. Shared IP addresses can " -"be used with many standard heartbeat facilities, such as keepalive, that " -"monitor for failure and manage IP failover." -msgstr "" -"共有 IP グループ内の仮想マシンインスタンスに割り当てられる IP アドレス。パブ" -"リック IP アドレスは、さまざまな高可用性のシナリオで使用するために複数サー" -"バーにまたがり共有できる。IP アドレスが別のサーバーと共有されるとき、クラウド" -"のネットワーク制限が変更され、各サーバーがリッスンでき、その IP アドレスに応" -"答できるようになる。オプションとして、対象サーバーの変更するネットワーク設定" -"を指定できる。共有 IP アドレスは、keepalive などの多くの標準的なハートビート" -"機能と一緒に使用でき、エラーをモニターし、IP のフェイルオーバーを管理しる。" - -msgid "An IP address that is accessible to end-users." -msgstr "エンドユーザがアクセス可能な IP アドレス。" - -msgid "" -"An IP address that is associated with the same instance each time that " -"instance boots, is generally not accessible to end users or the public " -"Internet, and is used for management of the instance." -msgstr "" -"インスタンス起動時に毎回同じインスタンスに割当られるIPアドレス(一般に、エン" -"ドユーザやパブリックインターネットからはアクセス出来ない)。インスタンスの管" -"理に使用される。" - -msgid "" -"An IP address used for management and administration, not available to the " -"public Internet." -msgstr "" -"管理のために使用される IP アドレス。パブリックなインターネットから利用できま" -"せん。" - -msgid "" -"An IP address, typically assigned to a router, that passes network traffic " -"between different networks." -msgstr "" -"異なるネットワーク間でネットワーク通信を中継する、IP アドレス。一般的にはルー" -"ターに割り当てられる。" - -msgid "" -"An Identity API v3 entity. Represents a collection of projects, groups and " -"users that defines administrative boundaries for managing OpenStack Identity " -"entities. On the Internet, separates a website from other sites. Often, the " -"domain name has two or more parts that are separated by dots. For example, " -"yahoo.com, usa.gov, harvard.edu, or mail.yahoo.com. Also, a domain is an " -"entity or container of all DNS-related information containing one or more " -"records." -msgstr "" -"Identity API v3 のエンティティー。プロジェクト、グループ、ユーザーの集合体" -"で、 OpenStack Identity のエンティティー管理において管理境界を定義するための" -"ものである。インターネット分野では、ドメインによりウェブサイトが区別され、多" -"くの場合、ドメイン名はドット区切りの 2 以上の部分から構成される。例えば、 " -"yahoo.com, usa.gov, harvard.edu, mail.yahoo.com など。また、ドメインは、DNS " -"関連情報のエンティティーや 1 つ以上のレコードを持つ DNS 関連の情報の入れ物を" -"表すのにも使用される。" - -msgid "" -"An Identity service API access token that is associated with a specific " -"tenant." -msgstr "特定のテナントに関連付けられた Identity service API アクセストークン。" - -msgid "" -"An Identity service API endpoint that is associated with one or more tenants." -msgstr "" -"1 つ以上のテナントと関連付けられた Identity service API エンドポイント。" - -msgid "" -"An Identity service component that manages and validates tokens after a user " -"or tenant has been authenticated." -msgstr "" -"ユーザーやテナントが認証された後、トークンを管理し、検証する Identity のコン" -"ポーネント。" - -msgid "" -"An Identity service feature that enables services, such as Compute, to " -"automatically register with the catalog." -msgstr "" -"自動的にカタログに登録するために、Compute などのサービスを有効化する、" -"Identity の機能。" - -msgid "" -"An Identity service that lists API endpoints that are available to a user " -"after authentication with the Identity service." -msgstr "" -"ユーザーが Identity で認証後、利用可能な API エンドポイントを一覧表示する、" -"Identity のサービス。" - -msgid "" -"An Identity service token that is not associated with a specific tenant and " -"is exchanged for a scoped token." -msgstr "" -"特定のテナントに関連づけられていない、スコープ付きトークンのために交換され" -"る、Identity のトークン。" - -msgid "" -"An Identity v3 API entity. Represents a collection of users that is owned by " -"a specific domain." -msgstr "" -"Identity v3 API のエンティティーで、特定のドメイン内のユーザーの集合を表す。" - -msgid "An Image service VM image that is available to all tenants." -msgstr "すべてのテナントが利用できる Image service の仮想マシンイメージ。" - -msgid "An Image service VM image that is only available to specified tenants." -msgstr "指定したテナントのみで利用可能な Image service の仮想マシンイメージ。" - -msgid "" -"An Image service container format that indicates that no container exists " -"for the VM image." -msgstr "" -"仮想マシンイメージ用のコンテナーが存在しないことを意味する、Image service の" -"コンテナー形式。" - -msgid "" -"An Image service that provides VM image metadata information to clients." -msgstr "" -"クライアントに仮想マシンイメージメタデータ情報を提供する Image service。" - -msgid "" -"An Internet Protocol (IP) address configured on the load balancer for use by " -"clients connecting to a service that is load balanced. Incoming connections " -"are distributed to back-end nodes based on the configuration of the load " -"balancer." -msgstr "" -"負荷分散するサービスへのクライアント接続に使用される負荷分散装置において設定" -"される IP アドレス。受信の接続が、負荷分散の設定に基づいて、バックエンドの" -"ノードに分散される。" - -msgid "An L2 network segment within Networking." -msgstr "Networking 内の L2 ネットワークセグメント。" - -msgid "An Object Storage component that collects meters." -msgstr "計測項目を収集する Object Storage のコンポーネント。" - -msgid "" -"An Object Storage component that copies an object to remote partitions for " -"fault tolerance." -msgstr "" -"耐障害性のためにオブジェクトをリモートパーティションをコピーする Object " -"Storage コンポーネント。" - -msgid "" -"An Object Storage component that copies changes in the account, container, " -"and object databases to other nodes." -msgstr "" -"アカウント、コンテナー、オブジェクトデータベースを他のノードに変更点をコピー" -"する Object Storage コンポーネント。" - -msgid "An Object Storage component that is responsible for managing objects." -msgstr "オブジェクトの管理に責任を持つ Object Storage のコンポーネント。" - -msgid "" -"An Object Storage component that provides account services such as list, " -"create, modify, and audit. Do not confuse with OpenStack Identity service, " -"OpenLDAP, or similar user-account services." -msgstr "" -"一覧表示、作成、変更、監査などのアカウントサービスを提供する、Object Storage " -"のコンポーネント。OpenStack Identity、OpenLDAP、類似のユーザーアカウントサー" -"ビスなどと混同しないこと。" - -msgid "" -"An Object Storage large object that has been broken up into pieces. The re-" -"assembled object is called a concatenated object." -msgstr "" -"部品に分割された Object Storage の大きなオブジェクト。再構築されたオブジェク" -"トは、連結オブジェクトと呼ばれる。" - -msgid "" -"An Object Storage middleware component that enables creation of URLs for " -"temporary object access." -msgstr "" -"一時的なオブジェクトアクセスのために URL を作成できる Object Storage ミドル" -"ウェアコンポーネント。" - -msgid "An Object Storage node that provides authorization services." -msgstr "認可サービスを提供する Object Storage ノード。" - -msgid "" -"An Object Storage node that provides container services, account services, " -"and object services; controls the account databases, container databases, " -"and object storage." -msgstr "" -"コンテナーサービス、アカウントサービス、オブジェクトサービスを提供する " -"Object Storage のノード。アカウントデータベース、コンテナーデータベース、オブ" -"ジェクトデータベースを制御する。" - -msgid "An Object Storage server that manages containers." -msgstr "コンテナーを管理する Object Storage サーバー。" - -msgid "" -"An Object Storage worker that scans for and deletes account databases and " -"that the account server has marked for deletion." -msgstr "" -"アカウントサーバーが削除する印を付けた、アカウントデータベースをスキャンし、" -"削除する、Object Storage のワーカー。" - -msgid "" -"An OpenStack core project that provides discovery, registration, and " -"delivery services for disk and server images. The project name of the Image " -"service is glance." -msgstr "" -"ディスクやサーバーイメージ向けのサービスの検索、登録、配信を提供する " -"OpenStack コアプロジェクト。Image service のプロジェクト名は glance。" - -msgid "An OpenStack core project that provides object storage services." -msgstr "オブジェクトストレージサービスを提供する OpenStack コアプロジェクト。" - -msgid "" -"An OpenStack grouped release of projects that came out in the spring of " -"2011. It included Compute (nova), Object Storage (swift), and the Image " -"service (glance). Cactus is a city in Texas, US and is the code name for the " -"third release of OpenStack. When OpenStack releases went from three to six " -"months long, the code name of the release changed to match a geography " -"nearest the previous summit." -msgstr "" -"2011年春に登場した OpenStack 関連プロジェクトのリリース。Compute (nova)、" -"Object Storage (swift)、Image service (glance) が含まれる。Cactus は、アメリ" -"カ合衆国テキサス州の都市であり、OpenStack の 3 番目のリリースのコード名であ" -"る。OpenStack のリリース間隔が 3 か月から 6 か月になったとき、リリースのコー" -"ド名が前のサミットと地理的に近いところになるように変更された。" - -msgid "" -"An OpenStack service that provides a set of services for management of " -"shared file systems in a multi-tenant cloud environment. The service is " -"similar to how OpenStack provides block-based storage management through the " -"OpenStack Block Storage service project. With the Shared File Systems " -"service, you can create a remote file system and mount the file system on " -"your instances. You can also read and write data from your instances to and " -"from your file system. The project name of the Shared File Systems service " -"is manila." -msgstr "" -"マルチテナントのクラウド環境で共有ファイルシステムを管理するためのサービス群" -"を提供する OpenStack サービス。 OpenStack がブロックベースのストレージ管理" -"を、 OpenStack Block Storage サービスプロジェクトとして提供しているのと類似し" -"ている。 Shared File Systems サービスを使うと、リモートファイルシステムを作成" -"し、自分のインスタンスからそのファイルシステムをマウントし、インスタンスから" -"そのファイルシステムの読み書きを行える。このプロジェクトのコード名は manila。" - -msgid "" -"An OpenStack service, such as Compute, Object Storage, or Image service. " -"Provides one or more endpoints through which users can access resources and " -"perform operations." -msgstr "" -"Compute、Object Storage、Image service などの OpenStack のサービス。ユーザー" -"がリソースにアクセスしたり、操作を実行したりできる 1 つ以上のエンドポイントを" -"提供する。" - -msgid "" -"An OpenStack-native REST API that processes API requests by sending them to " -"the ``heat-engine`` over :term:`Remote Procedure Call (RPC)`." -msgstr "" -"OpenStack 独自の REST API を提供します。 受け取った API リスクエストを、 :" -"term:`リモートプロシージャコール (RPC) ` 経由" -"で ``heat-engine`` に送信します。" - -msgid "An OpenStack-provided image." -msgstr "OpenStack が提供するイメージ。" - -msgid "An OpenStack-supported hypervisor." -msgstr "OpenStack がサポートするハイパーバイザーの1つ。" - -msgid "" -"An OpenStack-supported hypervisor. KVM is a full virtualization solution for " -"Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-" -"V), ARM, IBM Power, and IBM zSeries. It consists of a loadable kernel " -"module, that provides the core virtualization infrastructure and a processor " -"specific module." -msgstr "" -"OpenStack がサポートするハイパーバイザー。KVM は、仮想化拡張 (Intel VT や " -"AMD-V) を持つ x86 ハードウェア、ARM、IBM Power、IBM zSeries 上の Linux 向けの" -"完全仮想化ソリューション。" - -msgid "An administrator who has access to all hosts and instances." -msgstr "すべてのホストやインスタンスへアクセス権を持つ管理者。" - -msgid "" -"An administrator-defined token used by Compute to communicate securely with " -"the Identity service." -msgstr "" -"Identity と安全に通信するために Compute により使用される、管理者により定義さ" -"れたトークン。" - -msgid "An alarm evaluator (``aodh-evaluator``)" -msgstr "アラーム評価器 (``aodh-evaluator``)" - -msgid "An alarm notifier (``aodh-notifier``)" -msgstr "アラーム通知器 (``aodh-notifier``)" - -msgid "" -"An alpha-numeric string of text used to access OpenStack APIs and resources." -msgstr "OpenStack API やリソースへのアクセスに使用される英数字文字列。" - -msgid "An alternative name for Networking API." -msgstr "Networking API の別名。" - -msgid "" -"An application protocol for accessing and maintaining distributed directory " -"information services over an IP network." -msgstr "" -"IP ネットワーク上の分散ディレクトリー情報サービスへのアクセスと管理を行うため" -"のアプリケーションプロトコル。" - -msgid "" -"An application protocol for distributed, collaborative, hypermedia " -"information systems. It is the foundation of data communication for the " -"World Wide Web. Hypertext is structured text that uses logical links " -"(hyperlinks) between nodes containing text. HTTP is the protocol to exchange " -"or transfer hypertext." -msgstr "" -"分散、協調、ハイパーメディア情報システム用のアプリケーションプロトコル。WWW " -"のデータ通信の基盤。ハイパーテキストは、ノード間でのテキストを含む論理リンク " -"(ハイパーリンク) を使った構造化テキストのことである。HTTP は、ハイパーテキス" -"トを交換したり転送したりするためのプロトコル。" - -msgid "" -"An application that runs on the back-end server in a load-balancing system." -msgstr "負荷分散システムでバックエンドサーバーで動作するアプリケーション。" - -msgid "" -"An authentication and authorization service for Object Storage, implemented " -"through WSGI middleware; uses Object Storage itself as the persistent " -"backing store." -msgstr "" -"Object Storage の認証と認可のサービス。WSGI ミドルウェア経由で実装される。" -"バックエンドの永続的なデータストアとして、Object Storage 自身を使用する。" - -msgid "" -"An authentication facility within Object Storage that enables Object Storage " -"itself to perform authentication and authorization. Frequently used in " -"testing and development." -msgstr "" -"Object Storage 自身が認証と認可を実行できるようになる、Object Storage 内の認" -"証機能。テストや開発によく使用される。" - -msgid "" -"An easy method to create a local LDAP directory for testing Identity and " -"Compute. Requires Redis." -msgstr "" -"Identity と Compute のテスト目的でローカルな LDAP ディレクトリーを作成するた" -"めの簡易な方法。Redis が必要。" - -msgid "" -"An element of the Compute RabbitMQ that comes to life when a RPC call is " -"executed. It connects to a direct exchange through a unique exclusive queue, " -"sends the message, and terminates." -msgstr "" -"RPC コールが実行されるとき、開始される Compute RabbitMQ の要素。一意な排他" -"キュー経由で直接交換者に接続し、メッセージを送信し、終了します。" - -msgid "" -"An element of the Compute capacity cache that is calculated based on the " -"number of build, snapshot, migrate, and resize operations currently in " -"progress on a given host." -msgstr "" -"指定されたホスト上で現在進行中の build, snapshot, migrate, resize の操作数を" -"元に計算される、Compute のキャパシティキャッシュの1要素。" - -msgid "" -"An encrypted communications protocol for secure communication over a " -"computer network, with especially wide deployment on the Internet. " -"Technically, it is not a protocol in and of itself; rather, it is the result " -"of simply layering the Hypertext Transfer Protocol (HTTP) on top of the TLS " -"or SSL protocol, thus adding the security capabilities of TLS or SSL to " -"standard HTTP communications. most OpenStack API endpoints and many inter-" -"component communications support HTTPS communication." -msgstr "" -"コンピューターネットワークで、とくにインターネットで広く使われている、安全に" -"通信を行うための暗号化通信プロトコル。技術的には、プロトコルではなく、むしろ" -"シンプルに SSL/TLS プロトコルの上に Hypertext Transfer Protocol (HTTP) を重ね" -"ているものである。そのため、SSL や TLS プロトコルのセキュリティー機能を標準的" -"な HTTP 通信に追加したものである。ほとんどの OpenStack API エンドポイントや多" -"くのコンポーネント間通信で、 HTTPS 通信がサポートされている。" - -msgid "" -"An entity in the context of the Shared File Systems that encapsulates " -"interaction with the Networking service. If the driver you selected runs in " -"the mode requiring such kind of interaction, you need to specify the share " -"network to create a share." -msgstr "" -"Shared File System サービスにおいて、Networking サービスとのやり取りを抽象化" -"するエンティティー。選択したドライバーが Networking サービスとのやり取りを必" -"要とするモードで動作している場合、共有を作成する際にネットワーク共有 (share " -"network) を指定する必要がある。" - -msgid "" -"An entity that maps Object Storage data to partitions. A separate ring " -"exists for each service, such as account, object, and container." -msgstr "" -"Object Storage データのパーティションへのマッピングを行う。アカウント、オブ" -"ジェクト、コンテナーというサービス単位に別々のリングが存在する。" - -msgid "An extra but helpful piece of practical advice." -msgstr "おまけですが、役に立つ実用的な助言です。" - -msgid "An iSCSI authentication method supported by Compute." -msgstr "Compute によりサポートされる iSCSI の認証方式。" - -msgid "" -"An in-progress specification for cloud management. Currently unsupported in " -"OpenStack." -msgstr "策定中のクラウド管理の仕様。現在、OpenStack では未サポート。" - -msgid "" -"An integrated project that aims to orchestrate multiple cloud applications " -"for OpenStack." -msgstr "" -"OpenStack に複数のクラウドアプリケーションをオーケストレーションする為に開発" -"されたプロジェクト。" - -msgid "" -"An integrated project that orchestrates multiple cloud applications for " -"OpenStack. The project name of Orchestration is heat." -msgstr "" -"OpenStack 向けに複数のクラウドアプリケーションをオーケストレーションする統合" -"プロジェクト。Orchestration のプロジェクト名は heat。" - -msgid "" -"An integrated project that provide scalable and reliable Cloud Database-as-a-" -"Service functionality for both relational and non-relational database " -"engines. The project name of Database service is trove." -msgstr "" -"リレーショナルデータベースと非リレーショナルデータベースの両エンジンに対し" -"て、スケール可能かつ信頼できるクラウド Database-as-a-Service を提供する統合プ" -"ロジェクト。この Database service の名前は trove。" - -msgid "" -"An integrated project that provides metering and measuring facilities for " -"OpenStack. The project name of Telemetry is ceilometer." -msgstr "" -"OpenStack にメータリングと計測の機能を提供する、統合プロジェクト。Telemetry " -"のプロジェクト名は ceilometer。" - -msgid "" -"An interface that is plugged into a port in a Networking network. Typically " -"a virtual network interface belonging to a VM." -msgstr "" -"Networking のネットワークにおけるポートに差し込まれるインターフェース。一般的" -"に、仮想マシンに設定された仮想ネットワークインターフェース。" - -msgid "" -"An object state in Object Storage where a new replica of the object is " -"automatically created due to a drive failure." -msgstr "" -"ドライブ故障により、オブジェクトの新しい複製が自動的に作成された、Object " -"Storage のオブジェクトの状態。" - -msgid "An object within Object Storage that is larger than 5 GB." -msgstr "5 GB より大きい Object Storage 内のオブジェクト。" - -msgid "" -"An official OpenStack service defined as core by DefCore Committee. " -"Currently, consists of Block Storage service (cinder), Compute service " -"(nova), Identity service (keystone), Image service (glance), Networking " -"service (neutron), and Object Storage service (swift)." -msgstr "" -"正式な OpenStack サービスのうち、DefCore 委員会によりコアと定義されているサー" -"ビス。現時点では、 Block Storage サービス (cinder)、 Compute サービス " -"(nova)、 Identity サービス (keystone)、 Image サービス (glance)、 Networking " -"サービス (neutron)、 Object Storage サービス (swift) です。" - -msgid "" -"An official OpenStack service defined as optional by DefCore Committee. " -"Currently, consists of Dashboard (horizon), Telemetry service (Telemetry), " -"Orchestration service (heat), Database service (trove), Bare Metal service " -"(ironic), and so on." -msgstr "" -"正式な OpenStack サービスのうち、DefCore 委員会によりオプションと定義されてい" -"るサービス。現時点では、 Dashboard (horizon), Telemetry サービス " -"(Telemetry), Orchestration サービス (heat), Database サービス (trove), Bare " -"Metal サービス(ironic) などです。" - -msgid "An open source LDAP server. Supported by both Compute and Identity." -msgstr "" -"オープンソース LDAP サーバー。Compute と Identity によりサポートされる。" - -msgid "An open source SQL toolkit for Python, used in OpenStack." -msgstr "" -"OpenStack で使われている、オープンソースの Python 用 SQL ツールキット。" - -msgid "" -"An open source community project by Dell that aims to provide all necessary " -"services to quickly deploy clouds." -msgstr "" -"クラウドの迅速なデプロイ用に全ての必要なサービスを提供する用途の、Dell による" -"オープンソースコミュニティプロジェクト。" - -msgid "" -"An operating system configuration management tool supporting OpenStack " -"deployments." -msgstr "" -"OpenStack の導入をサポートするオペレーティングシステムの設定管理ツール。" - -msgid "" -"An operating system configuration-management tool supported by OpenStack." -msgstr "OpenStackがサポートするオペレーティングシステム構成管理ツール。" - -msgid "An operating system instance running under the control of a hypervisor." -msgstr "" -"ハイパーバイザーの管理下で実行しているオペレーティングシステムのインスタン" -"ス。" - -msgid "" -"An operating system instance that runs on top of a hypervisor. Multiple VMs " -"can run at the same time on the same physical host." -msgstr "" -"ハイパーバイザー上で動作するオペレーティングシステムインスタンス。一台の物理" -"ホストで同時に複数の VM を実行できる。" - -msgid "" -"An option within Compute that enables administrators to create and manage " -"users through the ``nova-manage`` command as opposed to using the Identity " -"service." -msgstr "" -"管理者が、Identity を使用する代わりに、 ``nova-manage`` コマンド経由でユー" -"ザーを作成および管理できる、Compute 内のオプション。" - -msgid "" -"An option within Image service so that an image is deleted after a " -"predefined number of seconds instead of immediately." -msgstr "" -"イメージをすぐに削除する代わりに、事前定義した秒数経過後に削除するための、" -"Image service 内のオプション。" - -msgid "Analytics-as-a-Service for ad-hoc or bursty analytic workloads." -msgstr "" -"その場限りやバースト的な分析ワークロードに対応できる Analytics-as-a-Service" - -msgid "" -"Another option is to use the unofficial binary installer provided by " -"Christoph Gohlke (http://www.lfd.uci.edu/~gohlke/pythonlibs/#pip)." -msgstr "" -"もう 1 つの選択肢は、Christoph Gohlke さんにより提供されている非公式バイナ" -"リーインストーラー (http://www.lfd.uci.edu/~gohlke/pythonlibs/ #pip) を使用す" -"ることです。" - -msgid "Anvil" -msgstr "Anvil" - -msgid "" -"Any business that provides Internet access to individuals or businesses." -msgstr "個人や組織にインターネットアクセスを提供する何らかのビジネス。" - -msgid "" -"Any client software that enables a computer or device to access the Internet." -msgstr "" -"コンピューターやデバイスがインターネットにアクセスできる、何らかのクライアン" -"トソフトウェア。" - -msgid "Any compute node that runs the network worker daemon." -msgstr "ネットワークワーカーデーモンを実行するコンピュートノードすべて。" - -msgid "" -"Any deployment-specific information is helpful, such as whether you are " -"using Ubuntu 14.04 or are performing a multi-node installation." -msgstr "" -"環境固有の情報が役に立ちます。例えば、Ubuntu 14.04 の利用有無、複数ノードのイ" -"ンストール有無です。" - -msgid "" -"Any kind of text that contains a link to some other site, commonly found in " -"documents where clicking on a word or words opens up a different website." -msgstr "" -"どこか別のサイトへのリンクを含む、ある種のテキスト。一般的に、別の Web サイト" -"を開く言葉をクリックするドキュメントに見られる。" - -msgid "Any node running a daemon or worker that provides an API endpoint." -msgstr "" -"API エンドポイントを提供するデーモンまたはワーカーを実行するあらゆるノード。" - -msgid "" -"Any piece of hardware or software that wants to connect to the network " -"services provided by Networking, the network connectivity service. An entity " -"can make use of Networking by implementing a VIF." -msgstr "" -"Networking により提供されるネットワークサービス、ネットワーク接続性サービスに" -"接続したい、ハードウェアやソフトウェアの部品。エンティティーは、仮想インター" -"フェースを実装することにより Networking を使用できる。" - -msgid "" -"Any user, including the ``root`` user, can run commands that are prefixed " -"with the ``$`` prompt." -msgstr "" -"``$`` プロンプトから始まるコマンドは、 ``root`` ユーザーを含むすべてのユー" -"ザーが実行できます。" - -msgid "Apache" -msgstr "Apache" - -msgid "" -"Apache Hadoop is an open source software framework that supports data-" -"intensive distributed applications." -msgstr "" -"Apache Hadoop は、データインテンシブな分散アプリケーションをサポートする、" -"オープンソースソフトウェアフレームワークである。" - -msgid "Apache License 2.0" -msgstr "Apache License 2.0" - -msgid "Apache Web Server" -msgstr "Apache Web Server" - -msgid "Application Catalog service" -msgstr "Application Catalog サービス" - -msgid "Application Programming Interface (API)" -msgstr "Application Programming Interface (API)" - -msgid "Application Service Provider (ASP)" -msgstr "Application Service Provider (ASP)" - -msgid "" -"Arbitrary property to associate with image. This option can be used multiple " -"times." -msgstr "" -"イメージと関連付ける任意のプロパティ。このオプションは複数回使用できます。" - -msgid "" -"As a cloud end user, you can use the OpenStack dashboard to provision your " -"own resources within the limits set by administrators. You can modify the " -"examples provided in this section to create other types and sizes of server " -"instances." -msgstr "" -"あなたはクラウドのエンドユーザーとして、OpenStack dashboard を使用できます。" -"管理者により設定された制限の範囲内で自身のリソースを展開できます。他の種類や" -"大きさのサーバーインスタンスを作成するために、このセクションで提供される例を" -"変更できます。" - -msgid "" -"As an administrator, you can migrate a volume with its data from one " -"location to another in a manner that is transparent to users and workloads. " -"You can migrate only detached volumes with no snapshots." -msgstr "" -"管理者は、ユーザーに意識させず、またワークロードの中断なしに、データを含めた" -"状態でボリュームを別の場所に移動することができます。スナップショットを持たな" -"い、切断されているボリュームだけが移動できます。" - -msgid "" -"As shown in :ref:`get_started_conceptual_architecture`, OpenStack consists " -"of several independent parts, named the OpenStack services. All services " -"authenticate through a common Identity service. Individual services interact " -"with each other through public APIs, except where privileged administrator " -"commands are necessary." -msgstr "" -":ref:`get_started_conceptual_architecture` にあるように、 OpenStack は " -"OpenStack サービスと呼ばれる複数の独立した部品で構成されています。すべての" -"サービスは共通の Identity service を通して認証を行います。個々のサービスは、" -"パブリック API を通じて互いに連携します。ただし、特権管理コマンドが必要な場合" -"もいくつかあります。" - -msgid "" -"As the volume donor, request a volume transfer authorization code for a " -"specific volume:" -msgstr "" -"ボリュームの譲渡元として、特定のボリュームのボリューム転送認証コードを要求し" -"ます。" - -msgid "" -"As the volume recipient, you must first obtain the transfer ID and " -"authorization key from the original owner." -msgstr "" -"ボリュームの受取側として、まず、元の所有者から転送 ID と認証キーを取得する必" -"要があります。" - -msgid "" -"Association of an interface ID to a logical port. Plugs an interface into a " -"port." -msgstr "" -"論理ポートへのインターフェースIDの紐付け。インターフェースをポートに差し込" -"む。" - -msgid "Asynchronous JavaScript and XML (AJAX)" -msgstr "Asynchronous JavaScript and XML (AJAX)" - -msgid "Attach a volume to an instance" -msgstr "ボリュームのインスタンスへの接続" - -msgid "" -"Attach your volume to a server, specifying the server ID and the volume ID:" -msgstr "" -" ボリュームをサーバーに接続し、サーバー ID とボリューム ID を指定します。" - -msgid "" -"Attachment point where a virtual interface connects to a virtual network." -msgstr "仮想ネットワークへの仮想インタフェースの接続ポイント。" - -msgid "Austin" -msgstr "Austin" - -msgid "AuthN" -msgstr "AuthN" - -msgid "AuthZ" -msgstr "AuthZ" - -msgid "" -"Authentication and identity service by Microsoft, based on LDAP. Supported " -"in OpenStack." -msgstr "" -"Microsoft が提供する認証サービス。LDAP に基づいている。OpenStack でサポートさ" -"れる。" - -msgid "Authentication method that uses keys rather than passwords." -msgstr "パスワードの代わりに鍵を使用する認証方式。" - -msgid "" -"Authentication method that uses two or more credentials, such as a password " -"and a private key. Currently not supported in Identity." -msgstr "" -"パスワードと秘密鍵など、2 つ以上のクレデンシャルを使用する認証方式。Identity " -"では現在サポートされていない。" - -msgid "Auto ACK" -msgstr "自動 ACK" - -msgid "" -"Automated software test suite designed to run against the trunk of the " -"OpenStack core project." -msgstr "" -"OpenStack コアプロジェクトの trunk ブランチに対してテストを実行するために設計" -"された自動ソフトウェアテストスイート。" - -msgid "Available from anywhere" -msgstr "どこからでも利用可能" - -msgid "Available instance types" -msgstr "利用できるインスタンス種別" - -msgid "Available networks" -msgstr "利用可能なネットワーク" - -msgid "BMC" -msgstr "BMC" - -msgid "Bare Metal service" -msgstr "Bare Metal サービス" - -msgid "" -"Baseboard Management Controller. The intelligence in the IPMI architecture, " -"which is a specialized micro-controller that is embedded on the motherboard " -"of a computer and acts as a server. Manages the interface between system " -"management software and platform hardware." -msgstr "" -"ベースボード・マネジメント・コントローラー。IPMI アーキテクチャーにおける管理" -"機能。コンピューターのマザーボードに埋め込まれ、サーバーとして動作する、特別" -"なマイクロコントローラーである。システム管理ソフトウェアとプラットフォーム" -"ハードウェアの間の通信を管理する。" - -msgid "" -"Be sure to include the software and package versions that you are using, " -"especially if you are using a development branch, such as, ``\"Kilo release" -"\" vs git commit bc79c3ecc55929bac585d04a03475b72e06a3208``." -msgstr "" -"使用しているソフトウェアとパッケージのバージョンを明確にします。とくに開発ブ" -"ランチを使用している場合は、``\"Kilo release\" vs git commit " -"bc79c3ecc55929bac585d04a03475b72e06a3208`` などを明確にします。" - -msgid "" -"Before you can run client commands, you must create and source the ``PROJECT-" -"openrc.sh`` file to set environment variables. See :doc:`../common/" -"cli_set_environment_variables_using_openstack_rc`." -msgstr "" -"クライアントコマンドを実行する前に、環境変数を設定するために、``PROJECT-" -"openrc.sh`` ファイルを作成して読み込む必要があります。詳細は :doc:`../common/" -"cli_set_environment_variables_using_openstack_rc` を参照してください。" - -msgid "Bell-LaPadula model" -msgstr "Bell-LaPadula モデル" - -msgid "" -"Belongs to a particular domain and is used to specify information about the " -"domain. There are several types of DNS records. Each record type contains " -"particular information used to describe the purpose of that record. Examples " -"include mail exchange (MX) records, which specify the mail server for a " -"particular domain; and name server (NS) records, which specify the " -"authoritative name servers for a domain." -msgstr "" -"特定のドメインに属し、ドメインに関する情報を指定するために使用される。いくつ" -"かの種類の DNS レコードがある。各レコード種別は、そのレコードの目的を説明する" -"ために使用される特定の情報を含む。例えば、mail exchange (MX) レコードは、特定" -"のドメインのメールサーバーを指定する。name server (NS) レコードは、ドメインの" -"権威ネームサーバーを指定する。" - -msgid "Benchmark service" -msgstr "Benchmark サービス" - -msgid "Bexar" -msgstr "Bexar" - -msgid "Block Storage API" -msgstr "Block Storage API" - -msgid "Block Storage service" -msgstr "Block Storage サービス" - -msgid "Block storage (cinder)" -msgstr "Block storage (cinder)" - -msgid "" -"Block storage that is simultaneously accessible by multiple clients, for " -"example, NFS." -msgstr "" -"複数のクライアントにより同時にアクセス可能なブロックストレージ。例えば NFS。" - -msgid "Bootstrap Protocol (BOOTP)" -msgstr "Bootstrap Protocol (BOOTP)" - -msgid "Border Gateway Protocol (BGP)" -msgstr "Border Gateway Protocol (BGP)" - -msgid "" -"Both Image service and Compute support encrypted virtual machine (VM) images " -"(but not instances). In-transit data encryption is supported in OpenStack " -"using technologies such as HTTPS, SSL, TLS, and SSH. Object Storage does not " -"support object encryption at the application level but may support storage " -"that uses disk encryption." -msgstr "" -"Image service と Compute は、どちらも仮想マシンイメージ (インスタンスではな" -"い) の暗号化をサポートする。転送中のデータ暗号は、HTTPS、SSL、TLS、SSH などの" -"技術を使用して、OpenStack においてサポートされる。Object Storage は、アプリ" -"ケーションレベルでオブジェクト暗号化をサポートしませんが、ディスク暗号化を使" -"用するストレージをサポートする可能性がある。" - -msgid "Both a VM container format and disk format. Supported by Image service." -msgstr "" -"仮想マシンのコンテナー形式とディスク形式の両方。Image service によりサポート" -"される。" - -msgid "" -"Bring down a physical storage device for maintenance without disrupting " -"workloads." -msgstr "" -" ワークロードを中断せずにメンテナンスを行えるように物理ストレージデバイスを停" -"止する 。" - -msgid "" -"Builds and manages rings within Object Storage, assigns partitions to " -"devices, and pushes the configuration to other storage nodes." -msgstr "" -"Object Storage のリングの作成、管理を行い、パーティションのデバイスへの割り当" -"てを行い、他のストレージノードに設定を転送する。" - -msgid "" -"By default the help URL points to http://docs.openstack.org. Change this by " -"editing the following attribute to the URL of your choice in " -"``local_settings.py``:" -msgstr "" -"ヘルプの URL は、デフォルトでは http://docs.openstack.org を参照しています。" -"これを変更するには、 ``local_settings.py`` で以下の属性をお好みの URL に変更" -"します。" - -msgid "CA" -msgstr "CA" - -msgid "CADF" -msgstr "CADF" - -msgid "CALL" -msgstr "CALL" - -msgid "CAST" -msgstr "CAST" - -msgid "CMDB" -msgstr "CMDB" - -msgid "Cactus" -msgstr "Cactus" - -msgid "" -"Can concurrently use multiple layer-2 networking technologies, such as " -"802.1Q and VXLAN, in Networking." -msgstr "" -"Networking において、802.1Q や VXLAN などの複数の L2 ネットワーク技術を同時に" -"使用できる。" - -msgid "" -"Causes the network interface to pass all traffic it receives to the host " -"rather than passing only the frames addressed to it." -msgstr "" -"ネットワークインターフェースが、そこを指定されたフレームだけではなく、ホスト" -"に届いたすべての通信を渡すようにする。" - -msgid "CentOS" -msgstr "CentOS" - -msgid "Ceph" -msgstr "Ceph" - -msgid "" -"Ceph component that enables a Linux block device to be striped over multiple " -"distributed data stores." -msgstr "" -"Linux ブロックデバイスが複数の分散データストアにわたり分割できるようにする、" -"Ceph のコンポーネント。" - -msgid "CephFS" -msgstr "CephFS" - -msgid "" -"Certificate Authority or Certification Authority. In cryptography, an entity " -"that issues digital certificates. The digital certificate certifies the " -"ownership of a public key by the named subject of the certificate. This " -"enables others (relying parties) to rely upon signatures or assertions made " -"by the private key that corresponds to the certified public key. In this " -"model of trust relationships, a CA is a trusted third party for both the " -"subject (owner) of the certificate and the party relying upon the " -"certificate. CAs are characteristic of many public key infrastructure (PKI) " -"schemes." -msgstr "" -"認証局。暗号において、電子証明書を発行するエンティティー。電子証明書は、証明" -"書の発行先の名前により公開鍵の所有者を証明する。これにより、他の信頼される機" -"関が証明書を信頼できるようになる。また、証明された公開鍵に対応する秘密鍵によ" -"る表明を信頼できるようになる。この信頼関係のモデルにおいて、CA は証明書の発行" -"先と証明書を信頼している機関の両方に対する信頼された第三者機関である。CA は、" -"多くの公開鍵基盤 (PKI) スキームの特徴である。" - -msgid "Challenge-Handshake Authentication Protocol (CHAP)" -msgstr "Challenge-Handshake Authentication Protocol (CHAP)" - -msgid "" -"Change the colors and image file names as appropriate, though the relative " -"directory paths should be the same. The following example file shows you how " -"to customize your CSS file:" -msgstr "" -"カラーとイメージファイルの名前を適切に変更します。ただし、相対ディレクトリー" -"パスは同じにすべきです。以下のサンプルファイルに、CSS ファイルをどのようにカ" -"スタマイズするかを示します。" - -msgid "Changes to these types of disk volumes are saved." -msgstr "この種類のディスクボリュームに変更すると、データが保存される。" - -msgid "" -"Checks for and deletes unused VMs; the component of Image service that " -"implements delayed delete." -msgstr "" -"未使用の仮想マシンを確認し、削除する。遅延削除を実装する、Image service のコ" -"ンポーネント。" - -msgid "" -"Checks for missing replicas and incorrect or corrupted objects in a " -"specified Object Storage account by running queries against the back-end " -"SQLite database." -msgstr "" -"バックエンドの SQLite データベースに問い合わせることにより、指定された " -"Object Storage のアカウントに、レプリカの欠損やオブジェクトの不整合・破損がな" -"いかを確認する。" - -msgid "" -"Checks for missing replicas or incorrect objects in specified Object Storage " -"containers through queries to the SQLite back-end database." -msgstr "" -"SQLite バックエンドデータベースへの問い合わせにより、指定した Object Storage " -"コンテナーにおいてレプリカの欠損やオブジェクトの不整合がないかを確認する。" - -msgid "Chef" -msgstr "Chef" - -msgid "" -"Choosing a host based on the existence of a GPU is currently unsupported in " -"OpenStack." -msgstr "GPU の有無によりホストを選択することは、現在 OpenStack で未サポート。" - -msgid "CirrOS" -msgstr "CirrOS" - -msgid "Cisco neutron plug-in" -msgstr "Cisco neutron プラグイン" - -msgid "Client" -msgstr "クライアント" - -msgid "" -"Cloud Auditing Data Federation (CADF) is a specification for audit event " -"data. CADF is supported by OpenStack Identity." -msgstr "" -"Cloud Auditing Data Federation (CADF) は、監査イベントデータの仕様である。" -"CADF は OpenStack Identity によりサポートされる。" - -msgid "Cloud Data Management Interface (CDMI)" -msgstr "" -"クラウドデータ管理インターフェース (CDMI:Cloud Data Management Interface)" - -msgid "Cloud Infrastructure Management Interface (CIMI)" -msgstr "Cloud Infrastructure Management Interface (CIMI)" - -msgid "Cloudbase-Init" -msgstr "Cloudbase-Init" - -msgid "Clustering service" -msgstr "Clustering service" - -msgid "Code name for the DNS service project for OpenStack." -msgstr "OpenStack の DNS サービスプロジェクトのコード名。" - -msgid "" -"Code name for the OpenStack project that provides the Containers Service." -msgstr "コンテナーサービスを提供する OpenStack プロジェクトのコード名。" - -msgid "Code name of the key management service for OpenStack." -msgstr "OpenStack の key management サービスのコード名。" - -msgid "" -"Collection of Compute components that represent the global state of the " -"cloud; talks to services, such as Identity authentication, Object Storage, " -"and node/storage workers through a queue." -msgstr "" -"クラウドの全体状況を表す Compute コンポーネント群。キュー経由で、Identity の" -"認証、Object Storage、ノード/ストレージワーカーなどのサービスと通信する。" - -msgid "" -"Collective name for the Object Storage object services, container services, " -"and account services." -msgstr "" -"Object Storage のオブジェクトサービス、コンテナーサービス、アカウントサービス" -"の集合名。" - -msgid "" -"Collective term for Object Storage components that provide additional " -"functionality." -msgstr "追加機能を提供する Object Storage のコンポーネントの総称。" - -msgid "" -"Collective term for a group of Object Storage components that processes " -"queued and failed updates for containers and objects." -msgstr "" -"キュー済みや失敗した、コンテナーやオブジェクトに対する更新を処理する、Object " -"Storage のコンポーネントのグループの総称。" - -msgid "" -"Collects event and metering data by monitoring notifications sent from " -"services." -msgstr "" -"サービスから送信される通知を監視して、イベントと計測データを収集します。" - -msgid "" -"Combination of a URI and UUID used to access Image service VM images through " -"the image API." -msgstr "" -"Image API 経由で Image service の仮想マシンイメージにアクセスするために使用さ" -"れる、URI や UUID の組み合わせ。" - -msgid "Command prompts" -msgstr "コマンドプロンプト" - -msgid "Common Internet File System (CIFS)" -msgstr "Common Internet File System (CIFS)" - -msgid "" -"Community project that captures Compute AMQP communications; useful for " -"debugging." -msgstr "" -"Compute AMQP 通信をキャプチャーする、コミュニティーのプロジェクト。デバッグに" -"有用。" - -msgid "" -"Community project that uses shell scripts to quickly build complete " -"OpenStack development environments." -msgstr "" -"シェルスクリプトを使用して、完全な OpenStack 導入環境を迅速に構築するためのコ" -"ミュニティープロジェクト。" - -msgid "" -"Community project used to run automated tests against the OpenStack API." -msgstr "" -"OpenStack API に対して自動テストを実行するために使用されるコミュニティープロ" -"ジェクト。" - -msgid "Community support" -msgstr "コミュニティーのサポート" - -msgid "" -"Companies that rent specialized applications that help businesses and " -"organizations provide additional services with lower cost." -msgstr "" -"企業や組織を支援する特定のアプリケーションを貸し出す会社が、より低いコストで" -"追加サービスを提供する。" - -msgid "" -"Component of Identity that provides a rule-management interface and a rule-" -"based authorization engine." -msgstr "" -"ルール管理インターフェースやルールベースの認可エンジンを提供する Identity の" -"コンポーネント。" - -msgid "Compute API" -msgstr "Compute API" - -msgid "Compute service" -msgstr "Compute サービス" - -msgid "" -"Computer that provides explicit services to the client software running on " -"that system, often managing a variety of computer operations. A server is a " -"VM instance in the Compute system. Flavor and image are requisite elements " -"when creating a server." -msgstr "" -"そのシステムにおいて動作しているクライアントソフトウェアに具体的なサービスを" -"提供するコンピューター。さまざまなコンピューター処理を管理することもある。" -"サーバーは、Compute システム上の仮想マシンインスタンスです。フレーバーとイ" -"メージは、サーバーの作成時に必須の要素です。" - -msgid "Conceptual architecture" -msgstr "概念アーキテクチャー" - -msgid "" -"Configurable option within Object Storage to limit database writes on a per-" -"account and/or per-container basis." -msgstr "" -"アカウントごと、コンテナーごとにデータベースへの書き込みを制限するための、" -"Object Storage 内の設定オプション。" - -msgid "Configuration Management Database." -msgstr "構成管理データベース。" - -msgid "" -"Configuration setting within RabbitMQ that enables or disables message " -"acknowledgment. Enabled by default." -msgstr "" -"メッセージ ACK を有効化または無効化する、RabbitMQ 内の設定。デフォルトで有" -"効。" - -msgid "Configures networks for guest servers." -msgstr "ゲストサーバー用のネットワークの作成と管理。" - -msgid "" -"Connected to by a direct consumer in RabbitMQ—Compute, the message can be " -"consumed only by the current connection." -msgstr "" -"RabbitMQ—Compute において直接利用者により接続される。メッセージは、現在の接続" -"だけにより使用される。" - -msgid "Container servers (swift-container-server)" -msgstr "コンテナーサーバー (swift-container-server)" - -msgid "Containers service" -msgstr "Containers サービス" - -msgid "" -"Contains configuration information that Object Storage uses to reconfigure a " -"ring or to re-create it from scratch after a serious failure." -msgstr "" -"リングを再設定するため、深刻な障害の後に最初から再作成するために、Object " -"Storage が使用する設定情報を含む。" - -msgid "" -"Contains information about a user as provided by the identity provider. It " -"is an indication that a user has been authenticated." -msgstr "" -"認証プロバイダーにより提供されたとおり、ユーザーに関する情報を含む。ユーザー" -"が認証済みであることを意味する。" - -msgid "" -"Contains the locations of all Object Storage partitions within the ring." -msgstr "リング内にあるすべての Object Storage のパーティションの場所を含む。" - -msgid "Contains the output from a Linux VM console in Compute." -msgstr "Compute の Linux 仮想マシンコンソールからの出力を含む。" - -msgid "Contractual obligations that ensure the availability of a service." -msgstr "サービスの可用性を保証する契約上の義務。" - -msgid "Conventions" -msgstr "表記規則" - -msgid "" -"Converts an existing server to a different flavor, which scales the server " -"up or down. The original server is saved to enable rollback if a problem " -"occurs. All resizes must be tested and explicitly confirmed, at which time " -"the original server is removed." -msgstr "" -"既存のサーバーを別のフレーバーに変更する。サーバーをスケールアップまたはス" -"ケールダウンする。元のサーバーは、問題発生時にロールバックできるよう保存され" -"る。すべてのリサイズは、元のサーバーを削除するときに、テストされ、明示的に確" -"認される必要がある。" - -msgid "" -"Copy the ``PROJECT-openrc.sh`` file to the computer from which you want to " -"run OpenStack commands." -msgstr "" -"OpenStack コマンドを実行したいコンピューターに ``PROJECT-openrc.sh`` ファイル" -"をコピーします。" - -msgid "" -"Create a CSS style sheet in ``/usr/share/openstack-dashboard/" -"openstack_dashboard/static/dashboard/scss/``." -msgstr "" -"CSS スタイルシートを ``/usr/share/openstack-dashboard/openstack_dashboard/" -"static/dashboard/scss/`` に作成します。" - -msgid "" -"Create a Database service instance using the :command:`trove create` command." -msgstr "" -":command:`trove create` コマンドを使用して、Database サービスのインスタンスを" -"作成します。" - -msgid "" -"Create a custom bootable volume or a volume with a large data set and " -"transfer it to a customer." -msgstr "" -"大容量のデータセットが含まれるボリュームやカスタムのブータブルボリュームを作" -"成して顧客に転送する。" - -msgid "Create a volume" -msgstr "ボリュームの作成" - -msgid "Create a volume from specified volume type" -msgstr "指定したボリューム種別からのボリューム作成" - -msgid "Create a volume transfer request" -msgstr "ボリューム譲渡要求の作成" - -msgid "" -"Create a volume with 8 gibibytes (GiB) of space, and specify the " -"availability zone and image:" -msgstr "" -" 容量 8 GiB のボリュームを作成し、アベイラビリティゾーンとイメージを指定しま" -"す。 " - -msgid "" -"Create an image for each type of database. For example, one for MySQL and " -"one for MongoDB." -msgstr "" -"各種データベース用のイメージを作成します。例えば、MySQL 用のもの、MongoDB 用" -"のものです。" - -msgid "Create and source the OpenStack RC file" -msgstr "OpenStack RC ファイルの作成と読み込み" - -msgid "Create or update an image (glance)" -msgstr "イメージ (glance) の作成・更新" - -msgid "" -"Create two PNG logo files with transparent backgrounds using the following " -"sizes:" -msgstr "以下の 2 つの大きさの透過 PNG ロゴファイルを作成します。" - -msgid "" -"Creates a full Object Storage development environment within a single VM." -msgstr "単一の仮想マシンに一通りの Object Storage 開発環境を作成すること。" - -msgid "Creates and collects measurements across OpenStack." -msgstr "OpenStack 全体の計測項目を作成、収集します。" - -msgid "Creates and manages Hadoop clusters on OpenStack." -msgstr "OpenStack 上への Hadoop クラスターの作成と管理。" - -msgid "Creates and manages applications." -msgstr "アプリケーションの作成と管理。" - -msgid "Creates and manages clustering services." -msgstr "クラスタリングサービスの作成と管理。" - -msgid "Creates and manages containers." -msgstr "コンテナーの作成と管理。" - -msgid "Creates and manages databases." -msgstr "データベースの作成と管理。" - -msgid "Creates and manages images, instances, and flavors." -msgstr "イメージ、インスタンス、フレーバーの作成と管理。" - -msgid "Creates and manages images." -msgstr "イメージの作成と管理。" - -msgid "Creates and manages keys." -msgstr "鍵の作成と管理。" - -msgid "Creates and manages shared file systems." -msgstr "共有ファイルシステムを作成および管理します。" - -msgid "Creates and manages users, tenants, roles, endpoints, and credentials." -msgstr "ユーザー、テナント、ロール、エンドポイント、認証情報の作成と管理。" - -msgid "Creates and manages volumes." -msgstr "ボリュームの作成と管理。" - -msgid "Critical information about the risk of data loss or security issues." -msgstr "データ損失やセキュリティー問題のリスクに関する致命的な情報です。" - -msgid "Cross-Origin Resource Sharing (CORS)" -msgstr "Cross-Origin Resource Sharing (CORS)" - -msgid "Crowbar" -msgstr "Crowbar" - -msgid "" -"Currently the libvirt virtualization tool determines the disk, CD-ROM, and " -"VIF device models based on the configured hypervisor type (``libvirt_type`` " -"in ``/etc/nova/nova.conf`` file). For the sake of optimal performance, " -"libvirt defaults to using virtio for both disk and VIF (NIC) models. The " -"disadvantage of this approach is that it is not possible to run operating " -"systems that lack virtio drivers, for example, BSD, Solaris, and older " -"versions of Linux and Windows." -msgstr "" -"現在、libvirt 仮想化ツールは、設定したハイパーバイザーの種別 (``/etc/nova/" -"nova.conf`` ファイルの ``libvirt_type`` で指定)を基にディスク、CD_ROM、VIF デ" -"バイスモデルを決定します。最適なパフォーマンスを実現するため、libvirt はディ" -"スクおよび VIF (NIC) モデルのいずれの場合も virtio を使用するように初期設定さ" -"れています。この手法の欠点は、virtio ドライバーがないオペレーティングシステ" -"ム (例、BSD、Solaris、Linux および Windows の以前のバージョン) を実行できない" -"点です。" - -msgid "Currently, the clients do not support Python 3." -msgstr "現在、クライアントは Python 3 をサポートしません。" - -msgid "Custom modules that extend some OpenStack core APIs." -msgstr "いくつかの OpenStack コア API を拡張するカスタムモジュール。" - -msgid "Customize the dashboard" -msgstr "ダッシュボードのカスタマイズ" - -msgid "DAC" -msgstr "DAC" - -msgid "DHCP" -msgstr "DHCP" - -msgid "DHCP agent" -msgstr "DHCP エージェント" - -msgid "DNS" -msgstr "DNS" - -msgid "DNS record" -msgstr "DNS レコード" - -msgid "DNS service" -msgstr "DNS サービス" - -msgid "DRTM" -msgstr "DRTM" - -msgid "" -"Daemon that provides DNS, DHCP, BOOTP, and TFTP services for virtual " -"networks." -msgstr "" -"仮想ネットワーク向けに DNS、DHCP、BOOTP、TFTP サービスを提供するデーモン。" - -msgid "Dashboard" -msgstr "Dashboard" - -msgid "Data Processing service" -msgstr "Data Processing サービス" - -msgid "" -"Data that is only known to or accessible by a user and used to verify that " -"the user is who he says he is. Credentials are presented to the server " -"during authentication. Examples include a password, secret key, digital " -"certificate, and fingerprint." -msgstr "" -"ユーザーのみが知っている、またはアクセスできるデータ。ユーザーが正当であるこ" -"とを検証するために使用される。クレデンシャルは、認証中にサーバーに提示され" -"る。例えば、パスワード、秘密鍵、電子証明書、フィンガープリントなどがある。" - -msgid "Database" -msgstr "データベース" - -msgid "Database service" -msgstr "Database サービス" - -msgid "Debian" -msgstr "Debian" - -msgid "" -"Defines resources for a cell, including CPU, storage, and networking. Can " -"apply to the specific services within a cell or a whole cell." -msgstr "" -"CPU、ストレージ、ネットワークを含むセルのリソースを定義する。1セルやセル全体" -"に含まれる特定のサービスに適用可能。" - -msgid "" -"Defining environment variables using an environment file is not a common " -"practice on Microsoft Windows. Environment variables are usually defined in " -"the :menuselection:`Advanced > System Properties` dialog box." -msgstr "" -"環境変数ファイルを用いて環境変数を定義することは、Microsoft Windows で一般的" -"な手法ではありません。環境変数は通常、 :menuselection:`システム > 詳細設定` " -"で定義されます。" - -msgid "Delete a volume" -msgstr "ボリュームの削除" - -msgid "Delete a volume transfer" -msgstr "ボリューム譲渡の削除" - -msgid "Delete the volume using either the volume name or ID:" -msgstr "ボリューム名または ID を使用してボリュームを削除します。" - -msgid "Delete the volume:" -msgstr "ボリュームを削除します。" - -msgid "" -"Deletes all image properties that are not explicitly set in the update " -"request. Otherwise, those properties not referenced are preserved." -msgstr "" -"更新要求に明示的に設定されていないイメージのプロパティをすべて削除します。そ" -"うでない場合は、参照されていないプロパティは保存されます。" - -msgid "" -"Denial of service (DoS) is a short form for denial-of-service attack. This " -"is a malicious attempt to prevent legitimate users from using a service." -msgstr "" -"DoS は、サービス妨害攻撃の省略形である。正当なユーザーがサービスを使用するこ" -"とを妨害するための悪意のある試み。" - -msgid "" -"Depending on context, the core API is either the OpenStack API or the main " -"API of a specific core project, such as Compute, Networking, Image service, " -"and so on." -msgstr "" -"コア API は、文脈に応じて OpenStack API または特定のコアプロジェクトのメイン " -"API を意味する。コアプロジェクトは、Compute、Networking、Image service などが" -"ある。" - -msgid "Deployment service" -msgstr "デプロイサービス" - -msgid "" -"Describes the parameters of the various virtual machine images that are " -"available to users; includes parameters such as CPU, storage, and memory. " -"Alternative term for flavor." -msgstr "" -"ユーザが利用可能な様々な仮想マシンイメージのパラメーター(CPU、ストレージ、メ" -"モリ等を含む)を示す。フレーバーの別名。" - -msgid "Description" -msgstr "説明" - -msgid "Description of the snapshot. Defaults to ``None``." -msgstr "スナップショットの説明。デフォルトは ``None`` です。" - -msgid "Designed as an OpenStack component." -msgstr "OpenStack のコンポーネントとして設計されています。" - -msgid "Desktop-as-a-Service" -msgstr "Desktop-as-a-Service" - -msgid "" -"Determines whether back-end members of a VIP pool can process a request. A " -"pool can have several health monitors associated with it. When a pool has " -"several monitors associated with it, all monitors check each member of the " -"pool. All monitors must declare a member to be healthy for it to stay active." -msgstr "" -"仮想 IP プールのバックエンドメンバーがリクエストを処理できるかどうかを判断す" -"る。プールは、それに関連づけられた複数のヘルスモニターを持てる。すべてのモニ" -"ターは、プールのメンバーをお互いに確認する。すべてのモニターは、その稼働状況" -"の健全性であることをメンバーに宣言する必要がある。" - -msgid "DevStack" -msgstr "DevStack" - -msgid "" -"Device plugged into a PCI slot, such as a fibre channel or network card." -msgstr "" -"ファイバーチャネルやネットワークカードなどの PCI スロット内に挿入されるデバイ" -"ス。" - -msgid "Diablo" -msgstr "Diablo" - -msgid "" -"Disables server-side message acknowledgment in the Compute RabbitMQ. " -"Increases performance but decreases reliability." -msgstr "" -"Compute RabbitMQ において、サーバーサイドメッセージ交換を無効化する。性能を向" -"上されるが、信頼性を低下させる。" - -msgid "Discover the version number for a client" -msgstr "クライアントのバージョン番号の確認" - -msgid "" -"Discretionary access control. Governs the ability of subjects to access " -"objects, while enabling users to make policy decisions and assign security " -"attributes. The traditional UNIX system of users, groups, and read-write-" -"execute permissions is an example of DAC." -msgstr "" -"任意アクセス制御。サブジェクトがオブジェクトにアクセスする機能を統制する。" -"ユーザーがポリシーを決定し、セキュリティー属性を割り当てられる。伝統的な " -"UNIX システムのユーザー、グループ、読み書き権限が、DAC の例である。" - -msgid "" -"Disk-based data storage generally represented as an iSCSI target with a file " -"system that supports extended attributes; can be persistent or ephemeral." -msgstr "" -"ディスクを用いたデータストレージ。一般的に、拡張属性をサポートするファイルシ" -"ステムを持つ、iSCSI ターゲットとして利用される。永続的なものと一時的なものが" -"ある。" - -msgid "" -"Disk-based virtual memory used by operating systems to provide more memory " -"than is actually available on the system." -msgstr "" -"システムにおいて実際に利用可能なメモリーより多くのメモリーをオペレーティング" -"システムにより使用されるディスクベースの仮想メモリー。" - -msgid "Distributed block storage system for QEMU, supported by OpenStack." -msgstr "" -"OpenStack によりサポートされる、QEMU 用の分散ブロックストレージシステム。" - -msgid "" -"Distributes partitions proportionately across Object Storage devices based " -"on the storage capacity of each device." -msgstr "" -"各デバイスのストレージキャパシティに基づき、Object Storage デバイスをまたがり" -"パーティションを比例分配する。" - -msgid "Django" -msgstr "Django" - -msgid "Documentation" -msgstr "ドキュメント" - -msgid "Documentation feedback" -msgstr "ドキュメントへのフィードバック" - -msgid "Domain Name System (DNS)" -msgstr "Domain Name System (DNS)" - -msgid "" -"Domain Name System. A hierarchical and distributed naming system for " -"computers, services, and resources connected to the Internet or a private " -"network. Associates a human-friendly names to IP addresses." -msgstr "" -"ドメインネームシステム。インターネットやプライベートネットワークに接続される" -"コンピューター、サービス、リソースの名前を管理する階層化分散システム。人間が" -"理解しやすい名前を IP アドレスに関連付ける。" - -msgid "Download and source the OpenStack RC file" -msgstr "OpenStack RC ファイルのダウンロードと読み込み" - -msgid "Drivers" -msgstr "ドライバー" - -msgid "" -"Drivers or a service back end are integrated to the centralized server. They " -"are used for accessing identity information in repositories external to " -"OpenStack, and may already exist in the infrastructure where OpenStack is " -"deployed (for example, SQL databases or LDAP servers)." -msgstr "" -"ドライバーやサービスバックエンドは、中央サーバーと統合されています。ドライ" -"バーは、OpenStack の外部にあるリポジトリーにある認証情報にアクセスするために" -"使用されます。こうしたリポジトリーは、OpenStack が導入されるインフラストラク" -"チャーにすでに存在する場合もあります (例えば、SQL データベースやLDAP サー" -"バー)。" - -msgid "" -"During the set up or testing of OpenStack, you might have questions about " -"how a specific task is completed or be in a situation where a feature does " -"not work correctly. Use the `ask.openstack.org `__ site to ask questions and get answers. When you visit the https://" -"ask.openstack.org site, scan the recently asked questions to see whether " -"your question has already been answered. If not, ask a new question. Be sure " -"to give a clear, concise summary in the title and provide as much detail as " -"possible in the description. Paste in your command output or stack traces, " -"links to screen shots, and any other information which might be useful." -msgstr "" -"OpenStack の構築中やテスト中に、ある作業を行うのにどうすればよいか質問した" -"り、ある機能が正しく動作しない状況になったりするかもしれません。 `ask." -"openstack.org `__ サイトを使用して、質問して回答を" -"得られます。 https://ask.openstack.org にアクセスしたら、最近の質問を検索し" -"て、あなたと同じ質問がすでに回答されているかを確認します。まだの場合、新しく" -"質問します。見出しの概要は明確かつ正確にしてください。そして、説明はできる限" -"り詳細にしてください。コマンドの出力、スタックトレース、スクリーンショットへ" -"のリンク、その他有用な情報を貼り付けてください。" - -msgid "Dynamic Host Configuration Protocol (DHCP)" -msgstr "動的ホスト設定プロトコル(DHCP)" - -msgid "" -"Dynamic Host Configuration Protocol. A network protocol that configures " -"devices that are connected to a network so that they can communicate on that " -"network by using the Internet Protocol (IP). The protocol is implemented in " -"a client-server model where DHCP clients request configuration data, such as " -"an IP address, a default route, and one or more DNS server addresses from a " -"DHCP server." -msgstr "" -"Dynamic Host Configuration Protocol。ネットワークに接続されたデバイスが、その" -"ネットワーク上で IP を使用して通信できるよう、ネットワークデバイスを設定する" -"ネットワークプロトコル。このプロトコルは、クライアントサイドモデルで実装され" -"ている。DHCP クライアントは、IP アドレス、デフォルトルート、1 つ以上の DNS " -"サーバーアドレス設定データを要求する。" - -msgid "Dynamic HyperText Markup Language (DHTML)" -msgstr "Dynamic HyperText Markup Language (DHTML)" - -msgid "Dynamic root of trust measurement." -msgstr "Dynamic root of trust measurement." - -msgid "EBS boot volume" -msgstr "EBS ブートボリューム" - -msgid "EC2" -msgstr "EC2" - -msgid "EC2 API" -msgstr "EC2 API" - -msgid "EC2 Compatibility API" -msgstr "EC2 互換API" - -msgid "EC2 access key" -msgstr "EC2 アクセスキー" - -msgid "EC2 secret key" -msgstr "EC2 シークレットキー" - -msgid "ESXi" -msgstr "ESXi" - -msgid "ETag" -msgstr "ETag" - -msgid "" -"Each OpenStack project provides a command-line client, which enables you to " -"access the project API through easy-to-use commands. For example, the " -"Compute service provides a ``nova`` command-line client." -msgstr "" -"各 OpenStack プロジェクトは、使いやすいコマンドからプロジェクトの API にアク" -"セスできる、コマンドラインクライアントを提供しています。例えば、Compute は " -"``nova`` コマンドラインクライアントを提供しています。" - -msgid "" -"Each OpenStack release has a code name. Code names ascend in alphabetical " -"order: Austin, Bexar, Cactus, Diablo, Essex, Folsom, Grizzly, Havana, " -"Icehouse, Juno, Kilo, Liberty, and Mitaka. Code names are cities or counties " -"near where the corresponding OpenStack design summit took place. An " -"exception, called the Waldon exception, is granted to elements of the state " -"flag that sound especially cool. Code names are chosen by popular vote." -msgstr "" -"各 OpenStack リリースはコード名を持つ。コード名はアルファベット順になります。" -"Austin, Bexar, Cactus, Diablo, Essex, Folsom, Grizzly, Havana, Icehouse, " -"Juno, Kilo、Liberty、Mitaka。コード名は、対応する OpenStack デザインサミット" -"が開催された場所の近くにある都市または国である。Waldon 例外と言われる例外は、" -"非常に格好良く聞こえる、状態フラグの要素に保証される。コード名は、一般的な投" -"票により選択される。" - -msgid "Easily scalable for future growth" -msgstr "将来のサイズ増加に応じて容易に拡張可能" - -msgid "Efficiently polls metering data related to OpenStack services." -msgstr "OpenStack サービスに関連する計測データを効率的に取得します。" - -msgid "" -"Either a soft or hard reboot of a server. With a soft reboot, the operating " -"system is signaled to restart, which enables a graceful shutdown of all " -"processes. A hard reboot is the equivalent of power cycling the server. The " -"virtualization platform should ensure that the reboot action has completed " -"successfully, even in cases in which the underlying domain/VM is paused or " -"halted/stopped." -msgstr "" -"サーバーのソフトリブートまたはハードリブート。ソフトリブートの場合、オペレー" -"ティングに再起動のシグナルが送信されます。これにより、すべてのプロセスを穏や" -"かにシャットダウンできます。ハードリブートは、サーバーの強制再起動と同じで" -"す。仮想化プラットフォームは、ベースの仮想マシンが一時停止中の場合や停止中の" -"場合でも、きちんとリブート動作を正常に完了させるべきです。" - -msgid "Elastic Block Storage (EBS)" -msgstr "Elastic Block Storage (EBS)" - -msgid "Element of RabbitMQ that provides a response to an incoming MQ message." -msgstr "送信されてきた MQ メッセージに応答する RabbitMQ の要素。" - -msgid "" -"Enables Compute and Networking integration, which enables Networking to " -"perform network management for guest VMs." -msgstr "" -"Compute と Networking の統合を可能にする。Networking がゲスト仮想マシン用の" -"ネットワークを管理できるようになる。" - -msgid "" -"Enables Compute to communicate with NetApp storage devices through the " -"NetApp OnCommand Provisioning Manager." -msgstr "" -"Compute が NetApp OnCommand Provisioning Manager 経由で NetApp ストレージデバ" -"イスと通信できるようにする。" - -msgid "" -"Enables Network-Connectivity-as-a-Service for other OpenStack services, such " -"as OpenStack Compute. Provides an API for users to define networks and the " -"attachments into them. Has a pluggable architecture that supports many " -"popular networking vendors and technologies." -msgstr "" -"OpenStack Compute のような他の OpenStack サービスに対して、Network-" -"Connectivity-as-a-Service をできるようにします。ユーザーがネットワークやそれ" -"らへの接続を定義するための API を提供します。プラグイン可能なアーキテクチャー" -"で、数多くの人気のあるネットワークベンダーや技術に対応しています。" - -msgid "" -"Enables Networking to distribute incoming requests evenly between designated " -"instances." -msgstr "" -"Networking により、受信リクエストを指定されたインスタンス間で均等に分散できる" -"ようになる。" - -msgid "" -"Enables a Linux bridge to understand a Networking port, interface " -"attachment, and other abstractions." -msgstr "" -"Linux ブリッジが、Networking のポート、インターフェース接続、他の抽象化を理解" -"できるようにする。" - -msgid "Enables users to submit commands as a tenant administrator or end user." -msgstr "" -"ユーザーが、テナント管理者もしくはエンドユーザーとしてコマンドを発行するのに" -"使用します。" - -msgid "" -"Enables users to submit commands to the REST API through a command-line " -"client authorized as either a admin user, reseller user, or swift user." -msgstr "" -"ユーザーがコマンドラインクライアントを使って REST API にコマンドを発行するの" -"に使用します。管理者ユーザー、 reseller ユーザー、 swift ユーザーのいずれの" -"ユーザーでも使用できます。" - -msgid "Encryption is available" -msgstr "暗号化が利用可能" - -msgid "Encryption is not available yet" -msgstr "暗号化はまだ利用不可" - -msgid "" -"Ensure that the ``C:\\Python27\\Scripts`` directory is defined in the " -"``PATH`` environment variable, and use the ``easy_install`` command from the " -"setuptools package:" -msgstr "" -"``C:\\Python27\\Scripts`` ディレクトリーが ``PATH`` 環境変数に定義されている" -"ことを確認します。setuptools パッケージの ``easy_install`` コマンドを使用しま" -"す。" - -msgid "" -"Ensure that the version of qemu you are using is version 0.14 or later. " -"Earlier versions of qemu result in an ``unknown option -s`` error message in " -"the ``nova-compute.log`` file." -msgstr "" -"お使いの qemu バージョンが 0.14 以降であることを確認してください。qemu のバー" -"ジョンがそれ以前の場合、``nova-compute.log`` ファイルで ``unknown option -" -"s`` のエラーメッセージが表示されます。 " - -msgid "Essex" -msgstr "Essex" - -msgid "Eucalyptus Kernel Image (EKI)" -msgstr "Eucalyptus Kernel Image (EKI)" - -msgid "Eucalyptus Machine Image (EMI)" -msgstr "Eucalyptus Machine Image (EMI)" - -msgid "Eucalyptus Ramdisk Image (ERI)" -msgstr "Eucalyptus Ramdisk Image (ERI)" - -msgid "" -"Examine the ``/var/log/nova/nova-api.log`` and ``/var/log/nova/nova-compute." -"log`` log files for error messages." -msgstr "" -"``/var/log/nova/nova-api.log`` と ``/var/log/nova/nova-compute.log`` のログ" -"ファイルでエラーメッセージを確認してください。 " - -msgid "Example: 1 TB \"extra hard drive\"" -msgstr "例: 1 TB \"追加ハードディスク\"" - -msgid "Example: 1 TB of file share" -msgstr "例: 1 TB のファイル共有" - -msgid "Example: 10 GB first disk, 30 GB/core second disk" -msgstr "例: 1 番目の 10 GB ディスク、2 番目のコアあたり 30 GB ディスク" - -msgid "Example: 10s of TBs of data set storage" -msgstr "例: 数十TBのデータセットストレージ" - -msgid "" -"Extension to iptables that allows creation of firewall rules that match " -"entire \"sets\" of IP addresses simultaneously. These sets reside in indexed " -"data structures to increase efficiency, particularly on systems with a large " -"quantity of rules." -msgstr "" -"連続する IP アドレスの全体に一致するファイアウォールルールを作成できる、" -"iptables の拡張。これらのセットは、効率化するためにインデックス化されたデータ" -"構造、とくに大量のルールを持つシステムにあります。" - -msgid "FWaaS" -msgstr "FWaaS" - -msgid "" -"Facility in Compute that allows each virtual machine instance to have more " -"than one VIF connected to it." -msgstr "" -"各仮想マシンインスタンスが複数の仮想インターフェースに接続できるようになる、" -"Compute における機能。" - -msgid "" -"Facility in Compute that enables a virtual machine instance to have more " -"than one VIF connected to it." -msgstr "" -"各仮想マシンインスタンスが複数の仮想インターフェースに接続できるようになる、" -"Compute における機能。" - -msgid "FakeLDAP" -msgstr "FakeLDAP" - -msgid "" -"Fast provisioning of Hadoop clusters on OpenStack for development and QA." -msgstr "開発や QA 目的での Hadoop クラスターの OpenStack 上への迅速な構築" - -msgid "" -"Feature in modern Ethernet networks that supports frames up to approximately " -"9000 bytes." -msgstr "約 9000 バイトまでのフレームをサポートする最近のイーサネット上の機能。" - -msgid "" -"Feature of certain network interface drivers that combines many smaller " -"received packets into a large packet before delivery to the kernel IP stack." -msgstr "" -"カーネルの IP スタックに届ける前に、多くの小さな受信パケットを大きなパケット" -"に結合する、特定のネットワークインターフェースドライバーの機能。" - -msgid "Fedora" -msgstr "Fedora" - -msgid "Feedback" -msgstr "フィードバック" - -msgid "Fibre Channel" -msgstr "ファイバーチャネル" - -msgid "Fibre Channel over Ethernet (FCoE)" -msgstr "Fibre Channel over Ethernet (FCoE)" - -msgid "File Storage (manila)" -msgstr "File Storage (manila)" - -msgid "" -"File system option that enables storage of additional information beyond " -"owner, group, permissions, modification time, and so on. The underlying " -"Object Storage file system must support extended attributes." -msgstr "" -"所有者、グループ、パーミッション、変更時間など以外の追加情報を保存できるよう" -"にする、ファイルシステムのオプション。Object Storage のバックエンドのファイル" -"システムは、拡張属性をサポートする必要がある。" - -msgid "" -"Filtering tool for a Linux bridging firewall, enabling filtering of network " -"traffic passing through a Linux bridge. Used in Compute along with " -"arptables, iptables, and ip6tables to ensure isolation of network " -"communications." -msgstr "" -"Linux ブリッジのファイアウォール用のフィルタリングツール。Linux ブリッジを通" -"過するネットワーク通信のフィルタリングできる。ネットワーク通信を分離するため" -"に、OpenStack Compute において arptables、iptables、ip6tables と一緒に使用さ" -"れる。" - -msgid "Find the matching transfer ID:" -msgstr "合致する転送 ID を探します。" - -msgid "First, add the Open Build Service repository:" -msgstr "まず、Open Build Service のリポジトリーを追加します。" - -msgid "Flat Manager" -msgstr "Flat マネージャー" - -msgid "FlatDHCP Manager" -msgstr "FlatDHCP マネージャー" - -msgid "Folsom" -msgstr "Folsom" - -msgid "" -"For IaaS, ability for a regular (non-privileged) account to manage a virtual " -"infrastructure component such as networks without involving an administrator." -msgstr "" -"IaaS の場合、管理者が介することなく、通常の (特権を持たない) ユーザーがネット" -"ワークなどの仮想インフラのコンポーネントを管理する機能。" - -msgid "For Mac OS X or Linux:" -msgstr "Mac OS X または Linux の場合:" - -msgid "For Microsoft Windows:" -msgstr "Microsoft Windows の場合:" - -msgid "" -"For SUSE Linux Enterprise Server, use ``zypper`` to install the clients from " -"the distribution packages in the Open Build Service. First, add the Open " -"Build Service repository:" -msgstr "" -"SUSE Linux Enterprise Server の場合、``zypper`` を使用して、Open Build " -"Service にあるディストリビューションのパッケージサービスからクライアントをイ" -"ンストールします。まず、Open Build Service のリポジトリーを追加します。" - -msgid "" -"For Ubuntu or Debian, use ``apt-get`` to install the clients from the " -"packaged versions:" -msgstr "" -"Ubuntu と Debian の場合、``apt-get`` を使用してパッケージバージョンからクライ" -"アントをインストールします。" - -msgid "" -"For bulk import of data to the cloud, the data ingress system creates a new " -"Block Storage volume, copies data from the physical device, and transfers " -"device ownership to the end user." -msgstr "" -"データをまとめてクラウドにインポートために、データ受信システムが新たにブロッ" -"クストレージボリュームを作成し、物理デバイスからデータをコピーしてから、デバ" -"イスの所有権をエンドユーザーに転送する。" - -msgid "" -"For details about image creation, see the `Virtual Machine Image Guide " -"`__." -msgstr "" -"イメージ作成の詳細は `仮想マシンイメージガイド `__ を参照してください。" - -msgid "" -"For example, copy the file to the computer from which you want to upload an " -"image with a ``glance`` client command." -msgstr "" -"例えば、``glance`` クライアントコマンドを用いてイメージをアップロードしたいコ" -"ンピューターにファイルをコピーします。" - -msgid "" -"For example, to see the version number for the ``openstack`` client, run the " -"following command:" -msgstr "" -"例えば、``openstack`` クライアントのバージョン番号を表示する場合、以下のコマ" -"ンドを実行します。" - -msgid "" -"For example, using the image ID shown above, you would issue the command as " -"follows:" -msgstr "" -"例えば、上に示したイメージ ID を使用して、以下のとおりコマンドを発行します。" - -msgid "" -"For example, when you specify your password using the command-line client " -"with the :option:`--os-password` argument, anyone with access to your " -"computer can view it in plain text with the ``ps`` field." -msgstr "" -"例えば、コマンドラインクライアントの :option:`--os-password` 引数を使用してパ" -"スワードを指定するとき、コンピューターにアクセスできるユーザーは、``ps`` の項" -"目に平文で表示できます。" - -msgid "For example:" -msgstr "例:" - -msgid "" -"For more information, see `Configuration Reference Guide `__." -msgstr "" -"詳しい情報は `Configuration Reference Guide `__ を参照してください。" - -msgid "" -"For more sophisticated monitoring, see the `ceilometer `__ project. You can also use tools, such as `Ganglia `__ or `Graphite `__, to gather " -"more detailed data." -msgstr "" -"高機能のモニタリングについては、`ceilometer `__ プロジェクトを参照してください。 `Ganglia `__ や `Graphite `__ などのツールを使用し" -"て、より詳細なデータを収集することも可能です。" - -msgid "" -"For openSUSE, use ``zypper`` to install the clients from the distribution " -"packages service:" -msgstr "" -"openSUSE の場合、``zypper`` を使用して、ディストリビューションのパッケージ" -"サービスからクライアントをインストールします。" - -msgid "" -"For the available OpenStack documentation, see `docs.openstack.org `__." -msgstr "" -"利用可能な OpenStack ドキュメントは `docs.openstack.org `__ を参照してください。" - -msgid "FormPost" -msgstr "FormPost" - -msgid "Free up space in a thinly-provisioned back end." -msgstr "シンプロビジョニングされたバックエンドで空き容量を解放する" - -msgid "" -"From a network architecture point of view, this service must be accessible " -"to customers and the public API for each OpenStack service. To use the " -"administrator functionality for other services, it must also connect to " -"Admin API endpoints, which should not be accessible by customers." -msgstr "" -"ネットワークアーキテクチャーの観点で見ると、このサービスは顧客からアクセスす" -"ることができる必要があると同時に、各 OpenStack サービスのパブリック API にも" -"アクセスできる必要があります。他の OpenStack サービスの管理機能を利用するに" -"は、管理 API エンドポイントにもアクセスできる必要があります。管理 API エンド" -"ポイントは顧客からはアクセスできないようにすべきです。" - -msgid "" -"Gathers statistics, lists items, updates metadata, and uploads, downloads, " -"and deletes files stored by the Object Storage service. Gains access to an " -"Object Storage installation for ad hoc processing." -msgstr "" -"統計情報を収集し、項目を一覧表示し、メタデータを更新し、Object Storage サービ" -"スにより保存されたファイルをアップロード、ダウンロード、削除します。" - -msgid "" -"Generally, extra properties on an Image service image to which only cloud " -"administrators have access. Limits which user roles can perform CRUD " -"operations on that property. The cloud administrator can configure any image " -"property as protected." -msgstr "" -"クラウド管理者のみがアクセスできる、Image service のイメージの追加プロパ" -"ティー。どのユーザーロールがそのプロパティーにおいて CRUD 操作を実行できるか" -"を制限する。クラウド管理者は、保護されたイメージのプロパティーをすべて設定で" -"きる。" - -msgid "Get CPU, memory, I/O, and network statistics for an instance." -msgstr "インスタンスの CPU、メモリー、I/O、ネットワーク統計を取得します。" - -msgid "" -"Get a summary of resource usage of all of the instances running on the host:" -msgstr "" -"ホストで実行中のインスタンスすべてのリソース使用状況 (概要) を取得します。" - -msgid "Get diagnostic statistics:" -msgstr "診断統計を取得します。" - -msgid "Get started with OpenStack" -msgstr "OpenStack 入門" - -msgid "Get summary statistics for each tenant:" -msgstr "各テナントの統計サマリーを取得します。" - -msgid "Give a clear, concise summary." -msgstr "明瞭で簡潔なまとめを。" - -msgid "" -"Gives guest VMs exclusive access to a PCI device. Currently supported in " -"OpenStack Havana and later releases." -msgstr "" -"ゲスト仮想マシンが PCI デバイスに排他的にアクセスされる。OpenStack Havana 以" -"降でサポートされる。" - -msgid "Glossary" -msgstr "用語集" - -msgid "GlusterFS" -msgstr "GlusterFS" - -msgid "Governance service" -msgstr "Governance service" - -msgid "Graphic Interchange Format (GIF)" -msgstr "Graphic Interchange Format (GIF)" - -msgid "Graphics Processing Unit (GPU)" -msgstr "Graphics Processing Unit (GPU)" - -msgid "Green Threads" -msgstr "Green Threads" - -msgid "Grizzly" -msgstr "Grizzly" - -msgid "Group" -msgstr "グループ" - -msgid "HTML title" -msgstr "HTML タイトル" - -msgid "Hadoop" -msgstr "Hadoop" - -msgid "Hadoop Distributed File System (HDFS)" -msgstr "Hadoop Distributed File System (HDFS)" - -msgid "Handles authentication and is usually OpenStack Identity." -msgstr "認証を処理します。通常は認証に OpenStack Identity を使用します。" - -msgid "Hash of image data to use for verification." -msgstr "イメージデータの検証に使用するハッシュ。" - -msgid "Havana" -msgstr "Havana" - -msgid "Heat Orchestration Template (HOT)" -msgstr "Heat Orchestration Template (HOT)" - -msgid "Heat input in the format native to OpenStack." -msgstr "OpenStack 固有形式の Heat の入力データ。" - -msgid "Help URL" -msgstr "ヘルプ URL" - -msgid "Helpful information that prevents the user from making mistakes." -msgstr "ユーザーが間違いやすい箇所についてアドバイスです。" - -msgid "" -"High-availability mode for legacy (nova) networking. Each compute node " -"handles NAT and DHCP and acts as a gateway for all of the VMs on it. A " -"networking failure on one compute node doesn't affect VMs on other compute " -"nodes." -msgstr "" -"レガシーネットワーク (nova) の高可用性モード。各コンピュートノードは、NAT と " -"DHCP を処理し、すべての仮想マシンのゲートウェイとして動作する。あるコンピュー" -"トノードにおけるネットワーク障害は、他のコンピュートノードにある仮想マシンに" -"影響しません。" - -msgid "" -"High-performance 64-bit file system created by Silicon Graphics. Excels in " -"parallel I/O operations and data consistency." -msgstr "" -"Silicon Graphics 社により作成された、高性能な 64 ビットファイルシステム。並" -"列 I/O 処理とデータ一貫性に優れる。" - -msgid "Host Bus Adapter (HBA)" -msgstr "Host Bus Adapter (HBA)" - -msgid "Hyper-V" -msgstr "Hyper-V" - -msgid "Hypertext Transfer Protocol (HTTP)" -msgstr "Hypertext Transfer Protocol (HTTP)" - -msgid "Hypertext Transfer Protocol Secure (HTTPS)" -msgstr "Hypertext Transfer Protocol Secure (HTTPS)" - -msgid "ICMP" -msgstr "ICMP" - -msgid "ID number" -msgstr "ID 番号" - -msgid "IDS" -msgstr "IDS" - -msgid "INI" -msgstr "INI" - -msgid "IOPS" -msgstr "IOPS" - -msgid "" -"IOPS (Input/Output Operations Per Second) are a common performance " -"measurement used to benchmark computer storage devices like hard disk " -"drives, solid state drives, and storage area networks." -msgstr "" -"IOPS (Input/Output Operations Per Second) は、ハードディスク、SSD、SAN などの" -"ストレージデバイスをベンチマークするために使用される、一般的なパフォーマンス" -"指標である。" - -msgid "IP Address Management (IPAM)" -msgstr "IP Address Management (IPAM)" - -msgid "IP address" -msgstr "IP アドレス" - -msgid "IPL" -msgstr "IPL" - -msgid "IPMI" -msgstr "IPMI" - -msgid "IQN" -msgstr "IQN" - -msgid "ISO9660" -msgstr "ISO9660" - -msgid "IaaS" -msgstr "IaaS" - -msgid "Icehouse" -msgstr "Icehouse" - -msgid "Identity API" -msgstr "Identity API" - -msgid "Identity back end" -msgstr "Identity バックエンド" - -msgid "Identity service" -msgstr "Identity サービス" - -msgid "Identity service API" -msgstr "Identity service API" - -msgid "" -"If Object Storage finds objects, containers, or accounts that are corrupt, " -"they are placed in this state, are not replicated, cannot be read by " -"clients, and a correct copy is re-replicated." -msgstr "" -"Object Storage が壊れたオブジェクト、コンテナー、アカウントを見つけた際に、そ" -"のデータはこの状態にセットされる。この状態にセットされたデータは、複製され" -"ず、クライアントが読み出すこともできなくなり、正しいコピーが再複製される。" - -msgid "" -"If a requested resource such as CPU time, disk storage, or memory is not " -"available in the parent cell, the request is forwarded to its associated " -"child cells. If the child cell can fulfill the request, it does. Otherwise, " -"it attempts to pass the request to any of its children." -msgstr "" -"CPU 時間、ディスクストレージ、メモリ等の要求されたリソースが親セルで利用不可" -"の場合、リクエストは親セルに紐付けられた子セルに転送される。子セルがリクエス" -"トに対応可能な場合、子セルはそのリクエストを処理する。対応不可の場合、そのリ" -"クエストを自分の子セルに渡そうとする。" - -msgid "" -"If a requested resource, such as CPU time, disk storage, or memory, is not " -"available in the parent cell, the request is forwarded to associated child " -"cells." -msgstr "" -"要求されたリソース(CPU時間、ディスクストレージ、メモリ)が親セルで利用不可の" -"場合、そのリクエストは紐付けられた子セルに転送される。" - -msgid "" -"If the volume is in use or has snapshots, the specified host destination " -"cannot accept the volume. If the user is not an administrator, the migration " -"fails." -msgstr "" -"ボリュームが使用中の場合、あるいはスナップショットが存在する場合、指定のマイ" -"グレーション先のホストは、そのボリュームを受け入れることができません。また、" -"管理ユーザーではない場合も、マイグレーションは失敗します。" - -msgid "" -"If you do not have a sufficient quota for the transfer, the transfer is " -"refused." -msgstr "転送用のクォータが不足している場合、転送は拒否されます。" - -msgid "" -"If you do not want to use this theme you can remove it and its dependencies " -"using the following command:" -msgstr "" -"このテーマを使用したくない場合、以下のコマンドを使用して、このテーマと依存" -"パッケージを削除できます。" - -msgid "" -"If you encounter problems in creating an image in the Image service or " -"Compute, the following information may help you troubleshoot the creation " -"process." -msgstr "" -"Image service や Compute でイメージの作成に関する問題に遭遇した場合、以下の情" -"報が作成プロセスのトラブルシュートに役立つかもしれません。" - -msgid "" -"If you need to install the source package for the command-line package, the " -"following table lists the software needed to run the command-line clients, " -"and provides installation instructions as needed." -msgstr "" -"コマンドラインパッケージのソースパッケージをインストールする必要がある場合、" -"コマンドラインクライアントを実行するために必要となるソフトウェアの一覧が以下" -"の表にまとめられています。必要に応じてインストール手順が書かれています。" - -msgid "" -"If you specify a disk or CD-ROM bus model that is not supported, see the " -"Disk_and_CD-ROM_bus_model_values_table_. If you specify a VIF model that is " -"not supported, the instance fails to launch. See the VIF_model_values_table_." -msgstr "" -"サポートされていないディスクまたは CD-ROM バスモデルを指定する場合は " -"Disk_and_CD-ROM_bus_model_values_table_ (ディスクと CD-ROM のバスモデルの値) " -"を参照してください。また、サポートされていない VIF モデルを指定する場合、イン" -"スタンスは起動できません。 VIF_model_values_table_ (仮想インターフェースのモ" -"デルの値) を参照してください。 " - -msgid "" -"If your volume was created successfully, its status is ``available``. If its " -"status is ``error``, you might have exceeded your quota." -msgstr "" -"ボリュームが正常に作成された場合、状態は ``available`` にとなります。状態が " -"``error`` の場合、クォータを超過している可能性があります。" - -msgid "Image API" -msgstr "Image API" - -msgid "Image service" -msgstr "Image service" - -msgid "Image service API" -msgstr "Image service API" - -msgid "" -"Impassable limits for guest VMs. Settings include total RAM size, maximum " -"number of vCPUs, and maximum disk size." -msgstr "" -"ゲスト仮想マシンの超えられない制限。合計メモリー容量、最大仮想 CPU 数、最大" -"ディスク容量の設定。" - -msgid "Implemented as a filesystem underlying OpenStack Compute" -msgstr "OpenStack Compute が動作するファイルシステムとして実装" - -msgid "" -"In Compute and Block Storage, the ability to set resource limits on a per-" -"project basis." -msgstr "" -"プロジェクト単位に使用できるリソース上限を設定できる、Compute と Block " -"Storage の機能。" - -msgid "" -"In Compute, conductor is the process that proxies database requests from the " -"compute process. Using conductor improves security because compute nodes do " -"not need direct access to the database." -msgstr "" -"Compute において、コンピュートプロセスからのデータベース要求をプロキシーする" -"処理。コンダクターを使用することにより、コンピュートノードがデータベースに直" -"接アクセスする必要がなくなるので、セキュリティーを向上できる。" - -msgid "" -"In Object Storage, tools to test and ensure dispersion of objects and " -"containers to ensure fault tolerance." -msgstr "" -"Object Storage で、フォールトトレラントの確認の為に、オブジェクトとコンテナの" -"分散をテスト、確認するツール。" - -msgid "" -"In OpenStack Identity, entities represent individual API consumers and are " -"owned by a specific domain. In OpenStack Compute, a user can be associated " -"with roles, projects, or both." -msgstr "" -"OpenStack Identity では、エンティティーは個々の API 利用者を表す、特定のドメ" -"インに属する。OpenStack Compute では、ユーザーはロール、プロジェクトもしくは" -"その両者と関連付けることができる。" - -msgid "" -"In OpenStack, the API version for a project is part of the URL. For example, " -"``example.com/nova/v1/foobar``." -msgstr "" -"OpenStack では、プロジェクトの API バージョンが URL の一部となる。例: " -"``example.com/nova/v1/foobar``" - -msgid "" -"In a high-availability setup with an active/active configuration, several " -"systems share the load together and if one fails, the load is distributed to " -"the remaining systems." -msgstr "" -"アクティブ/アクティブ設定を用いた高可用構成の場合、複数のシステムが処理を一緒" -"に分担する。また、あるシステムが故障した場合、処理が残りのシステムに分散され" -"る。" - -msgid "" -"In a high-availability setup with an active/passive configuration, systems " -"are set up to bring additional resources online to replace those that have " -"failed." -msgstr "" -"アクティブ/パッシブ設定を用いた高可用性セットアップでは、故障したシステムを置" -"き換えるために、システムが追加リソースをオンラインにするようセットアップされ" -"る。" - -msgid "" -"In a text editor, create a file named ``PROJECT-openrc.sh`` and add the " -"following authentication information:" -msgstr "" -"テキストエディターで ``PROJECT-openrc.sh`` という名前のファイルを作成し、以下" -"の認証情報を追加します。" - -msgid "" -"In order to benefit from the Identity service, other OpenStack services need " -"to collaborate with it. When an OpenStack service receives a request from a " -"user, it checks with the Identity service whether the user is authorized to " -"make the request." -msgstr "" -"Identity サービスの恩恵を受けるには、他の OpenStack サービスは Identity サー" -"ビスと協調する必要があります。OpenStack サービスは、ユーザーからのリクエスト" -"を受けたとき、ユーザーがリクエストを発行する権限があるかどうかを Identity " -"サービスを用いて確認します。" - -msgid "" -"In the context of Object Storage, this is a process that is not terminated " -"after an upgrade, restart, or reload of the service." -msgstr "" -"Object Storage の文脈において、サービスの更新、再起動、再読み込みの後に終了し" -"ないプロセス。" - -msgid "" -"In the context of the Identity service, the worker process that provides " -"access to the admin API." -msgstr "Identity の領域で、管理 API へのアクセスを提供するワーカープロセス。" - -msgid "" -"In the following example, the ``demo-openrc.sh`` file is sourced for the " -"demo project:" -msgstr "" -"以下の例では、``demo-openrc.sh`` が demo プロジェクト用に読み込まれます。" - -msgid "" -"In this example, :option:`--force-host-copy True` forces the generic host-" -"based migration mechanism and bypasses any driver optimizations." -msgstr "" -"この例では、 :option:`--force-host-copy True` は、強制的に一般的なホストベー" -"スのマイグレーションの仕組みを使用してドライバーの最適化なしで進めます。" - -msgid "" -"Information that consists solely of ones and zeroes, which is the language " -"of computers." -msgstr "1 と 0 だけから構成される情報。コンピューターの言語。" - -msgid "" -"Infrastructure-as-a-Service. IaaS is a provisioning model in which an " -"organization outsources physical components of a data center, such as " -"storage, hardware, servers, and networking components. A service provider " -"owns the equipment and is responsible for housing, operating and maintaining " -"it. The client typically pays on a per-use basis. IaaS is a model for " -"providing cloud services." -msgstr "" -"Infrastructure-as-a-Service。IaaS は、ストレージ、ハードウェア、サーバー、" -"ネットワークなど、データセンターの物理コンポーネントをアウトソースする組織の" -"配備モデル。サーバープロバイダーは、設備を所有し、ハウジング、運用、メンテナ" -"ンスに責任を持つ。クライアントは、一般的に使用量に応じて費用を払う。IaaS は、" -"クラウドサービスを提供するモデル。" - -msgid "Initial Program Loader." -msgstr "Initial Program Loader。初期プログラムローダー。" - -msgid "Install each client separately by using the following command:" -msgstr "以下のコマンドを使用して、各クライアントをそれぞれインストールします。" - -msgid "Install pip through the package manager for your system:" -msgstr "" -"お使いのシステムのパッケージマネージャーから pip をインストールします。" - -msgid "Install the Database service." -msgstr "Database サービスをインストールします。" - -msgid "Install the OpenStack client" -msgstr "OpenStack client のインストール" - -msgid "Install the OpenStack command-line clients" -msgstr "OpenStack コマンドラインクライアントのインストール" - -msgid "Install the prerequisite software" -msgstr "前提ソフトウェアのインストール" - -msgid "" -"Install the prerequisite software and the Python package for each OpenStack " -"client." -msgstr "" -"前提ソフトウェアと各 OpenStack クライアント用の Python パッケージをインストー" -"ルします。" - -msgid "Installed by default on Mac OS X." -msgstr "Mac OS X に標準でインストールされます。" - -msgid "Installing from packages" -msgstr "パッケージからのインストール" - -msgid "Installing with pip" -msgstr "pip を用いたインストール" - -msgid "Instances in use" -msgstr "使用中のインスタンス" - -msgid "" -"Instruments the complex system flows that support provisioning instances, " -"managing the lifecycle of instances, and performing operations on instances." -msgstr "" -"インスタンスの展開、インスタンスのライフサイクルの管理、インスタンス上の処理" -"の実行をサポートする複雑なシステムフローの全体指揮を行います。" - -msgid "" -"Integration with vendor specific management tools, such as Apache Ambari or " -"Cloudera Management Console." -msgstr "" -"ベンダー固有の管理ツールとの統合。 Apache Ambari や Cloudera Management " -"Console など。" - -msgid "" -"Intelligent Platform Management Interface. IPMI is a standardized computer " -"system interface used by system administrators for out-of-band management of " -"computer systems and monitoring of their operation. In layman's terms, it is " -"a way to manage a computer using a direct network connection, whether it is " -"turned on or not; connecting to the hardware rather than an operating system " -"or login shell." -msgstr "" -"Intelligent Platform Management Interface。IPMI は、コンピューターシステムの" -"アウトオブバンド管理、運用監視のために、システム管理者により使用される標準的" -"なコンピューターシステムインターフェース。平たく言うと、電源状態によらず、" -"ネットワークの直接通信を使用してコンピューターを管理する方法。オペレーティン" -"グシステムやログインシェルではなく、ハードウェアに接続する。" - -msgid "" -"Interactions and processes that are obfuscated from the user, such as " -"Compute volume mount, data transmission to an iSCSI target by a daemon, or " -"Object Storage object integrity checks." -msgstr "" -"Compute のボリュームのマウント、デーモンによる iSCSI ターゲットへのデータ転" -"送、Object Storage のオブジェクトの完全性検査など、ユーザーから見えにくい操作" -"や処理。" - -msgid "" -"Interacts directly with the Block Storage service, and processes such as the " -"``cinder-scheduler``. It also interacts with these processes through a " -"message queue. The ``cinder-volume`` service responds to read and write " -"requests sent to the Block Storage service to maintain state. It can " -"interact with a variety of storage providers through a driver architecture." -msgstr "" -"``cinder-scheduler`` などの Block Storage サービスやプロセスと直接やり取りを" -"行います。また、メッセージキュー経由でもこれらのプロセスと連携します。 " -"``cinder-volume`` サービスは、Block Storage サービスへ送られた読み出し、書き" -"込みリクエストに応答し、状態を管理します。ドライバーアーキテクチャーになって" -"おり、様々なストレージプロバイダーと連携できます。" - -msgid "" -"Interface within Networking that enables organizations to create custom plug-" -"ins for advanced features, such as QoS, ACLs, or IDS." -msgstr "" -"組織が QoS、ACL、IDS などの高度な機能向けのカスタムプラグインを作成できるよう" -"にする、Networking 内のインターフェース。" - -msgid "" -"Internally, OpenStack services are composed of several processes. All " -"services have at least one API process, which listens for API requests, " -"preprocesses them and passes them on to other parts of the service. With the " -"exception of the Identity service, the actual work is done by distinct " -"processes." -msgstr "" -"内部では、 それぞれの OpenStack サービスは複数のプロセスから構成されていま" -"す。すべてのサービスには少なくとも 1 つの API プロセスがあり、この API プロセ" -"スは API リクエストを待ち受け、API リクエストの前処理を行ってから、そのサービ" -"スの別の構成要素にそのリクエストを渡します。実際の処理は別のプロセスによって" -"行わます。ただし、 Identity service は例外です。" - -msgid "" -"Internally, each command uses cURL command-line tools, which embed API " -"requests. OpenStack APIs are RESTful APIs, and use the HTTP protocol. They " -"include methods, URIs, media types, and response codes." -msgstr "" -"内部的に、各コマンドは API リクエストを組み込んだ cURL コマンドラインツールを" -"使用します。OpenStack API は HTTP プロトコルを使用する RESTful API です。メ" -"ソッド、URI、メディアタイプ、応答コードなどが含まれます。" - -msgid "" -"Internet Control Message Protocol, used by network devices for control " -"messages. For example, :command:`ping` uses ICMP to test connectivity." -msgstr "" -"インターネット制御メッセージプロトコル。制御メッセージ用にネットワークデバイ" -"スにより使用される。例えば、:command:`ping` は接続性をテストするために ICMP " -"を使用する。" - -msgid "Internet Service Provider (ISP)" -msgstr "Internet Service Provider (ISP)" - -msgid "Internet Small Computer System Interface (iSCSI)" -msgstr "Internet Small Computer System Interface (iSCSI)" - -msgid "Internet protocol (IP)" -msgstr "インターネットプロトコル (IP)" - -msgid "Intrusion Detection System." -msgstr "侵入検知システム。" - -msgid "It includes the following components:" -msgstr "以下のコンポーネントで構成されます。" - -msgid "Java" -msgstr "Java" - -msgid "JavaScript" -msgstr "JavaScript" - -msgid "JavaScript Object Notation (JSON)" -msgstr "JavaScript Object Notation (JSON)" - -msgid "Jenkins" -msgstr "Jenkins" - -msgid "Juno" -msgstr "Juno" - -msgid "Kerberos" -msgstr "Kerberos" - -msgid "Key Manager service" -msgstr "Key Manager サービス" - -msgid "Key features are:" -msgstr "主要機能な以下の通りです。" - -msgid "Kickstart" -msgstr "Kickstart" - -msgid "Kilo" -msgstr "Kilo" - -msgid "LBaaS" -msgstr "LBaaS" - -msgid "" -"LBaaS feature that provides availability monitoring using the ``ping`` " -"command, TCP, and HTTP/HTTPS GET." -msgstr "" -"``ping`` コマンド、TCP、HTTP/HTTPS GET を使用してモニタリングする機能を提供す" -"る LBaaS の機能。" - -msgid "" -"Launches stacks from templates, views details of running stacks including " -"events and resources, and updates and deletes stacks." -msgstr "" -"テンプレートからスタックを起動し、イベントやリソースを含む実行中のスタックの" -"詳細を表示し、スタックを更新、削除します。" - -msgid "Launchpad" -msgstr "Launchpad" - -msgid "Layer-2 (L2) agent" -msgstr "L2 エージェント" - -msgid "Layer-2 network" -msgstr "L2 ネットワーク" - -msgid "Layer-3 (L3) agent" -msgstr "L3 エージェント" - -msgid "Layer-3 network" -msgstr "L3 ネットワーク" - -msgid "Liberty" -msgstr "Liberty" - -msgid "Lightweight Directory Access Protocol (LDAP)" -msgstr "Lightweight Directory Access Protocol (LDAP)" - -msgid "Linux Bridge neutron plug-in" -msgstr "Linux Bridge neutron プラグイン" - -msgid "Linux bridge" -msgstr "Linux ブリッジ" - -msgid "Linux containers (LXC)" -msgstr "Linux コンテナー (LXC)" - -msgid "" -"Linux kernel feature that provides independent virtual networking instances " -"on a single host with separate routing tables and interfaces. Similar to " -"virtual routing and forwarding (VRF) services on physical network equipment." -msgstr "" -"別々のルーティングテーブルとインターフェースを持つ単一のホストにおいて、独立" -"した仮想ネットワークインターフェースを提供する Linux カーネル機能。物理ネット" -"ワーク環境における仮想ルーティングおよびフォワーディング (VRF) サービスと似て" -"いる。" - -msgid "" -"Linux kernel security module that provides the mechanism for supporting " -"access control policies." -msgstr "" -"アクセス制御ポリシーをサポートするための機構を提供する Linux カーネルセキュリ" -"ティーモジュール。" - -msgid "List available volumes and their statuses:" -msgstr "利用可能なボリュームとその状態を表示します。" - -msgid "" -"List images, and note the ID of the image that you want to use for your " -"volume:" -msgstr "" -"イメージを一覧表示し、ボリュームに使用したいイメージの ID を記録します。" - -msgid "List instances:" -msgstr "インスタンスを一覧表示します。" - -msgid "List or get details for images (glance)" -msgstr "イメージ (glance) の詳細の一覧表示と取得" - -msgid "" -"List the availability zones, and note the ID of the availability zone in " -"which you want to create your volume:" -msgstr "" -"アベイラビリティゾーンを表示して、その中からボリュームを作成するアベイラビリ" -"ティゾーンの ID をメモします。 " - -msgid "List the hosts and the nova-related services that run on them:" -msgstr "" -"ホストおよびそのホストで実行されている nova 関連のサービスを一覧表示します。" - -msgid "" -"List the volumes again, and note that the status of your volume is " -"``deleting``:" -msgstr "" -" 再度ボリュームを表示して、ボリュームの状態が deleting となっていることを確認" -"します。 " - -msgid "List volumes:" -msgstr "ボリュームを一覧表示します。" - -msgid "Lists allowed commands within the Compute rootwrap facility." -msgstr "Compute rootwrap 機能内で許可されるコマンドの一覧。" - -msgid "" -"Lists containers in Object Storage and stores container information in the " -"account database." -msgstr "" -"Object Storage にあるコンテナーを一覧表示し、コンテナーの情報をアカウントデー" -"タベースに保存する。" - -msgid "" -"Local file that contains the disk image to be uploaded during the update. " -"Alternatively, you can pass images to the client through stdin." -msgstr "" -"更新中にアップロードするディスクイメージを含むローカルファイル。または、標準" -"入力からクライアントにイメージを渡すことができます。" - -msgid "Logged in banner: 216 x 35" -msgstr "ログイン後のバナー: 216 x 35" - -msgid "Logical Volume Manager (LVM)" -msgstr "論理ボリュームマネージャー (LVM)" - -msgid "Logical architecture" -msgstr "論理アーキテクチャー" - -msgid "" -"Logical groupings of related code, such as the Block Storage volume manager " -"or network manager." -msgstr "" -"Block Storage のボリュームマネージャーやネットワークマネージャーなど、関連す" -"るコードの論理的なグループ。" - -msgid "Logical subdivision of an IP network." -msgstr "IP ネットワークの論理分割。" - -msgid "Login screen: 365 x 50" -msgstr "ログイン画面: 365 x 50" - -msgid "Logo" -msgstr "ロゴ" - -msgid "Logo and site colors" -msgstr "ロゴとサイトカラー" - -msgid "Logo link" -msgstr "ロゴリンク" - -msgid "" -"Lower power consumption CPU often found in mobile and embedded devices. " -"Supported by OpenStack." -msgstr "" -"モバイル機器や組み込みデバイスによく利用される低消費電力 CPU。OpenStack はサ" -"ポートしている。" - -msgid "" -"MD5 hash of an object within Object Storage, used to ensure data integrity." -msgstr "" -"Object Storage 内のオブジェクトの MD5 ハッシュ。データの完全性を確認するため" -"に使用される。" - -msgid "Makes an image accessible for all the tenants (admin-only by default)." -msgstr "" -"イメージをすべてのテナントからアクセス可能にします (デフォルトは admin 専" -"用)。" - -msgid "Manage images" -msgstr "イメージの管理" - -msgid "Manage volumes" -msgstr "ボリュームの管理" - -msgid "" -"Managed through REST API with UI available as part of OpenStack dashboard." -msgstr "" -"REST API 経由で管理でき、 OpenStack dashboard の一部として UI も提供されてい" -"ます。" - -msgid "Manages accounts defined with Object Storage." -msgstr "Object Storage で定義されるアカウントを管理します。" - -msgid "Manages actual objects, such as files, on the storage nodes." -msgstr "" -"ストレージノードにおいて、ファイルなどの実際のオブジェクトを管理します。" - -msgid "" -"Manages the lifecycle of compute instances in an OpenStack environment. " -"Responsibilities include spawning, scheduling and decommissioning of virtual " -"machines on demand." -msgstr "" -"OpenStack 環境でコンピュートインスタンスのライフサイクルを管理します。要求に" -"応じて仮想マシンの作成、スケジューリング、破棄などに責任を持ちます。" - -msgid "Manages the mapping of containers or folders, within Object Storage." -msgstr "Object Storage 内でコンテナーやフォルダーの対応付けを管理します。" - -msgid "" -"Many Linux distributions provide packages to make setuptools easy to " -"install. Search your package manager for setuptools to find an installation " -"package. If you cannot find one, download the setuptools package directly " -"from https://pypi.python.org/pypi/setuptools." -msgstr "" -"Linux ディストリビューションの多くは、setuptools を簡単にインストールするため" -"のパッケージを提供しています。お使いのパッケージマネージャーで setuptools を" -"検索してインストレーションパッケージを見つけてください。見つからない場合は、" -"https://pypi.python.org/pypi/setuptools から直接 setuptools パッケージをダウ" -"ンロードしてください。 " - -msgid "Maps Object Storage partitions to physical storage devices." -msgstr "Object Storage パーティションの物理ストレージデバイスへの対応付け" - -msgid "" -"Massively scalable distributed storage system that consists of an object " -"store, block store, and POSIX-compatible distributed file system. Compatible " -"with OpenStack." -msgstr "" -"オブジェクトストア、ブロックストア、および POSIX 互換分散ファイルシステムから" -"構成される大規模スケール可能分散ストレージシステム。OpenStack 互換。" - -msgid "" -"Maximum frame or packet size for a particular network medium. Typically 1500 " -"bytes for Ethernet networks." -msgstr "" -"特定のネットワークメディア向けの最大フレームやパケットサイズ。一般的に、イー" -"サネット向けは 1500 バイト。" - -msgid "" -"Mechanism for highly-available multi-host routing when using OpenStack " -"Networking (neutron)." -msgstr "" -"OpenStack Networking (neutron) の使用時、高可用なマルチホストルーティングのた" -"めの機構。" - -msgid "" -"Mechanism in IP networks to detect end-to-end MTU and adjust packet size " -"accordingly." -msgstr "" -"エンド間の MTU を検出し、パケットサイズを適切に調整するための IP ネットワーク" -"における機構。" - -msgid "" -"Message exchange that is cleared when the service restarts. Its data is not " -"written to persistent storage." -msgstr "" -"サービスの再起動時に削除されるメッセージ交換。このデータは永続ストレージに書" -"き込まれない。" - -msgid "" -"Message queue software supported by OpenStack. An alternative to RabbitMQ. " -"Also spelled 0MQ." -msgstr "" -"OpenStack によりサポートされるメッセージキューソフトウェア。RabbitMQ の代替。" -"0MQ とも表記。" - -msgid "" -"Message queue software supported by OpenStack; an alternative to RabbitMQ." -msgstr "" -"OpenStack によりサポートされるメッセージキューソフトウェア。RabbitMQ の代替。" - -msgid "" -"Message queue that is cleared when the service restarts. Its data is not " -"written to persistent storage." -msgstr "" -"サービスの再起動時に削除されるメッセージキュー。このデータは永続ストレージに" -"書き込まれない。" - -msgid "Message service" -msgstr "Message サービス" - -msgid "Messaging queue" -msgstr "メッセージングキュー" - -msgid "Meta-Data Server (MDS)" -msgstr "Meta-Data Server (MDS)" - -msgid "Metadata agent" -msgstr "メタデータエージェント" - -msgid "Metadata definition service" -msgstr "メタデータ定義サービス" - -msgid "" -"Method to access VM instance consoles using a web browser. Supported by " -"Compute." -msgstr "" -"Web ブラウザーを使用して仮想マシンインスタンスのコンソールにアクセスする方" -"法。Compute によりサポートされる。" - -msgid "" -"Middleware modules run in the address space of the OpenStack component that " -"is using the Identity service. These modules intercept service requests, " -"extract user credentials, and send them to the centralized server for " -"authorization. The integration between the middleware modules and OpenStack " -"components uses the Python Web Server Gateway Interface." -msgstr "" -"ミドルウェアモジュールは、Identity サービスを使用している OpenStack コンポー" -"ネントの一部として動作します。これらのモジュールは、サービスリクエスト処理の" -"中で、ユーザーのクレデンシャルを抽出し、認可を行うためそのクレデンシャルを中" -"央サーバーに送信します。ミドルウェアモジュールと OpenStack コンポーネントの間" -"の統合には、Python Web Server Gateway Interface を使用します。" - -msgid "Migrate a volume" -msgstr "ボリュームの移行" - -msgid "" -"Migrate a volume with the :command:`cinder migrate` command, as shown in the " -"following example:" -msgstr "" -"以下の例にあるように、:command:`cinder migrate` コマンドでボリュームを移行し" -"ます。" - -msgid "Mitaka" -msgstr "Mitaka" - -msgid "Modify the properties of a volume." -msgstr "ボリュームのプロパティーを編集します。" - -msgid "Modular Layer 2 (ML2) neutron plug-in" -msgstr "Modular Layer 2 (ML2) neutron プラグイン" - -msgid "" -"Modular system that allows the underlying message queue software of Compute " -"to be changed. For example, from RabbitMQ to ZeroMQ or Qpid." -msgstr "" -"Compute が利用するメッセージキューソフトウェアを変更できるようにする仕組み。" -"例えば、 RabbitMQ を ZeroMQ や Qpid に変更できる。" - -msgid "Modules" -msgstr "モジュール" - -msgid "Monitor (LBaaS)" -msgstr "モニター (LBaaS)" - -msgid "Monitor (Mon)" -msgstr "モニター (Mon)" - -msgid "Monitoring" -msgstr "Monitoring" - -msgid "Monitoring solution." -msgstr "監視ソリューション。" - -msgid "" -"Monitors and meters the OpenStack cloud for billing, benchmarking, " -"scalability, and statistical purposes." -msgstr "" -"課金、ベンチマーク、スケーラビリティ、統計などの目的のために、OpenStack クラ" -"ウドを監視および計測します。" - -msgid "" -"Most Linux distributions include packaged versions of the command-line " -"clients that you can install directly, see Installing_from_packages_." -msgstr "" -"多くの Linux ディストリビューションには、コマンドラインクライアントを直接イン" -"ストールできるパッケージがあります。詳細は Installing_from_packages_ を参照し" -"てください。" - -msgid "" -"Mounted via OpenStack Block Storage controlled protocol (for example, iSCSI)" -msgstr "" -"OpenStack Block Storage が制御するプロトコル (例: iSCSI) 経由でマウントされる" - -msgid "MultiNic" -msgstr "MultiNic" - -msgid "NAT" -msgstr "NAT" - -msgid "NTP" -msgstr "NTP" - -msgid "Name for the Compute component that manages VMs." -msgstr "仮想マシンを管理する Compute のコンポーネントの名称。" - -msgid "Name of the snapshot. Defaults to ``None``." -msgstr "スナップショットの名前。デフォルトは ``None`` です。" - -msgid "Name or ID of the snapshot to unmanage." -msgstr "管理対象外にするスナップショットの名前または ID。" - -msgid "Name, ID, or other identifier for an existing snapshot." -msgstr "既存のスナップショットの名前、ID または他の識別子。" - -msgid "Nebula" -msgstr "Nebula" - -msgid "NetApp volume driver" -msgstr "NetApp ボリュームドライバー" - -msgid "" -"Network Address Translation; Process of modifying IP address information " -"while in transit. Supported by Compute and Networking." -msgstr "" -"ネットワークアドレス変換。IP アドレス情報を転送中に変更する処理。Compute と " -"Networking によりサポートされる。" - -msgid "Network File System (NFS)" -msgstr "Network File System (NFS)" - -msgid "" -"Network Time Protocol; Method of keeping a clock for a host or node correct " -"via communication with a trusted, accurate time source." -msgstr "" -"ネットワーク時刻プロトコル。信頼された、正確な時刻源と通信することにより、ホ" -"ストやノードの時刻を正確に保つ方法。" - -msgid "" -"Network traffic between a user or client (north) and a server (south), or " -"traffic into the cloud (south) and out of the cloud (north). See also east-" -"west traffic." -msgstr "" -"ユーザーやクライアント (ノース)、とサーバー (サウス) 間のネットワーク通信、ク" -"ラウド (サウス) とクラウド外 (ノース) 内の通信。イースト・サウス通信も参照。" - -msgid "" -"Network traffic between servers in the same cloud or data center. See also " -"north-south traffic." -msgstr "" -"同じクラウドやデータセンターにあるサーバー間のネットワーク通信。ノース・サウ" -"ス通信も参照。" - -msgid "Networking API" -msgstr "Networking API" - -msgid "Networking service" -msgstr "Networking サービス" - -msgid "" -"New users are assigned to this tenant if no tenant is specified when a user " -"is created." -msgstr "" -"ユーザーを作成したときに、テナントを指定していない場合、新規ユーザーはこのテ" -"ナントに割り当てられる。" - -msgid "Newton" -msgstr "Newton" - -msgid "Nexenta volume driver" -msgstr "Nexenta ボリュームドライバー" - -msgid "No ACK" -msgstr "No ACK" - -msgid "" -"Note that extra dependencies may be required, per operating system, " -"depending on the package being installed, such as is the case with Tempest." -msgstr "" -"Tempest の場合など、インストールするパッケージに応じて、依存関係によりオペ" -"レーティングシステムごとの追加パッケージが必要になるかもしれないことに注意し" -"てください。" - -msgid "Note that the volume is now available." -msgstr "ボリュームが利用可能になっていることに注意してください。" - -msgid "Note the ID of your volume." -msgstr "ボリュームの ID を記録します。" - -msgid "Notices" -msgstr "注記" - -msgid "Notices take these forms:" -msgstr "注記には以下の種類があります。" - -msgid "Nova API" -msgstr "Nova API" - -msgid "" -"Number that is unique to every computer system on the Internet. Two versions " -"of the Internet Protocol (IP) are in use for addresses: IPv4 and IPv6." -msgstr "" -"インターネットにあるすべてのコンピューターシステムを一意にする番号。Internet " -"Protocol (IP) は、IPv4 と IPv6 の 2 つのバージョンがアドレス付けのために使用" -"中です。" - -msgid "Object Storage (swift)" -msgstr "Object Storage (swift)" - -msgid "Object Storage API" -msgstr "Object Storage API" - -msgid "Object Storage Device (OSD)" -msgstr "Object Storage Device (OSD)" - -msgid "" -"Object Storage middleware that uploads (posts) an image through a form on a " -"web page." -msgstr "" -"Web ページのフォームからイメージをアップロード (投稿) する、Object Storage の" -"ミドルウェア。" - -msgid "Object Storage service" -msgstr "Object Storage サービス" - -msgid "Object servers (swift-object-server)" -msgstr "オブジェクトサーバー (swift-object-server)" - -msgid "" -"Object storage service by Amazon; similar in function to Object Storage, it " -"can act as a back-end store for Image service VM images." -msgstr "" -"Amazon により提供されるオブジェクトストレージ。Object Storage の機能に似てい" -"る。Image service の仮想マシンイメージのバックエンドとして動作できる。" - -msgid "Ocata" -msgstr "Ocata" - -msgid "Oldie" -msgstr "Oldie" - -msgid "" -"On Red Hat Enterprise Linux, CentOS, or Fedora, use ``yum`` to install the " -"clients from the packaged versions available in `RDO `__:" -msgstr "" -"Red Hat Enterprise Linux、CentOS、Fedora の場合、``yum`` を使用して、`RDO " -"`__ にあるクライアントのパッケージをインストール" -"します。" - -msgid "" -"On any shell from which you want to run OpenStack commands, source the " -"``PROJECT-openrc.sh`` file for the respective project." -msgstr "" -"OpenStack コマンドを実行したいシェルで、それぞれのプロジェクト用の ``PROJECT-" -"openrc.sh`` ファイルを読み込みます。" - -msgid "" -"On any shell from which you want to run OpenStack commands, source the " -"``PROJECT-openrc.sh`` file for the respective project. In this example, you " -"source the ``admin-openrc.sh`` file for the admin project:" -msgstr "" -"OpenStack コマンドを実行したいシェルで、それぞれのプロジェクト用の ``PROJECT-" -"openrc.sh`` ファイルを読み込みます。この例では、admin プロジェクト用の " -"``admin-openrc.sh`` ファイルを読み込みます。" - -msgid "" -"On the :guilabel:`API Access` tab, click :guilabel:`Download OpenStack RC " -"File` and save the file. The filename will be of the form ``PROJECT-openrc." -"sh`` where ``PROJECT`` is the name of the project for which you downloaded " -"the file." -msgstr "" -":guilabel:`API アクセス` タブで、:guilabel:`OpenStack RC ファイルのダウンロー" -"ド` をクリックしてファイルを保存します。ファイル名は ``PROJECT-openrc.sh`` の" -"形式とし、``PROJECT`` にはファイルをダウンロードするプロジェクト名を入力しま" -"す。 " - -msgid "On-instance / ephemeral" -msgstr "インスタンス上 / 一時" - -msgid "" -"Once you have the dashboard installed you can customize the way it looks and " -"feels to suit your own needs." -msgstr "" -"ダッシュボードをインストールすると、ルックアンドフィールを必要に応じてカスタ" -"マイズできます。" - -msgid "" -"One of the RPC primitives used by the OpenStack message queue software. " -"Sends a message and does not wait for a response." -msgstr "" -"OpenStack メッセージキューソフトウェアにより使用される RPC プリミティブの 1 " -"つ。メッセージを送信し、応答を待たない。" - -msgid "" -"One of the RPC primitives used by the OpenStack message queue software. " -"Sends a message and waits for a response." -msgstr "" -"OpenStack のメッセージキューソフトウェアにより使用される、RPC プリミティブの " -"1 つ。メッセージを送信し、応答を待つ。" - -msgid "One of the VM image disk formats supported by Image service." -msgstr "" -"Image service によりサポートされる、仮想マシンイメージディスク形式の 1 つ。" - -msgid "" -"One of the VM image disk formats supported by Image service; an unstructured " -"disk image." -msgstr "" -"Image service によりサポートされる仮想マシンイメージのディスク形式の 1 つ。" - -msgid "" -"One of the default roles in the Compute RBAC system and the default role " -"assigned to a new user." -msgstr "" -"Compute RBAC システムにあるデフォルトのロールの 1 つ。新規ユーザーに割り当て" -"られるデフォルトのロール。" - -msgid "" -"One of the default roles in the Compute RBAC system. Enables a user to add " -"other users to a project, interact with VM images that are associated with " -"the project, and start and stop VM instances." -msgstr "" -"Compute RBAC システムにおけるデフォルトのロールの 1 つ。ユーザーが他のユー" -"ザーをプロジェクトに追加でき、プロジェクトに関連付けられた仮想マシンイメージ" -"を操作でき、仮想マシンインスタンスを起動および終了できるようになる。" - -msgid "" -"One of the default roles in the Compute RBAC system. Enables the user to " -"allocate publicly accessible IP addresses to instances and change firewall " -"rules." -msgstr "" -"Compute RBAC システムにおけるデフォルトのロールの 1 つ。ユーザーが、パブリッ" -"クにアクセス可能な IP アドレスをインスタンスに割り当てられ、ファイアウォール" -"ルールを変更できるようになる。" - -msgid "" -"One of the default roles in the Compute RBAC system. Grants complete system " -"access." -msgstr "" -"Compute RBAC システムにおけるデフォルトのロールの 1 つ。システムの完全なアク" -"セス権を付与する。" - -msgid "One of the hypervisors supported by OpenStack." -msgstr "OpenStack によりサポートされるハイパーバイザーの一つ。" - -msgid "One of the supported response formats in OpenStack." -msgstr "OpenStack でサポートされる応答形式の 1 つ。" - -msgid "Open Cloud Computing Interface (OCCI)" -msgstr "Open Cloud Computing Interface (OCCI)" - -msgid "Open Virtualization Format (OVF)" -msgstr "Open Virtualization Format (OVF)" - -msgid "" -"Open source GUI and CLI tools used for remote console access to VMs. " -"Supported by Compute." -msgstr "" -"仮想マシンへのリモートコンソールアクセスに使用される、オープンソースの GUI / " -"CUI ツール。" - -msgid "" -"Open source tool used to access remote hosts through an encrypted " -"communications channel, SSH key injection is supported by Compute." -msgstr "" -"暗号化した通信チャネル経由でリモートホストにアクセスするために使用されるオー" -"プンソースのツール。SSH 鍵インジェクションが Compute によりサポートされる。" - -msgid "Open the following HTML template in an editor of your choice:" -msgstr "以下の HTML テンプレートをお好きなエディターで開きます。" - -msgid "Open vSwitch" -msgstr "Open vSwitch" - -msgid "Open vSwitch (OVS) agent" -msgstr "Open vSwitch (OVS) エージェント" - -msgid "" -"Open vSwitch is a production quality, multilayer virtual switch licensed " -"under the open source Apache 2.0 license. It is designed to enable massive " -"network automation through programmatic extension, while still supporting " -"standard management interfaces and protocols (for example NetFlow, sFlow, " -"SPAN, RSPAN, CLI, LACP, 802.1ag)." -msgstr "" -"Open vSwitch は、商用品質、複数階層の仮想スイッチ。オープンソースの Apache " -"2.0 license に基づき許諾される。標準的な管理インターフェースやプロトコルと使" -"用ながら、プログラム拡張により大規模なネットワーク自動化を実現できるよう設計" -"されている (例えば、NetFlow、sFlow、SPAN、RSPAN、CLI、LACP、802.1ag)。" - -msgid "Open vSwitch neutron plug-in" -msgstr "Open vSwitch neutron プラグイン" - -msgid "OpenLDAP" -msgstr "OpenLDAP" - -msgid "OpenStack" -msgstr "OpenStack" - -msgid "" -"OpenStack APIs are open-source Python clients, and can run on Linux or Mac " -"OS X systems. On some client commands, you can specify a debug parameter to " -"show the underlying API request for the command. This is a good way to " -"become familiar with the OpenStack API calls." -msgstr "" -"OpenStack API は、オープンソースの Python クライアントです。Linux や Mac OS " -"X システムにおいて使用できます。いくつかのクライアントコマンドでは、デバッグ" -"パラメーターを指定して、そのコマンドの基盤となる API リクエストを表示できま" -"す。OpenStack API コールに慣れるには、この方法が便利です。" - -msgid "OpenStack Compute consists of the following areas and their components:" -msgstr "OpenStack Compute は、以下のコンポーネントから構成されます。" - -msgid "" -"OpenStack Compute interacts with OpenStack Identity for authentication; " -"OpenStack Image service for disk and server images; and OpenStack dashboard " -"for the user and administrative interface. Image access is limited by " -"projects, and by users; quotas are limited per project (the number of " -"instances, for example). OpenStack Compute can scale horizontally on " -"standard hardware, and download images to launch instances." -msgstr "" -"OpenStack Compute は、認証については OpenStack Identity サービスと、ディスク" -"やサーバーイメージについては OpenStack Image サービスと、ユーザーや管理者向け" -"インターフェースについては OpenStack Dashboard と連携して動作します。イメージ" -"アクセスはプロジェクトやユーザー単位で限定され、クォータ (例えば、インスタン" -"ス数) はプロジェクト単位に適用されます。 OpenStack Compute は標準的なハード" -"ウェアを使って水平にスケールさせることができます。イメージをダウンロードし" -"て、インスタンスを起動します。" - -msgid "" -"OpenStack Networking (neutron) allows you to create and attach interface " -"devices managed by other OpenStack services to networks. Plug-ins can be " -"implemented to accommodate different networking equipment and software, " -"providing flexibility to OpenStack architecture and deployment." -msgstr "" -"OpenStack Networking (neutron) を使うと、他の OpenStack サービスにより管理さ" -"れているインターフェースデバイスを作成して、ネットワークに接続できます。様々" -"なネットワーク装置やネットワークソフトウェアに対応するプラグインを実装するこ" -"とができ、 OpenStack のアーキテクチャーと環境に柔軟性をもたらします。" - -msgid "" -"OpenStack Networking agent that provides DHCP services for virtual networks." -msgstr "" -"仮想ネットワーク向けに DHCP サービスを提供する OpenStack Networking エージェ" -"ント。" - -msgid "" -"OpenStack Networking agent that provides layer-2 connectivity for virtual " -"networks." -msgstr "" -"仮想ネットワーク向けに L2 接続性を提供する OpenStack Networking エージェン" -"ト。" - -msgid "" -"OpenStack Networking agent that provides layer-3 (routing) services for " -"virtual networks." -msgstr "" -"仮想ネットワーク向けに L3 (ルーティング) サービスを提供する OpenStack " -"Networking エージェント。" - -msgid "" -"OpenStack Networking agent that provides metadata services for instances." -msgstr "" -"インスタンスにメタデータサービスを提供する OpenStack Networking エージェン" -"ト。" - -msgid "" -"OpenStack Networking mainly interacts with OpenStack Compute to provide " -"networks and connectivity for its instances." -msgstr "" -"OpenStack Networking は、おもに OpenStack Compute を連携して、コンピュートイ" -"ンスタンスにネットワークと接続性を提供します。" - -msgid "OpenStack Networking plug-ins and agents" -msgstr "OpenStack Networking プラグインおよびエージェント" - -msgid "OpenStack Services" -msgstr "OpenStack のサービス" - -msgid "OpenStack code name" -msgstr "OpenStack コード名" - -msgid "OpenStack distribution packages" -msgstr "OpenStack ディストリビューション" - -msgid "" -"OpenStack is a cloud operating system that controls large pools of compute, " -"storage, and networking resources throughout a data center, all managed " -"through a dashboard that gives administrators control while empowering their " -"users to provision resources through a web interface. OpenStack is an open " -"source project licensed under the Apache License 2.0." -msgstr "" -"OpenStack は、データセンター全体のコンピュートリソース、ストレージリソース、" -"ネットワークリソースの大規模なプールを制御する、クラウドオペレーティングシス" -"テム。管理者はすべてダッシュボードから制御できる。ユーザーは Web インター" -"フェースからリソースを配備できる。Apache License 2.0 に基づき許諾されるオープ" -"ンソースのプロジェクト。" - -msgid "OpenStack mailing lists" -msgstr "OpenStack メーリングリスト" - -msgid "" -"OpenStack project that aims to make cloud services easier to consume and " -"integrate with application development process by automating the source-to-" -"image process, and simplifying app-centric deployment. The project name is " -"solum." -msgstr "" -"クラウドサービスをより簡単に利用し、アプリケーション開発プロセスと統合するこ" -"とを目的とする OpenStack プロジェクト。ソースからイメージまでの手順を自動化" -"し、アプリケーション中心の開発を単純化します。プロジェクト名は solum。" - -msgid "" -"OpenStack project that aims to produce an OpenStack messaging service that " -"affords a variety of distributed application patterns in an efficient, " -"scalable and highly-available manner, and to create and maintain associated " -"Python libraries and documentation. The code name for the project is zaqar." -msgstr "" -"効率的、拡張可能、高可用な方法で、さまざまな分散アプリケーションのパターンを" -"提供する、OpenStack messaging service を開発することを目指している OpenStack " -"プロジェクト。また、関連する Python ライブラリーやドキュメントを作成してメン" -"テナンスする。このプロジェクトのコード名は zaqar。" - -msgid "" -"OpenStack project that produces a secret storage and generation system " -"capable of providing key management for services wishing to enable " -"encryption features. The code name of the project is barbican." -msgstr "" -"暗号化機能を有効化したいサービスに鍵管理機能を提供する機能を持つ、シークレッ" -"トストレージと生成システムを開発する OpenStack プロジェクト。このプロジェクト" -"の名前は barbican。" - -msgid "" -"OpenStack project that produces a set of Python libraries containing code " -"shared by OpenStack projects." -msgstr "" -"OpenStack プロジェクトに共有されるコードを含む Python ライブラリー群を作成す" -"る OpenStack プロジェクト。" - -msgid "OpenStack project that provides a Clustering service." -msgstr "クラスタリングサービスを提供する OpenStack プロジェクト。" - -msgid "OpenStack project that provides a Monitoring service." -msgstr "モニタリングサービスを提供する OpenStack プロジェクト。" - -msgid "" -"OpenStack project that provides a Software Development Lifecycle Automation " -"service." -msgstr "" -"ソフトウェア開発ライフサイクル自動化サービスを提供する OpenStack プロジェク" -"ト。" - -msgid "OpenStack project that provides a dashboard, which is a web interface." -msgstr "" -"ダッシュボードを提供する OpenStack プロジェクト。Web インターフェース。" - -msgid "" -"OpenStack project that provides a framework for performance analysis and " -"benchmarking of individual OpenStack components as well as full production " -"OpenStack cloud deployments. The code name of the project is rally." -msgstr "" -"各 OpenStack コンポーネント、本番の OpenStack 環境のパフォーマンス分析とベン" -"チマーク向けにフレームワークを提供する OpenStack プロジェクト。このプロジェク" -"トの名前は rally。" - -msgid "OpenStack project that provides a message service to applications." -msgstr "" -"メッセージサービスをアプリケーションに提供する OpenStack のプロジェクト。" - -msgid "" -"OpenStack project that provides a scalable data-processing stack and " -"associated management interfaces." -msgstr "" -"スケールアウト可能なデータ処理基盤と関連する管理インターフェースを提供する、" -"OpenStack のプロジェクト。" - -msgid "" -"OpenStack project that provides a scalable data-processing stack and " -"associated management interfaces. The code name for the project is sahara." -msgstr "" -"スケールアウト可能なデータ処理基盤と関連する管理インターフェースを提供する、" -"OpenStack のプロジェクト。プロジェクトのコード名は sahara です。" - -msgid "" -"OpenStack project that provides a set of services for management of " -"application containers in a multi-tenant cloud environment. The code name of " -"the project name is magnum." -msgstr "" -"マルチテナントクラウド環境において、アプリケーションコンテナーの管理サービス" -"を提供する、OpenStack のプロジェクト。プロジェクトのコード名は magnum です。" - -msgid "" -"OpenStack project that provides a simple YAML-based language to write " -"workflows, tasks and transition rules, and a service that allows to upload " -"them, modify, run them at scale and in a highly available manner, manage and " -"monitor workflow execution state and state of individual tasks. The code " -"name of the project is mistral." -msgstr "" -"ワークフロー、タスク、状態遷移ルールを書くための YAML ベースの言語を提供し、" -"それらをアップロード、編集できるサービス、それらを大規模かつ高可用に実行でき" -"るサービス、ワークフローの実行状態および個々のタスクの状態を管理および監視で" -"きるサービスを提供する OpenStack プロジェクト。このプロジェクトのコード名は " -"mistral。" - -msgid "OpenStack project that provides an Application catalog." -msgstr "アプリケーションカタログを提供する OpenStack のプロジェクト。" - -msgid "" -"OpenStack project that provides an application catalog service so that users " -"can compose and deploy composite environments on an application abstraction " -"level while managing the application lifecycle. The code name of the project " -"is murano." -msgstr "" -"ユーザーがアプリケーションのライフサイクルを管理しながら、アプリケーションの" -"抽象的なレベルで合成環境を作成して配備できるよう、アプリケーションカタログ" -"サービスを提供する OpenStack プロジェクト。このプロジェクトのコード名は " -"murano。" - -msgid "" -"OpenStack project that provides backup restore and disaster recovery as a " -"service." -msgstr "" -"バックアップリストアとディザスターリカバリーをサービスとして提供する " -"OpenStack プロジェクト。" - -msgid "OpenStack project that provides compute services." -msgstr "コンピュートサービスを提供する OpenStack プロジェクト。" - -msgid "OpenStack project that provides database services to applications." -msgstr "" -"データベースサービスをアプリケーションに提供する OpenStack のプロジェクト。" - -msgid "" -"OpenStack project that provides scalable, on demand, self service access to " -"authoritative DNS services, in a technology-agnostic manner. The code name " -"for the project is designate." -msgstr "" -"技術によらない方法で、権威 DNS サービスへの拡張可能、オンデマンド、セルフサー" -"ビスのアクセスを提供する OpenStack プロジェクト。このプロジェクトのコード名" -"は designate。" - -msgid "" -"OpenStack project that provides shared file systems as service to " -"applications." -msgstr "" -"共有ファイルシステムをアプリケーションに提供する OpenStack のプロジェクト。" - -msgid "OpenStack project that provides the Benchmark service." -msgstr "Benchmark service を提供する OpenStack プロジェクト。" - -msgid "OpenStack project that provides the Governance service." -msgstr "Governance service を提供する OpenStack プロジェクト。" - -msgid "OpenStack project that provides the Workflow service." -msgstr "ワークフローサービスを提供する OpenStack プロジェクト。" - -msgid "" -"OpenStack project that provisions bare metal, as opposed to virtual, " -"machines." -msgstr "" -"マシンを仮想とみなして、ベアメタルに展開する OpenStack のプロジェクト。" - -msgid "" -"OpenStack project that provisions bare metal, as opposed to virtual, " -"machines. The code name for the project is ironic." -msgstr "" -"マシンを仮想とみなして、ベアメタルに展開する OpenStack のプロジェクト。このプ" -"ロジェクトのコード名は ironic です。" - -msgid "" -"OpenStack project to provide Governance-as-a-Service across any collection " -"of cloud services in order to monitor, enforce, and audit policy over " -"dynamic infrastructure. The code name for the project is congress." -msgstr "" -"動的なインフラストラクチャー全体でポリシーを監視、強制、監査するために、さま" -"ざまなクラウドサービス群にわたり、Governance as a Service を提供する " -"OpenStack プロジェクト。このプロジェクトのコード名は congress。" - -msgid "" -"OpenStack provides an Infrastructure-as-a-Service (:term:`IaaS`) solution " -"through a set of interrelated services. Each service offers an application " -"programming interface (:term:`API `) that facilitates this integration. Depending on your needs, you can " -"install some or all services." -msgstr "" -"OpenStack は、互いに連携する一連のサービス群により Infrastructure-as-a-" -"Service (:term:`IaaS`) ソリューションを提供します。各サービスはこの統合を促" -"す :term:`API ` を提供します。必要に" -"応じて、いくつかのサービスをインストールすることもできますし、すべてのサービ" -"スをインストールすることもできます。" - -msgid "OpenStack services" -msgstr "OpenStack のサービス" - -msgid "OpenStack supports accessing the Amazon EC2 API through Compute." -msgstr "" -"OpenStack は、Compute 経由で Amazon EC2 API へのアクセスをサポートする。" - -msgid "" -"OpenStack supports encryption technologies such as HTTPS, SSH, SSL, TLS, " -"digital certificates, and data encryption." -msgstr "" -"OpenStack は、HTTPS、SSH、SSL、TLS、電子証明書、データ暗号化などの暗号化技術" -"をサポートします。" - -msgid "" -"OpenStack-on-OpenStack program. The code name for the OpenStack Deployment " -"program." -msgstr "" -"OpenStack-on-OpenStack プログラム。OpenStack Deployment プログラムのコード" -"名。" - -msgid "" -"Opens all objects for an object server and verifies the MD5 hash, size, and " -"metadata for each object." -msgstr "" -"あるオブジェクトサーバー用の全オブジェクトを開き、各オブジェクトの MD5 ハッ" -"シュ、サイズ、メタデータを検証する。" - -msgid "" -"Optionally, you can specify a name for the transfer by using the ``--display-" -"name displayName`` parameter." -msgstr "" -"オプションとして、``--display-name displayName`` パラメーターを使用して転送の" -"名前を指定することができます。" - -msgid "" -"Orchestrates multiple composite cloud applications by using either the " -"native HOT template format or the AWS CloudFormation template format, " -"through both an OpenStack-native REST API and a CloudFormation-compatible " -"Query API." -msgstr "" -"OpenStack ネイティブの REST API および CloudFormation 互換のクエリー API 経由" -"で、ネイティブの HOT テンプレート形式または AWS CloudFormation テンプレート形" -"式を使用することで、複数の混合クラウドアプリケーションを統合します。" - -msgid "" -"Orchestrates the launching of templates and provides events back to the API " -"consumer." -msgstr "テンプレートの起動全体を指揮し、API 利用者に返すイベントを生成します。" - -msgid "Orchestration service" -msgstr "Orchestration サービス" - -msgid "" -"Organizes and stores objects in Object Storage. Similar to the concept of a " -"Linux directory but cannot be nested. Alternative term for an Image service " -"container format." -msgstr "" -"Object Storage でオブジェクトを整理して保存する。Linux のディレクトリと似てい" -"るが、入れ子にできない。Image service のコンテナー形式の別名。" - -msgid "Oslo" -msgstr "Oslo" - -msgid "Override environment variable values" -msgstr "環境変数の値の上書き" - -msgid "Overview" -msgstr "概要" - -msgid "PCI passthrough" -msgstr "PCI パススルー" - -msgid "Package" -msgstr "パッケージ" - -msgid "" -"Pages that use HTML, JavaScript, and Cascading Style Sheets to enable users " -"to interact with a web page or show simple animation." -msgstr "" -"ユーザーが Web ページと通信したり、簡単なアニメーションを表示したりするため" -"に、HTML、JavaScript、CSS を使用するページ。" - -msgid "" -"Passed to API requests and used by OpenStack to verify that the client is " -"authorized to run the requested operation." -msgstr "" -"クライアントが要求した操作を実行する権限を持つことを検証するために、API リク" -"エストに渡され、OpenStack により使用される。" - -msgid "" -"Passes requests from clients to the appropriate workers and returns the " -"output to the client after the job completes." -msgstr "" -"クライアントからのリクエストを適切なワーカーに渡す。ジョブ完了後、出力をクラ" -"イアントに返す。" - -msgid "" -"Performs housekeeping tasks on the large data store. The replication " -"services ensure consistency and availability through the cluster. Other " -"periodic processes include auditors, updaters, and reapers." -msgstr "" -"大規模なデータストアでハウスキーピング作業を実行します。複製サービスにより、" -"クラスター全体で一貫性と可用性が確保されます。他の定期的なプロセスに " -"auditor、 updater, reaper などがあります。" - -msgid "Persists until VM is terminated" -msgstr "仮想マシンが削除されるまで存続" - -msgid "Persists until deleted" -msgstr "削除されるまで存続" - -msgid "Physical host dedicated to running compute nodes." -msgstr "コンピュートノード実行専用の物理ホスト。" - -msgid "Plans deployments." -msgstr "デプロイメント計画の立案。" - -msgid "Platform-as-a-Service (PaaS)" -msgstr "Platform-as-a-Service (PaaS)" - -msgid "Pluggable system of Hadoop installation engines." -msgstr "プラグイン型の、Hadoop インストールエンジン。" - -msgid "" -"Plugs and unplugs ports, creates networks or subnets, and provides IP " -"addressing. These plug-ins and agents differ depending on the vendor and " -"technologies used in the particular cloud. OpenStack Networking ships with " -"plug-ins and agents for Cisco virtual and physical switches, NEC OpenFlow " -"products, Open vSwitch, Linux bridging, and the VMware NSX product." -msgstr "" -"ポートの接続と切断、ネットワークやサブネットの作成、 IP アドレスの提供を行い" -"ます。これらのプラグインとエージェントは、それぞれのクラウドにおいて使用され" -"るベンダーと技術により異なります。OpenStack Networking には、 Cisco の仮想ス" -"イッチと物理スイッチ、NEC OpenFlow 製品、Open vSwitch、Linux ブリッジ、" -"VMware NSX 製品用のプラグインとエージェントが同梱されています。" - -msgid "" -"Point in time since the last container and accounts database sync among " -"nodes within Object Storage." -msgstr "" -"最新のコンテナーとアカウントのデータベースが Object Storage 内のノード間で同" -"期された基準時間。" - -msgid "Possible use cases for data migration include:" -msgstr "データ移動で考えられるユースケースは、以下のとおりです。" - -msgid "" -"Predefined templates of Hadoop configurations with the ability to modify " -"parameters." -msgstr "" -"Hadoop 設定の事前定義済みテンプレート。パラメーターを変更する機能があります。" - -msgid "Prerequisite" -msgstr "前提" - -msgid "Prevents an image from being deleted." -msgstr "イメージが削除されることを防ぎます。" - -msgid "" -"Principal communications protocol in the internet protocol suite for " -"relaying datagrams across network boundaries." -msgstr "" -"ネットワーク境界を越えてデータグラムを中継するための、インターネットプロトコ" -"ルにおける中心的な通信プロトコル。" - -msgid "Prints the image size in a human-friendly format." -msgstr "人間が理解しやすい形式でイメージの容量を表示します。" - -msgid "" -"Processes client requests for VMs, updates Image service metadata on the " -"registry server, and communicates with the store adapter to upload VM images " -"from the back-end store." -msgstr "" -"仮想マシンに対するクライアントリクエスト、レジストリーサーバーにおける Image " -"service のメタデータの更新、バックエンドストアから仮想マシンイメージをアップ" -"ロードするためのストアアダプターを用いた通信を処理する。" - -msgid "" -"Processing is fairly complex. Basically, the daemon accepts actions from the " -"queue and performs a series of system commands such as launching a KVM " -"instance and updating its state in the database." -msgstr "" -"処理内容はかなり複雑です。このデーモンはキューからアクションを受け取り、 KVM " -"インスタンスの起動やデータベースの状態更新など一連のシステムコマンドを実行し" -"ます。" - -msgid "Programming language used extensively in OpenStack." -msgstr "OpenStack において幅広く使用されるプログラミング言語。" - -msgid "Project name" -msgstr "プロジェクト名" - -msgid "" -"Project name for OpenStack Network Information Service. To be merged with " -"Networking." -msgstr "" -"OpenStack Network Information Service のプロジェクト名。Networking と統合予" -"定。" - -msgid "Projects" -msgstr "プロジェクト" - -msgid "" -"Projects represent the base unit of “ownership” in OpenStack, in that all " -"resources in OpenStack should be owned by a specific project. In OpenStack " -"Identity, a project must be owned by a specific domain." -msgstr "" -"プロジェクトは OpenStack における「所有権」の基本的な単位で、OpenStack におけ" -"るあらゆるリソースは何らかのテナントに属する。 OpenStack Identity では、プロ" -"ジェクトは特定のドメインに何らかのドメインに属する。" - -msgid "" -"Protocol that encapsulates a wide variety of network layer protocols inside " -"virtual point-to-point links." -msgstr "" -"仮想のポイントツーポイントリンク内で、さまざまなネットワーク層のプロトコルを" -"カプセル化するプロトコル。" - -msgid "" -"Provide as much detail as possible in the description. Paste in your command " -"output or stack traces, links to screen shots, and any other information " -"which might be useful." -msgstr "" -"できるだけ詳細な情報を記入してください。コマンドの出力結果やスタックトレー" -"ス、スクリーンショットへのリンク、その他有用な情報などがいいでしょう。" - -msgid "" -"Provided by Compute in the form of cloudpipes, specialized instances that " -"are used to create VPNs on a per-project basis." -msgstr "" -"Compute では cloudpipe の形で提供される。 cloudpipe では、特別なインスタンス" -"を使って、プロジェクト毎に VPN が作成される。" - -msgid "Provided in Compute through the system usage data facility." -msgstr "システム使用状況データ機能経由で Compute において提供される。" - -msgid "" -"Provides Shared File System service via nfs, cifs, glusterfs, or hdfs " -"protocol" -msgstr "" -"NFS, CIFS, GlusterFS, HDFS プロトコル経由で共有ファイルシステムが提供される" - -msgid "" -"Provides a method of allocating space on mass-storage devices that is more " -"flexible than conventional partitioning schemes." -msgstr "" -"伝統的なパーティションスキーマよりも柔軟に、大規模ストレージデバイスに領域を" -"割り当てる方式を提供する。" - -msgid "" -"Provides a predefined list of actions that the user can perform, such as " -"start or stop VMs, reset passwords, and so on. Supported in both Identity " -"and Compute and can be configured using the horizon dashboard." -msgstr "" -"仮想マシンの起動や停止、パスワードの初期化など、ユーザーが実行できる操作の事" -"前定義済み一覧を提供する。Identity と Compute においてサポートされる。ダッ" -"シュボードを使用して設定できる。" - -msgid "" -"Provides a proxy for accessing running instances through a SPICE connection. " -"Supports browser-based HTML5 client." -msgstr "" -"SPICE コネクション経由で実行中のインスタンスのアクセスへプロキシーを提供しま" -"す。ブラウザーベースの HTML5 クライアントをサポートします。" - -msgid "" -"Provides a proxy for accessing running instances through a VNC connection. " -"Supports an OpenStack-specific Java client." -msgstr "" -"VNC コネクション経由で実行中のインスタンスのアクセスへプロキシーを提供しま" -"す。 OpenStack 固有の Java クライアントをサポートします。" - -msgid "" -"Provides a proxy for accessing running instances through a VNC connection. " -"Supports browser-based novnc clients." -msgstr "" -"VNC コネクション経由で実行中のインスタンスへアクセスするプロキシーを提供しま" -"す。ブラウザーベースの novnc クライアントをサポートします。" - -msgid "" -"Provides a web-based self-service portal to interact with underlying " -"OpenStack services, such as launching an instance, assigning IP addresses " -"and configuring access controls." -msgstr "" -"インスタンスの起動、IP アドレスの割り当て、アクセス制御の設定など、 " -"OpenStack サービスを操作するために、ウェブベースのセルフサービスポータルを提" -"供します。" - -msgid "" -"Provides an OpenStack-native RESTful API that supports JSON to provision and " -"manage Trove instances." -msgstr "" -"Trove インスタンスの作成と管理を行うための、JSON に対応した OpenStack 固有の " -"RESTful API を提供します。" - -msgid "" -"Provides an authentication and authorization service for other OpenStack " -"services. Provides a catalog of endpoints for all OpenStack services." -msgstr "" -"他の OpenStack サービスに対して認証および認可サービスを提供します。すべての " -"OpenStack サービスに対してエンドポイントのカタログを提供します。" - -msgid "" -"Provides an interface to the underlying Open vSwitch service for the " -"Networking plug-in." -msgstr "" -"Networking のプラグインに対して、バックエンドの Open vSwitch サービスへのイン" -"ターフェースを提供する。" - -msgid "" -"Provides capabilities to provision and scale Hadoop clusters in OpenStack by " -"specifying parameters like Hadoop version, cluster topology and nodes " -"hardware details." -msgstr "" -"OpenStack においてスケール可能な Hadoop クラスターを展開する機能を提供しま" -"す。Hadoop のバージョン、クラスタートポロジー、ノードのハードウェアの詳細など" -"のパラメーターを指定します。" - -msgid "" -"Provides data redundancy and fault tolerance by creating copies of Object " -"Storage objects, accounts, and containers so that they are not lost when the " -"underlying storage fails." -msgstr "" -"Object Storage のオブジェクト、アカウント、コンテナーのコピーを作成すること" -"で、データ冗長性や耐障害性を実現する。これにより、バックエンドのストレージが" -"故障した場合でもデータは失わない。" - -msgid "" -"Provides logical partitioning of Compute resources in a child and parent " -"relationship. Requests are passed from parent cells to child cells if the " -"parent cannot provide the requested resource." -msgstr "" -"親子関係で Compute リソースの論理パーティションを提供する。親セルが要求された" -"リソースを提供できない場合、親セルからのリクエストは子セルに渡される。" - -msgid "" -"Provides persistent block storage to running instances. Its pluggable driver " -"architecture facilitates the creation and management of block storage " -"devices." -msgstr "" -"実行中のインスタンスに永続的なブロックストレージを提供します。そのプラグイン" -"可能なドライバーアーキテクチャーにより、ブロックストレージデバイスの作成と管" -"理が簡単に行えます。" - -msgid "" -"Provides scalable and reliable Cloud Database-as-a-Service functionality for " -"both relational and non-relational database engines." -msgstr "" -"リレーショナルデータベースと非リレーショナルデータベースの両エンジン用にス" -"ケール可能かつ信頼できるクラウド Database-as-a-Service を提供します。" - -msgid "Provides support for NexentaStor devices in Compute." -msgstr "Compute において NexentaStor デバイスのサポートを提供する。" - -msgid "Provides support for Open vSwitch in Networking." -msgstr "Networking で Open vSwitch のサポートを提供する。" - -msgid "Provides support for VMware NSX in Neutron." -msgstr "Neutron における VMware NSX サポートを提供する。" - -msgid "" -"Provides support for new and specialized types of back-end storage for the " -"Block Storage volume manager." -msgstr "" -"Block Storage のボリュームマネージャーに対して、新しい特別な種類のバックエン" -"ドストレージのサポートを提供する。" - -msgid "" -"Provides to the consumer the ability to deploy applications through a " -"programming language or tools supported by the cloud platform provider. An " -"example of Platform-as-a-Service is an Eclipse/Java programming platform " -"provided with no downloads required." -msgstr "" -"クラウドプラットフォームプロバイダーによりサポートされるプログラミング言語や" -"ツールを用いてアプリケーションを配備する機能を利用者に提供する。PaaS の例は、" -"ダウンロードする必要がない、Eclipse/Java プログラミングプラットフォームです。" - -msgid "Proxy servers (swift-proxy-server)" -msgstr "プロキシサーバー (swift-proxy-server)" - -msgid "" -"Publishes collected data to various targets including data stores and " -"message queues." -msgstr "" -"収集したデータを、データストアやメッセージキューなどの様々な宛先に発行しま" -"す。" - -msgid "Puppet" -msgstr "Puppet" - -msgid "Python" -msgstr "Python" - -msgid "Python 2.7 or later" -msgstr "Python 2.7 以降" - -msgid "QEMU Copy On Write 2 (QCOW2)" -msgstr "QEMU Copy On Write 2 (QCOW2)" - -msgid "" -"QEMU is a generic and open source machine emulator and virtualizer. One of " -"the hypervisors supported by OpenStack, generally used for development " -"purposes." -msgstr "" -"QEMU は、汎用のオープンソースのマシンエミュレーターと仮想化ソフトウェアです。" -"OpenStack がサポートするハイパーバイザーの一つ。一般に、開発目的で使用され" -"る。" - -msgid "Qpid" -msgstr "Qpid" - -msgid "Quick EMUlator (QEMU)" -msgstr "Quick EMUlator (QEMU)" - -msgid "RADOS Block Device (RBD)" -msgstr "RADOS Block Device (RBD)" - -msgid "RAM filter" -msgstr "RAM フィルター" - -msgid "RAM overcommit" -msgstr "RAM オーバーコミット" - -msgid "" -"RDO, openSUSE, SUSE Linux Enterprise, Debian, and Ubuntu have client " -"packages that can be installed without ``pip``." -msgstr "" -"RDO、openSUSE、SUSE Linux Enterprise、Debian、Ubuntu は、``pip`` なしで利用で" -"きるクライアントパッケージがあります。" - -msgid "REST API" -msgstr "REST API" - -msgid "RESTful" -msgstr "RESTful" - -msgid "RPC driver" -msgstr "RPC ドライバー" - -msgid "RXTX cap" -msgstr "RXTX キャップ" - -msgid "RXTX quota" -msgstr "RXTX クォータ" - -msgid "RabbitMQ" -msgstr "RabbitMQ" - -msgid "Rackspace Cloud Files" -msgstr "Rackspace Cloud Files" - -msgid "Rating service" -msgstr "Rating サービス" - -msgid "Rating service." -msgstr "Rating サービス。" - -msgid "Recon" -msgstr "recon" - -msgid "Red Hat Enterprise Linux (RHEL)" -msgstr "Red Hat Enterprise Linux (RHEL)" - -msgid "" -"Reducing the size of files by special encoding, the file can be decompressed " -"again to its original content. OpenStack supports compression at the Linux " -"file system level but does not support compression for things such as Object " -"Storage objects or Image service VM images." -msgstr "" -"特別なエンコーディングによりファイル容量を減らすこと。このファイルは、元の内" -"容に展開できます。OpenStack は、Linux ファイルシステムレベルの圧縮をサポート" -"しますが、Object Storage のオブジェクトや Image service の仮想マシンイメージ" -"などの圧縮をサポートしません。" - -msgid "Released as open source by NASA in 2010 and is the basis for Compute." -msgstr "" -"2010 年に NASA によりオープンソースとしてリリースされた。Compute の基になっ" -"た。" - -msgid "" -"Released as open source by Rackspace in 2010; the basis for Object Storage." -msgstr "" -"Rackspace により 2010 年にオープンソースとして公開された。Object Storage の" -"ベース。" - -msgid "Reliable, Autonomic Distributed Object Store" -msgstr "Reliable, Autonomic Distributed Object Store" - -msgid "Remote Procedure Call (RPC)" -msgstr "Remote Procedure Call (RPC)" - -msgid "" -"Removes all data on the server and replaces it with the specified image. " -"Server ID and IP addresses remain the same." -msgstr "" -"サーバからすべてのデータを消去し、特定のイメージで置き換える。サーバのIDとIP" -"アドレスは変更されない。" - -msgid "Represents a virtual, isolated OSI layer-2 subnet in Networking." -msgstr "Networking における仮想の分離された OSI L-2 サブネットを表す。" - -msgid "Resize a volume" -msgstr "ボリュームのリサイズ" - -msgid "" -"Resize the volume by passing the volume ID and the new size (a value greater " -"than the old one) as parameters:" -msgstr "" -"パラメーターとしてボリューム ID と新しいサイズ (以前のボリュームよりも大きい" -"サイズ) を指定して、ボリュームをリサイズします。" - -msgid "Restart Apache for this change to take effect." -msgstr "Apache を再起動して、この変更を反映します。" - -msgid "Restart the Apache service." -msgstr "Apache サービスを再起動します。" - -msgid "Role Based Access Control (RBAC)" -msgstr "Role Based Access Control (RBAC)" - -msgid "Routes information between the Block Storage processes." -msgstr "Block Storage プロセス間で情報を転送します。" - -msgid "Routes information between the Shared File Systems processes." -msgstr "Shared File Systems プロセス間の情報を中継します。" - -msgid "Run the following command to discover the version number for a client:" -msgstr "" -"クライアントのバージョン番号を確認するために、以下のコマンドを実行します。" - -msgid "Runs automated tests against the core OpenStack API; written in Rails." -msgstr "" -"コア OpenStack API に対して自動テストを実行する。Rails で書かれている。" - -msgid "" -"Runs on a central management server and determines when to fire alarms. The " -"alarms are generated based on defined rules against events, which are " -"captured by the Telemetry Data Collection service's notification agents." -msgstr "" -"中央管理サーバーで実行され、通知を発動するタイミングを判断します。通知は、イ" -"ベントに対して定義されたルールに基づいて生成されます。これは、Telemetry Data " -"Collection サービスの通知エージェントにより収集されます。" - -msgid "" -"Runs on a central management server to poll for resource utilization " -"statistics for resources not tied to instances or compute nodes. Multiple " -"agents can be started to scale service horizontally." -msgstr "" -"中央管理サーバーで実行され、インスタンスやコンピュートノードに関連付いていな" -"いリソースの使用統計をポーリングします。複数のエージェントを実行し、水平に" -"サービスをスケールさせることができます。" - -msgid "" -"Runs on a central management server(s) and consumes messages from the " -"message queue(s) to build event and metering data." -msgstr "" -"中央管理サーバーで実行され、メッセージキューからメッセージを読みだして、イベ" -"ントや計測データを作成します。" - -msgid "" -"Runs on central management server(s) and dispatches collected telemetry data " -"to a data store or external consumer without modification." -msgstr "" -"中央管理サーバーで実行され、収集した計測データを、データストアや通知を使わな" -"い外部の使用者に送り出します。" - -msgid "" -"Runs on each compute node and polls for resource utilization statistics. " -"There may be other types of agents in the future, but for now our focus is " -"creating the compute agent." -msgstr "" -"各コンピュートノードで実行され、リソース使用統計をポーリングします。将来的に" -"は他の種類のエージェントも作成されるかもしれませんが、現時点ではコンピュート" -"エージェントに注力しています。" - -msgid "" -"Runs on one or more central management servers to allow alarms to be set " -"based on the threshold evaluation for a collection of samples." -msgstr "" -"1つ以上の中央管理サーバーで実行され、収集したサンプルデータに対する閾値の評価" -"を行い、アラームをセットします。" - -msgid "" -"Runs on one or more central management servers to determine when alarms fire " -"due to the associated statistic trend crossing a threshold over a sliding " -"time window." -msgstr "" -"1つ以上の中央管理サーバーで実行され、関連する統計の傾向がスライディングタイム" -"ウィンドウで閾値に違反した場合にアラームを発行するかを判定します。" - -msgid "" -"Runs on one or more central management servers to provide access to the " -"alarm information stored in the data store." -msgstr "" -"1 つ以上の中央管理サーバーで実行され、データストアへのデータアクセス手段を提" -"供します。" - -msgid "" -"Runs on one or more central management servers to provide data access from " -"the data store." -msgstr "" -"1つ以上の中央管理サーバーで実行され、データストアへのデータアクセス手段を提供" -"します。" - -msgid "" -"Runs on the host, and receives messages from guest instances that want to " -"update information on the host." -msgstr "" -"ホストで実行され、ホストにおいてアップデートしたい情報のメッセージをゲストイ" -"ンスタンスから受信します。" - -msgid "Runs operating systems and provides scratch space" -msgstr "オペレーティングシステムを実行し、新規領域を提供する" - -msgid "" -"Runs within the guest instance. Manages and performs operations on the " -"database itself." -msgstr "" -"ゲストインスタンスの中で実行します。データベース自身の処理を管理、実行しま" -"す。" - -msgid "S3" -msgstr "S3" - -msgid "SAML assertion" -msgstr "SAML アサーション" - -msgid "SELinux" -msgstr "SELinux" - -msgid "" -"SINA standard that defines a RESTful API for managing objects in the cloud, " -"currently unsupported in OpenStack." -msgstr "" -"クラウドにあるオブジェクトを管理するための RESTful API を定義する SINA 標準。" -"現在 OpenStack ではサポートされていない。" - -msgid "SNAPSHOT" -msgstr "SNAPSHOT" - -msgid "SPICE" -msgstr "SPICE" - -msgid "SQL database" -msgstr "SQL データベース" - -msgid "SQL-Alchemy" -msgstr "SQL-Alchemy" - -msgid "SQLite" -msgstr "SQLite" - -msgid "SUSE Linux Enterprise Server (SLES)" -msgstr "SUSE Linux Enterprise Server (SLES)" - -msgid "" -"Script that initializes the building of the ring file, takes daemon names as " -"parameter and offers commands. Documented in http://docs.openstack.org/" -"developer/swift/admin_guide.html#managing-services." -msgstr "" -"リングファイルを初期化し、パラメーターとしてデーモンの名前を受け付け、コマン" -"ドを提供するスクリプトです。ドキュメントは http://docs.openstack.org/" -"developer/swift/admin_guide.html#managing-services にあります。" - -msgid "See API endpoint." -msgstr "API エンドポイントを参照。" - -msgid "See access control list." -msgstr "「アクセス制御リスト」参照。" - -msgid "" -"Selects the optimal storage provider node on which to create the volume. A " -"similar component to the ``nova-scheduler``." -msgstr "" -"ボリュームを作成するのに適切なストレージプロバイダーノードを選択します。 " -"``nova-scheduler`` と同様のコンポーネントです。" - -msgid "" -"Send the volume transfer ID and authorization key to the new owner (for " -"example, by email)." -msgstr "" -"ボリューム転送 ID と認証キーを新しい所有者に送信します (例: 電子メール)。" - -msgid "Server" -msgstr "サーバー" - -msgid "Service" -msgstr "サービス" - -msgid "Service Level Agreement (SLA)" -msgstr "サービス水準合意 (SLA; Service Level Agreement)" - -msgid "Set environment variables using the OpenStack RC file" -msgstr "OpenStack RC ファイルを用いた環境変数の設定" - -msgid "" -"Set of bits that make up a single character; there are usually 8 bits to a " -"byte." -msgstr "1 つの文字を構成するビットの組。通常は 8 ビットで 1 バイトになる。" - -msgid "" -"Set the HTML title, which appears at the top of the browser window, by " -"adding the following line to ``local_settings.py``:" -msgstr "" -"``local_settings.py`` に以下の行を追加して、HTML タイトルを設定します。 HTML " -"タイトルは、ブラウザーウィンドウの上部に表示されます。" - -msgid "" -"Setting for the Compute RabbitMQ message delivery mode; can be set to either " -"transient or persistent." -msgstr "" -"Compute RabbitMQ メッセージ配信モード用設定。transient(一時)又は " -"persistent(永続)のいずれかを設定できる。" - -msgid "Shared File Systems API" -msgstr "共有ファイルシステム API" - -msgid "Shared File Systems service" -msgstr "Shared File Systems サービス" - -msgid "Sheepdog" -msgstr "Sheepdog" - -msgid "Show host usage statistics" -msgstr "ホストの使用統計の表示" - -msgid "Show information for your volume:" -msgstr "お使いのボリュームの情報を表示します。" - -msgid "Show instance usage statistics" -msgstr "インスタンスの使用統計の表示" - -msgid "Show usage statistics for hosts and instances" -msgstr "ホストおよびインスタンスの使用統計の表示" - -msgid "" -"Similar to :option:`--location` in usage, but indicates that the image " -"server should immediately copy the data and store it in its configured image " -"store." -msgstr "" -"使用方法は :option:`--location` に似ていますが、イメージサーバーはすぐにデー" -"タをコピーして設定済みのイメージストアに保存する必要があると指定します。" - -msgid "" -"Similar to the ``nova-compute`` service, accepts networking tasks from the " -"queue and manipulates the network. Performs tasks such as setting up " -"bridging interfaces or changing IPtables rules." -msgstr "" -"``nova-compute`` と似ています。 キューからネットワーク関係のタスクを受け取" -"り、ネットワーク操作を行ないます。例えば、ブリッジインターフェースの準備や " -"iptables ルールの変更などのタスクを行います。" - -msgid "Simple Cloud Identity Management (SCIM)" -msgstr "Simple Cloud Identity Management (SCIM)" - -msgid "" -"Since the installation process compiles source files, this requires the " -"related Python development package for your operating system and " -"distribution." -msgstr "" -"インストール中にソースファイルをコンパイルするため、お使いのオペレーティング" -"システム環境に応じた、関連する Python 開発パッケージが必要になります。" - -msgid "Single-root I/O Virtualization (SR-IOV)" -msgstr "Single-root I/O Virtualization (SR-IOV)" - -msgid "Site colors" -msgstr "サイトのカラー" - -msgid "Sizing based on need" -msgstr "必要なサイズを指定" - -msgid "Sizings based on need" -msgstr "必要なサイズを指定" - -msgid "SmokeStack" -msgstr "SmokeStack" - -msgid "" -"Soft limit on the amount of network traffic a Compute VM instance can send " -"and receive." -msgstr "" -"Compute の仮想マシンインスタンスが送受信できるネットワーク通信量のソフト制" -"限。" - -msgid "Software Development Lifecycle Automation service" -msgstr "ソフトウェア開発ライフサイクル自動化サービス" - -msgid "" -"Software component providing the actual implementation for Networking APIs, " -"or for Compute APIs, depending on the context." -msgstr "" -"利用形態に応じた、Networking API や Compute API の具体的な実装を提供するソフ" -"トウェアコンポーネント。" - -msgid "" -"Software that arbitrates and controls VM access to the actual underlying " -"hardware." -msgstr "VM のアクセスを実際の下位ハードウェアに仲介して制御するソフトウェア。" - -msgid "" -"Software that enables multiple VMs to share a single physical NIC within " -"Compute." -msgstr "" -"複数の仮想マシンが Compute 内で単一の物理 NIC を共有するためのソフトウェア。" - -msgid "" -"Software that runs on a host or node and provides the features and functions " -"of a hardware-based network switch." -msgstr "" -"ホストやノードで実行され、ハードウェアのネットワークスイッチの機能を提供する" -"ソフトウェア。" - -msgid "SolidFire Volume Driver" -msgstr "SolidFire Volume Driver" - -msgid "Some tips:" -msgstr "使いこなすヒント:" - -msgid "Something you must be aware of before proceeding." -msgstr "続行する前に注意が必要なものです。" - -msgid "" -"Special tenant that contains all services that are listed in the catalog." -msgstr "カタログに一覧化される全サービスを含む特別なテナント。" - -msgid "" -"Specification for managing identity in the cloud, currently unsupported by " -"OpenStack." -msgstr "" -"クラウドで認証情報を管理するための仕様。現在、OpenStack によりサポートされて" -"いない。" - -msgid "" -"Specifies additional requirements when Compute determines where to start a " -"new instance. Examples include a minimum amount of network bandwidth or a " -"GPU." -msgstr "" -"Compute が新しいインスタンスを起動する場所を判断するとき、追加の要件を指定す" -"る。例えば、ネットワーク帯域の最小量、GPU などがある。" - -msgid "" -"Specifies the authentication source used by Image service or Identity. In " -"the Database service, it refers to the extensions implemented for a data " -"store." -msgstr "" -"Image サービスや Identity サービスが使用する認証元を指定する。 Database サー" -"ビスでは、データストア用に実装された拡張を指す。" - -msgid "StackTach" -msgstr "StackTach" - -msgid "Standard for packaging VM images. Supported in OpenStack." -msgstr "仮想マシンイメージのパッケージ化の標準。OpenStack でサポートされる。" - -msgid "StaticWeb" -msgstr "StaticWeb" - -msgid "Storage concepts" -msgstr "ストレージの考え方" - -msgid "" -"Storage protocol similar in concept to TCP/IP; encapsulates SCSI commands " -"and data." -msgstr "" -"TCP/IP に似た概念のストレージプロトコル。SCSI コマンドとデータをカプセル化す" -"る。" - -msgid "" -"Storage protocol that encapsulates SCSI frames for transport over IP " -"networks." -msgstr "" -"IP ネットワーク上で転送するために、SCSI フレームをカプセル化するストレージプ" -"ロトコル。" - -msgid "Storage repository for image files" -msgstr "イメージファイル用のストレージリポジトリー" - -msgid "" -"Storage ring build and rebalance utility. Documented in http://docs." -"openstack.org/developer/swift/admin_guide.html#managing-the-rings." -msgstr "" -"ストレージリングの作成とリバランスを行うツール。ドキュメントは http://docs." -"openstack.org/developer/swift/admin_guide.html#managing-the-rings にありま" -"す。" - -msgid "Storage types" -msgstr "ストレージ種別" - -msgid "Stores CephFS metadata." -msgstr "CephFS メタデータを格納する。" - -msgid "" -"Stores and retrieves arbitrary unstructured data objects via a RESTful, HTTP " -"based API. It is highly fault tolerant with its data replication and scale-" -"out architecture. Its implementation is not like a file server with " -"mountable directories. In this case, it writes objects and files to multiple " -"drives, ensuring the data is replicated across a server cluster." -msgstr "" -"RESTful な HTTP ベースの API 経由で任意の非構造データオブジェクトを保存および" -"取得します。データ複製による高い耐障害性と、スケールアウトアーキテクチャーを" -"持ちます。その実装は、マウント可能なディレクトリを持つファイルサーバーとは異" -"なります。オブジェクトやファイルを複数のドライブに書き込み、データがサーバク" -"ラスター間で複製されていることを保証します。" - -msgid "" -"Stores and retrieves virtual machine disk images. OpenStack Compute makes " -"use of this during instance provisioning." -msgstr "" -"仮想マシンディスクイメージを保存および取得します。OpenStack Compute がインス" -"タンスの配備中に使用します。" - -msgid "" -"Stores image metadata and you can choose your database depending on your " -"preference. Most deployments use MySQL or SQLite." -msgstr "" -"イメージのメタデータを保存します。お好みのデータベースを選択できます。多くの" -"環境では MySQL か SQLite を使用します。" - -msgid "" -"Stores most build-time and run-time states for a cloud infrastructure, " -"including:" -msgstr "" -"クラウドインフラの、作成中、実行中のほとんどの状態を保持します。例えば以下の" -"ような情報があります。" - -msgid "" -"Stores, processes, and retrieves metadata about images. Metadata includes " -"items such as size and type." -msgstr "" -"イメージに関するメタデータの保存、処理、取得を行います。メタデータは容量や形" -"式などの項目があります。" - -msgid "" -"String of text known only by the user; used along with an access key to make " -"requests to the Compute API." -msgstr "" -"ユーザーのみが知っているテキスト文字列。リクエストを Compute API に発行するた" -"めに、アクセスキーと一緒に使用される。" - -msgid "Subdivides physical CPUs. Instances can then use those divisions." -msgstr "" -"物理 CPU を分割する。インスタンスは、これらの分割したものを使用できる。" - -msgid "Support for different Hadoop distributions:" -msgstr "さまざまな Hadoop ディストリビューションをサポートしています。" - -msgid "Supported model values" -msgstr "サポートされるモデルの値" - -msgid "Supports interaction with VMware products in Compute." -msgstr "Compute で VMware 製品の操作をサポートする。" - -msgid "" -"Takes a virtual machine instance request from the queue and determines on " -"which compute server host it runs." -msgstr "" -"仮想マシンインスタンスの作成要求を受け取ってキューイングし、インスタンスをど" -"のコンピュートサーバーホストで実行するかを決定します。" - -msgid "Telemetry Alarming service" -msgstr "Telemetry Alarming サービス" - -msgid "Telemetry Data Collection service" -msgstr "Telemetry Data Collection サービス" - -msgid "Telemetry service" -msgstr "Telemetry サービス" - -msgid "Telemetry v3" -msgstr "Telemetry v3" - -msgid "TempAuth" -msgstr "TempAuth" - -msgid "TempURL" -msgstr "TempURL" - -msgid "Tempest" -msgstr "Tempest" - -msgid "Tenant API" -msgstr "テナント API" - -msgid "" -"Term for an Object Storage process that runs for a long time. Can indicate a " -"hung process." -msgstr "" -"長時間動作している Object Storage のプロセスを指す用語。ハングしたプロセスを" -"意味する可能性もある。" - -msgid "" -"Term used in the OSI network architecture for the data link layer. The data " -"link layer is responsible for media access control, flow control and " -"detecting and possibly correcting errors that may occur in the physical " -"layer." -msgstr "" -"OSI ネットワークアーキテクチャーにおけるデータリンク層に使用される用語。デー" -"タリンク層は、メディアアクセス制御、フロー制御、物理層で発生する可能性のある" -"エラー検知、できる限りエラー訂正に責任を持つ。" - -msgid "" -"Term used in the OSI network architecture for the network layer. The network " -"layer is responsible for packet forwarding including routing from one node " -"to another." -msgstr "" -"OSI ネットワークアーキテクチャーにおけるネットワーク層に使用される用語。ネッ" -"トワーク層は、パケット転送、あるノードから別のノードへのルーティングに責任を" -"持つ。" - -msgid "The :command:`delete` command does not return any output." -msgstr ":command:`delete` コマンドは何も出力しません。" - -msgid "The :command:`extend` command does not return any output." -msgstr ":command:`extend` コマンドは何も出力しません。" - -msgid "The :command:`volume-detach` command does not return any output." -msgstr ":command:`volume-detach` コマンドは何も出力しません。" - -msgid "" -"The API used to access the OpenStack Identity service provided through " -"keystone." -msgstr "" -"keystone が提供する OpenStack Identity サービスへのアクセスに使用される API。" - -msgid "The Amazon commercial block storage product." -msgstr "Amazon のブロックストレージの商用製品。" - -msgid "The Amazon commercial compute product, similar to Compute." -msgstr "Amazon の商用コンピュート製品。Compute と似ている。" - -msgid "" -"The Apache Software Foundation supports the Apache community of open-source " -"software projects. These projects provide software products for the public " -"good." -msgstr "" -"The Apache Software Foundation は、オープンソースソフトウェアプロジェクトの " -"Apache コミュニティーをサポートする。これらのプロジェクトは、公共財のためにソ" -"フトウェア製品を提供する。" - -msgid "The Block Storage driver for the SolidFire iSCSI storage appliance." -msgstr "" -"SolidFire iSCSI ストレージアプライアンス向けの Block Storage ドライバー。" - -msgid "The Block Storage service consists of the following components:" -msgstr "Block Storage サービスは、以下のコンポーネントから構成されます。" - -msgid "" -"The Border Gateway Protocol is a dynamic routing protocol that connects " -"autonomous systems. Considered the backbone of the Internet, this protocol " -"connects disparate networks to form a larger network." -msgstr "" -"Border Gateway Protocol は、自律システムを接続する、動的ルーティングプロトコ" -"ルである。インターネットのバックボーンと比べて、このプロトコルは、より大きな" -"ネットワークを形成するために、異なるネットワークを接続する。" - -msgid "The Ceph storage daemon." -msgstr "Ceph ストレージデーモン。" - -msgid "" -"The Compute RabbitMQ message exchange that remains active when the server " -"restarts." -msgstr "" -"サーバーの再起動時に有効なままになる Compute の RabbitMQ メッセージ交換。" - -msgid "" -"The Compute VM scheduling algorithm that attempts to start a new VM on the " -"host with the least amount of load." -msgstr "" -"新規仮想マシンを合計負荷の最も低いホストで起動しようとする、Compute 仮想マシ" -"ンスケジューリングアルゴリズム。" - -msgid "" -"The Compute component that chooses suitable hosts on which to start VM " -"instances." -msgstr "" -"仮想マシンインスタンスを起動するために適切なホストを選択する Compute のコン" -"ポーネント。" - -msgid "" -"The Compute component that contains a list of the current capabilities of " -"each host within the cell and routes requests as appropriate." -msgstr "" -"セル内にある各ホストの現在のキャパシティー一覧を持ち、リクエストを適切にルー" -"ティングする、Compute のコンポーネント。" - -msgid "" -"The Compute component that gives IP addresses to authorized nodes and " -"assumes DHCP, DNS, and routing configuration and services are provided by " -"something else." -msgstr "" -"認可されたノードに IP アドレスを割り当てる Compute のコンポーネント。DHCP、" -"DNS、ルーティングの設定とサービスが別の何かにより提供されることを仮定してい" -"る。" - -msgid "" -"The Compute component that manages various network components, such as " -"firewall rules, IP address allocation, and so on." -msgstr "" -"ファイアウォールのルール、IP アドレスの割り当てなど、さまざまなネットワークの" -"コンポーネントを管理する、Compute のコンポーネント。" - -msgid "" -"The Compute component that provides dnsmasq (DHCP, DNS, BOOTP, TFTP) and " -"radvd (routing) services." -msgstr "" -"dnsmasq (DHCP、DNS、BOOTP、TFTP) や radvd (ルーティング) のサービスを提供す" -"る Compute のコンポーネント。" - -msgid "" -"The Compute component that runs on each compute node and manages the VM " -"instance lifecycle, including run, reboot, terminate, attach/detach volumes, " -"and so on. Provided by the nova-compute daemon." -msgstr "" -"各ノードで動作し、仮想マシンインスタンスのライフサイクル (実行、再起動、終" -"了、ボリュームの接続や切断など) を管理する、Compute のコンポーネント。nova-" -"compute デーモンにより提供される。" - -msgid "" -"The Compute direct exchanges, fanout exchanges, and topic exchanges use this " -"key to determine how to process a message; processing varies depending on " -"exchange type." -msgstr "" -"Compute の直接交換、ファンアウト交換、トピック交換は、このキーを使用して、" -"メッセージを処理する方法を判断する。処理内容は交換形式に応じて変化する。" - -msgid "" -"The Compute scheduling method that attempts to fill a host with VMs rather " -"than starting new VMs on a variety of hosts." -msgstr "" -"様々なホスト上で新しい VM を起動するよりも、なるべく一つのホストを埋めようと" -"する Compute スケジューリング手法。" - -msgid "" -"The Compute service can send alerts through its notification system, which " -"includes a facility to create custom notification drivers. Alerts can be " -"sent to and displayed on the horizon dashboard." -msgstr "" -"Compute のサービスは、通知システム経由で警告を送信できる。カスタム通知ドライ" -"バーを作成する機能がある。警告は、送信したり、ダッシュボードに表示したりでき" -"る。" - -msgid "" -"The Compute service provides accounting information through the event " -"notification and system usage data facilities." -msgstr "" -"Compute サービスは、イベント通知やシステム使用状況データ機能からアカウンティ" -"ング情報を提供する。" - -msgid "The Compute setting that enables or disables RAM overcommitment." -msgstr "RAM オーバーコミットを有効化または無効化する Compute の設定。" - -msgid "" -"The Data processing service for OpenStack (sahara) aims to provide users " -"with a simple means to provision data processing (Hadoop, Spark) clusters by " -"specifying several parameters like Hadoop version, cluster topology, node " -"hardware details and a few more. After a user fills in all the parameters, " -"the Data processing service deploys the cluster in a few minutes. Sahara " -"also provides a means to scale already provisioned clusters by adding or " -"removing worker nodes on demand." -msgstr "" -"OpenStack 用 Data processing サービス (sahara) の目的は、 Hadoop バージョン、" -"クラスターのトポロジー、ノードハードウェアの詳細などのいくつかのパラメーター" -"を指定するだけで、(Hadoop や Spark の) データ処理クラスターをセットアップする" -"簡単な方法をユーザーに提供することです。ユーザーが必要なパラメーターをすべて" -"入力すると、 Data processing サービスは数分でクラスターを展開します。 要求に" -"応じてワーカーノードの追加、削除を行って、すでに展開済みのクラスターのサイズ" -"を変更する手段も提供しています。" - -msgid "The Database service includes the following components:" -msgstr "Database サービスは以下のコンポーネントで構成されます。" - -msgid "" -"The Database service provides resource isolation at high performance levels, " -"and automates complex administrative tasks such as deployment, " -"configuration, patching, backups, restores, and monitoring." -msgstr "" -"Database サービスは、高い性能レベルでのリソースの分離ができ、配備、設定、パッ" -"チ適用、バックアップ、リストア、監視などの複雑な管理作業を自動化します。" - -msgid "" -"The Database service provides scalable and reliable cloud provisioning " -"functionality for both relational and non-relational database engines. Users " -"can quickly and easily use database features without the burden of handling " -"complex administrative tasks. Cloud users and database administrators can " -"provision and manage multiple database instances as needed." -msgstr "" -"Database サービスは、リレーショナルデータベースと非リレーショナルデータベース" -"の両方のエンジン向けにスケール可能な信頼できるクラウド展開機能を提供します。" -"ユーザーは、複雑な管理作業を実行することなく、迅速かつ容易にデータベース機能" -"を利用できます。クラウドのユーザーとデータベース管理者は、必要に応じて、複数" -"のデータベースインスタンスを配備および管理できます。" - -msgid "The ID of an already existent volume." -msgstr "既存のボリュームの ID。" - -msgid "The Identity component that provides high-level authorization services." -msgstr "高レベルの認可サービスを提供する Identity のコンポーネント。" - -msgid "The Identity service component that provides authentication services." -msgstr "認証サービスを提供する Identity のコンポーネント。" - -msgid "The Identity service contains these components:" -msgstr "Identity サービスには、以下のコンポーネントがあります。" - -msgid "" -"The Identity service endpoint template that contains services available to " -"all tenants." -msgstr "" -"すべてのテナントが利用可能なサービスを含む、Identity のエンドポイントテンプ" -"レート。" - -msgid "The Image service API endpoint for management of VM images." -msgstr "仮想マシンイメージの管理用の Image service API エンドポイント。" - -msgid "The Launchpad Bugs area" -msgstr "Launchpad バグエリア" - -msgid "" -"The Network Controller provides virtual networks to enable compute servers " -"to interact with each other and with the public network. All machines must " -"have a public and private network interface. A VLAN network is a private " -"network interface, which is controlled by the ``vlan_interface`` option with " -"VLAN managers." -msgstr "" -"ネットワークコントローラーは、コンピュートサーバー間、およびコンピュートサー" -"バーとパブリックネットワークとの通信を行う仮想ネットワークを用意する。すべて" -"の物理マシンにはパブリック側とプライベート側のネットワークインタフェースが必" -"要。VLAN ネットワークはプライベート側のネットワークインタフェースで、VLAN マ" -"ネージャーの ``vlan_interface`` オプションで指定される。" - -msgid "" -"The Network Controller provides virtual networks to enable compute servers " -"to interact with each other and with the public network. All machines must " -"have a public and private network interface. A private network interface can " -"be a flat or VLAN network interface. A flat network interface is controlled " -"by the flat_interface with flat managers. A VLAN network interface is " -"controlled by the ``vlan_interface`` option with VLAN managers." -msgstr "" -"ネットワークコントローラーは、コンピュートサーバー間、およびコンピュートサー" -"バーとパブリックネットワークとの通信を行う仮想ネットワークを用意する。すべて" -"の物理マシンにはパブリック側とプライベート側のネットワークインタフェースが必" -"要。プライベートネットワークインターフェースは、フラットネットワークまたは " -"VLAN ネットワークインターフェースにできる。フラットネットワークインターフェー" -"スは、フラットマネージャーを用いて flat_interface により制御される。VLAN ネッ" -"トワークインターフェースは、 VLAN マネージャーの ``vlan_interface`` オプショ" -"ンにより制御される。" - -msgid "" -"The Network Controller provides virtual networks to enable compute servers " -"to interact with each other and with the public network. All machines must " -"have a public and private network interface. The public network interface is " -"controlled by the ``public_interface`` option." -msgstr "" -"コンピュートサーバーがパブリックネットワークと相互通信できるよう、ネットワー" -"クコントローラーが仮想ネットワークを提供する。全マシンにはパブリックとプライ" -"ベートのネットワークインターフェースがなければならない。パブリックネットワー" -"クインターフェースは ``public_interface`` オプションにより制御される。" - -msgid "" -"The Object Storage back-end process that creates and manages object replicas." -msgstr "" -"オブジェクトの複製を作成および管理する Object Storage のバックエンドプロセ" -"ス。" - -msgid "" -"The Object Storage component that provides container services, such as " -"create, delete, list, and so on." -msgstr "" -"作成、削除、一覧表示などのコンテナーサービスを提供する Object Storage のコン" -"ポーネント。" - -msgid "" -"The Object Storage context of an account. Do not confuse with a user account " -"from an authentication service, such as Active Directory, /etc/passwd, " -"OpenLDAP, OpenStack Identity, and so on." -msgstr "" -"Object Storage のアカウントのコンテキスト。Active Directory、/etc/passwd、" -"OpenLDAP、OpenStack Identity などの認証サービスのユーザーアカウントと混同しな" -"いこと。" - -msgid "" -"The OpenStack Administrator configures the basic infrastructure using the " -"following steps:" -msgstr "OpenStack の管理者は、以下の手順で、基本的なインフラを設定します。" - -msgid "" -"The OpenStack Block Storage service (cinder) adds persistent storage to a " -"virtual machine. Block Storage provides an infrastructure for managing " -"volumes, and interacts with OpenStack Compute to provide volumes for " -"instances. The service also enables management of volume snapshots, and " -"volume types." -msgstr "" -"OpenStack Block Storage サービス (cinder) は、永続ストレージを仮想マシンに提" -"供します。Block Storage は、ボリュームを管理するインフラを提供し、ボリューム" -"をインスタンスに提供するために OpenStack Compute と通信します。このサービスに" -"より、ボリュームのスナップショットやボリューム種別を管理できます。" - -msgid "The OpenStack IRC channel" -msgstr "OpenStack IRC チャンネル" - -msgid "The OpenStack Image service includes the following components:" -msgstr "OpenStack Image service には、以下のコンポーネントがあります。" - -msgid "" -"The OpenStack Image service is central to Infrastructure-as-a-Service (IaaS) " -"as shown in :ref:`get_started_conceptual_architecture`. It accepts API " -"requests for disk or server images, and metadata definitions from end users " -"or OpenStack Compute components. It also supports the storage of disk or " -"server images on various repository types, including OpenStack Object " -"Storage." -msgstr "" -"OpenStack Image service は、:ref:`get_started_conceptual_architecture` に書か" -"れているように Infrastructure-as-a-Service (IaaS) の中核です。エンドユーザー" -"や OpenStack Compute のコンポーネントからの、ディスクやサーバーイメージ、メタ" -"データ定義に関する API リクエストを受け付けます。ディスクやサーバーイメージの" -"保管場所として、OpenStack Object Storage などの様々な種類のリポジトリーに対応" -"しています。" - -msgid "" -"The OpenStack Object Storage is a multi-tenant object storage system. It is " -"highly scalable and can manage large amounts of unstructured data at low " -"cost through a RESTful HTTP API." -msgstr "" -"OpenStack Object Storage は、マルチテナントのオブジェクトストレージシステムで" -"す。高いスケーラビリティーを持ちます。RESTful HTTP API 経由で大規模な非構造" -"データを低コストで管理できます。" - -msgid "" -"The OpenStack community lives in the #openstack IRC channel on the Freenode " -"network. You can hang out, ask questions, or get immediate feedback for " -"urgent and pressing issues. To install an IRC client or use a browser-based " -"client, go to `https://webchat.freenode.net/ `__. You can also use Colloquy (Mac OS X, http://colloquy.info/), mIRC " -"(Windows, http://www.mirc.com/), or XChat (Linux). When you are in the IRC " -"channel and want to share code or command output, the generally accepted " -"method is to use a Paste Bin. The OpenStack project has one at http://paste." -"openstack.org. Just paste your longer amounts of text or logs in the web " -"form and you get a URL that you can paste into the channel. The OpenStack " -"IRC channel is ``#openstack`` on ``irc.freenode.net``. You can find a list " -"of all OpenStack IRC channels at https://wiki.openstack.org/wiki/IRC." -msgstr "" -"OpenStack コミュニティーは、Freenode ネットワークに #openstack IRC チャンネル" -"を持っています。緊急の問題に関して、ここに参加して、質問して、すぐにフィード" -"バックを得ることができます。IRC クライアントをインストールする場合、ブラウ" -"ザーベースのクライアントを使用する場合、`https://webchat.freenode.net/ " -"`__ にアクセスしてください。Colloquy (Mac OS " -"X, http://colloquy.info/)、mIRC (Windows, http://www.mirc.com/)、XChat " -"(Linux) を使用することもできます。IRC チャンネルに参加して、コードやコマンド" -"の出力を共有したい場合、一般的に Paste Bin を使用する方法があります。" -"OpenStack プロジェクトには http://paste.openstack.org があります。長いテキス" -"トやログをウェブフォームに貼り付けるだけです。そして、URL を取得して IRC チャ" -"ンネルに貼り付けます。OpenStack の IRC チャンネルは ``irc.freenode.net`` にあ" -"る ``#openstack`` です。OpenStack の IRC チャンネル一覧は https://wiki." -"openstack.org/wiki/IRC にあります。" - -msgid "" -"The OpenStack community values your set up and testing efforts and wants " -"your feedback. To log a bug, you must sign up for a Launchpad account at " -"https://launchpad.net/+login. You can view existing bugs and report bugs in " -"the Launchpad Bugs area. Use the search feature to determine whether the bug " -"has already been reported or already been fixed. If it still seems like your " -"bug is unreported, fill out a bug report." -msgstr "" -"OpenStack コミュニティーは、あなたの構成やテスト作業を重視しており、あなたの" -"フィードバックを期待しています。バグを報告する場合、 https://launchpad.net/" -"+login で Launchpad アカウントをサインアップする必要があります。既存のバグを" -"確認したり、Launchpad バグエリアにバグを報告したりできます。検索機能を使用し" -"て、バグがすでに報告されているか、すでに解決されているかを確認できます。バグ" -"がまだ報告されていないようであれば、バグ報告を記入します。" - -msgid "" -"The OpenStack configuration files use an INI format to describe options and " -"their values. It consists of sections and key value pairs." -msgstr "" -"OpenStack 設定ファイルは、オプションやその値を記述するために、INI 形式を使用" -"する。セクションとキーバリューペアから構成される。" - -msgid "" -"The OpenStack core project that enables management of volumes, volume " -"snapshots, and volume types. The project name of Block Storage is cinder." -msgstr "" -"ボリューム、ボリュームのスナップショット、ボリューム種別を管理する、" -"OpenStack のコアプロジェクト。Block Storage のプロジェクト名は cinder。" - -msgid "" -"The OpenStack core project that provides a central directory of users mapped " -"to the OpenStack services they can access. It also registers endpoints for " -"OpenStack services. It acts as a common authentication system. The project " -"name of Identity is keystone." -msgstr "" -"ユーザーがアクセスできる OpenStack サービスに対応付けられた、ユーザーの中央" -"ディレクトリーを提供する、OpenStack コアプロジェクト。OpenStack サービスのエ" -"ンドポイントも登録する。一般的な認証システムとして動作する。Identity のプロ" -"ジェクト名は keystone。" - -msgid "" -"The OpenStack core project that provides compute services. The project name " -"of Compute service is nova." -msgstr "" -"コンピュートサービスを提供する OpenStack のコアプロジェクト。Compute のプロ" -"ジェクト名は nova。" - -msgid "" -"The OpenStack core project that provides eventually consistent and redundant " -"storage and retrieval of fixed digital content. The project name of " -"OpenStack Object Storage is swift." -msgstr "" -"結果整合性(eventually consistent)、ストレージ冗長化、静的デジタルコンテンツ" -"取得、といった機能を提供する、OpenStack のコアプロジェクト。OpenStack Object " -"Storage のプロジェクト名は swift。" - -msgid "" -"The OpenStack dashboard by default on Ubuntu installs the ``openstack-" -"dashboard-ubuntu-theme`` package." -msgstr "" -"Ubuntu の OpenStack dashboard は、デフォルトで ``openstack-dashboard-ubuntu-" -"theme`` パッケージをインストールします。" - -msgid "" -"The OpenStack dashboard is a modular `Django web application `__ that provides a graphical interface to OpenStack " -"services." -msgstr "" -"OpenStack dashboard は、モジュール型の `Django Web アプリケーション`__ です。OpenStack サービスのグラフィカルインター" -"フェースを提供します。" - -msgid "The OpenStack documentation uses several typesetting conventions." -msgstr "OpenStack のドキュメントでは、以下の表記規則を採用しています。" - -msgid "" -"The OpenStack end user deploys the Database service using the following " -"steps:" -msgstr "" -"OpenStack のエンドユーザーは、以下の手順で Database サービスを配備します。" - -msgid "" -"The OpenStack project is an open source cloud computing platform for all " -"types of clouds, which aims to be simple to implement, massively scalable, " -"and feature rich. Developers and cloud computing technologists from around " -"the world create the OpenStack project." -msgstr "" -"OpenStack project はあらゆる種類のクラウド向けのオープンソースのクラウドコン" -"ピューティングプラットフォームです。シンプルな実装、大規模なスケーラビリ" -"ティ、豊富な機能を目指しています。世界中の開発者とクラウドコンピューティング" -"技術者が OpenStack project を作っています。" - -msgid "" -"The OpenStack project that OpenStack project that implements clustering " -"services and libraries for the management of groups of homogeneous objects " -"exposed by other OpenStack services. The project name of Clustering service " -"is senlin." -msgstr "" -"クラスタリングサービスと、他の OpenStack サービスにより公開された均質なオブ" -"ジェクトグループを管理するためのライブラリーを実現する OpenStack プロジェク" -"ト。このプロジェクトのコード名は senlin。" - -msgid "" -"The OpenStack project that provides a multi-tenant, highly scalable, " -"performant, fault-tolerant Monitoring-as-a-Service solution for metrics, " -"complex event processing, and logging. It builds an extensible platform for " -"advanced monitoring services that can be used by both operators and tenants " -"to gain operational insight and visibility, ensuring availability and " -"stability. The project name is monasca." -msgstr "" -"マルチテナントで、高いスケーラビリティーを持ち、高性能で、耐障害性のある、" -"Monitoring-as-a-Service ソリューションを提供する OpenStack プロジェクト。 計" -"測情報、複合イベント処理 (complex event processing)、ログ監視が対象。オペレー" -"ター、テナントの両者が利用できる、高度なモニタリングサービスに対応できる拡張" -"性のあるプラットフォームを開発しており、可用性と安定性を確保しながら、運用上" -"の問題の特定や可視化を実現できる。プロジェクト名は monasca。" - -msgid "" -"The OpenStack project that provides integrated tooling for backing up, " -"restoring, and recovering file systems, instances, or database backups. The " -"project name is freezer." -msgstr "" -"ファイルシステム、インスタンス、データベースバックアップのバックアップ、リス" -"トア、リカバリー用の統合ツールを提供する OpenStack プロジェクト。プロジェクト" -"名は freezer。" - -msgid "The OpenStack stack uses the following storage types:" -msgstr "OpenStack のスタックは、以下のストレージ種別を使用します。" - -msgid "The OpenStack wiki" -msgstr "OpenStack wiki" - -msgid "The Orchestration service consists of the following components:" -msgstr "Orchestration サービスは、以下のコンポーネントから構成されます。" - -msgid "" -"The Orchestration service provides a template-based orchestration for " -"describing a cloud application by running OpenStack API calls to generate " -"running cloud applications. The software integrates other core components of " -"OpenStack into a one-file template system. The templates allow you to create " -"most OpenStack resource types such as instances, floating IPs, volumes, " -"security groups, and users. It also provides advanced functionality such as " -"instance high availability, instance auto-scaling, and nested stacks. This " -"enables OpenStack core projects to receive a larger user base." -msgstr "" -"Orchestration サービスは、クラウドアプリケーションを記述できるテンプレート" -"ベースのオーケストレーション機能を提供します。 OpenStack API を呼び出して、実" -"際に動くクラウドアプリケーションを生成します。このサービスにより、他の " -"OpenStack のコアコンポーネントを 1ファイルのテンプレートシステムに統合できま" -"す。テンプレートを使って、ほとんどの種類の OpenStack リソースを作成できます。" -"例えば、インスタンス、 Floating IP、ボリューム、セキュリティーグループ、ユー" -"ザーなどです。インスタンスの高可用化、インスタンスのオートスケーリング、入れ" -"子になったスタックといった、高度な機能も提供しています。これにより、より多く" -"のユーザーが OpenStack コアプロジェクトを利用することになります。" - -msgid "The POSIX-compliant file system provided by Ceph." -msgstr "Ceph により提供される POSIX 互換ファイルシステム。" - -msgid "" -"The SCSI disk protocol tunneled within Ethernet, supported by Compute, " -"Object Storage, and Image service." -msgstr "" -"イーサネット内でトンネルされる SCSI ディスクプロトコル。Compute、Object " -"Storage、Image service によりサポートされる。" - -msgid "The Shared File Systems service consists of the following components:" -msgstr "Shared File Systems サービスは、以下のコンポーネントから構成されます。" - -msgid "" -"The Simple Protocol for Independent Computing Environments (SPICE) provides " -"remote desktop access to guest virtual machines. It is an alternative to " -"VNC. SPICE is supported by OpenStack." -msgstr "" -"Simple Protocol for Independent Computing Environments (SPICE) は、ゲスト仮想" -"マシンに対するリモートデスクトップアクセスを提供する。VNC の代替品。SPICE は " -"OpenStack によりサポートされる。" - -msgid "The Telemetry Alarming service consists of the following components:" -msgstr "Telemetry Alarming サービスは、以下のコンポーネントから構成されます。" - -msgid "" -"The Telemetry Alarming services trigger alarms when the collected metering " -"or event data break the defined rules." -msgstr "" -"Telemetry Alarming サービスは、収集したメーターやイベントデータが定義済みルー" -"ルを満たさない場合、アラームを生成します。" - -msgid "The Telemetry Data Collection services provide the following functions:" -msgstr "Telemetry Data Collection サービスは、以下の機能を持ちます。" - -msgid "The Telemetry service consists of the following components:" -msgstr "Telemetry サービスは、以下のコンポーネントから構成されます。" - -msgid "" -"The URL where the data for this image resides. For example, if the image " -"data is stored in swift, you could specify ``swift://account:key@example.com/" -"container/obj``." -msgstr "" -"このイメージのデータが格納されている URL。たとえば、イメージデータが swift に" -"格納されている場合 ``swift://account:key@example.com/container/obj`` を指定し" -"ます。 " - -msgid "The Xen administrative API, which is supported by Compute." -msgstr "Xen 管理 API。Compute によりサポートされる。" - -msgid "" -"The `OpenStack wiki `__ contains a broad range " -"of topics but some of the information can be difficult to find or is a few " -"pages deep. Fortunately, the wiki search feature enables you to search by " -"title or content. If you search for specific information, such as about " -"networking or OpenStack Compute, you can find a large amount of relevant " -"material. More is being added all the time, so be sure to check back often. " -"You can find the search box in the upper-right corner of any OpenStack wiki " -"page." -msgstr "" -"`OpenStack wiki `__ には、さまざまな情報がありま" -"す。しかし、いくつかの情報は見つけにくく、深い場所にあります。幸い、wiki 検索" -"機能により、見出しや内容を検索できます。ネットワークや OpenStack Compute な" -"ど、特定の情報を探している場合、非常に多くの関連項目を見つけられます。情報が" -"いつでも追加されているので、ときどき確認し直してください。すべての OpenStack " -"wiki ページの右上に、検索ボックスがあります。" - -msgid "" -"The ``cinder-backup`` service provides backing up volumes of any type to a " -"backup storage provider. Like the ``cinder-volume`` service, it can interact " -"with a variety of storage providers through a driver architecture." -msgstr "" -"``cinder-backup`` サービスは、あらゆる種類のボリュームのバックアップをバック" -"アップストレージプロバイダーに提供します。 ``cinder-volume`` サービスのよう" -"に、ドライバーアーキテクチャーになっており、さまざまな種類のストレージプロバ" -"イダーを利用できます。" - -msgid "" -"The ``cpu`` column shows the sum of the virtual CPUs for instances running " -"on the host." -msgstr "" -"``cpu`` の列は、ホストで実行中のインスタンスの仮想 CPU 総数を表示します。" - -msgid "" -"The ``disk_gb`` column shows the sum of the root and ephemeral disk sizes " -"(in GB) of the instances that run on the host." -msgstr "" -"``disk_gb`` の列は、ホストで実行中のインスタンスの一時ディスクのサイズ (GB) " -"と root の合計を表示します。" - -msgid "" -"The ``memory_mb`` column shows the sum of the memory (in MB) allocated to " -"the instances that run on the host." -msgstr "" -"``memory_mb`` の列は、ホストで実行中のインスタンスに割り当てられたメモリー " -"(MB) 合計を表示します。" - -msgid "" -"The ``nova-network`` worker daemon; provides services such as giving an IP " -"address to a booting nova instance." -msgstr "" -"``nova-network`` ワーカーデーモン。起動中の Nova インスタンスに IP アドレスを" -"付与する等のサービスを提供する。" - -msgid "" -"The ``root`` user must run commands that are prefixed with the ``#`` prompt. " -"You can also prefix these commands with the :command:`sudo` command, if " -"available, to run them." -msgstr "" -"``#`` プロンプトから始まるコマンドは ``root`` ユーザーで実行する必要がありま" -"す。これらのコマンドを実行するために :command:`sudo` コマンドを使用することも" -"できます。" - -msgid "" -"The ability to encrypt data at the file system, disk partition, or whole-" -"disk level. Supported within Compute VMs." -msgstr "" -"ファイルシステム、ディスクパーティション、ディスク全体を暗号化する機能。" -"Compute の仮想マシン内でサポートされる。" - -msgid "" -"The ability to start new VM instances based on the actual memory usage of a " -"host, as opposed to basing the decision on the amount of RAM each running " -"instance thinks it has available. Also known as RAM overcommit." -msgstr "" -"実行中の各インスタンスが利用可能と考えている RAM 量に基づく判断をベースにする" -"代わりに、ホスト上の実際のメモリ使用量をベースにした、新しい VM インスタンス" -"を起動する機能。" - -msgid "" -"The ability to start new VM instances based on the actual memory usage of a " -"host, as opposed to basing the decision on the amount of RAM each running " -"instance thinks it has available. Also known as memory overcommit." -msgstr "" -"実行中の各インスタンスが利用可能と考えている RAM 量に基づく判断をベースにする" -"代わりに、ホスト上の実際のメモリ使用量をベースにした、新しい VM インスタンス" -"を起動する機能。" - -msgid "" -"The ability within Compute to move running virtual machine instances from " -"one host to another with only a small service interruption during switchover." -msgstr "" -"切り替え中のわずかなサービス中断のみで、実行中の仮想マシンをあるホストから別" -"のホストに移動する、Compute 内の機能。" - -msgid "" -"The act of verifying that a user, process, or client is authorized to " -"perform an action." -msgstr "" -"ユーザー、プロセス、クライアントが操作を実行する権限を持つかどうかを確認する" -"こと。" - -msgid "" -"The amount of available data used by communication resources, such as the " -"Internet. Represents the amount of data that is used to download things or " -"the amount of data available to download." -msgstr "" -"インターネットなどの通信リソースにより使用される、利用可能なデータ量。何かを" -"ダウンロードするために使用されるデータの合計量、またはダウンロードするために" -"利用可能なデータの合計量を表す。" - -msgid "" -"The amount of time it takes for a new Object Storage object to become " -"accessible to all clients." -msgstr "" -"Object Storage の新規オブジェクトがすべてのクライアントからアクセス可能になる" -"までにかかる時間。" - -msgid "" -"The association between an Image service VM image and a tenant. Enables " -"images to be shared with specified tenants." -msgstr "" -"Image service の仮想マシンイメージとテナント間の関連。イメージを特別なテナン" -"トと共有できるようになる。" - -msgid "" -"The back-end store used by Image service to store VM images, options include " -"Object Storage, local file system, S3, or HTTP." -msgstr "" -"仮想マシンイメージを保存するために、Image service により使用されるバックエン" -"ドストア。オプションとして、Object Storage、ローカルファイルシステム、S3、" -"HTTP がある。" - -msgid "" -"The cloud operator assigns roles to users. Roles determine who can upload " -"and manage images. The operator might restrict image upload and management " -"to only cloud administrators or operators." -msgstr "" -"クラウド運用者はユーザーにロールを割り当てます。ロールはイメージをアップロー" -"ドおよび管理できるユーザーを決定します。運用者はイメージのアップロードと管理" -"をクラウド管理者や運用者のみに制限するかもしれません。" - -msgid "" -"The code name for the eighth release of OpenStack. The design summit took " -"place in Portland, Oregon, US and Havana is an unincorporated community in " -"Oregon." -msgstr "" -"OpenStack の 8 番目のリリースのコード名。デザインサミットがアメリカ合衆国オレ" -"ゴン州ポートランドで開催された。Havana は、オレゴン州の非法人コミュニティーで" -"ある。" - -msgid "" -"The code name for the eleventh release of OpenStack. The design summit took " -"place in Paris, France. Due to delays in the name selection, the release was " -"known only as K. Because ``k`` is the unit symbol for kilo and the reference " -"artifact is stored near Paris in the Pavillon de Breteuil in Sèvres, the " -"community chose Kilo as the release name." -msgstr "" -"OpenStack の 11 番目のリリースのコード名。デザインサミットは、フランスのパリ" -"で開催された。名前選定の遅れにより、このリリースは K のみで知られていた。 " -"``k`` はキロを表す単位記号であり、その原器がパリ近郊の Pavillon de Breteuil " -"in Sèvres に保存されているので、コミュニティーはリリース名として Kilo を選択" -"した。" - -msgid "" -"The code name for the fifteenth release of OpenStack. The design summit will " -"take place in Barcelona, Spain. Ocata is a beach north of Barcelona." -msgstr "" -"OpenStack の 14 番目のリリースのコード名。デザインサミットは、スペインのバル" -"セロナで開催される。Ocata はバルセロナ北部のビーチ。" - -msgid "" -"The code name for the initial release of OpenStack. The first design summit " -"took place in Austin, Texas, US." -msgstr "" -"OpenStack の初期リリースのコード名。最初のデザインサミットは、アメリカ合衆国" -"テキサス州オースチンで開催された。" - -msgid "" -"The code name for the ninth release of OpenStack. The design summit took " -"place in Hong Kong and Ice House is a street in that city." -msgstr "" -"OpenStack の 9 番目のリリースのコード名。デザインサミットは、香港で開催され" -"た。Ice House は、その近くにある通りである。" - -msgid "" -"The code name for the seventh release of OpenStack. The design summit took " -"place in San Diego, California, US and Grizzly is an element of the state " -"flag of California." -msgstr "" -"OpenStack の 7 番目のリリースのコード名。デザインサミットがアメリカ合衆国カリ" -"フォルニア州サンディエゴで開催された。Grizzly は、カリフォルニア州の州旗に使" -"われている。" - -msgid "" -"The code name for the tenth release of OpenStack. The design summit took " -"place in Atlanta, Georgia, US and Juno is an unincorporated community in " -"Georgia." -msgstr "" -"OpenStack の 10 番目のリリースのコード名。デザインサミットはアメリカ合衆国" -"ジョージア州アトランタにて開催された。Juno は、ジョージア州の非公式コミュニ" -"ティー。" - -msgid "" -"The code name for the thirteenth release of OpenStack. The design summit " -"took place in Tokyo, Japan. Mitaka is a city in Tokyo." -msgstr "" -"OpenStack の 13 番目のリリースのコード名。デザインサミットは、日本の東京で開" -"催された。三鷹は、東京にある都市です。" - -msgid "" -"The code name for the twelfth release of OpenStack. The design summit took " -"place in Vancouver, Canada and Liberty is the name of a village in the " -"Canadian province of Saskatchewan." -msgstr "" -"OpenStack の 12 番目のリリースのコード名。デザインサミットは、カナダのバン" -"クーバーで開催された。Liberty は、サスカチュワン州にある村の名前。" - -msgid "The collaboration site for OpenStack." -msgstr "OpenStack 用コラボレーションサイト。" - -msgid "" -"The common agents are L3 (layer 3), DHCP (dynamic host IP addressing), and a " -"plug-in agent." -msgstr "" -"共通のエージェントは、L3 エージェント、DHCP エージェント、プラグインエージェ" -"ントです。" - -msgid "" -"The container format of the image. Acceptable formats are ami, ari, aki, " -"bare, docker, and ovf." -msgstr "" -"イメージのコンテナー形式。対応形式は ami、ari、aki、docker、bare、ovf です。" - -msgid "" -"The cooperative threading model used by Python; reduces race conditions and " -"only context switches when specific library calls are made. Each OpenStack " -"service is its own thread." -msgstr "" -"Python により使用される協調スレッドモデル。特定のライブラリーコールが発行され" -"るときの競合状態とコンテキストスイッチを減らす。各 OpenStack サービスは自身の" -"スレッドである。" - -msgid "The current state of a guest VM image." -msgstr "ゲスト仮想マシンイメージの現在の状態。" - -msgid "" -"The current status of a VM image in Image service, not to be confused with " -"the status of a running instance." -msgstr "" -"Image service における仮想マシンイメージの現在の状態。実行中のインスタンスの" -"状態と混同しないこと。" - -msgid "" -"The daemon, worker, or service that a client communicates with to access an " -"API. API endpoints can provide any number of services, such as " -"authentication, sales data, performance meters, Compute VM commands, census " -"data, and so on." -msgstr "" -"クライアントが API にアクセスするために通信するデーモン、ワーカーまたはサービ" -"ス。API エンドポイントは、認証、売上データ、パフォーマンス統計、Compute 仮想" -"マシンコマンド、センサスデータなどのような数多くのサービスを提供できます。" - -msgid "" -"The dashboard is usually deployed through `mod_wsgi `__ in Apache. You can modify the dashboard code to make it " -"suitable for different sites." -msgstr "" -"ダッシュボードは、一般的に Apache の `mod_wsgi `__ 経由で配備されます。ダッシュボードのコードを修正して、それぞれの" -"サイトに適するように変更できます。" - -msgid "The default message queue software used by OpenStack." -msgstr "OpenStackでデフォルトで採用されているメッセージキューのソフトウェア。" - -msgid "" -"The default panel that is displayed when a user accesses the horizon " -"dashboard." -msgstr "" -"ユーザーがダッシュボードにアクセスした際に表示されるデフォルトのパネル。" - -msgid "" -"The disk format of the image. Acceptable formats are ami, ari, aki, vhd, " -"vmdk, raw, qcow2, vdi, and iso." -msgstr "" -"イメージのディスク形式。利用可能な形式は ami、ari、aki、vhd、vmdk、raw、" -"qcow2、vdi、iso です。" - -msgid "The fibre channel protocol tunneled within Ethernet." -msgstr "イーサネットでトンネルされるファイバーチャネルプロトコル。" - -msgid "The following Launchpad Bugs areas are available:" -msgstr "以下の Launchpad バグエリアが利用できます。" - -msgid "" -"The following Linux distributions provide community-supported packages for " -"OpenStack:" -msgstr "OpenStack のコミュニティサポート版を提供しているディストリビューション" - -msgid "" -"The following books explain how to configure and run an OpenStack cloud:" -msgstr "OpenStackクラウドの設定と実行に関するガイド:" - -msgid "" -"The following books explain how to install an OpenStack cloud and its " -"associated components:" -msgstr "OpenStack クラウドと関連コンポーネントの導入ガイド:" - -msgid "" -"The following books explain how to use the OpenStack dashboard and command-" -"line clients:" -msgstr "" -"以下のドキュメントは、OpenStack dashboard とコマンドラインクライアントの使用" -"方法を説明しています。" - -msgid "The following can easily be customized:" -msgstr "以下の項目を簡単にカスタマイズできます。" - -msgid "" -"The following diagram shows the most common, but not the only possible, " -"architecture for an OpenStack cloud:" -msgstr "" -"以下の図に、最も一般的な OpenStack クラウドのアーキテクチャーを示します。これ" -"が唯一の OpenStack のアーキテクチャーというわけではありません。" - -msgid "" -"The following diagram shows the relationships among the OpenStack services:" -msgstr "以下の図は OpenStack サービス間の関連性を示しています。" - -msgid "" -"The following documentation provides reference and guidance information for " -"the OpenStack APIs:" -msgstr "" -"以下のドキュメントは、OpenStack API に関するリファレンスとガイダンスを提供し" -"ます。" - -msgid "" -"The following example shows how to update an existing image with a " -"properties that describe the disk bus, the CD-ROM bus, and the VIF model:" -msgstr "" -"以下の例は、ディスクバス、CD-ROM バス、VIF モデルのプロパティを指定して、既存" -"のイメージを更新する方法を表します。" - -msgid "" -"The following example shows the command for installing the OpenStack client " -"with ``pip``, which supports multiple services." -msgstr "" -"以下の例は、``pip`` を用いて OpenStack client をインストールするコマンドを示" -"します。" - -msgid "" -"The following example shows the command that you would use to upload a " -"CentOS 6.3 image in qcow2 format and configure it for public access:" -msgstr "" -"以下の例は、CentOS 6.3 イメージを qcow2 形式でアップロードし、パブリックなア" -"クセス用に設定するために使用するコマンドを表します。" - -msgid "The following example unmanages the ``my-snapshot-id`` image:" -msgstr "以下の例は ``my-snapshot-id`` イメージを管理対象外にします。" - -msgid "" -"The following examples show the host usage statistics for a host called " -"``devstack``." -msgstr "以下の例では、``devstack`` という名前のホストの使用統計を表示します。" - -msgid "" -"The following guide provides how to contribute to OpenStack documentation:" -msgstr "" -"OpenStack ドキュメントに貢献する方法については以下のガイドに説明があります。" - -msgid "" -"The following individual clients are deprecated in favor of a common client. " -"Instead of installing and learning all these clients, we recommend " -"installing and using the OpenStack client. You may need to install an " -"individual project's client because coverage is not yet sufficient in the " -"OpenStack client. If you need to install an individual client's project, " -"replace the ```` name in this ``pip install`` command using the " -"list below." -msgstr "" -"以下の個別クライアントは、共通クライアントに置き換えられ、非推奨になりまし" -"た。これらのクライアントをすべてインストールして学習する代わりに、OpenStack " -"クライアントをインストールして使用することを推奨します。OpenStack クライアン" -"トにおいて十分にカバーされていないため、各プロジェクトのクライアントをインス" -"トールする必要があるかもしれません。各プロジェクトのクライアントをインストー" -"ルする必要がある場合、以下の一覧を使用して、この ``pip install`` の " -"```` の名前を置き換えてください。" - -msgid "" -"The following list explains the optional arguments that you can use with the " -"``create`` and ``update`` commands to modify image properties. For more " -"information, refer to Image service chapter in the `OpenStack Command-Line " -"Interface Reference `__." -msgstr "" -"以下の一覧は、イメージのプロパティを変更するために、``create`` コマンドと " -"``update`` コマンドで使用できるオプション引数の一覧です。詳細は `OpenStack " -"Command-Line Interface Reference `__ の Image service の章を参照してください。" - -msgid "" -"The following resources are available to help you run and use OpenStack. The " -"OpenStack community constantly improves and adds to the main features of " -"OpenStack, but if you have any questions, do not hesitate to ask. Use the " -"following resources to get OpenStack support, and troubleshoot your " -"installations." -msgstr "" -"OpenStack の利用に役立つリソースとして以下のものがあります。OpenStack コミュ" -"ニティーは、OpenStack を継続的に改善、機能追加していますが、もしあなたが何ら" -"かの疑問に直面したら、遠慮せずに相談してください。下記のリソースを OpenStack " -"のサポートとトラブルシュートに活用してください。" - -msgid "" -"The following table describes the OpenStack services that make up the " -"OpenStack architecture:" -msgstr "" -"以下の表は OpenStack アーキテクチャーを構成する OpenStack のサービスについて" -"まとめたものです。" - -msgid "" -"The following table lists the command-line client for each OpenStack service " -"with its package name and description." -msgstr "" -"以下の表は、各 OpenStack サービスのコマンドラインクライアント、そのパッケージ" -"名、説明の一覧です。" - -msgid "" -"The logo also acts as a hyperlink. The default behavior is to redirect to " -"``horizon:user_home``. To change this, add the following attribute to " -"``local_settings.py``:" -msgstr "" -"ロゴはハイパーリンクとしても機能します。デフォルトの動作では、``horizon:" -"user_home`` にリダイレクトします。これを変更するには、以下の属性を " -"``local_settings.py`` に追加します。" - -msgid "" -"The main virtual communication line used by all AMQP messages for inter-" -"cloud communications within Compute." -msgstr "" -"Compute 内でクラウド内通信のためにすべての AMQP メッセージにより使用されるメ" -"インの仮想通信ライン。" - -msgid "" -"The method of storage used by horizon to track client sessions, such as " -"local memory, cookies, a database, or memcached." -msgstr "" -"クライアントのセッションを管理するために、horizon により使用される保存方法。" -"ローカルメモリー、クッキー、データベース、memcached など。" - -msgid "" -"The method that a service uses for persistent storage, such as iSCSI, NFS, " -"or local disk." -msgstr "" -"サービスが、iSCSI、NFS、ローカルディスクなどの永続ストレージを使用する方式。" - -msgid "" -"The method used by the Compute RabbitMQ for intra-service communications." -msgstr "内部サービス通信のために Compute RabbitMQ により使用される方法。" - -msgid "The minimum amount of RAM needed to boot the image, in megabytes." -msgstr "ブートイメージに必要となるメモリの最小容量。ギガバイト単位。" - -msgid "The minimum size of the disk needed to boot the image, in gigabytes." -msgstr "ブートイメージに必要となるディスクの最小容量。ギガバイト単位。" - -msgid "The most common web server software currently used on the Internet." -msgstr "" -"現在インターネットにおいて使用されている最も一般的な Web サーバーソフトウェ" -"ア。" - -msgid "The name of the image." -msgstr "イメージの名前。" - -msgid "" -"The nova-api daemon provides access to nova services. Can communicate with " -"other APIs, such as the Amazon EC2 API." -msgstr "" -"Compute サービスへのアクセスを提供する nova-api デーモン。Amazon EC2 API のよ" -"うな他の API でも通信可能。" - -msgid "The number of replicas of the data in an Object Storage ring." -msgstr "Object Storage リングにおけるデータ複製数。" - -msgid "" -"The open standard messaging protocol used by OpenStack components for intra-" -"service communications, provided by RabbitMQ, Qpid, or ZeroMQ." -msgstr "" -"インフラサービス通信のために OpenStack コンポーネントにより使用されるオープン" -"な標準メッセージングプロトコル。RabbitMQ、Qpid、ZeroMQ により提供される。" - -msgid "" -"The output shows that the volume is attached to the server with ID " -"``84c6e57d-a6b1-44b6-81eb-fcb36afd31b5``, is in the nova availability zone, " -"and is bootable." -msgstr "" -"この出力から、このボリュームは ID が ``84c6e57d-a6b1-44b6-81eb-" -"fcb36afd31b5`` のサーバーに接続されていること、nova のアベイラビリティゾーン" -"内にあること、ブータブルであることが分かります。" - -msgid "" -"The output shows the volume transfer ID in the ``id`` row and the " -"authorization key." -msgstr "" -"この出力では、認証キーと、``id`` の行にボリュームの転送 ID が表示されます。" - -msgid "" -"The persistent data store used to save and retrieve information for a " -"service, such as lists of Object Storage objects, current state of guest " -"VMs, lists of user names, and so on. Also, the method that the Image service " -"uses to get and store VM images. Options include Object Storage, local file " -"system, S3, and HTTP." -msgstr "" -"Object Storage のオブジェクトの一覧、ゲスト仮想マシンの現在の状態、ユーザー名" -"の一覧など、サービスに関する情報を保存および取得するために使用される永続デー" -"タストア。また、Image service が仮想マシンイメージを取得および保存するために" -"使用する方式。Object Storage、ローカルファイルシステム、S3、HTTP などの選択肢" -"がある。" - -msgid "" -"The person responsible for installing, configuring, and managing an " -"OpenStack cloud." -msgstr "OpenStack クラウドのインストール、設定、管理に責任を持つ人。" - -msgid "" -"The person responsible for planning and maintaining an OpenStack " -"installation." -msgstr "OpenStack インストールを計画し、管理する責任者。" - -msgid "" -"The point where a user interacts with a service; can be an API endpoint, the " -"horizon dashboard, or a command-line tool." -msgstr "" -"ユーザーがサービスと通信する箇所。API エンドポイント、ダッシュボード、コマン" -"ドラインツールの可能性がある。" - -msgid "" -"The practice of placing one packet type within another for the purposes of " -"abstracting or securing data. Examples include GRE, MPLS, or IPsec." -msgstr "" -"データを抽象化やセキュア化する目的で、あるパケット形式を別の形式の中に入れる" -"ための方法。例えば、GRE、MPLS、IPsec などがある。" - -msgid "" -"The practice of utilizing a secondary environment to elastically build " -"instances on-demand when the primary environment is resource constrained." -msgstr "" -"主環境がリソース制限されたとき、要求時に応じてインスタンスを伸縮自在に構築す" -"るために、副環境を利用する慣習。" - -msgid "" -"The primary load balancing configuration object. Specifies the virtual IP " -"address and port where client traffic is received. Also defines other " -"details such as the load balancing method to be used, protocol, and so on. " -"This entity is sometimes known in load-balancing products as a virtual " -"server, vserver, or listener." -msgstr "" -"主たる負荷分散の設定オブジェクト。クライアント通信を受け付ける仮想 IP とポー" -"トを指定する。使用する負荷分散方式、プロトコルなどの詳細も定義する。このエン" -"ティティは、virtual server、vserver、listener のような負荷分散製品においても" -"知られている。" - -msgid "" -"The procedure for volume transfer is intended for tenants (both the volume " -"donor and recipient) within the same cloud." -msgstr "" -"ボリューム転送の手続きは、テナント (ボリュームの譲渡元と受信者) が同じクラウ" -"ド内にあることを意図しています。" - -msgid "" -"The process associating a Compute floating IP address with a fixed IP " -"address." -msgstr "" -"Compute の Floating IP アドレスと Fixed IP アドレスを関連づけるプロセス。" - -msgid "" -"The process of automating IP address allocation, deallocation, and " -"management. Currently provided by Compute, melange, and Networking." -msgstr "" -"IP アドレスの割り当て、割り当て解除、管理を自動化するプロセス。現在、" -"Compute、melange、Networking により提供される。" - -msgid "" -"The process of connecting a VIF or vNIC to a L2 network in Networking. In " -"the context of Compute, this process connects a storage volume to an " -"instance." -msgstr "" -"Networking において、仮想インターフェースや仮想 NIC を L2 ネットワークに接続" -"するプロセス。Compute の文脈では、ストレージボリュームをインスタンスに接続す" -"るプロセス。" - -msgid "" -"The process of copying data to a separate physical device for fault " -"tolerance and performance." -msgstr "" -"別の物理デバイスにデータをコピーする処理。耐障害性や性能のために行われる。" - -msgid "" -"The process of distributing Object Storage partitions across all drives in " -"the ring; used during initial ring creation and after ring reconfiguration." -msgstr "" -"リング内のすべてのドライブにわたり、Object Storage のパーティションを分散させ" -"る処理。初期リング作成中、リング再設定後に使用される。" - -msgid "" -"The process of filtering incoming network traffic. Supported by Compute." -msgstr "" -"入力ネットワーク通信をフィルタリングする処理。Compute によりサポートされる。" - -msgid "" -"The process of finding duplicate data at the disk block, file, and/or object " -"level to minimize storage use—currently unsupported within OpenStack." -msgstr "" -"ディスク使用を最小化するために、ディスクブロック、ファイル、オブジェクトレベ" -"ルにあるデータの重複を見つけるプロセス。現在 OpenStack 内では未サポート。" - -msgid "" -"The process of migrating one or all virtual machine (VM) instances from one " -"host to another, compatible with both shared storage live migration and " -"block migration." -msgstr "" -"1つまたは全ての仮想マシン(VM)インスタンスをあるホストから別のホストにマイ" -"グレーションする処理。共有ストレージのライブマイグレーションとブロックマイグ" -"レーション両方と互換がある。" - -msgid "The process of moving a VM instance from one host to another." -msgstr "VM インスタンスをあるホストから別のホストに移動させる処理。" - -msgid "" -"The process of putting a file into a virtual machine image before the " -"instance is started." -msgstr "" -"インスタンスが起動する前に、仮想マシンイメージ中にファイルを配置する処理。" - -msgid "" -"The process of removing the association between a floating IP address and a " -"fixed IP address. Once this association is removed, the floating IP returns " -"to the address pool." -msgstr "" -"Floating IP アドレスと Fixed IP アドレスの関連付けを解除する処理。この関連付" -"けが解除されると、Floating IP はアドレスプールに戻されます。" - -msgid "" -"The process of removing the association between a floating IP address and " -"fixed IP and thus returning the floating IP address to the address pool." -msgstr "" -"Floating IP アドレスと Fixed IP の関連付けを削除する処理。これにより、" -"Floating IP アドレスをアドレスプールに返す。" - -msgid "" -"The process of spreading client requests between two or more nodes to " -"improve performance and availability." -msgstr "" -"パフォーマンスや可用性を向上するために、2 つ以上のノード間でクライアントリク" -"エストを分散する処理。" - -msgid "" -"The process of taking a floating IP address from the address pool so it can " -"be associated with a fixed IP on a guest VM instance." -msgstr "" -"アドレスプールから Floating IP アドレスを取得するプロセス。ゲスト仮想マシンイ" -"ンスタンスに Fixed IP を関連付けられるようにする。" - -msgid "" -"The process that confirms that the user, process, or client is really who " -"they say they are through private key, secret token, password, fingerprint, " -"or similar method." -msgstr "" -"ユーザー、プロセスまたはクライアントが、秘密鍵、秘密トークン、パスワード、指" -"紋または同様の方式により示されている主体と本当に同じであることを確認するプロ" -"セス。" - -msgid "" -"The project name for the Telemetry service, which is an integrated project " -"that provides metering and measuring facilities for OpenStack." -msgstr "" -"Telemetry サービスのプロジェクト名。OpenStack 向けにメータリングと計測機能を" -"提供する、統合プロジェクト。" - -msgid "The project that provides OpenStack Identity services." -msgstr "OpenStack Identity サービスを提供するプロジェクト。" - -msgid "" -"The protocol by which layer-3 IP addresses are resolved into layer-2 link " -"local addresses." -msgstr "L3 IP プロトコルが L2 リンクローカルアドレスに解決されるプロトコル。" - -msgid "The queue" -msgstr "キュー" - -msgid "" -"The recommended way to install setuptools on Microsoft Windows is to follow " -"the documentation provided on the setuptools website (https://pypi.python." -"org/pypi/setuptools). Another option is to use the unofficial binary " -"installer maintained by Christoph Gohlke (`http://www.lfd.uci.edu/~gohlke/" -"pythonlibs/ #setuptools `__)." -msgstr "" -"Microsoft Windows に setuptools をインストールする推奨方法は、の Web サイト " -"(https://pypi.python.org/pypi/setuptools) にあるドキュメントに従うことです。" -"もう 1 つの選択肢は、Christoph Gohlke さんによりメンテナンスされている非公式" -"バイナリーインストーラー (`http://www.lfd.uci.edu/~gohlke/pythonlibs/" -"#setuptools `__) を使" -"用することです。" - -msgid "" -"The registry is a private internal service meant for use by OpenStack Image " -"service. Do not expose this service to users." -msgstr "" -"レジストリーは OpenStack Image service 自身が使用するプライベートな内部サービ" -"スです。ユーザーに公開しないでください。" - -msgid "" -"The router advertisement daemon, used by the Compute VLAN manager and " -"FlatDHCP manager to provide routing services for VM instances." -msgstr "" -"ルーター通知デーモン。仮想マシンインスタンスにルーティングサービスを提供する" -"ために、Compute の VLAN マネージャーと FlatDHCP マネージャーにより使用され" -"る。" - -msgid "" -"The row that has the value ``used_max`` in the ``PROJECT`` column shows the " -"sum of the resources allocated to the instances that run on the host." -msgstr "" -"``PROJECT`` 列にある ``used_max`` という値の行は、ホストで実行中のインスタン" -"スに割り当てられたリソースの合計を表示します。" - -msgid "" -"The row that has the value ``used_now`` in the ``PROJECT`` column shows the " -"sum of the resources allocated to the instances that run on the host, plus " -"the resources allocated to the virtual machine of the host itself." -msgstr "" -"``PROJECT`` 列にある ``used_now`` という値の行は、ホストで実行中のインスタン" -"スに割り当てられたリソースの合計と、ホスト自体の仮想マシンに割り当てられたリ" -"ソースを表示します。" - -msgid "" -"The service enables deployers to integrate with the Orchestration service " -"directly or through custom plug-ins." -msgstr "" -"オペレーターは 直接、あるいはカスタムプラグイン経由で様々なものを " -"Orchestration サービスと統合できます。" - -msgid "" -"The software package used to provide AMQP messaging capabilities within " -"Compute. Default package is RabbitMQ." -msgstr "" -"Compute 内で AMQP メッセージング機能を提供するために使用されるソフトウェア" -"パッケージ。標準のパッケージは RabbitMQ。" - -msgid "The solution addresses the following use cases:" -msgstr "このソリューションで、以下のユースケースが解決できます。" - -msgid "" -"The source used by Identity service to retrieve user information; an " -"OpenLDAP server, for example." -msgstr "" -"ユーザー情報を取得するために、Identity により使用されるソース。例えば、" -"OpenLDAP。" - -msgid "" -"The step in the Compute scheduling process when hosts that cannot run VMs " -"are eliminated and not chosen." -msgstr "" -"VM を実行できないホストを排除し、選択されないようにする Compute のスケジュー" -"リング処理の段階。" - -msgid "" -"The storage method used by the Identity service catalog service to store and " -"retrieve information about API endpoints that are available to the client. " -"Examples include an SQL database, LDAP database, or KVS back end." -msgstr "" -"クライアントが利用可能な API エンドポイントに関する情報を保存、取得するのに、" -"Identity サービスのカタログサービスが使用する保存方式。SQL データベース、" -"LDAP データベース、KVS バックエンドなどがある。" - -msgid "" -"The sum of each cost used when deciding where to start a new VM instance in " -"Compute." -msgstr "" -"Compute で新しい仮想マシンを起動する場所を判断するときに使用される各コストの" -"合計。" - -msgid "The tenant who owns an Image service virtual machine image." -msgstr "Image service の仮想マシンイメージを所有するテナント。" - -msgid "The tenant who should own the image. The size of image data, in bytes." -msgstr "イメージを所有するプロジェクト。イメージのバイト単位の容量。" - -msgid "" -"The transfer of data, usually in the form of files, from one computer to " -"another." -msgstr "" -"あるコンピューターから他のコンピューターへのデータの転送。通常はファイルの形" -"式。" - -msgid "" -"The underlying format that a disk image for a VM is stored as within the " -"Image service back-end store. For example, AMI, ISO, QCOW2, VMDK, and so on." -msgstr "" -"仮想マシンのディスクイメージが Image service のバックエンドストア内で保存され" -"る、バックエンドの形式。AMI、ISO、QCOW2、VMDK などがある。" - -msgid "" -"The universal measurement of how quickly data is transferred from place to " -"place." -msgstr "" -"データがある場所から別の場所にどのくらい速く転送されるかの普遍的な計測基準。" - -msgid "" -"The valid model values depend on the ``libvirt_type`` setting, as shown in " -"the following tables." -msgstr "" -"有効なモデルの値は、以下の表にあるように ``libvirt_type`` 設定により左右され" -"ます。" - -msgid "" -"The volume must be in an ``available`` state or the request will be denied. " -"If the transfer request is valid in the database (that is, it has not " -"expired or been deleted), the volume is placed in an ``awaiting transfer`` " -"state. For example:" -msgstr "" -"ボリュームが ``利用可能`` の状態でない場合、要求は却下されます。転送要求が" -"データベース内で有効な場合 (失効していない、または削除されていない場合)、ボ" -"リュームは ``awaiting transfer`` の状態になります。たとえば、 " - -msgid "" -"The web-based management interface for OpenStack. An alternative name for " -"horizon." -msgstr "OpenStack 用 Web ベース管理インターフェース。Horizon の別名。" - -msgid "Then install pip and use it to manage client installation:" -msgstr "pip をインストールして、インストールするクライアントを管理します。" - -msgid "Then you can install the packages:" -msgstr "そして、パッケージをインストールします。" - -msgid "" -"Theoretically, OpenStack Compute can support any database that SQL-Alchemy " -"supports. Common databases are SQLite3 for test and development work, MySQL, " -"and PostgreSQL." -msgstr "" -"理論的には、OpenStack Compute は SQL-Alchemy がサポートするデータベースをすべ" -"てサポートします。一般的に使用されているデータベースは、テスト・開発用には " -"SQLite3、それ以外では MySQL や PostgreSQL です。" - -msgid "" -"There are also packaged versions of the clients available in `RDO `__ that enable yum to install the clients as described " -"in Installing_from_packages_." -msgstr "" -"Installing_from_packages_ に記載されているように、yum を使用してインストール" -"できるクライアントパッケージも `RDO `__ にありま" -"す。" - -msgid "" -"There are also packaged versions of the clients available that enable zypper " -"to install the clients as described in Installing_from_packages_." -msgstr "" -"Installing_from_packages_ に記載されているように、zypper を使用してインストー" -"ルできるクライアントパッケージもあります。" - -msgid "" -"These services communicate by using the OpenStack messaging bus. Only the " -"collector and API server have access to the data store." -msgstr "" -"これらのサービスは OpenStack のメッセージバスを使って通信します。コレクター" -"と API サーバーだけがデータストアにアクセスできます。" - -msgid "" -"These values are computed by using information about the flavors of the " -"instances that run on the hosts. This command does not query the CPU usage, " -"memory usage, or hard disk usage of the physical host." -msgstr "" -"これらの値は、ホストで実行されるインスタンスのフレーバーに関する情報を使用し" -"て計算されます。このコマンドは、物理ホストの CPU の使用状況、メモリーの使用状" -"況、ハードディスクの使用状況の問い合わせは行いません。" - -msgid "This example creates a ``my-new-volume`` volume based on an image." -msgstr "" -"以下の例では、イメージをベースにして ``my-new-volume`` ボリュームを作成しま" -"す。" - -msgid "This example is a high-level process flow for using Database services:" -msgstr "" -"この例は、Database サービスを使用するための高レベルなプロセスフローです。" - -msgid "" -"This glossary offers a list of terms and definitions to define a vocabulary " -"for OpenStack-related concepts." -msgstr "" -"この用語集は、OpenStack 関連の概念の語彙を定義するための用語や定義の一覧を提" -"供します。" - -msgid "This guide focuses on the ``local_settings.py`` file." -msgstr "このガイドは ``local_settings.py`` ファイルでの設定を扱います。" - -msgid "This section describes OpenStack services in detail." -msgstr "このセクションでは OpenStack のサービスを詳しく説明します。" - -msgid "" -"To avoid storing the password in plain text, you can prompt for the " -"OpenStack password interactively." -msgstr "" -"OpenStack のパスワードを対話的に入力して、パスワードを平文で保存することを避" -"けることもできます。" - -msgid "To create an image, use :command:`glance image-create`:" -msgstr ":command:`glance image-create` を使用して、イメージを作成します。" - -msgid "" -"To delete your volume, you must first detach it from the server. To detach " -"the volume from your server and check for the list of existing volumes, see " -"steps 1 and 2 in Resize_a_volume_." -msgstr "" -" ボリュームを削除するには、まずサーバーからボリュームを切り離す必要がありま" -"す。サーバーからボリュームを切り離して既存のボリューム一覧を確認するには、" -"Resize_a_volume_ のステップ 1 と 2 を参照します。" - -msgid "" -"To design, deploy, and configure OpenStack, administrators must understand " -"the logical architecture." -msgstr "" -"クラウド管理者は、OpenStack を設計、導入、設定するために、論理アーキテク" -"チャーを理解する必要があります。" - -msgid "" -"To get a list of images and to get further details about a single image, " -"use :command:`glance image-list` and :command:`glance image-show` commands." -msgstr "" -"イメージの一覧を取得して単一のイメージの詳細を確認するには、 :command:" -"`glance image-list` と :command:`glance image-show` コマンドを使用します。" - -msgid "" -"To install the clients on a Linux, Mac OS X, or Microsoft Windows system, " -"use pip. It is easy to use, ensures that you get the latest version of the " -"clients from the `Python Package Index `__, and " -"lets you update or remove the packages later on." -msgstr "" -"Linux、Mac OS X、Microsoft Windows システムにクライアントをインストールする場" -"合、pip を使用します。これは使いやすく、 `Python Package Index `__ からきちんと最新版のクライアントを取得します。また、後から更" -"新や削除することもできます。" - -msgid "" -"To provide feedback on documentation, join and use the openstack-docs@lists." -"openstack.org mailing list at `OpenStack Documentation Mailing List `__, or `report " -"a bug `__." -msgstr "" -"ドキュメントにフィードバックを行う場合は、`OpenStack Documentation メーリング" -"リスト `__ にある openstack-docs@lists.openstack.org メーリングリストに参加して" -"ください。または、`バグ報告 `__ をしてください。" - -msgid "To remove the client, run the :command:`pip uninstall` command:" -msgstr "" -"クライアントを削除する場合、 :command:`pip uninstall` コマンドを実行します。" - -msgid "" -"To resize your volume, you must first detach it from the server. To detach " -"the volume from your server, pass the server ID and volume ID to the " -"following command:" -msgstr "" -"ボリュームをリサイズするには、まずボリュームをサーバーから切り離します。以下" -"のコマンドでサーバー ID とボリューム ID を指定して、サーバーからボリュームを" -"切り離します。" - -msgid "" -"To set the required environment variables for the OpenStack command-line " -"clients, you must create an environment file called an OpenStack rc file, or " -"``openrc.sh`` file. If your OpenStack installation provides it, you can " -"download the file from the OpenStack dashboard as an administrative user or " -"any other user. This project-specific environment file contains the " -"credentials that all OpenStack services use." -msgstr "" -"OpenStack コマンドラインクライアントに必要な環境変数を設定するには、" -"OpenStack rc ファイルと呼ばれる環境ファイルまたは ``openrc.sh`` ファイルを作" -"成する必要があります。OpenStack のインストールでこのファイルが提供される場合" -"は、管理ユーザーまたはその他のユーザーで OpenStack Dashboard からダウンロード" -"してください。このプロジェクト固有の環境ファイルには、OpenStack サービスが使" -"用する認証情報が含まれます。 " - -msgid "" -"To store location metadata for images, which enables direct file access for " -"a client, update the ``/etc/glance/glance-api.conf`` file with the following " -"statements:" -msgstr "" -"イメージの場所のメタデータを保存してクライアントが直接ファイルにアクセスでき" -"るようにするには、``/etc/glance/glance-api.conf`` ファイルで以下のステートメ" -"ントを追加更新します。 " - -msgid "To update an image by name or ID, use :command:`glance image-update`:" -msgstr "" -":command:`glance image-update` を使用して、名前または ID によりイメージを更新" -"します。" - -msgid "" -"To upgrade a client, add the :option:`--upgrade` option to the :command:`pip " -"install` command:" -msgstr "" -":command:`pip install` コマンドを :option:`--upgrade` オプションを追加して、" -"クライアントをアップグレードします。" - -msgid "" -"To verify that your volume was created successfully, list the available " -"volumes:" -msgstr "" -"ボリュームが正常に作成されたことを確認するには、利用可能なボリュームを一覧表" -"示します。" - -msgid "" -"To view your changes reload your dashboard. If necessary go back and modify " -"your CSS file as appropriate." -msgstr "" -"ダッシュボードを再読み込みして、変更を表示します。必要があれば、上に戻って " -"CSS ファイルを適切に変更してください。" - -msgid "" -"Tool used for maintaining Address Resolution Protocol packet filter rules in " -"the Linux kernel firewall modules. Used along with iptables, ebtables, and " -"ip6tables in Compute to provide firewall services for VMs." -msgstr "" -"Linux カーネルファイアウォールモジュールで ARP パケットフィルタールールを維持" -"するために使用されるツール。仮想マシン向けのファイアウォールサービスを提供す" -"るために、Compute で iptables、ebtables、ip6tables と一緒に使用される。" - -msgid "" -"Tool used in OpenStack development to ensure correctly ordered testing of " -"changes in parallel." -msgstr "" -"OpenStack 開発で使用されているツールで、変更のテストを正しい順番を保証しなが" -"ら並列に実行する。" - -msgid "Tool used to run jobs automatically for OpenStack development." -msgstr "OpenStack 開発のためにジョブを自動的に実行するために使用されるツール。" - -msgid "" -"Tool used to set up, maintain, and inspect the tables of IPv6 packet filter " -"rules in the Linux kernel. In OpenStack Compute, ip6tables is used along " -"with arptables, ebtables, and iptables to create firewalls for both nodes " -"and VMs." -msgstr "" -"Linux カーネルで IPv6 パケットフィルタールールのテーブルをセットアップ、維" -"持、検査するために使用されるツール。OpenStack Compute では、ノードと仮想マシ" -"ンの両方に対するファイアウォールを作成するために、ip6tables が arptables、" -"ebtables、iptables と一緒に使用される。" - -msgid "Torpedo" -msgstr "Torpedo" - -msgid "Transfer a volume" -msgstr "ボリュームの譲渡" - -msgid "TripleO" -msgstr "TripleO" - -msgid "Troubleshoot image creation" -msgstr "イメージ作成のトラブルシューティング" - -msgid "" -"Type of Compute scheduler that evenly distributes instances among available " -"hosts." -msgstr "" -"利用可能なホスト間でインスタンスを平等に分散させる、Compute のスケジューラー" -"の一種。" - -msgid "UUID for each Compute or Image service VM flavor or instance type." -msgstr "" -"Compute や Image service の仮想マシンの各フレーバーやインスタンスタイプの " -"UUID。" - -msgid "UUID used by Image service to uniquely identify each VM image." -msgstr "" -"各仮想マシンイメージを一意に識別するために Image service により使用される " -"UUID。" - -msgid "Ubuntu" -msgstr "Ubuntu" - -msgid "" -"Under the Compute distributed scheduler, this is calculated by looking at " -"the capabilities of each host relative to the flavor of the VM instance " -"being requested." -msgstr "" -"Compute の分散スケジューラーにおいて、要求している仮想マシンインスタンスのフ" -"レーバーに関連する、各ホストのキャパシティーにより計算される。" - -msgid "" -"Unique ID applied to each storage volume under the Block Storage control." -msgstr "" -"Block Storage の管理下にある各ストレージボリュームに適用される一意な ID。" - -msgid "Unique ID assigned to each Networking VIF." -msgstr "各 Networking VIF に割り当てられる一意な ID。" - -msgid "" -"Unique ID assigned to each Object Storage request; used for debugging and " -"tracing." -msgstr "" -"各 Object Storage リクエストに割り当てられる一意な ID。デバッグや追跡に使用さ" -"れる。" - -msgid "Unique ID assigned to each guest VM instance." -msgstr "各ゲスト仮想マシンインスタンスに割り当てられる一意な ID。" - -msgid "" -"Unique ID assigned to each network segment within Networking. Same as " -"network UUID." -msgstr "" -"Networking 内の各ネットワークセグメントに割り当てられる一意な ID。ネットワー" -"ク UUID と同じ。" - -msgid "Unique ID assigned to each request sent to Compute." -msgstr "Compute に送られる各リクエストに割り振られる一意な ID。" - -msgid "" -"Unique ID assigned to each service that is available in the Identity service " -"catalog." -msgstr "" -"Identity のサービスカタログで利用可能な各サービスに割り当てられる一意な ID。" - -msgid "" -"Unique ID assigned to each tenant within the Identity service. The project " -"IDs map to the tenant IDs." -msgstr "" -"Identity 内で各テナントに割り当てられる一意な ID。プロジェクト ID は、テナン" -"ト ID に対応付けられる。" - -msgid "Unique ID for a Networking VIF or vNIC in the form of a UUID." -msgstr "Networking 仮想インターフェースや vNIC 用の一意な UUID 形式の ID。" - -msgid "Unique ID for a Networking network segment." -msgstr "Networking ネットワークセグメントの一意な ID。" - -msgid "Unique ID for a Networking port." -msgstr "Networking ポートのユニーク ID。" - -msgid "" -"Unique numeric ID associated with each user in Identity, conceptually " -"similar to a Linux or LDAP UID." -msgstr "" -"Identity で各ユーザーと関連付けられた一意な数値 ID。概念として、Linux や " -"LDAP の UID を同じ。" - -msgid "Uniquely ID for an Object Storage object." -msgstr "Object Storage オブジェクト用の一意な ID。" - -msgid "Upgrade or remove clients" -msgstr "クライアントの更新と削除" - -msgid "" -"Upload your new images to ``/usr/share/openstack-dashboard/" -"openstack_dashboard/static/dashboard/img/``." -msgstr "" -"新しいイメージを ``/usr/share/openstack-dashboard/openstack_dashboard/static/" -"dashboard/img/`` にアップロードします。" - -msgid "" -"Use OpenStack Compute to host and manage cloud computing systems. OpenStack " -"Compute is a major part of an Infrastructure-as-a-Service (:term:`IaaS`) " -"system. The main modules are implemented in Python." -msgstr "" -"OpenStack Compute を使用して、クラウドコンピューティングシステムを動かし管理" -"を行います。OpenStack Compute は、Infrastructure-as-a-Service (:term:`IaaS`) " -"システムの主要な要素です。主要なモジュールは Python で実装されています。" - -msgid "Use cases include:" -msgstr "以下のユースケースがあります。" - -msgid "" -"Use pip to install the OpenStack clients on a Linux, Mac OS X, or Microsoft " -"Windows system. It is easy to use and ensures that you get the latest " -"version of the client from the `Python Package Index `__. Also, pip enables you to update or remove a package." -msgstr "" -"Linux、Mac OS X、Microsoft Windows システムに OpenStack クライアントをインス" -"トールする場合、pip を使用します。これは使いやすく、きちんと最新版のクライア" -"ントを `Python Package Index `__ から取得しま" -"す。また、パッケージを更新したり削除したりできます。" - -msgid "" -"Use the :command:`trove list` command to get the ID of the instance, " -"followed by the :command:`trove show` command to get the IP address of it." -msgstr "" -":command:`trove list` コマンドを使用して、インスタンスの ID を取得します。続" -"けて、:command:`trove show` コマンドを使用して、その IP アドレスを取得しま" -"す。" - -msgid "" -"Use the :command:`trove-manage` command to import images and offer them to " -"tenants." -msgstr "" -":command:`trove-manage` コマンドを使用して、イメージをインポートして、それら" -"をテナントに提供します。" - -msgid "" -"Used along with an EC2 access key when communicating with the Compute EC2 " -"API; used to digitally sign each request." -msgstr "" -"Compute EC2 API 利用時に EC2 アクセスキーと一緒に使用される。各リクエストを電" -"子署名するために使用される。" - -msgid "Used along with an EC2 secret key to access the Compute EC2 API." -msgstr "Compute EC2 API にアクセスするために、EC2 秘密鍵と一緒に使用される。" - -msgid "Used along with an EKI to create an EMI." -msgstr "EMI を作成するために、EKI と一緒に使用する。" - -msgid "Used along with an ERI to create an EMI." -msgstr "EMI を作成するために、ERI と一緒に使用する。" - -msgid "" -"Used along with arptables and ebtables, iptables create firewalls in " -"Compute. iptables are the tables provided by the Linux kernel firewall " -"(implemented as different Netfilter modules) and the chains and rules it " -"stores. Different kernel modules and programs are currently used for " -"different protocols: iptables applies to IPv4, ip6tables to IPv6, arptables " -"to ARP, and ebtables to Ethernet frames. Requires root privilege to " -"manipulate." -msgstr "" -"Compute においてファイアウォールを作成する、arptables、ebtables、iptables と" -"一緒に使用される。iptables は、Linux カーネルファイアウォール (別の " -"Netfilter モジュール) により提供されるテーブル、それを保存するチェインやルー" -"ル。複数のカーネルモジュールとプログラムが、別々のプロトコルに対して使用され" -"る。iptables は IPv4、ip6tables は IPv6、arptables は ARP、ebtables は " -"Ethernet フレームに適用される。操作すうために root 権限が必要になる。" - -msgid "" -"Used by Image service to obtain images on the local host rather than re-" -"downloading them from the image server each time one is requested." -msgstr "" -"イメージが要求されたときに、イメージサーバーから再ダウンロードするのではな" -"く、ローカルホストにあるイメージを取得するために、Image service により使用さ" -"れる。" - -msgid "" -"Used by Object Storage devices to determine which storage devices are " -"suitable for the job. Devices are weighted by size." -msgstr "" -"どのストレージデバイスがジョブに対して適切であるかを判断するために、Object " -"Storage デバイスにより使用される。デバイスは容量により重み付けされる。" - -msgid "" -"Used by Object Storage to determine the location of an object in the ring. " -"Maps objects to partitions." -msgstr "" -"リング内でオブジェクトの場所を判断するために、Object Storage により使用され" -"る。オブジェクトをパーティションに対応付ける。" - -msgid "" -"Used by Object Storage to determine which partition data should reside on." -msgstr "" -"パーティションデータが配置されるべき場所を決めるために、Object Storage により" -"使用される。" - -msgid "Used by Object Storage to push object replicas." -msgstr "" -"オブジェクトの複製をプッシュするために Object Storage により使用される。" - -msgid "" -"Used by most OpenStack Networking installations to route information between " -"the neutron-server and various agents. Also acts as a database to store " -"networking state for particular plug-ins." -msgstr "" -"ほとんどの OpenStack Networking のインストール環境において、neutron-server と" -"各種エージェント間での情報の転送に使用されます。プラグインによってはネット" -"ワーク状態を保存するのにも使用されます。" - -msgid "Used for adding additional persistent storage to a virtual machine (VM)" -msgstr "永続的なストレージを仮想マシン(VM)へ追加するために使用される" - -msgid "Used for providing file shares to a virtual machine" -msgstr "ファイル共有を仮想マシンに提供するために使用される" - -msgid "Used for storing virtual machine images and data" -msgstr "仮想マシンイメージとデータを保存するために使用される" - -msgid "" -"Used to mark Object Storage objects that have been deleted; ensures that the " -"object is not updated on another node after it has been deleted." -msgstr "" -"Object Storage のオブジェクトが削除済みであることを示す印をつけるために使用さ" -"れる。オブジェクトの削除後、他のノードにおいて更新されないことを保証する。" - -msgid "" -"Used to restrict communications between hosts and/or nodes, implemented in " -"Compute using iptables, arptables, ip6tables, and ebtables." -msgstr "" -"ホストノード間の通信を制限する為に使用される。iptables, arptables, " -"ip6tables, ebtables を使用して Compute により実装される。" - -msgid "Used to track segments of a large object within Object Storage." -msgstr "Object Storage 内で大きなオブジェクトを管理するために使用される。" - -msgid "User Mode Linux (UML)" -msgstr "User Mode Linux (UML)" - -msgid "User can specify `volume type` when creating a volume." -msgstr "ユーザーは、ボリューム作成時に `volume type` を指定できます。" - -msgid "User-defined alphanumeric string in Compute; the name of a project." -msgstr "Compute でユーザーが定義した英数文字列。プロジェクトの名前。" - -msgid "User-friendly UI for ad-hoc analytics queries based on Hive or Pig." -msgstr "" -"Hive や Pig をベースにした、アドホックな分析クエリー向けのユーザーフレンド" -"リーな UI。" - -msgid "" -"Users of Object Storage interact with the service through the proxy server, " -"which in turn looks up the location of the requested data within the ring " -"and returns the results to the user." -msgstr "" -"Object Storage のユーザーは、リング中にあるリクエストされたデータの場所を参照" -"してユーザに結果を返すプロキシサーバーを介して、このサービスに通信する。" - -msgid "" -"Utilization of unused compute power from general purpose OpenStack IaaS " -"cloud." -msgstr "" -"汎用的な OpenStack IaaS クラウドの使用されていないコンピュートリソースの活用" - -msgid "VIF UUID" -msgstr "VIF UUID" - -msgid "VIP" -msgstr "仮想 IP" - -msgid "VLAN manager" -msgstr "VLAN マネージャー" - -msgid "VLAN network" -msgstr "VLAN ネットワーク" - -msgid "VM Remote Control (VMRC)" -msgstr "VM Remote Control (VMRC)" - -msgid "VM disk (VMDK)" -msgstr "VM disk (VMDK)" - -msgid "VM image" -msgstr "仮想マシンイメージ" - -msgid "VM image container format supported by Image service." -msgstr "Image service によりサポートされる仮想マシンイメージのコンテナー形式。" - -msgid "VMware API" -msgstr "VMware API" - -msgid "VMware NSX Neutron plug-in" -msgstr "VMware NSX Neutron プラグイン" - -msgid "VMwareAPI for VMware" -msgstr "VMware 向けの VMwareAPI" - -msgid "VNC proxy" -msgstr "VNC プロキシ" - -msgid "VXLAN" -msgstr "VXLAN" - -msgid "Various periodic processes" -msgstr "さまざまな定期タスク" - -msgid "" -"Various repository types are supported including normal file systems, Object " -"Storage, RADOS block devices, HTTP, and Amazon S3. Note that some " -"repositories will only support read-only usage." -msgstr "" -"さまざまな種類のリポジトリーがサポートされており、通常のファイルシステム、" -"Object Storage、RADOS ブロックデバイス、HTTP、Amazon S3 などがあります。いく" -"つかのリポジトリーでは、読み込み専用の利用だけがサポートされている点に注意し" -"てください。" - -msgid "" -"Verify that transfer list is now empty and that the volume is again " -"available for transfer:" -msgstr "転送一覧が空になり、ボリュームが転送に使用できることを確認します。" - -msgid "View pending transfers:" -msgstr " 待機中の転送を確認します。" - -msgid "Virtual Central Processing Unit (vCPU)" -msgstr "仮想CPU (vCPU)" - -msgid "Virtual Disk Image (VDI)" -msgstr "Virtual Disk Image (VDI)" - -msgid "Virtual Hard Disk (VHD)" -msgstr "Virtual Hard Disk (VHD)" - -msgid "Virtual Network Computing (VNC)" -msgstr "Virtual Network Computing (VNC)" - -msgid "Virtual Network InterFace (VIF)" -msgstr "仮想ネットワークインタフェース (VIF)" - -msgid "" -"Virtual network type that uses neither VLANs nor tunnels to segregate tenant " -"traffic. Each flat network typically requires a separate underlying physical " -"interface defined by bridge mappings. However, a flat network can contain " -"multiple subnets." -msgstr "" -"テナントの通信を分離するために、VLAN もトンネルも使用しない仮想ネットワーク方" -"式。各フラットネットワークは、一般的にブリッジマッピングにより定義された、" -"バックエンドに専用の物理インターフェースを必要とする。しかしながら、フラット" -"ネットワークは複数のサブネットを含められる。" - -msgid "VirtualBox" -msgstr "VirtualBox" - -msgid "VirtualE1000" -msgstr "VirtualE1000" - -msgid "VirtualPCNet32" -msgstr "VirtualPCNet32" - -msgid "VirtualVmxnet" -msgstr "VirtualVmxnet" - -msgid "" -"Virtualization API library used by OpenStack to interact with many of its " -"supported hypervisors." -msgstr "" -"多くのサポートハイパーバイザーと通信するために、OpenStack により使用される仮" -"想化 API ライブラリー。" - -msgid "Volume API" -msgstr "Volume API" - -msgid "" -"Volume that does not save the changes made to it and reverts to its original " -"state when the current user relinquishes control." -msgstr "" -"変更が保存されないボリューム。現在のユーザーが制御を解放したとき、元の状態に" -"戻される。" - -msgid "WSGI middleware" -msgstr "WSGI ミドルウェア" - -msgid "" -"WSGI middleware component of Object Storage that serves container data as a " -"static web page." -msgstr "" -"コンテナーデータを静的 Web ページとして取り扱う Object Storage の WSGI ミドル" -"ウェアコンポーネント。" - -msgid "What's next" -msgstr "次の手順" - -msgid "" -"When installing OpenStack Identity service, you must register each service " -"in your OpenStack installation. Identity service can then track which " -"OpenStack services are installed, and where they are located on the network." -msgstr "" -"OpenStack Identity をインストールする際に、OpenStack の各サービスを登録する必" -"要があります。これにより、Identity サービスは、OpenStack のサービスがインス" -"トールされていること、それらがネットワーク上のどこにあるかを把握できます。" - -msgid "" -"When the volume is fully deleted, it disappears from the list of volumes:" -msgstr "" -"ボリュームが完全に削除されると、ボリュームの一覧には表示されなくなります。" - -msgid "" -"When viewing a list of images, you can also use ``grep`` to filter the list, " -"as follows:" -msgstr "" -"以下のように、イメージ一覧の確認の際に、``grep`` を使用して一覧をフィルタリン" -"グすることができます。 " - -msgid "" -"When you are prompted for an OpenStack password, enter the password for the " -"user who downloaded the ``PROJECT-openrc.sh`` file." -msgstr "" -"OpenStack パスワードの入力プロンプトが表示されたとき、``PROJECT-openrc.sh`` " -"ファイルをダウンロードしたユーザーのパスワードを入力します。" - -msgid "" -"When you run OpenStack client commands, you can override some environment " -"variable settings by using the options that are listed at the end of the " -"``help`` output of the various client commands. For example, you can " -"override the ``OS_PASSWORD`` setting in the ``PROJECT-openrc.sh`` file by " -"specifying a password on a :command:`openstack` command, as follows:" -msgstr "" -"OpenStack クライアントコマンドを実行するとき、さまざまなクライアントコマンド" -"の ``help`` 出力の最後に一覧表示されるオプションを使用することにより、いくつ" -"かの環境変数を上書きできます。たとえば以下のように、:command:`openstack` コ" -"マンドにパスワードを指定することにより、``PROJECT-openrc.sh`` ファイルで設定" -"した ``OS_PASSWORD`` 設定を上書きできます。" - -msgid "" -"When you source the file, environment variables are set for your current " -"shell. The variables enable the OpenStack client commands to communicate " -"with the OpenStack services that run in the cloud." -msgstr "" -"このファイルを読み込むと、環境変数が現在のシェルに対して設定されます。この変" -"数により OpenStack クライアントコマンドがクラウドで実行中の OpenStack サービ" -"スとやりとりできるようになります。" - -msgid "" -"When you use OpenStack with VMware vCenter Server, you need to specify the " -"``vmware_disktype`` and ``vmware_adaptertype`` properties with :command:" -"`glance image-create`. Also, we recommend that you set the ``hypervisor_type=" -"\"vmware\"`` property. For more information, see `Images with VMware vSphere " -"`_ in the OpenStack Configuration Reference." -msgstr "" -"OpenStack を VMware vCenter Server と一緒に使用している場合、:command:" -"`glance image-create` を用いて ``vmware_disktype`` と ``vmware_adaptertype`` " -"プロパティーを指定する必要があります。また、``hypervisor_type=\"vmware\"`` プ" -"ロパティーを設定することを推奨します。詳細は *OpenStack Configuration " -"Reference* の `Images with VMware vSphere `_ を参照してください。" - -msgid "Where ``PASSWORD`` is your password." -msgstr "ここで ``PASSWORD`` は、お使いのパスワードです。" - -msgid "While logged in as the volume donor, list the available volumes:" -msgstr "" -"ボリュームの譲渡元としてログインし、利用可能なボリュームを一覧表示します。" - -msgid "" -"While the ``auth_key`` property is visible in the output of ``cinder " -"transfer-create VOLUME_ID``, it will not be available in subsequent ``cinder " -"transfer-show TRANSFER_ID`` commands." -msgstr "" -"``auth_key`` プロパティーが ``cinder transfer-create VOLUME_ID`` の出力に含ま" -"れますが、後続の ``cinder transfer-show TRANSFER_ID`` コマンドではこれを利用" -"できません。" - -msgid "" -"While you can install the ``keystone`` client for interacting with version " -"2.0 of the service's API, you should use the ``openstack`` client for all " -"Identity interactions. Identity API v2 is deprecated in the Mitaka release." -msgstr "" -"Identity API バージョン 2.0 を利用するために ``keystone`` クライアントをイン" -"ストールできますが、すべての Identity 処理に ``openstack`` クライアントを使用" -"すべきです。Identity API v2 は、Mitaka リリースで非推奨になっています。" - -msgid "" -"Within RabbitMQ and Compute, it is the messaging interface that is used by " -"the scheduler service to receive capability messages from the compute, " -"volume, and network nodes." -msgstr "" -"RabbitMQ と Compute の中で、コンピュートノード、ボリュームノード、ネットワー" -"クノードからのメッセージを受け付ける機能のために、スケジューラーサービスによ" -"り使用されるメッセージングインターフェース。" - -msgid "Work in progress - expected for the Mitaka release" -msgstr "Mitaka リリースに向けて開発中" - -msgid "Workflow service" -msgstr "Workflow サービス" - -msgid "Workflow service for OpenStack cloud." -msgstr "OpenStack クラウド向け Workflow サービス。" - -msgid "XFS" -msgstr "XFS" - -msgid "Xen" -msgstr "Xen" - -msgid "Xen API" -msgstr "Xen API" - -msgid "Xen Cloud Platform (XCP)" -msgstr "Xen Cloud Platform (XCP)" - -msgid "Xen Storage Manager Volume Driver" -msgstr "Xen Storage Manager Volume Driver" - -msgid "" -"Xen is a hypervisor using a microkernel design, providing services that " -"allow multiple computer operating systems to execute on the same computer " -"hardware concurrently." -msgstr "" -"Xen は、マイクロカーネル設計を使用したハイパーバイザー。複数のコンピューター" -"オペレーティングシステムを同じコンピューターハードウェアで同時に実行できるよ" -"うになるサービスを提供する。" - -msgid "XenAPI for XenServer/XCP" -msgstr "XenServer/XCP 向けの XenAPI" - -msgid "XenServer" -msgstr "XenServer" - -msgid "" -"You are not prompted for the password with this method. The password lives " -"in clear text format in the ``PROJECT-openrc.sh`` file. Restrict the " -"permissions on this file to avoid security problems. You can also remove the " -"``OS_PASSWORD`` variable from the file, and use the :option:`--password` " -"parameter with OpenStack client commands instead." -msgstr "" -"この方法を用いると、パスワードを聞かれません。パスワードは ``PROJECT-openrc." -"sh`` ファイルに平文で記載されています。セキュリティー問題を避けるために、この" -"ファイルのパーミッションを制限します。このファイルから ``OS_PASSWORD`` 変数を" -"削除し、OpenStack クライアントコマンドで :option:`--password` パラメーターを" -"使用することもできます。" - -msgid "You can install pip and use it to manage client installation:" -msgstr "" -"pip をインストールして、インストールするクライアントを管理することができま" -"す。" - -msgid "" -"You can run the commands from the command line, or include the commands " -"within scripts to automate tasks. If you provide OpenStack credentials, such " -"as your user name and password, you can run these commands on any computer." -msgstr "" -"コマンドライン、または作業を自動化するスクリプトの中からコマンドを実行できま" -"す。ユーザー名とパスワードのような、OpenStack のクレデンシャルを指定すると、" -"どのコンピューターでもこれらのコマンドを実行できます。" - -msgid "" -"You can show basic statistics on resource usage for hosts and instances." -msgstr "" -"ホストやインスタンスのリソース使用状況に関する基本的な統計を表示できます。" - -msgid "" -"You can transfer a volume from one owner to another by using the :command:" -"`cinder transfer*` commands. The volume donor, or original owner, creates a " -"transfer request and sends the created transfer ID and authorization key to " -"the volume recipient. The volume recipient, or new owner, accepts the " -"transfer by using the ID and key." -msgstr "" -":command:`cinder transfer*` コマンドを使用して、別の所有者に転送することがで" -"きます。ボリュームドナーまたは元の所有者が転送要求を作成し、作成した転送 ID " -"と認証キーをボリュームの転送先に送信します。ボリュームの転送先または新規所有" -"者が ID とキーを使用して転送を確定します。 " - -msgid "" -"You can upload images through the ``glance`` client or the Image service " -"API. You can use the ``nova`` client for the image management. The latter " -"provides mechanisms to list and delete images, set and delete image " -"metadata, and create images of a running instance or snapshot and backup " -"types." -msgstr "" -"``glance`` クライアントまたは Image service API 経由でイメージをアップロード" -"できます。イメージ管理のために ``nova`` クライアントを使用できます。後者は、" -"イメージの一覧表示や削除、イメージのメタデータの設定や削除、実行中のインスタ" -"ンスのスナップショットやバックアップの作成、などの機能を提供します。" - -msgid "" -"You must set the ``OS_CACERT`` environment variable when using the https " -"protocol in the ``OS_AUTH_URL`` environment setting because the verification " -"process for the TLS (HTTPS) server certificate uses the one indicated in the " -"environment. This certificate will be used when verifying the TLS (HTTPS) " -"server certificate." -msgstr "" -"``OS_AUTH_URL`` 環境設定に HTTPS プロトコルを使用する場合、TLS (HTTPS) のサー" -"バー証明書を検証するプロセスが、環境において指定されたものを使用するため、" -"``OS_CACERT`` 環境変数を使用する必要があります。TLS (HTTPS) サーバー証明書を" -"検証するとき、この証明書が使用されます。" - -msgid "ZeroMQ" -msgstr "ZeroMQ" - -msgid "Zuul" -msgstr "Zuul" - -msgid "" -"`API Complete Reference (HTML) `__" -msgstr "" -"`API Complete Reference (HTML) `__" - -msgid "" -"`API Complete Reference (PDF) `__" -msgstr "" -"`API Complete Reference (PDF) `__" - -msgid "`API Guide `__" -msgstr "`API ガイド `__" - -msgid "`Administrator Guide `__" -msgstr "`Administrator Guide `__" - -msgid "`Architecture Design Guide `__" -msgstr "" -"`アーキテクチャー設計ガイド `__" - -msgid "" -"`Block Storage `__" -msgstr "" -"`Block Storage `__" - -msgid "" -"`Bugs: Application catalog (murano) `__" -msgstr "" -"`バグ: Application catalog (murano) `__" - -msgid "" -"`Bugs: Bare metal service (ironic) `__" -msgstr "" -"`バグ: Bare metal サービス (ironic) `__" - -msgid "" -"`Bugs: Clustering service (senlin) `__" -msgstr "" -"`バグ: Clustering サービス (senlin) `__" - -msgid "" -"`Bugs: Containers service (magnum) `__" -msgstr "" -"`バグ: Containers サービス (magnum) `__" - -msgid "" -"`Bugs: DNS service (designate) `__" -msgstr "" -"`バグ: DNS サービス (designate) `__" - -msgid "" -"`Bugs: Data processing service (sahara) `__" -msgstr "" -"`バグ: Data processing サービス (sahara) `__" - -msgid "`Bugs: Database service (trove) `__" -msgstr "`バグ: Database サービス (trove) `__" - -msgid "`Bugs: Deployment service (fuel) `__" -msgstr "`バグ: Deployment サービス (fuel) `__" - -msgid "" -"`Bugs: Key Manager Service (barbican) `__" -msgstr "" -"`バグ: Key Manager サービス (barbican) `__" - -msgid "`Bugs: Messaging service (zaqar) `__" -msgstr "" -"`バグ: Messaging サービス (zaqar) `__" - -msgid "`Bugs: Monitoring (monasca) `__" -msgstr "`バグ: Monitoring (monasca) `__" - -msgid "" -"`Bugs: OpenStack API Documentation (developer.openstack.org) `__" -msgstr "" -"`バグ: OpenStack API Documentation (developer.openstack.org) `__" - -msgid "" -"`Bugs: OpenStack Block Storage (cinder) `__" -msgstr "" -"`バグ: OpenStack Block Storage (cinder) `__" - -msgid "`Bugs: OpenStack Compute (nova) `__" -msgstr "`バグ: OpenStack Compute (nova) `__" - -msgid "" -"`Bugs: OpenStack Dashboard (horizon) `__" -msgstr "" -"`バグ: OpenStack Dashboard (horizon) `__" - -msgid "" -"`Bugs: OpenStack Documentation (docs.openstack.org) `__" -msgstr "" -"`バグ: OpenStack Documentation (docs.openstack.org) `__" - -msgid "" -"`Bugs: OpenStack Identity (keystone) `__" -msgstr "" -"`バグ: OpenStack Identity (keystone) `__" - -msgid "" -"`Bugs: OpenStack Image service (glance) `__" -msgstr "" -"`バグ: OpenStack Image サービス (glance) `__" - -msgid "" -"`Bugs: OpenStack Networking (neutron) `__" -msgstr "" -"`バグ: OpenStack Networking (neutron) `__" - -msgid "" -"`Bugs: OpenStack Object Storage (swift) `__" -msgstr "" -"`バグ: OpenStack Object Storage (swift) `__" - -msgid "`Bugs: Orchestration (heat) `__" -msgstr "`バグ: Orchestration (heat) `__" - -msgid "`Bugs: Rating (cloudkitty) `__" -msgstr "`バグ: Rating (cloudkitty) `__" - -msgid "" -"`Bugs: Shared file systems (manila) `__" -msgstr "" -"`バグ: Shared file systems (manila) `__" - -msgid "" -"`Bugs: Telemetry (ceilometer) `__" -msgstr "" -"`バグ: Telemetry (ceilometer) `__" - -msgid "`Bugs: Telemetry v3 (gnocchi) `__" -msgstr "`バグ: Telemetry v3 (gnocchi) `__" - -msgid "" -"`Bugs: Workflow service (mistral) `__" -msgstr "" -"`バグ: Workflow サービス (mistral) `__" - -msgid "`Ceilometer `__" -msgstr "`Ceilometer `__" - -msgid "`Cinder `__" -msgstr "`Cinder `__" - -msgid "" -"`Command-Line Interface Reference `__" -msgstr "" -"`Command-Line Interface Reference `__" - -msgid "" -"`Compute `__" -msgstr "" -"`Compute `__" - -msgid "" -"`Configuration Reference `__" -msgstr "" -"`Configuration Reference `__" - -msgid "" -"`Dashboard `__" -msgstr "" -"`Dashboard `__" - -msgid "" -"`Data processing service `__" -msgstr "" -"`Data processing service `__" - -msgid "" -"`Database service `__" -msgstr "" -"`Database service `__" - -msgid "" -"`Documentation Contributor Guide `__" -msgstr "" -"`Documentation Contributor Guide `__" - -msgid "`End User Guide `__" -msgstr "`エンドユーザーガイド `__" - -msgid "`Glance `__" -msgstr "`Glance `__" - -msgid "`Heat `__" -msgstr "`Heat `__" - -msgid "`High Availability Guide `__" -msgstr "`高可用性ガイド `__" - -msgid "`Horizon `__" -msgstr "`Horizon `__" - -msgid "" -"`Identity service `__" -msgstr "" -"`Identity service `__" - -msgid "" -"`Image service `__" -msgstr "" -"`Image service `__" - -msgid "" -"`Installation Guide for Red Hat Enterprise Linux 7 and CentOS 7 `__" -msgstr "" -"`インストールガイド Red Hat Enterprise Linux 7, CentOS 7 `__" - -msgid "" -"`Installation Guide for Ubuntu 14.04 (LTS) `__" -msgstr "" -"`インストールガイド Ubuntu 14.04 (LTS) 版 `__" - -msgid "" -"`Installation Guide for openSUSE Leap 42.1 and SUSE Linux Enterprise Server " -"12 SP1 `__" -msgstr "" -"`インストールガイド openSUSE Leap 42.1、SUSE Linux Enterprise Server 12 SP1 " -"版 `__" - -msgid "`Keystone `__" -msgstr "`Keystone `__" - -msgid "" -"`Networking `__" -msgstr "" -"`Networking `__" - -msgid "" -"`Networking Guide `__" -msgstr "" -"`ネットワークガイド `__" - -msgid "`Neutron `__" -msgstr "`Neutron `__" - -msgid "`Nova `__" -msgstr "`Nova `__" - -msgid "" -"`Object Storage `__" -msgstr "" -"`Object Storage `__" - -msgid "`Operations Guide `__" -msgstr "`運用ガイド `__" - -msgid "" -"`Orchestration `__" -msgstr "" -"`Orchestration `__" - -msgid "`Sahara `__" -msgstr "`Sahara `__" - -msgid "`Security Guide `__" -msgstr "" -"`セキュリティーガイド `__" - -msgid "`Swift `__" -msgstr "`Swift `__" - -msgid "" -"`Telemetry `__" -msgstr "" -"`Telemetry `__" - -msgid "`Trove `__" -msgstr "`Trove `__" - -msgid "" -"`Virtual Machine Image Guide `__" -msgstr "" -"`仮想マシンイメージガイド `__" - -msgid "``--checksum CHECKSUM``" -msgstr "``--checksum CHECKSUM``" - -msgid "``--container-format CONTAINER_FORMAT``" -msgstr "``--container-format CONTAINER_FORMAT``" - -msgid "``--copy-from IMAGE_URL``" -msgstr "``--copy-from IMAGE_URL``" - -msgid "``--disk-format DISK_FORMAT``" -msgstr "``--disk-format DISK_FORMAT``" - -msgid "``--file FILE``" -msgstr "``--file FILE``" - -msgid "``--human-readable``" -msgstr "``--human-readable``" - -msgid "``--is-protected [True|False]``" -msgstr "``--is-protected [True|False]``" - -msgid "``--is-public [True|False]``" -msgstr "``--is-public [True|False]``" - -msgid "``--location IMAGE_URL``" -msgstr "``--location IMAGE_URL``" - -msgid "``--min-disk DISK_GB``" -msgstr "``--min-disk DISK_GB``" - -msgid "``--min-ram DISK_RAM``" -msgstr "``--min-ram DISK_RAM``" - -msgid "``--name NAME``" -msgstr "``--name NAME``" - -msgid "``--owner TENANT_ID --size SIZE``" -msgstr "``--owner TENANT_ID --size SIZE``" - -msgid "``--property KEY=VALUE``" -msgstr "``--property KEY=VALUE``" - -msgid "``--purge-props``" -msgstr "``--purge-props``" - -msgid "``IDENTIFIER``" -msgstr "``IDENTIFIER``" - -msgid "``VOLUME_ID``" -msgstr "``VOLUME_ID``" - -msgid "``barbican`` - Key Manager Service API" -msgstr "``barbican`` - Key Manager Service API" - -msgid "``ceilometer`` - Telemetry API" -msgstr "``ceilometer`` - Telemetry API" - -msgid "``cinder`` - Block Storage API and extensions" -msgstr "``cinder`` - Block Storage API および拡張" - -msgid "``cloudkitty`` - Rating service API" -msgstr "``cloudkitty`` - Rating service API" - -msgid "``designate`` - DNS service API" -msgstr "``designate`` - DNS service API" - -msgid "" -"``filesystem_store_metadata_file = filePath``, where filePath points to a " -"JSON file that defines the mount point for OpenStack images on your system " -"and a unique ID. For example:" -msgstr "" -"``filesystem_store_metadata_file = filePath``。filePath は、お使いのシステム" -"の OpenStack イメージのマウントポイントを定義する JSON ファイルおよび一意の " -"ID を参照するようにします。例: " - -msgid "``fuel`` - Deployment service API" -msgstr "``fuel`` - Deployment service API" - -msgid "``glance`` - Image service API" -msgstr "``glance`` - Image service API" - -msgid "``gnocchi`` - Telemetry API v3" -msgstr "``gnocchi`` - Telemetry API v3" - -msgid "``heat-api-cfn`` component" -msgstr "``heat-api-cfn`` コンポーネント" - -msgid "``heat-api`` component" -msgstr "``heat-api`` コンポーネント" - -msgid "``heat-engine``" -msgstr "``heat-engine``" - -msgid "``heat`` - Orchestration API" -msgstr "``heat`` - Orchestration API" - -msgid "``heat`` command-line client" -msgstr "``heat`` コマンドラインクライアント" - -msgid "``keystone`` - Identity service API and extensions" -msgstr "``keystone`` - Identity サービス API および拡張" - -msgid "``magnum`` - Containers service API" -msgstr "``magnum`` - Containers service API" - -msgid "``manila`` - Shared file systems API" -msgstr "``manila`` - Shared file systems API" - -msgid "``mistral`` - Workflow service API" -msgstr "``mistral`` - Workflow service API" - -msgid "``monasca`` - Monitoring API" -msgstr "``monasca`` - Monitoring API" - -msgid "``murano`` - Application catalog API" -msgstr "``murano`` - Application catalog API" - -msgid "``neutron`` - Networking API" -msgstr "``neutron`` - Networking API" - -msgid "``nova-api-metadata`` service" -msgstr "``nova-api-metadata`` サービス" - -msgid "``nova-api`` service" -msgstr "``nova-api`` サービス" - -msgid "``nova-cert`` daemon" -msgstr "``nova-cert`` デーモン" - -msgid "``nova-cert`` module" -msgstr "``nova-cert`` モジュール" - -msgid "``nova-compute`` service" -msgstr "``nova-compute`` サービス" - -msgid "``nova-conductor`` module" -msgstr "``nova-conductor`` モジュール" - -msgid "``nova-consoleauth`` daemon" -msgstr "``nova-consoleauth`` デーモン" - -msgid "``nova-network worker`` daemon" -msgstr "``nova-network worker`` デーモン" - -msgid "``nova-novncproxy`` daemon" -msgstr "``nova-novncproxy`` デーモン" - -msgid "``nova-scheduler`` service" -msgstr "``nova-scheduler`` サービス" - -msgid "``nova-spicehtml5proxy`` daemon" -msgstr "``nova-spicehtml5proxy`` デーモン" - -msgid "``nova-xvpvncproxy`` daemon" -msgstr "``nova-xvpvncproxy`` デーモン" - -msgid "``nova`` - Compute API and extensions" -msgstr "``nova`` - Compute API および拡張" - -msgid "``nova`` client" -msgstr "``nova`` クライアント" - -msgid "``python-troveclient`` command-line client" -msgstr "``python-troveclient`` コマンドラインクライアント" - -msgid "``sahara`` - Data Processing API" -msgstr "``sahara`` - Data Processing API" - -msgid "``senlin`` - Clustering service API" -msgstr "``senlin`` - Clustering service API" - -msgid "``show_multiple_locations = True``" -msgstr "``show_multiple_locations = True``" - -msgid "``swift`` - Object Storage API" -msgstr "``swift`` - Object Storage API" - -msgid "``trove-api`` component" -msgstr "``trove-api`` コンポーネント" - -msgid "``trove-conductor`` service" -msgstr "``trove-conductor`` サービス" - -msgid "``trove-guestagent`` service" -msgstr "``trove-guestagent`` サービス" - -msgid "``trove-taskmanager`` service" -msgstr "``trove-taskmanager`` サービス" - -msgid "``trove`` - Database service API" -msgstr "``trove`` - Database service API" - -msgid "absolute limit" -msgstr "絶対制限" - -msgid "access control list" -msgstr "アクセス制御リスト" - -msgid "access key" -msgstr "アクセスキー" - -msgid "account" -msgstr "アカウント" - -msgid "account auditor" -msgstr "account auditor" - -msgid "account database" -msgstr "アカウントデータベース" - -msgid "account reaper" -msgstr "account reaper" - -msgid "account server" -msgstr "account server" - -msgid "account service" -msgstr "account service" - -msgid "accounting" -msgstr "アカウンティング" - -msgid "active/active configuration" -msgstr "アクティブ/アクティブ設定" - -msgid "active/passive configuration" -msgstr "アクティブ/パッシブ設定" - -msgid "address pool" -msgstr "アドレスプール" - -msgid "admin API" -msgstr "管理 API" - -msgid "admin server" -msgstr "管理サーバー" - -msgid "administrator" -msgstr "管理者" - -msgid "alert" -msgstr "アラート" - -msgid "allocate" -msgstr "確保" - -msgid "applet" -msgstr "アプレット" - -msgid "application server" -msgstr "アプリケーションサーバー" - -msgid "arptables" -msgstr "arptables" - -msgid "ask.openstack.org" -msgstr "ask.openstack.org" - -msgid "associate" -msgstr "割り当て" - -msgid "attach" -msgstr "接続" - -msgid "attachment (network)" -msgstr "アタッチ(ネットワーク)" - -msgid "auditing" -msgstr "監査" - -msgid "auditor" -msgstr "auditor" - -msgid "auth node" -msgstr "認可ノード" - -msgid "authentication" -msgstr "認証" - -msgid "authentication token" -msgstr "認証トークン" - -msgid "authorization" -msgstr "認可" - -msgid "authorization node" -msgstr "認可ノード" - -msgid "auto declare" -msgstr "自動宣言" - -msgid "availability zone" -msgstr "アベイラビリティゾーン" - -msgid "back end" -msgstr "バックエンド" - -msgid "back-end catalog" -msgstr "バックエンドカタログ" - -msgid "back-end store" -msgstr "バックエンドストア" - -msgid "backup restore and disaster recovery as a service" -msgstr "backup restore and disaster recovery as a service" - -msgid "bandwidth" -msgstr "帯域" - -msgid "barbican" -msgstr "barbican" - -msgid "bare" -msgstr "bare" - -msgid "base image" -msgstr "ベースイメージ" - -msgid "binary" -msgstr "バイナリ" - -msgid "bit" -msgstr "ビット" - -msgid "bits per second (BPS)" -msgstr "bps" - -msgid "block device" -msgstr "ブロックデバイス" - -msgid "block migration" -msgstr "ブロックマイグレーション" - -msgid "bootable disk image" -msgstr "ブータブルディスクイメージ" - -msgid "browser" -msgstr "ブラウザー" - -msgid "builder file" -msgstr "ビルダーファイル" - -msgid "bursting" -msgstr "超過利用" - -msgid "button class" -msgstr "ボタンクラス" - -msgid "byte" -msgstr "バイト" - -msgid "cache pruner" -msgstr "cache pruner" - -msgid "capability" -msgstr "キャパシティ" - -msgid "capacity cache" -msgstr "capacity cache" - -msgid "capacity updater" -msgstr "capacity updater" - -msgid "catalog" -msgstr "カタログ" - -msgid "catalog service" -msgstr "カタログサービス" - -msgid "ceilometer" -msgstr "ceilometer" - -msgid "cell" -msgstr "セル" - -msgid "cell forwarding" -msgstr "セルフォワーディング" - -msgid "cell manager" -msgstr "セルマネージャー" - -msgid "certificate authority" -msgstr "認証局" - -msgid "chance scheduler" -msgstr "チャンススケジューラー" - -msgid "changes since" -msgstr "changes since" - -msgid "child cell" -msgstr "子セル" - -msgid "cinder" -msgstr "cinder" - -msgid "cinder-api" -msgstr "cinder-api" - -msgid "cinder-backup daemon" -msgstr "cinder-backup デーモン" - -msgid "cinder-scheduler daemon" -msgstr "cinder-scheduler デーモン" - -msgid "cinder-volume" -msgstr "cinder-volume" - -msgid "cinder_img_volume_type" -msgstr "cinder_img_volume_type" - -msgid "cinder_img_volume_type (via glance image metadata)" -msgstr "cinder_img_volume_type (Image サービスのメタデータ経由)" - -msgid "cloud architect" -msgstr "クラウドアーキテクト" - -msgid "cloud computing" -msgstr "クラウドコンピューティング" - -msgid "cloud controller" -msgstr "クラウドコントローラー" - -msgid "cloud controller node" -msgstr "クラウドコントローラーノード" - -msgid "cloud-init" -msgstr "cloud-init" - -msgid "cloudadmin" -msgstr "cloudadmin" - -msgid "cloudkitty" -msgstr "cloudkitty" - -msgid "cloudpipe" -msgstr "cloudpipe" - -msgid "cloudpipe image" -msgstr "cloudpipe イメージ" - -msgid "command filter" -msgstr "コマンドフィルター" - -msgid "community project" -msgstr "コミュニティープロジェクト" - -msgid "compression" -msgstr "圧縮" - -msgid "compute controller" -msgstr "コンピュートコントローラー" - -msgid "compute host" -msgstr "コンピュートホスト" - -msgid "compute node" -msgstr "コンピュートノード" - -msgid "compute worker" -msgstr "コンピュートワーカー" - -msgid "concatenated object" -msgstr "連結オブジェクト" - -msgid "conductor" -msgstr "コンダクター" - -msgid "congress" -msgstr "congress" - -msgid "consistency window" -msgstr "一貫性ウインドウ" - -msgid "console log" -msgstr "コンソールログ" - -msgid "container" -msgstr "コンテナー" - -msgid "container auditor" -msgstr "コンテナーオーディター" - -msgid "container database" -msgstr "コンテナーデータベース" - -msgid "container format" -msgstr "コンテナーフォーマット" - -msgid "container server" -msgstr "コンテナーサーバー" - -msgid "container service" -msgstr "コンテナーサービス" - -msgid "content delivery network (CDN)" -msgstr "コンテンツ配信ネットワーク (CDN)" - -msgid "controller node" -msgstr "コントローラーノード" - -msgid "core API" -msgstr "コアAPI" - -msgid "core service" -msgstr "コアサービス" - -msgid "cost" -msgstr "コスト" - -msgid "credentials" -msgstr "クレデンシャル" - -msgid "current workload" -msgstr "カレントワークロード" - -msgid "customer" -msgstr "カスタマー" - -msgid "customization module" -msgstr "カスタムモジュール" - -msgid "daemon" -msgstr "デーモン" - -msgid "data encryption" -msgstr "データ暗号化" - -msgid "data store" -msgstr "データストア" - -msgid "database ID" -msgstr "データベース ID" - -msgid "database replicator" -msgstr "データベースレプリケーター" - -msgid "deallocate" -msgstr "割り当て解除" - -msgid "deduplication" -msgstr "重複排除" - -msgid "default panel" -msgstr "デフォルトパネル" - -msgid "default tenant" -msgstr "デフォルトテナント" - -msgid "default token" -msgstr "デフォルトトークン" - -msgid "default_volume_type (via cinder.conf)" -msgstr "default_volume_type (cinder.conf 経由)" - -msgid "delayed delete" -msgstr "遅延削除" - -msgid "delivery mode" -msgstr "デリバリーモード" - -msgid "denial of service (DoS)" -msgstr "サービス妨害 (DoS)" - -msgid "deprecated auth" -msgstr "非推奨認証" - -msgid "designate" -msgstr "designate" - -msgid "developer" -msgstr "developer" - -msgid "device ID" -msgstr "デバイス ID" - -msgid "device weight" -msgstr "デバイスウェイト" - -msgid "direct consumer" -msgstr "直接使用者" - -msgid "direct exchange" -msgstr "直接交換" - -msgid "direct publisher" -msgstr "直接発行者" - -msgid "disassociate" -msgstr "関連付け解除" - -msgid "disk encryption" -msgstr "ディスク暗号化" - -msgid "disk format" -msgstr "ディスクフォーマット" - -msgid "dispersion" -msgstr "dispersion" - -msgid "distributed virtual router (DVR)" -msgstr "分散仮想ルーター (DVR)" - -msgid "dnsmasq" -msgstr "dnsmasq" - -msgid "domain" -msgstr "ドメイン" - -msgid "download" -msgstr "ダウンロード" - -msgid "durable exchange" -msgstr "永続交換" - -msgid "durable queue" -msgstr "永続キュー" - -msgid "e1000" -msgstr "e1000" - -msgid "east-west traffic" -msgstr "イースト・ウエスト通信" - -msgid "ebtables" -msgstr "ebtables" - -msgid "encapsulation" -msgstr "カプセル化" - -msgid "encryption" -msgstr "暗号化" - -msgid "endpoint" -msgstr "エンドポイント" - -msgid "endpoint registry" -msgstr "エンドポイントレジストリ" - -msgid "endpoint template" -msgstr "エンドポイントテンプレート" - -msgid "entity" -msgstr "エンティティー" - -msgid "ephemeral image" -msgstr "一時イメージ" - -msgid "ephemeral volume" -msgstr "一時ボリューム" - -msgid "euca2ools" -msgstr "euca2ools" - -msgid "evacuate" -msgstr "退避" - -msgid "exchange" -msgstr "交換" - -msgid "exchange type" -msgstr "交換種別" - -msgid "exclusive queue" -msgstr "排他キュー" - -msgid "extended attributes (xattr)" -msgstr "拡張属性 (xattr)" - -msgid "extension" -msgstr "エクステンション" - -msgid "external network" -msgstr "外部ネットワーク" - -msgid "extra specs" -msgstr "拡張仕様" - -msgid "fan-out exchange" -msgstr "ファンアウト交換" - -msgid "federated identity" -msgstr "連合認証" - -msgid "fill-first scheduler" -msgstr "充填優先スケジューラー" - -msgid "filter" -msgstr "フィルター" - -msgid "firewall" -msgstr "ファイアウォール" - -msgid "fixed IP address" -msgstr "fixed IP アドレス" - -msgid "flat mode injection" -msgstr "フラットモードインジェクション" - -msgid "flat network" -msgstr "フラットネットワーク" - -msgid "flavor" -msgstr "フレーバー" - -msgid "flavor ID" -msgstr "フレーバー ID" - -msgid "floating IP address" -msgstr "Floating IP アドレス" - -msgid "freezer" -msgstr "freezer" - -msgid "front end" -msgstr "フロントエンド" - -msgid "fuel" -msgstr "fuel" - -msgid "gateway" -msgstr "ゲートウェイ" - -msgid "generic receive offload (GRO)" -msgstr "generic receive offload (GRO)" - -msgid "generic routing encapsulation (GRE)" -msgstr "generic routing encapsulation (GRE)" - -msgid "glance" -msgstr "glance" - -msgid "glance API server" -msgstr "glance API サーバー" - -msgid "glance registry" -msgstr "Glance レジストリ" - -msgid "glance-api" -msgstr "glance-api" - -msgid "glance-registry" -msgstr "glance-registry" - -msgid "global endpoint template" -msgstr "グローバルエンドポイントテンプレート" - -msgid "gnocchi" -msgstr "gnocchi" - -msgid "golden image" -msgstr "ゴールデンイメージ" - -msgid "guest OS" -msgstr "ゲスト OS" - -msgid "handover" -msgstr "handover" - -msgid "hard reboot" -msgstr "ハードリブート" - -msgid "health monitor" -msgstr "ヘルスモニター" - -msgid "heat" -msgstr "heat" - -msgid "high availability (HA)" -msgstr "高可用性" - -msgid "horizon" -msgstr "Horizon" - -msgid "horizon plug-in" -msgstr "horizon プラグイン" - -msgid "host" -msgstr "ホスト" - -msgid "host aggregate" -msgstr "ホストアグリゲート" - -msgid "hybrid cloud" -msgstr "ハイブリッドクラウド" - -msgid "hyperlink" -msgstr "ハイパーリンク" - -msgid "hypervisor" -msgstr "ハイパーバイザー" - -msgid "hypervisor pool" -msgstr "ハイパーバイザープール" - -msgid "iSCSI" -msgstr "iSCSI" - -msgid "" -"iSCSI Qualified Name (IQN) is the format most commonly used for iSCSI names, " -"which uniquely identify nodes in an iSCSI network. All IQNs follow the " -"pattern iqn.yyyy-mm.domain:identifier, where 'yyyy-mm' is the year and month " -"in which the domain was registered, 'domain' is the reversed domain name of " -"the issuing organization, and 'identifier' is an optional string which makes " -"each IQN under the same domain unique. For example, 'iqn.2015-10.org." -"openstack.408ae959bce1'." -msgstr "" -"iSCSI Qualified Name (IQN) は iSCSI の名前として最も広く使われている形式で、 " -"iSCSI ネットワークで一意にノードを識別するのに使われます。すべての IQN は " -"iqn.yyyy-mm.domain:identifier という形式です。ここで、 'yyyy-mm' はそのドメイ" -"ンが登録された年と月、 'domain' は発行組織の登録されたドメイン名、 " -"'identifier' は同じドメイン内の各 IQN 番号を一意なものにするためのオプション" -"文字列です。例えば 'iqn.2015-10.org.openstack.408ae959bce1'" - -msgid "ide" -msgstr "ide" - -msgid "identity provider" -msgstr "識別情報プロバイダー" - -msgid "image" -msgstr "イメージ" - -msgid "image ID" -msgstr "イメージ ID" - -msgid "image UUID" -msgstr "イメージ UUID" - -msgid "image cache" -msgstr "イメージキャッシュ" - -msgid "image membership" -msgstr "イメージメンバーシップ" - -msgid "image owner" -msgstr "イメージ所有者" - -msgid "image registry" -msgstr "イメージレジストリー" - -msgid "image status" -msgstr "イメージ状態" - -msgid "image store" -msgstr "イメージストア" - -msgid "incubated project" -msgstr "インキュベートプロジェクト" - -msgid "ingress filtering" -msgstr "イングレスフィルタリング" - -msgid "injection" -msgstr "インジェクション" - -msgid "instance" -msgstr "インスタンス" - -msgid "instance ID" -msgstr "インスタンス ID" - -msgid "instance UUID" -msgstr "インスタンス UUID" - -msgid "instance state" -msgstr "インスタンス状態" - -msgid "instance tunnels network" -msgstr "インスタンストンネルネットワーク" - -msgid "instance type" -msgstr "インスタンスタイプ" - -msgid "instance type ID" -msgstr "インスタンスタイプ ID" - -msgid "interface" -msgstr "インターフェース" - -msgid "interface ID" -msgstr "インターフェース ID" - -msgid "ip6tables" -msgstr "ip6tables" - -msgid "ipset" -msgstr "ipset" - -msgid "iptables" -msgstr "iptables" - -msgid "ironic" -msgstr "ironic" - -msgid "itsec" -msgstr "itsec" - -msgid "jumbo frame" -msgstr "ジャンボフレーム" - -msgid "kernel-based VM (KVM)" -msgstr "kernel-based VM (KVM)" - -msgid "keystone" -msgstr "keystone" - -msgid "large object" -msgstr "ラージオブジェクト" - -msgid "libvirt" -msgstr "libvirt" - -msgid "libvirt for KVM or QEMU" -msgstr "KVM/QEMU 向けの libvirt" - -msgid "libvirt\\_type setting" -msgstr "libvirt\\_type 設定" - -msgid "live migration" -msgstr "ライブマイグレーション" - -msgid "load balancer" -msgstr "負荷分散装置" - -msgid "load balancing" -msgstr "負荷分散" - -msgid "magnum" -msgstr "magnum" - -msgid "management API" -msgstr "マネジメント API" - -msgid "management network" -msgstr "管理ネットワーク" - -msgid "manager" -msgstr "マネージャー" - -msgid "manifest" -msgstr "マニフェスト" - -msgid "manifest object" -msgstr "マニフェストオブジェクト" - -msgid "manila" -msgstr "manila" - -msgid "manila-api" -msgstr "manila-api" - -msgid "manila-scheduler" -msgstr "manila-scheduler" - -msgid "manila-share" -msgstr "manila-share" - -msgid "maximum transmission unit (MTU)" -msgstr "最大転送単位 (MTU)" - -msgid "mechanism driver" -msgstr "メカニズムドライバー" - -msgid "melange" -msgstr "melange" - -msgid "membership" -msgstr "メンバーシップ" - -msgid "membership list" -msgstr "メンバーシップリスト" - -msgid "memcached" -msgstr "memcached" - -msgid "memory overcommit" -msgstr "メモリーオーバーコミット" - -msgid "message broker" -msgstr "メッセージブローカー" - -msgid "message bus" -msgstr "メッセージバス" - -msgid "message queue" -msgstr "メッセージキュー" - -msgid "migration" -msgstr "マイグレーション" - -msgid "mistral" -msgstr "mistral" - -msgid "monasca" -msgstr "monasca" - -msgid "multi-factor authentication" -msgstr "多要素認証" - -msgid "multi-host" -msgstr "マルチホスト" - -msgid "multinic" -msgstr "マルチ NIC" - -msgid "murano" -msgstr "murano" - -msgid "ne2k\\_pci" -msgstr "ne2k\\_pci" - -msgid "netadmin" -msgstr "netadmin" - -msgid "netfront" -msgstr "netfront" - -msgid "network" -msgstr "Network" - -msgid "network ID" -msgstr "ネットワーク ID" - -msgid "network UUID" -msgstr "ネットワーク UUID" - -msgid "network controller" -msgstr "ネットワークコントローラー" - -msgid "network manager" -msgstr "ネットワークマネージャー" - -msgid "network namespace" -msgstr "ネットワーク名前空間" - -msgid "network node" -msgstr "ネットワークノード" - -msgid "network segment" -msgstr "ネットワークセグメント" - -msgid "network worker" -msgstr "ネットワークワーカー" - -msgid "neutron" -msgstr "neutron" - -msgid "neutron API" -msgstr "neutron API" - -msgid "neutron manager" -msgstr "neutron マネージャー" - -msgid "neutron plug-in" -msgstr "neutron プラグイン" - -msgid "neutron-server" -msgstr "neutron-server" - -msgid "node" -msgstr "node" - -msgid "non-durable exchange" -msgstr "非永続交換" - -msgid "non-durable queue" -msgstr "非永続キュー" - -msgid "non-persistent volume" -msgstr "非永続ボリューム" - -msgid "north-south traffic" -msgstr "ノース・サウス通信" - -msgid "nova" -msgstr "nova" - -msgid "nova-network" -msgstr "nova-network" - -msgid "object" -msgstr "オブジェクト" - -msgid "object auditor" -msgstr "オブジェクトオーディター" - -msgid "object expiration" -msgstr "オブジェクト有効期限" - -msgid "object hash" -msgstr "オブジェクトハッシュ" - -msgid "object path hash" -msgstr "オブジェクトパスハッシュ" - -msgid "object replicator" -msgstr "オブジェクトレプリケーター" - -msgid "object server" -msgstr "オブジェクトサーバー" - -msgid "object versioning" -msgstr "オブジェクトバージョニング" - -msgid "openSUSE" -msgstr "openSUSE" - -msgid "operator" -msgstr "運用者" - -msgid "optional service" -msgstr "オプションサービス" - -msgid "orphan" -msgstr "orphan" - -msgid "parent cell" -msgstr "親セル" - -msgid "partition" -msgstr "パーティション" - -msgid "partition index" -msgstr "パーティションインデックス" - -msgid "partition shift value" -msgstr "パーティションシフト値" - -msgid "path MTU discovery (PMTUD)" -msgstr "path MTU discovery (PMTUD)" - -msgid "pause" -msgstr "一時停止" - -msgid "pcnet" -msgstr "pcnet" - -msgid "persistent message" -msgstr "永続メッセージ" - -msgid "persistent volume" -msgstr "永続ボリューム" - -msgid "personality file" -msgstr "パーソナリティーファイル" - -msgid "pip package" -msgstr "pip パッケージ" - -msgid "plug-in" -msgstr "プラグイン" - -msgid "policy service" -msgstr "ポリシーサービス" - -msgid "pool" -msgstr "プール" - -msgid "pool member" -msgstr "プールメンバー" - -msgid "port" -msgstr "ポート" - -msgid "port UUID" -msgstr "ポート UUID" - -msgid "preseed" -msgstr "preseed" - -msgid "private IP address" -msgstr "プライベート IP アドレス" - -msgid "private image" -msgstr "プライベートイメージ" - -msgid "private network" -msgstr "プライベートネットワーク" - -msgid "project" -msgstr "プロジェクト" - -msgid "project ID" -msgstr "プロジェクト ID" - -msgid "project VPN" -msgstr "プロジェクト VPN" - -msgid "promiscuous mode" -msgstr "プロミスキャスモード" - -msgid "protected property" -msgstr "保護プロパティー" - -msgid "provider" -msgstr "プロバイダー" - -msgid "proxy node" -msgstr "プロキシノード" - -msgid "proxy server" -msgstr "プロキシサーバー" - -msgid "public API" -msgstr "パブリック API" - -msgid "public IP address" -msgstr "パブリック IP アドレス" - -msgid "public image" -msgstr "パブリックイメージ" - -msgid "public key authentication" -msgstr "公開鍵認証" - -msgid "public network" -msgstr "パブリックネットワーク" - -msgid "python-barbicanclient" -msgstr "python-barbicanclient" - -msgid "python-ceilometerclient" -msgstr "python-ceilometerclient" - -msgid "python-cinderclient" -msgstr "python-cinderclient" - -msgid "python-cloudkittyclient" -msgstr "python-cloudkittyclient" - -msgid "python-fuelclient" -msgstr "python-fuelclient" - -msgid "python-glanceclient" -msgstr "python-glanceclient" - -msgid "python-gnocchiclient" -msgstr "python-gnocchiclient" - -msgid "python-heatclient" -msgstr "python-heatclient" - -msgid "python-keystoneclient" -msgstr "python-keystoneclient" - -msgid "python-magnumclient" -msgstr "python-magnumclient" - -msgid "python-manilaclient" -msgstr "python-manilaclient" - -msgid "python-mistralclient" -msgstr "python-mistralclient" - -msgid "python-monascaclient" -msgstr "python-monascaclient" - -msgid "python-muranoclient" -msgstr "python-muranoclient" - -msgid "python-neutronclient" -msgstr "python-neutronclient" - -msgid "python-novaclient" -msgstr "python-novaclient" - -msgid "python-saharaclient" -msgstr "python-saharaclient" - -msgid "python-senlinclient" -msgstr "python-senlinclient" - -msgid "python-swiftclient" -msgstr "python-swiftclient" - -msgid "python-troveclient" -msgstr "python-troveclient" - -msgid "qemu or kvm" -msgstr "qemu または kvm" - -msgid "quarantine" -msgstr "隔離" - -msgid "quota" -msgstr "クォータ" - -msgid "radvd" -msgstr "radvd" - -msgid "rally" -msgstr "rally" - -msgid "rate limit" -msgstr "レートリミット" - -msgid "raw" -msgstr "raw" - -msgid "rebalance" -msgstr "リバランス" - -msgid "reboot" -msgstr "リブート" - -msgid "rebuild" -msgstr "リビルド" - -msgid "record" -msgstr "レコード" - -msgid "record ID" -msgstr "レコード ID" - -msgid "reference architecture" -msgstr "リファレンスアーキテクチャー" - -msgid "region" -msgstr "リージョン" - -msgid "registry" -msgstr "レジストリー" - -msgid "registry server" -msgstr "レジストリサーバー" - -msgid "replica" -msgstr "レプリカ" - -msgid "replica count" -msgstr "レプリカ数" - -msgid "replication" -msgstr "レプリケーション" - -msgid "replicator" -msgstr "レプリケーター" - -msgid "request ID" -msgstr "リクエスト ID" - -msgid "rescue image" -msgstr "レスキューイメージ" - -msgid "resize" -msgstr "リサイズ" - -msgid "ring" -msgstr "リング" - -msgid "ring builder" -msgstr "リングビルダー" - -msgid "role" -msgstr "ロール" - -msgid "role ID" -msgstr "ロール ID" - -msgid "rootwrap" -msgstr "rootwrap" - -msgid "round-robin scheduler" -msgstr "ラウンドロビンスケジューラー" - -msgid "router" -msgstr "ルーター" - -msgid "routing key" -msgstr "ルーティングキー" - -msgid "rsync" -msgstr "rsync" - -msgid "rtl8139" -msgstr "rtl8139" - -msgid "sahara" -msgstr "sahara" - -msgid "scheduler manager" -msgstr "スケジューラーマネージャー" - -msgid "scoped token" -msgstr "スコープ付きトークン" - -msgid "scrubber" -msgstr "スクラバー" - -msgid "scsi" -msgstr "scsi" - -msgid "secret key" -msgstr "シークレットキー" - -msgid "secure shell (SSH)" -msgstr "secure shell (SSH)" - -msgid "security group" -msgstr "セキュリティーグループ" - -msgid "segmented object" -msgstr "分割オブジェクト" - -msgid "self-service" -msgstr "セルフサービス" - -msgid "senlin" -msgstr "senlin" - -msgid "server" -msgstr "サーバー" - -msgid "server UUID" -msgstr "サーバー UUID" - -msgid "server image" -msgstr "サーバーイメージ" - -msgid "service" -msgstr "サービス" - -msgid "service ID" -msgstr "サービス ID" - -msgid "service catalog" -msgstr "サービスカタログ" - -msgid "service provider" -msgstr "サービスプロバイダー" - -msgid "service registration" -msgstr "サービス登録" - -msgid "service tenant" -msgstr "サービステナント" - -msgid "service token" -msgstr "サービストークン" - -msgid "session back end" -msgstr "セッションバックエンド" - -msgid "session persistence" -msgstr "セッション持続性" - -msgid "session storage" -msgstr "セッションストレージ" - -msgid "setuptools package" -msgstr "setuptools パッケージ" - -msgid "share" -msgstr "共有" - -msgid "share network" -msgstr "ネットワーク共有 (share network)" - -msgid "shared IP address" -msgstr "共有 IP アドレス" - -msgid "shared IP group" -msgstr "共有 IP グループ" - -msgid "shared storage" -msgstr "共有ストレージ" - -msgid "snapshot" -msgstr "スナップショット" - -msgid "soft reboot" -msgstr "ソフトリブート" - -msgid "solum" -msgstr "solum" - -msgid "spread-first scheduler" -msgstr "分散優先スケジューラー" - -msgid "stack" -msgstr "スタック" - -msgid "static IP address" -msgstr "静的 IP アドレス" - -msgid "storage back end" -msgstr "ストレージバックエンド" - -msgid "storage manager" -msgstr "ストレージマネージャー" - -msgid "storage manager back end" -msgstr "ストレージマネージャーバックエンド" - -msgid "storage node" -msgstr "ストレージノード" - -msgid "storage services" -msgstr "ストレージサービス" - -msgid "strategy" -msgstr "ストラテジー" - -msgid "subdomain" -msgstr "サブドメイン" - -msgid "subnet" -msgstr "サブネット" - -msgid "suspend" -msgstr "休止" - -msgid "swap" -msgstr "スワップ" - -msgid "swauth" -msgstr "swauth" - -msgid "swift" -msgstr "swift" - -msgid "swift All in One (SAIO)" -msgstr "swift All in One (SAIO)" - -msgid "swift client" -msgstr "swift クライアント" - -msgid "swift middleware" -msgstr "swift ミドルウェア" - -msgid "swift proxy server" -msgstr "swift プロキシサーバー" - -msgid "swift storage node" -msgstr "swift ストレージノード" - -msgid "swift-init" -msgstr "swift-init" - -msgid "swift-recon" -msgstr "swift-recon" - -msgid "swift-ring-builder" -msgstr "swift-ring-builder" - -msgid "sync point" -msgstr "同期ポイント" - -msgid "sysadmin" -msgstr "sysadmin" - -msgid "system usage" -msgstr "システム使用状況" - -msgid "tenant" -msgstr "テナント" - -msgid "tenant ID" -msgstr "テナント ID" - -msgid "tenant endpoint" -msgstr "テナントエンドポイント" - -msgid "token" -msgstr "トークン" - -msgid "token services" -msgstr "トークンサービス" - -msgid "tombstone" -msgstr "tombstone" - -msgid "topic publisher" -msgstr "トピック発行者" - -msgid "transaction ID" -msgstr "トランザクション ID" - -msgid "transient" -msgstr "一時" - -msgid "transient exchange" -msgstr "一時交換" - -msgid "transient message" -msgstr "一時メッセージ" - -msgid "transient queue" -msgstr "一時キュー" - -msgid "trove" -msgstr "trove" - -msgid "unscoped token" -msgstr "スコープなしトークン" - -msgid "updater" -msgstr "アップデーター" - -msgid "user" -msgstr "ユーザー" - -msgid "user data" -msgstr "ユーザーデータ" - -msgid "vSphere" -msgstr "vSphere" - -msgid "virtio" -msgstr "virtio" - -msgid "virtual IP" -msgstr "仮想 IP" - -msgid "virtual VLAN" -msgstr "仮想 VLAN" - -msgid "virtual machine (VM)" -msgstr "仮想マシン (VM)" - -msgid "virtual network" -msgstr "仮想ネットワーク" - -msgid "virtual networking" -msgstr "仮想ネットワーク" - -msgid "virtual port" -msgstr "仮想ポート" - -msgid "virtual private network (VPN)" -msgstr "仮想プライベートネットワーク (VPN)" - -msgid "virtual server" -msgstr "仮想サーバー" - -msgid "virtual switch (vSwitch)" -msgstr "仮想スイッチ (vSwitch)" - -msgid "vmware" -msgstr "vmware" - -msgid "volume" -msgstr "ボリューム" - -msgid "volume ID" -msgstr "ボリューム ID" - -msgid "volume controller" -msgstr "ボリュームコントローラー" - -msgid "volume driver" -msgstr "ボリュームドライバー" - -msgid "volume manager" -msgstr "ボリュームマネージャー" - -msgid "volume node" -msgstr "ボリュームノード" - -msgid "volume plug-in" -msgstr "ボリュームプラグイン" - -msgid "volume worker" -msgstr "ボリュームワーカー" - -msgid "volume_type" -msgstr "volume_type" - -msgid "weight" -msgstr "ウェイト" - -msgid "weighted cost" -msgstr "重み付けコスト" - -msgid "weighting" -msgstr "重み付け" - -msgid "worker" -msgstr "ワーカー" - -msgid "x509 certificates." -msgstr "x509 証明書。" - -msgid "xen" -msgstr "xen" - -msgid "zaqar" -msgstr "zaqar" diff --git a/doc/ha-guide/setup.cfg b/doc/ha-guide/setup.cfg deleted file mode 100644 index 0d59cf74..00000000 --- a/doc/ha-guide/setup.cfg +++ /dev/null @@ -1,30 +0,0 @@ -[metadata] -name = openstackhaguide -summary = OpenStack High Availability Guide -author = OpenStack -author-email = openstack-docs@lists.openstack.org -home-page = http://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] -all_files = 1 -build-dir = build -source-dir = source - -[wheel] -universal = 1 - -[pbr] -warnerrors = True diff --git a/doc/ha-guide/setup.py b/doc/ha-guide/setup.py deleted file mode 100644 index 73637574..00000000 --- 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/common b/doc/ha-guide/source/common deleted file mode 120000 index dc879abe..00000000 --- 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-api.rst b/doc/ha-guide/source/compute-node-ha-api.rst deleted file mode 100644 index 78888ac6..00000000 --- a/doc/ha-guide/source/compute-node-ha-api.rst +++ /dev/null @@ -1,12 +0,0 @@ - -============================================ -Configure high availability on compute nodes -============================================ - -The `Installation Guide -`_ -gives instructions for installing multiple compute nodes. -To make them highly available, -you must configure the environment -to include multiple instances of the API -and other services. 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 9f0c98d2..00000000 --- a/doc/ha-guide/source/compute-node-ha.rst +++ /dev/null @@ -1,10 +0,0 @@ - -================================================== -Configuring the compute node for high availability -================================================== - -.. toctree:: - :maxdepth: 2 - - compute-node-ha-api.rst - diff --git a/doc/ha-guide/source/conf.py b/doc/ha-guide/source/conf.py deleted file mode 100644 index a0542988..00000000 --- a/doc/ha-guide/source/conf.py +++ /dev/null @@ -1,289 +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 = [] - -# 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. -project = u'High Availability Guide' -bug_tag = u'ha-guide' -copyright = u'2015, 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 = '0.0.1' -# The full version, including alpha/beta/rc tags. -release = '0.0.1' - -# A few variables have to be set for the log-a-bug feature. -# giturl: The location of conf.py on Git. Must be set manually. -# gitsha: The SHA checksum of the bug description. Automatically extracted from git log. -# bug_tag: Tag for categorizing the bug. Must be set manually. -# These variables are passed to the logabug code via html_context. -giturl = u'http://git.openstack.org/cgit/openstack/ha-guide/tree/doc/ha-guide/source' -git_cmd = "/usr/bin/git log | head -n1 | cut -f2 -d' '" -gitsha = os.popen(git_cmd).read().strip('\n') -html_context = {"gitsha": gitsha, "bug_tag": bug_tag, - "giturl": giturl} - -# 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 = [] - -# 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 = {} - -# 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 --------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # 'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - # 'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - # 'preamble': '', -} - -# 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-galera-config.rst b/doc/ha-guide/source/controller-ha-galera-config.rst deleted file mode 100644 index e3bc19fc..00000000 --- a/doc/ha-guide/source/controller-ha-galera-config.rst +++ /dev/null @@ -1,396 +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 four 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 the Configuration Reference. - - - -``iptables`` -^^^^^^^^^^^^^ - -For many Linux distributions, you can configure the firewall using -the ``iptables`` utility. To do so, complete the following steps: - -#. For each cluster node, run the following commands, replacing - ``NODE-IP-ADDRESS`` with the IP address of the cluster node - you want to open the firewall to: - - .. code-block:: console - - # iptables --append INPUT --in-interface eth0 \ - --protocol --match tcp --dport 3306 \ - --source NODE-IP-ADDRESS --jump ACCEPT - # iptables --append INPUT --in-interface eth0 \ - --protocol --match tcp --dport 4567 \ - --source NODE-IP-ADDRESS --jump ACCEPT - # iptables --append INPUT --in-interface eth0 \ - --protocol --match tcp --dport 4568 \ - --source NODE-IP-ADDRESS --jump ACCEPT - # iptables --append INPUT --in-interface eth0 \ - --protocol --match tcp --dport 4444 \ - --source NODE-IP-ADDRESS --jump ACCEPT - - In the event that you also want to configure multicast replication, - run this command as well: - - .. code-block:: console - - # iptables --append INPUT --in-interface eth0 \ - --protocol udp --match udp --dport 4567 \ - --source NODE-IP-ADDRESS --jump ACCEPT - - -#. Make the changes persistent. For servers that use ``init``, use - the :command:`save` command: - - .. code-block:: console - - # service save iptables - - For servers that use ``systemd``, you need to save the current packet - filtering to the path of the file that ``iptables`` reads when it starts. - This path can vary by distribution, but common locations are in the - ``/etc`` directory, such as: - - - ``/etc/sysconfig/iptables`` - - ``/etc/iptables/iptables.rules`` - - When you find the correct path, run the :command:`iptables-save` command: - - .. code-block:: console - - # iptables-save > /etc/sysconfig/iptables - -With the firewall configuration saved, whenever your OpenStack -database starts. - -``firewall-cmd`` -^^^^^^^^^^^^^^^^^ - -For many Linux distributions, you can configure the firewall using the -``firewall-cmd`` utility for FirewallD. To do so, complete the following -steps on each cluster node: - -#. Add the Galera Cluster service: - - .. code-block:: console - - # firewall-cmd --add-service=mysql - -#. For each instance of OpenStack database in your cluster, run the - following commands, replacing ``NODE-IP-ADDRESS`` with the IP address - of the cluster node you want to open the firewall to: - - .. code-block:: console - - # firewall-cmd --add-port=3306/tcp - # firewall-cmd --add-port=4567/tcp - # firewall-cmd --add-port=4568/tcp - # firewall-cmd --add-port=4444/tcp - - In the event that you also want to configure mutlicast replication, - run this command as well: - - .. code-block:: console - - # firewall-cmd --add-port=4567/udp - -#. To make this configuration persistent, repeat the above commands - with the :option:`--permanent` option. - - .. code-block:: console - - # firewall-cmd --add-service=mysql --permanent - # firewall-cmd --add-port=3306/tcp --permanent - # firewall-cmd --add-port=4567/tcp --permanent - # firewall-cmd --add-port=4568/tcp --permanent - # firewall-cmd --add-port=4444/tcp --permanent - # firewall-cmd --add-port=4567/udp --permanent - - -With the firewall configuration saved, whenever your OpenStack -database starts. - -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, complete -the following steps on each cluster node: - -#. Using the ``semanage`` utility, open the relevant ports: - - .. code-block:: console - - # semanage port -a -t mysqld_port_t -p tcp 3306 - # semanage port -a -t mysqld_port_t -p tcp 4567 - # semanage port -a -t mysqld_port_t -p tcp 4568 - # semanage port -a -t mysqld_port_t -p tcp 4444 - - In the event that you use multicast replication, you also need to - open ``4567`` to UDP traffic: - - .. code-block:: console - - # semanage port -a -t mysqld_port_t -p udp 4567 - -#. Set SELinux to allow the database server to run: - - .. code-block:: console - - # semanage permissive -a mysqld_t - -With these options set, SELinux now permits Galera Cluster to operate. - -.. 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 `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``, instead run this 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=0.0.0.0 - - # 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 server 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 to the localhost, - ``127.0.0.1``. Instead, bind it to ``0.0.0.0`` to ensure it listens on - all available interfaces. - - .. code-block:: ini - - bind-address=0.0.0.0 - -- 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 - - Bear in mind, while setting this parameter to ``1`` or ``2`` can improve - performance, 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. -There are five that you must define 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. You must 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 the documentation of these parameters, wsrep Provider option and status -variables available in Galera Cluster, see `Reference -`_. diff --git a/doc/ha-guide/source/controller-ha-galera-install.rst b/doc/ha-guide/source/controller-ha-galera-install.rst deleted file mode 100644 index 57e318bd..00000000 --- a/doc/ha-guide/source/controller-ha-galera-install.rst +++ /dev/null @@ -1,275 +0,0 @@ -Installation -============= - -Using Galera Cluster requires that you install two packages. The first is -the database server, which must include the wsrep API patch. The second -package is the Galera Replication Plugin, which enables the write-set -replication service functionality with the database server. - -There are three implementations of Galera Cluster: MySQL, MariaDB and -Percona XtraDB. For each implementation, there is a software repository that -provides binary packages for Debian, Red Hat, and SUSE-based Linux -distributions. - - -Enabling the repository -~~~~~~~~~~~~~~~~~~~~~~~~ - -Galera Cluster is not available in the base repositories of Linux -distributions. In order to install it with your package manage, you must -first enable the repository on your system. The particular methods for -doing so vary depending on which distribution you use for OpenStack and -which database server you want to use. - -Debian -------- - -For Debian and Debian-based distributions, such as Ubuntu, complete the -following steps: - -#. Add the GnuPG key for the database repository that you want to use. - - .. code-block:: console - - # apt-key adv --recv-keys --keyserver \ - keyserver.ubuntu.com BC19DDBA - - Note that the particular key value in this command varies depending on - which database software repository you want to use. - - +--------------------------+------------------------+ - | Database | Key | - +==========================+========================+ - | Galera Cluster for MySQL | ``BC19DDBA`` | - +--------------------------+------------------------+ - | MariaDB Galera Cluster | ``0xcbcb082a1bb943db`` | - +--------------------------+------------------------+ - | Percona XtraDB Cluster | ``1C4CBDCDCD2EFD2A`` | - +--------------------------+------------------------+ - -#. Add the repository to your sources list. Using your preferred text - editor, create a ``galera.list`` file in the ``/etc/apt/sources.list.d/`` - directory. For the contents of this file, use the lines that pertain to - the software repository you want to install: - - .. code-block:: linux-config - - # Galera Cluster for MySQL - deb http://releases.galeracluster.com/DISTRO RELEASE main - - # MariaDB Galera Cluster - deb http://mirror.jmu.edu/pub/mariadb/repo/VERSION/DISTRO RELEASE main - - # Percona XtraDB Cluster - deb http://repo.percona.com/apt RELEASE main - - For each entry: Replace all instances of ``DISTRO`` with the distribution - that you use, such as ``debian`` or ``ubuntu``. Replace all instances of - ``RELEASE`` with the release of that distribution, such as ``wheezy`` or - ``trusty``. Replace all instances of ``VERSION`` with the version of the - database server that you want to install, such as ``5.6`` or ``10.0``. - - .. note:: In the event that you do not know the release code-name for - your distribution, you can use the following command to - find it out: - - .. code-block:: console - - $ lsb_release -a - - -#. Update the local cache. - - .. code-block:: console - - # apt-get update - -Packages in the Galera Cluster Debian repository are now available for -installation on your system. - -Red Hat --------- - -For Red Hat Enterprise Linux and Red Hat-based Linux distributions, the -process is more straightforward. In this file, only enter the text for -the repository you want to use. - -- For Galera Cluster for MySQL, using your preferred text editor, create a - ``Galera.repo`` file in the ``/etc/yum.repos.d/`` directory. - - .. code-block:: linux-config - - [galera] - name = Galera Cluster for MySQL - baseurl = http://releases.galeracluster.com/DISTRO/RELEASE/ARCH - gpgkey = http://releases.galeracluster.com/GPG-KEY-galeracluster.com - gpgcheck = 1 - - Replace ``DISTRO`` with the name of the distribution you use, such as - ``centos`` or ``fedora``. Replace ``RELEASE`` with the release number, - such as ``7`` for CentOS 7. Replace ``ARCH`` with your system - architecture, such as ``x86_64`` - -- For MariaDB Galera Cluster, using your preferred text editor, create a - ``Galera.repo`` file in the ``/etc/yum.repos.d/`` directory. - - .. code-block:: linux-config - - [mariadb] - name = MariaDB Galera Cluster - baseurl = http://yum.mariadb.org/VERSION/PACKAGE - gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB - gpgcheck = 1 - - Replace ``VERSION`` with the version of MariaDB you want to install, such - as ``5.6`` or ``10.0``. Replace ``PACKAGE`` with the package type and - architecture, such as ``rhel6-amd64`` for Red Hat 6 on 64-bit - architecture. - -- For Percona XtraDB Cluster, run the following command: - - .. code-block:: console - - # yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm - - Bear in mind that the Percona repository only supports Red Hat Enterprise - Linux and CentOS distributions. - -Packages in the Galera Cluster Red Hat repository are not available for -installation on your system. - - - -SUSE ------ - -For SUSE Enterprise Linux and SUSE-based distributions, such as openSUSE -binary installations are only available for Galera Cluster for MySQL and -MariaDB Galera Cluster. - -#. Create a ``Galera.repo`` file in the local directory. For Galera Cluster - for MySQL, use the following content: - - .. code-block:: linux-config - - [galera] - name = Galera Cluster for MySQL - baseurl = http://releases.galeracluster.com/DISTRO/RELEASE - gpgkey = http://releases.galeracluster.com/GPG-KEY-galeracluster.com - gpgcheck = 1 - - In the text: Replace ``DISTRO`` with the name of the distribution you - use, such as ``sles`` or ``opensuse``. Replace ``RELEASE`` with the - version number of that distribution. - - For MariaDB Galera Cluster, instead use this content: - - .. code-block:: linux-config - - [mariadb] - name = MariaDB Galera Cluster - baseurl = http://yum.mariadb.org/VERSION/PACKAGE - gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB - gpgcheck = 1 - - In the text: Replace ``VERSION`` with the version of MariaDB you want to - install, such as ``5.6`` or ``10.0``. Replace package with the package - architecture you want to use, such as ``opensuse13-amd64``. - -#. Add the repository to your system: - - .. code-block:: console - - $ sudo zypper addrepo Galera.repo - -#. Refresh ``zypper``: - - .. code-block:: console - - $ sudo zypper refresh - -Packages in the Galera Cluster SUSE repository are now available for -installation. - - -Installing Galera Cluster -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -When you finish enabling the software repository for Galera Cluster, you can -install it using your package manager. The particular command and packages -you need to install varies depending on which database server you want to -install and which Linux distribution you use: - -Galera Cluster for MySQL: - - -- For Debian and Debian-based distributions, such as Ubuntu, run the - following command: - - .. code-block:: console - - # apt-get install galera-3 mysql-wsrep-5.6 - -- For Red Hat Enterprise Linux and Red Hat-based distributions, such as - Fedora or CentOS, instead run this command: - - .. code-block:: console - - # yum install galera-3 mysql-wsrep-5.6 - -- For SUSE Enterprise Linux Server and SUSE-based distributions, such as - openSUSE, instead run this command: - - .. code-block:: console - - # zypper install galera-3 mysql-wsrep-5.6 - - -MariaDB Galera Cluster: - -- For Debian and Debian-based distributions, such as Ubuntu, run the - following command: - - .. code-block:: console - - # apt-get install galera mariadb-galera-server - -- For Red Hat Enterprise Linux and Red Hat-based distributions, such as - Fedora or CentOS, instead run this command: - - .. code-block:: console - - # yum install galera MariaDB-Galera-server - -- For SUSE Enterprise Linux Server and SUSE-based distributions, such as - openSUSE, instead run this command: - - .. code-block:: console - - # zypper install galera MariaDB-Galera-server - - -Percona XtraDB Cluster: - - -- For Debian and Debian-based distributions, such as Ubuntu, run the - following command: - - .. code-block:: console - - # apt-get install percona-xtradb-cluster - -- For Red Hat Enterprise Linux and Red Hat-based distributions, such as - Fedora or CentOS, instead run this command: - - .. code-block:: console - - # yum install Percona-XtraDB-Cluster - -Galera Cluster is now installed on your system. You must repeat this -process for each controller node in your cluster. - -.. warning:: In the event that you already installed the standalone version - of MySQL, MariaDB or Percona XtraDB, this installation purges all - privileges on your OpenStack database server. You must reapply the - privileges listed in the installation guide. diff --git a/doc/ha-guide/source/controller-ha-galera-manage.rst b/doc/ha-guide/source/controller-ha-galera-manage.rst deleted file mode 100644 index 705ab6ac..00000000 --- a/doc/ha-guide/source/controller-ha-galera-manage.rst +++ /dev/null @@ -1,256 +0,0 @@ -Management -=========== - -When you finish the installation and configuration process on each -cluster node in your OpenStack database, you can initialize Galera Cluster. - -Before you attempt this, verify that you have the following ready: - -- Database hosts with Galera Cluster installed. You need 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 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. Instead they assume that one exists somewhere and -attempts to establish a connection with it. To create a Primary -Component, you must start one cluster node using the -``--wsrep-new-cluster`` option. You can do this using any cluster -node, it is not important which you choose. 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``, instead run this command: - - .. code-block:: console - - # systemctl start mysql --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``, instead run this command: - - .. code-block:: console - - # systemctl start mysql - -#. When you have all cluster nodes started, log into the database - client on one of them 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 and 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. - -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, 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 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 (in other words, the - Galera cluster is not ready to accept connections), 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 more in the following: - - - http://lists.openstack.org/pipermail/openstack-dev/2014-May/035264.html - - http://www.joinfu.com/ - -Of these options, the second one is highly recommended. Although Galera -supports active/active configurations, we recommend active/passive -(enforced by the load balancer) in order to avoid lock contention. - - - -Configuring HAProxy --------------------- - -If you use HAProxy for load-balancing client access to 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" - -#. 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:: ini - - 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``, instead run these commands: - - .. code-block:: console - - # systemctl daemon-reload - # systemctl enable xinetd - # systemctl start xinetd - - diff --git a/doc/ha-guide/source/controller-ha-galera.rst b/doc/ha-guide/source/controller-ha-galera.rst deleted file mode 100644 index e294839c..00000000 --- a/doc/ha-guide/source/controller-ha-galera.rst +++ /dev/null @@ -1,33 +0,0 @@ -Database (Galera Cluster) -========================== - -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. - - -.. toctree:: - :maxdepth: 2 - - controller-ha-galera-install - controller-ha-galera-config - controller-ha-galera-manage 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 8cc34602..00000000 --- a/doc/ha-guide/source/controller-ha-haproxy.rst +++ /dev/null @@ -1,229 +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 from the virtual IP (VIP) address and to terminate them as a list -of all instances of the corresponding service under load balancing, -such as any OpenStack API service. - -This makes the instances of HAProxy act independently and fail over -transparently together with the network endpoints (VIP addresses) -failover and, therefore, shares the same SLA. - -You can alternatively use a commercial load balancer, which is a hardware -or software. A hardware load balancer generally has good performance. - -For detailed instructions about installing HAProxy on your nodes, -see its `official documentation `_. - -.. note:: - - HAProxy should not be a single point of failure. - It is advisable to have multiple HAProxy instances running, - where the number of these instances is a small odd number like 3 or 5. - You need to ensure its availability by other means, - such as Keepalived or Pacemaker. - -The common practice is to locate an HAProxy instance on each OpenStack -controller in the environment. - -Once configured (see example file below), 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 p_api-ip then lb-haproxy-clone kind=Optional - $ pcs constraint colocation add p_api-ip with lb-haproxy-clone - -``crmsh`` - -TBA - -Example Config File -~~~~~~~~~~~~~~~~~~~ - -Here is an example ``/etc/haproxy/haproxy.cfg`` configuration file. -You need a copy of it on each controller node. - -.. note:: - - To implement any changes made to this you must restart the HAProxy service - -.. 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_cluster - bind :35357 - balance source - option tcpka - option httpchk - option tcplog - server controller1 10.0.0.12:35357 check inter 2000 rise 2 fall 5 - server controller2 10.0.0.13:35357 check inter 2000 rise 2 fall 5 - server controller3 10.0.0.14:35357 check inter 2000 rise 2 fall 5 - - listen keystone_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 - -[TODO: we need more commentary about the contents and format of this file] diff --git a/doc/ha-guide/source/controller-ha-keystone.rst b/doc/ha-guide/source/controller-ha-keystone.rst deleted file mode 100644 index 1abf1ea1..00000000 --- a/doc/ha-guide/source/controller-ha-keystone.rst +++ /dev/null @@ -1,147 +0,0 @@ - -============================ -Identity services (keystone) -============================ - -OpenStack Identity (keystone) -is the Identity service in OpenStack that is used by many services. -You should be familiar with -`OpenStack identity concepts -`_ -before proceeding. - -Making the OpenStack Identity service highly available -in active / passive mode involves: - -- :ref:`keystone-pacemaker` -- :ref:`keystone-config-identity` -- :ref:`keystone-services-config` - -.. _keystone-pacemaker: - -Add OpenStack Identity resource to Pacemaker -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -#. You must first download the OpenStack Identity resource to Pacemaker - by running the following commands: - - .. 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 * - -#. You can now add the Pacemaker configuration - for the OpenStack Identity resource - by running the :command:`crm configure` command - to connect to the Pacemaker cluster. - Add the following cluster resources: - - :: - - primitive 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" - - This configuration creates ``p_keystone``, - a resource for managing the OpenStack Identity service. - - :command:`crm configure` supports batch input - so you may 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. - -#. After you add these resources, - commit your configuration changes by entering :command:`commit` - from the :command:`crm configure` menu. - Pacemaker then starts the OpenStack Identity service - and its dependent resources on one of your nodes. - -.. _keystone-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.11 - public_bind_host = 10.0.0.11 - admin_bind_host = 10.0.0.11 - - 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 - ... - - -.. _keystone-services-config: - -Configure OpenStack services to use the highly available OpenStack Identity -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Your OpenStack services must now point -their OpenStack Identity configuration -to the highly available virtual cluster IP address -rather than point to the physical IP address -of an OpenStack Identity server as you would do -in a non-HA environment. - -#. For OpenStack Compute, for example, - if your OpenStack Identiy service IP address is 10.0.0.11, - use the following configuration in your :file:`api-paste.ini` file: - - .. code-block:: ini - - auth_host = 10.0.0.11 - -#. You also need to create the OpenStack Identity Endpoint - with this IP address. - - .. note:: - - If you are using both private and public IP addresses, - you should create two virtual IP addresses - and define your endpoint like this: - - .. 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 4592ea12..00000000 --- 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 only 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 only impacts 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 71a8477f..00000000 --- a/doc/ha-guide/source/controller-ha-pacemaker.rst +++ /dev/null @@ -1,633 +0,0 @@ -======================= -Pacemaker cluster stack -======================= - -`Pacemaker `_ cluster stack is the state-of-the-art -high availability and load balancing stack for the Linux platform. -Pacemaker is useful to make OpenStack infrastructure highly available. -Also, 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 (need or want to) understand the -applications it manages. Instead, it relies on resource agents (RAs), -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, -you must first 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**. - - Since the cluster is a single administrative domain, it is generally - accepted to use the same password on all nodes. - - .. code-block:: console - - $ echo my-secret-password-no-dont-use-this-one \ - | passwd --stdin hacluster - -#. Use that password to authenticate to the nodes which will - make up the cluster. The :option:`-p` option is used to give - the password on command line and makes it easier to script. - - .. code-block:: console - - $ pcs cluster auth controller1 controller2 controller3 \ - -u hacluster -p my-secret-password-no-dont-use-this-one --force - -#. Create the cluster, giving it a name, and start it: - - .. code-block:: console - - $ pcs cluster setup --force --name my-first-openstack-cluster \ - controller1 controller2 controller3 - $ pcs cluster start --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:: ini - - 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. - In other words, ``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 authenticate using a 128-byte shared secret - stored in the :file:`/etc/corosync/authkey` file, - which may be generated with the :command:`corosync-keygen` utility. - When using ``secauth``, cluster communications are also encrypted. - -- In Corosync configurations using redundant networking - (with more than one interface), - you must select a Redundant Ring Protocol (RRP) mode other than none. - ``active`` is the recommended 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. - In other words, 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, - note that 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, - which enables 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:: ini - - uidgid { - uid: hacluster - gid: haclient - } - -- Once created, the :file:`corosync.conf` file - (and the :file:`authkey` file if the secauth option is enabled) - must be synchronized 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 shown below: - -**Corosync configuration file fragment for unicast (corosync.conf)** - -.. code-block:: ini - - 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 used. - 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 could potentially make 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 - -- Get a list of 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:: ini - - 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. - -- Setting ``wait_for_all`` to 1 means that, - When starting up a cluster (all nodes down), - 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; - this is not recommended 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 do the 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. -Either way, the service is usually named ``corosync``: - -- To start ``corosync`` with the LSB init script: - - .. code-block:: console - - # /etc/init.d/corosync start - -- Alternatively: - - .. code-block:: console - - # service corosync start - -- To start ``corosync`` with upstart: - - .. code-block:: console - - # start corosync - -- To 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 :option:`-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: - -.. 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. - -[TODO: Should the main example now use corosync-cmapctl and have the note -give the command for Corosync version 1?] - -.. note:: - - If you are using Corosync version 2, use the :command:`corosync-cmapctl` - utility instead of :command:`corosync-objctl`; it is a direct replacement. - -.. _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: - -- To start ``pacemaker`` with the LSB init script: - - .. code-block:: console - - # /etc/init.d/pacemaker start - -- Alternatively: - - .. code-block:: console - - # service pacemaker start - -- To start ``pacemaker`` with upstart: - - .. code-block:: console - - # start pacemaker - -- To start ``pacemaker`` with the systemd unit file: - - .. code-block:: console - - # systemctl start pacemaker - -After the ``pacemaker`` service have 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 - - ============ - 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, -you should 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. - -After you make these changes, you may commit the updated configuration. diff --git a/doc/ha-guide/source/controller-ha-rabbitmq.rst b/doc/ha-guide/source/controller-ha-rabbitmq.rst deleted file mode 100644 index 02909b56..00000000 --- a/doc/ha-guide/source/controller-ha-rabbitmq.rst +++ /dev/null @@ -1,310 +0,0 @@ -======== -RabbitMQ -======== - -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 both 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 Rabbit 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. - - Jon Eck found the `core issue - `_ - and went into some detail regarding the `history and solution - `_ - on his blog. - - In summary though: - - The source address for the connection from HAProxy back to the - client is the VIP address. However the VIP address is no longer - present on the host. This means that the network (IP) layer - deems the packet unroutable, and informs the transport (TCP) - layer. TCP, however, is a reliable transport. It knows how to - handle transient errors and will retry. And so it does. - - In this case that is a problem though, because: - - TCP generally holds on to hope for a long time. A ballpark - estimate is somewhere on the order of tens of minutes (30 - minutes is commonly referenced). During this time it will keep - probing and trying to deliver the data. - - It is important to note that HAProxy has no idea that any of this is - happening. As far as its process is concerned, it called - ``write()`` with the data and the kernel returned success. The - resolution is already understood and just needs to make its way - through a review. - -.. _rabbitmq-install: - -Install RabbitMQ -~~~~~~~~~~~~~~~~ - -The commands for installing RabbitMQ are specific to the Linux distribution -you are using: - -.. list-table:: Install RabbitMQ - :widths: 15 30 - :header-rows: 1 - - * - Distribution - - Command - * - Ubuntu, Debian - - :command:`# apt-get install rabbitmq-server` - * - RHEL, Fedora, CentOS - - :command:`# yum install rabbitmq-server` - * - openSUSE - - :command:`# zypper install rabbitmq-server` - * - SLES 12 - - :command:`# zypper addrepo -f obs://Cloud:OpenStack:Kilo/SLE_12 Kilo` - - [Verify fingerprint of imported GPG key; see below] - - :command:`# 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. - - :: - - 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] - -We are building a cluster of RabbitMQ nodes to construct a RabbitMQ broker, -which is a logical grouping of several Erlang nodes. - -The following components/services can work with HA queues: - -[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.] - -- OpenStack Compute -- OpenStack Block Storage -- OpenStack Networking -- Telemetry - -We have to 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, -it is possible to run only two servers. -In this section, we configure two nodes, -called ``rabbit1`` and ``rabbit2``. -To build a broker, we need to ensure -that all nodes have the same Erlang cookie file. - -[TODO: Should the example instead use a minimum of three nodes?] - -#. To do so, stop RabbitMQ everywhere 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 --ram 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 RAM nodes. - -#. To 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 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -We have to configure the OpenStack components -to use at least two RabbitMQ nodes. - -Do this configuration on all services using RabbitMQ: - -#. RabbitMQ HA cluster host:port pairs: - - :: - - rabbit_hosts=rabbit1:5672,rabbit2:5672,rabbit3:5672 - -#. How frequently to retry connecting with RabbitMQ: - [TODO: document the unit of measure here? Seconds?] - - :: - - rabbit_retry_interval=1 - -#. How long to back-off for between retries when connecting to RabbitMQ: - [TODO: document the unit of measure here? Seconds?] - - :: - - rabbit_retry_backoff=2 - -#. Maximum retries with trying to connect to RabbitMQ (infinite by default): - - :: - - rabbit_max_retries=0 - -#. Use durable queues in RabbitMQ: - - :: - - rabbit_durable_queues=true - -#. Use HA queues in RabbitMQ (x-ha-policy: all): - - :: - - rabbit_ha_queues=true - -.. note:: - - If you change the configuration from an old set-up - that did not use HA queues, you should restart the service: - - .. code-block:: console - - # rabbitmqctl stop_app - # rabbitmqctl reset - # rabbitmqctl start_app 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 51de7b25..00000000 --- a/doc/ha-guide/source/controller-ha-telemetry.rst +++ /dev/null @@ -1,78 +0,0 @@ - -========= -Telemetry -========= - -[TODO (Add Telemetry overview)] - -Telemetry central agent -~~~~~~~~~~~~~~~~~~~~~~~ - -The Telemetry central agent can be configured to partition its polling -workload between multiple agents, enabling high availability. - -Both the central and the compute agent can run in an HA deployment, -which 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 that have -to be set in the :file:`ceilometer.conf` configuration file for both -the central and compute agents, see the `coordination section -`__ -in the OpenStack Configuration Reference. - -.. note:: Without the ``backend_url`` option being set only one - instance of both the central and compute agent service is able to run - and function correctly. - -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 remained 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 also supports using different configuration files for -groups of service instances of this type that are running in parallel. -For enabling this configuration, set a value for the partitioning_group_prefix -option in the `central 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 -- - otherwise samples may be 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 collection and - processing - `__ - section. - -To enable the compute agent to run multiple instances simultaneously with -workload partitioning, the workload_partitioning option has to 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 b46adc81..00000000 --- a/doc/ha-guide/source/controller-ha-vip.rst +++ /dev/null @@ -1,24 +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 - - 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 \ - params 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 7ba0d485..00000000 --- a/doc/ha-guide/source/controller-ha.rst +++ /dev/null @@ -1,20 +0,0 @@ - -================================================ -Configuring the controller for high availability -================================================ - -The cloud controller runs on the management network -and must talk to all other services. - -.. toctree:: - :maxdepth: 2 - - controller-ha-pacemaker.rst - controller-ha-vip.rst - controller-ha-haproxy.rst - controller-ha-galera.rst - controller-ha-memcached.rst - controller-ha-rabbitmq.rst - controller-ha-keystone.rst - controller-ha-telemetry.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 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 H3629li4Q;8JhfRv;c`1CW8fS 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

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 zcmZsDWk6e7(=Jk^v^Xv9?i6<^6n9!&i@OsvK(SKXU0PgD=4Wzf-x(BRbt2vL!rOIBGcPM0^R#z*egh6p*i-QNtG&6K35BPDF@x+5h^5{T&+z`+w_xepUFd zQb83LYxC!p|Egc~o$%jJ{;#rs+7V{|tMUIK%%7hAUHaTrQ8Z!p{|=idnqn8d4jh~~ zoSc-zM^E@8Ka_w^zZb53mR673CX!br@YGaIf2~H*C0nH%af2iFMeZQ}G}2R%>110e zsWy?lJ?Zn+fDhPG68V66^993`HrPe0>&_}@i0YFGm~`G}XE+To=(;mJ%ypU=dlW2J zp#Hs5A2=F$@^SB0mC4Uw6eD1&dS==b*e}s zz6CGe*D5D_9hIsyW}SVDmSV$qwp(P2+I}f#Tk^Z=tK4QD66MF+QpZPIL!uY81PGx4 zl*Xw4`*L)H+Dfa_akt}2J;oY8Bo)6Fc-71RBt!Qfsdz+H|K)G1OH$Dp9jTQ?0tZnGxNny z@@yZ5`K^@!vr=_(Z$m;wYk>ap+PI9d7KBh$eO{w(GPQLJOvd^9_Zn7ir!w^YcSk>1 z8K04y7T3Q@`#_J7A0{$fo|7q-$IOUn?BM}FTXdLs!@VD>k_C_HFu;tS#Pr3zO^`+Te296V`9a1f^~u;-f3L_t1L#kY8wuhfyvM0K@QUML;3x1Q$oTPrYBaljQ>Q_M z1l~EUZm@IoP?Xk)UsBm~3`reVM)2M3IJL^~ZhQ6tysi>K2^55c}Gbr;}RIi#BF zg$y%4oPn4omf+>fK#GwEhx?bz?@*q)v-K`_2AV($D@T3*ws6-CV#Gbow`w%Rr-zEY z=uA{>2fr^wsXizIu=Hm#ee8wmPgkQnZhiE&6-ML6{5DlwdaGPs7U=87lH{BFoNM(b zZp=^-lc(S}(&YavP>453ZBdD8DHKv@za_bY(qs3HyZ9}9{XIf3j}JLLPZJP^>xz)3+i9iWXs6O!?hFlB z_QlyKSdqL}^6k&U?%=z~34xu@OH!mF#{vNs@BU39&lD=GC@IOX{mUyiWPzNv#(j~o zl?!RZ$7KL}ZP7MnvUOf&gOIvMup&B4pKOsNDgK-Oz(~}WVy=_+tx7@>Qko7mL*N~{ zwWE^wMGQPD27^?V^vb}ywyFEC)S>*FI1wMd@b5V~Zs(kPCzReVkc$eS0U}x>4AB1# zW>?!#1G+i@>%;nUtS8v(TL5nn=8% z`;%4Gq}w39W>-4Dwym+0m!=0&4Z}(JM7Z&a`7~rP^1^%wKfUv1?jNG_l(yEr_Q=B8 z;$VtT%aI|nO|D0vMgrZ@e}()SY*f=nfW$SCli2Sp2jC4rWv4A;329XXFtx^I+j$cS zbxIR0P{t{9NHki0j4y07+q8Bu_6e(NbW@;;>-p%%_Xb#Ydl4NQ_koJ|ttcITv~tm4 z-}mq_c#{}pjeCRpu!5~yb8_eP$P44nF0c~M1w5Uj|5I}Y9o&dm6!i_EUHm*+6k;$*f0Wh`g}EKH~+aO)$q{VFtzwwuG zza&XxR6swy!A+iiwqoj1mV7FLTN6V_8!cbbFzuoAK0>-1XDmXNB`n>&q69$GWPIDO zWhG5=Ou9e>eeHY=akPAT=n*67#R?|;SD_x^;m?+;V#nkAOL43?*&{NKS|>sq@9 zbuc`Z3PDet?}XDl*5Rq5RQmlC65{uOnkSyXg7%2-Tw`(RJ8b)%f^K3;Z2)MVOcb_t z4n6yfX$rrh`Pfj5oaoc%Y6_L~Cn!a9A9$5kZvW(sj5`(zxQ#cP2nwKs`E6mQg0905 ztiAqK=iuT7!szuAt@q5KV70?KbbClKu15w%&Wxp7$x`eKr>R+XNoHKuGaF zF3r8~dWkRbxOsSVWbDNGRkTR2Vddf6VZpuKe^#&e;rOt5z;bc8{cJy~;AZO`5A=0M z)*Z0pv77w{yn@dRBKqS|9BrYB>yYRsDGpE!V}wzv_2}9wag)}?6anDfKZ-3TbyL#^ zf$IEj!1N@yWZ|-nb#D~o^P*FWwnzgVC*@_MVWo*;-w!7lcV@hlS^&SXSImhMEAq$9SW)FCQJW35}in5_RIeSqua z+W4t4M9c!Km9P~R^v9BPqgFk+T%jFsOegRssh<)CP@g&lL=8D=r<^l39QRb#`iQx4 zd3BEss=)4nms}0xe^yr@FanO}@S-Z-2W#|Pnr=R!JEzgM!HL{$=~Cb^f5qB)H|`Ys zu2lmZP}*dtb1BrklY=>!{zi!iw|*~9Ehmmy%(qU;HaZ!X$)8GPa}QKZMxd#2!}Cd0ZAG?<8CTVnLm!N%%Hv$-Po^J-6{$} zNjboq$EM18;6GS*PmQ2<#BqZvXi4wf%`MZkpysOkrc%vhZq(URWq3ljY(oV41GAQX zJ4_{;vAO0$w&%`EYx`d~_QAyAAx=;tDm}N1;U$+kMW)fDG<=}yN!v+|y5S7tT}Ucg zOixI+hMCzXDcx0HWnN=6;gu%Ctc)RNzc!V%{((Llk{DZ(tn^o+DkkARfEa$Z_y;T* z;>~{Mb#CvSi{lX(?>T0OQS;uV5ikGn@!Vf#G>}w=0%xb3ia>J-e(kbHUuTsrBN=M&{m1Nkvc6V$4)~+F@>q2U7F< z6!a`!8$HiNozSXD^q+1m8u-hTjUHzn%AzXrOe%3fC~v-UcQBMKexq4#){!6FRM$^t zZq6KxHa}$6EKiWbwaqs^5`eUavk!4)%*q1@3qg{u*;+nd6RG7~-wHF6QXJ~%Dc6kh z>@E|qC4Ez{zAE8#S8eaDCUTa-l5w^sIj6uVw~ql|MsAVxoO5r=z7HCMTH;=dWcYuG za=H#DMBj-HRk3uA%HH;p>1gyIjP2a+-tJA!bKOW87~Xp zxfTix#Y!U(jx)>Jj~Bk{Slc;zte-Nn_m7)1dtWCd8Wp^=gc{#Dp+(jBrMXu+2UR+r z@hGVA|Kd?V{MAMhF096Gs%-5&n{-PBi2$I=0b8Wu=qlXoph66vdpSF^d*;IPM|CYk zuG~lAORlRa|H-Pdebb?^O`{qLJi)tG2~)C!Nhw2)Hqw1Y0o79MUE9hwierk)qk#DG zKIb~(`p0w*VHMhLZCErvj$9U5+bi$k&z^*eE==)!I@ksl0_@t9RZ0 zg1OaU5S5RF+|>o=wfBgWN4b2|0ihaY!7(uu=SMagnJ*N5!4sJhFt;367-)lg3ry8PoPeVR2pnEx_1>oP_+dR^X z%XvA?1rA++iBzn6)?8|L=}EcD%qVjty^($g2BwYTs)^aH&fPxyTFisXABcmO%S1%Wz`NJs0?{Txvm&1c;gMpmjJLCGcX7j6OXYTn+#Fc6 zRPnSBvi-JoQ9)F@3F|?z^wp1`6#DO&AqMxF zxrHVccetLPmOy2?zB^n-vkQVn#On4>D`Xe`3e%5}5i;Lw*XMd82>@biS4a zUF1!rO;)G3k|%ob69Rj>2UYy}wjGgUiJ3eXr zKzd%T>+V;6{rM6^AzHDqrVVKx-jlS!yBvVHsG|L?VPp<7oChCpI~ScAV>icb9`p2a zd|~EqtGgl*Kx9(%hVGXOjqp!e=}wyL*qu2Xu@7wGAt8WOt$=)W_3 z$!{g*>KX8&+hMnaTBBDCi+`FI2@IfKqRHeYu=-H1$R{&x;P+GIEVt1ov@WBy%knS% zky(pjuKk~rl2FdYrBUcxfRyrz+;``&G1nGg&+w*#`q)ASbLnR_=m#MGC@@+iRkg%G z!cRIr$FRMEldj_p@VhFCYBR5+@dyBe9P+yXj{hH*Q3mTw_rh-SxKD{Rd`xQV^f5^# z(@4yH)p}iN)g(D8p?eVB$_zvd{1%DvT0ozFs{3q+jU5A>FJN}b4=@yixm58F&-92J zXdmyMleJX{TQ|Dc9c%IN)0^`TQ7=)+>*kZw5tuFT=^8cdv+`a8ab$|cd;2>=tP(Xg z?mzP1S%!lRd0Yp}li>M1{x5{^@9Q@vr`XGXgUhx2uZx%m!ul~GMYB$>8+wR8&&&&OuTv%WX zcSue-+Wa#4CBe{TTv61s+pnfBLvJg$4%vrgd{-0f7`Emg(t6`+IoO#==XJKrH{d%= z=ms7)@MH2$fk}jsG1HUiM_qb&vGbcC7fsYv#QHy-zq9@#UMOsPK8tq+1^#eZ*P$Ou z3~Wa2Gf(yEYv#rYr!J3rwSC$+9On@H`?SlSSm^T6+AfW~4sb8fpX`-B`sKgcM~EOK zHCub(wmm&$)GGq}gDlUwyoJh-u%66reJVmg;U3(H>*{gnHz#_wL~Z2Pzl*0JXIRlw zwdCvkGJ0)(FrX(Wx9-_WHJeBDxVq5NlgY4P)6#-S#rB8?+A%GQrW_%s48Ue2FC0n2 zepZ(EFXtC&5_@(P@PgZZvdXx)LTKJ{AdNw%m3sj};?smiaU{3dHeUC$A@M1C z6wfR_DzQux^2Q~b7!o*yVF{a&fqgG+KHeGfRGU1&?%@5&WlNTQG&3qVEw8;jN0^bB zSvB5BbJWz5EA-BuIa1+=S8W|UK9F3^SAk{)$g9wMQ?V>qS9%zW%pY3KH|1@bDMe zUMuytT$D$xz7uCJIZGNoW&5~apg=l=&MnQXm+mfa_`DjHvJ6OT3K&&H z&wgSK6?3DU#L84WwLt9+!;&LpX_!JNF2S^)_`lV|y=b7v_K>}U?5WMa1!4<8HZlA2 zA;zA$J|)mi4Y9Z=aJ{;wF5|OtCfgTU(-lo}+qXX`kHrLnA30gp`oI;HkB2tR;AS>P zHl`2!0;u%0YNppW3G#FWZFvT|wiwBk`ho@>aaxYe?EblK}pzL8UHv@qA{Hq*0ZM_CtL0-$0cKpqXu`B+;B+* zk)aZgmB)xJe%|gH6;_{aIu)wyS$s7RafB~Osgj18kdCK7s)mp_n6DWCPMjYhD@etS zPN?PSaZ2IjmtwuG%HuFhM9S(PTUvyTS~iRMy^vX(T+##SC|o+3_;BAY%?^YN&lEVL zayeDqBEjJ*pftOLFG7D)X+U@GnT_`rPcq^q(b&4Ul&tjfcfZkS4nX_x}yY-JpDS~1Egd{|6t6)oDacZt+_R&xb9 zPWC5YLO<$?(452D3ZDptyjHi#HqG2d_` zIFFlQrK2B_1I)m8#?Hu{0$bTRMv&rssvMEK+PMYD7a;VV&Ln!EA2xhE-0UyiQyW^c zSTjyk-JpAY_GP}{8QcnM!mHUvUjm3%Dw=+_U7R$_Z`L!k;g1=0fCgqY_AulG-Qh0i z=kWbHi+KFrJor;hC@B7kQiCqA7)2xg9anBOFo^pzlPf&(8wf`e)@Is;P%6wI+z6%W zCB$$LW*9-9D*Zi>jfo*1T1=n9;=ewg#Tu{Jn_Iw^@D0Mm*w6eWSwIWL-J=MqocT`E zTUivJ5U|OJ(|!n;{KlDa~zdt+&)>?kwRcWTd zjRHoQdXPjd)4HR)+p&v}m#si%l~rTN3DRVo8Pw98Zh>drNkNou+h$CBdJ6zQxQEvp z{fEc-CT_$UYXQzSGH@}gVGiNy&@d9uq3Q)95u=laVB8bh1<%K-V@m)QyIbdWM^}c% zN0z+6Z39BkfIhYFPLMkobaT?txRfG}^KW0alT1SV(EMka4pOZl#_VsK59p1#C$mgM z4!T7T_X~4}hJ`7@=FJ#wO$;nQmqWRSda6vcu?ufB6FsI2z4-zS{?0m6d?OB( z9aSz8i|e-|NS?1#-1(`?a>!ereC=_B`0ZC%)&Q)cr-T0dROP%j2J1K8jjvULEA_&N zeq+^MkNCC%M?q_A9oi7Byql)9_MDRtdLuKNkQ#8S8yv8)A3~TGuj7@P$@?zQ4=+8x zmbk?snKIeu*6B2REnw*PZXvprZv!lVP=xcfNVGE_k+bNbay%JBlKd8ih2XKP8?D% zbMFUT7~lc@!5(p#WM?C(h&phsQtVDG@Ppb4K7h@^`yHFmgH31pSVdV7?ZcQ0>9tX|74=S`P#MY7zjMEPrN*J9hR z)yZqlR;DC3SjZV4)I-RjM^;Y&+NZWGSR0|(`KC({YT$LDSF><+s`ze9&PrX&}-8rFR01(`^d(+)21)3cQ<^8saj)mCdJmQN1 z89og<=l{`RIb<}}vzYbIDEdnpmsy`->feONn6}NkFJ62}4vb35IOw~JkB&U_8}}?Y z_Ep?^)OejYOxIC+JJ1|{Jrgo!baP%?=(pKO_$F3z?hkJ=&-g+WvDuq2<&u-e{q+}< ztP!8mB!Sz5>7l?3(Rp~U`$KD4NHed2^{dTwF>-&l!Y5@>w>l}!(FA&<)fW(T3R4V1 zRz#+EZ$#)>UMfZycGxwy@;b84-nBH)>lsd!O}y#<8YDCHbz{7D$GMBkBiGSB<=*|! z>?(s9Jn~78pe)|e+Y-7U6Dn6~5YMOx*fB=nd3sKXh_P1Ge^LmGik--_sd{M3_?Tt2 zLdE=+H7R6>h~yWf>CRSHR12AuL%DbEgW0GEd;k4tJ{~49Bd+wEyqpP}$A_>`z?QVv z#mt8q8;w5Rt+~q=`+ZV;!2*W8ulwk%KgeRP%NY+yZ0$tVd|o}QvHJ9?)w0mE3?;wF zNi{2yoKL%y3C#@!CdKEZ+xGsgaEB~!J@pW3*xl*f(<}3yX|>MA#f=Pvc6<2th`>{u z^&!CF#c}06)G-fwX6}g_LVjy$Br(vq3PB-r`$34?OT3Ca^ltfQ%RblDEC2o5A@ju^ zPQUh(W_oZ)-&(AeD8D2fzF^$)MBhN%x&MIeh#m)PhtygJa$0gI#YmpG}>jP@zONbcqx)D6RZ`=hCaF+U#C|o{Xu8L`WUVouAxG_j1=n%igK(KmyTx zc{*tO>~~B*xq}`Rw$;-ojSMmIP%X4AGQo>T^SK?Ywz=+I^x zWH)UlV6*e0WY2U2au$xeUA&XzGIx5Cz_aq}^6BG8n?Cdu%KA6zJh}3vOx1L{Ty+xJ z_SOj|MQvKj1V$URdll|M=10?r=0lrB;GHF-1T!bR)b=vN+c{;?kI}-P^YN~_6D66u3s1I|SxRPN@#4(y{f;S|yjbT_#TG{?MDPg2|77nOj_ z(I^>7{bko~lW%%<ierYFYHtgSxst&oDo>Ly<(e(V=QlLXZ(=o}=hi2R)zKT|E1O`{s8; zBO?h&{vi32GSGWvlI#U4;B84x!j`753Yp#<&F|m+uXv5z?gHvCDZYyI=pdSmZm-{9 z`=)@d9w}q(2T+_BfBzNUJ#$q4RIzl2wUw~p^^c{8?BB6&#LY9_)UnwqUS<=zJ?HLF z=lKZ>`gCie^xgqH8l+BE#hlR-1{^WP?)HM_{0}C!*dDLY(GCo6(*#`UKx}^z2f5_b zxig&pm$to_Hl9xxBnGuRIc45Sz$~#8`}s##F!OW%PlP`HC2@_5GUtKL1$rELsZracNU~$MaN4upO3ry3`}p-9@EC3Lh`uA@_Do zc;65$xsY;cXIuOv6Y;^Eyz`x>z}9Ah*$Y6x80W;`xyym|R;~VQzw1pKRTf25o-!~e zlcQQH$9Vf8#hTs3p5x9gi#uWiVmS`+!sU$Y#QyWj>mcPh!;2$Gsxnxbs8J8dy;x4JMOR{= zg)l_Fi2L0fWr)1Bc^|%+)4gTNyOGsfjcjrHD@S+DL3>dFyxGeB(g&Lu-^$m}V?aSc zJz)^fc!gI+{&jEMMXy(@+88X+sN{})lW5bJf#mj z#taF|pwOJLB?w#eDmp-MHK}Oj7pAt+oG64|joMYjttH>3t%2kodYgr4$)~VS+1B$ED+UJhb<8r0My(p{3H^Oui(zu5ARWyL z9Xg(snaR~fstmylnr|z;3Lg)dCfmFUTA_=A;oDy{P3Ui@TT;w^g??)3_M;i&i9vTg zjk9(1RX!l*ZQ&Uepa$2j!QvH5P}9e17+sE1g|=tCj@5O@;!&PXHN#CCFBbP@hMW^} zLwC|V1X6VZXey0vtCk-t`^;AdStmbn$SMoL5Cryf)48n*5-<}pi7OHcOC{9R^+UCS zvbrN=`US`Zr+;?zhM$eC-TE|N-6ho^A)*>&WeG-gSRFKT9=g)M?^tD1*lD9F%P6CD z>|%6z`?V##$GiC)G&fYMt+f)!)ggfXP+??18I@u{iLdBv=h{C!Wxm%f7DrnW=Q16s zCXrrqc6>5fzwNiRM9Y(;R{qQ5u%bTm?5g9#-AgK2qsg8(NQ?#+Ywv-2U_MT>ACc2s z%b@LM9}5LNA7*5=P4#4u_701EifI@U60@N0D1Wu$(^;1V>3sjMLdQ(fsu9RoqRnDc zG%2VD-+j=aqe)}1!#nh~>`gw?_EDwpN8rUshdeWK((;5IJRK9U86PT&zzpD5D`*{X z_29a3efNm0_CGK#S7~^Q&v&O^s`R1F?yK8!HhP$CwUdeKrsBBFluTx%?AA)_%64E+ zc6VhR_2QjA<3%r(SDlXSUS(<^_zHUhI3}toKW;nN1{~M$P%JQDcac zWP>$DQ`H7uYx4QDBu0p8b0s5RL3t$~(r3B*3o&BdD^VQ`spkB4IK5hbzLw&MHlr~= zLG({zXSGT?tPs>obfxTv*Uo9%N$#Uz#}{(#W9E|Ik4E+~Uy)ykMBkKG7<4|;;;EZN zir23-B%;s?Wf=y{yhcl6#wf5id|LjhKy`df)+z{Z5jYO2LTRpF;}Y6F+yaE(cJ)0HWL z*E+R$LaU9|hC>QW6e;YLB9M4DMFBKR|EWaNlJ||m4|g=for@K74NnjT*cg8VKmldH`m@_@82;C z^qD^XD}V0sP2i(nXlw&ni7F&xQ8PDi^OH;yBIv|;b!gNha;m}iA-(~{fo=?$zcXyk z&|}$Rx#l>q!w#Bj(zG2e=GWZP0W?l_cn)#rL8wjlFS^T$t3=+d&&((|NkWPTrgsC$ z>$hIYg{NF-xgSclSL)Y9$qq@_rVY9NBs4Kj#}}i3X@_zxR5JrGJR&Mf$QY=@ViG0< zUYT7J|6I**3qo~Rn9S8k27yXSF%*3heXnaw3vjGi5#fJU5CynzBIXyC>YO~xb-Nrs zMkI~L&r?x)+vy8yxBR3G7@Ru^1@(u;T06tZE{Jd$*Y)O|V3SNNfADu($q*U0-Zx_|rZf<1W*wtU-$H=Ib;?v_8$+5V*@~tgOeyugy}0 zhkmNzS7)o9C>jiwC#Ty!@l_<^owIEzrPR_B(zdZh9tbdND<2eeVaJJ~f+DYz_A|Bj znVk;OZLYyQuLp5-|lrHyY($-zlu2}{cUq!c6itzVeO%nV< zb`gHn-fI0F`gA?#_tiTJBb_lv5Wvl`#*j4+jd4Pkd9#Yl_( z%RAE|OccQ&X}?y&x5LYq1w5lxb)*f*xakCwGETTxF^@e@q6Rt)ZsmlN?AlQIjkc;A z%KnZfg}w#MPU^VxfIs@k@M+%Dh&q|hRNPntv^t6&AzsFl4%S`;x=+=Hh}P&C$A~XU z=Q3R{937K8gjI^j@QvF5N>>ymOqFWK+*5HeD>Ynn`DUev`Rzgztg1GJN+aL#2ge)* zw0JA@8HqLRW8W~(4lG95PuAG*L{EK_M;bkjmV6kd{?!zxZ8&QMkHWa8iN>j=Cqf_; zgnx+bI_)d-?sscD*9)o~da!vCr!j+vF}avNGDa8M5jcsHK^r(4%*|qesy<6;K;di0 z?)vUnP;4&2&eKYVaqQ=BuceUG=qRpT6bd$+Yli5v1LTD(P%u|H&1m56^l^n$5uUMR zyBh;(nb}FkA#EVHtMQKpo7`-fQO1Q}w@1^|3QQLQq%<ANC@lGuMC?;p6H%~wxOa%#D7cB#AWp#+>hkhYfvo4{49EVgPs%1powfv0%B2h*Ommyvd~V6F8u? zB6pVK<6|MN+1vlnW8vc5lqIzjpNm6Rcz6G(@A-b~AFK+wO7R#|!mUM_3nTrF$So3JK zJs&8l-eH;ZG7A6$QYn9tA5Oj)?NKgB-!2e1EO77+C6GvAO$rJ-T)W*rOSek78q(@t zmdT0tLXEN1*^N{EOyuLy#BAvMfu}MPr$VU9w3K^}mFt-MLy&a;#PbIC2#?3NvF|=> zg~a*UGM)Q6$Fi2GW@5~b^OlMi%IKmzmj(Uo7bCoU^nCPRqfBa7-fQzGhnzAKp}(EG zPy-a%!98bOo^QVnc>kK^?6ps*ME8w;@Fi|urY!H{GZT97n^W1(9##bMDOrZ?aT5A< zjkApD+>)W~+WE>!oy)LtSu&m(I95Vm$c>`qoTmD-aNSB8PKMqzEjZjoZSr?w0~0B! zxJDmhhh=ia{HMZAJe9VyQ4u8*EVMq!J1|%h;Ztk{q>*AJroMfs6_B2u66pE2aBC4oOXv zg^}K1W>ej&<4=|&0YbEKlVB8%Jo4lZ-3Snfh4bXliyHxNdUxN+Nrus~we@1l;OZcY zAx2E5lZ0^Kx=(4NSZ6F^_i)1GvhP;zo->rq;Tk9F(8yQz1dW`Mo`jP|+cE3Bg!lET zCMG#+A0{~yE#E4GD{ru~uih}}S~4lyk?>@cSwheYY{j%45mPePqnDiSO-4NIlMAhK zZ?}Xm=kQzEF5do(8z8^0%jB6YnR7oQQrFKJ=%zJ_wHri+GYuGYLY*YzMr{N_MMPy98@5trnu9- zz^oULqf5bcGZk+wtCvhq=N+gqkJxUe&&K^l(K!hMvcedk`I*l1Riu6RCN_i;f(=?g z&a?w-g(2$KtfoTxPgS3d2es|0WTt3`c35Mteja=G!DDV_?GG8}wbpEKT2$o_sWH+6 zja#AH*GhuMcyl*f$dNTe9mt{NG)fl(b%H``0=$`sCjO5(jS3^QK`&*c2iL_Vt{OtZ}-g3VF`#s=}a zTIzM(;q{je^WxQN&Z1swjUvozH1=1n=JtNfUp=ec%Dq0E_(2$H*LdFC?VTA@=VYQ! zs&`1t+Ii<()IPoOT5ram*yt8$eB(8b`jzt`#5_Fa(bA#ixj6P}gKu>w~c$kf;*Eas#TcMgE50rBs_SVhbf-n!6DlIVqy>{4G zJq|gCEJmuJGF>E5_{GS(dSN{b?@2@qath2xXVI?&(fZvV_f|tS5?!mR^jfjC%g?8+kqL~u9S$Ri-T*1) zBqP$3_(K<334>i_tFA==RjnvLJF_TO1amu^VhwZ9vT;Y9N>&`~*PANn?^z*TYd|`G z!?>{e9mG$}W5N%Y)yF$6He@ErT55T^pHDuw`(9_c{I+)@{@56F`*}-@_DFf@Xf>tV zSPx9k45||B5H;`{z@Pi5pe&PTw@gybP7frK4JUDe^H>d&D+emG!6r_f&DI1j5jWMp zrJ*hd$DD?QuB4pIo4A0-Mir>JZ;M^?FIB{ncam8h7^MQt1zDK}awwwetQVwHn-BB3RT6)V4^%SSPJUZ5*wRZP5Cp!*&}!Kyf_S3v#^E!AN`eT~hQIDtq;PE?Q+ zXae@w_M7(+gt2KU3c)y7Ipau>GUBedIsQ5X5lH$z;40VqQtRWI_n1-3T^XRLHbK?# zAfll$`3C4?SdSp-6ifT=S4VrK&6HY+kpEft?ZcV8SE#x!pDc2tDK)nux>2o7-17Nk zo(py1yGDRCI5&YkR)I}G$tLKU+E7RphuI-Tso#>tN4J?SxJRrU5lKyXVvc*g{IY~_ z#BB=dvz_iQ9KVX*j;c{0utG8|nw6wVP}|0kag_p;RS;x%!0G}|iR>ZOe|wkXwpLe7 zc$4jh-%m+TPT2^v4#yza^P#R-IAup2wqE98fa3N0tO6pJFNXxY6SWx&$7Q}}6@BN1 z9bzuI_3s)--K>Y>=Hv9Owzb;@l^a}zZa!!^biG}FsD9pCml5Pg&7FD(lx%Qbn48b6 zb?v|2G!(e#?r7i63))VdDwKP=zk|#z8ENS7-TwNO^m2a-&ZvDC-ulpLCJJe2sMHBr zcvN+FT}sn#V7d$f9mEiDs3J#Aqp&11qVmsKq5#ip1aRT=_b2kMeq)~M>p3v>|FCzd zawLDDw_Ug1O*A2Rq6S}@Z_9Y8`1Ir~^2gOv~Wd3xGC0KxqymnzG zIDTFgbsGei4vD9-TgJt#Tk|9`7ecB9P9R|2a1{RdJ+0!fVMgdN?WHc1JLnY~T=&yQ zZPoKA=1ZRMcchKFet7;+lo(vrNka}D7X>uhqC47^qp)qgS|V9fL3leSwZ29%SR}8| zlPW_}w)Sp(}YamFpex< zMp^$LkA_d+=R}8glaiYg-oB?2mY{aF5bANex*m|?_y53ooY-yN8LDOW``&^OuOjHW z?tP4vZHR~GN~RC^aBgP^=I2#7Rpa{erk4k&8{?FwRG{5Nf~n=Z+N|~A*OYW?e18(# zb}l*nce|7#rdgohT9RA_NXM=w8{%pF47I$3=-}`%XA!TG{?4%@IJLkEt$*}TQ zr7ylY34*+Z34NEt%r{Rv3Nnsq&%b;JB-R z0x|mZsSLEHp}qy^gp3vl=rhRV__e;)7SqyvtTjNE4mHLC>FYYbAge#M-Cd?O>Oj5) z(gvM+uV>({E3oojz%;>@Wq=`W4xsVw`5`Mg*+*Kb*0Nf3%VECKw;cg8;1BZVlM=t4 zkn9PxJ#j!_$y5*+lZ+qFEQ|Q=?qUiX4vR`U!bl&XCR=B~e|-NmMNITsYsA#V1iNZu zSoog4Yt#*}L4(lLd~=k%fXx>wgKH{)29`7LQ*Yj=K)c)CH(f@AO4}Y(m5C~)(6lVZ zN@YrQ*5J4VN%?NBk#8Mm`IDnejqzJ^`+2VCT(MRf9{+RZEH{TLU{-dCj3x)Y(H5@Q z`lh$JO3irda9QBs`1lf^o7m@Lw)MGRYGzSnRTZgK|5rwb7!eVyKr>UN^YIGK)F|cKu<0z4>&0I!XgV zSjctqSU{vT^o=#a%*}Z{Q%IuS?e|@5Mo>c!=_i?=+))aaALUWr$}Sy9?{{Xx|HdCe z{xLruUHJNXP?m@LFw0xhhgquj+yHNV2_8!7>b7r5_P`{z;4@%MVi46gv{6&6(jLztw7_0OS`zgJVv{q?F^+60v4fc{5g}?{xw0>a+hdt*-;0!4NrfVYuo& zAa7(CuD9VTTL}w2hhJ>}x{pd@~X9snbuARVk31D6!RWd$uCS#lMoXjV-a9^1ry( z6T`V*@!Ggerz~u*tXP7C2wQ63cq-f(YqI-I;zg&TvTllTvId9#x=qMsBIGg~G-K%k zek3J`nQ{^Ovb*UHe1#nC0i2%|-zwo2&}80<;2Z2np}F+Ej^9L>A;5n_YkoUSxQHC9 zF6z95SQtbZ`QlSbZ#JnFKjGy+VDnG{EI)In^g(X1nkS6jHkX8S?Zf_l_ zD?r3l-t1P&%H8OPkiio8jy`3e$~3I74KLEa!*`e2bbA9OC&7K5ge?+%qKlxMjNhh7 zG4&(sVYcUcL&F)$G11%7*CIX$#f@A@TVqM5zNSACmL^}8Hxc_)Oh=MZCeX+9Tpl}k zJtc$8-&w5s`1ZZEPlPeFBXay~Rpf(b`7-NuTdlV>lVSk;mR}*rWlV+S z?lN4b>s5{}Gx&SO;W2SH&dqsw_YJ_7hn&=IDH3cA7{ z3=KO?*ex54v#wt#5T#uqRhq9~1Bazfh)op->3Exe#o$W0wu5q>2tgh>Y5sF;{1G3X zA-4OtL=|lXhx={C@k^JWx71eLA3>3pi&9n*o2^xG6RTvd z$SCE!NU_HXs%ottegz1h;mppv|ISu&D&L>nAZ-n2!ft)sh0P|gmszC)&_GYS0|>$v zZcUraNY!}%q$!P3tbY}62<6Inoo6BO;ZX2#bhJw6#$wrLae-{ypFxung;XuQ)M01>jeQk-T*AU&$-Wg66zE@MY`9jky5j#9o z`eZu2`x{=IO@n2^8`YnmSy7mu9IuDlKyYtbny`uGltS=I~t?Fsz#nD9_*9jeOK%P%bYH6M^; zZfvYcez^~a+-i{DS|{&1`pctL=|MgF8qMbAjFKHO^=UFvI_Qpr=;hEi3HcjlU#;s> zSsHp3MCvSsUfTuQ$@168L|&k1{U5sCGAyoTTf+?w!6CRyf(Cc%5TtRE;10pv9hwk= zyE_Dj;O;c;?(Xi=cmtPx_FCueeeXI?{g_Yxnl)>Tsv0$Fd~e@UzHqYKM~myO&}ZfI z8ebgdI1f#5)#*Hg%HUcjRbZ z=}3WRLl}DG-hJ1H(~`F=jt5oB9A6>??5mWGN3(figdg#N8bT!61^t0!@XY~)ako6JW8dAVz%-%rdU1cx&#^TsDia&e{X2Am870^O)C~nx6osqzR5O|KIN6^7vrC0%< zUc@OwzCKIrlgUdm`QpPSkLxB;__~A#n0$0QJ{hGrr6=e=Hh2F3M9GXXsGV;^L)_+!mXd;skJc%2cStiC)UjZpqaHD`9^siOHyOnV2u_f{JO;mftQWZnnca|(i2sISZ4T0H zvvRvJcdtB0PS%`@Evzkb6Mep1ddx$yFKa#G38qzy&Y^n{R@9!?QWc`9hwj2?OwKR> z<&!X~G9t}4lA2ijIc|Q7ksYkxd>50JXrROsS-yn5$~|1BZ9J%mX1U8$5mpK$LVlY% z^+S+9`y`?+=i?A9vC&4cY@X%j#Wzl~AKSl~oofw#lN;=da3Q?sD9rsFLK0FD2&3?} zeO*+Syr9Zar-34FFnUrZO=(Qum%req;2ScMf0%jDXOMo)mlWN%(kql@{-z6~aSNMG z*xw=??siuqr7dj;jsJXE%gN+80~2`hAL?o@Q{6t_=nlM0OK;v(haOrXos^&F`~)9& zgom{}-awyJ*VZsV;NkqgMCQKFp>HB=Vok?~yd8i}YtBEEaQ1iK^g^%d224TKd;JS_xR!$g8wmGIRU+p#9 zFRR2_E!QaU%$E1X`y5pe5e=9Tru5*f>=zRgkL$JR7VYWSnp?ziAE^x-au4~x-klH^ zmlP)W){5m4Uj%gFQ66J!xUKnJZs(&{osXy)FI@Ia`i`vg)w=6jr?;H@`A-skPS?eX z=a^oYF*Z&@M;P(udw-PpdM{9UCS_>YYJ=aKzGPX9WKimk*RMtDE;R`Ce5S#y`_Aa# zn#09g5;IbqFw|=zrxW1P@GG@K#c62S=S7UXiA*q@z(pFzvWjG`mC=^ju{q4K^loJi zS`I}zu>K^3o|=V%&J1eP#VTB|eH zudwNMr3?qxt(8J-udH`Zy0&V$ZWRF588!Q+TsM( z7(B~LUDAM!ghW+JbiOJyBbAi7et^#tQ)6A8N&qGWv$OGiJ0J6j7SF&R<4~g=k1`S0 zGj2>jBLC9R?K-^|4NZ2ts30d1yc_g$vvv5#{TY5w2!EW-;fM6!^;I%rXr4wZ#w~fiIPm6A z@*XbUqSKeBesLk;vF#K*{L(opq@pt0Kj;qUtSX7?(y3PuseOv~AYiE$=iNiBkYtgocs zbCh1|X0n3+92AUxx!uD>I1?e}{ROsjgmaonG~ZCYdK8j?sI>lh{HLQ*gLs$MYu$rW z@kACsBur^%Rd1~*+!^f>L2Turwd@+zh_l~E$Tgdik873v4n-Diqlf)46E&N>C!#|n z@-?UHg(-!bz$o7$xwU5L7Hf)u}ZyWken zQ=1FW-cMs%$MsErDBC#M-)=Wc#KAr74Cg^G&|hIcG>^G}&$!@6f0~Soi!;=*t$Y~j zAeuoLc026OH%BqcU0H`c+HZ&xom$XXDiaS$G0U&VO|i}psk85~a5vNyhB{tNz^PkZqOE`D6NeK;i(5#oUZ0q95D*93b~G_%&YO5Y{i zd2yNZ%^Bb{#(*Mxd>ulVM890Dw=^|wdr2-oAYwJq2fD701(<3h+)I4(g$aL)mWDO- z4)NQoeuW`)*XGmRG$p6dutz%>{`^E?ODoIoowiB4>&ehk-C(2%p*^Q{ca(#Zq2Q34 z2Qj`B@u)-BZ-L2njxHyBefb89>gWV|lQs4+QZp*@?lfaIlws_Krf96GvK@ksOQJQH zxlAR&QP)fzn?`JkOk6|V3AIVS8hJ?(^QH-2X%4hsM<~2kKVOJ3t8w2N&@8uL1$iSN z+NcgaT_wm4{1AxqIfnTmN|d;#1AUGPIPnIjeEAPiz4#DKQFDb%DN(6>77xckNrkkD zSeG6b@*R!$wc2$k$?8-gE6=x6RUH=%k)Jg3xv=Tfyeq5)ZiQ&f#R=-e=;MStd%4O zpRhPFVkuN<)I26}O0qy9iAK_%mG4^afiv`GBGJCBF+M$Ps4qdwxe7P`4*C_Se>)R0 zZT+sg@sg58J>q-riob2Ssk3xiirSktJoVBE-)fg?l5(lR946JZK2NPM9SsXo6X+&qW)sB1a~_QXCN;;FGT1#T%0*mxh&%9%E@RC5frlj?%>$v-@O2WP%a_Bw=UH z76$~s*MI;^_E|$}#C;W|zbZ?=uigDPj{?R$FcAt%oX5dcxTd=p?TOdiQD*!@d_>4* zNNUaZGh7KQ-4G0j#4v<5+V}guQEHAD$0A33bJ*Fx^hWxPUK!QZ9Y-5|{-Pt|o2^X~ ztF+ln`Du-ayMlnZ-_RbmnKaD@DnH5J%V>6%^>D8opN+($##Yi3=pH%}%VmW<>DCMc zPRwG`J&p|BlYw@O-wny%pDzLrj`4KaC6TbrXR~wRZCIwJ6GpC?K2$<831f4t0|n#L zm#r~hgr?@)%hV3fZaG*S@A|-q$A~+jN3HKEcNzTSN}&rl+Oy-cvww`mBjdX`6(I~u zi9%NgRQeC*T+NU%pVrM|GH`6g-wK!Kpf{;++^;jrp~T!Tblh-eXWD)xk=k3`2|w$t zP}8d|8EX9d9Sq-ieiG4s6fJp4{n?H~SSx8Uo@8(G*tyh3A9|!^4^e2_Mt>&c!AT*! z6Rk08ry+E7+oz+5{oq85M0RbR%+rQ3#`&Rghui(WEpt!_mDuodpx*X@6X#QG>05Ot|i8$dd}rJ2{20m7d@=ySbkon<)zQfwl1#?ckgh8`ha z$ES_lkz zj1VWdJMiKh;fkWbTS;qGNmhQD$Rr9A&Ep)M(mn%XJjS2g*gAjL$Z_Qn?|u;|NU-#Ew+ z8;|%i*QZ4(Grw+%+3Q78K0z(yJ42^mF!y~&jTRq|t zp}m4dpXDN3y)!N4RG!kI^h0VUSo_qYN_kbgRu})HCe`beE{6ja*X=%O{3huNA@RRb z9>V9C{^i8pmx7AZ*WQbfuSHG}Pk1R!ulNyb%=Pe}0IgYwV?|F`edW7R6^BBTN(0R?aYn z32)ri|DDFei?wxGey<$aj{kfo^rWkA3RPJ3Kgeii@!Jf9@nv)Q-q+&bHvXbDV9WV} z_9~qEk?M-Mc_y2o@y$o`nTY+8!1aC!+a1YT@8V4TnIEe=XCXUiY9q3nn&{LCAy7jR zdO;Z7iMq{kci{SmoE!BajeJ_T--qYf>E8;s*BeqF>@QU!r@3bzUqgSjvS_pYVyl|@ zpSdJhJYmBWpc>9kmio6Kovj0sN@3c_fKpV=NSm& z;j24a0=+=Wt@WdP<_1l-HF{TNKzgizGp7g7t(UsKGu`-q(@b6+OAJ1)gmcAz2Vu?J z#!L_w?rdxRuG)SE@fSXyk)$g=U=3y=Pwoi_qKM4}M|efGtGQ@}<_>5Zo~Lc}u+j47xAMMtEQ{-;aZ z8?_iml)e6>tofB%AxsVVgR9TSloX=saSKfMeP~~D*JH4A4PAEAvINQ3bp?M^(7PAtJ=jOst#G?509fHC^7Dm~J27gG z8M1Jttzo741mnUojnYU)?ML+MGUtVQk8J4uh_vi{Z?TSN2ZbH)xcL z%s&qXdW{0=$y4z6+Ari|d7%A4bdcn(M-GEO? zhT3)+WZ*iG(@z9@et44=;^_CCt zlH&Qk&=CAWL)-P2X3GBu#vf{UV3m$_3dT6D9bW~=>00O0@&Uurh+4Y2!EM@1j%w%v z$Pf4-)4ynAFGZILKm@<)d&Y{J{2$`_SHcG;8)Tk|Li=+5B`vJf#8#}Y^cNXlpADI; zao_Oj!1c1=6lf;7m4|R(sX~Uhw?5gY z{Y=lhQPqE0mI9{K2OBL|0G$Fc2qe>s!%z7K3zzD6oQ9 zUX_Z+&X9tY?ch|`ZmrtfbS~QC#%XA+OCj1dQAnVrv`E>Evn*68YkJx48~JGTyf+@F zi8acbs?h(b8@5G-1@+>>sa=K_tIleuRN!FxL^3Htklm6Md~RK0T^k5N%yM_AZv)~f zZmk)}ALnoV>i>5VQqWY08LjNGzDwzW8z;wnZmIrz2yec^n`F2UHpcxo(a{$a@PiTg zK_lg3<6j(=|Ieennb@Sv^IIXP+hO3a8vY4>-&Gd;`P_>HJS?W zRdoGyN#^as+Q>1e<-&A4Los_+=pBqHocC2K+5t}oGb|BOfzDo~jn=)NR_5trEtK*% zhiqrMp2wPL8Q9CAr_j=5BxPac49qz6{|7$*E7-Q78mH69E^K2z26TD1*}SE>6#>4f^WIFNOP+)1W4TE)ltSDGuEH`YxJV2|cw zq6?;xTpJQ-%Kmm3LGNkGocC$JYYb_8;VyU*sFBAr{XzOwcNgD-$vF7a1t$kF{% zukhv#q%c|E865(jt=%GCua_3|w;6v|F8(z;|9TwrBEN34z_#nT&~L%pz(TSD`)+~9 zl(+qYbH%3gO?uS|L}iKvh#9@xoU({P$Vhz4>wOqoynJ|v4`kwFv>AVcmj3SSzdiGY z;x!=gfgCTHIFB5ve& zD~a2f0uC`~mYOW}Z8Z{WCWO_nEeWX@j~);2<6211HhG5C?P#dZo;l3<|AB|94+c_t zyu#c1c1!deG-Tor(_ks=J}U$kw&-L!EK_$f z9S@!1gmRS&4jr2SNVGR65T<8bz*DPF+7F{O;P&4O;(w2P%OiHs=t>Qg)@-Qw^Rlu6 zznh)$s&psZH-#A4E$$PKoUwx-z%k*A%K(MX1d)S6kHvj2_n1_x4G^0H<2$QS}k@z=40xS@o3K2(Aq8! zQ{ye+@d(tAbf-%yGx~a+`=8v|*HsX9LW2YHTcQ_;A5t*wY=4ezos^oE zU-zc}<)$~L)KUoCjv*aJYy+*)2500DO}WiGhNAc!Q*vrUMvLwJYQ@;)8^90+{w95s z8ELNYW{}_&L}8EO0%k9k4fPE{>f13j{lCJf|D1yV>NDSGVJA1fpViY(6jIy+f@7+4 zOv~5DkP^=`g{spN+eGMHPM=g`n}3CzpvmtV8{Lm9*6Kdw4yhZ~g3sTQd6*eLh9(TA zrkBRFXX=;vm@1_Xr-KzVxrSBU4{dpee8@dMoq~^4?|t+h0q!HhQPN0>(w1Eo(oUi@ zkr${D+__ud+kA%vqkVd~Nz0&6#WSKS8`iJ{z&}lEn7~i(lm_}H2d|gRPuzcCI3N4! zl2wnS_X;n`w<3JEjr6KabNCW0Wtu3ZAh+3tk)R~TJJ4FnJ}|%*KXD{ZoC9Op(6-<~Gv1pSZ~QQg*@3o;(`$bT4OVjaREnBLVX^ zH`Wex3$ADBf~MQerlV<`DbeAEqZAPXm>+>$^~fTMh%KPz_2upMeDKRTjz`?q3P0)B zJx$0b8RDPjL@f>vUe@TdT(D2ylH4OBtC3rzh6cq{4Jg8n6N<1)b?Ol1uV;|Cl{-k# zJLou3`A&4xk&5*is`Xr{FowIO)O4*!?yx_lL*ITd9``idA(+POY z(EYQ6rjU7R?JIM{w)@96|A-xBe$E9nj~WD|E3)hs36YqVbIr}@dEuU& z&^u~P72NDcZWOgc1~PMsvWOjD&g4soA9b9rZ@V@2oH{595@_O-`lBzEPxQ?aK=x{o z9m>05R)SRSJ!V503&etI$3>yDR#JK1GHeDv*3PFjK^(admY=nuCR@HptKFZ=Y;Tc% z%Is}9d4dyxlS7-%O~PM6q0OxiEuaHuyY$c>|Jd3^e!K~HUML#bsECd2Yl~_L*)qQSk_@Zof1syKJvrT9`?|tsrbN7%EB54z*SR$QSwP9xbo2zTEC1vSkuBGl&$L zg9lEh5DA&NQ13@m_)(JSARw>RhKEy`j-ov0(E#^L5#cH;nL00$-Y>UdlJHwD8%YAW zv27{$A4*F*4fSs(-Nc&(_!CByB1iD>n#zR54Rr=n=EM4Dek3{=FHhorL``NV{Akr zpH7(cy>x>u&BH|C^{2NM7xQFe8zVEQU$tsc%#-iA8miArQRWP-qA7C5_=#?xz^)TX zdijD~j(Nhs5q=dw0X&@97;8%FyR2RT9oLMQ-mlK5@T|b`ffO&J?d)Hvog}8Sxk#`@ zQe&gMJA2CaZ|3Tej1GkgI)|p+xn~g~g}*$Pp5J;9%f96_Ss-mzBY^qG=G#gFQ$Ba* zEz1*vOQXsg6}sYxrUAW^^V79{&bR!kTiNVO+sQZ z{UyQy-91TZQO~OnjjiBD5Z`o9Ei0?;XI}wt&*hvc_6AyNl5|B{|3 zQ!m_^!H*8d|CE((t&Syo2j5V{PjGk--&sOclpuHS-F{G0Sns0~Bt4xlSLNY`*@x-w zQD~J&EsZB+X|Z|qAFa_Yp|AI;J@Zu7vu-(H zZvkf!iTrj)SAl`O{x0BVNKP}A#MT>()@@0s;pTh#uwPgk6hfn4tp(G4OkI8s^HtP1 z)Q&BE^f`ivfa^z((1j{*tFyH}|D$)k`dsLb({l3j$Cq~z;tJduq%5=8h6^(C2}M_; zz{QiGrj_Io45p>x@R+f~+G+@P3lx0d)>etHk~(WJmC{pKx}2*tCyleIo?OQI`G>6 z*ls}Z)9T<2EhPEot%JzSJOfaj`tBvGJ@A$f&7xK?@@7@nx=^QJkH|sWhg>qLxgpfx zqtay0c!JIvEwIW(WE176HFIi>{w z&hhN>YvtD}-hcxP!YtMa0+3b_%mi1;$3~0t*xAd&N^X30{&7jcIYrv4Y^C)AL4u<8Scf z;rRL~+C!s;i$=71Jn>6YI|S1RruG(9o@^V3)tFK5AO7!sI}j^~=twP{->PR#@9xmE zEoiS%D$cZeg2?ZyWKJm+3u3uDuICtuJJV6k`!x2+os-ciPa$mL0dos8)9r1`Zk%%3 z!+66vzN*uWluKpujf9w#(XZ!0?6%2t3nx00<+hL_-^`5kz?u^66?9#fvii}zSneAJ zi^8E@N7_l~kW^E5dFnX3F#GW}MY-o6=*aoi`bF{B@{4Gy?f*Tu&nU4tXY=~iGDV>G zK5geS@U~nYg4W913C>O$;YM&F^Cy?1x;>M4hB|4)4O*?S*zW9A@`SRc<-rgSjHby) zdAD$_?*v=?z8N%Y6K0fDVcvATo`_YbGRZ}3=pLt7XS^gs+&QM8Y_8K8R;m}A&^zw2 zrHDNr*CC3Wz`bMB>nqODey zkJ%v?0#CKo{i^Tiv@JowU!6=mX6vQ6aCR1==A~M8aqAVKB5SERNcXG4XD!l|Q)IY9 z&E?BrkH;Oc6fBYOHCMD|CL{^r44jZ&w98mIx$G$lBn<4)%UV4&Ux<-T)|03H9dYo8loE@N(PYnoRHM^7yJ?|>IodIRfftSN7pK`Cx`bIX zDuHv;K>{Mv&8L)>IgBTa%@4vTarP%e&Oxtw>D zh2`q|@dk(xR%i8x!)qv=aF5SkDIl|Ej9CoZ{bf@pF>^0i(r4I{@l&Uaecrr52|kD? z&Ms!BxS_%BK&xX6cV#==<80vEXodYIK(HS9XZnoJV>2fvMDm;j^rSR@I;m?atz1Fd z|84^JdsV=h4*zz$(NUmlZgJ3e|zW>u*` z_dE7V(EK+B+#X77Jtp8WH%6jtxj>VDgqkYY{rKwc$X5qZn9F`so!q|WwjuRHhRQHm zfz2j{D&Tj^05-Y9jy&qZ1ma}^&r~8;n$1u+hR-WHIk@-tp+3*z+(~qU>dfY=+_09P zR3%tsxGAb&EraT0Mj1;?|0#@Ju5v;q?1JsW!xG6x;vt$!MBh@mpBa z@lkw^M7-3WKA)FIB;Q6$9=YGf_p-CBM8XBKSc^Ab%O-yZTWauEX>vWwJ$FWj0s?a;9`7zN@!dbRY}(9NUU%jj>yU zq2h&$inb76J91eXm}B9h)ES+&#kqsvkv$PbeW)JjdOAB{?YpfT=zdg| zwZI9Sy2fAlw*34jV>gB#eR-6`o#Hll1J3|$4^&*i@}#hVw4BJE{TSIBkv`8L*#Uy? zUF2;%=?2F0!Ws70tBEPx#1X0B`(z{K`l;))JoZq|y38P8pwV}W!|fMgo6 zyZ2vTltA{|LDU68v{fInRAavGVhPHQ3`cB4Rt!dxbpup;hO0e<>8>t$!zAhqQjGpOHZo z$Vsiz&(A+_`K5Y(lbZL!8@l=dY&+>#+&q>eGNvOuep^{-*!Yua;D3hj*wM@dbQx$H zjsYYoqR)v}B2h=V*VD2_Iaw}_&cnP6$)0OWq`XBu~+n<8S$ zW_5E1Er4F{#fsDzuaT6oKA${-ciS?+DjCtXrs;Sqque}Cac73NUIpp(pRKx@A&4-c zfsWw@bswQE8GBQK&VsxP=r@^b4x-ZD4IAG0#hFaNO}ySgfM;!$QgRmAHrt#VApL&G zfPl8S12n7h(w1O7lOFf(8*WNR_B$bO+>`n*m)l>VVz!W75SFLbSJEpr&wL#eQ+y{^k!?fe&&fYaDPDD zb@`^))P{?H{tEoqB#e{zQ}D-AHK!^*7Z*KKH&Gq1fLAx!@ zM(VTMC{@t9eA&z(+h%AU*hU4n;(!`GQ=Dfq+EDL z;d=6vm>M;3%Oq=yU$O=vHy)(gZ6;ozHm=H(gG4?KYN=sZ%krFYfON-%>z_80i}9Xm zq5MZFk1Ue34`1R){v_QnMkC1;X+3C(Sd6kJjA=jcVV($q-u3c|+}<(?I5|0)E{&TL7)(kbH&%ZvdiT+gg2)MOdAPgX=`i03DjYt@cqrX!dMGCK zdT@sV4appX=eWqXo)3#6h4zS#;Jcldfa|+jV`q55zZz`lHR-c(EkdbW4z(@M>fRnr zzJ6VtMygOodm-TIcpwk)ZuI`KR~W!2L>i$G?vXvB0RPq38o_ZWo1aFP{Y;f8G=s$( zE!%`w@JA-*-6+c3@{1W~6RrE*0mWFWKN%-Lad=dfd3}(ICJp7Atd*t+YJ}GP2{TCd z?B3^oA-4brEX}d(bJU9@`74!rs^}<}SR$%%vZ}IMRir|sztC3hTDFklL*Z{4C$Fkc z?|)%`P6W}NUr}#gxkZ2;Mu+l=^kW}y>3oFtG(oq`IF9BEl)LrS*Z#l$wLU+M4luoz zMOS2AzSum2)xHy+W|7RPufhD*YuwgCs*HYSc-bxtk4vfupGaYRx92HROyEtrLF}1G zZ*^<$@%^$faB5x269Z&*+`X+;-cYU1baj2sM zn>KCEUVsF9{Hv~;Ozg97g(JB%1(qwB#EF}N`UnuZ#Ey z=0Zp8dZICoD;eWWi}MaTlSBzQ3c27%*2SNzM;gfqJ49R;f23!i^q#{fM>kSeU*qvB zz@USBozCd}bfcgPYJHXdOG8^>JfMQr*RMl$Vr~Qc9X-KgY;iO-IuGK|8&glnm#4`_ zfX~k3-iz5XoZ^QWM8}Ww9p1;3@Wg-&XFPvM)}(S#XO2u{ED>wu7dl+?6Ng2P^E8U0 zz(Z2wzM>44R{i>=I|HXKAgA#I!`yclk$N}#F1%m*KRQGSCD3Fq!#I-MP0sii7*B1_ zR5Y+`rYb%kPS!JkCd{%5vSelvo;iy6hPLjL`)D}#)3j0G`ZK*WtBog%j#ADaP{S+~A-Zz6*M8OL(6S|Mj z2+MM#S8SfZ#^`wX>e}wrt3UOdYnyGg6{Yu$ki~W_=)Ba**YzRjL80fFbEJ)>Ki#cF zIpE3MOCgW0DbAUFPMM&fP1-wzTlc1|wu!zl`IeHf~Wg*%MD_x3OAiU4_dP zaJ=6PjvpH`FP!<9Z&vf@oD`bz`Yd?QuiO%a+?U>aFMOrWq&!&e_Utv~QTCjjyy>^w zk#`u>au^MW6WOn$Gma3fT9r|G1!wfkeHB<1wQny|xCsiW;Kt!}!CNqBy>43&`|L&& zZRo^9p4g@WwV5X^CA-{_U*q@e)}tuGey3A!OY>!?Cw@Cld#S`@A;&_Je?)~bD}8`k zYCy`LI5%6FZn=23>z2h^Yh!PqsH8g*`JnWtr>VW|v*Qf=cG#(;Td0H8P89Na!>I|> zn2TAI!3n-qB|mSN#k+Yu5!~c8!q@rOqQ5***1HE7!9_tZ?u{_UR*R^KCpE|A*TvHO z8QV|C>cmy9?X=|==r5Gt1f^2C-yc(S>5XTUabRqNDO}SVntv^T*|Iy=YvYrOi z3Vw2_Pl19rVvcWi8Sc?pp6OH)P)?PZ49Dgo8|MzI`6Z*L5DaKHpTp z+!GDazkcva8`)Or(JSK+{s#4i+&=6p0vZVb89fB3tl^EaVA;F$iptrm$)A>GC?CA= zZ(S%Peq8T6eASn0#XadG+@6dY%DgM4m?1Cn@nF3kZ&VXVZ1X-3l{6MGC~#P&*)p0) z$fE(K(GT~2wcc&Lo-3XbGdjK3ypwqiQt%6IIwSSA-1fSh?%v~|M>_8WNo{P$cb&T{ z?Au8iAX1C0F;IU+0|yOb2}h|tXxwLwK?oGL&VFTO9)`1cKW-6(%b4mrG)dj@sjbr1 zw?v{_b2IErGjuq#j4N2HG!re-D5*gfK=w?u|$}$I?pNn=L zc$oIDdmRCixMOraJ7PiOy(IJp9Nrl1U6ugb=bccdKnN~RF$)K=9Ol)Wy+e}8X(6pX z-sTT6XL03u9Xsr9oHx}cu{6>AZxo?-W6F{02ou>2kdr_PK_Va>+^fZrT<9ZnsrC;) zO0(JuOHWDG_5wXq^@i0mJw}XI%znMl9fpV4*qX3b)=-N`%=R8TihlaV_A>mScu_Hm zywrWp^2D;`x*<5{^-`L13R)KpE%RKd#|je9>9fH65NdstS*q2mXF)JSVIgp7RsJ(( zRaRf=y^hBO;=v*@;9fGUZi?_|*zzUm2OXhm0Eq&}oqCkA?=EVqK=|j))?bbX=!Ui2 zAo05Lb4w1sh=`jiGDsOIhhA>!PQT5Ny<&|b$NAfEpY)h5s6E%w>Hp>GUx_-LK}h``Ye?BHtzlNQ#QT(#n$~ST) zQ?&U2EFeyfFY=-+P&cMU47`~Ay*YQ>DqH@8{sXnO3mJH6^=W}SHnQdV6rFu}CDj`d zrkvM9ikAAACf)GjJKZX3&Vs3De3bG{{MjbWIZLYqC3e9|PoyV=^!wHcnp!09;1gy) z*`Q+8P=!OtpzYB2Y|6J|!Be3XIA=LtQLp`7ZGxQmQ}~Wy|BCIX3|p8+kE0{48@GDD zdS)Z+aNw#K;W%Jm!*L!mb~K=dvZ1a~NtDPam?SoVz7sgbT>~ctol(pUiDqSV()NG} z3F6~aT_Oay%oFSADM^=6IEdC+`{5YNZMHJ8x+v<_Ab^e)rBiqq8~GZ%9dddf0s(Cv za`eOkT8w@{vi8(~lXRNT_srkbK_e<~y--@OWpMQ*(py>Vg$9g`ZF-+Fy6HP6lO0XJ z+Q()^s`hY?VdSP#`9CwX$_lezPSC0frNWH~QFbA6Lv7ghu!*|SIE2a#wFsbj#jRsn zfbugmn@o$poNc~Euwh?tRcnXdW#%@ZGq0Xc{oKu33;GS``)S2efxF4gvC0_Y@FZWs z56y8m_gaodhyG}W%c5VrLGkUid)s!OzMb0bT_DaNC+5X%qj17;QmMg)*GPA={zPZ3 zDq9&HXAcnQdiDBnJ&R5?=@c#g((QWJ(d*O&qHn%wO|<+qk(+yiByiy%ek7U>)3E^( zX#mfB@q(StA|4Ea;9=r<*lti>hl$WtL&zf zU@amJPsk@p{EBtOIm2s7bJiNCleFiX^DFI}fo>Eq3HJrhZol&*4lGxYOk-$Z5uc`= zQgO|x2IY2#fU%88>dRtX@>|QUq+(gyMQ?xW+lwvUL!k)jk8(vP+?*_OZQ&d8FlFk5 z;r(G&{hlrzG35{ySXFiaI+fSXWIZ?NC#bJ^K_uPSz&O;TKb{8GPdPAYG4>1ZcaFrf z^pp*H1w`Jhr3eUFKbJ^3uiU~q!ToPUUTmDMAt}5LStm)NS@t)K0n~c*NnxZoKE6YF zwysctD8)7gbG22h^if({@PT2|*&-Uu3mpL5R>D5XrQqVi`!?z8C@lhBM#OpztZIZw z&Fy0FRtvACiNqkAB+TC|fTAUQZ&yf)ov;k5aqJaw+?dvI7m>`DWmm$>yE(&S7`I1L zS6C3>QlSy2D>BaThb7zDEueSt4>DBXbAO!q*qP=-zVE!ii+MjG-#ZE6E9cJWT#bn@ zf#~SE+qt=v!tK8F2^0B^+^y#7b$ZX%d0?G~n*81XROH?jsN;&ruUCGMsf4=|^@3tL zy+E&qO^w&Voh6w$b^wUQ+jBEeZZF3v1a*OmG+Z2xxJD5>pv@9z*I}l0+J-BjY43HJw(DhwTmMcscDlnVdfwil z<)NV@aE${Rr9n5!*n+2fgnw+{FIRS-M3CC~k+xDtc2E-fZX604U7?G3#Fra(AzId9 zIc10FmMH%`49-S~eHc7l53n5eD|F>_lg{3?2Gz#weCG1;brhf9f4}_Jx;ftsm6r%H zs4LjE6AC2rAeeoRt8kWa9=;-^0FP#g#3U^j)jeA(>uK~fGH1GY% zYV`ZHjBrdrThHZ;=(RA>Wc^xyYaIX_AwM#os!6oi1C*9%e2`Xkb!WWohIYvX26 zKJsgzZr?nL;9APm3jOY(!^dzpfl-+|AgXf$TGQ_|tm#bF^zf&$rHa@&3kz0pC4Bl} z>r3;cSWD&aw=e-$((~^CP;CbW_vIo;eWDKo;ELvGx`%suM&DZgjZPJZlSe`tw=D@y zYFX>)m;3s}wul2;5}z_bk?q)E+$o@Zn!2UK{`2VxvRn#Ruyq2V40BPDhbHIF1icTb z_j>vXef4dEq!StX>v0+zDu4=z$)w-yf7eMcsE&e`onhh<*P;}>&Gs8Hl08QjOm{Ae znDOT_&?_T|De!wqd97r#Q9rEYv*rTR+R&kvI4rySG4Qd15()>)xwOO^~X6VP_SN9)n&jTtc7mR}mpKh4?yg-Uw+W6`pkGAycUcwNZHHcBRV0u+#jC z;_OFUu?7r{j(2gBgrl;k)B-0&UgHq%aEDChLL-l(%7=JqG__*$C5SOi%)FELz+yx` z>-}a8PAQ~xTW=Hd;r*Tyx+S}9BNEjO%Km8|2bn+DnmBmn(w6Rt?6=~D`(YqkO62>{ zvZY7t`4;z(euJ)9ZCh&RQMYlWqfCe5%RHg04?K4aws(cjK(R*1NvNLbcVKe9#l8P> zUX^yz`(0B0eph=vVB3_KS8XX4$njJH)RUf9t>$iMuI&+;JUe%?PS97gb^6WAKrbES zy4w*?bHW6)YE>qaI(++bm-7%=(SCED$VPTt$Rc5siZ{@5DEIBduGYP-Om@{z#TH_k zFg1q4k4B$;bv&xMYFp2b^i>yJE;|J;T|A*}&DTA7a}Q>8BPhElGq!!_Yd31IBsg|h zP*XVgo)c+12eBXv3Dl9IY3>WDkUW> zjY}$?xtSbOT?~f@bl};u-?;JoGhdx27RCPqVL+b0-7*17HhECA-$5uDI1mLx_D8mF zE@nNu8oe(#9vL+D!NH=&)ibf^$wyIBOM{-t$(l<i2gG^PZ&M&1LTmwx_Il$?11%7*uZT`SPEX%Uu9dJvm8 zH0p@Iluj1*ZL|E6mEFNl$`g(DXELs_Za(8)|J%?#==CkDi!+Y$vsS(spBbhi6e3|` zQdYQ;&M>1(Z!2DV;%5-=6u*Qa9F2`;8712CigpMoA2}VgQX=PBI!e_MPrY~eOJZ>8 zZM}5X+7cTp?so@219->&`n?gK%xW{TMjE2T?=9@%JWDp^UZ0(N@pJgZrFS@@J@FH~ zJJ@jweApUUlyOIP<7yEI1dtLaM!$=`j}n+>ELQd{2bVm=`v~3U^YXGTzS(;f-IdK`3YU!_^|_P_AoN8aVs`AiJG>i0NdLglU+-rpynRF=J$e~j1u_c;lTnOb#}2`(PkoNA*;%Ad z(JA`vgC9E%e7g6Y$)fwa*CP-_gO4gQ9cz|oGos+|NyqG*ifTt7Y~>Vh_0xd17Q6KA zj-P&~&hbMYiNrWV_=HY4OZm#Vx6jIECV=vlRUVZQC9F#?=(HPt8hHo*_&Boeq4_1H zZ1;NPC>gFCle)z^DfP?ti0uge9n32Zm&jS8`rlrSJTWX}{P8;=(OlN!tbuU(0bIN@-hkeXK&4t8td}0<8snY<)fdeH7Zx-*6H+2@K;G| zl(v|hZJj>+)svV!dj@h29*Hj9%TSn?i;Rp+t`#@Xru9A!{SW;TAHBT-{_roU-FtnVF<;Oy6aT#H1+1pP&r7SrrUzcd=)Zjz*(}7S>MdAY6~&<5&e(ZF z1(s~CL{&p0vQodq%sCY(9hQU2WuM}?7bl}2Jq_J*v*6FwRzfo)9T?uiap+wr6W<%K zX!=)JxT%6#ZiGhpa;#iYi9Q3lQ+!S~7ME8b$m8A8Id$I0k#)gHheQoD8lQF`^KN(W zBXx~N=Kkyx2!tDXVy!erP9;?C}{&m-Qb*%$%S#`qDBwTWrF_j@-2;if9x4PI;~aoPbSjkof>@iTQ%Ww#nzy5?97 z{O0dn`u4@opxrrs$v(ErI-V$~oj@+V`QGh~pGl?Te!Vo- zBV-u+y|rJsmbTJLevOM5v9T{GFjdVP{T8cPtEU*5N=K%OwU9PPfhPjX`aP%)Hl}DU<(cQ znrV0Ar6c#p+52VCc(21!j#OtAhaIuajoWy(x-g_{_LeFe-AHacK4f!axfIR~?~$K_ zUf%UwI}UIrI{f|scTkFA>DwRUkio~oo8BLn-1&Qa_}&5xIQ#^3$@QUO`BY4vR)w6j zRFq_AqAZtrOLK%qJKThg<(n{P0iomjMjHKL zj=Iaxx!D0g5NKZh-Ni4(mok@8x^5pqAS=V?t*m4{&;@;F6v7H;;jH-DJ^{qk3t>9p zytvWMCzoFFG0LIH4pTGR7QfEJloY>anyN@HE2IP=HujcpRIwIbicJMFxW)Y)!hM=P z2!ARNs;}3N-yZlS16TPxDZZ$u(Ul{eLXLJk$8d&4M5gcSz8DGFiLYDdOEugjQ1g40 zKiY_~-4g30!MXHo;{~@Cm?dJl)A%Len@qP-MpthU{_iAuUotVzUYr*{w=w^~8}*G; zMN9>y$b$BF||6OSDub9a|lNqMqo@Y3J44;youl6F+r91VbH#dCP~(Nr9L(HH~^2I7cQ`=P074VJz+1s}Ze2}0Cb3%DbF8S|0H zYihtTc+$IKU{_#+W0j%?jZnbVNJ6azi(OJvI~bHiwki>%AbsbthjmoJk;(Wy&>xy z@}kqrn>&Z17KV3HQ^lpE^+s_{5FxG%3GoC4?FlcgHzf^?D_+C; zjTOpW5-iSD!WeOSLnnMi{aonQyp45h*Xx*o!Oeu-7QK^^7;wt5jNeH?64Q4{LGSO5 z!oI_i#bs0C8XD`dmiw!uapRS&be>wmBSkdlZJK{gs>6OLSGXO#Nq$G_!8ggFR_Rkq z(JiNtvZ+ZE@%y7#zivL75;$&aIh2Nyl78@qs8BmH&d=jvH?N~Yt<9ulIL1A zpDn<=%D-=-FD%PLKIcF-GU}#Kgo7s1cJXu|8e2=(RP#5H-ixkWub3j8;2aQ=eUW0} zqji|SwtlD6-`)IoD1FDV$v37PXP=#|Z(VTWS-(NQK=bJ9mOX}hUVWW*fovWv{YVn8 zjoa39=bCyP&O80vFpFj5@vMA*BA%MPL}^7mipzo)^cu7HC5F*Q=O?-3#qP?x#FDx9 z?TdiF_sHy5mwZ{Vfl{hSwjVWeQbnYuEO&;njUp27i7{c~20Mdoi$1l#8omC5E=s6#E^0u(Jl;hvLD*kj+XG%q~WDmwbap zFazCtcE$4Ywe0<(xHI*R@3JxIgv0RpYxCjFIs`>UW+i+7vv0v)PN>&u?OrkN89r3G z2FqT31dUaG1Tu4w+NY0W@cU3Ws2|ei%*OOL=i-zT2C{3dD=xeDDJ=W=V{UTirNTB8 z1zihJ@y_3|sxBtfuG1IWMo{iSiA3XLKI9iWeu&LFcwz>h; zm7GzN?&qjl)0`$AzhEQ(;>yyt@Jpmgyl+XL_%3O^o<|lt4SXq^N2rUM9*wQnwl_Y*%p-KrJ+Zu z%(x1`%f_Y6@-NVJu;aWs-?rpwOwPhLUdG=(tz#!KTNdhO#Ul>F zk54EzQE&Ad!At*q2Cr3cu!rHzj7~cZxt;RQJnUBa+kk#67?QxFWqog+rEjXQYw+R| zHzI@j`e7$shavf9X=_@~lhC{JdCcJv%c_G&hmK{@*o`z)QS=;nTr)#`(X@N;?DUza zt=q(Pwmzgur>y8O+OA2?Y($3Md{o@V56d9C-8yWcf4E^PsU#6pg5u^(tn5vR?7Z@}?l@ zk=@`0BkS4*KgKqz=Os73j!SQ{5xduY0D(wqz1PcGC8kC;7vAz@`AkH=IMI)sswz+X zv&PtFyf$e9rm_JWbKE#k%1<$ulgJJ@{%1J2#MHT(HC0$&;X_er21ha&7Y(^) z`LB5c4?g)WPh>a~7oK#4cGN{0Ls+|_8rgX%$S+Fg3;<~$ow70yiS#*n1)49}3^Fe* z9aWpxA}xbw9j0i=$9(A3sUSr0XQoYWeNEWWTc5YOEUo zonC%VC04xt3oL9p03*NqJ#aDv6_W!vD8{$CqeHd$E@MB+I%& zVFJRkXujJp|15onI<^y@veUJ5~?mbG9yrTBrYN>W!F}Iua+2`yP5_809*%&xJU> z_iQ{pYZ;Ymj*_N`u_Z7VMyQ(qH{82~$Fq*Q9>)wQM(v6>asQ-eu(@_4JluQ6bPCES zno*#IZ`v#WQYvwVHJPQXI<^C*H=$yGmm@Th&dZ-XsnAqBd!2P9C{$$ zn>-ywWz;3I*p|uMb~^dSad|Zy2lY$r%-Mnup86lYWCu=0b^tkfsj9yOWV)@=67gpA z!m+})yPp5fMz27)KYIiLZ5^{RGViRet-Xq7Z;{c5FN8IX6EDs%D zp03Exvr}w^+~h=nb69Ige?6wPKAH zXlU0`RDAd-CcS$P`KRL0uo>PhmF!(h(FP@**Y4gNPK^(8gkKZ{L8I;P^Ll*0 zV&i4obO&kovbQ6U%8~VYPlVlJPA3_8%PupKvKub5je^M!ZYq zclZ%~HSn^jcjNKb*3uZKa+~%EKKkGZ3>|+Dt{B}--{*4HOW>hrQCpJ1hKeJrP6K69 z+IIR)Y%H4^H)4H_Y`i7LdK3-iHK?fI{t|ie%-Jr?TJ!wZvFEx5^|kD+>%3LI$|txKe@sH_0GimFBff9YzhU0H?VF6nGxR_YN# zb*L$yhA&o~hh77$at-unXWv1yF2amz@?DNcm(Ho&P`tUfO??f%Ub0$^^<^JEhtD{o z9!L>cVH9dJ+-mBr0N7snPn1LUL+!2{*B z(y2m=N$9LzsU5Q#5yQu=DWy%MudHdn#;;~!(QyMYTvk&yEXMzyco|Cq96(9WLt0Le z8s2^y?b1(KRU5{pnX6GvV_mteW+kRfnTnNM+Z@cyM|yUV8tncQG1g69zbXBl&wmhS zeS0j%$n3N5I=uVFBCKLMGMXRd#>sK{D&=PEl80|7|IVjx$`scVG=}8*VHS6_z6#&? zDF@QM&S_9AnGE|CAO0Qmx$iBk$@J^!xR1+iY+GdOTmInF(WTiGdVZru%BQLTve+m} zCtx5bGtD?3!ZIr3w)6%>W?uaGPdHlANW@y+#*KLm+Ue;{Dcs-oMnH}A{PV7;SpE3j zH&TmxWJeMd*VvTUUj(tCnGHMHQz=`gk@ur=;^L%1$mfd6PBerMcN! z8P+ydaRiQ|aohk-Ms#F1P}zJ=H+B<$-RMn5{J6a_Yk;3?&~tefd-sAol-Kmb0i(M! zOI!zk?``kX)`szHQn&9hR2`0&2RvHyWTMya1uem8Hzg8DFf%s54tqj$14UgDNY zCL@aJ3@_`^gImh6eEAlXbK!5gOs8S&L59!cMt7;)hCaZ!1Ek#%x1;#6)Gv0u@S5j# zBu+QX-i1IUg`8b)6&MP97Ec-l(}0`y+cXOz`sw5q8A}^`^FqTao$xY^UT=fhxmtqz zIDT4PwOoz$bgosFj;KX1KaCX!-H7hO#{M$&iB{vi^;DEoGIbid#Ie2fb%87EjhX%| zDUpOz+M62L6)19p|4ieiS>{_O|0D=_94k?&xCW6lVXA&kh;5dC#f)F!j!%kEw_+Y< z&Z*J73a#Wdkd^N&sR8P?RHLH29#Y;^j`~Ufsps3pk0HJZeH!0hN=NPv*xme{$z-*bm{T4=vm%#Gfl~Thd3%xA4l3A3RGqybeDWhP*|MsdJ z)du-DsdVhGhmE3_?XL3wcIttCFaB&(4z)rrr4v43^Vz~>;)JX3z{+1uzU6DHW^J!b%^}IG=#VYS!7r$JBa)#lz03#GJ{8*@|!5o-&~J(CI3dINh-T9M|L-T zQ`nCErO`=gZ)7h4H_plc#a}qdLCg6(hPebkgQ2#1hT*nL&#z4WNh77>LLB(1Sck@p zTpHfRY~Q#qOOS>-bu(F}7-7Bivl5E|r;fbTuw^Y8X{cx9mC?Yb{z*9}@v5woKy8|T zF0;&0wOb9rs){wJqmdrW%tIhGlQP5@c}|5hd2G}46Yw{&C*7~K8Rqlve0>$DIKV}H zTrdvtcxJzI6I^#%~`g7ZceSb3d0+D)eA?A=tG(stX>~Nmtxa#D7uS` z!e?fuAUl^QP*KM46Ddz9&&B9@qaJ+6%BZJB4*>^gjJi@=C5yQfcfJ*e5RVl zICFWtn;7wV>5&ybIiO(1uGO{nb(aSM%0XbrhZwyXbmwy-VTj}+sUn)_$Zr?*d z)~w6&Vo@-i|4#jqNAWYpj2b|!liD~)E8^U1ePkF_P-#r1(4tBUDu*hV+5^o-D2okO zK@p8KPIr$+8faMawe~q}#-ino*pfvVJE4o3-!V5s;q)5<%yBeZ1$ma}7}P!yXCeg}q4 z?>Y{BM;(XkOqo$Z7pX=0{1-9r(|6!WDMe1{KxCB+LSeuDsQ&1FRFs{K-rdVo845S7 z!O9Q+j+Lu{9!Fh`E@j13u6!{5_tJkO+YR!CEd;wybB0`uUW0~`*G+P=he7$*4`a?( zU#Vi2)n`0<4LcYa>5?BFw^_R$t3J99D^|cMv8kPyq~N~9N&RbnGOXV7G@11^gSwJ6ofr}8oB1XJ0d zOz~_b{hg7ct>r(d=uMG3_E+s;1GHc-&PZ32EsrR6@}Kg?`iqRWbxJ}hod)9%oed}V zThWt&0-V(-aj2vGkq4Q^p2m*aG#cSPcIKEh=&X+sva_catLp%YG&&)a4T(9jp259~ zGIMFju`W~2iL4X%jp_6K&gS2a`PM9(hdHa~v+d1-k23)RK~4=IWA9Y?cOiX?zmzR0 z9Y4vg)>rvvQQ2VHBl4sI(_UYMBgY-A`(kw)dkK0y{zGgjNaZp)3LS=%?=KxBS^dvJ zcY4*Wcmp49J_6_1+3?CsGGM_D0Cqx4$098Q^dIp(9N2dVH>oylTeztPpx@?}GV9;>ZI};%ww% z%2vK4T|L{oMe|?6TVH=j8sY7D`CHQ)B~p!-^48poM_lg`8rSVP1Y*XzBw1FLdBwVo z^*y4I=+XA;i=Yx#Pi~%*tm|(WYOQ56;!niz&;aqt&P`;Yhj|-72?9 zC`Pw1Pk@XnO1X@*r_u;7$l^M3WhfIy1w6w`W3BND9pkkXLk#9L8qN_;FOuVLQ@K{@ z;0w>e2e&+c?ljg1cP~Y5*+J-j>XEvc+>)1{M-3}XDmxN{HjkYEQX%EYbjiOILGmN{ z%VcKrSXr8A)Jw0v4sLH+ijTI)?z$n4T9J#%^U|o5^}Y}X?Kd3x8Ej}6cVqoJESmcQKA874TN;y& zj(kai;u==q)0G|!KJzAgcibrLQ1h|JyJpKW%>Mi_e6e<|HfmDG#JF*&uyXcv`X7w* zFS{HgdY7@|%+C$IDzJ9hyLk8GS5YlR`2OYu^3^p89IFD(|u> zU2Ft}&9$egksIAn&T(@{4!$W~n%;KsQwSM+oA^sPJBy=ujiJnfN!iS&l1=19p0b>k z@8k84M&r8&7r@``cpO#s4=k)~KrWA|l#Z8RztfRR#b(`mldz)81Pmoj!-mCNAIgzU zc9I0C&=eo`OAPGCY4WuTG3(_?sK`792OfC{@&}%WVV*jCv}zbeA8|kowbap9p^#6Z zdK#~k$-ZD2dLI2-6xUOxQ+F1B+2F_c--Pmquf?ViI|SG%5Xe3P1CJliUD~N^ZJdMU zn>m%gdw*mzo~*oLtln6M0jK;0L;7*w=;}4txEAavC_^B<3_XsXfXb(?#oF2wU2E^p zI`W(2+E9y3hp93LUxtZ;r3fLm3mkEmy-`XI!~Vxd@bXg+BZCTIYVKGJJ#{=X2<)a= zPh-~Xa&$YAQ!-2XW58)Y!N(8&9M!Z|Wk-1*l}FQg#3+?9CGL)ORQ=ezF*6RYNN()& z&dQ-}*CQi0_<<3gbuVuIZz=wD@qwn`#Yf=U3zp)~&rGI4mClh;!>3aDMXwbnqo$%v z%aR`Hq?3^_m3KU8=Ewu6uoh8am9UP&x_E&otkaE>>q*1F{lACa)Pv<1S#>^kO!><3 z@w7*=o*hsn{Vu|&?)jV%TZa%g5tKP{D~vsbz3DDRC8l#8=pz_j^a zYdTI%)9BkCzocOo$w*jqGW)Hi!1An4K8osYCck1pYsZVoe#c+JN$8!UcLqvKBE*|@ z$qTB*?>-t{PjzC8tp!Yrv{2+jva!-`WGOJ%o8T> z)RvcH1~(gfZD9?gVjKyc9+3P!iWrSBcqQ%*Fq{`R^iqG@+x@|;=7AM|5fJVqM`C%zC4I{sD^ zb+J7G^d`@xc0U|vUoZeKJ}?0b$sLj};RWQMjtj?~&TX?Px@s0<=FBQ|8!!U7srl$P z^xNn+=o}6*%AOv6G;aA6PyFv6s3L#wcgSyW{JiDX~=efNHFL^C`Ud z**e`ENJi?jsSyU*K_FAxjnmBVmSvOZC0b@O)jrs(1Wrg_0}82RrbYRskfu_61Ad6E zXESh0(b+%zQetu4zKH-wjl7|d@Q|{RUQHb#BMN`XMU`mYh_mvCTJr})t4Z=eY{Xckyu>;`n;g&?Nn|V@%Y)IwH7=bZIo{J$pO{2wa z&v4en*Kn2-dew&$@!WzHij~o&tUTK`e&2|Hvs@(a1IucrElCztK2foDa2Gxh=SyqE zisxQL<-y;jqL7NiFT5Pn?tB!*-1R&otqfg<4y5+50H1ul5?*fop^l?bIh-n=&hMDk z`!Zvwhu2`nqkqBN&2^}(`3keEeuK+S8HmjNPC~=8H{jV>y)pXITfprF=+@!o+pogR zbsnUTxEeqB_EB8EAcp!XOu2mm7T2;x==TF$bpDa_&p>Wb5kC83C3j&Tj04XxhWe(D zZ^c_5EI>Is7AmU!IOgVuF}!Ls<}Tfg?o@EFfZSs8T(E*A#oj`~Skf{`(@Q+;+v`Km0R}>PM|Ge;9n_ zTd=0S2#1|E*9)QVjOh*@PqL`Dx*(6dQ zSt;!|F{yOiFI#Ntvm6VQd`a~b7SStzoco=XL#@$ERN_3joEgUsx4Zk?k82L^rhYkt zzk|!xEW>|4ovkBVGR;+Fm!**##ZBmmotTRKNBsuJ4(P7*8e&fWf-8aeAPuLnv?dg#nP6QTxNW@Vs$eHBvj zPQclxeH&d`lZ%H^E@n_J&iG7skY=BPBeNNcfZ2xlsooLKeuv%pJYLS+p?)KU6S?A) zQ8Of7^w4&QulS$eQ9T(>i)EPd53jUPRY(QU$sq0(jO z5L|Xlcce4K=4Hzqk_umbcU<|c5$Gw2Cb;yp zLX0`)aP-M}1Am#aMMvxVj~t9~`}agw9noitG~f)p^xPSSD!dZ6-|;clvQxmrc2_$C z?co2+lYr=`U;1A+vo|sPX0d1p1%$?1&v(0 zPF;odHoeEW=*w$((|dS%WfMjw=p0@SXef_Lemujd1JO`tJ#Jh-6@P!^KCG*3;)rz< z!lf7Dj}ykTz4W8+nCmfS>E(EP_S1MRx<3YtI0e14BvNkPOGAC>SI^^}&*mVl>ybF= zn8T2*CPy*Gj64`0zwrTbIr5*Hb}-I!4E4tKujAH-{)1X>m{?zT0Ir_+bMzPHWad+R zHQZ2-@@UR`SjJB2-beq*G1MFI`71xgv!Ac!n)^n|u`o`&{J%JLAU99U8HsO={|^5A z@PkO<)czp#CDSRvIEB}Q=XMl-26f$@K_G!GO@hT^&#R73oqEc~szrb1l%wmZH1M<8 zFWB-bG>)GY%rWUAU);KuboN=^w-0@wekQ)Y?^CQV?v0}2LQcWww5aG@)UR2H^;FE( zRdU)&4R@%gq28yo2!**>G}hT0YZhQKUwc0PR5WJzQhevrhRR|fu zv#pNQFI7aHQ46V-`rkYYw~8WUlr~$oscz&+9 zFgF}3=f-p;T?U|A5jU!=4{M%k(+)6d!CHZdG}*kMLmj!orMA_ zHszl_k5!z)-PMUoMmIC5{K#7Mo(Jr&v4_@wiO<$nVdIv1u1V(T=i=F@!$8i3$bhH5 z8cVAdqGW9ay7bM#%9roPlOJwT`s|8Fu;7fNFoZ0*{FS@$)F+$S5x`OEwU1!oX-8r( z{hMfzFIioU!UIl4z8FePbMWpvbFp+Imo#zxvdoZL^3~^PT09LkHZgS(4Q`(lJDb@pw(CwIU8r?h$hy6#h-qTC95jA`&N`j`C=?zU4gzd z>{BzdHEmItWOO}^Bg0a6i~*s^bnK6xBkMA6*H-8@kVCE3Bd6+%u`NpUl9#T<>)jv0 z2|bNm>V53ZIC;&Ln8Mxnv$-p??uX#WGa(g)T8td2$0Z}Iq27QmUcDL5eZB_O)na&u zal-c>jw`I^UWC8=_aVIV;`Nw0>}Fha@Bqa+yy^w~@}7q@jSNn!pa0(Puz2AmxboDa z;j5d8J8t<6xH?0p()JiQN)2@@7uQw#(EG6Ka0%t2NF5^=-=$nkQ@Kc1GR7F|o>rY* zkmIf5=hS5_KnMPiZ@Da-B@-T&GD;z(%yJ)-JMm}vb_NIDC=c*QJa&qn#w|(I1qb1d zmtU|?=E~WSW-^R)JU4%3o{XWcyw_(KuBD+aZqfU1;I`Km=_q;V@hseM%as_(KArA| z9gZ>69>ja>j4STR89+4DH_rJ2cTV~o>#D0T{Mh4h<%xsz`G(Y>;x`TdFOKxTD!AW_$VS=AyoNx>{w}@Z`}Oi!;>S?(BBaC4mE<-d_Wm(j|<-Bel3Nv#up3U zJgmHPBs43CiLJII?5K6v^@{Es{3ZlnO05r%xO zWiKpF=Z0)4@P_KSbY(e52VcOlb#it(r;I)GOGGmtz~zUOlAg;)HdSJy&lpM~lw z@jbZuFVC`ZU^=H+&#di_At#Mgs!(-3Hm<8h>ikFWMCEhv^t={V zA3K8Ys`2~{-^KscaEdgQec3D~i^sxwJ?YF7F=HdFI7)*>*BXA?!e0qG$qz@pVjIkf ztQ9AGBzFm)OvY2O^o_SrKj18mt*7Fs3%`rM{Np8@IBFO}uE3Wc%)u5aHr-7W%73~n zNJoW?YV0pN30MC5BuS!$^Pq_*cC6b%u5%KtsoSEMi&5XTs2W?=@psDe*G*iGpTxDU8XK$QarwW#hjBG(T%4t-uCZc+f+m~H74mqyBJOu$F>K&Q zq#MYK28kd>Ui2^iC8X)xitZ;f0XFkb;z*^z&Z@27Wb4p--iK0#gQaaNhgz*iPSHe; zNjoeZexE$cWe}JB86$aQt17@3-HJ80U4ePk>}=uDfHANw4>FV|a2SppYK*PA6))iN zX)934nG}qc3TpswJxqo5501iGa2$>ld<~13FyKP;^T_+AGbFkvKN1^5lFv{XP;z-X+o`-iw5m@LSW< z*G9ySv9(Lr&@2ig5+&AN9;?WYZxvnn1|sZ>yA(JF22lFxx<}d9Ab=B(>dE(XjjQnR z3t#aR6CTgY1XF@_c=D|!7S~E3|W8_Ckp{3oQ3(8P?00zFxNkAI{=twN*`e!j0_tBYS03e)$?U zj=4gYbAdChirE>wnzAf5S(iH2ytltVT`foRxkO3^3WA#_V`1%B3}i=w)N9!QS4P(1 zb*5jCbA6m)SyA4g`cpx18uF>PSQibaszIK^wxjPsN2A1fvHXhwgWy2NRBENa2>i#ftO9>bghQuH8#b+z4Px~#iZ`@r3UWF9{cT$3Y7cf zB0vOW&ARZZX{_kMd-0Ikq*vaU08;n#wFEZGjJ$IioR;(qs;+6_ow$4^@br~OI6i*# z>pvK4U!AXU6wpX7EJ=qn4zdopX5~G&_c4x2^5~l|Ev%g4!5Gl52m13YZtH4gRJ+~> zX*l9;6(0N3GdvbCqB}OrNL5b$JWP7ya|}7tjKF4>^~L%rOF0!kZmh3+?_oT*f+sIz zcywKTHXGKuPw&Oo$KQcr(nB81Ls4Zd7IGxFP8h6?i!0Cc1Stww*u0-8GA+Y&d2v{bhQ6NkJNV zmS*x;IYSU-T+*S?Kto;~jiJWs1}f-49yd)aqjHi$!#^*Z`ysMgr z)K{_avuP;dXv?AO5YRfpSB;5rakO3H%4b}qj7vHZa%e!-ag;ur8}X^*Rq94A{d+KP zU3u=0m;wTzm+eUt&_y6(N zsN(m?mPphYrC#!w-TN?SM2fRAsIW@Moy0A&ESEgw4{WWlZv6anly(0M@6TF?^M;Ee zn~P)4I1Fz*{*iX%1=7Y~xG;YGmw0x@a{WenEF@)F{qno;uSY#Rk1VeWb47~G~j@;#++@*R|4 zB#Tl|Eik{Gcsh^TY)M$&XjP#9_UTP@8cEH3{P+hy<_Q9nH#x;T^&>~uuuBMyQ{syT zantR;#YmmBL1`sZ&n0tN{V*)g)Vzib>v&qq78LO~VQ+3JWlc7h>)5u0S?7jg)#a5~ z^~r1a+1z|iQD$8aH*znGJ{Z)m8}{Qsk#+TTJdLQD14TK7G?;Q?9S3AaDV(ma4{#Zg zpBu~txEY?z?$iyy96s27`F9aNo53WyW@VLmJR8>hfA+2ez^dYEpI5f`UCJ)Ks}unR zlqx8SBF6Z~k{Dx4{$NaxCZ>l!wj>&jCMFuoJOz9J06+jqL_t)e#@LCm#DWFIj(`o2 zBE2uLEZh6O_x|rYbLYLcu)>1NvMV#N@7_Ci>UYnanKN_djN!>jABMm1_Q1wHu}ZNo zFaGcWS%1p)(wA~>@?g2(ltJ>3r6qFqNMjpg`Ro6dU6?Q>)=+BjTmx%i?I^5fx_6zfKzIv6X`108N9w$mKDb)aB071RS9gqV6{J|Q;Kx$kuIq? zX$tH>9rNbtHx1DKqLDo7`i~he;g=s(EA~0yVcm1>c&AK0Sh!B@4RPWy2PbA&*SS-k z)Ie=Mk7GDYTyvp>+DK)^I}pSO>v`S!ViI7!PCBw40rY1FGVY0$(B|r{hZ2Dp_xY4u ze7^HJ-gu0EH80NYTQBuz;C?(f-Z9uy(hJ-s0|N|9K{EmV;1invQRYlOXx}LVwrzl4 z+l$ib@uBa8wLZxSW=IAsx!2>`WLx zuh$pklv74we`mM24$Y=$u5}P*LJ&Nnt{O)kB4ZA|GteP)#RlbcY)J`~uaOEFi8Trg zjdMFmHD;-6U`5q7hN6w@wd0`G*3S89_`^UZu}rq?D3f7*sZs`EJ-tyrC_@Ju%?vkM zPvgUmC&3C<2o=IMmy~oL2JUInDIaS0SglQhkrj4gbi{36_-PYv(t~jr z;Do^C!WhxeV3RrwU^Xv(ORxB$ zEc>XljG!LcEU(}78$F7y2DTJZFi5wK1HoWMTv|sXtxxc;lx`W0SdxaL#7OzRJ&5%d*c(GMBv_kYID>>EgL12JnYlX1f8pD zHxkgc&hODK94dlSDNM}_A2G$+yB(MbAcj$j(ra^ksJZy@RV9XOyEGOTOjs!Yc%+;B z=%TZ*c>)e<&X<1sO1b&(cS@yMC?jART`zI4bi+p+BgP-JW^Q*5#VoLc0=`4cwvLlKmgZRgY7EYQGy|bak47V#r<}sCpF%MynE8-CeAz5o%qijEJyzkZOX_}{-14`W0Zi*3yJB*% zwn7@~s-@e=F*5bIDKfBIu6ImWERV5ey#ys^n!kOygF=5@LLAvqzU5o` zFJD|DXz$gv4aQ)#dPAcOd_Ng|2+wWj5pqJW_G;5N?to6Nzso0L>6Oky!3#hc*fyTT3JsAE>}xr(oLe9&KK zccK|r&mq4$)R~JLT!7)00d)s}zfHMC<=FucfMDQngxzkEEqJOr5&&dCo4+gv#7fF|pg*@?#CK{8gBZ~` z`sBsesCaK34aco~_Pg?0|3_qUce5Hk@{&Kusar0QRp>-`ycq=u=F{`oU&|>2Vci>! z``SPF;0;-_`~|5R2z9@chnOUhISzTyhGjhP3z>x-PzpLUb|^VeQRW0d2rHwuSX-8V zU}ltIb>2D-ve*%F#+ZUSXMX)CONw_~6KAOxZA9mnXI3O_JkCz*9}3NUc^sK_JmQJR z!=+;%K3BQe$x@3(kIiBw;r4|e-!+fFM(q$ks4m8e9wxkCbj*Lm%uo*GA*f=Ce=Vs< zl53!*w{wad)5WNc?_M}tUMsB7{nb6Xq(MR6ODohMRhXm+VpU+*_F@nWMlFd$AFBFwr+rO;ZYbu1!clzzm+$y`n66L+3&~+hp2Kzs6tkv?3*yblRy3{ zIT`!$>B5l)73`}EH^$Ps+)GRK5J(qLW2QOa`3ubD1>nGTDZSggnr)o-}4q}6Ai@%MtzxWnXGcY#wXSm+zl7T3-aaOpzmOdJ0t*$@~Q?WWnN9QZe{c z`PJ#YSsX1tRqdGvEzL)pHYNvnOk83rjwQq~b6k0+C415`h4q%#-{hfn^q|nXGH<$1 z!Oy&Gf4@e<>$CA24+h1YKipbViqjc3kNSbxvz<0pes#5}`wHw;--@j=#E;{QJ%x3K z@?nA}1LF~OsXb*3?3KOT%qtb;Uck>BK-IY`la#wSib4#_%Sj zAs;^A4-fP={DyCwYbyi}NLX*HLLGv9NL7xq4gs(($wPxcIMCqNGi9U6lZD5eVWdrb z@DhW)rlDdH$X?@v;|&=zSC`+J{TJ!`y{n}+2PseiJ?96%mfQaDJE;Zprw|fI94}+N z0Vyq$-gM7>Fw#}022ZlPM7tu4nVG+`^eCfO(GZ;lXLdPjP4#nCx56MQh1o$oD%`L| zI})y{SV!TF$H{T;DpkyaSl#qPh|A`Yad4rMEwUXer>5huv0_*Hv(pdTK^a~V8w#b= ztl`S0*}rJxu;ly3FCMXmCHty6C)7&uJQ5?0HC$NmX>2mPZ1qdZvZ&RkF^kzg+NBM*g&yb`12 zkC-Z57L`F1$6yL;p45a;m(*GE(()v->0h#Z;{-XDhR8CHlb`+NAF_PWA_-t0XxBj# zB%|g>;1UPJ0{ow$lAJCDUD8cD`0X-ylH@Ok;J57oS-EMv45i9*vuVwhr3;oo z=rc5!(tEs&$X_Vs0V+&^c2G1!Zb{M`hNUubtj`;7ER%Dm41q-7L%#XfCuPI?@50Do zL^}5wAziz6mfZ_~D=XF&slZQd03B3mYSH2y?i*NxZ$kOn#%-bYZU>*S9eG(c9XA->8@F44!c|~?TzzU;UXAlTFs&a2;|o3fc5z`I#B1tqz;5p;D)+N z8$>u@Rn=3^YT(C<7s51y4ZP%9;m%EXEq_oyZ$PsGt) zW&+dj#e2aQ>zm<=COcM*^)kYU=co1cDy?3;@3?#j)dPPq_2IAHf#0fz1)t$TKeBrJ zUfF(}KVGS`@5zMr9iJiN96mIK;N)~p?se9C8=s+Y-h^Pz)^q4XNMv~S!`P#-%*|Id z^3L4nr4&McCWQVZ@DqlMgrT8XTP>jsq@8n;oa+hdb%h^;_q-}4l_i)gte3o=Mmvc$ z~5lh|K;4b%>QT9w}b1R$(9CnPMF zg-bU{&k?<1wZBahi zNYkcGXMoq3n2nnj$viNNT+Q941`P}ER@(u~rsa#hXIZ`f5-wXQ#W=FG7bbEyzVoO& z@Y-TY4i-xpwvthUu?E_0+*a5bd(vrFqoKMYno!zNFvJ>pL@GHv15sFhn#yxf)z!(; zH(rV6Z{M>#S^yJB@72qD-urztpu0K52*fzU0cJG)j$21SU1JJpVGJfx2Z17bf+jLR z7-q4BT!UXZ$~`;}^^3b_z8c2!yl>@qXT(0aKahrr$l1hHqmk)4K0uoMBbk>F|@Ma++@!!beEzQ>iEH7# z1G~XIuIG5niCNXQKDeglN>9|I6n_*%*r~BtgNKYVd6g}a|9o7f;PnM&x_lj=m+}TnOfjbkzKUYtqj`hNWcF@Q#JIxAZs5>Xm`Ho?{axh*? z@ncw%0>4EJfA#JlKR!P=5>`s114u1*XDJx_T_Ln#3`WD5$I6V$j+G71{#aJ-D3{EN z7i4|;DKen?4SBAV+lTzpef&4&w6ljIHo`-l9H&vs8CP5*b;}==$DVsxK6vzY894nC z8Q3LDQo9@@!|_MgSg~G~&AC@fvtem|+6jn``1P=XFyt$8^)LF#Q***{;*7B<2-A&7 zB2@6deeEcjcgy!-BozBdOR6QO3kFo(Pm%B6c)YxL!#8F1GuKGv|aJ zZj+5K{#+`?eqY8km)3jLGHAw+wJm6!6Z^|Wzl9OI$9^E6V6$QfgLn?cpfn;QzVa&^ z*>kV_>xmoW1^Ir#o$yOYE5A}Lznyg*BFsX{Iz8u)eB(tPAr>D1AXzluwqSU~9oX=g75J zFpnMb=DbBx1EZR>ccCX_VB#^e*YKu%krtb=O4U4HG<=5no4T^Xt%skj^Wna#HF(yG zRfFS&HD$j*GUB~;ih~!9_x63ff6L;>rOGZ2kE9{(H?XSC)ol9N^d&t{JVi2F6b&z> zMN$MZ(n;&IqvW!a)8)4Jpyr&CA!%6kj;hHcA(pG#37BB?Qdsxa>o9P+4uX0ECJD0S zDA?UF4t-t_T48M0D3jlpE?HIrL|B%bf4ZWH_m=kC0za>S?e3ylUi?^1`dFgW)Nfz> zCWQV2OWC@}O?u)V=VW%TcwTmnxI(&kwO;+w1M*&BwHk`cfLc1Y=&2%+_r7YkiR;5r zx64+plA$L+)Pd_W;|dw|#7xD_kC)%SuvmGc(!Q^!95=A1W>>%MMfulCj{l7I5*IIY zqS%7fLi}yn-SyBTa6rQP7w-O3*T&k=w<13O*FbRnSUjao-ryrE*+pp&)CfPaHA9fz z3lafG-g~+@qBXBNe0=s0IoPC@gZd9dozC<{!av_pQBr=!Uv7OIJ;-0?eCvB3?g@i? zb_fuGNFdSggKDuIm-gO6xq)8|;2IDc=D#CKU#Z}wbcJ$oVi$9t+{WmZ2T zPkuZ^&K+uukML~ci`IQ2kFVK)eN%QeRwRGOWU2V~-8h@Lw@mxmujI@Ty}cAM70_Ug zonm2PCFm~a%)CIBJn)3g8Y`YZl+oD3%%j;}##zV3XzE-=PmbI3+imQ{a{9c*vJ(74 zS49FtWa>#Xv?Mhfo|3;W+JS*{0E2iQ6BnC=u=UcqA&1Otqw0*|zVsUomi5MZRN8cg z@g1dMKep8NYVgs1E3QTaZcqH9m22lW7%pNR5-ORffDvGLEs{+y{7^or3ri8sL|=y^ z#Y%QvSYJIW{2%^06u9H7M30;l! zeDO8bNK$AgEHhU^y&bDoDDbZPzawF+#&3nevCXSjNfM0KWiR`I%zq>zyKy8P_uKa_ zK)yIquI}|4kQN3>d!&^N)kWXi|G_?XztmwRb|a3ZE5gw@+*3cKUk>)$zb%U&n=c!- zRml4*cd0SD0X;Ki_XmHG`(LY*iamVmXg%qs97E>dWhZlq4FX z!NW^ZG^5n=c5txmD1=EHD3wZrxAdgxAYp1xX2CNjK4ZZi4;|ACP>r3*lPmlrztmHq`_z8l>7Oz|`L&pq8 z+R3^HwQR|A^2XL`#HSeob2KG+rUdrpi`mWc#h9urD--*+d-IWl#SevT7Y=pPxg81{ zI@CjbdF3~>-<01$S0drhE(~3el0D~eW5=py&m8h$uoHP#u>N?b zli6N>-6r@k+ji)bR^rAju_ErTy`)H&{1Y%ipDzRR%{0oy^RJOcXgHM=&4-*!4Zp>( zh`v+4Fqq={7WvO#-jPO3yrrb($dEBJ&NQe>{z+w{-~gdKPM6eol6-Z-I@w&i4wJszn&rI+bd`%{-7goJU`>BRW%BX- zKgz;w)b83WufFxRTs&pGE`)TS`hRkD#$)or`*S5BWt>c&a-npmAYZ#m?)&roO7+yN z?5Cca`anVxnyhQ}F+-Md!; zM59p7=rJLW7m^chdpkRk=Z8Lz!|@kvtId^ELgQnYDW)LK{<2a`SQrU)1?lB zq9h1jFvu>MI&jXCv0u7ecFdcDV{l!d`h2xQ+ewLmV+s7_RedMD5`w#X9u94z8zZCTDhx|jbVaa`R-?MYE_bMc* z-G<3=!+Xl`!F{9k>M{B}8MFNZsjXYCJZSs2tr$tM^9{LT`D1x~ z2hTK(?KQ?wpc(wkWaIwuj~1Yv-(V0J_NgrdLpzp+xMi&Y0#g-?%`{>~n^w;GUFsm@ z@Dz=-a4}SWQ)EC-3i_~k3yc3evW&;7QOkmYeOK5cpw)CTdK&ViCG`Oj7zKo?@wRg8 z??!qQOeq|tLS32Xic|3CAb}R&Q<6dSNSs1DuN0suv~#bx^>4&7MGErj455klECY(G zE7N^~^~h_5>?npYC&Xnqp1Gcm0SN_czZ7HZMU`ZtoODz>&%-iT4utJW)SDU_4X6uG zGw2tnm(4p?$ab3+%36_dn>_p2KPC6FOL6*u8NP(EkDP{*G^~GYbz*(kh5)I@Z(?;kQ2h4n2Uz06>Cluz z+Haw5R`}Ms+CtHv9;`nvBrV?4c~^_g{^KXX@_LqZ?gHV=&YJ{#%H_ZPro6JeLaIw^ zpc8>)nGb#v(=%j9cN!PXhYG0Y(gw*jS6?QJx0cAdZDCnF_X8QxXQK4SA}6M%<-+Uk zkQv)I%a+m*P7}$8b`CSDmi6;sVSM9Gsh-$LwJWj)O_!%0I0^kCw0F=?m11kKF}sm2 z6D~Mg3g^z3Lhj|SE|wjbkixu^1an8r?T_3eRX*6OsNX0z-M@khuiyh9Jj`N{AJ8ct zdWWCZ#LuSL&aS4tH_tEjr1z%nB})blKVSNhy~B0|PG^>+?xW>Q{H=a|nY_HS6z$e0 zJD0yGl~|1MEqPYn!~|(7w%KLn=F6CqzAF9sc{MI9vZD`6>pxM>$KR^wmdi^!cFUXp z{f(4Q`H@WQgHzDc`pOv>|1OGNsCt_$oPW1GK5wahv%cfLB3E8?0^Y-b8??_jwK(*w zZ_7{^w7c#0n~@C+vNr4%7@?PpB)o6zBxil=r&9IteR9XVdGg7}@5#9Q@zL~~y}{`M zLnnM&*53USDa29K!G;Iq-Z}O1rPHQJF370Y2^YvW@n>A4?Aq|MJU;tA`KY2^w*vB* zI2yX+$~wnFv2kO|@Nc$E&hwBUuwP;QtiS!~OQBl%EBHniG79uI$}kMGB{QKXoZ&06 z8_R?>j)pKntzgdZmMio1kr-cmXX4!BQ)m43_G?Fd>$^A1^7*0)Gah2@a)crf2{ig) z%L;7<4Fl~&J0;sjaOEt$^(RCWX0)kcgk!^+=7sY&2cNI|E~#3qod!CIKps?`&p%eG zSBK@EH{MX8CpooJ-g^2UQgG2XBtO8;BUy%?a-nRz?Q(f)!9Y3hgds+Coq~GZ794GK zwY(F!On!RtG@J$6C<9LVvV5ykgZ$yY3$RiM0XbBKBaLu;Rt9>&q-^QchqC~UvUTZ0 zGJD>Ox++-*A&CRvF0lCCssB(N_|%jY%Rjrek=KMkCuPu{OoJGn# z@I8;aKrTLSG^?-m;x%p14Ef$wljXVFE|X0d#8+;3QdSP^Cr6`0qNAW*zV>;Uvv8X< zLeQe|DH@uiP}MwsF`N}oCejT4^zH}_gPl-R&5#xHdS~3J;7H?VGzM5lOXcA86vFvO z!Iy$HSE}hxV`vnfD3ljqRhY+`QMe`@QV`965iVZSuxi1TXEO<4gmK18hI(LnDn`VJ z&ouM!Ef8G=X68p>hqxw79Kf^l6vSMaF{ zYs$m-tS*KB?p>h~Kw%r@<7ze`;E`<1KONp({wKr(%nl|p_4{JKJT zqhTIQxJoKlXOI?!bxvgX{n?l>3MrkkOtdCX95|s-OOmT|pctqHuT9^Wjr*EsoNuVdwf+uo7&5Wq7yiRN-;79`%NLVG-EAD%LIveuOQugaN^PI89X4`14v4kKant1z7;<0w zpZjEXVGX`1G`?VEGO=@kOdo4jylr^C8$9J487yV;)bIZ#?==?7-FLkz=bSZMMnNFs zd`)J4PZ^xA#gvMotupt8`7$4;lKB1G<>7a-@{>ns(5q7BzOzkwp41IOJsecz(`2{IeRPg&D+ZrP$y7CZTC%sa5XGdm z@iSFwcfSYEZ+6PtFMeBI1Ai^Y(P~A|qT0R{no{8HY~uwuDlHJigmUtHdE&ptvi+mC zRE3ZIjY-0 z97l@&D+yNLOP9!&vQnIA)1X>D)c8x@c&q&R9vCyk1Obnb+zd7L;vGm2{X~yGI0_H~ zb1=9Jd*83XduW#}+XWjMHM(zpz{%g1vnEi`hf@8HMRL#IACl!eLeiy602b!!B)Q8t zx%^vSlU__|vgW4!)d56ho#dQg0+$4YO^7$v|cZ_rmHTQ)6$!Bbe8hc*}| zv-S8m7}KQ25^Vy}Y13nyY~i?5Be|b8L4cp7S$E#-*@61q+i%05;oBNOxv6EkoZpJ_ z*|>ZC$|gM<-llG!y{n7g6hCyjbA8Df=RI}VWu+Ff!+o7HWePu&%$tX4WaruxfybWz z&Uh?zzGVjOW)L6O(6lVkF_70Rqwn!-W}wZWpL?dbr<0w~E~pk4ZmPgaQH=@`kZfC7!vi9bHOKN%tk={MicGu;OF!L7<`0I0}C} z)3Y4uvm@$-qt*H!I~4mrH_Gx2<>31RB^Oq8)58@~T(}elxe~Nfpm4z9gAwBXtNp>=($*VTYhLWv1u%<;`3N=~SV9n#0XcUI4nkBnxWGnL8 zz72a;k#1M4p!DpMB{`ijQGkx8qOuEC>8qt=>xWWQg_(53XT5kt9gmcw@c(J}v89r2 zMc;drVDZ23tiN=a_Oa~QtNsl*&eaJWJ5pxVP#Jy?4q|!L0U|CGC@G8@0Ut6IH|X&h z?^IwxU<%Xh{H>!u1$s5qgMg$Vrc1mCBGV$CJU)}28sFy0xOk^&YnkxEOWLG~cNooa zWt&A|xz!&6Jj+D-B|Y%0XGY`d9LsOY!eeou0?Q9j3>$ z;HPE7kJgvz&>w%czN{OH5XI5NG5NEsA?A;Avz#okDZ9CHa31f5&iG?fkNB5ubpP

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

u`^%l2%7yNe)p)1I>C^EhhS~ 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 okd{r5F{nG6b(t_Q?_pc9%)mcI-C2MG~hb^rhX diff --git a/doc/ha-guide/source/hardware-ha-basic.rst b/doc/ha-guide/source/hardware-ha-basic.rst deleted file mode 100644 index 31669dc6..00000000 --- a/doc/ha-guide/source/hardware-ha-basic.rst +++ /dev/null @@ -1,47 +0,0 @@ - -============== -Hardware setup -============== - -The standard hardware requirements: - -- `Provider networks `_ -- `Self-service networks `_ - -However, 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: - -[TODO: Verify that these numbers are good] - -+-------------------+------------+----------+-----------+------+ -| Node type | Processor | Memory | Storage | NIC | -+===================+============+==========+===========+======+ -| controller node | 1-2 | 8 GB | 100 GB | 2 | -+-------------------+------------+----------+-----------+------+ -| compute node | 2-4+ | 8+ GB | 100+ GB | 2 | -+-------------------+------------+----------+-----------+------+ - - -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. - -- Ability to 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 and/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/hardware-ha.rst b/doc/ha-guide/source/hardware-ha.rst deleted file mode 100644 index 91c03fc8..00000000 --- a/doc/ha-guide/source/hardware-ha.rst +++ /dev/null @@ -1,15 +0,0 @@ - -============================================= -Hardware considerations for high availability -============================================= - -[TODO: Provide a minimal architecture example for HA, -expanded on that given in -http://docs.openstack.org/liberty/install-guide-ubuntu/environment.html -for easy comparison] - - -.. toctree:: - :maxdepth: 2 - - hardware-ha-basic.rst diff --git a/doc/ha-guide/source/index.rst b/doc/ha-guide/source/index.rst deleted file mode 100644 index e65f1250..00000000 --- a/doc/ha-guide/source/index.rst +++ /dev/null @@ -1,43 +0,0 @@ -================================= -OpenStack High Availability Guide -================================= - -Abstract -~~~~~~~~ - -This guide describes how to install and configure -OpenStack for high availability. -It supplements the OpenStack Installation Guides -and assumes that you are familiar with the material in those guides. - -This guide documents OpenStack Mitaka, OpenStack Liberty, and OpenStack -Kilo releases. - -.. warning:: This guide is a work-in-progress and changing rapidly - while we continue to test and enhance the guidance. Please note - where there are open "to do" items and help where you are able. - -Contents -~~~~~~~~ - -.. toctree:: - :maxdepth: 2 - - common/conventions.rst - intro-ha.rst - hardware-ha.rst - install-ha.rst - networking-ha.rst - controller-ha.rst - storage-ha.rst - compute-node-ha.rst - noncore-ha.rst - - - common/app_support.rst - common/glossary.rst - -Search in this guide -~~~~~~~~~~~~~~~~~~~~ - -* :ref:`search` diff --git a/doc/ha-guide/source/install-ha-memcached.rst b/doc/ha-guide/source/install-ha-memcached.rst deleted file mode 100644 index c9942c71..00000000 --- a/doc/ha-guide/source/install-ha-memcached.rst +++ /dev/null @@ -1,42 +0,0 @@ - -================= -Install memcached -================= - -[TODO: Verify that Oslo supports hash synchronization; -if so, this should not take more than load balancing.] - -[TODO: This hands off to two different docs for install information. -We should choose one or explain the specific purpose of each.] - -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 -`_ -so the way to use multiple memcached servers is the same for all projects. - -[TODO: Should this show three hosts?] - -Example configuration with two hosts: - -:: - - memcached_servers = controller1:11211,controller2:11211 - -By default, `controller1` handles the caching service but, -if the host goes down, `controller2` does the job. -For more information about memcached installation, -see the `OpenStack Administrator Guide -`_. diff --git a/doc/ha-guide/source/install-ha-ntp.rst b/doc/ha-guide/source/install-ha-ntp.rst deleted file mode 100644 index c17eec9f..00000000 --- a/doc/ha-guide/source/install-ha-ntp.rst +++ /dev/null @@ -1,9 +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 -`Install Guides `_. diff --git a/doc/ha-guide/source/install-ha-os.rst b/doc/ha-guide/source/install-ha-os.rst deleted file mode 100644 index 22a609c7..00000000 --- a/doc/ha-guide/source/install-ha-os.rst +++ /dev/null @@ -1,24 +0,0 @@ -===================================== -Install operating system on each node -===================================== - -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 OpenStack Installation Guides: - -- `CentOS and RHEL `_ -- `openSUSE and SUSE Linux Enterprise Server `_ -- `Ubuntu `_ - -The OpenStack Installation Guides also include a list of the services -that use passwords with important notes about using them. - -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/install-ha.rst b/doc/ha-guide/source/install-ha.rst deleted file mode 100644 index 7fcfdb6d..00000000 --- a/doc/ha-guide/source/install-ha.rst +++ /dev/null @@ -1,12 +0,0 @@ -===================================== -Installing high availability packages -===================================== - -[TODO -- write intro to this section] - -.. toctree:: - :maxdepth: 2 - - install-ha-os.rst - install-ha-memcached.rst - install-ha-ntp.rst diff --git a/doc/ha-guide/source/intro-ha-arch-keepalived.rst b/doc/ha-guide/source/intro-ha-arch-keepalived.rst deleted file mode 100644 index f1fca2c3..00000000 --- a/doc/ha-guide/source/intro-ha-arch-keepalived.rst +++ /dev/null @@ -1,96 +0,0 @@ -============================ -The keepalived architecture -============================ - -High availability strategies -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following diagram shows a very simplified view of the different -strategies used to achieve high availability for the OpenStack -services: - -.. image:: /figures/keepalived-arch.jpg - :width: 100% - -Depending on the method used to communicate with the service, the -following availability strategies will be followed: - -- Keepalived, for the HAProxy instances. -- Access via an HAProxy virtual IP, for services such as HTTPd that - are accessed via a TCP socket that can be load balanced -- Built-in application clustering, when available from the application. - Galera is one example of this. -- Starting up one instance of the service on several controller nodes, - when they can coexist and coordinate by other means. RPC in - ``nova-conductor`` is one example of this. -- No high availability, when the service can only work in - active/passive mode. - -There are known issues with cinder-volume that recommend setting it as -active-passive for now, see: -https://blueprints.launchpad.net/cinder/+spec/cinder-volume-active-active-support - -While there will be multiple neutron LBaaS agents running, each agent -will manage a set of load balancers, that cannot be failed over to -another node. - -Architecture limitations -~~~~~~~~~~~~~~~~~~~~~~~~ - -This architecture has some inherent limitations that should be kept in -mind during deployment and daily operations. -The following sections describe these limitations. - -#. Keepalived and network partitions - - In case of a network partitioning, there is a chance that two or - more nodes running keepalived claim to hold the same VIP, which may - lead to an undesired behaviour. Since keepalived uses VRRP over - multicast to elect a master (VIP owner), a network partition in - which keepalived nodes cannot communicate will result in the VIPs - existing on two nodes. When the network partition is resolved, the - duplicate VIPs should also be resolved. Note that this network - partition problem with VRRP is a known limitation for this - architecture. - -#. Cinder-volume as a single point of failure - - There are currently concerns over the cinder-volume service ability - to run as a fully active-active service. During the Mitaka - timeframe, this is being worked on, see: - https://blueprints.launchpad.net/cinder/+spec/cinder-volume-active-active-support - Thus, cinder-volume will only be running on one of the controller - nodes, even if it will be configured on all nodes. In case of a - failure in the node running cinder-volume, it should be started in - a surviving controller node. - -#. Neutron-lbaas-agent as a single point of failure - - The current design of the neutron LBaaS agent using the HAProxy - driver does not allow high availability for the tenant load - balancers. The neutron-lbaas-agent service will be enabled and - running on all controllers, allowing for load balancers to be - distributed across all nodes. However, a controller node failure - will stop all load balancers running on that node until the service - is recovered or the load balancer is manually removed and created - again. - -#. Service monitoring and recovery required - - An external service monitoring infrastructure is required to check - the OpenStack service health, and notify operators in case of any - failure. This architecture does not provide any facility for that, - so it would be necessary to integrate the OpenStack deployment with - any existing monitoring environment. - -#. Manual recovery after a full cluster restart - - Some support services used by RDO or RHEL OSP use their own form of - application clustering. Usually, these services maintain a cluster - quorum, that may be lost in case of a simultaneous restart of all - cluster nodes, for example during a power outage. Each service will - require its own procedure to regain quorum. - -If you find any or all of these limitations concerning, you are -encouraged to refer to the -:doc:`Pacemaker HA architecture` instead. 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 e81cc523..00000000 --- a/doc/ha-guide/source/intro-ha-arch-pacemaker.rst +++ /dev/null @@ -1,198 +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 and/or replicated application that is able to -survive failures on one or more machines can benefit from a -cluster manager: - -#. 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 - context that is crucial to - determine the difference between a local failure, 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 site-wide failure or shutdown where we 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 - 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 - applcation on a machine. The usual practice is to assume the - machine is dead and carry on, 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 this reason, the use of a cluster manager like `Pacemaker -`_ is highly recommended. - -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, it is recommended that the -clusters contain at least three nodes so that we 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 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 - leading 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 this 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 us 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: - -#. 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, we can clearly - identify service interdependencies. We 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 - -However, the reasons vary and are discussed under each component's -heading. - -We recommend HAProxy as the load balancer, however, there are many -alternatives in the marketplace. - -We use a check interval of 1 second, however, the timeouts vary by service. - -Generally, we use round-robin to distribute load amongst instances of -active/active services, however, Galera uses the ``stick-table`` options -to ensure that incoming connections to the virtual IP (VIP) should be -directed to only one of the available back ends. - -In Galera's case, although it can run active/active, this helps avoid -lock contention and prevent deadlocks. It is used in combination with -the ``httpchk`` option that ensures only nodes that are in sync with its -peers are allowed to handle requests. diff --git a/doc/ha-guide/source/intro-ha-compute.rst b/doc/ha-guide/source/intro-ha-compute.rst deleted file mode 100644 index 76395d25..00000000 --- a/doc/ha-guide/source/intro-ha-compute.rst +++ /dev/null @@ -1,4 +0,0 @@ - -========================================== -Overview of highly-available compute nodes -========================================== diff --git a/doc/ha-guide/source/intro-ha-concepts.rst b/doc/ha-guide/source/intro-ha-concepts.rst deleted file mode 100644 index 3414dcfa..00000000 --- a/doc/ha-guide/source/intro-ha-concepts.rst +++ /dev/null @@ -1,213 +0,0 @@ -========================== -High availability concepts -========================== - -High availability systems seek to minimize two things: - -**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 :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. -These methods are by no means the only ways to do it; -you may supplement these services with commercial hardware and software -that provides additional features and functionality. -You also 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 vs. stateful services -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Preventing single points of failure can depend on whether or not a -service is stateless. - -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, so simply 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 vs. Active/Active -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Stateful services may be configured as active/passive or active/active: - -: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:: - - Note that setting the quorum to a value less than floor(n/2) + 1 is not - recommended and would likely cause a split-brain in a face of network - partitions. - -Then, for the given example 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. And 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, like 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; -this is discussed later in this guide. -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. - -High availability is turned off as the default in OpenStack setups. diff --git a/doc/ha-guide/source/intro-ha-controller.rst b/doc/ha-guide/source/intro-ha-controller.rst deleted file mode 100644 index 26cf2391..00000000 --- a/doc/ha-guide/source/intro-ha-controller.rst +++ /dev/null @@ -1,62 +0,0 @@ -======================================== -Overview of highly-available controllers -======================================== - -OpenStack is a set of multiple services exposed to the end users -as HTTP(s) APIs. Additionally, for own internal usage OpenStack -requires SQL database server and AMQP broker. The physical servers, -where all the components are running are often called controllers. -This modular OpenStack architecture allows 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, these are HTTP(s) stateless services written in python, - easy to duplicate and mostly easy to load balance. - -- SQL relational database server provides stateful type consumed by other - components. Supported databases are MySQL, MariaDB, and PostgreSQL. - Making SQL database redundant is complex. - -- :term:`Advanced Message Queuing Protocol (AMQP)` provides OpenStack - internal stateful communication service. - -Network components -~~~~~~~~~~~~~~~~~~ - -[TODO Need discussion of network hardware, bonding interfaces, -intelligent Layer 2 switches, routers and Layer 3 switches.] - -The configuration uses static routing without -Virtual Router Redundancy Protocol (VRRP) -or similar techniques implemented. - -[TODO Need description of VIP failover inside Linux namespaces -and expected SLA.] - -See [TODO link] for more information about configuring networking -for high availability. - -Common deployement architectures -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -There are primarily two HA architectures in use today. - -One uses a cluster manager such as Pacemaker or Veritas to co-ordinate -the actions of the various services across a set of machines. Since -we are focused on FOSS, we will refer to this as the Pacemaker -architecture. - -The other is optimized for Active/Active services that do not require -any inter-machine coordination. In this setup, services are started by -your init system (systemd in most modern distributions) and a tool is -used to move IP addresses between the hosts. The most common package -for doing this is keepalived. - -.. toctree:: - :maxdepth: 1 - - intro-ha-arch-pacemaker.rst - intro-ha-arch-keepalived.rst diff --git a/doc/ha-guide/source/intro-ha-other.rst b/doc/ha-guide/source/intro-ha-other.rst deleted file mode 100644 index e623ab38..00000000 --- a/doc/ha-guide/source/intro-ha-other.rst +++ /dev/null @@ -1,4 +0,0 @@ - -====================================== -High availability for other components -====================================== diff --git a/doc/ha-guide/source/intro-ha-storage.rst b/doc/ha-guide/source/intro-ha-storage.rst deleted file mode 100644 index f410fa56..00000000 --- a/doc/ha-guide/source/intro-ha-storage.rst +++ /dev/null @@ -1,12 +0,0 @@ -===================================== -Overview of high availability storage -===================================== - -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/doc/ha-guide/source/intro-ha.rst b/doc/ha-guide/source/intro-ha.rst deleted file mode 100644 index dc4a5bdd..00000000 --- a/doc/ha-guide/source/intro-ha.rst +++ /dev/null @@ -1,15 +0,0 @@ - -=========================================== -Introduction to OpenStack high availability -=========================================== - - -.. toctree:: - :maxdepth: 2 - - intro-ha-concepts.rst - intro-ha-controller.rst - intro-ha-storage.rst - intro-ha-compute.rst - intro-ha-other.rst - diff --git a/doc/ha-guide/source/locale/ha-guide.pot b/doc/ha-guide/source/locale/ha-guide.pot deleted file mode 100644 index cf7431e7..00000000 --- a/doc/ha-guide/source/locale/ha-guide.pot +++ /dev/null @@ -1,4261 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2015, OpenStack contributors -# This file is distributed under the same license as the High Availability Guide package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: High Availability Guide 0.0.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-07 06:00+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../compute-node-ha-api.rst:4 -msgid "Configure high availability on compute nodes" -msgstr "" - -#: ../compute-node-ha-api.rst:6 -msgid "" -"The `Installation Guide `_ gives instructions for installing multiple compute nodes. To make " -"them highly available, you must configure the environment to include " -"multiple instances of the API and other services." -msgstr "" - -#: ../compute-node-ha.rst:4 -msgid "Configuring the compute node for high availability" -msgstr "" - -#: ../controller-ha-galera-config.rst:2 -msgid "Configuration" -msgstr "" - -#: ../controller-ha-galera-config.rst:4 -msgid "" -"Before you launch Galera Cluster, you need to configure the server and the " -"database to operate as part of the cluster." -msgstr "" - -#: ../controller-ha-galera-config.rst:8 -msgid "Configuring the server" -msgstr "" - -#: ../controller-ha-galera-config.rst:10 -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 "" - -#: ../controller-ha-galera-config.rst:16 -msgid "Firewall" -msgstr "" - -#: ../controller-ha-galera-config.rst:18 -msgid "Galera Cluster requires that you open four ports to network traffic:" -msgstr "" - -#: ../controller-ha-galera-config.rst:20 -msgid "" -"On ``3306``, Galera Cluster uses TCP for database client connections and " -"State Snapshot Transfers methods that require the client, (that is, " -"``mysqldump``)." -msgstr "" - -#: ../controller-ha-galera-config.rst:23 -msgid "" -"On ``4567`` Galera Cluster uses TCP for replication traffic. Multicast " -"replication uses both TCP and UDP on this port." -msgstr "" - -#: ../controller-ha-galera-config.rst:25 -msgid "On ``4568`` Galera Cluster uses TCP for Incremental State Transfers." -msgstr "" - -#: ../controller-ha-galera-config.rst:26 -msgid "" -"On ``4444`` Galera Cluster uses TCP for all other State Snapshot Transfer " -"methods." -msgstr "" - -#: ../controller-ha-galera-config.rst:29 -msgid "" -"For more information on firewalls, see `Firewalls and default ports `_, in the Configuration Reference." -msgstr "" - -#: ../controller-ha-galera-config.rst:35 -msgid "``iptables``" -msgstr "" - -#: ../controller-ha-galera-config.rst:37 -msgid "" -"For many Linux distributions, you can configure the firewall using the " -"``iptables`` utility. To do so, complete the following steps:" -msgstr "" - -#: ../controller-ha-galera-config.rst:40 -msgid "" -"For each cluster node, run the following commands, replacing ``NODE-IP-" -"ADDRESS`` with the IP address of the cluster node you want to open the " -"firewall to:" -msgstr "" - -#: ../controller-ha-galera-config.rst:59 -msgid "" -"In the event that you also want to configure multicast replication, run this " -"command as well:" -msgstr "" - -#: ../controller-ha-galera-config.rst:69 -msgid "" -"Make the changes persistent. For servers that use ``init``, use the :command:" -"`save` command:" -msgstr "" - -#: ../controller-ha-galera-config.rst:76 -msgid "" -"For servers that use ``systemd``, you need to save the current packet " -"filtering to the path of the file that ``iptables`` reads when it starts. " -"This path can vary by distribution, but common locations are in the ``/etc`` " -"directory, such as:" -msgstr "" - -#: ../controller-ha-galera-config.rst:81 -msgid "``/etc/sysconfig/iptables``" -msgstr "" - -#: ../controller-ha-galera-config.rst:82 -msgid "``/etc/iptables/iptables.rules``" -msgstr "" - -#: ../controller-ha-galera-config.rst:84 -msgid "" -"When you find the correct path, run the :command:`iptables-save` command:" -msgstr "" - -#: ../controller-ha-galera-config.rst:90 -#: ../controller-ha-galera-config.rst:137 -msgid "" -"With the firewall configuration saved, whenever your OpenStack database " -"starts." -msgstr "" - -#: ../controller-ha-galera-config.rst:94 -msgid "``firewall-cmd``" -msgstr "" - -#: ../controller-ha-galera-config.rst:96 -msgid "" -"For many Linux distributions, you can configure the firewall using the " -"``firewall-cmd`` utility for FirewallD. To do so, complete the following " -"steps on each cluster node:" -msgstr "" - -#: ../controller-ha-galera-config.rst:100 -msgid "Add the Galera Cluster service:" -msgstr "" - -#: ../controller-ha-galera-config.rst:106 -msgid "" -"For each instance of OpenStack database in your cluster, run the following " -"commands, replacing ``NODE-IP-ADDRESS`` with the IP address of the cluster " -"node you want to open the firewall to:" -msgstr "" - -#: ../controller-ha-galera-config.rst:117 -msgid "" -"In the event that you also want to configure mutlicast replication, run this " -"command as well:" -msgstr "" - -#: ../controller-ha-galera-config.rst:124 -msgid "" -"To make this configuration persistent, repeat the above commands with the :" -"option:`--permanent` option." -msgstr "" - -#: ../controller-ha-galera-config.rst:141 -msgid "SELinux" -msgstr "" - -#: ../controller-ha-galera-config.rst:143 -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 "" - -#: ../controller-ha-galera-config.rst:149 -msgid "" -"To configure SELinux to permit Galera Cluster to operate, complete the " -"following steps on each cluster node:" -msgstr "" - -#: ../controller-ha-galera-config.rst:152 -msgid "Using the ``semanage`` utility, open the relevant ports:" -msgstr "" - -#: ../controller-ha-galera-config.rst:161 -msgid "" -"In the event that you use multicast replication, you also need to open " -"``4567`` to UDP traffic:" -msgstr "" - -#: ../controller-ha-galera-config.rst:168 -msgid "Set SELinux to allow the database server to run:" -msgstr "" - -#: ../controller-ha-galera-config.rst:174 -msgid "With these options set, SELinux now permits Galera Cluster to operate." -msgstr "" - -#: ../controller-ha-galera-config.rst:176 -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 "" - -#: ../controller-ha-galera-config.rst:181 -msgid "" -"For more information on configuring SELinux to work with Galera Cluster, see " -"the `Documentation `_" -msgstr "" - -#: ../controller-ha-galera-config.rst:187 -msgid "AppArmor" -msgstr "" - -#: ../controller-ha-galera-config.rst:189 -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 "" - -#: ../controller-ha-galera-config.rst:194 -msgid "" -"To configure AppArmor to work with Galera Cluster, complete the following " -"steps on each cluster node:" -msgstr "" - -#: ../controller-ha-galera-config.rst:197 -msgid "" -"Create a symbolic link for the database server in the ``disable`` directory:" -msgstr "" - -#: ../controller-ha-galera-config.rst:203 -msgid "" -"Restart AppArmor. For servers that use ``init``, run the following command:" -msgstr "" - -# #-#-#-#-# controller-ha-galera-config.pot (High Availability Guide 0.0.1) #-#-#-#-# -# #-#-#-#-# controller-ha-galera-manage.pot (High Availability Guide 0.0.1) #-#-#-#-# -#: ../controller-ha-galera-config.rst:209 -#: ../controller-ha-galera-manage.rst:43 ../controller-ha-galera-manage.rst:70 -msgid "For servers that use ``systemd``, instead run this command:" -msgstr "" - -#: ../controller-ha-galera-config.rst:215 -msgid "AppArmor now permits Galera Cluster to operate." -msgstr "" - -#: ../controller-ha-galera-config.rst:219 -msgid "Database configuration" -msgstr "" - -#: ../controller-ha-galera-config.rst:221 -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 "" - -#: ../controller-ha-galera-config.rst:252 -msgid "Configuring ``mysqld``" -msgstr "" - -#: ../controller-ha-galera-config.rst:254 -msgid "" -"While all of the configuration parameters available to the standard MySQL, " -"MariaDB or Percona XtraDB database server are available in Galera Cluster, " -"there are some that you must define an outset to avoid conflict or " -"unexpected behavior." -msgstr "" - -#: ../controller-ha-galera-config.rst:259 -msgid "" -"Ensure that the database server is not bound only to to the localhost, " -"``127.0.0.1``. Instead, bind it to ``0.0.0.0`` to ensure it listens on all " -"available interfaces." -msgstr "" - -#: ../controller-ha-galera-config.rst:267 -msgid "" -"Ensure that the binary log format is set to use row-level replication, as " -"opposed to statement-level replication:" -msgstr "" - -#: ../controller-ha-galera-config.rst:276 -msgid "Configuring InnoDB" -msgstr "" - -#: ../controller-ha-galera-config.rst:278 -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 "" - -#: ../controller-ha-galera-config.rst:282 -msgid "Ensure that the default storage engine is set to InnoDB:" -msgstr "" - -#: ../controller-ha-galera-config.rst:288 -msgid "" -"Ensure that the InnoDB locking mode for generating auto-increment values is " -"set to ``2``, which is the interleaved locking mode." -msgstr "" - -#: ../controller-ha-galera-config.rst:295 -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 "" - -#: ../controller-ha-galera-config.rst:299 -msgid "" -"Ensure that the InnoDB log buffer is written to file once per second, rather " -"than on each commit, to improve performance:" -msgstr "" - -#: ../controller-ha-galera-config.rst:306 -msgid "" -"Bear in mind, while setting this parameter to ``1`` or ``2`` can improve " -"performance, 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 "" - -#: ../controller-ha-galera-config.rst:312 -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 "" - -#: ../controller-ha-galera-config.rst:322 -msgid "Configuring wsrep replication" -msgstr "" - -#: ../controller-ha-galera-config.rst:324 -msgid "" -"Galera Cluster configuration parameters all have the ``wsrep_`` prefix. " -"There are five that you must define for each cluster node in your OpenStack " -"database." -msgstr "" - -#: ../controller-ha-galera-config.rst:328 -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. You must define the path to this file in your " -"``my.cnf``." -msgstr "" - -#: ../controller-ha-galera-config.rst:337 -msgid "**Cluster Name** Define an arbitrary name for your cluster." -msgstr "" - -#: ../controller-ha-galera-config.rst:343 -msgid "" -"You must use the same name on every cluster node. The connection fails when " -"this value does not match." -msgstr "" - -#: ../controller-ha-galera-config.rst:346 -msgid "**Cluster Address** List the IP addresses for each cluster node." -msgstr "" - -#: ../controller-ha-galera-config.rst:352 -msgid "" -"Replace the IP addresses given here with comma-separated list of each " -"OpenStack database in your cluster." -msgstr "" - -#: ../controller-ha-galera-config.rst:355 -msgid "**Node Name** Define the logical name of the cluster node." -msgstr "" - -#: ../controller-ha-galera-config.rst:361 -msgid "**Node Address** Define the IP address of the cluster node." -msgstr "" - -#: ../controller-ha-galera-config.rst:371 -msgid "Additional parameters" -msgstr "" - -#: ../controller-ha-galera-config.rst:373 -msgid "" -"For a complete list of the available parameters, run the ``SHOW VARIABLES`` " -"command from within the database client:" -msgstr "" - -#: ../controller-ha-galera-config.rst:394 -msgid "" -"For the documentation of these parameters, wsrep Provider option and status " -"variables available in Galera Cluster, see `Reference `_." -msgstr "" - -#: ../controller-ha-galera-install.rst:2 -msgid "Installation" -msgstr "" - -#: ../controller-ha-galera-install.rst:4 -msgid "" -"Using Galera Cluster requires that you install two packages. The first is " -"the database server, which must include the wsrep API patch. The second " -"package is the Galera Replication Plugin, which enables the write-set " -"replication service functionality with the database server." -msgstr "" - -#: ../controller-ha-galera-install.rst:9 -msgid "" -"There are three implementations of Galera Cluster: MySQL, MariaDB and " -"Percona XtraDB. For each implementation, there is a software repository that " -"provides binary packages for Debian, Red Hat, and SUSE-based Linux " -"distributions." -msgstr "" - -#: ../controller-ha-galera-install.rst:16 -msgid "Enabling the repository" -msgstr "" - -#: ../controller-ha-galera-install.rst:18 -msgid "" -"Galera Cluster is not available in the base repositories of Linux " -"distributions. In order to install it with your package manage, you must " -"first enable the repository on your system. The particular methods for doing " -"so vary depending on which distribution you use for OpenStack and which " -"database server you want to use." -msgstr "" - -#: ../controller-ha-galera-install.rst:25 -msgid "Debian" -msgstr "" - -#: ../controller-ha-galera-install.rst:27 -msgid "" -"For Debian and Debian-based distributions, such as Ubuntu, complete the " -"following steps:" -msgstr "" - -#: ../controller-ha-galera-install.rst:30 -msgid "Add the GnuPG key for the database repository that you want to use." -msgstr "" - -#: ../controller-ha-galera-install.rst:37 -msgid "" -"Note that the particular key value in this command varies depending on which " -"database software repository you want to use." -msgstr "" - -#: ../controller-ha-galera-install.rst:41 -msgid "Database" -msgstr "" - -#: ../controller-ha-galera-install.rst:41 -msgid "Key" -msgstr "" - -#: ../controller-ha-galera-install.rst:43 -msgid "Galera Cluster for MySQL" -msgstr "" - -#: ../controller-ha-galera-install.rst:43 -msgid "``BC19DDBA``" -msgstr "" - -#: ../controller-ha-galera-install.rst:45 -msgid "MariaDB Galera Cluster" -msgstr "" - -#: ../controller-ha-galera-install.rst:45 -msgid "``0xcbcb082a1bb943db``" -msgstr "" - -#: ../controller-ha-galera-install.rst:47 -msgid "Percona XtraDB Cluster" -msgstr "" - -#: ../controller-ha-galera-install.rst:47 -msgid "``1C4CBDCDCD2EFD2A``" -msgstr "" - -#: ../controller-ha-galera-install.rst:50 -msgid "" -"Add the repository to your sources list. Using your preferred text editor, " -"create a ``galera.list`` file in the ``/etc/apt/sources.list.d/`` directory. " -"For the contents of this file, use the lines that pertain to the software " -"repository you want to install:" -msgstr "" - -#: ../controller-ha-galera-install.rst:66 -msgid "" -"For each entry: Replace all instances of ``DISTRO`` with the distribution " -"that you use, such as ``debian`` or ``ubuntu``. Replace all instances of " -"``RELEASE`` with the release of that distribution, such as ``wheezy`` or " -"``trusty``. Replace all instances of ``VERSION`` with the version of the " -"database server that you want to install, such as ``5.6`` or ``10.0``." -msgstr "" - -#: ../controller-ha-galera-install.rst:72 -msgid "" -"In the event that you do not know the release code-name for your " -"distribution, you can use the following command to find it out:" -msgstr "" - -#: ../controller-ha-galera-install.rst:81 -msgid "Update the local cache." -msgstr "" - -#: ../controller-ha-galera-install.rst:87 -msgid "" -"Packages in the Galera Cluster Debian repository are now available for " -"installation on your system." -msgstr "" - -#: ../controller-ha-galera-install.rst:91 -msgid "Red Hat" -msgstr "" - -#: ../controller-ha-galera-install.rst:93 -msgid "" -"For Red Hat Enterprise Linux and Red Hat-based Linux distributions, the " -"process is more straightforward. In this file, only enter the text for the " -"repository you want to use." -msgstr "" - -#: ../controller-ha-galera-install.rst:97 -msgid "" -"For Galera Cluster for MySQL, using your preferred text editor, create a " -"``Galera.repo`` file in the ``/etc/yum.repos.d/`` directory." -msgstr "" - -#: ../controller-ha-galera-install.rst:108 -msgid "" -"Replace ``DISTRO`` with the name of the distribution you use, such as " -"``centos`` or ``fedora``. Replace ``RELEASE`` with the release number, such " -"as ``7`` for CentOS 7. Replace ``ARCH`` with your system architecture, such " -"as ``x86_64``" -msgstr "" - -#: ../controller-ha-galera-install.rst:113 -msgid "" -"For MariaDB Galera Cluster, using your preferred text editor, create a " -"``Galera.repo`` file in the ``/etc/yum.repos.d/`` directory." -msgstr "" - -#: ../controller-ha-galera-install.rst:124 -msgid "" -"Replace ``VERSION`` with the version of MariaDB you want to install, such as " -"``5.6`` or ``10.0``. Replace ``PACKAGE`` with the package type and " -"architecture, such as ``rhel6-amd64`` for Red Hat 6 on 64-bit architecture." -msgstr "" - -#: ../controller-ha-galera-install.rst:129 -msgid "For Percona XtraDB Cluster, run the following command:" -msgstr "" - -#: ../controller-ha-galera-install.rst:135 -msgid "" -"Bear in mind that the Percona repository only supports Red Hat Enterprise " -"Linux and CentOS distributions." -msgstr "" - -#: ../controller-ha-galera-install.rst:138 -msgid "" -"Packages in the Galera Cluster Red Hat repository are not available for " -"installation on your system." -msgstr "" - -#: ../controller-ha-galera-install.rst:144 -msgid "SUSE" -msgstr "" - -#: ../controller-ha-galera-install.rst:146 -msgid "" -"For SUSE Enterprise Linux and SUSE-based distributions, such as openSUSE " -"binary installations are only available for Galera Cluster for MySQL and " -"MariaDB Galera Cluster." -msgstr "" - -#: ../controller-ha-galera-install.rst:150 -msgid "" -"Create a ``Galera.repo`` file in the local directory. For Galera Cluster for " -"MySQL, use the following content:" -msgstr "" - -#: ../controller-ha-galera-install.rst:161 -msgid "" -"In the text: Replace ``DISTRO`` with the name of the distribution you use, " -"such as ``sles`` or ``opensuse``. Replace ``RELEASE`` with the version " -"number of that distribution." -msgstr "" - -#: ../controller-ha-galera-install.rst:165 -msgid "For MariaDB Galera Cluster, instead use this content:" -msgstr "" - -#: ../controller-ha-galera-install.rst:175 -msgid "" -"In the text: Replace ``VERSION`` with the version of MariaDB you want to " -"install, such as ``5.6`` or ``10.0``. Replace package with the package " -"architecture you want to use, such as ``opensuse13-amd64``." -msgstr "" - -#: ../controller-ha-galera-install.rst:179 -msgid "Add the repository to your system:" -msgstr "" - -#: ../controller-ha-galera-install.rst:185 -msgid "Refresh ``zypper``:" -msgstr "" - -#: ../controller-ha-galera-install.rst:191 -msgid "" -"Packages in the Galera Cluster SUSE repository are now available for " -"installation." -msgstr "" - -#: ../controller-ha-galera-install.rst:196 -msgid "Installing Galera Cluster" -msgstr "" - -#: ../controller-ha-galera-install.rst:198 -msgid "" -"When you finish enabling the software repository for Galera Cluster, you can " -"install it using your package manager. The particular command and packages " -"you need to install varies depending on which database server you want to " -"install and which Linux distribution you use:" -msgstr "" - -#: ../controller-ha-galera-install.rst:203 -msgid "Galera Cluster for MySQL:" -msgstr "" - -#: ../controller-ha-galera-install.rst:206 -#: ../controller-ha-galera-install.rst:230 -#: ../controller-ha-galera-install.rst:255 -msgid "" -"For Debian and Debian-based distributions, such as Ubuntu, run the following " -"command:" -msgstr "" - -#: ../controller-ha-galera-install.rst:213 -#: ../controller-ha-galera-install.rst:237 -#: ../controller-ha-galera-install.rst:262 -msgid "" -"For Red Hat Enterprise Linux and Red Hat-based distributions, such as Fedora " -"or CentOS, instead run this command:" -msgstr "" - -#: ../controller-ha-galera-install.rst:220 -#: ../controller-ha-galera-install.rst:244 -msgid "" -"For SUSE Enterprise Linux Server and SUSE-based distributions, such as " -"openSUSE, instead run this command:" -msgstr "" - -#: ../controller-ha-galera-install.rst:228 -msgid "MariaDB Galera Cluster:" -msgstr "" - -#: ../controller-ha-galera-install.rst:252 -msgid "Percona XtraDB Cluster:" -msgstr "" - -#: ../controller-ha-galera-install.rst:269 -msgid "" -"Galera Cluster is now installed on your system. You must repeat this process " -"for each controller node in your cluster." -msgstr "" - -#: ../controller-ha-galera-install.rst:272 -msgid "" -"In the event that you already installed the standalone version of MySQL, " -"MariaDB or Percona XtraDB, this installation purges all privileges on your " -"OpenStack database server. You must reapply the privileges listed in the " -"installation guide." -msgstr "" - -#: ../controller-ha-galera-manage.rst:2 -msgid "Management" -msgstr "" - -#: ../controller-ha-galera-manage.rst:4 -msgid "" -"When you finish the installation and configuration process on each cluster " -"node in your OpenStack database, you can initialize Galera Cluster." -msgstr "" - -#: ../controller-ha-galera-manage.rst:7 -msgid "Before you attempt this, verify that you have the following ready:" -msgstr "" - -#: ../controller-ha-galera-manage.rst:9 -msgid "" -"Database hosts with Galera Cluster installed. You need a minimum of three " -"hosts;" -msgstr "" - -#: ../controller-ha-galera-manage.rst:11 -msgid "No firewalls between the hosts;" -msgstr "" - -#: ../controller-ha-galera-manage.rst:12 -msgid "SELinux and AppArmor set to permit access to ``mysqld``;" -msgstr "" - -#: ../controller-ha-galera-manage.rst:13 -msgid "" -"The correct path to ``libgalera_smm.so`` given to the ``wsrep_provider`` " -"parameter." -msgstr "" - -#: ../controller-ha-galera-manage.rst:17 -msgid "Initializing the cluster" -msgstr "" - -#: ../controller-ha-galera-manage.rst:19 -msgid "" -"In 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 "" - -#: ../controller-ha-galera-manage.rst:25 -msgid "" -"By default, cluster nodes do not start as part of a Primary Component. " -"Instead they assume that one exists somewhere and attempts to establish a " -"connection with it. To create a Primary Component, you must start one " -"cluster node using the ``--wsrep-new-cluster`` option. You can do this using " -"any cluster node, it is not important which you choose. In the Primary " -"Component, replication and state transfers bring all databases to the same " -"state." -msgstr "" - -#: ../controller-ha-galera-manage.rst:34 -msgid "To start the cluster, complete the following steps:" -msgstr "" - -#: ../controller-ha-galera-manage.rst:36 -msgid "" -"Initialize the Primary Component on one cluster node. For servers that use " -"``init``, run the following command:" -msgstr "" - -#: ../controller-ha-galera-manage.rst:49 -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 "" - -#: ../controller-ha-galera-manage.rst:63 -msgid "" -"Start the database server on all other cluster nodes. For servers that use " -"``init``, run the following command:" -msgstr "" - -#: ../controller-ha-galera-manage.rst:76 -msgid "" -"When you have all cluster nodes started, log into the database client on one " -"of them and check the ``wsrep_cluster_size`` status variable again." -msgstr "" - -#: ../controller-ha-galera-manage.rst:90 -msgid "" -"When each cluster node starts, it checks the IP addresses given to the " -"``wsrep_cluster_address`` parameter and 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 "" - -#: ../controller-ha-galera-manage.rst:97 -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 "" - -#: ../controller-ha-galera-manage.rst:104 -msgid "Restarting the cluster" -msgstr "" - -#: ../controller-ha-galera-manage.rst:106 -msgid "" -"Individual cluster nodes can stop and be restarted without issue. When a " -"database loses its connection or restarts, 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 "" - -#: ../controller-ha-galera-manage.rst:113 -msgid "" -"To find the most advanced cluster node, you need to check the sequence " -"numbers, or seqnos, on the last committed transaction for each. You can find " -"this by viewing ``grastate.dat`` file in database directory," -msgstr "" - -#: ../controller-ha-galera-manage.rst:127 -msgid "" -"Alternatively, if the database server is running, use the " -"``wsrep_last_committed`` status variable:" -msgstr "" - -#: ../controller-ha-galera-manage.rst:140 -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 "" - -#: ../controller-ha-galera-manage.rst:145 -msgid "Configuration tips" -msgstr "" - -#: ../controller-ha-galera-manage.rst:149 -msgid "Deployment strategies" -msgstr "" - -#: ../controller-ha-galera-manage.rst:151 -msgid "Galera can be configured using one of the following strategies:" -msgstr "" - -#: ../controller-ha-galera-manage.rst:154 -msgid "Each instance has its own IP address;" -msgstr "" - -#: ../controller-ha-galera-manage.rst:156 -msgid "" -"OpenStack services are configured with the list of these IP addresses so " -"they can select one of the addresses from those available." -msgstr "" - -#: ../controller-ha-galera-manage.rst:160 -msgid "Galera runs behind HAProxy." -msgstr "" - -#: ../controller-ha-galera-manage.rst:162 -msgid "" -"HAProxy load balances incoming requests and exposes just one IP address for " -"all the clients." -msgstr "" - -#: ../controller-ha-galera-manage.rst:165 -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 (in other words, the Galera cluster is not ready to accept " -"connections), the failover procedure finishes only when the Galera cluster " -"has been successfully reassembled. The SLA is normally no more than 5 " -"minutes." -msgstr "" - -#: ../controller-ha-galera-manage.rst:174 -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 more in the following:" -msgstr "" - -#: ../controller-ha-galera-manage.rst:178 -msgid "http://lists.openstack.org/pipermail/openstack-dev/2014-May/035264.html" -msgstr "" - -#: ../controller-ha-galera-manage.rst:179 -msgid "http://www.joinfu.com/" -msgstr "" - -#: ../controller-ha-galera-manage.rst:181 -msgid "" -"Of these options, the second one is highly recommended. Although Galera " -"supports active/active configurations, we recommend active/passive (enforced " -"by the load balancer) in order to avoid lock contention." -msgstr "" - -#: ../controller-ha-galera-manage.rst:188 -msgid "Configuring HAProxy" -msgstr "" - -#: ../controller-ha-galera-manage.rst:190 -msgid "" -"If you use HAProxy for load-balancing client access to Galera Cluster as " -"described in the :doc:`controller-ha-haproxy`, you can use the " -"``clustercheck`` utility to improve health checks." -msgstr "" - -#: ../controller-ha-galera-manage.rst:194 -msgid "" -"Create a configuration file for ``clustercheck`` at ``/etc/sysconfig/" -"clustercheck``:" -msgstr "" - -#: ../controller-ha-galera-manage.rst:204 -msgid "" -"Log in to the database client and grant the ``clustercheck`` user " -"``PROCESS`` privileges." -msgstr "" - -#: ../controller-ha-galera-manage.rst:214 -msgid "" -"You only need to do this on one cluster node. Galera Cluster replicates the " -"user to all the others." -msgstr "" - -#: ../controller-ha-galera-manage.rst:217 -msgid "" -"Create a configuration file for the HAProxy monitor service, at ``/etc/" -"xinetd.d/galera-monitor``:" -msgstr "" - -#: ../controller-ha-galera-manage.rst:239 -msgid "" -"Start the ``xinetd`` daemon for ``clustercheck``. For servers that use " -"``init``, run the following commands:" -msgstr "" - -#: ../controller-ha-galera-manage.rst:247 -msgid "For servers that use ``systemd``, instead run these commands:" -msgstr "" - -#: ../controller-ha-galera.rst:2 -msgid "Database (Galera Cluster)" -msgstr "" - -#: ../controller-ha-galera.rst:4 -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 "" - -#: ../controller-ha-galera.rst:11 -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 "" - -#: ../controller-ha-galera.rst:15 -msgid "" -"`Galera Cluster for MySQL `_ The MySQL reference " -"implementation from Codership, Oy;" -msgstr "" - -#: ../controller-ha-galera.rst:17 -msgid "" -"`MariaDB Galera Cluster `_ The MariaDB implementation " -"of Galera Cluster, which is commonly supported in environments based on Red " -"Hat distributions;" -msgstr "" - -#: ../controller-ha-galera.rst:20 -msgid "" -"`Percona XtraDB Cluster `_ The XtraDB " -"implementation of Galera Cluster from Percona." -msgstr "" - -#: ../controller-ha-galera.rst:23 -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 "" - -#: ../controller-ha-haproxy.rst:3 -msgid "HAProxy" -msgstr "" - -#: ../controller-ha-haproxy.rst:5 -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 "" - -#: ../controller-ha-haproxy.rst:11 -msgid "" -"Each instance of HAProxy configures its front end to accept connections only " -"from the virtual IP (VIP) address and to terminate them as a list of all " -"instances of the corresponding service under load balancing, such as any " -"OpenStack API service." -msgstr "" - -#: ../controller-ha-haproxy.rst:16 -msgid "" -"This makes the instances of HAProxy act independently and fail over " -"transparently together with the network endpoints (VIP addresses) failover " -"and, therefore, shares the same SLA." -msgstr "" - -#: ../controller-ha-haproxy.rst:20 -msgid "" -"You can alternatively use a commercial load balancer, which is a hardware or " -"software. A hardware load balancer generally has good performance." -msgstr "" - -#: ../controller-ha-haproxy.rst:23 -msgid "" -"For detailed instructions about installing HAProxy on your nodes, see its " -"`official documentation `_." -msgstr "" - -#: ../controller-ha-haproxy.rst:28 -msgid "" -"HAProxy should not be a single point of failure. It is advisable to have " -"multiple HAProxy instances running, where the number of these instances is a " -"small odd number like 3 or 5. You need to ensure its availability by other " -"means, such as Keepalived or Pacemaker." -msgstr "" - -#: ../controller-ha-haproxy.rst:34 -msgid "" -"The common practice is to locate an HAProxy instance on each OpenStack " -"controller in the environment." -msgstr "" - -#: ../controller-ha-haproxy.rst:37 -msgid "" -"Once configured (see example file below), add HAProxy to the cluster and " -"ensure the VIPs can only run on machines where HAProxy is active:" -msgstr "" - -# #-#-#-#-# controller-ha-haproxy.pot (High Availability Guide 0.0.1) #-#-#-#-# -# #-#-#-#-# controller-ha-pacemaker.pot (High Availability Guide 0.0.1) #-#-#-#-# -#: ../controller-ha-haproxy.rst:40 ../controller-ha-pacemaker.rst:574 -msgid "``pcs``" -msgstr "" - -# #-#-#-#-# controller-ha-haproxy.pot (High Availability Guide 0.0.1) #-#-#-#-# -# #-#-#-#-# controller-ha-pacemaker.pot (High Availability Guide 0.0.1) #-#-#-#-# -#: ../controller-ha-haproxy.rst:48 ../controller-ha-pacemaker.rst:565 -msgid "``crmsh``" -msgstr "" - -#: ../controller-ha-haproxy.rst:50 -msgid "TBA" -msgstr "" - -#: ../controller-ha-haproxy.rst:53 -msgid "Example Config File" -msgstr "" - -#: ../controller-ha-haproxy.rst:55 -msgid "" -"Here is an example ``/etc/haproxy/haproxy.cfg`` configuration file. You need " -"a copy of it on each controller node." -msgstr "" - -#: ../controller-ha-haproxy.rst:60 -msgid "" -"To implement any changes made to this you must restart the HAProxy service" -msgstr "" - -#: ../controller-ha-haproxy.rst:218 -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 "" - -#: ../controller-ha-haproxy.rst:225 -msgid "" -"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" -msgstr "" - -#: ../controller-ha-haproxy.rst:229 -msgid "" -"[TODO: we need more commentary about the contents and format of this file]" -msgstr "" - -#: ../controller-ha-keystone.rst:4 -msgid "Identity services (keystone)" -msgstr "" - -#: ../controller-ha-keystone.rst:6 -msgid "" -"OpenStack Identity (keystone) is the Identity service in OpenStack that is " -"used by many services. You should be familiar with `OpenStack identity " -"concepts `_ before proceeding." -msgstr "" - -#: ../controller-ha-keystone.rst:13 -msgid "" -"Making the OpenStack Identity service highly available in active / passive " -"mode involves:" -msgstr "" - -#: ../controller-ha-keystone.rst:16 -msgid ":ref:`keystone-pacemaker`" -msgstr "" - -#: ../controller-ha-keystone.rst:17 -msgid ":ref:`keystone-config-identity`" -msgstr "" - -#: ../controller-ha-keystone.rst:18 -msgid ":ref:`keystone-services-config`" -msgstr "" - -#: ../controller-ha-keystone.rst:23 -msgid "Add OpenStack Identity resource to Pacemaker" -msgstr "" - -#: ../controller-ha-keystone.rst:25 -msgid "" -"You must first download the OpenStack Identity resource to Pacemaker by " -"running the following commands:" -msgstr "" - -#: ../controller-ha-keystone.rst:36 -msgid "" -"You can now add the Pacemaker configuration for the OpenStack Identity " -"resource by running the :command:`crm configure` command to connect to the " -"Pacemaker cluster. Add the following cluster resources:" -msgstr "" - -#: ../controller-ha-keystone.rst:52 -msgid "" -"This configuration creates ``p_keystone``, a resource for managing the " -"OpenStack Identity service." -msgstr "" - -#: ../controller-ha-keystone.rst:55 -msgid "" -":command:`crm configure` supports batch input so you may 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." -msgstr "" - -#: ../controller-ha-keystone.rst:63 -msgid "" -"After you add these resources, commit your configuration changes by " -"entering :command:`commit` from the :command:`crm configure` menu. Pacemaker " -"then starts the OpenStack Identity service and its dependent resources on " -"one of your nodes." -msgstr "" - -#: ../controller-ha-keystone.rst:72 -msgid "Configure OpenStack Identity service" -msgstr "" - -#: ../controller-ha-keystone.rst:74 -msgid "" -"Edit the :file:`keystone.conf` file to change the values of the :manpage:" -"`bind(2)` parameters:" -msgstr "" - -#: ../controller-ha-keystone.rst:83 -msgid "" -"The ``admin_bind_host`` parameter lets you use a private network for admin " -"access." -msgstr "" - -#: ../controller-ha-keystone.rst:86 -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 "" - -#: ../controller-ha-keystone.rst:103 -msgid "" -"Configure OpenStack services to use the highly available OpenStack Identity" -msgstr "" - -#: ../controller-ha-keystone.rst:105 -msgid "" -"Your OpenStack services must now point their OpenStack Identity " -"configuration to the highly available virtual cluster IP address rather than " -"point to the physical IP address of an OpenStack Identity server as you " -"would do in a non-HA environment." -msgstr "" - -#: ../controller-ha-keystone.rst:112 -msgid "" -"For OpenStack Compute, for example, if your OpenStack Identiy service IP " -"address is 10.0.0.11, use the following configuration in your :file:`api-" -"paste.ini` file:" -msgstr "" - -#: ../controller-ha-keystone.rst:120 -msgid "" -"You also need to create the OpenStack Identity Endpoint with this IP address." -msgstr "" - -#: ../controller-ha-keystone.rst:125 -msgid "" -"If you are using both private and public IP addresses, you should create two " -"virtual IP addresses and define your endpoint like this:" -msgstr "" - -#: ../controller-ha-keystone.rst:139 -msgid "" -"If you are using the horizon dashboard, edit the :file:`local_settings.py` " -"file to include the following:" -msgstr "" - -# #-#-#-#-# controller-ha-memcached.pot (High Availability Guide 0.0.1) #-#-#-#-# -# #-#-#-#-# intro-ha-arch-pacemaker.pot (High Availability Guide 0.0.1) #-#-#-#-# -#: ../controller-ha-memcached.rst:3 ../intro-ha-arch-pacemaker.rst:179 -msgid "Memcached" -msgstr "" - -#: ../controller-ha-memcached.rst:5 -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 "" - -#: ../controller-ha-memcached.rst:10 -msgid "" -"Memcached is a memory cache demon that can be used by most OpenStack " -"services to store ephemeral data, such as tokens." -msgstr "" - -#: ../controller-ha-memcached.rst:13 -msgid "" -"Access to memcached is not handled by HAproxy because replicated access is " -"currently only in an experimental state. Instead OpenStack services must be " -"supplied with the full list of hosts running memcached." -msgstr "" - -#: ../controller-ha-memcached.rst:18 -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. The SLA " -"is several minutes." -msgstr "" - -#: ../controller-ha-pacemaker.rst:3 -msgid "Pacemaker cluster stack" -msgstr "" - -#: ../controller-ha-pacemaker.rst:5 -msgid "" -"`Pacemaker `_ cluster stack is the state-of-the-art " -"high availability and load balancing stack for the Linux platform. Pacemaker " -"is useful to make OpenStack infrastructure highly available. Also, it is " -"storage and application-agnostic, and in no way specific to OpenStack." -msgstr "" - -#: ../controller-ha-pacemaker.rst:11 -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 "" - -#: ../controller-ha-pacemaker.rst:18 -msgid "" -"Pacemaker does not inherently (need or want to) understand the applications " -"it manages. Instead, it relies on resource agents (RAs), scripts that " -"encapsulate the knowledge of how to start, stop, and check the health of " -"each application managed by the cluster." -msgstr "" - -#: ../controller-ha-pacemaker.rst:23 -msgid "" -"These agents must conform to one of the `OCF `_, `SysV Init " -"`_, Upstart, or Systemd standards." -msgstr "" - -#: ../controller-ha-pacemaker.rst:28 -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 "" - -#: ../controller-ha-pacemaker.rst:34 -msgid "The steps to implement the Pacemaker cluster stack are:" -msgstr "" - -#: ../controller-ha-pacemaker.rst:36 -msgid ":ref:`pacemaker-install`" -msgstr "" - -#: ../controller-ha-pacemaker.rst:37 -msgid ":ref:`pacemaker-corosync-setup`" -msgstr "" - -#: ../controller-ha-pacemaker.rst:38 -msgid ":ref:`pacemaker-corosync-start`" -msgstr "" - -#: ../controller-ha-pacemaker.rst:39 -msgid ":ref:`pacemaker-start`" -msgstr "" - -#: ../controller-ha-pacemaker.rst:40 -msgid ":ref:`pacemaker-cluster-properties`" -msgstr "" - -#: ../controller-ha-pacemaker.rst:45 -msgid "Install packages" -msgstr "" - -#: ../controller-ha-pacemaker.rst:47 -msgid "" -"On any host that is meant to be part of a Pacemaker cluster, you must first " -"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 "" - -#: ../controller-ha-pacemaker.rst:54 -msgid "pacemaker" -msgstr "" - -#: ../controller-ha-pacemaker.rst:56 -msgid "pcs (CentOS or RHEL) or crmsh" -msgstr "" - -#: ../controller-ha-pacemaker.rst:58 -msgid "corosync" -msgstr "" - -#: ../controller-ha-pacemaker.rst:60 -msgid "fence-agents (CentOS or RHEL) or cluster-glue" -msgstr "" - -#: ../controller-ha-pacemaker.rst:62 -msgid "resource-agents" -msgstr "" - -#: ../controller-ha-pacemaker.rst:64 -msgid "libqb0" -msgstr "" - -#: ../controller-ha-pacemaker.rst:69 -msgid "Set up the cluster with `pcs`" -msgstr "" - -#: ../controller-ha-pacemaker.rst:71 -msgid "Make sure pcs is running and configured to start at boot time:" -msgstr "" - -#: ../controller-ha-pacemaker.rst:78 -msgid "Set a password for hacluster user **on each host**." -msgstr "" - -#: ../controller-ha-pacemaker.rst:80 -msgid "" -"Since the cluster is a single administrative domain, it is generally " -"accepted to use the same password on all nodes." -msgstr "" - -#: ../controller-ha-pacemaker.rst:88 -msgid "" -"Use that password to authenticate to the nodes which will make up the " -"cluster. The :option:`-p` option is used to give the password on command " -"line and makes it easier to script." -msgstr "" - -#: ../controller-ha-pacemaker.rst:97 -msgid "Create the cluster, giving it a name, and start it:" -msgstr "" - -#: ../controller-ha-pacemaker.rst:107 -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 "" - -#: ../controller-ha-pacemaker.rst:112 -msgid "Set up the cluster with `crmsh`" -msgstr "" - -#: ../controller-ha-pacemaker.rst:114 -msgid "" -"After installing the Corosync package, you must create the :file:`/etc/" -"corosync/corosync.conf` configuration file." -msgstr "" - -#: ../controller-ha-pacemaker.rst:118 -msgid "" -"For Ubuntu, you should also enable the Corosync service in the ``/etc/" -"default/corosync`` configuration file." -msgstr "" - -#: ../controller-ha-pacemaker.rst:121 -msgid "" -"Corosync can be configured to work with either multicast or unicast IP " -"addresses or to use the votequorum library." -msgstr "" - -#: ../controller-ha-pacemaker.rst:125 -msgid ":ref:`corosync-multicast`" -msgstr "" - -#: ../controller-ha-pacemaker.rst:126 -msgid ":ref:`corosync-unicast`" -msgstr "" - -#: ../controller-ha-pacemaker.rst:127 -msgid ":ref:`corosync-votequorum`" -msgstr "" - -#: ../controller-ha-pacemaker.rst:132 -msgid "Set up Corosync with multicast" -msgstr "" - -#: ../controller-ha-pacemaker.rst:134 -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 "" - -#: ../controller-ha-pacemaker.rst:139 -msgid "**Example Corosync configuration file for multicast (corosync.conf)**" -msgstr "" - -#: ../controller-ha-pacemaker.rst:210 ../controller-ha-pacemaker.rst:342 -#: ../controller-ha-pacemaker.rst:426 ../controller-ha-pacemaker.rst:583 -msgid "Note the following:" -msgstr "" - -#: ../controller-ha-pacemaker.rst:212 -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. In other words, ``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 "" - -#: ../controller-ha-pacemaker.rst:228 -msgid "" -"With ``secauth`` enabled, Corosync nodes mutually authenticate using a 128-" -"byte shared secret stored in the :file:`/etc/corosync/authkey` file, which " -"may be generated with the :command:`corosync-keygen` utility. When using " -"``secauth``, cluster communications are also encrypted." -msgstr "" - -#: ../controller-ha-pacemaker.rst:234 -msgid "" -"In Corosync configurations using redundant networking (with more than one " -"interface), you must select a Redundant Ring Protocol (RRP) mode other than " -"none. ``active`` is the recommended RRP mode." -msgstr "" - -#: ../controller-ha-pacemaker.rst:239 -msgid "Note the following about the recommended interface configuration:" -msgstr "" - -#: ../controller-ha-pacemaker.rst:241 -msgid "" -"Each configured interface must have a unique ``ringnumber``, starting with 0." -msgstr "" - -#: ../controller-ha-pacemaker.rst:244 -msgid "" -"The ``bindnetaddr`` is the network address of the interfaces to bind to. The " -"example uses two network addresses of /24 IPv4 subnets." -msgstr "" - -#: ../controller-ha-pacemaker.rst:247 -msgid "" -"Multicast groups (``mcastaddr``) must not be reused across cluster " -"boundaries. In other words, 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 "" - -#: ../controller-ha-pacemaker.rst:255 -msgid "" -"For firewall configurations, note that Corosync communicates over UDP only, " -"and uses ``mcastport`` (for receives) and ``mcastport - 1`` (for sends)." -msgstr "" - -#: ../controller-ha-pacemaker.rst:260 -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 "" - -#: ../controller-ha-pacemaker.rst:266 -msgid "" -"If you are using Corosync version 2 on Ubuntu 14.04, remove or comment out " -"lines under the service stanza, which enables 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 "" - -#: ../controller-ha-pacemaker.rst:277 -msgid "" -"The Pacemaker service also requires an additional configuration file ``/etc/" -"corosync/uidgid.d/pacemaker`` to be created with the following content:" -msgstr "" - -#: ../controller-ha-pacemaker.rst:288 -msgid "" -"Once created, the :file:`corosync.conf` file (and the :file:`authkey` file " -"if the secauth option is enabled) must be synchronized across all cluster " -"nodes." -msgstr "" - -#: ../controller-ha-pacemaker.rst:295 -msgid "Set up Corosync with unicast" -msgstr "" - -#: ../controller-ha-pacemaker.rst:297 -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 shown below:" -msgstr "" - -#: ../controller-ha-pacemaker.rst:302 -msgid "**Corosync configuration file fragment for unicast (corosync.conf)**" -msgstr "" - -#: ../controller-ha-pacemaker.rst:344 -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 "" - -#: ../controller-ha-pacemaker.rst:348 -msgid "" -"The ``transport`` directive controls the transport mechanism used. 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 could potentially make up the membership before deployment. " -"The default is ``udp``. The transport type can also be set to ``udpu`` or " -"``iba``." -msgstr "" - -#: ../controller-ha-pacemaker.rst:357 -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 "" - -#: ../controller-ha-pacemaker.rst:367 -msgid "" -"For UDPU, every node that should be a member of the membership must be " -"specified." -msgstr "" - -#: ../controller-ha-pacemaker.rst:370 -msgid "Possible options are:" -msgstr "" - -#: ../controller-ha-pacemaker.rst:372 -msgid "" -"``ring{X}_addr`` specifies the IP address of one of the nodes. {X} is the " -"ring number." -msgstr "" - -#: ../controller-ha-pacemaker.rst:375 -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 "" - -#: ../controller-ha-pacemaker.rst:388 -msgid "Set up Corosync with votequorum library" -msgstr "" - -#: ../controller-ha-pacemaker.rst:390 -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 "" - -#: ../controller-ha-pacemaker.rst:396 -msgid "Query the quorum status" -msgstr "" - -#: ../controller-ha-pacemaker.rst:398 -msgid "Get a list of nodes known to the quorum service" -msgstr "" - -#: ../controller-ha-pacemaker.rst:400 -msgid "Receive notifications of quorum state changes" -msgstr "" - -#: ../controller-ha-pacemaker.rst:402 -msgid "Change the number of votes assigned to a node" -msgstr "" - -#: ../controller-ha-pacemaker.rst:404 -msgid "Change the number of expected votes for a cluster to be quorate" -msgstr "" - -#: ../controller-ha-pacemaker.rst:406 -msgid "" -"Connect an additional quorum device to allow small clusters remain quorate " -"during node outages" -msgstr "" - -#: ../controller-ha-pacemaker.rst:409 -msgid "" -"The votequorum library has been created to replace and eliminate qdisk, the " -"disk-based quorum daemon for CMAN, from advanced cluster configurations." -msgstr "" - -#: ../controller-ha-pacemaker.rst:413 -msgid "" -"A sample votequorum service configuration in the :file:`corosync.com` file " -"is:" -msgstr "" - -#: ../controller-ha-pacemaker.rst:428 -msgid "" -"Specifying ``corosync_votequorum`` enables the votequorum library; this is " -"the only required option." -msgstr "" - -#: ../controller-ha-pacemaker.rst:431 -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 "" - -#: ../controller-ha-pacemaker.rst:436 -msgid "" -"Setting ``wait_for_all`` to 1 means that, When starting up a cluster (all " -"nodes down), 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 "" - -#: ../controller-ha-pacemaker.rst:442 -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; this is not recommended for production environments." -msgstr "" - -#: ../controller-ha-pacemaker.rst:457 -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 do the new quorum recalculation, the cluster must have quorum " -"for at least the interval specified for ``last_man_standing_window``; the " -"default is 10000ms." -msgstr "" - -#: ../controller-ha-pacemaker.rst:469 -msgid "Start Corosync" -msgstr "" - -#: ../controller-ha-pacemaker.rst:471 -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. Either way, the service is usually named corosync:" -msgstr "" - -#: ../controller-ha-pacemaker.rst:476 -msgid ":command:`# /etc/init.d/corosync start` (LSB)" -msgstr "" - -#: ../controller-ha-pacemaker.rst:477 -msgid ":command:`# service corosync start` (LSB, alternate)" -msgstr "" - -#: ../controller-ha-pacemaker.rst:478 -msgid ":command:`# start corosync` (upstart)" -msgstr "" - -#: ../controller-ha-pacemaker.rst:479 -msgid ":command:`# systemctl start corosync` (systemd)" -msgstr "" - -#: ../controller-ha-pacemaker.rst:481 -msgid "You can now check the Corosync connectivity with two tools." -msgstr "" - -#: ../controller-ha-pacemaker.rst:483 -msgid "" -"Use the :command:`corosync-cfgtool` utility with the :option:`-s` option to " -"get a summary of the health of the communication rings:" -msgstr "" - -#: ../controller-ha-pacemaker.rst:498 -msgid "" -"Use the :command:`corosync-objctl` utility to dump the Corosync cluster " -"member list:" -msgstr "" - -#: ../controller-ha-pacemaker.rst:511 -msgid "" -"You should see a ``status=joined`` entry for each of your constituent " -"cluster nodes." -msgstr "" - -#: ../controller-ha-pacemaker.rst:514 -msgid "" -"[TODO: Should the main example now use corosync-cmapctl and have the note " -"give the command for Corosync version 1?]" -msgstr "" - -#: ../controller-ha-pacemaker.rst:519 -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 "" - -#: ../controller-ha-pacemaker.rst:525 -msgid "Start Pacemaker" -msgstr "" - -#: ../controller-ha-pacemaker.rst:527 -msgid "" -"After the Corosync services have been started and you have verified that the " -"cluster is communicating properly, you can start :command:`pacemakerd`, the " -"Pacemaker master control process:" -msgstr "" - -#: ../controller-ha-pacemaker.rst:531 -msgid ":command:`# /etc/init.d/pacemaker start` (LSB)" -msgstr "" - -#: ../controller-ha-pacemaker.rst:533 -msgid ":command:`# service pacemaker start` (LSB, alternate)" -msgstr "" - -#: ../controller-ha-pacemaker.rst:535 -msgid ":command:`# start pacemaker` (upstart)" -msgstr "" - -#: ../controller-ha-pacemaker.rst:537 -msgid ":command:`# systemctl start pacemaker` (systemd)" -msgstr "" - -#: ../controller-ha-pacemaker.rst:539 -msgid "" -"After the Pacemaker services have started, Pacemaker creates a default empty " -"cluster configuration with no resources. Use the :command:`crm_mon` utility " -"to observe the status of Pacemaker:" -msgstr "" - -#: ../controller-ha-pacemaker.rst:560 -msgid "Set basic cluster properties" -msgstr "" - -#: ../controller-ha-pacemaker.rst:562 -msgid "" -"After you set up your Pacemaker cluster, you should set a few basic cluster " -"properties:" -msgstr "" - -#: ../controller-ha-pacemaker.rst:585 -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 "" - -#: ../controller-ha-pacemaker.rst:591 -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 "" - -#: ../controller-ha-pacemaker.rst:597 -msgid "After you make these changes, you may commit the updated configuration." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:0 ../controller-ha-rabbitmq.rst:76 -msgid "Install RabbitMQ" -msgstr "" - -# #-#-#-#-# controller-ha-rabbitmq.pot (High Availability Guide 0.0.1) #-#-#-#-# -# #-#-#-#-# intro-ha-arch-pacemaker.pot (High Availability Guide 0.0.1) #-#-#-#-# -#: ../controller-ha-rabbitmq.rst:3 ../intro-ha-arch-pacemaker.rst:178 -msgid "RabbitMQ" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:5 -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 "" - -#: ../controller-ha-rabbitmq.rst:9 -msgid "" -"The most popular AMQP implementation used in OpenStack installations is " -"RabbitMQ." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:12 -msgid "" -"RabbitMQ nodes fail over both on the application and the infrastructure " -"layers." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:15 -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 "" - -#: ../controller-ha-rabbitmq.rst:21 -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 "" - -#: ../controller-ha-rabbitmq.rst:29 -msgid "" -"Making the RabbitMQ service highly available involves the following steps:" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:31 -msgid ":ref:`Install RabbitMQ`" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:33 -msgid ":ref:`Configure RabbitMQ for HA queues`" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:35 -msgid "" -":ref:`Configure OpenStack services to use Rabbit HA queues `" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:40 -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." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:45 -msgid "" -"Jon Eck found the `core issue `_ and went into some detail regarding the " -"`history and solution `_ on his blog." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:51 -msgid "In summary though:" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:53 -msgid "" -"The source address for the connection from HAProxy back to the client is the " -"VIP address. However the VIP address is no longer present on the host. This " -"means that the network (IP) layer deems the packet unroutable, and informs " -"the transport (TCP) layer. TCP, however, is a reliable transport. It knows " -"how to handle transient errors and will retry. And so it does." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:60 -msgid "In this case that is a problem though, because:" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:62 -msgid "" -"TCP generally holds on to hope for a long time. A ballpark estimate is " -"somewhere on the order of tens of minutes (30 minutes is commonly " -"referenced). During this time it will keep probing and trying to deliver the " -"data." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:67 -msgid "" -"It is important to note that HAProxy has no idea that any of this is " -"happening. As far as its process is concerned, it called ``write()`` with " -"the data and the kernel returned success. The resolution is already " -"understood and just needs to make its way through a review." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:78 -msgid "" -"The commands for installing RabbitMQ are specific to the Linux distribution " -"you are using:" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:85 -msgid "Distribution" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:86 -msgid "Command" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:87 -msgid "Ubuntu, Debian" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:88 -msgid ":command:`# apt-get install rabbitmq-server`" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:89 -msgid "RHEL, Fedora, CentOS" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:90 -msgid ":command:`# yum install rabbitmq-server`" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:91 -msgid "openSUSE" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:92 ../controller-ha-rabbitmq.rst:98 -msgid ":command:`# zypper install rabbitmq-server`" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:93 -msgid "SLES 12" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:94 -msgid ":command:`# zypper addrepo -f obs://Cloud:OpenStack:Kilo/SLE_12 Kilo`" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:96 -msgid "[Verify fingerprint of imported GPG key; see below]" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:103 -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 "" - -#: ../controller-ha-rabbitmq.rst:114 -msgid "" -"For more information, see the official installation manual for the " -"distribution:" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:117 -msgid "`Debian and Ubuntu `_" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:118 -msgid "" -"`RPM based `_ (RHEL, Fedora, " -"CentOS, openSUSE)" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:124 -msgid "Configure RabbitMQ for HA queues" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:126 -msgid "" -"[TODO: This section should begin with a brief mention about what HA queues " -"are and why they are valuable, etc]" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:129 -msgid "" -"We are building a cluster of RabbitMQ nodes to construct a RabbitMQ broker, " -"which is a logical grouping of several Erlang nodes." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:132 -msgid "The following components/services can work with HA queues:" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:134 -msgid "[TODO: replace \"currently\" with specific release names]" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:136 -msgid "" -"[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.]" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:140 -msgid "OpenStack Compute" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:141 -msgid "OpenStack Block Storage" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:142 -msgid "OpenStack Networking" -msgstr "" - -# #-#-#-#-# controller-ha-rabbitmq.pot (High Availability Guide 0.0.1) #-#-#-#-# -# #-#-#-#-# controller-ha-telemetry.pot (High Availability Guide 0.0.1) #-#-#-#-# -#: ../controller-ha-rabbitmq.rst:143 ../controller-ha-telemetry.rst:4 -msgid "Telemetry" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:145 -msgid "" -"We have to 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 "" - -#: ../controller-ha-rabbitmq.rst:151 -msgid "" -"Mirrored queues in RabbitMQ improve the availability of service since it is " -"resilient to failures." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:154 -msgid "" -"Production servers should run (at least) three RabbitMQ servers; for testing " -"and demonstration purposes, it is possible to run only two servers. In this " -"section, we configure two nodes, called ``rabbit1`` and ``rabbit2``. To " -"build a broker, we need to ensure that all nodes have the same Erlang cookie " -"file." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:162 -msgid "[TODO: Should the example instead use a minimum of three nodes?]" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:164 -msgid "" -"To do so, stop RabbitMQ everywhere and copy the cookie from the first node " -"to each of the other node(s):" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:171 -msgid "" -"On each target node, verify the correct owner, group, and permissions of the " -"file :file:`erlang.cookie`." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:179 -msgid "" -"Start the message queue service on all nodes and configure it to start when " -"the system boots." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:182 -msgid "On Ubuntu, it is configured by default." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:184 -msgid "On CentOS, RHEL, openSUSE, and SLES:" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:191 -msgid "Verify that the nodes are running:" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:202 -msgid "Run the following commands on each node except the first one:" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:216 -msgid "" -"The default node type is a disc node. In this guide, nodes join the cluster " -"as RAM nodes." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:219 -msgid "To verify the cluster status:" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:228 -msgid "" -"If the cluster is working, you can create usernames and passwords for the " -"queues." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:231 -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 "" - -#: ../controller-ha-rabbitmq.rst:240 -msgid "More information is available in the RabbitMQ documentation:" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:242 -msgid "`Highly Available Queues `_" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:243 -msgid "`Clustering Guide `_" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:247 -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 "" - -#: ../controller-ha-rabbitmq.rst:256 -msgid "Configure OpenStack services to use Rabbit HA queues" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:258 -msgid "" -"We have to configure the OpenStack components to use at least two RabbitMQ " -"nodes." -msgstr "" - -#: ../controller-ha-rabbitmq.rst:261 -msgid "Do this configuration on all services using RabbitMQ:" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:263 -msgid "RabbitMQ HA cluster host:port pairs:" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:269 -msgid "" -"How frequently to retry connecting with RabbitMQ: [TODO: document the unit " -"of measure here? Seconds?]" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:276 -msgid "" -"How long to back-off for between retries when connecting to RabbitMQ: [TODO: " -"document the unit of measure here? Seconds?]" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:283 -msgid "" -"Maximum retries with trying to connect to RabbitMQ (infinite by default):" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:289 -msgid "Use durable queues in RabbitMQ:" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:295 -msgid "Use HA queues in RabbitMQ (x-ha-policy: all):" -msgstr "" - -#: ../controller-ha-rabbitmq.rst:303 -msgid "" -"If you change the configuration from an old set-up that did not use HA " -"queues, you should restart the service:" -msgstr "" - -#: ../controller-ha-telemetry.rst:6 -msgid "[TODO (Add Telemetry overview)]" -msgstr "" - -#: ../controller-ha-telemetry.rst:9 -msgid "Telemetry central agent" -msgstr "" - -#: ../controller-ha-telemetry.rst:11 -msgid "" -"The Telemetry central agent can be configured to partition its polling " -"workload between multiple agents, enabling high availability." -msgstr "" - -#: ../controller-ha-telemetry.rst:14 -msgid "" -"Both the central and the compute agent can run in an HA deployment, which " -"means that multiple instances of these services can run in parallel with " -"workload partitioning among these running instances." -msgstr "" - -#: ../controller-ha-telemetry.rst:18 -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 "" - -#: ../controller-ha-telemetry.rst:23 -msgid "" -"Tooz supports `various drivers `__ including the following back end solutions:" -msgstr "" - -#: ../controller-ha-telemetry.rst:28 ../controller-ha-telemetry.rst:31 -msgid "Recommended solution by the Tooz project." -msgstr "" - -#: ../controller-ha-telemetry.rst:28 -msgid "`Zookeeper `__." -msgstr "" - -#: ../controller-ha-telemetry.rst:31 -msgid "`Redis `__." -msgstr "" - -#: ../controller-ha-telemetry.rst:34 -msgid "Recommended for testing." -msgstr "" - -#: ../controller-ha-telemetry.rst:34 -msgid "`Memcached `__." -msgstr "" - -#: ../controller-ha-telemetry.rst:36 -msgid "" -"You must configure a supported Tooz driver for the HA deployment of the " -"Telemetry services." -msgstr "" - -#: ../controller-ha-telemetry.rst:39 -msgid "" -"For information about the required configuration options that have to be set " -"in the :file:`ceilometer.conf` configuration file for both the central and " -"compute agents, see the `coordination section `__ in the OpenStack Configuration Reference." -msgstr "" - -#: ../controller-ha-telemetry.rst:46 -msgid "" -"Without the ``backend_url`` option being set only one instance of both the " -"central and compute agent service is able to run and function correctly." -msgstr "" - -#: ../controller-ha-telemetry.rst:50 -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 remained instances in the next polling cycle." -msgstr "" - -#: ../controller-ha-telemetry.rst:54 -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 "" - -#: ../controller-ha-telemetry.rst:57 -msgid "" -"For backward compatibility and supporting existing deployments, the central " -"agent configuration also supports using different configuration files for " -"groups of service instances of this type that are running in parallel. For " -"enabling this configuration, set a value for the partitioning_group_prefix " -"option in the `central section `__ in the " -"OpenStack Configuration Reference." -msgstr "" - -#: ../controller-ha-telemetry.rst:65 -msgid "" -"For each sub-group of the central agent pool with the same " -"``partitioning_group_prefix`` a disjoint subset of meters must be polled -- " -"otherwise samples may be 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 collection and processing " -"`__ section." -msgstr "" - -#: ../controller-ha-telemetry.rst:74 -msgid "" -"To enable the compute agent to run multiple instances simultaneously with " -"workload partitioning, the workload_partitioning option has to be set to " -"``True`` under the `compute section `__ in the :" -"file:`ceilometer.conf` configuration file." -msgstr "" - -#: ../controller-ha-vip.rst:4 -msgid "Configure the VIP" -msgstr "" - -#: ../controller-ha-vip.rst:6 -msgid "" -"You must select and assign a virtual IP address (VIP) that can freely float " -"between cluster nodes." -msgstr "" - -#: ../controller-ha-vip.rst:9 -msgid "" -"This configuration creates ``vip``, a virtual IP address for use by the API " -"node (``10.0.0.11``):" -msgstr "" - -#: ../controller-ha-vip.rst:12 -msgid "For ``crmsh``:" -msgstr "" - -#: ../controller-ha-vip.rst:19 -msgid "For ``pcs``:" -msgstr "" - -#: ../controller-ha.rst:4 -msgid "Configuring the controller for high availability" -msgstr "" - -#: ../controller-ha.rst:6 -msgid "" -"The cloud controller runs on the management network and must talk to all " -"other services." -msgstr "" - -#: ../hardware-ha-basic.rst:4 -msgid "Hardware setup" -msgstr "" - -#: ../hardware-ha-basic.rst:6 -msgid "The standard hardware requirements:" -msgstr "" - -#: ../hardware-ha-basic.rst:8 -msgid "" -"`Provider networks `_" -msgstr "" - -#: ../hardware-ha-basic.rst:9 -msgid "" -"`Self-service networks `_" -msgstr "" - -#: ../hardware-ha-basic.rst:11 -msgid "" -"However, 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 "" - -#: ../hardware-ha-basic.rst:16 -msgid "[TODO: Verify that these numbers are good]" -msgstr "" - -#: ../hardware-ha-basic.rst:19 -msgid "Memory" -msgstr "" - -#: ../hardware-ha-basic.rst:19 -msgid "NIC" -msgstr "" - -#: ../hardware-ha-basic.rst:19 -msgid "Node type" -msgstr "" - -#: ../hardware-ha-basic.rst:19 -msgid "Processor" -msgstr "" - -#: ../hardware-ha-basic.rst:19 -msgid "Storage" -msgstr "" - -#: ../hardware-ha-basic.rst:21 -msgid "1-2" -msgstr "" - -#: ../hardware-ha-basic.rst:21 -msgid "100 GB" -msgstr "" - -#: ../hardware-ha-basic.rst:21 ../hardware-ha-basic.rst:23 -msgid "2" -msgstr "" - -#: ../hardware-ha-basic.rst:21 -msgid "8 GB" -msgstr "" - -#: ../hardware-ha-basic.rst:21 -msgid "controller node" -msgstr "" - -#: ../hardware-ha-basic.rst:23 -msgid "100+ GB" -msgstr "" - -#: ../hardware-ha-basic.rst:23 -msgid "2-4+" -msgstr "" - -#: ../hardware-ha-basic.rst:23 -msgid "8+ GB" -msgstr "" - -#: ../hardware-ha-basic.rst:23 -msgid "compute node" -msgstr "" - -#: ../hardware-ha-basic.rst:27 -msgid "" -"For demonstrations and studying, you can set up a test environment on " -"virtual machines (VMs). This has the following benefits:" -msgstr "" - -#: ../hardware-ha-basic.rst:31 -msgid "" -"One physical server can support multiple nodes, each of which supports " -"almost any number of network interfaces." -msgstr "" - -#: ../hardware-ha-basic.rst:34 -msgid "" -"Ability to take periodic \"snap shots\" throughout the installation process " -"and \"roll back\" to a working configuration in the event of a problem." -msgstr "" - -#: ../hardware-ha-basic.rst:37 -msgid "" -"However, running an OpenStack environment on VMs degrades the performance of " -"your instances, particularly if your hypervisor and/or processor lacks " -"support for hardware acceleration of nested VMs." -msgstr "" - -#: ../hardware-ha-basic.rst:44 -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 "" - -#: ../hardware-ha.rst:4 -msgid "Hardware considerations for high availability" -msgstr "" - -#: ../hardware-ha.rst:6 -msgid "" -"[TODO: Provide a minimal architecture example for HA, expanded on that given " -"in http://docs.openstack.org/liberty/install-guide-ubuntu/environment.html " -"for easy comparison]" -msgstr "" - -#: ../index.rst:3 -msgid "OpenStack High Availability Guide" -msgstr "" - -#: ../index.rst:6 -msgid "Abstract" -msgstr "" - -#: ../index.rst:8 -msgid "" -"This guide describes how to install and configure OpenStack for high " -"availability. It supplements the OpenStack Installation Guides and assumes " -"that you are familiar with the material in those guides." -msgstr "" - -#: ../index.rst:13 -msgid "" -"This guide documents OpenStack Liberty, OpenStack Kilo, and OpenStack Juno " -"releases." -msgstr "" - -#: ../index.rst:16 -msgid "" -"This guide is a work-in-progress and changing rapidly while we continue to " -"test and enhance the guidance. Please note where there are open \"to do\" " -"items and help where you are able." -msgstr "" - -#: ../index.rst:21 -msgid "Contents" -msgstr "" - -#: ../index.rst:41 -msgid "Search in this guide" -msgstr "" - -#: ../index.rst:43 -msgid ":ref:`search`" -msgstr "" - -#: ../install-ha-memcached.rst:4 -msgid "Install memcached" -msgstr "" - -#: ../install-ha-memcached.rst:6 -msgid "" -"[TODO: Verify that Oslo supports hash synchronization; if so, this should " -"not take more than load balancing.]" -msgstr "" - -#: ../install-ha-memcached.rst:9 -msgid "" -"[TODO: This hands off to two different docs for install information. We " -"should choose one or explain the specific purpose of each.]" -msgstr "" - -#: ../install-ha-memcached.rst:12 -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. 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 "" - -#: ../install-ha-memcached.rst:23 -msgid "" -"To install and configure memcached, read the `official documentation " -"`_." -msgstr "" - -#: ../install-ha-memcached.rst:26 -msgid "" -"Memory caching is managed by `oslo.cache `_ so the way " -"to use multiple memcached servers is the same for all projects." -msgstr "" - -#: ../install-ha-memcached.rst:30 -msgid "[TODO: Should this show three hosts?]" -msgstr "" - -#: ../install-ha-memcached.rst:32 -msgid "Example configuration with two hosts:" -msgstr "" - -#: ../install-ha-memcached.rst:38 -msgid "" -"By default, `controller1` handles the caching service but, if the host goes " -"down, `controller2` does the job. For more information about memcached " -"installation, see the `OpenStack Cloud Administrator Guide `_." -msgstr "" - -#: ../install-ha-ntp.rst:3 -msgid "Configure NTP" -msgstr "" - -#: ../install-ha-ntp.rst:5 -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 `Install Guides `_." -msgstr "" - -#: ../install-ha-os.rst:3 -msgid "Install operating system on each node" -msgstr "" - -#: ../install-ha-os.rst:5 -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 " -"OpenStack Installation Guides:" -msgstr "" - -#: ../install-ha-os.rst:9 -msgid "" -"`CentOS and RHEL `_" -msgstr "" - -#: ../install-ha-os.rst:10 -msgid "" -"`openSUSE and SUSE Linux Enterprise Server `_" -msgstr "" - -#: ../install-ha-os.rst:11 -msgid "" -"`Ubuntu `_" -msgstr "" - -#: ../install-ha-os.rst:13 -msgid "" -"The OpenStack Installation Guides also include a list of the services that " -"use passwords with important notes about using them." -msgstr "" - -#: ../install-ha-os.rst:16 -msgid "This guide uses the following example IP addresses:" -msgstr "" - -#: ../install-ha.rst:3 -msgid "Installing high availability packages" -msgstr "" - -#: ../install-ha.rst:5 -msgid "[TODO -- write intro to this section]" -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:3 -msgid "The keepalived architecture" -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:6 -msgid "High availability strategies" -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:8 -msgid "" -"The following diagram shows a very simplified view of the different " -"strategies used to achieve high availability for the OpenStack services:" -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:15 -msgid "" -"Depending on the method used to communicate with the service, the following " -"availability strategies will be followed:" -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:18 -msgid "Keepalived, for the HAProxy instances." -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:19 -msgid "" -"Access via an HAProxy virtual IP, for services such as HTTPd that are " -"accessed via a TCP socket that can be load balanced" -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:21 -msgid "" -"Built-in application clustering, when available from the application. Galera " -"is one example of this." -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:23 -msgid "" -"Starting up one instance of the service on several controller nodes, when " -"they can coexist and coordinate by other means. RPC in ``nova-conductor`` is " -"one example of this." -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:26 -msgid "" -"No high availability, when the service can only work in active/passive mode." -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:29 -msgid "" -"There are known issues with cinder-volume that recommend setting it as " -"active-passive for now, see: https://blueprints.launchpad.net/cinder/+spec/" -"cinder-volume-active-active-support" -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:33 -msgid "" -"While there will be multiple neutron LBaaS agents running, each agent will " -"manage a set of load balancers, that cannot be failed over to another node." -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:38 -msgid "Architecture limitations" -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:40 -msgid "" -"This architecture has some inherent limitations that should be kept in mind " -"during deployment and daily operations. The following sections describe " -"these limitations." -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:44 -msgid "Keepalived and network partitions" -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:46 -msgid "" -"In case of a network partitioning, there is a chance that two or more nodes " -"running keepalived claim to hold the same VIP, which may lead to an " -"undesired behaviour. Since keepalived uses VRRP over multicast to elect a " -"master (VIP owner), a network partition in which keepalived nodes cannot " -"communicate will result in the VIPs existing on two nodes. When the network " -"partition is resolved, the duplicate VIPs should also be resolved. Note that " -"this network partition problem with VRRP is a known limitation for this " -"architecture." -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:56 -msgid "Cinder-volume as a single point of failure" -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:58 -msgid "" -"There are currently concerns over the cinder-volume service ability to run " -"as a fully active-active service. During the Mitaka timeframe, this is being " -"worked on, see: https://blueprints.launchpad.net/cinder/+spec/cinder-volume-" -"active-active-support Thus, cinder-volume will only be running on one of the " -"controller nodes, even if it will be configured on all nodes. In case of a " -"failure in the node running cinder-volume, it should be started in a " -"surviving controller node." -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:67 -msgid "Neutron-lbaas-agent as a single point of failure" -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:69 -msgid "" -"The current design of the neutron LBaaS agent using the HAProxy driver does " -"not allow high availability for the tenant load balancers. The neutron-lbaas-" -"agent service will be enabled and running on all controllers, allowing for " -"load balancers to be distributed across all nodes. However, a controller " -"node failure will stop all load balancers running on that node until the " -"service is recovered or the load balancer is manually removed and created " -"again." -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:78 -msgid "Service monitoring and recovery required" -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:80 -msgid "" -"An external service monitoring infrastructure is required to check the " -"OpenStack service health, and notify operators in case of any failure. This " -"architecture does not provide any facility for that, so it would be " -"necessary to integrate the OpenStack deployment with any existing monitoring " -"environment." -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:86 -msgid "Manual recovery after a full cluster restart" -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:88 -msgid "" -"Some support services used by RDO or RHEL OSP use their own form of " -"application clustering. Usually, these services maintain a cluster quorum, " -"that may be lost in case of a simultaneous restart of all cluster nodes, for " -"example during a power outage. Each service will require its own procedure " -"to regain quorum." -msgstr "" - -#: ../intro-ha-arch-keepalived.rst:94 -msgid "" -"If you find any or all of these limitations concerning, you are encouraged " -"to refer to the :doc:`Pacemaker HA architecture` " -"instead." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:3 -msgid "The Pacemaker architecture" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:6 -msgid "What is a cluster manager" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:8 -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 "" - -#: ../intro-ha-arch-pacemaker.rst:12 -msgid "" -"Even a distributed and/or replicated application that is able to survive " -"failures on one or more machines can benefit from a cluster manager:" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:16 -msgid "Awareness of other applications in the stack" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:18 -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 - " -"context that is crucial to determine the difference between a local failure, " -"clean startup and recovery after a total site failure." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:25 -msgid "Awareness of instances on other machines" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:27 -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 site-wide failure " -"or shutdown where we must first determine the last machine to be active." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:33 -msgid "" -"A shared implementation and calculation of `quorum `_." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:36 -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 - where different parts of the " -"system are pulling in different and incompatible directions." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:43 -msgid "" -"Data integrity through fencing (a non-responsive process does not imply it " -"is not doing anything)" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:46 -msgid "" -"A single application does not have sufficient context to know the difference " -"between failure of a machine and failure of the applcation on a machine. The " -"usual practice is to assume the machine is dead and carry on, 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 "" - -#: ../intro-ha-arch-pacemaker.rst:55 -msgid "Automated recovery of failed instances" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:57 -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 "" - -#: ../intro-ha-arch-pacemaker.rst:62 -msgid "" -"For this reason, the use of a cluster manager like `Pacemaker `_ is highly recommended." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:66 -msgid "Deployment flavors" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:68 -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 "" - -#: ../intro-ha-arch-pacemaker.rst:73 -msgid "" -"Regardless of which flavor you choose, it is recommended that the clusters " -"contain at least three nodes so that we can take advantage of `quorum " -"`_." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:77 -msgid "" -"Quorum becomes important when a failure causes the cluster to split in two " -"or more partitions. In this situation, you want the majority 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 - leading to data corruption." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:84 -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 "" - -#: ../intro-ha-arch-pacemaker.rst:89 -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 "" - -#: ../intro-ha-arch-pacemaker.rst:94 -msgid "Collapsed" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:96 -msgid "" -"In this configuration, there is a single cluster of 3 or more nodes on which " -"every component is running." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:99 -msgid "" -"This scenario has the advantage of requiring far fewer, if more powerful, " -"machines. Additionally, being part of a single cluster allows us to " -"accurately model the ordering dependencies between components." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:104 -msgid "This scenario can be visualized as below." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:109 -msgid "" -"You would choose this option if you prefer to have fewer but more powerful " -"boxes." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:112 -msgid "This is the most common option and the one we document here." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:115 -msgid "Segregated" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:117 -msgid "" -"In this configuration, each service runs in a dedicated cluster of 3 or more " -"nodes." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:120 -msgid "" -"The benefits of this approach are the physical isolation between components " -"and the ability to add capacity to specific components." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:123 -msgid "" -"You would choose this option if you prefer to have more but less powerful " -"boxes." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:126 -msgid "" -"This scenario can be visualized as below, where each box below represents a " -"cluster of three or more guests." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:133 -msgid "Mixed" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:135 -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 "" - -#: ../intro-ha-arch-pacemaker.rst:141 -msgid "Proxy server" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:143 -msgid "" -"Almost all services in this stack benefit from being proxied. Using a proxy " -"server provides:" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:146 -msgid "Load distribution" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:148 -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 "" - -#: ../intro-ha-arch-pacemaker.rst:153 -msgid "API isolation" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:155 -msgid "" -"By sending all API access through the proxy, we can clearly identify service " -"interdependencies. We can also move them to locations other than " -"``localhost`` to increase capacity if the need arises." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:160 -msgid "Simplified process for adding/removing of nodes" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:162 -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 "" - -#: ../intro-ha-arch-pacemaker.rst:168 -msgid "Enhanced failure detection" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:170 -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 "" - -#: ../intro-ha-arch-pacemaker.rst:175 -msgid "" -"The following components are currently unable to benefit from the use of a " -"proxy server:" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:180 -msgid "MongoDB" -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:182 -msgid "" -"However, the reasons vary and are discussed under each component's heading." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:185 -msgid "" -"We recommend HAProxy as the load balancer, however, there are many " -"alternatives in the marketplace." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:188 -msgid "" -"We use a check interval of 1 second, however, the timeouts vary by service." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:190 -msgid "" -"Generally, we use round-robin to distribute load amongst instances of active/" -"active services, however, Galera uses the ``stick-table`` options to ensure " -"that incoming connections to the virtual IP (VIP) should be directed to only " -"one of the available back ends." -msgstr "" - -#: ../intro-ha-arch-pacemaker.rst:195 -msgid "" -"In Galera's case, although it can run active/active, this helps avoid lock " -"contention and prevent deadlocks. It is used in combination with the " -"``httpchk`` option that ensures only nodes that are in sync with its peers " -"are allowed to handle requests." -msgstr "" - -#: ../intro-ha-compute.rst:4 -msgid "Overview of highly-available compute nodes" -msgstr "" - -#: ../intro-ha-concepts.rst:3 -msgid "High availability concepts" -msgstr "" - -#: ../intro-ha-concepts.rst:5 -msgid "High availability systems seek to minimize two things:" -msgstr "" - -#: ../intro-ha-concepts.rst:8 -msgid "" -"Occurs when a user-facing service is unavailable beyond a specified maximum " -"amount of time." -msgstr "" - -#: ../intro-ha-concepts.rst:9 -msgid "**System downtime**" -msgstr "" - -#: ../intro-ha-concepts.rst:12 -msgid "**Data loss**" -msgstr "" - -#: ../intro-ha-concepts.rst:12 -msgid "Accidental deletion or destruction of data." -msgstr "" - -#: ../intro-ha-concepts.rst:14 -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 :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 "" - -#: ../intro-ha-concepts.rst:23 -msgid "Redundancy and failover" -msgstr "" - -#: ../intro-ha-concepts.rst:25 -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 "" - -#: ../intro-ha-concepts.rst:31 -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 "" - -#: ../intro-ha-concepts.rst:37 -msgid "Network components, such as switches and routers" -msgstr "" - -#: ../intro-ha-concepts.rst:39 -msgid "Applications and automatic service migration" -msgstr "" - -#: ../intro-ha-concepts.rst:41 -msgid "Storage components" -msgstr "" - -#: ../intro-ha-concepts.rst:43 -msgid "Facility services such as power, air conditioning, and fire protection" -msgstr "" - -#: ../intro-ha-concepts.rst:45 -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 "" - -#: ../intro-ha-concepts.rst:50 -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 "" - -#: ../intro-ha-concepts.rst:54 -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 "" - -#: ../intro-ha-concepts.rst:60 -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 "" - -#: ../intro-ha-concepts.rst:65 -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. These methods are " -"by no means the only ways to do it; you may supplement these services with " -"commercial hardware and software that provides additional features and " -"functionality. You also 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 "" - -#: ../intro-ha-concepts.rst:77 -msgid "Stateless vs. stateful services" -msgstr "" - -#: ../intro-ha-concepts.rst:79 -msgid "" -"Preventing single points of failure can depend on whether or not a service " -"is stateless." -msgstr "" - -#: ../intro-ha-concepts.rst:83 -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 "" - -#: ../intro-ha-concepts.rst:89 -msgid "Stateless service" -msgstr "" - -#: ../intro-ha-concepts.rst:92 -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, so simply 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 "" - -#: ../intro-ha-concepts.rst:102 -msgid "Stateful service" -msgstr "" - -#: ../intro-ha-concepts.rst:105 -msgid "Active/Passive vs Active/Active" -msgstr "" - -#: ../intro-ha-concepts.rst:107 -msgid "Stateful services may be configured as active/passive or active/active:" -msgstr "" - -#: ../intro-ha-concepts.rst:110 -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 "" - -#: ../intro-ha-concepts.rst:116 -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 "" - -#: ../intro-ha-concepts.rst:121 -msgid ":term:`active/passive configuration`" -msgstr "" - -#: ../intro-ha-concepts.rst:124 -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 "" - -#: ../intro-ha-concepts.rst:130 -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 "" - -#: ../intro-ha-concepts.rst:134 -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 "" - -#: ../intro-ha-concepts.rst:140 -msgid ":term:`active/active configuration`" -msgstr "" - -#: ../intro-ha-concepts.rst:143 -msgid "Clusters and quorums" -msgstr "" - -#: ../intro-ha-concepts.rst:145 -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 "" - -#: ../intro-ha-concepts.rst:153 -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 "" - -#: ../intro-ha-concepts.rst:159 -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 "" - -#: ../intro-ha-concepts.rst:167 -msgid "" -"And the quorum could also have been set to three, just as a configuration " -"example." -msgstr "" - -#: ../intro-ha-concepts.rst:172 -msgid "" -"Note that setting the quorum to a value less than floor(n/2) + 1 is not " -"recommended and would likely cause a split-brain in a face of network " -"partitions." -msgstr "" - -#: ../intro-ha-concepts.rst:176 -msgid "" -"Then, for the given example 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. And without fencing enabled, " -"it would go straight to running two copies of each resource." -msgstr "" - -#: ../intro-ha-concepts.rst:182 -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, like a " -"temporary measure at a point it is known with 100% certainty that the other " -"nodes are down." -msgstr "" - -#: ../intro-ha-concepts.rst:187 -msgid "" -"When configuring an OpenStack environment for study or demonstration " -"purposes, it is possible to turn off the quorum checking; this is discussed " -"later in this guide. Production systems should always run with quorum " -"enabled." -msgstr "" - -#: ../intro-ha-concepts.rst:194 -msgid "Single-controller high availability mode" -msgstr "" - -#: ../intro-ha-concepts.rst:196 -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 "" - -#: ../intro-ha-concepts.rst:203 -msgid "" -"It is possible to add controllers to such an environment to convert it into " -"a truly highly available environment." -msgstr "" - -#: ../intro-ha-concepts.rst:207 -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 "" - -#: ../intro-ha-concepts.rst:213 -msgid "High availability is turned off as the default in OpenStack setups." -msgstr "" - -#: ../intro-ha-controller.rst:3 -msgid "Overview of highly-available controllers" -msgstr "" - -#: ../intro-ha-controller.rst:5 -msgid "" -"OpenStack is a set of multiple services exposed to the end users as HTTP(s) " -"APIs. Additionally, for own internal usage OpenStack requires SQL database " -"server and AMQP broker. The physical servers, where all the components are " -"running are often called controllers. This modular OpenStack architecture " -"allows 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 "" - -#: ../intro-ha-controller.rst:14 -msgid "" -"In general we can divide all the OpenStack components into three categories:" -msgstr "" - -#: ../intro-ha-controller.rst:16 -msgid "" -"OpenStack APIs, these are HTTP(s) stateless services written in python, easy " -"to duplicate and mostly easy to load balance." -msgstr "" - -#: ../intro-ha-controller.rst:19 -msgid "" -"SQL relational database server provides stateful type consumed by other " -"components. Supported databases are MySQL, MariaDB, and PostgreSQL. Making " -"SQL database redundant is complex." -msgstr "" - -#: ../intro-ha-controller.rst:23 -msgid "" -":term:`Advanced Message Queuing Protocol (AMQP)` provides OpenStack internal " -"stateful communication service." -msgstr "" - -#: ../intro-ha-controller.rst:27 -msgid "Network components" -msgstr "" - -#: ../intro-ha-controller.rst:29 -msgid "" -"[TODO Need discussion of network hardware, bonding interfaces, intelligent " -"Layer 2 switches, routers and Layer 3 switches.]" -msgstr "" - -#: ../intro-ha-controller.rst:32 -msgid "" -"The configuration uses static routing without Virtual Router Redundancy " -"Protocol (VRRP) or similar techniques implemented." -msgstr "" - -#: ../intro-ha-controller.rst:36 -msgid "" -"[TODO Need description of VIP failover inside Linux namespaces and expected " -"SLA.]" -msgstr "" - -#: ../intro-ha-controller.rst:39 -msgid "" -"See [TODO link] for more information about configuring networking for high " -"availability." -msgstr "" - -#: ../intro-ha-controller.rst:43 -msgid "Common deployement architectures" -msgstr "" - -#: ../intro-ha-controller.rst:45 -msgid "There are primarily two HA architectures in use today." -msgstr "" - -#: ../intro-ha-controller.rst:47 -msgid "" -"One uses a cluster manager such as Pacemaker or Veritas to co-ordinate the " -"actions of the various services across a set of machines. Since we are " -"focused on FOSS, we will refer to this as the Pacemaker architecture." -msgstr "" - -#: ../intro-ha-controller.rst:52 -msgid "" -"The other is optimized for Active/Active services that do not require any " -"inter-machine coordination. In this setup, services are started by your init " -"system (systemd in most modern distributions) and a tool is used to move IP " -"addresses between the hosts. The most common package for doing this is " -"keepalived." -msgstr "" - -#: ../intro-ha-other.rst:4 -msgid "High availability for other components" -msgstr "" - -#: ../intro-ha-storage.rst:3 -msgid "Overview of high availability storage" -msgstr "" - -#: ../intro-ha-storage.rst:5 -msgid "" -"Making the Block Storage (cinder) API service highly available in active/" -"passive mode involves:" -msgstr "" - -#: ../intro-ha-storage.rst:8 -msgid "Configuring Block Storage to listen on the VIP address" -msgstr "" - -#: ../intro-ha-storage.rst:10 -msgid "" -"Managing the Block Storage API daemon with the Pacemaker cluster manager" -msgstr "" - -#: ../intro-ha-storage.rst:12 -msgid "Configuring OpenStack services to use this IP address" -msgstr "" - -#: ../intro-ha.rst:4 -msgid "Introduction to OpenStack high availability" -msgstr "" - -#: ../networking-ha-dhcp.rst:6 -msgid "Run neutron DHCP agent" -msgstr "" - -#: ../networking-ha-dhcp.rst:8 -msgid "" -"The OpenStack Networking 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." -msgstr "" - -#: ../networking-ha-l3.rst:0 -msgid "/etc/neutron/neutron.conf parameters for high availability" -msgstr "" - -#: ../networking-ha-l3.rst:6 -msgid "Run neutron L3 agent" -msgstr "" - -#: ../networking-ha-l3.rst:8 -msgid "" -"The neutron L3 agent is scalable, due to the scheduler that supports Virtual " -"Router Redundancy Protocol (VRRP) to distribute virtual routers across " -"multiple nodes. To enable high availability for configured routers, edit " -"the :file:`/etc/neutron/neutron.conf` file to set the following values:" -msgstr "" - -#: ../networking-ha-l3.rst:19 -msgid "Parameter" -msgstr "" - -#: ../networking-ha-l3.rst:20 -msgid "Value" -msgstr "" - -#: ../networking-ha-l3.rst:21 -msgid "Description" -msgstr "" - -#: ../networking-ha-l3.rst:22 -msgid "l3_ha" -msgstr "" - -#: ../networking-ha-l3.rst:23 ../networking-ha-l3.rst:26 -msgid "True" -msgstr "" - -#: ../networking-ha-l3.rst:24 -msgid "All routers are highly available by default." -msgstr "" - -#: ../networking-ha-l3.rst:25 -msgid "allow_automatic_l3agent_failover" -msgstr "" - -#: ../networking-ha-l3.rst:27 -msgid "Set automatic L3 agent failover for routers" -msgstr "" - -#: ../networking-ha-l3.rst:28 -msgid "max_l3_agents_per_router" -msgstr "" - -#: ../networking-ha-l3.rst:29 ../networking-ha-l3.rst:32 -msgid "2 or more" -msgstr "" - -#: ../networking-ha-l3.rst:30 -msgid "Maximum number of network nodes to use for the HA router." -msgstr "" - -#: ../networking-ha-l3.rst:31 -msgid "min_l3_agents_per_router" -msgstr "" - -#: ../networking-ha-l3.rst:33 -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 "" - -#: ../networking-ha-lbaas.rst:6 -msgid "Run neutron LBaaS agent" -msgstr "" - -#: ../networking-ha-lbaas.rst:8 -msgid "" -"Currently, no native feature is provided to make the LBaaS agent highly " -"available using the default plug-in HAProxy. A common way to make HAProxy " -"highly available is to use the VRRP (Virtual Router Redundancy Protocol). " -"Unfortunately, this is not yet implemented in the LBaaS HAProxy plug-in." -msgstr "" - -#: ../networking-ha-lbaas.rst:16 -msgid "[TODO: update this section.]" -msgstr "" - -#: ../networking-ha-metadata.rst:6 -msgid "Run neutron metadata agent" -msgstr "" - -#: ../networking-ha-metadata.rst:8 -msgid "" -"No native feature is available to make this service highly available. At " -"this time, the Active/Passive solution exists to run the neutron metadata " -"agent in failover mode with Pacemaker." -msgstr "" - -#: ../networking-ha-metadata.rst:14 -msgid "" -"[TODO: Update this information. Can this service now be made HA in active/" -"active mode or do we need to pull in the instructions to run this service in " -"active/passive mode?]" -msgstr "" - -#: ../networking-ha.rst:4 -msgid "OpenStack network nodes" -msgstr "" - -#: ../networking-ha.rst:6 -msgid "" -"Configure networking on each node. The `Networking `_ section of " -"the *Install Guide* includes basic information about configuring networking." -msgstr "" - -#: ../networking-ha.rst:12 -msgid "Notes from planning outline:" -msgstr "" - -#: ../networking-ha.rst:14 -msgid "" -"Rather than configuring neutron here, we should simply mention physical " -"network HA methods such as bonding and additional node/network requirements " -"for L3HA and DVR for planning purposes." -msgstr "" - -#: ../networking-ha.rst:18 -msgid "" -"Neutron agents shuld be described for active/active; deprecate single " -"agent's instances case." -msgstr "" - -#: ../networking-ha.rst:20 -msgid "For Kilo and beyond, focus on L3HA and DVR." -msgstr "" - -#: ../networking-ha.rst:21 -msgid "" -"Link to `Networking Guide `_ " -"for configuration details." -msgstr "" - -#: ../networking-ha.rst:24 -msgid "" -"[TODO: Verify that the active/passive network configuration information from " -"``_ should not be included here." -msgstr "" - -#: ../networking-ha.rst:29 -msgid "" -"`LP1328922 ` and " -"`LP1349398 ` are " -"related.]" -msgstr "" - -#: ../networking-ha.rst:34 -msgid "OpenStack network nodes contain:" -msgstr "" - -#: ../networking-ha.rst:36 -msgid ":ref:`Neutron DHCP agent`" -msgstr "" - -#: ../networking-ha.rst:37 -msgid "" -"Neutron L2 agent. Note that the L2 agent cannot be distributed and highly " -"available. Instead, it must be installed on each data forwarding node to " -"control the virtual network drivers such as Open vSwitch or Linux Bridge. " -"One L2 agent runs per node and controls its virtual interfaces." -msgstr "" - -#: ../networking-ha.rst:43 -msgid ":ref:`Neutron L3 agent`" -msgstr "" - -#: ../networking-ha.rst:44 -msgid ":ref:`Neutron metadata agent`" -msgstr "" - -#: ../networking-ha.rst:45 -msgid ":ref:`Neutron LBaaS` (Load Balancing as a Service) agent" -msgstr "" - -#: ../networking-ha.rst:49 -msgid "" -"For Liberty, we do not have the standalone network nodes in general. We " -"usually run the Networking services on the controller nodes. In this guide, " -"we use the term \"network nodes\" for convenience." -msgstr "" - -#: ../noncore-ha.rst:4 -msgid "Configuring non-core components for high availability" -msgstr "" - -#: ../storage-ha-backend.rst:6 -msgid "Storage back end" -msgstr "" - -#: ../storage-ha-backend.rst:8 -msgid "" -"Most of this guide concerns the control plane of high availability: ensuring " -"that services continue to run even if a component fails. Ensuring that data " -"is not lost is the data plane component of high availability; this is " -"discussed here." -msgstr "" - -#: ../storage-ha-backend.rst:14 -msgid "An OpenStack environment includes multiple data pools for the VMs:" -msgstr "" - -#: ../storage-ha-backend.rst:16 -msgid "" -"Ephemeral storage is allocated for an instance and is deleted when the " -"instance is deleted. The Compute service manages ephemeral storage. By " -"default, Compute stores ephemeral drives as files on local disks on the " -"Compute node but Ceph RBD can instead be used as the storage back end for " -"ephemeral storage." -msgstr "" - -#: ../storage-ha-backend.rst:24 -msgid "" -"Persistent storage exists outside all instances. Two types of persistent " -"storage are provided:" -msgstr "" - -#: ../storage-ha-backend.rst:27 -msgid "" -"Block Storage service (cinder) can use LVM or Ceph RBD as the storage back " -"end." -msgstr "" - -#: ../storage-ha-backend.rst:29 -msgid "" -"Image service (glance) can use the Object Storage service (swift) or Ceph " -"RBD as the storage back end." -msgstr "" - -#: ../storage-ha-backend.rst:33 -msgid "" -"For more information about configuring storage back ends for the different " -"storage options, see the `Cloud Administrator Guide `_." -msgstr "" - -#: ../storage-ha-backend.rst:37 -msgid "" -"This section discusses ways to protect against data loss in your OpenStack " -"environment." -msgstr "" - -#: ../storage-ha-backend.rst:41 -msgid "RAID drives" -msgstr "" - -#: ../storage-ha-backend.rst:43 -msgid "" -"Configuring RAID on the hard drives that implement storage protects your " -"data against a hard drive failure. If, however, the node itself fails, data " -"may be lost. In particular, all volumes stored on an LVM node can be lost." -msgstr "" - -#: ../storage-ha-backend.rst:49 -msgid "Ceph" -msgstr "" - -#: ../storage-ha-backend.rst:51 -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 "" - -#: ../storage-ha-backend.rst:62 -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 "" - -#: ../storage-ha-backend.rst:70 -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 "" - -#: ../storage-ha-backend.rst:78 -msgid "Remote backup facilities" -msgstr "" - -#: ../storage-ha-backend.rst:80 -msgid "" -"[TODO: Add discussion of remote backup facilities as an alternate way to " -"secure ones data. Include brief mention of key third-party technologies with " -"links to their documentation]" -msgstr "" - -#: ../storage-ha-cinder.rst:6 -msgid "Highly available Block Storage API" -msgstr "" - -#: ../storage-ha-cinder.rst:8 -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 "" - -#: ../storage-ha-cinder.rst:12 -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 "" - -#: ../storage-ha-cinder.rst:16 -msgid "" -"Making this Block Storage API service highly available in active/passive " -"mode involves:" -msgstr "" - -#: ../storage-ha-cinder.rst:19 -msgid ":ref:`ha-cinder-pacemaker`" -msgstr "" - -#: ../storage-ha-cinder.rst:20 -msgid ":ref:`ha-cinder-configure`" -msgstr "" - -#: ../storage-ha-cinder.rst:21 -msgid ":ref:`ha-cinder-services`" -msgstr "" - -#: ../storage-ha-cinder.rst:23 -msgid "" -"In theory, you can run the Block Storage service as active/active. However, " -"because of sufficient concerns, it is recommended running the volume " -"component as active/passive only." -msgstr "" - -#: ../storage-ha-cinder.rst:27 -msgid "Jon Bernard writes:" -msgstr "" - -#: ../storage-ha-cinder.rst:63 -msgid "" -"You can read more about these concerns on the `Red Hat Bugzilla `_ and there is a `psuedo " -"roadmap `_ " -"for addressing them upstream." -msgstr "" - -#: ../storage-ha-cinder.rst:73 -msgid "Add Block Storage API resource to Pacemaker" -msgstr "" - -#: ../storage-ha-cinder.rst:75 -msgid "" -"On RHEL-based systems, you should create resources for cinder's systemd " -"agents and create constraints to enforce startup/shutdown ordering:" -msgstr "" - -#: ../storage-ha-cinder.rst:91 -msgid "" -"If the Block Storage service runs on the same nodes as the other services, " -"then it is advisable to also include:" -msgstr "" - -#: ../storage-ha-cinder.rst:98 -msgid "" -"Alternatively, instead of using systemd agents, download and install the OCF " -"resource agent:" -msgstr "" - -#: ../storage-ha-cinder.rst:107 -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 "" - -#: ../storage-ha-cinder.rst:121 -msgid "" -"This configuration creates ``p_cinder-api``, a resource for managing the " -"Block Storage API service." -msgstr "" - -#: ../storage-ha-cinder.rst:124 -msgid "" -"The command :command:`crm configure` supports batch input, so you may 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 "" - -#: ../storage-ha-cinder.rst:131 -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 "" - -#: ../storage-ha-cinder.rst:139 -msgid "Configure Block Storage API service" -msgstr "" - -#: ../storage-ha-cinder.rst:141 -msgid "Edit the ``/etc/cinder/cinder.conf`` file:" -msgstr "" - -#: ../storage-ha-cinder.rst:143 -msgid "On a RHEL-based system, it should look something like:" -msgstr "" - -#: ../storage-ha-cinder.rst:184 -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 "" - -#: ../storage-ha-cinder.rst:188 -msgid "" -"This example assumes that you are using NFS for the physical storage, which " -"will almost never be true in a production installation." -msgstr "" - -#: ../storage-ha-cinder.rst:191 -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 "" - -#: ../storage-ha-cinder.rst:212 -msgid "" -"Replace ``CINDER_DBPASS`` with the password you chose for the Block Storage " -"database." -msgstr "" - -#: ../storage-ha-cinder.rst:218 -msgid "Configure OpenStack services to use highly available Block Storage API" -msgstr "" - -#: ../storage-ha-cinder.rst:220 -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 "" - -#: ../storage-ha-cinder.rst:226 -msgid "You must create the Block Storage API endpoint with this IP." -msgstr "" - -#: ../storage-ha-cinder.rst:228 -msgid "" -"If you are using both private and public IP addresses, you should create two " -"virtual IPs and define your endpoint like this:" -msgstr "" - -#: ../storage-ha-glance.rst:3 -msgid "Highly available OpenStack Image API" -msgstr "" - -#: ../storage-ha-glance.rst:5 -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 "" - -#: ../storage-ha-glance.rst:10 -msgid ":ref:`glance-api-pacemaker`" -msgstr "" - -#: ../storage-ha-glance.rst:11 -msgid ":ref:`glance-api-configure`" -msgstr "" - -#: ../storage-ha-glance.rst:12 -msgid ":ref:`glance-services`" -msgstr "" - -#: ../storage-ha-glance.rst:14 -msgid "" -"This section assumes that you are familiar with the `documentation `_ for " -"installing the OpenStack Image API service." -msgstr "" - -#: ../storage-ha-glance.rst:22 -msgid "Add OpenStack Image API resource to Pacemaker" -msgstr "" - -# #-#-#-#-# storage-ha-glance.pot (High Availability Guide 0.0.1) #-#-#-#-# -# #-#-#-#-# storage-ha-manila.pot (High Availability Guide 0.0.1) #-#-#-#-# -#: ../storage-ha-glance.rst:24 ../storage-ha-manila.rst:20 -msgid "You must first download the resource agent to your system:" -msgstr "" - -#: ../storage-ha-glance.rst:32 -msgid "" -"You can now add the Pacemaker configuration for the OpenStack Image API " -"resource. Use the :command:`crm configure` command to connect to the " -"Pacemaker cluster and add the following cluster resources:" -msgstr "" - -#: ../storage-ha-glance.rst:47 -msgid "" -"This configuration creates ``p_glance-api``, a resource for managing the " -"OpenStack Image API service." -msgstr "" - -#: ../storage-ha-glance.rst:50 -msgid "" -"The :command:`crm configure` command supports batch input, so you may copy " -"and paste the above 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." -msgstr "" - -#: ../storage-ha-glance.rst:57 -msgid "" -"After completing these steps, commit your configuration changes by entering :" -"command:`commit` from the :command:`crm configure` menu. Pacemaker then " -"starts the OpenStack Image API service and its dependent resources on one of " -"your nodes." -msgstr "" - -#: ../storage-ha-glance.rst:66 -msgid "Configure OpenStack Image service API" -msgstr "" - -#: ../storage-ha-glance.rst:68 -msgid "" -"Edit the :file:`/etc/glance/glance-api.conf` file to configure the OpenStack " -"image service:" -msgstr "" - -#: ../storage-ha-glance.rst:91 -msgid "[TODO: need more discussion of these parameters]" -msgstr "" - -#: ../storage-ha-glance.rst:96 -msgid "" -"Configure OpenStack services to use highly available OpenStack Image API" -msgstr "" - -#: ../storage-ha-glance.rst:98 -msgid "" -"Your OpenStack services must now point their OpenStack Image API " -"configuration to the highly available, virtual cluster IP address instead of " -"pointint to the physical IP address of an OpenStack Image API server as you " -"would in a non-HA cluster." -msgstr "" - -#: ../storage-ha-glance.rst:105 -msgid "" -"For OpenStack Compute, 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 "" - -#: ../storage-ha-glance.rst:118 -msgid "" -"You must also create the OpenStack Image API endpoint with this IP address. " -"If you are using both private and public IP addresses, you should create two " -"virtual IP addresses and define your endpoint like this:" -msgstr "" - -#: ../storage-ha-manila.rst:6 -msgid "Highly available Shared File Systems API" -msgstr "" - -#: ../storage-ha-manila.rst:8 -msgid "" -"Making the Shared File Systems (manila) API service highly available in " -"active/passive mode involves:" -msgstr "" - -#: ../storage-ha-manila.rst:11 -msgid ":ref:`ha-manila-pacemaker`" -msgstr "" - -#: ../storage-ha-manila.rst:12 -msgid ":ref:`ha-manila-configure`" -msgstr "" - -#: ../storage-ha-manila.rst:13 -msgid ":ref:`ha-manila-services`" -msgstr "" - -#: ../storage-ha-manila.rst:18 -msgid "Add Shared File Systems API resource to Pacemaker" -msgstr "" - -#: ../storage-ha-manila.rst:28 -msgid "" -"You can now add the Pacemaker configuration for the Shared File Systems API " -"resource. Connect to the Pacemaker cluster with the :command:`crm configure` " -"command and add the following cluster resources:" -msgstr "" - -#: ../storage-ha-manila.rst:42 -msgid "" -"This configuration creates ``p_manila-api``, a resource for managing the " -"Shared File Systems API service." -msgstr "" - -#: ../storage-ha-manila.rst:45 -msgid "" -"The :command:`crm configure` supports batch input, so you may 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_manila-api`` from the :" -"command:`crm configure` menu and edit the resource to match your preferred " -"virtual IP address." -msgstr "" - -#: ../storage-ha-manila.rst:51 -msgid "" -"Once completed, commit your configuration changes by entering :command:" -"`commit` from the :command:`crm configure` menu. Pacemaker then starts the " -"Shared File Systems API service and its dependent resources on one of your " -"nodes." -msgstr "" - -#: ../storage-ha-manila.rst:59 -msgid "Configure Shared File Systems API service" -msgstr "" - -#: ../storage-ha-manila.rst:61 -msgid "Edit the :file:`/etc/manila/manila.conf` file:" -msgstr "" - -#: ../storage-ha-manila.rst:80 -msgid "Configure OpenStack services to use HA Shared File Systems API" -msgstr "" - -#: ../storage-ha-manila.rst:82 -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 "" - -#: ../storage-ha-manila.rst:87 -msgid "You must create the Shared File Systems API endpoint with this IP." -msgstr "" - -#: ../storage-ha-manila.rst:89 -msgid "" -"If you are using both private and public IP addresses, you should create two " -"virtual IPs and define your endpoints like this:" -msgstr "" - -#: ../storage-ha.rst:3 -msgid "Configuring Storage for high availability" -msgstr "" 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 31d2ea01..00000000 --- a/doc/ha-guide/source/locale/ja/LC_MESSAGES/ha-guide.po +++ /dev/null @@ -1,4398 +0,0 @@ -# Akihiro Motoki , 2015. #zanata -# KATO Tomoyuki , 2015. #zanata -# OpenStack Infra , 2015. #zanata -# Yuko Katabami , 2015. #zanata -# KATO Tomoyuki , 2016. #zanata -# Kyohei Moriyama , 2016. #zanata -# Shinichi Take , 2016. #zanata -# Yuta Hono , 2016. #zanata -msgid "" -msgstr "" -"Project-Id-Version: High Availability Guide 0.0.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-05 00:17+0000\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2016-03-31 12:49+0000\n" -"Last-Translator: Kyohei Moriyama \n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0\n" -"X-Generator: Zanata 3.7.3\n" -"Language-Team: Japanese\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 "**Data loss**" -msgstr "**データロス**" - -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 "**System downtime**" -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. You must define the path to this file in your " -"``my.cnf``." -msgstr "" -"**wsrep Provider** Galera Replication Plugin は、Galera Cluster の wsrep " -"Provider として動作します。お使いのシステムに ``libgalera_smm.so`` ファイルと" -"してインストールされます。このファイルへのパスを ``my.cnf`` に定義する必要が" -"あります。" - -msgid "/etc/neutron/neutron.conf parameters for high availability" -msgstr "高可用性のための /etc/neutron/neutron.conf のパラメーター" - -msgid "1-2" -msgstr "1-2" - -msgid "100 GB" -msgstr "100 GB" - -msgid "100+ GB" -msgstr "100+ GB" - -msgid "2" -msgstr "2" - -msgid "2 or more" -msgstr "2 以上" - -msgid "2-4+" -msgstr "2-4+" - -msgid "8 GB" -msgstr "8 GB" - -msgid "8+ GB" -msgstr "8+ GB" - -msgid ":command:`# /etc/init.d/corosync start` (LSB)" -msgstr ":command:`# /etc/init.d/corosync start` (LSB)" - -msgid ":command:`# /etc/init.d/pacemaker start` (LSB)" -msgstr ":command:`# /etc/init.d/pacemaker start` (LSB)" - -msgid ":command:`# apt-get install rabbitmq-server`" -msgstr ":command:`# apt-get install rabbitmq-server`" - -msgid ":command:`# service corosync start` (LSB, alternate)" -msgstr ":command:`# service corosync start` (LSB, 別の方法)" - -msgid ":command:`# service pacemaker start` (LSB, alternate)" -msgstr ":command:`# service pacemaker start` (LSB, 別の方法)" - -msgid ":command:`# start corosync` (upstart)" -msgstr ":command:`# start corosync` (upstart)" - -msgid ":command:`# start pacemaker` (upstart)" -msgstr ":command:`# start pacemaker` (upstart)" - -msgid ":command:`# systemctl start corosync` (systemd)" -msgstr ":command:`# systemctl start corosync` (systemd)" - -msgid ":command:`# systemctl start pacemaker` (systemd)" -msgstr ":command:`# systemctl start pacemaker` (systemd)" - -msgid ":command:`# yum install rabbitmq-server`" -msgstr ":command:`# yum install rabbitmq-server`" - -msgid ":command:`# zypper addrepo -f obs://Cloud:OpenStack:Kilo/SLE_12 Kilo`" -msgstr ":command:`# zypper addrepo -f obs://Cloud:OpenStack:Kilo/SLE_12 Kilo`" - -msgid ":command:`# zypper install rabbitmq-server`" -msgstr ":command:`# zypper install rabbitmq-server`" - -msgid "" -":command:`crm configure` supports batch input so you may 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." -msgstr "" -":command:`crm configure` はバッチ入力をサポートします。そのため、現在の " -"pacemaker 設定の中に上をコピー・ペーストし、適宜変更を反映できます。例えば、" -"お好みの仮想 IP アドレスに一致させるために、:command:`crm configure` メニュー" -"から ``edit p_ip_keystone`` と入力し、リソースを編集できます。" - -msgid "" -":ref:`Configure OpenStack services to use Rabbit HA queues `" -msgstr "" -":ref:`RabbitMQ HA キューを使用するための OpenStack サービスの設定 `" - -msgid ":ref:`Configure RabbitMQ for HA queues`" -msgstr ":ref:`高可用性 キュー用の RabbitMQ の設定 `" - -msgid ":ref:`Install RabbitMQ`" -msgstr ":ref:`RabbitMQ のインストール`" - -msgid ":ref:`Neutron DHCP agent`" -msgstr ":ref:`Neutron DHCP エージェント `" - -msgid ":ref:`Neutron L3 agent`" -msgstr ":ref:`Neutron L3 エージェント `" - -msgid ":ref:`Neutron LBaaS` (Load Balancing as a Service) agent" -msgstr "" -":ref:`Neutron LBaaS` (Load Balancing as a Service) エージェン" -"ト" - -msgid ":ref:`Neutron metadata agent`" -msgstr ":ref:`Neutron メタデータエージェント `" - -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-cinder-configure`" -msgstr ":ref:`ha-cinder-configure`" - -msgid ":ref:`ha-cinder-pacemaker`" -msgstr ":ref:`ha-cinder-pacemaker`" - -msgid ":ref:`ha-cinder-services`" -msgstr ":ref:`ha-cinder-services`" - -msgid ":ref:`ha-manila-configure`" -msgstr ":ref:`ha-manila-configure`" - -msgid ":ref:`ha-manila-pacemaker`" -msgstr ":ref:`ha-manila-pacemaker`" - -msgid ":ref:`ha-manila-services`" -msgstr ":ref:`ha-manila-services`" - -msgid ":ref:`keystone-config-identity`" -msgstr ":ref:`keystone-config-identity`" - -msgid ":ref:`keystone-pacemaker`" -msgstr ":ref:`keystone-pacemaker`" - -msgid ":ref:`keystone-services-config`" -msgstr ":ref:`keystone-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 ":ref:`search`" -msgstr ":ref:`search`" - -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 sample votequorum service configuration in the :file:`corosync.com` file " -"is:" -msgstr ":file:`corosync.com` ファイルの 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, so simply 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 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 ` アドレス " -"(VIP) を使用して処理されます。 独立したアプリケーション (Pacemaker や " -"Corosync など) がこれらのサービスを監視し、必要に応じてバックアップ側をオンラ" -"インにします。" - -msgid "API isolation" -msgstr "API 分離" - -msgid "" -"Ability to take periodic \"snap shots\" throughout the installation process " -"and \"roll back\" to a working configuration in the event of a problem." -msgstr "" -"インストールプロセス以降、定期的な「スナップショット」を取得する機能、および" -"問題発生時に動作する設定に「ロールバック」する機能があります。" - -msgid "Abstract" -msgstr "概要" - -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." -msgstr "" -"RabbitMQ へのアクセスは、通常 HAproxy により取り扱われません。利用者は代わり" -"に、 ``rabbit_hosts`` を用いて RabbitMQ を実行しているホストの一覧を指定し" -"て、 ``rabbit_ha_queues`` オプションを有効化する必要があります。" - -msgid "" -"Access to memcached is not handled by HAproxy because replicated access is " -"currently only in an experimental state. Instead OpenStack services must be " -"supplied with the full list of hosts running memcached." -msgstr "" -"重複アクセスは現在実験的な位置づけのため、memcached へのアクセスは HAproxy を" -"利用しません。代わりに、OpenStack のサービスは memcached を実行しているホスト" -"をすべて指定する必要があります。" - -msgid "" -"Access via an HAProxy virtual IP, for services such as HTTPd that are " -"accessed via a TCP socket that can be load balanced" -msgstr "" -"HAProxy 仮想 IP 経由のアクセス、負荷分散できる TCP ソケット経由でアクセス可能" -"な HTTPd などのサービス向け。" - -msgid "Accidental deletion or destruction of data." -msgstr "意図しないデータの削除や破損。" - -msgid "Active/Passive vs Active/Active" -msgstr "アクティブ/パッシブとアクティブ/アクティブ" - -msgid "Add Block Storage API resource to Pacemaker" -msgstr "Block Storage API リソースの Pacemaker への追加" - -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 Galera Cluster service:" -msgstr "Galera Cluster サービスを追加します。" - -msgid "Add the GnuPG key for the database repository that you want to use." -msgstr "使用したいデータベースのリポジトリーに GnuPG キーを追加します。" - -msgid "" -"Add the repository to your sources list. Using your preferred text editor, " -"create a ``galera.list`` file in the ``/etc/apt/sources.list.d/`` directory. " -"For the contents of this file, use the lines that pertain to the software " -"repository you want to install:" -msgstr "" -"リポジトリーをソースリストに追加します。お好きなテキストエディターを使用し" -"て、``/etc/apt/sources.list.d/`` ディレクトリーに ``galera.list`` を作成しま" -"す。このファイルの内容は、インストールしたいソフトウェアリポジトリーに関する" -"行を使用します。" - -msgid "Add the repository to your system:" -msgstr "リポジトリーをお使いのシステムに追加します。" - -msgid "Additional parameters" -msgstr "追加パラメーター" - -msgid "" -"After completing these steps, commit your configuration changes by entering :" -"command:`commit` from the :command:`crm configure` menu. Pacemaker then " -"starts the OpenStack Image API service and its dependent resources on one of " -"your nodes." -msgstr "" -"これらの手順の完了後、:command:`crm configure` メニューから :command:" -"`commit` と入力し、設定の変更をコミットします。Pacemaker は OpenStack Image " -"API サービスおよび依存するリソースを同じノードに起動します。" - -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 services have been started and you have verified that the " -"cluster is communicating properly, you can start :command:`pacemakerd`, the " -"Pacemaker master control process:" -msgstr "" -"Corosync サービスが起動して、クラスターが正常に通信していることを確認した後、" -"Pacemaker のマスター制御プロセス :command:`pacemakerd` を起動できます。" - -msgid "" -"After the Pacemaker services have 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 add these resources, commit your configuration changes by " -"entering :command:`commit` from the :command:`crm configure` menu. Pacemaker " -"then starts the OpenStack Identity service and its dependent resources on " -"one of your nodes." -msgstr "" -"これらのリソースの追加後、:command:`crm configure` メニューから :command:" -"`commit` と入力し、設定の変更をコミットします。Pacemaker は OpenStack " -"Identity サービスおよび依存するリソースを同じノードに起動します。" - -msgid "After you make these changes, you may commit the updated configuration." -msgstr "これらの変更実行後、更新した設定を範囲する必要があるかもしれません。" - -msgid "" -"After you set up your Pacemaker cluster, you should 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:" -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 "" -"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 "" -"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 "Architecture limitations" -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 "" -"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 that the Percona repository only supports Red Hat Enterprise " -"Linux and CentOS distributions." -msgstr "" -"Percona リポジトリーは Red Hat Enterprise Linux と CentOS のみをサポートする" -"ことを心にとどめておいてください。" - -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 "" -"Bear in mind, while setting this parameter to ``1`` or ``2`` can improve " -"performance, 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 "" -"このパラメーターを ``1`` か ``2`` に設定することにより、性能を改善できます" -"が、ある種の危険性があることを覚えておいてください。オペレーティングシステム" -"の障害が、最後の数秒のトランザクションを消去する可能性があります。このデータ" -"を他のノードから復旧することもできますが、クラスターが同時に停止した場合 " -"(データセンターの電源障害時)、このデータを完全に失います。" - -msgid "Before you attempt this, verify that you have the following ready:" -msgstr "これを試す前に、以下の準備ができていることを確認します。" - -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 "" -"Block Storage service (cinder) can use LVM or Ceph RBD as the storage back " -"end." -msgstr "" -"Block Storage サービス (cinder) は、ストレージバックエンドとして LVM や Ceph " -"RBD を使用できます。" - -msgid "" -"Both the central and the compute agent can run in an HA deployment, which " -"means that multiple instances of these services can run in parallel with " -"workload partitioning among these running instances." -msgstr "" -"中央エージェントとコンピュートエージェントの両方は、高可用性で動作できます。" -"これらのサービスの複数のインスタンスが、これらを実行しているインスタンス間で" -"並行して負荷分散できることを意味します。" - -msgid "" -"Built-in application clustering, when available from the application. Galera " -"is one example of this." -msgstr "" -"アプリケーション組み込みクラスター、アプリケーションから利用できる場合、" -"Galera がこの例になる。" - -msgid "" -"By default, `controller1` handles the caching service but, if the host goes " -"down, `controller2` does the job. For more information about memcached " -"installation, see the `OpenStack Cloud Administrator Guide `_." -msgstr "" -"デフォルトで、 `controller1` がキャッシュサービスを処理しますが、ホストが停止" -"している場合、 `controller2` がジョブを実行します。memcached のインストールの" -"詳細は `OpenStack Cloud Administrator Guide `_ を参照してください。" - -msgid "" -"By default, cluster nodes do not start as part of a Primary Component. " -"Instead they assume that one exists somewhere and attempts to establish a " -"connection with it. To create a Primary Component, you must start one " -"cluster node using the ``--wsrep-new-cluster`` option. You can do this using " -"any cluster node, it is not important which you choose. In the Primary " -"Component, replication and state transfers bring all databases to the same " -"state." -msgstr "" -"クラスターノードは、デフォルトで Primary Component の一部として起動しません。" -"代わりに、それがどこかに存在すると仮定し、そこへの接続を確立しようとします。" -"1 つのクラスターノードを ``--wsrep-new-cluster``オプションを付けて起動して、" -"Primary Component を作成する必要があります。任意のクラスターノードを使用して" -"実行でき、どれを選択するかは重要ではありません。Primary Component において、" -"レプリケーションと状態転送により、すべてのデータベースが同じ状態になります。" - -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 "Cinder-volume as a single point of failure" -msgstr "単一障害点としての cinder-volume" - -msgid "Clusters and quorums" -msgstr "クラスターとクォーラム" - -msgid "Collapsed" -msgstr "Collapsed" - -# #-#-#-#-# compute-manage-volumes.pot (Cloud Administrator Guide 0.9) -# #-#-#-#-# -# #-#-#-#-# networking_adv-features.pot (Cloud Administrator Guide 0.9) -# #-#-#-#-# -# #-#-#-#-# networking_config-agents.pot (Cloud Administrator Guide 0.9) -# #-#-#-#-# -# #-#-#-#-# networking_use.pot (Cloud Administrator Guide 0.9) #-#-#-#-# -msgid "Command" -msgstr "コマンド" - -msgid "Common deployement 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 highly available Block Storage API" -msgstr "高可用性 Block Storage API を使用するための OpenStack サービスの設定" - -msgid "" -"Configure OpenStack services to use highly available OpenStack Image API" -msgstr "" -"高可用性 OpenStack Image Service API を使用するための OpenStack サービスの設" -"定" - -msgid "" -"Configure OpenStack services to use the highly available OpenStack Identity" -msgstr "高可用性 OpenStack Identity を使用するための OpenStack サービスの設定" - -msgid "Configure RabbitMQ for HA queues" -msgstr "高可用性 キュー用の RabbitMQ の設定" - -msgid "Configure Shared File Systems API service" -msgstr "Shared File Systems API サービスの設定" - -msgid "Configure high availability on compute nodes" -msgstr "コンピュートノードにおける高可用性の設定" - -msgid "" -"Configure networking on each node. The `Networking `_ section of " -"the *Install Guide* includes basic information about configuring networking." -msgstr "" -"各ノードにおいてネットワークを設定します。ネットワーク設定に関する基本的な情" -"報は、インストールガイドの `Networking `_ セクションにあります。" - -msgid "Configure the VIP" -msgstr "仮想 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, however, 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 Storage for high availability" -msgstr "ストレージの高可用性の設定" - -msgid "Configuring ``mysqld``" -msgstr "``mysqld`` の設定" - -msgid "Configuring non-core components for high availability" -msgstr "非コアコンポーネントの高可用性の設定" - -msgid "Configuring the compute node for high availability" -msgstr "コンピュートノードの高可用性の設定" - -msgid "Configuring the controller for high availability" -msgstr "コントローラーの高可用性の設定" - -msgid "Configuring the server" -msgstr "サーバーの設定" - -msgid "Configuring wsrep replication" -msgstr "wsrep レプリケーションの設定" - -msgid "" -"Connect an additional quorum device to allow small clusters remain quorate " -"during node outages" -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. Either way, the service is usually named corosync:" -msgstr "" -"Corosync は通常のシステムサービスとして起動します。お使いのディストリビュー" -"ションに応じて、LSB init スクリプト、upstart ジョブ、systemd ユニットファイル" -"を同梱しているかもしれません。どちらにしても、サービスは通常 corosync という" -"名前です。" - -msgid "" -"Create a ``Galera.repo`` file in the local directory. For Galera Cluster for " -"MySQL, use the following content:" -msgstr "" -"ローカルのディレクトリーに ``Galera.repo`` ファイルを作成します。Galera " -"Cluster for MySQL の場合、以下の内容を使用します。" - -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 the cluster, giving it a name, and start it:" -msgstr "名前を指定してクラスターを作成し、起動します。" - -msgid "" -"Currently, no native feature is provided to make the LBaaS agent highly " -"available using the default plug-in HAProxy. A common way to make HAProxy " -"highly available is to use the VRRP (Virtual Router Redundancy Protocol). " -"Unfortunately, this is not yet implemented in the LBaaS HAProxy plug-in." -msgstr "" -"現在、デフォルトのプラグイン HAProxy を使用して、LBaaS エージェントを高可用化" -"する組み込み機能はありません。HAProxy を高可用化する一般的な方法は、VRRP " -"(Virtual Router Redundancy Protocol) を使用することです。残念ながら、これはま" -"だ LBaaS HAProxy プラグインに実装されていません。" - -msgid "" -"Data integrity through fencing (a non-responsive process does not imply it " -"is not doing anything)" -msgstr "" -"フェンシングによるデータ完全性 (応答なしプロセスが何もしていないことを意味し" -"ます)" - -msgid "Database" -msgstr "データベース" - -msgid "Database (Galera Cluster)" -msgstr "データベース (Galera Cluster)" - -msgid "Database configuration" -msgstr "データベース設定" - -msgid "" -"Database hosts with Galera Cluster installed. You need a minimum of three " -"hosts;" -msgstr "" -"Galera Cluster クラスターがインストールされたデータベースホスト。少なくとも " -"3 つのホストが必要です。" - -msgid "Debian" -msgstr "Debian" - -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 "" -"Depending on the method used to communicate with the service, the following " -"availability strategies will be followed:" -msgstr "" -"サービスが通信するために使用するメソッドに応じて、以下の可用性の戦略に従いま" -"す。" - -msgid "Deployment flavors" -msgstr "デプロイフレーバー" - -msgid "Deployment strategies" -msgstr "デプロイ戦略" - -msgid "Description" -msgstr "説明" - -msgid "Distribution" -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 "Do this configuration on all services using RabbitMQ:" -msgstr "RabbitMQ を使用するすべてのサービスでこの設定を行います。" - -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 " -"from the virtual IP (VIP) address and to terminate them as a list of all " -"instances of the corresponding service under load balancing, such as any " -"OpenStack API service." -msgstr "" -"HAProxy の各インスタンスは、仮想 IP アドレスからの接続のみを受け付け、" -"OpenStack API サービスなど、負荷分散するサービスの全インスタンスの一覧に振り" -"分けるよう、そのフロントエンドを設定します。" - -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:" -msgstr "``/etc/cinder/cinder.conf`` ファイルを編集します。" - -msgid "Enabling the repository" -msgstr "リポジトリーの有効化" - -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 to the localhost, " -"``127.0.0.1``. Instead, bind it to ``0.0.0.0`` to ensure it listens on all " -"available interfaces." -msgstr "" -"データベースサーバーが localhost や ``127.0.0.1`` のみにバインドされていない" -"ことを確認してください。代わりに、すべてのインターフェースをきちんとリッスン" -"するよう、 ``0.0.0.0`` にバインドしてください。" - -msgid "Ensure that the default storage engine is set to InnoDB:" -msgstr "デフォルトのストレージエンジンをきちんと InnoDB に設定してください。" - -msgid "" -"Ephemeral storage is allocated for an instance and is deleted when the " -"instance is deleted. The Compute service manages ephemeral storage. By " -"default, Compute stores ephemeral drives as files on local disks on the " -"Compute node but Ceph RBD can instead be used as the storage back end for " -"ephemeral storage." -msgstr "" -"一時ストレージは、インスタンスのために割り当てられ、インスタンスの削除時に削" -"除されます。Compute サービスが一時ストレージを管理します。Compute はデフォル" -"トで、コンピュートノードのローカルディスクにファイルとして一時ディスクを保存" -"します。代わりに、Ceph RBD が一時ストレージのストレージバックエンドとして使用" -"できます。" - -msgid "Example Config File" -msgstr "サンプル設定ファイル" - -msgid "Example configuration with two hosts:" -msgstr "2 ホストでの設定例" - -msgid "Facility services such as power, air conditioning, and fire protection" -msgstr "電源、空調、防火などに関する設備" - -msgid "Firewall" -msgstr "ファイアウォール" - -msgid "" -"For Debian and Debian-based distributions, such as Ubuntu, complete the " -"following steps:" -msgstr "" -"Debian および、Ubuntu などの Debian 系のディストリビューションは、以下の手順" -"を実行してください。" - -msgid "" -"For Debian and Debian-based distributions, such as Ubuntu, run the following " -"command:" -msgstr "" -"Debian および、Ubuntu などの Debian 系のディストリビューションは、以下のコマ" -"ンドを実行してください。" - -msgid "" -"For Galera Cluster for MySQL, using your preferred text editor, create a " -"``Galera.repo`` file in the ``/etc/yum.repos.d/`` directory." -msgstr "" -"Galera Cluster for MySQL の場合、お好きなテキストエディターを使用して、 ``/" -"etc/yum.repos.d/`` ディレクトリーに ``Galera.repo`` ファイルを作成します。" - -msgid "For Kilo and beyond, focus on L3HA and DVR." -msgstr "Kilo 以降、L3HA と DVR に注力します。" - -msgid "" -"For Liberty, we do not have the standalone network nodes in general. We " -"usually run the Networking services on the controller nodes. In this guide, " -"we use the term \"network nodes\" for convenience." -msgstr "" -"Liberty の場合、独立したネットワークノードを一般的に持ちません。よくコント" -"ローラーノードにおいて Networking サービスを実行します。このガイドでは、便宜" -"上、「ネットワークノード」という言葉を使用します。" - -msgid "For MariaDB Galera Cluster, instead use this content:" -msgstr "MariaDB Galera Cluster の場合、代わりに以下の内容を使用します。" - -msgid "" -"For MariaDB Galera Cluster, using your preferred text editor, create a " -"``Galera.repo`` file in the ``/etc/yum.repos.d/`` directory." -msgstr "" -"MariaDB Galera Cluster の場合、お好きなテキストエディターを使用して、 ``/etc/" -"yum.repos.d/`` ディレクトリーに ``Galera.repo`` ファイルを作成します。" - -msgid "" -"For OpenStack Compute, for example, if your OpenStack Identiy service IP " -"address is 10.0.0.11, use the following configuration in your :file:`api-" -"paste.ini` file:" -msgstr "" -"例えば、OpenStack Compute の場合、OpenStack Image API サービスの IP アドレス" -"が 10.0.0.11 ならば、以下の設定を :file:`api-paste.ini` ファイルに使用しま" -"す。" - -msgid "" -"For OpenStack Compute, 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 Compute の場合、OpenStack Image API サービスの IP アドレス" -"が (ここで説明されている設定のように) 10.0.0.11 ならば、以下の設定を :file:" -"`nova.conf` ファイルに使用します。" - -msgid "For Percona XtraDB Cluster, run the following command:" -msgstr "Percona XtraDB Cluster の場合、以下のコマンドを実行します。" - -msgid "" -"For Red Hat Enterprise Linux and Red Hat-based Linux distributions, the " -"process is more straightforward. In this file, only enter the text for the " -"repository you want to use." -msgstr "" -"Red Hat Enterprise Linux および Red Hat 系のディストリビューションは、手順は" -"もっとシンプルです。このファイルに、使用したいリポジトリーのテキストを入力す" -"るだけです。" - -msgid "" -"For Red Hat Enterprise Linux and Red Hat-based distributions, such as Fedora " -"or CentOS, instead run this command:" -msgstr "" -"Red Hat Enterprise Linux および Fedora や CentOS などの Red Hat 系ディストリ" -"ビューションの場合、このコマンドを代わりに実行してください。" - -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 SUSE Enterprise Linux Server and SUSE-based distributions, such as " -"openSUSE, instead run this command:" -msgstr "" -"SUSE Enterprise Linux Server および openSUSE などの SUSE 系ディストリビュー" -"ションの場合、このコマンドを代わりに実行してください。" - -msgid "" -"For SUSE Enterprise Linux and SUSE-based distributions, such as openSUSE " -"binary installations are only available for Galera Cluster for MySQL and " -"MariaDB Galera Cluster." -msgstr "" -"SUSE Enterprise Linux や openSUSE などの SUSE 系ディストリビューションのバイ" -"ナリーインストールの場合、Galera Cluster for MySQL と MariaDB Galera Cluster " -"のみ利用可能です。" - -msgid "" -"For UDPU, every node that should be a member of the membership must be " -"specified." -msgstr "" -"UDPUでは、全てのノードがメンバーシップメンバーを指定しなければなりません。" - -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 ``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 also supports using different configuration files for " -"groups of service instances of this type that are running in parallel. For " -"enabling this configuration, set a value for the partitioning_group_prefix " -"option in the `central section `__ in the " -"OpenStack Configuration Reference." -msgstr "" -"既存の環境の後方互換性とサポートのために、中央エージェントの設定は、並列で実" -"行しているこの種のサービスインスタンスのグループのために、別の設定ファイルを" -"使用することもサポートされます。この設定を有効化するために、OpenStack " -"Configuration Reference の `central 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 its " -"`official documentation `_." -msgstr "" -"お使いのノードに HAProxy をインストールする方法の詳細は `公式ドキュメント " -"`_ を参照してください。" - -msgid "" -"For each cluster node, run the following commands, replacing ``NODE-IP-" -"ADDRESS`` with the IP address of the cluster node you want to open the " -"firewall to:" -msgstr "" -"各クラスターノード向けに、以下のコマンドを実行します。``NODE-IP-ADDRESS`` を" -"ファイアウォールを開きたいクラスターノードの IP アドレスで置き換えます。" - -msgid "" -"For each entry: Replace all instances of ``DISTRO`` with the distribution " -"that you use, such as ``debian`` or ``ubuntu``. Replace all instances of " -"``RELEASE`` with the release of that distribution, such as ``wheezy`` or " -"``trusty``. Replace all instances of ``VERSION`` with the version of the " -"database server that you want to install, such as ``5.6`` or ``10.0``." -msgstr "" -"各項目に対して、すべての ``DISTRO`` をお使いのディストリビューション " -"``debian`` や ``ubuntu`` などに置き換えます。すべての ``RELEASE`` をディスト" -"リビューションのリリース名 ``wheezy`` や ``trusty`` に置き換えます。すべての " -"``VERSION`` をインストールしたいデータベースサーバーのバージョン ``5.6`` や " -"``10.0`` などに置き換えます。" - -msgid "" -"For each instance of OpenStack database in your cluster, run the following " -"commands, replacing ``NODE-IP-ADDRESS`` with the IP address of the cluster " -"node you want to open the firewall to:" -msgstr "" -"クラスターにある OpenStack データベースの各インスタンス向けに、以下のコマンド" -"を実行します。``NODE-IP-ADDRESS`` をファイアウォールを開きたいクラスターノー" -"ドの IP アドレスで置き換えます。" - -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 shown below:" -msgstr "" -"マルチキャストをサポートしていない場合、Corosync はユニキャストで設定すべきで" -"す。ユニキャスト向け :file:`corosync.conf` ファイルの設定例を以下に示します。" - -msgid "" -"For firewall configurations, note that 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 that have to be set " -"in the :file:`ceilometer.conf` configuration file for both the central and " -"compute agents, see the `coordination section `__ in the OpenStack Configuration Reference." -msgstr "" -"中央エージェントとコンピュートエージェントの両方の :file:`ceilometer.conf` 設" -"定ファイルに設定する必要があるオプションの詳細は、OpenStack Configuration " -"Reference の `coordination section `__ を参照してくだ" -"さい。" - -msgid "" -"For many Linux distributions, you can configure the firewall using the " -"``firewall-cmd`` utility for FirewallD. To do so, complete the following " -"steps on each cluster node:" -msgstr "" -"多くの Linux ディストリビューションの場合、FirewallD 向けの ``firewall-cmd`` " -"ユーティリティーを使用して、ファイアウォールを設定できます。そうするために、" -"各クラスターノードに以下の手順を実行します。" - -msgid "" -"For many Linux distributions, you can configure the firewall using the " -"``iptables`` utility. To do so, complete the following steps:" -msgstr "" -"多くの Linux ディストリビューションの場合、``iptables`` ユーティリティーを使" -"用してファイアウォールを設定できます。そのために、以下の手順を実行します。" - -msgid "" -"For more information about configuring storage back ends for the different " -"storage options, see the `Cloud Administrator Guide `_." -msgstr "" -"さまざまなストレージの選択肢に対して、ストレージバックエンドを設定する方法の" -"詳細は、 `Cloud Administrator Guide `_ を参照してください。" - -msgid "" -"For more information on configuring SELinux to work with Galera Cluster, see " -"the `Documentation `_" -msgstr "" -"Galera Cluster と動作する SELinux を設定する方法の詳細は `ドキュメント " -"`_ を参照してく" -"ださい。" - -msgid "" -"For more information on firewalls, see `Firewalls and default ports `_, in the Configuration Reference." -msgstr "" -"ファイアウォールの詳細は、Configuration Reference の `Firewalls and default " -"ports `_ を参照してください。" - -msgid "" -"For more information, see the official installation manual for the " -"distribution:" -msgstr "" -"詳細はディストリビューションの公式インストールガイドを参照してください。" - -msgid "For servers that use ``systemd``, instead run these commands:" -msgstr "" -"``systemd`` を使用するサーバーの場合、これらのコマンドを代わりに実行します。" - -msgid "For servers that use ``systemd``, instead run this command:" -msgstr "" -"``systemd`` を使用するサーバーの場合、代わりにこのコマンドを実行します。" - -msgid "" -"For servers that use ``systemd``, you need to save the current packet " -"filtering to the path of the file that ``iptables`` reads when it starts. " -"This path can vary by distribution, but common locations are in the ``/etc`` " -"directory, such as:" -msgstr "" -"``systemd`` を使用するサーバーの場合、現在のパケットフィルタリングの内容を、 " -"``iptables`` が起動時に参照するファイルに保存する必要があります。このパスは、" -"ディストリビューションにより異なりますが、次のように、一般的に ``/etc`` ディ" -"レクトリーにあります。" - -msgid "" -"For the documentation of these parameters, wsrep Provider option and status " -"variables available in Galera Cluster, see `Reference `_." -msgstr "" -"Galera Cluster において利用できる、これらのパラメーター、wsrep プロバイダーオ" -"プション、状態変数のドキュメントは、`Reference `_ を参照してください。" - -msgid "" -"For this reason, the use of a cluster manager like `Pacemaker `_ is highly recommended." -msgstr "" -"この理由により、 `Pacemaker `_ のようなクラスターマ" -"ネージャーの利用が強く推奨されます。" - -msgid "" -"Galera Cluster configuration parameters all have the ``wsrep_`` prefix. " -"There are five that you must define for each cluster node in your OpenStack " -"database." -msgstr "" -"Galera Cluster の設定パラメーターは、すべて ``wsrep_`` プレフィックスを持ちま" -"す。OpenStack データベースにおいて、各クラスターノード向けに定義する必要があ" -"るものが 5 個あります。" - -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 for MySQL" -msgstr "Galera Cluster for MySQL" - -msgid "Galera Cluster for MySQL:" -msgstr "Galera Cluster for MySQL:" - -msgid "" -"Galera Cluster is not available in the base repositories of Linux " -"distributions. In order to install it with your package manage, you must " -"first enable the repository on your system. The particular methods for doing " -"so vary depending on which distribution you use for OpenStack and which " -"database server you want to use." -msgstr "" -"Galera Cluster は、Linux ディストリビューションの標準リポジトリーにおいて利用" -"できません。パッケージ管理機能を用いてインストールするために、まずお使いのシ" -"ステムにおいてリポジトリーを有効化する必要があります。具体的な手順は、" -"OpenStack のために使用するディストリビューション、使用したいデータベースサー" -"バーによりかなり異なります。" - -msgid "" -"Galera Cluster is now installed on your system. You must repeat this process " -"for each controller node in your cluster." -msgstr "" -"これで Galera Cluster がお使いのシステムにインストールされました。クラスター" -"内のすべてのコントローラーに、このプロセスを繰り返す必要があります。" - -msgid "Galera Cluster requires that you open four ports to network traffic:" -msgstr "" -"Galera Cluster は、ネットワーク通信のために 4 つのポートを開く必要がありま" -"す。" - -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 (in other words, the Galera cluster is not ready to accept " -"connections), 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 クラスターが接続を受け付ける準備ができていない場合、" -"Galera クラスターが再び正常に再構成された場合のみ、フェイルオーバー手順が完了" -"します。SLA は、通常 5 分以内です。" - -msgid "Get a list of nodes known to the quorum service" -msgstr "クォーラムサービスが把握しているノード一覧の取得" - -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 "" -"HAProxy should not be a single point of failure. It is advisable to have " -"multiple HAProxy instances running, where the number of these instances is a " -"small odd number like 3 or 5. You need to ensure its availability by other " -"means, such as Keepalived or Pacemaker." -msgstr "" -"HAProxy は単一障害点になってはいけません。HAProxy のインスタンスは 3台 また" -"は 5台のような奇数の複数台構成にすることを推奨します。Keepalived や " -"Pacemaker などの他の手段により、可用性を保証する必要があります。" - -msgid "Hardware considerations for high availability" -msgstr "高可用性のためのハードウェア考慮事項" - -msgid "Hardware setup" -msgstr "ハードウェアのセットアップ" - -msgid "" -"Here is an example ``/etc/haproxy/haproxy.cfg`` configuration file. You need " -"a copy of it on each controller node." -msgstr "" -"これは ``/etc/haproxy/haproxy.cfg`` 設定ファイルの例です。各コントローラー" -"ノードにコピーする必要があります。" - -msgid "High availability concepts" -msgstr "高可用性の概念" - -msgid "High availability for other components" -msgstr "他のコンポーネントの高可用性" - -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 strategies" -msgstr "高可用性の戦略" - -msgid "High availability systems seek to minimize two things:" -msgstr "高可用性システムは、以下の 2 つを最小にすることを目指しています。" - -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 OpenStack Image API" -msgstr "高可用性 OpenStack Image API" - -msgid "Highly available Shared File Systems API" -msgstr "高可用性 Shared File Systems API" - -msgid "" -"How frequently to retry connecting with RabbitMQ: [TODO: document the unit " -"of measure here? Seconds?]" -msgstr "" -"How frequently to retry connecting with RabbitMQ: [TODO: document the unit " -"of measure here? Seconds?]" - -msgid "" -"How long to back-off for between retries when connecting to RabbitMQ: [TODO: " -"document the unit of measure here? Seconds?]" -msgstr "" -"How long to back-off for between retries when connecting to RabbitMQ: [TODO: " -"document the unit of measure here? Seconds?]" - -msgid "" -"However, 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 "" -"However, running an OpenStack environment on VMs degrades the performance of " -"your instances, particularly if your hypervisor and/or processor lacks " -"support for hardware acceleration of nested VMs." -msgstr "" -"しかしながら、仮想マシン上で OpenStack 環境を実行すると、インスタンスの性能が" -"悪くなります。とくに、ハイパーバイザーとプロセッサーが nested 仮想マシンの" -"ハードウェア支援機能をサポートしない場合は顕著です。" - -msgid "" -"However, the reasons vary and are discussed under each component's heading." -msgstr "" -"しかしながら、理由はさまざまであり、各コンポーネントの項目において議論されま" -"す。" - -msgid "Identity services (keystone)" -msgstr "Identity サービス (keystone)" - -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 ``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, which enables 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, you should create two " -"virtual IP addresses and define your endpoint like this:" -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 endpoint like this:" -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, you should restart the service:" -msgstr "" -"HA キューを使用していない古いセットアップから設定を変更した場合、サービスを再" -"起動しなければいけません。" - -msgid "" -"If you find any or all of these limitations concerning, you are encouraged " -"to refer to the :doc:`Pacemaker HA architecture` " -"instead." -msgstr "" -"これらの制限に関する心配がある場合、代わりに :doc:`Pacemaker HA " -"architecture` を参照することを推奨します。" - -msgid "" -"If you use HAProxy for load-balancing client access to 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 "" -"Image service (glance) can use the Object Storage service (swift) or Ceph " -"RBD as the storage back end." -msgstr "" -"Image サービス (glance) は、ストレージバックエンドとして Object Storage サー" -"ビス (swift) や Ceph RBD を使用できます。" - -msgid "" -"In Corosync configurations using redundant networking (with more than one " -"interface), you must select a Redundant Ring Protocol (RRP) mode other than " -"none. ``active`` is the recommended RRP mode." -msgstr "" -"(複数のインターフェースを用いた) 冗長ネットワークを使用する Corosync 設定にお" -"いて、none ではなく、Redundant Ring Protocol (RRP) を選択する必要があります。" -"``active`` が RRP の推奨モードです。" - -msgid "" -"In 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 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 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 summary though:" -msgstr "概要:" - -msgid "" -"In the event that you already installed the standalone version of MySQL, " -"MariaDB or Percona XtraDB, this installation purges all privileges on your " -"OpenStack database server. You must reapply the privileges listed in the " -"installation guide." -msgstr "" -"すでに MySQL、MariaDB、Percona XtraDB のスタンドアロン版をインストールしてい" -"る場合、このインストールにより、お使いの OpenStack データベースサーバーにおい" -"て、すべての権限が削除されます。インストールガイドにまとめられている権限を再" -"適用する必要があります。" - -msgid "" -"In the event that you also want to configure multicast replication, run this " -"command as well:" -msgstr "" -"また、マルチキャストレプリケーションを設定したいイベントにおいて、このコマン" -"ドを同じように実行します。" - -msgid "" -"In the event that you also want to configure mutlicast replication, run this " -"command as well:" -msgstr "" -"また、マルチキャストレプリケーションを設定したいイベントにおいて、このコマン" -"ドを同じように実行します。" - -msgid "" -"In the event that you do not know the release code-name for your " -"distribution, you can use the following command to find it out:" -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 the event that you use multicast replication, you also need to open " -"``4567`` to UDP traffic:" -msgstr "" -"マルチキャストレプリケーションを使用する場合、UDP の ``4567`` 番ポートも開く" -"必要があります。" - -msgid "" -"In the text: Replace ``DISTRO`` with the name of the distribution you use, " -"such as ``sles`` or ``opensuse``. Replace ``RELEASE`` with the version " -"number of that distribution." -msgstr "" -"``DISTRO`` を使用する ``sles`` や ``opensuse`` などのディストリビューションの" -"名前で置き換えます。 ``RELEASE`` をディストリビューションのバージョン番号に置" -"き換えます。" - -msgid "" -"In the text: Replace ``VERSION`` with the version of MariaDB you want to " -"install, such as ``5.6`` or ``10.0``. Replace package with the package " -"architecture you want to use, such as ``opensuse13-amd64``." -msgstr "" -"テキストにおいて、インストールしたい MariaDB のバージョン、``5.6`` や " -"``10.0`` などで ``VERSION`` を置き換えます。使用したいパッケージアーキテク" -"チャー、``opensuse13-amd64`` などで package を置き換えます。" - -msgid "" -"In theory, you can run the Block Storage service as active/active. However, " -"because of sufficient concerns, it is recommended running the volume " -"component as active/passive only." -msgstr "" -"理論的には、Block Storage サービスをアクティブ/アクティブとして実行できます。" -"しかしながら、十分な課題のため、ボリュームコンポーネントをアクティブ/パッシブ" -"のみとして実行することが推奨されます。" - -msgid "In this case that is a problem though, because:" -msgstr "この場合、以下の理由で、それは問題になります。" - -msgid "" -"In this configuration, each service runs in a dedicated cluster of 3 or more " -"nodes." -msgstr "" -"この設定では、各サービスが 3 以上のノードの専用クラスターで動作します。" - -msgid "" -"In this configuration, there is a single cluster of 3 or more nodes on which " -"every component is running." -msgstr "" -"この設定では、すべてのコンポーネントが動作する、3 つ以上のノードを持つシング" -"ルクラスターがあります。" - -msgid "" -"Individual cluster nodes can stop and be restarted without issue. When a " -"database loses its connection or restarts, 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 memcached" -msgstr "memcached のインストール" - -msgid "Install operating system on each node" -msgstr "各ノードへのオペレーティングシステムのインストール" - -msgid "Install packages" -msgstr "パッケージのインストール" - -msgid "Installation" -msgstr "インストール" - -msgid "Installing Galera Cluster" -msgstr "Galera Cluster のインストール" - -msgid "Installing high availability packages" -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 important to note that HAProxy has no idea that any of this is " -"happening. As far as its process is concerned, it called ``write()`` with " -"the data and the kernel returned success. The resolution is already " -"understood and just needs to make its way through a review." -msgstr "" -"HAProxy は、これが発生したときのアイディアがないことに、とくに注意してくださ" -"い。そのプロセスが関係している限り、データと一緒に ``write()`` を呼び出し、" -"カーネルが成功を返します。この解決方法は、すでにわかっていて、ただレビューを" -"通す必要があります。" - -msgid "" -"It is possible to add controllers to such an environment to convert it into " -"a truly highly available environment." -msgstr "" -"コントローラーをそのような環境に追加して、それを信頼できる高可用性環境に変え" -"られます。" - -msgid "Jon Bernard writes:" -msgstr "Jon Bernard は次のように書きました。" - -msgid "" -"Jon Eck found the `core issue `_ and went into some detail regarding the " -"`history and solution `_ on his blog." -msgstr "" -"Jon Eck さんは、 `コアな問題 `_ を発見して、彼のブログにおいて `経緯と解決策 " -"`_ " -"に関する詳細を述べました。" - -msgid "Keepalived and network partitions" -msgstr "Keepalived とネットワーク分割" - -msgid "Keepalived, for the HAProxy instances." -msgstr "Keepalived、HAProxy インスタンス向け。" - -msgid "Key" -msgstr "キー" - -msgid "" -"Link to `Networking Guide `_ " -"for configuration details." -msgstr "" -"設定の詳細は `Networking Guide `_ を参照してください。" - -msgid "Load distribution" -msgstr "負荷分散" - -msgid "" -"Log in to the database client and grant the ``clustercheck`` user " -"``PROCESS`` privileges." -msgstr "" -"データベースクライアントにログインして、``clustercheck`` ユーザーに " -"``PROCESS`` 権限を与えます。" - -msgid "Make sure pcs is running and configured to start at boot time:" -msgstr "" -"pcs が実行中で、ブート時に起動するよう設定されていることを確認してください。" - -msgid "" -"Make the changes persistent. For servers that use ``init``, use the :command:" -"`save` command:" -msgstr "" -"変更を永続化します。 ``init`` を使用するサーバーの場合、 :command:`save` コマ" -"ンドを使用します。" - -msgid "" -"Making the Block Storage (cinder) API service highly available in active/" -"passive mode involves:" -msgstr "" -"Block Storage (cinder) API サービスのアクティブ/パッシブモードでの高可用性" -"は、以下が関係します。" - -msgid "" -"Making the OpenStack Identity service highly available in active / 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 "" -"Making this Block Storage API service highly available in active/passive " -"mode involves:" -msgstr "" -"Block Storage API サービスのアクティブ/パッシブモードでの高可用性は、以下が関" -"係します。" - -msgid "Management" -msgstr "マネジメント" - -msgid "" -"Managing the Block Storage API daemon with the Pacemaker cluster manager" -msgstr "" -"Pacemaker クラスターマネージャーを用いた Block Storge API デーモンの管理" - -msgid "Manual recovery after a full cluster restart" -msgstr "完全なクラスター再起動後の手動リカバリー" - -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 "MariaDB Galera Cluster" -msgstr "MariaDB Galera Cluster" - -msgid "MariaDB Galera Cluster:" -msgstr "MariaDB Galera Cluster:" - -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 `_ so the way " -"to use multiple memcached servers is the same for all projects." -msgstr "" -"メモリーキャッシュは `oslo.cache `_ により管理されています。そ" -"のため、複数の memcached サーバーを使用する方法が、すべてのプロジェクトで同じ" -"になります。" - -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. 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 "" -"ほとんどの OpenStack サービスは、トークンなどの一時データを保存するために " -"memcached を使用できます。memcached はクラスターなどの一般的な形式の冗長化を" -"サポートしませんが、OpenStack サービスは複数のホスト名や IP アドレスを設定す" -"ることにより、ほぼ任意の数のインスタンスを使用できます。Memcached クライアン" -"トは、インスタンス間でオブジェクトを分散するハッシュ機能を持ちます。インスタ" -"ンスの障害は、オブジェクトの使用率のみに影響します。クライアントは、インスタ" -"ンスの一覧から自動的に削除されます。" - -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 :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 "" -"Most of this guide concerns the control plane of high availability: ensuring " -"that services continue to run even if a component fails. Ensuring that data " -"is not lost is the data plane component of high availability; this is " -"discussed here." -msgstr "" -"このガイドのほとんどは、コントロールプレーンの高可用性を取り扱います。コン" -"ポーネントが故障した場合でも、そのサービスが動作しつづけることを保証します。" -"データ失われないことを保証することは、データプレーンのコンポーネントの高可用" -"性です。それは、ここで議論します。" - -msgid "" -"Multicast groups (``mcastaddr``) must not be reused across cluster " -"boundaries. In other words, 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" -msgstr "ネットワークコンポーネント" - -msgid "Network components, such as switches and routers" -msgstr "スイッチやルーターなどのネットワークの構成要素" - -msgid "" -"Neutron L2 agent. Note that the L2 agent cannot be distributed and highly " -"available. Instead, it must be installed on each data forwarding node to " -"control the virtual network drivers such as Open vSwitch or Linux Bridge. " -"One L2 agent runs per node and controls its virtual interfaces." -msgstr "" -"Neutron L2 エージェント。L2 エージェントは分散させることはできず、高可用構成" -"にはできません。その代わり、 L2 エージェントを各データ転送ノードにインストー" -"ルして、 Open vSwitch や Linux ブリッジなどの仮想ネットワークドライバーを制御" -"します。ノードあたり 1 つの L2 エージェントが動作し、そのノードの仮想インター" -"フェースの制御を行います。" - -msgid "" -"Neutron agents shuld be described for active/active; deprecate single " -"agent's instances case." -msgstr "" -"Neutron エージェントは、アクティブ/アクティブ向けにすべきです。シングルエー" -"ジェントのインスタンスは推奨されません。" - -msgid "Neutron-lbaas-agent as a single point of failure" -msgstr "単一障害点としての neutron-lbaas-agent" - -msgid "No firewalls between the hosts;" -msgstr "ホスト間にファイアウォールがないこと。" - -msgid "" -"No high availability, when the service can only work in active/passive mode." -msgstr "" -"このサービスがアクティブ/パッシブモードのみで動作する場合、高可用性はありませ" -"ん。" - -msgid "" -"No native feature is available to make this service highly available. At " -"this time, the Active/Passive solution exists to run the neutron metadata " -"agent in failover mode with Pacemaker." -msgstr "" -"このサービスを高可用化するための組み込み機能はありません。現状、アクティブ/" -"パッシブのソリューションが存在し、Pacemaker を用いてフェイルオーバーモードで " -"neutron メタデータエージェントを実行します。" - -msgid "Node type" -msgstr "ノード種別" - -msgid "" -"Note that the particular key value in this command varies depending on which " -"database software repository you want to use." -msgstr "" -"このコマンドの具体的なキーは、使用したいデータベースのソフトウェアリポジト" -"リーにより異なります。" - -msgid "Note the following about the recommended interface configuration:" -msgstr "インターフェースの推奨設定に関する注意事項がいくつかあります。" - -msgid "Note the following:" -msgstr "以下に注意してください。" - -msgid "Notes from planning outline:" -msgstr "計画の概要からのメモ:" - -msgid "" -"Occurs when a user-facing service is unavailable beyond a specified maximum " -"amount of time." -msgstr "指定された最大時間を超えて、ユーザーサービスが利用不可能になること。" - -msgid "" -"Of these options, the second one is highly recommended. Although Galera " -"supports active/active configurations, we recommend active/passive (enforced " -"by the load balancer) in order to avoid lock contention." -msgstr "" -"これらの選択肢のうち、2 番目が強く推奨されます。Galera はアクティブ/アクティ" -"ブ設定をサポートしますが、ロック競合を避けるために、(ロードバランサーにより強" -"制される) アクティブ/パッシブを推奨します。" - -msgid "On CentOS, RHEL, openSUSE, and SLES:" -msgstr "CentOS、RHEL、openSUSE、SLES の場合:" - -msgid "" -"On RHEL-based systems, you should create resources for cinder's systemd " -"agents and create constraints to enforce startup/shutdown ordering:" -msgstr "" -"RHEL 系のシステムでは、cinder の systemd エージェント向けリソースを作成して、" -"起動と停止の順番を強制する制約を作成すべきです。" - -msgid "On Ubuntu, it is configured by default." -msgstr "Ubuntu の場合、デフォルトで設定されています。" - -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 a RHEL-based system, it should look something like:" -msgstr "RHEL 系システムの場合、次のようになるでしょう。" - -msgid "" -"On any host that is meant to be part of a Pacemaker cluster, you must first " -"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 completed, commit your configuration changes by entering :command:" -"`commit` from the :command:`crm configure` menu. Pacemaker then starts the " -"Shared File Systems API service and its dependent resources on one of your " -"nodes." -msgstr "" -"これらの手順の完了後、:command:`crm configure` メニューから :command:" -"`commit` と入力し、設定の変更をコミットします。Pacemaker は Shared File " -"Systems API サービスおよび依存するリソースを同じノードに起動します。" - -msgid "" -"Once configured (see example file below), add HAProxy to the cluster and " -"ensure the VIPs can only run on machines where HAProxy is active:" -msgstr "" -"設定すると (以下のサンプルファイル参照)、HAProxy をクラスターに追加して、仮" -"想 IP が HAProxy の動作しているマシンにおいてのみ動作できることを確認してくだ" -"さい。" - -msgid "" -"Once created, the :file:`corosync.conf` file (and the :file:`authkey` file " -"if the secauth option is enabled) must be synchronized 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 "" -"One uses a cluster manager such as Pacemaker or Veritas to co-ordinate the " -"actions of the various services across a set of machines. Since we are " -"focused on FOSS, we will refer to this as the Pacemaker architecture." -msgstr "" -"あるものは、Pacemaker や Veritas などのクラスターマネージャーを使用して、複数" -"のマシンにまたがるさまざまなサービスの動作を調整します。私たちは FOSS に注力" -"しているため、Pacemaker のアーキテクチャーを参照します。" - -msgid "" -"OpenStack APIs, these 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 Identity (keystone) is the Identity service in OpenStack that is " -"used by many services. You should be familiar with `OpenStack identity " -"concepts `_ before proceeding." -msgstr "" -"OpenStack Identity (keystone) は、多くのサービスにより使用される OpenStack " -"の Identity サービスです。続行する前に `OpenStack Identity の概念 `_ に慣れておくべきです。" - -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 is a set of multiple services exposed to the end users as HTTP(s) " -"APIs. Additionally, for own internal usage OpenStack requires SQL database " -"server and AMQP broker. The physical servers, where all the components are " -"running are often called controllers. This modular OpenStack architecture " -"allows 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" -msgstr "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 high availability storage" -msgstr "高可用性ストレージの概要" - -msgid "Overview of highly-available compute nodes" -msgstr "高可用性コンピュートノードの概要" - -msgid "Overview of highly-available controllers" -msgstr "高可用性コントローラーの概要" - -msgid "Pacemaker cluster stack" -msgstr "Pacemaker クラスタースタック" - -msgid "" -"Pacemaker does not inherently (need or want to) understand the applications " -"it manages. Instead, it relies on resource agents (RAs), 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 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 は、高信頼なクラスター通信のために `Corosync `_ メッセージング層に依存します。Corosync は、Totem シン" -"グルリングによる順番制御とメンバーシッププロトコルを実装します。また、UDP や " -"InfiniBand ベースのメッセージング、クォーラム、クラスターメンバーシップを " -"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 は、(MySQL データベース、仮想 IP アドレス、RabbitMQ などの) OCF " -"エージェントをたくさん同梱していますが、お使いのシステムにインストールした任" -"意のエージェントも使用できます。また、自身で拡張することもできます " -"(`developer guide `_ 参照)。" - -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 "" -"Packages in the Galera Cluster Debian repository are now available for " -"installation on your system." -msgstr "" -"これで Galera Cluster Debian リポジトリーにあるパッケージがお使いのシステムで" -"利用できます。" - -msgid "" -"Packages in the Galera Cluster Red Hat repository are not available for " -"installation on your system." -msgstr "" -"これで Galera Cluster Red Hat リポジトリーにあるパッケージがお使いのシステム" -"で利用できます。" - -msgid "" -"Packages in the Galera Cluster SUSE repository are now available for " -"installation." -msgstr "" -"これで Galera Cluster SUSE リポジトリーにあるパッケージがお使いのシステムで利" -"用できます。" - -msgid "Parameter" -msgstr "パラメーター" - -msgid "Percona XtraDB Cluster" -msgstr "Percona XtraDB Cluster" - -msgid "Percona XtraDB Cluster:" -msgstr "Percona XtraDB Cluster:" - -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 "" -"Preventing single points of failure can depend on whether or not a service " -"is stateless." -msgstr "" -"単一障害点をなくせるかは、サービスがステートレスであるかに依存する場合があり" -"ます。" - -msgid "Processor" -msgstr "プロセッサー" - -msgid "" -"Production servers should run (at least) three RabbitMQ servers; for testing " -"and demonstration purposes, it is possible to run only two servers. In this " -"section, we configure two nodes, called ``rabbit1`` and ``rabbit2``. To " -"build a broker, we need to 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 "RAID drives" -msgstr "RAID ドライブ" - -msgid "RHEL, Fedora, CentOS" -msgstr "RHEL, Fedora, CentOS" - -msgid "RabbitMQ" -msgstr "RabbitMQ" - -msgid "RabbitMQ HA cluster host:port pairs:" -msgstr "RabbitMQ HA クラスターの「ホスト:ポート」のペア:" - -msgid "" -"RabbitMQ nodes fail over both on the application and the infrastructure " -"layers." -msgstr "" -"RabbitMQ ノードは、アプリケーションとインフラ層の両方においてフェイルオーバー" -"します。" - -msgid "" -"Rather than configuring neutron here, we should simply mention physical " -"network HA methods such as bonding and additional node/network requirements " -"for L3HA and DVR for planning purposes." -msgstr "" -"ここで neutron を設定する代わりに、単にボンディングや物理的なネットワークの " -"HA について言及します。また、計画するために L3HA と DVR の追加ノードとネット" -"ワーク要件について言及します。" - -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 "Refresh ``zypper``:" -msgstr "``zypper`` を最新化します。" - -msgid "" -"Regardless of which flavor you choose, it is recommended that the clusters " -"contain at least three nodes so that we can take advantage of `quorum " -"`_." -msgstr "" -"選択したフレーバーに関わらず、`quorum `_ の利点を得るために、少なく" -"とも 3 ノードを持つクラスターを推奨します。" - -msgid "Remote backup facilities" -msgstr "リモートバックアップ機能" - -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 ``DISTRO`` with the name of the distribution you use, such as " -"``centos`` or ``fedora``. Replace ``RELEASE`` with the release number, such " -"as ``7`` for CentOS 7. Replace ``ARCH`` with your system architecture, such " -"as ``x86_64``" -msgstr "" -"``DISTRO`` を ``centos`` や ``fedora`` などの使用するディストリビューションの" -"名前で置き換えます。 ``RELEASE`` を CentOS 7 向けの ``7`` などのリリース番号" -"で置き換えます。 ``ARCH`` を ``x86_64`` などのシステムアーキテクチャーで置き" -"換えます。" - -msgid "" -"Replace ``VERSION`` with the version of MariaDB you want to install, such as " -"``5.6`` or ``10.0``. Replace ``PACKAGE`` with the package type and " -"architecture, such as ``rhel6-amd64`` for Red Hat 6 on 64-bit architecture." -msgstr "" -"インストールしたい MariaDB のバージョン、``5.6`` や ``10.0`` などで " -"``VERSION`` を置き換えます。パッケージ種別とアーキテクチャー、Red Hat 6 64 -" -"bit アーキテクチャー向けの ``rhel6-amd64`` などで ``PACKAGE`` を置き換えま" -"す。" - -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 "Restarting the cluster" -msgstr "クラスターの再起動" - -msgid "Run neutron DHCP agent" -msgstr "Neutron DHCP エージェントの実行" - -msgid "Run neutron L3 agent" -msgstr "Neutron L3 エージェントの実行" - -msgid "Run neutron LBaaS agent" -msgstr "neutron LBaaS エージェントの実行" - -msgid "Run neutron metadata agent" -msgstr "Neutron メタデータエージェントの実行" - -msgid "Run the following commands on each node except the first one:" -msgstr "1 番目のノード以外の各ノードで以下のコマンドを実行します。" - -msgid "SELinux" -msgstr "SELinux" - -msgid "SELinux and AppArmor set to permit access to ``mysqld``;" -msgstr "SELinux や AppArmor が ``mysqld`` にアクセスを許可していること。" - -msgid "SLES 12" -msgstr "SLES 12" - -msgid "" -"SQL relational database server provides stateful type consumed by other " -"components. Supported databases are MySQL, MariaDB, and PostgreSQL. Making " -"SQL database redundant is complex." -msgstr "" -"SQL リレーショナルデータベースサーバーは、他のコンポーネントにより利用される" -"ステートフルな状態を提供します。サポートされるデータベースは、MySQL、" -"MariaDB、PostgreSQL です。SQL データベースを冗長化することは複雑です。" - -msgid "SUSE" -msgstr "SUSE" - -msgid "Search in this guide" -msgstr "ガイド内検索" - -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 "" -"See [TODO link] for more information about configuring networking for high " -"availability." -msgstr "" -"See [TODO link] for more information about configuring networking for high " -"availability." - -msgid "Segregated" -msgstr "Segregated" - -msgid "Service monitoring and recovery required" -msgstr "サービスモニタリングおよび必要なリカバリー" - -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 site-wide failure " -"or shutdown where we must first determine the last machine to be active." -msgstr "" -"RabbitMQ や Galera などのサービスは、複雑な起動順番を持ちます。クラスター内の" -"全マシンに渡り、起動処理の協調動作を必要とし、しばしば順番に実行する必要があ" -"ります。とくに、サイト全体の障害後、最後にアクティブにするマシンを判断する必" -"要のあるシャットダウンのときに当てはまります。" - -msgid "Set SELinux to allow the database server to run:" -msgstr "SELinux を設定して、データベースサーバーの実行を許可します。" - -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; this is not recommended 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 ``wait_for_all`` to 1 means that, When starting up a cluster (all " -"nodes down), 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 "" -"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 the cluster is a single administrative domain, it is generally " -"accepted 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 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." -msgstr "" -"すべてのノードにおいてメッセージキューサービスを起動し、システム起動時に起動" -"するよう設定します。" - -msgid "" -"Starting up one instance of the service on several controller nodes, when " -"they can coexist and coordinate by other means. RPC in ``nova-conductor`` is " -"one example of this." -msgstr "" -"いくつかのコントローラノードで、一つのサービスインスタンスが開始します。それ" -"らは、ほかの意味で、共存、調和できるということであり、``nova-conductor``のRPC" -"はその例の一つです。" - -msgid "Stateful service" -msgstr "ステートフルサービス" - -msgid "Stateful services may be configured as active/passive or active/active:" -msgstr "" -"ステートフルサービスは、アクティブ/パッシブまたはアクティブ/アクティブとして" -"設定できます。" - -msgid "Stateless service" -msgstr "ステートレスサービス" - -msgid "Stateless vs. stateful services" -msgstr "ステートレスサービスとステートフルサービス" - -msgid "Storage" -msgstr "ストレージ" - -msgid "Storage back end" -msgstr "ストレージバックエンド" - -msgid "Storage components" -msgstr "ストレージ構成要素" - -msgid "TBA" -msgstr "TBA" - -msgid "" -"TCP generally holds on to hope for a long time. A ballpark estimate is " -"somewhere on the order of tens of minutes (30 minutes is commonly " -"referenced). During this time it will keep probing and trying to deliver the " -"data." -msgstr "" -"TCP は一般的に長く接続されています。概算として数十分 (一般的に 30 分として参" -"照されます) のレベルです。この間、プルーブして、データを配送しようとします。" - -msgid "Telemetry" -msgstr "Telemetry" - -msgid "Telemetry central agent" -msgstr "Telemetry 中央エージェント" - -msgid "" -"The :command:`crm configure` command supports batch input, so you may copy " -"and paste the above 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." -msgstr "" -":command:`crm configure` はバッチ入力をサポートします。そのため、現在の " -"pacemaker 設定の中に上をコピー・ペーストし、適宜変更を反映できます。例えば、" -"お好みの仮想 IP アドレスに一致させるために、:command:`crm configure` メニュー" -"から ``edit p_ip_glance-api`` と入力し、リソースを編集できます。" - -msgid "" -"The :command:`crm configure` supports batch input, so you may 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_manila-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_manila-api`` と入力し、リソースを編集できます。" - -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 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. The SLA " -"is several minutes." -msgstr "" -"Memcached クライアントは、インスタンス間でオブジェクトを分散するハッシュ機能" -"を持ちます。インスタンスの障害は、オブジェクトの使用率のみに影響します。クラ" -"イアントは、インスタンスの一覧から自動的に削除されます。SLA は数分です。" - -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 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." -msgstr "" -"OpenStack Networking サービスには、ノードにまたがって複数のエージェントを実行" -"できるスケジューラーがあります。 DHCP エージェントは本質的に高可用性がありま" -"す。ネットワークあたりの DHCP エージェント数を設定するには、 file:`/etc/" -"neutron/neutron.conf` ファイルの``dhcp_agents_per_network`` パラメーターを変" -"更します。このパラメーターのデフォルト値は 1 です。高可用性を持たせるには、" -"ネットワークあたりの DHCP エージェント数を 1 以上にする必要があります。" - -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 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" -msgstr "" -"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" - -msgid "" -"The Telemetry central agent can be configured to partition its polling " -"workload between multiple agents, enabling high availability." -msgstr "" -"Telemetry 中央エージェントは、高可用性を有効化した、複数のエージェント間で" -"ポーリングする負荷を分割するよう設定できます。" - -msgid "" -"The `Installation Guide `_ gives instructions for installing multiple compute nodes. To make " -"them highly available, you must configure the environment to include " -"multiple instances of the API and other services." -msgstr "" -"`インストールガイド `_ に" -"複数のコンピュートノードのインストール方法について記載されています。それらを" -"高可用性にするために、API と他のサービスの複数インスタンスなど、環境を設定す" -"る必要があります。" - -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 "" -"`Tooz `__ ライブラリーは、サービスインスタ" -"ンスのグループ内に条件を提供します。分散アプリケーションを構築するために使用" -"できる、いくつかのバックエンドに上の API を提供します。" - -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. In other words, ``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 used. 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 could potentially make 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 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 remained 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 command :command:`crm configure` supports batch input, so you may 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 common practice is to locate an HAProxy instance on each OpenStack " -"controller in the environment." -msgstr "" -"一般的なプラクティスは、環境内の各 OpenStack コントローラーに HAProxy インス" -"タンスを置くことです。" - -msgid "" -"The configuration uses static routing without Virtual Router Redundancy " -"Protocol (VRRP) or similar techniques implemented." -msgstr "" -"この設定は、Virtual Router Redundancy Protocol (VRRP) や類似技術を実装するこ" -"となく、静的ルーティングを使用します。" - -msgid "" -"The correct path to ``libgalera_smm.so`` given to the ``wsrep_provider`` " -"parameter." -msgstr "" -"``wsrep_provider`` パラメーターに指定された ``libgalera_smm.so`` への適切なパ" -"ス。" - -msgid "" -"The current design of the neutron LBaaS agent using the HAProxy driver does " -"not allow high availability for the tenant load balancers. The neutron-lbaas-" -"agent service will be enabled and running on all controllers, allowing for " -"load balancers to be distributed across all nodes. However, a controller " -"node failure will stop all load balancers running on that node until the " -"service is recovered or the load balancer is manually removed and created " -"again." -msgstr "" -"現在の HAProxy ドライバーを使用する neutron LBaaS エージェントは、テナントの" -"ロードバランサーの高可用性を実現できません。neutron-lbaas-agent サービスが有" -"効化され、すべてのコントローラーにおいて実行され、ロードバランサーがすべての" -"ノードにわたり分散されることを許可します。しかしながら、コントローラーノード" -"の障害は、サービスが復旧されるまで、またはロードバランサーが手動で削除され、" -"再び追加されるまで、そのノードで動作しているロードバランサーをすべて停止しま" -"す。" - -msgid "" -"The default node type is a disc node. In this guide, nodes join the cluster " -"as RAM nodes." -msgstr "" -"デフォルトのノード種別は disc ノードです。このガイドでは、ノードは RAM ノード" -"としてクラスターに参加します。" - -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 " -"OpenStack Installation Guides:" -msgstr "" -"高可用性 OpenStack クラスターをセットアップする第一歩は、各ノードにオペレー" -"ティングシステムをインストールすることです。OpenStack インストールガイドにあ" -"る手順に従ってください。" - -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 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 diagram shows a very simplified view of the different " -"strategies used to achieve high availability for the OpenStack services:" -msgstr "" -"以下の図は、OpenStack サービスの高可用性を達成するために使用される、さまざま" -"な方法を非常に簡略化した図を表します。" - -msgid "The keepalived architecture" -msgstr "keepalived アーキテクチャー" - -msgid "" -"The most popular AMQP implementation used in OpenStack installations is " -"RabbitMQ." -msgstr "" -"OpenStack 環境に使用される最も一般的な AMQP ソフトウェアは RabbitMQ です。" - -msgid "" -"The neutron L3 agent is scalable, due to the scheduler that supports Virtual " -"Router Redundancy Protocol (VRRP) to distribute virtual routers across " -"multiple nodes. To enable high availability for configured routers, edit " -"the :file:`/etc/neutron/neutron.conf` file to set the following values:" -msgstr "" -"neutron L3 エージェントは、スケーラブルです。複数のノードにわたり仮想ルーター" -"を分散するために、スケジューラーが Virtual Router Redundancy Protocol (VRRP) " -"をサポートするためです。設定済みのルーターを高可用化するために、 :file:`/etc/" -"neutron/neutron.conf` ファイルを編集して、以下の値を設定します。" - -msgid "" -"The other is optimized for Active/Active services that do not require any " -"inter-machine coordination. In this setup, services are started by your init " -"system (systemd in most modern distributions) and a tool is used to move IP " -"addresses between the hosts. The most common package for doing this is " -"keepalived." -msgstr "" -"他には、マシン間の調整を必要としないアクティブ/アクティブなサービスに最適化さ" -"れています。このセットアップでは、サービスが init システム (最近のディストリ" -"ビューションは systemd) により起動され、ツールがホスト間で IP アドレスを移動" -"するために使用されます。これを実行するための最も一般的なパッケージは " -"keepalived です。" - -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 source address for the connection from HAProxy back to the client is the " -"VIP address. However the VIP address is no longer present on the host. This " -"means that the network (IP) layer deems the packet unroutable, and informs " -"the transport (TCP) layer. TCP, however, is a reliable transport. It knows " -"how to handle transient errors and will retry. And so it does." -msgstr "" -"HAProxy プロキシーからクライアントに戻る接続の送信元アドレスは、仮想 IP アド" -"レスになります。しかしながら、仮想 IP アドレスはすでにホストに存在しません。" -"つまり、ネットワーク (IP) 層はパケットをルーティングできないと判断して、トラ" -"ンスポート (TCP) 層に通知します。しかしながら、TCP は信頼できる転送になりま" -"す。一時的なエラーを処理して、再試行する方法がわかっているからです。また、実" -"際にそうします。" - -msgid "The standard hardware requirements:" -msgstr "標準的なハードウェア要件:" - -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 "" -"There are known issues with cinder-volume that recommend setting it as " -"active-passive for now, see: https://blueprints.launchpad.net/cinder/+spec/" -"cinder-volume-active-active-support" -msgstr "" -"今のところ、cinder-volume に既知の問題があり、アクティブ/パッシブとして設定す" -"ることを推奨します。https://blueprints.launchpad.net/cinder/+spec/cinder-" -"volume-active-active-support を参照してください。" - -msgid "There are primarily two HA architectures in use today." -msgstr "今日使用される主要な HA アーキテクチャーは 2 つあります。" - -msgid "" -"There are three implementations of Galera Cluster: MySQL, MariaDB and " -"Percona XtraDB. For each implementation, there is a software repository that " -"provides binary packages for Debian, Red Hat, and SUSE-based Linux " -"distributions." -msgstr "" -"Galera Cluster の実装が 3 種類あります。MySQL、MariaDB、Percona XtraDB です。" -"それぞれ、Debian 系、Red Hat 系、SUSE 系の Linux ディストリビューション向けの" -"バイナリーパッケージを提供するソフトウェアリポジトリーがあります。" - -msgid "" -"These agents must conform to one of the `OCF `_, `SysV Init " -"`_, Upstart, or Systemd standards." -msgstr "" -"これらのエージェントは、 `OCF `_, `SysV Init `_, Upstart, Systemd 標準に従う必要があります。" - -msgid "" -"This architecture has some inherent limitations that should be kept in mind " -"during deployment and daily operations. The following sections describe " -"these limitations." -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 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 describes how to install and configure OpenStack for high " -"availability. It supplements the OpenStack Installation Guides and assumes " -"that you are familiar with the material in those guides." -msgstr "" -"このガイドでは、OpenStack に高可用性を持たせるにはどのようにインストールと設" -"定を行うかを説明します。 OpenStack インストールガイドを補完する位置付けであ" -"り、インストールガイドの内容を前提に書かれています。" - -msgid "" -"This guide documents OpenStack Liberty, OpenStack Kilo, and OpenStack Juno " -"releases." -msgstr "" -"このガイドででは、OpenStack Liberty, OpenStack Kilo, OpenStack Juno のリリー" -"スを対象としています。" - -msgid "" -"This guide is a work-in-progress and changing rapidly while we continue to " -"test and enhance the guidance. Please note where there are open \"to do\" " -"items and help where you are able." -msgstr "" -"このガイドは、作成中であり、頻繁に変更されています。テストと内容の改善を継続" -"しています。「To Do」項目が残っていますので、手伝える部分があれば手伝ってくだ" -"さい。" - -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, like 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 makes the instances of HAProxy act independently and fail over " -"transparently together with the network endpoints (VIP addresses) failover " -"and, therefore, shares the same SLA." -msgstr "" -"HAProxy のインスタンスが独立して動作して、ネットワークエンドポイント (仮想 " -"IP アドレス) のフェールオーバーと一緒に透過的にフェールオーバーするため、同" -"じ SLA を共有します。" - -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 us to " -"accurately model the ordering dependencies between components." -msgstr "" -"このシナリオは、より高性能ならば、より少ないマシンを必要とする利点がありま" -"す。加えて、シングルクラスターの一部になることにより、コンポーネント間の順序" -"依存関係を正確にモデル化できます。" - -msgid "" -"This section assumes that you are familiar with the `documentation `_ for " -"installing the OpenStack Image API service." -msgstr "" -"このセクションは、OpenStack Image API サービスのインストールに関する `ドキュ" -"メント `_ に慣れていることを仮定しています。" - -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, complete the " -"following steps on each cluster node:" -msgstr "" -"各クラスターノードにおいて以下の手順を実行して、Galera Cluster の動作を許可す" -"るために SELinux を設定します。" - -msgid "" -"To do so, stop RabbitMQ everywhere and copy the cookie from the first node " -"to each of the other node(s):" -msgstr "" -"そうするために、すべての場所で RabbitMQ を停止して、1 番目のノードのクッキー" -"を他のノードにコピーします。" - -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 seqnos, on the last committed transaction for each. You can find " -"this by viewing ``grastate.dat`` file in database directory," -msgstr "" -"最も高度なクラスターノードを見つけるために、各ノードの最新コミットのトランザ" -"クションにあるシーケンス番号を確認する必要があります。データベースディレクト" -"リーにある ``grastate.dat`` ファイルを表示すると、これを見つけられます。" - -msgid "" -"To implement any changes made to this you must restart the HAProxy service" -msgstr "" -"これの変更を反映するために、HAProxy サービスを再起動する必要があります。" - -msgid "" -"To install and configure memcached, read the `official documentation " -"`_." -msgstr "" -"memcached をインストールして設定する方法は、 `公式ドキュメント `_ を参照してください。" - -msgid "" -"To make this configuration persistent, repeat the above commands with the :" -"option:`--permanent` option." -msgstr "" -":option:`--permanent` オプションを付けて上のコマンドを繰り返して、この設定を" -"永続化します。" - -msgid "To start the cluster, complete the following steps:" -msgstr "以下の手順を実行して、クラスターを起動します。" - -msgid "To verify the cluster status:" -msgstr "クラスターの状態を確認する方法:" - -msgid "" -"Tooz supports `various drivers `__ including the following back end solutions:" -msgstr "" -"Tooz は、以下のバックエンドソリューションを含む、 `さまざまなドライバー " -"`__ をサポートします。" - -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 "Ubuntu, Debian" -msgstr "Ubuntu, Debian" - -msgid "Update the local cache." -msgstr "ローカルキャッシュを更新します。" - -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 more 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 which will make up the " -"cluster. The :option:`-p` option is used to give the password on command " -"line and makes it easier to script." -msgstr "" -"このパスワードを使用して、クラスターを構成するノードに認証します。 :option:`-" -"p` オプションは、コマンドラインにおいてパスワードを指定して、スクリプト化しや" -"すくするために使用されます。" - -msgid "" -"Use the :command:`corosync-cfgtool` utility with the :option:`-s` option to " -"get a summary of the health of the communication rings:" -msgstr "" -":command:`corosync-cfgtool` ユーティリティーに :option:`-s` オプションを付け" -"て実行して、コミュニケーションリングの稼働状態の概要を取得します。" - -msgid "" -"Use the :command:`corosync-objctl` utility to dump the Corosync cluster " -"member list:" -msgstr "" -":command:`corosync-objctl` ユーティリティーを使用して、Corosync クラスターの" -"メンバー一覧を出力します。" - -msgid "" -"Using Galera Cluster requires that you install two packages. The first is " -"the database server, which must include the wsrep API patch. The second " -"package is the Galera Replication Plugin, which enables the write-set " -"replication service functionality with the database server." -msgstr "" -"Galera Cluster を使用するために 2 つのパッケージをインストールする必要があり" -"ます。1 つ目はデータベースサーバーです。wsrep API パッチを含める必要がありま" -"す。2 つ目のパッケージは Galera Replication Plugin です。データベースサーバー" -"の書き込みセットレプリケーションサービス機能を有効にします。" - -msgid "Using the ``semanage`` utility, open the relevant ports:" -msgstr "``semanage`` ユーティリティーを使用して、関連するポートを開きます。" - -msgid "Value" -msgstr "値" - -msgid "Verify that the nodes are running:" -msgstr "そのノードが動作していることを検証します。" - -msgid "" -"We are building a cluster of RabbitMQ nodes to construct a RabbitMQ broker, " -"which is a logical grouping of several Erlang nodes." -msgstr "" -"RabbitMQ ブローカーを構成する RabbitMQ ノードのクラスターを構築しています。こ" -"れは、いくつかの Erlang ノードの論理グループです。" - -msgid "" -"We have to configure the OpenStack components to use at least two RabbitMQ " -"nodes." -msgstr "" -"2 つ以上の RabbitMQ ノードを使用するよう、OpenStack のコンポーネントを設定す" -"る必要があります。" - -msgid "" -"We recommend HAProxy as the load balancer, however, there are many " -"alternatives in the marketplace." -msgstr "" -"ロードバランサーとして HAProxy を推奨しますが、マーケットプレースにさまざまな" -"同等品があります。" - -msgid "" -"We use a check interval of 1 second, however, the timeouts vary by service." -msgstr "1 秒間隔でチェックしますが、タイムアウト値はサービスにより異なります。" - -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; this is discussed " -"later in this guide. 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 and 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 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 find the correct path, run the :command:`iptables-save` command:" -msgstr "" -"適切なパスを見つけたとき、 :command:`iptables-save` コマンドを実行します。" - -msgid "" -"When you finish enabling the software repository for Galera Cluster, you can " -"install it using your package manager. The particular command and packages " -"you need to install varies depending on which database server you want to " -"install and which Linux distribution you use:" -msgstr "" -"Galera Cluster のソフトウェアリポジトリーを有効化すると、パッケージマネー" -"ジャーを使用してインストールできます。インストールに必要となる具体的なコマン" -"ドやパッケージは、インストールしたいデータベースサーバーと使用する Linux ディ" -"ストリビューションにより異なります。" - -msgid "" -"When you finish the installation and configuration process on each cluster " -"node in your OpenStack database, you can initialize Galera Cluster." -msgstr "" -"各ノードにおいて、お使いの OpenStack データベースのインストールと設定を完了す" -"ると、Galera Cluster を初期化できます。" - -msgid "" -"When you have all cluster nodes started, log into the database client on one " -"of them and check the ``wsrep_cluster_size`` status variable again." -msgstr "" -"すべてのクラスターノードを起動したとき、どれか 1 つにデータベースクライアント" -"からログインして、``wsrep_cluster_size`` 状態変数を再び確認します。" - -msgid "" -"While all of the configuration parameters available to the standard MySQL, " -"MariaDB or Percona XtraDB database server 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 "" -"While there will be multiple neutron LBaaS agents running, each agent will " -"manage a set of load balancers, that cannot be failed over to another node." -msgstr "" -"複数の neutron LBaaS エージェントが動作していますが、各エージェントは 1 組の" -"ロードバランサーを管理し、他のノードにフェールオーバーできません。" - -msgid "" -"With ``secauth`` enabled, Corosync nodes mutually authenticate using a 128-" -"byte shared secret stored in the :file:`/etc/corosync/authkey` file, which " -"may be generated with the :command:`corosync-keygen` utility. When using " -"``secauth``, cluster communications are also encrypted." -msgstr "" -"``secauth`` を有効化すると、Corosync ノードが :file:`/etc/corosync/authkey` " -"に保存された 128 バイトの共有シークレットを使用して相互に認証されます。これ" -"は、 :command:`corosync-keygen` ユーティリティーを使用して生成できます。 " -"``secauth`` を使用している場合、クラスター通信も暗号化されます。" - -msgid "" -"With the firewall configuration saved, whenever your OpenStack database " -"starts." -msgstr "" -"ファイアウォール設定を保存すると、OpenStack データベースを起動するときいつで" -"も。" - -msgid "With these options set, SELinux now permits Galera Cluster to operate." -msgstr "" -"これらのオプションを設定すると、SELinux により Galera Cluster の動作を許可さ" -"れます。" - -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 "" -"Without the ``backend_url`` option being set only one instance of both the " -"central and compute agent service is able to run and function correctly." -msgstr "" -"``backend_url`` オプションを設定しないと、中央エージェントとコンピュートエー" -"ジェントのインスタンスのどちらかのみが正しく動作して機能できます。" - -msgid "" -"You also need to create the OpenStack Identity Endpoint with this IP address." -msgstr "" -"この IP アドレスを用いて OpenStack Identity エンドポイントを作成する必要があ" -"ります。" - -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 alternatively use a commercial load balancer, which is a hardware or " -"software. A hardware load balancer generally has good performance." -msgstr "" -"代わりに、ハードウェアやソフトウェアの商用ロードバランサーを使用することもで" -"きます。ハードウェアロードバランサーは、一般的に高性能です。" - -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 add the Pacemaker configuration for the OpenStack Identity " -"resource by running the :command:`crm configure` command to connect to the " -"Pacemaker cluster. Add the following cluster resources:" -msgstr "" -"ここで OpenStack Identity リソース向けに Pacemaker の設定を追加できます。:" -"command:`crm configure` コマンドを使用して、Pacemaker クラスターに接続しま" -"す。以下のクラスターリソースを追加します。" - -msgid "" -"You can now add the Pacemaker configuration for the OpenStack Image API " -"resource. Use the :command:`crm configure` command to connect to the " -"Pacemaker cluster and add the following cluster resources:" -msgstr "" -"ここで OpenStack Image API リソース向けに Pacemaker の設定を追加できます。:" -"command:`crm configure` コマンドを使用して、Pacemaker クラスターに接続して、" -"以下のクラスターリソースを追加します。" - -msgid "" -"You can now add the Pacemaker configuration for the Shared File Systems API " -"resource. Connect to the Pacemaker cluster with the :command:`crm configure` " -"command and add the following cluster resources:" -msgstr "" -"Shared File Systems API リソース用の Pacemaker 設定を追加できます。 :command:" -"`crm configure` を用いて Pacemaker クラスターに接続し、以下のクラスターリソー" -"スを追加します。" - -msgid "You can now check the Corosync connectivity with two tools." -msgstr "2 つのツールを用いて 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 must also create the OpenStack Image API endpoint with this IP address. " -"If you are using both private and public IP addresses, you should create two " -"virtual IP addresses and define your endpoint like this:" -msgstr "" -"この IP アドレスを用いて OpenStack Image API エンドポイントを作成する必要があ" -"ります。プライベート IP アドレスとパブリック IP アドレスを両方使用している場" -"合、2 つの仮想 IP アドレスを作成して、次のようにエンドポイントを定義する必要" -"があります。" - -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 `Install Guides `_." -msgstr "" -"サービスをノード間で正しく同期するために、NTP を設定する必要があります。コン" -"トローラーノードをできる限り正確な(ストラタム値が小さい)サーバーに参照する" -"ように設定し、他のノードはコントローラーノードを参照するよう設定することを推" -"奨します。詳細は `Install Guides `_ を参照してください。" - -msgid "" -"You must configure a supported Tooz driver for the HA deployment of the " -"Telemetry services." -msgstr "" -"Telemetry サービスの高可用性デプロイのために、サポートされる Tooz ドライバー" -"を設定する必要があります。" - -msgid "You must create the Block Storage API endpoint with this IP." -msgstr "" -"この IP を用いて Block Storage API エンドポイントを作成する必要があります。" - -msgid "You must create the Shared File Systems API endpoint with this IP." -msgstr "" -"この IP を用いて Shared File Systems API エンドポイントを作成する必要がありま" -"す。" - -msgid "" -"You must first download the OpenStack Identity resource to Pacemaker by " -"running the following commands:" -msgstr "" -"まず、以下のコマンドを実行して、OpenStack Identity リソースを Pacemaker にダ" -"ウンロードする必要があります。" - -msgid "You must first download the resource agent to your system:" -msgstr "" -"まず、お使いのシステムにリソースエージェントをダウンロードする必要がありま" -"す。" - -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 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 Identity " -"configuration to the highly available virtual cluster IP address rather than " -"point to the physical IP address of an OpenStack Identity server as you " -"would do in a non-HA environment." -msgstr "" -"OpenStack サービスが、非 HA 環境であるような OpenStack Identity サーバーの物" -"理 IP アドレスを指し示す代わりに、高可用性な仮想クラスター IP アドレスを指し" -"示すように、それらの OpenStack Identity の設定を変更する必要があります。" - -msgid "" -"Your OpenStack services must now point their OpenStack Image API " -"configuration to the highly available, virtual cluster IP address instead of " -"pointint 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 "[TODO (Add Telemetry overview)]" -msgstr "[TODO (Add Telemetry overview)]" - -msgid "[TODO -- write intro to this section]" -msgstr "[TODO -- write intro to this section]" - -msgid "" -"[TODO Need description of VIP failover inside Linux namespaces and expected " -"SLA.]" -msgstr "" -"[TODO Need description of VIP failover inside Linux namespaces and expected " -"SLA.]" - -msgid "" -"[TODO Need discussion of network hardware, bonding interfaces, intelligent " -"Layer 2 switches, routers and Layer 3 switches.]" -msgstr "" -"[TODO Need discussion of network hardware, bonding interfaces, intelligent " -"Layer 2 switches, routers and Layer 3 switches.]" - -msgid "" -"[TODO: Verify that Oslo supports hash synchronization; if so, this should " -"not take more than load balancing.]" -msgstr "" -"[TODO: Verify that Oslo supports hash synchronization; if so, this should " -"not take more than load balancing.]" - -msgid "" -"[TODO: Add discussion of remote backup facilities as an alternate way to " -"secure ones data. Include brief mention of key third-party technologies with " -"links to their documentation]" -msgstr "" -"[TODO: Add discussion of remote backup facilities as an alternate way to " -"secure ones data. Include brief mention of key third-party technologies with " -"links to their documentation]" - -msgid "" -"[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.]" -msgstr "" -"[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.]" - -msgid "" -"[TODO: Provide a minimal architecture example for HA, expanded on that given " -"in http://docs.openstack.org/liberty/install-guide-ubuntu/environment.html " -"for easy comparison]" -msgstr "" -"[TODO: Provide a minimal architecture example for HA, expanded on that given " -"in http://docs.openstack.org/liberty/install-guide-ubuntu/environment.html " -"for easy comparison]" - -msgid "[TODO: Should the example instead use a minimum of three nodes?]" -msgstr "[TODO: Should the example instead use a minimum of three nodes?]" - -msgid "" -"[TODO: Should the main example now use corosync-cmapctl and have the note " -"give the command for Corosync version 1?]" -msgstr "" -"[TODO: Should the main example now use corosync-cmapctl and have the note " -"give the command for Corosync version 1?]" - -msgid "[TODO: Should this show three hosts?]" -msgstr "[TODO: Should this show three hosts?]" - -msgid "" -"[TODO: This hands off to two different docs for install information. We " -"should choose one or explain the specific purpose of each.]" -msgstr "" -"[TODO: This hands off to two different docs for install information. We " -"should choose one or explain the specific purpose of each.]" - -msgid "" -"[TODO: This section should begin with a brief mention about what HA queues " -"are and why they are valuable, etc]" -msgstr "" -"[TODO: This section should begin with a brief mention about what HA queues " -"are and why they are valuable, etc]" - -msgid "" -"[TODO: Update this information. Can this service now be made HA in active/" -"active mode or do we need to pull in the instructions to run this service in " -"active/passive mode?]" -msgstr "" -"[TODO: Update this information. Can this service now be made HA in active/" -"active mode or do we need to pull in the instructions to run this service in " -"active/passive mode?]" - -msgid "" -"[TODO: Verify that the active/passive network configuration information from " -"``_ should not be included here." -msgstr "" -"[TODO: Verify that the active/passive network configuration information from " -"``_ should not be included here." - -msgid "[TODO: Verify that these numbers are good]" -msgstr "[TODO: Verify that these numbers are good]" - -msgid "[TODO: need more discussion of these parameters]" -msgstr "[TODO: need more discussion of these parameters]" - -msgid "[TODO: replace \"currently\" with specific release names]" -msgstr "[TODO: replace \"currently\" with specific release names]" - -msgid "[TODO: update this section.]" -msgstr "[TODO: update this section.]" - -msgid "" -"[TODO: we need more commentary about the contents and format of this file]" -msgstr "" -"[TODO: we need more commentary about the contents and format of this file]" - -msgid "[Verify fingerprint of imported GPG key; see below]" -msgstr "[Verify fingerprint of imported GPG key; see below]" - -msgid "" -"`CentOS and RHEL `_" -msgstr "" -"`CentOS および RHEL `_" - -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 `_ Codership, Oy による " -"MySQL リファレンス実装" - -msgid "`Highly Available Queues `_" -msgstr "`Highly Available Queues `_" - -msgid "" -"`LP1328922 ` and " -"`LP1349398 ` are " -"related.]" -msgstr "" -"`LP1328922 ` and " -"`LP1349398 ` are " -"related.]" - -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 `_ Galera Cluster の MariaDB 実" -"装、一般的に Red Hat 系ディストリビューションの環境においてサポートされます" - -msgid "`Memcached `__." -msgstr "`Memcached `__." - -msgid "" -"`Pacemaker `_ cluster stack is the state-of-the-art " -"high availability and load balancing stack for the Linux platform. Pacemaker " -"is useful to make OpenStack infrastructure highly available. Also, it is " -"storage and application-agnostic, and in no way specific to OpenStack." -msgstr "" -"`Pacemaker `_ クラスタースタックは、Linux プラット" -"フォーム向けの最高水準の高可用性と負荷分散を実現します。Pacemaker は " -"OpenStack インフラを高可用化するために役立ちます。また、ストレージとアプリ" -"ケーションから独立していて、OpenStack 特有の方法はありません。" - -msgid "" -"`Percona XtraDB Cluster `_ The XtraDB " -"implementation of Galera Cluster from Percona." -msgstr "" -"`Percona XtraDB Cluster `_ Percona による Galera " -"Cluster の XtraDB 実装" - -msgid "" -"`Provider networks `_" -msgstr "" -"`プロバイダーネットワーク `_" - -msgid "" -"`RPM based `_ (RHEL, Fedora, " -"CentOS, openSUSE)" -msgstr "" -"`RPM ベース `_ (RHEL, Fedora, " -"CentOS, openSUSE)" - -msgid "`Redis `__." -msgstr "`Redis `__。" - -msgid "" -"`Self-service networks `_" -msgstr "" -"`セルフサービスネットワーク `_" - -msgid "" -"`Ubuntu `_" -msgstr "" -"`Ubuntu `_" - -msgid "`Zookeeper `__." -msgstr "`Zookeeper `__。" - -msgid "``/etc/iptables/iptables.rules``" -msgstr "``/etc/iptables/iptables.rules``" - -msgid "``/etc/sysconfig/iptables``" -msgstr "``/etc/sysconfig/iptables``" - -msgid "``0xcbcb082a1bb943db``" -msgstr "``0xcbcb082a1bb943db``" - -msgid "``1C4CBDCDCD2EFD2A``" -msgstr "``1C4CBDCDCD2EFD2A``" - -msgid "``BC19DDBA``" -msgstr "``BC19DDBA``" - -msgid "``crmsh``" -msgstr "``crmsh``" - -msgid "``firewall-cmd``" -msgstr "``firewall-cmd``" - -msgid "``iptables``" -msgstr "``iptables``" - -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 do the 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 "" -"`openSUSE and SUSE Linux Enterprise Server `_" -msgstr "" -"`openSUSE、SUSE Linux Enterprise Server `_" - -msgid "allow_automatic_l3agent_failover" -msgstr "allow_automatic_l3agent_failover" - -msgid "compute node" -msgstr "コンピュートノード" - -msgid "controller node" -msgstr "コントローラーノード" - -msgid "corosync" -msgstr "corosync" - -msgid "fence-agents (CentOS or RHEL) or cluster-glue" -msgstr "fence-agents (CentOS、RHEL) または cluster-glue" - -msgid "http://lists.openstack.org/pipermail/openstack-dev/2014-May/035264.html" -msgstr "" -"http://lists.openstack.org/pipermail/openstack-dev/2014-May/035264.html" - -msgid "http://www.joinfu.com/" -msgstr "http://www.joinfu.com/" - -msgid "l3_ha" -msgstr "l3_ha" - -msgid "libqb0" -msgstr "libqb0" - -msgid "max_l3_agents_per_router" -msgstr "max_l3_agents_per_router" - -msgid "min_l3_agents_per_router" -msgstr "min_l3_agents_per_router" - -msgid "openSUSE" -msgstr "openSUSE" - -msgid "pacemaker" -msgstr "pacemaker" - -msgid "pcs (CentOS or RHEL) or crmsh" -msgstr "pcs (CentOS、RHEL) または crmsh" - -msgid "resource-agents" -msgstr "resource-agents" 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 ad37dab1..00000000 --- a/doc/ha-guide/source/networking-ha-dhcp.rst +++ /dev/null @@ -1,17 +0,0 @@ - -.. _dhcp-agent: - -====================== -Run neutron DHCP agent -====================== - -The OpenStack Networking 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. - 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 511e25cf..00000000 --- a/doc/ha-guide/source/networking-ha-l3.rst +++ /dev/null @@ -1,37 +0,0 @@ - -.. _neutron-l3: - -==================== -Run neutron L3 agent -==================== - -The neutron L3 agent is scalable, due to the scheduler that supports -Virtual Router Redundancy Protocol (VRRP) -to distribute virtual routers across multiple nodes. -To enable high availability for configured routers, -edit the :file:`/etc/neutron/neutron.conf` file -to set the following values: - -.. 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-lbaas.rst b/doc/ha-guide/source/networking-ha-lbaas.rst deleted file mode 100644 index e0a6a237..00000000 --- a/doc/ha-guide/source/networking-ha-lbaas.rst +++ /dev/null @@ -1,17 +0,0 @@ - -.. _neutron-lbaas: - -======================= -Run neutron LBaaS agent -======================= - -Currently, no native feature is provided -to make the LBaaS agent highly available -using the default plug-in HAProxy. -A common way to make HAProxy highly available -is to use the VRRP (Virtual Router Redundancy Protocol). -Unfortunately, this is not yet implemented -in the LBaaS HAProxy plug-in. - -[TODO: update this section.] - diff --git a/doc/ha-guide/source/networking-ha-metadata.rst b/doc/ha-guide/source/networking-ha-metadata.rst deleted file mode 100644 index fa4f10d4..00000000 --- a/doc/ha-guide/source/networking-ha-metadata.rst +++ /dev/null @@ -1,18 +0,0 @@ - -.. _neutron-metadata: - -========================== -Run neutron metadata agent -========================== - -No native feature is available -to make this service highly available. -At this time, the Active/Passive solution exists -to run the neutron metadata agent -in failover mode with Pacemaker. - -[TODO: Update this information. -Can this service now be made HA in active/active mode -or do we need to pull in the instructions -to run this service in active/passive mode?] - diff --git a/doc/ha-guide/source/networking-ha.rst b/doc/ha-guide/source/networking-ha.rst deleted file mode 100644 index b53d9432..00000000 --- a/doc/ha-guide/source/networking-ha.rst +++ /dev/null @@ -1,60 +0,0 @@ - -======================= -OpenStack network nodes -======================= - -Configure networking on each node. -The -`Networking `_ -section of the *Install Guide* includes basic information -about configuring networking. - -Notes from planning outline: - -- Rather than configuring neutron here, - we should simply mention physical network HA methods - such as bonding and additional node/network requirements - for L3HA and DVR for planning purposes. -- Neutron agents shuld be described for active/active; - deprecate single agent's instances case. -- For Kilo and beyond, focus on L3HA and DVR. -- Link to `Networking Guide `_ - for configuration details. - -[TODO: Verify that the active/passive -network configuration information from -``_ -should not be included here. - -`LP1328922 `_ -and -`LP1349398 `_ -are related.] - -OpenStack network nodes contain: - -- :ref:`Neutron DHCP agent` -- Neutron L2 agent. - Note that the L2 agent cannot be distributed and highly available. - Instead, it must be installed on each data forwarding node - to control the virtual network drivers - such as Open vSwitch or Linux Bridge. - One L2 agent runs per node and controls its virtual interfaces. -- :ref:`Neutron L3 agent` -- :ref:`Neutron metadata agent` -- :ref:`Neutron LBaaS` (Load Balancing as a Service) agent - -.. note:: - - For Liberty, we do not have the standalone network nodes in general. - We usually run the Networking services on the controller nodes. - In this guide, we use the term "network nodes" for convenience. - -.. toctree:: - :maxdepth: 2 - - networking-ha-dhcp.rst - networking-ha-l3.rst - networking-ha-metadata.rst - networking-ha-lbaas.rst - diff --git a/doc/ha-guide/source/noncore-ha.rst b/doc/ha-guide/source/noncore-ha.rst deleted file mode 100644 index 93675e8d..00000000 --- a/doc/ha-guide/source/noncore-ha.rst +++ /dev/null @@ -1,4 +0,0 @@ - -===================================================== -Configuring non-core components for high availability -===================================================== 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 a6d1deae..00000000 --- a/doc/ha-guide/source/storage-ha-backend.rst +++ /dev/null @@ -1,85 +0,0 @@ - -.. _storage-ha-backend: - -================ -Storage back end -================ - -Most of this guide concerns the control plane of high availability: -ensuring that services continue to run even if a component fails. -Ensuring that data is not lost -is the data plane component of high availability; -this is discussed here. - -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. - By default, Compute stores ephemeral drives as files - on local disks on the Compute node - but Ceph RBD can instead be used - as the storage back end for ephemeral storage. - -- Persistent storage exists outside all instances. - Two types of persistent storage are provided: - - - Block Storage service (cinder) - can use LVM or Ceph RBD as the storage back end. - - Image service (glance) - 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 the `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, however, 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. - -Remote backup facilities ------------------------- - -[TODO: Add discussion of remote backup facilities -as an alternate way to secure ones data. -Include brief mention of key third-party technologies -with links to their documentation] - - diff --git a/doc/ha-guide/source/storage-ha-cinder.rst b/doc/ha-guide/source/storage-ha-cinder.rst deleted file mode 100644 index 2168b47a..00000000 --- a/doc/ha-guide/source/storage-ha-cinder.rst +++ /dev/null @@ -1,238 +0,0 @@ -.. highlight: ini - :linenothreshold: 5 - -================================== -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 this Block Storage API service highly available in -active/passive mode involves: - -- :ref:`ha-cinder-pacemaker` -- :ref:`ha-cinder-configure` -- :ref:`ha-cinder-services` - -In theory, you can run the Block Storage service as active/active. -However, because of sufficient concerns, it is recommended running -the volume component as active/passive only. - -Jon Bernard writes: - -:: - - Requests are first seen by Cinder in the API service, and we have a - fundamental problem there - a standard test-and-set race condition - exists for many operations where the volume status is first checked - for an expected status and then (in a different operation) updated to - a pending status. The pending status indicates to other incoming - requests that the volume is undergoing a current operation, however it - is possible for two simultaneous requests to race here, which - undefined results. - - Later, the manager/driver will receive the message and carry out the - operation. At this stage there is a question of the synchronization - techniques employed by the drivers and what guarantees they make. - - If cinder-volume processes exist as different process, then the - 'synchronized' decorator from the lockutils package will not be - sufficient. In this case the programmer can pass an argument to - synchronized() 'external=True'. If external is enabled, then the - locking will take place on a file located on the filesystem. By - default, this file is placed in Cinder's 'state directory' in - /var/lib/cinder so won't be visible to cinder-volume instances running - on different machines. - - However, the location for file locking is configurable. So an - operator could configure the state directory to reside on shared - storage. If the shared storage in use implements unix file locking - semantics, then this could provide the requisite synchronization - needed for an active/active HA configuration. - - The remaining issue is that not all drivers use the synchronization - methods, and even fewer of those use the external file locks. A - sub-concern would be whether they use them correctly. - -You can read more about these concerns on the -`Red Hat Bugzilla `_ -and there is a -`psuedo roadmap `_ -for addressing them upstream. - - -.. _ha-cinder-pacemaker: - -Add Block Storage API resource to Pacemaker -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -On RHEL-based systems, you should 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: - -:: - - 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, -so you may 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-cinder-configure: - -Configure Block Storage API service -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Edit the ``/etc/cinder/cinder.conf`` file: - -On a RHEL-based system, it should look something like: - -.. 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] - sql_connection = mysql://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:35357/ - auth_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: - sql_connection = mysql://cinder:CINDER_DBPASS@10.0.0.11/cinder - # Alternatively, you can switch to pymysql, - # a new Python 3 compatible library and use - # sql_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-cinder-services: - -Configure OpenStack services to use 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. - -You must create the Block Storage API endpoint with this IP. - -If you are using both private and public IP addresses, -you should create two virtual IPs and define your endpoint like this: - -.. code-block:: console - - $ keystone endpoint-create --region $KEYSTONE_REGION \ - --service-id $service-id \ - --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-glance.rst b/doc/ha-guide/source/storage-ha-glance.rst deleted file mode 100644 index 5afb211a..00000000 --- a/doc/ha-guide/source/storage-ha-glance.rst +++ /dev/null @@ -1,130 +0,0 @@ -==================================== -Highly available OpenStack 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` - -This section assumes that you are familiar with the -`documentation -`_ -for installing the OpenStack Image API service. - -.. _glance-api-pacemaker: - -Add OpenStack Image API resource to Pacemaker -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -You must first 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 * - -You can now add the Pacemaker configuration -for the OpenStack Image API resource. -Use the :command:`crm configure` command -to connect to the Pacemaker cluster -and add the following cluster resources: - -:: - - 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. - -The :command:`crm configure` command supports batch input, -so you may copy and paste the above 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. - -After completing these steps, -commit your configuration changes by entering :command:`commit` -from the :command:`crm configure` menu. -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 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 pointint to the physical IP address -of an OpenStack Image API server -as you would in a non-HA cluster. - -For OpenStack Compute, 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, -you should create two virtual IP addresses -and define your endpoint like this: - -.. code-block:: console - - $ keystone endpoint-create --region $KEYSTONE_REGION \ - --service-id $service-id --publicurl 'http://PUBLIC_VIP:9292' \ - --adminurl 'http://10.0.0.11:9292' \ - --internalurl 'http://10.0.0.11:9292' - - diff --git a/doc/ha-guide/source/storage-ha-manila.rst b/doc/ha-guide/source/storage-ha-manila.rst deleted file mode 100644 index a07e07c2..00000000 --- a/doc/ha-guide/source/storage-ha-manila.rst +++ /dev/null @@ -1,101 +0,0 @@ -.. highlight: ini - :linenothreshold: 5 - -======================================== -Highly available Shared File Systems API -======================================== - -Making the Shared File Systems (manila) API service highly available -in active/passive mode involves: - -- :ref:`ha-manila-pacemaker` -- :ref:`ha-manila-configure` -- :ref:`ha-manila-services` - -.. _ha-manila-pacemaker: - -Add Shared File Systems API resource to Pacemaker -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -You must first 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 * - -You can now add the Pacemaker configuration for the Shared File Systems -API resource. Connect to the Pacemaker cluster with the -:command:`crm configure` command and add the following cluster resources: - -:: - - 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. - -The :command:`crm configure` supports batch input, so you may 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_manila-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 -Shared File Systems API service and its dependent resources on one of your -nodes. - -.. _ha-manila-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-manila-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.rst b/doc/ha-guide/source/storage-ha.rst deleted file mode 100644 index c853277c..00000000 --- a/doc/ha-guide/source/storage-ha.rst +++ /dev/null @@ -1,13 +0,0 @@ -========================================= -Configuring Storage for high availability -========================================= - -.. toctree:: - :maxdepth: 2 - - storage-ha-cinder.rst - storage-ha-glance.rst - storage-ha-manila.rst - storage-ha-backend.rst - - diff --git a/other-requirements.txt b/other-requirements.txt deleted file mode 100644 index 13b92303..00000000 --- a/other-requirements.txt +++ /dev/null @@ -1,13 +0,0 @@ -# This is a cross-platform list tracking distribution packages needed by tests; -# see http://docs.openstack.org/infra/bindep/ for additional information. - -gettext -libxml2-dev [platform:dpkg] -libxml2-devel [platform:rpm] -libxml2-utils [platform:dpkg] -libxslt-devel [platform:rpm] -libxslt1-dev [platform:dpkg] -python-dev [platform:dpkg] -python-lxml -zlib-devel [platform:rpm] -zlib1g-dev [platform:dpkg] diff --git a/test-requirements.txt b/test-requirements.txt deleted file mode 100644 index 0431aced..00000000 --- a/test-requirements.txt +++ /dev/null @@ -1,9 +0,0 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. - -openstack-doc-tools>=0.31 - -sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3 -openstackdocstheme>=1.2.3 -doc8 # Apache-2.0 diff --git a/tools/build-all-rst.sh b/tools/build-all-rst.sh deleted file mode 100755 index 457641a6..00000000 --- a/tools/build-all-rst.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -e - -mkdir -p publish-docs - -doc-tools-build-rst doc/ha-guide --build build \ - --target ha-guide diff --git a/tools/generatepot-rst.sh b/tools/generatepot-rst.sh deleted file mode 100755 index 319805f9..00000000 --- a/tools/generatepot-rst.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -xe - -# -# 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. - -DOCNAME=$1 - -if [ -z "$DOCNAME" ] ; then - echo "usage $0 DOCNAME" - exit 1 -fi - -# We're not doing anything for this directory. -if [[ "$DOCNAME" = "common" ]] ; then - exit 0 -fi - -rm -f doc/$DOCNAME/source/locale/$DOCNAME.pot -sphinx-build -b gettext doc/$DOCNAME/source/ doc/$DOCNAME/source/locale/ - -# common is translated as part of openstack-manuals, do not -# include the file in the combined tree. -rm doc/$DOCNAME/source/locale/common.pot - -# Take care of deleting all temporary files so that git add -# doc/$DOCNAME/source/locale will only add the single pot file. -# Remove UUIDs, those are not necessary and change too often -msgcat --sort-by-file doc/$DOCNAME/source/locale/*.pot | \ - awk '$0 !~ /^\# [a-z0-9]+$/' > doc/$DOCNAME/source/$DOCNAME.pot -rm doc/$DOCNAME/source/locale/*.pot -rm -rf doc/$DOCNAME/source/locale/.doctrees/ -mv doc/$DOCNAME/source/$DOCNAME.pot doc/$DOCNAME/source/locale/$DOCNAME.pot diff --git a/tox.ini b/tox.ini deleted file mode 100644 index e9ef5340..00000000 --- a/tox.ini +++ /dev/null @@ -1,76 +0,0 @@ -[tox] -minversion = 1.6 -envlist = checkniceness,checkbuild,checklang -skipsdist = True - -[testenv] -basepython = python2 -setenv = - VIRTUAL_ENV={envdir} -deps = -r{toxinidir}/test-requirements.txt -whitelist_externals = - bash - cp - mkdir - rm - rsync - sed - -[testenv:venv] -commands = {posargs} - -[testenv:checkniceness] -commands = - doc8 doc - -[testenv:checkbuild] -commands = - # Build and copy RST Guides - {toxinidir}/tools/build-all-rst.sh - # This only generates the index page - openstack-indexpage publish-docs - -[testenv:publishdocs] -# Prepare all documents (except www subdir) so that they can get -# published on docs.openstack.org with just copying publish-docs/* -# over. -commands = - # Build and copy RST Guides - {toxinidir}/tools/build-all-rst.sh - -[testenv:checklang] -whitelist_externals = - doc-tools-check-languages - bash -commands = - doc-tools-check-languages doc-tools-check-languages.conf test all - # Check that .po and .pot files are valid: - bash -c "find doc -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null" - -[testenv:buildlang] -# Run as "tox -e buildlang -- $LANG" -whitelist_externals = doc-tools-check-languages -commands = doc-tools-check-languages doc-tools-check-languages.conf test {posargs} - -[testenv:publishlang] -whitelist_externals = doc-tools-check-languages -commands = doc-tools-check-languages doc-tools-check-languages.conf publish all - -[testenv:generatepot-rst] -# Generate POT files for translation, needs {posargs} like: -# tox -e generatepot-rst -- user-guide -commands = {toxinidir}/tools/generatepot-rst.sh {posargs} - -[testenv:docs] -commands = - {toxinidir}/tools/build-all-rst.sh - -[doc8] -# Settings for doc8: -# Ignore target directories -ignore-path = doc/*/target,doc/common -# File extensions to use -extensions = .rst,.txt -# Disable some doc8 checks: -# D000: Check RST validity (cannot handle lineos directive) -ignore = D000