內容:node
一、NFS簡介windows
二、NFS服務端的配置centos
三、NFS客戶端的配置以及使用命令bash
四、NFS服務的搭建測試服務器
1、NFS簡介網絡
一、NFS(Network File System)即網絡文件系統,是FreeBSD支持的文件系統中的一種,它容許網絡中的計算機之間經過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的客戶端應用能夠透明地讀寫位於遠端NFS服務器上的文件,就像訪問本地文件同樣。架構
1)、設置Linux系統之間的文件共享(Linux與Windows中間文件共享採用SAMBA服務);app
2)、NFS只是一種文件系統,自己沒有傳輸功能,是基於RPC協議實現的,才能達到兩個Linux系統之間的文件目錄共享;負載均衡
3)、NFS爲C/S架構;異步
2、NFS服務端的配置
一、須要安裝的軟件包:
rpcbind:提供rpc服務(mapping),在centos5之前叫portmap,5之後更名爲rpcbind
nfs-utils:提供nfs,mountd與其餘相關程序。
咱們能夠rpm -ql nfs-utils來查看nfs服務的應用程序主要有如下幾個:
nfsd:NFS的守護進程,工做在tcp與udp的2049端口上。
mountd:NFS用來驗證客戶端信息的守護進程,工做在隨機端口。
rquotad:磁盤限額進程。
lockd:文件鎖。
idmapd:權限映射。
輔助類的服務:rpc (portmap)
rpc.mountd:認證;
rpc.lockd:加鎖
rpc.statd:狀態
二、配置文件:
/etc/exports:nfs的主要設定文件。
/var/lib/nfs/*tab:設定記錄文件。
etab:共享目錄的完整權限設定。
xtab:曾經鏈接的客戶端資料。
/usr/sbin/exportfs:NFS分享資源命令,能夠用來從新獲取共享文件設定,掛載,卸載等。
/usr/sbin/showmount:用來查看遠程主機的共享信息。
三、exports文檔設定格式
管理共享的nfs文件系統:配置文件每一行定義一個共享文件系統
/PATH/TO/SOME_DIR CLIENTS_1(export_options,...) CLIENTS_2(export_options,...)
CLIENTS:
single host: IPv4, IPv6, FQDN
IP networks:network/netmask,支持兩種格式的掩碼;
wildcards:在主機名字符串中使用通,*.maideliang.com,
anonymous:*,表示全部的客戶端主機;
export_options:
ro:只讀;
rw:讀寫;
sync:同步
async:異步
User ID Mapping:
root_squash:壓縮root用戶的權限,默認行爲;nfsnobody
no_root_squash:不壓縮root用戶的權限;
all_squash:壓縮全部用戶的權限;
anonuid and anongid:將壓縮的用戶映射爲此處指定的用戶
命令:
exportfs命令(能夠不重啓nfs而生效):
-a:跟-r或-u選項同時使用,表示從新掛載全部文件系統或取消導出全部文件系統;
-r: 從新導出
-u: 取消導出
-v: 顯示詳細信息
四、權限相關
當遠程用戶訪問共享文件夾時是使用什麼權限呢?若是建立文件那麼屬主和屬組又是什麼呢?
其實也samba共享服務同樣,nfs默認是使用你本地主機當前用戶UID與GID相對應的身份來使用,若是遠程服務端沒有此用戶或組就會以數字的形式呈現。
若是是root用戶,那麼在遠程主機上確定就是使用root了,由於root默認的uid gid都是0!這樣就太危險了,因此若是使用了root訪問,NFS會自動壓縮權限爲最小權限nfsnobady。
當本地用戶使用不同的名字,UID倒是相同的建立文件,會經過idmapd這個進程來映射,因此你在遠程看到的還會是你原來的name。
當你將權限都設定完成後記得去更改服務器端文件夾的權限,推薦使用acl來設定,由於你的權限其實爲 "用戶權限與文件夾權限的交集"。
3、NFS客戶端命令:
一、掛載NFS目錄:
mount -t nfs NFS_SERVER:/PATH/TO/EXPORTED_DIR /MOUNT_POINT [-rvVwfnsh] [-o OPTIONS]
二、查看NFS服務的命令:
showmount -e NFS_SERVER: 查看NFS服務器「導出」的各文件系統
showmount -a NFS_SERVER: 查看NFS服務器全部被掛載的文件系統及其掛載的客戶端對應關係列表
showmount -d NFS_SERVER: 顯示NFS服務器全部導出的文件系統中被客戶端掛載了文件系統列表
三、開機自動掛載
編輯fstab文件添加便可,不過須要注意添加掛載選項
例:設定開機自動掛載:
10.1.252.109:/shared /mnt/nfs nfs defaults,_rnetdev 0 0
最好加載掛載選項:_rnetdev,表明若是檢查nfs遠端服務若是沒開則跳過檢查,不然會致使開機不成功(已測試驗證)
4、NFS服務的搭建測試
一、服務端安裝相關的程序包
[00:18 root@centos6.8~]# yum install -y nfs-utils rpcbind
二、編寫/etc/exports處處列表,並啓動nfs服務
[00:39 root@centos6.8~]# cat !$ cat /etc/exports /shared 10.1.0.0/16(rw) #把/shared目錄共享給10.1.0.0/16的全部用戶,並有讀寫權限 [00:42 root@centos6.8~]# service nfs start Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS mountd: [ OK ] Starting NFS daemon: [ OK ] Starting RPC idmapd: [ OK ]
三、客戶端掛載測試
[root@localhost ~]# showmount -e 10.1.252.109 #查看服務端的exports處處列表 clnt_create: RPC: Program not registered [root@localhost ~]# showmount -e 10.1.252.109 Export list for 10.1.252.109: /shared 10.1.0.0/16 [root@localhost ~]# showmount -a 10.1.252.109 All mount points on 10.1.252.109: [root@localhost ~]# showmount -d 10.1.252.109 Directories on 10.1.252.109: [root@localhost ~]# mkdir /mydata/nfs [root@localhost ~]# mount -t nfs 10.1.252.109:/shared /mydata/nfs/ #掛載NFS文件系統 [root@localhost ~]# showmount -e 10.1.252.109 Export list for 10.1.252.109: /shared 10.1.0.0/16 [root@localhost ~]# showmount -d 10.1.252.109 Directories on 10.1.252.109: [root@localhost ~]# showmount -a 10.1.252.109 All mount points on 10.1.252.109: [root@localhost ~]# mount #檢查已經掛載成功 /dev/mapper/vg0-root on / type ext4 (rw) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other) //10.1.252.109/windows on /mydata/samba type cifs (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) 10.1.252.109:/shared on /mydata/nfs type nfs (rw,vers=4,addr=10.1.252.109,clientaddr=10.1.252.187)
注意:若是出現如下錯誤說明,本機沒有安裝 mount.nfs了,咱們只要安裝mount.nfs就能夠了
[root@localhost ~]# mount -t nfs 10.1.252.109:/shared /mnt mount: wrong fs type, bad option, bad superblock on 10.1.252.109:/shared, missing codepage or helper program, or other error (for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program) In some cases useful info is found in syslog - try dmesg | tail or so. [root@localhost ~]# yum install -y nfs-utils [root@localhost ~]# mount mount mount.nfs mount.nfs4 mountpoint mountstats [root@localhost ~]# mount -t nfs 10.1.252.109:/shared /mnt
接下來就能夠作各類基於NFS共享的負載均衡實驗了。
OK,更多內容請關注個人博客。