CN104636183A - CloudStack接管XenServer虚拟机的方法 - Google Patents

CloudStack接管XenServer虚拟机的方法 Download PDF

Info

Publication number
CN104636183A
CN104636183A CN201410838401.4A CN201410838401A CN104636183A CN 104636183 A CN104636183 A CN 104636183A CN 201410838401 A CN201410838401 A CN 201410838401A CN 104636183 A CN104636183 A CN 104636183A
Authority
CN
China
Prior art keywords
virtual machine
cloudstack
xenserver
cloud
sql statement
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN201410838401.4A
Other languages
English (en)
Inventor
冯建建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING SKYCLOUD RONGCHUANG SOFTWARE TECHNOLOGY Co Ltd
Original Assignee
BEIJING SKYCLOUD RONGCHUANG SOFTWARE TECHNOLOGY Co 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 BEIJING SKYCLOUD RONGCHUANG SOFTWARE TECHNOLOGY Co Ltd filed Critical BEIJING SKYCLOUD RONGCHUANG SOFTWARE TECHNOLOGY Co Ltd
Priority to CN201410838401.4A priority Critical patent/CN104636183A/zh
Publication of CN104636183A publication Critical patent/CN104636183A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种CloudStack接管XenServer虚拟机的方法,属于云计算平台管理领域,本发明先获得所有未被CloudStack管理的备选虚拟机;然后根据选中的待接管的虚拟机,生成插入CloudStack数据库所需的SQL语句;最后在CloudStack中执行产生的SQL语句,将待接管业务虚拟机纳入CloudStack管理。本发明能够在保持虚拟机的业务不中断的条件下,将XenServer的原有环境完整纳入CloudStack管理,实现了XenServer环境与CloudStack环境的兼容,能够在CloudStack这个统一平台上对云进行统一管理,有效提高了整个云环境的生产效率。

Description

CloudStack接管XenServer虚拟机的方法
技术领域
本发明属于云计算平台管理领域,特别是涉及一种CloudStack接管XenServer虚拟机的方法。
背景技术
CloudStack是一个开源的具有高可用性及扩展性的云计算平台。它支持管理大部分主流的Hypervisor(即虚拟机管理程序),如KVM,XenServer,VMware,Oracle VM,Xen等。同时CloudStack是一个开源云计算解决方案,可以加速高伸缩性的公共和私有云(IaaS)的部署、管理、配置。以CloudStack作为基础,数据中心操作者可以快速方便的通过现存基础架构创建云服务。
CloudStack形成的基础设施云和数据中心运营商可以快速,轻松地建立在其现有的基础设施提供云服务的需求,弹性云计算服务。
CloudStack用户可以充分利用云计算提供更高的效率,无限的规模和更快地部署新服务和系统的最终用户。它可以帮助用户利用自己的硬件提供类似于Amazon EC2那样的公共云服务。CloudStack可以通过组织和协调用户的虚拟化资源,构建一个和谐的环境。
CloudStack具有许多强大的功能,可以让用户构建一个安全的多租户云计算环境。CloudStack兼容Amazon API接口。CloudStack可以让用户快速和方便地在现有的架构上建立自己的云服务。
CloudStack可以帮助用户更好地协调服务器、存储、网络资源,从而构建一个IaaS平台。同时由于CloudStack采用Apache 2.0开源协议,对商业应用很友好,可以在需要的时候通过修改代码将
CloudStack进行二次开发,然后在进行发布或销售。
XenServer,即Citrix Xenserver,思杰公司出品的基于Linux的虚拟化服务器。Citrix XenServer是一种全面而易于管理的服务器虚拟化平台,基于强大的Xen Hypervisor程序之上。Xen技术被广泛看作是业界最快速、最安全的虚拟化软件。
XenServer是为了高效地管理Windows(R)和Linux(R)虚拟服务器而设计的,可提供经济高效的服务器整合和业务连续性。XenServer是在云计算环境中经过验证的企业级虚拟化平台,可提供创建和管理虚拟基础架构所需的所有功能。它深得很多要求苛刻的企业信赖,被用于运行最关键的应用,而且被最大规模的云计算环境和xSP所采用。2013年6月,思杰公司宣布最新版本的XenServer6.2完全免费开源,更进一步增加了XenServer的受众。
随着云计算平台开源社区的繁荣发展,CloudStack的开源出身和商业化成熟度较高的优势赢得了越来越多的关注,越来越多的企业开始使用CloudStack部署它们自己的IaaS云。同时,在CloudStack早期发展历史上,曾经被Citrix公司收购并继续开发,天生便与XenServer具有良好的兼容性。同时使用CloudStack与XenServer可以产生较高的性价比。但有时候,出于降低成本的考虑,某些企业打算使用CloudStack建设IaaS云,但有受限于已运行业务虚拟机的XenServer环境。如果使用两套环境,容易造成管理混乱。如果将XenServer环境加入到CloudStack中,又会造成业务虚拟机丢失并中断的情况,产生较大经济损失。
使用CloudStack管理已运行业务虚拟机的XenServer主机有以下缺点:
其一、XenServer主机上已运行业务的虚拟机会被CloudStack的虚拟机同步机制删除,造成业务虚拟机中断服务。
其二、CloudStack中添加XenServer主机时,会自动把相应主机同一集群下的所有主机都添加到CloudStack中,间接地将已运行业务虚拟机的主机添加到CloudStack中,造成业务虚拟机丢失的问题。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种能够有效提高整个云环境生产效率的CloudStack接管XenServer虚拟机的方法。
为实现上述目的,本发明提供了一种CloudStack接管XenServer虚拟机的方法,包括以下步骤:
步骤一、获得XenServer主机上的所有虚拟机,通过与CloudStack数据库进行比对获得所有未被CloudStack管理的备选虚拟机;
步骤二、根据选中的待接管的虚拟机,生成插入CloudStack数据库所需的SQL语句;
步骤三、在CloudStack中执行步骤二产生的SQL语句,最终将待接管业务虚拟机纳入CloudStack管理。
采用以上技术方案,本发明提供了CloudStack接管XenServer主机上已运行业务的虚拟机的方法,最终能够在保持虚拟机的业务不中断的条件下,将XenServer的原有环境完整纳入CloudStack管理,实现了XenServer环境与CloudStack环境的兼容,使管理员能够在CloudStack这个统一平台上对云进行统一管理,简化了管理员的操作,降低了管理成本,最终能够有效提高整个云环境的生产效率。
进一步的,所述步骤一之前,还包括修改CloudStack的虚拟机同步机制的步骤:通过修改CloudStack的虚拟机同步机制,对XenServer主机上的虚拟机进行状态同步时,如果虚拟机不受CloudStack管理,不对其进行关机操作,避免误关闭业务虚拟机。
较佳的,所述CloudStack数据库所需的SQL语句包括虚拟机SQL语句、网卡SQL语句和卷SQL语句。
本发明的有益效果是:本发明能够在保持虚拟机的业务不中断的条件下,将XenServer的原有环境完整纳入CloudStack管理,实现了XenServer环境与CloudStack环境的兼容,使管理员能够在CloudStack这个统一平台上对云进行统一管理,简化了管理员的操作,降低了管理成本,最终能够有效提高整个云环境的生产效率。
附图说明
图1是本发明一具体实施方式的流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明:
如图1所示,一种CloudStack接管XenServer虚拟机的方法,包括以下步骤:
步骤一、修改CloudStack的虚拟机同步机制:通过修改CloudStack的虚拟机同步机制,对XenServer主机上的虚拟机进行状态同步时,如果虚拟机不受CloudStack管理,不对其进行关机操作,避免误关闭业务虚拟机。
步骤二、根据XenServer主机信息,获得XenServer主机上的所有虚拟机,通过与CloudStack数据库进行比对获得所有未被CloudStack管理的备选虚拟机,并将这些虚拟机提供给操作者接管;
步骤三、根据选中的待接管的虚拟机,生成插入CloudStack数据库所需的SQL语句;
步骤四、在CloudStack中执行步骤三产生的SQL语句,最终将待接管业务虚拟机纳入CloudStack管理。
本实施例中,所述CloudStack数据库所需的SQL语句包括虚拟机SQL语句、网卡SQL语句和卷SQL语句。
更新CloudStack虚拟机同步机制时,对CloudStack同步XenServer主机上的虚拟机状态的机制进行修改。当CloudStack发现XenServer主机上存在不受CloudStack管理的虚拟机时,不对这些虚拟机进行关机,避免干扰运行业务的虚拟机。
选择待接管虚拟机时,根据操作者提供的XenServer主机的用户名、密码等信息,连接到XenServer主机上,通过XenAPI获得这台主机上的所有虚拟机,并根据虚拟机名称与CloudStack的已有虚拟机的主机名进行比对,获得所有待接管虚拟机。操作者可以选择要接管的虚拟机,并进行到下一步。
根据虚拟机信息生成SQL时,根据操作者选择的虚拟机,以及XenServer主机的用户名、密码等信息,连接到XenServer主机上,然后通过XenAPI获得虚拟机所使用的网络、卷等信息。最终使用这些信息生成插入虚拟机所需的SQL。同时在必须要的时候,还需要根据虚拟机的CPU、内存规格生成相应服务方案SQL,根据虚拟机磁盘的大小生成磁盘方案SQL。然后根据虚拟机的网络和磁盘配置,生成插入虚拟机网卡和卷的SQL。这些SQL语句在CloudStack数据库执行,最终将虚拟机的存储、网络等资源完整接管到CloudStack中。主要涉及到对disk_offering、service_offering、vm_instance、user_vm、nics和volumes等几个数据库表的插入操作同时,需要对user_ip_addres和sequence表进行更新,维护CloudStack中的资源占用状态和数据完整性。当执行上述SQL语句时,如果需要创建新的服务方案、磁盘方案,首先执行对disk_offering、service_offering这两个表的插入,如果不需要,按照vm_instance、user_vm、nics、volumes表的顺序逐个插入。在每次插入vm_instance的一条记录后,都对user_ip_address表和sequence表进行更新。
vm_instance表的插入语句示例如下:
INSERT INTO`vm_instance`(`id`,`name`,`uuid`,`instance_name`,`state`,`vm_template_id`,`guest_os_id`,`private_mac_address`,`private_ip_address`,`pod_id`,`data_center_id`,`host_id`,`last_host_id`,`proxy_id`,`proxy_assign_time`,`vnc_password`,`ha_enabled`,`limit_cpu_use`,`update_count`,`update_time`,`created`,`removed`,`type`,`vm_type`,`account_id`,`domain_id`,`service_offering_id`,`reservation_id`,`hypervisor_type`)VALUES(30,'i-20-30-VM','fcb5b5fa-9ae1-45da-b9fd-895841a8b9d4','i-2-3-VM','Expunging',7,12,'06:51:a8:00:00:1f','192.168.123.219',1,1,NULL,2,2,'2014-10-1711:21:56','F46voDD/c6FD5aMbEVqxuMsqv5L28h4xBupDsmT/Gy8=',0,0,9,'2014-10-2412:01:55','2014-10-1711:08:00',NULL,'User','User',2,1,1,NULL,'XenServer');
user_vm表的插入语句示例如下:
INSERT INTO`user_vm`(`id`,`iso_id`,`display_name`,`user_data`,`update_parameters`)VALUES(30,NULL,'takeover',NULL,1);
nics表的插入语句如下所示:
INSERT INTO`nics`(`id`,`uuid`,`instance_id`,`mac_address`,`ip4_address`,`netmask`,`gateway`,`ip_type`,`broadcast_uri`,`network_id`,`mode`,`state`,`strategy`,`reserver_name`,`reservation_id`,`device_id`,`update_time`,`isolation_uri`,`ip6_address`,`default_nic`,`vm_type`,`created`,`removed`)VALUES(8,'1dce1635-862c-40b4-ae03-e71019ae19d0',3,'06:51:a8:00:00:1f','192.168.123.219','255.255.255.0','192.168.123.254','Ip4','vlan://123',204,'Dhcp','Deallocating','Create','DirectNetworkGuru',NULL,0,'2014-10-2420:01:55','vlan://123',NULL,1,'User','2014-10-1711:08:00',NULL);
volumes表的插入语句如下所示:
INSERT INTO`volumes`(`id`,`account_id`,`domain_id`,`pool_id`,`last_pool_id`,`instance_id`,`device_id`,`name`,`uuid`,`size`,`folder`,`path`,`pod_id`,`data_center_id`,`iscsi_name`,`host_ip`,`volume_type`,`pool_type`,`disk_offering_id`,`template_id`,`first_snapshot_backup_uuid`,`recreatable`,`created`,`attached`,`updated`,`removed`,`state`,`chain_info`,`update_count`)VALUES(3,2,1,200,NULL,3,0,'ROOT-3','c5cb2126-8384-4b32-bc61-be5fd03045d9',2147483648,'/export/primary6.78','ROOT-3',1,1,NULL,NULL,'ROOT','NetworkFilesystem',1,7,NULL,0,'2014-10-1711:08:00',NULL,'2014-10-2412:01:55',NULL,'Ready',NULL,5);
对user_ip_address表的更新语句如下所示:
UPDATE user_ip_address SET account_id=2,domain_id=1,allocated='2014-10-1711:08:00',state="Allocated",network_id=204WHERE public_ip_address='192.168.123.219'and data_center_id=1
对sequence表的更新语句如下所示:
UPDATE sequence SET value=value+1WHEREname='vm_instance_seq'
接管虚拟机到CloudStack时,在CloudStack数据库中执行步骤S4生成的SQL语句,将虚拟机插入到CloudStack中。然后,通过S2步骤中的XenServer主机的用户名、密码等信息连接到XenServer主机上,通过XenAPI将虚拟机的名称更新为CloudStack中的相应主机名,使这个业务虚拟机被CloudStack的同步机制管理起来。
通过上述五个步骤,根据XenServer上已有虚拟机的信息,生成必要的SQL语句,并在CloudStack数据库中执行,最终将XenServer上的已有虚拟机接管到CloudStack中,实现CloudStack对XenServer主机的完整兼容,使管理员能够在一个统一平台上对云环境统一管理,降低了管理成本,简化了管理员的日常工作。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

Claims (3)

1.一种CloudStack接管XenServer虚拟机的方法,其特征在于包括以下步骤:
步骤一、获得XenServer主机上的所有虚拟机,通过与CloudStack数据库进行比对获得所有未被CloudStack管理的备选虚拟机;
步骤二、根据选中的待接管的虚拟机,生成插入CloudStack数据库所需的SQL语句;
步骤三、在CloudStack中执行步骤二产生的SQL语句,最终将待接管业务虚拟机纳入CloudStack管理。
2.如权利要求1所述的CloudStack接管XenServer虚拟机的方法,其特征是:所述步骤一之前,还包括修改CloudStack的虚拟机同步机制的步骤:通过修改CloudStack的虚拟机同步机制,对XenServer主机上的虚拟机进行状态同步时,如果虚拟机不受CloudStack管理,不对其进行关机操作,避免误关闭业务虚拟机。
3.如权利要求1所述的CloudStack接管XenServer虚拟机的方法,其特征是:所述CloudStack数据库所需的SQL语句包括虚拟机SQL语句、网卡SQL语句和卷SQL语句。
CN201410838401.4A 2014-12-30 2014-12-30 CloudStack接管XenServer虚拟机的方法 Pending CN104636183A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410838401.4A CN104636183A (zh) 2014-12-30 2014-12-30 CloudStack接管XenServer虚拟机的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410838401.4A CN104636183A (zh) 2014-12-30 2014-12-30 CloudStack接管XenServer虚拟机的方法

Publications (1)

Publication Number Publication Date
CN104636183A true CN104636183A (zh) 2015-05-20

Family

ID=53214975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410838401.4A Pending CN104636183A (zh) 2014-12-30 2014-12-30 CloudStack接管XenServer虚拟机的方法

Country Status (1)

Country Link
CN (1) CN104636183A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113886007A (zh) * 2021-09-18 2022-01-04 云宏信息科技股份有限公司 Kvm虚拟化系统配置方法、管理方法、系统及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150202A (zh) * 2013-03-15 2013-06-12 汉柏科技有限公司 CloudStack兼容vCenter已有虚拟机的方法
US20140024461A1 (en) * 2012-07-23 2014-01-23 Zynga Inc. Replacing Players on a Collaborative Game Task in an Online Game
CN103593229A (zh) * 2013-11-26 2014-02-19 西安工程大学 异构云操作系统的集成与统一调度框架及调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140024461A1 (en) * 2012-07-23 2014-01-23 Zynga Inc. Replacing Players on a Collaborative Game Task in an Online Game
CN103150202A (zh) * 2013-03-15 2013-06-12 汉柏科技有限公司 CloudStack兼容vCenter已有虚拟机的方法
CN103593229A (zh) * 2013-11-26 2014-02-19 西安工程大学 异构云操作系统的集成与统一调度框架及调度方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113886007A (zh) * 2021-09-18 2022-01-04 云宏信息科技股份有限公司 Kvm虚拟化系统配置方法、管理方法、系统及介质
CN113886007B (zh) * 2021-09-18 2022-03-01 云宏信息科技股份有限公司 Kvm虚拟化系统配置方法、管理方法、系统及介质

Similar Documents

Publication Publication Date Title
US11061712B2 (en) Hot-plugging of virtual functions in a virtualized environment
US9977688B2 (en) Live migration of virtual machines across virtual switches in virtual infrastructure
US10050850B2 (en) Rack awareness data storage in a cluster of host computing devices
US20190171475A1 (en) Automatic network configuration of a pre-configured hyper-converged computing device
US10013291B1 (en) Enhanced software application platform
US10599457B2 (en) Importing and exporting virtual disk images
US9135050B2 (en) Extensible network configuration management
US9015650B2 (en) Unified datacenter storage model
US8255508B2 (en) Administration of virtual machine affinity in a data center
US10061665B2 (en) Preserving management services with self-contained metadata through the disaster recovery life cycle
US10795792B2 (en) Methods, apparatuses and systems for cloud-based disaster recovery test
EP3188008B1 (en) Virtual machine migration method and device
US11102278B2 (en) Method for managing a software-defined data center implementing redundant cloud management stacks with duplicate API calls processed in parallel
US10084652B2 (en) Customizing network configuration of virtual machines using subnet mapping rules
US10367688B2 (en) Discovering changes of network interface controller names
US9547514B2 (en) Maintaining virtual hardware device ID in a virtual machine
CN104484221A (zh) CloudStack接管vCenter已有集群的方法
CN105068899A (zh) 一种Vmware系统下自动重启稳定性测试方法
US10102024B2 (en) System and methods to create virtual machines with affinity rules and services asymmetry
US10334040B2 (en) Sharing information between appliances over a wan via a distributed P2P protocol
CN104636183A (zh) CloudStack接管XenServer虚拟机的方法
Zhang et al. An automatic deployment mechanism on cloud computing platform
US10754676B2 (en) Sharing ownership of an input/output device using a device driver partition

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150520