Merge remote-tracking branch 'origin/4.15' into main
diff --git a/README.rst b/README.rst
index 2cd4ed7..686a01b 100644
--- a/README.rst
+++ b/README.rst
@@ -92,15 +92,15 @@
    $ git clone https://github.com/YOUR_ACCOUNT/cloudstack-documentation.git
    $ cd cloudstack-docs-install
    $ git remote add upstream https://github.com/apache/cloudstack-documentation.git
-   $ git checkout master
+   $ git checkout main
    $ git fetch upstream
-   $ git merge upstream/master
+   $ git merge upstream/main
 
 
 Making changes
 --------------
 
-It is important that you create a new branch to make changes on and that you do not change the `master` branch (other than to pull in changes from `upstream/master`).  In this case I will assume you will be creating a branch called `dev` to make your changes in.  This `dev` branch will be created on your local repository and will then be pushed to your forked repository on GitHub where you will create a Pull Request for the changes to be committed into the official documentation.
+It is important that you create a new branch to make changes on and that you do not change the `main` branch (other than to pull in changes from `upstream/main`).  In this case I will assume you will be creating a branch called `dev` to make your changes in.  This `dev` branch will be created on your local repository and will then be pushed to your forked repository on GitHub where you will create a Pull Request for the changes to be committed into the official documentation.
 
 It is good practice to create a new branch each time you want to contribute to the documentation and only track the changes for that pull request in this branch.
 
@@ -115,28 +115,28 @@
    The `-b` specifies that you want to create a new branch called `dev`.  You only specify `-b` the first time because you are creating a new branch.  Once the `dev` branch exists, you can later switch to it with only `git checkout dev`.
 
 
-Merging `upstream/master` into your `dev` branch
+Merging `upstream/main` into your `dev` branch
 ------------------------------------------------
 
-It is important that you maintain an up-to-date `master` branch in your local repository.  This is done by merging in the `upstream/master` (the official documentation repository) into your local repository.  You will want to do this before you start working on a feature as well as right before you submit your changes as a pull request.  You can also do this process periodically while you work on your changes to make sure you are working off the most recent version of the documentation.
+It is important that you maintain an up-to-date `main` branch in your local repository.  This is done by merging in the `upstream/main` (the official documentation repository) into your local repository.  You will want to do this before you start working on a feature as well as right before you submit your changes as a pull request.  You can also do this process periodically while you work on your changes to make sure you are working off the most recent version of the documentation.
 
 This process will do the following:
 
-#. Checkout your local `master` branch
+#. Checkout your local `main` branch
 
-#. Synchronize your local `master` branch with the `upstream/master` so you have all the latest changes from the official docs
+#. Synchronize your local `main` branch with the `upstream/main` so you have all the latest changes from the official docs
 
 #. Merge the latest changes from the official docs into your `dev` branch so it is up-to-date with the latest changes
 
 .. code:: bash
 
-   $ git checkout master
+   $ git checkout main
    $ git fetch upstream
-   $ git merge upstream/master
+   $ git merge upstream/main
    $ git checkout dev
-   $ git pull . master
+   $ git pull . main
 
-.. note:: Now your `dev` branch is up-to-date with all the recent changes in the `upstream/master`.
+.. note:: Now your `dev` branch is up-to-date with all the recent changes in the `upstream/main`.
 
 
 Making a pull request on GitHub to contribute your changes
@@ -144,11 +144,11 @@
 
 When you are happy with your changes and you want to contribute them, you will be creating a Pull Request on GitHub to do so.  This is done by pushing your changes to your forked repository (usually called 'origin') and then initiating a pull request.
 
-.. note:: Make sure you have merged `upstream/master` into your `dev` branch before you do this.
+.. note:: Make sure you have merged `upstream/main` into your `dev` branch before you do this.
 
 .. code:: bash
 
-   $ git push origin master
+   $ git push origin main
    $ git push origin dev
 
 Now that the `dev` branch has been pushed to your GitHub repository, you can initiate the pull request.  
@@ -167,14 +167,14 @@
 Cleaning up after a successful pull request
 -------------------------------------------
 
-Once the `dev` branch has been committed into the `upstream/master` branch, your local `dev` branch and the `origin/dev` branch are not needed anymore.  If you want to make additional documentation changes, restart the process with a new branch.
+Once the `dev` branch has been committed into the `upstream/main` branch, your local `dev` branch and the `origin/dev` branch are not needed anymore.  If you want to make additional documentation changes, restart the process with a new branch.
 
-.. note:: Make sure that your changes are in `upstream/master` before you delete your `dev` and `origin/dev` branches!
+.. note:: Make sure that your changes are in `upstream/main` before you delete your `dev` and `origin/dev` branches!
 
 You can delete these deprecated branches with the following:
 
 .. code:: bash
 
-   $ git checkout master
+   $ git checkout main
    $ git branch -D dev
    $ git push origin :dev
diff --git a/source/_global.rst b/source/_global.rst
index b1e7b90..9a4d2a5 100644
--- a/source/_global.rst
+++ b/source/_global.rst
@@ -25,19 +25,19 @@
 
 .. Latest version systemvm template name
 
-.. |sysvm64-version|     replace:: 4.15.1
-.. |sysvm64-name-xen|    replace:: systemvm-xenserver-4.15.1
-.. |sysvm64-name-kvm|    replace:: systemvm-kvm-4.15.1
-.. |sysvm64-name-vmware| replace:: systemvm-vmware-4.15.1
-.. |sysvm64-name-hyperv| replace:: systemvm-hyperv-4.15.1
-.. |sysvm64-name-ovm|    replace:: systemvm-ovm-4.15.1
+.. |sysvm64-version|     replace:: 4.16.0
+.. |sysvm64-name-xen|    replace:: systemvm-xenserver-4.16.0
+.. |sysvm64-name-kvm|    replace:: systemvm-kvm-4.16.0
+.. |sysvm64-name-vmware| replace:: systemvm-vmware-4.16.0
+.. |sysvm64-name-hyperv| replace:: systemvm-hyperv-4.16.0
+.. |sysvm64-name-ovm|    replace:: systemvm-ovm-4.16.0
 
 .. Latest version systemvm template URL
-.. |sysvm64-url-xen|    replace:: https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-xen.vhd.bz2
-.. |sysvm64-url-kvm|    replace:: https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-kvm.qcow2.bz2
-.. |sysvm64-url-vmware| replace:: https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-vmware.ova
-.. |sysvm64-url-hyperv| replace:: https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-hyperv.vhd.zip
-.. |sysvm64-url-ovm|    replace:: https://download.cloudstack.org/systemvm/4.15/systemvmtemplate-4.15.1-ovm.raw.bz2
+.. |sysvm64-url-xen|    replace:: https://download.cloudstack.org/systemvm/4.16/systemvmtemplate-4.16.0-xen.vhd.bz2
+.. |sysvm64-url-kvm|    replace:: https://download.cloudstack.org/systemvm/4.16/systemvmtemplate-4.16.0-kvm.qcow2.bz2
+.. |sysvm64-url-vmware| replace:: https://download.cloudstack.org/systemvm/4.16/systemvmtemplate-4.16.0-vmware.ova
+.. |sysvm64-url-hyperv| replace:: https://download.cloudstack.org/systemvm/4.16/systemvmtemplate-4.16.0-hyperv.vhd.zip
+.. |sysvm64-url-ovm|    replace:: https://download.cloudstack.org/systemvm/4.16/systemvmtemplate-4.16.0-ovm.raw.bz2
 
 .. Version specific: 4.5 systemvm template URL
 .. |acs45-sysvm64-url-xen|    replace:: https://download.cloudstack.org/systemvm/4.5/systemvm64template-4.5-xen.vhd.bz2
diff --git a/source/adminguide/index.rst b/source/adminguide/index.rst
index b4865bb..d91d69f 100644
--- a/source/adminguide/index.rst
+++ b/source/adminguide/index.rst
@@ -13,7 +13,7 @@
    specific language governing permissions and limitations
    under the License.
 
-.. CloudStack Administration Documentation master file, created by
+.. CloudStack Administration Documentation main file, created by
    sphinx-quickstart on Sat Jan 25 15:55:12 2014.
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
diff --git a/source/adminguide/locale/pot/networking.pot b/source/adminguide/locale/pot/networking.pot
index e87206f..ee50363 100644
--- a/source/adminguide/locale/pot/networking.pot
+++ b/source/adminguide/locale/pot/networking.pot
@@ -730,7 +730,7 @@
 
 #: ../../networking.rst:369
 # 6c9c68a68ab14d30a00460dd3b13f8a6
-msgid "**Redundant router capability**: Available only when Virtual Router is selected as the Source NAT provider. Select this option if you want to use two virtual routers in the network for uninterrupted connection: one operating as the master virtual router and the other as the backup. The master virtual router receives requests from and sends responses to the user’s VM. The backup virtual router is activated only when the master is down. After the failover, the backup becomes the master virtual router. CloudStack deploys the routers on different hosts to ensure reliability if one host is down."
+msgid "**Redundant router capability**: Available only when Virtual Router is selected as the Source NAT provider. Select this option if you want to use two virtual routers in the network for uninterrupted connection: one operating as the primary virtual router and the other as the backup. The primary virtual router receives requests from and sends responses to the user’s VM. The backup virtual router is activated only when the primary is down. After the failover, the backup becomes the primary virtual router. CloudStack deploys the routers on different hosts to ensure reliability if one host is down."
 msgstr ""
 
 #: ../../networking.rst:380
diff --git a/source/adminguide/locale/pot/networking/virtual_private_cloud_config.pot b/source/adminguide/locale/pot/networking/virtual_private_cloud_config.pot
index d3965b1..9f29a3a 100644
--- a/source/adminguide/locale/pot/networking/virtual_private_cloud_config.pot
+++ b/source/adminguide/locale/pot/networking/virtual_private_cloud_config.pot
@@ -1222,12 +1222,12 @@
 
 #: ../../networking/virtual_private_cloud_config.rst:648
 # f66d2b908d63453ba9331658c3105974
-msgid "Blacklisting Routes"
+msgid "Denylisting Routes"
 msgstr ""
 
 #: ../../networking/virtual_private_cloud_config.rst:650
 # 5e262d8f57f94df080de1ebfd57089c5
-msgid "CloudStack enables you to block a list of routes so that they are not assigned to any of the VPC private gateways. Specify the list of routes that you want to blacklist in the ``blacklisted.routes`` global parameter. Note that the parameter update affects only new static route creations. If you block an existing static route, it remains intact and continue functioning. You cannot add a static route if the route is blacklisted for the zone."
+msgid "CloudStack enables you to block a list of routes so that they are not assigned to any of the VPC private gateways. Specify the list of routes that you want to denylist in the ``denied.routes`` global parameter. Note that the parameter update affects only new static route creations. If you block an existing static route, it remains intact and continue functioning. You cannot add a static route if the route is denied for the zone."
 msgstr ""
 
 #: ../../networking/virtual_private_cloud_config.rst:660
diff --git a/source/adminguide/locale/pot/networking2.pot b/source/adminguide/locale/pot/networking2.pot
index 2a3e8f1..33ea337 100644
--- a/source/adminguide/locale/pot/networking2.pot
+++ b/source/adminguide/locale/pot/networking2.pot
@@ -5988,12 +5988,12 @@
 
 #: ../../networking2.rst:5737
 # 4bb61ba3dd1444269d2f517a3d774dac
-msgid "Blacklisting Routes"
+msgid "Denylisting Routes"
 msgstr ""
 
 #: ../../networking2.rst:5739
 # bf15aaf7395c48438bdfb1c5a1b303cd
-msgid "CloudStack enables you to block a list of routes so that they are not assigned to any of the VPC private gateways. Specify the list of routes that you want to blacklist in the ``blacklisted.routes`` global parameter. Note that the parameter update affects only new static route creations. If you block an existing static route, it remains intact and continue functioning. You cannot add a static route if the route is blacklisted for the zone."
+msgid "CloudStack enables you to block a list of routes so that they are not assigned to any of the VPC private gateways. Specify the list of routes that you want to denylist in the ``denied.routes`` global parameter. Note that the parameter update affects only new static route creations. If you block an existing static route, it remains intact and continue functioning. You cannot add a static route if the route is denied for the zone."
 msgstr ""
 
 #: ../../networking2.rst:5748
diff --git a/source/adminguide/locale/pot/networking_and_traffic.pot b/source/adminguide/locale/pot/networking_and_traffic.pot
index 8bbbf41..b42cc5d 100644
--- a/source/adminguide/locale/pot/networking_and_traffic.pot
+++ b/source/adminguide/locale/pot/networking_and_traffic.pot
@@ -5979,12 +5979,12 @@
 
 #: ../../networking/virtual_private_cloud_config.rst:648
 # f5f80f387b5246caa603111d30dcfab7
-msgid "Blacklisting Routes"
+msgid "Denylisting Routes"
 msgstr ""
 
 #: ../../networking/virtual_private_cloud_config.rst:650
 # 8515025cd30a4b30b46f527ea9be5b2b
-msgid "CloudStack enables you to block a list of routes so that they are not assigned to any of the VPC private gateways. Specify the list of routes that you want to blacklist in the ``blacklisted.routes`` global parameter. Note that the parameter update affects only new static route creations. If you block an existing static route, it remains intact and continue functioning. You cannot add a static route if the route is blacklisted for the zone."
+msgid "CloudStack enables you to block a list of routes so that they are not assigned to any of the VPC private gateways. Specify the list of routes that you want to denylist in the ``denied.routes`` global parameter. Note that the parameter update affects only new static route creations. If you block an existing static route, it remains intact and continue functioning. You cannot add a static route if the route is denied for the zone."
 msgstr ""
 
 #: ../../networking/virtual_private_cloud_config.rst:660
diff --git a/source/adminguide/locale/pot/reliability.pot b/source/adminguide/locale/pot/reliability.pot
index 74a2341..114c7a3 100644
--- a/source/adminguide/locale/pot/reliability.pot
+++ b/source/adminguide/locale/pot/reliability.pot
@@ -283,22 +283,22 @@
 
 #: ../../reliability.rst:207
 # 147ac9efb2314312b6e97323a267fd7c
-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."
+msgid "``db.cloud.replicas``: set to a comma-delimited set of replica hosts for the cloud database. This is the list of nodes set up with replication. The source node is not in the list, since it is already mentioned elsewhere in the properties file."
 msgstr ""
 
 #: ../../reliability.rst:212
 # aa38f185ca8b4c1b86e19da970eb3901
-msgid "Example: ``db.cloud.slaves=node2,node3,node4``"
+msgid "Example: ``db.cloud.replicas=node2,node3,node4``"
 msgstr ""
 
 #: ../../reliability.rst:214
 # 1783ef0808884e28ab22f6b3172dba41
-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."
+msgid "``db.usage.replicas``: set to a comma-delimited set of replica hosts for the usage database. This is the list of nodes set up with replication. The source node is not in the list, since it is already mentioned elsewhere in the properties file."
 msgstr ""
 
 #: ../../reliability.rst:219
 # 573fb04445dd4b0ba4f5b9a5f8517c75
-msgid "Example: ``db.usage.slaves=node2,node3,node4``"
+msgid "Example: ``db.usage.replicas=node2,node3,node4``"
 msgstr ""
 
 #: ../../reliability.rst:221
@@ -313,27 +313,27 @@
 
 #: ../../reliability.rst:227
 # bcfa8dcb331c4185bab0cbdfbb3624ca
-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."
+msgid "``db.cloud.secondsBeforeRetrySource``: The number of seconds the MySQL connector should wait before trying again to connect to the source after the source went down. Default is 1 hour. The retry might happen sooner if db.cloud.queriesBeforeRetrySource is reached first."
 msgstr ""
 
 #: ../../reliability.rst:232
 # 55d7217f8ea6408e8389bd39dbbfc3fc
-msgid "Example: ``db.cloud.secondsBeforeRetryMaster=3600``"
+msgid "Example: ``db.cloud.secondsBeforeRetrySource=3600``"
 msgstr ""
 
 #: ../../reliability.rst:234
 # d8cfb3b10706434d8ad7c63b231e7ee9
-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."
+msgid "``db.cloud.queriesBeforeRetrySource``: The minimum number of queries to be sent to the database before trying again to connect to the source after the source went down. Default is 5000. The retry might happen sooner if db.cloud.secondsBeforeRetrySource is reached first."
 msgstr ""
 
 #: ../../reliability.rst:239
 # f7b672a867c64854accef70177a0dd73
-msgid "Example: ``db.cloud.queriesBeforeRetryMaster=5000``"
+msgid "Example: ``db.cloud.queriesBeforeRetrySource=5000``"
 msgstr ""
 
 #: ../../reliability.rst:241
 # 2283aca3081443c585804a3c9d63a45d
-msgid "``db.cloud.initialTimeout``: Initial time the MySQL connector should wait before trying again to connect to the master. Default is 3600."
+msgid "``db.cloud.initialTimeout``: Initial time the MySQL connector should wait before trying again to connect to the source. Default is 3600."
 msgstr ""
 
 #: ../../reliability.rst:244
@@ -353,7 +353,7 @@
 
 #: ../../reliability.rst:253
 # 7c4a38ab45c943a489f2e7ae8f3ab0e2
-msgid "Slave hosts can not be monitored through CloudStack. You will need to have a separate means of monitoring."
+msgid "Replica hosts can not be monitored through CloudStack. You will need to have a separate means of monitoring."
 msgstr ""
 
 #: ../../reliability.rst:256
diff --git a/source/adminguide/locale/pot/templates.pot b/source/adminguide/locale/pot/templates.pot
index 5491370..be9832f 100644
--- a/source/adminguide/locale/pot/templates.pot
+++ b/source/adminguide/locale/pot/templates.pot
@@ -341,7 +341,7 @@
 
 #: ../../templates.rst:288
 # 942a09f060a248499ad52006fb12910b
-msgid "Linux templates should be prepared using this documentation in order to prepare your linux VMs for template deployment. For ease of documentation, the VM which you are configuring the template on will be referred to as \"Template Master\". This guide currently covers legacy setups which do not take advantage of UserData and cloud-init and assumes openssh-server is installed during installation."
+msgid "Linux templates should be prepared using this documentation in order to prepare your linux VMs for template deployment. For ease of documentation, the VM which you are configuring the template on will be referred to as \"Template Primary\". This guide currently covers legacy setups which do not take advantage of UserData and cloud-init and assumes openssh-server is installed during installation."
 msgstr ""
 
 #: ../../templates.rst:295
@@ -417,7 +417,7 @@
 
 #: ../../templates.rst:341
 # f68b6e4efb764f92a1e56ad9ea54f90c
-msgid "The next steps updates the packages on the Template Master."
+msgid "The next steps updates the packages on the Template Primary."
 msgstr ""
 
 #: ../../templates.rst:343
@@ -473,7 +473,7 @@
 
 #: ../../templates.rst:434
 # 1f68693847f1433bb6541b70f1abedd5
-msgid "The following steps should be run when you are ready to template your Template Master. If the Template Master is rebooted during these steps you will have to run all the steps again. At the end of this process the Template Master should be shutdown and the template created in order to create and deploy the final template."
+msgid "The following steps should be run when you are ready to template your Template Primary. If the Template Primary is rebooted during these steps you will have to run all the steps again. At the end of this process the Template Primary should be shutdown and the template created in order to create and deploy the final template."
 msgstr ""
 
 #: ../../templates.rst:440
@@ -483,7 +483,7 @@
 
 #: ../../templates.rst:442
 # 7a1b5554792c4cb1aa676f8e73a843b8
-msgid "This step removes information unique to your Template Master such as network MAC addresses, lease files and CD block devices, the files are automatically generated on next boot."
+msgid "This step removes information unique to your Template Primary such as network MAC addresses, lease files and CD block devices, the files are automatically generated on next boot."
 msgstr ""
 
 #: ../../templates.rst:460
@@ -503,7 +503,7 @@
 
 #: ../../templates.rst:472
 # af913fb8f91b484bb83ac0737e1b1d10
-msgid "It is good practice to remove old logs from the Template Master."
+msgid "It is good practice to remove old logs from the Template Primary."
 msgstr ""
 
 #: ../../templates.rst:481
@@ -513,7 +513,7 @@
 
 #: ../../templates.rst:483
 # 5a2162138fca40088196712b5650f551
-msgid "In order for the Ubuntu DHCP script to function and the CentOS dhclient to set the VM hostname they both require the Template Master's hostname to be \"localhost\", run the following commands to change the hostname."
+msgid "In order for the Ubuntu DHCP script to function and the CentOS dhclient to set the VM hostname they both require the Template Primary's hostname to be \"localhost\", run the following commands to change the hostname."
 msgstr ""
 
 #: ../../templates.rst:493
@@ -543,7 +543,7 @@
 
 #: ../../templates.rst:513
 # f92b1a930b3e4d859616309b9db518e1
-msgid "Your now ready to shutdown your Template Master and create a template!"
+msgid "Your now ready to shutdown your Template Primary and create a template!"
 msgstr ""
 
 #: ../../templates.rst:520
diff --git a/source/adminguide/locale/zh_CN/LC_MESSAGES/networking.po b/source/adminguide/locale/zh_CN/LC_MESSAGES/networking.po
index 8356535..789ed95 100644
--- a/source/adminguide/locale/zh_CN/LC_MESSAGES/networking.po
+++ b/source/adminguide/locale/zh_CN/LC_MESSAGES/networking.po
@@ -840,10 +840,10 @@
 "**Redundant router capability**: Available only when Virtual Router is "
 "selected as the Source NAT provider. Select this option if you want to use "
 "two virtual routers in the network for uninterrupted connection: one "
-"operating as the master virtual router and the other as the backup. The "
-"master virtual router receives requests from and sends responses to the "
-"user’s VM. The backup virtual router is activated only when the master is "
-"down. After the failover, the backup becomes the master virtual router. "
+"operating as the primary virtual router and the other as the backup. The "
+"primary virtual router receives requests from and sends responses to the "
+"user’s VM. The backup virtual router is activated only when the primary is "
+"down. After the failover, the backup becomes the primary virtual router. "
 "CloudStack deploys the routers on different hosts to ensure reliability if "
 "one host is down."
 msgstr "**冗余路由性能**:这个选项只有在虚拟路由作为Source NAT提供者时才是可选的。如果你希望提供不间断的网络连接,选中这个选项,则系统会提供两个虚拟路由:一个主的,一个辅的。主虚拟路由负载收发用户虚拟机器的相关请深圳市。如主的路由DOWN掉时,由辅助路由升级为主路由接替工作。CloudStack 会将两个邪气路由分别部署在不同的主机上,以保证可用性。"
diff --git a/source/adminguide/locale/zh_CN/LC_MESSAGES/networking/virtual_private_cloud_config.po b/source/adminguide/locale/zh_CN/LC_MESSAGES/networking/virtual_private_cloud_config.po
index a407315..c0efde4 100644
--- a/source/adminguide/locale/zh_CN/LC_MESSAGES/networking/virtual_private_cloud_config.po
+++ b/source/adminguide/locale/zh_CN/LC_MESSAGES/networking/virtual_private_cloud_config.po
@@ -1430,7 +1430,7 @@
 
 # f66d2b908d63453ba9331658c3105974
 #: ../../networking/virtual_private_cloud_config.rst:648
-msgid "Blacklisting Routes"
+msgid "Denylisting Routes"
 msgstr "路由黑名单"
 
 # 5e262d8f57f94df080de1ebfd57089c5
@@ -1438,11 +1438,11 @@
 msgid ""
 "CloudStack enables you to block a list of routes so that they are not "
 "assigned to any of the VPC private gateways. Specify the list of routes that"
-" you want to blacklist in the ``blacklisted.routes`` global parameter. Note "
+" you want to denylist in the ``denied.routes`` global parameter. Note "
 "that the parameter update affects only new static route creations. If you "
 "block an existing static route, it remains intact and continue functioning. "
-"You cannot add a static route if the route is blacklisted for the zone."
-msgstr "CloudStack允许你定义一个路由黑名单,这样它们就不能关联到任何VPC私有网关。你需要在全局参数blacklisted.routes里定义。要注意,此参数只在新路由创建时才会生效。如果你在黑名单里加入了已存在的静态路由,则此静态路由还是会继续起作用。你不能把在路由黑名单里的路由加入到静态路由当中去。"
+"You cannot add a static route if the route is denied for the zone."
+msgstr "CloudStack允许你定义一个路由黑名单,这样它们就不能关联到任何VPC私有网关。你需要在全局参数denied.routes里定义。要注意,此参数只在新路由创建时才会生效。如果你在黑名单里加入了已存在的静态路由,则此静态路由还是会继续起作用。你不能把在路由黑名单里的路由加入到静态路由当中去。"
 
 # c95c27354e2b4308b6fe6cd594b07c4b
 #: ../../networking/virtual_private_cloud_config.rst:660
diff --git a/source/adminguide/locale/zh_CN/LC_MESSAGES/networking2.po b/source/adminguide/locale/zh_CN/LC_MESSAGES/networking2.po
index 6f35590..2ec73d9 100644
--- a/source/adminguide/locale/zh_CN/LC_MESSAGES/networking2.po
+++ b/source/adminguide/locale/zh_CN/LC_MESSAGES/networking2.po
@@ -7450,7 +7450,7 @@
 
 # 4bb61ba3dd1444269d2f517a3d774dac
 #: ../../networking2.rst:5737
-msgid "Blacklisting Routes"
+msgid "Denylisting Routes"
 msgstr "路由黑名单"
 
 # bf15aaf7395c48438bdfb1c5a1b303cd
@@ -7458,11 +7458,11 @@
 msgid ""
 "CloudStack enables you to block a list of routes so that they are not "
 "assigned to any of the VPC private gateways. Specify the list of routes that"
-" you want to blacklist in the ``blacklisted.routes`` global parameter. Note "
+" you want to denylist in the ``denied.routes`` global parameter. Note "
 "that the parameter update affects only new static route creations. If you "
 "block an existing static route, it remains intact and continue functioning. "
-"You cannot add a static route if the route is blacklisted for the zone."
-msgstr "CloudStack允许你定义一个路由黑名单,这样它们就不能关联到任何VPC私有网关。你需要在全局参数blacklisted.routes里定义。要注意,此参数只在新路由创建时才会生效。如果你在黑名单里加入了已存在的静态路由,则此静态路由还是会继续起作用。你不能把在路由黑名单里的路由加入到静态路由当中去。"
+"You cannot add a static route if the route is denied for the zone."
+msgstr "CloudStack允许你定义一个路由黑名单,这样它们就不能关联到任何VPC私有网关。你需要在全局参数denied.routes里定义。要注意,此参数只在新路由创建时才会生效。如果你在黑名单里加入了已存在的静态路由,则此静态路由还是会继续起作用。你不能把在路由黑名单里的路由加入到静态路由当中去。"
 
 # 0331141edca34d0d88619127d2766371
 #: ../../networking2.rst:5748
diff --git a/source/adminguide/locale/zh_CN/LC_MESSAGES/networking_and_traffic.po b/source/adminguide/locale/zh_CN/LC_MESSAGES/networking_and_traffic.po
index fdf865d..ec94b4a 100644
--- a/source/adminguide/locale/zh_CN/LC_MESSAGES/networking_and_traffic.po
+++ b/source/adminguide/locale/zh_CN/LC_MESSAGES/networking_and_traffic.po
@@ -7668,7 +7668,7 @@
 
 # f5f80f387b5246caa603111d30dcfab7
 #: ../../networking/virtual_private_cloud_config.rst:648
-msgid "Blacklisting Routes"
+msgid "Denylisting Routes"
 msgstr "路由黑名单"
 
 # 8515025cd30a4b30b46f527ea9be5b2b
@@ -7676,11 +7676,11 @@
 msgid ""
 "CloudStack enables you to block a list of routes so that they are not "
 "assigned to any of the VPC private gateways. Specify the list of routes that"
-" you want to blacklist in the ``blacklisted.routes`` global parameter. Note "
+" you want to denylist in the ``denied.routes`` global parameter. Note "
 "that the parameter update affects only new static route creations. If you "
 "block an existing static route, it remains intact and continue functioning. "
-"You cannot add a static route if the route is blacklisted for the zone."
-msgstr "CloudStack允许你定义一个路由黑名单,这样它们就不能关联到任何VPC私有网关。你需要在全局参数blacklisted.routes里定义。要注意,此参数只在新路由创建时才会生效。如果你在黑名单里加入了已存在的静态路由,则此静态路由还是会继续起作用。你不能把在路由黑名单里的路由加入到静态路由当中去。"
+"You cannot add a static route if the route is denied for the zone."
+msgstr "CloudStack允许你定义一个路由黑名单,这样它们就不能关联到任何VPC私有网关。你需要在全局参数denied.routes里定义。要注意,此参数只在新路由创建时才会生效。如果你在黑名单里加入了已存在的静态路由,则此静态路由还是会继续起作用。你不能把在路由黑名单里的路由加入到静态路由当中去。"
 
 # 0a8f5a5461c9432188d46d5dc80a91a0
 #: ../../networking/virtual_private_cloud_config.rst:660
diff --git a/source/adminguide/locale/zh_CN/LC_MESSAGES/reliability.po b/source/adminguide/locale/zh_CN/LC_MESSAGES/reliability.po
index 141543d..3fee99b 100644
--- a/source/adminguide/locale/zh_CN/LC_MESSAGES/reliability.po
+++ b/source/adminguide/locale/zh_CN/LC_MESSAGES/reliability.po
@@ -372,30 +372,30 @@
 # 147ac9efb2314312b6e97323a267fd7c
 #: ../../reliability.rst:207
 msgid ""
-"``db.cloud.slaves``: set to a comma-delimited set of slave hosts for the "
+"``db.cloud.replicas``: set to a comma-delimited set of replica 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 "
+"source node is not in the list, since it is already mentioned elsewhere in "
 "the properties file."
-msgstr "``db.cloud.slaves``:为云数据库设置多台slave主机,用逗号隔开。这是用于复制的节点清单。主节点不在列表中,因为在属性文件中的别处已经使用了它。"
+msgstr "``db.cloud.replicas``:为云数据库设置多台replica主机,用逗号隔开。这是用于复制的节点清单。主节点不在列表中,因为在属性文件中的别处已经使用了它。"
 
 # aa38f185ca8b4c1b86e19da970eb3901
 #: ../../reliability.rst:212
-msgid "Example: ``db.cloud.slaves=node2,node3,node4``"
-msgstr "例如:``db.cloud.slaves=node2,node3,node4``"
+msgid "Example: ``db.cloud.replicas=node2,node3,node4``"
+msgstr "例如:``db.cloud.replicas=node2,node3,node4``"
 
 # 1783ef0808884e28ab22f6b3172dba41
 #: ../../reliability.rst:214
 msgid ""
-"``db.usage.slaves``: set to a comma-delimited set of slave hosts for the "
+"``db.usage.replicas``: set to a comma-delimited set of replica 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 "
+"source node is not in the list, since it is already mentioned elsewhere in "
 "the properties file."
-msgstr "``db.usage.slaves``:为用量数据库设置多台slave主机,用逗号隔开。这是用于复制的节点清单。主节点不在列表中,因为在属性文件中的别处已经使用了它。"
+msgstr "``db.usage.replicas``:为用量数据库设置多台replica主机,用逗号隔开。这是用于复制的节点清单。主节点不在列表中,因为在属性文件中的别处已经使用了它。"
 
 # 573fb04445dd4b0ba4f5b9a5f8517c75
 #: ../../reliability.rst:219
-msgid "Example: ``db.usage.slaves=node2,node3,node4``"
-msgstr "例如:``db.usage.slaves=node2,node3,node4``"
+msgid "Example: ``db.usage.replicas=node2,node3,node4``"
+msgstr "例如:``db.usage.replicas=node2,node3,node4``"
 
 # 739f9df2617d4e24aaa9adb209c65969
 #: ../../reliability.rst:221
@@ -413,37 +413,37 @@
 # 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``:在master宕机之后,MySQL连接器重试连接到master之前所等待的秒数。默认是1小时。如果首先达到了db.cloud.queriesBeforeRetryMaster 的限制,重试可能更早发生。"
+"``db.cloud.secondsBeforeRetrySource``: The number of seconds the MySQL "
+"connector should wait before trying again to connect to the source after the"
+" source went down. Default is 1 hour. The retry might happen sooner if "
+"db.cloud.queriesBeforeRetrySource is reached first."
+msgstr "``db.cloud.secondsBeforeRetrySource``:在source宕机之后,MySQL连接器重试连接到source之前所等待的秒数。默认是1小时。如果首先达到了db.cloud.queriesBeforeRetrySource 的限制,重试可能更早发生。"
 
 # 55d7217f8ea6408e8389bd39dbbfc3fc
 #: ../../reliability.rst:232
-msgid "Example: ``db.cloud.secondsBeforeRetryMaster=3600``"
-msgstr "例如:``db.cloud.secondsBeforeRetryMaster=3600``"
+msgid "Example: ``db.cloud.secondsBeforeRetrySource=3600``"
+msgstr "例如:``db.cloud.secondsBeforeRetrySource=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``:在master宕机之后,重新尝试连接到master之前向数据库查询的最小次数。默认值是5000。如果首先达到了db.cloud.secondsBeforeRetryMaster的限制,重试可能更早发生。"
+"``db.cloud.queriesBeforeRetrySource``: The minimum number of queries to be "
+"sent to the database before trying again to connect to the source after the "
+"source went down. Default is 5000. The retry might happen sooner if "
+"db.cloud.secondsBeforeRetrySource is reached first."
+msgstr "``db.cloud.queriesBeforeRetrySource``:在source宕机之后,重新尝试连接到source之前向数据库查询的最小次数。默认值是5000。如果首先达到了db.cloud.secondsBeforeRetrySource的限制,重试可能更早发生。"
 
 # f7b672a867c64854accef70177a0dd73
 #: ../../reliability.rst:239
-msgid "Example: ``db.cloud.queriesBeforeRetryMaster=5000``"
-msgstr "例如:``db.cloud.queriesBeforeRetryMaster=5000``"
+msgid "Example: ``db.cloud.queriesBeforeRetrySource=5000``"
+msgstr "例如:``db.cloud.queriesBeforeRetrySource=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``:在重新尝试连接至master之前,MySQL连接器等待的初始时间。默认是3600。"
+"before trying again to connect to the source. Default is 3600."
+msgstr "``db.cloud.initialTimeout``:在重新尝试连接至source之前,MySQL连接器等待的初始时间。默认是3600。"
 
 # bae95908743e448b967b6992b4e88816
 #: ../../reliability.rst:244
@@ -465,9 +465,9 @@
 # 7c4a38ab45c943a489f2e7ae8f3ab0e2
 #: ../../reliability.rst:253
 msgid ""
-"Slave hosts can not be monitored through CloudStack. You will need to have a"
+"Replica hosts can not be monitored through CloudStack. You will need to have a"
 " separate means of monitoring."
-msgstr "Slave主机不能被CloudStack监控。你必须有单独的监控手段。"
+msgstr "Replica主机不能被CloudStack监控。你必须有单独的监控手段。"
 
 # 5270e63b8008415bbe847a54002660bc
 #: ../../reliability.rst:256
diff --git a/source/adminguide/locale/zh_CN/LC_MESSAGES/templates.po b/source/adminguide/locale/zh_CN/LC_MESSAGES/templates.po
index 5c7077f..75af44d 100644
--- a/source/adminguide/locale/zh_CN/LC_MESSAGES/templates.po
+++ b/source/adminguide/locale/zh_CN/LC_MESSAGES/templates.po
@@ -450,7 +450,7 @@
 "Linux templates should be prepared using this documentation in order to "
 "prepare your linux VMs for template deployment. For ease of documentation, "
 "the VM which you are configuring the template on will be referred to as "
-"\"Template Master\". This guide currently covers legacy setups which do not "
+"\"Template Primary\". This guide currently covers legacy setups which do not "
 "take advantage of UserData and cloud-init and assumes openssh-server is "
 "installed during installation."
 msgstr "为了准备使用模板部署你的Linux VMs,可以使用此文档来准备Linux模板。对于文档中的情况,你要通过配置模板,这会涉及\"主模板\"。这个指导目前覆盖了传统的安装,但不会涉及用户数据和cloud-init还有假设在装过程中安装了openshh服务。"
@@ -538,7 +538,7 @@
 
 # f68b6e4efb764f92a1e56ad9ea54f90c
 #: ../../templates.rst:341
-msgid "The next steps updates the packages on the Template Master."
+msgid "The next steps updates the packages on the Template Primary."
 msgstr "下一步更新主模板中的包。"
 
 # 143c241d86a44e32b496b66a9934ec6a
@@ -614,9 +614,9 @@
 #: ../../templates.rst:434
 msgid ""
 "The following steps should be run when you are ready to template your "
-"Template Master. If the Template Master is rebooted during these steps you "
+"Template Primary. If the Template Primary is rebooted during these steps you "
 "will have to run all the steps again. At the end of this process the "
-"Template Master should be shutdown and the template created in order to "
+"Template Primary should be shutdown and the template created in order to "
 "create and deploy the final template."
 msgstr "当你准备好做你的主模板的时候请运行下列步骤。如果主模板在这些步骤期间重启了,那么你要重新运行所有的步骤。在这个过程的最后,主模板应该关机并且将其创建为模板,然后再部署。"
 
@@ -628,7 +628,7 @@
 # 7a1b5554792c4cb1aa676f8e73a843b8
 #: ../../templates.rst:442
 msgid ""
-"This step removes information unique to your Template Master such as network"
+"This step removes information unique to your Template Primary such as network"
 " MAC addresses, lease files and CD block devices, the files are "
 "automatically generated on next boot."
 msgstr "这一步会移除你的主模板的特殊信息,如网络MAC地址,租约信息和CD块设备,这个文件会在下次启动时自动生成。"
@@ -652,7 +652,7 @@
 
 # af913fb8f91b484bb83ac0737e1b1d10
 #: ../../templates.rst:472
-msgid "It is good practice to remove old logs from the Template Master."
+msgid "It is good practice to remove old logs from the Template Primary."
 msgstr "从主模板移除旧的日志文件是一个好习惯。"
 
 # db125d8aa6cc45c8bdf9340dde1d3d45
@@ -664,7 +664,7 @@
 #: ../../templates.rst:483
 msgid ""
 "In order for the Ubuntu DHCP script to function and the CentOS dhclient to "
-"set the VM hostname they both require the Template Master's hostname to be "
+"set the VM hostname they both require the Template Primary's hostname to be "
 "\"localhost\", run the following commands to change the hostname."
 msgstr "为了Ubuntu DHCP的脚本功能和CentOS dhclient能设置VM主机名,他们都去要设置主模板的主机名设置为“localhost”,运行下面的命令来更改主机名。"
 
@@ -697,7 +697,7 @@
 
 # f92b1a930b3e4d859616309b9db518e1
 #: ../../templates.rst:513
-msgid "Your now ready to shutdown your Template Master and create a template!"
+msgid "Your now ready to shutdown your Template Primary and create a template!"
 msgstr "现在你可以关闭你的主模板并且创建模板了!"
 
 # 43e271d15b2742238d231b3f7fe85ed1
diff --git a/source/adminguide/networking.rst b/source/adminguide/networking.rst
index 6bd739a..ba3de9a 100644
--- a/source/adminguide/networking.rst
+++ b/source/adminguide/networking.rst
@@ -390,11 +390,11 @@
    -  **Redundant router capability**: Available only when Virtual
       Router is selected as the Source NAT provider. Select this option
       if you want to use two virtual routers in the network for
-      uninterrupted connection: one operating as the master virtual
-      router and the other as the backup. The master virtual router
+      uninterrupted connection: one operating as the primary virtual
+      router and the other as the backup. The primary virtual router
       receives requests from and sends responses to the user’s VM. The
-      backup virtual router is activated only when the master is down.
-      After the failover, the backup becomes the master virtual router.
+      backup virtual router is activated only when the primary is down.
+      After the failover, the backup becomes the primary virtual router.
       CloudStack deploys the routers on different hosts to ensure
       reliability if one host is down.
 
diff --git a/source/adminguide/networking/persistent_networks.rst b/source/adminguide/networking/persistent_networks.rst
index 9aa15d5..99eab71 100644
--- a/source/adminguide/networking/persistent_networks.rst
+++ b/source/adminguide/networking/persistent_networks.rst
@@ -12,7 +12,7 @@
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-   
+
 
 Persistent Networks
 -------------------
@@ -43,7 +43,7 @@
 Persistent Network Considerations
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
--  Persistent network is designed for isolated networks.
+-  Persistent network is designed for isolated and L2 networks.
 
 -  All default network offerings are non-persistent.
 
@@ -55,6 +55,12 @@
    defines the network persistence. This in turn depends on whether
    persistent network is enabled in the selected network offering.
 
+-  Creation of an Isolated Persistent network will deploy a Virtual Router
+   when the network is created.
+
+-  Creation of an L2 Persistent network setups up the network devices namely,
+   bridges, VLANs or port-groups across all hosts in a zone.
+
 -  An existing network can be made persistent by changing its network
    offering to an offering that has the Persistent option enabled. While
    setting this property, even if the network has no running VMs, the
@@ -78,7 +84,7 @@
 
 #. Create a network offering with the Persistent option enabled.
 
-   See `"Creating a New Network Offering" 
+   See `"Creating a New Network Offering"
    <networking.html#creating-a-new-network-offering>`_.
 
 #. Select Network from the left navigation pane.
diff --git a/source/adminguide/networking/security_groups.rst b/source/adminguide/networking/security_groups.rst
index 8ef58b8..a82ced9 100644
--- a/source/adminguide/networking/security_groups.rst
+++ b/source/adminguide/networking/security_groups.rst
@@ -86,6 +86,8 @@
 advanced zones rather than multiple VLANs allows a greater range of
 options for setting up guest isolation in a cloud.
 
+Both IPv4 and IPv6 are supported when using Security Groups.
+
 
 Limitations
 ^^^^^^^^^^^
@@ -155,8 +157,9 @@
    -  **CIDR**. (Add by CIDR only) To accept only traffic from IP
       addresses within a particular address block, enter a CIDR or a
       comma-separated list of CIDRs. The CIDR is the base IP address of
-      the incoming traffic. For example, 192.168.0.0/22. To allow all
-      CIDRs, set to 0.0.0.0/0.
+      the incoming traffic. For example, 192.168.0.0/22 or
+      2001:db8:100::/64. To allow all CIDRs, set to 0.0.0.0/0 (IPv4) or
+      ::/0 (IPv6).
 
    -  **Account, Security Group**. (Add by Account only) To accept only
       traffic from another security group, enter the CloudStack account
@@ -198,8 +201,8 @@
    -  **CIDR**. (Add by CIDR only) To send traffic only to IP addresses
       within a particular address block, enter a CIDR or a
       comma-separated list of CIDRs. The CIDR is the base IP address of
-      the destination. For example, 192.168.0.0/22. To allow all CIDRs,
-      set to 0.0.0.0/0.
+      the destination. For example, 192.168.0.0/22 or 2001:db8:200::/64.
+      To allow all CIDRs, set to 0.0.0.0/0 (IPv4) or ::/0 (IPv6).
 
    -  **Account, Security Group**. (Add by Account only) To allow
       traffic to be sent to another security group, enter the CloudStack
diff --git a/source/adminguide/networking/virtual_private_cloud_config.rst b/source/adminguide/networking/virtual_private_cloud_config.rst
index 095fa29..5f381d6 100644
--- a/source/adminguide/networking/virtual_private_cloud_config.rst
+++ b/source/adminguide/networking/virtual_private_cloud_config.rst
@@ -651,16 +651,16 @@
    Wait for few seconds until the new route is created.
 
 
-Blacklisting Routes
+Denylisting Routes
 ^^^^^^^^^^^^^^^^^^^
 
 CloudStack enables you to block a list of routes so that they are not
 assigned to any of the VPC private gateways. Specify the list of routes
-that you want to blacklist in the ``blacklisted.routes`` global
+that you want to denylist in the ``denied.routes`` global
 parameter. Note that the parameter update affects only new static route
 creations. If you block an existing static route, it remains intact and
 continue functioning. You cannot add a static route if the route is
-blacklisted for the zone.
+denied for the zone.
 
 
 Deploying VMs to the Tier
diff --git a/source/adminguide/reliability.rst b/source/adminguide/reliability.rst
index 44647cb..e886097 100644
--- a/source/adminguide/reliability.rst
+++ b/source/adminguide/reliability.rst
@@ -204,19 +204,19 @@
 
    Example: ``db.ha.enabled=true``
 
--  ``db.cloud.slaves``: set to a comma-delimited set of slave hosts for the
+-  ``db.cloud.replicas``: set to a comma-delimited set of replica 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
+   The source node is not in the list, since it is already mentioned
    elsewhere in the properties file.
 
-   Example: ``db.cloud.slaves=node2,node3,node4``
+   Example: ``db.cloud.replicas=node2,node3,node4``
 
--  ``db.usage.slaves``: set to a comma-delimited set of slave hosts for the
+-  ``db.usage.replicas``: set to a comma-delimited set of replica 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
+   The source node is not in the list, since it is already mentioned
    elsewhere in the properties file.
 
-   Example: ``db.usage.slaves=node2,node3,node4``
+   Example: ``db.usage.replicas=node2,node3,node4``
 
 **Optional Settings**
 
@@ -224,22 +224,22 @@
 required to change the default values unless you wish to do so for
 tuning purposes:
 
--  ``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.
+-  ``db.cloud.secondsBeforeRetrySource``: The number of seconds the MySQL
+   connector should wait before trying again to connect to the source
+   after the source went down. Default is 1 hour. The retry might happen
+   sooner if db.cloud.queriesBeforeRetrySource is reached first.
 
-   Example: ``db.cloud.secondsBeforeRetryMaster=3600``
+   Example: ``db.cloud.secondsBeforeRetrySource=3600``
 
--  ``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.
+-  ``db.cloud.queriesBeforeRetrySource``: The minimum number of queries to
+   be sent to the database before trying again to connect to the source
+   after the source went down. Default is 5000. The retry might happen
+   sooner if db.cloud.secondsBeforeRetrySource is reached first.
 
-   Example: ``db.cloud.queriesBeforeRetryMaster=5000``
+   Example: ``db.cloud.queriesBeforeRetrySource=5000``
 
 -  ``db.cloud.initialTimeout``: Initial time the MySQL connector should wait
-   before trying again to connect to the master. Default is 3600.
+   before trying again to connect to the source. Default is 3600.
 
    Example: ``db.cloud.initialTimeout=3600``
 
@@ -250,7 +250,7 @@
 The following limitations exist in the current implementation of this
 feature.
 
--  Slave hosts can not be monitored through CloudStack. You will need to
+-  Replica hosts can not be monitored through CloudStack. You will need to
    have a separate means of monitoring.
 
 -  Events from the database side are not integrated with the CloudStack
diff --git a/source/adminguide/storage.rst b/source/adminguide/storage.rst
index 5d082dc..361f6eb 100644
--- a/source/adminguide/storage.rst
+++ b/source/adminguide/storage.rst
@@ -105,6 +105,7 @@
 **Storage over-provisioning**                  NFS and iSCSI    NFS                  NFS                         No
 **SMB/CIFS**                                   No               No                   No                          Yes
 **Ceph/RBD**                                   No               No                   Yes                         No
+**PowerFlex/ScaleIO**                          No               No                   Yes                         No
 ============================================== ================ ==================== =========================== ============================
 
 XenServer uses a clustered LVM system to store VM images on iSCSI and
diff --git a/source/adminguide/systemvm.rst b/source/adminguide/systemvm.rst
index 46b95bc..6b5a533 100644
--- a/source/adminguide/systemvm.rst
+++ b/source/adminguide/systemvm.rst
@@ -812,6 +812,13 @@
 .. |vr-upgrade.png| image:: /_static/images/vr-upgrade.png
    :alt: Button to upgrade VR to use the new template.
 
+Migrating System VMs
+--------------------
+
+System VMs (any of the Console Proxy VM, Secondary Storage VM, Virtual Router or Load Balancer) can be migrated across hosts using migrateSysteVm API or migrate action in the UI. These VMs can be migrated between hosts of the same cluster only.
+
+Since CloudStack 4.16, for VMware, migration of System VMs can also be done to a destination host in a different cluster belonging to the same pod (in case of cluster-wide primary storage pools, this will cause the Root volume of the system VM to be migrated to the appropriate datastore in the new cluster). Storage migration of stopped System VMs is also supported.
+
 Troubleshoot networks from System VMs
 -------------------------------------
 .. |run-diagnostics-icon.png| image:: /_static/images/run-diagnostics-icon.png
diff --git a/source/adminguide/templates.rst b/source/adminguide/templates.rst
index ab85f9c..e15272a 100644
--- a/source/adminguide/templates.rst
+++ b/source/adminguide/templates.rst
@@ -177,11 +177,6 @@
             5.4 to support a CentOS 6.2 image will in general not work.
             In those cases you should choose Other.
 
-         .. note::
-            Since version 4.15, VMware templates do not allow users or administrators
-            selecting an OS Type when registering a template. The OS Type is
-            obtained from the template after it is registered.
-
 
    -  **Public**. Choose Yes to make this template accessible to all
       users of this CloudStack installation. The template will appear in
@@ -249,10 +244,12 @@
       available, or All Zones to make it available throughout
       CloudStack.
 
-   -  **Bootable**. Select if this ISO is bootable. If not passed explicitly,
-      its assumed to be true.
+   - **Read VM settings from OVA**. (VMware only) If selected, the registered template will allow users to deploy VMs as clones of the template, including all their properties, configurations, end-user license agreements, disks, os type, etc. This option allows users to register virtual appliances. See `Support for Virtual Appliances <virtual_machines.html#about-virtual-appliances>`_.
 
-   -  **OS Type**: (Except for VMware). This helps CloudStack and the hypervisor perform
+      .. note:: 
+         When this option is selected the following fields are hidden: Root disk controller, Keyboard type and OS Type. 
+
+   -  **OS Type**: This helps CloudStack and the hypervisor perform
       certain operations and make assumptions that improve the
       performance of the guest. Select one of the following:
 
@@ -267,8 +264,8 @@
             those cases you should choose Other.
 
          .. note::
-            Since version 4.15, VMware templates do not allow users or administrators
-            selecting an OS Type when registering a template. The OS Type is
+            Since version 4.15.1, VMware templates do not allow users or administrators
+            selecting an OS Type when registering a template if the option 'Read VM settings from OVA' is selected. In this case, the OS Type is
             obtained from the template after it is registered.
 
    -  **Hypervisor**: The supported hypervisors are listed. Select the
@@ -293,11 +290,13 @@
 
 Note that uploading multi-disk templates is also supported.
 
-.. note::
-   VMware only: If the selected template contains OVF properties, different deployment options or configurations,
-   multiple NICs or end-user license agreements, then the wizard will display these properties.
+.. note:: 
+   VMware only: If the template is registered with the option 'Read VM settings
+   from OVA' then the VM deployment wizard will display all the available OVF
+   properties, different deployment options or configurations, multiple NICs or
+   end-user license agreements.
 
-   See `“Support for Virtual Appliances” <virtual_machines.html#support-for-virtual-appliances>`_.
+   See `Support for Virtual Appliances <virtual_machines.html#about-virtual-appliances>`_.
 
 
 
@@ -313,11 +312,6 @@
 For this feature to work, your SSVMs must be supporting HTTPS (for more info please visit `“Using a SSL Certificate for the Console Proxy”
 <systemvm.html#using-a-ssl-certificate-for-the-console-proxy>`_).
 
-.. note::
-   Since version 4.15, VMware templates do not allow users or administrators
-   selecting an OS Type when uploading a template. The OS Type is
-   obtained from the template after it is uploaded.
-
 Example GUI dialog of uploading Template/ISO from local (browser) is given below:
 
 |template-upload-from-local.png|
@@ -329,17 +323,17 @@
 Sharing templates and ISOs with other accounts/projects
 ----------------------------------------------
 
-When adding a template/ISO, the owner can choose to make template/ISO public or to keep it private. Once the template/ISO is created, the owner can choose to share this template/ISO so that other accounts/projects can also use the template/ISO.
+When adding a template/ISO, the owner can choose to make template/ISO public or to keep it private. Once the template/ISO is created, the owner can choose to share this template/ISO so that other accounts/projects can also use the template/ISO. 
 
-Currently, the owner can share his template/ISO with:
-  - other accounts inside his own domain (i.e. can't share the template/ISO with other accounts in the subdomain of his domain or any other domains)
-  - projects where he belongs to (i.e. projects where he is the owner/creator or other projects where he has been joined)
+Currently, the owners can share their template/ISO with:
+  - other accounts inside their own domain (i.e. can't share the template/ISO with other accounts in the subdomain of their domain or any other domains)
+  - projects where they belongs to (i.e. projects where they are the owners/creators or other projects where they have been joined)
 
 Template/ISO permissions can be changed via updateTemplatePermissions/updateIsoPermissions API call or via GUI. It is supported to add, remove or reset (remove all) template/ISO permissions.
 
 When adding or removing permissions to/from a template/ISO, it is required to specify account/project name which is being added/removed from the template/ISO permissions.
 
-Global setting "allow.user.view.all.domain.accounts" has a default value of "false". This makes sure that when a regular user (of a "User" role) wants to share a template/ISO via GUI, he will not be shown the list of all accounts in his domain and he will need to know the name of the destination account with which he is sharing the template/ISO. This makes sense in public clouds where each account of a single domain is a different tenant/customer and privacy is imperative. In this case, the user will be presented with an input field to enter the account name, as on the images below:
+Global setting "allow.user.view.all.domain.accounts" has a default value of "false". This makes sure that when the regular users (of a "User" role) wants to share a template/ISO via GUI,  they will not be shown the list of all accounts in their domain and they will need to know the name of the destination account with which they are sharing the template/ISO. This makes sense in public clouds where each account of a single domain is a different tenant/customer and privacy is imperative. In this case, the user will be presented with an input field to enter the account name, as on the images below:
 
 .. warning::
       The images displayed below refer to template permissions, but the same applies for ISO permissions.
@@ -352,7 +346,7 @@
 
 Revoking permissions from account "user2"
 
-But in environments where privacy within a domain is not an issue, setting "allow.user.view.all.domain.accounts" setting to "true" will make sure that the user, who is sharing the template, will be presented a more user-friendly multi-select list, listing all the accounts in his domain. This is shown in the images below;
+But in environments where privacy within a domain is not an issue, setting "allow.user.view.all.domain.accounts" setting to "true" will make sure that the user, who is sharing the template, will be presented a more user-friendly multi-select list, listing all the accounts in their domain. This is shown in the images below;
 
 |template-permissions-update-1.png|
 
diff --git a/source/adminguide/templates/_create_linux.rst b/source/adminguide/templates/_create_linux.rst
index 24a9061..217556f 100644
--- a/source/adminguide/templates/_create_linux.rst
+++ b/source/adminguide/templates/_create_linux.rst
@@ -20,7 +20,7 @@
 Linux templates should be prepared using this documentation in order to
 prepare your linux VMs for template deployment. For ease of
 documentation, the VM which you are configuring the template on will be
-referred to as "Template Master". This guide currently covers legacy
+referred to as "Template Primary". This guide currently covers legacy
 setups which do not take advantage of UserData and cloud-init and
 assumes openssh-server is installed during installation.
 
@@ -70,7 +70,7 @@
       BOOTPROTO=dhcp
       ONBOOT=yes
 
-   The next steps updates the packages on the Template Master.
+   The next steps updates the packages on the Template Primary.
 
    -  Ubuntu
 
@@ -165,14 +165,14 @@
 
    .. warning:: 
       The following steps should be run when you are ready to template 
-      your Template Master. If the Template Master is rebooted during 
+      your Template Primary. If the Template Primary is rebooted during 
       these steps you will have to run all the steps again. At the end 
-      of this process the Template Master should be shutdown and the 
+      of this process the Template Primary should be shutdown and the 
       template created in order to create and deploy the final template.
 
 #. **Remove the udev persistent device rules**
 
-   This step removes information unique to your Template Master such as
+   This step removes information unique to your Template Primary such as
    network MAC addresses, lease files and CD block devices, the files
    are automatically generated on next boot.
 
@@ -202,7 +202,7 @@
 
 #. **Cleaning log files**
 
-   It is good practice to remove old logs from the Template Master.
+   It is good practice to remove old logs from the Template Primary.
 
    .. code:: bash
 
@@ -215,7 +215,7 @@
 
    In order for the Ubuntu DHCP script to function and the CentOS
    dhclient to set the VM hostname they both require the Template
-   Master's hostname to be "localhost", run the following commands to
+   Primary's hostname to be "localhost", run the following commands to
    change the hostname.
 
    .. code:: bash
@@ -243,7 +243,7 @@
 
 #. **Shutdown the VM**
 
-   Your now ready to shutdown your Template Master and create a
+   Your now ready to shutdown your Template Primary and create a
    template!
 
    .. code:: bash
diff --git a/source/adminguide/templates/_password.rst b/source/adminguide/templates/_password.rst
index a09c127..1b39ae9 100644
--- a/source/adminguide/templates/_password.rst
+++ b/source/adminguide/templates/_password.rst
@@ -48,8 +48,8 @@
 
 #. Download the latest version of the cloud-set-guest-password script from the repository:
 
-   -  `https://github.com/apache/cloudstack/blob/master/setup/bindir/cloud-set-guest-password.in 
-      <https://github.com/apache/cloudstack/blob/master/setup/bindir/cloud-set-guest-password.in>`_
+   -  `https://github.com/apache/cloudstack/blob/main/setup/bindir/cloud-set-guest-password.in 
+      <https://github.com/apache/cloudstack/blob/main/setup/bindir/cloud-set-guest-password.in>`_
 
 #. Rename the file:
 
diff --git a/source/adminguide/virtual_machines.rst b/source/adminguide/virtual_machines.rst
index 3d69363..2fa1a37 100644
--- a/source/adminguide/virtual_machines.rst
+++ b/source/adminguide/virtual_machines.rst
@@ -38,8 +38,8 @@
 
 .. note::
    You can append the display name of a guest VM to its internal name.
-   For more information, see `“Appending a Display Name to the Guest VM’s
-   Internal Name” <#appending-a-display-name-to-the-guest-vms-internal-name>`_.
+   For more information, see `“Appending a Name to the Guest VM’s
+   Internal Name” <#appending-a-name-to-the-guest-vms-internal-name>`_.
 
 Guest VMs can be configured to be Highly Available (HA). An HA-enabled
 VM is monitored by the system. If the system detects that the VM is
@@ -323,39 +323,29 @@
 #. Click Apply.
 
 
-Appending a Display Name to the Guest VM’s Internal Name
-----------------------------------------------------------
+Appending a Name to the Guest VM’s Internal Name
+--------------------------------------------------
 
-Every guest VM has an internal name. The host uses the internal name to
-identify the guest VMs. CloudStack gives you an option to provide a
-guest VM with a display name. You can set this display name as the
-internal name so that the vCenter can use it to identify the guest VM. A
-new global parameter, vm.instancename.flag, has now been added to
-achieve this functionality.
+Every guest VM has an internal name. The host uses the internal name to identify the guest VMs. CloudStack gives you an option to provide a guest VM with a  name. You can set this name as the internal name so that the vCenter can use it to identify the guest VM. A new global parameter, vm.instancename.flag, has now been added to achieve this functionality.
 
-The default format of the internal name is
-i-<user\_id>-<vm\_id>-<instance.name>, where instance.name is a global
-parameter. However, If vm.instancename.flag is set to true, and if a
-display name is provided during the creation of a guest VM, the display
-name is appended to the internal name of the guest VM on the host. This
-makes the internal name format as i-<user\_id>-<vm\_id>-<displayName>.
-The default value of vm.instancename.flag is set to false. This feature
-is intended to make the correlation between instance names and internal
-names easier in large data center deployments.
+The default format of the internal name is i-<account\_id>-<vm\_id>-<i.n>, where i.n is the value of the global configuration - instance.name. However, If vm.instancename.flag is set to true, and if a name is provided during the creation of a guest VM, the name is appended to the internal name of the guest VM on the host. This makes the internal name format as i-<account\_id>-<vm\_id>-<name>. The default value of vm.instancename.flag is set to false. This feature is intended to make the correlation between instance names and internal names easier in large data center deployments.
 
-The following table explains how a VM name is displayed in different
-scenarios.
+The following table explains how a VM name is displayed in different scenarios.
 
 .. cssclass:: table-striped table-bordered table-hover
 
-============================= ======================= ==================== ===================================== ==========================
-User-Provided Display Name    vm.instancename.flag    Hostname on the VM   Name on vCenter                       Internal Name
-============================= ======================= ==================== ===================================== ==========================
-Yes                           True                    Display name         i-<user\_id>-<vm\_id>-displayName     i-<user\_id>-<vm\_id>-displayName
-No                            True                    UUID                 i-<user\_id>-<vm\_id>-<instance.name> i-<user\_id>-<vm\_id>-<instance.name>
-Yes                           False                   Display name         i-<user\_id>-<vm\_id>-<instance.name> i-<user\_id>-<vm\_id>-<instance.name>
-No                            False                   UUID                 i-<user\_id>-<vm\_id>-<instance.name> i-<user\_id>-<vm\_id>-<instance.name>
-============================= ======================= ==================== ===================================== ==========================
+======================== =============================== ============================== ============================== ===========================
+**User-Provided Name**   Yes                             No                             Yes                            No
+**vm.instancename.flag** True                            True                           False                          False
+**Name**                 <Name>                          <i.n>-<UUID>                   <Name>                         <i.n>-<UUID>
+**Display Name**         <Display name>                  <i.n>-<UUID>                   <Display name>                 <i.n>-<UUID>
+**Hostname on the VM**   <Name>                          <i.n>-<UUID>                   <Name>                         <i.n>-<UUID>
+**Name on vCenter**      i-<account\_id>-<vm\_id>-<Name> <i.n>-<UUID>                   i-<account\_id>-<vm\_id>-<i.n> i-<account\_id>-<vm\_id>-<i.n>
+**Internal Name**        i-<account\_id>-<vm\_id>-<Name> i-<account\_id>-<vm\_id>-<i.n> i-<account\_id>-<vm\_id>-<i.n> i-<account\_id>-<vm\_id>-<i.n>
+======================== =============================== ============================== ============================== ===========================
+
+   .. note::
+      <i.n> represents the value of the global configuration - instance.name
 
 
 Changing the Service Offering for a VM
@@ -751,20 +741,25 @@
 Each user VM has a set of "details" associated with it (as visible via listVirtualMachine API call) - those "details" are shown on the "Settings" tab of the VM in the GUI (words "setting(s)" and "detail(s)" are here used interchangeably).
 
 The Settings tab is always present/visible, but settings can be changed only when the VM is in a Stopped state.
-Some VM details/settings can be hidden via "user.vm.blacklisted.details" global setting (you can find below the list of those hidden by default).
+Some VM details/settings can be hidden for users via "user.vm.denied.details" global setting. VM details/settings can also be made read-only for users using "user.vm.readonly.details" global setting. List of default hidden and read-only details/settings is given below.
 
 .. note::
    Since version 4.15, VMware VM settings for the ROOT disk controller, NIC adapter type and data disk controller are populated automatically with the values inherited from the template.
 
 When adding a new setting or modifying the existing ones, setting names are shown/offered in a drop-down list, as well as their possible values (with the exception of boolean or numerical values).
 
-Read-only details/settings that are hidden by default:
+Details/settings that are hidden for users by default:
 
 - rootdisksize
 - cpuOvercommitRatio
 - memoryOvercommitRatio
 - Message.ReservedCapacityFreed.Flag
 
+Details/settings that are read-only for users by default:
+
+- dataDiskController
+- rootDiskController
+
 An example list of settings as well as their possible values are shown on the images below:
 
 |vm-settings-dropdown-list.png|
@@ -917,11 +912,13 @@
    VM snapshots are deleted automatically when a VM is destroyed. You don't
    have to manually delete the snapshots in this case.
 
+
 Support for Virtual Appliances
 ==============================
 
 .. include:: virtual_machines/virtual_appliances.rst
 
+
 Unmanaging Virtual Machines
 ===========================
 
diff --git a/source/adminguide/virtual_machines/user-data.rst b/source/adminguide/virtual_machines/user-data.rst
index 4f5208e..3fe6511 100644
--- a/source/adminguide/virtual_machines/user-data.rst
+++ b/source/adminguide/virtual_machines/user-data.rst
@@ -117,12 +117,7 @@
 
    .. code:: yaml
 
-      datasource:
-        CloudStack: {}
-        None: {}
-      datasource_list:
-        - CloudStack
-
+      datasource_list: [ CloudStack, None ]
 
 Custom user-data example
 ~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/source/adminguide/virtual_machines/virtual_appliances.rst b/source/adminguide/virtual_machines/virtual_appliances.rst
index e14d759..5d9ad26 100644
--- a/source/adminguide/virtual_machines/virtual_appliances.rst
+++ b/source/adminguide/virtual_machines/virtual_appliances.rst
@@ -1,3 +1,18 @@
+.. 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.
+
 About Virtual Appliances
 ------------------------
 
@@ -8,9 +23,7 @@
 Virtual Appliances are supported only on VMware.
 
 .. note::
-    Since version 4.15, all the new templates registered are treated as virtual appliance templates.
-
-    To keep the existing functionality, all the templates registered before version 4.15 are not affected by this changes.
+    Since version 4.15.1, administrators and users can register virtual appliance templates by selecting the option 'Read VM Settings from OVA' on the template registration.
 
 Deployment options (configurations)
 -----------------------------------
diff --git a/source/conceptsandterminology/concepts.rst b/source/conceptsandterminology/concepts.rst
index 6649d58..d938b91 100644
--- a/source/conceptsandterminology/concepts.rst
+++ b/source/conceptsandterminology/concepts.rst
@@ -440,6 +440,9 @@
 Ceph/RBD storage is only supported by the KVM hypervisor. It can be used
 as Zone-wide Primary Storage.
 
+PowerFlex/ScaleIO (v3.5) is only supported by the KVM hypervisor. It can be used
+as Cluster-wide or Zone-wide Primary Storage.
+
 CloudStack is designed to work with all standards-compliant iSCSI and
 NFS servers that are supported by the underlying hypervisor, including,
 for example:
@@ -452,6 +455,8 @@
 
 -  Scale Computing for NFS
 
+-  Dell EMC PowerFlex™ (v3.5)
+
 If you intend to use only local disk for your installation, you can skip
 adding separate primary storage.
 
diff --git a/source/conceptsandterminology/index.rst b/source/conceptsandterminology/index.rst
index 9e57598..8272338 100644
--- a/source/conceptsandterminology/index.rst
+++ b/source/conceptsandterminology/index.rst
@@ -13,7 +13,7 @@
    specific language governing permissions and limitations
    under the License.
 
-.. CloudStack Installation Documentation master file, created by
+.. CloudStack Installation Documentation main file, created by
    sphinx-quickstart on Sat Jan 25 15:15:31 2014.
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
diff --git a/source/conceptsandterminology/locale/pot/ansible.pot b/source/conceptsandterminology/locale/pot/ansible.pot
index 0ea3a7e..53201ae 100644
--- a/source/conceptsandterminology/locale/pot/ansible.pot
+++ b/source/conceptsandterminology/locale/pot/ansible.pot
@@ -363,7 +363,7 @@
 
 #: ../../ansible.rst:395
 # 55f1b360102642c992d5a63319701117
-msgid "In a production deployment, the Ansible playbooks would configure multiple management servers connected to master/slave replicating MySQL databases along with any other infrastructure components required and deploy and configure the hypervisor hosts. We would also have a dedicated file describing the hosts in the environment and a dedicated file containing variables which describe the environment."
+msgid "In a production deployment, the Ansible playbooks would configure multiple management servers connected to the source/replica replicating MySQL databases along with any other infrastructure components required and deploy and configure the hypervisor hosts. We would also have a dedicated file describing the hosts in the environment and a dedicated file containing variables which describe the environment."
 msgstr ""
 
 #: ../../ansible.rst:402
diff --git a/source/conceptsandterminology/locale/pot/networking.pot b/source/conceptsandterminology/locale/pot/networking.pot
index c6241c5..edb353b 100644
--- a/source/conceptsandterminology/locale/pot/networking.pot
+++ b/source/conceptsandterminology/locale/pot/networking.pot
@@ -23,7 +23,7 @@
 
 #: ../../networking/autoscale_without_netscaler.rst:4
 # c9d0712245864f35982f232729bae189
-msgid "This feature is currently only available on the master branch and will be released in the 4.4 release."
+msgid "This feature is currently only available on the main branch and will be released in the 4.4 release."
 msgstr ""
 
 #: ../../networking/autoscale_without_netscaler.rst:7
@@ -1514,7 +1514,7 @@
 
 #: ../../networking/ovs-plugin.rst:58
 # aec6d4e64ef34c9785419abc0d40a4ff
-msgid "To make sure that the native bridge module will not interfere with openvSwitch the bridge module should be added to the blacklist. See the modprobe documentation for your distribution on where to find the blacklist. Make sure the module is not loaded either by rebooting or executing rmmod bridge before executing next steps."
+msgid "To make sure that the native bridge module will not interfere with openvSwitch the bridge module should be added to the denylist. See the modprobe documentation for your distribution on where to find the denylist. Make sure the module is not loaded either by rebooting or executing rmmod bridge before executing next steps."
 msgstr ""
 
 #: ../../networking/ovs-plugin.rst:64
diff --git a/source/conf.py b/source/conf.py
index 8bf6708..55fb01d 100644
--- a/source/conf.py
+++ b/source/conf.py
@@ -24,9 +24,9 @@
 author = 'Apache CloudStack Project'
 
 # The short X.Y version
-version = '4.15'
+version = '4.16'
 # The full version, including alpha/beta/rc tags
-release = '4.15.1.0'
+release = '4.16.0.0'
 
 rst_epilog = """
 .. include:: /_global.rst 
diff --git a/source/developersguide/ansible.rst b/source/developersguide/ansible.rst
index c0627db..21eb38b 100644
--- a/source/developersguide/ansible.rst
+++ b/source/developersguide/ansible.rst
@@ -422,7 +422,7 @@
 -----------------------------------------------------------
 
 In a production deployment, the Ansible playbooks would configure
-multiple management servers connected to master/slave replicating MySQL
+multiple management servers connected to the source/replica replicating MySQL
 databases along with any other infrastructure components required and
 deploy and configure the hypervisor hosts. We would also have a
 dedicated file describing the hosts in the environment and a dedicated
diff --git a/source/developersguide/get_help.rst b/source/developersguide/get_help.rst
index e10d2e5..18466cb 100644
--- a/source/developersguide/get_help.rst
+++ b/source/developersguide/get_help.rst
@@ -27,14 +27,6 @@
    discussions about development and the project itself happen. This is a high
    volume list.
 
-
-Or on one of the following IRC channels on irc.freenode.net:
-
--  #cloudstack - General Apache CloudStack conversation and end user support
--  #cloudstack-dev - Development discussions
--  #cloudstack-meeting - Weekly and ad-hoc meeting room for the Apache CloudStack community
-
-
 Documentation Available
 -----------------------
 
diff --git a/source/developersguide/index.rst b/source/developersguide/index.rst
index 343dd44..85ac882 100644
--- a/source/developersguide/index.rst
+++ b/source/developersguide/index.rst
@@ -13,7 +13,7 @@
    specific language governing permissions and limitations
    under the License.
 
-.. CloudStack Installation Documentation master file, created by
+.. CloudStack Installation Documentation main file, created by
    sphinx-quickstart on Sat Jan 25 15:15:31 2014.
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
diff --git a/source/index.rst b/source/index.rst
index ba69e42..fc0fb47 100644
--- a/source/index.rst
+++ b/source/index.rst
@@ -13,7 +13,7 @@
    specific language governing permissions and limitations
    under the License.
 
-.. Apache CloudStack documentation master file, created by
+.. Apache CloudStack documentation main file, created by
    sphinx-quickstart on Fri Jul 20 17:32:34 2018.
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
diff --git a/source/installguide/building_from_source.rst b/source/installguide/building_from_source.rst
index 1566d61..19080f5 100644
--- a/source/installguide/building_from_source.rst
+++ b/source/installguide/building_from_source.rst
@@ -275,14 +275,15 @@
    $ mvn -P deps
 
 Now that we have resolved the dependencies we can move on to building
-CloudStack and packaging them into DEBs by issuing the following
-command.
+CloudStack and packaging them into DEBs by running the script in ``packaging`` folder:
+
 
 .. parsed-literal::
 
-   $ dpkg-buildpackage -uc -us
+   $ cd packaging/
+   $ ./build-deb.sh
 
-This command will build the following debian packages. You should have
+This script will build the following debian packages. You should have
 all of the following:
 
 .. parsed-literal::
@@ -579,3 +580,11 @@
 #. Once you've built CloudStack with the ``noredist`` profile, you can
    package it using the `“Building RPMs from Source” <#building-rpms-from-source>`_
    or `“Building DEB packages” <#building-deb-packages>`_ instructions.
+
+.. note::
+
+   In case you are building debian packages via script ``packaging/build-deb.sh``, you will need to export the following configuration:
+
+.. parsed-literal::
+
+   $ export ACS_BUILD_OPTS="-Dnoredist -Dnonoss"
diff --git a/source/installguide/configuration.rst b/source/installguide/configuration.rst
index 067c284..402e70a 100644
--- a/source/installguide/configuration.rst
+++ b/source/installguide/configuration.rst
@@ -276,6 +276,10 @@
       networks and providing custom network offerings such as firewall,
       VPN, or load balancer support.
 
+   -  **Security Groups.** You can choose to enable Security Groups in your zone.
+      For further informations regarding Security Groups and there prequesits
+      please refer to the Security Groups section in the documentation.
+
 #. The rest of the steps differ depending on whether you chose Basic or
    Advanced. Continue with the steps that apply to you:
 
@@ -498,7 +502,7 @@
    -  **Name.** The name of the storage device.
 
    -  **Protocol.** For XenServer, choose either NFS, iSCSI, or
-      PreSetup. For KVM, choose NFS, SharedMountPoint,CLVM, or RBD. For
+      PreSetup. For KVM, choose NFS, SharedMountPoint,CLVM, RBD or custom (for PowerFlex). For
       vSphere choose either VMFS (iSCSI or FiberChannel) or NFS. The
       remaining fields in the screen vary depending on what you choose
       here.
@@ -512,36 +516,37 @@
 
    -  **Name.** A name for the zone.
 
-   -  **DNS 1 and 2.** These are DNS servers for use by guest VMs in the
+   -  **DNS 1 and 2.** (DNS 1 obligatory)These are DNS servers for use by guest VMs in the
       zone. These DNS servers will be accessed via the public network
       you will add later. The public IP addresses for the zone must have
       a route to the DNS server named here.
 
-   -  **Internal DNS 1 and Internal DNS 2.** These are DNS servers for
-      use by system VMs in the zone(these are VMs used by CloudStack
-      itself, such as virtual routers, console proxies,and Secondary
-      Storage VMs.) These DNS servers will be accessed via the
-      management traffic network interface of the System VMs. The
-      private IP address you provide for the pods must have a route to
+   -  **Internal DNS 1 and Internal DNS 2.** (DNS 1 obligatory)
+      These are DNS servers for use by system VMs in the zone(these are 
+      VMs used by CloudStack itself, such as virtual routers, console
+      proxies,and Secondary Storage VMs.) These DNS servers will be accessed via the
+      management traffic network interface of the System VMs. The private
+      IP address you provide for the pods must have a route to
       the internal DNS server named here.
 
-   -  **Network Domain.** (Optional) If you want to assign a special
+   -  **Network Domain.** If you want to assign a special
       domain name to the guest VM network, specify the DNS suffix.
 
-   -  **Guest CIDR.** This is the CIDR that describes the IP addresses
-      in use in the guest virtual networks in this zone. For example,
-      10.1.1.0/24. As a matter of good practice you should set different
-      CIDRs for different zones. This will make it easier to set up VPNs
-      between networks in different zones.
+   -  **Hypervisor.** (Obligatory) Choose the hypervisor for the first
+      cluster in the zone. You can add clusters with different hypervisors
+      later, after you finish adding the zone.
 
-   -  **Hypervisor.** (Introduced in version 3.0.1) Choose the
-      hypervisor for the first cluster in the zone. You can add clusters
-      with different hypervisors later, after you finish adding the
-      zone.
+   -  **Dedicated.** A dedicated zone is available to selected users or groups 
+      within a domain. Only specified users or grous in that domain will 
+      be allowed to create guest VMs in this zone.
 
-   -  **Public.** A public zone is available to all users. A zone that
-      is not public will be assigned to a particular domain. Only users
-      in that domain will be allowed to create guest VMs in this zone.
+   -  **Enable local storage for User VMs.** Give the user the opperunity to 
+      provide local storage (physical storage on the host) for User VMs to store data.
+
+   -  **Enable local storage for System VMs.** Give the system the opperunity to 
+      use local storage (physical storage on the hosts) for System VMs.
+	  
+#. Click Next.
 
 #. Choose which traffic types will be carried by the physical network.
 
@@ -580,39 +585,37 @@
 
 #. Click Next.
 
-#. Configure the IP range for public Internet traffic. Enter the
-   following details, then click Add. If desired, you can repeat this
-   step to add more public Internet IP ranges. When done, click Next.
-
-   -  **Gateway.** The gateway in use for these IP addresses.
-
-   -  **Netmask.** The netmask associated with this IP range.
-
-   -  **VLAN.** The VLAN that will be used for public traffic.
-
-   -  **Start IP/End IP.** A range of IP addresses that are assumed to
-      be accessible from the Internet and will be allocated for access
-      to guest networks.
-
 #. In a new zone, CloudStack adds the first pod for you. You can always
    add more pods later. For an overview of what a pod is, see :ref:`about-pods`
 
    To configure the first pod, enter the following, then click Next:
 
-   -  **Pod Name.** A name for the pod.
+   -  **Pod Name.** (Obligatory) A name for the pod.
 
-   -  **Reserved system gateway.** The gateway for the hosts in that
+   -  **Reserved system gateway.** (Obligatory) The gateway for the hosts in that
       pod.
 
-   -  **Reserved system netmask.** The network prefix that defines the
+   -  **Reserved system netmask.** (Obligatory) The network prefix that defines the
       pod's subnet. Use CIDR notation.
 
-   -  **Start/End Reserved System IP.** The IP range in the management
-      network that CloudStack uses to manage various system VMs, such as
-      Secondary Storage VMs, Console Proxy VMs, and DHCP. For more
-      information, see :ref:`about_system_reserved_ip_addresses`
-#. Specify a range of VLAN IDs to carry guest traffic for each physical
-   network (see VLAN Allocation Example ), then click Next.
+   -  **Start/End Reserved System IP.** (Start Reserved System IP - obligatory) 
+      The IP range in the management network that CloudStack uses to manage 
+      various system VMs, such as Secondary Storage VMs, Console Proxy VMs, and DHCP.
+      For more information, see :ref:`about_system_reserved_ip_addresses`
+
+#. Configure the IP range for guest traffic. Guest network traffic is 
+   communication between end-user virtual machines. Enter the
+   following details, then click Add. When done, click Next.
+
+   -  **Guest Gateway.** The gateway in use for these IP addresses.
+
+   -  **Guest Netmask.** The netmask associated with this IP range.
+
+   -  **Guest Start IP/ GuestEnd IP.** A range of IP addresses that are assumed to
+      be accessible from the Internet and will be allocated for access
+      to guest networks.
+
+   -  **VLAN / VNI ID.** The VLAN / VNI ID's that will be used for guest traffic.
 
 #. In a new pod, CloudStack adds the first cluster for you. You can
    always add more clusters later. For an overview of what a cluster is,
@@ -620,15 +623,7 @@
 
    To configure the first cluster, enter the following, then click Next:
 
-   -  **Hypervisor.** (Version 3.0.0 only; in 3.0.1, this field is read
-      only) Choose the type of hypervisor software that all hosts in
-      this cluster will run. If you choose VMware, additional fields
-      appear so you can give information about a vSphere cluster. For
-      vSphere servers, we recommend creating the cluster of hosts in
-      vCenter and then adding the entire cluster to CloudStack. See Add
-      Cluster: vSphere .
-
-   -  **Cluster name.** Enter a name for the cluster. This can be text
+   -  **Cluster name.** (Obligatory) Enter a name for the cluster. This can be text
       of your choosing and is not used by CloudStack.
 
 #. In a new cluster, CloudStack adds the first host for you. You can
@@ -652,14 +647,19 @@
 
    To configure the first host, enter the following, then click Next:
 
-   -  **Host Name.** The DNS name or IP address of the host.
+   -  **Host Name.** (Obligatory) The DNS name or IP address of the host.
 
-   -  **Username.** Usually root.
+   -  **Username.** (Obligatory) Username of a user who has administrator / root privilidges on 
+      the specified host (using Linux-hosts usually root).
 
-   -  **Password.** This is the password for the user named above (from
+   -  **Password.** (Obligatory) This is the password for the user named above (from
       your XenServer or KVM install).
 
-   -  **Host Tags.** (Optional) Any labels that you use to categorize
+   .. note::
+      For security reasons there are ways to use non-adminstrative users for
+      adding a host. Please refer to the hypervisor setup guides for further information.	  
+
+   -  **Host Tags.** Any labels that you use to categorize
       hosts for ease of maintenance. For example, you can set to the
       cloud's HA tag (set in the ha.tag global configuration parameter)
       if you want this host to be used only for VMs with the "high
@@ -674,58 +674,59 @@
    To configure the first primary storage server, enter the following,
    then click Next:
 
-   -  **Name.** The name of the storage device.
+   -  **Name.** (Obligatory) The name of the storage device.
 
-   -  **Protocol.** For XenServer, choose either NFS, iSCSI, or
-      PreSetup. For KVM, choose NFS, SharedMountPoint, CLVM, and RBD.
+   -  **Protocol.** (Obligatory) For XenServer, choose either NFS, iSCSI, or
+      PreSetup. For KVM, choose NFS, SharedMountPoint, CLVM, RBD or custom (for PowerFlex).
+
       For vSphere, choose either NFS, PreSetup (VMFS - iSCSI/FiberChannel, vSAN, vVols) or DatastoreCluster.
       The remaining fields in the screen vary depending on what you choose here.
 
       .. cssclass:: table-striped table-bordered table-hover
 
       ===================  ===========================================================================
-      NFS                  -  **Server.** The IP address or DNS name of the storage device.
+      NFS                  -  **Server.** (Obligatory) The IP address or DNS name of the storage device.
 
-                           -  **Path.** The exported path from the server.
+                           -  **Path.** (Obligatory) The exported path from the server.
 
-                           -  **Tags (optional).** The comma-separated list of tags for this
+                           -  **Tags.** The comma-separated list of tags for this
                               storage device. It should be an equivalent set or superset of
                               the tags on your disk offerings.
 
-      iSCSI                -  **Server.** The IP address or DNS name of the storage device.
+      iSCSI                -  **Server.** (Obligatory) The IP address or DNS name of the storage device.
 
-                           -  **Target IQN.** The IQN of the target. For example,
+                           -  **Target IQN.** (Obligatory) The IQN of the target. For example,
                               iqn.1986-03.com.sun:02:01ec9bb549-1271378984.
 
-                           -  **Lun.** The LUN number. For example, 3.
+                           -  **Lun.** (Obligatory) The LUN number. For example, 3.
 
-                           -  **Tags (optional).** The comma-separated list of tags for this
+                           -  **Tags.** The comma-separated list of tags for this
                               storage device. It should be an equivalent set or superset of
                               the tags on your disk offerings.
 
-      preSetup             -  **Server.** The IP address or DNS name of the storage device.
+      preSetup             -  **Server.** (Obligatory) The IP address or DNS name of the storage device.
 
-                           -  **SR Name-Label.** Enter the name-label of the SR that has been
+                           -  **SR Name-Label.** (Obligatory) Enter the name-label of the SR that has been
                               set up outside CloudStack.
 
-                           -  **Tags (optional).** The comma-separated list of tags for this
+                           -  **Tags.** The comma-separated list of tags for this
                               storage device. It should be an equivalent set or superset of
                               the tags on your disk offerings.
 
-      SharedMountPoint     -  **Path.** The path on each host that is where this primary
+      SharedMountPoint     -  **Path.** (Obligatory) The path on each host that is where this primary
                               storage is mounted. For example, "/mnt/primary".
 
-                           -  **Tags (optional).** The comma-separated list of tags for this
+                           -  **Tags.** The comma-separated list of tags for this
                               storage device. It should be an equivalent set or superset of
                               the tags on your disk offerings.
 
-      VMFS                 -  **Server.** The IP address or DNS name of the vCenter server.
+      VMFS                 -  **Server.** (Obligatory) The IP address or DNS name of the vCenter server.
 
-                           -  **Path.** A combination of the datacenter name and the
+                           -  **Path.** (Obligatory) A combination of the datacenter name and the
                               datastore name. The format is "/" datacenter name "/" datastore
                               name. For example, "/cloud.dc.VM/cluster1datastore".
 
-                           -  **Tags (optional).** The comma-separated list of tags for this
+                           -  **Tags.** The comma-separated list of tags for this
                               storage device. It should be an equivalent set or superset of
                               the tags on your disk offerings.
       ===================  ===========================================================================
@@ -1123,7 +1124,7 @@
    -  **Name.** The name of the storage device.
 
    -  **Protocol.** For XenServer, choose either NFS, iSCSI, or
-      PreSetup. For KVM, choose NFS or SharedMountPoint. For vSphere
+      PreSetup. For KVM, choose NFS, SharedMountPoint or custom (for PowerFlex). For vSphere
       choose either NFS, PreSetup (VMFS - iSCSI/FiberChannel, vSAN, vVols) or DatastoreCluster. For Hyper-V,
       choose SMB.
 
@@ -1200,6 +1201,10 @@
    primary storage (although most of its features are available through the
    CloudStack UI).
 
+
+SolidFire Plug-in
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 .. note::
    The SolidFire storage plug-in for CloudStack is part of the standard
    CloudStack install. There is no additional work required to add this
@@ -1264,6 +1269,65 @@
    by (Min IOPS \* clusterDefaultBurstIopsPercentOfMaxIops parameter)
    (can be a decimal value)]
 
+PowerFlex Plug-in
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This plugin enables Dell EMC PowerFlex™ (v3.5) storage pools as a managed
+primary storage in CloudStack for KVM hypervisor.
+
+The PowerFlex/ScaleIO storage installation/setup and creation of the PowerFlex storage pool is
+out of scope of this document. For PowerFlex storage installation instructions, Refer
+to PowerFlex product documentation:
+https://www.dell.com/support/home/en-in/product-support/product/scaleio/docs.
+
+To know more details about PowerFlex, refer to
+https://cpsdocs.dellemc.com/bundle/PF_KNOW/page/GUID-D6DFA46A-6085-47CE-88A9-B503EFC6CFD2.html.
+
+When this storage pool is used with Compute or Disk Offerings, an administrator is
+able to build an environment in which a root or data disk that a user creates leads
+to the dynamic creation of a PowerFlex volume. This volume has guaranteed performance
+with  the ScaleIO Data Client (SDC) limits specified in the offering using the details
+parameter keys: bandwidthLimitInMbps &iopsLimit (both defaulted to 0 - unlimited).
+Such a PowerFlex volume is associated with one (and only ever one) CloudStack volume,
+so performance of the CloudStack volume does not vary depending on how heavily other
+tenants are using the system. This volume migration is supported across PowerFlex storage
+pools only, which are on same or distinct storage instance.
+
+The createStoragePool API has been augmented to support plugable storage
+providers. The following is a list of parameters to use when adding
+storage to CloudStack that is based on the PowerFlex plug-in:
+
+-  command=createStoragePool
+
+-  scope=[zone | cluster]
+
+-  zoneid=[your zone id]
+
+-  podid=[your pod id, for cluster-wide primary storage]
+
+-  clusterid=[your cluster id, for cluster-wide primary storage]
+
+-  name=[name for primary storage]
+
+-  hypervisor=KVM
+
+-  provider=PowerFlex
+
+-  url=[storage pool url]
+
+The url parameter contains the PowerFlex storage pool details, specifed
+in the following format:
+
+powerflex://<API_USER>:<API_PASSWORD>@<GATEWAY>/<STORAGEPOOL>
+
+-	<API_USER>=[user name for API access to PowerFlex gateway]
+
+-	<API_PASSWORD>=[password for API access to PowerFlex gateway (password is URL encoded for example, '=' is represented as '%3D')]
+
+-	<GATEWAY>=[PowerFlex gateway host]
+
+-	<STORAGEPOOL>=[PowerFlex storage pool name (case sensitive)]
+
 
 .. _add-secondary-storage:
 
@@ -1577,8 +1641,8 @@
 zone      router.template.vmware                                     Name of the default router template on VMware.
 zone      enable.dynamic.scale.vm                                    Enable or diable dynamically scaling of a VM.
 zone      use.external.dns                                           Bypass internal DNS, and use the external DNS1 and DNS2
-zone      blacklisted.routes                                         Routes that are blacklisted cannot be used for creating static routes for a VPC Private Gateway.
-========  =========================================================  ======================================================================================================================================
+zone      denied.routes                                              Routes that are denied cannot be used for creating static routes for a VPC Private Gateway.
+========  =========================================================  ======================================================================================================================================  
 
 
 .. |provisioning-overview.png: Conceptual overview of a basic deployment| image:: /_static/images/provisioning-overview.png
diff --git a/source/installguide/hypervisor/kvm.rst b/source/installguide/hypervisor/kvm.rst
index e2d12ef..5f94750 100644
--- a/source/installguide/hypervisor/kvm.rst
+++ b/source/installguide/hypervisor/kvm.rst
@@ -147,6 +147,10 @@
 communicates with the Management server and controls all the instances
 on the host.
 
+.. note::
+   Depending on your distribution you might need to add the corresponding package repository
+   for CloudStack.
+
 First we start by installing the agent:
 
 In RHEL or CentOS:
@@ -355,7 +359,10 @@
    .. parsed-literal::
 
       $ service libvirt-bin restart
-
+      
+.. note::
+   Please note that Cloudstack will automatically perform basic configuration of the agent and libvirt when the host is added. This is relevant if you are 
+   planning to automate the deployment and configuration of your KVM hosts.
 
 Configure the Security Policies
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -467,6 +474,10 @@
 There are many ways to configure your networking. Even within the scope of a given 
 network mode.  Below are a few simple examples.
 
+.. note::
+   Since Ubuntu 20.04 the standard for manging network connections is by
+   using NetPlan YAML files. Please refer to the Ubuntu man pages for further
+   information and set up network connections figuratively.
 
 Network example for Basic Networks
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -648,11 +659,10 @@
 Network Example for Advanced Networks
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-In the Advanced networking mode is most common to have (at least) two physical interfaces.
-In this example we will again have the hypervisor management interface on cloudbr0 on the 
-untagged (native) VLAN. But now we will have a bridge on top of our additional interface (eth1)
-for public and guest traffic with no VLANs applied by us - CloudStack will add the VLANs
-as required.
+In the Advanced networking mode is most common to have (at least) two physical interfaces per hypervior-host.
+We will use the interface eth0 linked to the bridge 'cloudbr0' using the untagged (native) VLAN for hypervisor management.
+Additionally we configure the second interface for usage with the bridge 'cloudbr1' for public and guest traffic.
+This time there are no VLANs applied by us - CloudStack will add the VLANs as required during actual use.
 
 We again give the Hypervisor the IP-Address 192.168.42.11/24 with
 the gateway 192.168.42.1
@@ -697,7 +707,7 @@
    TYPE=Ethernet
    BRIDGE=cloudbr0
 
-We now have to configure the VLAN interfaces:
+We now have to configure the second network-interface for use in guest VLANs:
 
 .. parsed-literal::
 
@@ -713,7 +723,7 @@
    TYPE=Ethernet
    BRIDGE=cloudbr1
 
-Now we have the VLAN interfaces configured we can add the bridges on top
+Now we have the interfaces configured and can add the bridges on top
 of them.
 
 .. parsed-literal::
@@ -740,7 +750,7 @@
    NETMASK=255.255.255.0
    STP=yes
 
-We configure cloudbr1 as a plain bridge without an IP address
+We configure 'cloudbr1' as a plain bridge without an IP address or dedicated VLAN configuration.
 
 .. parsed-literal::
 
@@ -839,10 +849,10 @@
 ^^^^^^^^^
 
 To make sure that the native bridge module will not interfere with
-openvswitch the bridge module should be added to the blacklist. See the
-modprobe documentation for your distribution on where to find the
-blacklist. Make sure the module is not loaded either by rebooting or
-executing rmmod bridge before executing next steps.
+openvswitch the bridge module should be added to the denylist (likely named
+'denylist') see the modprobe documentation for your distribution on 
+where to find the denylist. Make sure the module is not loaded either 
+by rebooting or executing rmmod bridge before executing next steps.
 
 The network configurations below depend on the ifup-ovs and ifdown-ovs
 scripts which are part of the openvswitch installation. They should be
@@ -1091,6 +1101,16 @@
 .. note::
    By default UFW is not enabled on Ubuntu. Executing these commands with the
    firewall disabled does not enable the firewall.
+   
+   If you have an issue with ufw while using a bridged connection, 
+   add those two lines at the end of the /etc/ufw/before.rules just before COMMIT
+   
+.. parsed-literal::
+   sudo vi /etc/ufw/before.rules
+   
+.. parsed-literal::
+   -A FORWARD -d 192.168.42.11 -j ACCEPT
+   -A FORWARD -s 192.168.42.11 -j ACCEPT
 
 
 Additional Packages Required for Features
@@ -1128,4 +1148,3 @@
 later section, see :ref:`adding-a-host`. It is
 recommended that you continue to read the documentation before adding
 the host!
-
diff --git a/source/installguide/index.rst b/source/installguide/index.rst
index 01d9012..4a4f111 100644
--- a/source/installguide/index.rst
+++ b/source/installguide/index.rst
@@ -13,7 +13,7 @@
    specific language governing permissions and limitations
    under the License.
 
-.. CloudStack Installation Documentation master file, created by
+.. CloudStack Installation Documentation main file, created by
    sphinx-quickstart on Sat Jan 25 15:15:31 2014.
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
diff --git a/source/installguide/locale/pot/configuration.pot b/source/installguide/locale/pot/configuration.pot
index 710eb60..9c4db09 100644
--- a/source/installguide/locale/pot/configuration.pot
+++ b/source/installguide/locale/pot/configuration.pot
@@ -2540,11 +2540,11 @@
 
 #: ../../configuration.rst:1621
 # c8177a7ac4ea4c07bf0c16f2833e48bf
-msgid "blacklisted.routes"
+msgid "denied.routes"
 msgstr ""
 
 #: ../../configuration.rst:1621
 # d9441a44a1824e80804bbbe62fd7f531
-msgid "Routes that are blacklisted cannot be used for creating static routes for a VPC Private Gateway."
+msgid "Routes that are denied cannot be used for creating static routes for a VPC Private Gateway."
 msgstr ""
 
diff --git a/source/installguide/locale/pot/hypervisor/kvm.pot b/source/installguide/locale/pot/hypervisor/kvm.pot
index c40ddd8..7b75d4c 100644
--- a/source/installguide/locale/pot/hypervisor/kvm.pot
+++ b/source/installguide/locale/pot/hypervisor/kvm.pot
@@ -630,7 +630,7 @@
 
 #: ../../hypervisor/kvm.rst:631
 # 1cd9101e47b3400c8e51f0979708da0d
-msgid "To make sure that the native bridge module will not interfere with openvswitch the bridge module should be added to the blacklist. See the modprobe documentation for your distribution on where to find the blacklist. Make sure the module is not loaded either by rebooting or executing rmmod bridge before executing next steps."
+msgid "To make sure that the native bridge module will not interfere with openvswitch the bridge module should be added to the denylist. See the modprobe documentation for your distribution on where to find the denylist. Make sure the module is not loaded either by rebooting or executing rmmod bridge before executing next steps."
 msgstr ""
 
 #: ../../hypervisor/kvm.rst:637
diff --git a/source/installguide/locale/pot/hypervisor_installation.pot b/source/installguide/locale/pot/hypervisor_installation.pot
index 180fcff..b0cb272 100644
--- a/source/installguide/locale/pot/hypervisor_installation.pot
+++ b/source/installguide/locale/pot/hypervisor_installation.pot
@@ -839,7 +839,7 @@
 
 #: ../../hypervisor_installation.rst:694
 # eca14b3123854338ba1f14a14829b739
-msgid "To make sure that the native bridge module will not interfere with openvswitch the bridge module should be added to the blacklist. See the modprobe documentation for your distribution on where to find the blacklist. Make sure the module is not loaded either by rebooting or executing rmmod bridge before executing next steps."
+msgid "To make sure that the native bridge module will not interfere with openvswitch the bridge module should be added to the denylist. See the modprobe documentation for your distribution on where to find the denylist. Make sure the module is not loaded either by rebooting or executing rmmod bridge before executing next steps."
 msgstr ""
 
 #: ../../hypervisor_installation.rst:700
diff --git a/source/installguide/locale/pot/installation.pot b/source/installguide/locale/pot/installation.pot
index 11b4ccf..e30f644 100644
--- a/source/installguide/locale/pot/installation.pot
+++ b/source/installguide/locale/pot/installation.pot
@@ -480,7 +480,7 @@
 
 #: ../../installation.rst:350
 # aef5f1918b994df1a0da2b55407ba85f
-msgid "This bug has been fixed in master and upcoming 4.4 release and will also be fixed in bug fix releases 4.3.x"
+msgid "This bug has been fixed in main and upcoming 4.4 release and will also be fixed in bug fix releases 4.3.x"
 msgstr ""
 
 #: ../../installation.rst:353
diff --git a/source/installguide/locale/pot/managing_networks.pot b/source/installguide/locale/pot/managing_networks.pot
index d8ac813..cb2c581 100644
--- a/source/installguide/locale/pot/managing_networks.pot
+++ b/source/installguide/locale/pot/managing_networks.pot
@@ -5961,12 +5961,12 @@
 
 #: ../../managing_networks.rst:5628
 # 7a2e407277964cd18757e610c1197596
-msgid "Blacklisting Routes"
+msgid "Denylisting Routes"
 msgstr ""
 
 #: ../../managing_networks.rst:5630
 # a154d3d5488f418e95dbd3c0ae59a55f
-msgid "CloudStack enables you to block a list of routes so that they are not assigned to any of the VPC private gateways. Specify the list of routes that you want to blacklist in the ``blacklisted.routes`` global parameter. Note that the parameter update affects only new static route creations. If you block an existing static route, it remains intact and continue functioning. You cannot add a static route if the route is blacklisted for the zone."
+msgid "CloudStack enables you to block a list of routes so that they are not assigned to any of the VPC private gateways. Specify the list of routes that you want to denylist in the ``denied.routes`` global parameter. Note that the parameter update affects only new static route creations. If you block an existing static route, it remains intact and continue functioning. You cannot add a static route if the route is denied for the zone."
 msgstr ""
 
 #: ../../managing_networks.rst:5639
diff --git a/source/installguide/locale/pot/optional_installation.pot b/source/installguide/locale/pot/optional_installation.pot
index 80ec79b..25e6664 100644
--- a/source/installguide/locale/pot/optional_installation.pot
+++ b/source/installguide/locale/pot/optional_installation.pot
@@ -108,7 +108,7 @@
 
 #: ../../optional_installation.rst:92
 # 7862ab06634f4e73aea90b6a69fba6d8
-msgid "CloudStack supports database replication from one MySQL node to another. This is achieved using standard MySQL replication. You may want to do this as insurance against MySQL server or storage loss. MySQL replication is implemented using a master/slave model. The master is the node that the Management Servers are configured to use. The slave is a standby node that receives all write operations from the master and applies them to a local, redundant copy of the database. The following steps are a guide to implementing MySQL replication."
+msgid "CloudStack supports database replication from one MySQL node to another. This is achieved using standard MySQL replication. You may want to do this as insurance against MySQL server or storage loss. MySQL replication enables data from one MySQL database server (the source) to be copied to one or more MySQL database servers (the replicas). The source is the node that the Management Servers are configured to use. The replica is a standby node that receives all write operations from the source and applies them to a local, redundant copy of the database. The following steps are a guide to implementing MySQL replication."
 msgstr ""
 
 #: ../../optional_installation.rst:102
@@ -118,17 +118,17 @@
 
 #: ../../optional_installation.rst:105
 # 8f01c4d5d9e849f7aa21e1fafec88427
-msgid "Ensure that this is a fresh install with no data in the master."
+msgid "Ensure that this is a fresh install with no data in the source server."
 msgstr ""
 
 #: ../../optional_installation.rst:107
 # 3207c0439bb34ea28e96d4ee62ad1c2e
-msgid "Edit my.cnf on the master and add the following in the [mysqld] section below datadir."
+msgid "Edit my.cnf on the source server and add the following in the [mysqld] section below datadir."
 msgstr ""
 
 #: ../../optional_installation.rst:115
 # 5d1dfef940ab48418d921ea6ab2104d5
-msgid "The server\\_id must be unique with respect to other servers. The recommended way to achieve this is to give the master an ID of 1 and each slave a sequential number greater than 1, so that the servers are numbered 1, 2, 3, etc."
+msgid "The server\\_id must be unique with respect to other servers. The recommended way to achieve this is to give the source server an ID of 1 and each replica a sequential number greater than 1, so that the servers are numbered 1, 2, 3, etc."
 msgstr ""
 
 #: ../../optional_installation.rst:120
@@ -143,7 +143,7 @@
 
 #: ../../optional_installation.rst:132
 # 37951ede2d454f428070c346ebef21fd
-msgid "Create a replication account on the master and give it privileges. We will use the \"cloud-repl\" user with the password \"password\". This assumes that master and slave run on the 172.16.1.0/24 network."
+msgid "Create a replication account on the source server and give it privileges. We will use the \"cloud-repl\" user with the password \"password\". This assumes that source and replica run on the 172.16.1.0/24 network."
 msgstr ""
 
 #: ../../optional_installation.rst:144
@@ -173,12 +173,12 @@
 
 #: ../../optional_installation.rst:164
 # 3448c24480a343129c3e323c59e1d52f
-msgid "Complete the master setup. Returning to your first session on the master, release the locks and exit MySQL."
+msgid "Complete the source server setup. Returning to your first session on the source server, release the locks and exit MySQL."
 msgstr ""
 
 #: ../../optional_installation.rst:171
 # b756f3987b8345d78bb98a1da0cdf5f0
-msgid "Install and configure the slave. On the slave server, run the following commands."
+msgid "Install and configure the replica. On the replica server, run the following commands."
 msgstr ""
 
 #: ../../optional_installation.rst:179
@@ -198,17 +198,17 @@
 
 #: ../../optional_installation.rst:200
 # cc3fe860c3244bfaabe3d4c4317c7ac8
-msgid "Instruct the slave to connect to and replicate from the master. Replace the IP address, password, log file, and position with the values you have used in the previous steps."
+msgid "Instruct the replica to connect to and replicate from the source. Replace the IP address, password, log file, and position with the values you have used in the previous steps."
 msgstr ""
 
 #: ../../optional_installation.rst:213
 # 9a9640cbcab74267a00aefe5b61ca112
-msgid "Then start replication on the slave."
+msgid "Then start replication on the replica."
 msgstr ""
 
 #: ../../optional_installation.rst:219
 # a561331155b44e14a5a9540ccfaded76
-msgid "Optionally, open port 3306 on the slave as was done on the master earlier."
+msgid "Optionally, open port 3306 on the replica as was done on the source earlier."
 msgstr ""
 
 #: ../../optional_installation.rst:222
@@ -233,7 +233,7 @@
 
 #: ../../optional_installation.rst:237
 # df74922f2b5a44b0820337aecbb8703f
-msgid "Change the replica's configuration to be a master and restart it."
+msgid "Change the replica's configuration to be a source and restart it."
 msgstr ""
 
 #: ../../optional_installation.rst:239
diff --git a/source/installguide/locale/zh_CN/LC_MESSAGES/configuration.po b/source/installguide/locale/zh_CN/LC_MESSAGES/configuration.po
index cfa5faf..eeba00e 100644
--- a/source/installguide/locale/zh_CN/LC_MESSAGES/configuration.po
+++ b/source/installguide/locale/zh_CN/LC_MESSAGES/configuration.po
@@ -3238,12 +3238,12 @@
 
 # c8177a7ac4ea4c07bf0c16f2833e48bf
 #: ../../configuration.rst:1621
-msgid "blacklisted.routes"
-msgstr "blacklisted.routes"
+msgid "denied..routes"
+msgstr "denied..routes"
 
 # d9441a44a1824e80804bbbe62fd7f531
 #: ../../configuration.rst:1621
 msgid ""
-"Routes that are blacklisted cannot be used for creating static routes for a "
+"Routes that are denied cannot be used for creating static routes for a "
 "VPC Private Gateway."
 msgstr "黑名单中的路由不能用于虚拟机的私有网关来创建静态路由"
diff --git a/source/installguide/locale/zh_CN/LC_MESSAGES/hypervisor/kvm.po b/source/installguide/locale/zh_CN/LC_MESSAGES/hypervisor/kvm.po
index def7817..e9cf577 100644
--- a/source/installguide/locale/zh_CN/LC_MESSAGES/hypervisor/kvm.po
+++ b/source/installguide/locale/zh_CN/LC_MESSAGES/hypervisor/kvm.po
@@ -730,8 +730,8 @@
 #: ../../hypervisor/kvm.rst:631
 msgid ""
 "To make sure that the native bridge module will not interfere with "
-"openvswitch the bridge module should be added to the blacklist. See the "
-"modprobe documentation for your distribution on where to find the blacklist."
+"openvswitch the bridge module should be added to the denylist. See the "
+"modprobe documentation for your distribution on where to find the denylist."
 " Make sure the module is not loaded either by rebooting or executing rmmod "
 "bridge before executing next steps."
 msgstr "将系统自带的网络桥接模块加入黑名单,确保该模块不会与openvswitch模块冲突。请参阅你所使用发行版的modprobe文档并找到黑名单。确保该模块不会在重启时自动加载或在下一操作步骤之前卸载该桥接模块。"
diff --git a/source/installguide/locale/zh_CN/LC_MESSAGES/hypervisor_installation.po b/source/installguide/locale/zh_CN/LC_MESSAGES/hypervisor_installation.po
index dcbb0b5..c31f471 100644
--- a/source/installguide/locale/zh_CN/LC_MESSAGES/hypervisor_installation.po
+++ b/source/installguide/locale/zh_CN/LC_MESSAGES/hypervisor_installation.po
@@ -926,8 +926,8 @@
 #: ../../hypervisor_installation.rst:694
 msgid ""
 "To make sure that the native bridge module will not interfere with "
-"openvswitch the bridge module should be added to the blacklist. See the "
-"modprobe documentation for your distribution on where to find the blacklist."
+"openvswitch the bridge module should be added to the denylist. See the "
+"modprobe documentation for your distribution on where to find the denylist."
 " Make sure the module is not loaded either by rebooting or executing rmmod "
 "bridge before executing next steps."
 msgstr "将系统自带的网络桥接模块加入黑名单,确保该模块不会与openvswitch模块冲突。请参阅你所使用发行版的modprobe文档并找到黑名单。确保该模块不会在重启时自动加载或在下一操作步骤之前卸载该桥接模块。"
diff --git a/source/installguide/locale/zh_CN/LC_MESSAGES/installation.po b/source/installguide/locale/zh_CN/LC_MESSAGES/installation.po
index 7ea4ad0..69875ad 100644
--- a/source/installguide/locale/zh_CN/LC_MESSAGES/installation.po
+++ b/source/installguide/locale/zh_CN/LC_MESSAGES/installation.po
@@ -571,7 +571,7 @@
 # aef5f1918b994df1a0da2b55407ba85f
 #: ../../installation.rst:350
 msgid ""
-"This bug has been fixed in master and upcoming 4.4 release and will also be "
+"This bug has been fixed in main and upcoming 4.4 release and will also be "
 "fixed in bug fix releases 4.3.x"
 msgstr ""
 
diff --git a/source/installguide/locale/zh_CN/LC_MESSAGES/managing_networks.po b/source/installguide/locale/zh_CN/LC_MESSAGES/managing_networks.po
index 6fd390f..6bd38dd 100644
--- a/source/installguide/locale/zh_CN/LC_MESSAGES/managing_networks.po
+++ b/source/installguide/locale/zh_CN/LC_MESSAGES/managing_networks.po
@@ -7466,7 +7466,7 @@
 
 # 7a2e407277964cd18757e610c1197596
 #: ../../managing_networks.rst:5628
-msgid "Blacklisting Routes"
+msgid "Denylisting Routes"
 msgstr "路由黑名单"
 
 # a154d3d5488f418e95dbd3c0ae59a55f
@@ -7474,11 +7474,11 @@
 msgid ""
 "CloudStack enables you to block a list of routes so that they are not "
 "assigned to any of the VPC private gateways. Specify the list of routes that"
-" you want to blacklist in the ``blacklisted.routes`` global parameter. Note "
+" you want to denylist in the ``denied.routes`` global parameter. Note "
 "that the parameter update affects only new static route creations. If you "
 "block an existing static route, it remains intact and continue functioning. "
-"You cannot add a static route if the route is blacklisted for the zone."
-msgstr "CloudStack允许你定义一个路由黑名单,这样它们就不能关联到任何VPC私有网关。你需要在全局参数blacklisted.routes里定义。要注意,此参数只在新路由创建时才会生效。如果你在黑名单里加入了已存在的静态路由,则此静态路由还是会继续起作用。你不能把在路由黑名单里的路由加入到静态路由当中去。"
+"You cannot add a static route if the route is denied for the zone."
+msgstr "CloudStack允许你定义一个路由黑名单,这样它们就不能关联到任何VPC私有网关。你需要在全局参数denied.routes里定义。要注意,此参数只在新路由创建时才会生效。如果你在黑名单里加入了已存在的静态路由,则此静态路由还是会继续起作用。你不能把在路由黑名单里的路由加入到静态路由当中去。"
 
 # 7f1bbdc7458942d88e89b8e0af49db0c
 #: ../../managing_networks.rst:5639
diff --git a/source/installguide/locale/zh_CN/LC_MESSAGES/optional_installation.po b/source/installguide/locale/zh_CN/LC_MESSAGES/optional_installation.po
index 9fbad9c..063c639 100644
--- a/source/installguide/locale/zh_CN/LC_MESSAGES/optional_installation.po
+++ b/source/installguide/locale/zh_CN/LC_MESSAGES/optional_installation.po
@@ -137,12 +137,13 @@
 "CloudStack supports database replication from one MySQL node to another. "
 "This is achieved using standard MySQL replication. You may want to do this "
 "as insurance against MySQL server or storage loss. MySQL replication is "
-"implemented using a master/slave model. The master is the node that the "
-"Management Servers are configured to use. The slave is a standby node that "
-"receives all write operations from the master and applies them to a local, "
+"enables data from one MySQL database server (the source) to be copied to "
+"one or more MySQL database servers (the replicas). The source is the node that the "
+"Management Servers are configured to use. The replica is a standby node that "
+"receives all write operations from the source and applies them to a local, "
 "redundant copy of the database. The following steps are a guide to "
 "implementing MySQL replication."
-msgstr "CloudStack支持MySQL节点间的数据库复制。这个通过标准的MySQL复制功能来实现。你这样做可能希望防止MySQL服务器或者存储损坏。MySQL复制使用master/slave的模型。master节点是直接为管理服务器所使用。slave节点为备用,接收来自master节点的所有写操作,并将它应用于本地冗余数据库。以下是实施数据库复制的步骤。"
+msgstr "CloudStack支持MySQL节点间的数据库复制。这个通过标准的MySQL复制功能来实现。你这样做可能希望防止MySQL服务器或者存储损坏。MySQL复制使用source/replica的模型。source节点是直接为管理服务器所使用。replica节点为备用,接收来自source节点的所有写操作,并将它应用于本地冗余数据库。以下是实施数据库复制的步骤。"
 
 # b03832e56503442494767e262e0d5266
 #: ../../optional_installation.rst:102
@@ -153,24 +154,24 @@
 
 # 8f01c4d5d9e849f7aa21e1fafec88427
 #: ../../optional_installation.rst:105
-msgid "Ensure that this is a fresh install with no data in the master."
-msgstr "确保这是一个全新安装且没有数据的master数据库节点。"
+msgid "Ensure that this is a fresh install with no data in the source server."
+msgstr "确保这是一个全新安装且没有数据的source server数据库节点。"
 
 # 3207c0439bb34ea28e96d4ee62ad1c2e
 #: ../../optional_installation.rst:107
 msgid ""
-"Edit my.cnf on the master and add the following in the [mysqld] section "
+"Edit my.cnf on the source server and add the following in the [mysqld] section "
 "below datadir."
-msgstr "编辑master数据库的my.cnf,在[mysqld]的datadir下增加如下部分。"
+msgstr "编辑source server数据库的my.cnf,在[mysqld]的datadir下增加如下部分。"
 
 # 5d1dfef940ab48418d921ea6ab2104d5
 #: ../../optional_installation.rst:115
 msgid ""
 "The server\\_id must be unique with respect to other servers. The "
-"recommended way to achieve this is to give the master an ID of 1 and each "
-"slave a sequential number greater than 1, so that the servers are numbered "
+"recommended way to achieve this is to give the source server an ID of 1 and each "
+"replica a sequential number greater than 1, so that the servers are numbered "
 "1, 2, 3, etc."
-msgstr "考虑到其他的服务器,服务器id必须是唯一的。推荐的方式是将master的ID设置为1,后续的每个slave节点序号大于1,使得所有服务器编号如:1,2,3等。"
+msgstr "考虑到其他的服务器,服务器id必须是唯一的。推荐的方式是将source server的ID设置为1,后续的每个replica节点序号大于1,使得所有服务器编号如:1,2,3等。"
 
 # 3b36dc410ff54ea89e014b950f48408a
 #: ../../optional_installation.rst:120
@@ -185,10 +186,10 @@
 # 37951ede2d454f428070c346ebef21fd
 #: ../../optional_installation.rst:132
 msgid ""
-"Create a replication account on the master and give it privileges. We will "
+"Create a replication account on the source server and give it privileges. We will "
 "use the \"cloud-repl\" user with the password \"password\". This assumes "
-"that master and slave run on the 172.16.1.0/24 network."
-msgstr "在master上创建一个用于复制的账户,并赋予权限。我们创建用户\"cloud-repl\",密码为\"password\"。假设master和slave都运行在172.16.1.0/24网段。"
+"that source and replica run on the 172.16.1.0/24 network."
+msgstr "在source server上创建一个用于复制的账户,并赋予权限。我们创建用户\"cloud-repl\",密码为\"password\"。假设source和replica都运行在172.16.1.0/24网段。"
 
 # f487c49c63214050912b21eef50fb648
 #: ../../optional_installation.rst:144
@@ -218,16 +219,16 @@
 # 3448c24480a343129c3e323c59e1d52f
 #: ../../optional_installation.rst:164
 msgid ""
-"Complete the master setup. Returning to your first session on the master, "
+"Complete the source server setup. Returning to your first session on the source server, "
 "release the locks and exit MySQL."
-msgstr "完成master安装。返回到master的第一个会话,取消锁定并退出MySQL。"
+msgstr "完成source server安装。返回到source server的第一个会话,取消锁定并退出MySQL。"
 
 # b756f3987b8345d78bb98a1da0cdf5f0
 #: ../../optional_installation.rst:171
 msgid ""
-"Install and configure the slave. On the slave server, run the following "
+"Install and configure the replica. On the replica server, run the following "
 "commands."
-msgstr "安装并配置slave节点。在slave服务器上,运行如下命令。"
+msgstr "安装并配置replica节点。在replica服务器上,运行如下命令。"
 
 # ce5052106169447d867315b4ab5acf5c
 #: ../../optional_installation.rst:179
@@ -249,21 +250,21 @@
 # cc3fe860c3244bfaabe3d4c4317c7ac8
 #: ../../optional_installation.rst:200
 msgid ""
-"Instruct the slave to connect to and replicate from the master. Replace the "
+"Instruct the replica to connect to and replicate from the source. Replace the "
 "IP address, password, log file, and position with the values you have used "
 "in the previous steps."
-msgstr "引导slave连接master并进行复制。使用上面步骤中得到数据来替换IP地址,密码,日志文件,以及位置点。"
+msgstr "引导replica连接source并进行复制。使用上面步骤中得到数据来替换IP地址,密码,日志文件,以及位置点。"
 
 # 9a9640cbcab74267a00aefe5b61ca112
 #: ../../optional_installation.rst:213
-msgid "Then start replication on the slave."
-msgstr "在slave上启动复制功能。"
+msgid "Then start replication on the replica."
+msgstr "在replica上启动复制功能。"
 
 # a561331155b44e14a5a9540ccfaded76
 #: ../../optional_installation.rst:219
 msgid ""
-"Optionally, open port 3306 on the slave as was done on the master earlier."
-msgstr "在slave上可能需要开启3306端口,就像之前在master上所做的一样。"
+"Optionally, open port 3306 on the replica as was done on the source earlier."
+msgstr "在replica上可能需要开启3306端口,就像之前在source上所做的一样。"
 
 # efdf8223dd9a43a8827dd97444acf8e3
 #: ../../optional_installation.rst:222
@@ -293,8 +294,8 @@
 
 # df74922f2b5a44b0820337aecbb8703f
 #: ../../optional_installation.rst:237
-msgid "Change the replica's configuration to be a master and restart it."
-msgstr "将数据库的复本服务器修改为master并重启"
+msgid "Change the replica's configuration to be a source and restart it."
+msgstr "将数据库的复本服务器修改为source并重启"
 
 # 2bc5d7c5cd654d7abc5305542ac56d8d
 #: ../../optional_installation.rst:239
diff --git a/source/installguide/management-server/_database.rst b/source/installguide/management-server/_database.rst
index 3fb2903..bad57c7 100644
--- a/source/installguide/management-server/_database.rst
+++ b/source/installguide/management-server/_database.rst
@@ -68,7 +68,7 @@
     
    .. parsed-literal::
    
-      server-id=master-01
+      server-id=source-01
       innodb_rollback_on_timeout=1
       innodb_lock_wait_timeout=600
       max_connections=350
diff --git a/source/installguide/management-server/_nfs.rst b/source/installguide/management-server/_nfs.rst
index 98df3cb..91969b9 100644
--- a/source/installguide/management-server/_nfs.rst
+++ b/source/installguide/management-server/_nfs.rst
@@ -25,7 +25,7 @@
 
 .. note::
    NFS is not the only option for primary or secondary storage. For example, 
-   you may use Ceph RBD, GlusterFS, iSCSI, and others. The choice of storage 
+   you may use Ceph RBD, PowerFlex, GlusterFS, iSCSI, and others. The choice of storage 
    system will depend on the choice of hypervisor and whether you are dealing 
    with primary or secondary storage.
 
@@ -54,6 +54,8 @@
 
 The exact commands for the following steps may vary depending on your
 operating system version.
+The following steps asume you already have an NFS Server installed on your storage
+system. Please refer to the guide of your OS on how to install a NFS Server.
 
 .. warning::
    (KVM only) Ensure that no volume is already mounted at your NFS mount point.
@@ -122,6 +124,12 @@
 
       yum install nfs-utils
 
+   or for Ubuntu
+   
+   .. parsed-literal::
+
+      apt-get install nfs-kernel-server
+
 #. On the Management Server host, create two directories that you will
    use for primary and secondary storage. For example:
 
diff --git a/source/installguide/management-server/_pkg_repo.rst b/source/installguide/management-server/_pkg_repo.rst
index 453ca4d..2f4e3c1 100644
--- a/source/installguide/management-server/_pkg_repo.rst
+++ b/source/installguide/management-server/_pkg_repo.rst
@@ -65,16 +65,17 @@
 ~~~~~~~~~~~~~~~~~~~~~~
 
 You can add a DEB package repository to your apt sources with the
-following commands. Please note that only packages for Ubuntu 16.04 (Xenial) 
-and Ubuntu 18.04 (Bionic) are being built at this time. Ubuntu 14.04 (Trusty) is no longer supported.
+following commands. Please note that only packages for Ubuntu 20.04 (Focal),
+Ubuntu 18.04 (Bionic) and Ubuntu 16.04 (Xenial) are being built at this time.
+Ubuntu 14.04 (Trusty) is no longer supported.
 
 Use your preferred editor and open (or create)
 ``/etc/apt/sources.list.d/cloudstack.list``. Add the community provided
-repository to the file:
+repository to the file (replace "trusty" with "xenial" or "bionic" if it is the case):
 
 .. parsed-literal::
 
-   deb http://download.cloudstack.org/ubuntu trusty |version|
+   deb http://download.cloudstack.org/ubuntu focal |version|
 
 We now have to add the public key to the trusted keys.
 
diff --git a/source/installguide/optional_installation.rst b/source/installguide/optional_installation.rst
index 8e1617f..54cd52d 100644
--- a/source/installguide/optional_installation.rst
+++ b/source/installguide/optional_installation.rst
@@ -120,9 +120,10 @@
 CloudStack supports database replication from one MySQL node to another.
 This is achieved using standard MySQL replication. You may want to do
 this as insurance against MySQL server or storage loss. MySQL
-replication is implemented using a master/slave model. The master is the
-node that the Management Servers are configured to use. The slave is a
-standby node that receives all write operations from the master and
+replication enables data from one MySQL database server (the source) to be
+copied to one or more MySQL database servers (the replicas). The source is the
+node that the Management Servers are configured to use. The replica is a
+standby node that receives all write operations from the source and
 applies them to a local, redundant copy of the database. The following
 steps are a guide to implementing MySQL replication.
 
@@ -130,9 +131,9 @@
    Creating a replica is not a backup solution. You should develop a backup 
    procedure for the MySQL data that is distinct from replication.
 
-#. Ensure that this is a fresh install with no data in the master.
+#. Ensure that this is a fresh install with no data in the source server.
 
-#. Edit my.cnf on the master and add the following in the [mysqld]
+#. Edit my.cnf on the source server and add the following in the [mysqld]
    section below datadir.
 
    .. parsed-literal::
@@ -141,8 +142,8 @@
       server_id=1
 
    The server\_id must be unique with respect to other servers. The
-   recommended way to achieve this is to give the master an ID of 1 and
-   each slave a sequential number greater than 1, so that the servers
+   recommended way to achieve this is to give the source server an ID of 1 and
+   each replica a sequential number greater than 1, so that the servers
    are numbered 1, 2, 3, etc.
 
 #. Restart the MySQL service. On RHEL/CentOS systems, use:
@@ -157,15 +158,15 @@
 
       # service mysql restart
 
-#. Create a replication account on the master and give it privileges. We
+#. Create a replication account on the source server and give it privileges. We
    will use the "cloud-repl" user with the password "password". This
-   assumes that master and slave run on the 172.16.1.0/24 network.
+   assumes that source and replica run on the 172.16.1.0/24 network.
 
    .. sourcecode: bash
    .. parsed-literal::
       # mysql -u root
       mysql> create user 'cloud-repl'@'172.16.1.%' identified by 'password';
-      mysql> grant replication slave on *.* TO 'cloud-repl'@'172.16.1.%';
+      mysql> grant replication replica on *.* TO 'cloud-repl'@'172.16.1.%';
       mysql> flush privileges;
       mysql> flush tables with read lock;
 
@@ -178,7 +179,7 @@
    .. parsed-literal::
 
       # mysql -u root
-      mysql> show master status;
+      mysql> show source status;
       +------------------+----------+--------------+------------------+
       | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
       +------------------+----------+--------------+------------------+
@@ -189,14 +190,14 @@
 
 #. Exit from this session.
 
-#. Complete the master setup. Returning to your first session on the
-   master, release the locks and exit MySQL.
+#. Complete the source server setup. Returning to your first session on the
+   source server, release the locks and exit MySQL.
 
    .. parsed-literal::
 
       mysql> unlock tables;
 
-#. Install and configure the slave. On the slave server, run the
+#. Install and configure the replica. On the replica server, run the
    following commands.
 
    .. parsed-literal::
@@ -225,26 +226,26 @@
 
       # service mysql restart
 
-#. Instruct the slave to connect to and replicate from the master.
+#. Instruct the replica to connect to and replicate from the source.
    Replace the IP address, password, log file, and position with the
    values you have used in the previous steps.
 
    .. parsed-literal::
 
-      mysql> change master to
-          -> master_host='172.16.1.217',
-          -> master_user='cloud-repl',
-          -> master_password='password',
-          -> master_log_file='mysql-bin.000001',
-          -> master_log_pos=412;
+      mysql> change source to
+          -> source_host='172.16.1.217',
+          -> source_user='cloud-repl',
+          -> source_password='password',
+          -> source_log_file='mysql-bin.000001',
+          -> source_log_pos=412;
 
-#. Then start replication on the slave.
+#. Then start replication on the replica.
 
    .. parsed-literal::
 
-      mysql> start slave;
+      mysql> start replica;
 
-#. Optionally, open port 3306 on the slave as was done on the master
+#. Optionally, open port 3306 on the replica as was done on the source
    earlier.
 
    This is not required for replication to work. But if you choose not
@@ -262,7 +263,7 @@
 
 #. Stop the Management Servers (via service cloudstack-management stop).
 
-#. Change the replica's configuration to be a master and restart it.
+#. Change the replica's configuration to be a source and restart it.
 
 #. Ensure that the replica's port 3306 is open to the Management
    Servers.
diff --git a/source/plugins/cloudstack-kubernetes-service.rst b/source/plugins/cloudstack-kubernetes-service.rst
index 4290b6c..ac26bd8 100644
--- a/source/plugins/cloudstack-kubernetes-service.rst
+++ b/source/plugins/cloudstack-kubernetes-service.rst
@@ -17,7 +17,7 @@
 
 Kubernetes Service plugin uses a CoreOS based template for node VMs for the Kubernetes cluster. CoreOS has been used as it provides docker installation and networking rules needed for Kubernetes by default. In future, different guest OSes might be used. For installation of Kubernetes binaries on cluster nodes, a binaries ISO is used for each Kubernetes version to be made available via CloudStack. This allows faster, offline installation of Kubernetes binaries and docker images along with support for adding multiple versions of Kubernetes for upgrades and running different clusters.
 
-For deployment and setup of Kubernetes on cluster nodes, the plugin uses the Kubernetes tool, 'kubeadm'. kubeadm is the command-line tool for easily provisioning a secure Kubernetes cluster on top of physical or cloud servers or virtual machines. Under the hood, master node(s) of the cluster starts a Kubernetes cluster using kubeadm init command with a custom token, and worker nodes join this Kubernetes cluster using kubeadm join command with the same token. More about kubeadm here: https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/. Weave Net CNI provider plugin is used for cluster networking. More about Weave Net provide plugin here: https://www.weave.works/docs/net/latest/kubernetes/kube-addon/.
+For deployment and setup of Kubernetes on cluster nodes, the plugin uses the Kubernetes tool, 'kubeadm'. kubeadm is the command-line tool for easily provisioning a secure Kubernetes cluster on top of physical or cloud servers or virtual machines. Under the hood, control node(s) of the cluster starts a Kubernetes cluster using kubeadm init command with a custom token, and worker nodes join this Kubernetes cluster using kubeadm join command with the same token. More about kubeadm here: https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/. Weave Net CNI provider plugin is used for cluster networking. More about Weave Net provide plugin here: https://www.weave.works/docs/net/latest/kubernetes/kube-addon/.
 
 To access the Kubernetes dashboard securely, the plugin provides access to kubeconfig file data which uses the Kubernetes tool kubectl to run a local proxy and thereby access the dashboard. More about kubectl here: https://kubernetes.io/docs/reference/kubectl/overview/
 
@@ -161,8 +161,8 @@
 A new network offering named DefaultNetworkOfferingforKubernetesService has been added since 4.14.0
 
 .. note::
-   - Multi-master, HA cluster can be created for Kubernetes version 1.16 and above only.
-   - While creating multi-master, HA cluster over a shared network, an external load-balancer must be manually setup. This load-balancer should have port-forwarding rules for SSH, Kubernetes API server access. Service assumes SSH access to cluster nodes is available from port 2222 to (2222 + cluster node count -1). Similarly, for API access 6443 must be forwarded to master nodes. Over the CloudStack isolated network these rules are automatically provisioned.
+   - Multi-control nodes, HA cluster can be created for Kubernetes version 1.16 and above only.
+   - While creating multi-control nodes, HA cluster over a shared network, an external load-balancer must be manually setup. This load-balancer should have port-forwarding rules for SSH, Kubernetes API server access. Service assumes SSH access to cluster nodes is available from port 2222 to (2222 + cluster node count -1). Similarly, for API access 6443 must be forwarded to control nodes. Over the CloudStack isolated network these rules are automatically provisioned.
 
 Managing Kubernetes clusters
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -188,7 +188,7 @@
 - **projectid** (Deploy cluster for the project)
 - **networkid** (Network in which Kubernetes cluster is to be launched)
 - **keypair** (name of the ssh key pair used to login to the virtual machines)
-- **masternodes** (number of Kubernetes cluster master nodes, default is 1) externalloadbalanceripaddress (external load balancer IP address while using shared network with Kubernetes HA cluster)
+- **controlnodes** (number of Kubernetes cluster control nodes, default is 1) externalloadbalanceripaddress (external load balancer IP address while using shared network with Kubernetes HA cluster)
 - **size** (number of Kubernetes cluster worker nodes; Required)
 - **noderootdisksize** (root disk size of root disk for each node)
 - **dockerregistryusername** (username for the docker image private registry; Experimental)
@@ -209,7 +209,7 @@
        "id": "74e3cc02-bbf7-438f-bfb0-9c193e90c1fb",
        "kubernetesversionid": "6668e999-fe6c-4a91-88d8-d10bcf280d02",
        "kubernetesversionname": "v1.13.2",
-       "masternodes": 1,
+       "controlnodes": 1,
        "memory": "4096",
        "name": "Test",
        "networkid": "148af2cb-4b94-42a2-b701-3b6aa884cbb0",
diff --git a/source/plugins/index.rst b/source/plugins/index.rst
index 783e4f4..6c8ac83 100644
--- a/source/plugins/index.rst
+++ b/source/plugins/index.rst
@@ -13,7 +13,7 @@
    specific language governing permissions and limitations
    under the License.
 
-.. CloudStack Installation Documentation master file, created by
+.. CloudStack Installation Documentation main file, created by
    sphinx-quickstart on Sat Jan 25 15:15:31 2014.
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
diff --git a/source/plugins/ovs-plugin.rst b/source/plugins/ovs-plugin.rst
index 5c6799e..56608fc 100644
--- a/source/plugins/ovs-plugin.rst
+++ b/source/plugins/ovs-plugin.rst
@@ -89,8 +89,9 @@
 -  CentOS 6.4 is recommended.
 
 -  To make sure that the native bridge module will not interfere with 
-   openvSwitch the bridge module should be added to the blacklist. See the 
-   modprobe documentation for your distribution on where to find the blacklist. 
+   openvSwitch the bridge module should be added to the denylist. See the 
+   modprobe documentation for your distribution on where to find the denylist
+   (likely named 'denylist'). 
    Make sure the module is not loaded either by rebooting or executing rmmod 
    bridge before executing next steps.
 
diff --git a/source/plugins/quota.rst b/source/plugins/quota.rst
index 2c6bd5e..bf86944 100644
--- a/source/plugins/quota.rst
+++ b/source/plugins/quota.rst
@@ -21,9 +21,9 @@
 provide a measurement for the resources used by the accounts and domains using a
 common unit referred to as cloud currency in this document. It can be configured
 to ensure that your usage won’t exceed the budget allocated to accounts/domain
-in cloud currency. It will let user know how much of the cloud resources he is
+in cloud currency. It will let users know how much of the cloud resources they are
 using. It will help the cloud admins, if they want, to ensure that a user does
-not go beyond his allocated quota. Per usage cycle if an account is found to be
+not go beyond their allocated quota. Per usage cycle if an account is found to be
 exceeding its quota then it is locked. Locking an account means that it will not
 be able to initiate a new resource allocation request, whether it is more
 storage or an additional ip. To unlock an account you need to add more credit to it.
diff --git a/source/quickinstallationguide/qig.rst b/source/quickinstallationguide/qig.rst
index c5ee82b..37b96d6 100644
--- a/source/quickinstallationguide/qig.rst
+++ b/source/quickinstallationguide/qig.rst
@@ -405,7 +405,7 @@
     
 .. parsed-literal::
 
-   server-id=master-01
+   server-id=source-01
    innodb_rollback_on_timeout=1
    innodb_lock_wait_timeout=600
    max_connections=350
@@ -603,6 +603,7 @@
       # lsmod | grep kvm
       kvm_intel              55496  0
       kvm                   337772  1 kvm_intel
+      kvm_amd # if you are in AMD cpu
 
 That concludes our installation and configuration of KVM, and we'll now move 
 to using the CloudStack UI for the actual configuration of our cloud.
@@ -671,6 +672,8 @@
 
 #. Netmask - We'll use ``255.255.255.0``
 
+#. VLAN/VNI Range : ``2-3900``
+
 #. Start/end reserved system IPs - we will use ``172.16.10.10-172.16.10.20``
 
 #. Guest gateway - We'll use ``172.16.10.1``
diff --git a/source/releasenotes/index.rst b/source/releasenotes/index.rst
index 40a7000..d73d02f 100644
--- a/source/releasenotes/index.rst
+++ b/source/releasenotes/index.rst
@@ -13,7 +13,7 @@
    specific language governing permissions and limitations
    under the License.
 
-.. CloudStack Release Notes documentation master file, created by
+.. CloudStack Release Notes documentation main file, created by
    sphinx-quickstart on Fri Feb  7 16:00:59 2014.
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
diff --git a/source/releasenotes/locale/ja/LC_MESSAGES/about.po b/source/releasenotes/locale/ja/LC_MESSAGES/about.po
index c9c8b14..cadf46a 100644
--- a/source/releasenotes/locale/ja/LC_MESSAGES/about.po
+++ b/source/releasenotes/locale/ja/LC_MESSAGES/about.po
@@ -2622,7 +2622,7 @@
 # 15c21a5396e7428b928fd0ad2dec879a
 #: ../../source/about.rst:711
 msgid ""
-"HA - When the master host is disconnected , the host status contines to "
+"HA - When the primary host is disconnected , the host status contines to "
 "remain i..."
 msgstr ""
 
@@ -4807,7 +4807,7 @@
 # 676f457929c74bcc83ebb6f37c4a72c9
 #: ../../source/about.rst:903
 msgid ""
-"Contrail: Slave compute host restarts when the master compute host is "
+"Contrail: Secondary compute host restarts when the primary compute host is "
 "changed to..."
 msgstr ""
 
diff --git a/source/releasenotes/locale/ja/LC_MESSAGES/rnotes.po b/source/releasenotes/locale/ja/LC_MESSAGES/rnotes.po
index e53f851..7834db0 100644
--- a/source/releasenotes/locale/ja/LC_MESSAGES/rnotes.po
+++ b/source/releasenotes/locale/ja/LC_MESSAGES/rnotes.po
@@ -1512,7 +1512,7 @@
 # 9c4f5494faa54226bfeea797c0d3bcdf
 #: ../../source/rnotes.rst:1826 ../../source/rnotes.rst:2656
 msgid ""
-"On the MySQL master, take a backup of the MySQL databases. We recommend "
+"On the MySQL source server, take a backup of the MySQL databases. We recommend "
 "performing this step even in test upgrades. If there is an issue, this will "
 "assist with debugging."
 msgstr ""
diff --git a/source/releasenotes/locale/pot/about.pot b/source/releasenotes/locale/pot/about.pot
index 37253ca..4d98216 100644
--- a/source/releasenotes/locale/pot/about.pot
+++ b/source/releasenotes/locale/pot/about.pot
@@ -2194,7 +2194,7 @@
 
 #: ../../about.rst:716
 # c06bebf8a33649ed8131f4b65a442741
-msgid "HA - When the master host is disconnected , the host status contines to remain i..."
+msgid "HA - When the primary host is disconnected , the host status contines to remain i..."
 msgstr ""
 
 #: ../../about.rst:717
@@ -3974,7 +3974,7 @@
 
 #: ../../about.rst:908
 # e13098ccaa854d3390abfce0d6b31ab9
-msgid "Contrail: Slave compute host restarts when the master compute host is changed to..."
+msgid "Contrail: Secondary compute host restarts when the primary compute host is changed to..."
 msgstr ""
 
 #: ../../about.rst:909
diff --git a/source/releasenotes/locale/pot/rnotes.pot b/source/releasenotes/locale/pot/rnotes.pot
index e1f188b..50a5d25 100644
--- a/source/releasenotes/locale/pot/rnotes.pot
+++ b/source/releasenotes/locale/pot/rnotes.pot
@@ -1475,7 +1475,7 @@
 #: ../../rnotes.rst:2656
 # bda05cf21e784a1cbc68f3bbef5bcf32
 # d35c3cd591f547888c10e4a335ab6d70
-msgid "On the MySQL master, take a backup of the MySQL databases. We recommend performing this step even in test upgrades. If there is an issue, this will assist with debugging."
+msgid "On the MySQL source server, take a backup of the MySQL databases. We recommend performing this step even in test upgrades. If there is an issue, this will assist with debugging."
 msgstr ""
 
 #: ../../rnotes.rst:1830
diff --git a/source/upgrading/index.rst b/source/upgrading/index.rst
index dc9e904..abff17c 100644
--- a/source/upgrading/index.rst
+++ b/source/upgrading/index.rst
@@ -13,7 +13,7 @@
    specific language governing permissions and limitations
    under the License.
 
-.. CloudStack Release Notes documentation master file, created by
+.. CloudStack Release Notes documentation main file, created by
    sphinx-quickstart on Fri Feb  7 16:00:59 2014.
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
diff --git a/source/upgrading/locale/ja/LC_MESSAGES/about.po b/source/upgrading/locale/ja/LC_MESSAGES/about.po
index c9c8b14..cadf46a 100644
--- a/source/upgrading/locale/ja/LC_MESSAGES/about.po
+++ b/source/upgrading/locale/ja/LC_MESSAGES/about.po
@@ -2622,7 +2622,7 @@
 # 15c21a5396e7428b928fd0ad2dec879a
 #: ../../source/about.rst:711
 msgid ""
-"HA - When the master host is disconnected , the host status contines to "
+"HA - When the primary host is disconnected , the host status contines to "
 "remain i..."
 msgstr ""
 
@@ -4807,7 +4807,7 @@
 # 676f457929c74bcc83ebb6f37c4a72c9
 #: ../../source/about.rst:903
 msgid ""
-"Contrail: Slave compute host restarts when the master compute host is "
+"Contrail: Secondary compute host restarts when the primary compute host is "
 "changed to..."
 msgstr ""
 
diff --git a/source/upgrading/locale/ja/LC_MESSAGES/rnotes.po b/source/upgrading/locale/ja/LC_MESSAGES/rnotes.po
index e53f851..7834db0 100644
--- a/source/upgrading/locale/ja/LC_MESSAGES/rnotes.po
+++ b/source/upgrading/locale/ja/LC_MESSAGES/rnotes.po
@@ -1512,7 +1512,7 @@
 # 9c4f5494faa54226bfeea797c0d3bcdf
 #: ../../source/rnotes.rst:1826 ../../source/rnotes.rst:2656
 msgid ""
-"On the MySQL master, take a backup of the MySQL databases. We recommend "
+"On the MySQL source server, take a backup of the MySQL databases. We recommend "
 "performing this step even in test upgrades. If there is an issue, this will "
 "assist with debugging."
 msgstr ""
diff --git a/source/upgrading/locale/pot/about.pot b/source/upgrading/locale/pot/about.pot
index 37253ca..4d98216 100644
--- a/source/upgrading/locale/pot/about.pot
+++ b/source/upgrading/locale/pot/about.pot
@@ -2194,7 +2194,7 @@
 
 #: ../../about.rst:716
 # c06bebf8a33649ed8131f4b65a442741
-msgid "HA - When the master host is disconnected , the host status contines to remain i..."
+msgid "HA - When the primary host is disconnected , the host status contines to remain i..."
 msgstr ""
 
 #: ../../about.rst:717
@@ -3974,7 +3974,7 @@
 
 #: ../../about.rst:908
 # e13098ccaa854d3390abfce0d6b31ab9
-msgid "Contrail: Slave compute host restarts when the master compute host is changed to..."
+msgid "Contrail: Secondary compute host restarts when the primary compute host is changed to..."
 msgstr ""
 
 #: ../../about.rst:909
diff --git a/source/upgrading/locale/pot/rnotes.pot b/source/upgrading/locale/pot/rnotes.pot
index e1f188b..50a5d25 100644
--- a/source/upgrading/locale/pot/rnotes.pot
+++ b/source/upgrading/locale/pot/rnotes.pot
@@ -1475,7 +1475,7 @@
 #: ../../rnotes.rst:2656
 # bda05cf21e784a1cbc68f3bbef5bcf32
 # d35c3cd591f547888c10e4a335ab6d70
-msgid "On the MySQL master, take a backup of the MySQL databases. We recommend performing this step even in test upgrades. If there is an issue, this will assist with debugging."
+msgid "On the MySQL source server, take a backup of the MySQL databases. We recommend performing this step even in test upgrades. If there is an issue, this will assist with debugging."
 msgstr ""
 
 #: ../../rnotes.rst:1830