欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

161.OpenStack_Train版-12.安装块存储服务cinder(控制节点)

程序员文章站 2024-03-23 22:23:10
...

1. 创建cinder数据库并授权

[root@controller ~]# mysql
MariaDB [(none)]> CREATE DATABASE cinder;
Query OK, 1 row affected (0.012 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'CINDER_DBPASS';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'CINDER_DBPASS';
Query OK, 0 rows affected (0.000 sec)

2.创建cinder用户

[root@controller ~]# openstack user create --domain default --password CINDER_PASS cinder
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 8e51637daeac4723bf88502ea847e592 |
| name                | cinder                           |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

3.向cinder用户添加admin角色

[root@controller ~]# openstack role add --project service --user cinder admin

4.创建cinderv2和cinderv3服务实体

[root@controller ~]# openstack service create --name cinderv2 \
>   --description "OpenStack Block Storage" volumev2
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | 039b74855c074d98b8df2b5a179ebfa5 |
| name        | cinderv2                         |
| type        | volumev2                         |
+-------------+----------------------------------+
[root@controller ~]# openstack service create --name cinderv3 \
>   --description "OpenStack Block Storage" volumev3
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | 071115fec7544446b0b594de059ebec5 |
| name        | cinderv3                         |
| type        | volumev3                         |
+-------------+----------------------------------+

5.创建块存储服务API端点

[root@controller ~]# openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | 481ada0759a44bd1966dac72683d1c35         |
| interface    | public                                   |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | 039b74855c074d98b8df2b5a179ebfa5         |
| service_name | cinderv2                                 |
| service_type | volumev2                                 |
| url          | http://controller:8776/v2/%(project_id)s |
+--------------+------------------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | b5994d8f5fae48c095738a6a4e3c4bab         |
| interface    | internal                                 |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | 039b74855c074d98b8df2b5a179ebfa5         |
| service_name | cinderv2                                 |
| service_type | volumev2                                 |
| url          | http://controller:8776/v2/%(project_id)s |
+--------------+------------------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | 36b1f8226ef44847860e44d5471be063         |
| interface    | admin                                    |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | 039b74855c074d98b8df2b5a179ebfa5         |
| service_name | cinderv2                                 |
| service_type | volumev2                                 |
| url          | http://controller:8776/v2/%(project_id)s |
+--------------+------------------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne volumev3 public http://controller:8776/v3/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | 4215e1ca26c4401fbf76946005f9e7fc         |
| interface    | public                                   |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | 071115fec7544446b0b594de059ebec5         |
| service_name | cinderv3                                 |
| service_type | volumev3                                 |
| url          | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne volumev3 internal http://controller:8776/v3/%\(project_id\)s

+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | 19bb2e8f5caf42abbceedf2d93bb913a         |
| interface    | internal                                 |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | 071115fec7544446b0b594de059ebec5         |
| service_name | cinderv3                                 |
| service_type | volumev3                                 |
| url          | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne volumev3 admin http://controller:8776/v3/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | 8ceae4a640414797a00988506aca4012         |
| interface    | admin                                    |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | 071115fec7544446b0b594de059ebec5         |
| service_name | cinderv3                                 |
| service_type | volumev3                                 |
| url          | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+

6.安装cinder软件包并修改配置文件

yum install openstack-cinder
cp /etc/cinder/cinder.conf /etc/cinder/cinder.conf.bak
grep -Ev '#|^$' /etc/cinder/cinder.conf.bak>/etc/cinder/cinder.conf
openstack-config --set /etc/cinder/cinder.conf   database connection mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
openstack-config --set /etc/cinder/cinder.conf   DEFAULT  transport_url  rabbit://openstack:RABBIT_PASS@controller
openstack-config --set /etc/cinder/cinder.conf   DEFAULT  auth_strategy  keystone
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   www_authenticate_uri  http://controller:5000
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   auth_url  http://controller:5000
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   memcached_servers  controller:11211
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   auth_type  password
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   project_domain_name  default
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   user_domain_name  default
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   project_name  service
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   username  cinder
openstack-config --set /etc/cinder/cinder.conf   keystone_authtoken   password  CINDER_PASS
openstack-config --set /etc/cinder/cinder.conf   DEFAULT  my_ip  10.0.0.11
openstack-config --set /etc/cinder/cinder.conf   oslo_concurrency  lock_path  /var/lib/cinder/tmp

7.填充块存储数据库

[aaa@qq.com ~]# su -s /bin/sh -c "cinder-manage db sync" cinder

8.配置计算以使用块存储

[root@compute01 ~]# vim /etc/nova/nova.conf
....
[cinder]
os_region_name = RegionOne

9.重新启动Compute API服务

[aaa@qq.com ~]# systemctl restart openstack-nova-api.service

10.启动块存储服务,并设置开机自启

[root@controller ~]# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
[root@controller ~]# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service

11.控制节点验证

[root@controller ~]# cinder service-list
+------------------+------------+------+---------+-------+----------------------------+---------+-----------------+---------------+
| Binary           | Host       | Zone | Status  | State | Updated_at                 | Cluster | Disabled Reason | Backend State |
+------------------+------------+------+---------+-------+----------------------------+---------+-----------------+---------------+
| cinder-scheduler | controller | nova | enabled | up    | 2020-01-12T04:30:28.000000 | -       | -               |               |
+------------------+------------+------+---------+-------+----------------------------+---------+-----------------+---------------+

12.安装和配置存储节点【compute01】

12.1 安装LVM软件包

[aaa@qq.com ~]# yum install lvm2 device-mapper-persistent-data

12.2 启动LVM元数据服务,并设置开机自启

[root@compute01 ~]# systemctl enable lvm2-lvmetad.service
[root@compute01 ~]# systemctl start lvm2-lvmetad.service

12.3 创建LVM物理卷/dev/sdb;在这之前新增10G硬盘

[root@compute01 ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.

12.4 创建LVM卷组cinder-volumes

[root@compute01 ~]# vgcreate cinder-volumes /dev/sdb
  Volume group "cinder-volumes" successfully created

12.5 将LVM重新配置为仅扫描包含cinder-volumes卷组的设备

vim /etc/lvm/lvm.conf
在devices部分中,添加一个接受/dev/sdb设备并拒绝所有其他设备的过滤器:
devices {
filter = [ "a/sdb/", "r/.*/"]
a用于接受,r用于拒绝。

12.6 安装软件包

#yum install centos-release-openstack-train -y
#yum upgrade -y
yum install python-openstackclient -y
#yum install openstack-selinux -y
yum install openstack-cinder targetcli python-keystone -y

12.7 修改配置文件

[root@compute01 ~]# cp /etc/cinder/cinder.conf /etc/cinder/cinder.conf.bak
[root@compute01 ~]# grep -Ev '#|^$' /etc/cinder/cinder.conf.bak>/etc/cinder/cinder.conf

vim /etc/cinder/cinder.conf
[database]
connection = mysql+pymysql://cinder:aaa@qq.com/cinder

[DEFAULT]
transport_url = rabbit://openstack:aaa@qq.com
auth_strategy = keystone
my_ip = 10.0.0.31
enabled_backends = lvm
glance_api_servers = http://controller:9292

[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = CINDER_PASS

[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
target_protocol = iscsi
target_helper = lioadm

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

12.8 启动块存储卷服务及其相关,并设置开机自启

[root@compute01 ~]# systemctl enable openstack-cinder-volume.service target.service
[root@compute01 ~]# systemctl start openstack-cinder-volume.service target.service

12.9 验证cinder块存储服务【controller节点】

. admin-openrc
[root@controller ~]# openstack volume service list
+------------------+---------------+------+---------+-------+----------------------------+
| Binary           | Host          | Zone | Status  | State | Updated At                 |
+------------------+---------------+------+---------+-------+----------------------------+
| cinder-scheduler | controller    | nova | enabled | up    | 2020-01-12T06:44:38.000000 |
| cinder-volume    | compute01@lvm | nova | enabled | up    | 2020-01-12T06:44:40.000000 |
+------------------+---------------+------+---------+-------+----------------------------+

161.OpenStack_Train版-12.安装块存储服务cinder(控制节点)

12.10 使用块存储服务向实例提供数据盘

创建卷(volume)
创建一个10 GB的卷:
[root@controller ~]# openstack volume create --size 10 volume1
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2020-01-12T06:50:27.000000           |
| description         | None                                 |
| encrypted           | False                                |
| id                  | 25433908-a60c-4904-bd62-27db8589ed8c |
| migration_status    | None                                 |
| multiattach         | False                                |
| name                | volume1                              |
| properties          |                                      |
| replication_status  | None                                 |
| size                | 10                                   |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | __DEFAULT__                          |
| updated_at          | None                                 |
| user_id             | 656ea39f6bac482d8a0d0e49fc74e8a5     |
+---------------------+--------------------------------------+

很短的时间后,卷状态应该从creating 到available
openstack volume list

161.OpenStack_Train版-12.安装块存储服务cinder(控制节点)

12.11 将卷附加到实例

openstack server add volume INSTANCE_NAME VOLUME_NAME
将volume1卷附加到yinwu cheng实例:
[root@controller ~]# openstack server add volume yinwu cheng volume1
[root@controller ~]# openstack volume list

161.OpenStack_Train版-12.安装块存储服务cinder(控制节点)
161.OpenStack_Train版-12.安装块存储服务cinder(控制节点)
161.OpenStack_Train版-12.安装块存储服务cinder(控制节点)
161.OpenStack_Train版-12.安装块存储服务cinder(控制节点)

12.12 登录实例,并使用以下fdisk命令验证该卷是否作为/dev/vdb块存储设备

sudo fdisk -l
分区并格式化新添加的/dev/vdb
fdisk /dev/vdb
mk2fs.ext4 /dev/vdb1

161.OpenStack_Train版-12.安装块存储服务cinder(控制节点)
161.OpenStack_Train版-12.安装块存储服务cinder(控制节点)
161.OpenStack_Train版-12.安装块存储服务cinder(控制节点)

161.OpenStack_Train版-12.安装块存储服务cinder(控制节点)

相关标签: OpenStack