一些技術如此之好,以至于已經成為不朽。也許不是因為它們的完美,而是因為新技術沒有改進自己的優勢到足以推翻前輩,即使它們可以大干一場。
這方面的一個例子是NIS 。雖然有許多新的網絡身份驗證機制誕生,NIS仍然無處不在。另一個是IPv4。雖然IPv6 是更可擴展的和更現代的,但在今后很長一段時間我們大多數人都還工作在IPv4。
再有就是本文的主角NFS,它明年30歲。NFS作為一個分布式文件系統的有效性已經讓它從大型機時代貫穿到當前的虛擬化時代,在這段時間內只有少數的更改。在今天最常用的是18歲的NFSv3,它仍然廣泛應用于世界各地。
它并不總是這樣的。有很長一段時間NFS僅使用在 Unix領域,提供文件到Solaris,Linux和FreeBSD服務器在不同的地方,但回避了許多大用處,否則就是過于陳舊的和不安全的。即使虛擬化的到來,也沒有讓NFS立即脫穎而出。iSCSI呈上升趨勢,光纖通道是提供快速的網絡存儲訪問的趨勢,而NFS只是有排序。但隨著10G網絡的采用以及10G端口價格的下降,NFS已經回潮,特別是在虛擬空間中。
當然,仍然有成千上萬的Unix機器正在使用NFS,但現在也有數百萬的虛擬的Windows服務器正在通過hypervisor從NFS存儲運行。出于各種各樣的原因,越來越多的存儲廠商推薦使用NFS部署虛擬化,而不是iSCSI。
首先,NFS的使用和管理遠遠方便于iSCSI。您不必削減LUN用于虛擬化主機集(或者某些hypervisor為每個虛擬機削減LUN),相反,你可以簡單地導出一個文件系統在一個專門的、封閉的存儲網絡,任何主機都可以很好地運行。當然,你不會有CHAP身份驗證,但在許多情況下,這是沒有必要的。在許多數據中心,iSCSI認證的存在僅僅是為了防止出現主機訪問不該訪問的LUN的問題。
通過iSCSI存儲而不是文件系統,把主機訪問管理的責任置于主機自身之上。所有鎖定和寫管理不得不在存儲陣列外處理,這意味著你能碰上導致災難性后果的問題,當一臺主機出現問題的時候。
有幾次,我已經完全失去了一個iSCSI LUN,幾個ESXi主機之間的戰爭導致了LUN上VMFS卷一個可怕的損壞。我不得不破壞卷并從備份中重新創建它。在NFS中,文件系統層的所有任務由陣列本身處理,帶來一種更緊密結合的環境用于多系統訪問,在虛擬化的情況下。
此外,NFS輸出卷更容易作為一個整體來管理。如果您需要調整NFS卷上的文件,你從workstation或甚至從正在運行的虛擬機安裝它,然后進行操作。您可以從Linux機器中備份整個NFS卷,只用少數的命令。而這樣做的時候你不需要擔心任何問題。但是,如果你不經意地安裝一個iSCSI LUN到錯誤的機器,所有的東西可能會丟失。
在許多情況下,你可能會發現,NFS的性能擊敗了iSCSI。根據使用的傳輸和存儲,NFS吞吐量在某些工作負載可能超過iSCSI,尤其是當有大量的寫。在最壞的情況下,NFS表現通常與iSCSI持平。在VMware VAAI等方面,iSCSI擁有更先進的工具集,但一些存儲廠商在NFS上支持VAAI的一些基本操作,如完整復制和克隆卸載。
NFS與光纖通道的對比是另一種不同的討論,鑒于光纖通道需要專用HBA和交換機,但即使相對于FCoE (以太網光纖通道),NFS也在簡約上扳回一城。至于彈性,iSCSI和光纖通道或FCoE的存儲路徑冗余確實比NFS更先進,因為大多數hypervisor將允許多個并發的存儲路徑,而NFS有故障轉移或網卡綁定的局限。然而,在實踐中,這通常不是一個重要的問題。此外,下一代NFSv4的廣泛采用將有望帶來多路徑和附加的安全功能。
有些年頭,iSCSI是虛擬化世界的寵兒 - 至少對于那些當時不要求速度更快的光纖通道的。但是風向現在似乎在改變,NFS被推到了風頭,就像你可能期望的一個不朽的技術。