1. 存儲虛擬化方式有哪些,請分析它們的用途及優缺點
您好,很高興能幫助您
主機級別的方案中通常只是虛擬化直連主機的存儲,當然也有一些可以部署在一個SAN環境中的多台存儲子系統上。
早先的存儲虛擬化產品常用於簡化內部磁碟驅動器和伺服器外部直連存儲的空間分配,以及支持應用集群。Veritas Volume Manager和Foundation Suite就是首批這類解決方案,這類方案使得存儲擴展,以及為應用程序和文件伺服器提供空間更為簡單快速。
隨著存儲需求的增長遠遠超過直連存儲所能提供的范圍,存儲虛擬化逐漸成為存儲陣列中的一種容量提供方式。而容量持續增長以及諸如iSCSI等小型IT組織負擔得起的共享存儲技術的出現又使得存儲虛擬化技術也融合進基於網路的設備和運行在通用硬體的軟體里。
不過現今的伺服器和桌面虛擬化技術興起給存儲虛擬化技術帶來了新的生機,而基於主機的存儲虛擬化技術正在逐漸回歸。伺服器虛擬化平台必需要基於共享存儲體系架構來實現一些關鍵特性,比如VMware的vMotion和Distributed Resource Schele (DRS)。通過傳統的SAN架構自然可以實現這種共享存儲體系架構,不過越來越多的IT組織開始尋求更簡單的方式來實現共享存儲。基於主機的虛擬化技術就是方式之一。
諸如VMware之類的伺服器虛擬化供應商認為存儲是妨礙虛擬化技術大規模普及的瓶頸之一。這些Hypervisor供應商已經實現了處理器和內存資源的抽象,實現更好的控制並提高資源利用率,他們自然而然也會希望這樣控制存儲。不過將存儲控制功能整合到主機伺服器端,稱之為「存儲Hypervisor」時會帶來一些潛在的問題。處理一些在虛擬伺服器和虛擬桌面環境中至關重要的存儲服務,諸如快照、克隆和自動精簡配置時,會嚴重影響主機伺服器的性能。
Virsto的解決方案
Virsto開發出了一款軟體解決方案,安裝在每台主機伺服器上(無論是一台虛擬機或Hypervisor上的過濾驅動器)並在主存儲上創建一個虛擬化層,稱為Virsto存儲池。其同時創建一個高性能磁碟或者固態存儲區域,成為「vLog」。讀操作會直接指向主存儲,不過寫操作會通過vLog進行,這會給請求的虛擬機或應用程序發回一個確認。然後vLog將這些寫操作非同步地分布寫入主存儲,從而減少對寫性能的影響。該存儲池可以容納多至4層的存儲方式,包括固態存儲和各類型的磁碟驅動器。
和緩存的工作方式類似,vLog通過在存儲前端降低耦合度改善了存儲性能,降低了後端存儲的延遲。其同時將前端主機的隨機寫操作變為順序方式,實現後端存儲的最佳性能。基於Virsto主機的存儲虛擬化軟體實現了以上這些功能。
虛擬存儲設備
基於主機的存儲虛擬化的另一項應用實例是虛擬存儲設備(VSA)
VSA是運行在虛擬機上的存儲控制器,其虛擬化統一集群中的主機所直接連接的存儲。VSA提供一個主機使用的簡易的存儲共享體系架構,並支持高可用性、虛擬機遷移,並改善存儲提供方式。對於很多企業,這種方式可以替代原本需要建立並管理傳統SAN或NAS來支持虛擬伺服器和桌面的體系架構。
vSphere Storage Appliance。VMware的vSphere Storage Appliance以一個虛擬機的方式運行,從在2個或3個節點集群中,每個ESX/ESXi主機所直連的DAS存儲中,創建一個共享存儲池。VMware VSA提供每個節點的RAID保護,並在同一集群的各個節點之間提供鏡像保護。雖然從技術角度上看,VMware VSA是一個基於文件的體系架構,不過其亦為集群中每台主機提供數據塊級別的存儲虛擬化,並用戶可以從這種部署方式中獲取和基於數據塊的共享存儲一樣的收益。
HP的LeftHand Virtual SAN Appliance。雖然和VMware VSA的功能類似,P4000 VSA軟體可以支持每台主機直連DAS以外的方式。其還允許使用iSCSI或FC SAN等外部存儲來創建共享存儲池。這就意味著可以將如何可用的存儲,本地存儲或用於容災的異地存儲,轉變為LeftHand存儲節點。P4000t提供快照和自動精簡配置,並且支持Hyper-V和VMware。
DataCore的SANsymphony-V。DataCore的解決方案是通過在一個虛擬機中部署其SANsymphony軟體來整合其它各個VMware,Hyper-V或XEN主機的直連存儲,形成共享存儲池。SANsymphony-V可以和HP的解決方案那樣虛擬化外部的網路存儲,並且該軟體可以在遷移到傳統的共享存儲體系架構時部署在外部伺服器上。SANsymphony-V同時提供各類存儲服務,譬如快照、自動精簡配置、自動化分層和遠程復制。
FalconStor的NSS Virtual Appliance。FalconStor的Network Storage Server Virtual Appliance(NSSVA)是該公司NASS硬體產品中唯一支持的VMware版本,用網路上其它主機的直連存儲創建一個虛擬存儲池。和DataCore和LeftHand的解決方案類似,該存儲池可以擴展到網路上任何可用的iSCSI存儲上。該NSS Virtual Appliance包括快照、自動精簡配置、讀/寫緩存、遠程復制和卷分層等存儲功能。
基於主機的存儲虛擬化解決方案是目前大多使用在虛擬化伺服器和虛擬化桌面環境中,用以實現環境的高可用性特性,以及改善存儲性能、利用率和管理效率。
你的採納是我前進的動力,
記得好評和採納,答題不易,互相幫助,
2. 什麼是存儲虛擬化
存儲虛擬化(StorageVirtualization)最通俗的理解就是對存儲硬體資源進行抽象化表現。通過將一個(或多個)目標(Target)服務或功能與其它附加的功能集成,統一提供有用的全面功能服務。典型的虛擬化包括如下一些情況:屏蔽系統的復雜性,增加或集成新的功能,模擬、整合或分解現有的服務功能等。虛擬化是作用在一個或者多個實體上的,而這些實體則是用來提供存儲資源或/及服務的。在虛擬化領域流傳著一個故事:一個好的虛擬化解決方案就好像游歷一個虛擬現實的主題公園。當遊客想像他正在城市上空滑翔時,感測器就會把相應的真實感覺傳遞給遊客,並同時隱藏真實的力學環境。
同樣,一個好的虛擬化工具可以對企業的存儲設備做相同的工作,只不過過程也許會反過來首先建立一個框架,讓數據感覺自己是存儲在一個真實的物理環境里,之後操作者就可以任意改變數據存儲的位置了,同時保證數據的集中安全。虛擬化技術到底是什麼?其實廣義上來說,就是通過映射或抽象的方式屏蔽物理設備復雜性,增加一個管理層面,激活一種資源並使之更易於透明控制。它可以有效簡化基礎設施的管理,增加IT資源的利用率和能力,比如伺服器、網路或存儲。存儲虛擬化是一種貫穿於整個IT環境、用於簡化本來可能會相對復雜的底層基礎架構的技術。存儲虛擬化的思想是將資源的邏輯映像與物理存儲分開,從而為系統和管理員提供一幅簡化、無縫的資源虛擬視圖。
3. 存儲虛擬化可以分為哪兩大類
目前虛擬存儲的發展尚無統一標准,從虛擬化存儲的拓撲結構來講主要有兩種方式:即對稱式與非對稱式
4. 存儲虛擬化的存儲技術
存儲系統必須在能力和性能上直線升級,將問題推給硬體系統並不是解決辦法。存儲虛擬化需要全新的軟體方式來平衡擴容體系架構來實現數以千兆的數據傳輸和存儲。
相關的存儲技術主要有以下幾點:
基於主機的存儲虛擬化依賴於代理或管理軟體,它們安裝在一個或多個主機上,實現存儲虛擬化的控制和管理。由於控制軟體是運行在主機上,這就會佔用主機的處理時間。
因此,這種方法的可擴充性較差,實際運行的性能不是很好。基於主機的方法也有可能影響到系統的穩定性和安全性,因為有可能導致不經意間越權訪問到受保護的數據。
這種方法要求在主機上安裝適當的控制軟體,因此一個主機的故障可能影響整個SAN系統中數據的完整性。軟體控制的存儲虛擬化還可能由於不同存儲廠商軟硬體的差異而帶來不必要的互操作性開銷,所以這種方法的靈活性也比較差。
但是,因為不需要任何附加硬體,基於主機的虛擬化方法最容易實現,其設備成本最低。使用這種方法的供應商趨向於成為存儲管理領域的軟體廠商,而且目前已經有成熟的軟體產品。
這些軟體可以提供便於使用的圖形介面,方便地用於SAN的管理和虛擬化,在主機和小型SAN結構中有著良好的負載平衡機制。從這個意義上看,基於主機的存儲虛擬化是一種性價比不錯的方法。
基於存儲設備的存儲虛擬化方法依賴於提供相關功能的存儲模塊。如果沒有第三方的虛擬軟體,基於存儲的虛擬化經常只能提供一種不完全的存儲虛擬化解決方案。對於包含多廠商存儲設備的SAN存儲系統,這種方法的運行效果並不是很好。
依賴於存儲供應商的功能模塊將會在系統中排斥JBODS(Just a Bunch of Disks,簡單的硬碟組)和簡單存儲設備的使用,因為這些設備並沒有提供存儲虛擬化的功能。當然,利用這種方法意味著最終將鎖定某一家單獨的存儲供應商。
基於存儲的虛擬化方法也有一些優勢:在存儲系統中這種方法較容易實現,容易和某個特定存儲供應商的設備相協調,所以更容易管理,同時它對用戶或管理人員都是透明的。但是,我們必須注意到,因為缺乏足夠的軟體進行支持,這就使得解決方案更難以客戶化(customzing)和監控。
一般而言,存儲虛擬化的實現方式的另外一種分類方法是將其分為三種:交換架構虛擬化,磁碟陣列虛擬化,以及整合到應用設備內的虛擬化。對於三種不同的虛擬化方式,存儲供應商都有各自的獨門兵器。飛康的IPStor/NSS 存儲虛擬化產品在2001年就已經出現在市場上 ,截止2014年已經正式發布了其第七代存儲虛擬化產品,技術成熟度和廣泛的應用范圍都具備良好的可參考性。飛康 NSS 在接管底層存儲子系統的磁碟卷時,可以採用兩種方式來實現接入:一種是將底層磁碟卷直接虛擬化為Virtual Disk(虛擬磁碟)以供NSS管理和分配;另一種可將磁碟卷轉換為SED(Service-Enabled Devices)磁碟設備以供NSS管理和分配。當轉換為SED設備時,磁碟卷原有數據不會被修改,可以快速通過NSS分配給主機系統,整個接入過程非常簡單,不需要數據遷移,停機時間很少,當然也可以實現快速回退,磁碟重新分配給原主機系統,可以被正確識別和使用IBM自兩年前推出SVC(SAN卷控制器)(IBM SAN Volume Controller 對於存儲虛擬化,IBM SAN Volume Controller(SVC)能夠將多個磁碟系統的容量整合為一個單一的「容量池」。SVC 可幫助節省空間和能源,並能通過合並來簡化存儲資產的管理,這將極大地提高現有存儲器的利用率,並減少額外的存儲需求。)產品後,在這一領域獨占鰲頭。去年,HDS(日立數據系統有限公司)緊隨其後發布了TagmaStore通用存儲平台(USP),這是基於磁碟陣列的解決方案。近幾個月,EMC公司新發布的Invista網路存儲虛擬解決方案則是基於存儲交換的解決方案。
5. 虛擬存儲技術的網路的虛擬存儲虛擬化的分類
網路的虛擬存儲化技術是當前存儲虛擬化的主流技術,它當前在商業上具有較多的成功產品。典型的網路虛擬存儲技術主要包括網路附加存儲NAS(Network Attached Storage)和存儲區域網路SAN(Storage Area Network)。由於這兩種系統的體系結構、通信協議、數據管理的方式不同,所以NAS主要應用於以文件共享為基礎的虛擬存儲系統中,而SAN主要應用在以資料庫應用為主的塊級別的數據共享領域。存儲區域網路SAN是當前網路存儲的主流技術。
虛擬化存儲的實現可以分布在從主機到存儲設備之間路徑的不同位置上,由此可把基於網路的存儲虛擬化細分為基於交換機的虛擬化、基於路由器的虛擬化、基於存儲伺服器端的虛擬化。
6. 請問現在好的虛擬化存儲技術都有哪些
虛擬化技術廣義上來說,就是通過映射或抽象的方式屏蔽物理設備復雜性,增加一個管理層面,激活一種資源並使之更易於透明控制。它可以有效簡化基礎設施的管理,增加IT資源的利用率和能力,比如伺服器、網路或存儲。
存儲虛擬化實現形式分為三種:交換架構虛擬化,磁碟陣列虛擬化,以及整合到應用設備內的虛擬化。
對於三種不同的虛擬化方式,存儲供應商都有各自的獨門兵器。IBM推出SVC(SAN卷控制器)(IBM SAN Volume Controller 對於存儲虛擬化,IBM SAN Volume Controller(SVC)能夠將多個磁碟系統的容量整合為一個單一的「容量池」。SVC 可幫助節省空間和能源,並能通過合並來簡化存儲資產的管理,這將極大地提高現有存儲器的利用率,並減少額外的存儲需求。)產品後,在這一領域獨占鰲頭。HDS(日立數據系統有限公司)緊隨其後發布了TagmaStore通用存儲平台(USP),這是基於磁碟陣列的解決方案。
那麼到底是哪種技術,哪家廠商的方案是最佳的呢?哪種方案會成為存儲虛擬化大賽中的最終勝者呢?現在更多的專家認為,這場競賽沒有最後的贏家,越來越多人認為這三種技術應當結合使用。
如果我們把廠商和各自的虛擬化技術對號入座,那麼三個虛擬化陣營都各自有一些代表廠商。虛擬化應用陣營的代表有SVC、StorAge、NetworkAppliance設備以及DataCore公司。而在磁碟陣列和光纖通道陣營里,HDS、Sun、hp以及Acopia提供了多樣化的體系結構。交換機陣營則包括Invista、McData、Brocade、QLogic以及Cisco公司。
7. 光纖、iSCSI、NAS:誰是伺服器虛擬化最佳存儲類型
因為每個應用環境都是不同的,即使在一個地方表現良好,那也不能保證在其他地方同樣合適。 對於伺服器虛擬化環境來說,光纖通道存儲是比較傳統的選擇。但現在iSCSI和NAS的普及程度也越來越高,畢竟它們的性價比更加突出。下面本文就來看看每一種網路存儲技術的規格特性,並逐一分析它們的優勢和不足。 光纖通道存儲 單從性能和可靠性的角度看,光纖通道無疑是出色的存儲架構,其它產品很難與之PK.但凡事都有兩面性,使用光纖通道存儲的確獲得了高性能,可用戶卻不得不承擔更高的成本,以及面對更復雜的技術架構。不過,光纖通道技術在數據中心領域的應用歷史很長,基礎非常好,因此比較大的虛擬化環境通常都傾向於選擇光纖通道,這些用戶主要還是考慮速度和可靠性的因素(光纖通道當前的帶寬是8 Gbps,下一代是16 Gbps)。另外,光纖通道存儲網路一直是相對獨立的,因此與基於乙太網的存儲設備相比安全性更好。可問題是,光纖通道需要特殊的HBA主機適配器、特殊的交換機,而且這些配件比乙太網絡使用的同類配件更加昂貴。 客觀的說,如果要從零開始構建一個光纖通道網路代價是很高的。除此之外,光纖通道環境的部署和管理也更復雜,與傳統網路架構相比,它配置起來難度很大,熟悉此項技術的人才也偏少。當前,很多公司都有技術熟練的網路管理員,但其中卻很少有光纖通道存儲網路方面的管理人才。設計並管理一個SAN架構通常需要經過特殊的培訓,這無形中又進一步增加了實施的費用。 光纖通道存儲的優勢: FC是部署企業級存儲架構的首選,而且許多應用環境本身就已經在使用SAN了; 由於具有更高的可用帶寬,通常情況下性能表現最好; 獨立的光纖通道網路更安全;還有LUN zoning和LUN masking等訪問控制機制; 支持boot from SAN(從存儲啟動系統),伺服器本地不再需要硬碟; 基於block的塊存儲類型,可以使用VMware vSphere自帶的VMFS卷(一種文件系統)。 光纖通道存儲的不足: 從零開始構建的話,部署成本會很高; 需要特殊的、昂貴的配件,比如交換機、線纜和HBA卡; 實施和管理也許更復雜,通常需要專職的存儲管理員; 可用的安全控制功能較少,實現認證和加密比較復雜。 如果用戶的物理伺服器上准備運行多個虛擬機,且應用類型對磁碟I/O有較高的要求,那麼為了得到最佳的性能,用戶或許應該認真考慮使用光纖通道存儲系統。此外,FCoE也是一個選擇,它相當於在傳統的乙太網設備上承載光纖通道協議。但目前FCoE必須部署在同樣昂貴的10 Gbps乙太網環境,需要特殊的交換設備。 如果用戶的應用環境中已經有了FC SAN,那麼在構建虛擬化平台時使用光纖通道儲存是很合適的。擴展一個已有的SAN環境很容易,而且比部署一個全新的環境要便宜許多。如果用戶的預算充足,而且有管理復雜環境的技術能力,那麼選擇光纖通道存儲一定沒錯。
8. 存儲虛擬化是什麼集群存儲又是什麼
存儲虛擬化廣義上來說,就是通過映射或抽象的方式屏蔽物理設備復雜性,增加一個管理層面,激活一種資源並使之更易於透明控制。
存儲虛擬化(Storage Virtualization)最通俗的理解就是對存儲硬體資源進行抽象化表現。通過將一個(或多個)目標(Target)服務或功能與其它附加的功能集成,統一提供有用的全面功能服務。
集群存儲是指:由若干個「通用存儲設備」組成的用於存儲的集群,組成集群存儲的每個存儲系統的性能和容量均可通過「集群」的方式得以疊加和擴展。
9. 簡述虛擬化存儲技術的三種實現方法及工作原理
從系統的觀點看,有三種主要的存儲虛擬化方法:
基於主機的虛擬存儲;
基於存儲設備的虛擬存儲;
基於網路的虛擬存儲。
方法1:基於主機的虛擬存儲
基於主機的虛擬存儲依賴於代理或管理軟體,它們安裝在一個或多個主機上,實現存儲虛擬化的控制和管理。由於控制軟體是運行在主機上,這就會佔用主機的處理時間。因此,這種方法的可擴充性較差,實際運行的性能不是很好。基於主機的方法也有可能影響到系統的穩定性和安全性,因為有可能導致不經意間越權訪問到受保護的數據。這種方法要求在主機上安裝適當的控制軟體,因此一個主機的故障可能影響整個SAN系統中數據的完整性。軟體控制的存儲虛擬化還可能由於不同存儲廠商軟硬體的差異而帶來不必要的互操作性開銷,所以這種方法的靈活性也比較差。
但是,因為不需要任何附加硬體,基於主機的虛擬化方法最容易實現,其設備成本最低。使用這種方法的供應商趨向於成為存儲管理領域的軟體廠商,而且目前已經有成熟的軟體產品。這些軟體可以提供便於使用的圖形介面,方便地用於SAN的管理和虛擬化,在主機和小型SAN結構中有著良好的負載平衡機制。從這個意義上看,基於主機的存儲虛擬化是一種性價比不錯的方法。
方法2:基於存儲設備的虛擬化
基於存儲設備的存儲虛擬化方法依賴於提供相關功能的存儲模塊。如果沒有第三方的虛擬軟體,基於存儲的虛擬化經常只能提供一種不完全的存儲虛擬化解決方案。對於包含多廠商存儲設備的SAN存儲系統,這種方法的運行效果並不是很好。依賴於存儲供應商的功能模塊將會在系統中排斥JBODS(Just a Bunch of Disks,簡單的硬碟組)和簡單存儲設備的使用,因為這些設備並沒有提供存儲虛擬化的功能。當然,利用這種方法意味著最終將鎖定某一家單獨的存儲供應商。
基於存儲的虛擬化方法也有一些優勢:在存儲系統中這種方法較容易實現,容易和某個特定存儲供應商的設備相協調,所以更容易管理,同時它對用戶或管理人員都是透明的。但是,我們必須注意到,因為缺乏足夠的軟體進行支持,這就使得解決方案更難以客戶化(customzing)和監控。
方法3:基於網路的虛擬存儲
基於網路的虛擬化方法是在網路設備之間實現存儲虛擬化功能,具體有下面幾種方式:
1. 基於互聯設備的虛擬化
基於互聯設備的方法如果是對稱的,那麼控制信息和數據走在同一條通道上;如果是不對稱的,控制信息和數據走在不同的路徑上。在對稱的方式下,互聯設備可能成為瓶頸,但是多重設備管理和負載平衡機制可以減緩瓶頸的矛盾。同時,多重設備管理環境中,當一個設備發生故障時,也比較容易支持伺服器實現故障接替。但是,這將產生多個SAN孤島,因為一個設備僅控制與它所連接的存儲系統。非對稱式虛擬存儲比對稱式更具有可擴展性,因為數據和控制信息的路徑是分離的。
基於互聯設備的虛擬化方法能夠在專用伺服器上運行,使用標准操作系統,例如Windows、Sun Solaris、Linux或供應商提供的操作系統。這種方法運行在標准操作系統中,具有基於主機方法的諸多優勢--易使用、設備便宜。許多基於設備的虛擬化提供商也提供附加的功能模塊來改善系統的整體性能,能夠獲得比標准操作系統更好的性能和更完善的功能,但需要更高的硬體成本。
但是,基於設備的方法也繼承了基於主機虛擬化方法的一些缺陷,因為它仍然需要一個運行在主機上的代理軟體或基於主機的適配器,任何主機的故障或不適當的主機配置都可能導致訪問到不被保護的數據。同時,在異構操作系統間的互操作性仍然是一個問題。
3. 基於路由器的虛擬化
基於路由器的方法是在路由器固件上實現存儲虛擬化功能。供應商通常也提供運行在主機上的附加軟體來進一步增強存儲管理能力。在此方法中,路由器被放置於每個主機到存儲網路的數據通道中,用來截取網路中任何一個從主機到存儲系統的命令。由於路由器潛在地為每一台主機服務,大多數控制模塊存在於路由器的固件中,相對於基於主機和大多數基於互聯設備的方法,這種方法的性能更好、效果更佳。由於不依賴於在每個主機上運行的代理伺服器,這種方法比基於主機或基於設備的方法具有更好的安全性。當連接主機到存儲網路的路由器出現故障時,仍然可能導致主機上的數據不能被訪問。但是只有聯結於故障路由器的主機才會受到影響,其他主機仍然可以通過其他路由器訪問存儲系統。路由器的冗餘可以支持動態多路徑,這也為上述故障問題提供了一個解決方法。由於路由器經常作為協議轉換的橋梁,基於路由器的方法也可以在異構操作系統和多供應商存儲環境之間提供互操作性。
10. 分層存儲與虛擬化技術的分層存儲
分層存儲其實已經不是一個新鮮的概念,而是已經在計算機存儲領域應用多年。其與計算機的發明與發展相伴相生。在馮-諾依曼提出計算機的模型「存儲程序」時就已經包含了分層存儲的概念。「存儲程序」原理,是將根據特定問題編寫的程序存放在計算機存儲器中,然後按存儲器中的存儲程序的首地址執行程序的第一條指令,以後就按照該程序的規定順序執行其他指令,直至程序結束執行。在這里的外存儲器與內存儲器,就是一個分層存儲的最初模型。
分層存儲(Tiered Storage),也稱為層級存儲管理(Hierarchical Storage Management),廣義上講,就是將數據存儲在不同層級的介質中,並在不同的介質之間進行自動或者手動的數據遷移,復制等操作。同時,分層存儲也是信息生命周期管理的一個具體應用和實現。
而實際上,將相同成本及效率的存儲介質放在不同層級之間進行數據遷移復制在實用性及成本上並不是有效的數據存儲方式。因此,在不同的層級之間使用有差別的存儲介質,以期在相同成本下,既滿足性能的需要又滿足容量的需要。這種存儲介質上的差別主要是在存取速度上及容量上。存取速度快的介質通常都是存儲單位成本(每單位存儲容量成本,如1元/GB)高,而且容量相對來講比較低。相應的,存取速度慢的介質通常是為了滿足容量與成本方面的要求,既在相同的成本下可以得到更大的容量。所以,從這方面來說,分層存儲其實是一種在高速小容量層級的介質層與低速大容量層級的介質層之間進行一種自動或者手動數據遷移、復制、管理等操作的一種存儲技術及方案。
一般來說,分層存儲中,我們將存取速度最快的那一層的介質層稱為第0層(Tier 0),依次為第1層,第2層等等。理論上說,層級的劃分可以有很多層,但是在實踐中,最多的層級在5層左右。過多的層級會增加數據及介質管理的難道及可用性。因此在層級的設置上有一個拐點,即層級達到一個特定的層數時,會導致成本的上升,而使得可用性、可靠性都會相應下降。通常層級的設定在2-4層之間。如下圖所示: 在計算機系統中,CPU 的運行速度往往要比內存速度快上好幾百倍甚至更多,為了更多地榨取CPU的計算能力,就需要在訪問數據的速度上進行提升,否則內存的速度將成為整個系統的性能短板。因此在這樣的思想下,CPU慢慢發展出來1級或者2級這樣的存儲緩存。實際也表明,緩存的存在確實對於系統性能的提升起到了巨大的推動作用。
相應的,內存的訪問速度又是硬碟訪問速度的幾百倍甚至更多,也是基於CPU類似的指導思想,我們能不能在存儲之間也進行這樣的分層(或者說緩存)以期提高系統的I/O性能,以滿足應用對系統提出的更多高I/O的需求呢?
從某種意義上說,內存其實也就是充當了CPU與外部存儲之間的另一個級別的緩存。作為用戶來講,我們當然希望所有需要用到的數據都最好是存在最高速的存儲當中。但是這樣近乎是烏托邦式的理想至少在當前來說是不現實的。在技術上的難度不說,成本的壓力就會使得用戶喘不過氣來,再一個就是有沒有必要的問題,因為有的數據根本都不需要一直存於這樣的存儲中。在計算機界中有一個很有名的理論,就是說,加上一個中間層,就可以解決計算機中許多的問題。而這個「中間層」也正是我們所尋求的,實際也證明這樣的中間層確實取得了非常好的效果。
據IDC數據預測,到2012年,信息數據的增長將會達到50%的復合年增長率,這個增長主要源於越來越來多數據內容生成並存儲,經濟全球化使用商業各個部門及與商業夥伴之間需要保持連接,使得更多的數據被生成,復制及保存。法規遵從及管理,還有容災與備份都使得數據的增長持續上升。天下沒有一勞永逸的解決方案,我們需要根據不同的數據存儲需求,設計不同的存儲方案。比如歸檔,我們可以將數據存儲在磁帶上,比如需要頻繁訪問的實時數據我們可以放在內存或者SSD(固態硬碟)設備中,對於容災或者備份,我們可以使用大容量低成本的存儲來應對。正所謂好鋼用在刀刃上,用戶也希望把資金投向更能產生效益的存儲上。
除了需要滿足不同的存儲需求,還有出於對於高性能高吞吐量應用的支持。因為有的應用需要這樣存儲系統。特別是現在風頭正勁的虛擬化技術。為了在一台設備上支持更多的虛擬應用,就需要系統支持更大的吞吐量以及更高的性能。全部採用高速介質在成本上現在依然不是可行的,也不是必須的。因為根據數據局部性原理,往往被頻繁訪問的數據是局部而有限的。為了應對部份這樣的數據而全採用高速存儲實在是過於奢侈。如果我們針對這部份數據另開小灶來解決不是更好?所以分層存儲在這里就可以大展拳腳。我們把高頻率訪問的數據放在高速存儲介質上,而其他的數據放在速度較慢一些的介質上,這實際上就是提高了系統的吞吐量。 從計算機系統角度來說,最上層的存儲層應該是CPU內的各類型寄存器,其次是CPU內的緩存,其次再是系統內存。因為從分層存儲的定義上,此類型存儲器是符合定義規則的。因為這些存儲器速度與容量都有差別,越靠近CPU的存儲器成本越高,速度越快,容量越小,並且在CPU的控制下,數據這些不同類型的存儲器中間進行自動的轉存。比如寄存器通常在16、32、64、128位之間,而緩存則在幾十個位元組及到幾兆位元組之間,內存容量當前通常都在幾百兆位元組以上,伺服器級的內存也上幾十個吉位元組。很有意思的是,這類型的分層也非常符合上圖所示的效益成本曲線圖。層級過多時,對於CPU的硬體設計及不同層次之間的數據一致性的保證都是一個挑戰。所以,現代CPU在寄存器與內存之間的緩存基本在1-3級。而我們通常使用的386平台的CPU(Intel 及 AMD)基本上都只有兩級緩存。這類存儲都有一個共同的特點,就是系統掉電後數據不復存在。我們將此類型的分層存儲稱為易失性存儲分層,或者內部存儲器分層存儲。
而另外一種分類,則是非易失性分層存儲,或者叫外部分層存儲。此類型的存儲介質一般包括固態硬碟(SSD)、機械式硬碟、光碟、快閃記憶體檔(包括外置硬碟)、磁帶庫等等。而此類的存儲介質分層正是我們所要關注的,如沒有特殊的說明情況下,在此文檔中所說的分層存儲都是指外部分層存儲。一般來說,作為第0層的存儲介質通常為 RAM 磁碟(隨機訪問存儲磁碟,其速度與內存同速,但是價格昂貴,使用環境基本上是特殊計算環境)以及 SSD,第1層可能有 FC 15K硬碟或者SAS 15K硬碟,或者相應的10K硬碟。第2層可能有其他類型的硬碟及磁碟庫等。第3層,可能是如磁帶庫以及光碟庫這樣的離線介質。當然這樣的分層不是標准,但是一個實踐中常用的分層策略。
如 D2D2T 這樣的存儲方案,其實就是分層存儲的一個實踐方案。數據從本地的磁碟轉存於於另一個遠程的磁碟(D2D)。這個磁碟的形式可以是一個JBOD,或者一個虛擬存儲設備,然後再通過一定的轉存策略將這個磁碟的數據轉存於磁帶庫或者磁帶(D2T)。愛數備份存儲櫃X系列都支持D2D2T這樣的應用。 由上一節可知道,外部分層存儲只不過是內部分層存儲的一個外延。所以,外部分層存儲考慮的問題與內部分層存儲實際上是大同小異的。
1、 首先是數據一致性的問題。這個問題比較好理解。如果不同的數據在不同的存儲層級之間存在時,數據的改寫必然導致數據的不致的問題。在內部分層存儲時,可以採用通寫策略或者回寫策略。而不同的方法也有各自優缺點,這里就不再贅述。但是外部分層存儲與內部分層存儲有一個最大的不同是,內存儲最終數據需要寫到內存中,而外分層存儲中,則不是必須的。當然也可以設計成這樣的實現方案,但是這樣話,分層存儲的性能優勢則必定會受到影響。數據在不同層級之間的連續性可以由一個虛擬層來保證。這個我們在談到虛擬化時會討論這個問題。
2、 第二個問題就是命中率的問題。如何設計一套演算法或者實現策略來提高數據系統的命中率是分層存儲中是否能起到其相應作用的關鍵。這個與CPU的緩存機制是完全一樣的。不過,CPU的緩存機制已經有一套非常成熟的演算法設計。而外部分層存儲與內部分層存儲有其不同的特性,因此,CPU中的緩存機制不能全部照拿過來用。特別是CPU的緩存機制還主要是硬體設計上面的問題。而外部存儲層可能還與一些邏輯設計相關,比如文件系統,文件等。從這點上說,外部分層存儲的軟體設計上比起CPU緩存的設計可能要更復雜一些。
3、 第三個問題就是在分層介質的選擇上。上面也提過,不同層級之間的介質應該是有差別的,否則就失去了分層的意義。一般來說,高速介質應該是小容量、高成本,隨著層級的往下走,其成本容量曲線應該呈現如下的形式:
即容量越大的單位成本越低,速度越慢,因此應該放到更低的層級中,反之亦然。因此,在存儲介質的配置上如何找到一個合適的點,使得成本與效益最優化則是在分層介質選擇及策略制定上需要考慮的問題。下面的圖中給出了一個實際的可能的配置方案:1、 第四個問題就是數據分層的級別。對於數據的描述有位元組級,塊級(包括扇區及簇),文件級及文件系統級。當然不同的級別有不同的應用場合,並不是哪種級別好於哪個級別。對於文件級的分層,對於歸檔,法規遵從則比較適合。對於文件系統級的則多用於容災及備份系統中。對於塊級則可能用在虛擬化中較為合適。因此需要根據不同的需求制定不同的分層級別。
2、 第五個問題就是數據的遷移策略的設計。可以根據數據的重要性、訪問頻度、大小、年齡來制定遷移策略。但是如同第四點所說明的那樣,不同的策略是有不同的應用場合的,沒有孰優孰劣的問題。好的策略應該是不同最優策略的組合,也就是因「需」制宜地選擇合適的遷移演算法或者方法。根據年齡進行遷移的策略可以用在歸檔及容災備份系統中。根據訪問頻度則可以用於虛擬化存儲系統中等等。類似的方法已經用於計算機軟體設計或者硬體設計當中的很多地方,如LRU(最近最少使用)、ARC(自適應交替緩存)都是可以借鑒的。