Xen Cloud Platform 系列:虚拟机创建(二)

但那时非常快乐,你突然到了一个完全自由的地方,无法无天,毫无限制,不用在意那些老掉牙的传统观念。-冯仑

安装好xcp后,可以进入CLI环境,用命令对进行虚拟机的创建和管理。可以参考官方的指导文档。

http://www.xen.org/files/XenCloud/guest.pdf

1. 虚拟机的网络安装

其中有个迅速安装Debian虚拟机的例子,具体的操作过程如下:

1 xe vm-install template=Debian\ Lenny\ 5.0 new-name-label=<lenny-vm> //new-name-label 设置虚拟机的名字,返回虚拟机的uuid
2 xe vm-param-set uuid=<UUID> other-config:install-repository=http://ftp.debian.org/debian //uuid为虚拟机的uuid,other-config,指定 了安装路径 3 xe vm-start uuid=<UUID> //开始启动虚拟机

这个是虚拟机的安装方式之一,网络安装,简洁方便。

我在安装过程中,遇到如下的问题,执行完第三条指令后,返回一个错误结果

1 Error code: INVALID_SOURCE
2 Error parameters: Unable to access a required file in the specifiedrepository:http://ftp.debian.org/dists/lenny/main/installer-i386/current/images/netboot/xen/vmlinuz.,,

参考这个帖子 http://www.gossamer-threads.com/lists/xen/api/247871 还是没有解决问题,依然出现同样的错误,但直接在浏览器中访问这个路径可以正常打开。

 

2.在xcp系统中,虚拟机的创建都是从模板开始的,xcp提供了丰富的模板,从Linux到windows等等操作系统,xcp提供的配置的模板都针对特定的OS做了参数设置,以达到OS最优的性能。当然,这些模板参数也可以通过命令来进行调整。在具体涉及到各个模板参数的修改时,还是通过一个直观的虚拟机实例来了解。前面提到了网络安装,方式就这样,但不知什么原因导致出现上面的问题。现在介绍另一种安装方式。

在xcp上,根据模板,用CLI使用iso文件来安装CentOS5.1 系统。

1.在XCP主机本地上建立一个iso库

1 mkdir -p /var/opt/xen/iso_import //建立目录

2.将CentOS5.1 的iso文件拷贝到刚创建的iso_import目录下。

注意:由于我们是直接将iso文件拷贝到xcp主机上,主机默认的分区方式,只跟/ 目录创建了5G的空间,随便一个iso文件就可能导致主机空间使用完。当然,可以有多种方式解决这个问题,我们可以再相关 目录下挂载一个逻辑卷扩大空间,也可以选择iso库的其他支持方式,这而只选择了最简单的一种。

3.创建一个iso存储库

1 xe sr-create name-label=isoimport type=iso device-config:location=/var/opt/xen/iso_import/ device-config:legacy_mode=true content-type=iso                                     

返回的uuid为:a1491952-932d-a450-52d4-472266c69572

其中sr指的存储库,xcp的存储概念会后续谈到。该命令返回这个sr的uuid号。

 4.扫描下该sr库

1 xe sr-scan uuid=a1491952-932d-a450-52d4-472266c69572 //UUID是上条命令返回的结果

5.确认下是不是能找到加入的iso文件

1 xe cd-list

结果如下:

其中name-label 为 CentOS-5.1-x86_64-bin-DVD.iso 就是刚才拷贝进来的。

6.开始虚拟机的安装了,创建虚拟机

1 xe vm-install template=CentOS\ 5\ \(64-bit\) new-name-label=CentOSVM

返回的UUID为:11502db4-a460-9526-8397-32ea95e7ebfd

其中template_name为系统中存在的一个模板,该命令返回虚拟机的uuid

7.找到刚创建的虚拟机根磁盘的UUID

1 xe vbd-list vm-uuid=11502db4-a460-9526-8397-32ea95e7ebfd userdevice=0 params=uuid --minimal

 该命令返回根磁盘的UUID号:a06d6f53-06a4-5abb-ad00-9966309e884b

8.使用返回的 UUID,将根磁盘设置为不可引导:

1 xe vbd-param-set uuida06d6f53-06a4-5abb-ad00-9966309e884b bootable=false

9.然后,向该虚拟机添加cd-rom  

1 xe vm-cd-add vm=CentOSVM cd-name=CentOS-5.1-x86_64-bin-DVD.iso device=3

其中vm为虚拟机的名称,cd-name为之前使用xe cd-list显示的cd-name

10.获取与新虚拟 CD 驱动器对应的 VBD 的 UUID

1 xe vbd-list vm-uuid=11502db4-a460-9526-8397-32ea95e7ebfd type=CD params=uuid --minimal

返回的UUID:f723fa57-2061-4bf8-1dc0-d0021eb75ef9

11.然后把cdrom设置为启动的

1 xe vbd-param-set uuid=f723fa57-2061-4bf8-1dc0-d0021eb75ef9 bootable=true

12.配置vm,使其从cd启动

1 xe vm-param-set uuid=11502db4-a460-9526-8397-32ea95e7ebfd other-config:install-repository=cdrom

13.为该虚拟机配置网络

1 xe vif-create vm-uuid=11502db4-a460-9526-8397-32ea95e7ebfd network-uuid=7f0ab74c-bfb0-26be-72dc-c3565c9bf4ca mac=random device=0

其中network-uuid可以通过下面的命令查看到:

xe network-list

会返回如下的结果:

xenbr0对应网卡eth0,xenbr1对应网卡eth1.

我们可以选择为该vm创建的虚拟网卡连接到具体的物理网卡上。如果缺少这一步,安装好系统后,便会发现系统没有网卡,不能上网。

14.启动虚拟机

1 xe vm-start uuid=11502db4-a460-9526-8397-32ea95e7ebfd

至此,虚拟机正式启动,就如安装一个普通的linux系统一样。

 

 

posted @ 2012-06-30 15:19  臭蛋  阅读(2629)  评论(1编辑  收藏  举报