Merge pull request #46 from lmrv/release/images

Adding some french images
diff --git a/source/_static/images/vpn/ubuntu1.png b/source/_static/images/vpn/ubuntu1.png
new file mode 100644
index 0000000..77cc2d3
--- /dev/null
+++ b/source/_static/images/vpn/ubuntu1.png
Binary files differ
diff --git a/source/_static/images/vpn/ubuntu2.png b/source/_static/images/vpn/ubuntu2.png
new file mode 100644
index 0000000..cac5efd
--- /dev/null
+++ b/source/_static/images/vpn/ubuntu2.png
Binary files differ
diff --git a/source/_static/images/vpn/ubuntu3.png b/source/_static/images/vpn/ubuntu3.png
new file mode 100644
index 0000000..79135e7
--- /dev/null
+++ b/source/_static/images/vpn/ubuntu3.png
Binary files differ
diff --git a/source/_static/images/vpn/ubuntu4.png b/source/_static/images/vpn/ubuntu4.png
new file mode 100644
index 0000000..f7da0ee
--- /dev/null
+++ b/source/_static/images/vpn/ubuntu4.png
Binary files differ
diff --git a/source/_static/images/vpn/ubuntu5.png b/source/_static/images/vpn/ubuntu5.png
new file mode 100644
index 0000000..c8ed265
--- /dev/null
+++ b/source/_static/images/vpn/ubuntu5.png
Binary files differ
diff --git a/source/accounts.rst b/source/accounts.rst
index 50725bc..4f41647 100644
--- a/source/accounts.rst
+++ b/source/accounts.rst
@@ -132,11 +132,15 @@
 The dynamic-roles feature is enabled by default only for all new CloudStack
 installations since version `4.9.x <https://cwiki.apache.org/confluence/display/CLOUDSTACK/Dynamic+Role+Based+API+Access+Checker+for+CloudStack>`_.
 
-After an upgrade, existing deployments can be migrated to use this feature by
-running a migration tool by the CloudStack admin. The migration tool is located
-at ``/usr/share/cloudstack-common/scripts/util/migrate-dynamicroles.py``.
+In 4.11.x and above, existing deployment without any commands.properties file
+will be automatically migrated to dynamic roles. Admins may also enable dynamic
+roles by setting the global setting 'dynamic.apichecker.enabled' to true.
 
-During migration, this tool enables an internal flag in the database,
+After an upgrade, admins can also use this migration tool to migrate old rules
+from commands.properties file(s):
+``/usr/share/cloudstack-common/scripts/util/migrate-dynamicroles.py``.
+
+During migration, this tool enables the global setting in the database and
 copies existing static role-based rules from provided commands.properties file
 (typically at ``/etc/cloudstack/management/commands.properties``) to the database
 and renames the commands.properties file (typically to
@@ -159,17 +163,21 @@
     Host or IP of the MySQL server, default: 3306
 -f FILE
     The commands.properties file, default: /etc/cloudstack/management/commands.properties
+-D
+    Use the default role-rule permissions, and only enable dynamic roles
 -d
     Dry run and debug operations this tool will perform
 
 
-Example:
+Examples:
 
 sudo python /usr/share/cloudstack-common/scripts/util/migrate-dynamicroles.py -u cloud -p cloud -h localhost -p 3006 -f /etc/cloudstack/management/commands.properties
 
+sudo python /usr/share/cloudstack-common/scripts/util/migrate-dynamicroles.py -u cloud -p cloud -h localhost -p 3006 -D
+
 If you've multiple management servers, remove or rename the commands.properties
-file on all management servers typically in /etc/cloudstack/management path,
-after running the migration tool for the first management server
+file on the management servers typically in /etc/cloudstack/management path,
+after running the migration tool for the first management server.
 
 
 Dedicating Resources to Accounts and Domains
diff --git a/source/conf.py b/source/conf.py
index 368a6b5..9a3173d 100644
--- a/source/conf.py
+++ b/source/conf.py
@@ -60,9 +60,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '4.8'
+version = '4.11'
 # The full version, including alpha/beta/rc tags.
-release = '4.8.0'
+release = '4.11.0.0'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/source/hosts.rst b/source/hosts.rst
index d9970da..4ea93ee 100644
--- a/source/hosts.rst
+++ b/source/hosts.rst
@@ -588,7 +588,7 @@
 
 
 Out-of-band Management
-~~~~~~~~~~~~~~~~~~~~~~
+----------------------
 
 CloudStack provides Root admins the ability to configure and use supported
 out-of-band management interface (e.g. IPMI, iLO, DRAC, etc.) on a physical
@@ -608,15 +608,14 @@
 outofbandmanagement.ipmitool.interface    lanplus                         The out of band management IpmiTool driver interface to use. Valid values are: lan, lanplus etc
 outofbandmanagement.ipmitool.path         /usr/bin/ipmitool               The out of band management ipmitool path used by the IpmiTool driver
 outofbandmanagement.ipmitool.retries      1                               The out of band management IpmiTool driver retries option -R
-outofbandmanagement.sync.interval         300                             The out of band management background sync thread interval in seconds
 outofbandmanagement.sync.poolsize         50                              The out of band management background sync thread pool size 50
 =======================================   =============================   ====================================================================================================
 
-A change in `outofbandmanagement.sync.interval` or `outofbandmanagement.sync.poolsize`
-settings requires restarting of management server(s) as the thread pool and a
-background (power state) sync thread are configured during load time when
-CloudStack management server starts. Rest of the global settings can be changed
-without requiring restarting of management server(s).
+A change in `outofbandmanagement.sync.poolsize` settings requires restarting of
+management server(s) as the thread pool and a background (power state) sync
+thread are configured during load time when CloudStack management server starts.
+Rest of the global settings can be changed without requiring restarting of
+management server(s).
 
 The `outofbandmanagement.sync.poolsize` is the maximum number of ipmitool
 background power state scanners that can run at a time. Based on the maximum
@@ -637,3 +636,107 @@
 
 If a host is in maintenance mode, Root admins are still allowed to perform
 power management actions but in the UI a warning is displayed.
+
+Security
+========
+
+Starting 4.11, CloudStack has an inbuilt certicate authority (CA) framework and
+a default 'root' CA provider which acts as a self-signed CA. The CA framework
+participates in certificate issuance, renewal, revocation, and propagation of
+certificates during setup of a host. This framework is primary used to
+secure communications between CloudStack management server(s), the
+KVM/LXC/SSVM/CPVM agent(s) and peer management server(s).
+
+Following are some global settings that control various aspects of this feature.
+
+.. cssclass:: table-striped table-bordered table-hover
+
+=======================================   ====================================================================
+Global setting                            Description
+=======================================   ====================================================================
+ca.framework.provider.plugin              The configured CA provider plugin
+ca.framework.cert.keysize                 The key size used for certificate generation
+ca.framework.cert.signature.algorithm     The certificate signature algorithm
+ca.framework.cert.validity.period         Certificate validity in days
+ca.framework.cert.automatic.renewal       Whether to auto-renew expiring certificate on hosts
+ca.framework.background.task.delay        The delay between each CA background task round in seconds
+ca.framework.cert.expiry.alert.period     The number of days to check and alert expiring certificates
+ca.plugin.root.private.key                (hidden/encrypted in database) Auto-generated CA private key
+ca.plugin.root.public.key                 (hidden/encrypted in database) CA public key
+ca.plugin.root.ca.certificate             (hidden/encrypted in database) CA certificate
+ca.plugin.root.issuer.dn                  The CA issue distinguished name used by the root CA provider
+ca.plugin.root.auth.strictness            Setting to enforce two-way SSL authentication and trust validation
+ca.plugin.root.allow.expired.cert         Setting to allow clients with expired certificates
+=======================================   ====================================================================
+
+A change in `ca.framework.background.task.delay` settings requires restarting of
+management server(s) as the thread pool and a background tasks are configured
+only when CloudStack management server(s) start.
+
+After upgrade to CloudStack 4.11+, the CA framework will by default use the
+`root` CA provider. This CA provider will auto-generate its private/public keys
+and CA certificate on first boot post-upgrade. For freshly installed
+environments, the `ca.plugin.root.auth.strictness` setting will be `true` to
+enforce two-way SSL authentication and trust validation between client and
+server components, however, it will be `false` on upgraded environments to
+be backward compatible with legacy behaviour of trusting all clients and
+servers, and one-way SSL authentication. Upgraded/existing environments can
+use the `provisionCertificate` API to renew/setup certificates for already
+connected agents/hosts, and once all the agents/hosts are secured they may
+enforce authentication and validation strictness by setting
+`ca.plugin.root.auth.strictness` to `true` and restarting the management
+server(s).
+
+Server Address Usage
+--------------------
+
+Historically, when multiple management servers are used a tcp-LB is used on
+port 8250 (default) of the management servers and the VIP/LB-IP is used as the
+`host` setting to be used by various CloudStack agents such as the KVM, CPVM,
+SSVM agents, who connect to the `host` on port 8250. However, starting
+CloudStack 4.11+ the `host` setting can accept comma separated list of
+management server IPs to which new CloudStack hosts/agents will get a shuffled
+list of the same to which they can cycle reconnections in a round-robin way.
+
+Securing Process
+----------------
+
+Agents while making connections/reconnections to management server will only
+validate server certificate and be able to present client certificate (issued to
+them) when `cloud.jks` is accessible to them. On older hosts that are setup
+prior to this feature the keystore won't be available, however, they can still
+connect to management server(s) if `ca.plugin.root.auth.strictness` is set to
+`false`. Management server(s) will check and setup their own `cloud.jks`
+keystore on startup, this keystore will be used for connecting to peer
+management server(s).
+
+When a new host is being setup, such as adding a KVM host or starting a systemvm
+host, the CA framework kicks in and uses ssh to execute `keystore-setup` to
+generate a new keystore file `cloud.jks.new`, save a random passphrase of the
+keystore in the agent's properties file and a CSR `cloud.csr` file. The CSR is
+then used to issue certificate for that agent/host and ssh is used to execute
+`keystore-cert-import` to import the issued certificate along with the CA
+certificate(s), the keystore is that renamed as `cloud.jks` replacing an
+previous keystore in-use. During this process, keys and certificates files are
+also stored in `cloud.key`, `cloud.crt`, `cloud.ca.crt` in the
+agent's configuration directory.
+
+When hosts are added out-of-band, for example a KVM host that is setup first
+outside of CloudStack and added to a cluster, the keystore file will not be
+available however the keystore and security could be setup by using keystore
+utility scripts manually. The `keystore-setup` can be ran first to generate a
+keystore and a CSR, then CloudStack CA can be used to issue certificate by
+providing the CSR to the `issueCertificate` API, and finally issued certificate
+and CA certificate(s) can be imported to the keystore using `keystore-cert-import`
+script.
+
+Following lists the usage of these scripts, when using these script use full
+paths, use the final keystore filename as `cloud.jks`, and the certificate/key
+content need to be encoded and provided such that newlines are replace with `^`
+and space are replaced with `~`:
+
+   .. code:: bash
+
+   keystore-setup <properties file> <keystore file> <passphrase> <validity> <csr file>
+
+   keystore-cert-import <properties file> <keystore file> <mode: ssh|agent> <cert file> <cert content> <ca-cert file> <ca-cert content> <private-key file> <private key content:optional>
diff --git a/source/locale/fr/LC_MESSAGES/networking/public_ips_and_vlans_for_accounts.po b/source/locale/fr/LC_MESSAGES/networking/public_ips_and_vlans_for_accounts.po
index b9e0784..4eb8e76 100644
--- a/source/locale/fr/LC_MESSAGES/networking/public_ips_and_vlans_for_accounts.po
+++ b/source/locale/fr/LC_MESSAGES/networking/public_ips_and_vlans_for_accounts.po
@@ -21,21 +21,30 @@
 "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-03-21 22:55+0100\n"
+<<<<<<< HEAD
+"PO-Revision-Date: 2017-07-19 11:56+0200\n"
+=======
+"PO-Revision-Date: 2017-08-07 21:45+0200\n"
+>>>>>>> 2413ecb688e4947d38e67620eb886be3bdeed09a
 "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"
+"Last-Translator: Antoine Le Morvan <antoine@le-morvan.com>\n"
 "Language: fr\n"
+<<<<<<< HEAD
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "Last-Translator: \n"
-"X-Generator: Poedit 1.8.11\n"
+"X-Generator: Poedit 2.0.2\n"
+=======
+"X-Generator: Poedit 2.0.3\n"
+>>>>>>> 2413ecb688e4947d38e67620eb886be3bdeed09a
 
 # e16ce84ab27a470389c600bd7f1937e6
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:18
 msgid "Reserving Public IP Addresses and VLANs for Accounts"
-msgstr ""
+msgstr "Réserver des adresses IP publiques et des VLAN pour des comptes"
 
 # d20bf40a65964aee8e9477cfb99a8d76
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:20
@@ -46,6 +55,12 @@
 "feature extends the functionality to enable you to dedicate a fixed set of "
 "VLANs and guest IP addresses for a tenant."
 msgstr ""
+"Cloudstack vous offre la possibilité de réserver un ensemble d'adresses IP "
+"publique et de VLAN exclusives à un compte. Durant la création de la zone, "
+"vous pouvez continuer à définir un ensemble de VLANs et plusieurs "
+"intervalles d'adresses IP publiques. Cette fonctionnalité étend la "
+"possibilité que vous avez de dédier un ensemble fixe de VLAN et d'adresses "
+"IP invitées pour un client."
 
 # e0cd381debc1495fa88b0bed963e8b16
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:26
@@ -59,11 +74,20 @@
 "dedicated resources and these dedicated resources have all been consumed. "
 "Both these configurations are configurable at the account level."
 msgstr ""
+"Notez que si un compte a utilisé tous les VLANs et les adresses IP qui lui "
+"sont dédiés, le compte pourra obtenir deux ressources supplémentaires du "
+"système. CloudStack fourni à l'administrateur racine 2 paramètres de "
+"configuration pour modifier ce comportement par défaut : use.system.public."
+"ips et use.system.guest.vlans. Ces paramètres globaux permettent à "
+"l'administrateur root de refuser qu'un compte puisse acquérir des IP "
+"publiques et des VLAN invités depuis le système si ce compte dispose de "
+"ressources dédiées et si ces ressources dédiées ont toutes été utilisées.  "
+"Ces deux configurations sont configurables au niveau du compte."
 
 # baef2538501f4f729cd5b4f69fbbefaa
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:36
 msgid "This feature provides you the following capabilities:"
-msgstr ""
+msgstr "Cette fonctionnalité vous offre les possibilités suivantes :"
 
 # 4e16f6283a6e4f389b44d3af88cc4364
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:38
@@ -71,16 +95,19 @@
 "Reserve a VLAN range and public IP address range from an Advanced zone and "
 "assign it to an account"
 msgstr ""
+"Réserver un intervalle de VLAN et un intervalle d'adresses IP publiques "
+"depuis une zone Avancée et les assigner à un compte"
 
 # c67672fcea6c4ae69a5c3c7d8fbd6a33
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:41
 msgid "Disassociate a VLAN and public IP address range from an account"
 msgstr ""
+"Dissocier un VLAN et un intervalle d'adresses IP publiques d'un compte"
 
 # 8451f0b840ab420cb1589fcc1572e6c0
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:43
 msgid "View the number of public IP addresses allocated to an account"
-msgstr ""
+msgstr "Voir le nombre d'adresses IP publiques allouées à un compte"
 
 # 2a183b234d9c44b8b99fa31594f06e38
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:45
@@ -88,11 +115,13 @@
 "Check whether the required range is available and is conforms to account "
 "limits."
 msgstr ""
+"Vérifier si à la fois l'intervalle requis est disponible et si il est "
+"conforme aux limites du compte."
 
 # be8cff382a7748e4a75c68c3f8aa3dd7
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:48
 msgid "The maximum IPs per account limit cannot be superseded."
-msgstr ""
+msgstr "La limite maximale d'IP par compte ne peux pas être dépassée."
 
 # 17f5e888607c4537816aa2f2e8b7c363
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:52
@@ -148,6 +177,8 @@
 "You can either assign an existing IP range to an account, or create a new "
 "IP range and assign to an account."
 msgstr ""
+"Vous pouvez soit assigner un intervalle d'IP existant à un compte ou créer "
+"un nouvel interval d'IP et l'assigner à un compte."
 
 # 90bc5a3040c541cb95831323867cee7d
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:71
@@ -187,6 +218,8 @@
 msgid ""
 "**Account**: The account to which you want to assign the IP address range."
 msgstr ""
+"**Compte** : Le compte auquel vous voulez assigner l'intervalle d'adresses "
+"IP."
 
 # d15ca620e8154bf9ad213a256496e6e0
 # 09ac68b8a6f24e84b36a726d6058809b
@@ -195,14 +228,14 @@
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:112
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:150
 msgid "**Domain**: The domain associated with the account."
-msgstr ""
+msgstr "**Domaine** : Le domaine associé au compte."
 
 # 06d6686b378e4a22a762e94353aee862
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:86
 msgid "To create a new IP range and assign an account, perform the following:"
 msgstr ""
-"Pour créer un nouvel intervalle et l'assigner à un compte, effectuer les "
-"actions suivantes :"
+"Pour créer un nouvel intervalle d'adresses IP et l'assigner à un compte, "
+"effectuer les actions suivantes :"
 
 # dd52a8808d1b44e7ba133f213439d71d
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:91
@@ -249,6 +282,8 @@
 msgid ""
 "**Account**: The account to which you want to assign an IP address range."
 msgstr ""
+"**Compte** : Le compte auquel vous voulez assigner l'intervalle d'adresses "
+"IP."
 
 # e54b45158ec1469392091a64574cbb55
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:115
@@ -271,6 +306,8 @@
 "After the CloudStack Management Server is installed, log in to the "
 "CloudStack UI as administrator."
 msgstr ""
+"Après que le serveur de gestion de CloudStack soit installé, se connecter à "
+"l'interface UI en tant qu'administrateur."
 
 # 68317dc975da4182878b75c19ec73b1e
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:134
@@ -280,22 +317,24 @@
 # de0ffdc9f48d4d068a50a53f85c49cea
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:136
 msgid "Select the Dedicated VLAN Ranges tab."
-msgstr ""
+msgstr "Sélectionner l'onglet Intervalles de VLAN Dédiés."
 
 # d7319cdb148746849dba29b0a020ce01
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:138
 msgid "Click Dedicate VLAN Range."
-msgstr "Cliquer sur Dédier un intervalle de VLAN"
+msgstr "Cliquer sur Dédier un intervalle de VLAN."
 
 # 6037b47944d9429aad5df0dd7981dace
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:140
 msgid "The Dedicate VLAN Range dialog is displayed."
-msgstr ""
+msgstr "La boîte de dialogue Intervalle de VLAN Dédiés est affichée."
 
 # 564cf1e324b54969924910efd7c3f00b
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:144
 msgid "**VLAN Range**: The VLAN range that you want to assign to an account."
 msgstr ""
+"**Intervalle de VLAN** : L'intervalle de VLAN que vous voulez assigner à un "
+"compte."
 
 # b2c4b566d49c4a3b99b3268f4e867233
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:147
@@ -303,3 +342,5 @@
 "**Account**: The account to which you want to assign the selected VLAN "
 "range."
 msgstr ""
+"**Compte** : Le compte auquel vous voulez assigner l'intervalle d'adresses "
+"IP."
diff --git a/source/locale/fr/LC_MESSAGES/networking2.po b/source/locale/fr/LC_MESSAGES/networking2.po
index c5bb143..c701e5b 100644
--- a/source/locale/fr/LC_MESSAGES/networking2.po
+++ b/source/locale/fr/LC_MESSAGES/networking2.po
@@ -20,15 +20,15 @@
 "Project-Id-Version: Apache CloudStack Administration Documentation 4\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-03-31 14:08-0400\n"
-"PO-Revision-Date: 2017-03-22 22:16+0100\n"
+"PO-Revision-Date: 2017-08-07 21:45+0200\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 2.3.4\n"
-"Last-Translator: \n"
+"Last-Translator: Antoine Le Morvan <antoine@le-morvan.com>\n"
 "Language-Team: \n"
 "Language: fr\n"
-"X-Generator: Poedit 1.8.11\n"
+"X-Generator: Poedit 2.0.3\n"
 
 # 4c134b7a710148a3ab2766ead2eecc37
 #: ../../networking2.rst:18
@@ -1401,7 +1401,7 @@
 # 06aed4f105fd47d283331f291310c288
 #: ../../networking2.rst:716
 msgid "Reserving Public IP Addresses and VLANs for Accounts"
-msgstr ""
+msgstr "Réserver des adresses IP publiques et des VLAN pour des comptes"
 
 # d29491316baf475184dbf3bd53bb19c3
 #: ../../networking2.rst:718
@@ -1412,6 +1412,11 @@
 "functionality to enable you to dedicate a fixed set of VLANs and guest IP "
 "addresses for a tenant."
 msgstr ""
+"Cloudstack vous offre la possibilité de réserver un ensemble d'adresses IP "
+"publique et de VLAN exclusives à un compte. Durant la création de la zone, vous "
+"pouvez continuer à définir un ensemble de VLANs et plusieurs intervalles "
+"d'adresses IP publiques. Cette fonctionnalité étend la possibilité que vous avez "
+"de dédier un ensemble fixe de VLAN et d'adresses IP invitées pour un client."
 
 # 68a3748797434d67bcbfc405a263a065
 #: ../../networking2.rst:724
@@ -1425,11 +1430,20 @@
 "have all been consumed. Both these configurations are configurable at the "
 "account level."
 msgstr ""
+"Notez que si un compte a utilisé tous les VLANs et les adresses IP qui lui sont "
+"dédiés, le compte pourra obtenir deux ressources supplémentaires du système. "
+"CloudStack fourni à l'administrateur racine 2 paramètres de configuration pour "
+"modifier ce comportement par défaut : use.system.public.ips et use.system.guest."
+"vlans. Ces paramètres globaux permettent à l'administrateur root de refuser "
+"qu'un compte puisse acquérir des IP publiques et des VLAN invités depuis le "
+"système si ce compte dispose de ressources dédiées et si ces ressources dédiées "
+"ont toutes été utilisées.  Ces deux configurations sont configurables au niveau "
+"du compte."
 
 # 40f4120539264e8fb5dbf5a7064d1fe9
 #: ../../networking2.rst:734
 msgid "This feature provides you the following capabilities:"
-msgstr ""
+msgstr "Cette fonctionnalité vous offre les possibilités suivantes :"
 
 # 9bf2889fc36847ebabce3e8f9b625163
 #: ../../networking2.rst:738
@@ -1437,27 +1451,31 @@
 "Reserve a VLAN range and public IP address range from an Advanced zone and "
 "assign it to an account"
 msgstr ""
+"Réserver un intervalle de VLAN et un intervalle d'adresses IP publiques depuis "
+"une zone Avancée et les assigner à un compte"
 
 # e1e3b63901214e39b4cd5ded0ff47ab6
 #: ../../networking2.rst:743
 msgid "Disassociate a VLAN and public IP address range from an account"
-msgstr ""
+msgstr "Dissocier un VLAN et un intervalle d'adresses IP publiques d'un compte"
 
 # a849c48967014ee4ab4c29e6250ac9bc
 #: ../../networking2.rst:747
 msgid "View the number of public IP addresses allocated to an account"
-msgstr ""
+msgstr "Voir le nombre d'adresses IP publiques allouées à un compte"
 
 # 4c148c9f929f4394861c0230a52f46ea
 #: ../../networking2.rst:751
 msgid ""
 "Check whether the required range is available and is conforms to account limits."
 msgstr ""
+"Vérifier si à la fois l'intervalle requis est disponible et si il est conforme "
+"aux limites du compte."
 
 # b03cc0c4939e4538b33463b1acfa081f
 #: ../../networking2.rst:754
 msgid "The maximum IPs per account limit cannot be superseded."
-msgstr ""
+msgstr "La limite maximale d'IP par compte ne peux pas être dépassée."
 
 # 331f9e80ff07451f833ea2f1e6592f48
 #: ../../networking2.rst:757
@@ -1500,6 +1518,8 @@
 "You can either assign an existing IP range to an account, or create a new IP "
 "range and assign to an account."
 msgstr ""
+"Vous pouvez soit assigner un intervalle d'IP existant à un compte ou créer un "
+"nouvel interval d'IP et l'assigner à un compte."
 
 # 89865009ad614a7caefc9d7e195d1f2c
 #: ../../networking2.rst:792
@@ -1527,18 +1547,19 @@
 #: ../../networking2.rst:810
 msgid "**Account**: The account to which you want to assign the IP address range."
 msgstr ""
+"**Compte** : Le compte auquel vous voulez assigner l'intervalle d'adresses IP."
 
 # d765ebdf04b540e9bb49f050bc9d5d1c
 #: ../../networking2.rst:815
 msgid "**Domain**: The domain associated with the account."
-msgstr ""
+msgstr "**Domaine** : Le domaine associé au compte."
 
 # 68e22a0328b543599b5c092cb1be55c8
 #: ../../networking2.rst:817
 msgid "To create a new IP range and assign an account, perform the following:"
 msgstr ""
-"Pour créer un nouvel intervalle et l'assigner à un compte, effectuer les actions "
-"suivantes :"
+"Pour créer un nouvel intervalle d'adresses IP et l'assigner à un compte, "
+"effectuer les actions suivantes :"
 
 # a7351c3fc8aa4e6ab6f6de9982df895a
 #: ../../networking2.rst:826
@@ -1585,12 +1606,13 @@
 msgid ""
 "****Account****: The account to which you want to assign an IP address range."
 msgstr ""
+"**Compte** : Le compte auquel vous voulez assigner l'intervalle d'adresses IP."
 
 # 24326080425a4f7ba299c24defa8ee63
 # 3360555202854da8a230941d49441cb7
 #: ../../networking2.rst:865 ../../networking2.rst:930
 msgid "****Domain****: The domain associated with the account."
-msgstr ""
+msgstr "**Domaine** : Le domaine associé au compte."
 
 # 57dd5ad50af947868ed60fb4f4871b8e
 # fd71c947508a4b19a74d5e8e68ab028a
@@ -1616,6 +1638,8 @@
 "After the CloudStack Management Server is installed, log in to the CloudStack UI "
 "as administrator."
 msgstr ""
+"Après que le serveur de gestion de CloudStack soit installé, se connecter à "
+"l'interface UI en tant qu'administrateur."
 
 # f8bb5c0c781349a6ad62cac445eb11cc
 # eab05b15433e427aa1bb42cc204ab3e9
@@ -1626,33 +1650,36 @@
 # 61505cd3d4344e769a534aed469c073d
 #: ../../networking2.rst:906
 msgid "Select the Dedicated VLAN Ranges tab."
-msgstr ""
+msgstr "Sélectionner l'onglet Intervalles de VLAN Dédiés."
 
 # 1df8c107f4854732a4f8a3a50c9cec49
 #: ../../networking2.rst:910
 msgid "Click Dedicate VLAN Range."
-msgstr "Cliquer sur Dédier un intervalle de VLAN"
+msgstr "Cliquer sur Dédier un intervalle de VLAN."
 
 # c02ef1fcb0e642a28e69bd463286ec33
 #: ../../networking2.rst:912
 msgid "The Dedicate VLAN Range dialog is displayed."
-msgstr ""
+msgstr "La boîte de dialogue Intervalle de VLAN Dédiés est affichée."
 
 # acd323fd8ca8468880666db446b5d222
 #: ../../networking2.rst:920
 msgid "****VLAN Range****: The VLAN range that you want to assign to an account."
 msgstr ""
+"**Intervalle de VLAN** : L'intervalle de VLAN que vous voulez assigner à un "
+"compte."
 
 # 1a79b0742f1a4aefa692f541aa4b5892
 #: ../../networking2.rst:925
 msgid ""
 "****Account****: The account to which you want to assign the selected VLAN range."
 msgstr ""
+"**Compte** : Le compte auquel vous voulez assigner l'intervalle d'adresses IP."
 
 # fe1be017fe7644368cd98ae4c68575eb
 #: ../../networking2.rst:933
 msgid "Configuring Multiple IP Addresses on a Single NIC"
-msgstr "Configurer plusieurs adresses IP sur une seule interface réseau."
+msgstr "Configurer plusieurs adresses IP sur une seule interface réseau"
 
 # c38d77c3c3a04ece8ca7568348264c1c
 #: ../../networking2.rst:935
diff --git a/source/locale/fr/LC_MESSAGES/networking_and_traffic.po b/source/locale/fr/LC_MESSAGES/networking_and_traffic.po
index b9a8070..467631a 100644
--- a/source/locale/fr/LC_MESSAGES/networking_and_traffic.po
+++ b/source/locale/fr/LC_MESSAGES/networking_and_traffic.po
@@ -21,16 +21,15 @@
 "Project-Id-Version: Apache CloudStack Administration RTD\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-08-22 13:55+0200\n"
-"PO-Revision-Date: 2017-03-21 22:35+0100\n"
+"PO-Revision-Date: 2017-08-07 21:46+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"
-"Generated-By: Babel 2.3.4\n"
-"Last-Translator: \n"
+"Last-Translator: Antoine Le Morvan <antoine@le-morvan.com>\n"
 "Language: fr\n"
-"X-Generator: Poedit 1.8.11\n"
+"X-Generator: Poedit 2.0.3\n"
 
 #: ../../networking_and_traffic.rst:18
 msgid "Managing Networks and Traffic"
@@ -934,7 +933,7 @@
 
 #: ../../networking/ip_reservation_in_guest_networks.rst:18
 msgid "IP Reservation in Isolated Guest Networks"
-msgstr "La réservation d'IP dans les réseaux isolés invité."
+msgstr "La réservation d'IP dans les réseaux isolés invité"
 
 #: ../../networking/ip_reservation_in_guest_networks.rst:20
 msgid ""
@@ -1201,7 +1200,7 @@
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:18
 msgid "Reserving Public IP Addresses and VLANs for Accounts"
-msgstr ""
+msgstr "Réserver des adresses IP publiques et des VLAN pour des comptes"
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:20
 msgid ""
@@ -1211,6 +1210,11 @@
 "functionality to enable you to dedicate a fixed set of VLANs and guest IP "
 "addresses for a tenant."
 msgstr ""
+"Cloudstack vous offre la possibilité de réserver un ensemble d'adresses IP "
+"publique et de VLAN exclusives à un compte. Durant la création de la zone, vous "
+"pouvez continuer à définir un ensemble de VLANs et plusieurs intervalles "
+"d'adresses IP publiques. Cette fonctionnalité étend la possibilité que vous avez "
+"de dédier un ensemble fixe de VLAN et d'adresses IP invitées pour un client."
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:26
 msgid ""
@@ -1223,33 +1227,46 @@
 "have all been consumed. Both these configurations are configurable at the "
 "account level."
 msgstr ""
+"Notez que si un compte a utilisé tous les VLANs et les adresses IP qui lui sont "
+"dédiés, le compte pourra obtenir deux ressources supplémentaires du système. "
+"CloudStack fourni à l'administrateur racine 2 paramètres de configuration pour "
+"modifier ce comportement par défaut : use.system.public.ips et use.system.guest."
+"vlans. Ces paramètres globaux permettent à l'administrateur root de refuser "
+"qu'un compte puisse acquérir des IP publiques et des VLAN invités depuis le "
+"système si ce compte dispose de ressources dédiées et si ces ressources dédiées "
+"ont toutes été utilisées.  Ces deux configurations sont configurables au niveau "
+"du compte."
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:36
 msgid "This feature provides you the following capabilities:"
-msgstr ""
+msgstr "Cette fonctionnalité vous offre les possibilités suivantes :"
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:38
 msgid ""
 "Reserve a VLAN range and public IP address range from an Advanced zone and "
 "assign it to an account"
 msgstr ""
+"Réserver un intervalle de VLAN et un intervalle d'adresses IP publiques depuis "
+"une zone Avancée et les assigner à un compte"
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:41
 msgid "Disassociate a VLAN and public IP address range from an account"
-msgstr ""
+msgstr "Dissocier un VLAN et un intervalle d'adresses IP publiques d'un compte"
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:43
 msgid "View the number of public IP addresses allocated to an account"
-msgstr ""
+msgstr "Voir le nombre d'adresses IP publiques allouées à un compte"
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:45
 msgid ""
 "Check whether the required range is available and is conforms to account limits."
 msgstr ""
+"Vérifier si à la fois l'intervalle requis est disponible et si il est conforme "
+"aux limites du compte."
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:48
 msgid "The maximum IPs per account limit cannot be superseded."
-msgstr ""
+msgstr "La limite maximale d'IP par compte ne peux pas être dépassée."
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:52
 msgid "Dedicating IP Address Ranges to an Account"
@@ -1285,6 +1302,8 @@
 "You can either assign an existing IP range to an account, or create a new IP "
 "range and assign to an account."
 msgstr ""
+"Vous pouvez soit assigner un intervalle d'IP existant à un compte ou créer un "
+"nouvel interval d'IP et l'assigner à un compte."
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:71
 msgid "To assign an existing IP range to an account, perform the following:"
@@ -1307,24 +1326,27 @@
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:81
 msgid "**Account**: The account to which you want to assign the IP address range."
 msgstr ""
+"**Compte** : Le compte auquel vous voulez assigner l'intervalle d'adresses IP."
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:84
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:112
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:150
 msgid "**Domain**: The domain associated with the account."
-msgstr ""
+msgstr "**Domaine** : Le domaine associé au compte."
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:86
 msgid "To create a new IP range and assign an account, perform the following:"
 msgstr ""
+"Pour créer un nouvel intervalle d'adresses IP et l'assigner à un compte, "
+"effectuer les actions suivantes :"
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:91
 msgid "**Gateway**"
-msgstr "Passerelle"
+msgstr "**Passerelle**"
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:93
 msgid "**Netmask**"
-msgstr "Masque de sous-réseau"
+msgstr "**Masque de sous-réseau**"
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:95
 msgid "**VLAN**"
@@ -1353,6 +1375,7 @@
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:109
 msgid "**Account**: The account to which you want to assign an IP address range."
 msgstr ""
+"**Compte** : Le compte auquel vous voulez assigner l'intervalle d'adresses IP."
 
 #: ../../networking/ip_forwarding_and_firewalling.rst:88
 #: ../../networking/ip_forwarding_and_firewalling.rst:163
@@ -1373,6 +1396,8 @@
 "After the CloudStack Management Server is installed, log in to the CloudStack UI "
 "as administrator."
 msgstr ""
+"Après que le serveur de gestion de CloudStack soit installé, se connecter à "
+"l'interface UI en tant qu'administrateur."
 
 #: ../../networking/multiple_subnets_in_shared_network.rst:61
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:134
@@ -1381,28 +1406,31 @@
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:136
 msgid "Select the Dedicated VLAN Ranges tab."
-msgstr ""
+msgstr "Sélectionner l'onglet Intervalles de VLAN Dédiés."
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:138
 msgid "Click Dedicate VLAN Range."
-msgstr "Cliquersur Dédié un intervalle de VLAN"
+msgstr "Cliquersur Dédié un intervalle de VLAN."
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:140
 msgid "The Dedicate VLAN Range dialog is displayed."
-msgstr ""
+msgstr "La boîte de dialogue Intervalle de VLAN Dédiés est affichée."
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:144
 msgid "**VLAN Range**: The VLAN range that you want to assign to an account."
 msgstr ""
+"**Intervalle de VLAN** : L'intervalle de VLAN que vous voulez assigner à un "
+"compte."
 
 #: ../../networking/public_ips_and_vlans_for_accounts.rst:147
 msgid ""
 "**Account**: The account to which you want to assign the selected VLAN range."
 msgstr ""
+"**Compte** : Le compte auquel vous voulez assigner l'intervalle d'adresses IP."
 
 #: ../../networking/multiple_ips_on_single_nic.rst:18
 msgid "Configuring Multiple IP Addresses on a Single NIC"
-msgstr "Configurer plusieurs adresses IP sur une seule interface réseau."
+msgstr "Configurer plusieurs adresses IP sur une seule interface réseau"
 
 #: ../../networking/multiple_ips_on_single_nic.rst:20
 msgid ""
@@ -4168,7 +4196,7 @@
 
 #: ../../networking/guest_ip_ranges.rst:18
 msgid "Guest IP Ranges"
-msgstr "Plages IP invités"
+msgstr "Intervalles d'IP invités"
 
 #: ../../networking/guest_ip_ranges.rst:20
 msgid ""
diff --git a/source/locale/fr/LC_MESSAGES/reliability.mo b/source/locale/fr/LC_MESSAGES/reliability.mo
index 9e6a70c..e3e7dad 100644
--- a/source/locale/fr/LC_MESSAGES/reliability.mo
+++ b/source/locale/fr/LC_MESSAGES/reliability.mo
Binary files differ
diff --git a/source/locale/fr/LC_MESSAGES/reliability.po b/source/locale/fr/LC_MESSAGES/reliability.po
index 0054876..da9e271 100644
--- a/source/locale/fr/LC_MESSAGES/reliability.po
+++ b/source/locale/fr/LC_MESSAGES/reliability.po
@@ -21,33 +21,40 @@
 "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: 2014-06-30 12:04+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: French (http://www.transifex.com/ke4qqq/apache-cloudstack-administration-rtd/language/fr/)\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 ""
+msgstr "Fiabilité et disponibilité du système"
 
 # c2cb2128aadc481d823ace426cd60607
 #: ../../reliability.rst:21
 msgid "HA for Management Server"
-msgstr ""
+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."
+"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
@@ -55,6 +62,9 @@
 "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
@@ -63,11 +73,14 @@
 "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 ""
+msgstr "Répartition de charge du serveur de gestion"
 
 # 0dc6eb435a354cf3b4279772461cbf7f
 #: ../../reliability.rst:39
@@ -79,46 +92,52 @@
 "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 ""
+msgstr "Même si la persistance n'est pas requise, son activation est permise."
 
 # fa7858c33d194002ade885780b974057
 #: ../../reliability.rst:49
 msgid "Source Port"
-msgstr ""
+msgstr "Port source"
 
 # 8e4749c413de4b28a281ada8d2d64112
 #: ../../reliability.rst:49
 msgid "Destination Port"
-msgstr ""
+msgstr "Port de destination"
 
 # 044f0a55ef9143028e6a1442c2d75ee4
 #: ../../reliability.rst:49
 msgid "Protocol"
-msgstr ""
+msgstr "Protocole"
 
 # 50fdab6c4d254b51be652286846ebac8
 #: ../../reliability.rst:49
 msgid "Persistence Required?"
-msgstr ""
+msgstr "Persistance requise ?"
 
 # f5fcf842916f48bba5a1ef7630fe9998
 #: ../../reliability.rst:51
 msgid "80 or 443"
-msgstr ""
+msgstr "80 ou 443"
 
 # 3a276b78a619418392895c04f2b8e5f0
 #: ../../reliability.rst:51
 msgid "8080 (or 20400 with AJP)"
-msgstr ""
+msgstr "8080 (ou 20400 avec AJP)"
 
 # d09ff40864724d449227f282f2c255b4
 #: ../../reliability.rst:51
 msgid "HTTP (or AJP)"
-msgstr ""
+msgstr "HTTP (ou AJP)"
 
 # 10b0e96112a54a5b92b53ee2ad9bf186
 # fb100cffa01e43e2b2b5880237a41528
@@ -128,25 +147,25 @@
 
 # f3007601ae444c0796d25c5e58d09d7a
 # 1393fb040df84ca781d1000f40e4794a
-#: ../../reliability.rst:52 ../../reliability.rst:52
+#: ../../reliability.rst:52
 msgid "8250"
-msgstr ""
+msgstr "8259"
 
 # 6443f2a5e1d840699fd47b726ff379f9
 #: ../../reliability.rst:52
 msgid "TCP"
-msgstr ""
+msgstr "TCP"
 
 # 1e51ee3a6cd14a0a954cce617a60c19d
 # a50ea41d89cf476eadb2a4ad960c9c6a
-#: ../../reliability.rst:53 ../../reliability.rst:53
+#: ../../reliability.rst:53
 msgid "8096"
-msgstr ""
+msgstr "8096"
 
 # c2b280074d6f40d685182ce0770b0146
 #: ../../reliability.rst:53
 msgid "HTTP"
-msgstr ""
+msgstr "HTTP"
 
 # 759f4cdc678a4b149c52cf0e39205f9c
 #: ../../reliability.rst:53
@@ -163,11 +182,18 @@
 "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 ""
+msgstr "Machines Virtuelles avec HA"
 
 # c3b807bd9019482093758c219005a8af
 # 15a6c6ff487d4b4ab6f7088de5c25301
@@ -178,29 +204,40 @@
 "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 "
+"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."
+"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 ""
+msgstr "HA pour les hôtes"
 
 # 00c672182ced409dbf9628273c7e72cc
 #: ../../reliability.rst:99
 msgid "Dedicated HA Hosts"
-msgstr ""
+msgstr "HA des hôtes dédiés"
 
 # d615a157c03a46f8a4185819e7d53f6a
 #: ../../reliability.rst:101
@@ -209,23 +246,35 @@
 "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.)."
+"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."
+"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
@@ -237,6 +286,12 @@
 "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
@@ -245,11 +300,15 @@
 "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 ""
+msgstr "Interruption du stockage primaire et perte de données"
 
 # 982e58c7dfd644a9a8e0eaf38fbf516a
 #: ../../reliability.rst:132
@@ -259,26 +318,44 @@
 "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."
+"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 ""
+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 "
+"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
@@ -288,26 +365,37 @@
 "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 ""
+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."
+"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 ""
+msgstr "Comment configurer la réplication de la base de données"
 
 # 9c0172a3e34d439ca93117a4c922b4cf
 #: ../../reliability.rst:172
@@ -318,6 +406,12 @@
 "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
@@ -328,31 +422,44 @@
 "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 ""
+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>`_"
+"`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>`_"
+"`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 ""
+msgstr "Configuration de la haute disponibilité de la base de données"
 
 # f284eab37564471292cd2af70ef18ae5
 #: ../../reliability.rst:194
@@ -360,27 +467,33 @@
 "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 ""
+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 ""
+msgstr "Exemple : ``db.ha.enabled=true``"
 
 # 147ac9efb2314312b6e97323a267fd7c
 #: ../../reliability.rst:207
@@ -390,11 +503,15 @@
 "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 ""
+msgstr "Exemple : ``db.cloud.slaves=node2,node3,node4``"
 
 # 1783ef0808884e28ab22f6b3172dba41
 #: ../../reliability.rst:214
@@ -404,16 +521,20 @@
 "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 ""
+msgstr "Exemple : ``db.usage.slaves=node2,node3,node4``"
 
 # 739f9df2617d4e24aaa9adb209c65969
 #: ../../reliability.rst:221
 msgid "**Optional Settings**"
-msgstr ""
+msgstr "**Paramètres optionnels**"
 
 # 21e38ceba8e84d3f8b520026cae7d1b7
 #: ../../reliability.rst:223
@@ -422,34 +543,47 @@
 "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 "
+"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 ""
+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."
+"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 ""
+msgstr "Exemple: ``db.cloud.queriesBeforeRetryMaster=5000``"
 
 # 2283aca3081443c585804a3c9d63a45d
 #: ../../reliability.rst:241
@@ -457,16 +591,19 @@
 "``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 ""
+msgstr "Exemple: ``db.cloud.initialTimeout=3600``"
 
 # 6b17824c97504228abd0de9726eb598e
 #: ../../reliability.rst:248
 msgid "Limitations on Database High Availability"
-msgstr ""
+msgstr "Limitations de la Haute Disponibilité de la Base de Données"
 
 # 5df2f93aff944e03bd3c9f9e21c95cb6
 #: ../../reliability.rst:250
@@ -474,13 +611,17 @@
 "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."
+"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
@@ -488,6 +629,8 @@
 "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
@@ -496,3 +639,7 @@
 "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."
diff --git a/source/networking/using_remote_access.rst b/source/networking/using_remote_access.rst
index 0190fad..dfde4d2 100644
--- a/source/networking/using_remote_access.rst
+++ b/source/networking/using_remote_access.rst
@@ -79,8 +79,8 @@
          :width: 400 px
 
 
-Microsoft Windows 8
--------------------
+Microsoft Windows
+-----------------
 
 Following instruction have been perform using Windows 8.1 using Native VPN client.
 
@@ -146,3 +146,36 @@
    .. image:: ../_static/images/vpn/win14.png
       :align: center 
       :width: 400 px
+
+Ubuntu
+------
+
+Following instruction have been perform using Ubuntu 17.10 using the network-manager-l2tp-gnome.
+
+#. Add VPN connection using network manager:
+
+   .. image:: ../_static/images/vpn/ubuntu1.png
+      :align: center
+      :width: 400 px
+
+#. Configure VPN settings:
+
+   .. image:: ../_static/images/vpn/ubuntu2.png
+      :align: center
+      :width: 400 px
+
+   .. image:: ../_static/images/vpn/ubuntu3.png
+      :align: center
+      :width: 400 px
+
+#. Add routing as required:
+
+   .. image:: ../_static/images/vpn/ubuntu4.png
+      :align: center
+      :width: 400 px
+
+#. Initiate VPN connection
+
+   .. image:: ../_static/images/vpn/ubuntu5.png
+      :align: center
+      :width: 400 px
diff --git a/source/storage.rst b/source/storage.rst
index 1c1396e..7c3b013 100644
--- a/source/storage.rst
+++ b/source/storage.rst
@@ -66,7 +66,7 @@
    Offerings).
 
 
-Runtime Behavior of Primary Storage
+Runtime Behaviour of Primary Storage
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Root volumes are created automatically when a virtual machine is
@@ -414,7 +414,7 @@
 VM Storage Migration
 ~~~~~~~~~~~~~~~~~~~~
 
-Supported in XenServer, KVM, and VMware.
+Supported in XenServer, VMware and KVM
 
 .. note:: 
    This procedure is different from moving disk volumes from one VM to 
@@ -446,6 +446,10 @@
    running when the live migration operation is requested.
 
 
+For KVM, live storage migration is available from the 4.11 release
+and currently only supports migration from NFS/CEPH to SolidFire Managed Storage.
+
+
 Migrating a Data Volume to a New Storage Pool
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
@@ -458,11 +462,9 @@
    attach it to a new VM.
 
 
-Migrating Storage For a Running VM
+Migrating Storage For a Running VM on XenServer and VMware
 ''''''''''''''''''''''''''''''''''
 
-(Supported on XenServer and VMware)
-
 #. Log in to the CloudStack UI as a user or admin.
 
 #. In the left navigation bar, click Instances, click the VM name, and
@@ -480,6 +482,46 @@
 #. Watch for the volume status to change to Migrating, then back to
    Ready.
 
+Migrating Storage For a Running VM on KVM
+'''''''''''''''''''''''''''''''''''''''''
+
+KVM live storage migration is currently supported only from CEPH and NFS to SolidFire Managed Storage,
+and is currently only supported via API call (i.e. we can use CloudMonkey)
+
+#. Identify the VM UUID to be migrated.
+
+#. Identify the volume(s) UUID(s) which are attached to VM and needs to be migrated.
+
+#. Identify the SolidFire pool UUID to which you want to migrate VM's volumes.
+
+#. Identify suitable KVM host UUID to which the VM will be live migrated.
+
+Using CloudMonkey issue the command as in example given below:
+
+.. code:: bash
+
+   migrateVirtualMachineWithVolume virtualmachineid=ec5d3a84-2eb8-4a37-83f3-007b5013e3d9
+   hostid=bee55404-68e9-4710-bb10-ab9f4a3d357d
+   migrateto[0].pool=67654174-e2b6-4734-813d-2a4f0b027c0d migrateto[0].volume=ea390749-0194-4088-860c-71717c4efabe 
+   migrateto[1].pool=67654174-e2b6-4734-813d-2a4f0b027c0d migrateto[1].volume=3b37927b-2cd2-46d1-aeca-18d4af46bda2
+
+
+In the command above, new volumes are being created on SolidFire Managed Storage, 
+internal volume mirroring process is started via libvirt (from current storage NFS/CEPH to SolidFire)
+and at the end of the volume mirroring process, the VM live migration is done to the host defined above.
+
+In the command above we have "pairing" of volume and the storage pool to which to migrate specific volume to.
+In example above, we are migrating 2 volumes to the same SolidFire Storage Cluster, but optionally you could 
+migrate 2 volumes to 2 different SolidFire Storage Clusters.
+
+Order of volumes, as attached to VM, is NOT relevant - i.e. first volume in the migration command ( migrateto[0].volume )
+can be any DATA volume, while second volume ( migrateto[1].volume ) can be i.e. ROOT volume
+
+You can migrate only some or all of the volumes (attached to specific VM) to a new Storage Pool.
+
+Note, that depending on your configuration, you will need to change Compute/Data Disk Offerings, in case you have
+different storage tags set on CEPH/NFS versus tags on SolidFire (and in case your Compute/Data disk offerings reference these tags).
+
 
 Migrating Storage and Attaching to a Different VM
 '''''''''''''''''''''''''''''''''''''''''''''''''
@@ -798,6 +840,62 @@
    format, and will continue to work as expected.
 
 
+Disk caching (KVM)
+~~~~~~~~~~~~~~~~~~
+
+This is for advanced user only, since may cause issues with improper DB changes.
+
+Disk cache mode is the property of Compute Offering (ROOT disk) and Disk Offering (DATA disk).
+Currently, disk cache mode can only be set by editing "disk_offering" table inside "cloud" DB
+and can not be done via API/GUI (although there is "Write-cache Type" filed in the GUI on the "Add Disk Offering" wizard).
+Cache modes available are: write-back and write-through
+
+Before proceeding with changing cache mode on disks (Offerings), please make sure that you understand
+the consequences and limitations it might bring.
+
+#. If the guest storage is hosted on a clustered file system (or is read-only or is marked shareable), then the cache mode is ignored when determining if VM live migration can be allowed.
+#. If guest storage is hosted on shared storage (NFS/CEPH) libvirt will not allow VM live migration unless the cache mode is set to "none".
+#. This means that in case of NFS and CEPH, VM live migrations will not be possible, and this will also make it impossible to put host into maintenance mode (VMs being live migrated away from this host - will not work)
+
+In order to set disk write-back or write-through cache mode, we need to edit it's parent Compute Offering (for ROOT disk) or Disk Offering (for DATA disks). Please note that this means that all volumes/disks which are created from specific offering will inherit cache mode.
+
+.. code:: 
+
+   mysql> select id from disk_offering where name="8vCPU-64GB-HDD-STD-NFS";
+   +-----+
+   | id  |
+   +-----+
+   | 111 |
+   +-----+
+   1 row in set (0.00 sec)
+   mysql> select id from disk_offering where name="100GB-HDD-STD-NFS";
+   +-----+
+   | id  |
+   +-----+
+   | 114 |
+   +-----+
+   1 row in set (0.00 sec)
+   mysql> UPDATE disk_offering SET cache_mode='writeback' WHERE id in ('111','114');
+   Query OK, 2 rows affected (0.00 sec)
+   Rows matched: 2  Changed: 2  Warnings: 0
+
+In example above, we have set the write-back cache mode for a single Compute Offering and single Disk Offering.
+In order for KVM to actually pick-up the cache mode we have set, we need to stop VM and start VM. VM Reboot ("Reboot Instance" button)
+via GUI will not be enough.
+
+After VM is started we can confirm that the both the ROOT and DATA disk of a VM have cache mode set to write-back:
+
+.. code:: bash
+
+   root@ix1-c7-4:~# virsh dumpxml i-2-10-VM | grep cache -A2
+      <driver name='qemu' type='qcow2' cache='writeback'/>
+      <source file='/mnt/63a3ae7b-9ea9-3884-a772-1ea939ef6ec3/1b655159-ae10-41cf-8987-f1cfb47fe453'/>
+      <target dev='vda' bus='virtio'/>
+      ...
+      <driver name='qemu' type='qcow2' cache='writeback'/>
+      <source file='/mnt/63a3ae7b-9ea9-3884-a772-1ea939ef6ec3/09bdadcb-ec6e-4dda-b37b-17b1a749257f'/>
+      <target dev='vdb' bus='virtio'/>
+
 .. |AttachDiskButton.png| image:: _static/images/attach-disk-icon.png
    :alt: Attach Disk Button.
 .. |resize-volume-icon.png| image:: _static/images/resize-volume-icon.png
@@ -810,3 +908,4 @@
    :alt: Detach Disk Button.
 .. |Migrateinstance.png| image:: _static/images/migrate-instance.png
    :alt: button to migrate a volume.
+