Skip to content

Commit 535b551

Browse files
committed
feat: add LNet info to Lustre Explanation and deployment How-to
1 parent 876a90c commit 535b551

5 files changed

Lines changed: 34 additions & 15 deletions

File tree

.custom_wordlist.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ nfs
139139
OSSes
140140
OSTs
141141
userinfo
142+
vdev
142143
vdevs
143144
zpool
144145

explanation/lustre.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,23 @@ The `lustre-server` charm is in an experimental state and is not yet ready for p
3535

3636
### Package installation
3737

38-
TODO
38+
The Lustre server packages are installed from a PPA maintained by the Ubuntu HPC team located at [`ppa:ubuntu-hpc/lustre-2.17`](https://launchpad.net/~ubuntu-hpc/+archive/ubuntu/lustre-2.17) and containing the latest stable release supported by the charm. Setup of the PPA and package install are handled automatically by the charm during its `install` hook.
3939

4040
### LNet configuration
4141

42-
TODO
42+
LNet is Lustre's network layer, responsible for communication between clients and server components. The `lustre-server` charm can automatically detect network interfaces and configure LNet or a custom configuration can be provided using the `lnet-networks` option.
43+
44+
Both the `lustre-server` and `filesystem-client` charms perform network auto-detection by default, during the charm `install` hook. LNet is automatically configured with a network name of `tcp` using the default route Ethernet interface and, if RDMA hardware such as InfiniBand is detected, another network name of `o2ib` using every RDMA device, in a multi-rail setup if multiple devices are detected.
45+
46+
Auto-detection can be overridden by setting the `lnet-networks` configuration value. The format for `lnet-networks` is `<name>=<iface>[,<iface>...]`, where `<name>` is the LNet network name and `<iface>` is the network interface. For example, to configure LNet with a net name of `tcp` using the `eth0` interface, and a net name of `o2ib0` using the `ib0` and `ib1` interfaces, the following flag would be used:
47+
48+
```shell
49+
--config lnet-networks="tcp=eth0; o2ib0=ib0,ib1"
50+
```
4351

4452
### Service placement
4553

46-
TODO
54+
The charm automatically places the MGS and MDS on the initial leader unit, with all subsequent units becoming OSSes. A minimum of two units is required in a deployment.
4755

4856
### Storage
4957

howto/deploy/deploy-lustre.md

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,40 +20,47 @@ The `lustre-server` charm is in an experimental state and is not ready for produ
2020

2121
## Prerequisites
2222

23-
- A [Slurm cluster](#howto-deploy-deploy-slurm).
2423
- The [Juju CLI client](https://documentation.ubuntu.com/juju/latest/user/howto/manage-juju/) installed on your machine.
2524
- Secure boot **disabled** on target machines, as the charm builds DKMS kernel modules.
2625

26+
(howto-deploy-deploy-lustre-server)=
2727
## Deploy the `lustre-server` charm
2828

29-
To deploy the `lustre-server` charm:
29+
To deploy a default configuration, where the initial leader unit is a combined MGS+MDS and all remaining units are OSSes, run the following:
3030

3131
:::{code-block} shell
3232
juju deploy lustre-server \
3333
--channel latest/edge \
34-
-n 2
34+
-n <number of units>
3535
:::
3636

37-
At least two units are required; a single unit deployment is not supported.
37+
A minimum of two units is required; a single unit deployment is not supported.
3838

39-
The Juju application leader at deployment time becomes a combined MGS+MDS unit. All additional units become OSSes, each providing one OST.
39+
## Deploy the `lustre-server` charm with custom LNet configuration
4040

41-
Wait for all units in the deployment to become active:
41+
To override LNet auto-detection and deploy with a custom configuration, deploy as described in {ref}`howto-deploy-deploy-lustre-server` but include the `lnet-networks` configuration option following format: `<name>=<iface>[,<iface>...]`.
42+
43+
For example, to configure LNet with a net name of `tcp` using the `eth0` interface, and a net name of `o2ib0` using the `ib0` and `ib1` interfaces, run the following:
4244

4345
:::{code-block} shell
44-
juju status
46+
juju deploy lustre-server \
47+
--channel latest/edge \
48+
--config lnet-networks="tcp=eth0; o2ib0=ib0,ib1" \
49+
-n <number of units>
4550
:::
4651

4752
## Deploy the `filesystem-client` charm
4853

49-
To mount the Lustre filesystem on client nodes, deploy the `filesystem-client` subordinate charm
50-
charm with `mountpoint` configuration set to the path Lustre should be mounted at on each client.
51-
Then integrate with the `lustre-server` application on the `filesystem` endpoint:
54+
To mount the Lustre filesystem on client nodes, deploy the `filesystem-client` subordinate charm,
55+
with the `mountpoint` configuration set to the path Lustre should be mounted at on each client and
56+
the `enable-lustre` configuration set to `true`. Then integrate with the `lustre-server` application
57+
on the `filesystem` endpoint:
5258

5359
:::{code-block} shell
5460
juju deploy filesystem-client \
5561
--channel latest/edge \
56-
--config mountpoint="/mnt/lustre"
62+
--config mountpoint="/mnt/lustre" \
63+
--config enable-lustre=true
5764

5865
juju integrate filesystem-client:filesystem lustre-server:filesystem
5966
:::

howto/deploy/index.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# Deploy
22

3-
Deploy and configure the core components of a Charmed HPC cluster, with support for high availability, NFS and CephFS filesystem serves, LXD-based deployments, and LDAP-backed identity management.
3+
Deploy and configure the core components of a Charmed HPC cluster, with support for high availability, filesystem serves (Lustre, NFS, and CephFS), LXD-based deployments, and LDAP-backed identity management.
44

55
- {ref}`Deploy Slurm <howto-deploy-deploy-slurm>`
6+
- {ref}`Deploy Lustre <howto-deploy-deploy-lustre>`
67
- {ref}`Deploy a shared filesystem <howto-deploy-deploy-shared-filesystem>`
78
- {ref}`Deploy an identity provider <howto-deploy-deploy-identity-provider>`
89

@@ -12,6 +13,7 @@ Deploy and configure the core components of a Charmed HPC cluster, with support
1213
:hidden:
1314

1415
Deploy Slurm <deploy-slurm>
16+
Deploy Lustre <deploy-lustre>
1517
Deploy a shared filesystem <deploy-shared-filesystem>
1618
Deploy identity provider <deploy-identity-provider>
1719
:::

howto/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Install dependencies and initialize the backing cloud for your cluster.
1515
Deploy and configure the core components of your cluster.
1616

1717
- {ref}`Deploy Slurm <howto-deploy-deploy-slurm>`
18+
- {ref}`Deploy Lustre <howto-deploy-deploy-lustre>`
1819
- {ref}`Deploy a shared filesystem <howto-deploy-deploy-shared-filesystem>`
1920
- {ref}`Deploy an identity provider <howto-deploy-deploy-identity-provider>`
2021

0 commit comments

Comments
 (0)