Editing NFS

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
This page describes how to use '''NFS client''' inside a container.
+
This page describes how to mount NFS partition inside a container.
  
{{Note|see [[NFS server inside container]] for info about nfsd.
+
== NFS server ==
 +
Currently OpenVZ kernel doesn't include kernel NFS server support. However you are still able to use user space [[NFS server inside container]].
 +
If your OpenVZ-patched kernel has NFS kernel support compiled in (this is the case with Debian's 2.6.26 kernel, for example), you can export filesystems on the HN by usual means, just keep in mind that exporting a container's `root` will most probably not work (it can hang at mount attempt and produce symptoms as described below) - export `private` instead.
  
Mounting filesystems from the '''hardware node''' can be performed more elegantly using [[Bind mounts]].}}
+
== NFS client ==
 
+
=== Preparations ===
== Preparations ==
+
==== Prerequisites ====
=== Prerequisites ===
 
 
You will need the following software:
 
You will need the following software:
  
Line 20: Line 21:
 
This can be done by adding the above lines into /etc/sysctl.conf on the hardware node, and then running <code>sysctl -p</code>.
 
This can be done by adding the above lines into /etc/sysctl.conf on the hardware node, and then running <code>sysctl -p</code>.
  
=== Prepare the HN ===
+
===== Debian Notes =====
  
For NFS mounts to work in the containers with the RHEL5-based kernels you must enable kernel threads in the container by setting <code>kernel.ve_allow_kthreads=1</code> in <code>/etc/sysctl.conf</code>.
+
Debian Etch still uses vzctl version 3.0.11 and so NFS client support is not yet available. Lenny presently has version 3.0.18.
  
RHEL7-based kernels support [https://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-nfs.html three different NFS protocol versions]:
+
==== Prepare the HN ====
{{Quote|
 
NFS version 2 (NFSv2) is older and is widely supported.
 
NFS version 3 (NFSv3) has more features, including 64bit file handles, Safe Async writes and more robust error handling.
 
NFS version 4 (NFSv4) works through firewalls and on the Internet, no longer requires portmapper, supports ACLs, and utilizes stateful operations.
 
Red Hat Enterprise Linux supports NFSv2, NFSv3, and NFSv4 clients, and when mounting a file system via NFS, Red Hat Enterprise Linux uses NFSv3 by default, if the server supports it.
 
}}
 
  
Accordingly, there are three kernel modules: <code>nfs</code> (for NFSv2), <code>nfsv3</code>, and <code>nfsv4</code>. As [[NFS server inside container]] currently only supports NFSv3, it's very likely that you'll need to load <code>nfsv3</code> module for clients.
+
For NFS mounts to work in the containers with the RHEL5-based kernels you must enable kernel threads in the container by setting <code>kernel.ve_allow_kthreads=1</code> in <code>/etc/sysctl.conf</code>.
  
 
  # modprobe nfs
 
  # modprobe nfs
Line 40: Line 35:
 
   modprobe nfs
 
   modprobe nfs
  
Alternatively, you can add a new line with <code>nfs</code> to your /etc/modules or /etc/modules.conf file.
+
==== Prepare the container ====
 
 
=== Prepare the container ===
 
 
To allow a container to use NFS filesystem, you will need to start it with "nfs" feature enabled. If the container is running while you set the <code>--features nfs:on</code>, you will need to reboot it.
 
To allow a container to use NFS filesystem, you will need to start it with "nfs" feature enabled. If the container is running while you set the <code>--features nfs:on</code>, you will need to reboot it.
  
Line 61: Line 54:
 
</pre>
 
</pre>
  
== Mounting NFS ==
+
=== Mounting NFS ===
Make sure that packages <code>nfs-utils</code> and <code>nfs-utils-lib</code> or similar are installed in a container.  Also make sure that the <code>portmap</code> (or <code>rpcbind</code>) service is started, otherwise the mount with default options will fail and require the <code>-nolock</code> option.  See the [[NFS#Known issues|known issues]] for more information.
+
Make sure that packages <code>nfs-utils</code> and <code>nfs-utils-lib</code> or similar are installed in a container.
  
 
Assuming that you already have NFS server set up at <code>192.168.0.1:/nfs_pub</code>, mounting will be simple
 
Assuming that you already have NFS server set up at <code>192.168.0.1:/nfs_pub</code>, mounting will be simple
Line 79: Line 72:
 
For more details on how to setup NFS mount, see [http://nfs.sourceforge.net/nfs-howto/ar01s04.html NFS-client HOWTO]
 
For more details on how to setup NFS mount, see [http://nfs.sourceforge.net/nfs-howto/ar01s04.html NFS-client HOWTO]
  
== Known issues ==
+
=== Known issues ===
* There are quite a few parameters in NFS, so sometimes it doesn't work due to misconfiguration. We've created a separate page describing such situations: [[NFS doesn't work]].
+
* There are quite a few parameters in NFS, so sometimes it doesn't work due to misconfiguration. We've created a separate
* Package nfs-common can not be installed. Make sure you start <code>portmap</code> before trying to install nfs-common.
+
page describing such situations: [[NFS doesn't work]].
** For Ubuntu/Debian OpenVZ containers, the <code>portmap/rpcbind</code> service may not start automatically. However, you can enable it by editing the <code>/etc/default/nfs-common</code> configuration file.
+
* Suspend and migrate operations fail if the VE has NFS partitions mounted [http://bugzilla.openvz.org/show_bug.cgi?id=616]
 +
 
 +
== ISSUE: can't install nfs-common on ubuntu VE ==
 +
 
 +
Host machine is ubuntu server 8.0.4 , VE container is ubuntu from openvz template repo.
 +
 
 +
Despite following all of the above directives, I am unable to get nfs-common to install on the VE (installs fine on the host machine).
 +
 
 +
Here is output ''(from inside VE)'' when I try to install nfs-common
 +
 
 +
<pre>
 +
root@clinton:/# apt-get install nfs-common
 +
Reading package lists... Done
 +
Building dependency tree     
 +
Reading state information... Done
 +
nfs-common is already the newest version.
 +
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
 +
1 not fully installed or removed.
 +
After this operation, 0B of additional disk space will be used.
 +
Setting up nfs-common (1:1.1.2-2ubuntu2.2) ...
 +
* Starting NFS common utilities                                                                                                                        [fail]
 +
invoke-rc.d: initscript nfs-common, action "start" failed.
 +
dpkg: error processing nfs-common (--configure):
 +
subprocess post-installation script returned error exit status 1
 +
Errors were encountered while processing:
 +
nfs-common
 +
E: Sub-process /usr/bin/dpkg returned an error code (1)
 +
</pre>
 +
 
 +
The cause of this problem is that portmap is not running. Portmap must be running before installing nfs-common. On CentOS 5 (and possible other versions) both the netfs and portmap startup scripts need to be running.
 +
 
 +
Just run portmap:
 +
 
 +
# /etc/init.d/portmap start
 +
 
 +
Then, install nfs-common:
 +
 
 +
# apt-get install nfs-common
  
 
== See also ==
 
== See also ==
 
* [http://nfs.sourceforge.net/nfs-howto/ar01s04.html NFS-client HOWTO]
 
* [http://nfs.sourceforge.net/nfs-howto/ar01s04.html NFS-client HOWTO]
 
 
[[Category: HOWTO]]
 
[[Category: HOWTO]]

Please note that all contributions to OpenVZ Virtuozzo Containers Wiki may be edited, altered, or removed by other contributors. If you don't want your writing to be edited mercilessly, then don't submit it here.
If you are going to add external links to an article, read the External links policy first!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)

Templates used on this page:

Retrieved from "https://wiki.openvz.org/NFS"