Description: The reference material in this section provides technical descriptions of LXD. General information: Before you start using LXD, you should check the system requirements. You should also be aware of...

Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
View this page
Toggle table of contents sidebar

# Reference

The reference material in this section provides technical descriptions of LXD.

## General information

Before you start using LXD, you should check the system requirements. You should also be aware of the supported architectures, the available image servers, the format for images, and the environment used for containers.

- Requirements
- Architectures
- Remote image servers
- Image format
- Container environment

## Configuration options

LXD is highly configurable. Check the available configuration options for the LXD server and the different entities used in LXD.

- Configuration option index
- Server configuration
- Instance configuration
  - Instance properties
  - Instance options
  - Devices
  - Units for storage and network limits
- Preseed YAML file fields
- Project configuration
- Storage drivers
  - Btrfs - `btrfs`
  - CephFS - `cephfs`
  - Ceph Object - `cephobject`
  - Ceph RBD - `ceph`
  - Dell PowerFlex - `powerflex`
  - Directory - `dir`
  - LVM - `lvm`
  - ZFS - `zfs`
- Networks
  - Bridge network
  - OVN network
  - Macvlan network
  - Physical network
  - SR-IOV network
- Cluster configuration

## Production setup

Once you are ready for production, make sure your LXD server is configured to support the required load. You should also regularly monitor the server metrics.

- Production server settings
- Provided metrics

## REST API

All communication between LXD and its clients happens using a RESTful API over HTTP. Check the list of API extensions to see if a feature is available in your version of the API.

- REST API
  - Main API documentation
  - Main API specification
  - Main API extensions
  - Events API documentation
  - Instance API

## Man pages

`lxc` is the command line client for LXD. Its usage is documented in the help pages for the `lxc` commands and subcommands.

- Man pages
  - `lxc`

## Implementation details

You don’t need to be aware of the internal implementation details to use LXD. However, advanced users might be interested in knowing what happens internally.

- Internals
  - Environment variables
  - UEFI variables for VMs
  - Daemon behavior
  - System call interception
  - User namespace setup