且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《OpenStack云计算实战手册(第2版)》一2.3 用MySQL配置OpenStack镜像服务

更新时间:2022-09-24 13:24:00

本节书摘来异步社区《OpenStack云计算实战手册(第2版)》一书中的第2章,第2.3节,作者: 【英】Kevin Jackson , 【美】Cody Bunch 译者: 黄凯 , 杜玉杰 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 用MySQL配置OpenStack镜像服务

OpenStack云计算实战手册(第2版)
默认情况下,OpenStack镜像服务,即Glance,被配置使用本地SQL数据库存储。为了弹性扩展,必须配置一个中心的、可扩展且更具可靠的数据库层。因此,可使用MySQL数据库来达到这个目的。

准备工作
请在开始前确认已经登录到一个已经安装了OpenStack镜像服务的服务器上。

登录到使用Vagrant创建的OpenStack控制节点,执行以下命令:

vagrant ssh controller
操作步骤
执行下列步骤。

1.安装OpenStack镜像服务后,可使用下面的方法创建MySQL数据库,命名为glance。

MYSQL_ROOT_PASSWORD=openstack    

mysql -uroot -p$MYSQL_ROOT_PASSWORD \
  -e 'CREATE DATABASE glance;'

2.接下来,创建一个对该数据库有权限的用户glance,其密码设置为openstack,方法如下:

MYSQL_GLANCE_PASSWORD=openstack  

mysql -uroot -p$MYSQL_ROOT_PASSWORD \ 
  -e "GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' 
IDENTIFIED BY '${MYSQL_GLANCE_PASSWORD}';"     
mysql -uroot -p$MYSQL_ROOT_PASSWORD \
  -e "GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost'  
IDENTIFIED BY '${MYSQL_GLANCE_PASSWORD}';"

3.然后,需要通过编辑OpenStack镜像服务的配置文件/etc/glance/glance-registry.conf和/etc/glance/glance-api.conf,修改其数据库名称及连接相关信息,使得OpenStack镜像服务能使用刚才创建的数据库。

sudo sed -i "s,^sql_connection.*,sql_connection = \  
  mysql://glance:${MYSQL_DB_PASSWORD}@172.16.0.200/glance," \  
  /etc/glance/glance-{registry,api}.conf

4.用下面的方式重启glance-registry服务。

sudo stop glance-registry     
sudo start glance-registry

5.同样重启glance-api服务。

sudo stop glance-api    
sudo start glance-api

6.该glance数据库将通过Ubuntu 12.04升级或降级服务版本。首先设置版本为0,执行:

glance-manage version_control 0

7.同步数据库,确保插入正确的表结构。为此,使用以下命令:

sudo glance-manage db_sync

工作原理
OpenStack镜像服务是由两个服务组成的,glance-api和glance-registry服务,其中,glance-
registry服务连接到后端数据库,glance-registry会根据我们先前设定的glance数据库和用户设置对数据库进行操作。

完成之后,可以通过修改/etc/glance/glance-registry.conf和/etc/glance/glance-registry.conf 文件中相应的设置,让glance知道从什么地址、用什么方式、连接哪个数据库。其配置遵循标准的SQLAlchemy链接,语法如下:

sql_connection = mysql://USER:PASSWORD@HOST/DBNAME