前幾天重新把家裡的板子重裝了系統,這次打算不使用雲盤之類的軟件來保存文件了,就用簡單的samba之類系統級的文件分享。
samba每次保存大量的漫畫說實話速度有點慢。所以這次我想用NFS試試。看很多文章分析NFS處理小文件的速度極快。
Linux上配置NFS比samba還要快,雖然samba的配置我覺得已經夠快了。
1$ sudo apt install nfs-common
2$ sudo vim /etc/exports
3
4# /etc/exports: the access control list for filesystems which may be exported
5# to NFS clients. See exports(5).
6#
7# Example for NFSv2 and NFSv3:
8# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
9#
10# Example for NFSv4:
11# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
12# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
13#
14
15/home/t1 *(rw,async,no_subtree_check,no_root_squash,fsid=0)
16<分享的目錄> <*代表都能訪問,也可以寫網段限制> <(一些功能和權限)>
17
18$ service nfs-server start
就三步Linux就配置好了可以了…
下面是windows:
1# mount [NFS服務器]:/[路徑] [本地驅動器字母]:
2mount 192.168.1.1:/home/t1 N:
就這麼簡單。
不過我昨天第一次傳文件的時候出現了一些問題。
- nfsd RPC fragment too large
我在網上查了1個多小時,答案是無解,這個好像是系統本身導致的。
但是不知道為什麼,今天重新配置了一遍居然好了?
計算機…很奇妙吧…
用了幾天很難說NFS真的比SMB快,可能我的機器有性能瓶頸吧。
從原理上來說NFS應該是比SMB要快的,因為NFS對linux來說是一個文件系統,也就是內核的一部分。全程都是運行在內核模式中的。
這兩天也順便查了一下這兩個文件分享協議的特點:
NFS是SUN公司為了Unix系統打造的協議,比較特殊的點是這個協議使用的是RPC通訊,是一個抽象文件系統,可以很好的兼容現有的本地文件系統。
但是NFS缺點也存在,就是安全性比較差,這個協議最初設計出來的時候沒有考慮過這方面的功能。
SMB最初設計出來也是解決了FTP的問題,後來微軟介入開始發展SMB,後續也就成了Windows平臺的標準協議。
後續微軟也提供了開源版本的SMB,名字叫做CIFS(Common Internet File System),Unix這邊叫做Samba
兩個協議難說誰優誰劣,百科下面有個簡單的CIFS和NFS的對比:
(1)CIFS面向網絡連接的共享協議,對網絡傳輸的可靠性要求高,常使用TCP/IP;NFS是獨立於傳輸的,可使用TCP或UDP;
(2)NFS缺點之一,是要求client必須安裝專用軟件;而CIFS集成在OS 內部,無需額外添加軟件;
(3)NFS屬無狀態協議,而CIFS屬有狀態協議;NFS受故障影響小,可以自恢復交互過程,CIFS不行;從傳輸效率上看,CIFS優於NFS,沒用太多冗餘信息傳送;
(4)兩協議都需要文件格式轉換,NFS保留了unix的文件格式特性,如所有人、組等等;CIFS則完全按照win的風格來作。