Modify Readme and install files

For Juno, the whole cascading readme file and the configuration
and install scripts  need to be changed.

Change-Id: I54ef9a35dcff5cce41ecbf90a6a28e32dc7d833f
This commit is contained in:
joey5678 2014-11-26 15:52:40 +08:00
parent 7e3e60a34a
commit b7e6e4dccf
6 changed files with 49 additions and 118 deletions

157
README.md
View File

@ -1,4 +1,4 @@
Tricircle
Tricircle
===============================
Tricircle is a project for [Openstack cascading solution](https://wiki.openstack.org/wiki/OpenStack_cascading_solution), including the source code of Nova Proxy, Cinder Proxy, Neutron L2/L3 Proxy, Glance sync manager and Ceilometer Proxy(not implemented yet).
@ -8,16 +8,12 @@ The project name "Tricircle" comes from a fractal. See the blog ["OpenStack casc
Important to know
-----------
* Only about 15k code lines developed for OpenStack cascading.
* The initial source code is for PoC only. Refactory will be done constantly to reach OpenStack acceptance standard.
* DVR-Patch for IceHouse: the PoC source code is based on IceHouse version, while Neutron is a master branch snapshot on July 1, 2014 which include DVR feature, not IceHouse version. The Neutron code is download from github when it was still in the developement and review status. The source code of DVR part is not stable, and not all DVR features are included, for example, N-S functions not ready.
* DVR-Patch is the majority source code in the repository, about 180k. The patch will be remove if OpenStack cascading is developed base on Juno.
* The Neutron cascading using the feature of provider network. But horizon doen't support provider network very well. So you have to use Neutron CLI to create a network. Or set default provide network type to VxLAN, or remove "local", "flat", "VLAN", "GRE" network typedriver from ML2 plugin configuration.
* For Neutron L2/L3 features, only VxLAN/L3 across casacaded OpenStack supported in the current source code. VLAN2VLAN, VLAN2VxLAN and VxLAN2VxLAN across cascaded OpenStack also implemented with IceHouse version but the patch is not ready yet, source code is in the VLAN2VLAN folder.
* The tunneling network for cross OpenStack piggy data path is using VxLAN, it leads to modification on L2 agent and L3 agent, we will refactory it to using GRE for the tunneling network to reduce patch for Juno version.
* If you want to experience VLAN2VLAN, VLAN2VxLAN and VxLAN2VxLAN across cascaded OpenStack, please ask help from PoC team member, see the wiki page [Openstack cascading solution](https://wiki.openstack.org/wiki/OpenStack_cascading_solution) for contact information.
* The source code now based on Juno is for PoC only. Refactory will be done constantly to reach OpenStack acceptance standard.
* The Neutron cascading using the feature of provider network. But horizon doen't support provider network very well. So you have to use Neutron CLI to create a network.
* Support L2 networking(VxLAN) across cascaded OpenStack, but only p2p remote host IP tunneling supported now.L2 networking through L2GW to reduce population traffic and simplify networking topology will be developed in the near future.
* The L3 networking across casacaded OpenStack will set up tunneling network for piggy data path, useing GRE tunneling over extra_route to brige the router in different cascaded OpenStack.Therefore, the loca L2 network (VLAN,VxLAN) in one cascaded OpenStack can reach L2 network(VLAN,VxLAN) located in another cascaded OpenStack.
* Glance cascading using Glance V2 API. Only CLI/pythonclient support V2 API, the Horizon doesn't support that version. So image management should be done through CLI, and using V2 only. Otherwise, the glance cascading cannot work properly.
* Glance cascading is not used by default, eg, useing global Glance by default. If Glance cascading is required, configuration is required.
* Refactory the Tricircle source code based on Juno version will be started soon once the Juno version is available.
Key modules
@ -25,11 +21,11 @@ Key modules
* Nova proxy
Similar role like Nova-Compute. Transfer the VM operation to cascaded Nova. Also responsible for attach volume and network to the VM in the cascaded OpenStack.
The hypervisor driver for Nova running on Nova-Compute node. Transfer the VM operation to cascaded Nova. Also responsible for attach volume and network to the VM in the cascaded OpenStack.
* Cinder proxy
Similar role like Cinder-Volume. Transfer the volume operation to cascaded Cinder.
The Cinder-Volume driver for Cinder running on Cinder-Volume node.. Transfer the volume operation to cascaded Cinder.
* Neuton proxy
@ -42,9 +38,9 @@ Key modules
Patches required
------------------
* IceHouse-Patches
* Juno-Patches
Pacthes for OpenStack IceHouse version, including patches for cascading level and cacscaded level.
Pacthes for OpenStack Juno version, including patches for cascading level and cacscaded level.
Feature Supported
------------------
@ -56,7 +52,7 @@ Feature Supported
Create Volume/Delete Volume/Attach Volume/Detach Volume/Extend Volume/Create Snapshot/Delete Snapshot/List Snapshots/Create Volume from Snapshot/Create Volume from Image/Create Volume from Volume (Clone)/Create Image from Volume
* Neutron cascading
Network/Subnet/Port/Router
Network/Subnet/Port/Router. Including L2/L3 networking across cascaded OpenStacks
* Glance cascading
Only support V2 api. Create Image/Delete Image/List Image/Update Image/Upload Image/Patch Location/VM Snapshot/Image Synchronization
@ -66,19 +62,18 @@ Known Issues
* Use "admin" role to experience these feature first, multi-tenancy has not been tested well.
* Launch VM only support "boot from image", "boot from volume", "boot from snapshot"
* Flavor only support new created flavor synchronized to the cascaded OpenStack, does not support flavor update synchronization to cascaded OpenStack yet.
* Must make a patch for "Create a volume from image", the patch link: https://bugs.launchpad.net/cinder/+bug/1308058
Installation without Glance cascading
------------
* **Prerequisites**
- the minimal installation requires three OpenStack IceHouse installated to experience across cascaded OpenStacks L2/L3 function. The minimal setup needs four nodes, see the following picture:
- the minimal installation requires three OpenStack Juno installated to experience across cascaded OpenStacks L2/L3 function. The minimal setup needs four nodes, see the following picture:
![minimal_setup](./minimal_setup.png?raw=true)
- the cascading OpenStack needs two node, Node1 and Node 2. Add Node1 to AZ1, Node2 to AZ2 in the cascading OpenStack for both Nova and Cinder.
- It's recommended to name the cascading Openstack region to "Cascading_OpenStack" or "Region1"
- It's recommended to name the cascading Openstack region to "Cascading" or "Region1"
- Node1 is all-in-one OpenStack installation with KeyStone and Glance, Node1 also function as Nova-Compute/Cinder-Volume/Neutron OVS-Agent/L3-Agent node, and will be replaced to be the proxy node for AZ1.
@ -94,9 +89,9 @@ Installation without Glance cascading
Make sure the 3 OpenStack can work independently before cascading introduced, eg. you can boot VM with network, create volume and attach volume in each OpenStack. After verify that 3 OpenStack can work independently, clean all created resources VM/Volume/Network.
After all OpenStack installation is ready, it's time to install IceHouse pathces both for cascading OpenStack and cascaded OpenStack, and then replace the Nova-Compute/Cinder-Volume/Neutron OVS-Agent/L3-Agent to Nova Proxy / Cinder Proxy / Neutron l2/l3 Proxy.
After all OpenStack installation is ready, it's time to install Juno pathces both for cascading OpenStack and cascaded OpenStack, and then replace the Nova-Compute/Cinder-Volume/Neutron OVS-Agent/L3-Agent to Nova Proxy / Cinder Proxy / Neutron l2/l3 Proxy.
* **IceHouse pachtes installation step by step**
* **Juno pachtes installation step by step**
1. Node1
- Patches for Nova - instance_mapping_uuid_patch
@ -105,147 +100,69 @@ Installation without Glance cascading
Navigate to the folder
```
cd ./tricircle/icehouse-patches/nova/instance_mapping_uuid_patch
cd ./tricircle/juno-patches/nova/instance_mapping_uuid_patch
```
follow README.md instruction to install the patch
- Patches for Cinder - Volume/SnapShot/Backup UUID mapping patch
This patch is to make the Cinder proxy being able to translate the cascading level (Volume/Snapshot/backup)'s uuid to cascadede level (Volume/Snapshot/backup)'s uuid
This patch is to make the Cinder proxy being able to translate the cascading level (Volume/Snapshot/backup)'s uuid to cascaded level (Volume/Snapshot/backup)'s uuid
Navigate to the folder
```
cd ./tricircle/icehouse-patches/cinder/instance_mapping_uuid_patch
cd ./tricircle/juno-patches/cinder/uuid-mapping-patch
```
follow README.md instruction to install the patch
- Patches for Neutron - DVR patch
- Patches for Neutron - neutron_cascading_l3_patch
This patch is to make the Neutron has the DVR(distributed virtual router) feature. Through DVR, all L2/L3 proxy nodes in the cascading level can receive correspoding RPC message, and then convert the command to restful API to cascaded Neutron.
This patch is to enable cross cascaded OpenStack L3 routing over extra route.The mapping between cascaded OpenStack and it's onlink external network which is used for GRE tunneling data path
Navigate to the folder
```
cd ./tricircle/icehouse-patches/neutron/dvr-patch
```
follow README.md instruction to install the patch
- Patches for Neutron - ml2-mech-driver-cascading patch
This patch is to make L2 population driver being able to populate the VM's host IP which stored in the port binding profile in the cascaded OpenStack to another cascaded OpenStack.
Navigate to the folder
```
cd ./tricircle/icehouse-patches/neutron/ml2-mech-driver-cascading-patch
cd ./tricircle/juno-patches/neutron/neutron_cascading_l3_patch
```
follow README.md instruction to install the patch
2. Node3
- Patches for Nova - port binding profile update bug: https://bugs.launchpad.net/neutron/+bug/1338202.
because ml2-mech-driver-cascaded-patch will update the binding profile in the port, and will be flushed to null if you don't fix the bug.
You can also fix the bug via:
Navigate to the folder
```
cd ./tricircle/icehouse-patches/icehouse-patches/nova/instance_mapping_uuid_patch/nova/network/neutronv2/
cp api.py $python_installation_path/site-packages/nova/network/neutronv2/
```
the patch will reserve what has been saved in the port binding profile
- Patches for Cinder - timestamp-query-patch patch
- Patches for Cinder - timestamp-query-patch
This patch is to make the cascaded Cinder being able to execute query with timestamp filter, but not to return all objects.
Navigate to the folder
```
cd ./tricircle/icehouse-patches/cinder/timestamp-query-patch_patch
cd ./tricircle/juno-patches/cinder/timestamp-query-patch
```
follow README.md instruction to install the patch
- Patches for Neutron - DVR patch
- Patches for Neutron - neutron_cascaded_l3_patch
This patch is to make the Neutron has the DVR(distributed virtual router) feature.
This patch is to enable cross cascaded OpenStack L3 routing over extra route..
Navigate to the folder
```
cd ./tricircle/icehouse-patches/neutron/dvr-patch
```
follow README.md instruction to install the patch
- Patches for Neutron - ml2-mech-driver-cascaded patch
This patch is to make L2 population driver being able to populate the virtual remote port where the VM located in another OpenStack.
Navigate to the folder
```
cd ./tricircle/icehouse-patches/neutron/ml2-mech-driver-cascaded-patch
```
follow README.md instruction to install the patch
- Patches for Neutron - openvswitch-agent patch
This patch is to get dvr mac crossing openstack for cross OpenStack L3 networking for VLAN-VLAN/VLAN-VxLAN/VxLAN-VxLAN.
Navigate to the folder
```
cd ./tricircle/icehouse-patches/neutron/openvswitch-agent-patch
cd ./tricircle/juno-patches/neutron/neutron_cascaded_l3_patch
```
follow README.md instruction to install the patch
3. Node4
- Patches for Nova - port binding profile update bug: https://bugs.launchpad.net/neutron/+bug/1338202.
because ml2-mech-driver-cascaded-patch will update the binding profile in the port, and will be flushed to null if you don't fix the bug.
You can also fix the bug via:
Navigate to the folder
```
cd ./tricircle/icehouse-patches/icehouse-patches/nova/instance_mapping_uuid_patch/nova/network/neutronv2/
cp api.py $python_installation_path/site-packages/nova/network/neutronv2/
```
the patch will reserve what has been saved in the port binding profile
- Patches for Cinder - timestamp-query-patch patch
- Patches for Cinder - timestamp-query-patch
This patch is to make the cascaded Cinder being able to execute query with timestamp filter, but not to return all objects.
Navigate to the folder
```
cd ./tricircle/icehouse-patches/cinder/timestamp-query-patch_patch
cd ./tricircle/juno-patches/cinder/timestamp-query-patch
```
follow README.md instruction to install the patch
- Patches for Neutron - DVR patch
- Patches for Neutron - neutron_cascaded_l3_patch
This patch is to make the Neutron has the DVR(distributed virtual router) feature.
This patch is to enable cross cascaded OpenStack L3 routing over extra route..
Navigate to the folder
```
cd ./tricircle/icehouse-patches/neutron/dvr-patch
```
follow README.md instruction to install the patch
- Patches for Neutron - ml2-mech-driver-cascaded patch
This patch is to make L2 population driver being able to populate the virtual remote port where the VM located in another OpenStack.
Navigate to the folder
```
cd ./tricircle/icehouse-patches/neutron/ml2-mech-driver-cascaded-patch
```
follow README.md instruction to install the patch
- Patches for Neutron - openvswitch-agent patch
This patch is to get dvr mac crossing openstack for cross OpenStack L3 networking for VLAN-VLAN/VLAN-VxLAN/VxLAN-VxLAN.
Navigate to the folder
```
cd ./tricircle/icehouse-patches/neutron/openvswitch-agent-patch
cd ./tricircle/juno-patches/neutron/neutron_cascaded_l3_patch
```
follow README.md instruction to install the patch
@ -348,7 +265,17 @@ Upgrade to Glance cascading
Navigate to the folder
```
cd ./tricircle/icehouse-patches/glance/glance_location_patch
cd ./tricircle/juno-patches/glance/glance_location_patch
```
follow README.md instruction to install the patch
- Patches for Glance - glance_store_patch
This patch is to make the glance being able to handle http url location.
Navigate to the folder
```
cd ./tricircle/juno-patches/glance_store/glance_store_patch
```
follow README.md instruction to install the patch
@ -395,5 +322,3 @@ Upgrade to Glance cascading
- Use Glance V2 api to create Image, Upload Image or patch location for Image. Image should be able to sync to distributed Glance if sync_enabled is setting to True
- Sync image only during first time usage but not uploading or patch location is still in testing phase, may not work properly.
- Create VM/Volume/etc from Horizon

View File

@ -99,7 +99,7 @@ if [ ! -d ${_PYTHON_INSTALL_DIR}/${glanceEggDir} ]; then
log "glance install dir not exist. Pleas check manually."
exit 1
fi
cp "${_PATCH_DIR}/glance.egg-info/entry_points.txt" "${_PYTHON_INSTALL_DIR}/${glanceEggDir}/"
cp "${_PATCH_DIR}/glance-egg-info/entry_points.txt" "${_PYTHON_INSTALL_DIR}/${glanceEggDir}/"
if [ $? -ne 0 ] ; then
log "Error in copying, aborted. Please install manually."
exit 1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

@ -154,3 +154,9 @@ os_region_name=$os_region_name
#The cascading level keystone component service url, by which the nova porxy
#can access to cascading level keystone service
keystone_auth_url=$keystone_auth_url
Note: a few options that belonged to the original nova have to be configured:
. allow_resize_to_same_host=True
. scheduler_default_filters=AvailabilityZoneFilter

View File

@ -25,7 +25,7 @@ _BACKUP_DIR="${_NOVA_INSTALL}/.nova-proxy-installation-backup"
_SCRIPT_LOGFILE="/var/log/nova-proxy/installation/install.log"
config_option_list="proxy_region_name=AZ1 cascading_nova_url=http://cascading_host:8774/v2 cascaded_nova_url=http://cascaded_host:8774/v2 cascaded_neutron_url=http://cascaded_host:9696 cascaded_glance_flag=False cascaded_glance_url=http://cascaded_host:9292 os_region_name=Cascading_Openstack keystone_auth_url=http://cascading_host:5000/v2.0/ cinder_endpoint_template=http://cascading_host:8776/v1/%(project_id)s compute_manager=nova.compute.manager_proxy.ComputeManager image_copy_dest_location_url=file:///var/lib/glance/images image_copy_dest_host=cascaded_host image_copy_dest_user=glance image_copy_dest_password=openstack image_copy_source_location_url=file:///var/lib/glance/images image_copy_source_host=copy_image_host image_copy_source_user=glance image_copy_source_password=openstack"
config_option_list="nova_admin_username=nova nova_admin_password=openstack nova_admin_tenant_name=service proxy_region_name=AZ1 cascading_nova_url=http://cascading_host:8774/v2 cascaded_nova_url=http://cascaded_host:8774/v2 cascaded_neutron_url=http://cascaded_host:9696 cascaded_glance_flag=False cascaded_glance_url=http://cascaded_host:9292 os_region_name=Cascading_Openstack keystone_auth_url=http://cascading_host:5000/v2.0/ cinder_endpoint_template=http://cascading_host:8776/v1/%(project_id)s compute_manager=nova.compute.manager_proxy.ComputeManager image_copy_dest_location_url=file:///var/lib/glance/images image_copy_dest_host=cascaded_host image_copy_dest_user=glance image_copy_dest_password=openstack image_copy_source_location_url=file:///var/lib/glance/images image_copy_source_host=copy_image_host image_copy_source_user=glance image_copy_source_password=openstack"
function log()
{