Capacity Management and Resource Reservation Overview

promise resource reservation capacity management n.w
1 / 20
Embed
Share

"Explore the Promise Resource Reservation and Capacity Management project, including its requirements, implementation details, committers, use cases, and information elements. Discover how NFVO reservation requests are crucial in this context."

  • Resource Management
  • Capacity Planning
  • NFV
  • OpenStack
  • Reservation

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Promise Resource Reservation Capacity Management Requirements and Implementation Overview 18 May 2015 Peter Lee, ClearPath Networks

  2. Promise - Project Overview TSC approved on December 4, 2014 as a Requirements Requirements project http://wiki.opnfv.org/promise ETSI NFV Architectural Framework Alignment http://docbox.etsi.org/ISG/NFV/Open/Published/gs_NFV002v010201p - Architectural Framework.pdf Requirements documentation delivered on April 2015 Reached Stable documentation release https://gerrit.opnfv.org/gerrit/#/c/385/ ETSI and OPNFV cross-analysis/alignment established with ETSI NFV IFA005 ETSI NFV IFA005 will be made public soon Reference Implementation commenced on March 2015 Comprehensive review of current OpenStack NBI APIs YANG data model schemas modeling VIM using stormforge http://github.com/stormstack/stormforge 2

  3. Promise Committers & Contributors Committers: Arturo Martin De Nicolas (Ericsson: arturo.martin-de-nicolas@ericsson.com) Ashiq Khan (DOCOMO: khan@nttdocomo.com) Carlos Goncalves (NEC: Carlos.Goncalves@neclab.eu) Dirk Kutscher (NEC: dirk.kutscher@neclab.eu) Hironobu Maeda (ClearPath: HMaeda@clearpathnet.com) Peter Lee (ClearPath: plee@clearpathnet.com) Mario Cho (Open Frontier Lab.: hephaex@gmail.com) Ravi Chunduru (ClearPath: rchunduru@clearpathnet.com) Ryota Mibu (NEC: r-mibu@cq.jp.nec.com) Serge Manning (Sprint: Serge.Manning@sprint.com) Siva Busa (ClearPath: SBusa@clearpathnet.com) Contributors: Zhiqi Wang(Huawei: zhiqi.wang@huawei.com) Susana Sabater (Vodafone: susana.sabater@vodafone.com) 3

  4. Promise Use Cases Resource Reservation Immediate and Future resource reservation Co-existing reserved and unreserved resource allocations Capacity Management Discovery/Monitoring/Notification of capacity availability 4 *) Note: only reservation requests from NFVO are considered in Promise

  5. Promise Resource Reservation Information Elements Name Type Description Start time for consumption of the reserved resources End time for consumption of the reserved resources If not all reserved resources are allocated between start_time and expiry, the VIM shall release the corresponding resources Amount of the resources per resource element type (i.e. compute/network/storage) that need to be reserved The zone where the resources need(s) to be reserved Attributes of the resources to be reserved such as DPDK support, hypervisor, network link bandwidth, affinity rules, etc. Identifiers of existing resource elements to be reserved (such as images, flavors, virtual containers, networks, physical machines, etc.) Start Timestamp End Timestamp Expiry Timestamp Amount Number Zone Identifier Attributes List Resources List 5

  6. Promise Resource Reservation 6

  7. Promise Capacity Management Information Elements Name Type Description Identifier of the zone where capacity is requested Zone Identifier Attributes of resource items to be notified regarding capacity change events Attributes List Identifiers of existing resource items to be queried regarding capacity info (such as images, flavors, virtual containers, networks, physical machines, etc.) Resources List Name Type Description Identifier issued by the VIM for the capacity change event notification Identifier Notification Identifier of the zone where capacity has changed Zone Identifier Used, reserved and total capacity information regarding the resource items subscribed for notification for which capacity change event occurred Used/ Reserved/ Total Capacity List 7

  8. Promise Capacity Management 8

  9. Promise Implementation Plan Reference Implementation already commenced on March 2015 Conducted comprehensive review of current OpenStack NBI APIs YANG data model schemas modeling VIM using stormforge http://github.com/stormstack/stormforge Phase 1 Develop a Shim-layer to OpenStack Complete YANG modeling of Virtual Infrastructure Resource Elements Auto-generate NBI for NFVO and VNFM consumption Utilize existing existing OpenStack NBI from Resource and Capacity Managers Stand-alone implementation to validate message flows and logical enforcement Phase 2 Native Integration into OpenStack Internal Components Expose additional data models currently not Tighter integration with real-time capacity status synchronization Utilize native native OpenStack controller components (such as MQ, DB, etc.) Upstream integration as OpenStack native project (e.g. Blazar) not visible via existing OpenStack NBI 9

  10. Promise Phase 1 Implementation Architecture 10

  11. Promise YANG Schema for Resource Reservation module opnfv-promise-models { prefix opm; error-message "One or more of the ResourceElement(s) does not exist in the provider to be reserved"; } } import storm-common-models { prefix scm; } import complex-types { prefix ct; } leaf provider { if-feature multi-provider; config false; description "Reference to a specified existing provider from which this reservation will be drawn if used in the context of multi-provider environment."; type instance-identifier { ct:instance-type scm:ResourceProvider; require-instance true; } } feature resource-reservation; ct:complex-type ResourceReservation { ct:extends scm:ResourceElement; description "Contains the capacities of various resource services being reserved along with any resource elements needed to be available at the time of allocation(s)."; reference "OPNFV-PROMISE, Section 3.4.1"; leaf start { type ct:date-and-time; } leaf end { type ct:date-and-time; } leaf expiry { description "Duration in seconds from start when unallocated reserved resources will be released back into the pool"; type number; units "seconds"; } leaf zone { type instance-identifier { ct:instance-type scm:AvailabilityZone; } } container capacity { uses scm:compute-capacity; uses scm:networking-capcity; uses scm:storage-capacity; } leaf-list resources { description "Reference to a collection of existing resource elements required by this reservation. It can contain any instance derived from ResourceElement, such as ServerInstances or even other ResourceReservations. If the ResourceReservation request is accepted, the ResourceElement(s) listed here will be placed into 'protected' mode as to prevent accidental delete."; type instance-identifier { ct:instance-type scm:ResourceElement; } // following 'must' statement applies to each element must "boolean(/provider/elements/*[@id=id])" { container remaining { config false; description "Provides visibility into total remaining capacity for this reservation based on allocations that took effect utilizing this reservation ID as a reference."; uses scm:compute-capacity; uses scm:networking-capcity; uses scm:storage-capacity; } leaf-list allocations { config false; description "Reference to a collection of consumed allocations referencing this reservation."; type instance-identifier { ct:instance-type ResourceAllocation; } } } 11

  12. Introduction to stormforge Model-driven Software Architecture Provides inheritance-derived multi-layer abstraction for flexible cross-platform integration

  13. stormforge introduction What is it? A Model-driven Architecture (MDA) software framework for building schema defined software modules Why was it created? To serve as a rapid prototyping framework for model driven software architecture To support OPNFV Promise implementation for abstracting ResourceElement(s) of the virtualized infrastructure for state management of capacity and reservations for future usage How does it work? It uses Metaprogramming techniques to process YANG schema (RFC 6020) files as a software language It uses Creational Patterns to dynamically construct hierarchy of runtime class objects based on YANG data models What s the current status? It s early stage with working compilers and generators

  14. stormforge design objectives Enable Rapid Prototyping by Non-Developers Interpreting YANG schema as program data allows anyone to express data models and configuration hierarchy as a simple text file and have it come to life for API interaction without writing code Simplify Integration Across Systems Let the framework do the challenging work of interfacing and interacting between systems using data model driven auto-generated interfaces Enables exchange of software modules via import/export across remote systems It s all just JavaScript, write it once and let it run anywhere (including the browser) Application is King Every new module defined is an active asset that can be imported and used by other modules Every new module is a library, a server-side service, and a client-side utility all-in-one 14

  15. stormforge framework Schema provides definitions for generating the data models Model/View/Controller decouples logic layers Data Store handles record instances of data models Events/Messages enable reactive control logic integration Interface Layer auto-generates data model derived interfaces Import/Export facilitates exchange of data models 15

  16. stormforge core components meta-class The core base class that houses the meta-data and enables Class definitions to be mutable yang-compiler Parses YANG schema text and produces runtime JS class object hierarchy (composed of meta-class) Implemented based on YANG version 1.0 specifications (RFC 6020) Provides compile, generate, import, and export facilities (can be used as a server-side API service) storm-compiler Extensions beyond YANG version 1.0 to introduce complex-types (RFC 6095) Enhanced resolvers to infuse with data-storm objects providing type validators and model relationships yang-storm Defines a collection of common data models Serves as a DataStore for housing schemas, modules, models, controllers, views, and instantiated records 16

  17. stormforge compiler features Parserparse YANG schema files and generate runtime JavaScript meta- class semantic tree hierarchy Map/Reducetraversal of the parser output to dynamically resolve YANG statement extensions and transform nodes in the tree as well as collapsing them into a final output module Import/Export capabilities to load modules using customizable importers based on regular expressions and custom import routines. Ability to serialize module meta data into JSON format that is portable across systems. Also exports serialized JS functions as part of export meta data. Runtime Generation allows compiler to directly create a live JS class object definition so that it can be instantiated via new keyword and used immediately Dynamic Extensions enable compiler to be configured with alternative resolver functions to change the behavior of produced output 17

  18. stormforge usage examples Prototyping a new module 1. Write a new YANG schema definition file, such as hello-world.yang 2. stormforge run -p 5000 hello-world 3. curl http://localhost:5000 Validating an external module stormforge validate http://intercloud.net/hello-world.yang stormforge validate http://intercloud.net/hello-world.json stormforge run -p 5000 http://intercloud.net/hello-world.json Building/Signing/Publishing a new module 1. stormforge build hello-world 2. stormforge sign -k <keyfile> hello-world 3. stormforge publish --registry=<url> hello-world The steps above can apply for external sources as well 18

  19. stormforge seeking contributors! Other OPNFV projects can benefit from using stormforge MOVI, Parser, Resource Scheduler, Doctor, Copper, etc. Any projects dealing with interface abstraction layer interface abstraction layer can take advantage of the framework to build/test/deploy data model driven components For Promise, we are seeking additional contributors to help with the YANG schema modeling of the Resource Elements as well as developing the NBI/SBI auto-generation component Please contact plee@clearpathnet.com if interested in using stormforge for your project(s) as well as contributing to the development of stormforge! 19

  20. Promise and stormforge Any Questions? The team will also be available to meet with any interested folks (for using/contributing) during the Summit on Tuesday and Wednesday. Please schedule a session with one of us and we ll coordinate a time with you for deeper-dive discussions. Thank you! 20

Related


More Related Content