OpenStack-10-迁移glance镜像服务

(一)需求背景

​ 当openstack管理的计算节点越来越多的时候,控制节点的压力越来越大,由于所有的服务都安装在控制节点,这时候控制节点上的openstack服务随时都团灭的风险。

​ openstack是基于soa架构设计的,我们已经实现了horizon的迁移,接下来,我们实现glance镜像服务的迁移,后面其他的服务都可以迁移,让控制节点只保留一个keystone服务,是soa架构的最佳实践。

本次,我们将glance镜像服务,由控制节点迁移到compute2上。

(二)glance镜像服务迁移的主要步骤

1:停止控制节点上的glance服务
glance-api  glance-registry

2:备份迁移glance数据库

3:在新的节点上安装配置glance

4:迁移原有glance镜像文件

5:修改keystone中glance的api地址

6:修改所有节点nova配置文件中glance的api地址

7:测试,上传镜像,创建实例

(三)操作过程

①控制节点上关闭相关服务:

systemctl stop openstack-glance-api.service openstack-glance-registry.service
systemctl disable openstack-glance-api.service openstack-glance-registry.service

②在控制节点上备份库:

mysqldump -uroot -B glance >glance.sql
scp glance.sql 10.0.0.32:/root

③数据库迁移

在compute2上进行数据库安装:
yum install mariadb-server.x86_64 python2-PyMySQL -y
systemctl start mariadb
systemctl enable mariadb
mysql_secure_installation

#导入glance数据库的备份
mysql < glance.sql
#登录验证
mysql glance -e 'show tabkes;'

#授权
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' 
  IDENTIFIED BY 'GLANCE_DBPASS';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' 
  IDENTIFIED BY 'GLANCE_DBPASS';

④安装glance服务

在compute2上安装glance:
yum install openstack-glance -y

在控制节点上将配置文件发送至compute2上:
[root@controller ~]# scp -rp /etc/glance/glance-api.conf 10.0.0.32:/etc/glance/glance-api.conf
[root@controller ~]# scp -rp /etc/glance/glance-registry.conf 10.0.0.32:/etc/glance/glance-registry.conf

修改配置文件:
#修改连接数据库的信息,只修改[database]下的
connection = mysql+pymysql://glance:GLANCE_DBPASS@10.0.0.32/glance
#若没有openstack-config --set命令,需要安装yum install openstack-utils -y
openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@10.0.0.32/glance
openstack-config --set /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@10.0.0.32/glance

#启动服务,设置自启
systemctl start openstack-glance-api.service openstack-glance-registry.service 
systemctl enable openstack-glance-api.service openstack-glance-registry.service 


⑤迁移镜像

#将控制节点上的镜像文件迁移到新的节点
[root@computer2 glance]# scp -rp 10.0.0.11:/var/lib/glance/images/* /var/lib/glance/images/

#之前的文件目录权限是glance,迁移后恢复下权限
[root@computer2 images]# chown -R glance:glance /var/lib/glance/images/






⑥修改keystone上的glance的api地址

在控制节点上检查:
#发现keystone服务目录里的地址依旧是之前的controller地址,所以需要修改数据里的数据
openstack endpoint list | grep image

查看相关数据库:
msyql keystone:
select * from endpoint
#将keystone库的endpoint表导出
 mysqldump -uroot keystone endpoint >endpoint.sql
cp endpoint.sql /opt/
修改数据库配置文件:
sed -i 's#http://controller:9292#http://10.0.0.32:9292#g' endpoint.sql
或者vim修改,c代表检查,会高亮需要替换的行,Y进行确定
:%s#http://controller:9292#http://10.0.0.32:9292#gc

导入修改好的数据库文件:
[root@controller ~]# mysql keystone < endpoint.sql 
查看glance接口地址:
[root@controller ~]# openstack endpoint list|grep image
#会从keystone查找glance地址,所以有回显就是成功的
[root@controller ~]# openstack image list

⑦修改所有节点nova配置文件里面的glance地址

sed -i 's#http://controller:9292#http://10.0.0.32:9292#g' /etc/nova/nova.conf
grep '9292'  /etc/nova/nova.conf

控制节点重启:
systemctl restart openstack-nova-api.service

计算节点重启:
systemctl restart openstack-nova-compute.service 


⑧验证:上传镜像,然后基于镜像创建实例
1、上传镜像:
项目-镜像-创建镜像(centos-cloud)


image.png

上传后查看服务器上的镜像存储位置:/var/lib/glance/image

2、创建实例:
项目-实例-启用实例


image.png

qemu-img info .. #查看镜像信息

启动实例过程中查看nova中信息:从glance上下载镜像到服务器本地,并进行格式转换。下载后存放的位置:
/var/lib/nova/instance/_base/
以后启动的实例都是基于base目录下的文件做的链接克隆


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。