Glance是作为OpenStack的虚拟机的Image(镜像)服务, 它提供了一系列的REST API, 用来管理、查询虚拟机的镜像, 它支持多种后端存储介质, 例如用本地文件系统作为介质、Swift(OpenStack Object Storage)作为存储介质或者S3兼容的API作为存储介质。 Glance作为OpenStack的一个核心的系统, 被设计为:

基于组件的架构

高可用

可容错以及从错误中恢复

高度开放的标准和兼容性

镜像格式

Glance支持多种镜像的格式, 下面列出了目前已经支持的镜像格式:

raw – 非结构化的镜像格式

vhd – 一种通用的虚拟机磁盘格式, 可用于Vmware、Xen、Microsoft Virtual PC/Virtual Server/Hyper-V、VirtualBox等。

vmdk – Vmware的虚拟机磁盘格式, 同样也支持多种Hypervisor

vdi – VirtualBox、QEMU等支持的虚拟机磁盘格式

iso – 光盘存档格式

qcow2 – 一种支持QEMU并且可以动态扩展的磁盘格式

aki – Amazon Kernel 镜像

ari – Amazon Ramdisk 镜像

ami – Amazon 虚拟机镜像

镜像容器格式 (或者打包Package的虚拟机磁盘格式)

容器类似一个文件夹, 在Swift中, 它称之为Container(容器), 同样在Glance中支持多种打包的Container格式, 例如:

ovf – 开放式虚拟机磁盘格式, 由Vmware发起, 目前已被多种虚拟化设备支持

bare – 这表示镜像没有container或者元数据

aki – Amazon Kernel 镜像

ari – Amazon Ramdisk 镜像

ami – Amazon 虚拟机镜像

我们既然需要打造一个云计算的平台, 那么镜像服务非常重要, 它可以让我们在众多的已生成好的镜像中选择合适的, 并启动一个虚拟机的实例, 这样就让自动化部署方便了很多, 用过Amazon EC2的朋友一定对此非常了解, 在Amazon EC2中, 有成百上千中镜像可以选择, 一些来自Amazon官方的镜像, 另外一种是来自社区上传的镜像, 我们只需要找到适合自己的, 并且根据这个镜像启动实例就万事大吉了。

准备环境

我们使用一台单独的虚拟机作为Glance的运行环境。

os: ubuntu server 11.10

hostname: os-glance-01

ip address: 10.172.7.85

gateway: 10.172.7.1

role: glance-api glance-registry

安装Glance

先安装必要的软件和Python依赖项

sudo apt-get install build-essential git Python-dev Python-setuptools Python-pip Python-mysqldb

签出代码, 并安装到Python dist package

cd ~

git clone git://github.com/openstack/glance.git

cd glance

sudo pip install -r tools/pip-requires

sudo Python setup.py install

配置数据库

还记得我们在keystone那台机器上配置过一次mysql server吗, 我们需要去那台机器上为glance创建一个数据库来保存镜像的matadata, 我们不需要为每台机器都安装mysql, 所以这里我们就去keystone的那台机器上为glace创建一个数据库

mysql -h 10.172.7.81 -u root -p

create database glance;

grant all on glance.* to ‘glance’@’%’ identified by ‘openstack’;

配置Glance

sudo mkdir /etc/glance

sudo cp ~/glance/etc/* /etc/glance

修改/etc/glance/glance-api.conf

default_store = file 修改为 default_store = swift

swift_store_auth_address = http://10.172.7.81:5000/v2.0/ #这里设置为你的keystone的服务器地址, 最后的 slash (/) 一定要加上

swift_store_auth_version = 2 #这个也非常重要, 不要漏掉, 否则无法通过keystone的认证

swift_store_user = adminTenant:admin #这个是tenantName:userName, 别弄错了哦

swift_store_key = openstack #这个是keystone里admin的密码

#在文件末尾加上

[paste_deploy]

flavor = keystone

修改 /etc/glance/glance-reigstry.conf

sql_connection = mysql://glance:openstack@10.172.7.81/glance #这里指向到你的mysql服务器, 我这里是使用keystone那台服务器的mysql

#在文件末尾加上

[paste_deploy]

flavor = keystone

修改 /etc/glance/glance-api-paste.ini 和 /etc/glance/glance-registry-paste.ini

#找到文件末尾, 修改为下面这样, 注意把ip地址改成你的 keystone服务器地址, 并且设置正确 tenantName user和password

[filter:authtoken]

paste.filter_factory = keystone.middleware.auth_token:filter_factory

service_protocol = http

service_host = 10.172.7.81

service_port = 5000

auth_host = 10.172.7.81

auth_port = 35357

auth_protocol = http

auth_uri = http://10.172.7.81:5000/

admin_tenant_name = adminTenant

admin_user = admin

admin_password = openstack

admin_token = ADMIN

控制Glance服务

通过上面的配置, 我们的glance基本上就安装完成了, 现在我们可以先初始化一下glance的数据库结构

sudo glance-manage db_sync

#刚才可能会报错, 但是忽略它, 不过你要看清楚是否数据库连接设置正确了。

我们可以通过下面的命令启动Glance

sudo glance-control api start

sudo glance-control registry start

向Keystone注册Glance服务

我们现在可以使用glance了吗? 还不行, 我们需要告诉keystone如何找到Glance服务, 回到Keystone那台服务器, 注册的方法和注册Swift相同

keystone service-create –name=Glance –type=image –description=”Glance Image Service”

这里会返回service的id, 或者你可以通过keystone service-list 来查看glance的service id是什么

keystone endpoint-create –service_id =

–region RegionOne

–publicurl http://10.172.7.85:9292/v1

–adminurl http://10.172.7.85:9292/v1

–internalurl http://10.172.7.85:9292/v1

注意换成你的glance service id, 地址换成你的glance服务器的地址.

验证Glance服务

先导入下面的系统环境

export OS_USERNAME=admin

export OS_TENANT_NAME=adminTenant

export OS_PASSWORD=openstack

export OS_AUTH_URL=http://10.172.7.81:5000/v2.0

export OS_REGION_NAME=RegionOne

然后下载一个做好的镜像

cd ~ && mkdir images

cd images

wget http://smoser.brickies.net/ubuntu/ttyLinux-uec/ttyLinux-uec-amd64-12.1_2.6.35-22_1.tar.gz

tar zxvf ttyLinux-uec-amd64-12.1_2.6.35-22_1.tar.gz

解压缩会有3个文件, 然后我们通过

glance add name=”tty-kernel” disk_format=aki container_format=aki

如果没有出错, 应该显示

Uploading image ‘tty-kernel’

=================================================================================================================================================================[100%] 41.8M/s, ETA  0h  0m  0s

Added new image with ID: ccc6dd8e-4f6e-413c-b6ab-3d6f59a0cef6

这就是刚才上传的image id, 然后一次上传

glance add name=”tty-ramdisk” disk_format=ari container_format=ari

记住刚才的id, 我这里是1641812a-93a8-46ae-b986-d51979f60857,

glance add name=”tty-Linux” kernel_id=ccc6dd8e-4f6e-413c-b6ab-3d6f59a0cef6 ramdisk_id=1641812a-93a8-46ae-b986-d51979f60857 disk_format=ami container_format=ami

然后通过

glance index

来查看我们刚才上传的镜像

stephen@os-glance-01:~/images$ glance index

ID                                   Name                           Disk Format          Container Format     Size

———————————— —————————— ——————– ——————– ————–

ec957588-b62c-4bcc-99ef-17876f45a41e tty                            ami                  ami                        25165824

1641812a-93a8-46ae-b986-d51979f60857 tty-ramdisk                    ari                  ari                         5882349

ccc6dd8e-4f6e-413c-b6ab-3d6f59a0cef6 tty-kernel                     aki                  aki                         4404752

至此, Glance服务就已经安装完成了。

总结

Glance由于用到Keystone和Swift, 所以配置上面虽然简单, 但是很容易出错, 我在配置Glance的时候, git里的代码还有Bug, 就是无法使用swift auth version参数, 传递给keystone, 所以一直用v1的验证服务, 导致一直出错, 所以我就通过修改代码的方式, 传递auth version = 1给keystone, 不过好在现在官方的git代码中已经修正了这个问题, 所以, 你应该会比较顺利安装Glance.

由于openstack的代码一直在升级, 可能会有出现各种各样的问题, 我欢迎大家和我交流, 并加入Openstack中国社区,有问题我也会尽量帮忙解答。

glance服务器上传的镜像支持,OpenStack Glance安装配置过程记录相关推荐

  1. 服务器上传虚拟机镜像文件,VMware vSphere Client(Vcenter)上传ISO镜像

    Vcenter server 5.5上传ISO镜像 1.摘要 --- 浏览要上传的硬盘. 2.创建一个文件夹专业门存放ISO镜像. 3.选择上传文件. 4.选择文件上传即可. vSphere Web ...

  2. 从0到1编写个人博客项目使用springboot+vue(前后端分离) 到 购买服务器上传项目 到 GitHub开源项目、此过程下所遇问题及解决方法,至少你帮你少走70%弯路

    个人博客编写 后记 2022.12.2.4 : 30.此项目告一段落. ​ 编撰此博客本意里除去对找工作的帮助.更多地是想帮助未走过的人去探探路.总结经验.少走弯路.知识的宝贵不在于无价.而是无私.天 ...

  3. ftp服务器上传的文件打不开,ftp服务器文件有的上传不了

    ftp服务器文件有的上传不了 内容精选 换一换 为了防止您的主机被勒索病毒侵害,请创建防护策略,将重点防御的文件添加到防护策略的监控路径中,并启动机器学习.机器学习会自动聚类并收集该策略下的所有服务器 ...

  4. 上传的镜像无法用来启动云主机

    2019独角兽企业重金招聘Python工程师标准>>> 背景 Openstack各功能正常,使用其它镜像创建云硬盘并用来启动云主机也正常,但是就是这个镜像有问题. 报错信息 dash ...

  5. 华为云服务器 大文件,云服务器上传大文件

    云服务器上传大文件 内容精选 换一换 本节操作介绍本地MacOS系统主机通过安装"Microsoft Remote Desktop for Mac"工具向Windows云服务器传输 ...

  6. 云服务器上传文件到哪个文件夹,云服务器上传到那个文件夹

    云服务器上传到那个文件夹 内容精选 换一换 Model File:模型文件.单击右侧的文件夹图标,在后台服务器sample所在路径(工程目录/run/out/test_data/model)选择需要转 ...

  7. ubuntu服务器ftp无法上传文件,ubuntu服务器上传文件ftp

    ubuntu服务器上传文件ftp 内容精选 换一换 通过Web浏览器登录主机,提供协同分享.文件传输.文件管理和预置命令等功能.用户在主机上执行的所有操作,被云堡垒机记录并生成审计数据.协同分享指会话 ...

  8. sap服务器文件上传,服务器上传数据sap

    服务器上传数据sap 内容精选 换一换 通常在将数据导入数据库前,即将入库的数据已经在相关主机上了.我们称这种保存着待入库数据的服务器为数据服务器.此时,只需检测以确认数据服务器和GaussDB(DW ...

  9. 云服务器上传文件软件,云服务器上传文件软件

    云服务器上传文件软件 内容精选 换一换 弹性云服务器支持通过内网访问OBS,OBS可供用户存储任意类型的数据.将图片.视频等数据存储至OBS后,在ECS上可以访问OBS,下载桶中的图片或视频等数据.通 ...

最新文章

  1. android studio dump java heap_Android Studio 3.0 Memory Profiler使用
  2. 〖Linux〗Bash快捷键使用
  3. 汽车和山羊问题matlab_关于博弈的山羊与汽车问题
  4. spark streaming kafka Couldn't find leader
  5. 2.3 最佳创新先锋:e代驾副总裁兼CTO于杨
  6. angular 模块构建_通过构建全栈应用程序学习Angular 6
  7. python全局变量怎么删除_python 全局变量怎么改
  8. xendesktop更新计算机,XenApp / XenDesktop 7.6 初体验二 配置计算机目录和交付组
  9. 计算机应用基础ppt百度文库,计算机应用基础课件(最新版).ppt
  10. 整理了100个必备的 Python 函数,值得收藏
  11. 键盘ASCII对照表
  12. 凯恩帝数控系统面板介绍_凯恩帝数控车床操作面板按钮详解
  13. linux命令系列 grep
  14. 什么是 Transactions Paper ?
  15. phpstorm连接mysql
  16. 读完这篇文章,颠覆你之前对硬盘开盘的认知!
  17. 2021-09-13项目部署
  18. HTML+CSS网页设计期末课程大作——校园篮球网页(12页) 关于运动的HTML网页设计-----篮球
  19. 苏享茂事件,公众可以遗忘,但我们不能遗忘!
  20. 二阶系统阶跃响应实验_实验二 二阶系统阶跃响应 -

热门文章

  1. PHP入门指南:简单易学的语法和丰富的调试工具与安全性最佳实践
  2. 日更第11天:Linux常用命令之chmod用法
  3. python字节流处理_Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
  4. 榆熙电商:拼多多补单发货要注意什么?
  5. “该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置“页面中创建关联。”解决方法
  6. 查看linux系统版本centos,CentOS下查看系统版本的4种方法
  7. 从无到有,一步一步实现记事本APP(一)
  8. I2C协议及PCA9685控制芯片
  9. jta mysql_JTA事务
  10. 代理重加密与非对称加密方案对比-NuCypher