亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

塊級(jí)存儲(chǔ)的制作方法

文檔序號(hào):6498098閱讀:199來(lái)源:國(guó)知局
塊級(jí)存儲(chǔ)的制作方法
【專(zhuān)利摘要】一種存儲(chǔ)系統(tǒng)包括用來(lái)接收塊級(jí)存儲(chǔ)請(qǐng)求的前端處理子系統(tǒng)以及耦合到前端子系統(tǒng)的多個(gè)后端存儲(chǔ)節(jié)點(diǎn)。每一個(gè)后端存儲(chǔ)節(jié)點(diǎn)包括存儲(chǔ)設(shè)備和用來(lái)在存儲(chǔ)設(shè)備上創(chuàng)建、讀取、更新和刪除數(shù)據(jù)塊的塊管理器。前端處理子系統(tǒng)維持多個(gè)塊引用數(shù)據(jù)結(jié)構(gòu),其可由前端處理子系統(tǒng)使用以訪(fǎng)問(wèn)后端數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),以便為存儲(chǔ)系統(tǒng)提供平衡性、冗余性和可擴(kuò)展性。
【專(zhuān)利說(shuō)明】塊級(jí)存儲(chǔ)

【背景技術(shù)】
[0001] 塊級(jí)存儲(chǔ)涉及原始存儲(chǔ)卷的創(chuàng)建?;诜?wù)器的操作系統(tǒng)連接到這些卷并且將它 們用作單獨(dú)的硬盤(pán)。塊級(jí)存儲(chǔ)服務(wù)可以基于文件或卷表示。在文件表示中,文件可以由各 個(gè)用戶(hù)共享。通過(guò)創(chuàng)建基于塊的卷并且然后安裝操作系統(tǒng)或文件系統(tǒng)并且附著到該卷,文 件可以使用本機(jī)操作系統(tǒng)來(lái)被共享。在卷表示中,每一個(gè)卷被附著到特定機(jī)器,從而提供原 始存儲(chǔ)能力。

【專(zhuān)利附圖】

【附圖說(shuō)明】
[0002] 為了詳細(xì)描述各個(gè)示例,現(xiàn)在將參照附圖,在附圖中: 圖1A示出根據(jù)示例的系統(tǒng); 圖1B示出根據(jù)示例的硬件圖; 圖2示出塊引用數(shù)據(jù)結(jié)構(gòu)的示例; 圖3示出讀取事務(wù)方法的示例; 圖4示出讀取事務(wù)方法的另一示例; 圖5示出寫(xiě)入事務(wù)方法的示例;以及 圖6示出寫(xiě)入事務(wù)方法的另一示例。

【具體實(shí)施方式】
[0003] 如以上所指出的,塊存儲(chǔ)服務(wù)可以基于文件或卷表示。卷包括固定大小的塊的陣 列。盡管這樣的方案已經(jīng)被證實(shí)適用于集中式存儲(chǔ)環(huán)境,但是這些方案并不特別適合作為 向虛擬化機(jī)器環(huán)境提供存儲(chǔ)服務(wù)(特別是在云環(huán)境中)的高性能分布式塊存儲(chǔ)服務(wù)的基礎(chǔ)。 在云環(huán)境中,大量(例如,數(shù)百個(gè)或數(shù)千個(gè))物理或虛擬計(jì)算機(jī)器可能需要訪(fǎng)問(wèn)基于云的公 共存儲(chǔ)服務(wù)。用來(lái)作為虛擬機(jī)器的主機(jī)的物理機(jī)器通常具有用于管理虛擬機(jī)器所需的軟件 的小覆蓋區(qū)(footprint),但是提供終端用戶(hù)操作系統(tǒng)軟件和服務(wù)的虛擬機(jī)器可能具有大 的存儲(chǔ)需求。
[0004] 還期望的是以動(dòng)態(tài)方式為虛擬機(jī)器分配存儲(chǔ)。即,存儲(chǔ)空間分配應(yīng)當(dāng)是按需進(jìn)行 的(即,在后分配,意味著在系統(tǒng)初始化期間的存儲(chǔ)空間分配之后)。如虛擬機(jī)器所被部署 的,它們通常使用標(biāo)準(zhǔn)操作系統(tǒng)映像來(lái)實(shí)例化,該映像的系統(tǒng)文件可以在虛擬機(jī)器的使用 期間保持不變。更新主要被應(yīng)用于系統(tǒng)配置文件、自定義應(yīng)用和用戶(hù)空間文件。因此,期望 支持?jǐn)?shù)據(jù)去重(deduplication)。
[0005] 除了使用標(biāo)準(zhǔn)操作系統(tǒng)映像之外,云存儲(chǔ)服務(wù)應(yīng)當(dāng)允許客戶(hù)端保存它們運(yùn)行虛擬 機(jī)器的快照,包括例如操作系統(tǒng)內(nèi)核、應(yīng)用和用戶(hù)空間文件。這樣的快照作為例如備份或 者作為用于安裝其他類(lèi)似的虛擬機(jī)器的藍(lán)圖可以是有用的,并且這樣的虛擬機(jī)器可以按需 (即,在需要時(shí))大量生產(chǎn)。
[0006] 本文描述解決這些問(wèn)題中的一些或全部的存儲(chǔ)架構(gòu)的各種示例。一般地,所公開(kāi) 的示例包括塊級(jí)存儲(chǔ)系統(tǒng),其基于數(shù)據(jù)庫(kù)技術(shù)以用于其后端存儲(chǔ)需求。通過(guò)將數(shù)據(jù)庫(kù)技術(shù) 組合在塊級(jí)存儲(chǔ)系統(tǒng)中,所得到的存儲(chǔ)系統(tǒng)是魯棒且可擴(kuò)展的。本文所述的存儲(chǔ)系統(tǒng)實(shí)現(xiàn) 了可擴(kuò)展性、冗余性和平衡性??蓴U(kuò)展性是指存儲(chǔ)系統(tǒng)通過(guò)使用附加的存儲(chǔ)節(jié)點(diǎn)來(lái)應(yīng)對(duì)越 來(lái)越高的工作負(fù)載的能力,并且使得存儲(chǔ)系統(tǒng)能夠用在例如云環(huán)境中。冗余性是指存儲(chǔ)系 統(tǒng)將塊復(fù)制到一個(gè)或多個(gè)存儲(chǔ)節(jié)點(diǎn)的能力。平衡性是指存儲(chǔ)系統(tǒng)在各個(gè)存儲(chǔ)節(jié)點(diǎn)之間分布 讀取和寫(xiě)入請(qǐng)求并且還在存儲(chǔ)節(jié)點(diǎn)之間遷移數(shù)據(jù)塊以匹配存儲(chǔ)節(jié)點(diǎn)上的工作負(fù)載模式的 變化的能力。
[0007] 圖1A示出系統(tǒng)90,其中一個(gè)或多個(gè)物理計(jì)算機(jī)92能夠訪(fǎng)問(wèn)存儲(chǔ)系統(tǒng)100。每一 個(gè)物理計(jì)算機(jī)92可以是一個(gè)或多個(gè)虛擬機(jī)器94的主機(jī),或者如果需要的話(huà)可以沒(méi)有虛擬 機(jī)器。每一個(gè)物理機(jī)器92和/或虛擬機(jī)器94可以對(duì)存儲(chǔ)系統(tǒng)100執(zhí)行讀取和寫(xiě)入事務(wù)。
[0008] 存儲(chǔ)100可以實(shí)現(xiàn)為塊級(jí)存儲(chǔ)系統(tǒng)。就此而言,物理機(jī)器92和虛擬機(jī)器94可以 對(duì)存儲(chǔ)系統(tǒng)1〇〇執(zhí)行塊級(jí)訪(fǎng)問(wèn)請(qǐng)求。
[0009] 圖1A中所示出的說(shuō)明性存儲(chǔ)系統(tǒng)100包括前端處理子系統(tǒng)102,其耦合到一個(gè)或 多個(gè)后端存儲(chǔ)節(jié)點(diǎn)104。簡(jiǎn)略地參照?qǐng)D1B,前端處理子系統(tǒng)102的示例包括耦合到非暫時(shí) 性存儲(chǔ)設(shè)備105 (例如,硬盤(pán)、隨機(jī)存取存儲(chǔ)器等)的處理器103。非暫時(shí)性存儲(chǔ)設(shè)備105存 儲(chǔ)可由處理器103執(zhí)行的前端處理代碼107。代碼107給予處理器103本文所描述的歸因 于前端處理子系統(tǒng)102的功能性中的一些或全部。
[0010] 每一個(gè)后端存儲(chǔ)節(jié)點(diǎn)104可以包括訪(fǎng)問(wèn)存儲(chǔ)設(shè)備110 (例如,硬盤(pán)驅(qū)動(dòng)器)的塊管 理器108。塊管理器108可以實(shí)現(xiàn)為執(zhí)行代碼的硬件處理器。在一些實(shí)現(xiàn)中,每一個(gè)塊管理 器108包括"瘦"數(shù)據(jù)庫(kù),其獨(dú)立于與其他塊管理器相關(guān)的瘦數(shù)據(jù)庫(kù)來(lái)執(zhí)行(S卩,不是分布式 數(shù)據(jù)庫(kù))。瘦數(shù)據(jù)庫(kù)的示例是僅能夠創(chuàng)建、復(fù)制、更新和刪除記錄的數(shù)據(jù)庫(kù)。圖1B的硬件實(shí) 現(xiàn)還可以被用來(lái)在一些實(shí)施例中實(shí)現(xiàn)塊管理器108 (其中代碼107被數(shù)據(jù)庫(kù)代碼替換)。
[0011] 通常,前端處理子系統(tǒng)102從各個(gè)物理機(jī)器92和/或虛擬機(jī)器94接收塊訪(fǎng)問(wèn)請(qǐng) 求,并且處理該請(qǐng)求以便對(duì)各個(gè)后端存儲(chǔ)節(jié)點(diǎn)104完成。
[0012] 因?yàn)樵谝恍?shí)現(xiàn)中塊管理器108包括瘦數(shù)據(jù)庫(kù),所以前端處理子系統(tǒng)102可以執(zhí) 行在如果使用更復(fù)雜的數(shù)據(jù)庫(kù)時(shí)原本將會(huì)由后端節(jié)點(diǎn)105所執(zhí)行的功能性中的至少一些。 此外,存儲(chǔ)系統(tǒng)1〇〇能夠?qū)崿F(xiàn)數(shù)據(jù)去重、惰性復(fù)制、以及其他數(shù)據(jù)存儲(chǔ)功能。對(duì)于能夠?qū)崿F(xiàn) 這些功能性的存儲(chǔ)系統(tǒng)100,前端處理子系統(tǒng)102實(shí)現(xiàn)以下所述的各種動(dòng)作。
[0013] 為了執(zhí)行以下所述功能中的一個(gè)或多個(gè),前端處理子系統(tǒng)102維持并使用塊引用 數(shù)據(jù)結(jié)構(gòu)106。塊引用數(shù)據(jù)結(jié)構(gòu)106提供關(guān)于單獨(dú)數(shù)據(jù)塊以及這些數(shù)據(jù)塊中的每一個(gè)存儲(chǔ) 在哪一個(gè)存儲(chǔ)節(jié)點(diǎn)上的信息。塊引用數(shù)據(jù)結(jié)構(gòu)106使存儲(chǔ)系統(tǒng)能夠提供負(fù)載平衡性、冗余 性和可擴(kuò)展性。塊引用數(shù)據(jù)結(jié)構(gòu)106的示例在圖2中示出。在圖的示例中,塊引用數(shù)據(jù)結(jié) 構(gòu)106包括多個(gè)表格120和122。表格120被稱(chēng)作主塊引用表格。表格122被稱(chēng)作從塊引 用表格。表格124被稱(chēng)作塊存儲(chǔ)表格并且存儲(chǔ)在相應(yīng)的存儲(chǔ)節(jié)點(diǎn)中。在表格120-124中所 提供的信息可以在其他實(shí)施例中以不同于表格的形式來(lái)提供。
[0014] 主引用表格120包括多個(gè)條目,其中每一個(gè)條目包括客戶(hù)端標(biāo)識(shí)符(ID)130、快照 ID 132、塊索引值134、元數(shù)據(jù)136、以及包含塊ID或間接ID的字段138??蛻?hù)端ID 130是 虛擬機(jī)器94或物理機(jī)器96的唯一標(biāo)識(shí)符,其對(duì)主引用表格120中的對(duì)應(yīng)條目所引用的數(shù) 據(jù)塊進(jìn)行控制??煺帐窃谔囟〞r(shí)間點(diǎn)存儲(chǔ)卷的狀態(tài)??煺誌D 132是所引用的數(shù)據(jù)塊所屬的 機(jī)器內(nèi)的快照的唯一標(biāo)識(shí)符。塊索引134是用于虛擬機(jī)器內(nèi)的特定快照的所引用塊的唯一 標(biāo)識(shí)符。元數(shù)據(jù)136包括與數(shù)據(jù)塊相關(guān)的信息。元數(shù)據(jù)136的示例包括這樣的信息項(xiàng)目: 處理ID、塊修改處的用戶(hù)證書(shū)和時(shí)間戳、以及復(fù)制狀態(tài)。
[0015] 字段138包括塊ID或間接ID。塊ID是對(duì)實(shí)際后端存儲(chǔ)節(jié)點(diǎn)104并對(duì)所引用的數(shù) 據(jù)塊實(shí)際存儲(chǔ)所在的那個(gè)存儲(chǔ)節(jié)點(diǎn)內(nèi)的物理位置的引用。如果所引用的數(shù)據(jù)塊是存儲(chǔ)系統(tǒng) 100中的數(shù)據(jù)的多個(gè)副本中的一個(gè),那么在字段138中使用間接ID而不是塊ID。間接ID 包括指向從引用表格122中的條目的指針。
[0016] 從引用表格122被用來(lái)保持追蹤數(shù)據(jù)塊的各個(gè)副本。間接ID 140包含與主引用 表格120中的間接ID 138中的至少一個(gè)相同的值。鏈接計(jì)數(shù)器142包括字段144中的相 關(guān)塊ID的數(shù)量的計(jì)數(shù)值。鏈接計(jì)數(shù)器142因而指示相同數(shù)據(jù)塊的附加副本的數(shù)量。根據(jù) 一些示例,在每一次產(chǎn)生卷的快照時(shí),該卷中的每一塊的相關(guān)鏈接計(jì)數(shù)器就遞增。如果快照 圖像被刪除,則對(duì)應(yīng)的鏈接計(jì)數(shù)器就遞減。如果塊是唯一的,則鏈接計(jì)數(shù)器可以設(shè)置為值1。 字段144中的塊ID包括對(duì)后端存儲(chǔ)節(jié)點(diǎn)104上的數(shù)據(jù)塊以及在每一個(gè)節(jié)點(diǎn)內(nèi)數(shù)據(jù)塊所實(shí) 際駐留于的位置的引用。
[0017] 塊存儲(chǔ)表格124包括字段150和152。字段150包含塊ID,并且字段152包含對(duì) 應(yīng)于相關(guān)塊ID的實(shí)際數(shù)據(jù)。
[0018] 圖3針對(duì)由存儲(chǔ)系統(tǒng)100執(zhí)行的用于讀取事務(wù)的方法150。方法150的各種動(dòng)作 可以按照?qǐng)D示順序或者以不同順序來(lái)執(zhí)行。此外,動(dòng)作中的兩個(gè)或更多個(gè)可以并行執(zhí)行。方 法150的動(dòng)作可以由存儲(chǔ)系統(tǒng)100的前端處理子系統(tǒng)102來(lái)執(zhí)行。
[0019] 在152處,方法包括接收針對(duì)數(shù)據(jù)塊的讀取請(qǐng)求。由前端處理子系統(tǒng)102從物理 機(jī)器92或虛擬機(jī)器94中的一個(gè)或多個(gè)來(lái)接收讀取請(qǐng)求。
[0020] 在154處,方法包括訪(fǎng)問(wèn)塊引用數(shù)據(jù)結(jié)構(gòu)106,并且從該數(shù)據(jù)結(jié)構(gòu)確定所請(qǐng)求的數(shù) 據(jù)塊的(一個(gè)或多個(gè))位置。例如,方法可以包括從主引用表格120檢索塊ID或間接ID。 如果ID是間接ID,則方法可以包括從從引用表格122獲取(一個(gè)或多個(gè))對(duì)應(yīng)塊ID。所請(qǐng) 求的數(shù)據(jù)塊可能以多個(gè)副本的形式存在于各個(gè)后端存儲(chǔ)節(jié)點(diǎn)104上。訪(fǎng)問(wèn)塊引用數(shù)據(jù)結(jié)構(gòu) 106以確定存在的目標(biāo)數(shù)據(jù)塊的副本數(shù)量以及它們?cè)诖鎯?chǔ)節(jié)點(diǎn)104上的位置。例如,主引用 塊引用表格120可以包括如上所指出的塊ID或間接ID。如果存在塊ID,則可以從該特定 塊ID所引用的后端存儲(chǔ)節(jié)點(diǎn)來(lái)讀取目標(biāo)數(shù)據(jù)。前端處理子系統(tǒng)102在156處向該特定存 儲(chǔ)節(jié)點(diǎn)發(fā)出讀取請(qǐng)求。
[0021] 在另一方面,如果存在間接ID,則前端存儲(chǔ)子系統(tǒng)102使用間接ID查閱從塊引用 表格122并且讀取鏈接計(jì)數(shù)器142。鏈接計(jì)數(shù)器指示目標(biāo)數(shù)據(jù)塊的副本數(shù)量。對(duì)應(yīng)數(shù)據(jù)塊 的塊ID 144也從從塊引用表格122來(lái)讀取。讀取請(qǐng)求是由前端處理子系統(tǒng)102向包含最 初讀取請(qǐng)求的目標(biāo)數(shù)據(jù)塊的副本的各個(gè)后端存儲(chǔ)節(jié)點(diǎn)104發(fā)出(156)的。給定的后端存儲(chǔ) 節(jié)點(diǎn)104有多快地以所請(qǐng)求的數(shù)據(jù)來(lái)響應(yīng)前端處理子系統(tǒng)102可能在存儲(chǔ)節(jié)點(diǎn)間不同。
[0022] 前端處理子系統(tǒng)102從如上所解釋那樣接收了讀取請(qǐng)求的存儲(chǔ)節(jié)點(diǎn)104接收所請(qǐng) 求的數(shù)據(jù)。如果前端存儲(chǔ)子系統(tǒng)102僅向單個(gè)后端存儲(chǔ)節(jié)點(diǎn)104發(fā)出讀取請(qǐng)求,那么只要 目標(biāo)數(shù)據(jù)被提供回到前端處理子系統(tǒng)102,前端處理子系統(tǒng)102就將該數(shù)據(jù)返回到最先創(chuàng) 始讀取請(qǐng)求的物理或虛擬機(jī)器。如果多個(gè)后端存儲(chǔ)節(jié)點(diǎn)104被發(fā)出了如上所述的請(qǐng)求,那 么前端處理子系統(tǒng)102從首先以所請(qǐng)求的數(shù)據(jù)響應(yīng)前端存儲(chǔ)子系統(tǒng)102的那個(gè)后端存儲(chǔ)節(jié) 點(diǎn)104來(lái)將數(shù)據(jù)返回到物理機(jī)器92或虛擬機(jī)器94。
[0023] 圖4同樣針對(duì)讀取事務(wù)。在圖4中,方法107針對(duì)這樣的情形:其中多個(gè)物理機(jī)器 92或虛擬機(jī)器84試圖在大概相同的時(shí)間讀取相同的數(shù)據(jù)塊。前端處理子系統(tǒng)102對(duì)多個(gè)物 理或虛擬機(jī)器試圖讀取相同的數(shù)據(jù)塊進(jìn)行識(shí)別(例如,通過(guò)標(biāo)識(shí)針對(duì)相同的塊或間接ID的 并發(fā)請(qǐng)求),并且前端處理子系統(tǒng)102向包含請(qǐng)求數(shù)據(jù)的副本的每一個(gè)后端存儲(chǔ)節(jié)點(diǎn)104發(fā) 出單個(gè)讀取請(qǐng)求,而不是對(duì)于每一個(gè)到來(lái)的讀取請(qǐng)求向后端存儲(chǔ)節(jié)點(diǎn)發(fā)出多個(gè)讀取請(qǐng)求。
[0024] 方法107的各種動(dòng)作可以按照?qǐng)D示順序或者以不同順序來(lái)執(zhí)行。此外,動(dòng)作中的 兩個(gè)或更多個(gè)可以并行執(zhí)行。方法170的動(dòng)作可以由存儲(chǔ)系統(tǒng)100的前端處理子系統(tǒng)102 來(lái)執(zhí)行。
[0025] 在172處,方法170包括從多個(gè)請(qǐng)求系統(tǒng)(例如,物理機(jī)器92、虛擬機(jī)器94)中的每 一個(gè)接收針對(duì)數(shù)據(jù)塊的讀取請(qǐng)求。由前端處理子系統(tǒng)102從多個(gè)物理機(jī)器92或虛擬機(jī)器 94來(lái)接收讀取請(qǐng)求。
[0026] 在174處,前端處理子系統(tǒng)102確定多個(gè)并發(fā)的讀取請(qǐng)求的目標(biāo)是相同的數(shù)據(jù)塊。 在176處,前端處理子系統(tǒng)102向包含目標(biāo)數(shù)據(jù)塊的每一個(gè)后端存儲(chǔ)節(jié)點(diǎn)104發(fā)出單個(gè)讀 取請(qǐng)求。前端處理子系統(tǒng)102根據(jù)塊引用數(shù)據(jù)結(jié)構(gòu)106來(lái)確定哪些節(jié)點(diǎn)包含目標(biāo)數(shù)據(jù)塊。
[0027] 在178處,方法還包括前端處理子系統(tǒng)102從后端存儲(chǔ)節(jié)點(diǎn)中的一個(gè)或多個(gè)接收 所請(qǐng)求的數(shù)據(jù),并且在180處將首先(或僅)接收到的目標(biāo)數(shù)據(jù)塊轉(zhuǎn)發(fā)到最先創(chuàng)始讀取請(qǐng)求 的物理機(jī)器92或虛擬機(jī)器94。
[0028] 圖5提供針對(duì)寫(xiě)入事務(wù)的方法190。方法190的各種動(dòng)作可以按照?qǐng)D示順序或者 以不同順序來(lái)執(zhí)行。此外,動(dòng)作中的兩個(gè)或更多個(gè)可以并行執(zhí)行。方法190的動(dòng)作可以由 存儲(chǔ)系統(tǒng)100的前端處理子系統(tǒng)102來(lái)執(zhí)行。
[0029] 在192處,方法包括前端處理子系統(tǒng)102從物理機(jī)器92或虛擬機(jī)器94接收寫(xiě)入 請(qǐng)求。在194處,基于塊引用數(shù)據(jù)結(jié)構(gòu),前端處理子系統(tǒng)102確定目標(biāo)數(shù)據(jù)塊是否存在于多 個(gè)后端存儲(chǔ)節(jié)點(diǎn)104上。如果多個(gè)后端存儲(chǔ)節(jié)點(diǎn)104包含寫(xiě)入事務(wù)的目標(biāo)數(shù)據(jù)塊,則前端 處理子系統(tǒng)102確定目標(biāo)數(shù)據(jù)塊的多個(gè)副本中的哪一個(gè)是"主"數(shù)據(jù)塊。在一些實(shí)現(xiàn)中,寫(xiě) 入事務(wù)僅對(duì)主數(shù)據(jù)塊完成,并且不對(duì)其他副本(即,從數(shù)據(jù)塊)完成。元數(shù)據(jù)136可以包括充 足的信息,從其中可以明確被確定為主數(shù)據(jù)塊的塊。
[0030] 在196處,前端處理子系統(tǒng)102然后對(duì)包含被確定為主數(shù)據(jù)塊的數(shù)據(jù)塊的后端存 儲(chǔ)節(jié)點(diǎn)104完成寫(xiě)入事務(wù)。在198處,前端存儲(chǔ)子系統(tǒng)102將被確定為主數(shù)據(jù)塊的數(shù)據(jù)塊 復(fù)制到其他存儲(chǔ)節(jié)點(diǎn)104上的數(shù)據(jù)塊的所有其他副本。這種塊復(fù)制過(guò)程可以在后臺(tái)并且以 相比于對(duì)主數(shù)據(jù)塊的最初寫(xiě)入更慢的節(jié)奏來(lái)執(zhí)行。就此而言,從主數(shù)據(jù)塊到從數(shù)據(jù)塊的復(fù) 制可以被稱(chēng)為"惰性復(fù)制"并且為存儲(chǔ)系統(tǒng)100提供了冗余容量。
[0031] 圖6提供針對(duì)寫(xiě)入事務(wù)的方法200,該寫(xiě)入事務(wù)是針對(duì)只讀塊的。數(shù)據(jù)塊可以被指 定為只讀的,這是因?yàn)槔鐢?shù)據(jù)塊可以由多個(gè)物理機(jī)器92或虛擬機(jī)器94共享。數(shù)據(jù)塊的 多個(gè)副本存在于存儲(chǔ)節(jié)點(diǎn)104上,并且所有都被指定為只讀的。如果數(shù)據(jù)塊是共享的,則共 享的物理/虛擬機(jī)器中沒(méi)有一個(gè)可以被允許對(duì)它們的數(shù)據(jù)塊副本執(zhí)行寫(xiě)入事務(wù),以避免數(shù) 據(jù)一致性問(wèn)題。為了對(duì)只讀的共享數(shù)據(jù)塊執(zhí)行寫(xiě)入事務(wù),數(shù)據(jù)塊首先被復(fù)制并且停止共享。
[0032] 方法200的各種動(dòng)作可以按照?qǐng)D示順序或者以不同順序來(lái)執(zhí)行。此外,動(dòng)作中的 兩個(gè)或更多個(gè)可以并行執(zhí)行。方法200的動(dòng)作可以由存儲(chǔ)系統(tǒng)100的前端處理子系統(tǒng)102 來(lái)執(zhí)行。
[0033] 在202處,方法包括前端處理子系統(tǒng)102接收針對(duì)存在于第一后端存儲(chǔ)節(jié)點(diǎn)104 上的只讀數(shù)據(jù)塊的寫(xiě)入請(qǐng)求。在204處,前端處理子系統(tǒng)102確定目標(biāo)塊是否為"寫(xiě)時(shí)復(fù) 制"(copy-on-write)塊,其意指在對(duì)塊執(zhí)行寫(xiě)入事務(wù)時(shí)應(yīng)當(dāng)復(fù)制的塊。在鏈接計(jì)數(shù)器大于 1的情形中,所有共享的塊可以被指定為寫(xiě)時(shí)復(fù)制的。
[0034] 在206處,如果第一后端存儲(chǔ)節(jié)點(diǎn)104上的目標(biāo)數(shù)據(jù)塊是C0W數(shù)據(jù)塊,則前端處理 子系統(tǒng)102在第一后端存儲(chǔ)節(jié)點(diǎn)104上分配新數(shù)據(jù)塊。最新分配的數(shù)據(jù)塊被指定為可讀且 可寫(xiě)的("RW")。在208處,前端處理子系統(tǒng)102將與接收到的寫(xiě)入事務(wù)包括在一起數(shù)據(jù)寫(xiě) 入到最新分配的RW數(shù)據(jù)塊。
[0035] 在212處,前端處理子系統(tǒng)102還分配存在于第二后端存儲(chǔ)節(jié)點(diǎn)104上的數(shù)據(jù)塊 的RW副本,并且然后開(kāi)始將最新分配的塊的內(nèi)容從第一存儲(chǔ)節(jié)點(diǎn)復(fù)制到第二存儲(chǔ)節(jié)點(diǎn)上 的最新分配的塊。復(fù)制可以在208處的數(shù)據(jù)的最初寫(xiě)入已經(jīng)完成之后發(fā)生或繼續(xù)發(fā)生。
[0036] 本文所述的存儲(chǔ)系統(tǒng)100是可擴(kuò)展的,這是因?yàn)榫哂欣缡輸?shù)據(jù)庫(kù)的附加存儲(chǔ)節(jié) 點(diǎn)104可以被容易地添加,并且前端處理子系統(tǒng)102通過(guò)其塊引用數(shù)據(jù)結(jié)構(gòu)106保持追蹤 各個(gè)存儲(chǔ)節(jié)點(diǎn)104。因而,存儲(chǔ)系統(tǒng)100可以容易地用在云環(huán)境中。塊引用數(shù)據(jù)結(jié)構(gòu)106使 得能夠在大存儲(chǔ)容量上快速進(jìn)行索引。各種后端存儲(chǔ)節(jié)點(diǎn)104表示在多個(gè)物理節(jié)點(diǎn)上的分 布式存儲(chǔ),其在標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)環(huán)境中并不是可容易實(shí)現(xiàn)的。此外,存儲(chǔ)系統(tǒng)1〇〇使得被刪除的 存儲(chǔ)空間能夠有效地回收利用。
[0037] 上述討論意為說(shuō)明本發(fā)明的原理和各種實(shí)施例。一旦完全理解上述公開(kāi),許多變 型和修改就將對(duì)本領(lǐng)域技術(shù)人員變得顯而易見(jiàn)。所附權(quán)利要求旨在被解釋為包含所有這樣 的變型和修改。
【權(quán)利要求】
1. 一種存儲(chǔ)系統(tǒng),包括: 前端處理子系統(tǒng),其用來(lái)接收塊級(jí)存儲(chǔ)請(qǐng)求;以及 多個(gè)后端存儲(chǔ)節(jié)點(diǎn),其耦合到所述前端子系統(tǒng),每一個(gè)所述后端存儲(chǔ)節(jié)點(diǎn)包括存儲(chǔ)設(shè) 備和用來(lái)在所述存儲(chǔ)設(shè)備上創(chuàng)建、讀取、更新和刪除數(shù)據(jù)塊的獨(dú)立的塊管理器; 其中所述前端處理子系統(tǒng)用來(lái)維持塊引用數(shù)據(jù)結(jié)構(gòu),所述塊引用數(shù)據(jù)結(jié)構(gòu)可被所述前 端處理子系統(tǒng)使用以訪(fǎng)問(wèn)所述后端數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),以便為所述存儲(chǔ)系統(tǒng)提供平衡性、冗余 性和可擴(kuò)展性。
2. 根據(jù)權(quán)利要求2所述的存儲(chǔ)系統(tǒng),其中所述塊引用數(shù)據(jù)結(jié)構(gòu)包括主塊引用表格,其 包括用于多個(gè)后端存儲(chǔ)子系統(tǒng)上所存儲(chǔ)的每一個(gè)數(shù)據(jù)塊的引用。
3. 根據(jù)權(quán)利要求2所述的存儲(chǔ)系統(tǒng),其中每一個(gè)引用包括客戶(hù)端標(biāo)識(shí)符、快照標(biāo)識(shí)符 和塊索引。
4. 根據(jù)權(quán)利要求2所述的存儲(chǔ)系統(tǒng),其中對(duì)于多個(gè)實(shí)例中的駐留于所述存儲(chǔ)設(shè)備上的 數(shù)據(jù)塊,所述主塊引用表格包括到從塊引用表格的間接標(biāo)識(shí)符。
5. 根據(jù)權(quán)利要求4所述的存儲(chǔ)系統(tǒng),其中所述從塊引用表格包括間接標(biāo)識(shí)符、鏈接計(jì) 數(shù)器、以及一個(gè)或多個(gè)塊標(biāo)識(shí)符。
6. 根據(jù)權(quán)利要求5所述的存儲(chǔ)系統(tǒng),其中所述鏈接計(jì)數(shù)器包括指示所述存儲(chǔ)設(shè)備上的 數(shù)據(jù)塊的副本的實(shí)例的數(shù)量的計(jì)數(shù)值。
7. 根據(jù)權(quán)利要求6所述的存儲(chǔ)系統(tǒng),其中所述一個(gè)或多個(gè)塊標(biāo)識(shí)符包括用于所述數(shù)據(jù) 塊的實(shí)例中的每一個(gè)的塊標(biāo)識(shí)符。
8. 根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng),其中所述前端處理子系統(tǒng)接收針對(duì)數(shù)據(jù)塊的讀取 請(qǐng)求,根據(jù)塊引用表格確定所請(qǐng)求的塊是否作為多個(gè)副本存儲(chǔ)在后端存儲(chǔ)子系統(tǒng)上,并且 向根據(jù)所述塊引用數(shù)據(jù)結(jié)構(gòu)確定存儲(chǔ)有所請(qǐng)求的數(shù)據(jù)的副本的每一個(gè)后端存儲(chǔ)節(jié)點(diǎn)發(fā)出 請(qǐng)求。
9. 根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng),其中所述前端處理子系統(tǒng)從多個(gè)請(qǐng)求系統(tǒng)中的每 一個(gè)接收針對(duì)數(shù)據(jù)塊的讀取請(qǐng)求,確定所述讀取請(qǐng)求的目標(biāo)是相同的數(shù)據(jù)塊,并且向根據(jù) 所述塊引用數(shù)據(jù)結(jié)構(gòu)所確定的包含目標(biāo)塊的每一個(gè)后端存儲(chǔ)節(jié)點(diǎn)發(fā)出單個(gè)讀取請(qǐng)求。
10. 根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng),其中多個(gè)后端存儲(chǔ)子系統(tǒng)中的每一個(gè)存儲(chǔ)數(shù)據(jù) 塊的副本,并且所述前端處理子系統(tǒng)接收針對(duì)所述數(shù)據(jù)塊的寫(xiě)入請(qǐng)求,寫(xiě)入到所述副本中 的一個(gè)副本,并且導(dǎo)致所述一個(gè)副本的內(nèi)容被復(fù)制到所述數(shù)據(jù)塊的所有其他副本。
11. 根據(jù)權(quán)利要求1所述的存儲(chǔ)系統(tǒng),其中多個(gè)后端存儲(chǔ)子系統(tǒng)中的每一個(gè)存儲(chǔ)只讀 的寫(xiě)時(shí)復(fù)制(R〇 COW)數(shù)據(jù)塊的副本,并且所述前端處理子系統(tǒng)接收目標(biāo)是RO COW數(shù)據(jù)塊 的寫(xiě)入請(qǐng)求,并且作為接收所述寫(xiě)入請(qǐng)求的響應(yīng),所述前端存儲(chǔ)子系統(tǒng)在所述多個(gè)后端存 儲(chǔ)子系統(tǒng)中的每一個(gè)上分配新數(shù)據(jù)塊,寫(xiě)入到最新分配的數(shù)據(jù)塊中的一個(gè),并且導(dǎo)致被寫(xiě) 入的數(shù)據(jù)塊復(fù)制到所有其他最新分配的數(shù)據(jù)塊。
12. -種存儲(chǔ)系統(tǒng),包括: 前端處理子系統(tǒng),其用來(lái)接收塊級(jí)存儲(chǔ)請(qǐng)求;以及 多個(gè)后端存儲(chǔ)節(jié)點(diǎn),其耦合到所述前端子系統(tǒng),每一個(gè)后端存儲(chǔ)子系統(tǒng)包括存儲(chǔ)設(shè)備 和用來(lái)在所述存儲(chǔ)節(jié)點(diǎn)上創(chuàng)建、讀取、更新和刪除數(shù)據(jù)塊的獨(dú)立的塊管理器; 其中所述前端處理子系統(tǒng)用來(lái)訪(fǎng)問(wèn)塊引用數(shù)據(jù)結(jié)構(gòu)以訪(fǎng)問(wèn)后端數(shù)據(jù)存儲(chǔ)系統(tǒng),以便確 定訪(fǎng)問(wèn)哪些后端存儲(chǔ)節(jié)點(diǎn)來(lái)完成接收到的塊級(jí)存儲(chǔ)請(qǐng)求。
13. 根據(jù)權(quán)利要求12所述的存儲(chǔ)系統(tǒng),其中所述塊引用數(shù)據(jù)結(jié)構(gòu)包括主塊引用表格和 從塊引用表格,所述主塊引用表格包括用于多個(gè)后端存儲(chǔ)子系統(tǒng)上所存儲(chǔ)的每一個(gè)數(shù)據(jù)塊 的引用,對(duì)于多個(gè)實(shí)例中的駐留于存儲(chǔ)子系統(tǒng)上的數(shù)據(jù)塊,所述主塊引用表格包括到所述 從塊引用表格的間接標(biāo)識(shí)符。
14. 一種方法,包括: 接收針對(duì)只讀數(shù)據(jù)塊的寫(xiě)入塊訪(fǎng)問(wèn)請(qǐng)求; 確定所述數(shù)據(jù)塊是否要在寫(xiě)入所述數(shù)據(jù)塊時(shí)被復(fù)制; 在第一后端存儲(chǔ)節(jié)點(diǎn)上分配第一新數(shù)據(jù)塊; 將數(shù)據(jù)寫(xiě)入到第一新分配的數(shù)據(jù)塊; 在另一個(gè)后端存儲(chǔ)節(jié)點(diǎn)上分配第二新數(shù)據(jù)塊;以及 將第一新分配的數(shù)據(jù)塊的內(nèi)容從所述第一后端存儲(chǔ)節(jié)點(diǎn)復(fù)制到所述另一個(gè)后端存儲(chǔ) 節(jié)點(diǎn)上的第二新分配的數(shù)據(jù)塊。
15. 根據(jù)權(quán)利要求14所述的方法,其中將第一新分配的數(shù)據(jù)塊的內(nèi)容從所述第一后端 存儲(chǔ)節(jié)點(diǎn)復(fù)制到所述另一個(gè)后端存儲(chǔ)節(jié)點(diǎn)上的第二新分配的數(shù)據(jù)塊能夠在寫(xiě)入到第一新 分配的數(shù)據(jù)塊已經(jīng)完成之后發(fā)生或繼續(xù)發(fā)生。
【文檔編號(hào)】G06F12/02GK104067240SQ201280068694
【公開(kāi)日】2014年9月24日 申請(qǐng)日期:2012年4月30日 優(yōu)先權(quán)日:2012年4月30日
【發(fā)明者】C-H.蘇, M.基爾希伯格, B.S.李 申請(qǐng)人:惠普發(fā)展公司,有限責(zé)任合伙企業(yè)
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1