NFS是Network FileSystem,基於RPC(Remote Procedure CallProtocol遠程過程調用協議)實現。NFS是TCP/IP協議集所提供的一種子協議,該協議可以實現LINUX/UNIX主機之間的文件共享,磁盤空間共享。它只用於Linux和Unix內核的操作系統進行共享。使用NFS網絡文件系統,可以將服務器的硬盤掛載到本地,就像操作本地計算機的硬盤一樣。 NFS是基於UDP/IP協議的應用,其實現主要是採用遠程過程調用RPC機制,RPC提供了一組與機器、操作系統以及低層傳送協議無關的存取遠程文件的操作。 RPC採用了XDR的支持。XDR是一種與機器無關的數據描述編碼的協議,他以獨立與任意機器體系結構的格式對網上傳送的數據進行編碼和解碼,支持在異構系統之間數據的傳送。
安裝服務器端: 1.安裝命令:yum install nfs-utils rpcbind nfs-utils 提供了NFS服務器程序和相應的管理工具。 rpcbind 是一個管理RPC連接的程序,rpcbind服務是NFS的動態端口分配守護進程,如果rpcbind服務不啓動,NFS就啓動不了的。 2.配置NFS服務端,編輯/etc/exports文件: vim /etc/exports 設置共享目錄,例如: /home/nfsdir *(rw) #表示共享/home/nfsdir目錄,所有用戶都有讀寫權限。 /home/share 192.168.0.100(rw,no_root_squash) *(ro) #
表示共享/home/share目錄,192.168.0.100有讀寫權限並且root用戶有完全管理訪問權限,其他機器僅有隻讀權限。 配置文件的格式爲: [共享的目錄] [主機名或IP(參數,參數)] 其中參數是可選的,當不指定參數時,nfs將使用默認選項。默認的共享選項是sync,ro,root_squash,no_delay。 當主機名或IP地址爲空時,則代表共享給任意客戶機提供服務。 當將同一目錄共享給多個客戶機,但對每個客戶機提供的權限不同時,可以這樣: [共享的目錄] [主機名1或IP1(參數1,參數2)] [主機名2或IP2(參數3,參數4)] 下面是一些NFS共享的常用參數: ro 只讀訪問 rw 讀寫訪問 sync 同步寫入資料到內存與硬盤中 async 資料會先暫存於內存中,而非直接寫入硬盤 secure NFS通過1024以下的安全TCP/IP端口發送 insecure NFS通過1024以上的端口發送 wdelay 如果多個用戶要寫入NFS目錄,則歸組寫入(默認) no_wdelay 如果多個用戶要寫入NFS目錄,則立即寫入,當使用async時,無需此設置。 hide 在NFS共享目錄中不共享其子目錄 no_hide 共享NFS目錄的子目錄 subtree_check 如果共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的權限(默認) no_subtree_check 和上面相對,不檢查父目錄權限 all_squash 共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄。 no_all_squash 保留共享文件的UID和GID(默認) root_squash root用戶的所有請求映射成如anonymous用戶一樣的權限(默認) no_root_squash root用戶具有根目錄的完全管理訪問權限 anonuid=xxx 指定NFS服務器/etc/passwd文件中匿名用戶的UID anongid=xxx 指定NFS服務器/etc/passwd文件中匿名用戶的GID 3.當exports文件修改後,使用以下命令,不需要重啓NFS服務,就可以重新掛載/etc/exports裏面的設定: exportfs -arv 4.先啓動rpcbind服務: service rpcbind start 5.再啓動NFS服務: service nfs start 注:如果之前沒有先啓動portmap服務,那麼當啓動NFS服務時會停在Starting NFSdaemon:很長時間 6.設置nfs、rcpbind開機自啓動: chkconfig --level 345 nfs on chkconfig --level 345 rcpbind on 客戶端安裝: 1.安裝nfs-utils與rpcbind yum install nfs-utils rpcbind 2.啓動rcpbind服務 service rpcbind start 或者:/etc/init.d/rpcbind start 3.設置開機啓動 chkconfig --level 345 rcpbind on 4.NFS服務端啓動成功後,客戶端可以利用showmount命令測試是否能連上服務端 命令格式:showmount -e[hostname|IP],showmount命令需要安裝了nfs-utils軟件包纔有 命令:showmount -e 192.168.1.2 顯示如下: /home/nfsdir * /home/share (everyone) 5.客戶端建立掛載的文件夾 cd /mnt mkdir nfs 6.客戶端使用mount命令掛載NFS共享文件 mount -t nfs 192.168.1.2:/home/nfsdir /mnt/nfs 命令格式:mount – t nfs nfs服務器地址:目錄共享地址 本地掛載目錄點 7.客戶端可使用df命令,mount命令查看掛載情況: mount 192.168.1.2:/home/share on /mnt/nfs2 type nfs(rw,addr=192.168.1.2) 8.客戶端卸載NFS文件命令: umount /mnt/nfs1 umount /mnt/nfs2 9.開機默認掛載設置 a.需要將NFS的共享目錄掛載信息寫入/etc/fstab/文件,以實現對NFS共享目錄的自動掛載。 編輯/etc/fstab文件,在最後加入: 192.168.1.2:/home/nfsdir /mnt/nfsdir nfsdefaults 0 0 b.用vi編輯/etc/rc.local文件,因爲在系統啓動過程中,完成初始化腳本的執行後,會執行這個腳本文件添加命令如下: #vi /etc/rc.local mount /dev/cdrom /media/cdrom 後面掛載點可以自己選擇 10.查看當前主機RPC狀態: rpcinfo -plocalhost