天天看點

NFS相關問題

環境:CentOS 6.5 64bit

在一台用戶端機上執行mount指令挂載nfs,結果報如下錯誤:

<code>mount</code><code>: wrong fs </code><code>type</code><code>, bad option, bad superblock on 192.168.0.10:</code><code>/bak</code><code>,</code>

<code>       </code><code>missing codepage or helper program, or other error</code>

<code>       </code><code>(</code><code>for</code> <code>several filesystems (e.g. nfs, cifs) you might</code>

<code>       </code><code>need a </code><code>/sbin/mount</code><code>.&lt;</code><code>type</code><code>&gt; helper program)</code>

<code>       </code><code>In some cases useful info is found </code><code>in</code> <code>syslog - try</code>

<code>       </code><code>dmesg | </code><code>tail</code>  <code>or so</code>

是因為我的用戶端機器沒有安裝nfs-utils,執行如下指令:

<code>yum -y </code><code>install</code> <code>nfs-utils</code>

之後再挂載,正常。

在用戶端和服務端使用指令:showmount -e 10.10.209.148  報錯

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

解決方法:

被通路的NFS伺服器上的防火牆沒有添加規則,向iptables裡面添加以下檢視的所有端口即可(目前解決的方法,當然你也可以關閉防火牆,不過這樣是比較不安全的,如果你的nfs作用不大,建議你另選别的應用來替代吧!畢竟開那麼多的端口,比較不安全呀!)

#vim /etc/sysconfig/iptables

#service iptables stop  //關閉防火牆

通過#rpcinfo -p 10.10.209.148

[root@rh01 /]# rpcinfo -p 10.10.209.148

program vers proto port service

100000 4 tcp 111 portmapper

100000 3 tcp 111 portmapper

100000 2 tcp 111 portmapper

100000 4 udp 111 portmapper

100000 3 udp 111 portmapper

100000 2 udp 111 portmapper

100024 1 udp 52943 status

100024 1 tcp 37706 status

100011 1 udp 875 rquotad

100011 2 udp 875 rquotad

100011 1 tcp 875 rquotad

100011 2 tcp 875 rquotad

100003 2 tcp 2049 nfs

100003 3 tcp 2049 nfs

100003 4 tcp 2049 nfs

100227 2 tcp 2049 nfs_acl

100227 3 tcp 2049 nfs_acl

100003 2 udp 2049 nfs

100003 3 udp 2049 nfs

100003 4 udp 2049 nfs

100227 2 udp 2049 nfs_acl

100227 3 udp 2049 nfs_acl

100021 1 udp 37438 nlockmgr

100021 3 udp 37438 nlockmgr

100021 4 udp 37438 nlockmgr

100021 1 tcp 46331 nlockmgr

100021 3 tcp 46331 nlockmgr

100021 4 tcp 46331 nlockmgr

100005 1 udp 57177 mountd

100005 1 tcp 43147 mountd

100005 2 udp 49154 mountd

100005 2 tcp 54810 mountd

100005 3 udp 55707 mountd

100005 3 tcp 58309 mountd

2015-3-12

伺服器端安裝yum install nfs-utils

修改nfs共享權限:

NFS服務的配置

隻需要在NFS的主配置檔案/etc/exports中進行設定就行,然後啟動NFS服務。

/nfs/public  192.168.14.0/24(rw,async)  *(ro)——*[注意] 一個共享檔案夾目錄

/home/data/ 10.124.177.249(ro,async,no_root_squash)

NFS的設定選項:

 通路權限選項

 說明

 ro

 設定輸出共享目錄為隻讀

 rw

設定輸出共享目錄為可讀寫 

 使用者映射選項

說明 

 all_squash

 将遠端通路的所有普通使用者及所屬使用者都映射為匿名使用者或使用者組(一般均為nfsnobody)

 no_all_squash

  不将遠端通路的所有普通使用者及所屬使用者都映射為匿名使用者或使用者組(預設設定)

 root_squash

 将root使用者及所屬使用者組都映射為匿名使用者或使用者組(預設設定)

 no_root_squash

 不将root使用者及所屬使用者組都映射為匿名使用者或使用者組

 anonuid=xxx

 将遠端通路的所有使用者都映射為匿名使用者,并指定該匿名使用者賬戶為本地使用者賬戶(UID=xxx)

 anongid=xxx

 将遠端通路的所有使用者組都映射為匿名使用者組賬戶,

并指定該匿名使用者組賬戶為本地使用者組賬戶(GID=xxx)

 其它選項

 secure

 限制用戶端隻能從小于1024的TCP/IP端口連接配接NFS伺服器(預設設定)

 insecure

 允許用戶端從大于1024的TCP/IP端口接連NFS伺服器

 sync

 将資料同步寫入記憶體緩沖區與磁盤中,雖然這樣做效率較低,但可以保證資料的一緻性

 async

 将資料先儲存在記憶體緩沖區,必要時才寫入磁盤

 wdelay

 檢查是否有相關的寫操作,如果有,則将這些寫操作一起執行,這樣可以提高效率(預設設定)

 no_wdelay

 若有寫操作則立即執行,應與sync配合使用

 subtree_check

 若輸出共享目錄是一個子目錄,則NFS伺服器将檢查其父目錄的權限(預設設定)

 no_subtree_check

 即使輸出目錄是一個子目錄,NFS伺服器也不檢查其父目錄的權限,這樣做可提高效率

服務啟動順序:

service rpcbind start

service nfslock  start

service nfs  start

服務停止順序:

service nfslock stop

service nfs stop

service rpcbind stop

2015-12-11

nfs修改共享權限後,使之生效!

service nfs reload

2016-03-02

nfs性能調優

<a href="http://blog.csdn.net/anghlq/article/details/8532312" target="_blank">http://blog.csdn.net/anghlq/article/details/8532312</a>

<a href="http://blog.csdn.net/yangzhongxuan/article/details/7918884" target="_blank">http://blog.csdn.net/yangzhongxuan/article/details/7918884</a>

linux中的NFSD的COPY數目是在/etc/rc.d/init.d/nfs這個啟動檔案中設定的,預設是8個NFSD,對于這個參數的設定一般是要根據可能的CLIENT數目來進行設定的,和WSIZE、RSIZE一樣也是要通過測試來找到最近的數值。

[root@localhost /]# umount /data/

umount.nfs: /data: device is busy

通過這條指令檢視:

[root@localhost /]# fuser -m -v /data/

         使用者 程序号 權限  指令

/data/:  root 2798   ..c.. bash

          root 2996    ..c.. su

如上所示,有兩個程序占用了,将其kill掉,再重新取消挂載。

[root@localhost /]# kill -9 2798

[root@localhost /]# kill -9 2996

[root@localhost /]#

本文轉自 南非波波 51CTO部落格,原文連結:http://blog.51cto.com/nanfeibobo/1603687,如需轉載請自行聯系原作者

繼續閱讀