Pages

Monday, 29 October 2012

自动挂载NFS、CIFS

系统重启后常常出现nfs没有被挂载,不管是配置在/etc/fstab里,还是将挂载命令写在/etc/rc.local里。
总是有原因的,可是我不能反复的重启系统试验,于是不得不绕过这个问题,于是想到了autofs。
参考:http://doc.chinahtml.com/Manual/rhl-cg-zh_CN-9/s1-nfs-mount.html
比如我有两个目录需要挂载远程的nfs:
/srv/data1
/srv/data2
对应的远程的nfs:
192.168.1.200:/srv/data1
192.168.1.201:/srv/data2
那么,我需要在 /etc/auto.master里添加这么一行:
/srv                /etc/auto.nfs.srv
然后建立 /etc/auto.nfs.srv,写入如下两行:
data1    -rw,nolock,noatime      192.168.1.200:/srv/data1
data2    -rw,nolock,noatime      192.168.1.201:/srv/data2
但是需要说明的是:
1. 我的系统是CentOS 5.3
2. 需要将autofs设置成开机自动启动:chkconfig autofs on,并启动autofs服务:/etc/init.d/autofs start
3. 使用autofs时,本地的/srv目录下面应该是空的,就是说data1目录和data2目录也不存在。当系统试图访问/srv/data1这个目录时 autod daemon会自挂载nfs到/srv/data1目录,那时/srv下原来的存在的所有目录、文件将不能被访问。
那么也捎带着自动挂载一下windows的共享吧:
在/etc/auto.master里加入下面一行:
/mnt/smb                        /etc/auto.smb.mnt
在/etc/auto.smb.mnt时加入下面一行:
editors  -fstype=cifs,username=editors,password=xxxxxx  ://192.168.0.61/editors
需要说明的是,这里的//192.168.0.61前面的冒号,是不能省的。
-----------------

配置NFS


yum install nfs nfs-utils rpcbind
service rpcbind start
chckonfig rpcbind on

cat "/shared_dir 192.168.1.200(rw,async,all_squash,anonuid=500,anongid=500)" > /etc/exports
參數參數功能預設參數
fg
bg
當執行掛載時,該掛載的行為會在前景 (fg) 還是在背景 (bg) 執行? 若在前景執行時,則 mount 會持續嘗試掛載,直到成功或 time out 為止,若為背景執行, 則 mount 會在背景持續多次進行 mount ,而不會影響到前景的程序操作。 如果你的網路連線有點不穩定,或是伺服器常常需要開關機,那建議使用 bg 比較妥當。fg
soft
hard
如果是 hard 的情況,則當兩者之間有任何一部主機離線,則 RPC 會持續的呼叫,直到對方恢復連線為止。如果是 soft 的話,那 RPC 會在 time out 後『重複』呼叫,而非『持續』呼叫, 因此系統的延遲會比較不這麼明顯。同上,如果你的伺服器可能開開關關,建議用 soft 喔!hard
intr當你使用上頭提到的 hard 方式掛載時,若加上 intr 這個參數, 則當 RPC 持續呼叫中,該次的呼叫是可以被中斷的 (interrupted)。沒有
rsize
wsize
讀出(rsize)與寫入(wsize)的區塊大小 (block size)。 這個設定值可以影響用戶端與伺服器端傳輸資料的緩衝記憶容量。一般來說, 如果在區域網路內 (LAN) ,並且用戶端與伺服器端都具有足夠的記憶體,那這個值可以設定大一點, 比如說 32768 (bytes) 等,提升緩衝記憶區塊將可提升 NFS 檔案系統的傳輸能力! 但要注意設定的值也不要太大,最好是達到網路能夠傳輸的最大值為限。rsize=1024
wsize=1024
mount -t nfs -o bg,soft,rsize=32768,wsize=32768 192.168.1.100:/shared_dir /mount_point
Mac系统下挂载NFS有一点特别,需要加几个参数
不加resvport在mac下会挂载不了,不加nolockd的话给文件加锁的时候会提示nfs server lockd not responding
mount -t nfs -o resvport,rw,nolockd 192.168.1.100:/www /www