OpenLMI

Last updated

OpenLMI (abbreviated from Open Linux Management Infrastructure) provides a common management infrastructure for Linux systems. Available operations include configuration of various operating system parameters and services, hardware components configuration, and monitoring of system resources. Services provided by OpenLMI can be accessed both locally and remotely, using multiple programming languages and standardized APIs.

Contents

Project's source code is distributed under the GNU Lesser General Public License (LGPL) and Simplified BSD License. [1]

Overview

OpenLMI distinguishes agents , controllers and client applications:

Thus, instead of delivering a complete management solution, OpenLMI provides low-level functions and APIs that can be used by, or integrated into, various management platforms, applications or configuration scripts. [2]

OpenLMI extends the already existing Linux infrastructure by providing management agents which also perform system configuration tasks, in addition to monitoring and reporting functions. By exporting those operations through standard-based interfaces, and by providing agents performing the actual operations, OpenLMI creates a management framework that various applications can use  both for system configuration, and for monitoring resources and performance. Usage targets for OpenLMI include bare-metal production servers, on which it can perform initial configurations through a set of predefined "recipes". [2]

As of December 2013, implemented agents primarily perform operations related to storage, networking and local user accounts. Plans exist to expand the variety of implemented agents, aiming at providing complete coverage of Linux management and configuration tasks. [2]

The OpenLMI's source code is licensed under the GNU Lesser General Public License (LGPL) and Simplified BSD License (also known as the FreeBSD License). [1]

Architecture

Based on their placement and usage role, OpenLMI architecture contains two major components: management modules (also known as agents), and management tools. A set of management modules is installed and running on each of the managed systems, performing the configuration and monitoring tasks. Management tools are running on a management system, performing aggregation of the collected monitoring data, and dispatching the requests to management modules. The agents are talking to the outside world through an OpenLMI Object Broker, which is also known as a controller. This object request broker provides a standard-based communications protocol, handles the security and access control, and provides deployment methods for the agents. [3]

Each agent implements an object model that specifies the attributes (information), methods (functions), and associations (links to other objects). Through the controller, this object model is interoperably made available to client applications. While it is possible to build all required logic into an agent, the general approach is to use and invoke existing Linux tools; for example, OpenLMI's network agent uses the NetworkManager, and the storage agent uses the Blivet storage library. [3]

The actual communication protocol is using XML data transferred over HTTPS. While it is possible to use XML directly, a set of client libraries provides native interfaces for a number of programming languages; client libraries supplied by OpenLMI provide support for C, C++, Python and Java. These interfaces are implemented as language bindings to the operations in underlying system agents, with all supplied libraries providing the same feature sets. Support for command-line interface (CLI) utilities is also provided. [2] [3]

Internally, OpenLMI is based on the Distributed Management Task Force (DMTF) Common Information Model (CIM), with internal functions exposed in form of CIM namespaces. A few open-source CIM clients are available, as an additional way for using data and operations exported through OpenLMI. [4] [5]

Agents

OpenLMI agents, also called providers, do the actual work. OpenLMI distribution includes a set of standard management agents, and also includes a set of development resources required for developing new agents. Standard OpenLMI agents, as of April 2014, are the following: [6]

Storage
Storage Agent configures and manages local and remote storage. The ability to enumerate (discover) and configure local storage devices is built-in. As of December 2013, remote storage devices can be configured, with no support for their discovery or provisioning. Thus, remote storage must be already provisioned using other approaches, and the resulting logical unit number (LUN) made available to this agent. Support for provisioning of remote storage is planned for future releases. [7]
Networking
Networking Agent configures and manages network interface controllers (NICs) and Linux networking configuration in general. It has the ability to enumerate (discover) and configure devices, including configuration of IPv4 and IPv6 addresses, default gateways, DNS servers, management of static routes, and configuration of interfaces bridging and bonding. [8]
System Services
System Services Agent performs the management operations associated with the system services and underlying background processes, by exposing the ability for services to be, for example, started, stopped or restarted through the standard OpenLMI interface. This agent also has the ability to enumerate (discover) available system services, using the systemd's D-Bus interface. [9]
User Accounts
User Accounts Agent configures and manages local user accounts, local user groups, groups membership, and accounts parameters such as the default shell, home directory, password, and password expiration. This agent also has the ability to enumerate (discover) available local user accounts and local user groups. [10]
Software
Software Agent configures and manages software packages on a managed system. It has the ability to list the software installed on a system, install new software, update existing software, and remove installed software. It also has the ability to verify integrity of installed packages and their files, while using all configured repositories. [11]
Hardware
Hardware Agent manages hardware components, providing detailed information on their presence and associated configurations. Provided information includes the CPU-related data (number of cores, clock and FSB speeds, cache sizes, etc.), system memory (size, speed, available memory slots, installed modules, etc.), physical asset data (chassis info, available ports and slots, etc.), battery (available capacity, running voltage, etc.), and PCI devices and bridges (available buses, IDs of devices, device vendors, etc.) [12]
Logging
Journald Agent provides access to logging records through the standard OpenLMI interface. It is a client of systemd's journald service, accessing the journald records in several ways and providing a way to store new log records. Journald, as a structured logging system, stores supplemental information along each record, making it easier to find and extract information from the resulting log files. [13]
Performance CoPilot
Performance CoPilot Agent provides access to various system statistics and performance monitoring data collected by the Performance Co-Pilot (PCP) service running locally on a monitored host. PCP is capable of providing monitoring data for various services, including web, email and database servers, and virtualization environments. Collected data may have any type of value, including integers, strings, floating point numbers, and arbitrary composite data structures. [14] [15]

Comparison

OpenLMI is different from other configuration management systems like Puppet or Bcfg2, in a way that OpenLMI does not require details of the system configuration to be already known in order for appropriate configuration recipes to be created. This nature of the OpenLMI may provide advantages in case initial configuration is to be performed on a broader variety of systems having different hardware configurations. [16]

Reception

Red Hat Enterprise Linux 7.0 includes support for OpenLMI since the first beta release of this Linux distribution, which was made available on December 11, 2013. [17] [18] Fedora 20, released on December 17, 2013, also includes support for OpenLMI. [19] [20]

See also

Related Research Articles

CUPS

CUPS is a modular printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer.

A disk array controller is a device that manages the physical disk drives and presents them to the computer as logical units. It almost always implements hardware RAID, thus it is sometimes referred to as RAID controller. It also often provides additional disk cache.

The Intelligent Platform Management Interface (IPMI) is a set of computer interface specifications for an autonomous computer subsystem that provides management and monitoring capabilities independently of the host system's CPU, firmware and operating system. IPMI defines a set of interfaces used by system administrators for out-of-band management of computer systems and monitoring of their operation. For example, IPMI provides a way to manage a computer that may be powered off or otherwise unresponsive by using a network connection to the hardware rather than to an operating system or login shell. Another use case may be installing a custom operating system remotely. Without IPMI, installing a custom operating system may require an administrator to be physically present near the computer, insert a DVD or a USB flash drive containing the OS installer and complete the installation process using a monitor and a keyboard. Using IPMI, an administrator can mount an ISO image, simulate an installer DVD, and perform the installation remotely.

NetworkManager

NetworkManager is a daemon that sits on top of libudev and other Linux kernel interfaces and provides a high-level interface for the configuration of the network interfaces.

IBM Spectrum Protect is a data protection platform that gives enterprises a single point of control and administration for backup and recovery. It is the flagship product in the IBM Spectrum Protect family.

OpenManage, a Dell, Inc. product, consists of a number of network management and systems management applications. Although the name sounds like open source software, it is closed source.

VMware ESXi Enterprise-class, type-1 hypervisor for deploying and serving virtual computers

VMware ESXi is an enterprise-class, type-1 hypervisor developed by VMware for deploying and serving virtual computers. As a type-1 hypervisor, ESXi is not a software application that is installed on an operating system (OS); instead, it includes and integrates vital OS components, such as a kernel.

Kernel-based Virtual Machine Virtualization module in the Linux kernel

Kernel-based Virtual Machine (KVM) is a virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. It was merged into the mainline Linux kernel in version 2.6.20, which was released on February 5, 2007. KVM requires a processor with hardware virtualization extensions, such as Intel VT or AMD-V. KVM has also been ported to other operating systems such as FreeBSD and illumos in the form of loadable kernel modules.

VirtualBox Open-source x86 virtualization application

Oracle VM VirtualBox is a free and open-source hosted hypervisor for x86 virtualization, developed by Oracle Corporation. Created by Innotek, it was acquired by Sun Microsystems in 2008, which was in turn acquired by Oracle in 2010.


This is a comparison of notable free and open-source configuration management software, suitable for tasks like server configuration, orchestration and infrastructure as code typically performed by a system administrator.

OpenSAF is an open-source service-orchestration system for automating computer application deployment, scaling, and management. OpenSAF is consistent with, and expands upon, Service Availability Forum (SAF) and SCOPE Alliance standards.

StorNext File System (SNFS), colloquially referred to as "StorNext" is a shared disk file system made by Quantum Corporation. StorNext enables multiple Windows, Linux and Apple workstations to access shared block storage over a Fibre Channel network. With the StorNext file system installed, these computers can read and write to the same storage volume at the same time enabling what is known as a "file-locking SAN." StorNext is used in environments where large files must be shared, and accessed simultaneously by users without network delays, or where a file must be available for access by multiple readers starting at different times. Common use cases include multiple video editor environments in feature film, television and general video post production.

oVirt Free, open-source virtualization management platform

oVirt is a free, open-source virtualization management platform. It was founded by Red Hat as a community project on which Red Hat Enterprise Virtualization is based. It allows centralized management of virtual machines, compute, storage and networking resources, from an easy-to-use web-based front-end with platform independent access. KVM on x86-64 and PowerPC64 architecture are the only hypervisors supported, but there is an ongoing effort to support ARM architecture in the future releases.

Junos OS

The Junos operating system (Junos OS) used in Juniper Networks network devices creates an environment for accelerating the deployment of services and applications over a single network.

Eucalyptus is a paid and open-source computer software for building Amazon Web Services (AWS)-compatible private and hybrid cloud computing environments, originally developed by the company Eucalyptus Systems. Eucalyptus is an acronym for Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems. Eucalyptus enables pooling compute, storage, and network resources that can be dynamically scaled up or down as application workloads change. Mårten Mickos was the CEO of Eucalyptus. In September 2014, Eucalyptus was acquired by Hewlett-Packard and then maintained by DXC Technology. After DXC stopped developing the product in late 2017, AppScale Systems forked the code and started supporting Eucalyptus customers.

OpenStack Cloud computing software

OpenStack is a free, open standard cloud computing platform. It is mostly deployed as infrastructure-as-a-service (IaaS) in both public and private clouds where virtual servers and other resources are made available to users. The software platform consists of interrelated components that control diverse, multi-vendor hardware pools of processing, storage, and networking resources throughout a data center. Users manage it either through a web-based dashboard, through command-line tools, or through RESTful web services.

Checkmk is software developed in Python and C++ for IT Infrastructure monitoring. It is used for the monitoring of servers, applications, networks, cloud infrastructures, containers, storage, databases and environment sensors.

Kubernetes is an open-source container-orchestration system for automating computer application deployment, scaling, and management. It was originally designed by Google and is now maintained by the Cloud Native Computing Foundation. It aims to provide a "platform for automating deployment, scaling, and operations of database management systems". It works with a range of container tools and runs containers in a cluster, often with images built using Docker. Kubernetes originally interfaced with the Docker runtime through a "Dockershim"; however, the shim has since been deprecated in favor of directly interfacing with the container through containerd, or replacing Docker with a runtime that is compliant with the Container Runtime Interface (CRI) introduced by Kubernetes in 2016.

Proxmox Virtual Environment Linux distribution for server virtualization

Proxmox Virtual Environment is an open-source server virtualization management platform. It is a Debian-based Linux distribution with a modified Ubuntu LTS kernel and allows deployment and management of virtual machines and containers. Proxmox VE includes a web console and command-line tools, and provides a REST API for third-party tools. Two types of virtualization are supported: container-based with LXC, and full virtualization with KVM. It comes with a bare-metal installer and includes a web-based management interface.

Enterprise Storage OS, also known as ESOS, is a Linux distribution that serves as a block-level storage server in a storage area network (SAN). ESOS is composed of open-source software projects that are required for a Linux distribution and several proprietary build and install time options. The SCST project is the core component of ESOS; it provides the back-end storage functionality.

References

  1. 1 2 "OpenLMI development website". fedorahosted.org. Retrieved July 14, 2014.
  2. 1 2 3 4 "OpenLMI: Configure, Manage and Monitor Linux Systems". openlmi.org. Archived from the original on October 28, 2015. Retrieved December 11, 2013.
  3. 1 2 3 "OpenLMI: Architecture". openlmi.org. Retrieved December 11, 2013.
  4. "OpenLMI - Open Linux Management Interface". blog.fpmurphy.com. June 30, 2013. Retrieved December 11, 2013.
  5. "OpenLMI Project - Part I". kernel-labs.org. October 2, 2012. Retrieved December 13, 2013.
  6. "OpenLMI: Agents". openlmi.org. Retrieved April 18, 2014.
  7. "OpenLMI: Storage Agent". openlmi.org. Retrieved December 11, 2013.
  8. "OpenLMI: Networking Agent". openlmi.org. Retrieved December 11, 2013.
  9. "OpenLMI: System Services Agents". openlmi.org. Retrieved December 11, 2013.
  10. "OpenLMI: User Accounts Agent". openlmi.org. Retrieved December 11, 2013.
  11. "OpenLMI: Software Agent". openlmi.org. Retrieved December 11, 2013.
  12. "OpenLMI: Hardware Agent". openlmi.org. Retrieved December 11, 2013.
  13. "OpenLMI: Logging with Journald". openlmi.org. Retrieved December 11, 2013.
  14. "OpenLMI: Performance CoPilot". openlmi.org. September 23, 2013. Retrieved April 18, 2014.
  15. "Performance Co-Pilot User's and Administrator's Guide" (PDF). oss.sgi.com. January 6, 2014. Retrieved April 18, 2014.
  16. "OpenLMI vs. Puppet". techponder.wordpress.com. November 14, 2013. Retrieved December 11, 2013.
  17. "Red Hat Unveils Red Hat Enterprise Linux 7, Redefining the Enterprise Operating System". Red Hat. June 10, 2014. Retrieved June 11, 2014.
  18. "Red Hat Announces Availability of Red Hat Enterprise Linux 7 Beta". Red Hat. December 11, 2013. Retrieved December 11, 2013.
  19. Russ Doty (December 20, 2013). "Managing Linux with OpenLMI". Red Hat . Retrieved June 12, 2014.
  20. "Releases/20/Schedule". Fedora Project. January 18, 2014. Retrieved June 12, 2014.