From 987aa5e0d106068f6c4887ba21bcd4321cb7f203 Mon Sep 17 00:00:00 2001 From: Bin Hu Date: Fri, 8 Jan 2016 22:27:13 -0800 Subject: [PATCH] JIRA:IPVSIX-29 Change-Id: Iadb01d1dd79e1da05003bbc524040c03d20abe88 Signed-off-by: Bin Hu --- .../0-ipv6-configguide-prep-infra.rst | 10 +++++++-- .../4-ipv6-configguide-servicevm.rst | 6 ++++++ .../5-ipv6-configguide-scenario-1-native-os.rst | 14 +++++++----- docs/setupservicevm/architecture-design.rst | 3 +++ .../images/ipv6-topology-scenario-3.png | Bin 0 -> 68490 bytes docs/setupservicevm/index.rst | 10 +++++++++ .../scenario-3-0-ipv6-configguide-prep-infra.rst | 18 ++++++++++------ .../scenario-3-1-ipv6-configguide-odl-setup.rst | 24 +++++++++------------ ...scenario-3-2-ipv6-configguide-os-controller.rst | 8 +++++-- .../scenario-3-3-ipv6-configguide-os-compute.rst | 6 ++++-- 10 files changed, 67 insertions(+), 32 deletions(-) create mode 100644 docs/setupservicevm/images/ipv6-topology-scenario-3.png diff --git a/docs/setupservicevm/0-ipv6-configguide-prep-infra.rst b/docs/setupservicevm/0-ipv6-configguide-prep-infra.rst index 9703991..997e12e 100644 --- a/docs/setupservicevm/0-ipv6-configguide-prep-infra.rst +++ b/docs/setupservicevm/0-ipv6-configguide-prep-infra.rst @@ -2,11 +2,17 @@ Infrastructure Setup ==================== -In order to set up the service VM as an IPv6 vRouter, we need to -prepare 3 hosts, each of which has minimum 8GB RAM and 40GB storage. One host is used as OpenStack Controller +In order to set up the service VM as an IPv6 vRouter, we need to prepare 3 hosts, +each of which has minimum 8GB RAM and 40GB storage. One host is used as OpenStack Controller Node. The second host is used as Open Daylight Controller Node. And the third one is used as OpenStack Compute Node. +Please **NOTE** that in case of HA (High Availability) deployment model where multiple controller +nodes are used, the setup procedure is the same. When ``ipv6-router`` is created in step **SETUP-SVM-11**, +it could be created in any of the controller node. Thus you need to identify in which controller node +``ipv6-router`` is created in order to manually spawn ``radvd`` daemon inside the ``ipv6-router`` namespace +in steps **SETUP-SVM-24** through **SETUP-SVM-30**. + For exemplary purpose, we assume: * The hostname of OpenStack Controller+Network+Compute Node is ``opnfv-os-controller``, and the host IP address diff --git a/docs/setupservicevm/4-ipv6-configguide-servicevm.rst b/docs/setupservicevm/4-ipv6-configguide-servicevm.rst index fb9f450..8212c1e 100644 --- a/docs/setupservicevm/4-ipv6-configguide-servicevm.rst +++ b/docs/setupservicevm/4-ipv6-configguide-servicevm.rst @@ -266,6 +266,12 @@ Spawn ``RADVD`` in ``ipv6-router`` Let us manually spawn a ``radvd`` daemon inside ``ipv6-router`` namespace to simulate an external router. First of all, we will have to identify the ``ipv6-router`` namespace and move to the namespace. +Please **NOTE** that in case of HA (High Availability) deployment model where multiple controller +nodes are used, ``ipv6-router`` created in step **SETUP-SVM-11** could be in any of the controller +node. Thus you need to identify in which controller node ``ipv6-router`` is created in order to manually +spawn ``radvd`` daemon inside the ``ipv6-router`` namespace in steps **SETUP-SVM-24** through +**SETUP-SVM-30**. + **SETUP-SVM-24**: identify the ``ipv6-router`` namespace and move to the namespace .. code-block:: bash diff --git a/docs/setupservicevm/5-ipv6-configguide-scenario-1-native-os.rst b/docs/setupservicevm/5-ipv6-configguide-scenario-1-native-os.rst index 1a303cc..d222c63 100644 --- a/docs/setupservicevm/5-ipv6-configguide-scenario-1-native-os.rst +++ b/docs/setupservicevm/5-ipv6-configguide-scenario-1-native-os.rst @@ -22,11 +22,15 @@ For exemplary purpose, we assume: Underlay Network Topology - Scenario 1 -**Please note that the IP address shown in** :numref:`s1-figure1` -**are for exemplary purpose. You need to configure your public IP -address connecting to Internet according to your actual network -infrastructure. And you need to make sure the private IP address are -not conflicting with other subnets**. +**Please note that:** + +* **the IP address shown in** :numref:`s1-figure1` **are for exemplary purpose. + You need to configure your public IP address connecting to Internet according + to your actual network infrastructure. And you need to make sure the private IP address are + not conflicting with other subnets**. +* **Although the deployment model of single controller node is assumed, in case of HA (High Availability) + deployment model where multiple controller nodes are used, there is no impact and the setup procedure + is the same.** ************ Prerequisite diff --git a/docs/setupservicevm/architecture-design.rst b/docs/setupservicevm/architecture-design.rst index 61b9ad5..e2546ca 100644 --- a/docs/setupservicevm/architecture-design.rst +++ b/docs/setupservicevm/architecture-design.rst @@ -11,3 +11,6 @@ shown as follows in :numref:`arch-figure1`: Architectural Design of Using a VM as an IPv6 vRouter +This design applies to deployment model of single controller node as well as HA (High Availability) +deployment model of multiple controller nodes. + diff --git a/docs/setupservicevm/images/ipv6-topology-scenario-3.png b/docs/setupservicevm/images/ipv6-topology-scenario-3.png new file mode 100644 index 0000000000000000000000000000000000000000..5cc16bd770e364d6f3165d6af35746fcbf4ec2a5 GIT binary patch literal 68490 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Ν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

|7FKt5e+2K?d{<3x7zX*oB9!|Ulm`+$}3pA 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 literal 0 HcmV?d00001 diff --git a/docs/setupservicevm/index.rst b/docs/setupservicevm/index.rst index 292cffe..f498138 100644 --- a/docs/setupservicevm/index.rst +++ b/docs/setupservicevm/index.rst @@ -23,6 +23,16 @@ environment. There are three scenarios. controller which is built from the latest stable/Lithium branch which includes the fix. In this scenario, we can fully automate the setup similar to Scenario 1. +Please **NOTE** that the instructions in this document assume the deployment model of single +controller node. In case of HA (High Availability) deployment model where multiple controller +nodes are used, the setup procedure is the same. In particular: + +* There is **No Impact** on Scenario 1 and Scenario 3. +* For Scenario 2, when ``ipv6-router`` is created in step **SETUP-SVM-11**, it could be + created in any of the controller node. Thus you need to identify in which controller node + ``ipv6-router`` is created in order to manually spawn ``radvd`` daemon inside the + ``ipv6-router`` namespace in steps **SETUP-SVM-24** through **SETUP-SVM-30**. + .. toctree:: :numbered: :maxdepth: 4 diff --git a/docs/setupservicevm/scenario-3-0-ipv6-configguide-prep-infra.rst b/docs/setupservicevm/scenario-3-0-ipv6-configguide-prep-infra.rst index 9703991..a407c27 100644 --- a/docs/setupservicevm/scenario-3-0-ipv6-configguide-prep-infra.rst +++ b/docs/setupservicevm/scenario-3-0-ipv6-configguide-prep-infra.rst @@ -2,11 +2,15 @@ Infrastructure Setup ==================== -In order to set up the service VM as an IPv6 vRouter, we need to -prepare 3 hosts, each of which has minimum 8GB RAM and 40GB storage. One host is used as OpenStack Controller +In order to set up the service VM as an IPv6 vRouter, we need to prepare 3 hosts, +each of which has minimum 8GB RAM and 40GB storage. One host is used as OpenStack Controller Node. The second host is used as Open Daylight Controller Node. And the third one is used as OpenStack Compute Node. +** Please NOTE that Although the deployment model of single controller node is assumed, in case of HA +(High Availability) deployment model where multiple controller nodes are used, there is no impact and the +setup procedure is the same.** + For exemplary purpose, we assume: * The hostname of OpenStack Controller+Network+Compute Node is ``opnfv-os-controller``, and the host IP address @@ -17,15 +21,15 @@ For exemplary purpose, we assume: * We use ``opnfv`` as username to login. * We use ``devstack`` to install OpenStack Kilo. Please note that OpenStack Liberty can be used as well. -The underlay network topology of those 3 hosts are shown as follows in :numref:`s2-figure1`: +The underlay network topology of those 3 hosts are shown as follows in :numref:`s3-figure1`: -.. figure:: images/ipv6-topology-scenario-2.png - :name: s2-figure1 +.. figure:: images/ipv6-topology-scenario-3.png + :name: s3-figure1 :width: 100% - Underlay Network Topology - Scenario 2 + Underlay Network Topology - Scenario 3 -**Please note that the IP address shown in** :numref:`s2-figure1` +**Please note that the IP address shown in** :numref:`s3-figure1` **are for exemplary purpose. You need to configure your public IP address connecting to Internet according to your actual network infrastructure. And you need to make sure the private IP address are diff --git a/docs/setupservicevm/scenario-3-1-ipv6-configguide-odl-setup.rst b/docs/setupservicevm/scenario-3-1-ipv6-configguide-odl-setup.rst index 89152d5..3a068e0 100644 --- a/docs/setupservicevm/scenario-3-1-ipv6-configguide-odl-setup.rst +++ b/docs/setupservicevm/scenario-3-1-ipv6-configguide-odl-setup.rst @@ -10,26 +10,22 @@ For exemplary purpose, we assume: * We use ``opnfv`` as username to login. * Java 7 is installed in directory ``/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64/`` -**ODL-1**: Login to Open Daylight Controller Node with username ``opnfv``. +Please **NOTE** that this Scenario 3 uses an Open Daylight Lithium controller which is built +from the latest ``stable/Lithium`` branch that includes the fix of a bug, there is a **prerequisite** +that you are able to build this Open Daylight Lithium Controller from the the latest ``stable/Lithium`` +branch. Please refer to relevant documentation from Open Daylight. -**ODL-2**: Download the ODL Lithium distribution from -``http://www.opendaylight.org/software/downloads`` +**ODL-1**: **Prerequisite** - build Open Daylight Lithium Controller from the the latest +``stable/Lithium`` branch, and make it available for step **ODL-3**. -.. code-block:: bash - - wget https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.3.3-Lithium-SR3/distribution-karaf-0.3.3-Lithium-SR3.tar.gz +**ODL-2**: Login to Open Daylight Controller Node with username ``opnfv``. -**Note**: This **ODL-2** is a placeholder, and to be replaced with actual URL of a build from the latest -``stable/Lithium`` branch which includes the fix. - -**ODL-3**: Extract the tar file +**ODL-3**: Extract the tar file of your custom build of Open Daylight Lithium Controller +from step **ODL-1**. .. code-block:: bash - tar -zxvf distribution-karaf-0.3.3-Lithium-SR3.tar.gz - -**Note**: This **ODL-3** is a placeholder, and to be replaced with actual tarball of a build from the latest -``stable/Lithium`` branch which includes the fix. + tar -zxvf .tar.gz **ODL-4**: Install Java7 diff --git a/docs/setupservicevm/scenario-3-2-ipv6-configguide-os-controller.rst b/docs/setupservicevm/scenario-3-2-ipv6-configguide-os-controller.rst index 050be79..60af9f4 100644 --- a/docs/setupservicevm/scenario-3-2-ipv6-configguide-os-controller.rst +++ b/docs/setupservicevm/scenario-3-2-ipv6-configguide-os-controller.rst @@ -56,8 +56,12 @@ For **Fedora**: cp /opt/stack/opnfv_os_ipv6_poc/scenario2/local.conf.odl.controller ~/devstack/local.conf -Please **note** that you need to change the IP address of ``ODL_MGR_IP`` to point to your actual IP address -of Open Daylight Controller. +Please **note** that: + +* Note 1: Because Scenario 3 and Scenario 2 are essentially the same, and their only difference + is using different build of Open Daylight, they share the same ``local.conf``` file of OpenStack. +* Note 2: You need to change the IP address of ``ODL_MGR_IP`` to point to your actual IP address + of Open Daylight Controller. **OS-N-6**: Initiate Openstack setup by invoking ``stack.sh`` diff --git a/docs/setupservicevm/scenario-3-3-ipv6-configguide-os-compute.rst b/docs/setupservicevm/scenario-3-3-ipv6-configguide-os-compute.rst index a27ae4c..88a66cd 100644 --- a/docs/setupservicevm/scenario-3-3-ipv6-configguide-os-compute.rst +++ b/docs/setupservicevm/scenario-3-3-ipv6-configguide-os-compute.rst @@ -58,9 +58,11 @@ For **Fedora**: Please Note: -* Note 1: you need to change the IP address of ``SERVICE_HOST`` to point to your actual IP address +* Note 1: Because Scenario 3 and Scenario 2 are essentially the same, and their only difference + is using different build of Open Daylight, they share the same ``local.conf``` file of OpenStack. +* Note 2: you need to change the IP address of ``SERVICE_HOST`` to point to your actual IP address of OpenStack Controller. -* Note 2: you need to change the IP address of ``ODL_MGR_IP`` to point to your actual IP address +* Note 3: you need to change the IP address of ``ODL_MGR_IP`` to point to your actual IP address of Open Daylight Controller. **OS-M-6**: Initiate Openstack setup by invoking ``stack.sh`` -- 2.16.6