创建自定义镜像,并打包上传至OpenStack

成功从列表中查看当前可用的镜像之后,大家可能还希望添加符合自己需要的镜像。要创建自定义镜像,首要要从ISO文件开始。CentOS、Debian、Fedora或者Ubuntu,只要合用,都可以下载对应的ISO文件。 点击此处 获取适合初学者的初始镜像。在这里获取的都是.tar及.gz文件,其中包含虚拟机镜像*.img),一套Xen兼容内核/虚拟磁盘后者由xen-内核/vmlinuz*与xen-内核/initrd*两部分构成)以及一套KVM兼容内核/虚拟磁盘后者由kvm-内核/vmlinuz*与kvm-内核/initrd*两部分构成)。大家可以通过命令行或者使用VirtualBox以及kvm之类的虚拟化平台打造自定义镜像。创建一个.vdi镜像,再利用quemu-utils中的quemu-img工具将其转换为可用格式。

大家可能还希望让镜像变得更大,向其中添加类似Linux标准基础这样的软件包,以使其更适合日常工作中的实际应用。一旦在VirtualBox或者其它任何平台上完成了自定义工作,将最终文件拷贝到安装了euca2ools的Linux计算机中。在文章的下一节中,我将向大家介绍如何将自己的自定义镜像通过命令行中的euca-命令导入OpenStack云中。

如何将新镜像导入OpenStack镜像服务Glance)

当一套自定义虚拟机镜像创建完成,我们可以将磁盘镜像数据及镜像元数据存储在镜像服务中。

这里使用Eucalyptus工具集也是个不错的选择,该工具集是一款作用于云的开源命令行客户端,并且兼容Amazon的EC2 API。安装euca2ools命令行工具并确保自己的环境包含了Eucalyptus运行所必需的认证机制。

上传内核,并注意Amazon内核镜像简称AKI):

euca-bundle-image -i kvm-kernel/vmlinuz-2.6.28-11-generic --kernel true
euca-upload-bundle -b jbbucket -m /tmp/vmlinuz-2.6.28-11-generic.manifest.xml
euca-register jbbucket/vmlinuz-2.6.28-11-generic.manifest.xml

上传虚拟磁盘并注意Amazon虚拟磁盘镜像简称ARI),这样大家就能获得绑定镜像时必需的参考信息:

euca-bundle-image -i kvm-kernel/initrd.img-2.6.28-11-generic --ramdisk true
euca-upload-bundle -b jbbucket -m /tmp/initrd.img-2.6.28-11-generic.manifest.xml
euca-register jbbucket/initrd.img-2.6.28-11-generic.manifest.xml

上传自定义设备镜像,通过在之前步骤中获取到的值指定内核及虚拟磁盘:

euca-bundle-image -i centos-5.5-x86_64.img --kernel aki-XXXXXXXX --ramdisk ari-XXXXXXXX
euca-upload-bundle -b jbbucket -m /tmp/centos-5.5-x86_64.img.manifest.xml
euca-register jbbucket/centos-5.5-x86_64.img.manifest.xml

上传至镜像服务器的过程可能会持续一段时间——但当我们使用Eucalyptus的“describe images”命令时,新的AMI应该显示如下内容。

euca-describe-images
IMAGE    ami-reey5wk5    jbbucket/centos.5-5.x86-64.img.manifest.xml    myproject    available    private        x86_64    machine    ami-f4ks8moj    ami-jqxvgtmd

如何通过UI使用存储对象

大家可能利用REST API来访问自己在OpenStack中的存储对象,但更多的时候,我们只希望能有一套良好的用户界面,以便通过拖拽操作实现文件存储。开源客户端Cyberduck,包括Mac OS X版本以及Windows版本,就针对从FTP到对象存储等一系列机制提供了一套用户界面。由于它的开源及跨平台特性,这款优秀的界面完全可以安装在OpenStack对象存储当中类似于Rackspace云文件)。大家在cyberduck.ch站点下载即可。要实现其在OpenStack中的安装,我们需要变更某个 隐藏的配置选项 。这里需要将URL由default /v1.0修改为/auth/v1.0。要在Mac OS X中修改授权URL,则需要打开终端窗口并输入:

Defaults defaults write ch.sudo.cyberduck cf.authentication.context /auth/v1.0

Cyberduck 3.8.1中包含一个用于在打开某个链接时选择SwiftOpenStack对象存储)的下拉菜单。启动Cyberduck,然后点击新建连接工具栏按钮或者选择文件>打开连接。

选择SwiftOpenStack对象存储)并输入以下值:

  • Server服务器):输入已安装的Swift服务器的URL。
  • Port端口):由于用户是通过http进行连接,因此输入443.
  • Username用户名):在冒号后输入账户名称,然后是用户名,例如test:tester。
  • Password密码):根据上一步使用的账户名称及用户名输入对应密码。

图五显示的是一个Cyberduck Swift连接实例。


图五

大家在自己的对象存储系统中完成容器创建之后,就可以通过拖拽的方式将来自桌面的文件拷贝到Cyberduck当中,如图六所示。


图六

到这里,我们已经可以将所有的图片及视频作为内置冗余备份到大规模扩展存储系统当中。

获取帮助及其它进一步操作

如果大家在安装或测试过程中遇到问题,或者是无法使某些功能正常工作,OpenStack社区能够提供解决方案。Launchpad中的“Answers”主题是寻求帮助的理想所在。

Launchpad解答主题中的部分章节罗列如下:

  • OpenStack Compute
  • OpenStack 对象存储
  • OpenStack 镜像服务

如果还有其它疑问,各位不妨向 https://launchpad.net/~openstack 中的OpenStack邮件列表发送邮件,并在 文档 中留下评论,或者在 #openstack的IRC频道 中与其他共同讨论。

51CTO.com译文,转载请注明原文作译者和出处。】

原文:http://drdobbs.com/web-development/231902601?pgno=1 


相关内容