Creating LXD Container Profiles

30 minutes
  • 4 Learning Objectives

About this Hands-on Lab

A benefit of containers is the ability to create mass amounts of them in a short amount of time. LXD makes ensuring these containers all share the expected container-level instance configurations through the use of container profiles. In this hands-on lab, we will create a profile to use when deploying on a certain storage pool.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Create a New Profile

Create new storage pool based on the default profile by copying the profile:

lxc profile copy default dbs
Update the Storage Pool

Edit the file so the appropriate storage pool is used when a container is deployed:

lxc profile edit dbs
config: {}
description: Default LXD profile
devices:
  eth0:
    name: eth0
    nictype: bridged
    parent: lxdbr0
    type: nic
  root:
    path: /
    pool: dbs
    type: disk
name: dbs
used_by: []

We can then continue by adding the other configurations into this file directly, or save and exit and set them via the CLI.

Change Instance Settings

Set the instance boot values using the CLI:

lxc profile set dbs boot.autostart.priority 99
lxc profile set dbs boot.stop.priority 1
lxc profile set dbs limits.disk.priority 10
lxc profile set dbs snapshots.schedule "0 0 * * *"

Confirm the changes:

lxc profile show dbs
Use Profile with Instances

Create a test image:

lxc launch alpine test -p dbs

Then assign it to the existing db01 container; remove any additional profiles:

lxc profile add db01 dbs
lxc profile remove db01 default

Additional Resources

As part of a move to LXD containers, you need to create a new profile specifically for database pools that will leverage the /dev/xvdg storage pool, dbs. We also want to ensure the following configuration settings are set for any containers launched with this profile:

  • boot.autostart.priority = 99
  • boot.stop.priority = 1
  • limits.disk.priority = 10
  • snapshots.schedule = 0 0 * * *

Note: Do not set limits.disk.priority as shown in the video. There is an underlying issue with this setting that we are investigating.

When finished, launch a test instance using the profile, then assign it to the existing db01 container.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?