1、安裝
CENTOS或RHL默認就已安裝,若是沒有安裝的話,經過yum安裝便可:
yum install nfs-utils
yum install portmapnode
UBUNTU系統,經過apt-get安裝:linux
apt-get install nfs-kernel-server
2、配置
一、配置文件定義ubuntu
NFS的配置文件爲 /etc/exports,內容格式以下:
<共享目錄> 客戶端1(選項) [客戶端2(選項) ...]windows
共享目錄:NFS共享給客戶機的目錄。centos
客戶端:網絡中能夠訪問此目錄的主機。多個客戶端以空格分隔。
選項:設置目錄的訪問權限、用戶映射等,多個選項以逗號分隔。bash
例如:服務器
/opt/public 192.168.1.0/24(rw,insecure,sync,all_squash,anonuid= 65534,anongid=65534)網絡
二、客戶端的指定方式
指定ip地址的主機:192.168.0.100
指定子網中的全部主機:192.168.0.0/24 或 192.168.0.0/255.255.255.0
指定域名的主機:nfs.test.com
指定域中的全部主機:*.test.comapp
全部主機:*async
三、選項說明
ro:共享目錄只讀;
rw:共享目錄可讀可寫;
all_squash:全部訪問用戶都映射爲匿名用戶或用戶組;
no_all_squash(默認):訪問用戶先與本機用戶匹配,匹配失敗後再映射爲匿名用戶或用戶組;
root_squash(默認):未來訪的root用戶映射爲匿名用戶或用戶組;
no_root_squash:來訪的root用戶保持root賬號權限;
anonuid=<UID>:指定匿名訪問用戶的本地用戶UID,默認爲nfsnobody(65534);
anongid=<GID>:指定匿名訪問用戶的本地用戶組GID,默認爲nfsnobody(65534);
secure(默認):限制客戶端只能從小於1024的tcp/ip端口鏈接服務器;
insecure:容許客戶端從大於1024的tcp/ip端口鏈接服務器;
sync:將數據同步寫入內存緩衝區與磁盤中,效率低,但能夠保證數據的一致性;
async:將數據先保存在內存緩衝區中,必要時才寫入磁盤;
wdelay(默認):檢查是否有相關的寫操做,若是有則將這些寫操做一塊兒執行,這樣能夠提升效率;
no_wdelay:如有寫操做則當即執行,應與sync配合使用;
subtree_check(默認) :若輸出目錄是一個子目錄,則nfs服務器將檢查其父目錄的權限;
no_subtree_check :即便輸出目錄是一個子目錄,nfs服務器也不檢查其父目錄的權限,這樣能夠提升效率;
3、NFS相關命令
一、exportfs
不重啓nfs服務應用更新,相關選項以下:
-a 所有掛載或卸載 /etc/exports中的內容
-r 從新讀取/etc/exports 中的信息 ,並同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸載單一目錄(和-a一塊兒使用爲卸載全部/etc/exports文件中的目錄)
-v 在export的時候,將詳細的信息輸出到屏幕上。
二、nfsstat
查看NFS的運行狀態。
三、rpcinfo
查看rpc服務註冊狀況。
相關選項:
-p 顯示全部的端口與程序信息。
示例:
rpcinfo -p localhost #列出本機的RPC註冊情況。
三、showmount
查詢nfs共享目錄信息,相關選項以下:
-a 顯示已經於客戶端鏈接上的目錄信息
-e IP或者hostname 顯示此IP地址分享出來的目錄
示例:
showmount -e localhost #查詢本機nfs共享目錄狀況
showmount -a localhost #查詢本機共享目錄鏈接狀況
4、linux客戶端掛載共享目錄
一、臨時掛載
經過mount掛載,例如:
mount -t nfs 192.168.1.1:/opt/public /mnt/public
二、啓動掛載
將掛載信息寫入fstab文件
vi /etc/fstab
192.168.1.1:/opt/public /mnt/public nfs defaults
保存退出
mount -a
三、基於autofs自動掛載
autofs能夠在使用到掛載文件系統時自動掛載,當長時間不使用時自動卸載,配置靈活方便。
安裝autofs:
centos,rhl:
yum install autofs
ubuntu:
apt-get install autofs
編輯主配置文件/etc/auto.master,在末尾添加需掛載的目錄信息。
格式爲:本機掛載主目錄 對應的加載配置文件名 -掛載參數
掛載參數同mount的掛載參數,多個參數以逗號分隔。此處的掛載參數能夠與對應的加載配置文件中定義的參數產生疊加做用。
示例:
vi /etc/auto.master
#本機掛載主目錄爲/mnt,與之對應的加載配置文件爲/etc/auto.nfs
/mnt /etc/auto.nfs
保存退出
編輯加載配置文件,添加須要掛載的文件系統。
格式爲:掛載目錄 -掛載參數 掛載文件系統
掛載參數同mount的掛載參數,多個參數以逗號分隔。
示例:
vi /etc/auto.nfs
public -rw,bg,soft,rsize=32768,wsize=32768,nosuid,noexec,nodev 192.168.1.1:/opt/public
保存退出
重啓autofs
/etc/init.d/autofs restart
5、windows客戶端掛載共享目錄
一、到M$網站下載SFU3.5,下載地址:http://www.microsoft.com/en-us/download/details.aspx?id=274
二、在本地創建group文件,內容以下:
root:x:0:
三、在本地創建passwd文件,內容以下:
root:x:0:0:root:/root:/bin/bash
四、解壓並安裝SFU,選擇定製安裝,在 User Name Mapping界面,選擇Password and group files,進入下一步分別輸入前面創建的passwd和group文件完整路徑,點擊下一步完成安裝。
五、配置SFU
在開始菜單的程序中找到Windows Services for Unix,點擊Services for Unix Administration。在設置界面點擊User Name Mapping,切換到Map標籤頁,點擊 show group Maps,在windows group name 和unix group name框中分別輸入guests和root,而後點擊add。而後點擊 show User Maps,在windows user name 和unix user name框中分別輸入guest和root,而後點擊add。最後點擊右上角的apply應用設置。
六、確保windows系統中的guest賬號可用
運行gpedit.msc
在Computer Configuration->Windowns Settings->Security Settings->Local Policies->User Right Assignment->Deny access to this computer from the network:去掉Guest。 並檢查其它相關項是否有容許Guest訪問。
在 Computer Configuration->Windowns Settings->Security Settings->Local Policies->Security Options->Network access->Sharing and security model for local accounts:選擇經典方式:Classic-Local users authenticate as themselves。
七、經過網上鄰居映射網絡驅動器、cmd下mount(例如:mount \\192.168.1.100\opt\public z:)或者直接在地址欄輸入地址(例如:\\192.168.1.100\opt\public)掛載共享目錄。
6、NFS權限設定
一、普通用戶
if ( 設置了all_squash ) then
訪問用戶強制映射爲指定nfs匿名用戶;
else
if ( NFS server上有同名用戶 ) then
訪問用戶映射爲服務器上的同名用戶;
else
訪問用戶映射成nfsnobody;
二、root
if ( 同時設置了no_root_squash和all_squash ) then
訪問用戶映射爲指定nfs匿名用戶;
else
if ( 設置了no_root_squash ) then
來訪root映射爲指定服務器上的root用戶;
else
if ( 設置了all_squash ) then
訪問用戶映射爲指定nfs匿名用戶;
else
訪問用戶映射成nfsnobody;
7、mount相關參數
ro 以只讀模式加載。
rw 以可讀寫模式加載。
sync 以同步方式執行文件系統的輸入輸出動做。
async 以非同步的方式執行文件系統的輸入輸出動做。
defaults 使用默認的選項。默認選項爲rw、suid、dev、exec、anto nouser與async。
atime 每次存取都更新inode的存取時間,默認設置,取消選項爲noatime。
noatime 每次存取時不更新inode的存取時間。
dev 可讀文件系統上的字符或塊設備,取消選項爲nodev。
nodev 不讀文件系統上的字符或塊設備。
exec 可執行二進制文件,取消選項爲noexec。
noexec 沒法執行二進制文件。
auto 必須在/etc/fstab文件中指定此選項。執行-a參數時,會加載設置爲auto的設備,取消選取爲noauto。
noauto 沒法使用-a參數來加載。
suid 啓動set-user-identifier(設置用戶ID)與set-group-identifer(設置組ID)設置位,取消選項爲nosuid。
nosuid 關閉set-user-identifier(設置用戶ID)與set-group-identifer(設置組ID)設置位。
user 普通用戶能夠執行加載操做。
nouser 普通用戶沒法執行加載操做,默認設置。
remount 從新加載設備。一般用於改變設備的設置狀態。
rsize 讀取數據緩衝大小,默認設置1024。
wsize 寫入數據緩衝大小,默認設置1024。
fg 之前臺形式執行掛載操做,默認設置。在掛載失敗時會影響正常操做響應。
bg 之後臺形式執行掛載操做。
hard 硬式掛載,默認設置。若是與服務器通信失敗,讓試圖訪問它的操做被阻塞,直到服務器恢復爲止。
soft 軟式掛載。若是服務器通信失敗,讓試圖訪問它的操做失敗,返回一條出錯消息。這項功能對於避免進程「掛」在可有可無的安裝操做上來講很是有用。
retrans=n 指定在以軟方式安裝的文件系統上,在返回一條出錯消息以前重複發出請求的次數。
nointr 不容許用戶中斷,默認設置。
intr 容許用戶中斷被阻塞的操做(而且讓它們返回一條出錯消息)。
timeo=n 設置請求的超時時間(以十分之一秒爲單位)。
注:
automounter專用參數
fstype= 用於指定一個文件系統的類型(若是要掛載的文件系統不是NFS的話),mount是不能用的。
8、注意事項
一、NFS服務器關機時要確保NFS沒有客戶端鏈接,不然沒法正常關機 。能夠先強制中止或殺死nfs服務。
二、windows客戶端掛載共享目錄不支持utf-8編碼,所以可能會出現中文亂碼。能夠經過修改服務器local的默認編碼來解決。