Application Layer Traffic Optimization | L. Bertz |
Internet-Draft | Sprint |
Intended status: Informational | July 8, 2016 |
Expires: January 9, 2017 |
Programmable NFV/SDN orchestration with ALTO
draft-bertz-alto-sdnnfvalto-02
This document defines optional Diameter attributes for efficient policy provisioning.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 9, 2017.
Copyright (c) 2016 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
This document describes a proposed framework for Orchestration in a Network Function Virtualization (NFV) and Software Defined Networking (SDN) environment. Both technologies have a loose coupling that enables automated deployment of Virtual Network Functions (VNFs).
Figure 1 shows the ETSI NFV Reference Model.
+-----------+ | E/NMS | +------+-----+ +-----------+ |Orchestrator+-+ | +------+-----+ | | | | +-----+-----+ +------+-----+ | | VNF |----------------+ VNFM | | +-----------+ | | | | +------+-----+ | | | | +-----+-----+ +------+-----+ | | NFVI |----------------| VIM +-+ +-----------+ +------------+
Figure 1: ETSI NFV Reference Model
The Element Manager (EM) and VNF Manager (VNFM) control the VNF. The VNFM interfaces to and controls the VNF for the NFV environment. The Virtual Infrastructure Manager, e.g. OpenStack or OpenVIM controllers, provides control of the underlying hardware infrastructure, i.e. compute, networking, memory and storage. Figure 2 shows the common VIM configuration where an SDN Controller is used to provide the underlying networking infrastructure. Here the SDN Contoller is separated from the VIM and the SDN switch is separated out from the rest of the NVFI.
+-----------+ | E/NMS | +------+-----+ +-----------+ |Orchestrator+-+ | +------+-----+ | | | +-----+-----+ +------+-----+ | | VNF |---+ VNFM | | +-----------+ | | | +------------+ | | |-+-| SDN | | +------+-----+ | | Controller | | | | +-----+------+ +-----+-----+ +------+-----+ | | | NFVI |---| VIM |-+ | +-----+-----+ +------------+ | | | +-----+-----+ | | SDN |------------------------+ | Switch | +-----+-----+
Figure 2: ETSI NFV + SDN Reference Model
The OSM, Open Source MANO (Management And Network Orchestration), group has refined the NFV model in order to address some of the scaling issues. Figure 3 shows a portion of the OSM model.
+-----------------------------+ | Newtork Service Orchestrator| +-------+---------------+-----+ | | +-----------+ | +------+-----+ | E/NMS | | | Resource +-+ +-----------+ | |Orchestrator| | | | +------+-----+ | | | | | | | +------+-----+ | +-----+-----+ +--------+ | | | VNF |----------------+ VNFM | | +-----------+ | | | | +------+-----+ | | | | +-----+-----+ +------+-----+ | | NFVI |----------------| VIM +-+ +-----------+ +------------+
Figure 3: ETSI NFV + SDN Reference Model
The model breaks the NFVO into a Network Service Orchestrator (NSO) and Resource Orchestrator (RO). This separation improves scaling of the NFVO and allows the RO to concentrate on support for multiple VNFMs and VIMs.
Open questions exist with the NFV model around data models, scale and multi-domain support. The industry often points to the success of cloud services with respect to scaling and data models but can't agree upon how those solutions could be standardized to support NFV. The OSM model improves scaling but does not answer exactly how scalable the solution can be.
Both models assume that data is provided through the VIM to the NFVO components and data required by new VNFs is present in the system. This implies a large amount of information flow in a proactive manner from SDN Controllers through the VIM. If data is required from the Element Manager a direct interface to the VNFM is required but is not specified in either model.
Assumed access to data through the VIM or VNFM is problematic. Relevant data such as latency between sites can be measure via SDN Controllers supporting Wide Area Networking (WAN). Unfortunately WAN SDN Controllers, due to factors such as separation of concerns, scalability or security, are often not the same SDN Controllers a VIM will communicate with.
The number of SDN Controllers is often underestimated:
In practice, regional management models, multiple security zones and the fact that dense computing platforms can limit a system such as OpenStack to 4 to 12 racks of computing equipment per instance implies the presence of several SDN Controllers in any one network.
Regardless of a proposed framework for Orchestration, the following challenges exist:
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].
A good solution that couples SDN and NFV permit Orchestration with a loose coupling of both technologies. To provide a basis for the solution a method is described that approaches how Orchestration may occur for an Orchestrator looking at a single NFV Forwarding Graph (NFV FG) may determine if a VIM has infrasctructure the meets its requirements.
Two kinds of information are required for the selection of a set of suitable resources to serve the VNF FG defined for a network service:
Looking at the types of Orchestration information, one can evaluate a specific candidate solution for a subgraph in the VNF FG as a set of matrices.
Let VNF Requirements vector, VREQg, be the n Resource Constraints (RC) and m Performance Constraints (PC) for a VNF FG subgraph g
VREQg = [ RC1 RC2 ... RCn PC1 PC2 ... PCm ] |
Let VNF Solution vector, VSOLg, be the vector representing the n Resources (R) and m Performance Metrics (PM) for a VIM's resources supporting VNF FG subgraph g
VSOLg = [ R1 R2 ... Rn PM1 PM2 ... PMm ] |
Without loss of generality satisfaction of a specific Performance Metric can be determined using subtraction, e.g. VREQg - VSOLg. For example if for latency must be less than 5 then negating the sign for the PM and associated RC. If any value in the resulting vector is less than 0 then, VSOLg does not satisfy VREQg.
Multiplying the resulting matrix by a M+N x 1 matrix of weights yields a value that can be determined as the fitness of the solution. His can be compared with VSOLg values.
The representation of Resource Constraints includes the minimum/ maximum inventory required. However, a VIM representing a resource for a graph to a Resource Orchestrator must be careful not to over-summarize the values of the resources it has. For example, let the VNF FG subgraph G be comprised of 3 VNFs:
A VIM stating it has 4 CPUs of resource is insufficient to determine if it can satisfy G. Looking at the partitions (# of ways to add integers to equal the value of the integer) we see the partitions of 4 are:
Of the 5 partitions of 4 only one, 2+2, would satisfy G. Thus, it is important to represent the paritions and not summarize the value in order to determine if a NFVI has sufficient resources for satisfying the VNF FG.
For representing large numbers though this data can be compacted as we propose here. We let the notation for Resource values be
Resource Vector of Type z for RZ(A) = X, [A], sub-partition summary of X, [sub-partitions of X] |
where X is a non-negative integer and partition of X for the entity optionally labelled "A". The sub-partitions of X are themselves partitions. The sub-partition summary is the specific sub-partition of X in comma separated values. while the options sub-partition details may also be present.
If the VIM has in Chassis X 3 blades, B1 with 2 CPU, B2 with 1 CPU and B3 with 1 CPU we represent this as
Rcpu (Chassis X) = [ 4, "Chassis X", [2,1,1], [ [2, "B1", [2]], [1, "B2", [1]], [1,"B3",[1]] ] ] |
When evaluating this solution we can quickly look at the first value and determine basic satisfiability. Further inspection is possible as well.
A multi-dimensional resource representation is achieved by turning individual values into arrays. For example if we added memory for all blades of 4 Gigabytes we could represent the Resources as
R[ cpu, memory ](Chassis X) = [ [4, 6], "Chassis X", [[2,2],[2,1],[2,1]] [[[2,2], "B1",[2,2]], [[1,2],"B2", [1,2]], [[[1,2],"B3",[1,2]]]] |
Other compaction notations can be introduced as well, e.g. representing B2 and B3 as {2}[2,1] in the partition description and [ [1,2], ["B2","B3"], [1,2]]. However, it is proposed that this is the maximum amount of information for Resource values interchanged between VIMs and Orchestration functions.
When no anti-affinities are present it may be sufficient to look at the initial values of the Resource vector. As the example shows looking at specific partition information is required when anti-affinities are present in the VNF FG subgraph.
NOTE that although this document proposes a representation for Resource Values other representations exist that are valid, e.g. a tree repsresentation, and may be more efficient.
Performance Constraints for VNF FG subgraph G have value and optionally measurement constraints. Some measurement constraints are:
Table 1 shows the data required and source(s) in order to determine VIM solution candidate suitability for a VNF FG subgraph.
Data | Data Structures | Source Element(s) |
---|---|---|
VNF FG Subgraph Resource Requirements | VNF Descriptors for VNFs in the sub-graph | Resource / Network Service Orchestrators |
VNF FG Subgraph Performance Constraints | VNF Descriptors for VNFs in the sub-graph | Resource / Network Service Orchestrators |
VIM Partitions (for candidate solutions) | VIM Resource Vectors | VIM |
VIM Partition associated Performance Measurements | Metric Information | SDN Controllers, VIMs, VNFs, Element Managers |
ALTO is proposed, with some modifications, to provide the Performance Measurements. This includes:
The Application Layer Transport Optimization (ALTO) standards provide network map, metric and property information for Endpoints and containing logical entities known by their Provider Identifiers (PIDs). Although PIDs are most often thought of as networks, network partitions or sites, they can be as granular as virtual devices or a blade hosting multiple virtual machines. Endpoints are contained in PIDs. PIDs may be contained by other PIDs.
Cost Maps are based upon metrics and services provide both fine (endpoint to endpoint) and coarse (pid to pid) grain measurements.
Pull (ALTO base RFC) and push (Server Side Events) mechanisms exist for ALTO Clients.
New metrics, maps and measurement data can be supported without change to the Client. However, these mechanisms need further definition to allow Orchestrators, acting as ALTO Clients, to manipulate the ALTO system to meet is needs.
The biggest advantage of ALTO is its ability to serve what a specific application needs for optimization while supporting multiple applications simultaneously through a common, REST based interface. In general, VNFs and Services represents multiple applications and the supporting Orchestrators can use ALTO as a single protocol for the acquisition of performance information.
Given the use of an HTTP RESTful interface, the use of HTTP Date, ETag, Cache-Control Expires and Last-Modified provide information regarding the timing information associated with a request. Use of the Cache-Control, If-Since and If-Unmodified-Since allow Client based control for Staleness.
Given the support of Endpoint (fine grain) Cost Maps and general Cost Maps (coarse) the Client can use the specific ALTO service it desires for granularity.
The accuracy of specific measurements can be provided as another metric, placed as a summary value of a property in the Cost Metric's associated Information Resource Directory entry or provided as an Endpoint/PID property.
To support multiple sources and Clients (Orchestrators) the following considerations are made.
SDN Controller can provide:
NFVO can provide
Although the NFVO was chosen, 4 possible routes were analyzed regarding how to get VNF data to an ALTO Server using the ETSI model.
NFV Infrastructure (NFVI) data is delivered to NFVO (NFVI => VIM => NFVO)
The MOST desirable paths is #1 because the NFVO can provide VNF and NFVI data.
However, if high frequency, hysteresis, etc for the VNF is desired then Option 3 (use of EM as an ALTO Server) but the Client may still need access to the NFVI data from VIM or NFV
The NFVO is still the best option
To scale, some form of ALTO aggregation will be required.
Aggregation of partial ALTO information is possible but not standard. Figure 4 shows the proposed system uses ALTO Client standards and ALTO Server Side Events (SSE) [I-D.roome-alto-incr-update-sse] to maintain synchronized state between ALTO Client and Server.
+----------------+ | ALTO Client | +----------------+ | | ALTO | +--------+---------+ | ALTO Query Tier | +------------------+ ^ | ALTO SSE | +--------+---------+ | ALTO Aggregation | | Tier | +--------+---------+ ^ | ALTO SSE | +-----+-----+ | ALTO | | Servers | +-----+-----+
Figure 4: ALTO Aggregation
Figure 5 shows the proposed Aggregation overlay with SDN and NFV.
+-----------+ | ALTO |<----------------------------------------+ | Server +---------------------------+ | +---+-------+ | (B) | | ^ | | | | +-----------+ | | (A) | +------+ E/NMS | +------+-----+ | | (C) +-----------+ |Orchestrator+-+ | | | +------+-----+ | | | | | | | +-----+-----+ +------+-----+ | | +----------->| VNF |---+ VNFM | | | (D) +-----------+ | | | +---+--------+ | | |-+-| SDN | | +------+-----+ | | Controller | | | | +---+--------+ +-----+-----+ +------+-----+ | | | NFVI |---| VIM |-+ | +-----+-----+ +------------+ | | | +-----+-----+ | | SDN |------------------------+ | Switch | +-----+-----+
Figure 5: ALTO, SDN and NFV
Links A, B and C use ALTO SSE [I-D.roome-alto-incr-update-sse] to update an ALTO Server. Link D, if present, uses the ALTO protocol [RFC7285].
Links B and C ALTO Servers delegate their Map, Cost and EPCS services to the ALTO aggregators. Delegation is pushed to IRDs of the Query Tier (see Figure 4). This allows other ALTO Clients to query and Element Manager or NFVO function and be directed to the consolidated view provided by the ALTO Aggregator.
Link B also includes an ALTO Client on the Orchestrator that uses the ALTO Servers to aqcuire information for it's processing.
The SDN Controller used Link A to provide the Map Service, Cost Service, Endpoint Costs and Property Services as required.
Support for Feature 3 was briefly described in [I-D.bertz-alto-aggrimpl] as ALTO Demanded Query Recognition but is expanded upon here as On-Demand measurement. The proposed feature leverages ALTO's use of HTTP by looking at query misses. Given enough misses, e.g. a threshold, the ALTO Server will take this as a hint that gathering the data is important to the Client.
This opens opportunity to add filtering to the ALTO Server to limit the amount of metric data or provide a generic filter for initial configuration of a Server or Aggregator. The generic filter could
Network Maps are NOT considered filterable at this time.
Adjustable filters, not discussed initially [I-D.bertz-alto-aggrimpl], could be used in the solutions to only send Cost information that Clients ask for. Initial filters could be empty - only sending network topology. The network image of ALTO Servers and Aggregator VNFs, i.e. ALTO related configurations in a stock VM / KVM / sbare metal image, can be set with a common 'blank' filter; reducing configuration complexity.
High Client Query rates could further be capitalized upon by the Server to
Aging of old queries could result in narrowing filters.
Adjustable Filters do not address how measurements could be initiated between two entities to generate cost map data (assumes data is already present in underlying data source.
A new ALTO feature, Measurement Initiation, is proposed. It is ability to initiate measurement process (by entities outside of the ALTO Server). It solves the 'what if data is not present' question but opens new questions
The proposed feature measures data currently being asked for that does not exist in the local ALTO server. It determines who should measure by relying on Endpoint and especially PID properties. A 'Measurement Initiators' property is added to Endpoints or, preferably PIDs, which is a list specifying the endpoints that could initiate measurements to/from a PID or endpoint. Additional discriminators such as the metrics supported by specific initiators can be provided. Ideally, the endpoints for a measurement initiator can be added to the Information Resource Directory (IRD) metric information.
The process is defined as:
An ALTO Server (MI Client) can also ask for
The specific Measurement Initiation, Negotiation and subsequent lifecycle management is outside of the current ALTO scope and requires further work.
In order to support new metrics a plug-in model to ALTO servers can be supported. When a VNF Descriptor is introduced into the system, ideally, plug-ins supporting metric measurement, computation and the Measurement Initiation process (Feature 4) will be made available.
When the ALTO server determines that it is time to provide the new metric, it can download the appropriate plug-ins, update its IRD and begin processing. There may be numerous triggers for this.
Being Proactive
There are several situations where the system can be proactive.
The use of ALTO, with some modifications, allows performance measurements to be dynamically added to the system for new sites, endpoints or even new types of performance metrics. Enhancement to ALTO are required but appear to be minor.
ALTO provides the ability for Clients to look up ALTO Servers [RFC7285]. This can be enhanced to support Aggregator Discovery or an alternative method can be constructed. ALTO information origins, which are ALTO servers, can be discovered by Aggregators acting as Clients. The mechanism by which Aggregators divide work can be defined, if required. Regardless, as new Aggregators and Servers are instantiated they can be found and self-organize.
Using the Single Candidate Solution Process described above multiple subgraphs can be evaluation across multiple VIMs, i.e. many VREQg / VSOLg pairs can be computed for different subgraphs using matrix operations. By partitioning the VNF FG into subgraphs a total VNF FG can be evaluated across multiple VIMs. Figure 6 shows the overall process.
VNF Subgraph VIM Candidate VIM Candidate Matrix Matrix Suitability Matrix +-- | --+ +-- | --+ +-- --+ S1 | | | C1 | | | | Any | S2 | | | C2 | | | | row w/o | . | A | B | - . | C | D | = | negative | . | | | . | | | | values | . | | | . | | | | is as valid | Sn | | | Cn | | | | candidate | ^ +-- | --+ ^ +-- | --+ +-- --+ | | Each Row is a Each row is a candidate partial solution, VNF FG subgraph i.e. subgraph of a specific VIM intended to support the corresponding VNF FG subgraph
A - Resources Consumed, B - Subgraph and Adjacent Subgraph Constraints, C - Resources from the VIM and D - Performance Constraints from the VIM via ALTO.]
Figure 6: Parallel VNF FG subgraph and VIM candidate Evaluation
Each row of the subgraph matrix is a VREQsi for the specified subgraph Si. Each row of the VIM Candidate Matrix is VSOLci, a corresponding solution subgraph in a VIM's subgraph Ci. RC data and Performance data are provided as described above. Like the single candidate solution process, any resulting row with a negative value is in invalid solution.
Figure 7 shows the weighting process, assuming the VIM Candidate Suitability Matrix results in m valid candidates.
+-- --+ +-- --+ +-- --+ | VIM | | Weight | | Weighted | | Candidate | | Vector | | Solution | | Suitability | | (m x 1 | = | values | | Matrix | | matrix) | | (n x 1) | | (n x m) | | | | vector | +-- --+ +-- --+ +-- --+
Figure 7: VIM Candidate Suitability Matrix Weighting
The Orchestrator must then reconstruct candidates that create a proper super digraph of the VNF FG. The union of some solutions *may* result in graphs equal to the VNF FG while others will be super digraphs with distinct advantages.
The overall process for the Orchestration layer is defined as:
In order to provide more programmability the following data is sent from the requestor:
The VIM data row gives the request receiver insight into the accuracy/staleness of Resource Information and/or Performance Measurements. If these values are considered too old it is up to the receiver of the request to increase the update frequency. If information is consistently wrong over multiple requests it may also be a bad actor in the system (defective or a security issue) that should be raised by the request receiver.
The upper and lower bounds provide thresholds for meaningful events to the requestor. If the receiver does not monitor all of the performance metrics in a bound row it may reconfigure itself to do so or merely concern itself with what is monitors. Negotiation of what it will monito is outside of the scope of this document.
The system is comprised of the following elements:
The system contains the following features:
Multiple VIMs, Orchestrators and VNFs can be dynamically supported.
A proposed framework for Performance Measurement and Resource information exchange amongst various data sources can be used for determination of VNF FG instantiation. This framework can adapt to new measurements between entities and even the introduction of new metrics that must be measured. Self-organization and the ability to expand / contract the information interchanged make the solutions data minimal and relevant. Innovation in orchestration is still possible but the high level types of information, what is interchanged and how that is exchanged are standardized.
This memo includes no request to IANA.
This informational document relies upon security mechanisms, if any, that would recommended by ALTO specifications.
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997. |
[RFC7285] | Alimi, R., Penno, R., Yang, Y., Kiesel, S., Previdi, S., Roome, W., Shalunov, S. and R. Woundy, "Application-Layer Traffic Optimization (ALTO) Protocol", RFC 7285, DOI 10.17487/RFC7285, September 2014. |
[I-D.bertz-alto-aggrimpl] | Bertz, L., "Extensions for ALTO Aggregation", Internet-Draft draft-bertz-alto-aggrimpl-00, October 2015. |
[I-D.roome-alto-incr-update-sse] | Roome, W., Shi, X. and Y. Yang, "ALTO Incremental Updates Using Server-Sent Events (SSE)", Internet-Draft draft-roome-alto-incr-update-sse-02, March 2015. |