国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種云環(huán)境下虛擬機(jī)數(shù)據(jù)持久化存儲(chǔ)系統(tǒng)和方法

      文檔序號(hào):6397554閱讀:241來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):一種云環(huán)境下虛擬機(jī)數(shù)據(jù)持久化存儲(chǔ)系統(tǒng)和方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于數(shù)據(jù)存儲(chǔ)和管理領(lǐng)域,更具體地,涉及一種云環(huán)境下虛擬機(jī)數(shù)據(jù)持久化存儲(chǔ)系統(tǒng)和方法。
      背景技術(shù)
      隨著虛擬化技術(shù)的提出和使用,云計(jì)算技術(shù)得到了蓬勃的發(fā)展和廣泛的應(yīng)用。虛擬機(jī)中數(shù)據(jù)存儲(chǔ)和管理也受到了越來(lái)越多人的重視和關(guān)注。虛擬化將物理服務(wù)器的CPU、內(nèi)存、存儲(chǔ)和網(wǎng)絡(luò)安全隔離以提高資源的使用率并實(shí)現(xiàn)資源的靈活分配。IaaS平臺(tái)正是通過(guò)虛擬化技術(shù)將物理資源轉(zhuǎn)化為彈性的虛擬基礎(chǔ)設(shè)施,向上層應(yīng)用提供支撐,并面向用戶提供基礎(chǔ)設(shè)施服務(wù)。虛擬化技術(shù)在云計(jì)算中的應(yīng)用也給虛擬機(jī)中的數(shù)據(jù)存儲(chǔ)帶來(lái)了新的問(wèn)題和挑戰(zhàn)。首先在云環(huán)境下,用戶存儲(chǔ)在虛擬機(jī)中的數(shù)據(jù)并不是持久化的,當(dāng)虛擬機(jī)關(guān)閉或意外宕機(jī)后,用戶保存在虛擬機(jī)中的數(shù)據(jù)將全部丟失;用戶儲(chǔ)存在虛擬機(jī)中的數(shù)據(jù)受限于虛擬機(jī)鏡像的大小,不能滿足用戶對(duì)存儲(chǔ)動(dòng)態(tài)增長(zhǎng)的需求;一種改進(jìn)方案是使用增量鏡像,但這不利于數(shù)據(jù)的管理,增量鏡像中的數(shù)據(jù)可能并不全是用戶所需要的;原有的解決方案中數(shù)據(jù)都是與虛擬機(jī)緊密耦合的,數(shù)據(jù)與虛擬機(jī)一一對(duì)應(yīng),用戶要獲取數(shù)據(jù)必須先啟動(dòng)指定的虛擬機(jī),這種耦合不利于數(shù)據(jù)在虛擬機(jī)之間的傳輸,并且大規(guī)模的數(shù)據(jù)傳輸將消耗大量的時(shí)間,降低系統(tǒng)的可用性。

      發(fā)明內(nèi)容
      針對(duì)現(xiàn)有技術(shù)的缺陷,本發(fā)明的目的在于提供一種云環(huán)境下虛擬機(jī)數(shù)據(jù)的持久化存儲(chǔ)方法和系統(tǒng),旨在解決現(xiàn)有云計(jì)算系統(tǒng)中用戶數(shù)據(jù)在虛擬機(jī)關(guān)閉后不能持久化存儲(chǔ)的問(wèn)題,并且該方法數(shù)據(jù)與虛擬機(jī)不是緊密耦合的,簡(jiǎn)化了用戶數(shù)據(jù)的管理。為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種云環(huán)境下虛擬機(jī)數(shù)據(jù)的持久化存儲(chǔ)方法,包括以下步驟:(I)主節(jié)點(diǎn)接收服務(wù)器的用戶請(qǐng)求,并判斷該用戶請(qǐng)求是創(chuàng)建塊設(shè)備,還是對(duì)塊設(shè)備進(jìn)行擴(kuò)容,如果是創(chuàng)建塊設(shè)備則跳轉(zhuǎn)到步驟(2),如果是對(duì)塊設(shè)備進(jìn)行擴(kuò)容則跳轉(zhuǎn)到步驟(5);(2)獲取所有存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)信息,根據(jù)用戶請(qǐng)求選擇一個(gè)存儲(chǔ)節(jié)點(diǎn),并通知該存儲(chǔ)節(jié)點(diǎn)創(chuàng)建塊設(shè)備;(3)存儲(chǔ)節(jié)點(diǎn)根據(jù)主節(jié)點(diǎn)的信息創(chuàng)建并管理邏輯卷;(4)存儲(chǔ)節(jié)點(diǎn)將邏輯卷注冊(cè)到iSCSI中,使得該邏輯卷作為塊設(shè)備服務(wù)提供給虛擬機(jī)調(diào)用;(5)主節(jié)點(diǎn)根據(jù)用戶請(qǐng)求獲取塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn),并調(diào)用該存儲(chǔ)節(jié)點(diǎn)對(duì)塊設(shè)備進(jìn)行擴(kuò)容;(6)主節(jié)點(diǎn)通知虛擬機(jī)塊設(shè)備服務(wù)已創(chuàng)建完畢,虛擬機(jī)通過(guò)iSCSI向用戶提供塊設(shè)備。步驟(2)包括以下子步驟:(2-1)主節(jié)點(diǎn)通過(guò)Thrift遠(yuǎn)程調(diào)用框架獲取所有存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)信息,包括存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)剩余空間信息和磁盤(pán)IO信息;(2-2)主節(jié)點(diǎn)分析獲取的信息,選擇磁盤(pán)剩余空間大于用戶所申請(qǐng)空間的存儲(chǔ)節(jié)點(diǎn),將這些存儲(chǔ)節(jié)點(diǎn)按照磁盤(pán)IO從小到大進(jìn)行排序,并選擇磁盤(pán)IO最小的節(jié)點(diǎn)創(chuàng)建塊設(shè)備;(2-3)主節(jié)點(diǎn)獲取存儲(chǔ)節(jié)點(diǎn)的返回信息,并判斷返回信息指示創(chuàng)建塊設(shè)備成功還是失敗,若返回信息指示創(chuàng)建塊設(shè)備成功,則過(guò)程結(jié)束,若失敗,則進(jìn)入步驟(2-4);(2-4)主節(jié)點(diǎn)將創(chuàng)建失敗寫(xiě)入日志并重新選擇新的存儲(chǔ)節(jié)點(diǎn),然后跳轉(zhuǎn)到步驟(2-2)。步驟(4)包括以下子步驟:(4-1)存儲(chǔ)節(jié)點(diǎn)將步驟(3)中創(chuàng)建的邏輯卷添加到iSCSI目標(biāo)服務(wù)中;(4-2)根據(jù)調(diào)用者的信息生成MD5,作為用戶使用邏輯卷的密碼;(4-3)設(shè)置虛擬機(jī)訪問(wèn)塊設(shè)備服務(wù)的用戶名和密碼;(4-4)通過(guò)iSCSI將邏輯卷作為塊設(shè)備服務(wù)等待虛擬機(jī)調(diào)用。步驟(6)包括以下子步驟:(6-1)主節(jié)點(diǎn)獲取用戶指定虛擬機(jī)的信息;具體而言包括虛擬機(jī)的ip地址以及虛擬機(jī)所在服務(wù)器的ip地址;(6-2)主節(jié)點(diǎn)調(diào)用虛擬機(jī)中的iSCSI發(fā)起者程序發(fā)現(xiàn)在步驟(4-4)中的存儲(chǔ)節(jié)點(diǎn)所創(chuàng)建的設(shè)備服務(wù);(6-3)虛擬機(jī)根據(jù)步驟(4-2)中的用戶名和信息摘要登錄到塊設(shè)備中。步驟(3)中存儲(chǔ)節(jié)點(diǎn)通過(guò)邏輯卷管理器創(chuàng)建由主節(jié)點(diǎn)指定大小的邏輯卷。步驟(4)中的注冊(cè)信息包括邏輯卷的路徑,虛擬機(jī)登錄該服務(wù)時(shí)所需的用戶名和密碼。步驟(5)中存儲(chǔ)節(jié)點(diǎn)通過(guò)邏輯卷管理器向已創(chuàng)建的塊設(shè)備中追加用戶指定的磁盤(pán)空間。一種云環(huán)境下虛擬機(jī)數(shù)據(jù)的持久化存儲(chǔ)系統(tǒng),包括用戶請(qǐng)求處理模塊、存儲(chǔ)節(jié)點(diǎn)磁盤(pán)信息分析模塊、存儲(chǔ)節(jié)點(diǎn)邏輯卷創(chuàng)建模塊、iSCSI服務(wù)注冊(cè)模塊、塊設(shè)備擴(kuò)容模塊以及虛擬機(jī)塊設(shè)備掛載模塊,用戶請(qǐng)求處理模塊接收服務(wù)器的用戶請(qǐng)求,并判斷該用戶請(qǐng)求是創(chuàng)建塊設(shè)備,還是對(duì)塊設(shè)備進(jìn)行擴(kuò)容,如果是則調(diào)用存儲(chǔ)節(jié)點(diǎn)磁盤(pán)信息分析模塊,如果是對(duì)塊設(shè)備進(jìn)行擴(kuò)容則調(diào)用塊設(shè)備擴(kuò)容模塊,存儲(chǔ)節(jié)點(diǎn)磁盤(pán)信息分析模塊獲取所有存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)信息,根據(jù)用戶請(qǐng)求選擇一個(gè)存儲(chǔ)節(jié)點(diǎn),并通知該存儲(chǔ)節(jié)點(diǎn)創(chuàng)建塊設(shè)備,存儲(chǔ)節(jié)點(diǎn)邏輯卷創(chuàng)建模塊根據(jù)主節(jié)點(diǎn)的信息創(chuàng)建并管理邏輯卷,iSCSI服務(wù)注冊(cè)模塊將邏輯卷注冊(cè)到iSCSI中,使得該邏輯卷作為塊設(shè)備服務(wù)提供給虛擬機(jī)調(diào)用,塊設(shè)備擴(kuò)容模塊根據(jù)用戶請(qǐng)求獲取塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn),并調(diào)用該存儲(chǔ)節(jié)點(diǎn)對(duì)塊設(shè)備進(jìn)行擴(kuò)容,虛擬機(jī)塊設(shè)備掛載模塊通知虛擬機(jī)塊設(shè)備服務(wù)已創(chuàng)建完畢,虛擬機(jī)通過(guò)iSCSI向用戶提供塊設(shè)備。通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案,與現(xiàn)有技術(shù)相比,本發(fā)明的方法具有以下的有益效果:
      1、可實(shí)現(xiàn)塊設(shè)備存儲(chǔ):由于采用了步驟(3)、步驟(4)和步驟(6),本系統(tǒng)通過(guò)在IP層運(yùn)行的SCSI指令集,將物理機(jī)的塊設(shè)備掛載到虛擬機(jī)中,在用戶看來(lái)新添加的存儲(chǔ)空間就像虛擬機(jī)本地設(shè)備。用戶可以在設(shè)備上構(gòu)建一個(gè)文件系統(tǒng),也可以當(dāng)做一個(gè)原始的未格式化的塊設(shè)備使用。相比于通過(guò)用戶空間文件系統(tǒng)(FUSE)的掛載只是在系統(tǒng)中只是提供了用于存儲(chǔ)的文件夾,并不是實(shí)際意義上的塊設(shè)備。2、可擴(kuò)展性強(qiáng):由于采用了步驟(5)用戶可以在需要的時(shí)候擴(kuò)充塊設(shè)備的空間。在這個(gè)過(guò)程中采用邏輯卷進(jìn)行磁盤(pán)管理,塊設(shè)備空間的擴(kuò)展不會(huì)影響到設(shè)備中已有的數(shù)據(jù)。相比采用增量鏡像的方式的優(yōu)勢(shì)在于,增量鏡像只是在使用上達(dá)到寫(xiě)時(shí)拷貝的效果,保存用戶在虛擬機(jī)磁盤(pán)中寫(xiě)入的數(shù)據(jù),但是最終還是受限于虛擬機(jī)模板鏡像的大小,增量只是在使用行為上不斷增大所使用的磁盤(pán)空間,但是最終能夠使用的磁盤(pán)空間是固定的,并不能滿足用戶對(duì)磁盤(pán)空間增長(zhǎng)擴(kuò)容的需求。3、松耦合:由于采用了步驟(3)本發(fā)明系統(tǒng)的使用解耦了虛擬機(jī)的存儲(chǔ)資源,使得存儲(chǔ)獨(dú)立于虛擬機(jī)。用戶可以將申請(qǐng)的塊設(shè)備在不同的虛擬機(jī)之間掛載,存儲(chǔ)資源不再與特定的虛擬機(jī)一一對(duì)應(yīng),而是作為一個(gè)獨(dú)立的系統(tǒng)進(jìn)行管理。


      圖1是本發(fā)明的應(yīng)用環(huán)境圖。圖2是本發(fā)明云環(huán)境下虛擬機(jī)數(shù)據(jù)的持久化存儲(chǔ)方法的流程圖。圖3是本發(fā)明方法中步驟(2)的細(xì)化流程圖。圖4是本發(fā)明方法中步驟(4)的細(xì)化流程圖。圖5是本發(fā)明方法中步驟(6)的細(xì)化流程圖。圖6是本發(fā)明云環(huán)境下虛擬機(jī)數(shù)據(jù)的持久化存儲(chǔ)系統(tǒng)的模塊框圖。圖7是本發(fā)明系統(tǒng)中存儲(chǔ)節(jié)點(diǎn)磁盤(pán)信息分析模塊的細(xì)化框圖。圖8是本發(fā)明系統(tǒng)中iSCSI服務(wù)注冊(cè)模塊的細(xì)化框圖。圖9是本發(fā)明系統(tǒng)中虛擬機(jī)塊設(shè)備掛載模塊的細(xì)化框圖。
      具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖1所示,本發(fā)明是為在虛擬機(jī)環(huán)境下的用戶提供存儲(chǔ)設(shè)備。圖中物理機(jī)共有n臺(tái)物理機(jī)1,2,…,n,其中物理機(jī)I為主節(jié)點(diǎn),物理機(jī)2至n為存儲(chǔ)節(jié)點(diǎn)。主節(jié)點(diǎn)負(fù)責(zé)處理用戶請(qǐng)求,根據(jù)存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)信息選擇合適的存儲(chǔ)節(jié)點(diǎn)分配塊設(shè)備并管理整個(gè)請(qǐng)求的流程,具體的塊設(shè)備操作通過(guò)Thrift遠(yuǎn)程調(diào)用完成。各個(gè)存儲(chǔ)節(jié)點(diǎn)提供存儲(chǔ)節(jié)點(diǎn)磁盤(pán)信息,執(zhí)行設(shè)備創(chuàng)建、擴(kuò)容操作,并通過(guò)Thrift遠(yuǎn)程調(diào)用作為服務(wù)提供給主節(jié)點(diǎn)。當(dāng)用戶向系統(tǒng)申請(qǐng)創(chuàng)建設(shè)備的時(shí)候,主節(jié)點(diǎn)利用獲取的存儲(chǔ)節(jié)點(diǎn)信息,選擇相應(yīng)的節(jié)點(diǎn)創(chuàng)建或擴(kuò)容塊設(shè)備并掛載到虛擬機(jī)中使用。如圖2所示,本發(fā)明云環(huán)境下虛擬機(jī)數(shù)據(jù)的持久化存儲(chǔ)方法包括以下步驟:
      (I)主節(jié)點(diǎn)接收服務(wù)器的用戶請(qǐng)求,并判斷該用戶請(qǐng)求是創(chuàng)建塊設(shè)備,還是對(duì)塊設(shè)備進(jìn)行擴(kuò)容,如果是創(chuàng)建塊設(shè)備則跳轉(zhuǎn)到步驟(2),如果是對(duì)塊設(shè)備進(jìn)行擴(kuò)容則跳轉(zhuǎn)到步驟(5);(2)獲取所有存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)信息,根據(jù)用戶請(qǐng)求選擇一個(gè)存儲(chǔ)節(jié)點(diǎn),并通知該存儲(chǔ)節(jié)點(diǎn)創(chuàng)建塊設(shè)備;具體而言,獲取存儲(chǔ)節(jié)點(diǎn)的信息包括磁盤(pán)剩余空間信息和磁盤(pán)IO信息;(3)存儲(chǔ)節(jié)點(diǎn)根據(jù)主節(jié)點(diǎn)的信息創(chuàng)建并管理邏輯卷;具體而言,存儲(chǔ)節(jié)點(diǎn)通過(guò)邏輯卷管理器創(chuàng)建由主節(jié)點(diǎn)指定大小的邏輯卷;(4)存儲(chǔ)節(jié)點(diǎn)將邏輯卷注冊(cè)到iSCSI中,使得該邏輯卷作為塊設(shè)備服務(wù)提供給虛擬機(jī)調(diào)用;具體而言,注冊(cè)信息包括邏輯卷的路徑,虛擬機(jī)登錄該服務(wù)時(shí)所需的用戶名和密碼;(5)主節(jié)點(diǎn)根據(jù)用戶請(qǐng)求獲取塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn),并調(diào)用該存儲(chǔ)節(jié)點(diǎn)對(duì)塊設(shè)備進(jìn)行擴(kuò)容;(6)主節(jié)點(diǎn)通知虛擬機(jī)塊設(shè)備服務(wù)已創(chuàng)建完畢,虛擬機(jī)通過(guò)小型計(jì)算機(jī)系統(tǒng)指令接口(Internet Small Computer System Interface,簡(jiǎn)稱(chēng) iSCSI)向用戶提供塊設(shè)備。不同系統(tǒng)間的通信米用Facebook的Thrift遠(yuǎn)程調(diào)用框架。如圖3所示,本發(fā)明方法中步驟(2)包括以下子步驟:(2-1)主節(jié)點(diǎn)通過(guò)Thrift遠(yuǎn)程調(diào)用框架獲取所有存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)信息,包括存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)剩余空間信息和磁盤(pán)IO信息;(2-2)主節(jié)點(diǎn)分析獲取的信息,選擇磁盤(pán)剩余空間大于用戶所申請(qǐng)空間的存儲(chǔ)節(jié)點(diǎn),將這些存儲(chǔ)節(jié)點(diǎn)按照磁盤(pán)IO從小到大進(jìn)行排序,并選擇磁盤(pán)IO最小的節(jié)點(diǎn)創(chuàng)建塊設(shè)備;(2-3)主節(jié)點(diǎn)獲取存儲(chǔ)節(jié)點(diǎn)的返回信息,并判斷返回信息指示創(chuàng)建塊設(shè)備成功還是失敗,若返回信息指示創(chuàng)建塊設(shè)備成功,則過(guò)程結(jié)束,若失敗,則進(jìn)入步驟(2-4);(2-4)主節(jié)點(diǎn)將創(chuàng)建失敗寫(xiě)入日志并重新選擇新的存儲(chǔ)節(jié)點(diǎn),然后跳轉(zhuǎn)到步驟(2-2)。如圖4所示,本發(fā)明方法中步驟(4)包括以下子步驟:(4-1)存儲(chǔ)節(jié)點(diǎn)將步驟(3)中創(chuàng)建的邏輯卷添加到iSCSI目標(biāo)服務(wù)中;具體而言,存儲(chǔ)節(jié)點(diǎn)提供給iSCSI的注冊(cè)信息包括邏輯卷的路徑,文件類(lèi)型以及服務(wù)名稱(chēng);(4-2)根據(jù)調(diào)用者的信息生成調(diào)用者信息摘要(Message digest-5,簡(jiǎn)稱(chēng)MD5),作為用戶使用邏輯卷的密碼;(4-3)設(shè)置虛擬機(jī)訪問(wèn)塊設(shè)備服務(wù)的用戶名和密碼;(4-4)通過(guò)iSCSI將邏輯卷作為塊設(shè)備服務(wù)等待虛擬機(jī)調(diào)用。如圖5所示,本發(fā)明方法中步驟(6)包括以下子步驟:(6-1)主節(jié)點(diǎn)獲取用戶指定虛擬機(jī)的信息;具體而言包括虛擬機(jī)的ip地址以及虛擬機(jī)所在服務(wù)器的ip地址;(6-2)主節(jié)點(diǎn)調(diào)用虛擬機(jī)中的iSCSI發(fā)起者程序發(fā)現(xiàn)在步驟(4-4)中的存儲(chǔ)節(jié)點(diǎn)所創(chuàng)建的設(shè)備服務(wù);(6-3)虛擬機(jī)根據(jù)步驟(4-2)中的用戶名和信息摘要登錄到塊設(shè)備中。如圖6所示,本發(fā)明云環(huán)境下虛擬機(jī)數(shù)據(jù)的持久化存儲(chǔ)系統(tǒng)包括用戶請(qǐng)求處理模塊1、存儲(chǔ)節(jié)點(diǎn)磁盤(pán)信息分析模塊2、存儲(chǔ)節(jié)點(diǎn)邏輯卷創(chuàng)建模塊3、iSCSI服務(wù)注冊(cè)模塊4、塊設(shè)備擴(kuò)容模塊5、虛擬機(jī)塊設(shè)備掛載模塊6。用戶請(qǐng)求處理模塊I接收服務(wù)器的用戶請(qǐng)求,并判斷該用戶請(qǐng)求是創(chuàng)建塊設(shè)備,還是對(duì)塊設(shè)備進(jìn)行擴(kuò)容,如果是則調(diào)用存儲(chǔ)節(jié)點(diǎn)磁盤(pán)信息分析模塊2,如果是對(duì)塊設(shè)備進(jìn)行擴(kuò)容則調(diào)用塊設(shè)備擴(kuò)容模塊5。存儲(chǔ)節(jié)點(diǎn)磁盤(pán)信息分析模塊2獲取所有存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)信息,根據(jù)用戶請(qǐng)求選擇一個(gè)存儲(chǔ)節(jié)點(diǎn),并通知該存儲(chǔ)節(jié)點(diǎn)創(chuàng)建塊設(shè)備。存儲(chǔ)節(jié)點(diǎn)邏輯卷創(chuàng)建模塊3根據(jù)主節(jié)點(diǎn)的信息創(chuàng)建并管理邏輯卷。iSCSI服務(wù)注冊(cè)模塊4將邏輯卷注冊(cè)到iSCSI中,使得該邏輯卷作為塊設(shè)備服務(wù)提供給虛擬機(jī)調(diào)用。塊設(shè)備擴(kuò)容模塊5根據(jù)用戶請(qǐng)求獲取塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn),并調(diào)用該存儲(chǔ)節(jié)點(diǎn)對(duì)塊設(shè)備進(jìn)行擴(kuò)容。虛擬機(jī)塊設(shè)備掛載模塊6通知虛擬機(jī)塊設(shè)備服務(wù)已創(chuàng)建完畢,虛擬機(jī)通過(guò)iSCSI向用戶提供塊設(shè)備。如圖7所示,本發(fā)明系統(tǒng)中存儲(chǔ)節(jié)點(diǎn)磁盤(pán)信息分析模塊2包括存儲(chǔ)節(jié)點(diǎn)信息獲取子模塊21、信息分析子模塊22、設(shè)備創(chuàng)建遠(yuǎn)程調(diào)用子模塊23、創(chuàng)建失敗處理子模塊24。存儲(chǔ)節(jié)點(diǎn)信息獲取子模塊21通過(guò)Thrift遠(yuǎn)程調(diào)用框架獲取所有存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)信息,包括存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)剩余空間信息和磁盤(pán)IO信息。信息分析子模塊22分析獲取的信息,首先選擇磁盤(pán)剩余空間大于用戶所申請(qǐng)空間的存儲(chǔ)節(jié)點(diǎn),主節(jié)點(diǎn)將這些存儲(chǔ)節(jié)點(diǎn)按照磁盤(pán)IO從小到大進(jìn)行排序,并選擇磁盤(pán)IO最小的節(jié)點(diǎn)創(chuàng)建塊設(shè)備。設(shè)備創(chuàng)建遠(yuǎn)程調(diào)用子模塊23獲取存儲(chǔ)節(jié)點(diǎn)的返回信息,并判斷返回信息指示創(chuàng)建塊設(shè)備成功還是失敗,若返回信息指示創(chuàng)建塊設(shè)備成功,則過(guò)程結(jié)束,若失敗,則調(diào)用創(chuàng)建失敗處理子模塊24。創(chuàng)建失敗處理子模塊24記錄系統(tǒng)日志,并重新選擇存儲(chǔ)子節(jié)點(diǎn)。如圖8所示,本發(fā)明系統(tǒng)中iSCSI服務(wù)注冊(cè)模塊4包括邏輯卷注冊(cè)子模塊41、用戶摘要生成子模塊42、服務(wù)密碼設(shè)置子模塊43、塊設(shè)備服務(wù)生成子模塊44。邏輯卷注冊(cè)子模塊41將邏輯卷添加到iSCSI (小型計(jì)算機(jī)系統(tǒng)指令接口)目標(biāo)服務(wù)中;具體而言,存儲(chǔ)節(jié)點(diǎn)提供給iSCSI的注冊(cè)信息包括邏輯卷的路徑,文件類(lèi)型以及服務(wù)名稱(chēng)。用戶摘要生成子模塊42根據(jù)調(diào)用者的信息生成調(diào)用者信息摘要(Messagedigest-5,簡(jiǎn)稱(chēng)MD5),作為用戶使用邏輯卷的密碼。服務(wù)密碼設(shè)置子模塊43設(shè)置虛擬機(jī)訪問(wèn)塊設(shè)備服務(wù)的用戶名和密碼。塊設(shè)備服務(wù)生成子模塊44通過(guò)iSCSI將邏輯卷作為塊設(shè)備服務(wù)等待虛擬機(jī)調(diào)用。如圖9所示,本發(fā)明系統(tǒng)中虛擬機(jī)塊設(shè)備掛載模塊6包括虛擬機(jī)信息獲取子模塊61、服務(wù)發(fā)現(xiàn)子模塊62、塊設(shè)備掛載子模塊63 ;虛擬機(jī)信息獲取子模塊61獲取用戶指定虛擬機(jī)的信息;具體而言包括虛擬機(jī)的ip地址以及虛擬機(jī)所在服務(wù)器的ip地址。服務(wù)發(fā)現(xiàn)子模塊62調(diào)用虛擬機(jī)中的iSCSI發(fā)起者程序發(fā)現(xiàn)存儲(chǔ)節(jié)點(diǎn)所創(chuàng)建的設(shè)備服務(wù)。塊設(shè)備掛載子模塊63使用用戶摘要生成子模塊42中生成的用戶名和信息摘要登錄到設(shè)備中。實(shí)例:為了驗(yàn)證本發(fā)明方法的可行性和有效性,在真實(shí)環(huán)境下配置系統(tǒng),對(duì)云環(huán)境下虛擬機(jī)數(shù)據(jù)的持久化存儲(chǔ)進(jìn)行實(shí)驗(yàn)。本發(fā)明的服務(wù)器基本硬件和軟件配置如表I所示:
      CPU內(nèi)存 Cache 硬盤(pán)操作系統(tǒng)Xen版
      權(quán)利要求
      1.一種云環(huán)境下虛擬機(jī)數(shù)據(jù)的持久化存儲(chǔ)方法,其特征在于,包括以下步驟: (1)主節(jié)點(diǎn)接收服務(wù)器的用戶請(qǐng)求,并判斷該用戶請(qǐng)求是創(chuàng)建塊設(shè)備,還是對(duì)塊設(shè)備進(jìn)行擴(kuò)容,如果是創(chuàng)建塊設(shè)備則跳轉(zhuǎn)到步驟(2),如果是對(duì)塊設(shè)備進(jìn)行擴(kuò)容則跳轉(zhuǎn)到步驟(5); (2)獲取所有存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)信息,根據(jù)用戶請(qǐng)求選擇一個(gè)存儲(chǔ)節(jié)點(diǎn),并通知該存儲(chǔ)節(jié)點(diǎn)創(chuàng)建塊設(shè)備; (3)存儲(chǔ)節(jié)點(diǎn)根據(jù)主節(jié)點(diǎn)的信息創(chuàng)建并管理邏輯卷; (4)存儲(chǔ)節(jié)點(diǎn)將邏輯卷注冊(cè)到iSCSI中,使得該邏輯卷作為塊設(shè)備服務(wù)提供給虛擬機(jī)調(diào)用; (5)主節(jié)點(diǎn)根據(jù)用戶請(qǐng)求獲取塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn),并調(diào)用該存儲(chǔ)節(jié)點(diǎn)對(duì)塊設(shè)備進(jìn)行擴(kuò)容; (6)主節(jié)點(diǎn)通知虛擬機(jī)塊設(shè)備服務(wù)已創(chuàng)建完畢,虛擬機(jī)通過(guò)iSCSI向用戶提供塊設(shè)備。
      2.根據(jù)權(quán)利要求1所述的持久化存儲(chǔ)方法,其特征在于,步驟(2)包括以下子步驟: (2-1)主節(jié)點(diǎn)通過(guò)Thrift遠(yuǎn)程調(diào)用框架獲取所有存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)信息,包括存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)剩余空間信息和磁盤(pán)IO信息; (2-2)主節(jié)點(diǎn)分析獲取的信息,選擇磁盤(pán)剩余空間大于用戶所申請(qǐng)空間的存儲(chǔ)節(jié)點(diǎn),將這些存儲(chǔ)節(jié)點(diǎn)按照磁盤(pán)IO從小到大進(jìn)行排序,并選擇磁盤(pán)IO最小的節(jié)點(diǎn)創(chuàng)建塊設(shè)備;(2-3)主節(jié)點(diǎn)獲取存儲(chǔ)節(jié)點(diǎn)的返回信息,并判斷返回信息指示創(chuàng)建塊設(shè)備成功還是失敗,若返回信息指示創(chuàng)建塊設(shè)備成功,則過(guò)程結(jié)束,若失敗,則進(jìn)入步驟(2-4); (2-4)主節(jié)點(diǎn)將創(chuàng)建失敗寫(xiě)入日志并重新選擇新的存儲(chǔ)節(jié)點(diǎn),然后跳轉(zhuǎn)到步驟(2-2)。
      3.根據(jù)權(quán)利要求1所述的持久化存儲(chǔ)方法,其特征在于,步驟(4)包括以下子步驟: (4-1)存儲(chǔ)節(jié)點(diǎn)將步驟(3)中創(chuàng)建的邏輯卷添加到iSCSI目標(biāo)服務(wù)中; (4-2)根據(jù)調(diào)用者的信息生成MD5,作為用戶使用邏輯卷的密碼; (4-3)設(shè)置虛擬機(jī)訪問(wèn)塊設(shè)備服務(wù)的用戶名和密碼; (4-4)通過(guò)iSCSI將邏輯卷作為塊設(shè)備服務(wù)等待虛擬機(jī)調(diào)用。
      4.根據(jù)權(quán)利要求1所述的持久化存儲(chǔ)方法,其特征在于,步驟(6)包括以下子步驟: (6-1)主節(jié)點(diǎn)獲取用戶指定虛擬機(jī)的信息;具體而言包括虛擬機(jī)的ip地址以及虛擬機(jī)所在服務(wù)器的ip地址; (6-2)主節(jié)點(diǎn)調(diào)用虛擬機(jī)中的iSCSI發(fā)起者程序發(fā)現(xiàn)在步驟(4-4)中的存儲(chǔ)節(jié)點(diǎn)所創(chuàng)建的設(shè)備服務(wù); (6-3)虛擬機(jī)根據(jù)步驟(4-2)中的用戶名和信息摘要登錄到塊設(shè)備中。
      5.根據(jù)權(quán)利要求1所述的持久化存儲(chǔ)方法,其特征在于,步驟(3)中存儲(chǔ)節(jié)點(diǎn)通過(guò)邏輯卷管理器創(chuàng)建由主節(jié)點(diǎn)指定大小的邏輯卷。
      6.根據(jù)權(quán)利要求1所述的持久化存儲(chǔ)方法,其特征在于,步驟(4)中的注冊(cè)信息包括邏輯卷的路徑,虛擬機(jī)登錄該服務(wù)時(shí)所需的用戶名和密碼。
      7.根據(jù)權(quán)利要求1所述 的持久化存儲(chǔ)方法,其特征在于,步驟(5)中存儲(chǔ)節(jié)點(diǎn)通過(guò)邏輯卷管理器向已創(chuàng)建的塊設(shè)備中追加用戶指定的磁盤(pán)空間。
      8.—種云環(huán)境下虛擬機(jī)數(shù)據(jù)的持久化存儲(chǔ)系統(tǒng),包括用戶請(qǐng)求處理模塊、存儲(chǔ)節(jié)點(diǎn)磁盤(pán)信息分析模塊、存儲(chǔ)節(jié)點(diǎn)邏輯卷創(chuàng)建模塊、iSCSI服務(wù)注冊(cè)模塊、塊設(shè)備擴(kuò)容模塊以及虛擬機(jī)塊設(shè)備掛載模塊,其特征在于, 用戶請(qǐng)求處理模塊接收服務(wù)器的用戶請(qǐng)求,并判斷該用戶請(qǐng)求是創(chuàng)建塊設(shè)備,還是對(duì)塊設(shè)備進(jìn)行擴(kuò)容,如果是則調(diào)用存儲(chǔ)節(jié)點(diǎn)磁盤(pán)信息分析模塊,如果是對(duì)塊設(shè)備進(jìn)行擴(kuò)容則調(diào)用塊設(shè)備擴(kuò)容模塊; 存儲(chǔ)節(jié)點(diǎn)磁盤(pán)信息分析模塊獲取所有存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)信息,根據(jù)用戶請(qǐng)求選擇一個(gè)存儲(chǔ)節(jié)點(diǎn),并通知該存儲(chǔ)節(jié)點(diǎn)創(chuàng)建塊設(shè)備; 存儲(chǔ)節(jié)點(diǎn)邏輯卷創(chuàng)建模塊根據(jù)主節(jié)點(diǎn)的信息創(chuàng)建并管理邏輯卷;iSCSI服務(wù)注冊(cè)模塊將邏輯卷注冊(cè)到iSCSI中,使得該邏輯卷作為塊設(shè)備服務(wù)提供給虛擬機(jī)調(diào)用; 塊設(shè)備擴(kuò)容模塊根據(jù)用戶請(qǐng)求獲取塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn),并調(diào)用該存儲(chǔ)節(jié)點(diǎn)對(duì)塊設(shè)備進(jìn)行擴(kuò)容; 虛擬機(jī)塊設(shè)備掛載模塊通知虛擬機(jī)塊設(shè)備服務(wù)已創(chuàng)建完畢,虛擬機(jī)通過(guò)iSCSI向用戶提供塊設(shè) 備。
      全文摘要
      本發(fā)明公開(kāi)了一種云環(huán)境下虛擬機(jī)數(shù)據(jù)的持久化存儲(chǔ)方法,包括(1)主節(jié)點(diǎn)接收服務(wù)器的用戶請(qǐng)求,并判斷該用戶請(qǐng)求是創(chuàng)建塊設(shè)備,還是對(duì)塊設(shè)備進(jìn)行擴(kuò)容,如果是創(chuàng)建塊設(shè)備則跳轉(zhuǎn)到步驟(2),如果是對(duì)塊設(shè)備進(jìn)行擴(kuò)容則跳轉(zhuǎn)到步驟(5);(2)獲取所有存儲(chǔ)節(jié)點(diǎn)的磁盤(pán)信息,根據(jù)用戶請(qǐng)求選擇一個(gè)存儲(chǔ)節(jié)點(diǎn),并通知該存儲(chǔ)節(jié)點(diǎn)創(chuàng)建塊設(shè)備;(3)存儲(chǔ)節(jié)點(diǎn)根據(jù)主節(jié)點(diǎn)的信息創(chuàng)建并管理邏輯卷;(4)存儲(chǔ)節(jié)點(diǎn)將邏輯卷注冊(cè)到iSCSI中,使得該邏輯卷作為塊設(shè)備服務(wù)提供給虛擬機(jī)調(diào)用;(5)主節(jié)點(diǎn)根據(jù)用戶請(qǐng)求獲取塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn),并調(diào)用該存儲(chǔ)節(jié)點(diǎn)對(duì)塊設(shè)備進(jìn)行擴(kuò)容。本發(fā)明解決了現(xiàn)有云計(jì)算系統(tǒng)中用戶數(shù)據(jù)在虛擬機(jī)關(guān)閉后不能持久化存儲(chǔ)的問(wèn)題。
      文檔編號(hào)G06F9/455GK103118073SQ201310005800
      公開(kāi)日2013年5月22日 申請(qǐng)日期2013年1月8日 優(yōu)先權(quán)日2013年1月8日
      發(fā)明者吳松, 金海 , 石宣化, 陳輝 申請(qǐng)人:華中科技大學(xué)
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1