本文主要介紹常用的存儲類型及它們之間的對比差異,輔助幫助大家在不同需求和場景下選擇合適的存儲類型。 近期,AIGC、GPT大模型、數據中台等熱點話題備受關註,那麼具體在不同的行業場景下,如何選擇對應的存儲介質呢?選型的時候該考慮哪些因素呢? 通過本文主要介紹常用的存儲類型及它們之間的對比差異,輔助幫 ...
本文主要介紹常用的存儲類型及它們之間的對比差異,輔助幫助大家在不同需求和場景下選擇合適的存儲類型。
近期,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只是首碼。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
適合IO密集型的資料庫/單ECS高性能、低時延應用工作負載
|
協議:協議定義了在兩個或多個通信實體之間進行交換的報文格式和次序,以及報文發送和/或接收一條報文或其他事件所採取的行動。
介面:在程式設計的情況下,介面往往與模塊掛鉤。模塊是從物理上對程式實體的定義進行分組,是可以分別編寫和編譯的程式單位。一個模塊包括介面和實現兩部分。模塊的介面規定了在模塊中定義的、可以被其他模塊使用的一些程式實體;模塊的實現是指在模塊中定義的程式實體的具體實現。介面起到了模塊設計者和使用者之間的一種約束作用:使用者按照模塊的介面來使用模塊所提供的功能;模塊的實現者根據規定的模塊介面進行實現。
協議和介面常常放在一起或者混淆使用,本質上都是抽象的規則集合,在不同的場合有不同的含義。例如,在電腦網路語境下,我們使用協議往往指網路協議/通信協議,網路模型中的每層都有對應的不同協議。在編程場景中 ,我們往往具體指某種介面,可以狹義地理解為交互點(類似於去政務大廳的辦事視窗)、函數/方法。但在具體場景的使用中,有時會預設背景,比如將API簡稱為介面(實際上是包含關係,而不是等價關係)。
廣義上講,介面和協議可以一起使用,它們都是高度抽象的概念。狹義上,協議有各種具體的協議,介面有各種具體的介面(如java中有可定義的interface,常用來與抽象類比較),這時兩者是不同。
協議是多個通信實體之間互通的規則和範式。介面是按照協議規定規則的具體實現。
二者的聯繫:協議是介面的既定規則,介面是協議的具體實現。
二者的區別:不需要過分區分協議和介面,他們的聯繫更加緊密。
NFS協議
1.定義:NFS(Network File System,網路文件系統)是由SUN公司研製的UNIX表示層協議(presentation layer protocol)文件共用協議,能使使用者訪問網路上別處的文件就像在使用自己的電腦一樣。
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
本文來自博客園,作者:古道輕風,轉載請註明原文鏈接:https://www.cnblogs.com/88223100/p/Differences-between-OSS-NAS-and-EBS.html