存储知识:数据一致性、分级存储、分层存储与信息生命周期管理
數(shù)據(jù)一致性是指關聯(lián)數(shù)據(jù)之間的邏輯關系是否正確和完整。問題可以理解為應用程序自己認為的數(shù)據(jù)狀態(tài)與最終寫入到磁盤中的數(shù)據(jù)狀態(tài)是否一致。比如一個事務操作,實際發(fā)出了五個寫操作,當系統(tǒng)把前面三個寫操作的數(shù)據(jù)成功寫入磁盤以后,系統(tǒng)突然故障,導致后面兩個寫操作沒有寫入磁盤中。此時應用程序和磁盤對數(shù)據(jù)狀態(tài)的理解就不一致。當系統(tǒng)恢復以后,數(shù)據(jù)庫程序重新從磁盤中讀出數(shù)據(jù)時,就會發(fā)現(xiàn)數(shù)據(jù)再邏輯上存在問題,數(shù)據(jù)不可用。
二、Cache引起的數(shù)據(jù)一致性問題
引起數(shù)據(jù)一致性問題的一個主要原因是位于數(shù)據(jù)I/O路徑上的各種Cache或Buffer(包括數(shù)據(jù)庫Cache、文件系統(tǒng)Cache、存儲控制器 Cache、磁盤Cache等)。由于不同系統(tǒng)模塊處理數(shù)據(jù)IO的速度是存在差異的,所以就需要添加Cache來緩存IO操作,適配不同模塊的處理速度。這些Cache在提高系統(tǒng)處理性能的同時,也可能會“滯留”IO操作,帶來一些負面影響。如果在系統(tǒng)發(fā)生故障時,仍有部分IO“滯留”在IO操作中,真正寫到磁盤中的數(shù)據(jù)就會少于應用程序?qū)嶋H寫出的數(shù)據(jù),造成數(shù)據(jù)的不一致。當系統(tǒng)恢復時,直接從硬盤中讀出的數(shù)據(jù)可能存在邏輯錯誤,導致應用無法啟動。盡管一些數(shù)據(jù)庫系統(tǒng)(如Oracle、DB2)可以根據(jù)redo日志重新生成數(shù)據(jù),修復邏輯錯誤,但這個過程是非常耗時的,而且也不一定每次都能成功。對于一些功能相對較弱的數(shù)據(jù)庫(如SQL Server),這個問題就更加嚴重了。
解決此類文件的方法有兩個,關閉Cache或創(chuàng)建快照(Snapshot)。盡管關閉Cache會導致系統(tǒng)處理性能的下降,但在有些應用中,這卻是唯一的選擇。比如一些高等級的容災方案中(RPO為0),都是利用同步鏡像技術在生產(chǎn)中心和災備中心之間實時同步復制數(shù)據(jù)。由于數(shù)據(jù)是實時復制的,所以就必須要關閉Cache。
快照的目的是為數(shù)據(jù)卷創(chuàng)建一個在特定時間點的狀態(tài)視圖,通過這個視圖只可以看到數(shù)據(jù)卷在創(chuàng)建時刻的數(shù)據(jù),在此時間點之后源數(shù)據(jù)卷的更新(有新的數(shù)據(jù)寫入),不會反映在快照視圖中。利用這個快照視圖,就可以做數(shù)據(jù)的備份或復制。那么快照視圖的數(shù)據(jù)一致性是如何保證的呢?這涉及到多個實體(存儲控制器和安裝在主機上的快照代理)和一系列的動作。典型的操作流程是:存儲控制器要為某個數(shù)據(jù)卷創(chuàng)建快照時,通知快照代理;快照代理收到通知后,通知應用程序暫停IO操作(進入 backup模式),并flush數(shù)據(jù)庫和文件系統(tǒng)中的Cache,之后給存儲控制器返回消息,指示已可以創(chuàng)建快照;存儲控制器收到快照代理返回的指示消息后,立即創(chuàng)建快照視圖,并通知快照代理快照創(chuàng)建完畢;快照代理通知應用程序正常運行。由于應用程序暫停了IO操作,并且flush了主機中的 Cache,所以也就保證了數(shù)據(jù)的一致性。
創(chuàng)建快照是對應用性能是有一定的影響的(以Oracle數(shù)據(jù)庫為例,進入Backup模式大約需要2分鐘,退出Backup模式需要1分鐘,再加上通信所需時間,一次快照需要約4分鐘的時間),所以快照的創(chuàng)建不能太頻繁。
三、時間不同步引起的數(shù)據(jù)一致性問題
引起數(shù)據(jù)不一致性的另外一個主要原因是對相關聯(lián)的多個數(shù)據(jù)卷進行操作(如備份、復制)時,在時間上不同步。比如一個Oracle數(shù)據(jù)庫的數(shù)據(jù)庫文件、 Redo日志文件、歸檔日志文件分別存儲在不同的卷上,如果在備份或復制的時候未考慮幾個卷之間的關聯(lián),分別對一個個卷進行操作,那么備份或復制生成的卷就一定存在數(shù)據(jù)不一致問題。
此類問題的解決方法就是建立“卷組(Volume Group)”,把多個關聯(lián)數(shù)據(jù)卷組成一個組,在創(chuàng)建快照時同時為組內(nèi)多個卷建立快照,保證這些快照在時間上的同步。之后再利用卷的快照視圖進行復制或備份等操作,由此產(chǎn)生的數(shù)據(jù)副本就嚴格保證了數(shù)據(jù)的一致性。
四、文件共享中的數(shù)據(jù)一致性問題
通常所采用的雙機或集群方式實現(xiàn)同構和異構服務器、工作站與存儲設備間的數(shù)據(jù)共享,主要應用在非線性編輯等需要多臺主機同時對一個磁盤分區(qū)進行讀寫。
在 NAS環(huán)境中,可以通過網(wǎng)絡共享協(xié)議N FS或CIFS來做到數(shù)據(jù)的共享。但是如果不在NAS環(huán)境中,多臺主機同時對一個磁盤分區(qū)進行讀寫會帶來寫入數(shù)據(jù)一致性的問題,造成文件系統(tǒng)被破壞或者當前主機寫入后其它主機不能讀取當前寫入數(shù)據(jù)的問題。可以通過使用數(shù)據(jù)共享軟件裝在多臺主機上來實現(xiàn)磁盤分區(qū)的共享。由數(shù)據(jù)共享軟件來調(diào)配多臺主機數(shù)據(jù)的寫入,保證數(shù)據(jù)的一致性。
?HSM:Hierarchical Storage Management,分級存儲管理。起源于1978年,首先使用于IBM的大型機系統(tǒng)。是一種將離線存儲與在線存儲融合起來的技術。它將磁盤中常用的數(shù)據(jù)按指定的策略自動遷移到磁帶庫等二級大容量存儲設備上。當需要使用這些數(shù)據(jù)時,分級存儲系統(tǒng)會自動將這些數(shù)據(jù)從下一級存儲設備調(diào)回到上一級磁盤上。
???????ILM:Information Lifecycle Management,信息生命周期管理。2001年由StorageTek(現(xiàn)被SUN收購)提出,然而ILM的大力宣傳和實踐卻是由EMC來完成的。
???????Tiered Storage:分層存儲,指的是基于性能、業(yè)務連續(xù)性、安全、保護、數(shù)據(jù)保留、法規(guī)遵從以及成本的考慮,將數(shù)據(jù)分層存放,如主盤,備份盤,歸檔盤,磁帶歸檔,光盤歸檔等。HP曾提出過TSC(Tiered Storage Classes)的概念。
???????其實,Tiered Storage的意義和HSM相近,都是根據(jù)實際需求,選擇存儲性能、容量相適宜的存儲設備,從而降低存儲總成本。下面詳細地探討一下分級存儲和信息生命周期管理的定義以及區(qū)別。??????
一、分級存儲
???????分級存儲,就是根據(jù)數(shù)據(jù)不同的重要性、訪問頻次等指標分別存儲在不同性能的存儲設備上,采取不同的存儲方式。這樣一方面可大大減少非重要性數(shù)據(jù)在一級本地磁盤所占用的空間,還可加快整個系統(tǒng)的存儲性能。在這里就涉及到幾種不同性能的存儲設備和不同的存儲形式了。
????目前常用于數(shù)據(jù)存儲的存儲設備主要有磁盤(包括磁盤陣列)、磁帶(包括磁帶機和磁帶庫)和光盤(包括一切CD-R、CD-RW、DVD-R、DVD-RW等光盤塔和光盤庫設備)。從性能上來說,磁盤當然是最好的,光盤次之,最差的是磁帶。而從價格上來說,單位容量成本磁盤最貴、光盤次之,磁帶最低。這就為我們不同的應用追求最佳性價比提供了條件,因為這些不同的存儲媒介可應用于不同的存儲方式中。這不同的存儲形式包括在線存儲、近線存儲和離線存儲。
1、在線存儲
????在線存儲(OnStore),又稱工作級的存儲,存儲設備和所存儲的數(shù)據(jù)時刻保持“在線”狀態(tài),是可隨意讀取的,可滿足計算平臺對數(shù)據(jù)訪問的速度要求。如我們PC機中常用的磁盤基本上都是采用這種存儲形式的。一般在線存儲設備為磁盤和磁盤陣列等磁盤設備,價格相對昂貴,但性能最好。
2、離線存儲
????離線存儲(NearStore),主要是用于對在線存儲的數(shù)據(jù)進行備份,以防范可能發(fā)生的數(shù)據(jù)災難,因此又稱備份級的存儲。離線海量存儲的典型產(chǎn)品就是磁帶或磁帶庫,價格相對低廉。離線存儲介質(zhì)上的數(shù)據(jù)在讀寫時是順序進行的。當需要讀取數(shù)據(jù)時,需要把帶子卷到頭,再進行定位。當需要對已寫入的數(shù)據(jù)進行修改時,所有的數(shù)據(jù)都需要全部進行改寫。因此,離線海量存儲的訪問是慢速度、低效率的。
3、近線存儲
????近線存儲(OffStore),就是指將那些并不是經(jīng)常用到,或者說數(shù)據(jù)的訪問量并不大的數(shù)據(jù)存放在性能較低的存儲設備上。對這些的設備要求是尋址迅速、傳輸率高。因此,近線存儲對性能要求相對來說并不高,但由于不常用的數(shù)據(jù)要占總數(shù)據(jù)量的大多數(shù),這也就意味著近線存儲設備首先要保證的是容量。
二、信息生命周期管理
???????信息生來并非平等的,不同的信息具有不同的價值,如與業(yè)務生產(chǎn)相關的關鍵數(shù)據(jù)和日志。同一信息在其不同階段價值也不一樣。
信息從產(chǎn)生的那一刻起就自然地進入到了一個循環(huán),經(jīng)過創(chuàng)建、保護、訪問、遷移、歸檔和銷毀,最終完成一個生命周期,而這個過程必然需要良好的管理,否則,要么是浪費了過多的資源;要么是資源不足降低了工作效率。
???????ILM的目標是讓信息在其整個生命周期中實現(xiàn)最大價值,使信息在其生命周期的每一點都能以最低的TCO發(fā)揮最大的價值。ILM是一種戰(zhàn)略,根據(jù)信息不斷變化的價值,使IT基礎結構與業(yè)務需要相協(xié)調(diào)。
???????實施ILM戰(zhàn)略共可以分為三個階段:
階段?I?—建立基礎結構分類或服務級別,并努力讓信息存儲在適當?shù)拇鎯?。這一階段允許您利用分層基礎結構的價值,盡管是手動進行的,但它為任何基于策略的信息管理奠定了基礎。
階段?II?—完成詳細的應用程序和數(shù)據(jù)分類,以及到業(yè)務策略的鏈接。可以使用工具為一個或多個應用程序自動執(zhí)行制定的策略,實現(xiàn)存儲資源的更好的管理和最佳分配。大量消耗?IT?資源的應用程序,或者能夠利用信息生命周期管理快速實現(xiàn)?ROI?的應用程序,是本階段的理想目標。
階段?III?—為已確立的策略增加自動化功能,將信息生命周期管理的范圍擴展到更廣大的一組企業(yè)級應用程序,并進一步優(yōu)化基礎結構。這一階段允許您盡可能多地利用通用組件和方法,從而可以進一步減少操作和基礎結構成本。
三、分級存儲與信息生命周期管理的關系
???????分級存儲只是一種存儲數(shù)據(jù)的方式,它是實施ILM的重要組成部分,但并非全部。把它與ILM混為一體,就像是把備份或歸檔與ILM混為一體。分級存儲是ILM實施過程中寶貴的第一步。但是僅此而已,它從未解決過因數(shù)據(jù)大量保存在數(shù)據(jù)中心而變得日益關鍵的很多重大問題,像如何迅速恢復數(shù)據(jù)、如何提供管理存儲的服務等問題。
四、分級存儲與分層存儲的關系(不太明白,望高手指點)
???????Michael Peterson在2006年1月與SNIA?數(shù)據(jù)管理論壇里撰文ILM and Tiered Storage提到,分層存儲有三種存放數(shù)據(jù)的機制:
1、??靜態(tài)的應用將信息指定存放到某一層
2、??階段的成批地移動數(shù)據(jù)(如歸檔)
3、??動態(tài)的一些自動地數(shù)據(jù)遷移(如分級存儲管理或者某些基于ILM策略的服務)
轉自:http://blog.csdn.net/zdwzzu2006/article/details/7991159
總結
以上是生活随笔為你收集整理的存储知识:数据一致性、分级存储、分层存储与信息生命周期管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jQuery Mobile学习笔记
- 下一篇: Atitit 图像处理的心得与疑惑 at