OpenStack搭建之镜像服务Glance(三)
在Linux
下搭建OpenStack
之镜像服务Glance
一、实验平台:CentOS Linux release 7.3.1611 (Core)
二、openstack版本:Mitake
三、本机所有IP:
内网(OpenStack通信):192.168.1.2 192.168.1.3
外网(与宿主机通信):192.168.2.4 192.168.2.5
四、openstack1:192.168.1.2 #控制节点 1 处理器, 4 GB 内存, 及20 GB 存储
五、openstack2:192.168.1.3 #计算节点 1 处理器, 2 GB 内存, 及20 GB 存储
一、镜像服务概览
OpenStack
镜像服务是IaaS
的核心服务。它接受磁盘镜像或服务器镜像API
请求,和来自终端用户或OpenStack
计算组件的元数据定义。它也支持包括OpenStack
对象存储在内的多种类型仓库上的磁盘镜像或服务器镜像存储。
大量周期性进程运行于OpenStack
镜像服务上以支持缓存。同步复制(Replication)
服务保证集群中的一致性和可用性。其它周期性进程包括auditors
,updaters
,和reapers
。
OpenStack
镜像服务包括以下组件: glance-api
: 接收镜像API的调用,诸如镜像发现、恢复、存储。 glance-registry
存储、处理和恢复镜像的元数据,元数据包括项诸如大小和类型。 glance-registry
是私有内部服务,用于服务OpenStack Image
服务。不要向用户暴露该服务
数据库
存放镜像元数据,用户是可以依据个人喜好选择数据库的,多数的部署使用MySQL
或SQLite
。
镜像文件的存储仓库
支持多种类型的仓库,它们有普通文件系统
、对象存储
、RADOS块设备
、HTTP
、以及亚马逊S3
。记住,其中一些仓库仅支持只读
方式使用。
元数据定义服务
通用的API
,是用于为厂商
,管理员
,服务
,以及用户自定义元数据。这种元数据可用于不同的资源,例如镜像,工件,卷,配额以及集合。一个定义包括了新属性的键,描述,约束以及可以与之关联的资源的类型。
二、安装配置
安装和配置镜像服务之前,你必须创建创建一个数据库、服务凭证和API端点。
创建glance
数据库: mysql -u root -p CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance'; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance';
获得admin
凭证来获取只有管理员能执行的命令的访问权限: . admin-openstack.sh
要创建服务证书:完成以下步骤:
创建glance
用户:
$ openstack user create --domain default --password-prompt glance
User Password: #设置密码,我这里设置为glance
Repeat User Password:
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | 563963f57f154b628814c4e1bc9d2169 |
| enabled | True |
| id | 20bb22b2a5354c09bae0ae62c9e91eed |
| name | glance |
+-----------+----------------------------------+
添加admin
角色到glance
用户和service
项目上。 openstack role add --project service --user glance admin
创建glance
服务实体:
$ openstack service create --name glance --description "OpenStack Image" image
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Image |
| enabled | True |
| id | f78b8a02c3bd4bf48e382a44b1aadccb |
| name | glance |
| type | image |
+-------------+----------------------------------+
创建镜像服务的API
端点:
$ openstack endpoint create --region RegionOne image public http://192.168.1.2:9292
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 8f118e658b3f4b6a87fd23c00ef71943 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | f78b8a02c3bd4bf48e382a44b1aadccb |
| service_name | glance |
| service_type | image |
| url | http://192.168.1.2:9292 |
+--------------+----------------------------------+
$ openstack endpoint create --region RegionOne image internal http://192.168.1.2:9292
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | e90965d9bb10454c82b9767919fac746 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | f78b8a02c3bd4bf48e382a44b1aadccb |
| service_name | glance |
| service_type | image |
| url | http://192.168.1.2:9292 |
+--------------+----------------------------------+
$ openstack endpoint create --region RegionOne image admin http://192.168.1.2:9292
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | c36c34d52a354940ad2459a726057a22 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | f78b8a02c3bd4bf48e382a44b1aadccb |
| service_name | glance |
| service_type | image |
| url | http://192.168.1.2:9292 |
+--------------+----------------------------------+
安装软件包:
$ yum -y install openstack-glance
编辑文件/etc/glance/glance-api.conf
$ vim /etc/glance/glance-api.conf
[database]
connection = mysql+pymysql://glance:glance@192.168.1.2/glance #配置数据库访问
[keystone_authtoken] #配置认证服务访问
auth_uri = http://192.168.1.2:5000
auth_url = http://192.168.1.2:35357
memcached_servers = 192.168.1.2:11211
auth_type = password #验证类型为密码
project_domain_name = default #默认域
user_domain_name = default #用户默认域
project_name = service #项目名称
username = glance #用户
password = glance #密码
[paste_deploy]
flavor = keystone
[glance_store] #配置本地文件系统存储和镜像文件位置
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
编辑文件/etc/glance/glance-registry.conf
设置registry
,和api
的设置基本一样
$ vim /etc/glance/glance-registry.conf
[database]
connection = mysql+pymysql://glance:glance@192.168.1.2/glance #配置数据库访问
[keystone_authtoken] #配置认证服务访问
auth_uri = http://192.168.1.2:5000
auth_url = http://192.168.1.2:35357
memcached_servers = 192.168.1.2:11211
auth_type = password #验证类型为密码
project_domain_name = default #默认域
user_domain_name = default #用户默认域
project_name = service #项目名称
username = glance #用户
password = glance #密码
[paste_deploy]
flavor = keystone
写入镜像服务数据库:
$ su -s /bin/sh -c "glance-manage db_sync" glance
Option "verbose" from group "DEFAULT" is deprecated for removal. Its value may be silently ignored in the future.
/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py:1056: OsloDBDeprecationWarning: EngineFacade is deprecated; please use oslo_db.sqlalchemy.enginefacade
expire_on_commit=expire_on_commit, _conf=conf)
/usr/lib/python2.7/site-packages/pymysql/cursors.py:166: Warning: (1831, u'Duplicate index `ix_image_properties_image_id_name`. This is deprecated and will be disallowed in a future release.')
result = self._query(query)
#替我们去创建表结构,openstack有警告没有关系,只要不是error就可以
同步完数据库之后我们进行检查
mysql -h 192.168.1.2 -u glance -pglance -e "use glance;show tables;"
+----------------------------------+
| Tables_in_glance |
+----------------------------------+
| artifact_blob_locations |
| artifact_blobs |
| artifact_dependencies |
| artifact_properties |
| artifact_tags |
| artifacts |
| image_locations |
| image_members |
| image_properties |
| image_tags |
| images |
| metadef_namespace_resource_types |
| metadef_namespaces |
| metadef_objects |
| metadef_properties |
| metadef_resource_types |
| metadef_tags |
| migrate_version |
| task_info |
| tasks |
+----------------------------------+
启动镜像服务、配置他们随机启动:
$ systemctl enable openstack-glance-api.service openstack-glance-registry.service
$ systemctl start openstack-glance-api.service openstack-glance-registry.service
#glance-api的端口是9292,glance-registry的端口是9191
三、验证
获得admin
凭证来获取只有管理员能执行的命令的访问权限:
$ . admin-openstack.sh
下载源镜像:
$ wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
#如果您的发行版里没有包含wget,请安装它
$ yum -y install wget
创建镜像
$ openstack image create "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --public
+------------------+------------------------------------------------------+
| Field | Value |
+------------------+------------------------------------------------------+
| checksum | ee1eca47dc88f4879d8a229cc70a07c6 |
| container_format | bare |
| created_at | 2017-07-17T08:14:24Z |
| disk_format | qcow2 |
| file | /v2/images/db5d11d7-0006-4b14-a5d5-71b18a41eb85/file |
| id | db5d11d7-0006-4b14-a5d5-71b18a41eb85 |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros |
| owner | db84902f7b1a4553a97684f210395abe |
| protected | False |
| schema | /v2/schemas/image |
| size | 13287936 |
| status | active |
| tags | |
| updated_at | 2017-07-17T08:14:25Z |
| virtual_size | None |
| visibility | public |
+------------------+------------------------------------------------------+
--file #镜像要在当前目录
命令完成后会将镜像存放在/var/lib/glance/images下
$ ls /var/lib/glance/images/
db5d11d7-0006-4b14-a5d5-71b18a41eb85
确认镜像的上传并验证属性:
$ openstack image list
+--------------------------------------+--------+--------+
| ID | Name | Status |
+--------------------------------------+--------+--------+
| db5d11d7-0006-4b14-a5d5-71b18a41eb85 | cirros | active |
+--------------------------------------+--------+--------+
Over~
版权协议须知!
本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
1272 0 2017-01-15
博主卡片
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。
现在时间 2025-01-18
今日天气
随机推荐
站点统计
- 文章总数:241篇
- 分类总数:29个
- 评论总数:14条
- 本站总访问量 365537 次
@svmuvwpuqi 真棒!
@smdxydrauu 博主太厉害了!
@xiaozi 最后的分享的镜像下载地址打不开 服务器没有开机吗?
@yuanyuan 为什么我的4b安装centos7.9 插上tf卡 显示不兼...
@Wong arrhenius 牛比
@MakerFace 厉害了!
@TongSir 老哥 更新下我的友链链接 https://blog.ton...