[發明專利]一種分布式存儲快照的方法有效
| 申請號: | 201711148727.4 | 申請日: | 2017-11-17 |
| 公開(公告)號: | CN107798130B | 公開(公告)日: | 2020-08-07 |
| 發明(設計)人: | 徐洪亮;黃海山;李志強;王捷;張治平;盧立冬;伍樺;李華添 | 申請(專利權)人: | 廣西廣播電視信息網絡股份有限公司 |
| 主分類號: | G06F16/11 | 分類號: | G06F16/11;G06F16/18;G06F3/06 |
| 代理公司: | 南寧圖耀專利代理事務所(普通合伙) 45127 | 代理人: | 陳劍鋒 |
| 地址: | 530028 廣西壯族*** | 國省代碼: | 廣西;45 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 分布式 存儲 快照 方法 | ||
1.一種分布式存儲快照的方法,其特征在于:采用分布式對象存儲系統HiperSAN分層存儲,所述對象包括數據對象和虛擬磁盤VDI對象,每個對象有一個64bit的全局唯一標識符,HiperSAN分層存儲對外提供服務的是虛擬磁盤VDI,每個虛擬磁盤VDI對應一個VDI對象使得該虛擬磁盤VDI的邏輯空間和實際存儲的物理空間一一對應起來;所述虛擬磁盤VDI及其快照采用相同的虛擬視圖對象,共享存儲資源池;創建快照時采用寫入重定向ROW方法,將當前工作虛擬磁盤VDI保存為快照,創建一個新的VDI虛擬視圖對象并復制原虛擬磁盤VDI的虛擬視圖信息,新的虛擬磁盤VDI成為了當前工作VDI;創造快照后的原始虛擬磁盤VDI的寫操作,則采用COW寫時復制方法。
2.如權利要求1所述的一種分布式存儲快照的方法,其特征在于:所述創建快照的具體步驟為:(1)更新當前工作虛擬磁盤VDI為快照
a)讀取當前工作VDI的虛擬視圖對象,修改快照創建時間;
b)為虛擬磁盤VDI每個數據對象的引用計數加1;
c)將虛擬磁盤VDI虛擬視圖對象進行持久化存儲;
(2)新建虛擬磁盤VDI作為當前工作VDI
a)新建一個虛擬磁盤VDI虛擬視圖對象,復制原虛擬磁盤VDI的虛擬視圖信息;
b)設置新建虛擬磁盤VDI中的快照標識ID為原始VDI的快照標識ID加1,成為工作虛擬磁盤VDI;
c)將新建虛擬磁盤VDI的引用計數加1;
d)將新建虛擬磁盤VDI虛擬視圖對象進行持久化存儲。
3.如權利要求1所述的一種分布式存儲快照的方法,其特征在于:所述COW寫時復制方法中采用Log日志,(1)基于對象級別的Log日志,按時間順序記錄COW對象復制到當前虛擬磁盤VDI之前的所有的寫操作;
(2)請求寫入日志成功,則返回;存儲單元定期合并這些請求,然后再與COW對象合并,生成更新過的當前虛擬磁盤VDI中的對象;
(3)以COW標志作為對象是否觸發Log讀寫流程的判斷依據;
(4)讀取數據時需要進行判斷,未更新的數據直接從COW對象讀取,更新過的讀Log日志;
(5)Log日志文件與數據對象,通過hash分布在與對象相同的存儲單元上,對象與相應Log文件具有相同的hash值,副本數也相同;
(6)Merge操作優先一切對象操作。
4.如權利要求3所述的一種分布式存儲快照的方法,其特征在于:所述Log日志的寫入流程如下:
(1)判斷請求有無COW標識,有則進入Log寫入流程;
(2)Log寫入流程直接在存儲單元處理,讀寫請求正常分發;
(3)存儲單元查找數據對象和Log日志文件,沒有則創建并初始化對應Log日志文件;
(4)若存在Log日志文件,判斷是否存在Merge線程,不存在則以追加形式將寫請求添加到Log日志文件,更新偏移量offset范圍,增加寫入總次數,累加Log日志文件總長度,生成Log日志文件的校驗值;
(5)若存在Merge線程,將請求添加到Master的Merge線程隊列中,直接合并成功后,更新虛擬磁盤VDI虛擬視圖中的索引,添加對象到對象列表緩存中,刪除Log文件。
5.如權利要求3所述的一種分布式存儲快照的方法,其特征在于:所述Log日志的Log讀取流程如下:
(1)判斷請求有無COW標識,進入Log讀取流程;
(2)存儲單元收到請求后,查詢是否存在Log日志文件,不存在則對COW對象直接讀取,然后返回;
(3)若存在Log日志文件,判斷讀取范圍是否在Log日志范圍內;
(4)若不在Log日志范圍內,直接讀取COW對象,然后返回;
(5)若在Log日志范圍內,判斷Merge操作是否正在執行,若是則將請求加入Merge線程隊列,讀取合并后的數據;
(6)若沒有執行Merge,則觸發Merge操作生成對象,成功后執行讀取操作。
6.如權利要求3所述的一種分布式存儲快照的方法,其特征在于:所述Log日志的合并流程如下:(1)同一個對象的Merge操作可能有多個,選出Master執行Merge操作;
(2)Merge線程連接zookeeper,提交對象id和Log文件長度,Log文件最大的為標準對象大小,時間最早的選為Master;
(3)Master上Merge線程處理Log日志文件中記錄的寫入請求和隨后到來的讀寫請求;
(4)將Log日志文件頭部讀出,根據Log日志頭部中的cow_vid和idx讀取COW對象數據到緩存;
(5)按照Log文件記錄的總次數,逐次讀取寫請求,按照偏移量和長度將數據合并到COW對象緩存中,然后將隊列中請求按順序處理,直接讀取緩存,然后返回,寫合并到緩存;
(6)完成后,生成校驗值,將新數據寫入對象;
(7)通知zookeeper其他節點,操作成功,注銷Log緩存,刪除Log日志文件。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣西廣播電視信息網絡股份有限公司,未經廣西廣播電視信息網絡股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711148727.4/1.html,轉載請聲明來源鉆瓜專利網。





