Introduction
Software Contributor Documentation Table of Contents
IML stands for Integrated Manager for Lustre.
IML is responsible for the installation, configuration, monitoring, and overall management of Lustre.
The Lustre file system is an open-source, parallel file system, generally used for large-scale cluster computing.
Below are some screen shots of IML:
Login Screen
Server Screen
- More IML Screenshots
Source Code
Before accessing our source code repository for the first time, new contributors should have a good understanding of the tools and processes in place.
- Become very familiar with git.
- Become familiar with the IML codebase.
- Learn the IML contributor workflow.
- Understand How to Contribute to the Frontend and/or Backend Code.
- Be ready to learn new things.
Frontend Code and Backend Code
IML consists of a Frontend GUI that is written primarily in Node JS and server-side Backend code that is written primarily in python. The codebase relies on many external dependencies and uses many services and APIs.
The IML codebase consists of many repositories due to the varying needs and varying dependencies.
Primary IML repos
Repo Name | Description |
---|---|
integrated-manager-for-lustre | Consider this as the Top level repo populated mostly with python code. |
GUI | The Graphical User Interface for the Single Page Application, IML. This is primarily nodejs code with angular and inferno libraries. |
manager-for-lustre-dependencies | Dependencies needed for IML that are not available elsewhere. |
view-server | Server client-side files. |
socket-worker | Off main thread data munging. |
realtime | WebSocket Proxy over RESTful API. |
Vagrantfiles | Configuration used to generate a virtual lustre clustre with vagrant and virtualBox. |
Dependencies for IML
High level python dependencies
- The django web application framework.
- Tastypie webservice API framework for Django used as the REST-api.
- django-south, a tool to provide consistent, easy-to-use and database-agnostic migrations for Django applications.
- Kombu messaging library for python.
- Supervisor, a system for controlling process state under linux.
- Robinhood
IML Services
IML uses the following services
Service Name | Description |
---|---|
corosync | A group communication system with additional features for implementing high availability within applications. |
gunicorn | ‘Green Unicorn’ is a Python WSGI HTTP Server for UNIX. |
http_agent | Communicates with the agent daemon on storage servers. |
Other Services:
- job_scheduler
- lustre_audit
- plugin_runner
- power_control
- realtime
- stats
- syslog
- view_server