一文讀懂OSS、NAS、EBS有什麼區別?

近期,AIGC、GPT大模型、數據中臺等熱點話題備受關注,那麼具體在不同的行業場景下,如何選擇對應的存儲介質呢?選型的時候該考慮哪些因素呢?通過本文主要介紹常用的存儲類型及它們之間的對比差異,輔助幫助大家在不同需求和場景下選擇合適的存儲類型。

存儲類型簡介

存儲的物理層實際無非就是磁盤(disk),即磁記錄技術存儲數據的存儲器。磁盤是計算機主要的存儲介質,可以存儲大量的二進制數據,並且斷電後也能保持數據不丟失。早期計算機使用的磁盤是軟磁盤(Floppy Disk,簡稱軟盤),如今常用的磁盤是硬磁盤(Hard disk,簡稱硬盤)。

磁盤知識簡介

存儲磁盤常見的三大指標:吞吐量、IOPS、時延。三個指標之間存在着關係,具體呈現爲如下公式:每秒吞吐 = I/Osize * IOPS * 並行度(IOPS-延時)。

1.吞吐量是指對網絡、設備、端口、虛電路或其他設施,單位時間內成功地傳送數據的數量(以比特、字節、分組等測量)。

2.IOPS是(Input/Output Operations Per Second)是一個用於計算機存儲設備(如機械硬盤HDD、固態硬盤SSD、混合硬盤HHD或存儲區域網絡SAN等)性能測試的量測方式,可以視爲是每秒的讀寫次數。

3.時延是發起讀取數據請求到讀取到數據之間的時間間隔。

阿里雲存儲產品底層原理

阿里雲存儲是在物理層的磁盤資源上利用虛擬化技術將物理存儲資源池化,架構分佈式資源調度系統——盤古系統,可以爲用戶、客戶提供類似於水電煤資源使用按量付費、按需取用的使用體驗。

存儲類型區別

存儲方式區別

文件、塊和對象是三種以不同的方式來保存、整理和呈現數據的存儲格式。

1.文件存儲NAS會以文件和文件夾的層次結構來整理和呈現數據;

2.塊存儲EBS會將數據拆分到任意劃分且大小相同的卷中;

3.對象存儲OSS會管理數據並將其鏈接至關聯的元數據。

接口協議區別

三種存儲產品的接口協議也不一樣。

1.文件存儲NAS文件系統構造的協議爲NFS、SMB協議,支持POSIX接口訪問;

2.塊存儲EBS協議爲阿里雲自研協議,封裝接口爲iSCSI;

3.對象存儲OSS協議爲HTTP/HTTPS協議(Restful API),通過URL域名地址定位文件,支持AWS的S3接口。

應用場景區別

由於三款產品存儲數據存儲結構的不同,適用於不同的應用場景。

文件存儲NAS

NAS文件系統存儲架構是目錄樹狀結構,可以支持上千臺虛擬機通過POSIX接口同時、高併發訪問,支持隨機讀寫、在線修改、直讀直寫。

塊存儲EBS

1、EBS的優勢是性能高、時延低,適合於OLTP數據庫、NoSQL數據庫等IO密集型的高性能、低時延應用工作負載,支持隨機讀寫。

2、EBS是裸磁盤,掛載到ECS後不能被操作系統應用直接訪問,需要格式化成文件系統(ext3、ext4、NTFS等)後才能被訪問。

3、EBS無法實現容量彈性擴展,單盤最大容量爲32TB,並且對共享訪問的支持有限,需要配合類Oracle RAC、WSFC Windows故障轉移集羣等集羣管理軟件才能進行共享訪問。因此,塊存儲EBS主要還是針對單ECS的高性能,低時延的存儲產品。

對象存儲OSS

OSS存儲架構爲S3(Simple Storage Service 簡單存儲服務)扁平化文件組織形式,不支持文件隨機讀寫,主要適用於互聯網架構的海量數據的上傳下載和分發。對象存儲在存儲段bucket中,對象就像是文件,存儲段就像是文件夾或目錄,對象和存儲段通過統一資源標識符(Uniform Resource Identifier,URI)進行查找,雖然在控制檯界面是好像是有樹狀結構,但實際顯示的文件夾/.resource只是前綴。

存儲產品 時延 吞吐 協議 訪問模式(虛機訪問存儲數據的接口) 應用場景
文件存儲NAS 毫秒級 數百Gbps NFS、SMB 上千個ECS通過POSIX接口併發訪問,隨機讀寫 高併發訪問、在線修改、直讀直寫的場景
對象存儲OSS 幾十毫秒級 數百Gbps HTTP、HTTPS(Restful API) 數百萬客戶端通過Web併發,追加寫 互聯網架構的海量數據的上傳下載和分發
塊存儲EBS 微秒級 數十Gbps 自研協議 單ECS通過POSIX接口訪問,隨機讀寫 適合IO密集型的數據庫/單ECS高性能、低時延應用工作負載

協議、接口詳細區別

什麼是接口?什麼是協議?

協議:協議定義了在兩個或多個通信實體之間進行交換的報文格式和次序,以及報文發送和/或接收一條報文或其他事件所採取的行動。

接口:在程序設計的情況下,接口往往與模塊掛鉤。模塊是從物理上對程序實體的定義進行分組,是可以分別編寫和編譯的程序單位。一個模塊包括接口和實現兩部分。模塊的接口規定了在模塊中定義的、可以被其他模塊使用的一些程序實體;模塊的實現是指在模塊中定義的程序實體的具體實現。接口起到了模塊設計者和使用者之間的一種約束作用:使用者按照模塊的接口來使用模塊所提供的功能;模塊的實現者根據規定的模塊接口進行實現。

二者的聯繫:協議和接口常常放在一起或者混淆使用,本質上都是抽象的規則集合,在不同的場合有不同的含義。例如,在計算機網絡語境下,我們使用協議往往指網絡協議/通信協議,網絡模型中的每層都有對應的不同協議。在編程場景中 ,我們往往具體指某種接口,可以狹義地理解爲交互點(類似於去政務大廳的辦事窗口)、函數/方法。但在具體場景的使用中,有時會默認背景,比如將API簡稱爲接口(實際上是包含關係,而不是等價關係)。廣義上講,接口和協議可以一起使用,它們都是高度抽象的概念。狹義上,協議有各種具體的協議,接口有各種具體的接口(如java中有可定義的interface,常用來與抽象類比較),這時兩者是不同。

一句話概括:協議是多個通信實體之間互通的規則和範式。接口是按照協議規定規則的具體實現。二者的聯繫:協議是接口的既定規則,接口是協議的具體實現。二者的區別:不需要過分區分協議和接口,他們的聯繫更加緊密。

協議介紹

NFS協議

1.定義:NFS(Network File System,網絡文件系統)是由SUN公司研製的UNIX表示層協議(presentation layer protocol)文件共享協議,能使使用者訪問網絡上別處的文件就像在使用自己的計算機一樣。

2.NFS 差異化特點

a.NFS只提供基本的文件處理功能,而不提供任何四層TCP/IP與OSI七層數據傳輸功能,需要藉助 RPC 協議才能實現 TCP/IP 數據傳輸功能;

b.NFS 默認沒有加密,對客戶端來說是完全透明的,且僅依靠 IP 地址或主機名來決定是否允許客戶端掛載指定的共享目錄【明文傳輸】,需要可通過 Kerberos 進行認證及加密。

3.NFS與其他文件共享協議共同點:使用C/S 架構。4.NFS實現原理:共享資源的屬主、屬組和權限。

a.NFS 服務器和客戶端通過 UID 和 GID 來識別共享資源的所有者信息。當客戶端掛載 NFS 共享目錄時,共享目錄中資源的 UID 和 GID 將與服務器上面的保持一致;而客戶端會將 UID 和 GID 映射到客戶端上所對應的用戶名和組名。NFS 服務器與客戶端上共享資源的權限及 ACL 信息(若支持)將保持一致。

SMB協議

1.定義:SMB網絡文件共享系統協議,全名服務器消息塊(Server Message Block),允許應用程序和終端用戶從遠端的文件服務器訪問文件資源,CIFS(通用互聯網文件系統 Common Internet File System)是SMB的衍生協議。

2.SMB與NFS的區別:操作系統OS不同,NFS適配linux操作系統,SMB適配windows/linux,但是兼容linux時相關存儲性能會收到影響。

3.SMB協議運用過程:SMB協議協商(Negotiate)> 建立SMB會話(Session Setup)> 連接一個文件分享(Tree Connect)> 文件系統操作 > 斷開文件分享連接(Tree Disconnect)> 終止SMB會話(Logoff)。

iSCSI協議

1.定義:iSCSI(Internet Small Computer System Interface),Internet小型計算機系統接口,又稱爲IP-SAN,是一種基於因特網及SCSI-3協議下的存儲技術,由IETF提出,並於2003年2月11日成爲正式的標準。

2.實現原理:iSCSI利用了TCP/IP的port 860 和 3260 作爲溝通的渠道。透過兩部計算機之間利用iSCSI的協議來交換SCSI命令,讓計算機可以透過高速的局域網集線來把SAN模擬成爲本地的儲存裝置。

3.應用場景/功能:可以與任意類型的 SCSI 設備進行通信,總是使用它來連接服務器計算機 (例如,數據庫服務器) 和磁盤捲上存儲陣列。

a.使用iSCSI SAN 的目的通常有以下兩個:

i.存儲集成公司希望將不同的存儲資源從分散在網絡上的服務器移動到統一的位置(常常是數據中心);這可以讓存儲的分配變得更爲有效。SAN 環境中的服務器無需任何更改硬件或電纜連接就可以得到新分配的磁盤卷。

ii.災難恢復公司希望把存儲資源從一個數據中心鏡像到另一個遠程的數據中心上,後者在出現長時間停電的情況下可以用作熱備份。特別是,iSCSI SAN 使我們只需要用最小的配置更改就可以在 WAN 上面遷移整個磁盤陣列,實質上就是,把存儲變成了“可路由的”,就像普通的網絡通信一樣。

POSIX協議

1.定義:可移植操作系統接口POSIX(Portable Operating System Interface)是IEEE爲要在各種UNIX操作系統上運行軟件,而定義API的一系列互相關聯的標準的總稱。

2.原理應用程序通過應用編程接口(API)而不是直接通過系統調用來編程(即並不需要和內核提供的系統調用來編程)。

a.一個API定義了一組應用程序使用的編程接口。它們可以實現成調用一個系統,也可以通過調用多個系統來實現,而完全不使用任何系統調用也不存在問題。

b.API可以在各種不同的操作系統上實現給應用程序提供完全相同的接口,但是API本身在這些系統上的實現卻可能迥異。比如,當應用程序調用printf()函數時,printf函數會調用C庫中的printf,繼而調用C庫中的write,C庫最後調用內核的系統的函數,但是可能windows調用的是函數A,linux調用的是函數B。完成同一功能,不同內核提供的系統調用(一個函數)是不同的。

RESTful API

1.定義:RESTful是一種網絡應用程序的設計風格和開發方式,基於HTTP做傳輸協議,可以使用XML格式定義或JSON格式定義,跟編程語言、平臺都無關。RESTFUL適用於移動互聯網廠商作爲業務接口的場景,實現第三方OTT調用移動網絡資源的功能,動作類型爲新增、變更、刪除所調用資源。

2.RESTful API就是RESTful風格的API。

3.應用場景:一套協議來規範多種形式的前端和同一個後臺的交互方式。

4.實現原理:RESTful API統一數據操作的接口,其數據操作CRUD(create,read,update,delete)分別一一對應HTTP方法:GET用來獲取資源,POST用來新建/更新資源,PUT用來更新資源,DELETE用來刪除資源。調用的時候用URL定位資源、用HTTP動詞(GET,POST,PUT,DELETE)描述操作。

協議對比

存儲原理不同:

1.iSCSI:利用了TCP/IP的port 860 和 3260 作爲溝通的渠道。透過兩臺服務器之間利用iSCSI的協議來交換SCSI命令,讓服務器可以透過高速的局域網集線把SAN模擬成爲本地的儲存裝置。

2.CIFS(SMB):是公共的或開放的SMB協議版本,並由Microsoft使用。SMB協議在局域網上用於服務器文件訪問和打印的協議。

3.NFS:通過使用NFS,用戶和程序可以像訪問本地文件一樣訪問遠端系統上的文件。

存儲特點不同:

1.iSCSI :讓兩個主機通過 IP 網絡相互協商然後交換SCSI命令。這樣一來,iSCSI 就是用廣域網仿真了一個常用的高性能本地存儲總線,從而創建了一個存儲局域網(SAN)。

2.CIFS:CIFS在高層運行,而不像TCP/IP協議那樣運行在底層。CIFS可以看做是應用程序協議如文件傳輸協議和超文本傳輸協議的一個實現。

3.NFS:配置一臺中心NFS服務器用來放置所有用戶的home目錄可能會帶來便利。這些目錄能被輸出到網絡以便用戶不管在哪臺工作站上登錄,總能得到相同的home目錄。

參考文獻:

什麼是RESTful API?:https://blog.csdn.net/qq_41378597/article/details/85248848

RESTful百度百科:https://baike.baidu.com/item/RESTful

NAS-阿里雲官方文檔:https://help.aliyun.com/product/27516.html

POSIX是什麼?解決了什麼問題?:https://blog.csdn.net/sir_chai/article/details/105652646

作者|明昫

點擊立即免費試用雲產品 開啓雲上實踐之旅!

原文鏈接

本文爲阿里雲原創內容,未經允許不得轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章