Skip to content

Commit 7072e7a

Browse files
committed
Add filesystems docs
1 parent eabf59b commit 7072e7a

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

docs/filesystems.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Overview
2+
3+
The Slurm appliance supports mounting shared filesystems using [CephFS](https://docs.ceph.com/en/latest/cephfs/) via [OpenStack Manila](https://docs.openstack.org/manila/latest/). These docs explain:
4+
5+
- How to create the shares in OpenStack Manila.
6+
7+
- How to configure the Slurm Appliance to mount these Manila shares.
8+
9+
- How to switch to using Manila shares for a shared home directory.
10+
11+
## Creating shares in OpenStack
12+
13+
The Slurm appliance requires that the Manila shares already exist on the system. Follow the instructions below to do this.
14+
15+
If this is the first time Manila is being used on the system, a CephFS share type will need to be created. You will need admin credentials to do this.
16+
17+
```bash
18+
openstack share type create cephfs-type false --extra-specs storage_protocol=CEPHFS vendor_name=Ceph
19+
```
20+
21+
Once this exists, create a share using credentials for the Slurm project. An access rule also needs to be created, where the `access_to` argument (`openstack share access create <share> <access_type> <access_to>`) is a user that will be created in Ceph. This needs to be globally unique in Ceph, so needs to be different for each OpenStack project.
22+
23+
```bash
24+
openstack share create CephFS 300 --description 'Scratch dir for Slurm prod' --name slurm-production-scratch --share-type cephfs-type --wait
25+
openstack share access create slurm-production-scratch cephx slurm-production
26+
```
27+
28+
## Configuring the Slurm Appliance for Manila
29+
30+
To mount shares onto hosts in a group, add them to the `manila` group.
31+
32+
```ini
33+
[manila:children]
34+
login
35+
compute
36+
```
37+
38+
Set the version of Ceph which is running on the system.
39+
40+
```yaml
41+
os_manila_mount_ceph_version: "18.2.4"
42+
```
43+
44+
Define the list of shares to be mounted, and the paths to mount them to. See the [stackhpc.os-manila-mount role](https://github.com/stackhpc/ansible-role-os-manila-mount) for further configuration options.
45+
46+
```yaml
47+
os_manila_mount_shares:
48+
- share_name: slurm-production-scratch
49+
mount_path: /scratch
50+
```
51+
52+
### Shared home directory
53+
54+
By default, the Slurm appliance configures the control node as an NFS server and exports a directory which is mounted on the other cluster nodes as `/home`. When using Manila + CephFS for the home directory instead, this will need to be disabled. To do this, set the tf var `home_volume_provisioning` to `None`.
55+
56+
The `basic_users_homedir_server_path` home directory will need to be updated to point to this new shared directory.
57+
58+
```yaml
59+
basic_users_homedir_server: "{{ groups['login'] | first }}" # if not mounting /home on control node
60+
basic_users_homedir_server_path: /home
61+
```
62+
63+
Finally, add the home directory to the list of shares (the share should be already created in OpenStack).
64+
65+
```yaml
66+
os_manila_mount_shares:
67+
- share_name: slurm-production-scratch
68+
mount_path: /scratch
69+
- share_name: slurm-production-home
70+
mount_path: /home
71+
```

0 commit comments

Comments
 (0)