日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

NAS相關(guān)協(xié)議之NFS

 看見就非常 2012-08-30

    有人的地方就有江湖,IT界也不例外。

    在過去幾十年里,IT江湖從來都是門派林立,紛爭不斷。如果按照Operating System (下面簡稱OS), 大概可以分Windows派,類Unix派,還有蘋果派(有沒有勾起您的食欲?)。這幾大門派信徒眾多,教規(guī)又各不相同,所以經(jīng)常造成矛盾。比如說,你要共享一個文件系統(tǒng),Windows派喜歡用CIFS訪問,類Unix派習慣用NFS訪問,近年來如日中天的蘋果派們則用AFP。為了伺候好這些門派,NAS就需要支持多種共享協(xié)議。本文要介紹的,就是類Unix習慣使用的NFS。

    NFS的全稱是Network File System,即網(wǎng)絡(luò)文件系統(tǒng)。它使一臺電腦可以通過網(wǎng)絡(luò)訪問另外一臺電腦上的共享,使用起來就如同本地文件系統(tǒng)一樣方便。我在大學里就共享過一整個文件系統(tǒng),過幾天就有校友在上面放了很多小電影,還經(jīng)常更新??梢姽蚕聿粌H是奉獻,有時候還有收獲,感謝共享協(xié)議的開發(fā)者們!

    NFS的開發(fā)者就是曾經(jīng)名震江湖的SUN公司(看名字好像是日月神教的分支),它已經(jīng)在三年前被甲骨文收入門下。SUNNFS的第一個版本NFSv1藏在深閨,就像古墓里的小龍女,從不露面。等到在江湖上開始流行NFS,已經(jīng)是第二版NFSv2了。NFSv2很好用,但是問題也不少,比如它不支持大于2GB的文件,但這在90年代之前還不是大問題。令人費解的是,雖然NFSv31995年就面世了,但到今天還有人堅持用NFSv2。我直到寫ITB指南》時才恍然大悟:用老版本的都是IT貴族啊,配NFSv4的只能算初級iBer

    其實NFS可以工作在任何OS上。只不過因為門派之別,一般只在類Unix環(huán)境中使用。目前廣泛應用的版本還是NFSv3,我們有機會再另文討論NFSv4。下圖展示了多臺客戶端通過NFSNAS的訪問。NAS相關(guān)協(xié)議之NFS
    NAS在這里充當了NFS服務(wù)器的角色,而Linux,Solaris和AIX則是NFS客戶機。NFS的功能很多,不同的功能對應著不同的daemon。比如一定要有的nfsd和
mountd,還有可選的lockd和statd。

    每個daemon都需要占用一些端口,但有些daemon是可選的,也許用戶根本不會啟用它們。所以,NFS并沒有給每個NFS daemon保留固定端口(除了nfsd)。而是在系統(tǒng)啟動時給需要啟用的NFS daemon分配端口,然后把這些端口號告訴RPC daemon。RPC daemon的端口號是固定的111,每個NFS客戶機都知道怎么聯(lián)系它。當客戶機需要連接NFS的某個daemon時,就不得不先咨詢RPC daemon,獲得該NFS daemon對應的端口號,然后再發(fā)送NFS請求。

    我第一次看到RPC daemon的工作原理,就想起交大管浴室的老頭。他的固定地址是門房(相當于端口111),每個要洗澡的學生(NFS客戶機)都知道怎么找到他,他會給你一個帶號碼的鑰匙(端口號),有了這個號碼,你就可以找到相應的格子(NFS daemon)放衣服了。

    很少有人會對自己的共享不加限制,像我一樣收獲小電影的畢竟是少數(shù),大多數(shù)人收獲的是惡作劇。NFS通過限制客戶機(比如IP地址, hostname等)訪問來實現(xiàn)安全控制。下表列舉了一些NFS服務(wù)器端的參數(shù): 

 root 該參數(shù)定義了對該共享有root權(quán)限的客戶機。當然只對UID=0有效。
 rw 該參數(shù)定義了對該共享有讀寫權(quán)限的客戶機。
 ro 該參數(shù)定義了對該共享有只讀權(quán)限的客戶機。
 access 該參數(shù)定義了能掛載該共享的客戶機。

 

    這些配置只能限制一整臺客戶機,無法限制到具體用戶。比如某臺客戶機被限制為rw,那該機的所有用戶都可能有讀寫權(quán)限。這顯然是不夠安全的,但NFS協(xié)議本身又無法識別具體用戶的權(quán)限。為了解決這個問題,NFS服務(wù)器端利用本地權(quán)限(rwxrwxrwx,以及owner和group),結(jié)合客戶端的UID和GID來確定客戶端權(quán)限。這個機制要求NFS客戶機上的User-UID-Group必須都能在服務(wù)器上找到,否則容易造成混亂。個人認為NIS是一個很好的選擇,我們有機會再另文討論。

    NFS服務(wù)器上的共享創(chuàng)建好了之后,客戶端就可以掛載(mount)了。掛載的參數(shù)很多,我們只介紹對性能影響較大的幾個:

 rsize客戶端每次從NFS服務(wù)器讀取數(shù)據(jù)時的大小,在沒有擁塞的情況,增大該值能提高傳輸速度。比如一個64KB的文件,rsize=16KB時需要傳4次;rsize=32KB時就只要2次。
 wsize客戶端每次往NFS服務(wù)器寫數(shù)據(jù)時的大小。對性能的影響類似rsize。這兩個size和TCP層的重傳也有關(guān)系,我們會在NAS性能分析時詳解。
 async數(shù)據(jù)存入cache即算寫操作完成??梢蕴岣咝阅?,但有一定安全問題。
 sync數(shù)據(jù)要存入硬盤才算寫操作完成,影響性能。該參數(shù)還會強制wsize變成一個page的大小。

 

    掛載之后,我們就可以使用該共享了。我在lab里掛載了一個文件系統(tǒng)(/paddy_fs_01),然后讀取其中一個文件(abc.txt)。命令如下:

[root@NISclient ~]# mount 10.32.106.25:/paddy_fs_01 paddy_fs_01
[root@NISclient ~]# cp paddy_fs_01/abc.txt abc.txt

    為了更好的說明NFS的工作原理,我把全過程抓了包。把其中不重要的包過濾掉之后,我們可以這樣解讀(下列序號與截圖中的包號相對應):

1. 客戶機:RPC,請問nfsd的端口號是多少呀?

2. 服務(wù)器:是2049。

3. 客戶機:那我測試一下2049通不通。

4. 服務(wù)器:收到了,是通的。

5. 客戶機:RPC,請問mountd的端口號是多少呀?

6. 服務(wù)器:是1234。

7. 客戶機:那我測試一下1234通不通。

8. 服務(wù)器:收到了,是通的。

9. 客戶機:我要掛載 /paddy_fs_01。

10.服務(wù)器:(根據(jù)該共享的配置,這臺客戶機有掛載權(quán)限,所以)你的請求被批準了。

11.客戶機:我測試一下掛上了沒有。

12.服務(wù)器:掛上了啦。

13.客戶機:我想看看這個文件系統(tǒng)的屬性。

14.服務(wù)器:給,就這些。

...掛載結(jié)束,讀abc.txt開始:

17. 客戶機:我要訪問 /paddy_fs_01。

18. 服務(wù)器:來吧,(根據(jù)你的UID)你有讀,查詢,更改,擴展和刪除的權(quán)利。

19. 客戶機:我想看看有哪些子目錄。

20. 服務(wù)器:看,就這些。

21. 客戶機:我想看看abc.txt的屬性。

22. 服務(wù)器:File Mode等屬性都在這了。

23. 客戶機:我還想再看看。

24. 服務(wù)器:再給你一次好了。

25. 客戶機:我想訪問abc.txt。

26. 服務(wù)器:你有權(quán)限的,訪問吧。

27. 客戶機:我要讀abc.txt,從0開始讀16384字節(jié)。

28. 服務(wù)器:給。

29. 客戶機:我要讀abc.txt,從16384開始讀32768字節(jié)。

(被過濾掉的包,服務(wù)器傳輸32768字節(jié)給客戶機。)

30. 客戶機:我要讀abc.txt,從49152開始讀32606字節(jié)。

(被過濾掉的包,服務(wù)器傳輸32606字節(jié)給客戶機。)

NAS相關(guān)協(xié)議之NFS

神仙魚夫2012-02-27 15:53:16 [舉報]

Microsoft Windows Services for UNIX 3.5 不是就可以在Windows上裝NFS server了嗎?

博主回復:2012-02-27 15:58:14

我估計這是免費的吧?我個人沒有使用過。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多