Open main menu

OpenVZ Virtuozzo Containers Wiki β

Editing NFS server inside container

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:
 
There are two ways to setup NFS server on common [[HN]]:
 
There are two ways to setup NFS server on common [[HN]]:
 
use a user-space NFS server daemon or use an in-kernel implementation
 
use a user-space NFS server daemon or use an in-kernel implementation
of NFS server.
+
of NFS server. Some peculiarities appear if you intend to run NFS server
 +
in [[container]].
  
 
{{Note|for information about NFS client inside container, see [[NFS]].}}
 
{{Note|for information about NFS client inside container, see [[NFS]].}}
  
 
== Kernel NFS server ==
 
== Kernel NFS server ==
 
+
Binary RPMs that are provided by OpenVZ community contain kernels compiled
Kernel-space NFS server is supported by latest RHEL5 and RHEL6 based kernels and since vzctl-3.0.24.
+
without NFS server support. Thus you have to
 
+
[[Kernel build|recompile the kernel]] with <code>CONFIG_NFSD=m</code>. After booting in this kernel you'll be able
NB! Currently only NFSv3 is supported - no NFSv4 support yet.
+
to use NFS server on [[HN]].
 
+
In-kernel NFS server runs kernel threads to service requests of clients.
=== Prerequisites ===
+
But for security reasons kernel threads are prohibited in [[container]]s! So you won't
In order to run an NFS server inside a container, make sure:
+
be able to run NFS server inside [[container]] without patching the kernel.
* '''nfsd kernel module is loaded on host system before starting a container'''
 
* '''nfsd feature for a container is turned on''' (<code>vzctl set $CTID --feature nfsd:on --save</code>)
 
 
 
=== Setup ===
 
* Make sure that rpcbind service is started before nfs service:
 
: <code>chkconfig rpcbind on && service rpcbind start</code>
 
* Disable NFSv4 and nfsd module loading warnings in /etc/sysconfig/nfs by uncommenting the following lines:
 
MOUNTD_NFS_V3="yes"
 
RPCNFSDARGS="-N 4"
 
NFSD_MODULE="noload"
 
* Start NFS service:
 
: <code>chkconfig nfs on && service nfs start</code>
 
 
 
=== Troubleshooting ===
 
 
 
Make sure that:
 
# you have enabled nfsd feature for your container
 
# nfsd kernel module is loaded before you started the container
 
 
 
==== rpcbind ====
 
 
 
If you see this:
 
<pre>
 
# service nfs start
 
...
 
Starting NFS services:                                    [ OK  ]
 
Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno = Connection refused
 
rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).
 
</pre>
 
 
 
It means you haven't started rpcbind service. Solution:
 
<pre>chkconfig rpcbind on && service rpcbind start</pre>
 
 
 
==== nfsd module ====
 
If you see this:
 
<pre>
 
# service nfs start
 
....
 
Starting NFS daemon: rpc.nfsd: Unable to access /proc/fs/nfsd errno 2 (No such file or directory).
 
Please try, as root, 'mount -t nfsd nfsd /proc/fs/nfsd' and then restart rpc.nfsd to correct the problem
 
                                                          [FAILED]
 
# mount -t nfsd nfsd /proc/fs/nfsd
 
mount: unknown filesystem type 'nfsd'
 
</pre>
 
 
 
It means you haven't loaded nfsd kernel module on host before starting container.
 
 
 
==== warnings ====
 
 
 
If you see this:
 
<pre>
 
# /etc/init.d/nfs start
 
FATAL: Module nfsd not found.
 
FATAL: Error running install command for nfsd
 
...
 
</pre>
 
 
 
It is actually harmless, you don't need to do anything. In case you want this to go away, uncomment (or add) the line
 
 
 
NFSD_MODULE="noload"
 
 
 
in <code>/etc/sysconfig/nfs</code> file.
 
  
 
== User-space NFS server ==
 
== User-space NFS server ==
Line 105: Line 44:
  
 
The current stable debian version 5.0 (lenny) provides two packages for user space nfs support: <code>nfs-user-server</code> and <code>unfs3</code>. Here i describe my experiences with them --[[User:Strimo|Strimo]] 17:47, 16 February 2009 (UTC)
 
The current stable debian version 5.0 (lenny) provides two packages for user space nfs support: <code>nfs-user-server</code> and <code>unfs3</code>. Here i describe my experiences with them --[[User:Strimo|Strimo]] 17:47, 16 February 2009 (UTC)
 
It seems that also the unfs3 package has been removed from the debian repositories. --[[Special:Contributions/95.21.175.189|95.21.175.189]] 23:39, 30 July 2011 (UTC)
 
  
 
==== nfs-user-server ====
 
==== nfs-user-server ====
 
IMPORTANT : read http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=515957 , nfs-user-server was removed
 
  
 
<pre>
 
<pre>
Line 135: Line 70:
  
 
Works fine until now. Note that both unfs3 and nfs-user-server do not support file locking!
 
Works fine until now. Note that both unfs3 and nfs-user-server do not support file locking!
NOTE: I tested on centos 5.6 using unfs3 and I had to run the /etc/init.d/nfs service and see it work before I could use unfs. also use exports -a before using  sudo /usr/sbin/unfsd -T -e /etc/exports
 
 
=== On CentOS 5 ===
 
 
If you are running RedHat/CentOS, you can [http://dag.wieers.com/rpm/packages/unfs3/ get unfs3 from the DAG repository]
 
  
 
== External links ==
 
== External links ==

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)

Template used on this page: