跳转至

12. 迁移glance镜像服务

背景

# 当openstack管理的计算节点越来越多的时候,控制节点的压力会越来越大。
# 由于所有服务都安装在控制节点,这时候控制节点上的openstack服务随时都有团灭的危险
# openstack是基于soa架构设计的,我们已经实现了horizon的迁移,其他的服务都可以迁移,让控制节点只保留一个keystone服务,这是soa架构的最佳实践!

0. glance镜像服务迁移的主要步骤

## 1.停止控制节点上的glance服务
## 2.备份迁移glance数据库
## 3.在新的节点上安装配置glance
## 4.迁移原有glance镜像文件
## 5.修改keystone中glance的api地址
## 6.修改所有节点nova配置文件中glance的api地址
## 7.测试,上传镜像,创建实例

1.停止控制节点上的glance服务

# controller
systemctl stop openstack-glance-api openstack-glance-registry
systemctl disable openstack-glance-api openstack-glance-registry

2.备份迁移glance数据库

#1.备份数据
mysqldump -uroot -B glance >glance.sql

#2.将备份文件发送到要迁移的节点
scp -rp glance.sql 192.168.178.32:/root

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

1. 安装数据库

#compute2
#1.安装mariadb
yum install mariadb-server.x86_64 python2-PyMySQL -y

systemctl start mariadb
systemctl enable mariadb

#2.配置mariadb安全规则
mysql_secure_installation
#回车+n+y+y+y+y+y

#3.导入数据
mysql<glance.sql

#4.验证
mysql -e "show databases;"
mysql glance -e "show tables;"

2. 安装glance

#1.安装
yum install openstack-glance -y

#2.获取配置文件
#打开controller节点上的配置文件,将内容复制到compute2
#controller
cat /etc/glance/glance-api.conf
#compute2
vim /etc/glance/glance-api.conf
#controller
cat /etc/glance/glance-registry.conf
#compute2
vim /etc/glance/glance-registry.conf



#3.启动服务
systemctl start openstack-glance-api openstack-glance-registry
systemctl enable openstack-glance-api openstack-glance-registry

4.迁移原有glance镜像文件

#compute2
#1.从控制节点拉取镜像文件
scp -rp 192.168.178.11:/var/lib/glance/images/* /var/lib/glance/images

#2.修改镜像文件属主属组
ll /var/lib/glance/images
chown -R glance:glance /var/lib/glance/images
ll /var/lib/glance/images

5.修改keystone中glance的api地址

#controller
#1.查看现在的glance的api
source admin-openrc
openstack endpoint list|grep image

#2.从keystone数据库导出endpoint表
mysqldump -uroot keystone endpoint >endpoint.sql

#3.备份
cp endpoint.sql /opt/
ll /opt/

#4.修改
vim endpoint.sql
:%s#http://controller:9292#http://192.168.178.32:9292#g

#5.导入
mysql keystone <endpoint.sql

#6.再次查看api
openstack endpoint list |grep image

#7.查看镜像
openstack image list
[root@controller ~]# source admin-openrc
[root@controller ~]# openstack endpoint list|grep image
| 0ca401b138074eec845ce60fbe7571a6 | RegionOne | glance       | image        | True    | admin     | http://controller:9292                    |
| 9df8e5203cbc431c83135915a0ec2cbf | RegionOne | glance       | image        | True    | public    | http://controller:9292                    |
| b9be7c8975e04d44a4974563929040f0 | RegionOne | glance       | image        | True    | internal  | http://controller:9292                    |
[root@controller ~]#
[root@controller ~]#
[root@controller ~]#
[root@controller ~]#
[root@controller ~]#
[root@controller ~]#
[root@controller ~]# mysqldump -uroot keystone endpoint >endpoint.sql
[root@controller ~]#
[root@controller ~]#
[root@controller ~]# ls
admin-openrc  anaconda-ks.cfg  cirros-0.3.4-x86_64-disk.img  endpoint.sql  glance.sql
[root@controller ~]#
[root@controller ~]#
[root@controller ~]#
[root@controller ~]# cp endpoint.sql /opt/
[root@controller ~]# ll /opt/
total 241728
-rw-r--r-- 1 root root      3990 Dec  5 17:03 endpoint.sql
-rw-r--r-- 1 root root 247468369 Dec  1 19:28 openstack_rpm.tar.gz
drwxr-xr-x 3 root root     36864 Jul 19  2017 repo
[root@controller ~]#
[root@controller ~]#
[root@controller ~]#
[root@controller ~]# vim endpoint.sql
[root@controller ~]#
[root@controller ~]#
[root@controller ~]# mysql keystone <endpoint.sql
[root@controller ~]#
[root@controller ~]# openstack endpoint list |grep image
| 0ca401b138074eec845ce60fbe7571a6 | RegionOne | glance       | image        | True    | admin     | http://192.168.178.32:9292                |
| 9df8e5203cbc431c83135915a0ec2cbf | RegionOne | glance       | image        | True    | public    | http://192.168.178.32:9292                |
| b9be7c8975e04d44a4974563929040f0 | RegionOne | glance       | image        | True    | internal  | http://192.168.178.32:9292                |
[root@controller ~]#
[root@controller ~]# openstack image list
+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| 9b28c8ce-64d0-40b0-b4ef-61ab38f26d25 | cirros | active |
+--------------------------------------+--------+--------+

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

#所有节点
#1.替换
sed -i 's#http://controller:9292#http://192.168.178.32:9292#g' /etc/nova/nova.conf

#2.查看
grep '9292' /etc/nova/nova.conf

#3.重启服务
#controller
systemctl restart openstack-nova-api

#4.查看nova的api
#controller
nova service-list

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

1. 下载镜像文件

# 镜像地址:https://mirrors.ustc.edu.cn/centos-cloud/centos/7/images/CentOS-7-x86_64-GenericCloud-1809.qcow2

2. 创建镜像

# 浏览器登录,点击项目-映像,在右上角点击创建,输入名称:centos7,映像源:映像文件,从浏览中找到镜像文件,最小磁盘:8,最低内存:512,勾选公有,然后创建

img_27.png

3. 查看镜像文件

#compute2
[root@compute2 ~]# ll /var/lib/glance/images -h
total 886M
-rw-r----- 1 glance glance  13M Dec  3 09:08 9b28c8ce-64d0-40b0-b4ef-61ab38f26d25
-rw-r----- 1 glance glance 873M Dec  5 17:15 a62b1e8b-697f-4f99-82de-b38977eccf04

4. 查看镜像详细信息

qemu-img info /var/lib/glance/images/a62b1e8b-697f-4f99-82de-b38977eccf04
[root@compute2 ~]# qemu-img info /var/lib/glance/images/a62b1e8b-697f-4f99-82de-b38977eccf04
image: /var/lib/glance/images/a62b1e8b-697f-4f99-82de-b38977eccf04
file format: qcow2
virtual size: 8.0G (8589934592 bytes)
disk size: 873M
cluster_size: 65536
Format specific information:
    compat: 0.10
    refcount bits: 16

5. 编辑flavor数

#点击左侧管理员-flavor数,找到m1.tiny,点击右侧的编辑,修改根磁盘:10G,点击保存

img_28.png

6. 使用新镜像启动实例

#点击左侧的项目-实例,然后右上角创建,输入实例名称:centos7,可用区:oldboy

img_29.png

# 源选择刚才上传的centos7镜像!

img_30.png

#flavor选择m1.tiny!

img_31.png

#启动失败!报错:No valid host was found. There are not enough hosts available.

img_32.png

#解决办法:重启nova服务!删除实例,重新创建实例!!!
systemctl restart openstack-nova-compute

8. 上传qcow2c镜像测试!(不好使!!!)

[root@compute2 ~]# ll /var/lib/glance/images -h
total 1.3G
-rw-r----- 1 glance glance  13M Dec  3 09:08 9b28c8ce-64d0-40b0-b4ef-61ab38f26d25
-rw-r----- 1 glance glance 873M Dec  5 17:15 a62b1e8b-697f-4f99-82de-b38977eccf04
-rw-r----- 1 glance glance 381M Dec  5 17:25 e3590b8d-1d84-4735-8fa7-7579429bbb84   #qcow2c格式 的
[root@compute2 ~]#
[root@compute2 ~]#
[root@compute2 ~]#
[root@compute2 ~]# qemu-img info /var/lib/glance/images/e3590b8d-1d84-4735-8fa7-7579429bbb84
image: /var/lib/glance/images/e3590b8d-1d84-4735-8fa7-7579429bbb84
file format: qcow2
virtual size: 8.0G (8589934592 bytes)
disk size: 381M
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
    refcount bits: 16
    corrupt: false

最后更新: 2022-02-20 04:00:12