11 Openstack-Ussuri-Cinder控制节点集群部署-centos8

cinder具体功能如下:
1 提供 REST API 使用户能够查询和管理 volume、volume snapshot 以及 volume type
2 提供 scheduler 调度 volume 创建请求,合理优化存储资源的分配
3 通过 driver 架构支持多种 back-end(后端)存储方式,包括 LVM,NFS,Ceph 和其他诸如 EMC、IBM 等商业存储产品和方案

11.1 配置cinder数据库

#使用root登陆数据库:

mysql -u root -p

#创建cinder数据库:

CREATE DATABASE cinder;

#授予对cinder数据库的访问权限,刷新退出数据库:

GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
  IDENTIFIED BY 'cinder.123';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \
  IDENTIFIED BY 'cinder.123';
flush privileges;
exit

11.2 加载管理凭证

source adminrc.sh

11.3 创建cinder相关服务凭证

#创建cinder服务用户,并设置密码为cinder.123

openstack user create --domain default --password-prompt cinder

#输出

User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | e40ef183bb844a1d9497dc3bfa2d5539 |
| name                | cinder                           |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

#赋予cinder服务用户服务管理员权限及角色,无输出

openstack role add --project service --user cinder admin

#创建cinder服务

openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2

#输出

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | 58390d68362941519a7644c6c95dac9a |
| name        | cinderv2                         |
| type        | volumev2                         |
+-------------+----------------------------------+

openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3

#输出

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | fdd8eb84abd6467bb2961c2c03942aa0 |
| name        | cinderv3                         |
| type        | volumev3                         |
+-------------+----------------------------------+

11.4 创建compute API endpoints

#public v2

扫描二维码关注公众号,回复: 11628495 查看本文章
openstack endpoint create --region RegionOne \
  volumev2 public http://controller168:8776/v2/%\(project_id\)s

#输出

+--------------+---------------------------------------------+
| Field        | Value                                       |
+--------------+---------------------------------------------+
| enabled      | True                                        |
| id           | 794d13206d454b70b77c9c9302d9a479            |
| interface    | public                                      |
| region       | RegionOne                                   |
| region_id    | RegionOne                                   |
| service_id   | 58390d68362941519a7644c6c95dac9a            |
| service_name | cinderv2                                    |
| service_type | volumev2                                    |
| url          | http://controller168:8776/v2/%(project_id)s |
+--------------+---------------------------------------------+

#internal v2

openstack endpoint create --region RegionOne \
  volumev2 internal http://controller168:8776/v2/%\(project_id\)s

#输出

+--------------+---------------------------------------------+
| Field        | Value                                       |
+--------------+---------------------------------------------+
| enabled      | True                                        |
| id           | 51a9c8f99bde4ae389d35048f81aac3d            |
| interface    | internal                                    |
| region       | RegionOne                                   |
| region_id    | RegionOne                                   |
| service_id   | 58390d68362941519a7644c6c95dac9a            |
| service_name | cinderv2                                    |
| service_type | volumev2                                    |
| url          | http://controller168:8776/v2/%(project_id)s |
+--------------+---------------------------------------------+

#admin v2

openstack endpoint create --region RegionOne \
  volumev2 admin http://controller168:8776/v2/%\(project_id\)s

#输出

+--------------+---------------------------------------------+
| Field        | Value                                       |
+--------------+---------------------------------------------+
| enabled      | True                                        |
| id           | 1dd2d9326f4d4a199696249931be4811            |
| interface    | admin                                       |
| region       | RegionOne                                   |
| region_id    | RegionOne                                   |
| service_id   | 58390d68362941519a7644c6c95dac9a            |
| service_name | cinderv2                                    |
| service_type | volumev2                                    |
| url          | http://controller168:8776/v2/%(project_id)s |
+--------------+---------------------------------------------+



#public v3

openstack endpoint create --region RegionOne \
  volumev3 public http://controller168:8776/v3/%\(project_id\)s

#输出

+--------------+---------------------------------------------+
| Field        | Value                                       |
+--------------+---------------------------------------------+
| enabled      | True                                        |
| id           | 87a1d543b5334a43bf7d47c4234acd3d            |
| interface    | public                                      |
| region       | RegionOne                                   |
| region_id    | RegionOne                                   |
| service_id   | fdd8eb84abd6467bb2961c2c03942aa0            |
| service_name | cinderv3                                    |
| service_type | volumev3                                    |
| url          | http://controller168:8776/v3/%(project_id)s |
+--------------+---------------------------------------------+


#internal v3

openstack endpoint create --region RegionOne \
  volumev3 internal http://controller168:8776/v3/%\(project_id\)s

#输出

+--------------+---------------------------------------------+
| Field        | Value                                       |
+--------------+---------------------------------------------+
| enabled      | True                                        |
| id           | f2a6443ce41044e8a334f68cd2179c00            |
| interface    | internal                                    |
| region       | RegionOne                                   |
| region_id    | RegionOne                                   |
| service_id   | fdd8eb84abd6467bb2961c2c03942aa0            |
| service_name | cinderv3                                    |
| service_type | volumev3                                    |
| url          | http://controller168:8776/v3/%(project_id)s |
+--------------+---------------------------------------------+

#admin v3

openstack endpoint create --region RegionOne \
  volumev3 admin http://controller168:8776/v3/%\(project_id\)s

#输出

+--------------+---------------------------------------------+
| Field        | Value                                       |
+--------------+---------------------------------------------+
| enabled      | True                                        |
| id           | 46e6389ca1cd4002a38a8dc6ef3130c2            |
| interface    | admin                                       |
| region       | RegionOne                                   |
| region_id    | RegionOne                                   |
| service_id   | fdd8eb84abd6467bb2961c2c03942aa0            |
| service_name | cinderv3                                    |
| service_type | volumev3                                    |
| url          | http://controller168:8776/v3/%(project_id)s |
+--------------+---------------------------------------------+

11.5 部署与配置cinder - ALL Controller

#安装包

yum install openstack-cinder -y

#备份cinder配置

cp /etc/cinder/cinder.conf /etc/cinder/cinder.conf.bak
egrep -v "^$|^#" /etc/cinder/cinder.conf.bak >/etc/cinder/cinder.conf

#配置cinder配置文件,在对应项底下增加以下字段
#vim /etc/cinder/cinder.conf


[DEFAULT]
# ...
my_ip = 172.16.1.160
transport_url = rabbit://rabbitmq:rabbitmq.123@controller160:5672,rabbitmq:rabbitmq.123@controller161:5672,rabbitmq:rabbitmq.123@controller162:5672
auth_strategy = keystone
osapi_volume_listen = 172.16.1.160
osapi_volume_listen_port = 8776
[database]
# ...
connection = mysql+pymysql://cinder:cinder.123@controller168/cinder

[keystone_authtoken]
# ...
www_authenticate_uri = http://controller168:5000
auth_url = http://controller168:5000
memcached_servers = controller160:11211,controller161:11211,controller162:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = cinder
password = cinder.123

[oslo_concurrency]
# ...
lock_path = /var/lib/cinder/tmp

#添加nova配置,使用cinder服务
#vim /etc/nova/nova.conf

[cinder]
os_region_name = RegionOne

#填充cinder数据库,无输出

su -s /bin/sh -c "cinder-manage db sync" cinder

#验证cinder数据库是否正常写入:

mysql -h controller168 -ucinder -pcinder.123 -e "use cinder;show tables;"

#重启nova服务

systemctl restart openstack-nova-api.service

#重启cinder服务,并配置开机启动:

systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl restart openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl status openstack-cinder-api.service openstack-cinder-scheduler.service

11.6 cinder服务验证

#加载管理凭证

source adminrc.sh

#查看服务列表

openstack volume service list

#输出

[root@controller160 ~]# openstack volume service list
+------------------+---------------+------+---------+-------+----------------------------+
| Binary           | Host          | Zone | Status  | State | Updated At                 |
+------------------+---------------+------+---------+-------+----------------------------+
| cinder-scheduler | controller160 | nova | enabled | up    | 2020-06-23T16:27:22.000000 |
| cinder-scheduler | controller162 | nova | enabled | up    | 2020-06-23T16:27:23.000000 |
| cinder-scheduler | controller161 | nova | enabled | up    | 2020-06-23T16:27:24.000000 |
+------------------+---------------+------+---------+-------+----------------------------+

11.7 设置pcs资源

#在任意控制节点操作;
#添加资源cinder-api与cinder-scheduler

pcs resource create openstack-cinder-api systemd:openstack-cinder-api clone interleave=true
pcs resource create openstack-cinder-scheduler systemd:openstack-cinder-scheduler clone interleave=true

#cinder-api与cinder-scheduler以active/active模式运行;
#openstack-nova-volume以active/passive模式运行

#查看资源

[root@controller160 ~]# pcs status
Cluster name: openstack-u-cluster
Cluster Summary:
  * Stack: corosync
  * Current DC: controller161 (version 2.0.3-5.el8_2.1-4b1f869f0f) - partition with quorum
  * Last updated: Wed Jun 24 00:16:13 2020
  * Last change:  Wed Jun 24 00:16:06 2020 by root via cibadmin on controller160
  * 3 nodes configured
  * 31 resource instances configured

Node List:
  * Online: [ controller160 controller161 controller162 ]

Full List of Resources:
  * vip	(ocf::heartbeat:IPaddr2):	Started controller160
  * Clone Set: lb-haproxy-clone [lb-haproxy]:
    * Started: [ controller160 ]
    * Stopped: [ controller161 controller162 ]
  * Clone Set: openstack-keystone-clone [openstack-keystone]:
    * Started: [ controller160 controller161 controller162 ]
  * Clone Set: openstack-glance-api-clone [openstack-glance-api]:
    * Started: [ controller160 controller161 controller162 ]
  * Clone Set: openstack-nova-api-clone [openstack-nova-api]:
    * Started: [ controller160 controller161 controller162 ]
  * Clone Set: openstack-nova-scheduler-clone [openstack-nova-scheduler]:
    * Started: [ controller160 controller161 controller162 ]
  * Clone Set: openstack-nova-conductor-clone [openstack-nova-conductor]:
    * Started: [ controller160 controller161 controller162 ]
  * Clone Set: openstack-nova-novncproxy-clone [openstack-nova-novncproxy]:
    * Started: [ controller160 controller161 controller162 ]
  * Clone Set: neutron-server-clone [neutron-server]:
    * Started: [ controller160 controller161 controller162 ]
  * Clone Set: openstack-cinder-api-clone [openstack-cinder-api]:
    * Started: [ controller160 controller161 controller162 ]
  * Clone Set: openstack-cinder-scheduler-clone [openstack-cinder-scheduler]:
    * Started: [ controller160 controller161 controller162 ]

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled

至此,cinder服务已部署完毕,如有问题请联系我改正,感激不尽!

11.x 部署过程遇到的问题汇总

eg1.[root@controller160 ~]# openstack volume service list
The server is currently unavailable. Please try again at a later time.<br /><br />
The Keystone service is temporarily unavailable.

 (HTTP 503)
解决方案:检查cinder用户密码

猜你喜欢

转载自blog.csdn.net/caiyqn/article/details/106933990