本發(fā)明涉及磁盤測試技術(shù),尤其涉及一種asm磁盤組冷熱數(shù)據(jù)自動分布方法及系統(tǒng)。
背景技術(shù):
新建asm磁盤組時,asm實例對磁盤組中的各個磁盤進行讀寫測試以確定其讀寫速度,并將讀寫速度記錄到元數(shù)據(jù)表中。向asm磁盤組新增磁盤時,asm實例也會對各新增磁盤進行讀寫測試以確定其讀寫速度,并將其讀寫速度記錄到相應表結(jié)構(gòu)中。通過對asm磁盤組中各磁盤的讀寫測試,asm實例掌握了asm磁盤組中各磁盤性能。
oracle數(shù)據(jù)庫對表數(shù)據(jù)的訪問是以數(shù)據(jù)庫塊為最小單位進行讀取的,默認使用的數(shù)據(jù)庫塊為8k。asm磁盤組將磁盤默認以1m為單位進行劃分,每m空間稱為一個au,一個au包含128個數(shù)據(jù)塊。當數(shù)據(jù)庫進行數(shù)據(jù)訪問時,對數(shù)據(jù)塊的讀寫次數(shù)被記錄到相應au的讀寫次數(shù)中,這樣asm實例就掌握了每個au的訪問頻率。
asm后臺進程會根據(jù)每天au的訪問頻率調(diào)整au所在磁盤,從訪問次數(shù)最多的au開始依次將它們移動到速度快和速度慢的磁盤中。如果au所在磁盤速度與將要被移動到的磁盤速度相差不到5%,則該au不做移動,以差少au移動時帶來的io消耗。
oracleasm是oracle10gr2中為了簡化oracle數(shù)據(jù)庫的管理而推出來的一項新功能,這是oracle自己提供的卷管理器,主要用于替代操作系統(tǒng)所提供的lvm,asm可以自動管理磁盤組并提供有效的數(shù)據(jù)冗余功能。使用asm(自動存儲管理)后,數(shù)據(jù)庫管理員不再需要對oracle中成千上萬的數(shù)據(jù)文件進行管理和分類,從而簡化了dba的工作量。oracle建議加入到同一個asm磁盤組中的磁盤具有相同容量、相同轉(zhuǎn)速,這給不同轉(zhuǎn)速磁盤搭配使用帶來一定困擾。如果將不同轉(zhuǎn)速的磁盤加入到相同asm磁盤組,由于asm磁盤組進行數(shù)據(jù)分布時不考慮磁盤速度,所以依然會將數(shù)據(jù)均勻分布到各磁盤,這樣就導致經(jīng)常被訪問的熱塊也會被放到速度慢的磁盤,從而影響數(shù)據(jù)訪問速度。本專利是一種將asm磁盤組中冷熱數(shù)據(jù)自動分布的軟件設(shè)計,將不同速度的磁盤加入到asm磁盤組后,asm會對各磁盤進行速度測試,根據(jù)數(shù)據(jù)訪問的頻繁程度,將熱點數(shù)據(jù)塊放置在速度快的磁盤以達到最快訪問速度,并根據(jù)數(shù)據(jù)塊冷熱變化將數(shù)據(jù)塊在不同速度磁盤間進行移動。
oracle建議加入到同一個asm磁盤組中的磁盤具有相同容量、相同轉(zhuǎn)速,這給不同轉(zhuǎn)速磁盤搭配使用帶來一定困擾。如果將不同轉(zhuǎn)速的磁盤加入到相同asm磁盤組,由于asm磁盤組進行數(shù)據(jù)分布時不考慮磁盤速度,所以依然會將數(shù)據(jù)均勻分布到各磁盤,這樣就導致經(jīng)常被訪問的熱塊也會被放到速度慢的磁盤,從而影響數(shù)據(jù)訪問速度。
技術(shù)實現(xiàn)要素:
為了解決以上技術(shù)問題,本發(fā)明提出了一種asm磁盤組冷熱數(shù)據(jù)自動分布方法。將不同速度的磁盤加入到asm磁盤組后,asm會對各磁盤進行速度測試,根據(jù)數(shù)據(jù)訪問的頻繁程度,將熱點數(shù)據(jù)塊放置在速度快的磁盤以達到最快訪問速度,并根據(jù)數(shù)據(jù)塊冷熱變化將數(shù)據(jù)塊在不同速度磁盤間進行移動。
本發(fā)明的技術(shù)方案是
一種asm磁盤組冷熱數(shù)據(jù)自動分布方法,
將不同速度的磁盤加入到asm磁盤組后,asm會對各磁盤進行速度測試,根據(jù)數(shù)據(jù)訪問的頻繁程度,將熱點數(shù)據(jù)塊放置在速度快的磁盤以達到最快訪問速度,并根據(jù)數(shù)據(jù)塊冷熱變化將數(shù)據(jù)塊在不同速度磁盤間進行移動。
本發(fā)明還公開了一種asm磁盤組冷熱數(shù)據(jù)自動分布系統(tǒng),主要包括:
1)、asm磁盤讀寫測試模塊
該模塊負責對新建asm磁盤組中磁盤和新添加到asm磁盤組中的磁盤進行讀寫測試,該讀寫測試分為隨機讀寫和連續(xù)讀寫,該測試完成后asm磁盤組才可正式對外提供存儲服務;
2)、asm磁盤速率表
asm磁盤速率測試完成后將各磁盤速率記錄到速率表中,當磁盤從asm磁盤組中刪除后,相應磁盤速率信息將從速率表中刪除;
3)、au與磁盤對應表
該表記錄的是au當前對應的磁盤,au發(fā)生移動、asm磁盤刪除都會更新該表;
4)、au使用頻率記錄表
記錄每個au被讀寫的次數(shù);每次au移動后,將清空所有au的使用頻率信息重新開始記錄。
5)、au移動模塊
根據(jù)每天au的訪問頻率調(diào)整au所在磁盤,從訪問次數(shù)最多的au開始依次將它們移動到速度快和速度慢的磁盤中;如果au所在磁盤速度與將要被移動到的磁盤速度相差不到5%,則該au不做移動,以差少au移動時帶來的io消耗。
6)、控制參數(shù)
提供參數(shù)asm_auto_move控制是否打開asm自動分布功能,該參數(shù)值為布爾值,默認為false,設(shè)置為true即打開asm自動分布功能。
本發(fā)明的有益效果是
1)、存儲利舊
如果新存儲磁盤空間不足,可以將淘汰下來的存儲劃分磁盤后加入到新存儲所在asm磁盤組中。asm自動分布功能可以將熱點數(shù)據(jù)分布到速度更快的新存儲上,老存儲上會存儲一些不經(jīng)常訪問的數(shù)據(jù),這樣既不會使訪問速度下降過多,又能使asm磁盤組得了擴容。
2)、兼容不同速度磁盤
目前很多廠商的存儲可以同時配置不同速度的機械磁盤或ssd盤,ssd盤擁用更高的訪問速度,但ssd盤在整個存儲中的容量相對較少。如果將ssd盤單獨創(chuàng)建asm磁盤組,一般不足以放下數(shù)據(jù)庫的全部數(shù)據(jù)文件,如果只是將部分數(shù)據(jù)文件放到ssd磁盤組中,又很難判斷哪些數(shù)據(jù)文件訪問最多,而且不可能經(jīng)常將數(shù)據(jù)文件在ssd磁盤組和其它磁盤組間手動移動,所以將ssd盤和其它不同速率的磁盤放到一個asm磁盤組是一種更好的選擇。由asm自動分布功能將熱塊數(shù)據(jù)移動到ssd磁盤,從而提高了數(shù)據(jù)訪問速度,減少了人為干預,擴大了asm存儲容量。
具體實施方式
下面對本發(fā)明的內(nèi)容進行更加詳細的闡述:
1)、如果asm盤磁盤中加入了不同速度的磁盤,想要使用asm自動分布功能,需要在asm實例中設(shè)置asm_auto_move為true。
2)、新建asm磁盤組時或向asm磁盤組新增磁盤后,asm實例記錄各新增磁盤進行讀寫測試以確定其讀寫速度。在asm磁盤組中建新數(shù)據(jù)文件時,該數(shù)據(jù)文件被分割成若干個au,這些au首先選擇在速度最快的磁盤間進行分布,當最快的磁盤空間不足時再向速度慢的磁盤分布。這樣的分布原則可充分利用速度快的磁盤。
3)、記錄每個au的讀寫次數(shù),au的移動以該讀寫頻率為依據(jù)。
4)、asm后臺進程每天進行一次au的移動,根據(jù)au的訪問頻率調(diào)整au所在磁盤,從訪問次數(shù)最多的au開始依次將它們移動到速度快和速度慢的磁盤中。如果au所在磁盤速度與將要被移動到的磁盤速度相差不到5%,則該au不做移動,以差少au移動時帶來的io消耗。移動完畢后au讀寫次數(shù)將被清空,然后開始重新記錄該au的讀寫次數(shù)。
1)通過對每塊asm磁盤讀寫速度性能監(jiān)控機制,掌握每塊磁盤性能數(shù)據(jù)。
2)根據(jù)每天au的訪問頻率調(diào)整au所在磁盤,從訪問次數(shù)最多的au開始依次將它們移動到速度快和速度慢的磁盤中的冷熱數(shù)據(jù)移動機制。