<p>EDITED:
I've an OpenShift cluster with one master and two nodes. I've installed NFS on the master and NFS client on the nodes.
I've followed the wordpress example with NFS: <a href="https://github.com/openshift/origin/tree/master/examples/wordpress" rel="nofollow">https://github.com/openshift/origin/tree/master/examples/wordpress</a></p>

<p>I did the following on my master as: oc login -u system:admin:</p>

<pre><code>mkdir /home/data/pv0001
mkdir /home/data/pv0002

chown -R nfsnobody:nfsnobody /home/data

chmod -R 777 /home/data/

# Add to /etc/exports
/home/data/pv0001 *(rw,sync,no_root_squash)
/home/data/pv0002 *(rw,sync,no_root_squash)

# Enable the new exports without bouncing the NFS service
exportfs -a
</code></pre>

<p>So exportfs shows: </p>

<pre><code>/home/data/pv0001
        &lt;world&gt;
/home/data/pv0002
        &lt;world&gt;

$ setsebool -P virt_use_nfs 1


# Create the persistent volumes for NFS.
# I did not change anything in the yaml-files
$ oc create -f examples/wordpress/nfs/pv-1.yaml
$ oc create -f examples/wordpress/nfs/pv-2.yaml
$ oc get pv

NAME      LABELS    CAPACITY     ACCESSMODES   STATUS      CLAIM     REASON
pv0001    &lt;none&gt;    1073741824   RWO,RWX       Available             
pv0002    &lt;none&gt;    5368709120   RWO           Available    
</code></pre>

<p>This is also what I get.
Than I'm going to my node:</p>

<pre><code>oc login
test-admin
</code></pre>

<p>And I create a wordpress project:</p>

<pre><code>oc new-project wordpress

# Create claims for storage in my project (same namespace).
# The claims in this example carefully match the volumes created above.
$ oc create -f examples/wordpress/pvc-wp.yaml 
$ oc create -f examples/wordpress/pvc-mysql.yaml
$ oc get pvc

NAME          LABELS    STATUS    VOLUME
claim-mysql   map[]     Bound     pv0002
claim-wp      map[]     Bound     pv0001
</code></pre>

<p>This looks exactly the same for me.</p>

<p>Launch the MySQL pod.</p>

<pre><code>oc create -f examples/wordpress/pod-mysql.yaml
oc create -f examples/wordpress/service-mysql.yaml
oc create -f examples/wordpress/pod-wordpress.yaml
oc create -f examples/wordpress/service-wp.yaml

oc get svc
NAME            LABELS                                    SELECTOR         IP(S)            PORT(S)
mysql           name=mysql                                name=mysql       172.30.115.137   3306/TCP
wpfrontend      name=wpfrontend                           name=wordpress   172.30.170.55    5055/TCP
</code></pre>

<p>So actually everyting seemed to work! But when I'm asking for my pod status I get the following:</p>

<pre><code>[root@ip-10-0-0-104 pv0002]# oc get pod
NAME        READY     STATUS                                                              RESTARTS   AGE
mysql       0/1       Image: openshift/mysql-55-centos7 is ready, container is creating   0          6h
wordpress   0/1       Image: wordpress is not ready on the node                           0          6h
</code></pre>

<p>The pods are in pending state and in the webconsole they're giving the following error:</p>

<pre><code>12:12:51 PM     mysql   Pod     failedMount     Unable to mount volumes for pod "mysql_wordpress": exit status 32 (607 times in the last hour, 41 minutes)
12:12:51 PM     mysql   Pod     failedSync  Error syncing pod, skipping: exit status 32 (607 times in the last hour, 41 minutes)
12:12:48 PM     wordpress   Pod     failedMount     Unable to mount volumes for pod "wordpress_wordpress": exit status 32 (604 times in the last hour, 40 minutes)
12:12:48 PM     wordpress   Pod     failedSync  Error syncing pod, skipping: exit status 32 (604 times in the last hour, 40 minutes)
</code></pre>

<p>Unable to mount +timeout. But when I'm going to my node and I'm doing the following (test is a created directory on my node):</p>

<pre><code>mount -t nfs -v masterhostname:/home/data/pv0002 /test
</code></pre>

<p>And I place some file in my /test on my node than it appears in my /home/data/pv0002 on my master so that seems to work.
What's the reason that it's unable to mount in OpenShift?
I've been stuck on this for a while.</p>

<p>LOGS:</p>

<pre><code>Oct 21 10:44:52 ip-10-0-0-129 docker: time="2015-10-21T10:44:52.795267904Z" level=info msg="GET /containers/json"
Oct 21 10:44:52 ip-10-0-0-129 origin-node: E1021 10:44:52.832179    1148 mount_linux.go:103] Mount failed: exit status 32
Oct 21 10:44:52 ip-10-0-0-129 origin-node: Mounting arguments: localhost:/home/data/pv0002 /var/lib/origin/openshift.local.volumes/pods/2bf19fe9-77ce-11e5-9122-02463424c049/volumes/kubernetes.io~nfs/pv0002 nfs []
Oct 21 10:44:52 ip-10-0-0-129 origin-node: Output: mount.nfs: access denied by server while mounting localhost:/home/data/pv0002
Oct 21 10:44:52 ip-10-0-0-129 origin-node: E1021 10:44:52.832279    1148 kubelet.go:1206] Unable to mount volumes for pod "mysql_wordpress": exit status 32; skipping pod
Oct 21 10:44:52 ip-10-0-0-129 docker: time="2015-10-21T10:44:52.832794476Z" level=info msg="GET /containers/json?all=1"
Oct 21 10:44:52 ip-10-0-0-129 docker: time="2015-10-21T10:44:52.835916304Z" level=info msg="GET /images/openshift/mysql-55-centos7/json"
Oct 21 10:44:52 ip-10-0-0-129 origin-node: E1021 10:44:52.837085    1148 pod_workers.go:111] Error syncing pod 2bf19fe9-77ce-11e5-9122-02463424c049, skipping: exit status 32
</code></pre>

<p>Logs showed <code>Oct 21 10:44:52 ip-10-0-0-129 origin-node: Output: mount.nfs: access denied by server while mounting localhost:/home/data/pv0002</code></p>

<p>So it failed mounting on localhost. 
to create my persistent volume I've executed this yaml:</p>

<pre><code>{
  "apiVersion": "v1",
  "kind": "PersistentVolume",
  "metadata": {
    "name": "registry-volume"
  },
  "spec": {
    "capacity": {
        "storage": "20Gi"
        },
    "accessModes": [ "ReadWriteMany" ],
    "nfs": {
        "path": "/home/data/pv0002",
        "server": "localhost"
    }
  }
}
</code></pre>

<p>So I was mounting to <code>/home/data/pv0002</code> but this path was not on the localhost but on my master server (which is <code>ose3-master.example.com</code>. So I created my PV in a wrong way.</p>

<pre><code>{
  "apiVersion": "v1",
  "kind": "PersistentVolume",
  "metadata": {
    "name": "registry-volume"
  },
  "spec": {
    "capacity": {
        "storage": "20Gi"
        },
    "accessModes": [ "ReadWriteMany" ],
    "nfs": {
        "path": "/home/data/pv0002",
        "server": "ose3-master.example.com"
    }
  }
}
</code></pre>

<p>This was also in a training environment. It's recommended to have a NFS server outside of your cluster to mount to.</p>
