[vSAN]資料的存取形式? DAS、NAS和SAN

前面分別講了資料儲存的最小單元、硬碟陣列怎麼做備份以及提高可用性,接下來安迪想講的是儲存系統架構 - DAS、NAS和SAN

DAS

DAS(Direct Attach Storage) - 本地的檔案系統

DAS可以理解為就是本地的磁碟陣列,透過USB,你的個人電腦或伺服器就可以連結到這個磁碟陣列,根據RAID卡,進行相應的備份,當然,他的缺點就是需要有一條實體USB線,且擴充容量等比較麻煩。

NAS

NAS - 網路上的檔案系統

接下來會分享兩個常用的雲端基礎架構NAS和SAN的原理和不同之處,NAS和SAN都是利用網路來連接的,簡單來說NAS適合在家裡使用或小範圍同個網段下使用,而SAN適合大範圍甚至外網使用。

從NAS說起,NAS的原理就是之前提到的File storage,只是我們一般在使用Windows的時候,硬碟都在電腦裡的,不透過網路就可以直連,NAS就是一個把硬碟抽離出來,放在網路上,透過網路存取硬碟的技術架構。

下圖是NAS的架構

我們可以看到,是什麼東西在網路上傳遞呢?是檔案系統的指令,我們雖然只需要告訴檔案系統路徑+檔案名稱即可,但是檔案open需要讀吧,所以傳遞了open指令、read指令等,這些都需要網路傳輸,相比於SAN(下一篇會講)把這些都做在主機上,記憶體的傳輸效率一定比網路高。

用人話說就是 - 程式跟自己的電腦說,幫我把/mnt/nas.txt傳到電腦的記憶體,這些話都透過TCP/IP傳輸,然後NAS上的檔案系統根據這個檔案找到佔用了哪個扇區,從本身的server的硬碟找檔案。

優點

  1. 成本低 - NAS只需要一般的Ethernet,好擴增,只要有IP的地方就可以提供服務。
  2. 資源獨立 - 檔案讀寫都需要記憶體和CPU資源,有了NAS可以把這些資源抽離出來集中管理。
  3. 易共享 - 可以理解為大家都能連上你的D槽,不怕難分享。
  4. 協議多元 - 舉凡是FTP或是HTTP等都可以使用。

缺點

  1. 速度慢 - 因為文件系統的指令複雜,可能使用者的一個操作代表很多個指令,不過最大的瓶頸還是底層的Ethernet通常比較慢,NAS一般也不會使用光纖網路。
  2. 不支持遠距離 - 由於上述原因,如果遠距離傳輸會更慢,另外,文件系統on the fly傳輸本身就不安全。
  3. 不可靠 - 文件系統難以做到多機器保護。

SAN

SAN - 網路上的硬碟

安迪的工作就是開發公司的SAN產品,所以安迪對他比較了解。

SAN就是空出一個網路區域,讓硬碟機櫃互相連接,網絡專給I/O使用的一塊區域網絡,外部的伺服器或個人電腦可以透過網路的方式連進去存取資料。

下圖是SAN的架構

從上圖可以看出,有別於NAS,SAN就是個block storage,接受block storage的指令,回傳資料,檔案系統的指令和演算法是在前端主機完成的。

用白話文說就是 - 程式跟自己的電腦說,幫我把/mnt/san.txt傳到電腦的記憶體,檔案系統會計算這個檔案的LBA地址和長度,然後把這個資訊傳給SAN。

我們可以看到SAN有別於NAS,他在網路傳遞的是I/O指令,透過iSCSI或是NVMe包裝,所以速度較NAS快。

優點

  1. 支持遠距離 - iSCSI等協議已經非常成熟。
  2. 速度快 - 伺服器與儲存設備傳遞的是I/O指令,較為簡潔。
  3. 可靠性高 - 容易做多機器備份、儲存共享。

缺點

  1. 貴 - 通常要做SAN了,代表要買很多台機器、好的網路線等等,通常只有大公司才會使用,不過最近iSCSI逐漸流行,以往SAN都透過光纖,現在也能透過Ethernet傳輸了。
  2. 複雜度高 - 要用RAID0 1 5 6呢?要用雙主結點還是主從結點還是一主一備呢?這些都要根據實際場景需求決定。
  3. 不好管理 - 前端要裝專門的SAN管理系統才能使用。
  4. 協議單一 - 只有SCSI協議。

總結

  • DAS:本地磁碟陣列,連接簡單但擴充困難。
  • NAS:網路上的檔案系統,成本低但速度慢。
  • SAN:網路上的硬碟,速度快但成本高。