参考文档:

  1. Install-guide:https://docs.openstack.org/install-guide/
  2. OpenStack High Availability Guide:https://docs.openstack.org/ha-guide/index.html
  3. 理解Pacemaker:http://www.cnblogs.com/sammyliu/p/5025362.html
  4. Ceph: http://docs.ceph.com/docs/master/start/intro/

九.Glance集群

1. 创建glance数据库

# 在任意控制节点创建数据库,后台数据自动同步,以controller01节点为例
[root@controller01 ~]# mysql -u root -pmysql_pass MariaDB [(none)]> CREATE DATABASE glance;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance_dbpass';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance_dbpass'; MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

2. 创建glance-api

# 在任意控制节点操作,以controller01节点为例;
# 调用keystone服务需要认证信息,加载环境变量脚本即可
[root@controller01 ~]# . admin-openrc

1)创建service项目

# 创建1个project,glance/nova/neutron等服务加入到此project;
# service项目在”default” domain中
[root@controller01 ~]# openstack project create --domain default --description "Service Project" service

2)创建glance用户

# glance用户在”default” domain中
[root@controller01 ~]# openstack user create --domain default --password=glance_pass glance

3)glance用户赋权

# 为glance用户赋予admin权限
[root@controller01 ~]# openstack role add --project service --user glance admin

4)创建glance服务实体

# 服务实体类型”image”
[root@controller01 ~]# openstack service create --name glance --description "OpenStack Image" image

5)创建glance-api

# 注意--region与初始化admin用户时生成的region一致;
# api地址统一采用vip,如果public/internal/admin分别使用不同的vip,请注意区分;
# 服务类型为image;
# public api
[root@controller01 ~]# openstack endpoint create --region RegionTest image public http://controller:9292

# internal api
[root@controller01 ~]# openstack endpoint create --region RegionTest image internal http://controller:9292

# admin api
[root@controller01 ~]# openstack endpoint create --region RegionTest image admin http://controller:9292

3. 安装glance

# 在全部控制节点安装glance,以controller01节点为例
[root@controller01 ~]# yum install openstack-glance python-glance python-glanceclient -y

4. 配置glance-api.conf

# 在全部控制节点操作,以controller01节点为例;
# 注意”bind_host”参数,根据节点修改;
# 注意glance-api.conf文件的权限:root:glance
[root@controller01 ~]# cp /etc/glance/glance-api.conf /etc/glance/glance-api.conf.bak
[root@controller01 ~]# egrep -v "^$|^#" /etc/glance/glance-api.conf
[DEFAULT]
enable_v1_api = false
bind_host = 172.30.200.31
[cors]
[database]
connection = mysql+pymysql://glance:glance_dbpass@controller/glance
[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
[image_format]
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller01:11211,controller02:11211,controller03:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance_pass
[matchmaker_redis]
[oslo_concurrency]
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_messaging_zmq]
[oslo_middleware]
[oslo_policy]
[paste_deploy]
flavor = keystone
[profiler]
[store_type_location_strategy]
[task]
[taskflow_executor] # 创建镜像存储目录并赋权限;
# /var/lib/glance/images是默认的存储目录
[root@controller01 ~]# mkdir -p /var/lib/glance/images
[root@controller01 ~]# chown glance:nobody /var/lib/glance/images

5. 配置glance-registry.conf(optional)

# 官方文档指出:glance-registry服务与其api在Q版已经弃用,并且在S版时完全删除,本章节可忽略;
# 在全部控制节点操作,以controller01节点为例;
# 注意”bind_host”参数,根据节点修改;
# 注意glance-registry.conf文件的权限:root:glance
[root@controller01 ~]# cp /etc/glance/glance-registry.conf /etc/glance/glance-registry.conf.bak
[root@controller01 ~]# egrep -v "^$|^#" /etc/glance/glance-registry.conf
[DEFAULT]
bind_host = 172.30.200.31
[database]
connection = mysql+pymysql://glance:glance_dbpass@controller/glance
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller01:11211,controller02:11211,controller03:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance_pass
[matchmaker_redis]
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_messaging_zmq]
[oslo_policy]
[paste_deploy]
flavor = keystone
[profiler]

6. 同步glance数据库

# 任意控制节点操作;
# 忽略输出的“deprecated”信息
[root@controller01 ~]# su -s /bin/sh -c "glance-manage db_sync" glance

# 查看验证
[root@controller01 ~]# mysql -h controller01 -uglance -pglance_dbpass -e "use glance;show tables;"

7. 启动服务

# 在全部控制节点操作,以controller01节点为例;
# glance-registry在Q版已弃用;
[root@controller01 ~]# systemctl enable openstack-glance-api.service openstack-glance-registry.service
[root@controller01 ~]# systemctl restart openstack-glance-api.service openstack-glance-registry.service # 查看服务状态
[root@controller01 ~]# systemctl status openstack-glance-api.service openstack-glance-registry.service # 查看端口
[root@controller01 ~]# netstat -tunlp | grep python2

8. 验证

在不启用ceph存储时,通常采用nfs共享存储做image的后端存储,如可将controller01节点的本地存储做共享,controller02/03节点远端挂载即可。

这里后续使用ceph存储,暂时使用本地验证,以controller01节点为例。

1)下载镜像

2)上传镜像

[root@controller01 ~]# . admin-openrc 

# “上传”指将已下载的原始镜像经过一定的格式转换上传到image服务;
# 格式指定为qcow2,bare;设置public权限;
# 镜像生成后,在指定的存储目录下生成以镜像id命名的镜像文件
[root@controller01 ~]# openstack image create "cirros-qcow2" \
--file ~/cirros-0.3.5-x86_64-disk.img \
--disk-format qcow2 --container-format bare \
--public

3)查看镜像

[root@controller01 ~]# openstack image list

9. 设置pcs资源

# 在任意控制节点操作;
# 添加资源openstack-glance-api与openstack-glance-registry
[root@controller01 ~]# pcs resource create openstack-glance-api systemd:openstack-glance-api --clone interleave=true
[root@controller01 ~]# pcs resource create openstack-glance-registry systemd:openstack-glance-registry --clone interleave=true # 查看pcs资源
[root@controller01 ~]# pcs resource

高可用OpenStack(Queen版)集群-5.Glance集群的更多相关文章

  1. openstack高可用集群21-生产环境高可用openstack集群部署记录

    第一篇 集群概述 keepalived + haproxy +Rabbitmq集群+MariaDB Galera高可用集群   部署openstack时使用单个控制节点是非常危险的,这样就意味着单个节 ...

  2. Redis高可用(持久化、主从复制、哨兵、集群)

    Redis高可用(持久化.主从复制.哨兵.集群) 目录 Redis高可用(持久化.主从复制.哨兵.集群) 一.Redis高可用 1. Redis高可用概述 2. Redis高可用策略 二.Redis持 ...

  3. 用Kolla在阿里云部署10节点高可用OpenStack

    为展现 Kolla 的真正实力,我在阿里云使用 Ansible 自动创建 10 台虚机,部署一套多节点高可用 OpenStack 集群! 前言 上次 Kolla 已经表示了要打 10 个的愿望,这次我 ...

  4. 高可用OpenStack(Queen版)集群-1. 集群环境

    参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...

  5. 高可用OpenStack(Queen版)集群-7.Neutron控制/网络节点集群

    参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...

  6. 高可用OpenStack(Queen版)集群-3.高可用配置(pacemaker&haproxy)

    参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...

  7. 高可用OpenStack(Queen版)集群-2.基础服务

    参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...

  8. 高可用OpenStack(Queen版)集群-13.分布式存储Ceph

    参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...

  9. 高可用OpenStack(Queen版)集群-12.Cinder计算节点

    参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...

随机推荐

  1. 【洛谷】【线段树+位运算】P2574 XOR的艺术

    [题目描述:] AKN觉得第一题太水了,不屑于写第一题,所以他又玩起了新的游戏.在游戏中,他发现,这个游戏的伤害计算有一个规律,规律如下 1. 拥有一个伤害串为长度为n的01串. 2. 给定一个范围[ ...

  2. Hadoop学习之路(十七)MapReduce框架Partitoner分区

    Partitioner分区类的作用是什么? 在进行MapReduce计算时,有时候需要把最终的输出数据分到不同的文件中,比如按照省份划分的话,需要把同一省份的数据放到一个文件中:按照性别划分的话,需要 ...

  3. pip问题解决方案

    错误信息:usr/bin/pip: No such file or directory 解决办法(一共四步,按照下面的步骤来从1到4,最后你会发现问题都解决了): 1.which pip /usr/l ...

  4. CentOS中配置xrdp,通过微软远程桌面访问CentOS桌面

    环境:CentOS 6.4 1.安装相关软件 yum groupinstall "Desktop" (已安装桌面的就可以缺略这条命令) yum install xrdp yum i ...

  5. ubuntu下安装eclipse IDE for C/C++ developers

     序 linux的GUI和windos比起来实在逊色,虽然它的终端模式(命令行模式)非常强大.linux发行版ubuntu的GUI相对其他版本要华丽一些,所以最近由redhat转向ubuntu进行li ...

  6. jsonp封装方法二

    前言: 看到玉伯的聊聊jsonp的p,引发了另一种loader方式来跨域的方法,他把它叫做JSONM协议,原理和seajs相似,都是动态加载script,加载完成后执行callback, 同时还不用考 ...

  7. css笔记--用户界面样式

    1.系统字体,系统颜色.根据关键字设置为系统某方面相同的字体和颜色 2.光标:鼠标移入时光标的不同显示方法,有十字键,手型:cursor:pointer;cursor:hand;要按顺序,cursor ...

  8. oracle 数据库更新 新增 修改 删除

    数据增加 INSERT INTO 表名称 [(字段,字段,...)] VALUES (值,值,...) ; 考虑到日后代码的可维护性,一定要使用完整的语法进行数据的增加. 数据修改 UPDATE 表名 ...

  9. ios开发UI篇--UIStepper

    概述 UIStepper用于增加或减少值的控件. 属性和方法 初始化方法 UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMak ...

  10. Linux简介及最常用命令(简单易学,但能解决95%以上的问题)

    转载 longctw 版权声明:只为分享.欢迎转载^V^ https://blog.csdn.net/xulong_08/article/details/81463054 Linux是目前应用最广泛的 ...