NFS

From OpenVZ Wiki

Jump to: navigation, search

This page describes how to mount NFS partition inside a container.

Contents

[edit] 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.

[edit] NFS client

[edit] Preparations

[edit] Prerequisites

You will need the following software:

  1. vzctl version 3.0.13 or higher (do vzctl --version)
  2. kernel version 2.6.18-028test006 or higher (2.6.18-028stab* will do), or any recent RHEL5-based or 2.6.20-based kernel.

Note: In all the kernels earlier than 028stab038, kernel NFS support can be given to a container by setting:

     sunrpc.ve_allow_rpc = 1
     fs.nfs.ve_allow_nfs = 1
     kernel.ve_allow_kthreads = 1

This can be done by adding the above lines into /etc/sysctl.conf on the hardware node, and then running sysctl -p.

[edit] Debian Notes

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.

[edit] Prepare the HN

For NFS mounts to work in the containers with the RHEL5-based kernels you must enable kernel threads in the container by setting kernel.ve_allow_kthreads=1 in /etc/sysctl.conf.

# modprobe nfs

You will probably want the nfs module to load automatically on reboots. One way to do this is to put the modprobe command in your /etc/rc.d/rc.local file:

 modprobe nfs

[edit] 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 --features nfs:on, you will need to reboot it.

# vzctl set 101 --features "nfs:on" --save
# vzctl start 101

After this you may see nfs in /proc/filesystems

# vzctl exec 101 cat /proc/filesystems
        ext3
        ext2
nodev   rpc_pipefs
nodev   proc
nodev   nfs
nodev   sysfs
nodev   tmpfs
nodev   devpts

[edit] Mounting NFS

Make sure that packages nfs-utils and nfs-utils-lib or similar are installed in a container.

Assuming that you already have NFS server set up at 192.168.0.1:/nfs_pub, mounting will be simple

# vzctl enter 100
# mkdir /nfs
# mount -t nfs 192.168.0.1:/nfs_pub /nfs
# cat /proc/mounts 
simfs / simfs rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw 0 0
nfs /nfs nfs rw,vers=3,rsize=32768,wsize=32768,hard,proto=tcp,timeo=600,retrans=2,sec=sys,addr=192.168.0.1 0 0

For more details on how to setup NFS mount, see NFS-client HOWTO

[edit] 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.

  • Suspend and migrate operations fail if the VE has NFS partitions mounted [1]

[edit] 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

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)

The cause of this problem is that portmap is not running. Portmat must be running before installing nfs-common.

Just run portmap:

# /etc/init.d/portmap start

Then, install nfs-common:

# apt-get install nfs-common

[edit] See also

Retrieved from "http://wiki.openvz.org/NFS"
Personal tools