從 章中我們了解到多個磁碟驅動器通過可以通過raid卡並行傳輸資料,達到單個的磁碟篇文驅動器幾倍、幾十倍甚至上百倍的速率。而除了並行傳輸資料提高系統io效能之外還有 raid快取--cache 。cache具有兩大功能:
a) 預讀:根據一定的預讀演算法提前將系統將要讀取的資料存放到cache中,以便提高命中率,減少磁碟訪問。預讀有兩種方式:
read ahead
由於資料在磁碟中經常是以一族連續的扇區組織起來的,所以如把系統所請求的扇區隨後的乙個扇區裡的資料同時讀到快取中。
pre-fetch
當raid卡發現系統要讀的是先前已經讀過的資料時,便將這乙個資料塊的資料寫到cache裡。
b) 回寫:作業系統發出的一系列寫 io 命令並未真正的執行而是暫時將資料存在cache中,然後再一次性的將快取的中的資料寫入磁碟。這樣可以達到合併小io為大io,同時也可以將多個小的隨機io轉換為順序寫io,減少磁碟尋道時間,提高寫入效率。
讀快取雖然可以提高效率,但是也存在資料安全問題,對於wb策略,由於作業系統發出的寫io命令寫入到快取中後即被認為寫入成功,而實際上資料是沒有被真正寫入磁碟的,此時如果掉電,快取中的資料就會永遠的丟失了,對於資料安全性要求極高的資料庫應用而言這是不可接受的。目前解決掉電最好的方法是給快取配備電池,保證儲存掉電之後依然有足夠的電源將快取中的資料寫入磁碟。說道這裡必須介紹一下raid 卡的三種write policy:
write through :控制器只在資料成功寫入磁碟後才傳送寫入請求完成訊號給上層系統,因此wt的資料安全性要高於wb.
write back :在資料進入控制器快取記憶體但尚未寫入磁碟時,控制器會傳送寫入請求完成訊號。回寫快取記憶體可以改善效能,因為後續的讀取請求可以更快地從控制器快取記憶體檢索資料,而不必從磁碟檢索。不過,回寫快取記憶體也需要資料安全保護磁碟,因為系統故障可能會使資料無法寫入磁碟,即使控制器已傳送了寫入請求完成訊號。此時,可能會遺失資料。其它應用程式如果假定資料在磁碟上而採取相應的操作,也可能會遇到問題。
force write back:不管控制器是否有電池,寫入快取記憶體都會啟用。如果控制器沒有電池並且使用強制回寫式快取記憶體,在出現電源故障時就可能會發生資料丟失。
物件儲存之二 實踐
對programmer來說,最真實的感覺還是讓它跑起來 本文將基於使用雲伺服器 docker部署ceph儲存系統 中部署的ceph儲存系統,近距離看看ceph物件儲存 rados命令是ceph系統中,直接操作storage cluster的乙個物件管理命令 root cluster1 echo he...
儲存基礎知識(四) RAID技術(下)
各種raid級別比較 在各個raid級別中,使用最廣泛的是raid0,raid1,raid10,raid5。raid 0,將資料分成條帶順序寫入一組磁碟中。raid 0 不提供冗餘功能,但是它卻提供了卓越的吞吐效能,因為讀寫資料是在一組磁碟中的每個磁碟上同時處理的,吞吐效能遠遠超過單個磁碟的讀寫。r...
raid相關知識
raid 0 1 raid 0又稱為stripe 條帶模式 或striping,它代表了所有raid級別中最高的儲存效能。raid 0提高儲存效能的原理是把連續的資料分散到多個磁碟上訪問,這樣,系統有資料請求就可以被多個磁碟並行的執行,每個磁碟執行屬於它自己的那部分資料請求。這種資料上的並行操作可以...