搭建nvs伺服器
『壹』 在Windows上自建nfs,性能比較差,這個怎麼辦
本文描述了在應用環境為Windows系統下,需要使用文件存儲的場景。本文採用了私有化部署的方式向用戶提供了文件共享存儲服務。用NFS協議,搭建Windows環境NFS服務,為Windows系統下的雲主機提供共享訪問服務。
存儲格式都有哪些?
文件、塊和對象是三種以不同的方式來保存、整理和呈現數據的存儲格式。這些格式各有各的功能和限制。文件存儲會以文件和文件夾的層次結構來整理和呈現數據;塊存儲會將數據拆分到任意劃分且大小相同的卷中; 對象存儲會管理數據並將其鏈接至關聯的元數據
塊存儲
塊存儲主要是將裸磁碟空間整個映射給主機使用的,就是說例如磁碟陣列裡面有5塊硬碟(為方便說明,假設每個硬碟1G),然後可以通過劃邏輯盤、做Raid、或者LVM(邏輯卷)等種種方式邏輯劃分出N個邏輯的硬碟。(假設劃分完的邏輯盤也是5個,每個也是1G,但是這5個1G的邏輯盤已經於原來的5個物理硬碟意義完全不同了。例如第一個邏輯硬碟A裡面,可能第一個200M是來自物理硬碟1,第二個200M是來自物理硬碟2,所以邏輯硬碟A是由多個物理硬碟邏輯虛構出來的硬碟。)
典型設備:磁碟陣列,硬碟
文件存儲
為了克服塊存儲文件無法共享的問題,所以有了文件存儲。主要功能是通過網路(一般是區域網)讓不同的主機系統之間可以共享文件或目錄。本文文件存儲採用NFS協議,NFS客戶端(一般為應用伺服器,例如Web)可以通過掛載(mount)的方式將NFS伺服器端共享的數據目錄掛載帶NFS客戶端本地系統中(就是某一個掛載點下)。從客戶端本地看,NFS伺服器端共享的目錄就好像是客戶端自己的磁碟分區或目錄一樣,而實際上確實遠端的NFS伺服器的目錄。
典型設備:FTP、NAS
對象存儲
對象存儲系統(Object-Based Storage System)是綜合了NAS和SAN的優點,同時具有SAN的高速直接訪問和NAS的數據共享等優勢,提供了高可靠性、跨平台性以及安全的數據共享的存儲體系結構。對象存儲主要操作對象是對象(Object)。和文件和對象存儲相比,沒有隨機讀寫的介面。和文件存儲相比,沒有目錄樹的概念。協議更注重簡潔。
典型設備:內置大容量硬碟的分布式伺服器、京東雲OSS即對象存儲
文件存儲的適用場景
文件與較底層的塊存儲不同, 上升到了應用層, 一般指的就是NAS ,一套網路儲存設備, 通過TCP/IP進行訪問, 協議為NFSv3/v4由於通過網路。下面簡單介紹以下NFS存儲適用的兩個場景,當然,還有更多的場景適合使用文件存儲,本文不一一列出。
Web 服務
前端面向終端用戶的服務由多台web伺服器提供,多台伺服器需要共享文件存儲,文件系統、文件命名約定和許可權等符合應用系統需求。
媒資管理
媒體行業由於其工作流和媒資是一直變化的,很多用戶使用多雲或混合雲,媒體的剪輯、編輯在本地進行,存儲和分發在雲端,由於文件存儲可以和現有的系統輕松的集成,因此,很多用戶將文件存儲用於媒資管理。
Windows環境下的NFS文件服務的搭建
選擇Windows系統搭建NFS協議文件存儲系統的優勢如下:
系統交付後由用戶進行維護,用戶對Windows系統熟悉;
部分應用系統只能訪問文件存儲;
微軟的SMB協議是面向網路連接的共享協議,對網路傳輸的可靠性要求高,常使用TCP/IP;NFS是獨立於傳輸的,可使用TCP或UDP,同時考慮後期有linux系統擴容需求,故選擇NFS協議。
京東雲提供Linux環境的文件存儲服務,無需另行搭建。(詳見https://www.jdcloud.com/cn/procts/cloud-file-service)
本設計的優勢:
共享訪問-您在同一子網內的多台雲主機可以共享同一個雲文件服務中的文件存儲系統。對於多個應用實例需要共享通用數據源的場景,特別適合使用雲文件服務實現。
易於使用-支持標準的NFS協議,提供全託管的服務,無需修改應用,通過標準的文件系統掛載步驟即可實現無縫集成。極大降低遷移成本,簡化雲上項目開發。
穩定可靠-本系統存儲基於京東雲雲硬碟,採用3副本冗餘存儲,提供超強的穩定性和可靠性,滿足應用服務對文件系統的可用性和可靠性需求。
易於擴展-本系統存儲基於京東雲雲硬碟,可根據業務需求進行存儲空間的擴展。
一、創建NFS服務主機
1、創建實例
在京東雲上創建一台雲主機,作為NFS伺服器;NFS服務要和已有雲資源創建在同一區域,同一VPC中。
登錄京東雲控制台,選擇彈性計算-雲主機-實例,選擇創建實例所屬地域,點擊「創建」按鈕,進入雲主機購買頁面。
2、選擇計費模式
包年包月和按配置計費,包年包月按一個正月進行購買付費,按配置計費按照實際使用的時長(精確至秒)每小時進行扣費。
3、地域與可用區選擇
在此步驟仍可以選擇實例對應的地域(華北-北京、華南-廣州、華東-宿遷及華東-上海)及可用區,請注意「不同地域資源內網不互通,創建之後不可更改」,如果所選地域限額已滿,可以通過提交工單提升限額。
4、創建方式選擇
提供三種創建方式 自定義創建、使用實例模板創建、在高可用組內創建,後兩種需要您預先創建好實例模板和高可用組,我們使用保持默認選項「自定義創建」。
5、選擇windows系統鏡像
鏡像分為雲硬碟系統盤鏡像及本地盤系統盤鏡像,前者僅支持創建系統盤為雲硬碟的實例,後者僅支持創建系統盤為本地盤的實例。因為搭建windows系統環境的NFS存儲,故鏡像選擇官方-windows server-windows server 2012 R2標准版。
6、選擇實例規格
實例的規格支持用戶自定義選擇,從最小的1核1G(如g.s1.micro)到72C576GB(如m.n2.18xlarge),用戶可以根據不同業務場景選擇實例規格及相應配置。考慮到NFS對主機計算性能要求不高,選擇2核4G規格主機。
7、配置NFS存儲
雲主機數據盤:數據盤為NFS系統存儲盤,可以根據實際業務需要選擇容量。(此處選擇20G為例)
8、配置實例網路
選擇私有網路及子網:VPC子網選擇與需要訪問NFS存儲的雲主機所在的VPC。
選擇內網IP分配方式:如對內網IP地址沒有特殊要求,可以不指定由系統自動在子網可用網段內分配,如需指定請在提示範圍內輸入,系統會校驗IP是否可用。須注意的是,若選擇自定義內網IP地址,則無法批量創建實例。
9、選擇安全組
實例在創建時必須綁定一個安全組,若當前地域下未創建自定義安全組,可以在系統創建的三個默認安全組中選擇一個綁定(每個私有網路創建成功之後都會自動創建三個默認安全組),也可以通過快速入口前往安全組頁面創建安全組。由於官方鏡像系統內防火牆默認關閉,建議綁定僅開放22埠(Linux)或3389埠(Windows)的安全組,實例創建之後再根據訪問需求創建新的安全組並綁定。
10、配置公網帶寬
帶寬計費方式:京東雲提供按固定帶寬和按使用流量兩種帶寬計費類型的彈性公網IP,按固定帶寬計費按購買時設置的帶寬上限值付費,而與實際訪問公網所用帶寬無關,按使用流量計費則根據您實時訪問公網的實際流量計費。
線路:彈性公網IP線路分為:BGP和非BGP,若您需要更快更高效的網路接入請選用BGP。
帶寬范圍:1Mbps~200Mbps。在創建主機過程中可以暫不購買公網IP,完成主機創建後,再進行綁定。
NFS存儲如果只供VPC內雲主機使用,可以不購買公網IP和帶寬。
11、設置實例名稱、描述
您需要設置創建的主機名,名稱不可為空,只支持中文、數字、大小寫字母、英文下劃線「 _ 」及中劃線「 - 」,且不能超過32字元,如果為批量創建購買,名稱以「xxx1」、「xxx2」依次顯示。同時支持為實例添加描述,描述允許為空,若添加長度不能超過256字元。
12、設置密碼
可以選擇「立即設置」密碼,也可以選擇「暫不設置」(系統會以簡訊和郵件方式發送默認密碼),密碼除了用於SSH登錄實例時的密碼,也是控制台通過VNC登錄實例的密碼。
確認雲主機數量及購買時長 購買數量受限該地域您雲主機、雲硬碟、公網IP限額以及所選子網剩餘IP數量,若限額不夠,可通過提交工單提升限額。若購買包年包月實例,則需要設置購買時長,最短為1個月,最長為2年,支付十個月費用即可享受一年服務。若需要更長服務時長請提交工單。
點擊確認後,返回到控制台,顯示創建中,待狀態為運行,NFS服務主機創建完畢。
13、登陸雲主機
14、添加數據盤
打開,開始菜單-伺服器管理器-文件和存儲服務-磁碟,如下圖:
選擇數據硬碟,右鍵選擇新建卷,文件格式為NTSF
二、建立NFS服務
1、安裝NFS伺服器端組件
打開,開始菜單-伺服器管理器」,在主頁儀錶板中單擊「添加角色和功能」,如下圖所示。
在「開始之前」對話框中,會顯示配置成NFS伺服器必要的前提步驟,請按文字介紹的注意事項確認一下,如果沒有問題的話,可以單擊「下一步」,如下圖所示:
在「安裝類型」對話框中,選擇「基於角色或基於功能的安裝」,然後單擊「下一步」,如下圖所示:
在「伺服器選擇」對話框中,選擇「從伺服器池中選擇伺服器」,然後單擊「下一步」:
在「伺服器角色」對話框中,選擇「文件和存儲服務」中「NFS伺服器」,然後單擊「下一步」,如下圖所示:
繼續單擊「下一步」,如下圖所示:
在「確認」對話框中,可以看到我們從第一步到最後一步選擇的參數等信息,如果有要修改的地方,可以單擊「上一步」返回修改,確認沒有問題的話,可以單擊「安裝」,如下圖所示:
至此,Windows系統的NFS服務端安裝完畢,根據提示重啟伺服器。
2、創建共享服務
NFS服務端安裝完畢,回到伺服器管理器,選擇文件和存儲服務
選擇 共享-啟動新加共享向導
選擇「NFS共享-快速」
選擇數據盤,設置共享名稱
選擇「身份驗證」相關配置,如下圖所示:
設置共享許可權,許可權請根據實際需要設置
創建完畢,顯示」已成功創建共享「,如下圖所示:
3、設置共享文件夾
在要設定共享的文件夾屬性中,選擇「NFS共享」欄位,點擊「管理NFS共享」, 在「NFS高級共享」對話框中,選擇並勾選「共享此文件夾」:
返回伺服器管理器,共享對話框中,可以看到剛才新建的文件夾共享已經成功
參考資料:
1、文件存儲、塊存儲還是對象存儲?redhat官網
2、塊存儲、文件存儲、對象存儲這三者的本質差別是什麼?.知乎.2016-1-1[引用日期2017-10-04]
(https://ke..com/reference/18736489/a856jWYROoQogtX1hq-v--)
3、今非昔比:塊存儲的復雜度提高 .TechTarget存儲[引用日期2015-10-21](https://ke..com/reference/18736489/_rJK0l8aRaFmmhbzPj4Kk-4OMDrn9AGlEt1D-YeUws8wnhuYuc7rJUcaI-B0fg)
點擊"京東雲"了解更多詳情
『貳』 Linux搭建NFS伺服器
作者:SpookZanG
linux搭建NFS伺服器
一、什麼是NFS服務
NFS是Network
File
System的簡寫,即網路文件系統.
網路文件系統是FreeBSD支持的文件系統中的一種,也被稱為NFS.
NFS允許一個系統在網路上與它人共享目錄和文件。通過使用NFS,用戶和程序可以象訪問本地文件一樣訪問遠端系統上的文件。
二、NFS的優勢
1.本地工作站使用更少的磁碟空間,因為通常的數據可以存放在一台機器上而且可以通過網路訪問到。
2.用戶不必在每個網路上機器里頭都有一個home目錄。Home目錄
可以被放在NFS伺服器上並且在網路上處處可用。
3.諸如軟碟機,CDROM,和
Zip®
之類的存儲設備可以在網路上面被別的機器使用。這可以減少整個網路上的可移動介質設備的數量。
NFS至少有兩個主要部分:一台伺服器和一台(或者更多)客戶機。客戶機遠程訪問存放在伺服器上的數據。為了正常工作,一些進程需要被配置並運行。
三、NFS的搭建
1、伺服器端
安裝NFS的服務程序
yum
install
-y
nfs-utils
寫配置文件
寫入
/music
192.168.0.0/255.255.255.0(rw,sync)
格式是:
要共享的目錄
共享的IP及掩碼或者域名(許可權,同步更新)
啟動服務
/etc/init.d/portmap
restart
/etc/init.d/nfs
restart
chkconfig
nfs
on
chkconfig
portmap
on
然後關閉防火牆以及更改Selinux關於NIS的選項
/etc/init.d/iptables
stop
(防護牆服務關閉)
chkconfig
iptables
off
system-config-selinux
(設置selinux)
2、客戶端
編輯fstab文件,實現開機自動掛載
mount
-t
nfs
IP:/目錄
掛載到的目錄
(此為臨時掛載)
如:mount
-t
nfs
192.168.0.9:/doce
/doc
編輯FSTAB文件
vim
/etc/init.d/fstab
IP:/目錄
掛載到的目錄
nfs
defaults
0
0
然後關閉防火牆以及更改Selinux關於NIS的選項
/etc/init.d/iptables
stop
(防護牆服務關閉)
chkconfig
iptables
off
system-config-selinux
(設置selinux)
至此,搭建完畢。
『叄』 win7下怎麼搭建NFS伺服器搭建和開發板共享文件系統
可以分以下幾步完成:
學習liunx開發, Linux 下的 C 編程、這本書必學《UNIX 環境高級編程》、《UNIX網路編程》,Rechard Stevens 寫的,C 高手大都學習過《C 和指針》、《C 缺陷與陷阱》、《高質量C/C++編程指南》、《C 專家編程》、《The C programming Language》
在此基礎在pc-win段開發一個虛擬系統pc-liunx端,自己可以在網上找相關資料,也可以去參考下qs-pte9搭建的平台。
開發板的系統稱作arm-liunx端,pc-win端就是你電腦的系統,就成為你開發板arm-liunx和pc-liunx虛擬系統的之間的橋梁,這樣就能實現文件互訪,共享了。
『肆』 如何在window下搭建nfs伺服器
一,軟體安裝:
1、軟體安裝比較簡單,從網路搜索haneWIN這款,下載下來後,雙擊運行,出現下圖所示界面後點「下一步」即可。
2、接下來是設置安裝路徑,這個根據個人設置選擇即可,就不再多說了。
3、然後是設置開始菜單下的文件名,在這里默認即可,點「下一步」繼續安裝。
4、以上配置成功後,點擊「安裝」開始軟體的安裝,後面會自動安裝完成。
二,軟體配置:
1、修改exports文件:
2、打開安裝包下的exports文件,默認是把D盤下的temp文件夾做為輸出目錄,這里可以根據自己的情況修改即可(-name:nfs不用去改)D:\temp -name:nfs
3、替換安裝目錄下的exports文件:
4、修改完後保存關閉,找到haneWIN軟體的安裝文件夾,替換掉原來的exports即可。
三,重啟nfs伺服器:
1、從開始菜單下找到haneWIN軟體,選擇NFS下的重啟所有服務,如下圖所示。
2、成功後顯示如一圖所示內容,如果不成功,建議右擊選擇以管理員身份運行,這個在很多同事那遇到過。
四,Linux掛載
1、在Linux中輸入以下命令(192.168.1.44為Windows下的IP地址,這里需改成你實際配置的IP):
2、mount –t nfs –o nolock 192.168.1.44:/nfs /nfs
『伍』 NFS伺服器如何搭建
搭建NFS伺服器就是用nfs軟體包啊
當系統管理員在exports文件中設置完成了需要輸出NFS共享目錄後《需要通過管理NFS服務程序對其他主機提供NFS文件共享。為了確保NFS服務能夠正常工作,系統中需要運行portmap和nfs兩個服務程序
『陸』 配置NFS伺服器的過程。
在講NFS SERVER的運作之前先來看一些與NFS SERVER有關的東西:
RPC(Remote Procere Call)
NFS本身是沒有提供信息傳輸的協議和功能的,但NFS卻能讓我們通過網路進行資料的分享,這是因為NFS使用了一些其它的傳輸協議。而這些傳輸協議勇士用到這個RPC功能的。可以說NFS本身就是使用RPC的一個程序。或者說NFS也是一個RPC SERVER.所以只要用到NFS的地方都要啟動RPC服務,不論是NFS SERVER或者NFS CLIENT。這樣SERVER和CLIENT才能通過RPC來實現PROGRAM PORT 的對應。可以這么理解RPC和NFS的關系:NFS是一個文件系統,而RPC是負責負責信息的傳輸。
NFS需要啟動的DAEMONS
pc.nfsd:主要復雜登陸許可權檢測等。
rpc.mountd:負責NFS的檔案系統,當CLIENT端通過rpc.nfsd登陸SERVER後,對clinet存取server的文件進行一系列的管理
NFS SERVER在REDHAT LINUX平台下一共需要兩個套件:nfs-utils和PORTMAP
nfs-utils:提供rpc.nfsd 及 rpc.mountd這兩個NFS DAEMONS的套件
portmap:NFS其實可以被看作是一個RPC SERVER PROGRAM,而要啟動一個RPC SERVER PROGRAM,都要做好PORT的對應工作,而且這樣的任務就是由PORTMAP來完成的。通俗的說PortMap就是用來做PORT的mapping的。
一:伺服器端的設定(以LINUX為例)
伺服器端的設定都是在/etc/exports這個文件中進行設定的,設定格式如下:
欲分享出去的目錄 主機名稱1或者IP1(參數1,參數2) 主機名稱2或者IP2(參數3,參數4)
上面這個格式表示,同一個目錄分享給兩個不同的主機,但提供給這兩台主機的許可權和參數是不同的,所以分別設定兩個主機得到的許可權。
可以設定的參數主要有以下這些:
rw:可讀寫的許可權;
ro:只讀的許可權;
no_root_squash:登入到NFS主機的用戶如果是ROOT用戶,他就擁有ROOT的許可權,此參數很不安全,建議不要使用。
root_squash:在登入 NFS 主機使用分享之目錄的使用者如果是 root 時,那麼這個使用者的許可權將被壓縮成為匿名使用者,通常他的 UID 與 GID 都會變成 nobody 那個身份;
all_squash:不管登陸NFS主機的用戶是什麼都會被重新設定為nobody。
anonuid:將登入NFS主機的用戶都設定成指定的user id,此ID必須存在於/etc/passwd中。
anongid:同 anonuid ,但是變成 group ID 就是了!
sync:資料同步寫入存儲器中。
async:資料會先暫時存放在內存中,不會直接寫入硬碟。
insecure 允許從這台機器過來的非授權訪問。
例如可以編輯/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)
設定好後可以使用以下命令啟動NFS:
/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默認啟動的)
/etc/rc.d/init.d/nfs start
exportfs命令:
如果我們在啟動了NFS之後又修改了/etc/exports,是不是還要重新啟動nfs呢?這個時候我們就可以用exportfs命令來使改動立刻生效,該命令格式如下:
exportfs [-aruv]
-a :全部mount或者unmount /etc/exports中的內容
-r :重新mount /etc/exports中分享出來的目錄
-u :umount 目錄
-v :在 export 的時候,將詳細的信息輸出到屏幕上。
具體例子:
[root @test root]# exportfs -rv
2、mount nfs目錄的方法:
mount -t nfs hostname(orIP):/directory /mount/point
具體例子:
Linux: mount -t nfs 192.168.0.1:/tmp /mnt/nfs
Solaris:mount -F nfs 192.168.0.1:/tmp /mnt/nfs
BSD: mount 192.168.0.1:/tmp /mnt/nfs
3、mount nfs的其它可選參數:
HARD mount和SOFT MOUNT:
HARD: NFS CLIENT會不斷的嘗試與SERVER的連接(在後台,不會給出任何提示信息,在LINUX下有的版本仍然會給出一些提示),直到MOUNT上。
SOFT:會在前台嘗試與SERVER的連接,是默認的連接方式。當收到錯誤信息後終止mount嘗試,並給出相關信息。
例如:mount -F nfs -o hard 192.168.0.10:/nfs /nfs
對於到底是使用hard還是soft的問題,這主要取決於你訪問什麼信息有關。例如你是想通過NFS來運行X PROGRAM的話,你絕對不會希望由於一些意外的情況(如網路速度一下子變的很慢,插拔了一下網卡插頭等)而使系統輸出大量的錯誤信息,如果此時你用的是HARD方式的話,系統就會等待,直到能夠重新與NFS SERVER建立連接傳輸信息。另外如果是非關鍵數據的話也可以使用SOFT方式,如FTP數據等,這樣在遠程機器暫時連接不上或關閉時就不會掛起你的會話過程。
rsize和wsize:
文件傳輸尺寸設定:V3沒有限定傳輸尺寸,V2最多隻能設定為8k,可以使用-rsize and -wsize 來進行設定。這兩個參數的設定對於NFS的執行效能有較大的影響
bg:在執行mount時如果無法順利mount上時,系統會將mount的操作轉移到後台並繼續嘗試mount,直到mount成功為止。(通常在設定/etc/fstab文件時都應該使用bg,以避免可能的mount不上而影響啟動速度)
fg:和bg正好相反,是默認的參數
nfsvers=n:設定要使用的NFS版本,默認是使用2,這個選項的設定還要取決於server端是否支持NFS VER 3
mountport:設定mount的埠
port:根據server端export出的埠設定,例如如果server使用5555埠輸出NFS,那客戶端就需要使用這個參數進行同樣的設定
timeo=n:設置超時時間,當數據傳輸遇到問題時,會根據這個參數嘗試進行重新傳輸。默認值是7/10妙(0.7秒)。如果網路連接不是很穩定的話就要加大這個數值,並且推薦使用HARD MOUNT方式,同時最好也加上INTR參數,這樣你就可以終止任何掛起的文件訪問。
intr 允許通知中斷一個NFS調用。當伺服器沒有應答需要放棄的時候有用處。
udp:使用udp作為nfs的傳輸協議(NFS V2隻支持UDP)
tcp:使用tcp作為nfs的傳輸協議
namlen=n:設定遠程伺服器所允許的最長文件名。這個值的默認是255
acregmin=n:設定最小的在文件更新之前cache時間,默認是3
acregmax=n:設定最大的在文件更新之前cache時間,默認是60
acdirmin=n:設定最小的在目錄更新之前cache時間,默認是30
acdirmax=n:設定最大的在目錄更新之前cache時間,默認是60
actimeo=n:將acregmin、acregmax、acdirmin、acdirmax設定為同一個數值,默認是沒有啟用。
retry=n:設定當網路傳輸出現故障的時候,嘗試重新連接多少時間後不再嘗試。默認的數值是10000 minutes
noac:關閉cache機制。
同時使用多個參數的方法:mount -t nfs -o timeo=3,udp,hard 192.168.0.30:/tmp /nfs
請注意,NFS客戶機和伺服器的選項並不一定完全相同,而且有的時候會有沖突。比如說伺服器以只讀的方式導出,客戶端卻以可寫的方式mount,雖然可以成功mount上,但嘗試寫入的時候就會發生錯誤。一般伺服器和客戶端配置沖突的時候,會以伺服器的配置為准。
4、/etc/fstab的設定方法
/etc/fstab的格式如下:
fs_specfs_filefs_typefs_optionsfs_mpfs_pass
fs_spec:該欄位定義希望載入的文件系統所在的設備或遠程文件系統,對於nfs這個參數一般設置為這樣:192.168.0.1:/NFS
fs_file:本地的掛載點
fs_type:對於NFS來說這個欄位只要設置成nfs就可以了
fs_options:掛載的參數,可以使用的參數可以參考上面的mount參數。
fs_mp-該選項被"mp"命令使用來檢查一個文件系統應該以多快頻率進行轉儲,若不需要轉儲就設置該欄位為0
fs_pass-該欄位被fsck命令用來決定在啟動時需要被掃描的文件系統的順序,根文件系統"/"對應該欄位的值應該為1,其他文件系統應該為2。若該文件系統無需在啟動時掃描則設置該欄位為0 。
5、與NFS有關的一些命令介紹
nfsstat:
查看NFS的運行狀態,對於調整NFS的運行有很大幫助
rpcinfo:
查看rpc執行信息,可以用於檢測rpc運行情況的工具。
四、NFS調優
調優的步驟:
1、測量當前網路、伺服器和每個客戶端的執行效率。
2、分析收集來的數據並畫出圖表。查找出特殊情況,例如很高的磁碟和CPU佔用、已經高的磁碟使用時間
3、調整伺服器
4、重復第一到第三步直到達到你渴望的性能
與NFS性能有關的問題有很多,通常可以要考慮的有以下這些選擇:
WSIZE,RSIZE參數來優化NFS的執行效能
WSIZE、RSIZE對於NFS的效能有很大的影響。
wsize和rsize設定了SERVER和CLIENT之間往來數據塊的大小,這兩個參數的合理設定與很多方面有關,不僅是軟體方面也有硬體方面的因素會影響這兩個參數的設定(例如LINUX KERNEL、網卡,交換機等等)。
下面這個命令可以測試NFS的執行效能,讀和寫的效能可以分別測試,分別找到合適的參數。對於要測試分散的大量的數據的讀寫可以通過編寫腳本來進行測試。在每次測試的時候最好能重復的執行一次MOUNT和unmount。
time dd if=/dev/zero of=/mnt/home/testfile bs=16k count=16384
用於測試的WSIZE,RSIZE最好是1024的倍數,對於NFS V2來說8192是RSIZE和WSIZE的最大數值,如果使用的是NFS V3則可以嘗試的最大數值是32768。
如果設置的值比較大的時候,應該最好在CLIENT上進入mount上的目錄中,進行一些常規操作(LS,VI等等),看看有沒有錯誤信息出現。有可能出現的典型問題有LS的時候文件不能完整的列出或者是出現錯誤信息,不同的操作系統有不同的最佳數值,所以對於不同的操作系統都要進行測試。
設定最佳的NFSD的COPY數目。
linux中的NFSD的COPY數目是在/etc/rc.d/init.d/nfs這個啟動文件中設置的,默認是8個NFSD,對於這個參數的設置一般是要根據可能的CLIENT數目來進行設定的,和WSIZE、RSIZE一樣也是要通過測試來找到最近的數值。
UDP and TCP
可以手動進行設置,也可以自動進行選擇。
mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR
UDP有著傳輸速度快,非連接傳輸的便捷特性,但是UDP在傳輸上沒有TCP來的穩定,當網路不穩定或者黑客入侵的時候很容易使NFS的 Performance 大幅降低甚至使網路癱瘓。所以對於不同情況的網路要有針對的選擇傳輸協議。nfs over tcp比較穩定, nfs over udp速度較快。在機器較少網路狀況較好的情況下使用UDP協議能帶來較好的性能,當機器較多,網路情況復雜時推薦使用TCP協議(V2隻支持UDP協議)。在區域網中使用UDP協議較好,因為區域網有比較穩定的網路保證,使用UDP可以帶來更好的性能,在廣域網中推薦使用TCP協議,TCP協議能讓NFS在復雜的網路環境中保持最好的傳輸穩定性。可以參考這篇文章: http: //www.hp.com.tw/ssn/unix/0212/unix021204.asp
版本的選擇
V3作為默認的選擇(RED HAT 8默認使用V2,SOLARIS 8以上默認使用V3),可以通過vers= mount option來進行選擇。
LINUX通過mount option的nfsvers=n進行選擇。
五、NFS故障解決
1、NFSD沒有啟動起來
首先要確認 NFS 輸出列表存在,否則 nfsd 不會啟動。可用 exportfs 命令來檢查,如果 exportfs 命令沒有結果返回或返回不正確,則需要檢查 /etc/exports 文件。
2、mountd 進程沒有啟動
mountd 進程是一個遠程過程調用 (RPC) ,其作用是對客戶端要求安裝(mount)文件系統的申請作出響應。mountd進程通過查找 /etc/xtab文件來獲知哪些文件系統可以被遠程客戶端使用。另外,通過mountd進程,用戶可以知道目前有哪些文件系統已被遠程文件系統裝配,並得知遠程客戶端的列表。查看mountd是否正常啟動起來可以使用命令rpcinfo進行查看,在正常情況下在輸出的列表中應該象這樣的行:
100005 1 udp 1039 mountd
100005 1 tcp 1113 mountd
100005 2 udp 1039 mountd
100005 2 tcp 1113 mountd
100005 3 udp 1039 mountd
100005 3 tcp 1113 mountd
如果沒有起來的話可以檢查是否安裝了PORTMAP組件。
rpm -qa|grep portmap
3、fs type nfs no supported by kernel
kernel不支持nfs文件系統,重新編譯一下KERNEL就可以解決。
4、can't contact portmapper: RPC: Remote system error - Connection refused
出現這個錯誤信息是由於SEVER端的PORTMAP沒有啟動。
5、mount clntudp_create: RPC: Program not registered
NFS沒有啟動起來,可以用showmout -e host命令來檢查NFS SERVER是否正常啟動起來。
6、mount: localhost:/home/test failed, reason given by server: Permission denied
這個提示是當client要mount nfs server時可能出現的提示,意思是說本機沒有許可權去mount nfs server上的目錄。解決方法當然是去修改NFS SERVER咯。
7、被防火牆阻擋
這個原因很多人都忽視了,在有嚴格要求的網路環境中,我們一般會關閉linux上的所有埠,當需要使用哪個埠的時候才會去打開。而NFS默認是使用111埠,所以我們先要檢測是否打開了這個埠,另外也要檢查TCP_Wrappers的設定。
六、NFS安全
NFS的不安全性主要體現於以下4個方面:
1、新手對NFS的訪問控制機制難於做到得心應手,控制目標的精確性難以實現
2、NFS沒有真正的用戶驗證機制,而只有對RPC/Mount請求的過程驗證機制
3、較早的NFS可以使未授權用戶獲得有效的文件句柄
4、在RPC遠程調用中,一個SUID的程序就具有超級用戶許可權
加強NFS安全的方法:
1、合理的設定/etc/exports中共享出去的目錄,最好能使用anonuid,anongid以使MOUNT到NFS SERVER的CLIENT僅僅有最小的許可權,最好不要使用root_squash。
2、使用IPTABLE防火牆限制能夠連接到NFS SERVER的機器范圍
iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p TCP -s 140.0.0.0/8 --dport 111 -j ACCEPT
iptables -A INPUT -i eth0 -p UDP -s 140.0.0.0/8 --dport 111 -j ACCEPT
3、為了防止可能的Dos攻擊,需要合理設定NFSD 的COPY數目。
4、修改/etc/hosts.allow和/etc/hosts.deny達到限制CLIENT的目的
/etc/hosts.allow
portmap: 192.168.0.0/255.255.255.0 : allow
portmap: 140.116.44.125 : allow
/etc/hosts.deny
portmap: ALL : deny
5、改變默認的NFS 埠
NFS默認使用的是111埠,但同時你也可以使用port參數來改變這個埠,這樣就可以在一定程度上增強安全性。
6、使用Kerberos V5作為登陸驗證系統
『柒』 怎麼在虛擬機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