OSM Release FOUR: Difference between revisions

From OSM Public Wiki
Jump to: navigation, search
mNo edit summary
No edit summary
 
(64 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[work in progress!!!]
'''THIS PAGE IS DEPRECATED'''. OSM User Guide has been moved to a new location: '''https://osm.etsi.org/docs/user-guide/'''


[[File:3hackdate.png|300px|right|top|link=https://osm.etsi.org/wikipub/index.php/3rd_OSM_Hackfest]]
---


Open Source MANO (OSM) is the open source community that aims to deliver a production-quality MANO stack for NFV, capable of consuming openly published information models, available to everyone, suitable for all VNFs, operationally significant and VIM-independent. OSM is aligned to NFV ISG information models while providing first-hand feedback based on its implementation experience.
Open Source MANO (OSM) is the open source community that aims to deliver a production-quality MANO stack for NFV, capable of consuming openly published information models, available to everyone, suitable for all VNFs, operationally significant and VIM-independent. OSM is aligned to NFV ISG information models while providing first-hand feedback based on its implementation experience.


Its Release Four has focused on exposing a model-Driven Nothbound interface, improvements to NS monitoring, improved modeling and networking, enhanced user experience and a cloud-native build.
Release FOUR brings a number of improvements over previous releases. For the full list of new features, please refer to the [https://osm.etsi.org/images/OSM-Whitepaper-TechContent-ReleaseFOUR-FINAL.pdf Rel FOUR White Paper]. For a comprehensive overview of OSM functionalities, you can also refer to the release notes of former releases ([https://osm.etsi.org/images/OSM-Whitepaper-TechContent-ReleaseONE-FINAL.pdf ONE], [https://osm.etsi.org/images/OSM-Whitepaper-TechContent-ReleaseTWO-FINAL.pdf TWO], [https://osm.etsi.org/images/OSM-Whitepaper-TechContent-ReleaseTHREE-FINAL.pdf THREE]).


{{#evu:https://www.youtube.com/watch?v=yBWSKwms47E
'''OSM Release FOUR Pre-view and Demo'''
|alignment=inline
{{#evu:https://www.youtube.com/watch?v=KgsaA-HCX40
|dimensions="120"
|alignment=left
}}
}}
 
 
__TOC__
__TOC__


=Assumptions about interaction with VIMs and VNFs=
=Assumptions about interaction with VIMs and VNFs=
The following figure illustrates OSM interaction with VIM and VNFs:
The following figure illustrates OSM interaction with VIMs and VNFs:
* OSM talks to the VIM for the deployment of VNFs and VLs connecting them
* OSM talks to the VIM for the deployment of VNFs and VLs connecting them
* OSM talks to the VNFs deployed in a VIM to run day-0, day-1 and day-2 configuration primitives.
* OSM talks to the VNFs deployed in a VIM to run day-0, day-1 and day-2 configuration primitives.
Line 30: Line 31:
This release introduces a new lightweight build, which is a cloud-native, ''dockerized'' OSM installation featuring a new kafka bus for asynchronous communications, a lighter orchestrator, performance/fault management features, a SOL005-aligned NBI, and a new GUI and OSM client leveraging the unified REST API that the NBI exposes.  This build does not include the SO and UI components, which are still available in the ''classic build''.
This release introduces a new lightweight build, which is a cloud-native, ''dockerized'' OSM installation featuring a new kafka bus for asynchronous communications, a lighter orchestrator, performance/fault management features, a SOL005-aligned NBI, and a new GUI and OSM client leveraging the unified REST API that the NBI exposes.  This build does not include the SO and UI components, which are still available in the ''classic build''.


==Install the lightweight build from source (Recommended) ==
== Default installation procedure ==


All you need to run OSM Release FOUR is a single server or VM with the following requirements:
All you need to run OSM Release FOUR is a single server or VM with the following requirements:
* MINIMUM: 1 CPUs, 4 GB RAM, 20GB disk and a single interface with Internet access
* MINIMUM: 2 CPUs, 4 GB RAM, 20GB disk and a single interface with Internet access
* RECOMMENDED: 2 CPUs, 8 GB RAM, 40GB disk and a single interface with Internet access
* RECOMMENDED: 2 CPUs, 8 GB RAM, 40GB disk and a single interface with Internet access
* Ubuntu16.04 (64-bit variant required) as base image (http://releases.ubuntu.com/16.04/)
* Ubuntu16.04 (64-bit variant required) as base image (http://releases.ubuntu.com/16.04/)
 
Once you have prepared the host with the previous requirements, all you need to do is:
Once you have prepared the host with the previous requirements, all you need to do is:
  wget https://osm-download.etsi.org/ftp/osm-4.0-four/install_osm_release.sh
  wget https://osm-download.etsi.org/ftp/osm-4.0-four/install_osm.sh
  chmod +x install_osm_release.sh
  chmod +x install_osm.sh
  ./install_osm_release.sh
  ./install_osm.sh
 
'''TIP:''' In order to facilitate potential trobleshooting later, it is recommended to save the full log of your installation process:
wget https://osm-download.etsi.org/ftp/osm-4.0-four/install_osm.sh
chmod +x install_osm.sh
$ ./install_osm.sh 2>&1 | tee osm_install_log.txt
 
You will be asked if you want to proceed with the installation and configuration of LXD, juju, docker CE and the initialization of a local docker swarm, as pre-requirements. Please answer "y".
 
Then, some dialog messages related to LXD configuration will be shown. This is what you have to answer:
* Do you want to configure the LXD bridge? '''Yes'''
* Do you want to setup an IPv4 subnet? '''Yes'''
* ''<< '''Default values''' apply for next questions >>''
* Do you want to setup an IPv6 subnet? '''No'''


After the installation completes, you will need to add the following environment variables to the end of your .bashrc file and then source it with ''source .bashrc''
After the installation completes, you will need to add the following environment variables to the end of your .bashrc file and then source it with ''source .bashrc''
Line 46: Line 60:
  export OSM_SOL005=True
  export OSM_SOL005=True


==Install the classic build from binaries==
If you want to run docker commands, you will also need to either reload the shell or run the following command to add your user to the 'docker' group:
newgrp docker


The classic build can still be installed, but will not bring significant new features as compared to Release THREE. To install the latest OSM classic build from source, requirements are the following:
===Installation including optional components===
* 8 CPUs, 16 GB RAM, 100GB disk and a single interface with Internet access
* Ubuntu16.04 (64-bit variant required) as base image (http://releases.ubuntu.com/16.04/), configured to run LXD containers. If you don't have LXD configured, you can follow the instructions here ([[LXD configuration for OSM Release THREE|LXD configuration]]).


Once you have prepared the host with the previous requirements, all you need to do is:
You can include optional components in your installation by adding the following flags:
wget https://osm-download.etsi.org/ftp/osm-4.0-four/install_osm_release.sh
* '''VIM Emulator:''' --vimemu (more information [[VIM emulator|here]])
chmod +x install_osm_release.sh
* '''Performance Management features with Prometheus/Grafana:''' --pm_stack (more information [https://osm.etsi.org/wikipub/index.php?title=OSM_Performance_Management&oldid=2991 here])
  ./install_osm_release.sh --soui
* '''Fault Management features with ELK:''' --elk_stack (more information [https://osm.etsi.org/wikipub/index.php?title=OSM_Fault_Management&direction=prev&oldid=3911 here])
 
Example:
  ./install_osm.sh --elk_stack --pm_stack --vimemu
 
===Other installation options===
* If you need to install the Classic Build (Rel 3.1), you can follow [[Classic_OSM_Build | this guide]]
* You can also run OSM using a pre-built [https://app.vagrantup.com/osm/boxes/osm vagrant] image: [[How_to_run_OSM_on_Vagrant]]
* For other special installation options, please refer to the [[OSM_Release_FOUR_Documentation#Alternative_installation_methods | release documentation]].


Other considerations regarding LXC and connectivity apply as in Release THREE.  From now on this document will focus on the new default build.
'''Following instructions will focus only on the default (lightweight) build.'''


==Checking your installation==
==Checking your installation==
Line 71: Line 92:
  docker service ls
  docker service ls


[[File:Osm_containerspng|600px|OSM Docker containers]]
[[File:Osm_containers.png|600px|OSM Docker containers]]


At any time, you can quickly relaunch your deployment by using the pre-built docker images, like this:
At any time, you can quickly relaunch your deployment by using the pre-built docker images, like this:
  docker stack rm osm
  docker stack rm osm
  docker stack deploy -c /usr/share/osm-devops/installers/docker/docker-compose.yaml osm
  docker stack deploy -c /etc/osm/docker/docker-compose.yaml osm


To check the logs of any container:
To check the logs of any container:
Line 85: Line 106:
=Adding VIM accounts=
=Adding VIM accounts=
Before proceeding, make sure that you have a site with a VIM configured to run with OSM. Different kinds of VIMs are currently supported by OSM:
Before proceeding, make sure that you have a site with a VIM configured to run with OSM. Different kinds of VIMs are currently supported by OSM:
*OpenVIM. Check the following link to know how to install and use openvim for OSM: [[OpenVIM installation (Release THREE)]]. Openvim must run in 'normal' mode (not test or fake) to have real virtual machines reachable from OSM.
*'''OpenVIM.''' Check the following link to know how to install and use openvim for OSM: [[OpenVIM installation (Release THREE) | OpenVIM installation]]. Openvim must run in 'normal' mode (not test or fake) to have real virtual machines reachable from OSM.
*OpenStack. Check the following link to learn how to configure OpenStack to be used by OSM: [[Openstack configuration (Release THREE)]]
*'''OpenStack.''' Check the following link to learn how to configure OpenStack to be used by OSM: [[Openstack_configuration_(Release_FOUR) | Openstack configuration]]
*VMware vCloud Director. Check the following link to learn how to configure VMware VCD to be used by OSM: [[Configuring VMware vCloud Director for OSM Release THREE]]
*'''VMware vCloud Director.''' Check the following link to learn how to configure VMware VCD to be used by OSM: [[Configuring_VMware_vCloud_Director_for_OSM_Release_FOUR | Configuring VMware vCloud Director]]
*Amazon Web Services (AWS). Check the following link to learn how to configure AWS (EC2 and Virtual Private Cloud) to be used by OSM: [[Configuring AWS for OSM Release THREE]]
*'''Amazon Web Services (AWS).''' Check the following link to learn how to configure AWS (EC2 and Virtual Private Cloud) to be used by OSM: [[Configuring_AWS_for_OSM_Release_FOUR | Configuring AWS for OSM]]
OSM can manage external SDN controllers to perform the dataplane underlay network connectivity on behalve of the VIM. See [[EPA and SDN assist]]
OSM can manage external SDN controllers to perform the dataplane underlay network connectivity on behalf of the VIM. See [[EPA and SDN assist]]


==Adding VIMs through OSM client==
==Adding VIMs through OSM client==
===OpenVIM site===
===OpenVIM site===
*Execute the following command, using the appropriate parameters (e.g. site name: "openvim-site", IP address: 10.10.10.10, VIM tenant: "osm")
Execute the following command, using the appropriate parameters (e.g. site name: "openvim-site", IP address: 10.10.10.10, VIM tenant: "osm")
  osm vim-create --name openvim-site --auth_url http://10.10.10.10:9080/openvim --account_type openvim --description "Openvim site" --tenant osm --user dummy --password dummy
  osm vim-create --name openvim-site --auth_url http://10.10.10.10:9080/openvim --account_type openvim \
    --description "Openvim site" --tenant osm --user dummy --password dummy


===Openstack site===
===Openstack site===
*Execute the following command, using the appropriate parameters (e.g. site name: "openstack-site", IP address: 10.10.10.11, VIM tenant: "admin", user: "admin", password: "userpwd")
Execute the following command, using the appropriate parameters (e.g. site name: "openstack-site", IP address: 10.10.10.11, VIM tenant: "admin", user: "admin", password: "userpwd")
  osm vim-create --name openstack-site --user admin --password userpwd --auth_url http://10.10.10.11:5000/v2.0 --tenant admin --account_type openstack
  osm vim-create --name openstack-site --user admin --password userpwd \
    --auth_url http://10.10.10.11:5000/v2.0 --tenant admin --account_type openstack
 
For advanced options, please refer to the [[Openstack_configuration_(Release_FOUR)#Add_openstack_to_OSM | OpenStack Setup Guide]].


===VMware vCloud Director site===
===VMware vCloud Director site===
*Execute the following command, using the appropriate parameters (e.g. site name: "vmware-site", IP address: 10.10.10.12, VIM tenant: "vmware-tenant", user: "osm", password: "osm4u", admin user: "admin", admin password: "adminpwd", organization: "orgVDC")
*Execute the following command, using the appropriate parameters (e.g. site name: "vmware-site", IP address: 10.10.10.12, VIM tenant: "vmware-tenant", user: "osm", password: "osm4u", admin user: "admin", admin password: "adminpwd", organization: "orgVDC")
  osm vim-create --name vmware-site --user osm --password osm4u --auth_url https://10.10.10.12 --tenant vmware-tenant  --account_type vmware         --config '{admin_username: user, admin_password: passwd, orgname: organization, nsx_manager: "http://10.10.10.12", nsx_user: user, nsx_password: userpwd,"vcenter_port": port, "vcenter_user":user, "vcenter_password":password, "vcenter_ip": 10.10.10.14}'
  osm vim-create --name vmware-site --user osm --password osm4u --auth_url https://10.10.10.12 \
    --tenant vmware-tenant  --account_type vmware \
    --config '{admin_username: user, admin_password: passwd, orgname: organization, nsx_manager: "http://10.10.10.12",
    nsx_user: user, nsx_password: userpwd,"vcenter_port": port, "vcenter_user":user, "vcenter_password":password,
    "vcenter_ip": 10.10.10.14}'
 
For advanced options, please refer to the [[Configuring_VMware_vCloud_Director_for_OSM_Release_FOUR#Add_vCloud_using_OSM_Client | vCloud Director Setup Guide]].


===VMware Integrated Openstack (VIO) site===
===VMware Integrated Openstack (VIO) site===
*Execute the following command, using the appropriate parameters (e.g. site name: "openstack-site-vio4", IP address: 10.10.10.12, VIM tenant: "admin", user: "admin", password: "passwd")
Execute the following command, using the appropriate parameters (e.g. site name: "openstack-site-vio4", IP address: 10.10.10.12, VIM tenant: "admin", user: "admin", password: "passwd")
  osm vim-create --name VIO --user admin --password passwd --auth_url https://10.10.10.12:5000/v3 --tenant admin \
  osm vim-create --name VIO --user admin --password passwd --auth_url https://10.10.10.12:5000/v3 --tenant admin \
--account_type openstack \
    --account_type openstack --config '{use_floating_ip: True, insecure: true, vim_type: VIO, APIversion: v3.3,
--config '{use_floating_ip: True, insecure: true, vim_type: VIO, APIversion: v3.3, dataplane_physical_net: dvs-46, "use_internal_endpoint":true,"dataplane_net_vlan_range":["31-35","37-39"]}'
    dataplane_physical_net: dvs-46, "use_internal_endpoint":true,"dataplane_net_vlan_range":["31-35","37-39"]}'


With respect to Openstack, the additional configuration for VIO is the following:
With respect to Openstack, the additional configuration for VIO is the following:
Line 115: Line 146:
* '''dataplane_physical_net''': The configured network_vlan_ranges at neutron for the SRIOV (binding direct) and passthrough (binding direct-physical) networks, e.g. 'physnet_sriov' in the above configuration. In case of VMware Integrated Openstack (VIO) provide moref ID of distributed virtual switch, e.g 'dvs-46' in above configuration.
* '''dataplane_physical_net''': The configured network_vlan_ranges at neutron for the SRIOV (binding direct) and passthrough (binding direct-physical) networks, e.g. 'physnet_sriov' in the above configuration. In case of VMware Integrated Openstack (VIO) provide moref ID of distributed virtual switch, e.g 'dvs-46' in above configuration.
* '''dataplane_net_vlan_range''': In case of VMware Integrated Openstack (VIO) provide vlan ranges for the SRIOV (binding direct) networks in format ['start_ID - end_ID']
* '''dataplane_net_vlan_range''': In case of VMware Integrated Openstack (VIO) provide vlan ranges for the SRIOV (binding direct) networks in format ['start_ID - end_ID']
For common options, you may refer to the general [[Openstack_configuration_(Release_FOUR)#Add_openstack_to_OSM | OpenStack Setup Guide]].


===Amazon Web Services (AWS) site===
===Amazon Web Services (AWS) site===
*Execute the following command, using the appropriate parameters (e.g. site name: "aws-site", VIM tenant: "admin", user: "XXX", password: "YYY")
*Execute the following command, using the appropriate parameters (e.g. site name: "aws-site", VIM tenant: "admin", user: "XXX", password: "YYY")
  osm vim-create --name aws-site --user XXX --password YYY --auth_url https://aws.amazon.com --tenant admin --account_type aws --config '{region_name: eu-central-1, flavor_info: {t2.nano: {cpus: 1, disk: 100, ram: 512}, t2.micro: {cpus: 1, disk: 100, ram: 1024}, t2.small: {cpus: 1, disk: 100, ram: 2048}, m1.small: {cpus: 1, disk: 160, ram: 1741}}}'
  osm vim-create --name aws-site --user XXX --password YYY --auth_url https://aws.amazon.com --tenant admin \
    --account_type aws --config '{region_name: eu-central-1, flavor_info: {t2.nano: {cpus: 1, disk: 100, ram: 512},
    t2.micro: {cpus: 1, disk: 100, ram: 1024}, t2.small: {cpus: 1, disk: 100, ram: 2048},
    m1.small: {cpus: 1, disk: 160, ram: 1741}}}'
 
For advanced options, please refer to the [[Configuring_AWS_for_OSM_Release_FOUR#Add_AWS_to_OSM | AWS Setup Guide]].


==Adding VIMs through GUI==
==Adding VIMs through GUI==
Just access the ''VIM Accounts'' tab, click the ''New VIM'' button and fill the parameters accordingly.
Just access the ''VIM Accounts'' tab, click the ''New VIM'' button and fill the parameters accordingly.


[[File:Osmvim.png]]
[[File:Osmvim.png|600px|AddingVIMUI]]
 
=Deploying your first Network Service=
=Deploying your first Network Service=
In this example we will deploy the following Network Service, consisting of two simple VNFs based on CirrOS connected by a simple VLD.
In this example we will deploy the following Network Service, consisting of two simple VNFs based on CirrOS connected by a simple VLD.
Line 131: Line 170:
Before going on, download the required VNF and NS packages from this URL: https://osm-download.etsi.org/ftp/osm-3.0-three/examples/cirros_2vnf_ns/
Before going on, download the required VNF and NS packages from this URL: https://osm-download.etsi.org/ftp/osm-3.0-three/examples/cirros_2vnf_ns/


==Uploading VNF image to the VIM==
==Onboarding a VNF==
Get the cirros 0.3.4 image from the following link: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img


Then, onboard the image into the VIM. The instruction differs from one VIM to another:
The onboarding of a VNF in OSM involves adding the corresponding VNF package to the system. This process also assumes, as a pre-condition, that the corresponding VM images are available in the VIM(s) where it will be instantiated.
 
===Uploading VM image(s) to the VIM(s)===
In this example, only a vanilla CirrOS 0.3.4 image is need. It can be obtained from the following link: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
 
If not available, it would be required to upload the image into the VIM. Instructions differ from one VIM to another:
*In Openstack:
*In Openstack:
  openstack image create --file="./cirros-0.3.4-x86_64-disk.img" --container-format=bare --disk-format=qcow2 cirros034
  openstack image create --file="./cirros-0.3.4-x86_64-disk.img" --container-format=bare --disk-format=qcow2 cirros034
*In openvim:
*In OpenVIM:
  #copy your image to the NFS shared folder (e.g. /mnt/openvim-nfs)
  #copy your image to the NFS shared folder (e.g. /mnt/openvim-nfs)
  cp ./cirros-0.3.4-x86_64-disk.img /mnt/openvim-nfs/
  cp ./cirros-0.3.4-x86_64-disk.img /mnt/openvim-nfs/
  openvim image-create --name cirros034 --path /mnt/openvim-nfs/cirros-0.3.4-x86_64-disk.img
  openvim image-create --name cirros034 --path /mnt/openvim-nfs/cirros-0.3.4-x86_64-disk.img


==Onboarding a VNF==
===VNF package onboarding===
 
*From the UI:
*From the UI:
**Go to Catalog
**Go to Projects --> Admin --> VNF Packages (''Open List'')
**Click on the import button, then VNFD
**Click on the Onboard VNFD button
**Drag and drop the VNF package file cirros_vnf.tar.gz in the importing area.
**Drag and drop the VNF package file cirros_vnf.tar.gz in the importing area.
[[File:onboardingVNF.png|300px|Onboarding a VNF]]
[[File:vnfd_onboard_r4.png|600px|Onboarding a VNF]]
*From OSM client:
*From OSM client:
  osm upload-package cirros_vnf.tar.gz
  osm vnfd-create cirros_vnf.tar.gz
  osm vnfd-list
  osm vnfd-list


==Onboarding a NS==
==Onboarding a NS==
*From the UI:
*From the UI:
**Go to Catalog
**Go to Projects --> Admin --> NS Packages (''Open List'')
**Click on the import button, then NSD
**Click on the Onboard NSD button
**Drag and drop the NS package file cirros_2vnf_ns.tar.gz in the importing area.
**Drag and drop the NS package file cirros_2vnf_ns.tar.gz in the importing area.
[[File:nsd_onboard_r4.png|600px|Onboarding a NS]]
*From OSM client:
*From OSM client:
  osm upload-package cirros_2vnf_ns.tar.gz
  osm nsd-create cirros_2vnf_ns.tar.gz
  osm nsd-list
  osm nsd-list


==Instantiating the NS==
==Instantiating the NS==
*From the UI:
*From the UI:
**Go to Launchpad > Instantiate
**Go to Projects --> Admin --> NS Packages (''Open List'')
**Select the NS descriptor to be instantiated, and click on Next
**Next the NS descriptor to be instantiated, click on Launch
**Add a name to the NS instance, and click on Launch.
[[File:nsd_list.png|600px|Instantiating a NS (step 1)]]  
[[File:instantiatingNS.png|300px|Instantiating a NS (step 1)]]                 [[File:instantiatingNS-step2.png|400px|Instantiating a NS (step 2)]]
**Fill the form, adding at least a name and selecting the VIM
[[File:new_ns.png|600px|Instantiating a NS (step 2)]]  
* From OSM client:
* From OSM client:
  osm ns-create --nsd_name cirros_2vnf_ns --ns_name <ns-instance-name> --vim_account <data-center-name>
  osm ns-create --nsd_name cirros_2vnf_ns --ns_name <ns-instance-name> --vim_account <data-center-name>
  osm ns-list
  osm ns-list


==Using OSM to view instantiated NS details==
'''Instantiation parameters can be specified using both CLI and UI. There are some examples collected in this wiki page: [[OSM instantiation parameters]].'''
OSM client can be used to manage the NSD and VNF catalog, as well as deploying and undeploying NS instances:
osm vnfd-list            # show the vnfd catalog
osm nsd-list              # show the nsd catalog
osm ns-list              # show ns instances
osm ns-show <id|name>    # show the details of a running ns instance
osm vnf-list              # show vnf instances
osm vnf-show <id|name>    # show the details of a running vnf instance


==Using old descriptors from Release TWO==
==Using old descriptors from Release TWO==


Beware that old Release TWO descriptors cannot be directly used by OSM Release THREE.
Beware that old Release TWO descriptors cannot be directly used by OSM Release FOUR.


You should use this '''[[Creating your own VNF package (Release THREE)#Migrating old descriptors to release THREE|conversion tool]]''' to convert them to Release THREE format and '''[[Creating your own VNF package (Release THREE)|create the corresponding package]]'''.
You should use this '''[[Creating your own VNF package#Migrating old descriptors to release FOUR|conversion tool]]''' to convert them to Release FOUR format and '''[[Creating your own VNF package|create the corresponding package]]'''.


=Additional information=
=What's next?=


*[[Deploying advanced Network Services (Release THREE)|Deploy advanced Network Services]]
If you want to learn more, you can refer to the rest of '''[[OSM_Release_FOUR_Documentation | OSM documentation]]'''.
*[[Creating your own VNF package (Release THREE)|Create your own VNF package]]
*[[Reference VNF and NS Descriptors (Release THREE)|Reference VNF and NS Descriptors]]
*[[Creating your own VNF charm (Release_THREE)|Creating your own VNF charm]]
*[[Example VNF Charms|Example VNF Charms]]
*[[OSM Information Model|More information about OSM's Information Model]]
*[[VIM emulator|VIM emulator]]
*[[How to report issues (Release THREE)|Have you detected any bug? Check this guide to see how to report issues]]
*[[Life Cycle Management of VNFs from the RO (Release THREE)|Life Cycle Management of VNFs from the RO]]
*[https://osm.etsi.org/images/OSM-Whitepaper-TechContent-ReleaseTHREE-FINAL.pdf OSM White Paper - Release THREE Technical Overview]
*[[OSM Technical Videos|Technical and demonstration videos]]
*[[EPA and SDN assist]]
*[[OSM Multi-tenancy]]
*[[Software upgrade (Release THREE)|Software upgrade]]
*[[OSM MON Module Installation Guide (Release THREE)|OSM MON Module Installation Guide]]
*[[OSM MON Usage Guide (Release THREE)|OSM MON Usage Guide]]
*[[Logs and troubleshooting (Release THREE)|Logs and troubleshooting]]
*[[OSM E2E tests|E2E tests]]
*[[OSM workshops and events|Videos from workshops and events]]
*[[How to install OSM on VirtualBox|How to install OSM on VirtualBox (and access UI from the host without SSH tunnelling)]]
*[[Technical FAQ|Technical FAQ]]


{{Feedback}}
{{Feedback}}

Latest revision as of 16:54, 17 February 2021

THIS PAGE IS DEPRECATED. OSM User Guide has been moved to a new location: https://osm.etsi.org/docs/user-guide/

---

Open Source MANO (OSM) is the open source community that aims to deliver a production-quality MANO stack for NFV, capable of consuming openly published information models, available to everyone, suitable for all VNFs, operationally significant and VIM-independent. OSM is aligned to NFV ISG information models while providing first-hand feedback based on its implementation experience.

Release FOUR brings a number of improvements over previous releases. For the full list of new features, please refer to the Rel FOUR White Paper. For a comprehensive overview of OSM functionalities, you can also refer to the release notes of former releases (ONE, TWO, THREE).

OSM Release FOUR Pre-view and Demo


Assumptions about interaction with VIMs and VNFs

The following figure illustrates OSM interaction with VIMs and VNFs:

  • OSM talks to the VIM for the deployment of VNFs and VLs connecting them
  • OSM talks to the VNFs deployed in a VIM to run day-0, day-1 and day-2 configuration primitives.

OSM Release 4

In order for OSM to work, it is assumed that:

  • Each VIM has an API endpoint reachable from OSM
  • Each VIM has a so called management network which provides IP address to VNFs
  • That management network is reachable from OSM

Install OSM Release FOUR

This release introduces a new lightweight build, which is a cloud-native, dockerized OSM installation featuring a new kafka bus for asynchronous communications, a lighter orchestrator, performance/fault management features, a SOL005-aligned NBI, and a new GUI and OSM client leveraging the unified REST API that the NBI exposes. This build does not include the SO and UI components, which are still available in the classic build.

Default installation procedure

All you need to run OSM Release FOUR is a single server or VM with the following requirements:

  • MINIMUM: 2 CPUs, 4 GB RAM, 20GB disk and a single interface with Internet access
  • RECOMMENDED: 2 CPUs, 8 GB RAM, 40GB disk and a single interface with Internet access
  • Ubuntu16.04 (64-bit variant required) as base image (http://releases.ubuntu.com/16.04/)

Once you have prepared the host with the previous requirements, all you need to do is:

wget https://osm-download.etsi.org/ftp/osm-4.0-four/install_osm.sh
chmod +x install_osm.sh
./install_osm.sh

TIP: In order to facilitate potential trobleshooting later, it is recommended to save the full log of your installation process:

wget https://osm-download.etsi.org/ftp/osm-4.0-four/install_osm.sh
chmod +x install_osm.sh
$ ./install_osm.sh 2>&1 | tee osm_install_log.txt

You will be asked if you want to proceed with the installation and configuration of LXD, juju, docker CE and the initialization of a local docker swarm, as pre-requirements. Please answer "y".

Then, some dialog messages related to LXD configuration will be shown. This is what you have to answer:

  • Do you want to configure the LXD bridge? Yes
  • Do you want to setup an IPv4 subnet? Yes
  • << Default values apply for next questions >>
  • Do you want to setup an IPv6 subnet? No

After the installation completes, you will need to add the following environment variables to the end of your .bashrc file and then source it with source .bashrc

export OSM_HOSTNAME=127.0.0.1
export OSM_SOL005=True

If you want to run docker commands, you will also need to either reload the shell or run the following command to add your user to the 'docker' group:

newgrp docker

Installation including optional components

You can include optional components in your installation by adding the following flags:

  • VIM Emulator: --vimemu (more information here)
  • Performance Management features with Prometheus/Grafana: --pm_stack (more information here)
  • Fault Management features with ELK: --elk_stack (more information here)

Example:

./install_osm.sh --elk_stack --pm_stack --vimemu

Other installation options

Following instructions will focus only on the default (lightweight) build.

Checking your installation

After some time, you will get a fresh OSM Release FOUR installation. You can access to the UI in the following URL (user:admin, password: admin): http://1.2.3.4, replacing 1.2.3.4 with the IP address of your host.

OSM home

OSM Release FOUR installation result

As a result of the installation, ten docker containers are created in the host. You can check they are running by issuing the following commands:

docker stack ps osm |grep -i running
docker service ls

OSM Docker containers

At any time, you can quickly relaunch your deployment by using the pre-built docker images, like this:

docker stack rm osm
docker stack deploy -c /etc/osm/docker/docker-compose.yaml osm

To check the logs of any container:

docker service logs osm_lcm         # for LCM

OSM client, a python-based CLI for OSM, will be available as well in the host machine. Via the OSM client, you can manage descriptors, NS and VIM complete lifecycle and some new performance and fault-management features.

Adding VIM accounts

Before proceeding, make sure that you have a site with a VIM configured to run with OSM. Different kinds of VIMs are currently supported by OSM:

  • OpenVIM. Check the following link to know how to install and use openvim for OSM: OpenVIM installation. Openvim must run in 'normal' mode (not test or fake) to have real virtual machines reachable from OSM.
  • OpenStack. Check the following link to learn how to configure OpenStack to be used by OSM: Openstack configuration
  • VMware vCloud Director. Check the following link to learn how to configure VMware VCD to be used by OSM: Configuring VMware vCloud Director
  • Amazon Web Services (AWS). Check the following link to learn how to configure AWS (EC2 and Virtual Private Cloud) to be used by OSM: Configuring AWS for OSM

OSM can manage external SDN controllers to perform the dataplane underlay network connectivity on behalf of the VIM. See EPA and SDN assist

Adding VIMs through OSM client

OpenVIM site

Execute the following command, using the appropriate parameters (e.g. site name: "openvim-site", IP address: 10.10.10.10, VIM tenant: "osm")

osm vim-create --name openvim-site --auth_url http://10.10.10.10:9080/openvim --account_type openvim \
   --description "Openvim site" --tenant osm --user dummy --password dummy

Openstack site

Execute the following command, using the appropriate parameters (e.g. site name: "openstack-site", IP address: 10.10.10.11, VIM tenant: "admin", user: "admin", password: "userpwd")

osm vim-create --name openstack-site --user admin --password userpwd \
    --auth_url http://10.10.10.11:5000/v2.0 --tenant admin --account_type openstack

For advanced options, please refer to the OpenStack Setup Guide.

VMware vCloud Director site

  • Execute the following command, using the appropriate parameters (e.g. site name: "vmware-site", IP address: 10.10.10.12, VIM tenant: "vmware-tenant", user: "osm", password: "osm4u", admin user: "admin", admin password: "adminpwd", organization: "orgVDC")
osm vim-create --name vmware-site --user osm --password osm4u --auth_url https://10.10.10.12 \
    --tenant vmware-tenant  --account_type vmware \
    --config '{admin_username: user, admin_password: passwd, orgname: organization, nsx_manager: "http://10.10.10.12",
    nsx_user: user, nsx_password: userpwd,"vcenter_port": port, "vcenter_user":user, "vcenter_password":password,
    "vcenter_ip": 10.10.10.14}'

For advanced options, please refer to the vCloud Director Setup Guide.

VMware Integrated Openstack (VIO) site

Execute the following command, using the appropriate parameters (e.g. site name: "openstack-site-vio4", IP address: 10.10.10.12, VIM tenant: "admin", user: "admin", password: "passwd")

osm vim-create --name VIO --user admin --password passwd --auth_url https://10.10.10.12:5000/v3 --tenant admin \
    --account_type openstack --config '{use_floating_ip: True, insecure: true, vim_type: VIO, APIversion: v3.3,
    dataplane_physical_net: dvs-46, "use_internal_endpoint":true,"dataplane_net_vlan_range":["31-35","37-39"]}'

With respect to Openstack, the additional configuration for VIO is the following:

  • vim_type: Set to "VIO" to use VMware Integrated openstack as VIM
  • use_internal_endpoint: When true it allows use of private API endpoints
  • dataplane_physical_net: The configured network_vlan_ranges at neutron for the SRIOV (binding direct) and passthrough (binding direct-physical) networks, e.g. 'physnet_sriov' in the above configuration. In case of VMware Integrated Openstack (VIO) provide moref ID of distributed virtual switch, e.g 'dvs-46' in above configuration.
  • dataplane_net_vlan_range: In case of VMware Integrated Openstack (VIO) provide vlan ranges for the SRIOV (binding direct) networks in format ['start_ID - end_ID']

For common options, you may refer to the general OpenStack Setup Guide.

Amazon Web Services (AWS) site

  • Execute the following command, using the appropriate parameters (e.g. site name: "aws-site", VIM tenant: "admin", user: "XXX", password: "YYY")
osm vim-create --name aws-site --user XXX --password YYY --auth_url https://aws.amazon.com --tenant admin \
    --account_type aws --config '{region_name: eu-central-1, flavor_info: {t2.nano: {cpus: 1, disk: 100, ram: 512},
    t2.micro: {cpus: 1, disk: 100, ram: 1024}, t2.small: {cpus: 1, disk: 100, ram: 2048},
    m1.small: {cpus: 1, disk: 160, ram: 1741}}}'

For advanced options, please refer to the AWS Setup Guide.

Adding VIMs through GUI

Just access the VIM Accounts tab, click the New VIM button and fill the parameters accordingly.

AddingVIMUI

Deploying your first Network Service

In this example we will deploy the following Network Service, consisting of two simple VNFs based on CirrOS connected by a simple VLD.

NS with 2 CirrOS VNF

Before going on, download the required VNF and NS packages from this URL: https://osm-download.etsi.org/ftp/osm-3.0-three/examples/cirros_2vnf_ns/

Onboarding a VNF

The onboarding of a VNF in OSM involves adding the corresponding VNF package to the system. This process also assumes, as a pre-condition, that the corresponding VM images are available in the VIM(s) where it will be instantiated.

Uploading VM image(s) to the VIM(s)

In this example, only a vanilla CirrOS 0.3.4 image is need. It can be obtained from the following link: http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

If not available, it would be required to upload the image into the VIM. Instructions differ from one VIM to another:

  • In Openstack:
openstack image create --file="./cirros-0.3.4-x86_64-disk.img" --container-format=bare --disk-format=qcow2 cirros034
  • In OpenVIM:
#copy your image to the NFS shared folder (e.g. /mnt/openvim-nfs)
cp ./cirros-0.3.4-x86_64-disk.img /mnt/openvim-nfs/
openvim image-create --name cirros034 --path /mnt/openvim-nfs/cirros-0.3.4-x86_64-disk.img

VNF package onboarding

  • From the UI:
    • Go to Projects --> Admin --> VNF Packages (Open List)
    • Click on the Onboard VNFD button
    • Drag and drop the VNF package file cirros_vnf.tar.gz in the importing area.

Onboarding a VNF

  • From OSM client:
osm vnfd-create cirros_vnf.tar.gz
osm vnfd-list

Onboarding a NS

  • From the UI:
    • Go to Projects --> Admin --> NS Packages (Open List)
    • Click on the Onboard NSD button
    • Drag and drop the NS package file cirros_2vnf_ns.tar.gz in the importing area.

Onboarding a NS

  • From OSM client:
osm nsd-create cirros_2vnf_ns.tar.gz
osm nsd-list

Instantiating the NS

  • From the UI:
    • Go to Projects --> Admin --> NS Packages (Open List)
    • Next the NS descriptor to be instantiated, click on Launch

Instantiating a NS (step 1)

    • Fill the form, adding at least a name and selecting the VIM

Instantiating a NS (step 2)

  • From OSM client:
osm ns-create --nsd_name cirros_2vnf_ns --ns_name <ns-instance-name> --vim_account <data-center-name>
osm ns-list

Instantiation parameters can be specified using both CLI and UI. There are some examples collected in this wiki page: OSM instantiation parameters.

Using old descriptors from Release TWO

Beware that old Release TWO descriptors cannot be directly used by OSM Release FOUR.

You should use this conversion tool to convert them to Release FOUR format and create the corresponding package.

What's next?

If you want to learn more, you can refer to the rest of OSM documentation.

Your feedback is most welcome!
You can send us your comments and questions to OSM_TECH@list.etsi.org
Or join the OpenSourceMANO Slack Workplace
See hereafter some best practices to report issues on OSM