nas網絡存儲該怎麼用(在家玩網絡存儲)
2023-10-12 23:47:46 2
一慣的是反對在NAS上做很多虛擬機的。
所以也有朋友在問我,你不用NAS那你用什麼呢?
其實這就是數碼玩家的「眼界」問題了,往往是各種UP主在推什麼,數碼玩家才「知道」什麼。
NAS就是最近幾年數碼UP主們著重推的東西。
簡單的說下NAS,NAS(Network Attached Storage,網絡附加存儲)如果用通俗易懂的說法就是一種在你的網絡上額外增加的一個文件伺服器。iN最早使用的NAS產品是這個:
Buffalo的一臺雙盤位NAS,掛在家裡的區域網上,可以提供額外的文件存儲功能。如果開一個SMB共享的話,這臺小設備和一臺開了共享文件夾的Windows 沒什麼太大區別,你可以通過家裡的區域網向這個設備上的硬碟中上傳和下載文件。
也可以通過設備的WebAccess功能從網頁上直接調取NAS上的文件。
如果說這個設備和一臺開著Windows共享的計算機有什麼不同,那麼咱們就可以說它的優勢了,設備的所有硬體資源都是為了文件共享這一個目的而存在的,比Windows的共享機更穩定,同時由於沒有其他的系統服務在跑,設備也就更穩定且節電。
當然了,一個早期的NAS也設計了例如Flickr自動上傳下載、BT下載等等一些列的簡單功能,可以當作一個下載機來使用。
現在新的NAS不僅僅是提供了之前的NAS的大部分功能,甚至還搞起了NAS作業系統
為大家提供更多的功能。
但是——NAS的性能再好,也只能以名字來說局限性,這是一臺網絡附加存儲設備(NAS,Network Attached Storage),做簡單的文件存儲還可以,但超出了這個範疇,當作「生產力工具」的確還不是那麼適用。
即便是有的人把NAS升級到萬兆網卡,增加了幾個SSD作為緩存。看起來NAS的文件傳輸速度變高了,但這個東西依舊不是一個高速的存儲系統。
甚至可以說——告訴你這玩意可以在NAS的共享文件夾裡面剪視頻的UP主不是傻就是壞了。
如果想了解這個論斷,我們就得先了解下磁碟是如何工作的。
很多數碼UP主會告訴你磁碟分了不同的磁軌,在磁軌上分了不同扇區,磁頭從不同的扇區來讀取數據……但是具體這些數據是怎麼讀寫的,很多UP主根本沒有告訴你。
很多科技博主也就拿出一張這樣的圖片來說明磁碟-內存-CPU之間的數據流轉關係
不能說是錯誤的,但是「沒有細節」或者說「漏掉了細節」。我們來看一個電腦的系統配置:直接進入電腦的設備管理中
你會發現在你的電腦設備中不僅僅有「磁碟」還有「磁碟控制器」,通常CPU會給磁碟控制器指令,讓磁碟控制器去讀寫磁碟上的內容。不同規格的磁碟有不同的控制器指令。例如一個SATA磁碟,接受的是ATA指令,而一個SAS磁碟則要利用SCSI指令來讀寫。另外一些額外的高級功能也寫在了各自的指令集中。
例如ATA指令集是以一個操作碼附帶一個8-16位的參數傳輸到磁碟控制器中,磁碟控制器以此指令去操作磁碟讀寫數據。也有一些工具可以讓你直接使用ATA指令去操作硬碟
所以磁碟的操作到了磁碟控制器上就不僅僅是利用文件分配表來找文件這麼簡單的事情了。
為什麼要弄得這麼複雜呢?因為磁碟的操作遠比很多人想像的要複雜。對某一個字節、某個位的操作方式也不僅僅是讀寫,利用磁碟指令就是操作磁頭直接撥弄磁碟上的儲存單元,最終傳輸「數據塊」到作業系統,然後再由作業系統拼接成我們可使用的文件。
如果是NAS共享呢?大部分會利用SMB協議的共享系統會再額外增加一層把文件再轉換成網絡數據包的過程,然後再在網絡上進行傳輸。
傳輸的內容是SMB數據包,接收之後這些SMB數據包再還原成本地計算機可以讀寫的文件。這個過程可以在內存中復現也可能由於文件過大,在磁碟緩存中復現。
以在NAS上做視頻剪輯為例,素材會經過SMB存儲到你的本地磁碟緩存中,隨著不同的調用過程逐漸的進入到你的剪輯軟體中。在這裡你會發現其實一個大文件的磁碟讀寫最少經歷了兩次。
這也是為什麼即便是萬兆的生產力NAS在做視頻剪輯的時候也不會比本地磁碟速度快的一個很重要原因。
那麼有沒有辦法真正地提高生產力呢?還真有!
你可以把NAS倒過來,組一個SAN系統。
SAN(Storage area network,存儲區域網絡),首先得說下,現在的SAN價格要遠遠高於NAS的價格,不過人如果要捨得投入在家庭使用或者小團隊使用價格也並不是太大的障礙。
雖然都是網絡存儲,SAN所對應的文件系統在自己的系統這一側,通過光纖通道或者網線直接發布磁碟控制器指令,幾乎不封裝的走的是光纖通道,一類價格便宜封裝起來的(例如FCoE)走的就是普通的乙太網通道。和NAS傳回來的文件不同,在SAN的網絡上傳輸回來的就是數據塊了。對文件數據的使用是在本地來用,但對文件數據的操作則是在SAN的存儲機上進行操作。這樣就比NAS的效率要高了將近一倍。這就是直接操作塊的魅力所在了
至於利用SMB的NAS有沒有塊操作呢?其實也有,不過問題是當初的確是設計了塊操作的SMB指令,但至今微軟對大容量讀寫和位移塊讀寫的支持都顯得力不從心。甚至類似於SMB_COM_READ_BULK 和 SMB_COM_WRITE_BULK這樣的指令雖然在SMB的協議指令集裡面做出了名稱上的保留,但至今依舊沒有真正的實現過。
相反SAN給你的支持度極高,在SAN下的遠端硬碟幾乎完全等同於本地硬碟,並不是SMB映射驅動器的那種性能。
,