OpenStack运维之安装Glance
概述
Glance(OpenStack Image Service)
是为虚拟机提供发现,注册,和下载镜像的服务。Glance 提供了虚拟机镜像的集中存储。通过 Glance 的 RESTful API,可以查询镜像元数据、下载镜像。虚拟机的镜像可以很方便的存储在各种地方,从简单的文件系统到对象存储系统(比如 OpenStack Swift)。
在 Glance 里镜像被当做模板来存储,用于启动新实例。Glance 还可以从正在运行的实例建立快照用于备份虚拟机的状态。
Glance 具体功能如下:
- 提供 RESTful API 让用户能够查询和获取镜像的元数据和镜像本身;
- 支持多种方式存储镜像,包括普通的文件系统、Swift、Ceph 等;
- 对实例执行快照创建新的镜像。
Clance 在整个 OpenStack 架构中的位置如下图:
架构
在 Newton 之前的版本中,Glance 支持两种 RESTful API V1和V2,两者区别为:
- V1只提供了基本的镜像和用户操作功能:镜像创建、删除、下载、列表、详细信息查询、更新,以及镜像租户成员的创建、删除和列表。
- V2除了支持V1的所有功能外,主要是增加了如下功能: ● 镜像 location 的添加、删除和修改等操作; ● metadata namespace 操作; ● 镜像 tag 操作。
- V1 和V2对镜像后端存储的支持是相同的。
V1版本的实现,具有 glance-api 和 glance-registry 两个 WSGI 服务,二者都提供 RESTful API,但需要强调的一点是,glance-registry 提供的 RESTful API 是给 glance-api 使用的,并不开放给外部用户。
1)glance-api glance-api 是系统后台运行的服务进程。 对外提供 RESTful API,响应镜像查询、获取和存储的调用。glance-api 不会真正处理请求。
- 如果是与镜像 metadata(元数据)相关的操作,glance-api 会把请求转发给 glance-registry;
- 如果是与镜像自身存取相关的操作,glance-api 会把请求转发给该 image 的存储后端。
(2)glance-registry glance-registry 是系统后台运行的服务进程。 负责处理和存取镜像的 metadata,例如镜像的大小和类型。
V2版本的实现就是将 glance-registry 集成到了 glance-api 内部,这么做的好处是减少了一个中间的处理环节。V1版本在 Newton 中标注被弃用,目前已经被移除。
Glance 支持多种格式的镜像,包括:
Glance 自己并不存储镜像。 真正的镜像是存放在后端存储中的。Glance 支持多种后端存储,包括:
- A directory on a local file system:这是默认配置,在本地的文件系统里进行保存镜像。
- GridFS:使用MongoDB存储镜像。
- Ceph RBD:使用Ceph的RBD接口存储到Ceph集群中。
- Amazon S3:亚马逊的S3。
- Sheepdog:专为QEMU/KVM提供的一个分布式存储系统。
- OpenStack Block Storage (Cinder)
- OpenStack Object Storage (Swift)
- HTTP:可以使用英特网上的http服务获取镜像。这种方式只能只读。
- VMware ESX/ESXi or vCenter。
具体使用哪种 backend,是在 /etc/glance/glance-api.conf
中配置的。
安装部署
创建glance数据库授权
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '123456';
创建 glance 用户
获得 admin
凭证来获取只有管理员能执行的命令的访问权限:
export OS_USERNAME=admin
export OS_PASSWORD=keystone
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://master01.boysec.cn:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
注意:如果加入到.bashrc
下则不需要再次执行!
创建 glance
用户:
# 非交互式{推荐}密码也是glance
openstack user create --domain default --password glance glance
#交互式
#openstack user create --domain default --password-prompt glance
openstack user create --domain default --password-prompt glance
# 添加 admin 角色到 glance 用户和 service 项目上。
openstack role add --project service --user glance admin
创建glance服务实体
openstack service create --name glance \
--description "OpenStack Image" image
创建镜像服务的 API 端点
# 创建公共接口的端点.
openstack endpoint create --region RegionOne \
image public http://master01.boysec.cn:9292
# 创建内部接口的端点
openstack endpoint create --region RegionOne \
image internal http://master01.boysec.cn:9292
# 创建管理接口的端点
openstack endpoint create --region RegionOne \
image admin http://master01.boysec.cn:9292
安装软件包
yum install openstack-glance
配置glance
[root@master01 ~]# cp /etc/glance/glance-api.conf{,.bak}
[root@master01 ~]# grep -Ev "^$|#" /etc/glance/glance-api.conf.bak >/etc/glance/glance-api.conf
[root@master01 ~]# cat /etc/glance/glance-api.conf
[DEFAULT]
[cinder]
[cors]
[database]
connection = mysql+pymysql://glance:123456@master01.boysec.cn/glance
[file]
[glance.store.http.store]
[glance.store.rbd.store]
[glance.store.sheepdog.store]
[glance.store.swift.store]
[glance.store.vmware_datastore.store]
[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images
[image_format]
[keystone_authtoken]
www_authenticate_uri = http://master01.boysec.cn:5000
auth_url = http://master01.boysec.cn:5000
memcached_servers = master01.boysec.cn:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = glance
[oslo_concurrency]
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_middleware]
[oslo_policy]
[paste_deploy]
flavor = keystone
[profiler]
[store_type_location_strategy]
[task]
[taskflow_executor]
初始化glance数据库
su -s /bin/sh -c "glance-manage db_sync" glance
启动镜像服务设置为开机自动启动
systemctl enable openstack-glance-api.service
systemctl start openstack-glance-api.service
验证
上传镜像
# 下载
wget http://download.cirros-cloud.net/0.5.1/cirros-0.5.1-x86_64-disk.img
# 上传
glance image-create --name "cirros" \
--file cirros-0.5.1-x86_64-disk.img \
--disk-format qcow2 --container-format bare \
--visibility public
# 验证
[root@master01 ~]# glance image-list
+--------------------------------------+--------+
| ID | Name |
+--------------------------------------+--------+
| d4e76622-3d1f-43c7-bf0f-5262cd8a3aec | cirros |
+--------------------------------------+--------+
相关文章
- Centos7 安装配置 PHP7 Nginx 并部署开源后台系统Fasadmin
- 【说站】亲测可用运营版学法减分小程序源码 安装教程
- 4.Redis基础运维之哨兵和集群安装配置
- 运维之LAMP环境安装与配置
- Monocel3简介以及安装
- LabVIEW 2020软件下载和安装教程
- 浏览器判断是否安装APP
- linux安装mysql,远程使用navicat连接
- Java环境安装
- elasticsearch-head可视化工具安装
- docker-compose 安装部署 redis
- 云计算运维一步步编译安装Kubernetes之计算节点安装部署
- 云计算运维一步步编译安装Kubernetes之插件安装
- 云计算运维一步步编译安装Kubernetes之交付dubbo微服务
- linux安装xmind的方法步骤
- 安装 Linux:用APT管理软件包(linux安装apt)
- Linux下安装Python程序与PIP的指南(linuxpythonpip)
- 使用Linux系统安装软件:U盘安装法(linux系统u盘)
- 成功安装红帽Linux系统简易指南(安装红帽linux)
- MySQL安装教程:使用图解指南(mysql安装教程图解)
- 如何在红帽Linux上安装软件?(红帽linux安装软件)
- 教你如何在win xp上成功安装linux系统!(winxp装linux)
- 如何正确安装MySQL并配置设置(mysql下完后)
- Oracle安装是否可以实现覆盖安装(Oracle会覆盖安装吗)
- Redis运维安装提升系统效能(redis运维安装)