<!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>MULTICOMPONENT CLUSTER MANAGEMENT SYSTEM FOR THE COMPUTING CENTER AT IHEP</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>V. Ezhova</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A. Kotliar</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>V. Kotliar</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>E. Popova</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>E-mail:</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Victoria.Ezhova@ihep.ru</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Anna.Kotliar@ihep.ru</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Viktor.Kotliar@ihep.ru</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ekaterina.Popova@ihep.ru</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>ChatOps</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute for High Energy Physics named by A.A. Logunov of National Research Center “Kurchatov Institute”</institution>
          ,
          <addr-line>Nauki Square 1, Protvino, Moscow region, Russia, 142281</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <fpage>37</fpage>
      <lpage>43</lpage>
      <abstract>
        <p>Cluster management system is a core part of any computing infrastructure. Such system includes components for allocating and controlling over resources for different computing tasks, components for configuration management and software distribution on the computing hardware, components for monitoring and management software for the whole distributed infrastructure. The main goals of such system are to create autonomic computing system with functional areas such as self-configuration, self-healing, self-optimization and self-protection or to help to reduce the overall cost and complexity of IT management by simplifying the tasks of installing, configuring, operating, and maintaining clusters. In the presented work current implementation of the multicomponent cluster management system for IHEP computing center will be shown. For the moment this system consists of event-driven management system, configuration management system, monitoring and accounting system and a ChatOps technology which is used for the administration tasks.</p>
      </abstract>
      <kwd-group>
        <kwd>self-management</kwd>
        <kwd>cluster management system</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Computing infrastructure especially for distributed computing has a complex structure from
many components and services distributed across a whole data center. A core part of such system is a
cluster management system (CMS). It includes the following elements:
 hardware management system;




services provisioning system;
configuration and software package management system;
monitoring system;
operation management system.</p>
      <p>
        The main goal of such system is to implement self-management principals from autonomic
computing theory [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. They are self-configuration, self-healing, self-optimization and self-protection.
Where self-configuration is covered by configuration and software package management system and it
allows to configure the cluster by itself automatically based on the high-level policies. Self-healing is
covered by monitoring, configuration and operation management systems and it allows to
automatically recover system or services in distributed environment from failures. Self-optimization
also uses all these systems as a self-healing but it has a goal to continually seek ways to improve
operation where hundreds of tunable parameters in the distributed system need to be adjusted for the
best system effectiveness. The last aspects is self-protections. It is covered by all elements from cluster
management system and protect software and hardware components of the computing infrastructure
from cascading failures which could damage the infrastructure.
      </p>
      <p>The current implementation of the multicomponent cluster management system for IHEP
computing center described in this work. For the moment this system consists of hardware
management system, provisioning system, event-driven management system, configuration
management system, monitoring and accounting system. A ChatOps technology is used for the
administration tasks and for the communications.</p>
    </sec>
    <sec id="sec-2">
      <title>2. IHEP computing center overview</title>
      <p>
        To have a reason for using a cluster management system the scale and complexity of the
cluster need to meet some conditions which were hit at IHEP. Computer center at IHEP starts its
history with the installation of Minsk-2 computing system in 1965. Over all these fifty-five years the
installed computer systems just grow with computer power and storage capacities. And significant
increase was made with introducing grid-computing technology where a computer center at IHEP
became a part of the distributed all over the world computing system like WLCG (World-wide LHC
computing grid [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]).
      </p>
      <p>At the moment the computer infrastructure consist of the following components spread over
two independent working zones:
• around 3000 CPUs which are split over 150 computer nodes;
• near 2PB disk storage on 50 servers;
• power hardware as two UPS APC Symmetra plus 30 small UPSes and 26 PDUs;
• 6 Emerson Liebert cooling systems;
• cluster network with 1000 of 1Gbs connections.</p>
      <p>This center has a status of Tier-2 in WLCG with network connectivity by two 10Gb/s links to
LHONE network and contribute on the third place to the whole grid-computing in Russia.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Prerequisites to the cluster managements system</title>
      <p>Being of such size is not the only one condition for implementing the cluster management
system. There are several other factors which cause its necessity. One of them is the human factor.
Over the years of operating and growing, the number of system administrators has being decreased.
This is shown on figure 1.</p>
      <p>3000
2500
2000
1500
1000
500
0</p>
      <p>TB
CPU
SysAdm(x100)</p>
      <p>TB(IHEP)</p>
      <p>
        So there are less humans and more servers in the computer center throught the time. All
hardware that is used in the data center become cheap a generic purpose hardware. It causes increasing
of the number of hardware parameters for monitoring and tuning for smooth and effective operation.
And with evolution of data center software and software for the clusters it is appeared a new way of
using infrastructure – software-defined infrastructure (SDI). SDI consists of software-defined
infrastructure services, software-defined storages, software-defined networks. In such environment an
ordinary system administrator becomes a site reliability engineer [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] where he has to use programming
languages and automatization techniques to operate the distributed system.
      </p>
    </sec>
    <sec id="sec-4">
      <title>4. IHEP requirements for the CMS</title>
      <p>
        In IHEP environment the term “cluster management” defined as the set of common tasks
required to run and maintain the distributed cluster. As mentioned before, these tasks are:
infrastructure management, resource provisioning, configuration and software package management,
monitoring, operation management. The main idea for CMS is to create self-management system by
using already available open source software and developing only a few small pieces of system which
are unique for IHEP data center and its operation model. From theory of autonomic computing such
system should consist of hierarchy of blocks of autonomic managers and managed resources [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. In
their turn autonomic managers have monitoring, analyze, plan, execute components clued by
knowledge base and managed resource has sensor and effectors in its touchpoint what is shown on
figure 2.
      </p>
      <p>Autonomic manager
analyze</p>
      <p>plan
monitoring
knowledge base</p>
      <p>execute</p>
      <p>Managed resource touchpoint
sensor</p>
      <p>effectors</p>
      <p>Managed resource
Figure 2. Autonomic manager and managed resource schema</p>
      <p>In terms of CMS “managed recourse” is the computing cluster and “autonomic manager” is
the multicomponent cluster management system itself.</p>
      <p>Cluster management software already available as open source and as proprietary software.
There are Apache Mesos, Kubernetes, OpenHPC, Rocks cluster Distribution, xCAT, Foreman, IBM
Platform Cluster Manager and others systems which already are used by many clusters. But all this
software mostly is built for specific types of clusters like high performance clusters or container based
clusters. Not all of required features for IHEP are implemented and mostly mentioned software is
created for specific Linux distributions that is also restrict its usage at IHEP. So it was decided to use
software for the cluster management system which is satisfy the following conditions:





tradeoff for functionality over complexity must meet IHEP environment;
it has to support all operating systems which are used on IHEP cluster (Debian Linux,
CentOS, Scientific Linux);
it has to be open source with big community and has to be stable (not experimental);
it has to be implemented in such way that different components could be installed
independently on each other step by step;
it has to be pluggable that it is possible to customize functionality for IHEP needs.</p>
      <p>Based on all these criterias a multicomponent cluster management system was built at IHEP
computer center.</p>
    </sec>
    <sec id="sec-5">
      <title>5. IHEP cluster management system overview</title>
      <p>Current implementation for the cluster management system is shown on figure 3. It should be
mentioned that it still has two control loops: one through event-driven software based on StackStorm
that automate all operations and second one is a classic way system with system administrator console.</p>
      <sec id="sec-5-1">
        <title>5.1. Infrastructure management system</title>
        <p>To manage infrastructure openDCIM (data center infrastructure manager) software is used.
That system hold the information about computing hardware, storage hardware, network hardware,
management hardware, engineering infrastructure, physical location of the hardware and
communication between each components. It is a cluster description database where everything that is
known about the cluster components is stored. To manage cluster hardware a set of IPMI (Intelligent
Platform Management Interface) tools are used. Linux ipmitool package or Supermicro IPMItool
software allows to get full control over the hardware through baseboard management controller on
each server. This control is used for management purposes and for monitoring. To control power
distribution units (PDU) and uninterruptable power supplies (UPS) build-in software and SNMP
(simple network management protocol) are used.</p>
        <p>
          All these software components allow to implement several monitoring and control systems for
engineering components [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. Among them software to control power utilization by the hardware on
the computing center, cooling parameters control software, power supplies parameters control.
Implementation of the big red button (BRB) could be used as an example of using cluster description
database. BRB is an IHEP data center feature that allow to power off the whole infrastructure as soft
as possible in case of emergency. Usually these are cooling problems or also could it be a fire in the
data center. A snippet of code for BRB action is shown on figure 4.
        </p>
        <p>logger BUTTON PRESSED sending power off to WNs
echo "select label,DeviceType from fac_Device where DeviceType='server' AND
Cabinet in (select CabinetID from fac_Cabinet where DataCenterID='3' and
ZoneID='1');" | mysql -h dcim.ihep.su -u dcim -u dcim --password=*** dcim |
awk '{ if ($2=="Server") { sizeAr=split($1,ar,","); for (i=1;i&lt;=sizeAr;i++) print
ar[i];}}' | grep WN | xargs -iSERVER ipmitool -U ***-P ***-H SERVER chassis
power off</p>
      </sec>
      <sec id="sec-5-2">
        <title>5.2. Provisioning</title>
        <p>
          For services provisioning PXE with FAI (Fully Automatic Installation) system is used [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
This system allows to install a compute node or a node for the storage system and has several features
which are used in IHEP environment. They are: installation of Debian GNU/Linux, Ubuntu, CentOS,
Scientific Linux; class concepts that supports heterogeneous configuration and hardware; central
configuration repository for all install clients; full remote control via ssh during installation process;
fast automatic installation for Beowulf clusters; hooks that can extend or customize the normal
behavior. For unique custom build servers and for containers Ansible software is used as provisioning
tool. It is simple and easy to learn, agentless, has easy understandable playbooks and big Ansible
galaxy with many playbooks ready to use.
        </p>
      </sec>
      <sec id="sec-5-3">
        <title>5.3. Configuration and software package management</title>
        <p>
          Configuration and software package management system usually consists of tools that help to
manage system configuration (files, dirs, permissions, etc.) software packages and software behavior.
To manage configuration a content management systems is used. There is a software which does not
have packages and installed on cluster in a software storage area (Ansys, Mathematica, etc.). Software
distribution system based on CernVM-FS [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] is used for this purpose.
        </p>
        <p>Puppet software manages configuration of the servers and the installed packages at IHEP
cluster. Puppet is an extensible system with declarative language for a configuration description, it
understands dependencies among packages, has a good reporting system about applied changes, has
built-in feature for auto generation for documentation. Agent-server setups could have different
versions and even different operating systems (really big benefit in IHEP cluster environment), puppet
is easy to start using.</p>
        <p>On the cluster one puppet server manages configuration for all computing and disk nodes.
Whole configuration consists of 300 directories and around 500 files. It is used for Scientific Linux on
computing nodes, Debian GNU/Linux 7,8,9 on disk nodes, CentOS7 on user interactive nodes. There
are two configurations on the server for production use and pre-production testing system. They are
both managed by git. That allows to use several branches for pre-production development. At IHEP
cluster self-healing functionality of puppet heavily used (force daemon to run, force mount to be
present and so on) and monitoring system checks that puppet agents always run and working.</p>
      </sec>
      <sec id="sec-5-4">
        <title>5.4. Monitoring</title>
        <p>Monitoring is one of the main building blocks for the cluster manager system. Depending on
needs there are several monitoring systems which are used in production. At IHEP following software
is used:





</p>
        <sec id="sec-5-4-1">
          <title>Nagios with Check_MK to check computer center services;</title>
        </sec>
        <sec id="sec-5-4-2">
          <title>Splunk and central syslog to get and analyze all logs;</title>
        </sec>
        <sec id="sec-5-4-3">
          <title>Collectl – realtime monitoring;</title>
        </sec>
        <sec id="sec-5-4-4">
          <title>Elasticsearch and Kibana for engineering infrastructure;</title>
        </sec>
        <sec id="sec-5-4-5">
          <title>Pmacct and cacti for network traffic monitoring on the cluster;</title>
          <p>accounting system which is developed in IHEP.</p>
          <p>Nagios with Check_MK is a primary monitoring system. At one monitoring server it is
checked around 250 hosts and system has about 20000 service checks. The system has a live web
interface with events history, all checks are configurable in one place. It is easy to add and configure
checks for new servers or services. Besides Check_MK plugin system all Nagios plugins are available,
it has good API for external access, as soon as Check_MK Python based it allows to write any new
checks even with performance data in short time, powerful notification system and plugin architecture
is used for seamless integration with other systems. At IHEP installation the system checks 340
services per second that means it needs only one minute to check all services for the cluster.</p>
          <p>
            Second monitoring system is based on Elasticsearch and Kibana. This system mostly store
unstructured data from the monitoring system for engineering infrastructure which is developed at
IHEP. In cluster environment all possible data is stored for developing automate self-healing or
selfprotecting functions. The main benefit in the current setup is a wide set of features that Elasticsearch
with Kibana brings to the user for data analyzes not only in real-time but also post factum. The easy
way of external access for data, simple schema for data gathering systems, new technologies like
machine learning and docker containers all make such system very powerful and promising. At IHEP
this system gather all information about power units, cooling systems, SMART information for all
hard drives on the cluster and more others [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ].
          </p>
        </sec>
      </sec>
      <sec id="sec-5-5">
        <title>5.2. Operation management</title>
        <p>
          To perform cluster operation event-driven automation system StackStorm [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] is used at IHEP.
This system allows automate all actions on IHEP cluster. Base tasks that are used are: automate
remediation (self-healing and self-protection), create automated tasks for whole cluster, execute
administrative commands on the cluster with full log support, create complex workflows from many
tasks on the distributed system. Integration packs with many systems allow to bind Check_MK
monitoring system with StackStorm and good API with micro services architecture let to develop all
necessary custom components if needed.
        </p>
        <p>StackStorm consists of four main logical parts like sensors, triggers, rules and actions. Sensors
are python plugins for integration that receives or watches for events. When an event from external
systems occurs and is processed by a sensor than an internal trigger emitted into the system. From
event-driven system’s view triggers are representation of external events. At IHEP it is already used
timers, webhooks and integrations triggers. Rules map the triggers to simple actions or to tasks as a set
of actions (workflows) by applying matching criteria and by mapping trigger payload to action inputs.
Actions are StackStorm outbound integrations. At IHEP mostly rules and actions are used for daily
operations which are deployed in one pack. Some examples of the usage in production are using
mistral workflows for kernel upgrade, self-healing the system if external software has bugs and
mitigations procedures, data center crontab feature to run distributed data verification and some others.</p>
        <p>To bring background work into a common place and synchronize all system administration
works a ChatOps is used. Such operation paradigm allows to open fully IT daily operations and unify
the communication about what should get done with action history of work being done.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion</title>
      <p>At this work the multicomponent cluster management system at IHEP has been presented. All
components based on open source software are in place and work for day-to-day operation. The whole
infrastructure is going to the direction of fully autonomic self-managed system with minimum human
intervention and prepared for the future with new hardware or software technologies that could be
used at IHEP data center. All these make the computing center flexible and allow to use different kind
of computations. By increasing availability and reliability parameters implemented system allowes to
increase cluster effectiveness to the level of 75% where the effectiveness equal Availability multiplied
by Reliability, Maintainability and Capability.</p>
      <p>As a next step toward the fully autonomic system there are plans to add cluster states
description database with allowed actions between the states by using finite-state machine
mathematical model of computation theory applied to IHEP computing cluster. Also all self-features
of current implementation need to be developed further.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Kephart</surname>
            <given-names>J.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chess D.M.</surname>
          </string-name>
          <article-title>The vision</article-title>
          of autonomic computing // Computer 36. - 41
          <string-name>
            <surname>-</surname>
          </string-name>
          52 - 2003 - DOI:10.1109/
          <string-name>
            <surname>MC</surname>
          </string-name>
          .
          <year>2003</year>
          .1160055
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>[2] WLCG homepage [WLCG site]</article-title>
          . Available at: http://wlcg.web.cern.ch/.
          <source>(accessed 24.09</source>
          .
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <article-title>[3] Google site reliability engineering portal</article-title>
          [Site reliability engineering] https://landing.google.com/sre/.
          <source>(accessed 24.09</source>
          .
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>White</given-names>
            <surname>Paper</surname>
          </string-name>
          .
          <article-title>An architectural blueprint for autonomic computing /</article-title>
          / IBM. 2006
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Kotliar</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Anshukov</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ezhova</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gusev</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kotliar</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Latyshev</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>Shishov A. Development of the active monitoring system for the computer center</article-title>
          at IHEP // CEUR Workshop Proceedings.
          <source>February</source>
          <year>2017</year>
          : Vol.
          <volume>1787</volume>
          . Pp.
          <volume>317</volume>
          -
          <fpage>322</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Kotlyar</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Popova</surname>
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Trushin</surname>
            <given-names>K.</given-names>
          </string-name>
          <article-title>Installation and setup of an IAAS private cloud based on OPENNEBULA with XEN hypervisor and LUSTRE file system. // Distributed computing and gridtechnologies in science and education Proceedings</article-title>
          .
          <source>July 2012</source>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <article-title>[7] CernVM file system home page [CernVM-FS]</article-title>
          . https://cernvm.cern.ch/portal/filesystem (accessed
          <volume>24</volume>
          .09.
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <article-title>[8] StackStorm documentation [StackStorm overview]</article-title>
          . Available at: https://docs.stackstorm.com/overview.html.
          <source>(accessed 24.09</source>
          .
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>