面向不同需求的對象存儲系統(tǒng)對比:Ceph與Swift
在Ceph與Swift之間,存在一些孰優(yōu)孰劣的爭辯。Ceph在訪問數(shù)據(jù)和存儲信息方面提供了更大的靈活性,但這并不完全意味著它是一個比Swift更好的對象存儲系統(tǒng)。
Swift和Ceph都提供對象存儲,將數(shù)據(jù)分割成二進制對象并將其復制到存儲中。使用Ceph和Swift,對象存儲都是在Linux文件系統(tǒng)之上創(chuàng)建的。此外,Ceph和Swift都是在考慮可伸縮性的情況下構建的,因此可以很容易地根據(jù)需要添加存儲節(jié)點。兩者的不同之處主要在于:
訪問數(shù)據(jù)
Swift是由Rackspace開發(fā)的,目的是為該公司的云提供可擴展存儲。因為它是基于云開發(fā)的,所以它的主要訪問方法是通過RESTful API。應用程序可以直接對Swift尋址(繞過操作系統(tǒng))并將數(shù)據(jù)提交給Swift存儲。這在純基于云的環(huán)境中非常有用,但它也使訪問云外的快速存儲變得更加復雜。
至于Ceph,從一開始,其開發(fā)人員就致力于使其成為一個比Swift更開放的對象存儲系統(tǒng)。Ceph有四種訪問方法:
·通過Rados網關訪問Amazon S3兼容的RESTful API:這使得Ceph可以與Swift相媲美,也可以與Amazon S3云環(huán)境中的任何東西相媲美。
·CephFS:這是一個可移植操作系統(tǒng)接口兼容的文件系統(tǒng),運行在任何Linux發(fā)行版上,所以操作系統(tǒng)可以直接訪問Ceph存儲。
·Rados Block Device (RBD): RBD是一個Linux內核級的塊設備,允許用戶像訪問其他Linux塊設備一樣訪問Ceph。
·ISCSI 網關:這是SUSE對Ceph項目的補充。它允許管理員在Ceph上運行iSCSI網關,將其轉換為任何操作系統(tǒng)都可以訪問的SAN文件。
因此在對比評估Ceph與Swift時,請記住,Ceph提供了更多訪問對象存儲系統(tǒng)的方法。正因如此,它比Swift更實用、更靈活。
訪問存儲信息
Ceph與Swift截然不同的另一個方面是客戶端如何訪問對象存儲系統(tǒng)。在Swift中,客戶端必須聯(lián)系Swift網關,這會帶來一些潛在的單點故障。為了解決這個問題,許多Swift環(huán)境為Swift網關實現(xiàn)了高可用性。
Ceph使用一個對象存儲設備(OSD),運行在每個存儲節(jié)點上運行。Ceph可以通過OSD獲取關于存儲拓撲的信息,以及在哪里收集二進制對象以訪問原始數(shù)據(jù)。訪問對象存儲所需的另一個組件在客戶機上運行,因此Ceph對存儲的訪問沒有一個單獨的入口點。這使得它比Swift更靈活。
關于用例
Ceph和Swift的組織方式存在著根本性的差異,但這并不意味著兩者孰優(yōu)孰劣。兩者都是非常優(yōu)秀的開源項目,被世界各地區(qū)的用戶積極使用——出于不同的原因。Ceph在需要高度一致性的虛擬機、數(shù)據(jù)庫和其他數(shù)據(jù)類型交互的單站點環(huán)境中表現(xiàn)良好,Swift更適合處理大量數(shù)據(jù)的大型環(huán)境,這種差異是兩個對象存儲系統(tǒng)如何在其復制算法中處理數(shù)據(jù)一致性的直接結果。
Ceph數(shù)據(jù)在整個集群中是強一致的,而Swift數(shù)據(jù)是最終一致的,它通過在軟件層面引入一致性散列技術和數(shù)據(jù)冗余性,犧牲一定程度的數(shù)據(jù)一致性來達到高可用性和可伸縮性,在跨集群同步數(shù)據(jù)之前可能會需要一些時間。
所以總的來說,Ceph與Swift這兩種對象存儲系統(tǒng),誰都不能說絕對優(yōu)于另一種,因為它們服務于不同目的。
原文作者:Sander van Vugt 來源:TechTarget