天天看點

Linux系統搭建NFS并共享給AIX一、       NFS介紹 二、       NFS程序 三、       安裝NFS 四、       啟動NFS 五、       檢視通過NFS的傳輸性能 六、       挂載NFS 七、       解除安裝

NFS 是Network FileSystem的縮寫,即網絡檔案系統。一種使用于分散式檔案系統的協定,由Sun公司開發,于1984年向外公布。功能是通過網絡讓不同的機器、不同的作業系統能夠彼此分享個别的資料,讓應用程式在用戶端通過網絡通路位于伺服器磁盤中的資料,是在類Unix系統間實作磁盤檔案共享的一種方法。

  NFS 的基本原則是“容許不同的用戶端及服務端通過一組RPC分享相同的檔案系統”,它是獨立于作業系統,容許不同硬體及作業系統的系統共同進行檔案的分享。

  NFS在檔案傳送或資訊傳送過程中依賴于RPC協定。RPC,遠端過程調用 (RemoteProcedure Call) 是能使用戶端執行其他系統中程式的一種機制。NFS本身是沒有提供資訊傳輸的協定和功能的,但NFS卻能讓我們通過網絡進行資料的分享,這是因為NFS使用了一些其它的傳輸協定。而這些傳輸協定用到這個RPC功能的。可以說NFS本身就是使用RPC的一個程式。或者說NFS也是一個RPC SERVER。是以隻要用到NFS的地方都要啟動RPC服務,不論是NFS SERVER或者NFS CLIENT。這樣SERVER和CLIENT才能通過RPC來實作PROGRAM PORT的對應。可以這麼了解RPC和NFS的關系:NFS是一個檔案系統,而RPC是負責負責資訊的傳輸。

nfsd:它是基本的NFS守護程序,主要功能是管理用戶端是否能夠登入伺服器;

    mountd:它是RPC安裝守護程序,主要功能是管理NFS的檔案系統。當用戶端順利通過nfsd登入NFS伺服器後,在使用NFS服務所提供的檔案前,還必須通過檔案使用權限的驗證。它會讀取NFS的配置檔案/etc/exports來對比用戶端權限。

    portmap/rpcbind:主要功能是進行端口映射工作。當用戶端嘗試連接配接并使用RPC伺服器提供的服務(如NFS服務)時,portmap會将所管理的與服務對應的端口提供給用戶端,進而使客戶可以通過該端口向伺服器請求服務。

rpm –qa| grep nfs

rpm -qa| grep rpcbind

在CentOS,原來的portmap改成了rpcbind。如果這兩個軟體沒有安裝,就要下載下傳對應的rpm包進行安裝(當然也可以用yum等其他安裝方式)

預設情況下,nfs通過2049端口通信,portmap或者rpcbind通過111端口通信。

cat/etc/services | grep nfs

nfs             2049/tcp        nfsd shilp      # Network File System

nfs             2049/udp        nfsd shilp      # Network File System

nfs             2049/sctp       nfsd shilp      # Network File System

cat/etc/services | grep rpcbind

sunrpc          111/tcp         portmapper rpcbind     #RPC 4.0 portmapper TCP

sunrpc          111/udp         portmapper rpcbind      # RPC 4.0 portmapper

     另外,要固定mount服務的端口為976

cat>> /etc/services

mountd 976/udp

mountd 976/tcp

servicenfs restart

将源機器和目标機器的IP和上述端口放通。關閉防火牆對這些端口的屏蔽。

    vim /etc/exports

/home/bapogg 10.249.13.0/24(rw,no_root_squash,async)

servicenfs start

servicerpcbind start

servicenfs status

rpc.svcgssd isstopped

rpc.mountd (pid8451) is running...

nfsd (pid 84488447 8446 8445 8444 8443 8442 8441) is running...

rpc.rquotad (pid8435) is running...

servicerpcbind status

rpcbind (pid  1541) is running...

通過拷貝一個大檔案,看拷貝完需要多長時間。大小/時間=速率。

stopsrc-g nfs

0513-044 The biodSubsystem was requested to stop.

0513-044 The nfsdSubsystem was requested to stop.

0513-044 Therpc.lockd Subsystem was requested to stop.

0513-044 Therpc.statd Subsystem was requested to stop.

stopsrc-s portmap

0513-044 Theportmap Subsystem was requested to stop.

startsrc-s portmap

0513-059 Theportmap Subsystem has been started. Subsystem PID is 156104.

startsrc-g nfs

0513-059 The biodSubsystem has been started. Subsystem PID is 397708.

0513-059 The nfsdSubsystem has been started. Subsystem PID is 352796.

0513-059 Therpc.mountd Subsystem has been started. Subsystem PID is 360828.

0513-059 Thenfsrgyd Subsystem has been started. Subsystem PID is 369402.

0513-059 The gssdSubsystem has been started. Subsystem PID is 360830.

0513-059 Therpc.lockd Subsystem has been started. Subsystem PID is 369404.

mount 10.249.60.65:/home/bapogg/ogg/test_nfs

也要做一些用戶端的必要的設定,在此略過。

mount-t nfs 10.249.60.65:/home/bapogg /ogg/test_nfs

unmount /ogg/test_nfs

    如果報這類錯誤:umount: 1831-01516 error while unmounting 10.249.60.65:/home/bapogg - The requested resource isbusy.

就用fuser -k/ogg/test_nfs 把占用的程序殺掉。當然不那麼粗暴的方式是fuser/ogg/test_nfs看哪些程序占用這個檔案系統。

本文轉自 Mr_sheng 51CTO部落格,原文連結:http://blog.51cto.com/sf1314/2056983

繼續閱讀