The Slice Controller
Overview
A Slice is an aggregated set of resources that can be used in the context of an end-to-end networked service comprised of virtual network functions. Slices are composed of multiple resources which are isolated from other slices and allows logically isolated network partitions, with a slice being considered as the basic unit of programmability using network, computation and storage. When considering the wide variety of application domains to be supported by 5G network, it is necessary extend the concept of slicing to cover a wider range of use cases than those targeted by the current SDN/NFV technologies.
If we have slicing everywhere, including networks and DCs, we observe the following attributes:
- there is a separation of physical resources
- there is isolation of services as no customers share physical resources
- it is secure as only specified customer can access host, no sharing or cross VM issues
In order to support service provisioning over these slices, it is necessary to have mechanisms to support the slicing of the network resources and the Data Center compute and storage resources. To manifest this slice approach, we have designed a built a DC Slice Controller which is able to allocate a slice of a DC and create a per-slice VIM in an on-demand fashion. The DC slice and the VIM are provisioned soley for use with the service. Each slice and its associated VIM are independent of the other slices and VIMs. In this way, customers will never share servers, and the worry of VMs of one customer interacting or spying on another customer will be eliminated. Also, the issue of one customer's VM consuming all the resources and starving other customer's VMs is also ameliorated to some extent.
Each of these slices will be allocated and de-allocated in an on-demand fashion. A customer can interact with a Slice Manager, and request a new slice. The resulting slice will be isolated from the other slices. Furthermore, each slice will get its own VIM or NIM, and not have management as part of shared one. The following figure presents how the resources of a DC are isolated from each other, and how a Slice Manager is involved in such a process.
Slice Controller Elements
The Slice Controller has the following elements for its operation:- a Slice Manager — which is composed of a Resource Manager manages all of the resources in the DC and keeps a track of which resources have been allocated to which slice and a User Manager that manages all of the users that can access the Slice Controller.
- a Slice Information Store — which database lists all of the slices and all of the resources in the slice, together with meta-data such as the VIM REST entry point, and the keys used for access to all the resources.
- a Slice Creator — which is responsible for handling requests for slices and interacting with the Resource Manager and the User Manager to determine if it is possible to create a new slice. If the slice creation is possible it interacts with the VIM Factory.
- the VIM Factory — which is able to allocate a VIM of a particular type, and configure it to use the resources which have been picked by the Slice Creator. Once the VIM is allocated and deployed, the REST entry point is returned to the caller.
- the VIM Placement Manager — which is responsible for determining which host should be used to execute a newly created VIM.
Slice Controller Code
Licence
The Slice Controller is distrbiuted under the GPL licence.
Source
You can download the source