天天看點

分布式存儲預覽

分布式存儲(簡稱:DS)作為ESX Hypervisor的一部分,是一層直接運作的分布式軟體,目前正由VMware工程師開發中。它将主機的本地儲存設備(包括SSD和HDD)直接聚合成所有主機都可以共享的一個存儲池。也就是說,就像我們過去聚合CPU和記憶體一樣,今天我們開始對本地存儲做同樣的事情—虛拟化ESX主機的實體資源,将之變成資源池,然後根據虛拟機和應用QoS的需求進行分布資源。

結果就形成了一個聚合平台,存儲和計算資源可以按負載需求而比對增長,實體存儲的管理就變得易如反掌– 選擇單選框啟用DS,DS就可以報告群集中存儲資源的使用趨勢(包括空間和吞吐率),需要時,管理者可以向這個群集中增加磁盤和/或主機,就是這麼簡單。

<a href="http://blog.51cto.com/attachment/201209/230408303.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201209/230435648.png" target="_blank"></a>

除此之外,管理者隻要專注在虛拟機和虛拟磁盤上,不需要處理難懂的RAID選項、緩存配置、LUN管理、分區、分區掩蔽等。DS和将在vSphere引入的基于政策的存儲管理完全相容。管理者為他們的虛拟機指定需要的政策(包括可用性、可靠性、性能保留值和最大值等),DS在虛拟機生命周期中提供、監控和報告政策的合規性。如果由于某些元件故障 (主機、磁盤、網絡)或負載變化導緻違反已定義的政策,DS會在背景進行自動修複– 重新配置受影響的虛拟機,優化整個群集中的資源使用,整個過程中都會確定對正常執行的負載造成的影響最小。

<b>動機和技術趨勢</b>

<b></b>

過去的幾年中,資料都是以指數級速率在成長,這個趨勢還會持續一段時間。行業分析師預計2010到2015年間,資料将成長9倍,這個增長是被傳統的應用和新一代應用共同驅動,新一代應用包括社交媒體和大資料分析。将數百TB的企業社交門戶資料存儲在傳統的磁盤陣列上,無論成本和管理都是巨大挑戰。

同時,即使是小的伺服器平台也将消耗大量的電力。到2013年,4路每路CPU 32核(16個核*2線程)總共128個邏輯CPU的伺服器将開始普及。硬碟的容量也極具增加,預計到2016年硬碟容量将達到60TB(參考希捷2012年3月份釋出的資料),如此大容量的硬碟可以認為容量幾乎免費,因為每GB的成本隻有幾個美分。但他們的吞吐率,特别是IOPS并不能如此快速增加。可喜的是,基于成本效益的考量,基于閃存的本地存儲(SDD)已經成為CPU/記憶體和傳統硬碟間的重要一層。SDD存儲的提供了廉價的吞吐率,大約是每個IOPS隻有一美分,至少比傳統磁盤的IOPS便宜兩個數量級。

是以,為什麼我們不混用容量便宜的本地HDD和IPOS很便宜的SDD(或者PCIe裝置),進而能減少新一代伺服器大量CPU資源的負擔,并建構新一代的分布存儲平台呢?通過新技術,比如Google的GFS、VMware的VMFS和DRS、Facebook的巨量分析工廠,工程技術人員已經知道如何建立大型、可靠的分布式系統,這裡的挑戰隻是管理如何簡化。IT專業人員不應需要掌握複雜理論的博士才能管理存儲叢集。實際上,我們不僅僅希望存儲本身的成本降低,也希望管理成本能大幅度下降。而虛拟化正在這一趨勢的催化劑,讓存儲成本降低的同時,也能通過系列應用簡化新舊存儲的管理。

<b>分布式存儲的差異化</b>

VMware并非是唯一認識到這些技術趨勢的公司,并且很多公司也認識到這些技術趨勢終将推動資料中心存儲供給的新模式。但是僅有幾家公司釋出了新的、基于軟體的存儲平台來代替傳統的SAN。許多技術隻針對虛拟化,并且常常引入了聚合的計算和存儲架構。這些技術的主要目标是簡化存儲管理,這是虛拟環境下最重要的難題之一。

VMware分布式的存儲技術有什麼獨特之處呢?

·         作為ESX hypervisor 的一部分來直接實作,改善了資源效率,降低了延時;

·         可以擴充到vSphere叢集的大小(vSphere 5.1支援32個節點) 和管理數千虛拟機的資料和I/O負載;

·         和vSphere的管理概念和界面直覺內建,DS隻是vSphere群集的一個屬性;

·         直接和ESX和叢集資源管理(DRS)內建來全面管理CPU、記憶體、存儲和網絡控制;

·         第一個支援虛拟機導向存儲管理模式的存儲平台,使用了VMware新一代的基于政策的存儲管理堆棧;

·         建構在VMware企業級、分布式軟體的經驗基礎上,包括我們的旗艦産品VMFS和DRS。

<b>和vSphere</b><b>方案和管理內建</b>

對管理者來說,一個DS的datastore看上去和VMFS或NFS的datastore完全一樣,它以單一的檔案系統具名空間和datastore子目錄中存儲的虛拟機中繼資料來展示。預設配置下,群集中的任何主機都可以通路DS的datastore,即使沒有本地磁盤的主機。同時,虛拟機可以部署到任意主機,他們的資料都可以存儲在DS上。不管資料分布在哪些主機和磁盤上,虛拟機可以在任意主機上注冊運作。

已有需要共享存儲的VMware方案都可以支援DS,包括HA、vMotion、DRS等。比如,如果一台主機過載,DRS可以決定将虛拟機從一台主機遷移到叢集中的另外主機上,而虛拟機的遷移會通過VMFS鎖機制來確定虛拟機繼續安全運作,并可以通路在DS Datastore上的狀态。

最後,DS可以和今天已有的、基于VMFS或NFS存儲的vSphere資料管理功能內建,包括:差異盤快照、連結克隆、vSphere複制(vR)和vStorage APIs for Data Protection (vADP)。

<b>設計思路</b>

讓我們一起看看DS技術後面的主要設計思路:

<b>擴充能力和叢集</b>:DS是一個高可擴充的平台,可以擴充到數十台主機。原則上,DS可以成為vSphere一個新的管理抽象層(比如分布式的存儲叢集),但為了可用性和內建原因,我們将DS做成了vSphere叢集的一個屬性。啟用DS的叢集有一個可以被叢集中任何主機通路的DS Datastore。當然,這些主機也可以使用其他的VMFS和NFS datastore。當然,叢集中的主機不必相同,甚至不需要都有本地磁盤,它們都可以通路這個DS datastore。注意:如果一台主機貢獻了本地儲存設備,它同時必須貢獻至少一個SSD盤,DS會自動進行此檢查。

<a href="http://blog.51cto.com/attachment/201209/230544225.jpg" target="_blank"></a>

管理者可以選擇磁盤“自動認領”模式– DS将認領并使用任何不包含其他分區的本次存儲 (SAS或SATA)。相反的,管理者需要自己手工選擇哪些主機将貢獻它們的本地存儲給DS。

<b>基于對象的存儲:</b> DS通過對象的靈活資料方式來存儲和管理資料。可以将對象想象成一個邏輯卷,上面包含了分布在整個叢集中的資料和中繼資料,并且可以整個叢集都可以通路這些資料。在ESX的存儲層,這些對象就是裝置,DS可以在一個叢集中管理成千上萬個對象。這些對象是可變的,又保持嚴格一緻性,不像“Blob”存儲對象(S3、Azure等)。

對于建立在DS datastore上的一個虛拟機,會為虛拟機的每個虛拟磁盤生成一個對象,外加一個容器對象來存放VMFS卷和存儲虛拟機所有中繼資料檔案。DS會顯示一個具名空間 (就像VMFS和NFS datastore)。因為HA和vMotion需要,DS會為每個虛拟機的中繼資料強加VMFS鎖。

DS單獨管理每個對象。比如,如下圖所示,為了一個虛拟磁盤建立對象,DS會考慮兩點:1)管理者為特定虛拟磁盤指定的政策;2)建立時叢集資源和使用率,基于這些判斷,DS覺得在叢集中如何分布對象。比如:

·         基于可用性政策決定需要建立多少份副本;

·         基于性能政策決定為每一副本配置設定多少SSD空間,如果需要還會考慮每份副本條帶化數量。

也就是說,DS為每個對象都通過網絡建立了一個RAID。

<a href="http://blog.51cto.com/attachment/201209/230635484.jpg" target="_blank"></a>

由于DS叢集和負載随時間不短變化,DS監控虛拟磁盤政策的合規性,如果需要,DS會替換或重新配置部分或全部,讓對象重新回歸合規或優化叢集資源的使用。DS會主動控制重新配置造成的存儲和網絡流量,減少重新配置對正常執行負載的影響。

<b>通過複制來提高資料可靠性和可用性:</b>DS通過跨主機的RAID-1 (同步複制)來確定對象政策的可用性和可靠性,副本數量取決于這些政策的值(比如多少個9的可用性)。可能有人會問:問什麼不使用更節省空間的RAID-5或RAID-6呢?簡單回答就是“因為RAID 1更便宜”。這個問題的細節超出了本文的探讨範圍,但要點是因為RAID-5和RAID-6需要讀-改-寫,而不是全部條帶化的寫,許多寫操作需要額外的磁盤讀操作,這實際需要很多小硬碟,這會增加總體系統成本。要點是SSD的成本大約是7美金/GB和1美分/IOPS,而硬碟成本低于0.1美金/GB和2美金/IOPS,是以我們将混合獲得最便宜的資源:SSD的IOPS和硬碟的空間容量。

當一個副本需要打碎成多個資料塊來放到磁盤上,或滿足順序讀寫負載的性能需求時,DS可為每個副本建立多個條帶(跨硬碟扇區)。

<b>通過SSD</b><b>來提升性能:</b>很少的負載是順序讀寫的,特别是數千虛拟機共享存儲的環境中,聚合的負載肯定是随機的,肯定不是發揮磁盤性能的最佳負載。

為了解決随機負載的性能瓶頸,DS在硬碟前面添加SSD來進行讀和諧的緩存。配置設定給每個對象副本的讀緩存SSD的數量取決于對象性能政策和緩存配置。DS的複制算法智能地路由讀操作到不同的副本來增加每個副本緩存上的讀命中率(相當于減少了所需緩存的大小)。寫操作先複制,在完成寫操作前,先保留每個副本在寫緩存中。DS使用電梯算法來将退下的資料從SDD寫入硬碟。這考慮了硬碟的最新特性(比如臨近I/O)來最大限度發揮硬碟的潛在吞吐速率。

總之,分布式存儲是一個聚合ESX主機計算和存儲資源的、基于軟體的分布式平台,它提供了企業級的特性和性能,同時為使用者提供了簡化的管理體驗。敬請期待VMware關于這一技術的最新進展,我們會第一時間分享給大家。

     本文轉自張振倫 51CTO部落格,原文連結:http://blog.51cto.com/virtualman/1006685,如需轉載請自行聯系原作者

繼續閱讀