1.1 NFS配置參數(shù)權限
按需定制制作可以根據(jù)自己的需求進行定制,成都做網(wǎng)站、網(wǎng)站建設構思過程中功能建設理應排到主要部位公司成都做網(wǎng)站、網(wǎng)站建設的運用實際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實際意義
參數(shù)名稱
參數(shù)用途
rw
read-write,表示可讀寫權限
ro
read-only,表示只讀權限
sync
請求或寫入數(shù)據(jù)時,數(shù)據(jù)同步寫入到硬盤才完成
async
異步寫到遠程緩沖區(qū)
all_squash
不管客戶端什么用戶,到服務端都會被壓縮成匿名用戶
anonuid
匿名用戶的UID
anongid
匿名用戶的GID
在配置文件內設置共享目錄時所給予的權限:
[root@nfs01 ~]$ cat /etc/exports
/data 172.16.1.0/24(rw,sync) 10.0.0.0/24(ro)
配置好NFS服務后,/var/lib/nfs/etab文件中可以看到的配置參數(shù)以及默認自帶的參數(shù):
[root@nfs01 ~]$ cat /var/lib/nfs/etab
/data
172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,
no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,
anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash
1.1.1 更改NFS默認用戶
1.1.1.1 nfs01服務端NFS、以及所有客戶端:
[root@nfs01 ~] id www
uid=1111(www) gid=1111(www) 組=1111(www)
1.1.1.2 服務端NFS特殊配置
配置文件增加如下內容:
[root@nfs01 ~]$ tail -2 /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=1111,anongid=1111)
/data1 10.0.0.0/24(ro)
共享目錄更改用戶和用戶組:
[root@nfs01 ~] ls -ld /data
drwxr-xr-x 2 www www 70 4月 18 10:05 /data
1.1.1.3 服務端NFS重啟
[root@nfs01 ~]$ systemctl reload nfs
1.1.1.4 每個客戶端掛載
[root@web01 ~] df -h
文件系統(tǒng) 容量 已用 可用 已用% 掛載點
172.16.1.31:/data 19G 1.8G 18G 10% /data
新創(chuàng)建文件驗證用戶名:
[root@web01 /data]# touch new_web01.txt
[root@web01 /data]# ls -l
總用量 0
-rw-r--r-- 1 www www 0 4月 18 11:01 new_web01.txt
-rw-r--r-- 1 www www 0 4月 17 11:59 oldboy.txt
-rw-r--r-- 1 www www 0 4月 17 12:30 oldgirl.txt
1.2 NFS服務重點知識梳理
??當多個NFS客戶端訪問服務器端讀寫文件時,需要具有以下幾個權限:
NFS服務器/etc/exports設置需要開放許可寫入的權限,即服務器端的共享權限
NFS服務器實際要共享的NFS目錄權限具有可寫入w的權限,即服務器端本地目錄的安全權限
每臺機器都對應存在和NFS默認配置UID的相同UID的用戶
下表列出了常用的重點NFS服務文件或命令。
NFS常用路徑
說明
/etc/exports
NFS服務主配置文件,配置NFS具體共享服務的地點,默認內容為空
/var/lib/nfs/etab
NFS配置文件的完整參數(shù)設定的文件
/proc/mounts
客戶端的掛載參數(shù)
1.3 NFS客戶端掛載深入
1.3.1 mount -o 參數(shù)選項及系統(tǒng)默認設置
參數(shù)
參數(shù)意義
系統(tǒng)默認值
suid/nosuid
當掛載的文件系統(tǒng)上有任何SUID的程序時,只要使用nosuid就能夠取消設置SUID的功能
suid
rw/ro
可以指定文件系統(tǒng)是只讀(ro)或可讀寫(rw)
rw
dev/nodev
是否可以保留裝置文件的特殊功能
dev
exec/noexec
是否具有執(zhí)行文件的權限
exec
user/nouser
是否允許用戶擁有文件的掛載與卸載功能
nouser
auto/noauto
auto指的是“mount -a”時會不會被掛載的項目,如果不需要這個分區(qū)隨時被掛載,可以設置為noauto
auto
1.3.2 mount -o 參數(shù)詳細說明
參數(shù)選項
說明
async
涉及文件系統(tǒng)I/O的操作都是異步處理,即不會同步寫到磁盤,能提高性能,但會降低數(shù)據(jù)安全。
sync
有I/O操作時,都會同步處理I/O,會降低性能,但數(shù)據(jù)比較安全。
atime
在每一次數(shù)據(jù)訪問時,會更新訪問文件的時間戳,是默認選項,在高并發(fā)的情況下,可以通過添加noatime來取消默認項。
ro
以只讀的方式掛載一個文件系統(tǒng)
rw
以可讀寫的方式掛載一個文件系統(tǒng)
auto
能夠被自動掛載通過-a選項
noauto
不會自動掛載文件系統(tǒng)
defaults
這是fstab里的默認值,包括rw、suid、dev、exec、auto、nouser、async
exec
允許文件系統(tǒng)執(zhí)行二進制文件,取消這個參數(shù),可以提升系統(tǒng)安全性。
noexec
在掛載的文件系統(tǒng)中不允許執(zhí)行任何二進制程序,進僅對二進制程序有效。
noatime
訪問文件時不更新文件的時間戳,高并發(fā)情況下,一般使用該參數(shù)
nodiratime
不更新文件系統(tǒng)上的directory inode時間戳,高并發(fā)環(huán)境,推薦顯式應用該選項,可以提高系統(tǒng)I/O性能。
nosuid
不允許set-user-identifier or set-group-identifier位生效。
suid
允許set-user-identifier or set-group-identifier位生效。
nouser
禁止一個普通用戶掛載該文件系統(tǒng),這是默認掛載時的默認選項。
remount
嘗試重新掛載一個已經(jīng)掛載了的文件系統(tǒng),這通常被用來改變一個文件系統(tǒng)的掛載標志,從而使得一個只讀文件系統(tǒng)變的可寫,這個動作不會改變設備或者掛載點。當系統(tǒng)故障時進人single或rescue模式修復系統(tǒng)時,會發(fā)現(xiàn)根文件系統(tǒng)經(jīng)常會變成只讀文件系統(tǒng),不允許修改,此時該命令就派上用場了。具體命令為:mount -o remount,rw /,表示將根文件系統(tǒng)重新掛載使得可寫。single或rescue模式修復系統(tǒng)時這個命令十分重要。
dirsync
目錄更新時同步寫人磁盤。
1.3.3 企業(yè)生產(chǎn)場景NFS共享存儲優(yōu)化
硬件:使用ssd/sas磁盤,可以買多塊,制作成raid10。
NFS服務器端配置:
/data 10.0.0.0/24(rw,sync,all_squash,anonuid=65534,anongid=65534)
NFS客戶端掛載優(yōu)化配置命令:
mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,rsize=131072,
wsize=131072 172.16.1.31:/data /mnt ===兼顧安全性能
對NFS服務的所有服務器內核進行優(yōu)化,執(zhí)行命令如下:
cat /etc/sysctl.conf EOF
net.core.wmen_default = 8388608
net.core.rmen_default = 8388608
net.core.wmen_max = 16777216
net.core.rmen_max = 16777216
EOF
執(zhí)行sysctl -p 生效
大型網(wǎng)站NFS網(wǎng)絡文件系統(tǒng)的替代軟件為分布式文件系統(tǒng),如:Moosefs(mfs)、GlusterFS、FastDFS。
1.4 NFS系統(tǒng)應用的優(yōu)缺點
1.4.1 優(yōu)點
簡單,容易上手,容易掌握。
NFS文件系統(tǒng)內數(shù)據(jù)是在文件系統(tǒng)之上的,即數(shù)據(jù)是能看得見的。
部署快速維護簡單方便,且可控,滿足需求就是最好的。
可靠,從軟件層面上看,數(shù)據(jù)可靠性高,經(jīng)久耐用。
服務非常穩(wěn)定。
1.4.2 缺點(局限)
存在單點故障,如果NFS服務端宕機了,所有客戶端都不能訪問共享目錄。
在大數(shù)據(jù)高并發(fā)的場合,NFS效率、性能有限。
客戶端認證是基于IP和主機名的,權限要根據(jù)ID識別,安全性一般。
NFS數(shù)據(jù)是明文的,NFS本身不對數(shù)據(jù)完整性進行驗證。
多臺客戶機掛載一個NFS服務器時,連接管理維護麻煩。
1.4.3 解決性能問題的方法
使用CDN加速以及自己搭建文件緩存服務(squid、nginx、varnish)。
把多個目錄分配到不同的NFS服務器上。
棄用NFS(即讀寫分離)。
使用分布式文件系統(tǒng)。
NFS的配置過程很簡單。在服務器端中編輯 /etc/exports 文件,添加如下內容: /home/nfs-share 192.168.1.122 (rw,sync)
第一項是要共享的目錄,后者為共享的配置參數(shù)一般為: (rw,sync,no_root_squash,no_all_squash,no_subtree_check)
然后開啟NFS和portmap服務:
/etc/init.d/nfs start //用service nfs start也可以 /etc/init.d/portmap start //用service portmap stasrt也可以
在centos6.5中portmap已經(jīng)改為rpcbind 在客戶端,用mount –t nfs 192.168.123:/home/nfs-share /home/remote_file掛載服務器端的共享目錄到本地的/home/remote-file掛載點,然后我們就可以在客戶端上應用到遠程主機上的/home/nfs-share目錄了。想要系統(tǒng)在開機時自動掛載,修改/etc/fstab文件,把NFS服務器的共享目錄添加進去就可以了,這個不用多說。
如何知道遠程主機上的共享目錄情況呢?使用showmount命令,這個命令需要root權限。它有三個選項(記住這三個選項代表的含義: showmount –a IP 顯示指定NFS服務器的客戶端以及服務器端在客戶端的掛載點 showmount –d IP 顯示指定NFS服務器在客戶端的掛載點 showmount –e IP 顯示指定NFS服務器上的共享目錄列表(或者叫輸出列表) 我們輸入命令showmount –a 192.168.1.123:
圖片客戶端中出現(xiàn)的mount clntudp_create: RPC: Program not registered錯誤是怎么回事?噢,我剛才重啟了一下服務器端,重啟后NFS服務沒有開啟。 我們開啟服務器端的NFS服務,再從客戶端上查看一下NFS服務器的情況:
Showmount –a顯示出NFS服務器192.168.1.123的共享目錄被客戶端192.168.122掛載到/home中;
在showmount -e IP,出現(xiàn)clnt_create: RPC: Port mapper failure - Timed out報錯
解決方案:
被訪問的NFS服務器上的防火墻沒有添加規(guī)則,向iptables里面添加以下查看的所有端口即可(目前解決的方法,當然你也可以關閉防火墻,不過這樣是比較不安全的,如果你的nfs作用不大,建議你另選別的應用來替代吧!畢竟開那么多的端口,比較不安全呀?。?/p>
通過#rpcinfo -p 10.10.209.148
[root@rh01 /]# rpcinfo -p 10.10.209.148program vers proto port service100000 4 tcp 111 portmapper100000 3 tcp 111 portmapper100000 2 tcp 111 portmapper100000 4 udp 111 portmapper100000 3 udp 111 portmapper100000 2 udp 111 portmapper100024 1 udp 52943 status100024 1 tcp 37706 status100011 1 udp 875 rquotad100011 2 udp 875 rquotad100011 1 tcp 875 rquotad100011 2 tcp 875 rquotad100003 2 tcp 2049 nfs100003 3 tcp 2049 nfs100003 4 tcp 2049 nfs100227 2 tcp 2049 nfs_acl100227 3 tcp 2049 nfs_acl100003 2 udp 2049 nfs100003 3 udp 2049 nfs100003 4 udp 2049 nfs100227 2 udp 2049 nfs_acl100227 3 udp 2049 nfs_acl100021 1 udp 37438 nlockmgr100021 3 udp 37438 nlockmgr100021 4 udp 37438 nlockmgr100021 1 tcp 46331 nlockmgr100021 3 tcp 46331 nlockmgr100021 4 tcp 46331 nlockmgr100005 1 udp 57177 mountd100005 1 tcp 43147 mountd100005 2 udp 49154 mountd100005 2 tcp 54810 mountd100005 3 udp 55707 mountd100005 3 tcp 58309 mountd
[root@rh01 /]#
剛才在重啟NFS服務的時候,細心的話可以注意到,我們在輸入命令/etc/init.d/nfs start開啟nfs服務時,系統(tǒng)還自作主張地開啟了NFS quotas等其它3個服務。
怎么回事?我們只輸入了一條啟動NFS服務的命令,它怎么額外的啟動了3個服務?后面的啟動portmap服務又是怎么回事? 我們首先要了解一點:NFS文件系統(tǒng)要提供服務單靠本身的NFS服務是不夠的,還需要調用其它服務,這個其它服務就是RPC(remote procedure call,遠程過程調用)服務和portmap服務。由于NFS服務本身不提供文件傳輸功能,我們要遠程使用NFS文件系統(tǒng)就需要RPC服務的支持;而portmap服務用來為RPC服務進行動態(tài)端口分配和映射,所以portmap服務也是NFS服務所必須的。
我們查看一下服務的啟動情況:
所遇錯誤:
/etc/init.d/nfs-kernel-server: 沒有那個文件或目錄
解決方案:
沒有配置、安裝NFS
Linux 下配置NFS服務
1、安裝
2、配置
3、客戶端
所遇問題:centos6.5
portmap: 未被識別的服務
解決方案:
由于在6系列里面,portmap已經(jīng)改名了 ,6系列需要使用 service rpcbind start啟動[root@unix-big-bang ~]# service portmap start
portmap: 未被識別的服務
[root@unix-big-bang ~]# service rpcbind status
rpcbind (pid 1312) is running...
[root@unix-big-bang ~]#
好文共賞:
linux nfs文件共享
◆一、概念
NFS是網(wǎng)絡文件系統(tǒng)(Network File System)的簡稱,是分布式計算機系統(tǒng)的一個組成部分,可實現(xiàn)在異構網(wǎng)絡上共享和裝配遠程文件系統(tǒng)。
NFS由SUN公司開發(fā),目前已成為文件服務的一種標準(RFC1904,RFC1813)。其最大的功能就是可以通過網(wǎng)絡,讓不同 操作系統(tǒng) 的計算機可以共享數(shù)據(jù),所以也可以看作是一個文件服務器。NFS是除了SAMBA之外Windows與Linux及Unix與Linux之間通信的方法。
理想條件下的NFS 網(wǎng)絡拓撲結構
1、設置Linux系統(tǒng)之間的文件共享(Linux與Windows中間文件共享采用SAMBA服務);
2、NFS只是一種文件系統(tǒng),本身沒有傳輸功能,是基于RPC協(xié)議實現(xiàn)的,才能達到兩個Linux系統(tǒng)之間的文件目錄共享;
3、NFS為C/S 架構 ;
◆二、服務器配置
1、配置文件
主要配置文件為:/etc/exports
格式為: 共享目錄 可mount主機IP(參數(shù)1,參數(shù)2,……)
如:/var/nfs 172.20. . (rw,sync,no_rootl_squash)
說明:必須注意nfs/目錄的訪問權限,必須設置成777權限;父目錄/var權限無要求,普通的755即可;
2、啟動相關服務
然后依次啟動相關服務:portmap,nfslock,nfs
service portmap start
service nfslock start
service nfs start
關閉順序相反。
3、檢查共享目錄
隨后可以采用showmount –e查看一下,看看共享的目錄情況:
[root@ns var]# showmount -e
Export list for ns.osserver:
/var/nfs 172.20. .
OK,到此為止,NFS服務器搭建完畢;
◆三、客戶端配置
1、確保portmap運行
客戶端必須確保RPC協(xié)議相應的portmap正常運行,否則mount將失??;
2、掛載/var/nfs目錄(本地掛載點為/mnt/nfs)
mount -t nfs 172.20.65.16:/var/nfs /mnt/nfs
成功mount以后,即可同本地目錄一樣隨意操作;
◆四、其它相關命令
1、當修改了/etc/exports文件后,可以不用重新啟動nfs服務,直接采用exports –rv 即可重新導出共享目錄;
該命令格式如下:
exportfs [-aruv]
-a :全部mount或者unmount /etc/exports中的內容
-r :重新mount /etc/exports中分享出來的目錄
-u :umount 目錄
-v :在 export 的時候,將詳細的信息輸出到屏幕上。
具體例子:
[root@ns var]# showmount -e
Export list for ns.osserver:
/var/nfs 172.20. .
[root@ns var]# exportfs –au #全部卸載
[root@ns var]# showmount -e
Export list for ns.osserver:
[root@ns var]# exportfs –rv #全部重新 export 一次
exporting 172.20. . :/var/nfs
[root@ns var]#
2、showmout命令對于NFS的操作和查錯有很大的幫助,所以我們先來看一下showmount的用法
showmout
-a :這個參數(shù)是一般在NFS SERVER上使用,是用來顯示已經(jīng)mount上本機nfs目錄的cline機器。
-e :顯示指定的NFS SERVER上export出來的目錄。
例如:
[root@localhost ~]# showmount -e 172.20.16.139
Export list for 172.20.16.139 :/root/share 172.20.16.137
[root@ns var]# showmount -a
All mount points on localhost.localdomain: :/root/share,172.20. . :/root/share,172.20.16. :/root/share,172.20.16.139:/nfsshare,172.20.16.139:/root/share172.20.16.137: 172.20.16.137:,172.20. . 172.20.16.137:,172.20.16. 172.20.16.137:/root/share172.20.16.139: 172.20.16.139:,172.20. . 172.20.16.139:,172.20.16. 172.20.16.139:,172.20.16.139172.20.16.139:DEFAULT
◆五、常見問題解答
1、提示:mount to NFS server '172.20.67.203' failed: server is down.
解決方案:可能是NFS服務器的防火墻有問題;
2、提示:mount: RPC: Timed out
解決方案:由于RPC協(xié)議沒運行;啟動portmap服務;
也有可能是防火墻問題;Server/Client均有可能。
NFS服務可以讓不同的客戶端掛載使用一個共享目錄,在集群架構環(huán)境中經(jīng)常會用到。那么在Linux運維工作中,NFS服務有什么優(yōu)缺點呢?
優(yōu)點有什么呢?
1)簡單、容易上手和掌握
2)NFS文件系統(tǒng)內數(shù)據(jù)可見的
3)部署快速,維護簡單方便且可控滿足需求就是最好的
4)可靠,數(shù)據(jù)性高、經(jīng)久耐用
5)服務穩(wěn)定
局限又是什么?
1)存在單點故障,如果NFS Server宕機了,所有客戶端就不能訪問共享目錄了
2)在大數(shù)據(jù)高并發(fā)的情況下,NFS效率、性能是有限的
3)客戶端認證是基于IP和主機名的,權限要根據(jù)ID識別,安全性一般(用于內網(wǎng)則問題不大)
4)NFS數(shù)據(jù)是明文的,NFS本身不對局完整性做驗證
5)多臺客戶機器掛載一個NFS服務器時,連接管理維護麻煩。NFS服務端出問題后,所有NFS客戶端都處于掛掉狀態(tài)
以上便是“NFS服務有什么優(yōu)缺點?”的相關介紹。