两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

遷移虛擬機(jī)的方法和裝置的制作方法

文檔序號:6423057閱讀:156來源:國知局
專利名稱:遷移虛擬機(jī)的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及虛擬機(jī)的遷移,更具體而言,涉及將虛擬機(jī)進(jìn)行跨站點(diǎn)遷移的方法和
>J-U裝直。
背景技術(shù)
為了提高數(shù)據(jù)存儲的安全性和持續(xù)性,越來越多的企業(yè)選擇建立跨站點(diǎn)(crosssite)的數(shù)據(jù)中心,由此防止災(zāi)害發(fā)生或者進(jìn)行負(fù)載的調(diào)整和平衡。另一方面,隨著虛擬化技術(shù)的發(fā)展,許多數(shù)據(jù)中心采用虛擬機(jī)來執(zhí)行并管理。在進(jìn)行站點(diǎn)維護(hù)、功率調(diào)整、平衡站 點(diǎn)之間的負(fù)載等多種情況下,都需要對站點(diǎn)中承載的虛擬機(jī)進(jìn)行遷移,也就是將虛擬機(jī)從一個物理系統(tǒng)遷移到一個不同的物理系統(tǒng)。然而,如何使得虛擬機(jī)進(jìn)行遷移而不影響其上的應(yīng)用和服務(wù)成為值得研究的問題。多數(shù)提供主機(jī)虛擬化的公司都具有其特定的虛擬機(jī)遷移工具。例如,PowerVM提供了一種虛擬機(jī)遷移功能,能夠?qū)⑦\(yùn)行中的虛擬機(jī)移動到不同的物理系統(tǒng),而不產(chǎn)生當(dāng)機(jī)時間。VMware具有類似的虛擬機(jī)遷移工具,稱為VMotion。然而,以上兩種遷移工具都要求遷移前后的物理機(jī)之間米用 SAN(storage area network),NAS(network-attached storage)之類的集中式共享外存設(shè)備。這樣的要求將虛擬機(jī)的遷移局限在同一站點(diǎn)之內(nèi),而無法實(shí)施跨站點(diǎn)的遷移。進(jìn)一步地,為了克服上述局限性,一些專利還提出了其他的解決方案來進(jìn)行跨站點(diǎn)的虛擬機(jī)遷移。在一個方案中提出,可以將虛擬機(jī)掛起并鏡像成為一個映像,然后通過網(wǎng)絡(luò)復(fù)制該映像,最后在另一計(jì)算機(jī)系統(tǒng)中重新啟動該映像,從而實(shí)現(xiàn)虛擬機(jī)的遷移。然而,上述過程是一個先停止再復(fù)制的過程,會明顯地中斷虛擬機(jī)的運(yùn)行,造成虛擬機(jī)上的應(yīng)用或服務(wù)中斷或超時。在另一種方案中提出,在主機(jī)之間動態(tài)建立光通路,從而通過光網(wǎng)絡(luò)來將一個虛擬機(jī)從源站點(diǎn)遷移到目標(biāo)站點(diǎn)。但是,該方案需要在每個虛擬機(jī)上安裝可調(diào)的控制代理,并要求在主機(jī)之間具有S0NET/SDH或DWDM連接來復(fù)制內(nèi)存和磁盤中的數(shù)據(jù)??梢岳斫?,在虛擬機(jī)遷移的同時,希望各個應(yīng)用和服務(wù)仍在運(yùn)行,因此磁盤上仍然存在數(shù)據(jù)的讀寫和改變。當(dāng)磁盤的數(shù)據(jù)改變速率高于網(wǎng)絡(luò)復(fù)制速率時,就會有一部分?jǐn)?shù)據(jù)無法被復(fù)制到目標(biāo)站點(diǎn),從而造成數(shù)據(jù)丟失。因此,該方案無法解決數(shù)據(jù)的一致性問題,這對于虛擬機(jī)遷移的安全性非常不利。

發(fā)明內(nèi)容
考慮到上述問題,指出本發(fā)明,旨在提供一種跨站點(diǎn)的虛擬機(jī)遷移方案。根據(jù)本發(fā)明第一方面,提供一種切換管理設(shè)備,用于在虛擬機(jī)的異步遷移中基于虛擬機(jī)內(nèi)存數(shù)據(jù)的遷移協(xié)助進(jìn)行虛擬機(jī)存儲數(shù)據(jù)的切換,其中所述存儲數(shù)據(jù)的切換是將存儲數(shù)據(jù)從第一站點(diǎn)中的第一存儲設(shè)備切換到第二站點(diǎn)中的第二存儲設(shè)備,其中第一存儲設(shè)備和第二存儲設(shè)備之間建立有同步鏡像關(guān)系,所述設(shè)備包括通信單元,配置為在按照路徑表訪問第一存儲設(shè)備失敗時,發(fā)出訪問失敗報(bào)告;鏡像修改單兀,配置為響應(yīng)于所述失敗報(bào)告,修改第一存儲設(shè)備和第二存儲設(shè)備之間的鏡像方向;通知單元,配置為發(fā)出路徑修改通知,要求更改到第二存儲設(shè)備的路徑設(shè)置;路徑修改單元,配置為根據(jù)所述路徑修改通知,通過修改路徑表來激活到第二存儲設(shè)備的路徑,使得第二存儲設(shè)備能夠被訪問。根據(jù)本發(fā)明第二方面,提供一種硬件管理裝置,用于在虛擬機(jī)的異步遷移中協(xié)助進(jìn)行虛擬機(jī)內(nèi)存數(shù)據(jù)的遷移以作為虛擬機(jī)存儲數(shù)據(jù)切換的基礎(chǔ),其中所述內(nèi)存數(shù)據(jù)的遷移是將內(nèi)存數(shù)據(jù)從第一站點(diǎn)中的第一主機(jī)遷移到第二站點(diǎn)中的第二主機(jī),其中第一站點(diǎn)還包括第一存儲設(shè)備,第二站點(diǎn)還包括第二存儲設(shè)備,所述第一存儲設(shè)備和第二存儲設(shè)備之間建立有同步鏡像關(guān)系,所述裝置包括接收單元,配置為接收遷移指令和第二站點(diǎn)的信息;復(fù)制單元,配置為指示第一主機(jī)將虛擬機(jī)的內(nèi)存數(shù)據(jù)復(fù)制到所述第一存儲設(shè)備中的子邏輯單元,所述子邏輯單元在所述第二存儲設(shè)備中存在鏡像邏輯單元;通知單元,配置為根據(jù)所述第二站點(diǎn)的信息發(fā)出通知,所述通知用于指示第二主機(jī)從所述鏡像邏輯單元讀取內(nèi)存數(shù)據(jù)。在本發(fā)明的其他方面還提供了與上述方面對應(yīng)的方法。
根據(jù)本發(fā)明的裝置和方法,利用同步鏡像方式實(shí)現(xiàn)虛擬機(jī)數(shù)據(jù)的遷移和切換,從而實(shí)時地在不同站點(diǎn)之間遷移虛擬機(jī),而不影響虛擬機(jī)及其應(yīng)用的運(yùn)行。


圖I示出根據(jù)本發(fā)明一個實(shí)施例的系統(tǒng)的架構(gòu)圖;圖2示出根據(jù)本發(fā)明一個實(shí)施例的硬件管理裝置的示意框圖;圖3示出根據(jù)本發(fā)明一個實(shí)施例的內(nèi)存復(fù)制示意圖;圖4示出根據(jù)本發(fā)明一個實(shí)施例的鏡像管理裝置的示意框圖;圖5示出根據(jù)本發(fā)明一個實(shí)施例的路徑管理裝置的示意框圖;圖6示出在一個具體例子中鏡像管理裝置和路徑管理裝置的交互示意圖;圖7示出根據(jù)本發(fā)明一個實(shí)施例的切換管理設(shè)備的示意圖;圖8示出根據(jù)本發(fā)明一個實(shí)施例的遷移內(nèi)存數(shù)據(jù)的方法的流程圖;以及圖9示出根據(jù)本發(fā)明一個實(shí)施例的切換存儲數(shù)據(jù)的方法的流程圖。圖10示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算系統(tǒng)1000的框圖。
具體實(shí)施例方式所屬技術(shù)領(lǐng)域的技術(shù)人員知道,本發(fā)明的多個方面可以體現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的多個方面可以具體實(shí)現(xiàn)為以下形式,即,可以是完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等)、或者本文一般稱為“電路”、“模塊”或“系統(tǒng)”的軟件部分與硬件部分的組合。此外,本發(fā)明的多個方面還可以采取體現(xiàn)在一個或多個計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可用的程序碼。可以使用一個或多個計(jì)算機(jī)可讀的介質(zhì)的任何組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號介質(zhì)或者計(jì)算機(jī)可讀存儲介質(zhì)。計(jì)算機(jī)可讀存儲介質(zhì)例如可以是一但不限于——電的、磁的、光的、電磁的、紅外線的、或半導(dǎo)體的系統(tǒng)、裝置、器件或任何以上的組合。計(jì)算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括以下有一個或多個導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任何合適的組合。在本文件的語境中,計(jì)算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形的介質(zhì),該程序被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。計(jì)算機(jī)可讀的信號介質(zhì)可包括在基帶中或者作為載波一部分傳播的、其中體現(xiàn)計(jì)算機(jī)可讀的程序碼的傳播的數(shù)據(jù)信號。這種傳播的信號可以采用多種形式,包括——但不限于——電磁信號、光信號或任何以上合適的組合。計(jì)算機(jī)可讀的信號介質(zhì)可以是并非為計(jì)算機(jī)可讀存儲介質(zhì)、但是能發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序的任何計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括——但不限于——無線、電線、光纜、RF等等,或者任何合適的上述組合。計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于——無線、電線、光纜、RF等等,或者任何合適的上述組合。
用于執(zhí)行本發(fā)明的操作的計(jì)算機(jī)程序碼,可以以一種或多種程序設(shè)計(jì)語言的任何組合來編寫,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言-諸如Java、Smalltalk、C++之類,還包括常規(guī)的過程式程序設(shè)計(jì)語言-諸如”C”程序設(shè)計(jì)語言或類似的程序設(shè)計(jì)語言。程序碼可以完全地在用戶的計(jì)算上執(zhí)行、部分地在用戶的計(jì)算機(jī)上執(zhí)行、作為一個獨(dú)立的軟件包執(zhí)行、部分在用戶的計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后一種情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任何種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶的計(jì)算機(jī),或者,可以(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng))連接到外部計(jì)算機(jī)。以下參照按照本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明的多個方面。要明白的是,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行的這些指令,產(chǎn)生實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。也可以把這些計(jì)算機(jī)程序指令存儲在能指令計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計(jì)算機(jī)可讀介質(zhì)中,這樣,存儲在計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生一個包括實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instruction means)的制造品。也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置上,使得在計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程,從而在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令就提供實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。下面參照附圖,結(jié)合具體實(shí)施例對本發(fā)明進(jìn)行描述。這樣的描述僅僅出于說明目的,而不意圖對本發(fā)明的范圍進(jìn)行限制。在本發(fā)明的多個實(shí)施例中,通過數(shù)據(jù)的同步鏡像(Metro Mirror)和切換(swap),實(shí)現(xiàn)虛擬機(jī)的實(shí)時(live)跨站點(diǎn)遷移。一般來說,虛擬機(jī)的遷移主要包括操作系統(tǒng)的遷移和存儲數(shù)據(jù)的遷移,同時照顧主機(jī)級別的差異并處理不同的虛擬硬件。上述操作系統(tǒng)的遷移包括將與虛擬機(jī)的運(yùn)行相關(guān)的重要數(shù)據(jù)進(jìn)行復(fù)制或移動。只有將這些數(shù)據(jù)從源站點(diǎn)遷移到目標(biāo)站點(diǎn),才能使得虛擬機(jī)在目標(biāo)站點(diǎn)的主機(jī)中啟動。這樣的數(shù)據(jù)例如包括,操作系統(tǒng)中的進(jìn)程、系統(tǒng)狀態(tài)、系統(tǒng)上運(yùn)行的應(yīng)用的狀態(tài)等,這些數(shù)據(jù)一般存儲在主機(jī)的內(nèi)存之中。因此,通常也將操作系統(tǒng)的遷移稱為內(nèi)存的遷移或主機(jī)的遷移。另一方面,存儲數(shù)據(jù)的遷移主要包括將存儲在大容量非易失性存儲設(shè)備(例如磁盤)中的數(shù)據(jù)從源站點(diǎn)遷移到目標(biāo)站點(diǎn)。通常,這樣的遷移也稱為存儲設(shè)備的遷移。對于實(shí)時遷移來說,希望運(yùn)行在源站點(diǎn)中的虛擬機(jī)能夠在極短的時間內(nèi)遷移到目標(biāo)站點(diǎn)并啟動,也就是說,要將內(nèi)存中的數(shù)據(jù)和存儲設(shè)備中的數(shù)據(jù)都復(fù)制到目標(biāo)站點(diǎn),并盡可能不影響虛擬機(jī)的運(yùn)行。為了滿足這樣的遷移速度的要求,可以采用同步鏡像方式預(yù)先在源站點(diǎn)的存儲設(shè)備和目標(biāo)站點(diǎn)的存儲設(shè)備之間建立鏡像關(guān)系,從而實(shí)現(xiàn)數(shù)據(jù)的復(fù)制和備份。在同步鏡像的方案中,來自主機(jī)的數(shù)據(jù)被寫往本地連接的磁盤系統(tǒng),該磁盤系統(tǒng)同時將數(shù)據(jù)轉(zhuǎn)發(fā)給遠(yuǎn)程連接的磁盤系統(tǒng)。只有當(dāng)兩個磁盤系統(tǒng)都擁有數(shù)據(jù)的拷貝以后,本地系統(tǒng)才會向主機(jī)返回一個I/o完成指示。由此,在同步鏡像方案下,本地存儲設(shè)備和遠(yuǎn)程的備用存儲設(shè)備都會保持最新的更新。通常來說,具有同步鏡像關(guān)系的磁盤系統(tǒng)之間通過光纖網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸,從而實(shí)現(xiàn)高速數(shù)據(jù)復(fù)制。在一種執(zhí)行方式下,通過鏡像管理裝置來管理存儲設(shè)備的鏡像關(guān)系。為了利用同步鏡像方式完成虛擬機(jī)的遷移,在本發(fā)明的實(shí)施例中,可以提供改進(jìn)的硬件管理裝置來進(jìn)行內(nèi)存數(shù)據(jù)的復(fù)制和遷移。在此基礎(chǔ)上,本發(fā)明實(shí)施例還提供鏡像管理裝置和路徑管理裝置,這些裝置互相通信,彼此協(xié)作,從而協(xié)助進(jìn)行虛擬機(jī)的存儲數(shù)據(jù)的切換。相對于將整個虛擬機(jī)作為一個映像進(jìn)行傳輸?shù)姆桨竵碚f,分別進(jìn)行內(nèi)存數(shù)據(jù)的遷移和存儲數(shù)據(jù)的切換的虛擬機(jī)遷移方案可以稱為虛擬機(jī)的異步遷移。
圖I示出根據(jù)本發(fā)明一個實(shí)施例的系統(tǒng)的架構(gòu)圖。如圖所示,虛擬機(jī)最初運(yùn)行在源站點(diǎn)1000,或稱第一站點(diǎn)的主機(jī)之中,并向源站點(diǎn)中本地連接的存儲設(shè)備(或稱源存儲設(shè)備或第一存儲設(shè)備)讀寫數(shù)據(jù)。相應(yīng)地,在第二站點(diǎn)2000,或稱目標(biāo)站點(diǎn)中提供了對應(yīng)的主機(jī)和存儲設(shè)備,分別稱為第二主機(jī)和第二存儲設(shè)備。為了將虛擬機(jī)從第一站點(diǎn)遷移到第二站點(diǎn),在第一存儲設(shè)備和第二存儲設(shè)備之間建立同步鏡像關(guān)系。獨(dú)立于第一主機(jī)和第二主機(jī),提供鏡像管理裝置20,通過管理數(shù)據(jù)的鏡像和切換,協(xié)助進(jìn)行虛擬機(jī)的遷移。并且,與站點(diǎn)內(nèi)的主機(jī)相對應(yīng)地提供硬件管理裝置10,通過管理內(nèi)存數(shù)據(jù)的復(fù)制來協(xié)助進(jìn)行虛擬機(jī)的遷移。因此,第一主機(jī)和第二主機(jī)各自具有對應(yīng)的硬件管理裝置10,它們之間可以互相通信。每個硬件管理裝置可以直接指示對應(yīng)的主機(jī)執(zhí)行特定的操作。進(jìn)一步地,在主機(jī)上所運(yùn)行的虛擬機(jī)中安裝路徑管理裝置30,通過管理存儲設(shè)備的訪問路徑來協(xié)助進(jìn)行虛擬機(jī)的遷移。以下具體描述各個裝置的工作方式。硬件管理裝置10與主機(jī)相對應(yīng),用以管理該主機(jī)中包括內(nèi)存在內(nèi)的硬件系統(tǒng),協(xié)助實(shí)現(xiàn)內(nèi)存的復(fù)制。在一個實(shí)施例中,硬件管理裝置可以通過在現(xiàn)有技術(shù)的硬件管理控制臺(Hardware Manage Console, HMC)的基礎(chǔ)上擴(kuò)展功能而實(shí)現(xiàn)。在一個實(shí)施例中,硬件管理裝置10配置為利用光纖網(wǎng)絡(luò)實(shí)現(xiàn)內(nèi)存數(shù)據(jù)的復(fù)制。盡管相比于磁盤數(shù)據(jù)來說內(nèi)存數(shù)據(jù)并不算太大,但是如果通過常規(guī)以太網(wǎng)進(jìn)行傳輸,仍然會造成較大的網(wǎng)絡(luò)負(fù)擔(dān),并且難以保證實(shí)時遷移所要求的短時間內(nèi)的快速復(fù)制。因此,硬件管理裝置10可以利用以太網(wǎng)進(jìn)行常規(guī)的信號通信,而利用光纖網(wǎng)絡(luò)進(jìn)行內(nèi)存數(shù)據(jù)的復(fù)制。圖2示出根據(jù)本發(fā)明一個實(shí)施例的硬件管理裝置的示意框圖。如圖所示,硬件管理裝置10包括接收單元12,復(fù) 制單元14和通知單元16。具體地,在一個例子中,接收單元12可以作用為接口,配置為接收遷移指令和第二站點(diǎn)的信息。由此,用戶可以在需要遷移虛擬機(jī)時,通過接收單元12發(fā)出遷移指令,并指明遷移的目標(biāo)站點(diǎn)的信息。例如,用戶可以指定目標(biāo)主機(jī)的IP地址或其他標(biāo)識信息,使得硬件管理裝置10能夠確定遷移的目的地。接著,硬件管理裝置10根據(jù)獲得的第二站點(diǎn)的信息,通過常規(guī)方式與第二主機(jī)所對應(yīng)的硬件管理裝置,進(jìn)而與第二主機(jī)進(jìn)行信號通信,為數(shù)據(jù)的復(fù)制進(jìn)行網(wǎng)絡(luò)方面的準(zhǔn)備。之后,復(fù)制單元14根據(jù)第二站點(diǎn)的信息,指示第一主機(jī)通過光纖網(wǎng)絡(luò)將內(nèi)存中的數(shù)據(jù)直接復(fù)制到第二站點(diǎn),更具體地,復(fù)制到第二站點(diǎn)中的第二主機(jī)中。在復(fù)制完成后,通知單元16通過第二主機(jī)對應(yīng)的硬件管理裝置向第二主機(jī)發(fā)出通知,通知其讀取內(nèi)存數(shù)據(jù),從而啟動虛擬機(jī)的操作系統(tǒng)。在另一實(shí)施例中,硬件管理裝置10利用已經(jīng)建立的同步鏡像關(guān)系來進(jìn)行內(nèi)存的復(fù)制。圖3示出根據(jù)本發(fā)明一個實(shí)施例的內(nèi)存復(fù)制示意圖。在圖中,第一站點(diǎn)中的第一存儲設(shè)備已經(jīng)與第二站點(diǎn)中的第二存儲設(shè)備建立了同步鏡像關(guān)系。如本領(lǐng)域人員所知,每個存儲設(shè)備包括多個邏輯單元,通常用LUN(logical unit number)來指代。存儲設(shè)備之間的同步鏡像關(guān)系實(shí)際上是由各個邏輯單元LUN之間的同步鏡像關(guān)系構(gòu)成的。根據(jù)圖3的復(fù)制方案,在第一站點(diǎn)的第一存儲設(shè)備中設(shè)立一塊小容量的子邏輯單元,如LUNls所示,其大小與虛擬機(jī)的內(nèi)存大小相當(dāng)。在此基礎(chǔ)上,硬件管理裝置10中的復(fù)制單元14配置為,響應(yīng)于遷移指令,指示第一主機(jī)將虛擬機(jī)的內(nèi)存信息復(fù)制到該子邏輯單元LUNls。由于第一存儲設(shè)備和第二存儲設(shè)備之間已經(jīng)建立了同步鏡像關(guān)系,因此內(nèi)存數(shù)據(jù)在復(fù)制到LUNls的同時,會通過光纖網(wǎng)絡(luò)寫入第二存儲設(shè)備中與LUNls相對應(yīng)的鏡像單元LUN2s。于是,在LUN2s中就存在了仍然在第一主機(jī)中運(yùn)行的虛擬機(jī)的內(nèi)存數(shù)據(jù)。在完成內(nèi)存復(fù)制之后,通知單元16根據(jù)上述的第二站點(diǎn)的信息,向第二主機(jī)對應(yīng)的硬件管理裝置發(fā)出通知,第二主機(jī)對應(yīng)的硬件管理裝置于是向第二主機(jī)發(fā)出指示,指示其從第二存儲設(shè)備讀取鏡像單元LUN2s中的數(shù)據(jù)。由此,第二主機(jī)就能夠從本地連接的第二存儲設(shè)備中讀取LUN2s中的數(shù)據(jù)作為內(nèi)存數(shù)據(jù),并基于這些內(nèi)存數(shù)據(jù)啟動虛擬機(jī)。在以上配置方案中,復(fù)制單元14首先指示第一主機(jī)將內(nèi)存數(shù)據(jù)復(fù)制到第一存儲設(shè)備;由于第一主機(jī)和第一存儲設(shè)備是本地連接的,因此這個復(fù)制過程非常快速。進(jìn)一步地,基于第一存儲設(shè)備和第二存儲設(shè)備之間的同步鏡像關(guān)系,數(shù)據(jù)同時被寫入第二存儲設(shè)備。由于同步鏡像關(guān)系是預(yù)先設(shè)立完成的,因此這個寫入過程復(fù)用了已經(jīng)構(gòu)建好的同步鏡像光纖網(wǎng)絡(luò),速度快且效率高。接著,通知單元16通過第二主機(jī)對應(yīng)的硬件管理裝置向第二主機(jī)發(fā)出讀取數(shù)據(jù)的通知。如上所述,這樣的通知信號可以通過以太網(wǎng)來傳輸。在接收到通知信號之后,第二主機(jī)就可以從第二存儲設(shè)備中讀取數(shù)據(jù)了。同樣地,由于第二主機(jī)和第二存儲設(shè)備是本地連接的,因此這個讀取過程也非常迅速。因此,在這個配置方案中,盡管內(nèi)存數(shù)據(jù)不是直接復(fù)制到第二主機(jī)而是借由存儲設(shè)備之間的鏡像來完成,但是,由于每個數(shù)據(jù)傳遞過程都非??焖?,并且利用了已經(jīng)構(gòu)建的光纖網(wǎng)絡(luò),因此復(fù)制效率也很高。在一個實(shí)施例中,復(fù)制單元14指示主機(jī)分步驟地進(jìn)行內(nèi)存的復(fù)制。例如,復(fù)制單元14首先指示主機(jī)復(fù)制內(nèi)存數(shù)據(jù)中的核心數(shù)據(jù),也就是,啟動虛擬機(jī)的操作系統(tǒng)所必須的最重要的數(shù)據(jù);然后,復(fù)制其余的補(bǔ)充數(shù)據(jù),例如狀態(tài)數(shù)據(jù)?,F(xiàn)有技術(shù)中已經(jīng)存在多種算法和方案來判定和區(qū)分核心數(shù)據(jù)。復(fù)制單元14可以利用這樣的現(xiàn)有技術(shù)在內(nèi)存數(shù)據(jù)中選擇出核心數(shù)據(jù),并優(yōu)先對核心數(shù)據(jù)進(jìn)行復(fù)制。由此,操作系統(tǒng)相關(guān)數(shù)據(jù)可以在盡量短的時間內(nèi)得到遷移,因此虛擬機(jī)可以盡快地在目標(biāo)主機(jī)中開始啟動,從而縮短停機(jī)時間。通過上述實(shí)施例的硬件管理裝置10,虛擬機(jī)的內(nèi)存數(shù)據(jù)從第一主機(jī)復(fù)制到了第二主機(jī)。于是,虛擬機(jī)的操作系統(tǒng)會在第二主機(jī)中重新啟動。然而,此時,當(dāng)虛擬機(jī)試圖訪問相關(guān)聯(lián)的存儲設(shè)備時,就會出現(xiàn)訪問失敗的情況。這是因?yàn)?,虛擬機(jī)的內(nèi)存數(shù)據(jù)只是復(fù)制到了第二主機(jī)中,操作系統(tǒng)中的相關(guān)配置并未發(fā)生改變。因此,在第二主機(jī)上重新啟動的虛擬機(jī)會按照原有配置運(yùn)行操作系統(tǒng)??梢岳斫?,按照原有配置,第一存儲設(shè)備是本地連接的存儲設(shè)備,操作系統(tǒng)可以直接訪問其中的LUN。因此,在操作系統(tǒng)已經(jīng)遷移到第二主機(jī)的情況下,虛擬機(jī)仍然會將第一存儲設(shè)備作為默認(rèn)的本地存儲設(shè)備,利用原有路徑試圖進(jìn)行訪問。然而,由于第二主機(jī)和第一存儲設(shè)備并不位于同一站點(diǎn),顯然,這樣的訪問不會獲得成功。這時,就需要更改相關(guān)配置信息,切換存儲設(shè)備,才能使得虛擬機(jī)正常工作。
為了將存儲設(shè)備從第一站點(diǎn)切換到第二站點(diǎn),在本發(fā)明一個實(shí)施例中,對圖I中的鏡像管理裝置20和路徑管理裝置30進(jìn)行配置,使其互相協(xié)作,共同完成存儲設(shè)備的切換。具體地,在一個實(shí)施例中,鏡像管理裝置20通過在現(xiàn)有的鏡像管理裝置,例如IBM的TPC_R(Total Productivity Center for Replication)的基礎(chǔ)上進(jìn)行功能擴(kuò)展而實(shí)現(xiàn)。或者,鏡像管理裝置20也可以完全獨(dú)立于現(xiàn)有鏡像管理裝置而實(shí)現(xiàn)。作為鏡像管理的基本功能,裝置20維持并保存有第一存儲設(shè)備和第二存儲設(shè)備之間的鏡像關(guān)系。為了協(xié)助進(jìn)行存儲數(shù)據(jù)的切換,鏡像管理裝置20進(jìn)ー步配置為圖4所示的結(jié)構(gòu)。圖4示出根據(jù)本發(fā)明一個實(shí)施例的鏡像管理裝置的示意框圖。如圖所示,鏡像管理裝置20包括鏡像修改単元22,配置為響應(yīng)于接收到的第一存儲設(shè)備訪問失敗的失敗報(bào)告,修改第一存儲設(shè)備和第二存儲設(shè)備之間的鏡像方向;以及通知単元24,配置為發(fā)出路徑修改通知,要求更改到第二存儲設(shè)備的路徑設(shè)置。與鏡像管理裝置20相互通信的是路徑管理裝置30。在一個實(shí)施例中,路徑管理裝置30可以基于現(xiàn)有的路徑管理裝置,例如SDD,來進(jìn)行功能擴(kuò)展。SDD(Multipath SubsystemDevice Driver)是ー種支持多路徑(Multipath)配置環(huán)境的工具,提供從主機(jī)到存儲設(shè)備的驅(qū)動和連接。通過SDD,主機(jī)可以通過多個數(shù)據(jù)通道同時訪問同一個邏輯単元LUN?;蛘?,路徑管理裝置30也可以完全獨(dú)立于現(xiàn)有路徑管理裝置而實(shí)現(xiàn)。為了協(xié)助進(jìn)行存儲數(shù)據(jù)的切換,路徑管理裝置30進(jìn)ー步配置為圖5所示的結(jié)構(gòu)。圖5示出根據(jù)本發(fā)明一個實(shí)施例的路徑管理裝置的示意框圖。如圖所示,路徑管理裝置30包括通信単元32,配置為在按照路徑表訪問第一存儲設(shè)備失敗時,發(fā)送訪問失敗報(bào)告,并接收路徑修改通知;以及路徑修改単元34,配置為根據(jù)獲得的路徑修改通知,通過修改路徑表來激活到第二存儲設(shè)備的偽路徑,使得第二存儲設(shè)備能夠被訪問。下面結(jié)合具體例子來描述鏡像管理裝置和路徑管理裝置的具體執(zhí)行方式。圖6示出在ー個具體例子中鏡像管理裝置和路徑管理裝置的交互示意圖。為了對鏡像關(guān)系進(jìn)行記錄和管理,鏡像管理裝置20中可以包含一個鏡像存儲單元(未示出),用于存儲當(dāng)前的鏡像關(guān)系。另ー方面,路徑管理裝置30可以包含一個路徑表維持單元(未示出),用于維持路徑表,路徑表中記錄指向存儲設(shè)備中各個LUN的多個路徑的信息。在圖6的例子中,在第一存儲設(shè)備中包含LUN A,在第二存儲設(shè)備中包含LUN B。假定最初,第一存儲設(shè)備和第二存儲設(shè)備之間還未建立同步鏡像關(guān)系,并且虛擬機(jī)位于第一站點(diǎn)中。這時,由于虛擬機(jī)還未開始遷移,路徑管理裝置30位于第一主機(jī)中。因此,路徑管理裝置30的路徑表中僅記錄有指向本地連接的LUN A的路徑。此時的路徑表如下所示
DEV#: O DEVICE NAME: hdiskO TYPE: 2107900 ALGORITHM: Load Balance SERIAL: 75022812202 * * indicates the volume where I/O routed to
Path# Adapter/Path Name State Mode Select Errors
0vscsiO/pathO OPEN NORMAL 108583 0
1vscsiO/pathl OPEN NORMAL 108267 0 一旦LUN A和LUN B建立了同步鏡像關(guān)系,鏡像管理裝置20中的鏡像存儲單元就會對這樣的信息進(jìn)行記錄。具體地,鏡像管理裝置20會記錄LUN B的信息以及鏡像的方向,例如,LUN A是主邏輯單元,LUN B是備份邏輯單元,如實(shí)線箭頭所示。并且,鏡像管理裝置20會與路徑管理裝置30進(jìn)行通信,通知其鏡像關(guān)系的建立。響應(yīng)于這樣的通知,路徑管理裝置30中的路徑表維持單元在其路徑表中創(chuàng)建出一個“偽路徑”,也就是指向LUN B的路徑。此時的路徑表如下所示
DEVftO DEVICE NAME: hdiskO TYPE: 2107900 ALGORITHM: Load Balance SESSION: newsession
PRIMARY SERIAL: 75022812202 ** indicates the volume where I/O routed to
Path#Adapter/Path NameStateMode Select Errors
0vscsiO/pathOOPENNORMAL 1085830
1vscsi 0/path IOPENNORMAL 1082670SECONDARY SERIAL: 75022811752
Path#Adapter/Path NameStateModeSelect Errors
2vscsi 0/path2CLOSE INACTIVE〇0
3vscsi 0/path3CLOSEINACTIVE00在上述路徑表中,路徑0/1是到LUN A的路徑(序號75022812202),路徑2/3是到LUN B的路徑(序號75022811752)。由于LUN B和LUN A之間的同步鏡像關(guān)系,因此,在一個實(shí)施例中,路徑管理裝置30可以將其分組到一起,識別為磁盤hdiskO。由于當(dāng)前路徑管理裝置30位于第一主機(jī)中,與第一存儲設(shè)備本地連接,因此這吋,LUN A是可以訪問的(狀態(tài)為normal), LUN B不能訪問(狀態(tài)為inactive)。因此,指向LUN B的路徑可以稱為偽路徑。隨著虛擬機(jī)內(nèi)存數(shù)據(jù)的遷移(利用上述的硬件管理裝置),操作系統(tǒng)遷移到第二主機(jī)上。由于路徑管理裝置30安裝在虛擬機(jī)中,因此也隨著操作系統(tǒng)的遷移轉(zhuǎn)移到了第二主機(jī)上。如上所述,此時,當(dāng)?shù)诙鳈C(jī)通過路徑管理裝置30訪問關(guān)聯(lián)的存儲設(shè)備時,會按照上述路徑表將LUN A識別為主邏輯單元。然而,由于LUN A與第二主機(jī)并不是本地連接,這樣的訪問就會失敗。于是,路徑管理裝置30獲得ー個失敗報(bào)告,并通過通信単元32將該LUN A訪問失敗的報(bào)告發(fā)送給鏡像管理裝置20。鏡像管理裝置20接收到LUN A訪問失敗報(bào)告之后,從鏡像存儲單元讀取所維持的與LUN A相關(guān)的鏡像關(guān)系,并通過鏡像修改単元22對其進(jìn)行修改。更具體而言,在所維持的原有鏡像關(guān)系中,LUN A是主邏輯單元,LUN B是備份邏輯單元,數(shù)據(jù)寫入的方向是從LUNA到LUN B。響應(yīng)于對LUN A訪問失敗的報(bào)告,鏡像修改單元22修改鏡像關(guān)系的方向,將LUNB作為主邏輯單元,LUN B作為備份邏輯單元,使得數(shù)據(jù)從LUN B寫入LUN A,如虛線箭 頭所示。并且,鏡像管理裝置20利用通知単元24向路徑管理裝置30發(fā)出路徑修改通知,要求更改到LUN B的路徑設(shè)置。于是,路徑管理裝置30中的通信單元32獲取到路徑修改通知,其中包含與LUN B相關(guān)的信息。根據(jù)該路徑修改通知,路徑修改単元34對原有路徑表進(jìn)行修改,激活到LUN B的偽路徑,使其能夠被訪問。具體而言,路徑修改単元34進(jìn)ー步將路徑表修改為如下的形式
權(quán)利要求
1.一種切換管理設(shè)備,用于在虛擬機(jī)的異步遷移中基于虛擬機(jī)內(nèi)存數(shù)據(jù)的遷移協(xié)助進(jìn)行虛擬機(jī)存儲數(shù)據(jù)的切換,其中所述存儲數(shù)據(jù)的切換是將存儲數(shù)據(jù)從第一站點(diǎn)中的第一存儲設(shè)備切換到第二站點(diǎn)中的第二存儲設(shè)備,其中第一存儲設(shè)備和第二存儲設(shè)備之間建立有同步鏡像關(guān)系,所述切換管理設(shè)備包括 通信單元,配置為在按照路徑表訪問第一存儲設(shè)備失敗時,發(fā)出訪問失敗報(bào)告; 鏡像修改單元,配置為響應(yīng)于所述失敗報(bào)告,修改第一存儲設(shè)備和第二存儲設(shè)備之間的鏡像方向; 通知單元,配置為發(fā)出路徑修改通知,要求更改到第二存儲設(shè)備的路徑設(shè)置; 路徑修改單元,配置為根據(jù)所述路徑修改通知,通過修改路徑表來激活到第二存儲設(shè)備的路徑,使得第二存儲設(shè)備能夠被訪問。
2.根據(jù)權(quán)利要求I的切換管理設(shè)備,還包括鏡像存儲單元,配置為響應(yīng)于所述同步鏡像關(guān)系的建立,存儲所述第一存儲設(shè)備和第二存儲設(shè)備之間的同步鏡像關(guān)系,其中所述第一存儲設(shè)備為主存儲設(shè)備,第二存儲設(shè)備為備份存儲設(shè)備,數(shù)據(jù)從第一存儲設(shè)備寫往第二存儲設(shè)備。
3.根據(jù)權(quán)利要求2的切換管理設(shè)備,其中鏡像修改單元配置為,修改所述同步鏡像關(guān)系中的鏡像方向,使得所述第二存儲設(shè)備成為主存儲設(shè)備,所述第一存儲設(shè)備成為備份存儲設(shè)備,數(shù)據(jù)從第二存儲設(shè)備寫往第一存儲設(shè)備。
4.根據(jù)權(quán)利要求2的切換管理設(shè)備,還包括路徑表維持單元,配置為與所述鏡像存儲單元通信,從而響應(yīng)于同步鏡像關(guān)系的建立,在路徑表中創(chuàng)建到第二存儲設(shè)備的路徑,其中指向第一存儲設(shè)備的路徑被設(shè)定為可用,指向第二存儲設(shè)備的路徑被設(shè)定為不可用。
5.根據(jù)權(quán)利要求4的切換管理設(shè)備,其中所述路徑修改單元配置為,根據(jù)所述路徑修改通知修改所述路徑表,將指向第一存儲設(shè)備的路徑設(shè)定為不可用,將指向第二存儲設(shè)備的路徑設(shè)定為可用。
6.一種硬件管理裝置,用于在虛擬機(jī)的異步遷移中協(xié)助進(jìn)行虛擬機(jī)內(nèi)存數(shù)據(jù)的遷移以作為虛擬機(jī)存儲數(shù)據(jù)切換的基礎(chǔ),其中所述內(nèi)存數(shù)據(jù)的遷移是將內(nèi)存數(shù)據(jù)從第一站點(diǎn)中的第一主機(jī)遷移到第二站點(diǎn)中的第二主機(jī),其中第一站點(diǎn)還包括第一存儲設(shè)備,第二站點(diǎn)還包括第二存儲設(shè)備,所述第一存儲設(shè)備和第二存儲設(shè)備之間建立有同步同步鏡像關(guān)系,所述裝置包括 接收單元,配置為接收遷移指令和第二站點(diǎn)的信息; 復(fù)制單元,配置為指示第一主機(jī)將虛擬機(jī)的內(nèi)存數(shù)據(jù)復(fù)制到所述第一存儲設(shè)備中的子邏輯單元,所述子邏輯單元在所述第二存儲設(shè)備中存在鏡像邏輯單元; 通知單元,配置為根據(jù)所述第二站點(diǎn)的信息發(fā)出通知,所述通知用于指示第二主機(jī)從所述鏡像邏輯單元讀取內(nèi)存數(shù)據(jù)。
7.根據(jù)權(quán)利要求6的硬件管理裝置,其中所述通知單元利用以太網(wǎng)發(fā)出通知,所述同步同步鏡像關(guān)系利用光纖網(wǎng)建立。
8.根據(jù)權(quán)利要求6的硬件管理裝置,其中所述子邏輯單元的大小與所述虛擬機(jī)內(nèi)存大小相當(dāng)。
9.根據(jù)權(quán)利要求6的硬件管理裝置,其中所述復(fù)制單元進(jìn)一步配置為指示第一主機(jī)首先復(fù)制內(nèi)存數(shù)據(jù)中的核心數(shù)據(jù),然后復(fù)制其余的補(bǔ)充數(shù)據(jù)。
10.一種切換管理方法,用于在虛擬機(jī)的異步遷移中基于虛擬機(jī)內(nèi)存數(shù)據(jù)的遷移協(xié)助進(jìn)行虛擬機(jī)存儲數(shù)據(jù)的切換,其中所述存儲數(shù)據(jù)的切換是將存儲數(shù)據(jù)從第一站點(diǎn)中的第一存儲設(shè)備切換到第二站點(diǎn)中的第二存儲設(shè)備,其中第一存儲設(shè)備和第二存儲設(shè)備之間建立有同步同步鏡像關(guān)系,所述方法包括 在按照路徑表訪問第一存儲設(shè)備失敗時,發(fā)出訪問失敗報(bào)告; 響應(yīng)于所述失敗報(bào)告,修改第一存儲設(shè)備和第二存儲設(shè)備之間的鏡像方向; 發(fā)出路徑修改通知,要求更改到第二存儲設(shè)備的路徑設(shè)置; 根據(jù)所述路徑修改通知,通過修改路徑表來激活到第二存儲設(shè)備的路徑,使得第二存儲設(shè)備能夠被訪問。
11.根據(jù)權(quán)利要求10的方法,還包括,響應(yīng)于同步鏡像關(guān)系的建立,存儲所述第一存儲設(shè)備和第二存儲設(shè)備之間的同步鏡像關(guān)系,其中所述第一存儲設(shè)備為主存儲設(shè)備,第二存儲設(shè)備為備份存儲設(shè)備,數(shù)據(jù)從第一存儲設(shè)備寫往第二存儲設(shè)備。
12.根據(jù)權(quán)利要求11的方法,其中修改第一存儲設(shè)備和第二存儲設(shè)備之間的鏡像方向包括,修改所述同步鏡像關(guān)系中的鏡像方向,使得所述第二存儲設(shè)備成為主存儲設(shè)備,所述第一存儲設(shè)備成為備份存儲設(shè)備,數(shù)據(jù)從第二存儲設(shè)備寫往第一存儲設(shè)備。
13.根據(jù)權(quán)利要求11的方法,還包括,響應(yīng)于同步鏡像關(guān)系的建立,在路徑表中創(chuàng)建到第二存儲設(shè)備的路徑,其中指向第一存儲設(shè)備的路徑被設(shè)定為可用,指向第二存儲設(shè)備的路徑被設(shè)定為不可用。
14.根據(jù)權(quán)利要求13的方法,其中所述修改路徑表包括,將指向第一存儲設(shè)備的路徑設(shè)定為不可用,將指向第二存儲設(shè)備的路徑設(shè)定為可用。
15.一種硬件管理方法,用于在虛擬機(jī)的異步遷移中協(xié)助進(jìn)行虛擬機(jī)內(nèi)存數(shù)據(jù)的遷移以作為虛擬機(jī)存儲數(shù)據(jù)切換的基礎(chǔ),其中所述內(nèi)存數(shù)據(jù)的遷移是將內(nèi)存數(shù)據(jù)從第一站點(diǎn)中的第一主機(jī)遷移到第二站點(diǎn)中的第二主機(jī),其中第一站點(diǎn)還包括第一存儲設(shè)備,第二站點(diǎn)還包括第二存儲設(shè)備,所述第一存儲設(shè)備和第二存儲設(shè)備之間建立有同步同步鏡像關(guān)系,所述方法包括 接收遷移指令和第二站點(diǎn)的信息; 指示第一主機(jī)將虛擬機(jī)的內(nèi)存數(shù)據(jù)復(fù)制到所述第一存儲設(shè)備中的子邏輯單元,所述子邏輯單元在所述第二存儲設(shè)備中存在鏡像邏輯單元; 根據(jù)所述第二站點(diǎn)的信息發(fā)出通知,所述通知用于指示第二主機(jī)從所述鏡像邏輯單元讀取內(nèi)存數(shù)據(jù)。
16.根據(jù)權(quán)利要求15的方法,其中所述通知利用以太網(wǎng)發(fā)出,所述同步同步鏡像關(guān)系利用光纖網(wǎng)建立。
17.根據(jù)權(quán)利要求15的方法,其中所述子邏輯單元的大小與所述虛擬機(jī)內(nèi)存大小相當(dāng)。
18.根據(jù)權(quán)利要求15的方法,其中指示第一主機(jī)將虛擬機(jī)的內(nèi)存數(shù)據(jù)復(fù)制到所述第一存儲設(shè)備中的子邏輯單元包括指示第一主機(jī)首先復(fù)制內(nèi)存數(shù)據(jù)中的核心數(shù)據(jù),然后復(fù)制其余的補(bǔ)充數(shù)據(jù)。
全文摘要
本發(fā)明提供遷移虛擬機(jī)的裝置和方法,其中遷移虛擬機(jī)內(nèi)存數(shù)據(jù)的裝置包括接收單元,用于接收遷移指令和第二站點(diǎn)的信息;復(fù)制單元,用于將內(nèi)存數(shù)據(jù)復(fù)制到第一存儲設(shè)備中的子邏輯單元;通知單元,用于向第二主機(jī)發(fā)出通知,通知其從第二存儲設(shè)備中所述子邏輯單元的鏡像單元讀取數(shù)據(jù)。還提供了協(xié)助切換虛擬機(jī)的存儲數(shù)據(jù)的裝置,通過修改第一存儲設(shè)備和第二存儲設(shè)備之間的鏡像方向,以及修改與第一存儲設(shè)備和第二存儲設(shè)備相關(guān)的路徑表來實(shí)現(xiàn)存儲數(shù)據(jù)的切換。本發(fā)明還提供與上述裝置對應(yīng)的方法。根據(jù)本發(fā)明的裝置和方法,利用同步鏡像方式實(shí)現(xiàn)虛擬機(jī)數(shù)據(jù)的遷移和切換,從而實(shí)時地在不同站點(diǎn)之間遷移虛擬機(jī),而不影響虛擬機(jī)及其應(yīng)用的運(yùn)行。
文檔編號G06F9/455GK102761566SQ20111010477
公開日2012年10月31日 申請日期2011年4月26日 優(yōu)先權(quán)日2011年4月26日
發(fā)明者M·S·弗萊明, 姜鵬, 張昕, 張融 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
青铜峡市| 五峰| 桂林市| 台前县| 耿马| 宝丰县| 镇原县| 运城市| 行唐县| 博乐市| 胶南市| 高陵县| 靖江市| 巫溪县| 康乐县| 南华县| 屏东市| 海安县| 开封市| 自治县| 昌都县| 治多县| 寿宁县| 江口县| 迁安市| 东兰县| 上虞市| 焦作市| 深泽县| 大竹县| 泽州县| 利辛县| 资阳市| 泸西县| 靖西县| 万全县| 宜黄县| 瑞安市| 洮南市| 新余市| 兰溪市|