Git Product home page Git Product logo

mom's Introduction

Memory Overcommitment Manager

INTRODUCTION
------------

MOM is a policy-driven tool that can be used to manage overcommitment on KVM
hosts.  Using a connection to the hypervisor software (either libvirt or oVirt
vdsm), MOM keeps track of active virtual machines on a host.  At a regular
collection interval, data is gathered about the host and guests. Data can come
from multiple sources (eg. the /proc interface, libvirt API calls, a client
program connected to a guest, etc). Once collected, the data is organized for
use by the policy evaluation engine.  If configured, MOM regularly evaluates a
user-supplied management policy using the collected data as input.  In response
to certain conditions, the policy may trigger reconfiguration of the system’s
overcommitment mechanisms. Currently MOM supports control of memory ballooning
and KSM but the architecture is designed to accommodate new mechanisms such as
cgroups.


QUICK INSTALLATION
------------------

If MOM is not yet packaged for your Linux distribution it can beinstalled easily
using the following sequence:

    ./autogen.sh
    ./configure
    make
    make install

To build an RPM using the included spec file you should first edit configure.ac
to set RPM version information.  You may want to set VERSION_SUFFIX to a string
that will differentiate your builds from upstream builds.  The '0.0' at the
beginning of PACKAGE_RPM_RELEASE should be changed to '1' and should be
incremented for each subsequent build of the same mom release.  Once you have
made the appropriate changes, execute the following commands to create an RPM:

    rm *.tar.gz
    ./configure
    make dist
    rpmbuild -ta mom-*.tar.gz


USAGE
-----

By default, MOM looks for its configuration file in /etc/momd.conf.  Before
starting MOM for the first time, be sure to configure it.  Sample configuration
files can be found in the doc/ sub-directory of this distribution.  The most
important configuration settings are for the Hypervisor Interface, Collectors
and Controllers.

MOM can run under two different hypervisor modes: vdsm and libvirt.  If you are
configuring a node running in an oVirt environment and are running vdsm on your
node, you would select the vdsm HypervisorInterface.  Otherwise, select libvirt
to have MOM talk directly with libvirt.

Collectors determine what data is collected from the system and how.
Controllers provide the tuning "knobs" that can be used by policies.  The exact
set of Collectors and Controllers you will need depends on the policies you want
to use.  You can find help for adjusting configuration settings by reading the
comments included in the sample configuration files.

Once configured you can start MOM.  Use your distribution's standard process if
MOM has been packaged for it.  Otherwise, start the MOM daemon (momd) yourself.

    /usr/local/sbin/momd -c <config-file> -r <policy-file>

EXAMPLES
--------

Example MOM configuration files and policies can be found in the doc/
subdirectory of this distribution.


CONTRIBUTING
------------

MOM is part of the oVirt family of projects.  For contact information including:
IRC, mailing lists, and bugs, see: http://www.ovirt.org/Community

mom's People

Contributors

marsik avatar aglitke avatar ffromani avatar akrejcir avatar lvroyce avatar tsekiyama avatar dankenigsberg avatar rgolangh avatar apahim avatar david-caro avatar dougsland avatar jtokar avatar rmohr avatar sandrobonazzola avatar vrusinov avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.