65 lines
1.9 KiB
Markdown
65 lines
1.9 KiB
Markdown
For the [tutorial](https://github.com/OpenCHAMI/tutorial-2025), we served images via HTTP with a local S3 bucket using MinIO and an OCI registry. We could instead serve our images by network mounting the directories that hold our images with NFS. We can spin up a NFS server on the head node by including NFS tools in our base image and configure our nodes to mount the images.
|
||
|
||
Configure NFS to serve your SquashFS `nfsroot` with as much performance as possible.
|
||
|
||
```bash
|
||
sudo mkdir -p /opt/nfsroot && sudo chown rocky /opt/nfsroot
|
||
```
|
||
|
||
Create a file at path `/etc/exports` and copy the following contents to export the `/opt/nfsroot` directory for use by our compute nodes.
|
||
|
||
```bash
|
||
/opt/nfsroot *(ro,no_root_squash,no_subtree_check,noatime,async,fsid=0)
|
||
```
|
||
|
||
Reload the NFS daemon to apply the changes.
|
||
|
||
```bash
|
||
modprobe -r nfsd && modprobe nfsd
|
||
```
|
||
|
||
For NFS, we need to update the /etc/exports file and then reload the kernel nfs daemon
|
||
|
||
Create `/opt/nfsroot` to serve our images
|
||
|
||
```bash
|
||
sudo mkdir /srv/nfs
|
||
sudo chown rocky: /srv/nfs
|
||
```
|
||
|
||
- Create the `/etc/exports` file with the following contents to export the `/srv/nfs` directory for use by our compute nodes
|
||
```bash
|
||
/srv/nfs *(ro,no_root_squash,no_subtree_check,noatime,async,fsid=0)
|
||
```
|
||
|
||
- Reload the nfs daemon
|
||
```bash
|
||
sudo modprobe -r nfsd && sudo modprobe nfsd
|
||
```
|
||
|
||
### Webserver for Boot Artifacts
|
||
|
||
We expose our NFS directory over https as well to make it easy to serve boot artifacts.
|
||
|
||
```yaml
|
||
# nginx.container
|
||
[Unit]
|
||
Description=Serve /srv/nfs over HTTP
|
||
After=network-online.target
|
||
Wants=network-online.target
|
||
|
||
[Container]
|
||
ContainerName=nginx
|
||
Image=docker.io/library/nginx:1.28-alpine
|
||
Volume=/srv/nfs:/usr/share/nginx/html:Z
|
||
PublishPort=80:80
|
||
|
||
[Service]
|
||
TimeoutStartSec=0
|
||
Restart=always
|
||
```
|
||
|
||
### Import Images from OCI to Share with NFS
|
||
|
||
[Import-image Script](https://github.com/OpenCHAMI/image-builder/blob/main/scripts/image-import.sh)
|
||
|