TW201732628A - 虛擬機器部署方法及裝置 - Google Patents

虛擬機器部署方法及裝置 Download PDF

Info

Publication number
TW201732628A
TW201732628A TW106102679A TW106102679A TW201732628A TW 201732628 A TW201732628 A TW 201732628A TW 106102679 A TW106102679 A TW 106102679A TW 106102679 A TW106102679 A TW 106102679A TW 201732628 A TW201732628 A TW 201732628A
Authority
TW
Taiwan
Prior art keywords
virtual machine
node
data
machine
fragmentation
Prior art date
Application number
TW106102679A
Other languages
English (en)
Inventor
Ji-Rong Yang
Original Assignee
Alibaba Group Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Services Ltd filed Critical Alibaba Group Services Ltd
Publication of TW201732628A publication Critical patent/TW201732628A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明提供了一種虛擬機器部署方法及裝置,透過對待處理資料進行打散分片獲取分片節點,依據分片節點的資料量為分片節點分配目標虛擬機器,將分片節點部署到目標虛擬機器上。本實施例中分片節點分配虛擬機器時先透過資料打散的方式來控制分片節點的資料量,再按照實際的資料量為與該資料量相匹配的虛擬機器,從而可以避免虛擬機器出現超載的現象,更好地實現了負載均衡。

Description

虛擬機器部署方法及裝置
本發明屬於電腦技術領域,尤其關於一種虛擬機器部署方法及裝置。
在互聯網高速發展的今天,雲計算採用創新的計算模式使使用者透過互聯網隨時獲得近乎無限的計算能力和豐富多樣的資訊服務。雲計算融合了以虛擬化技術,借助虛擬化技術的伸縮性和靈活性,提高了資源利用率,節省了成本。具體地,一台實體的物理機共計32核,可以分配出30個虛擬機器(Virtual Machine,簡稱VM),每個VM需要4個核,此時該物理機虛擬出30個虛擬機器,理論上需要120個核,但是實際上物理機只有32核。實際應用中所有業務不會同時處於滿負荷狀態,為了節省成本,提高資源利用率,雲計算中共用處於低負荷狀態的核,以完成單台物理機虛擬出30個虛擬機器的目的。
透過上述虛擬方式進行虛擬化,大量資料可能會出現共用一個虛擬機器的狀況,就導致該虛擬機器的負載壓力過大的問題。例如在淘寶應用中旗艦店的商品數量往往比 普通店鋪的商品數量高出很多,而且搜索熱度也會比普通店鋪高,當基於上述虛擬方式進行虛擬化時,有可能出現多個旗艦店的商品資料部署到同一個虛擬機器上的情況,在買家基於賣家進行搜索時,就會出現所處虛擬機器負載壓力大的問題。
本發明提供一種虛擬機器部署方法及裝置,用於解決現有虛擬化方式在大量資料部署到同一虛擬機器上時會導致虛擬機器負載壓力過大的問題。
為了實現上述目的,本發明提供了一種虛擬機器部署方法,包括:對待處理資料進行打散分片獲取分片節點;依據所述分片節點的資料量為所述分片節點分配目標虛擬機器;將所述分片節點部署到所述目標虛擬機器上。
為了實現上述目的,本發明提供了一種虛擬機器部署裝置,包括:打散模組,用於對待處理資料進行打散分片獲取分片節點;分配模組,用於依據所述分片節點的資料量為所述分片節點分配目標虛擬機器;部署模組,用於將所述分片節點部署到所述目標虛擬機器上。
本發明的虛擬機器部署方法及裝置,透過對待處理資料進行打散分片獲取分片節點,依據分片節點的資料量為分片節點分配目標虛擬機器,將分片節點部署到目標虛擬機器上。本實施例中分片節點分配虛擬機器時先透過資料打散的方式來控制分片節點的資料量,再分配與該資料量相匹配的虛擬機器,從而可以避免虛擬機器出現超載的現象,更好實現了負載均衡。
11‧‧‧打散模組
12‧‧‧分配模組
13‧‧‧部署模組
20‧‧‧輸入模組
21‧‧‧打散模組
22‧‧‧計算模組
23‧‧‧分配模組
231‧‧‧獲取單元
232‧‧‧選取單元
24‧‧‧部署模組
25‧‧‧備份模組
26‧‧‧判斷模組
圖1為本發明實施例一的虛擬機器部署方法的流程示意圖;圖2為本發明實施例二的虛擬機器部署方法的流程示意圖;圖3為本實施例二中提供的一致性Hash演算法打散資料的示意圖;圖4為本實施例二中提供的資料打散後的結果示意圖;圖5為本實施例二中提供的虛擬機器部署方法的應用示意圖之一;圖6為本實施例二中提供的虛擬機器部署方法的應用示意圖之二;圖7為本發明實施例三的虛擬機器部署裝置的結構示意圖;圖8為本發明實施例四的虛擬機器部署裝置的結構示 意圖。
下面結合附圖對本發明實施例提供的虛擬機器部署方法及裝置進行詳細描述。
實施例一
如圖1所示,其為本發明實施例一的虛擬機器部署方法的流程示意圖,該虛擬機器部署方法包括:
步驟101、對待處理資料進行打散分片獲取分片節點。
實際應用中,為了對資料進行儲存,需要對大資料進行打散分片,將整體的大資料進行分攤儲存,這樣每個儲存資料的設備的資料量相對小一些,降低存放裝置的壓力。
本實施例中,對待處理資料按照預設的打散演算法進行打散分片,獲取到分片節點,其實分片節點就是一個打散後的分片資料。具體地,首先按照待處理資料的資料量大小設定打散的片數,設定完片數後,基於打散演算法將待處理資料進行打散分片。
例如,待處理資料為20億條資料,可以打散成256片,也就是將20億條資料打散成256個分片節點。在淘寶業務的場景下,可以採用Hash演算法對商品資料打散分片,基於打散獲取到的分片節點儲存商品資料。
步驟102、依據所述分片節點的資料量為所述分片節點分配目標虛擬機器。
獲取到各分片節點的資料量是不同的,在獲取到分片節點後,計算每個分片節點的資料量。
在獲取到分片節點的資料量之後,為分片節點分配目標虛擬機器,本實施中,該目標虛擬機器需要具備處理分片節點所包含的資料量的處理能力,其中,處理能力可以用CPU、記憶體和磁片等性能參數中的至少一個進行表徵。
步驟103、將所述分片節點部署到所述目標虛擬機器上。
為分片節點選取出目標虛擬機器後,將分片節點部署到目標虛擬機器上。
本實施例提供的虛擬機器部署方法,透過對待處理資料進行打散分片獲取分片節點,計算分片節點對應的資料量,依據分片節點的資料量為分片節點分配目標虛擬機器,將分片節點部署到目標虛擬機器上。本實施例中分片節點分配虛擬機器時先透過資料打散的方式來控制分片節點的資料量,再分配與該資料量相匹配的虛擬機器,從而可以避免虛擬機器出現超載的現象,更好地實現了負載均衡。
實施例二
如圖2所示,其為本發明實施例二的虛擬機器部署方 法的流程示意圖,該虛擬機器部署方法包括:
步驟201、將所有虛擬機器的性能參數輸入到所述機器池中。
為便於對虛擬機器進行分配,本實施例中將所有VM的性能參數輸入到機器池中,VM的性能參數包括VM的記憶體大小、磁片大小、核數等。
步驟202、對待處理資料進行打散分片獲取分片節點。
步驟203、獲取分片節點的備份資料。
具體地,採用一致性雜湊(Hash)演算法來對待處理資料進行打散分片,首先按照待處理資料的資料量大小設定打散的片數,設定完片數後,基於一致性Hash演算法進行打散分片。為了保證資料的安全性,可以對分片節點進行備份,獲取該分片節點的備份資料。
如圖3所示,其為本實施例二中提供的一致性Hash演算法打散資料的示意圖。一致性Hash演算法具體地將Value映射到一個32位元的鍵(key)值,也即是0~2^32-1次方的數值空間,將這個空間想像成一個首(0)尾(2^32-1)相接的圓環。再將資料映射到具體的節點(node)上,如key%N,key是資料的key,N是節點數。圖3中所示,環上的大圓圈代表一個節點,環上的小圓圈代表節點資料,每個節點下面設置有主資料和備份資料。
例如,有10億條資料需要打散,透過一致性Hash演 算法可以將資料打散成如圖4所示的結果。圖中將10億條資料打散成4片,每個分片對應一個分片節點。為了提高資料的安全性,以及保證服務的延續性,對資料進行備份,每個分片節點下面設置有多份資料,而且分片節點下的多份資料之間為平等關係,也就是說,多份資料之間互為主備份資料。例如,分片節點1下包括資料1~資料4,其中資料1、資料2、資料3以及資料4互為主備份資料。分片節點2下包括資料1~資料2,其中資料1與資料2互為主備份資料。
步驟204、計算分片節點對應的資料量。
具體地,獲取分片節點中一條資料所包含的欄位個數、每個欄位對應的欄位類型以及一條資料所包含的表數目,以及分片節點所包含的詞條數,該詞條數用於指示出分片節點包含多少條資料。進一步地,根據一條資料所包含的欄位個數、每個欄位對應的欄位類型以及所包含的表數目能夠計算出一條資料佔用的位元數。實際中,當獲取到欄位類型後,就可以得到該欄位類型所佔用的位元數,例如,整型資料int佔用4位元(byte);長整型資料(long)佔用4byte;雙整型資料(double)佔用8byte,字串(char)佔用2byte等。進一步地,根據詞條數和分片節點中一條資料所佔用的位元數,計算得到分片節點的資料量。具體地,將詞條數與一條資料所佔用的位元數相乘,得到分片節點的資料量。
步驟205、根據資料量獲取處理分片節點所需的處理 能力。
其中,所述處理能力用CPU、記憶體和磁片性能參數中的至少一個進行表徵。
在搜尋引擎的應用場景下,獲取分片節點的資料量,基於資料量獲取處理分片節點所需的處理能力。基於獲取的一條資料的位元數與預設的搜索特性膨脹係數、合併索引係數,計算該分片節點所需的磁片大小,在計算出所需的磁片大小後,根據該磁片大小可以獲取到分片節點所需的記憶體大小以及所需中央處理器(Central Processing Unit,簡稱CPU)的性能。
實際應用中,在構建索引時索引級數越多,搜索時所需要的時間就會越長,說明搜索難度就會越高,相當於搜索進行了膨脹,本實施例中,預先設置一個搜索特性膨脹係數,該搜索特性膨脹係數可以根據經驗進行設定。在使用Docvalue搜索方式時,磁片和記憶體的搜索膨脹係數分別設置為1.17和0.85。在vsearch中合併索引係數約大於2。
步驟206、從機器池中為分片節點選取性能與所述處理能力匹配的目標虛擬機器。
具體地,根據處理分片節點所需的處理能力,從機器池中選取性能與該處理能力匹配的目標虛擬機器。可選地,根據分片節點所需的處理能力中磁片和記憶體與預設係數,計算出目標虛擬機器對應的磁片和記憶體的大小,例如,將處理能力中磁片和記憶體分別與該預設的係數做 乘法得到目標虛擬機器的磁片和記憶體的大小。例如,分片節點所需的記憶體大小=目標虛擬機器的記憶體*75%,分片節點所需的磁片大小=目標虛擬機器的磁片*75%。從機器池中選取目標虛擬機器的過程中,可以優先從低配機器池中選擇,逐步往高配機器池中選取,以達到使用最佳配置。
下面舉例進行說明:如圖5所示,圖中將20億條資料打散成N片,每個分片對應一個分片節點。當資料未進行備份時,計算出每分片節點對應的資料量,然後根據獲取到資料量能夠得到處理分片節點所需的處理能力,其中,如圖5中所示,處理能力包括處理分片節點所需的磁片大小、所需的記憶體大小以及所需CPU性能等。然後根據該所需的處理能力,從機器池中獲取到與分片節點匹配的目標虛擬機器。圖中包括M個物理機,M個物理機虛擬出N個虛擬機器,其中M<N。物理機1包括虛擬機器1和虛擬機器2,物理機2包括虛擬機器3,物理機3包括虛擬機器4……物理機M包括虛擬機器N。其中,分片節點1部署在虛擬機器1上,分片節點2部署在虛擬機器2上……分片節點N部署在虛擬機器N上。
步驟207、從機器池中為備份資料選取性能與所述處理能力匹配的第一虛擬機器。
本實施例中,為了提高資料的安全性,以及保證服務的延續性,為分片節點進行了備份,在為分片節點分配目標虛擬機器的同時,還需要為分片節點的備份資料分配虛 擬機器。由於備份資料與分片節點中的資料完全一致,在為備份資料分配虛擬機器時,也從機器池中按照分片節點所需的處理能力,選取性能與處理能力匹配的第一虛擬機器作為備份資料對應的虛擬機器。
步驟208、判斷目標虛擬機器與第一虛擬機器是否屬於同一物理機。
在分配虛擬機器時,如果目標虛擬機器和第一虛擬機器屬於同一物理機時,在物理機出現故障無法正常運行時,該分片節點的資料就不能再提供服務。為了避免主備份資料被分配屬於同一物理機的虛擬機器上,本實施例中在獲取到目標虛擬機器和第一虛擬機器後,進一步判斷該目標虛擬機器和第一虛擬機器是否屬於同一物理機。
如果判斷結果為是,執行步驟209;否則,執行步驟210。
步驟209、重新為備份資料從所述機器池中選取與所述處理能力匹配的第一虛擬機器直到目標虛擬機器與第一虛擬機器不屬於同一物理機為止。
如果目標虛擬機器和第一虛擬機器屬於同一個物理機,為了保證當目標虛擬機器所在的物理機出現故障後,備份資料可以繼續提供服務,本實施例中為備份資料重新選取第一虛擬機器,直到選取出的第一虛擬機器和目標虛擬機器不屬於同一物理機上為止。在獲取到與目標虛擬機器不屬於同一物理機的第一虛擬機器後,執行步驟210。
步驟210、將分片節點以及備份資料分別部署到目標 虛擬機器和第一虛擬機器上。
下面舉例進行說明:如圖6所示,圖中將20億條資料打散成N片,每個分片對應一個分片節點。每個分片節點下包括多個備份資料,例如分片節點1包括資料1、備份資料1和備份資料2,分片節點2包括資料1和備份資料1,分片節點3包括資料1和資料備份1……分片節點N包括資料1、備份資料1~備份資料3。圖中包括M個物理機,M個物理機虛擬出N個虛擬機器,其中M<N。物理機1包括虛擬機器1和虛擬機器2,物理機2包括虛擬機器3,物理機3包括虛擬機器4……物理機M包括虛擬機器N。
在對主資料即資料1~資料N部署虛擬機器時,從機器池中獲取到與各主資料匹配的目標虛擬機器。其中,資料1部署在虛擬機器1上,資料2部署在虛擬機器2上……資料N部署在虛擬機器N上。
在對備份資料部署虛擬機器時,分片節點1的備份資料1部署在虛擬機器3上,分片節點2的備份資料1部署在虛擬機器4上,分片節點3的備份資料1部署在虛擬機器1上……分片節點N的備份資料1部署在虛擬機器K上。其中,K小於N。分片節點1的備份資料2部署在虛擬機器4上,……分片節點N的備份資料1部署在虛擬機器I上,其中,I小於N。分片節點N的備份資料3部署在虛擬機器I上,其中,I小於N。
此時,在為備份資料部署虛擬機器時需要考慮備份資 料不能部署在與目標虛擬機器處於同一物理機上的虛擬機器上。
在該示例中,備份資料的數量不能成為限制本發明的條件,備份資料的數量並不進行限定。
本實施例提供的虛擬機器部署方法,透過對待處理資料進行打散分片獲取分片節點,計算分片節點對應的資料量,依據分片節點的資料量為分片節點分配目標虛擬機器,並且為分片節點進行備份,並為備份資料分配第一虛擬機器,當目標虛擬機器與第一虛擬機器不屬於同一物理機時,將分片節點和備份資料分別部署到目標虛擬機器和第一虛擬機器上。本實施例中分片節點分配虛擬機器時先透過資料打散的方式來控制分片節點的資料量,再分配與該資料量相匹配的虛擬機器,從而可以避免虛擬機器出現超載的現象,更好地實現了負載均衡。
實施例三
如圖7所示,其為本發明實施例三的虛擬機器部署裝置的結構示意圖,該虛擬機器部署裝置包括:打散模組11、分配模組12和部署模組13。
其中,打散模組11,用於對待處理資料進行打散分片獲取分片節點。
本實施例中,打散模組11,對待處理資料按照預算的打散演算法進行打散分片,獲取到分片節點,其實分片節點就是一個打散後的分片資料。具體地,首先打散模組 11,按照待處理資料的資料量大小設定打散的片數,設定完片數後,基於打散演算法將待處理資料進行打散分片。
分配模組12,用於依據分片節點的資料量為分片節點分配目標虛擬機器。
獲取到各分片節點的資料量是不同的,在獲取到分片節點後,計算每個分片節點的資料量。在獲取到分片節點的資料量之後,分配模組12為分片節點分配目標虛擬機器,本實施中,該目標虛擬機器需要具備處理分片節點所包含的資料量的處理能力,其中,處理能力可以用CPU、記憶體和磁片等性能參數進行表徵。
部署模組13,用於將分片節點部署到目標虛擬機器上。
本實施例提供的虛擬機器部署裝置,透過對待處理資料進行打散分片獲取分片節點,依據分片節點的資料量為分片節點分配目標虛擬機器,將分片節點部署到目標虛擬機器上。本實施例中分片節點分配虛擬機器時先透過資料打散的方式來控制分片節點的資料量,再分配與該資料量相匹配的虛擬機器,從而可以避免虛擬機器出現超載的現象,更好地實現了負載均衡。
實施例四
如圖8所示,其為本發明實施例四的虛擬機器部署裝置的結構示意圖,該虛擬機器部署裝置包括:輸入模組20、打散模組21、計算模組22、分配模組23、部署模組 24、備份模組25和判斷模組26。
其中,輸入模組20,用於在打散模組對待處理資料進行打散分片獲取分片節點之前,將所有虛擬機器的性能參數輸入到機器池中。
進一步地,打散模組21,用於對待處理資料進行打散分片獲取分片節點。
進一步地,計算模組22,用於計算分片節點對應的資料量。
其中,計算模組22,具體用於獲取分片節點所包含的詞條數,以及獲取分片節點中一條資料所佔用的位元數,根據詞條數和一條資料所佔用的位元數計算得到資料量。
進一步地,分配模組23,用於依據分片節點的資料量為分片節點分配目標虛擬機器。
本實施例中提供了一種分配模組23可選的結構方式,包括:獲取單元231和選取單元232。
獲取單元231,用於根據資料量獲取處理分片節點所需的處理能力;其中,處理能力用CPU、記憶體和磁片性能參數進行表徵。
其中,獲取單元231,具體用於根據預設的搜索特性膨脹係數、合併搜索係數以及所述資料量計算獲取處分片節點所需的處理能力。將搜索特性膨脹係數與合併搜索係數以及資料量相乘,得到處理該分片節點所需的磁片的大小,根據磁片的大小選取相應的記憶體和CPU。
選取單元232,用於從機器池中為分片節點選取性能與處理能力匹配的目標虛擬機器。
進一步地,選取單元232具體用於優先從低配機器池逐步往高配機器池中選取所述目標虛擬機器,以達到使用最優配置。
進一步地,部署模組24,用於將分片節點部署到目標虛擬機器上。
進一步地,備份模組25,用於在計算模組22計算分片節點對應的資料量之前,對分片節點進行備份,獲取分片節點的備份資料。
進一步地,分配模組23,還用於在部署模組24將分片節點部署到目標虛擬機器上之前,從機器池中為備份資料選取性能與處理能力匹配的第一虛擬機器。
進一步地,判斷模組26,用於判斷目標虛擬機器與第一虛擬機器是否屬於同一物理機。
進一步地,分配模組23,還用於在判斷模組26判斷出目標虛擬機器與第一虛擬機器屬於同一物理機時,重新為備份資料從機器池中選取與所述處理能力匹配的第一虛擬機器直到目標虛擬機器與第一虛擬機器不屬於同一物理機為止。
進一步地,部署模組24,還用於在判斷模組判斷出目標虛擬機器與第一虛擬機器不屬於同一物理機時,將備份資料部署到第一虛擬機器上。
本實施例提供的虛擬機器部署裝置,透過對待處理資 料進行打散分片獲取分片節點,計算分片節點對應的資料量,依據分片節點的資料量為分片節點分配目標虛擬機器,並且為分片節點進行備份,並為備份資料分配第一虛擬機器,當目標虛擬機器與第一虛擬機器不屬於同一物理機時,將分片節點和備份資料分別部署到目標虛擬機器和第一虛擬機器上。本實施例中分片節點分配虛擬機器時先透過資料打散的方式來控制分片節點的資料量,再分配與該資料量相匹配的虛擬機器,從而可以避免虛擬機器出現超載的現象,更好地實現了負載均衡。
本領域普通技術人員可以理解:實現上述各方法實施例的全部或部分步驟可以透過程式指令相關的硬體來完成。前述的程式可以儲存於一電腦可讀取儲存媒體中。該程式在執行時,執行包括上述各方法實施例的步驟;而前述的儲存媒體包括:ROM、RAM、磁碟或者光碟等各種可以儲存程式碼的媒體。
最後應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的範圍。

Claims (18)

  1. 一種虛擬機器部署方法,其特徵在於,包括:對待處理資料進行打散分片獲取分片節點;依據該分片節點的資料量為該分片節點分配目標虛擬機器;將該分片節點部署到該目標虛擬機器上。
  2. 根據申請專利範圍第1項所述的虛擬機器部署方法,其中,所述依據分片節點的資料量為該分片節點分配虛擬機器,包括:根據該資料量獲取處理該分片節點所需的處理能力;其中,該處理能力用CPU、記憶體和磁片性能參數中的至少一個進行表徵;從機器池中為該分片節點選取性能與該處理能力匹配的目標虛擬機器。
  3. 根據申請專利範圍第2項所述的虛擬機器部署方法,其中,所述從機器池中為該分片節點選取性能與該處理能力匹配的目標虛擬機器,包括:優先從低配機器池逐步往高配機器池中選取該目標虛擬機器,以達到使用最優配置。
  4. 根據申請專利範圍第3項所述的虛擬機器部署方法,其中,所述計算該分片節點對應的資料量之前,還包括:獲取該分片節點的備份資料。
  5. 根據申請專利範圍第4項所述的虛擬機器部署方 法,其中,所述將該分片節點儲存到該目標虛擬機器上之前,還包括:從該機器池中為該備份資料選取性能與該處理能力匹配的第一虛擬機器;判斷該目標虛擬機器與該第一虛擬機器是否屬於同一物理機;如果判斷結果為是,重新為該備份資料從該機器池中選取與該處理能力匹配的該第一虛擬機器直到該目標虛擬機器與該第一虛擬機器不屬於同一物理機為止;如果判斷結果為否,將該備份資料部署到該第一虛擬機器上。
  6. 根據申請專利範圍第5項所述的虛擬機器部署方法,其中,所述依據該分片節點的資料量為該分片節點分配目標虛擬機器之前,還包括:計算該分片節點對應的資料量。
  7. 根據申請專利範圍第6項所述的虛擬機器部署方法,其中,所述計算該分片節點對應的資料量,包括:獲取該分片節點所包含的詞條數;獲取該分片節點中一條資料所佔用的位元數;根據該詞條數和一條資料所佔用的位元數計算得到該資料量。
  8. 根據申請專利範圍第7項所述的虛擬機器部署方法,其中,所述根據該資料量獲取處理該分片節點所需的處理能力,包括: 根據預設的搜索特性膨脹係數、合併搜索係數以及該資料量計算獲取該處理能力。
  9. 根據申請專利範圍第1至8項中任一項所述的虛擬機器部署方法,其中,該對待處理資料進行打散分片獲取分片節點之前,還包括:將所有虛擬機器的性能參數輸入到機器池中。
  10. 一種虛擬機器部署裝置,其特徵在於,包括:打散模組,用於對待處理資料進行打散分片獲取分片節點;分配模組,用於依據該分片節點的資料量為該分片節點分配目標虛擬機器;部署模組,用於將該分片節點部署到該目標虛擬機器上。
  11. 根據申請專利範圍第10項所述的虛擬機器部署裝置,其中,該分配模組包括:獲取單元和選取單元;該獲取單元,用於根據該資料量獲取處理該分片節點所需的處理能力;其中,該處理能力用CPU、記憶體和磁片性能參數中的至少一個進行表徵;該選取單元,用於從機器池中為該分片節點選取性能與該處理能力匹配的目標虛擬機器。
  12. 根據申請專利範圍第11項所述的虛擬機器部署裝置,其中,該選取單元,具體用於優先從低配機器池逐步往高配機器池中選取該目標虛擬機器,以達到使用最優配置。
  13. 根據申請專利範圍第12項所述的虛擬機器部署裝置,其中,還包括:備份模組,用於在所述計算模組計算該分片節點對應的資料量之前,獲取所述分片節點的備份資料。
  14. 根據申請專利範圍第13項所述的虛擬機器部署裝置,其中,還包括:判斷模組;所述分配模組,還用於在該部署模組將該分片節點部署到該目標虛擬機器上之前,從該機器池中為該備份資料選取性能與該處理能力匹配的第一虛擬機器,以及在該判斷模組判斷出該目標虛擬機器與該第一虛擬機器屬於同一物理機時,重新為該備份資料從該機器池中選取與該處理能力匹配的該第一虛擬機器直到該目標虛擬機器與該第一虛擬機器不屬於同一物理機為止;該判斷模組,用於判斷該目標虛擬機器與該第一虛擬機器是否屬於同一物理機;該部署模組,還用於在該判斷模組判斷出該目標虛擬機器與該第一虛擬機器不屬於同一物理機時,將該備份資料部署到該第一虛擬機器上。
  15. 根據申請專利範圍第14項所述的虛擬機器部署裝置,其中,還包括:計算模組,用於計算該分片節點對應的資料量。
  16. 根據申請專利範圍第15項所述的虛擬機器部署裝置,其中,該計算模組,具體用於獲取該分片節點所包含的詞條數,以及獲取該分片節點中一條資料所佔用的位 元數,根據該詞條數和一條資料所佔用的位元數計算得到該資料量。
  17. 根據申請專利範圍第16項所述的虛擬機器部署裝置,其中,該獲取單元,具體用於根據預設的搜索特性膨脹係數、合併搜索係數以及該資料量計算獲取該處理能力。
  18. 根據申請專利範圍第10至17項中任一項所述的虛擬機器部署裝置,其中,還包括:輸入模組,用於在該打散模組對待處理資料進行打散分片獲取分片節點之前,將所有虛擬機器的性能參數輸入到機器池中。
TW106102679A 2016-02-03 2017-01-24 虛擬機器部署方法及裝置 TW201732628A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610077964.5A CN107038059A (zh) 2016-02-03 2016-02-03 虚拟机部署方法及装置

Publications (1)

Publication Number Publication Date
TW201732628A true TW201732628A (zh) 2017-09-16

Family

ID=59499288

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106102679A TW201732628A (zh) 2016-02-03 2017-01-24 虛擬機器部署方法及裝置

Country Status (6)

Country Link
US (1) US10740194B2 (zh)
EP (1) EP3413193A4 (zh)
JP (1) JP2019504420A (zh)
CN (1) CN107038059A (zh)
TW (1) TW201732628A (zh)
WO (1) WO2017133484A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107038059A (zh) 2016-02-03 2017-08-11 阿里巴巴集团控股有限公司 虚拟机部署方法及装置
CN109741179B (zh) * 2018-12-25 2022-07-08 北京字节跳动网络技术有限公司 全档位行情数据实时计算方法及装置
CN110505276B (zh) * 2019-07-17 2022-05-06 北京三快在线科技有限公司 对象匹配方法、装置及系统、电子设备及存储介质
CN110716698B (zh) * 2019-09-30 2022-08-26 新华三大数据技术有限公司 数据分片副本部署方法及装置
CN114443057B (zh) * 2022-01-25 2023-03-24 北京百度网讯科技有限公司 对话模型的部署和对话方法、装置、电子设备及存储介质
CN115996228B (zh) * 2023-03-22 2023-05-30 睿至科技集团有限公司 一种基于物联网的能源数据的处理方法及其系统
CN116028930B (zh) * 2023-03-28 2023-08-01 睿至科技集团有限公司 一种物联网中能源数据的防御检测方法及其系统
CN116185571B (zh) * 2023-04-20 2023-07-21 深圳市科力锐科技有限公司 数据迁移方法、设备、存储介质及装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5246388B2 (ja) * 2007-03-08 2013-07-24 日本電気株式会社 仮想装置構成システム、及びその方法
US20120054739A1 (en) * 2010-08-27 2012-03-01 Hitachi, Ltd. Method and apparatus for deployment of storage functions on computers having virtual machines
JP5637791B2 (ja) * 2010-09-30 2014-12-10 株式会社日立製作所 計算機システム及びそのデータ処理方法
CN102479217B (zh) * 2010-11-23 2015-07-15 腾讯科技(深圳)有限公司 一种分布式数据仓库中实现计算均衡的方法及装置
US8548790B2 (en) * 2011-01-07 2013-10-01 International Business Machines Corporation Rapidly determining fragmentation in computing environments
CN102662760A (zh) * 2012-03-22 2012-09-12 北京邮电大学 一种基于虚拟机性能向量的任务调度方法
CN103379114B (zh) * 2012-04-28 2016-12-14 国际商业机器公司 用于在MapReduce系统中保护隐私数据的方法和装置
US8972986B2 (en) * 2012-05-25 2015-03-03 International Business Machines Corporation Locality-aware resource allocation for cloud computing
CN102981910B (zh) * 2012-11-02 2016-08-10 曙光云计算技术有限公司 虚拟机调度的实现方法和装置
CN103810058B (zh) * 2012-11-12 2017-02-22 华为技术有限公司 虚拟机备份方法、设备及系统
CN103036949B (zh) * 2012-11-27 2015-06-17 华中科技大学 一种虚拟化环境下Cassandra系统的优化方法和系统
CN102981890B (zh) * 2012-11-30 2015-10-28 华南理工大学 一种在虚拟化数据中心内的计算任务及虚拟机部署方法
US9898339B2 (en) * 2013-03-12 2018-02-20 Itron, Inc. Meter reading data validation
WO2014140697A1 (en) * 2013-03-15 2014-09-18 Aselsan Elektronik Sanayi Ve Ticaret Anonim Sirketi A method for data partitioning and assignment
US9332071B2 (en) * 2013-05-06 2016-05-03 Microsoft Technology Licensing, Llc Data stage-in for network nodes
CN104516773B (zh) * 2013-09-29 2018-04-20 国际商业机器公司 用于物理机的数据分配方法和数据分配装置
US9489225B2 (en) * 2014-01-15 2016-11-08 Cisco Technology, Inc. Allocating resources for multi-phase, distributed computing jobs
US20150220442A1 (en) * 2014-02-04 2015-08-06 Bluedata Software, Inc. Prioritizing shared memory based on quality of service
CN103970612A (zh) * 2014-05-07 2014-08-06 田文洪 一种基于虚拟机预分割的负载均衡方法和装置
US9959142B2 (en) * 2014-06-17 2018-05-01 Mediatek Inc. Dynamic task scheduling method for dispatching sub-tasks to computing devices of heterogeneous computing system and related computer readable medium
US10110911B2 (en) * 2014-11-11 2018-10-23 Cisco Technology, Inc. Parallel media encoding
US9990367B2 (en) * 2015-07-27 2018-06-05 Sas Institute Inc. Distributed data set encryption and decryption
CN107430510A (zh) * 2015-12-31 2017-12-01 华为技术有限公司 数据处理方法、装置和系统
JP2017130705A (ja) * 2016-01-18 2017-07-27 日本電気株式会社 データ管理システム、データ管理方法、及び、データ管理プログラム
US11087234B2 (en) * 2016-01-29 2021-08-10 Verizon Media Inc. Method and system for distributed deep machine learning
CN107038059A (zh) 2016-02-03 2017-08-11 阿里巴巴集团控股有限公司 虚拟机部署方法及装置
US10169027B2 (en) * 2016-05-05 2019-01-01 International Business Machines Corporation Upgrade of an operating system of a virtual machine

Also Published As

Publication number Publication date
WO2017133484A1 (zh) 2017-08-10
US20180341559A1 (en) 2018-11-29
JP2019504420A (ja) 2019-02-14
CN107038059A (zh) 2017-08-11
EP3413193A1 (en) 2018-12-12
US10740194B2 (en) 2020-08-11
EP3413193A4 (en) 2019-02-13

Similar Documents

Publication Publication Date Title
TW201732628A (zh) 虛擬機器部署方法及裝置
US10135727B2 (en) Address grouping for distributed service rules
KR101483127B1 (ko) 클라우드 스토리지 시스템에서 리소스를 고려한 자료분배방법 및 장치
US11093159B2 (en) Storage system with storage volume pre-copy functionality for increased efficiency in asynchronous replication
US20190319925A1 (en) Priority allocation for distributed service rules
US10374792B1 (en) Layout-independent cryptographic stamp of a distributed dataset
US10019321B1 (en) Unique identifiers for data replication, migration, failover operations and failback operations
WO2018099299A1 (zh) 一种图数据处理的方法、装置及系统
US9201896B2 (en) Managing distributed storage quotas
US11226905B2 (en) System and method for mapping objects to regions
CN106296530B (zh) 针对非聚合基础设施的信任覆盖
JP2015518997A5 (zh)
EP3005113B1 (en) Improved deployment of virtual machines by means of differencing disks
WO2023040538A1 (zh) 一种数据迁移的方法、装置、设备、介质和计算机产品
Zhang et al. Mvmotion: a metadata based virtual machine migration in cloud
Chhikara et al. An efficient container management scheme for resource-constrained intelligent IoT devices
US20170315928A1 (en) Coarse-grained cache replacement scheme for a cloud-backed deduplication storage system
US20170220284A1 (en) Block-level internal fragmentation reduction using a heuristic-based approach to allocate fine-grained blocks
Abdullah et al. Containers vs virtual machines for auto-scaling multi-tier applications under dynamically increasing workloads
Li et al. Informed live migration strategies of virtual machines for cluster load balancing
Gupta A complete theoretical review on virtual machine migration in cloud environment
Kumar et al. Providing enhanced resource management framework for cloud storage
Bhardwaj et al. Performance evaluation of bandwidth for virtual machine migration in cloud computing
US11704334B2 (en) System and method for hyperconvergence at the datacenter
Fan et al. Load balancing in heterogeneous mapreduce environments