CN104636183A - CloudStack接管XenServer虚拟机的方法 - Google Patents
CloudStack接管XenServer虚拟机的方法 Download PDFInfo
- 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
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是一个开源的具有高可用性及扩展性的云计算平台。它支持管理大部分主流的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语句。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113886007A (zh) * | 2021-09-18 | 2022-01-04 | 云宏信息科技股份有限公司 | Kvm虚拟化系统配置方法、管理方法、系统及介质 |
Citations (3)
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 | 西安工程大学 | 异构云操作系统的集成与统一调度框架及调度方法 |
-
2014
- 2014-12-30 CN CN201410838401.4A patent/CN104636183A/zh active Pending
Patent Citations (3)
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)
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 |