copyright | lastupdated | keywords | subcollection | content-type | services | account-plan | completion-time | ||
---|---|---|---|---|---|---|---|---|---|
|
2024-07-22 |
File Storage for Classic, NFS, mounting File Storage, mounting storage on Linux, |
FileStorage |
tutorial |
paid |
1h |
{{site.data.keyword.attribute-definition-list}}
{: #mountingLinux} {: toc-content-type="tutorial"} {: toc-services=""} {: toc-completion-time="1h"}
Use these instructions to connect a Red Hat Enterprise Linux®-based {{site.data.keyword.cloud}} Compute instance to a Network File System (NFS) share. For more information about how to order {{site.data.keyword.filestorage_full}}, see the Getting started tutorial. {: shortdesc}
Before you begin, make sure that the host that is to access the {{site.data.keyword.filestorage_short}} volume is authorized. For more information, see Authorizing the host in the console{: ui}Authorizing the host from the CLI{: cli}Authorizing the host with Terraform{: terraform}. {: requirement}
{: #mountRHEL}
-
Install the required tools.
# yum install nfs-utils
{: pre}
-
Create a directory in your instance.
mkdir /mnt/test
{: pre}
-
Mount the remote share.
# mount -t nfs -o <options> <host:mount_point> /mnt
Example for
storage_as_a_service
volumes.#mount -t nfs -o nfsvers=3 fsf-wdc0403a-fz.service.softlayer.com:/IBM02SEV1414935_66/data01 /mnt
Example for
enterprise
volumes.# mount -t nfs -o nfsvers=3 nfshou0201d-fz.service.softlayer.com:/IBM01SEV1414935_2 /mnt
The mount point information can be obtained from the {{site.data.keyword.filestorage_short}} Details page in the console, with an API call -
SoftLayer_Network_Storage::getNetworkMountAddress()
, or by looking at theibm_storage_file
resource in Terraform. {: tip} -
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 test
The files that are created by root have ownership of
nobody:nobody
. To display ownership correctly, theidmapd.conf
needs to be updated with the correct domain settings. For more information, see the Implementingno_root_squash
for NFS (optional) section. {: tip} -
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 0
See 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
-
Verify that the configuration file has no errors.
# mount -fav
{: pre}
If the command completes with no errors, your setup is complete.
If you're using NFS 4.1, add
sec=sys
to the mount command to prevent file ownership issues. {: tip}If your host OS is CentOS, you can configure more options. For more information, see Mounting {{site.data.keyword.filestorage_short}} in CentOS.
{: #norootsquash}
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_squash
simply works. - For NFSv4.1, you need to set the nfsv4 domain to:
slnfsv4.com
and 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 following 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
{: #umountRHEL}
To unmount any currently mounted file system on your host, run the umount
command with disk name or mount point name.
umount /dev/sdb
{: pre}
umount /mnt
{: pre}