<!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>RESOURCE MANAGEMENT IN PRIVATE MULTI-SERVICE CLOUD ENVIRONMENTS</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>N. Balashov</string-name>
          <email>balashov@jinr.ru</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>N. Kutovskiy</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>N.Tsegelnik</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Bogoliubov Laboratory of Theoretical Physics, Joint Institute for Nuclear Research</institution>
          ,
          <addr-line>6 Jolio-Curie st., Dubna, 141980</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Meshcheryakov Laboratory of Information Technologies, Joint Institute for Nuclear Research</institution>
          ,
          <addr-line>6 Jolio-Curie st., Dubna, 141980</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <fpage>5</fpage>
      <lpage>9</lpage>
      <abstract>
        <p>The JINR cloud infrastructure hosts a number of cloud services to facilitate scientific workflows of individual researchers and research groups. Although batch processing systems are still the major compute power consumers of the cloud, new auxiliary cloud services and tools are being adopted by researchers and are gradually changing the landscape of the cloud environment. While such services, in general, are not so demanding in terms of computational capacity, they can have spikes of demand and can dynamically scale to keep the service availability at a reasonable level. Moreover, these services may need to compete for resources due to the limited capacity of the underlying infrastructure. This paper discusses how resource distribution can be managed in such a dynamic environment with the help of a cloud meta-scheduler.</p>
      </abstract>
      <kwd-group>
        <kwd>cloud computing</kwd>
        <kwd>virtualization</kwd>
        <kwd>distributed computing</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        The JINR cloud [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is built on the OpenNebula platform, which implements the
Infrastructureas-a-Service model, and is used to provide virtual machines on an individual basis to users (who are
mainly researchers and engineers from JINR and partner organizations), as well as to host some
multiuser systems and provide them as cloud services. Examples of such cloud services include GitLab with
its Continuous Integration tooling, the HTCondor batch cluster and the JupyterHub virtual cluster. The
services consist of a number of virtual machines playing different roles in these systems, and their
structure is shown in Figure 1.
      </p>
      <p>The cloud provides two types of resources: shared resources, which are in common use by all
JINR participants, and resources of the so-called Neutrino Platform, which are owned by several
neutrino experiments JINR participates in.</p>
      <p>
        The abovementioned cloud services are sometimes underutilized [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] for different reasons,
partially due to their different usage models. When services have a fixed amount of resources
provided, the underutilization of resources in one service results in the underutilization of the
underlying hardware, even though idle resources can be utilized by other services in such cases. In the
following sections, we will describe a possible approach to dealing with cloud services resource
underutilization using dynamic resource redistribution with the help of the Cloud Meta-scheduler we
are developing.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Background on resources underutilization</title>
      <p>As mentioned in the introductory part, the underutilization of cloud resources can occur for
various reasons. For example, interactive services (like JupyterHub or interactive nodes of the
HTCondor cluster) are usually underutilized at night or during holidays. Figure 2 illustrates a typical
CPU usage profile of an interactive machine. It is clearly seen that this machine was not used at all at
night and in the morning, then the load increased after lunch and dropped by the end of the working
day. Sometimes people can work at night too.</p>
      <p>On the contrary, batch clusters are usually better loaded in terms of hardware usage since
batch jobs do not need sleep and can run for hours or even days without a stop. However, resources
dedicated to individual projects or experiments can also sometimes encounter periods of inactivity (for
example, when data production stops during detector maintenance periods), and these periods can be
quite long, up to a few weeks (Fig. 3).</p>
      <p>Thus, in most cases, underutilization can be considered normal (and expected) because the
system efficiency can be defined in different ways depending on the purpose of the system in question.
For example, with batch systems we usually want to maximize hardware utilization, while in the case
of interactive systems like JupyterHub, we try to keep the system responsive and for this reason it is
fine to keep a reasonable amount of resources idle and ready to serve incoming users.</p>
      <p>In certain cases, hardware utilization can be easily improved by redistributing resources
between different cloud services. For instance, at night, most of the interactive nodes can be stopped in
favor of additional batch cluster worker nodes reverting everything back in the morning. The same
applies to the owned resources in batch systems: when the experiment knows that its resources will not
be used for a long period of time, these resources can be shared with other experiments using the same
technique, i.e. scaling in unused resources and scaling out systems that need them. Nevertheless,
standard cloud tools do not give us convenient control over the cloud services scaling, taking into
account the interests of all services running in the environment, as well as the interests of different
working groups that own some fraction of cloud resources. To deal with the issue, we started the
Cloud Meta-scheduler project.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Cloud Meta-scheduler</title>
      <p>The project goal is to provide resource managers and users of JINR’s cloud services with
convenient tools for managing and monitoring resource distribution between the services and resource
owners, as well as for creating and approving resource lease requests, with a scheduler component in
its core, which handles the actual scaling of the services.</p>
      <p>Although the general idea of such a system seems simple, the implementation of the actual
scaling of cloud services encounters intricate details, as different services (or even their different parts)
can be scaled for different reasons. For example, three different components of the HTCondor cluster
may be scaled for the following reasons:
•
•
•
schedulers (virtual machines that operate the job queue) – to maximize the job submission
rate;
interactive nodes – to keep them responsive;
worker nodes – to improve the throughput of the cluster.</p>
      <p>For this reason, we started the development with the prototype of a meta-scheduler component
to study possible technical solutions, to discover some potential pitfalls and better understand the
requirements for the system under development.</p>
      <p>
        Python was chosen as the primary development language because of its rapidly growing
popularity in data science, which makes it possible to involve data science students in the development
of the project with the potential to apply data analytics for incorporating more complex scheduling
schemes [
        <xref ref-type="bibr" rid="ref2 ref3 ref4 ref5">2-5</xref>
        ]. To implement the microservices approach [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] in the prototype architecture, the Pyro
library [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] was used. It wraps Python objects and allows using them in a distributed system as regular
Python objects, while Pyro takes care of all the network communication. The main components of the
developed prototype (Fig. 5) include:
•
•
•
      </p>
      <p>Scheduler daemon – runs the scheduling loop;
HTCondor API microservice – implements communication with the HTCondor cluster;
Cloud API microservice – implements communication with the JINR cloud.</p>
      <p>The microservices approach gives the system additional flexibility that may be needed for
large-scale deployments. For instance, the HTCondor API implemented as a service can be run on the
same machine as the scheduler and can communicate HTCondor via SSH; however, it can also be run
on the HTCondor scheduler machine, directly executing shell commands to talk to HTCondor and
then communicate back the information to the scheduler over the network using the specialized Pyro
wire protocol.</p>
      <p>The current early version of the prototype implements only the simple automatic scaling of
HTCondor worker nodes, depending on the job queue size: when there are idle jobs in the queue, more
worker nodes are created (if there are common resources available), and once the jobs are completed,
the nodes are deleted.</p>
      <p>•
•
•</p>
      <p>The further development of the prototype is planned in the following stages:</p>
      <sec id="sec-3-1">
        <title>Add multi-service support to the scheduler; Add multi-role services support; Develop a web interface (most likely based on the Django framework [8]) for users and resource managers.</title>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Conclusion</title>
      <p>The IT industry and data science are rapidly evolving, new technologies are emerging and
becoming popular, and the changing IT landscape sets new challenges in computing infrastructures
management. To keep up with the evolution of computing models and environments, we need to
develop novel tools to help us efficiently handle their growing complexity. In this paper, we have
described the idea and development course of one such tool designed for the dynamic load-balancing
of multi-service cloud environments to improve computing resources utilization in cloud
environments.
with</p>
      <sec id="sec-4-1">
        <title>Available</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>N.</given-names>
            <surname>Balashov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Baranov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Kutovskiy</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          , Makhalkin, Ye. Mazhitova,
          <string-name>
            <surname>I</surname>
          </string-name>
          , Pelevanyuk, R. Semenov
          <source>Present Status and Main Directions of the JINR Cloud Development //Proc. of 27th International Symposium NEC-2019</source>
          , Budva, Montenegro.
          <year>2019</year>
          . Vol.
          <volume>2507</volume>
          . P.
          <volume>185</volume>
          -
          <fpage>189</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Armbrust</surname>
          </string-name>
          et al.
          <article-title>Above    the    clouds: a Berkeley view    of cloud computing //Electrical engineering</article-title>
          and computer sciences,
          <source>Technical Report No. UCB/EECS-2009-28</source>
          , University of California at Berkeley,
          <year>February 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Jain</surname>
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Raghu</surname>
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Khanaa</surname>
            <given-names>V</given-names>
          </string-name>
          .
          <article-title>Probabilistic Model for Resource Demand Prediction in Cloud //</article-title>
          <source>Turkish Journal of Computer and Mathematics Education (TURCOMAT)</source>
          .
          <year>2021</year>
          . - Vol.
          <volume>12</volume>
          (
          <issue>6</issue>
          ). P.
          <volume>1766</volume>
          -
          <fpage>1771</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Golshani</surname>
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ashtiani</surname>
            <given-names>M.</given-names>
          </string-name>
          <article-title>Proactive auto-scaling for cloud environments using temporal convolutional neural networks //</article-title>
          <source>Journal of Parallel and Distributed Computing</source>
          .
          <year>2021</year>
          . Vol.
          <volume>154</volume>
          . P.
          <volume>119</volume>
          -
          <fpage>141</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Nwe</surname>
            <given-names>K. M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oo</surname>
            <given-names>M. K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Htay M. M.</surname>
          </string-name>
          <article-title>Efficient resource management for virtual machine allocation in cloud data centers //2018</article-title>
          <source>IEEE 7th Global Conference on Consumer Electronics (GCCE)</source>
          .
          <year>2018</year>
          . P.
          <volume>419</volume>
          -
          <fpage>420</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Larrucea</surname>
            <given-names>X.</given-names>
          </string-name>
          et al. Microservices //IEEE Software.
          <year>2018</year>
          . Vol.
          <volume>35</volume>
          (
          <issue>3</issue>
          ). P.
          <volume>96</volume>
          -
          <fpage>100</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Pyro - Python Remote Objects</surname>
          </string-name>
          . Available at:    https://pyro5.readthedocs.
          <source>io (accessed 20.08</source>
          .
          <year>2021</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Django:</surname>
          </string-name>
          <article-title>The web framework for perfectionists https://www</article-title>
          .djangoproject.
          <source>com (accessed 20.08</source>
          .
          <year>2021</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>