<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>CLOUD INFRASTRUCTURE FOR RESEARCHERS BASING ON NFVMANAGEMENT AND ORCHESTRATION</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>V.Antonenko</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>R.Smeliansky</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A.Ermilov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A.Romanov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>N.Pinaeva</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A.Plakunov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Moscow State University</institution>
          ,
          <addr-line>1Leninskiegory, Moscow</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2017</year>
      </pub-date>
      <fpage>75</fpage>
      <lpage>81</lpage>
      <abstract>
        <p>The paper presents C2 Platform that is suitable for establishment of the testbed environment for interdisciplinary research. The C2 architecture incorporates both the network service orchestration and service life-cycle management. C2 implementation follows ETSI NFV MANO standard and uses TOSCA to describe network functions and application functions. The paper provides experimental results of the platform's network traffic processing efficiency.</p>
      </abstract>
      <kwd-group>
        <kwd>SDN</kwd>
        <kwd>NFV</kwd>
        <kwd>Cloud</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Modern scientific research is impossible without the sophisticated computational and
dataprocessing infrastructure. Different science domains present a variety of challenges to the
cyberinfrastructure, which today may consist of desktop computers, small institutional clusters, cloud
resources and supercomputers purpose-built to address specific problems.</p>
      <p>
        In this paper, we explore a new approach to constructing such an infrastructure based on
Software-Defined Infrastructure (SDI) technologies that combine performance with the required deep
programmability, for example using Network Function Virtualization technology [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>Network Function Virtualization (NFV) is a technology that supply required service
functionality by software with commodity hardware. This approach separates the service functions
from the hardware executing these functions by virtualization of computational, network and storage
resources (ICT resources further).</p>
      <p>In this paper, we will use abbreviations NFV as a name of the technology, VNF as virtual
network function and VAF as virtual application function. The difference between a virtualized
function and virtualized service will be explained later.</p>
      <p>All Virtualized Network Functions could be separated into two main classes: network
functions (VNF) and application functions (VAF). The VNFs are designed for network traffic
processing: control and engineering.</p>
      <p>The VAF is any data processing application in DC. VAF is not limited by the functionality of
any legacy network equipment. For example, it can be a database management application, a
webserver application or any other functions required by scientific fellows.</p>
      <p>
        Different computational solutions may require differently optimized computational and
dataprocessing architectures. For example, part of a given computational workflow may be executed
using “map-reduce”, followed by calculations in a tightly-coupled, massively parallel MPI
environment. Recent advances in many-core systems present new infrastructure optimization points
by allowing the use of Intel GPGPU [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] co-processors targeted at specific computational approaches.
      </p>
      <p>A number of science domains are beginning to encounter a problem that is generically
referred to as the “Big Data” problem, where the ability to generate the data by scientific instruments
exceeds the ability of the computational elements to process them due to e.g. inadequate network
bandwidth and/or insufficient computational power. Added to that are issues with long-term data
storage and provenance.</p>
      <p>Today’s progress of science relies on collaborative efforts by multiple institutions and
requires cyber resources belonging to multiple organizations. The multi-disciplinary nature of science
requires the participation of experts from multiple domains. For example, bio-informatics brings
together computer scientists and geneticists with the goal of designing efficient genotype processing
algorithms.</p>
      <p>
        In this paper, we will show there is no need to use several types of cloud platforms: one for
VNF and one for VAF. The C2 Platform architecture will be presented and it will be demonstrated as
this platform covers both VNF and VAF requirements. The C2 Platform architecture is based on the
reference implementation ETSI NFV MANO model [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and provides the full VNF life-cycle support:
initialization, configuration, execution and deinitialization.
      </p>
      <p>The life-cycle of a virtual function (VF, it doesn’t matter VNF or VAF) is shown in Figure 1
and covers as monitoring as adjustment of the key indicators of the VF operation like performance
and availability.</p>
      <p>
        In this paper, for VF specification, we use TOSCA (Topology and Orchestration
Specification for Cloud Applications) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. VF description in TOSCA is a list of specifications based
on YAML language [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. This description, called TOSCA-template, is all that needed to set a VF.
TOSCA-template includes the structure of a cloud application, application management policies, OS
image and scripts to start, to stop and to configure the application that implements the VF. The C2
platform assumes that a cloud administrator should provide the TOSCA-template as a zip or tar
archive with a predetermined structure. There are more details in Section IV of the paper.
Template(s)
      </p>
      <p>Initialization</p>
      <p>Configuration
Deinitialization</p>
      <p>Execution</p>
      <p>Scaling</p>
      <p>Healing</p>
      <p>The structure of the rest of the paper is as follows: Section II provides the survey of the
existing NFV platforms and their suitability for scientific testbed platform use-case. Section III
provides the basic C2 platform modules description and relations between them; the function
registration and service management process. Section IV discusses the results of an experimental
study of the C2 platform comprised of the analysis of dependency between the packet delay and the
number of VF instances in network service as well as the analysis of network throughput for multiple
customers sending data at the same time.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related work</title>
      <p>
        The ETSI NFV MANO document [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is the reference model describing network function
life-cycle, VNF orchestration and management. At the same time, there are no formal definitions of
basic terms like network function and network service in this document. That gives us the
opportunity to extend the approach of service life-cycle support described in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] to VAFs too.
      </p>
      <p>
        The architecture model has 3-layer structure: virtual infrastructure manager (VIM), VNF
manager (VNFM) and NFV Orchestrator (NFVO). Today not all NFV platforms implement all these
layers. For example, the OPNFV [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] project focuses only on the VIM functionality, the Cloudify [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
project - on NFVO, VNFM and uses external VIM as a basis like OpenStack [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], ESXi [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and Azure
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        The service life-cycle orchestration is one of the most important notions of the NFV MANO
reference model. But today, NFV platforms do not support any automation of life-cycle stages. For
example, the Cloudify project declares that it has the monitoring system with the capability for
automatic function healing, but it’s available only in the commercial version. Another example is the
OpenStack Tacker [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Unlike the Cloudify project the Tacker project tries to implement MANO as
an OpenStack internal module, but there is also no automatic management and orchestration of
healing and scaling processes.
      </p>
      <p>Today’s NFV platforms have different visions on the VF description process. Some of them,
like the Cloudify project, uses the TOSCA specification language for this purpose, others (Tacker)
useits own specification language based on the YAML language with the intention to support
TOSCA in the future.</p>
      <p>
        In any implementation of an NFV platform, that intends to produce automated life-cycle
support, there should be the monitoring tools. Usually, the developers use the third-party systems like
Zabbix [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] or NAGIOS [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. The system data monitoring lets an NFV platform identify VF instance
state, e.g. “overloaded” or “unavailable”, and apply actions to recover VF instance operation. The
compatibility with the third-party monitoring systems API was previously announced by OPNFV,
ManageIQ [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], OpenBaton [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>
        It is important to mention, that no NFV platforms mentioned above consider the differences
between VNFs and VAFs. We believe the reason for this is the lack of production-grade installations
of such platforms. The only NFV platform project that clearly differentiates between VNFs and
VAFs is the Central Office Re-architected as a Datacenter (CORD) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. CORD presents specially
developed Telco Central Office architecture, and publish-subscribe model to produce three types of
services: control plane services, data plane services and global cloud services. In our opinion, the
main drawback of the CORD project is the lack of unification of these three types of services under
one platform.
      </p>
      <p>This brief survey shows that NFV platform development is the actual challenge and none of
the mentioned above projects meet the needs of both VNFs and VAFs. There are no publications
which demonstrate based on practical experience the capabilities of the platforms mentioned above.</p>
    </sec>
    <sec id="sec-3">
      <title>3. C2 Platform architecture</title>
      <p>The VF instance is a set of VMs with proper applications connected by isolated virtual
networks. Under VF instance scalability we mean the horizontal one. In other words, we need the
performance monitoring to launch additional instances when the performance goes down. The VF
instance availability requires the healing monitoring that is to identify the moments the incorrect
operation.</p>
      <p>
        The C2 Platform is an extension of another project from our group called Self-Organized
Cloud (SOC) [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] and research projects dedicated to the consistent orchestration problem [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
The C2 Platform is designed as a classic 3-layer MANO system (NFVO, VNFM, VIM). The C2
Platform architecture presented in Figure 2.
      </p>
      <p>NFVO
VNFM
VIM</p>
      <p>C2-Man
C2-Core</p>
      <p>C2-Orc</p>
      <p>C2-GUI</p>
      <p>C2-Serv</p>
      <p>C2-Cube
SDN Controller</p>
      <p>RUNOS</p>
      <p>RESTAPI</p>
      <p>C2-Mon</p>
      <p>The C2 Platform has a C2-GUI to configure, deploy and monitor the VF instances, and to
subscribe to services. The server-side of C2-GUI is the C2-Serv module. The C2-Serv provides two
API types: the web socket API directly for the C2-GUI and the REST API for the C2 Platform.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Experimental Research</title>
      <p>A. Chain Length Experiment</p>
      <p>The experiment shows the time overheads caused by the length of VF chain. The experiment
intended to find the dependency between VF chain length and a customer traffic delay. In the
experiment, VF is a dummy virtual machine that just sends network traffic back into the network.</p>
      <p>
        Figure 3 presents the results of this experiment – the dependence between a packet delay and
a length of the VF chain. The length of chains shown on the X-axis, average delay length is on the
Yaxis. The results demonstrate a linear dependence between the length of a VF chain and traffic delay.
In certain case, each VF instance in the chain increases the delay less than 1 ms. Also, this overhead
could be decreased by optimizing the VF’s OS core in the field of network protocol stack for
example by Intel DPDK [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
      </p>
      <p>This experiment aims to test the C2 Platform works in multi customer mode, and check the
network resources utilization, if all customers’ traffic has an equal priority. We define the VF chain
as a VAF which generates network traffic, NAT for the internet access and a firewall for access
control for each customer that is placed on the testbed with 8 physical servers1. Let us call this VF
chain as customer chain.</p>
      <p>The purpose of the experiment is to measure network throughput of customer chains with as
much chains as possible working simultaneously. This simulates multiple customers sending
experiment data into outside network. The measurement is done by “iperf” program.</p>
      <p>We create 111 customers’ chains in the experiment. The number of chains depended on
available physical resources (about 300 KVM VMs). And install a special agent that observes how
chains will utilize the 1-Gbit link between cloud infrastructure and external network. The observed
results are presented in Figure 4.</p>
      <p>As we can see the average customer chain bandwidth is 8.99 Mbps, it means that all
customers shared external link bandwidth evenly. The total bandwidth is 989.92 Mbps, which means
that network utilization is close to 1 Gbps maximum.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>The paper demonstrates the possibility to bring the benefits of the NFV platform into a
scientific testbed cloud. It explains what platform functionality is critical for this.</p>
      <p>The survey of similar projects shows that none of the existing cloud platforms satisfies the
requirements of a scientific testbed cloud. On top of this C2 platform provides VAF functionality
described by the same TOSCA template language.</p>
      <p>The experiments prove that platform with such a versatility does not have significant
overhead, can work with the multiple customers, and operate with VF chains of complicated
structure.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>ETSI</given-names>
            <surname>Network Functions</surname>
          </string-name>
          Virtualisation - Introductory
          <source>White Paper" 22 October 2012. Retrieved 20 February</source>
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>H.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Vuduc</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          <article-title>Baghsorkhi “Performance Analysis and Tuning for General Purpose Graphics Processing Units (GPGPU)</article-title>
          .” - Morgan &amp; Claypool Publishers,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <source>[3] OASIS. TOSCA Simple Profile in YAML Version 1</source>
          .
          <fpage>0</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <source>[4] YAML. Retrieved 7 October</source>
          ,
          <year>2017</year>
          : http://www.yaml.
          <source>org/spec/1</source>
          .2/spec.html
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Linux</given-names>
            <surname>Foundation</surname>
          </string-name>
          , “
          <article-title>OPNFV - An open platform to accelerate NFV”</article-title>
          .
          <source>October</source>
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <source>[6] Cloudify. Retrieved 7 October</source>
          ,
          <year>2017</year>
          : http://getcloudify.org
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7] OpenStack, Manual,
          <year>November 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C.</given-names>
            <surname>Waldspurger</surname>
          </string-name>
          <article-title>: Memory Resource Management in VMware ESX Server</article-title>
          .
          <source>Operating Systems Design and Implementation</source>
          (OSDI), (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Microsoft</surname>
          </string-name>
          .
          <source>Azure. Retrieved 7 October</source>
          ,
          <year>2017</year>
          : https://azure.microsoft.com
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>OpenStack</given-names>
            <surname>Tacker</surname>
          </string-name>
          .
          <source>Retrieved 7 October</source>
          ,
          <year>2017</year>
          : https://wiki.openstack.org/wiki/Tacker
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>Zabbix</given-names>
            <surname>Manual</surname>
          </string-name>
          .
          <source>Retrieved 7 October</source>
          ,
          <year>2017</year>
          : http://www.zabbix.com/downloads/ZABBIX%20Manual%
          <fpage>20v1</fpage>
          .6.pdf
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <source>[12] Nagios. Retrieved 7 October</source>
          ,
          <year>2017</year>
          : https://www.nagios.org/about/overview
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <source>[13] ManageIQ. Retrieved 7 October</source>
          ,
          <year>2017</year>
          : http://manageiq.org/docs
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Open</given-names>
            <surname>Baton</surname>
          </string-name>
          .
          <source>Retrieved 7 October</source>
          ,
          <year>2017</year>
          : https://openbaton.github.io
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>CORD</given-names>
            <surname>Whitepaper</surname>
          </string-name>
          .
          <source>Retrieved 7 October</source>
          ,
          <year>2017</year>
          : http://opencord.org/wpcontent/uploads/2016/03/CORD-Whitepaper.pdf
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Kostenko</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Plakunov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nikolaev</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tabolin</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Smeliansky</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Shakhova</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>Selforganizing cloud platform</article-title>
          .
          <source>In Proceedings of the 2014 international science and technology conference "Modern Networking Technologies (MoNeTec)"</source>
          (
          <year>2014</year>
          ),
          <article-title>SDN@NFV modern networking technologies</article-title>
          , Moscow, Russia
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>V. A.</given-names>
            <surname>Kostenko</surname>
          </string-name>
          and
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Plakunov</surname>
          </string-name>
          , “
          <article-title>Ant algorithms for scheduling computations in data processing centers</article-title>
          ,” Moscow University Computational Mathematics and Cybernetics, vol.
          <volume>41</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>44</fpage>
          -
          <lpage>50</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>P. M. Vdovin</surname>
            ,
            <given-names>I. A.</given-names>
          </string-name>
          <string-name>
            <surname>Zotov</surname>
            ,
            <given-names>V. A.</given-names>
          </string-name>
          <string-name>
            <surname>Kostenko</surname>
            ,
            <given-names>A. V.</given-names>
          </string-name>
          <string-name>
            <surname>Plakunov</surname>
            , and
            <given-names>R. L.</given-names>
          </string-name>
          <string-name>
            <surname>Smelyansky</surname>
          </string-name>
          , “
          <article-title>Comparing various approaches to resource allocating in data centers</article-title>
          ,
          <source>” Journal of Computer and Systems Sciences International</source>
          , vol.
          <volume>53</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>689</fpage>
          -
          <lpage>701</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>OASIS</surname>
          </string-name>
          .
          <article-title>Topology and Orchestration Specification for Cloud Applications (TOSCA) TC Retrieved 7 October,</article-title>
          <year>2017</year>
          : http://docs.oasis-open.
          <source>org/tosca/TOSCA/v1.0/TOSCA-v1.0</source>
          .html
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>A.</given-names>
            <surname>Shalimov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Nizovtsev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Morkovnik</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Smeliansky</surname>
          </string-name>
          ,
          <article-title>"</article-title>
          <source>The RunosOpenFlow Controller"</source>
          ,
          <source>2015 Fourth European Workshop on Software Defined Networks</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Intel</surname>
            <given-names>Corporation</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Intel Data Plane Development Kit (Intel DPDK) Programmer's Guide</surname>
          </string-name>
          ,
          <year>August 2013</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>