物件儲存的前世今生

2021-09-23 06:41:56 字數 3761 閱讀 1713

那些沒有為資料庫或檔案系統寫過**的上了年紀的程式設計師應該不太可能讀到這篇文章。畢竟,一般商業應用程式訪問其他資料型別的模式已經存在超過40年了。因此,代表著第乙個主要的新型資料結構型別的物件儲存,它在兩代的時間裡對資料管理實踐產生了顯著影響。物件的實現始於上世紀90年代末,但多數是特殊應用。大規模的部署則由雲服務所引領,如亞馬遜s3,facebook和 spotify。現在,無論成熟廠商還是新興廠商的物件儲存解決方案都已達到相當成熟度,使得it部門開始考慮如何在自己企業中實現物件儲存。

物件儲存在很多重要方面與san和nas迥然不同,對儲存管理員而言最顯著的區別在於物件儲存沒有luns,卷以及raid等要素。物件資料不是儲存在固定的塊,而是在大小可變的「容器」裡。鑑於元資料(metadata)和資料本身可通過傳統資料訪問方法進行訪問,物件儲存允許資料被直接訪問。此外,支援物件級和命令級的安全策略設定。

然而,企業it部門卻不太認為他們需要物件儲存。相反,儲存經理們在尋找更好的方法來滿足企業的資料訪問需求,他們需要盡可能簡單而不貴的解決方案,儘管物件儲存事實上挺符合這些需求的。

在資料中心使用物件儲存是一種「和」而不是「或」的解決方案。物件儲存擁有很大前景,但它不會很快就完全取代san和nas儲存。儲存系統實施中的共性有:

還有一些應用案例中資料訪問是必要的,但效能卻不一定是問題。

物件儲存的實現模型

當前的物件儲存解決方案從即用型的雲服務,軟硬體**或純軟體的應用交付,直到完全的融合型陣列。有些實現試圖擁抱幷包容傳統儲存架構,而另一些則是純粹的專門設計。

從 helion公有雲開始,惠普提供了全系列的物件儲存產品。對於內部和私有雲環境,惠普的storeall 820儲存閘道器應用可作為前端搭載storeserve 7000型或10000型陣列,也就是3par陣列。storeall 8800則是基於3par的乙個完全的融合性陣列,在同一裝置裡支援san,nas和物件儲存。因此,惠普的產品針對了每種型別和大小的客戶,從小型到中小型(smbs)再到最大的企業集團。

新興物件儲存廠商exablox的第乙個產品是oneblox應用,其架構是一群對等節點組成的「環」,待儲存物件通過支援smb/cifs的通用檔案系統在這些節點上被儲存。有一點值得注意,oneblox應用可以支援任何sas或sata硬碟驅動器,即使是剛剛發行的最**—如西數的hgst ultrastar he66tb充氦型硬碟。it企業可以從它們喜愛的電子裝置商採購硬碟,因而避免了常見的陣列加價。exablox針對中小型企業和雲服務提供商,目前已有2000使用者。

昆騰lattus物件儲存應用的配置可以從6節點擴充套件到20節點,這些節點在地理上分散以使得廣域接入和協作成為可能。 lattus有三種模式:d,x和m模式。d模式支援原生的s3介面(http rest);x模式支援nfs,cifs和httprest協議;m模式則支援昆騰的stornext儲存管理介面。lattus是業務無中斷,自修復和自遷移的系統,主要面向大中型企業,尤其是**和娛樂行業,或者那些需要進行計算/處理/編輯的應用場景。

簡單是關鍵

物件儲存與傳統儲存的差異反映出它的乙個關鍵優勢:簡單性。當今大多數it企業並不哀嘆缺乏技術,而是一再增加系統的複雜性。與此相反,物件儲存系統的特點正是實施和管理上的簡單性。比如exablox聲稱oneblox應用的安裝和配置是如此簡單以至於有那麼個不太較真的「卡布奇諾挑戰賽」,即exablox演示如何將他們的裝置開箱,上電,安裝硬碟到儲存資料,整個過程所花時間和品嚐一杯卡布奇諾咖啡的時間相當。

由於物件儲存不依賴於luns和卷,因此可實現無中斷擴充套件。通常,新的儲存容量可以通過簡單配置加入到執行系統中。exablox和昆騰都聲稱使用者將永遠不會再經歷大規模公升級,系統配置或重新配置。這種擴充套件性是由裝置底層的檔案系統所實現的,比如惠普的storeall系統使用storeall分布式檔案系統,而exablox則使用它們的環形架構和通用檔案系統。它們與其他的物件儲存系統一樣,很像橫向擴充套件(scale-out)儲存系統,由檔案系統來實現了跨節點的全域性命名空間。然而需要留心的是,由於擴充套件性並非無限的,在某一特定配置下,廠商對所支援節點的個數確實有限制。

物件友好的應用

這裡提到離散用例的乙個主要原因是物件儲存是使用rest api進行訪問,該api的資料訪問命令僅限最基本的post,get,put和delete操作,然而很多雲**商卻親睞rest作為首選介面。為了提供更豐富的功能,惠普storeall產品是乙個融合的檔案和物件系統,它的作業系統支援cifs, nfs, openstack, identity services, swift和keystone等協議。emc的雲閘道器應用sourceone和cloud tiering,將cifs和nfs翻譯成atoms物件儲存,以及除歸檔外的其它一系列第三方應用程式。昆騰在它的lattus物件儲存產品中**了 restful介面,該介面允許昆騰與其他公司如commvault(simpana)和arkivio等展開合作。exablox的oneblox支援 rest,但是作為乙個cifs共享呈現給應用程式,nfs的支援尚在開發中。

物件儲存和資料永續性

由於物件儲存並不依賴raid做故障保護,廠商們需要別的策略來完成。大多數情況下,這涉及到跨節點的複製。昆騰lattus可以部署永續性策略,即it經理可以指定跨節點和地點的不同複製策略,以應對一定數量的節點故障。如20/4策略可將資料分散複製到20個節點,從而避免最多4個節點發生故障而導致資料損失;18/7策略則是將資料複製到3個節點以應對單點故障的資料損失。exablox的oneblox也將資料複製到其他節點,其中複製到3個節點的資料可以避免兩節點故障的資料損失;而如何將資料在節點間做最優化分布則由乙個雜湊演算法來保障。

emc的atmos擁有兩套保護模式供it經理來決定如何優化可達性與效率。資料複製是一種選擇,無論是同步還是非同步。此外,該產品還採用分布式可擦除編碼,它具有較高的儲存利用率,但每次資料請求都需要訪問兩個或更多地資料儲存。昆騰的lattus同樣使用fountain可擦除編碼,使資料在各節點間分布,而不再需要複製。

其它高階儲存服務

由於rest api的固有限制,廠商們不得不使用各自的方式來提供api基本功能以外的儲存服務。這也正是惠普將storeall實現為乙個融合裝置的原因之一,在需要一整套儲存服務的應用環境裡惠普可以充分利用nas端已經具備的特性。例如,當storeall 8200和storeall 8800使用3par作為儲存後端時,系統即內建了惠普的自適應優化,加密,worm(write once read many)和分層等功能特性。

由於沒有遺留系統需要加以考慮,exablox採取了一條完全不同的道路。它將資料管理的原子單位設定為32kb的雜湊塊。如果乙個塊已存在,則建立指向它的指標,而不是乙個新塊。因而該公司聲稱他們的重複資料刪除功能是「免費」的。資料加密則使用aes 256標準來實現。

物件儲存的效能改進

儘管it使用者確實不會在oltp應用中使用物件儲存系統,廠商們依然在努力提高其系統效能。例如,emc使用一種「boxcarting」的方法來處理大量小交易,即將這些小交易合併在乙個單次寫操作中。exablox則採用不同技術,他們的雜湊演算法能將資料平均分布到所有節點從而避免i/o瓶頸。

儘管物件儲存系統確實不會用於oltp應用,廠商們依然在努力提高其系統效能。

相較於san和nas的複雜性,儘管物件儲存也並非銀彈,但是它確實能夠簡化至少一部分儲存投資,特別是在歸檔和非結構化資料儲存方面。物件儲存可以提供更低的每gb**,而最大的優點則是簡化了儲存管理。按照通常所認為的那樣,如果儲存管理的成本佔據了總擁有成本的85%,那麼物件儲存系統由於無需配置,重新配置和部署任務,必將極大地影響總擁有成本。it經理們將會想辦法將物件儲存納入到企業it資訊架構中來。

UML與物件導向的前世今生

前面講了物件導向的概念,相信大家對物件導向有了一定的認識,這裡我們再來嘮一嘮uml的前世今生 從20世紀70年代,隨著物件導向程式設計思想的興起,大家越來越發現原來以結構化的面向過程的分析設計方法沒辦法推導和指導物件導向程式設計,面向過程的分析設計還是第一步做什麼,第二步做什麼,但是物件導向卻是以看...

LinkedList前世今生

1 linkedlist元素在內部儲存的實現,節點定義即指向前一元素的指標,後一元素的指標,當前元素的值。private static class entry 2 建立乙個空鍊錶。預設有個頭指標header。private transient entryheader new entry null,n...

前世今生 STL

嘛,string就是乙個用於字串處理的標準類庫,但是需要注意的是其速度可能會比直接操縱char陣列要慢一些。reverse這個方法是我一直都想找到但是沒有找到的,在判斷回文的時候格外好用。string s abcdef string ss s ss abcdef reverse ss.begin s...