OpenStack Glance安装配置过程记录

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 = <glance-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 < ttylinux-uec-amd64-12.1_2.6.35-22_1-vmlinuz
如果没有出错, 应该显示
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 < ttylinux-uec-amd64-12.1_2.6.35-22_1-loader
记住刚才的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 < ttylinux-uec-amd64-12.1_2.6.35-22_1.img
然后通过
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中国社区,有问题我也会尽量帮忙解答。

原创文章,作者:h,如若转载,请注明出处:http://www.178linux.com/87056

(1)
hh
上一篇 2017-09-14 10:12
下一篇 2017-09-14 13:42

相关推荐

  • yum相关知识及源码编译安装http

    二.源码编译安装http 获得源码,将源码放在/usr/local/src下,并将其解压缩到此目录下 进入解压缩文件下,查看INSTALL文件 文件内容如下 黄色区域即为安装步骤 在当前目录下执行./configure –prefix=/usr/local/appach2 编译  make make install  把目标文…

    系统运维 2016-08-24
  • 文件系统挂载

    挂载: 将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为 卸载: 为解除此关联关系的过程 把设备关联挂载点:mount Point mount 卸载时:可使用设备,也可以使用挂载点 umount mount   umount命令都是临时生效,机器重启后失效 挂载点下原有文件在挂载完成…

    Linux干货 2017-04-30
  • 逻辑卷LVM

    逻辑卷LVM 简介     在实际生产应用中,磁盘的分区的容量是固定不变的,当出现分区容量不足的情况,除了新加磁盘,还有没有其他方法呢?    逻辑卷(LVM)的概念就出现了,全称叫Logical Volume Manager。它的作用是允许对卷进行方便操作的抽象层,包括重新设定…

    Linux干货 2017-08-12
  • 3.26第一篇博客

    1.安装VNC viewer (VNC是一款远程控制软件,即便版本不一样也可以互通) 安装好后,进入界面,可以直接在上方数据栏里输入服务器端的主机名或IP地址,即可建立连接。 二.安装VMware (VMware是一款可以控制和管理虚拟化的IT环境 可以跑各种的操作系统) 1.首先在内网ftp://172.16.0.1/pub/tools找到VMware版本…

    2018-03-26
  • BIND在生产环境中的创建

    一、实验:BIND二级域的搭建(均以yum安装bind),从实验图中可以看出需要五台虚拟机进行测试 一、准备五台虚拟机 二、配置root服务器 1、YUM安装bind的程序 2、配置bind的主配置文件 3、配置区域文件 4、为了实验的方便进行,把防火墙和SElinux关闭,并留意区域文件的属主属组 5、检查named的主配置文件和区域文件是否语法错误,并启…

    Linux干货 2016-10-05
  • 第十周练习-脚本部分

    1、写一个脚本 (1) 能接受四个参数:start, stop, restart, status start: 输出“starting 脚本名 finished.” … (2) 其它任意参数,均报错退出; #!/bin/bash # case $1 in start)     echo&…

    Linux干货 2016-12-31