Ceph與Swift:面向不同需求的對象存儲系統對比

投稿人/來源:今日頭條 | 2018-11-21 10:56:41 |

在Ceph與Swift之間,存在一些孰優孰劣的爭辯。Ceph在訪問數據和存儲信息方面提供了更大的靈活性,但這并不完全意味著它是一個比Swift更好的對象存儲系統。

Swift和Ceph都提供對象存儲,將數據分割成二進制對象并將其復制到存儲中。使用Ceph和Swift,對象存儲都是在Linux文件系統之上創建的。此外,Ceph和Swift都是在考慮可伸縮性的情況下構建的,因此可以很容易地根據需要添加存儲節點。兩者的不同之處主要在于:

訪問數據

Swift是由Rackspace開發的,目的是為該公司的云提供可擴展存儲。因為它是基于云開發的,所以它的主要訪問方法是通過RESTful API。應用程序可以直接對Swift尋址(繞過操作系統)并將數據提交給Swift存儲。這在純基于云的環境中非常有用,但它也使訪問云外的快速存儲變得更加復雜。

至于Ceph,從一開始,其開發人員就致力于使其成為一個比Swift更開放的對象存儲系統。Ceph有四種訪問方法:

·通過Rados網關訪問Amazon S3兼容的RESTful API:這使得Ceph可以與Swift相媲美,也可以與Amazon S3云環境中的任何東西相媲美。

·CephFS:這是一個可移植操作系統接口兼容的文件系統,運行在任何Linux發行版上,所以操作系統可以直接訪問Ceph存儲。

·Rados Block Device (RBD): RBD是一個Linux內核級的塊設備,允許用戶像訪問其他Linux塊設備一樣訪問Ceph。

·ISCSI 網關:這是SUSE對Ceph項目的補充。它允許管理員在Ceph上運行iSCSI網關,將其轉換為任何操作系統都可以訪問的SAN文件。

因此在對比評估Ceph與Swift時,請記住,Ceph提供了更多訪問對象存儲系統的方法。正因如此,它比Swift更實用、更靈活。

訪問存儲信息

Ceph與Swift截然不同的另一個方面是客戶端如何訪問對象存儲系統。在Swift中,客戶端必須聯系Swift網關,這會帶來一些潛在的單點故障。為了解決這個問題,許多Swift環境為Swift網關實現了高可用性。

Ceph使用一個對象存儲設備(OSD),運行在每個存儲節點上運行。Ceph可以通過OSD獲取關于存儲拓撲的信息,以及在哪里收集二進制對象以訪問原始數據。訪問對象存儲所需的另一個組件在客戶機上運行,因此Ceph對存儲的訪問沒有一個單獨的入口點。這使得它比Swift更靈活。

關于用例

Ceph和Swift的組織方式存在著根本性的差異,但這并不意味著兩者孰優孰劣。兩者都是非常優秀的開源項目,被世界各地區的用戶積極使用——出于不同的原因。Ceph在需要高度一致性的虛擬機、數據庫和其他數據類型交互的單站點環境中表現良好,Swift更適合處理大量數據的大型環境,這種差異是兩個對象存儲系統如何在其復制算法中處理數據一致性的直接結果。

Ceph數據在整個集群中是強一致的,而Swift數據是最終一致的,它通過在軟件層面引入一致性散列技術和數據冗余性,犧牲一定程度的數據一致性來達到高可用性和可伸縮性,在跨集群同步數據之前可能會需要一些時間。

所以總的來說,Ceph與Swift這兩種對象存儲系統,誰都不能說絕對優于另一種,因為它們服務于不同目的。

原文作者:Sander van Vugt 來源:TechTarget


网络游戏赛车