如何将新镜像导入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中包含一个用于在打开某个链接时选择Swift(OpenStack对象存储)的下拉菜单。启动Cyberduck,然后点击新建连接工具栏按钮或者选择文件>打开连接。
选择Swift(OpenStack对象存储)并输入以下值:
● Server(服务器):输入已安装的Swift服务器的URL。
● Port(端口):由于用户是通过http进行连接,因此输入443.
● Username(用户名):在冒号后输入账户名称,然后是用户名,例如test:tester。
● Password(密码):根据上一步使用的账户名称及用户名输入对应密码。
图五显示的是一个Cyberduck Swift连接实例。
图五
大家在自己的对象存储系统中完成容器创建之后,就可以通过拖拽的方式将来自桌面的文件拷贝到Cyberduck当中,如图六所示。
图六
到这里,我们已经可以将所有的图片及视频作为内置冗余备份到大规模扩展存储系统当中。