# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Apache CloudStack Administration RTD\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-06-30 12:52+0200\n"
"PO-Revision-Date: 2017-08-07 22:35+0200\n"
"Language-Team: French (http://www.transifex.com/ke4qqq/apache-cloudstack-"
"administration-rtd/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Last-Translator: Antoine Le Morvan <antoine@le-morvan.com>\n"
"X-Generator: Poedit 2.0.3\n"

# 87e0763c1e254b4d865a6575d53cd476
#: ../../reliability.rst:18
msgid "System Reliability and High Availability"
msgstr "Fiabilité et disponibilité du système"

# c2cb2128aadc481d823ace426cd60607
#: ../../reliability.rst:21
msgid "HA for Management Server"
msgstr "HA pour le Serveur de Gestion"

# 2cf0c6cbde074e988216174d32a34366
#: ../../reliability.rst:23
msgid ""
"The CloudStack Management Server should be deployed in a multi-node "
"configuration such that it is not susceptible to individual server "
"failures. The Management Server itself (as distinct from the MySQL "
"database) is stateless and may be placed behind a load balancer."
msgstr ""
"Le Serveur de Gestion de CloudStack devrait être déployé dans une "
"configuration multi-noeuds de sorte qu'il ne soit pas soumis sensible à une "
"panne de serveur. Le serveur de gestion lui-même (par opposition à la base "
"de données MySQL) est sans état et peut être placé derrière un répartiteur "
"de charge."

# 0fa3d9ec6d144621b71b2a0077137930
#: ../../reliability.rst:28
msgid ""
"Normal operation of Hosts is not impacted by an outage of all Management "
"Serves. All guest VMs will continue to work."
msgstr ""
"L'exploitation normale des hôtes n'est pas impactée par une panne de "
"l'ensemble des serveurs de gestion. Toutes les VM invitées vont continuer à "
"fonctionner."

# 161abac9b6d7470bbf7a984e225c9a6d
#: ../../reliability.rst:31
msgid ""
"When the Management Server is down, no new VMs can be created, and the end "
"user and admin UI, API, dynamic load distribution, and HA will cease to "
"work."
msgstr ""
"Quand le serveur de gestion est stoppé, aucune nouvelle VM ne peut être "
"créée et l'interface utilisateur final, l'interface d'administration, la "
"distribution dynamique de charge et la HA vont cesser de fonctionner."

# c2abacc0b20149d5b7a4683aedfe4f32
#: ../../reliability.rst:37
msgid "Management Server Load Balancing"
msgstr "Répartition de charge du serveur de gestion"

# 0dc6eb435a354cf3b4279772461cbf7f
#: ../../reliability.rst:39
msgid ""
"CloudStack can use a load balancer to provide a virtual IP for multiple "
"Management Servers. The administrator is responsible for creating the load "
"balancer rules for the Management Servers. The application requires "
"persistence or stickiness across multiple sessions. The following chart "
"lists the ports that should be load balanced and whether or not persistence "
"is required."
msgstr ""
"CloudStack peut utiliser un répartiteur de charge pour fournir une IP "
"virtuelle à plusieurs serveurs de gestion. L'administrateur est responsable "
"de créer les règles de répartition de charge pour les serveurs de gestion. "
"L'application nécessite la persistance ou l'affinité de sessions. Le "
"graphique suivant listent les ports qui devraient être répartis et si la "
"persistance est nécessaire."

# c998c6decbb94666aa6b7c6191a0f4ce
#: ../../reliability.rst:46
msgid "Even if persistence is not required, enabling it is permitted."
msgstr "Même si la persistance n'est pas requise, son activation est permise."

# fa7858c33d194002ade885780b974057
#: ../../reliability.rst:49
msgid "Source Port"
msgstr "Port source"

# 8e4749c413de4b28a281ada8d2d64112
#: ../../reliability.rst:49
msgid "Destination Port"
msgstr "Port de destination"

# 044f0a55ef9143028e6a1442c2d75ee4
#: ../../reliability.rst:49
msgid "Protocol"
msgstr "Protocole"

# 50fdab6c4d254b51be652286846ebac8
#: ../../reliability.rst:49
msgid "Persistence Required?"
msgstr "Persistance requise ?"

# f5fcf842916f48bba5a1ef7630fe9998
#: ../../reliability.rst:51
msgid "80 or 443"
msgstr "80 ou 443"

# 3a276b78a619418392895c04f2b8e5f0
#: ../../reliability.rst:51
msgid "8080 (or 20400 with AJP)"
msgstr "8080 (ou 20400 avec AJP)"

# d09ff40864724d449227f282f2c255b4
#: ../../reliability.rst:51
msgid "HTTP (or AJP)"
msgstr "HTTP (ou AJP)"

# 10b0e96112a54a5b92b53ee2ad9bf186
# fb100cffa01e43e2b2b5880237a41528
#: ../../reliability.rst:51 ../../reliability.rst:52
msgid "Yes"
msgstr "Oui"

# f3007601ae444c0796d25c5e58d09d7a
# 1393fb040df84ca781d1000f40e4794a
#: ../../reliability.rst:52
msgid "8250"
msgstr "8259"

# 6443f2a5e1d840699fd47b726ff379f9
#: ../../reliability.rst:52
msgid "TCP"
msgstr "TCP"

# 1e51ee3a6cd14a0a954cce617a60c19d
# a50ea41d89cf476eadb2a4ad960c9c6a
#: ../../reliability.rst:53
msgid "8096"
msgstr "8096"

# c2b280074d6f40d685182ce0770b0146
#: ../../reliability.rst:53
msgid "HTTP"
msgstr "HTTP"

# 759f4cdc678a4b149c52cf0e39205f9c
#: ../../reliability.rst:53
msgid "No"
msgstr "Non"

# a6f72463a9f44a83992ea95a6ca2d121
#: ../../reliability.rst:56
msgid ""
"In addition to above settings, the administrator is responsible for setting "
"the 'host' global config value from the management server IP to load "
"balancer virtual IP address. If the 'host' value is not set to the VIP for "
"Port 8250 and one of your management servers crashes, the UI is still "
"available but the system VMs will not be able to contact the management "
"server."
msgstr ""
"En complément aux paramètres ci-dessus, l'administrateur est responsable de "
"remplacer l'IP du serveur de gestion contenue dans la variable de "
"configuration globale 'host' par l'adresse virtuelle du répartiteur de "
"charge. si la valeur 'host' n'est pas configurée pour le port 8250 de la "
"VIP et qu'un de vos serveurs de gestion se plante alors l'UI sera toujours "
"disponible mais les VM systèmes seront dans l'incapacité de contacter le "
"serveur de gestion."

# 4ea4aac15f0649b9a4ec0335de47dde1
#: ../../reliability.rst:65
msgid "HA-Enabled Virtual Machines"
msgstr "Machines Virtuelles avec HA"

# c3b807bd9019482093758c219005a8af
# 15a6c6ff487d4b4ab6f7088de5c25301
#: ../../reliability.rst:67 ../../reliability.rst:84
msgid ""
"The user can specify a virtual machine as HA-enabled. By default, all "
"virtual router VMs and Elastic Load Balancing VMs are automatically "
"configured as HA-enabled. When an HA-enabled VM crashes, CloudStack detects "
"the crash and restarts the VM automatically within the same Availability "
"Zone. HA is never performed across different Availability Zones. CloudStack "
"has a conservative policy towards restarting VMs and ensures that there "
"will never be two instances of the same VM running at the same time. The "
"Management Server attempts to start the VM on another Host in the same "
"cluster."
msgstr ""
"L'utilisateur peut spécifier qu'une machine virtuelle est activée pour la "
"HA. Par défaut, toutes les VM routeurs virtuels et les VM Répartition de "
"charge Elastic sont automatiquement configurée avec la HA. Quand une VM "
"avec la HA se plante, CloudStack détecte le plantage et redémarre la VM "
"automatiquement dans la même zone de disponibilité. La HA n'est jamais "
"effectuée entre des zones de disponibilité différentes. CloudStack a une "
"politique prudente de redémarrage des VM et s'assure qu'il n'y aura jamais "
"deux instances de la même VM en fonctionnement en même temps. Le serveur de "
"gestion essaie de démarrer la VM sur un autre hôte dans le même cluster."

# 07861c848b9c4db19a1648e1e80cfabd
# 69462f0a341c4b64a73b9f2e6a9dbb2d
#: ../../reliability.rst:77 ../../reliability.rst:94
msgid ""
"HA features work with iSCSI or NFS primary storage. HA with local storage "
"is not supported."
msgstr ""
"Les fonctionnalités de HA fonctionnent avec le stockage primaire iSCSI ou "
"NFS. La HA ave un stockage local n'est pas supporté."

# d6b616e863194085b6c28e537822b4b0
#: ../../reliability.rst:82
msgid "HA for Hosts"
msgstr "HA pour les hôtes"

# 00c672182ced409dbf9628273c7e72cc
#: ../../reliability.rst:99
msgid "Dedicated HA Hosts"
msgstr "HA des hôtes dédiés"

# d615a157c03a46f8a4185819e7d53f6a
#: ../../reliability.rst:101
msgid ""
"One or more hosts can be designated for use only by HA-enabled VMs that are "
"restarting due to a host failure. Setting up a pool of such dedicated HA "
"hosts as the recovery destination for all HA-enabled VMs is useful to:"
msgstr ""
"Un ou plusieurs hôtes peuvent être désignés pour n'être utilisés que par "
"les VM avec la HA activée et qui sont redémarrées à cause d'une panne de "
"leur hôte. Configurer un tel ensemble d'hôtes HA comme destination de "
"récupération pour toutes les VM avec la HA activée est utile pour :"

# 3b2ac4cb2fd24384adc49f8f6de78d12
#: ../../reliability.rst:106
msgid ""
"Make it easier to determine which VMs have been restarted as part of the "
"CloudStack high-availability function. If a VM is running on a dedicated HA "
"host, then it must be an HA-enabled VM whose original host failed. (With "
"one exception: It is possible for an administrator to manually migrate any "
"VM to a dedicated HA host.)."
msgstr ""
"Déterminer plus simplement quelles VM ont été redémarrées par la "
"fonctionnalité de haute disponibilité de CloudStack. Si un VM est lancée "
"sur un hôte dédiée à la HA, alors elle doit être une VM avec HA activée "
"dont l'hôte d'origine est tombé en panne (avec une exception : il est "
"possible pour un administrateur de migrer manuellement n'importe quelle VM "
"vers un hôte dédié à la HA)."

# 2814f71a4772417494be794e95ed6189
#: ../../reliability.rst:112
msgid ""
"Keep HA-enabled VMs from restarting on hosts which may be reserved for "
"other purposes."
msgstr ""
"Empêcher les VM avec la HA activée de redémarrer sur des hôtes qui auraient "
"été réservés à d'autres fins."

# f29ad59410ba484d81a40d3ab33cfb75
#: ../../reliability.rst:115
msgid ""
"The dedicated HA option is set through a special host tag when the host is "
"created. To allow the administrator to dedicate hosts to only HA-enabled "
"VMs, set the global configuration variable ha.tag to the desired tag (for "
"example, \"ha\\_host\"), and restart the Management Server. Enter the value "
"in the Host Tags field when adding the host(s) that you want to dedicate to "
"HA-enabled VMs."
msgstr ""
"L'option de HA dédiée est configurée via un tag spécial d'hôte lorsque "
"l'hôte est créé. Pour permettre à l'administrateur de dédier des hôtes pour "
"les seules VM avec HA, mettre la variable de configuration globale ha.tag "
"pour le tag désiré (par exemple, \"ha\\_host\") et redémarrer le serveur de "
"gestion. Entrer la valeur dans le champ Etiquettes d'hôte lorsque vous "
"ajoutez le ou les hôtes que vous voulez dédier aux VM avec HA."

# d5444df1dd2240bea9615234f1703727
#: ../../reliability.rst:123
msgid ""
"If you set ha.tag, be sure to actually use that tag on at least one host in "
"your cloud. If the tag specified in ha.tag is not set for any host in the "
"cloud, the HA-enabled VMs will fail to restart after a crash."
msgstr ""
"Si vous configurés l'option ha.tag, assurez vous d'utiliser cette étiquette "
"sur au moins un hôte dans votre cloud. Si le tag spécifié dans l'option ha."
"tag n'est configuré sur aucun hôte dans le cloud, les VM avec HA ne vont "
"pas pouvoir redémarrer après un crash."

# 41dd6b225a02456f873c956ecc4e6018
#: ../../reliability.rst:130
msgid "Primary Storage Outage and Data Loss"
msgstr "Interruption du stockage primaire et perte de données"

# 982e58c7dfd644a9a8e0eaf38fbf516a
#: ../../reliability.rst:132
msgid ""
"When a primary storage outage occurs the hypervisor immediately stops all "
"VMs stored on that storage device. Guests that are marked for HA will be "
"restarted as soon as practical when the primary storage comes back on line. "
"With NFS, the hypervisor may allow the virtual machines to continue running "
"depending on the nature of the issue. For example, an NFS hang will cause "
"the guest VMs to be suspended until storage connectivity is restored."
"Primary storage is not designed to be backed up. Individual volumes in "
"primary storage can be backed up using snapshots."
msgstr ""
"Lorsqu'une interruption du stockage primaire arrive l'hyperviseur stoppe "
"immédiatement toutes les VM stockées sur ce périphérique de stockage. Les "
"invités qui sont marqués pour la HA vont être redémarrés dès que possible "
"lorsque le stockage primaire sera à nouveau en ligne. Avec NFS, "
"l'hyperviseur peut autoriser les machines virtuelles à continuer de "
"fonctionner en fonction de la nature de la panne. Par exemple, une coupure "
"NFS va entraîner la suspension des VM invitées jusqu'à ce que la "
"connectivité au stockage soit restaurée. Les stockages primaires ne sont "
"pas conçu pour être sauvegardés. Les volumes individuels du stockage "
"primaire peuvent être sauvegardé en utilisant les instantanés."

# 2d193df58d2c4fcb867416d740fd9657
#: ../../reliability.rst:144
msgid "Secondary Storage Outage and Data Loss"
msgstr "Interruption du stockage secondaire et perte de données"

# 2d7b3415392e4e8ba762191a40dafa04
#: ../../reliability.rst:146
msgid ""
"For a Zone that has only one secondary storage server, a secondary storage "
"outage will have feature level impact to the system but will not impact "
"running guest VMs. It may become impossible to create a VM with the "
"selected template for a user. A user may also not be able to save snapshots "
"or examine/restore saved snapshots. These features will automatically be "
"available when the secondary storage comes back online."
msgstr ""
"Pour une zone qui ne dispose que d'un seul serveur de stockage secondaire, "
"une interruption du stockage secondaire va avoir un impact au niveau des "
"fonctionnalités du système mais ne va pas impacter les VM invités en "
"fonctionnement. Il peut devenir impossible de créer une VM avec le modèle "
"sélectionné par un utilisateur. Un utilisateur ne pourra pas non plus "
"sauvegarder des instantanés ou examiner/restaurer les instantanés "
"sauvegardés. Ces fonctionnalités vont automatiquement être disponible "
"lorsque le stockage secondaire sera à nouveau disponible."

# 8cda194548a545c0864b2334b52ac6c1
#: ../../reliability.rst:153
msgid ""
"Secondary storage data loss will impact recently added user data including "
"templates, snapshots, and ISO images. Secondary storage should be backed up "
"periodically. Multiple secondary storage servers can be provisioned within "
"each zone to increase the scalability of the system."
msgstr ""
"Une perte de données du stockage secondaire va impacter les données "
"utilisateurs récemment ajoutées incluant les modèles, les instantanés et "
"les images ISO. Le stockage secondaire devrait être sauvegardé "
"périodiquement. Plusieurs serveurs de stockage secondaire peuvent etre "
"provisionnés dans chaque zone pour augmenter l'évolutivité du système."

# 5d6dd861732344e1a4563e92beaf4b89
#: ../../reliability.rst:160
msgid "Database High Availability"
msgstr "Haute disponibilité de la base de données"

# 2ab1e8b94c5447719fe99d7a1f876d22
#: ../../reliability.rst:162
msgid ""
"To help ensure high availability of the databases that store the internal "
"data for CloudStack, you can set up database replication. This covers both "
"the main CloudStack database and the Usage database. Replication is "
"achieved using the MySQL connector parameters and two-way replication. "
"Tested with MySQL 5.1 and 5.5."
msgstr ""
"Pour aider à s'assurer de la haute disponibilité des bases de données qui "
"stockent les données internes à CloudStack, vous pouvez configurer la "
"réplication de base de données. Cela concerne à la fois la base de données "
"principale de CloudStack et la base de données Usage. La réplication est "
"obtenue en utilisant les paramètres du connecteur MySQL et la réplication "
"bi-directionnelle. Testé avec MySQL 5.1 et 5.5."

# 2f86c6796ebc476ba0a054b55ec4199d
#: ../../reliability.rst:170
msgid "How to Set Up Database Replication"
msgstr "Comment configurer la réplication de la base de données"

# 9c0172a3e34d439ca93117a4c922b4cf
#: ../../reliability.rst:172
msgid ""
"Database replication in CloudStack is provided using the MySQL replication "
"capabilities. The steps to set up replication can be found in the MySQL "
"documentation (links are provided below). It is suggested that you set up "
"two-way replication, which involves two database nodes. In this case, for "
"example, you might have node1 and node2."
msgstr ""
"La réplication de la base de données dans CloudStack est obtenue en "
"utilisant les possibilités de réplication de MySQL. Les étapes pour "
"configurer le réplication peuvent être trouvées dans la documentation MySQL "
"(les liens sont fournis ci-dessous). Il est suggéré que vous configuriez "
"une réplication bi-directionnelle, ce qui implique deux noeuds de base de "
"données. Dans ce cas, par exemple, vous devriez avoir node1 et node2."

# c0c448bf2d294f1f99d5a0715263bf84
#: ../../reliability.rst:178
msgid ""
"You can also set up chain replication, which involves more than two nodes. "
"In this case, you would first set up two-way replication with node1 and "
"node2. Next, set up one-way replication from node2 to node3. Then set up "
"one-way replication from node3 to node4, and so on for all the additional "
"nodes."
msgstr ""
"Vous pouvez aussi configurer une chaîne de réplication, ce qui implique "
"plus de deux noeuds. Dans ce cas, vous configurerez une réplication bi-"
"directionnelle entre les noeuds 1 et 2. Ensuite, configurez une réplication "
"mono-directionnelle du noeud 2 vers le noeud 3. Puis configurez une "
"réplication mono-directionnelle du noeud 3 au noeud 4 et ainsi de suite "
"pour tous les noeuds additionnels."

# 946a91ee699241e981ff92c48293ebe9
#: ../../reliability.rst:184
msgid "References:"
msgstr "Références :"

# 0e89f25f5f474fa8a51de012dc293160
#: ../../reliability.rst:186
msgid ""
"`http://dev.mysql.com/doc/refman/5.0/en/replication-howto.html <http://dev."
"mysql.com/doc/refman/5.0/en/replication-howto.html>`_"
msgstr ""
"`http://dev.mysql.com/doc/refman/5.0/en/replication-howto.html <http://dev."
"mysql.com/doc/refman/5.0/en/replication-howto.html>`_"

# 4b174fc7f8484911b245607384172cae
#: ../../reliability.rst:188
msgid ""
"`https://wikis.oracle.com/display/CommSuite/MySQL+High+Availability+and"
"+Replication+Information+For+Calendar+Server <https://wikis.oracle.com/"
"display/CommSuite/MySQL+High+Availability+and+Replication+Information+For"
"+Calendar+Server>`_"
msgstr ""
"`https://wikis.oracle.com/display/CommSuite/MySQL+High+Availability+and"
"+Replication+Information+For+Calendar+Server <https://wikis.oracle.com/"
"display/CommSuite/MySQL+High+Availability+and+Replication+Information+For"
"+Calendar+Server>`_"

# 4fe437de91df4ffa8fe0925f0acdbfc5
#: ../../reliability.rst:192
msgid "Configuring Database High Availability"
msgstr "Configuration de la haute disponibilité de la base de données"

# f284eab37564471292cd2af70ef18ae5
#: ../../reliability.rst:194
msgid ""
"To control the database high availability behavior, use the following "
"configuration settings in the file /etc/cloudstack/management/db.properties."
msgstr ""
"Pour contrôler le comportement de la haute disponibilité de la base de "
"données, utilisez les options de configuration suivantes dans le fichier /"
"etc/cloudstack/management/db.properties."

# f79c8f4273854ceb83977ca0474e9594
#: ../../reliability.rst:198
msgid "**Required Settings**"
msgstr "**Configuration Requise**"

# 239ea1c4ea2a4c428cbfdd0ae1d3c2a3
#: ../../reliability.rst:200
msgid "Be sure you have set the following in db.properties:"
msgstr ""
"Assurez vous d'avoir configurer ce qui suit dans le fichier db.properties :"

# e03d864abdca47daa90be6c6c5eccecc
#: ../../reliability.rst:202
msgid ""
"``db.ha.enabled``: set to true if you want to use the replication feature."
msgstr ""
"``db.ha.enabled``: mettre à true si vous voulez utiliser la fonctionnalité "
"de réplication."

# affe10ff738642c4b25a6cbfc26c498e
#: ../../reliability.rst:205
msgid "Example: ``db.ha.enabled=true``"
msgstr "Exemple : ``db.ha.enabled=true``"

# 147ac9efb2314312b6e97323a267fd7c
#: ../../reliability.rst:207
msgid ""
"``db.cloud.slaves``: set to a comma-delimited set of slave hosts for the "
"cloud database. This is the list of nodes set up with replication. The "
"master node is not in the list, since it is already mentioned elsewhere in "
"the properties file."
msgstr ""
"``db.cloud.slaves``: saisir une liste de machines esclaves séparées par une "
"virgule pour la base de données du cloud. Il s'agit de la liste des noeuds "
"à configurer pour la réplication. Le noeud maître n'est pas dans la liste "
"puisqu'il est déjà mentionné ailleurs dans le fichier de propriétés."

# aa38f185ca8b4c1b86e19da970eb3901
#: ../../reliability.rst:212
msgid "Example: ``db.cloud.slaves=node2,node3,node4``"
msgstr "Exemple : ``db.cloud.slaves=node2,node3,node4``"

# 1783ef0808884e28ab22f6b3172dba41
#: ../../reliability.rst:214
msgid ""
"``db.usage.slaves``: set to a comma-delimited set of slave hosts for the "
"usage database. This is the list of nodes set up with replication. The "
"master node is not in the list, since it is already mentioned elsewhere in "
"the properties file."
msgstr ""
"``db.usage.slaves``:  saisir une liste de machines esclaves séparées par "
"une virgule pour la base de données usage. Il s'agit de la liste des noeuds "
"à configurer pour la réplication. Le noeud maître n'est pas dans la liste "
"puisqu'il est déjà mentionné ailleurs dans le fichier de propriétés."

# 573fb04445dd4b0ba4f5b9a5f8517c75
#: ../../reliability.rst:219
msgid "Example: ``db.usage.slaves=node2,node3,node4``"
msgstr "Exemple : ``db.usage.slaves=node2,node3,node4``"

# 739f9df2617d4e24aaa9adb209c65969
#: ../../reliability.rst:221
msgid "**Optional Settings**"
msgstr "**Paramètres optionnels**"

# 21e38ceba8e84d3f8b520026cae7d1b7
#: ../../reliability.rst:223
msgid ""
"The following settings must be present in db.properties, but you are not "
"required to change the default values unless you wish to do so for tuning "
"purposes:"
msgstr ""
"Les paramètres suivant doivent être présent dans db.properties, mais vous "
"n'avez pas besoin de changer les valeurs par défaut sauf si vous voulez le "
"faire à des fins de mise au point :"

# bcfa8dcb331c4185bab0cbdfbb3624ca
#: ../../reliability.rst:227
msgid ""
"``db.cloud.secondsBeforeRetryMaster``: The number of seconds the MySQL "
"connector should wait before trying again to connect to the master after "
"the master went down. Default is 1 hour. The retry might happen sooner if "
"db.cloud.queriesBeforeRetryMaster is reached first."
msgstr ""
"``db.cloud.secondsBeforeRetryMaster``: Le nombre de secondes que le "
"connecteur MySQL doit attendre avant d'essayer à nouveau de se connecter au "
"maître après qu'il soit tombé. La valeur par défaut est 1 heure. Le nouvel "
"essais peut arriver plus tôt si db.cloud.queriesBeforeRetryMaster est "
"atteint en premier."

# 55d7217f8ea6408e8389bd39dbbfc3fc
#: ../../reliability.rst:232
msgid "Example: ``db.cloud.secondsBeforeRetryMaster=3600``"
msgstr "Exemple : ``db.cloud.secondsBeforeRetryMaster=3600``"

# d8cfb3b10706434d8ad7c63b231e7ee9
#: ../../reliability.rst:234
msgid ""
"``db.cloud.queriesBeforeRetryMaster``: The minimum number of queries to be "
"sent to the database before trying again to connect to the master after the "
"master went down. Default is 5000. The retry might happen sooner if db."
"cloud.secondsBeforeRetryMaster is reached first."
msgstr ""
"``db.cloud.queriesBeforeRetryMaster``: Le nombre minimum de requêtes à "
"envoyer à la base de données avant de réessayer de se connecter au maître "
"après qu'il soit tombé. La valeur par défaut est 5000. Le nouvel essais "
"peut arriver plus tôt si db.cloud.secondsBeforeRetryMaster est atteint en "
"premier."

# f7b672a867c64854accef70177a0dd73
#: ../../reliability.rst:239
msgid "Example: ``db.cloud.queriesBeforeRetryMaster=5000``"
msgstr "Exemple: ``db.cloud.queriesBeforeRetryMaster=5000``"

# 2283aca3081443c585804a3c9d63a45d
#: ../../reliability.rst:241
msgid ""
"``db.cloud.initialTimeout``: Initial time the MySQL connector should wait "
"before trying again to connect to the master. Default is 3600."
msgstr ""
"``db.cloud.initialTimeout``: Temps initial que le connecteur MySQL doit "
"attendre avant de réessayer de se connecter au maître. La valeur par défaut "
"est 3600."

# bae95908743e448b967b6992b4e88816
#: ../../reliability.rst:244
msgid "Example: ``db.cloud.initialTimeout=3600``"
msgstr "Exemple: ``db.cloud.initialTimeout=3600``"

# 6b17824c97504228abd0de9726eb598e
#: ../../reliability.rst:248
msgid "Limitations on Database High Availability"
msgstr "Limitations de la Haute Disponibilité de la Base de Données"

# 5df2f93aff944e03bd3c9f9e21c95cb6
#: ../../reliability.rst:250
msgid ""
"The following limitations exist in the current implementation of this "
"feature."
msgstr ""
"Les limitations suivantes existent dans l'implémentation courante de cette "
"fonctionnalité."

# 7c4a38ab45c943a489f2e7ae8f3ab0e2
#: ../../reliability.rst:253
msgid ""
"Slave hosts can not be monitored through CloudStack. You will need to have "
"a separate means of monitoring."
msgstr ""
"Les hôtes esclaves ne peuvent pas être surveillés via CloudStack. Vous "
"devrez avoir un moyen de supervision séparé."

# 5270e63b8008415bbe847a54002660bc
#: ../../reliability.rst:256
msgid ""
"Events from the database side are not integrated with the CloudStack "
"Management Server events system."
msgstr ""
"Les évènements du point de vue base de données ne sont pas intégrés avec le "
"système d'évènements du serveur de gestion de CloudStack."

# 1bef8f38060a49e7ba30b234ad377f32
#: ../../reliability.rst:259
msgid ""
"You must periodically perform manual clean-up of bin log files generated by "
"replication on database nodes. If you do not clean up the log files, the "
"disk can become full."
msgstr ""
"Vous devez périodiquement effectuer un nettoyage des fichiers de log "
"binaires générés par la réplication sur les noeuds de base de données. Si "
"vous ne nettoyez pas les fichiers de journaux, le disque peut se remplir "
"complètement."
