In order to ensure any mount is available the usage of /etc/fstab is not enough, what happens if the mount is not accessible at boot time or if the network is down for any reason.
autofs is a service that will monitor any usage of the mount resource and it will try to mount it at that time.
Install package
First install the package, for instance in Ubuntu or any Debian OS:
sudo apt install autofs
Configuration
Suppose we need to mount a CephFS onto /mnt/ceph, we need to edit two files.
First we need to create the mount the /etc/auto.misc adding to the end of the file:
ceph -fstype=ceph,name=admin,secretfile=/etc/ceph/secret,noatime 192.168.1.13,192.168.1.14,192.168.1.15:/docker
Several things are configured here:
- Name:
cephis the name of the element, used later to be mounted at/mnt/cephfolder. - Options (separated by
,character):- file system type:
ceph - Ceph client user name:
admin - Secret file: filename of the client secret, I use
/etc/ceph/secretbut adapt to your settings
- file system type:
- CephFS server settings (separated by
:character):- List of IPs (or hostnames) of the CephFS managers, I use
192.168.1.13,192.168.1.14,192.168.1.15but adapt to your situation - CephFS folder at server side to mount, I use
/dockerbut change it yo your settings
- List of IPs (or hostnames) of the CephFS managers, I use
Then edit /etc/auto.master adding at the end of the file:
/mnt /etc/auto.misc --timeout 60
We configure here:
- Absolute path for the mounts in the next file, I use
/mnt(combined with name in previous file to conform full path of the mount resource at/mnt/ceph) - File with the mounts:
/etc/auto.misc(previous file) - Timeout fot the mount tries, I use
60seconds
Apply changes & test
Just restart autofs service:
sudo service autofs restart
Then just use the folder to mount it, for instance:
ls /mnt/ceph