私有云计算介绍
私有云不是向外部公布云接口来售卖网络容量。而是提供给本地云用户和管理员一个弹性和敏捷私有基础架构,这个基础架构是在管理域运行虚拟化服务的负载。OpenNebula 虚拟基础架构向外部提供给用户和管理员对虚拟机化、网络、镜像和物理资源配置、管理、监控、计费功能 。本手册简单描述了在构建一个云基础架构时,OpenNebula是如何进行操作的。读完该手册后,你也许希望读如下章节 guide describing how a hybrid cloud operates 和 guide describing how a public cloud operates.
用户视角
![image1](http://docs.opennebula.org/4.12/_images/userview.png)
一个OpenNebula 私有云提供给用户一个基础架构:对于快速提交和扩展服务,提供了一个富有弹性的平台,解决了终端用户对服务的动态需求。虚拟机持有服务,虚拟机通过如下任何一种OpenNebula接口来使用Sunstone提交、监控和控制服务。
- Command Line Interface (CLI) 命令行接口
- XML-RPC API
- OpenNebula Ruby and Java Cloud APIs
这里使用一个简单的会话来验证OpenNebula CLI 对私有云计算提供了的功能。第一步查看物理层主机:
$ onehost list ID NAME RVM TCPU FCPU ACPU TMEM FMEM AMEM STAT 0 host01 0 800 800 800 16G 16G 16G on 1 host02 0 800 800 800 16G 16G 16G on
之后,我们可以通过使用oneimage在OpenNebula 中注册一个镜像。这里我们将构建一个镜像模板 image template 来注册镜像文件。这个镜像文件事先被放到了目录下 /home/cloud/images
。
NAME = Ubuntu
PATH = /home/cloud/images/ubuntu-desktop/disk.0
PUBLIC = YES
DESCRIPTION = "Ubuntu 10.04 desktop for students."
$ oneimage create ubuntu.oneimg
ID: 0
$ oneimage list
ID USER GROUP NAME SIZE TYPE REGTIME PUB PER STAT RVMS
1 oneadmin oneadmin Ubuntu 10G OS 09/29 07:24:35 Yes No rdy 0
这个镜像已经准备好并能被用于虚拟机中。我们需要使用命令onetemplate定义一个虚拟机模板virtual machine template。
NAME = my_vm CPU = 1 MEMORY = 2056 DISK = [ IMAGE_ID = 0 ] DISK = [ type = swap, size = 1024 ] NIC = [ NETWORK_ID = 0 ]
一旦按我们的需求裁剪好后(制定CPU个数、内存区域等),确保虚拟机安装在上面两个主机中的一个。提交虚拟机(假设你当前处于你的home目录文件夹):
$ onetemplate create vm ID: 0 $ onetemplate list ID USER GROUP NAME REGTIME PUB 0 oneadmin oneadmin my_vm 09/29 07:28:41 No
模板列表只是一个定义好的虚拟机。如果想要执行一个实例,需要再次使用onetemplate命令:
$ onetemplate instantiate 1 VM ID: 0
这条命令将返回一个ID,使用这个ID可以唯一标示一台虚拟机用于检测和控制。这里使用命令onevm实现监控:
$ onevm list ID USER GROUP NAME STAT CPU MEM HOSTNAME TIME 0 oneadmin oneadmin one-0 runn 0 0K host01 00 00:00:06
STAT字段描述了虚拟机的状态,如果状态为runn表明虚拟机已经启动并运行。根据我们对镜像的不同设置,我们或许可以看到虚拟机的IP地址。如果可以,我们可以登陆进虚拟机。
为了进行迁移,需要再次使用onevm命令。这里讲虚拟机(VID=0)移动到host02(HID=1):
$ onevm migrate --live 0 1执行该命令会将虚拟机从host01迁移到host02.onevm list 命令将会像如下显示:
$ onevm list ID USER GROUP NAME STAT CPU MEM HOSTNAME TIME 0 oneadmin oneadmin one-0 runn 0 0K host02 00 00:00:48你也可以通过使用 Sunstone提供的图形用户接口(GUI)重新执行该例子。使用GUI将简化典型的管理操作。
下一节:
你现在可以读如下不同的描述:在OpenNebula云上如何定义和管理虚拟资源:
- 虚拟网络
- 虚拟机
- 虚拟机模板
- 虚拟机实例化
你也可以安装OneFlow 来允许用户和管理员使用自动扩展来定义、执行和管理内部相连的虚拟机的多层组合.