NFS網(wǎng)絡文件共享存儲服務器-創(chuàng)新互聯(lián)

NFS網(wǎng)絡文件共享存儲服務器

創(chuàng)新互聯(lián)于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目網(wǎng)站建設、成都做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元威信做網(wǎng)站,已為上家服務,為威信各地企業(yè)和個人服務,聯(lián)系電話:18982081108

什么是NFS

NFS(Network File System)即網(wǎng)絡文件系統(tǒng),它允許網(wǎng)絡中的計算機之間通過TCP/IP網(wǎng)絡共享資源。在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位于遠端NFS服務器上的文件,就像訪問本地文件一樣。

在企業(yè)集群架構的工作場景中,NFS網(wǎng)絡文件系統(tǒng)一般被用來共享存儲視頻、圖片、附件等靜態(tài)資源文件,通常網(wǎng)站用戶上的文件都會存放到NFS共享里。例如bbs產(chǎn)品的圖片、附件頭像等。然后前段所有的節(jié)點訪問這些靜態(tài)資源時都會讀取NFS存儲上的資源。

企業(yè)生成集群中為什么要部署NFS存儲服務

NFS網(wǎng)絡文件共享存儲服務器

1)在沒有NFS文件共享存儲時的原理解釋:

當A用戶上傳圖片到web1服務器時,然后B用戶訪問這張圖片,結(jié)果B用戶訪問圖片的請求到了負載均衡器的時候,被分發(fā)到web2服務器上,因為web2沒有A用戶上傳的圖片,所以B用戶就無法看到A用戶上傳的圖片。

實例:淘寶賣家將新出的產(chǎn)品資料上傳到淘寶服務器。如果沒有存儲服務器,那么當大量的用戶訪問到這個淘寶賣家店里的時候,分發(fā)器將用戶的請求都分發(fā)給淘寶的其他服務器,那么用戶就無法看到賣家新出的產(chǎn)品了,這就導致了降低了用戶體驗。這樣對一個戶門網(wǎng)站來說是一個很大的錯誤。

NFS網(wǎng)絡文件共享存儲服務器

2)在有NFS文件共享存儲時的原理解釋:

當A用戶上傳一張圖片到web服務器中,分發(fā)器不論是轉(zhuǎn)發(fā)到那一臺web服務器,其內(nèi)容最后都會被存放到NFS共享文件存儲中。而當B用戶訪問A用戶上傳的圖片時,無論請求被分發(fā)器分發(fā)web1還是web2上,最終都會到共享存儲上找,都可以找到A用戶上傳的圖片。

NFS的工作原理

NFS網(wǎng)絡文件共享存儲服務器

服務端設置一個專門用來共享的目錄(/test)。設置好共享目錄的權限,IP等內(nèi)容。然后具有權限的客戶端訪問NFS服務器端,將這個共享目錄掛載到客戶端的某個目錄下。客戶端在正確掛載完之后,就可以通過NFS客戶端的掛載點所在的目錄中查看到NFS服務端共享目錄/test下的所有數(shù)據(jù)??蛻舳瞬榭磿r,NFS服務端的/test目錄就相當于客戶端本地的磁盤分區(qū)或目錄。

什么RPC服務

RPC指遠程過程調(diào)用。

因為NFS支持的功能比較多,而不同的功能都會使用不同的程序來啟動,為啟動一個功能就會啟用一些未被使用的端口來作為傳輸只用,因為端口的不固定,這樣一來就會造成NFS客戶端與NFS服務器端的通信障礙沒因為NFS客戶端必須要知道NFS服務器端的數(shù)據(jù)傳輸端口才能進行通信,才能交互數(shù)據(jù)。

為了解決上述的問題,就需要RPC服務,NFS服務的RPC服務最主要的功能就是記錄每個NFS功能所對飲的端口號,并且NFS客戶端請求時將該端口和功能對應的信息傳輸給請求數(shù)據(jù)的NFS客戶端,從而保證客戶端可以連接到正確的NFS端口上去,達到實現(xiàn)數(shù)據(jù)交互的目的。

服務端的RPC服務如何知道每個NFS的端口的:

當NFS讀取端啟動服務時會隨機取用若干端口,并主動向RPC服務注冊相關端口的對應的功能,然后RPC服務使用固定的111端口來監(jiān)聽NFS客戶端提交的請求,并將正確的NFS端口信息回復給請求的NFS客戶端。

NFS的掛載基本使用過程

NFS網(wǎng)絡文件共享存儲服務器

請求數(shù)據(jù)的流程:

1)首先用戶訪問網(wǎng)站程序,由程序在NFS客戶端上發(fā)出存取NFS文件的請求,這是NFS客戶端的RPC服務就不通過網(wǎng)絡向NFS服務器端的RPC服務的111端口發(fā)出NFS文件存取功能的查詢請求,包括要實現(xiàn)的什么功能。

2)NFS服務器端的RPC服務找到對飲的已注冊的NFS端口,通知NFS客戶端的RPC服務。

3)此時NFS客戶端獲取到正確的端口,并與NFS聯(lián)機存取數(shù)據(jù)。

4)NFS客戶端把數(shù)據(jù)存取成功后,返回給客戶端程序,告知用戶存取結(jié)果。

注意:

因為NFS的各項功能都需要向RPC服務注冊端口,所以只有RPC服務才能獲取到NFS服務的各項功能對應的端口號,PID、NFS在主機監(jiān)聽的Ip等信息,而客戶端也只能通過向RPC服務詢問才能找到正確 的端口,因此,無論是NFS服務端還是NFS客戶端都需要RPC服務的協(xié)助才能完成對外服務及請求。

一:實驗目標

1、完成NFS的文件共享

二:實驗環(huán)境

服務器系統(tǒng)

主機名

IP

作用

軟件

Rhel6.5

yu61

192.168.1.61

Nfs-server

nfs-utils、rpcbind

Rhel6.5

yu62

192.168.1.62

Nfs-client1

nfs-utils、rpcbind

Rhel6.5

yu63

192.168.1.63

Nfs-client2

nfs-utils、rpcbind

三:實驗步驟

1、安裝NFS服務端

[root@yu61 ~]# yum install nfs-utils rpcbind -y

[root@yu61 ~]#

[root@yu61 ~]# /etc/init.d/rpcbind status

rpcbind (pid  1615) is running...

[root@yu61 ~]# lsof -i :111

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

rpcbind 1615  rpc    6u  IPv4  11330      0t0  UDP *:sunrpc

rpcbind 1615  rpc    8u  IPv4  11333      0t0  TCP *:sunrpc (LISTEN)

rpcbind 1615  rpc    9u  IPv6  11335      0t0  UDP *:sunrpc

rpcbind 1615  rpc   11u  IPv6  11338      0t0  TCP *:sunrpc (LISTEN)

2、查看NFS服務向RPC服務注冊的端口信息

因為NFS服務還沒有啟動,一次沒有太多注冊端口映射信息。

[root@yu61 ~]# rpcinfo -p localhost

   program vers proto   port  service

    100000    4   tcp    111  portmapper

    100000    3   tcp    111  portmapper

    100000    2   tcp    111  portmapper

    100000    4   udp    111  portmapper

    100000    3   udp    111  portmapper

    100000    2   udp    111  portmapper

    100024    1   udp  43521  status

100024    1   tcp  60423  status

3、啟動NFS服務

[root@yu61 ~]# /etc/init.d/nfs start

rpc.rquotad (pid 49232) is running...

[root@yu61 ~]# rpcinfo -p localhost

   program vers proto   port  service

    100000    4   tcp    111  portmapper

    100000    3   tcp    111  portmapper

    100000    2   tcp    111  portmapper

    100000    4   udp    111  portmapper

    100000    3   udp    111  portmapper

    100000    2   udp    111  portmapper

    100024    1   udp  43521  status

    100024    1   tcp  60423  status

    100011    1   udp    875  rquotad

    100011    2   udp    875  rquotad

    100011    1   tcp    875  rquotad

    100011    2   tcp    875  rquotad

    100005    1   udp  38917  mountd

    100005    1   tcp  44150  mountd

    100005    2   udp  42858  mountd

    100005    2   tcp  52228  mountd

    100005    3   udp  41216  mountd

100005    3   tcp  60796  mountd

4、NFS服務常見的進程詳解

[root@yu61 ~]# ps -ef | egrep "rpc|nfs"

rpc        1615      1  0 11:00 ?        00:00:00 rpcbind

rpcuser    1755      1  0 11:00 ?        00:00:00 rpc.statd

root      49221      2  0 18:35 ?        00:00:00 [rpciod/0]

root      49222      2  0 18:35 ?        00:00:00 [rpciod/1]

root      49223      2  0 18:35 ?        00:00:00 [rpciod/2]

root      49224      2  0 18:35 ?        00:00:00 [rpciod/3]

root      49232      1  0 18:35 ?        00:00:00 rpc.rquotad

root      49236      1  0 18:35 ?        00:00:00 rpc.mountd

root      49242      2  0 18:35 ?        00:00:00 [nfsd4]

root      49243      2  0 18:35 ?        00:00:00 [nfsd4_callbacks]

root      49249      2  0 18:35 ?        00:00:00 [nfsd]

root      49250      2  0 18:35 ?        00:00:00 [nfsd]

root      49251      2  0 18:35 ?        00:00:00 [nfsd]

root      49274      1  0 18:35 ?        00:00:00 rpc.idmapd

root      49318   2821  0 18:36 pts/0    00:00:00 egrep rpc|nfs

(1)Nfs服務啟動的進程說明

NFS服務的主要任務是共享文件刺痛的數(shù)據(jù),而文件系統(tǒng)數(shù)據(jù)的共享離不開權限問題。所以NFS服務器啟動后時擲篩需要兩個不同的進程,一個是管理NFS客戶端是否能夠登入rpxc.nfsd主進程,另一個用于管理NFS客戶端是否能夠取得對應權限的rpc.mountd進程,如果還需要管理磁盤配額,則NFS還需要再加載rpc.rpuotad進程。

服務或進程

用途說明

nfsd (rpc.nfsd)

Rpc.nfsd的主要功能是管理NFS服務器端主機

Mountd (rpc.mountd)

rpc.mountd的主要功能則是管理NFS文件系統(tǒng),當NFS客戶端順利通過rpc.nfsd登入NFS服務器端的主機時,在使用NFS服務器提供數(shù)據(jù)之前,他會去讀NFS的配置文件/etc/exports來對比NFS客戶端的權限,通過這一關之后,還要經(jīng)過NFS服務器端本地文件系統(tǒng)使用權限的認證程序,

rpc.locke

可以用來鎖定文件,用于多客戶端同時寫入

rpc.statd

檢查文件的一致性

rpc.idmapd

名字映射后臺進程

5、配置NFS服務器端的服務開機自啟動

[root@yu61 ~]# chkconfig rpcbind on

[root@yu61 ~]# chkconfig nfs on

[root@yu61 ~]# chkconfig --list | egrep "nfs\b|rpcbind"

nfs            0:off1:off2:on3:on4:on5:on6:off

rpcbind        0:off1:off2:on3:on4:on5:on6:off

[root@yu61 ~]# tail -3 /etc/rc.local

tail: inotify cannot be used, reverting to polling

#start uo nfs

/etc/init.d/rpcbind start

/etc/init.d/nfs start

6、Nfs服務器端共享文件的配置文件路徑

[root@yu61 ~]# cat /etc/exports

格式:

Nfs共享目錄nfs客戶端1地址(權限)nfs客戶端2地址(權限)

例如:可以編輯/etc/exports為:

/tmp*(rw,no_root_squash)

/home/public192.168.0.*(rw)*(ro)

/home/test192.168.0.100(rw)

/home/linux*.the9.com(rw,all_squash,anonuid=40,anongid=40)

7、NFS配置權限設置常用參數(shù)說明

參數(shù)名稱

參數(shù)用途

ro

只讀訪問

rw

讀寫訪問

sync

所有數(shù)據(jù)在請求時寫入共享

async

NFS在寫入數(shù)據(jù)前可以相應請求

secure

NFS通過1024以下的安全TCP/IP端口發(fā)送

insecure

NFS通過1024以上的端口發(fā)送

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用戶一樣的權限(默認)

anonuid=xxx

指定NFS服務器/etc/passwd文件中匿名用戶的UID

實戰(zhàn):NFS服務案例配置

1、創(chuàng)建需要共享的目錄并授權

[root@yu61 ~]# mkdir -p /data

[root@yu61 ~]# touch /data/a.txt

[root@yu61 ~]# cp /etc/shadow /data/

[root@yu61 ~]# chown -R nfsnobody.nfsnobody /data

[root@yu61 ~]# chmod 777 /data/

[root@yu61 ~]# ls -ld /data/

drwxrwxrwx 3 nfsnobody nfsnobody 4096 May 20 19:16 /data/

[root@yu61 ~]# grep nfsnobody /etc/passwd

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

2、配置NFS服務的配置文件,并在本地查看掛在信息

[root@yu61 ~]# vim /etc/exports

[root@yu61 ~]# cat /etc/exports

/data 192.168.1.0/24 (rw,sync)

[root@yu61 ~]# exportfs -rv

exporting 192.168.1.0/24:/data

exporting *:/data

[root@yu61 ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sr0        3.6G  3.6G     0 100% /mnt

[root@yu61 ~]# mount -t nfs 192.168.1.61:/data/ /mnt/

[root@yu61 ~]# df -h

Filesystem           Size  Used Avail Use% Mounted on

/dev/sr0              20G  4.6G   14G  26% /mnt

192.168.1.61:/data/   20G  4.6G   14G  26% /mnt

3、客戶端安裝rpcbind

[root@yu63 ~]# yum install rpcbind nfs-utils -y

[root@yu63 ~]# /etc/init.d/rpcbind status

rpcbind (pid  1695) 正在運行...

[root@yu63 ~]# echo "/etc/init.d/rpcbind start" >> /etc/rc.local

[root@yu63 ~]# echo "/bin/mount -t nfs 192.168.1.61:/data /mnt " >> /etc/rc.local

[root@yu63 ~]# tail -2 /etc/rc.local

tail: inotify cannot be used, reverting to polling

/etc/init.d/rpcbind start

/bin/mount -t nfs 192.168.1.61:/data /mnt

[root@yu63 ~]# showmount -e 192.168.1.61

Export list for 192.168.1.61:

/data (everyone)

4、掛在服務端的共享文件

[root@yu63 ~]# mount -t nfs 192.168.1.61:/data /mnt

[root@yu63 ~]# df -h

Filesystem          Size  Used Avail Use% Mounted on

hm

/dev/sda1           4.9G  162M  4.5G   4% /boot

/dev/sr0             20G  4.6G   14G  26% /mnt

192.168.1.61:/data   20G  4.6G   14G  26% /mnt

[root@yu63 ~]# mount

.........

192.168.1.61:/data on /mnt type nfs (rw,vers=4,addr=192.168.1.61,clientaddr=192.168.1.63)

5、測試讀寫數(shù)據(jù)

[root@yu63 ~]# ls /mnt

a.txt   shoadow

[root@yu63 ~]# mkdir /mnt/test

[root@yu63 ~]# ls /mnt

a.txt shoadow test

[root@yu61~]# ls /mnt

a.txt   shoadow   test

附件:

NFS常用路徑

說明

/etc/exports

NFS服務的主配置文件。

/usr/sbin/exports

NFS的管理命令,可以加載NFS配置生效等

/usr/sbin/showmount

用來客戶端查看NFS配置及掛在結(jié)果命令

/var/lib/nfs/etab

NFS配置文件的完整參數(shù)設定文件

/pro/mounts

客戶端掛在參數(shù)

/vae/lib/nfs/rmtab

客戶端訪問服務器exports的信息列表

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

名稱欄目:NFS網(wǎng)絡文件共享存儲服務器-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://bm7419.com/article44/hcche.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、商城網(wǎng)站App開發(fā)、搜索引擎優(yōu)化、品牌網(wǎng)站設計虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設