Latest revision |
Your text |
Line 1: |
Line 1: |
− | This page describes how to use '''NFS client''' inside a container. | + | This page describes howto mount NFS partition inside VPS |
| | | |
− | {{Note|see [[NFS server inside container]] for info about nfsd.
| + | = NFS server = |
− | | + | Currently OpenVZ kernel doesn't include kernel NFS server support. Howether you are still able to use user space [[NFS server inside VE]]. |
− | Mounting filesystems from the '''hardware node''' can be performed more elegantly using [[Bind mounts]].}}
| |
| | | |
| + | = NFS client = |
| == Preparations == | | == Preparations == |
− | === Prerequisites === | + | === Software === |
| You will need the following software: | | You will need the following software: |
| + | # [http://download.openvz.org/kernel/devel/ kernel] version 028test006 or higher |
| + | # [http://download.openvz.org/utils/vzctl/ vzctl] version 3.0.13 or higher |
| | | |
− | # vzctl version 3.0.13 or higher (do <code>vzctl --version</code>)
| + | === Prepare the VE === |
− | # 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.
| + | To allow VE use NFS filesystem you will need to start it fith "nfs" feature enabled. |
− | | + | <pre> |
− | Note: In all the kernels earlier than 028stab038, kernel NFS support can be given to a container by setting:
| + | # vzctl set 100 --features "nfs:on" --save |
− | | + | # vzctl start 101 |
− | sunrpc.ve_allow_rpc = 1
| + | </pre> |
− | 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 <code>sysctl -p</code>.
| |
− | | |
− | === 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 <code>kernel.ve_allow_kthreads=1</code> in <code>/etc/sysctl.conf</code>.
| |
− | | |
− | RHEL7-based kernels support [https://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-nfs.html three different NFS protocol versions]:
| |
− | {{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.
| |
− | | |
− | # 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
| |
− | | |
− | Alternatively, you can add a new line with <code>nfs</code> to your /etc/modules or /etc/modules.conf file.
| |
− | | |
− | === 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. | |
− | | |
− | # vzctl set 101 --features "nfs:on" --save
| |
− | # vzctl start 101
| |
| | | |
| After this you may see nfs in <code>/proc/filesystems</code> | | After this you may see nfs in <code>/proc/filesystems</code> |
Line 62: |
Line 32: |
| | | |
| == 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.
| + | 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 | |
| <pre> | | <pre> |
| # vzctl enter 100 | | # vzctl enter 100 |
Line 77: |
Line 45: |
| </pre> | | </pre> |
| | | |
− | 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.htm NFS-client HOWTO] |
− | | |
− | == 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]].
| |
− | * Package nfs-common can not be installed. Make sure you start <code>portmap</code> before trying to install nfs-common.
| |
− | ** 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.
| |
− | | |
− | == See also ==
| |
− | * [http://nfs.sourceforge.net/nfs-howto/ar01s04.html NFS-client HOWTO]
| |
| | | |
| [[Category: HOWTO]] | | [[Category: HOWTO]] |