虛擬機nfs配置文件是什麼
Ⅰ vmware安裝linux時nfs如何配置
1、使用的技術
nfs
2、測試環境
nfs伺服器:192.168.255.18
nfs客戶端:192.168.255.11
操作系統:redhat4
3、nfs伺服器配置
(1)配置
/etc/hosts.deny
禁止任何客戶端能和你的nfs伺服器進行nfs連接:
###
nfs
daemons
portmap:all
lockd:all
mountd:all
rquotad:all
statd:all
(2)配置/etc/hosts.allow
允許那些你想要的客戶端和你的nfs伺服器建立連接。下列步驟將允許任何ip地址
以192.168.2開頭的主機(連接到nfs伺服器上),也可以指定特定的ip地址。
###
nfs
daemons
portmap:
192.168.255.
lockd:
192.168.255.
rquotad:
192.168.255.
mountd:
192.168.255.
statd:
192.168.255.
(3)重啟portmap
Ⅱ linux配置nfs步驟
NFS的配置過程很簡單。在伺服器端中編輯 /etc/exports 文件,添加如下內容: /home/nfs-share 192.168.1.122 (rw,sync)
第一項是要共享的目錄,後者為共享的配置參數一般為: (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已經改為rpcbind 在客戶端,用mount –t nfs 192.168.123:/home/nfs-share /home/remote_file掛載伺服器端的共享目錄到本地的/home/remote-file掛載點,然後我們就可以在客戶端上應用到遠程主機上的/home/nfs-share目錄了。想要系統在開機時自動掛載,修改/etc/fstab文件,把NFS伺服器的共享目錄添加進去就可以了,這個不用多說。
如何知道遠程主機上的共享目錄情況呢?使用showmount命令,這個命令需要root許可權。它有三個選項(記住這三個選項代表的含義: showmount –a IP 顯示指定NFS伺服器的客戶端以及伺服器端在客戶端的掛載點 showmount –d IP 顯示指定NFS伺服器在客戶端的掛載點 showmount –e IP 顯示指定NFS伺服器上的共享目錄列表(或者叫輸出列表) 我們輸入命令showmount –a 192.168.1.123:
圖片客戶端中出現的mount clntudp_create: RPC: Program not registered錯誤是怎麼回事?噢,我剛才重啟了一下伺服器端,重啟後NFS服務沒有開啟。 我們開啟伺服器端的NFS服務,再從客戶端上查看一下NFS伺服器的情況:
Showmount –a顯示出NFS伺服器192.168.1.123的共享目錄被客戶端192.168.122掛載到/home中;
在showmount -e IP,出現clnt_create: RPC: Port mapper failure - Timed out報錯
解決方案:
被訪問的NFS伺服器上的防火牆沒有添加規則,向iptables裡面添加以下查看的所有埠即可(目前解決的方法,當然你也可以關閉防火牆,不過這樣是比較不安全的,如果你的nfs作用不大,建議你另選別的應用來替代吧!畢竟開那麼多的埠,比較不安全呀!)
通過#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服務時,系統還自作主張地開啟了NFS quotas等其它3個服務。
怎麼回事?我們只輸入了一條啟動NFS服務的命令,它怎麼額外的啟動了3個服務?後面的啟動portmap服務又是怎麼回事? 我們首先要了解一點:NFS文件系統要提供服務單靠本身的NFS服務是不夠的,還需要調用其它服務,這個其它服務就是RPC(remote procere call,遠程過程調用)服務和portmap服務。由於NFS服務本身不提供文件傳輸功能,我們要遠程使用NFS文件系統就需要RPC服務的支持;而portmap服務用來為RPC服務進行動態埠分配和映射,所以portmap服務也是NFS服務所必須的。
我們查看一下服務的啟動情況:
所遇錯誤:
/etc/init.d/nfs-kernel-server: 沒有那個文件或目錄
解決方案:
沒有配置、安裝NFS
Linux 下配置NFS服務
1、安裝
2、配置
3、客戶端
所遇問題:centos6.5
portmap: 未被識別的服務
解決方案:
由於在6系列裡面,portmap已經改名了 ,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是網路文件系統(Network File System)的簡稱,是分布式計算機系統的一個組成部分,可實現在異構網路上共享和裝配遠程文件系統。
NFS由SUN公司開發,目前已成為文件服務的一種標准(RFC1904,RFC1813)。其最大的功能就是可以通過網路,讓不同 操作系統 的計算機可以共享數據,所以也可以看作是一個文件伺服器。NFS是除了SAMBA之外Windows與Linux及Unix與Linux之間通信的方法。
理想條件下的NFS 網路拓撲結構
1、設置Linux系統之間的文件共享(Linux與Windows中間文件共享採用SAMBA服務);
2、NFS只是一種文件系統,本身沒有傳輸功能,是基於RPC協議實現的,才能達到兩個Linux系統之間的文件目錄共享;
3、NFS為C/S 架構 ;
◆二、伺服器配置
1、配置文件
主要配置文件為:/etc/exports
格式為: 共享目錄 可mount主機IP(參數1,參數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協議相應的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 :這個參數是一般在NFS SERVER上使用,是用來顯示已經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 餄.20.67.203' failed: server is down.
解決方案:可能是NFS伺服器的防火牆有問題;
2、提示:mount: RPC: Timed out
解決方案:由於RPC協議沒運行;啟動portmap服務;
也有可能是防火牆問題;Server/Client均有可能。
Ⅲ NFS架構(轉載)
1.為什麼用共享存儲
2.存儲有哪些工具
3.共享存儲應用場景有哪些
4.部署nfs共享存儲
5.客戶端嘗試連接共享存儲
什麼是NFS?
NFS 是 Network File System 的縮寫及網路文件系統。 NFS 主要功能是通過區域網絡讓不同的主機系統之間可以共享文件或目錄。
NFS 系統和 Windows 網路共享、網路驅動器類似, 只不過 windows 用於區域網, NFS 用於企業集群架構中, 如果是大型網站, 會用到更復雜的分布式文件系統 FastDFS,glusterfs,HDFS
那麼我們為什麼要使用數據存儲共享服務?
1.實現多台伺服器之間數據共享
2.實現多台伺服器之間數據一致
下面我將通過圖解給大家展示集群需要共享存儲服務的理由。
1.A 用戶上傳圖片經過負載均衡,負載均衡將上傳請求調度至 WEB1 伺服器上。
2.B 用戶訪問 A 用戶上傳的圖片,此時 B 用戶被負載均衡調度至 WEB2 上,因為 WEB2 上沒有這張圖片,所以 B用戶無法看到 A 用戶傳的圖片
如果有共享存儲的情況
1.A 用戶上傳圖片無論被負載均衡調度至 WEB1 還是 WEB2, 最終數據都被寫入至共享存儲
2.B 用戶訪問 A 用戶上傳圖片時,無論調度至 WEB1 還是 WEB2,最終都會上共享存儲訪問對應的文件,這樣就可以訪問到資源了
NFS工作原理
1.用戶進程訪問 NFS 客戶端,使用不同的函數對數據進行處理
2.NFS 客戶端通過 TCP/IP 的方式傳遞給 NFS 服務端
3.NFS 服務端接收到請求後,會先調用 portmap 進程進行埠映射。
4.nfsd 進程用於判斷 NFS 客戶端是否擁有許可權連接 NFS 服務端。
5.Rpc.mount 進程判斷客戶端是否有對應的許可權進行驗證。
6.idmap 進程實現用戶映射和壓縮
7.最後 NFS 服務端會將對應請求的函數轉換為本地能識別的命令,傳遞至內核,由內核驅動硬體。
注意: rpc 是一個遠程過程調用,那麼使用 nfs 必須有 rpc 服務
1.nfs依賴於RPC服務來傳遞消息
2.NFS服務啟動的埠號是隨機的,啟動之後會向本地的RCP注冊
3.先啟動RPC服務,再啟動NFS服務
4.NFS和RPC之間的通訊是他們自己內部完成的,對於用戶來說無感知
5.NFS客戶端和服務端不會直接溝通,必須通過RPC服務傳遞消息
6.防火牆要開放RPC服務的埠
nfs 服務程序的配置文件為/etc/exports,需要嚴格按照共享目錄的路徑 允許訪問的 NFS 客戶端(共享許可權參數)格式書寫,定義要共享的目錄與相應的許可權,具體書寫方式如下圖所示
配置文件參數解釋:
執行 man exports 命令,然後切換到文件結尾,可以快速查看如下樣例格式:
nfs共享參數 參數作用
rw 讀寫許可權
ro 只讀許可權
root_squash
當 NFS 客戶端以 root 管理員訪問時,映射為 NFS 伺服器的匿名用戶(不常用)
no_root_squash
當 NFS 客戶端以 root 管理員訪問時,映射為 NFS 伺服器的 root 管理員(不常用)
all_squash
無論 NFS 客戶端使用什麼賬戶訪問,均映射為 NFS 伺服器的匿名用戶(常用)
no_all_squash
無論 NFS 客戶端使用什麼賬戶訪問,都不進行壓縮
sync
同時將數據寫入到內存與硬碟中,保證不丟失數據
async
優先將數據保存到內存,然後再寫入硬碟;這樣效率更高,但可能會丟失數據
anonuid
配置 all_squash 使用,指定 NFS 的用戶 UID,必須存在系統
anongid
配置 all_squash 使用,指定 NFS 的用戶 UID,必須存在系統
寫入配置文件:注意!IP地址和後面的小括弧沒有空格
創建數據目錄和授權:
在使用 NFS 服務進行文件共享之前,需要使用 RPC(Remote Procere Call 遠程過程調用服務將 NFS 伺服器的IP 地址和埠號信息發送給客戶端。因此,在啟動 NFS 服務之前,需要先重啟並啟用 rpcbind 服務程序,同時都加入開機自啟動
客戶端安裝nfs服務十分簡單,只需要安裝nfs軟體包即可
安裝完成後只需要啟動rpcbind,不需要啟動nfs
使用showmount命令查看nfs共享信息查詢 NFS 伺服器的遠程共享信息,其輸出格式為「共享的目錄名稱 允許使用客戶端地址」。
掛載命令: 創建掛載目錄
在 NFS 客戶端創建一個掛載目錄, 使用 mount 命令並結合-t 參數, 指定要掛載的文件系統的類型, 並在命令後面寫上伺服器的 IP 地址, 以及伺服器上的共享目錄, 最後需要寫上要掛載到本地系統(客戶端)的目錄
查看是否掛載成功:
測試寫入數據是否正常
寫入開機自動掛載
卸載命令:注意!卸載的時候如果提示」umount.nfs: /nfsdir: device is busy」先切換到其他目錄再卸載
強制卸載命令:
服務端配置:
客戶端掛載:
測試讀取:
寫入測試:
服務端配置:
服務端創建用戶及授權:
重啟NFS服務:
更改目錄授權:
客戶端操作:
我們會發現依然可以寫入,但是為了避免這種情況發生,建議客戶端也創建相同uid gid的用戶
參考博客
啟動NFS會開啟如下埠:
1)portmapper 埠:111 udp/tcp;
2)nfs/nfs_acl 埠:2049 udp/tcp;
3)mountd 埠:"32768--65535" udp/tcp
4)nlockmgr 埠:"32768--65535" udp/tcp
系統 RPC服務在 nfs服務啟動時默認會給 mountd 和 nlockmgr 動態選取一個隨機埠來進行通訊。
1.查看NFS啟動後的埠
2.將隨機的埠號設置固定
3.重啟nfs和rpc服務
4.再次查看埠信息,發現埠號已經固定了
5.設置iptables
6.保存配置
如果設置了開機自啟動,但是系統啟動的時候NFS並沒有提供服務,就會導致開機自檢的時候卡在掛在那一步
NFS 存儲優點
1.NFS 文件系統簡單易用、方便部署、數據可靠、服務穩定、滿足中小企業需求。
2.NFS 文件系統內存放的數據都在文件系統之上,所有數據都是能看得見
NFS 存儲局限
1.存在單點故障, 如果構建高可用維護麻煩 web->nfs()->backup
2.NFS 數據明文, 並不對數據做任何校驗。
3.客戶端掛載 NFS 服務沒有密碼驗證, 安全性一般(內網使用)
NFS 應用建議
1.生產場景應將靜態數據盡可能往前端推, 減少後端存儲壓力
2.必須將存儲里的靜態資源通過 CDN 緩存 jpg\png\mp4\avi\css\js
3.如果沒有緩存或架構本身歷史遺留問題太大, 在多存儲也無用
准備 3 台虛擬機伺服器,並且請按照要求搭建配置 NFS 服務。
NFS 服務端(A)
NFS 客戶端(B)
NFS 客戶端(C)
1.在 NFS 服務端(A)上共享/data/w(可寫)及/data/r(只讀)
2.在 NFS 客戶端(B/C)上進行掛載
環境准備
Ⅳ NFS 深入配置
1.1 NFS配置參數許可權
參數名稱
參數用途
rw
read-write,表示可讀寫許可權
ro
read-only,表示只讀許可權
sync
請求或寫入數據時,數據同步寫入到硬碟才完成
async
非同步寫到遠程緩沖區
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文件中可以看到的配置參數以及默認自帶的參數:
[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
文件系統 容量 已用 可用 已用% 掛載點
172.16.1.31:/data 19G 1.8G 18G 10% /data
新創建文件驗證用戶名:
[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配置文件的完整參數設定的文件
/proc/mounts
客戶端的掛載參數
1.3 NFS客戶端掛載深入
1.3.1 mount -o 參數選項及系統默認設置
參數
參數意義
系統默認值
suid/nosuid
當掛載的文件系統上有任何SUID的程序時,只要使用nosuid就能夠取消設置SUID的功能
suid
rw/ro
可以指定文件系統是只讀(ro)或可讀寫(rw)
rw
dev/nodev
是否可以保留裝置文件的特殊功能
dev
exec/noexec
是否具有執行文件的許可權
exec
user/nouser
是否允許用戶擁有文件的掛載與卸載功能
nouser
auto/noauto
auto指的是「mount -a」時會不會被掛載的項目,如果不需要這個分區隨時被掛載,可以設置為noauto
auto
1.3.2 mount -o 參數詳細說明
參數選項
說明
async
涉及文件系統I/O的操作都是非同步處理,即不會同步寫到磁碟,能提高性能,但會降低數據安全。
sync
有I/O操作時,都會同步處理I/O,會降低性能,但數據比較安全。
atime
在每一次數據訪問時,會更新訪問文件的時間戳,是默認選項,在高並發的情況下,可以通過添加noatime來取消默認項。
ro
以只讀的方式掛載一個文件系統
rw
以可讀寫的方式掛載一個文件系統
auto
能夠被自動掛載通過-a選項
noauto
不會自動掛載文件系統
defaults
這是fstab里的默認值,包括rw、suid、dev、exec、auto、nouser、async
exec
允許文件系統執行二進制文件,取消這個參數,可以提升系統安全性。
noexec
在掛載的文件系統中不允許執行任何二進製程序,進僅對二進製程序有效。
noatime
訪問文件時不更新文件的時間戳,高並發情況下,一般使用該參數
nodiratime
不更新文件系統上的directory inode時間戳,高並發環境,推薦顯式應用該選項,可以提高系統I/O性能。
nosuid
不允許set-user-identifier or set-group-identifier位生效。
suid
允許set-user-identifier or set-group-identifier位生效。
nouser
禁止一個普通用戶掛載該文件系統,這是默認掛載時的默認選項。
remount
嘗試重新掛載一個已經掛載了的文件系統,這通常被用來改變一個文件系統的掛載標志,從而使得一個只讀文件系統變的可寫,這個動作不會改變設備或者掛載點。當系統故障時進人single或rescue模式修復系統時,會發現根文件系統經常會變成只讀文件系統,不允許修改,此時該命令就派上用場了。具體命令為:mount -o remount,rw /,表示將根文件系統重新掛載使得可寫。single或rescue模式修復系統時這個命令十分重要。
dirsync
目錄更新時同步寫人磁碟。
1.3.3 企業生產場景NFS共享存儲優化
硬體:使用ssd/sas磁碟,可以買多塊,製作成raid10。
NFS伺服器端配置:
/data 10.0.0.0/24(rw,sync,all_squash,anonuid=65534,anongid=65534)
NFS客戶端掛載優化配置命令:
mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,rsize=131072,
wsize=131072 172.16.1.31:/data /mnt <===兼顧安全性能
對NFS服務的所有伺服器內核進行優化,執行命令如下:
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
執行sysctl -p 生效
大型網站NFS網路文件系統的替代軟體為分布式文件系統,如:Moosefs(mfs)、GlusterFS、FastDFS。
1.4 NFS系統應用的優缺點
1.4.1 優點
簡單,容易上手,容易掌握。
NFS文件系統內數據是在文件系統之上的,即數據是能看得見的。
部署快速維護簡單方便,且可控,滿足需求就是最好的。
可靠,從軟體層面上看,數據可靠性高,經久耐用。
服務非常穩定。
1.4.2 缺點(局限)
存在單點故障,如果NFS服務端宕機了,所有客戶端都不能訪問共享目錄。
在大數據高並發的場合,NFS效率、性能有限。
客戶端認證是基於IP和主機名的,許可權要根據ID識別,安全性一般。
NFS數據是明文的,NFS本身不對數據完整性進行驗證。
多台客戶機掛載一個NFS伺服器時,連接管理維護麻煩。
1.4.3 解決性能問題的方法
使用CDN加速以及自己搭建文件緩存服務(squid、nginx、varnish)。
把多個目錄分配到不同的NFS伺服器上。
棄用NFS(即讀寫分離)。
使用分布式文件系統。
Ⅳ NFS伺服器的安裝與配置
由於實驗室的項目需要實現在CephFS之上建立NFS之上,所以記錄一下NFS伺服器的安裝與配置流程。
NFS 伺服器可以讓客戶端將網路遠程的 NFS 伺服器分享的目錄,直接掛載到本地端的機器當中。本地端的機器通過直接讀寫掛載的目錄,就可以同步到NFS伺服器之上。
系統平台:Ubuntu 14.04
NFS Server IP:192.168.1.2
iptables關閉: Firewall is disable.(NFS埠使用在默認情況下是不固定,所以若配置NFS伺服器需要搭配防火牆使用的話,請配置固定埠)
SELINUX=disabled
NFS的安裝只需要安裝rpcbind與nfs-server就可以對外提供服務了。
NFS伺服器的主要配置文件就是:/etc/exports。不過這個配置文件不一定會存在,可能需要使用 vim 主動新建這個文件。
/etc/exports文件由以下選項構成:
每一行最前面是要分享出來的目錄,目錄可以依照不同的許可權分享給不同的主機。若許可權參數不止一個時,則以逗號 (,) 分開。且主機名與小括弧是連在一起的喔!其中參數是可選的,當不指定參數時,nfs將使用默認選項。默認的共享選項是 sync,ro,root_squash,no_delay 當主機名或IP地址為空時,則代表共享給任意客戶機提供服務。
下面是一些NFS共享的常用參數:
這里我們使用了NFS v3的配置,如下圖所示:
配置完/etc/exports之後,接下來就可以啟動NFS伺服器了。
為了使NFS伺服器能正常工作,需要啟動rpcbind和nfs-kernel-server兩個服務,並且rpcbind一定要先於nfs-kernel-server啟動。
若要開機自啟動nfs服務,可以通過sysv-rc-conf配置自啟動服務。
客戶端的掛載很簡單,先建立一個掛載目錄
之後客戶端對應的文件目錄便掛載上對應的文件系統了。
客戶端可以通過命令配置開機自啟動掛載NFS的文件系統。
將對應的命令 mount -t nfs 192.168.12:/tmp /mnt/nfs
添加至/etc/rc.d/local,不要嘗試在直接在/etc/fstab/里掛載
小結 :梳理了一下在ubuntu之下NFS伺服器的安裝與配置。當然RedHat系列的發行版也是大同小異。若有疏漏,望指點斧正。
Ⅵ 虛擬機linux nfs 配置問題
vi /etc/exports
/www 192.168.1.0/24(rw) *(ro)
共享/www目錄 192.168.1.0/24網段可讀寫 其他人只讀(ro)
啟動服務:注意下nfs服務埠是隨機變動的這個時候就需要用用RPC來注冊
所以啟動服務之前先啟動RPC
rpc 服務名為portmap
/etc/rc.d/init.d/portmap start
/etc/rc.d/init.d/nfs start
注意:我暈 你先注意一下 你輸入的命令service nfs restart
這個是一個重新啟動命令 , 如果服務已經啟動,前兩個 會是OK。 因為該命令會先關閉服務之後再重新開始。 啟動服務用service nfs start 關閉用service nfs stop
Ⅶ 怎麼在虛擬機vmware下的ubuntu中搭建nfs伺服器
1.1 搭建NFS伺服器
NFS(Network FileSystem,網路文件系統)是由SUN公司發展,並於1984年推出的技術,用於在不同機器,不同操作系統之間通過網路互相分享各自的文件。NFS設計之初就是為了在不同的系統間使用,所以它的通訊協議設計與主機及操作系統無關。
NFS分伺服器和客戶機,當使用遠端文件時只要用mount命令就可把遠端NFS伺服器上的文件系統掛載在本地文件系統之下,操作遠程文件與操作本地文件沒有不同。NFS伺服器所共享文件或目錄記錄在/etc/exports文件中。
嵌入式Linux開發中,會經常使用NFS,目標系統通常作為NFS客戶機使用,Linux主機作為NFS伺服器。在目標系統上通過NFS,將伺服器的NFS共享目錄掛載到本地,可以直接運行伺服器上的文件。在調試系統驅動模塊以及應用程序,NFS都是十分必要的,並且Linux還支持NFS根文件系統,能直接從遠程NFS root啟動系統,這對嵌入式Linux根文件系統裁剪和集成也是十分有必要的。
安裝nfs-kernel-server:
ky@ubuntu:~$ sudo apt-get install nfs-kernel-server
設置NFS-Server目錄。修改/etc/exports文件,在其中增加NFS伺服器目錄。 一個NFS伺服器可以共享多個NFS目錄,在/etc/exports文件中,每個目錄的設置獨佔一行,編寫格式如下:
NFS共享目錄路徑 客戶機IP或者名稱(參數1,參數2,...,參數n)
說明:
q NFS共享目錄可以是主機的任何一個目錄,為了方便使用,最好將許可權設置為777。
q 客戶機指的是可以訪問共享目錄的客戶機的IP或者主機名,可以是指定的IP或者主機名。如果使用IP,可以使用通配符。假如指定IP為192.168.1.x的客戶機可以訪問,可以寫成192.168.1.*,如果設置為*,則表示任何客戶機都可以訪問。
q 訪問參數可以是一個,也可以是多個,用逗號分開。可能的參數和說明如 REF _Ref286733518 \h 表 5. 所列。
表 STYLEREF 1 \s 5. SEQ 表 \* ARABIC \s 1 1 NFS設置參數和說明
參數
說明
ro
只讀訪問
rw
讀寫訪問
sync
所有數據在請求時寫入共享
async
nfs在寫入數據前可以響應請求
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
假定NFS共享目錄是/home/ky/nfs,允許所有客戶機訪問,/etc/exports文件可寫為:
/home/ky/nfs *(rw,sync,no_subtree_check, no_root_squash)
啟動NFS伺服器。啟動portmap(如果有必要)和nfs-kernel-server服務:
ky@ubuntu:~$ sudo service portmap start
ky@ubuntu:~$ sudo service nfs-kernel-server start
本地驗證NFS伺服器。將NFS伺服器目錄掛載到本機另外一個目錄下,可以看到掛載點目錄下可以看到NFS伺服器目錄中的文件。
ky@ubuntu:~$ ls /home/ky/nfs/
aaaa
ky@ubuntu:~$ sudo mount -t nfs 127.0.0.1:/home/ky/nfs /mnt
ke@ubuntu:~$ ls /mnt
aaaa
ky@ubuntu:~$ sudo umount /mnt/
用開發板驗證NFS伺服器是否可用。啟動開發板,進入系統,配置好開發板的IP地址後,用mount命令掛載NFS伺服器的NFS目錄:
target# mount -t nfs 192.168.1.3:/home/ky/nfs /mnt -o nolock
target# ls /mnt
kingyee
target# umount /mnt/
掛載成功後,可以在開發板的/mnt目錄下看到NFS伺服器上的文件。
說明,使用開發板與虛擬機安裝的客戶系統進行NFS掛載,需要將虛擬網卡設置為Bridged模式,並建議使用靜態IP地址。
如果在使用中需要增加新的NFS共享目錄,直接修改/etc/exports文件即可。修改該文件後,可以不用重啟NFS服務,用exportfs命令讀取/etc/exports文件,重新共享輸出。exportfs命令語法如下:
exportfs [-aruv]
選項說明:
-a:全部掛載(或卸載) /etc/exports的設置;
-r:重新掛載/etc/exports的設置;
-u:卸載某一個目錄;
-v:在輸出的時候,把共享目錄顯示出來。
如果NFS已經啟動,修改了/etc/exports文件,執行如下命令,新的設置即可生效:
ky@ubuntu:~$ exportfs -ra