Development

From Lustre Wiki
Jump to navigation Jump to search

Lustre Development Activities

The next release under development (accepting new features)

If you are looking for small development projects to add minor improvements to Lustre and/or become more familiar with the code and development process, there is a keyword easy that is added to tickets that are suitable: easier development items

Submitting Changes

The Submitting Changes page covers steps you'll need to follow to contribute code changes.

Code Reviews

The Code Reviewers page describes how to find developers willing to perform code reviews on particular sections of the Lustre code.

Upstream Linux Contributing

The Lustre client code is being reworked for upstream kernel submission as part of the 'master' Lustre development branch. Submitted patches should follow the normal Lustre patch submission process. Once all issues that are known to be blocking upstream submission have been addressed, then the Lustre client code will be resubmitted to the upstream kernel.

Updating Documentation

Updating the Lustre User Manual is a very useful way for non-coders to contribute to Lustre. See Lustre Manual Changes for more information on how to contribute changes, and the list of open documentation tickets.

Developer Meetings

Feature Development

Major development efforts are tracked on the Projects page. The Architecture and Design documents of various projects are available for review and future reference.

Please see Lustre Coding Style Guidelines and Lustre Style Guide Includes for information about writing Lustre code, and Submitting Changes for details on how to submit patches. There is also Lustre Script Coding Style for writing test scripts.

Patches and landing status can be tracked via some Gerrit searches courtesy of John Hammond:

Kernel Policy

As Lustre runs in the Linux kernel it can be sensitive to changes between Linux kernel version. While Lustre is used in production on a wide variety of Linux distributions, testing efforts are concentrated on a limited number of primary Linux distributions. There are usually some secondary Linux distributions that either have been demonstrated to work to some reasonable degree or are work-in-progress towards becoming a primary distribution in the future. The primary Linux distributions are what is called out in the release page and the Lustre support matrix, but both the primary and secondary Linux distributions will be mentioned in the Lustre change log.

At the time of writing, the primary Linux distribution for Lustre servers is the latest Red Hat 9.3 kernel and the primary Linux distributions for Lustre clients are the latest RHEL 8.9, RHEL 9.3, Ubuntu 22.04 and SLES 15 SP5. Please consult lustre/Changelog in the Lustre tree for the latest details and known secondary Linux distributions.

Please note that wherever Red Hat or RHEL is mentioned that it includes RHEL-like Linux distributions like CentOS and Rocky Linux.

Lustre Internals Documentation

To gain a better understanding of the Lustre code and how it works, a good resource is Understanding Lustre Internals.