Mounting File Storage for Classic on Red Hat Linux
Use these instructions to connect a Red Hat Enterprise Linux®-based IBM Cloud® Compute instance to a Network File System (NFS) share. For more information about how to order IBM Cloud® File Storage for Classic, see the Getting started tutorial.
Before you begin, make sure that the host that is to access the File Storage for Classic volume is authorized. For more information, see Authorizing the host in the console Authorizing the host from the CLIAuthorizing the host with Terraform.
Mounting the File Storage for Classic share
-
Install the required tools.
# dnf install nfs-utils -
Create a directory in your instance.
mkdir /mnt/test -
Obtain the mount point information from the File Storage for Classic Details page in the console, with an API call (
SoftLayer_Network_Storage::getNetworkMountAddress()), or by looking at theibm_storage_fileresource in Terraform. -
Mount the remote share.
# mount -t nfs -o <options> <host:mount_point> /mntExample for
storage_as_a_servicevolumes.#mount -t nfs -o nfsvers=3 fsf-wdc0403a-fz.service.softlayer.com:/IBM02SEV1414935_66/data01 /mntExample for
enterprisevolumes.# mount -t nfs -o nfsvers=3 nfshou0201d-fz.service.softlayer.com:/IBM01SEV1414935_2 /mntIf you're using NFS 4.1, add
sec=systo the mount command to prevent file ownership issues. If you're using NFSv3 or NFS 4.1, add_netdevto wait for the storage to be mounted after all network components are started. For more information about themountcommand and its options, see the mount(8) manual page. -
Verify that the mount was successful by using the disk file system command.
# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda2 25G 1.4G 22G 6% / /tmpfs 1.9G 0 1.9G 0% /dev/shm /dev/xvda1 97M 51M 42M 55% -
Go to the mount point, and read/write files.
# touch /mnt/test # ls -la /mnt total 12 drwxr-xr-x 2 nobody nobody 4096 Sep 8 15:52 . dr-xr-xr-x. 22 root root 4096 Sep 8 14:30 .. -rw-r--r-- 1 nobody nobody 0 Sep 8 15:52 testThe files that are created by root have ownership of
nobody:nobody. To display ownership correctly, theidmapd.confneeds to be updated with the correct domain settings. For more information, see the Implementingno_root_squashfor NFS (optional) section. -
Mount the remote share on start. To complete the setup, edit the file systems table (
/etc/fstab) to add the remote share to the list of entries that are automatically mounted on startup:(hostname):/(username) /mnt nfs_version options 0 0See the following examples.
fsf-wdc0403a-fz.service.softlayer.com:/IBM02SEV1414935_66/data01 /mnt nfs nfsvers=3 0 0 fsf-wdc0403a-fz.service.softlayer.com:/IBM02SEV1414935_66/data01 /mnt nfs options 0 0 fsf-wdc0403a-fz.service.softlayer.com:/IBM02SEV1414935_66/data01 /mnt nfs4 options 0 0 fsf-wdc0403a-fz.service.softlayer.com:/IBM02SEV1414935_66/data01 /mnt nfs _netdev,nfsvers=3 0 0For more information, see An introduction to the Linux
/etc/fstabfile. -
Verify that the configuration file has no errors.
# mount -favIf the command completes with no errors, your setup is complete.
Managing user permissions to the content of the mounted file share
As a system administrator, you can manage the access to data on the mounted file storage volume. After the file share is mounted, you can refine access control by using the chown and chmod commands to assign read,
write, and execute permissions to individual users and groups. For more information, see Red Hat's tutorial: How to manage Linux permissions for users, groups, and others.
Implementing no_root_squash for NFS (optional)
By default, NFS downgrades any files that were created with the root permissions to the nobody user. This security feature prevents privileges from being shared unless they are requested.
Configuring no_root_squash allows root clients to retain root permissions on the remote NFS share.
- For NFSv3, clients don't need to do anything; the
no_root_squashsimply works. - For NFSv4.1, you need to set the nfsv4 domain to:
slnfsv4.comand startrpcidmapd, or a similar service that is used by your OS.
Example
-
From the host, set the domain setting in
/etc/idmapd.conf.#vi /etc/idmapd.conf [General] #Verbosity = 0 #The domain value should be set to the local NFSv4 domain name #The default is the host's DNS domain name. Domain = slnfsv4.com [Mapping] Nobody-User = nobody Nobody-Group = nobody -
Run
nfsidmap -c. -
Start
rpcidmapd.systemctl start rpcidmapd systemctl enable rpcidmapd
Unmounting the file system
To unmount any currently mounted file system on your host, run the umount command with disk name or mount point name.
umount /dev/sdb
umount /mnt