openstack cinder使用(小节13)

195 阅读2分钟

@[TOC](openstack cinder使用(小节13))

mysql

检查是否有域名

[root@mysql ~]# vim /etc/hosts
192.168.37.248 openstack.123.net
[root@mysql ~]# mysql -uroot -p123.com

#创建数据库'cinder'
MariaDB [(none)]> CREATE DATABASE cinder;

#授权
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'cinder123';

controller2

测试能否远程连接'cinder'

[root@controller2 ~]# yum install mysql -y
[root@controller2 ~]# mysql -ucinder -pcinder123 -h192.168.37.248

#查看能否看到'cinder'数据库
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| cinder             |
| information_schema |
+--------------------+
2 rows in set (0.003 sec)

#退出
MariaDB [(none)]> exit

导入环境变量

[root@controller2 ~]# source scripts/admin_stein.sh 

创建'cinder'用户

[root@controller2 ~]# openstack user create --domain default --password-prompt cinder
User Password:    <--密码:cinder
Repeat User Password:    <--密码:cinder
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | 3d6cf6014ee04da69c088ae6b9b9766a |
| enabled             | True                             |
| id                  | 87f124a579d34ccd88ef23f9aa514cd7 |
| name                | cinder                           |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

授权

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

创建cinderv2和cinderv3服务实体(API)

[root@controller2 ~]# openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | 72b74325075c476fb569d6ee653d1985 |
| name        | cinderv2                         |
| type        | volumev2                         |
+-------------+----------------------------------+

[root@controller2 ~]# openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | ece91d00fc7642d0814bfe5a4e30d6a2 |
| name        | cinderv3                         |
| type        | volumev3                         |
+-------------+----------------------------------+
[root@controller2 ~]# openstack endpoint create --region RegionOne volumev2 public http://openstack.123.net:8776/v2/%\(project_id\)s
+--------------+-------------------------------------------------+
| Field        | Value                                           |
+--------------+-------------------------------------------------+
| enabled      | True                                            |
| id           | f7b9aed5fd014e968d184c0ce7569d42                |
| interface    | public                                          |
| region       | RegionOne                                       |
| region_id    | RegionOne                                       |
| service_id   | 72b74325075c476fb569d6ee653d1985                |
| service_name | cinderv2                                        |
| service_type | volumev2                                        |
| url          | http://openstack.123.net:8776/v2/%(project_id)s |
+--------------+-------------------------------------------------+

[root@controller2 ~]# openstack endpoint create --region RegionOne volumev2 internal http://openstack.123.net:8776/v2/%\(project_id\)s
+--------------+-------------------------------------------------+
| Field        | Value                                           |
+--------------+-------------------------------------------------+
| enabled      | True                                            |
| id           | 971b068f0c1041bc9563af1f6b312b19                |
| interface    | internal                                        |
| region       | RegionOne                                       |
| region_id    | RegionOne                                       |
| service_id   | 72b74325075c476fb569d6ee653d1985                |
| service_name | cinderv2                                        |
| service_type | volumev2                                        |
| url          | http://openstack.123.net:8776/v2/%(project_id)s |
+--------------+-------------------------------------------------+

[root@controller2 ~]# openstack endpoint create --region RegionOne volumev2 admin http://openstack.123.net:8776/v2/%\(project_id\)s
+--------------+-------------------------------------------------+
| Field        | Value                                           |
+--------------+-------------------------------------------------+
| enabled      | True                                            |
| id           | 9d7c92be4ff447f089904f0cf1f38fde                |
| interface    | admin                                           |
| region       | RegionOne                                       |
| region_id    | RegionOne                                       |
| service_id   | 72b74325075c476fb569d6ee653d1985                |
| service_name | cinderv2                                        |
| service_type | volumev2                                        |
| url          | http://openstack.123.net:8776/v2/%(project_id)s |
+--------------+-------------------------------------------------+
[root@controller2 ~]# openstack endpoint create --region RegionOne volumev3 public http://openstack.123.net:8776/v3/%\(project_id\)s
+--------------+-------------------------------------------------+
| Field        | Value                                           |
+--------------+-------------------------------------------------+
| enabled      | True                                            |
| id           | c3c0bb13e6cb426b84d9a536e43e0eb1                |
| interface    | public                                          |
| region       | RegionOne                                       |
| region_id    | RegionOne                                       |
| service_id   | ece91d00fc7642d0814bfe5a4e30d6a2                |
| service_name | cinderv3                                        |
| service_type | volumev3                                        |
| url          | http://openstack.123.net:8776/v3/%(project_id)s |
+--------------+-------------------------------------------------+

[root@controller2 ~]# openstack endpoint create --region RegionOne volumev3 internal http://openstack.123.net:8776/v3/%\(project_id\)s
+--------------+-------------------------------------------------+
| Field        | Value                                           |
+--------------+-------------------------------------------------+
| enabled      | True                                            |
| id           | 0f79369fccb64bc8b3475d20fa77b854                |
| interface    | internal                                        |
| region       | RegionOne                                       |
| region_id    | RegionOne                                       |
| service_id   | ece91d00fc7642d0814bfe5a4e30d6a2                |
| service_name | cinderv3                                        |
| service_type | volumev3                                        |
| url          | http://openstack.123.net:8776/v3/%(project_id)s |
+--------------+-------------------------------------------------+

[root@controller2 ~]# openstack endpoint create --region RegionOne volumev3 admin http://openstack.123.net:8776/v3/%\(project_id\)s
+--------------+-------------------------------------------------+
| Field        | Value                                           |
+--------------+-------------------------------------------------+
| enabled      | True                                            |
| id           | c10ac39fbbe1451bb0ca9e515e2c63e5                |
| interface    | admin                                           |
| region       | RegionOne                                       |
| region_id    | RegionOne                                       |
| service_id   | ece91d00fc7642d0814bfe5a4e30d6a2                |
| service_name | cinderv3                                        |
| service_type | volumev3                                        |
| url          | http://openstack.123.net:8776/v3/%(project_id)s |
+--------------+-------------------------------------------------+

安装和配置组件

[root@controller2 ~]# yum install openstack-cinder -y
[root@controller2 ~]# vim /etc/cinder/cinder.conf

[DEFAULT]
transport_url = rabbit://openstack:openstack123@openstack.123.net
auth_strategy = keystone    <--keystone认证

[database]
connection = mysql+pymysql://cinder:cinder123@openstack.123.net/cinder    <--数据库连接

[keystone_authtoken]    <--keystone认证信息
www_authenticate_uri = http://openstack.123.net:5000
auth_url = http://openstack.123.net:5000
memcached_servers = openstack.123.net:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = cinder

[oslo_concurrency]
lock_path = /var/lib/cinder/tmp    <--锁路径

可以检查一下配置文件,可以看到刚刚添加的信息检查是否正确

[root@controller2 ~]# grep -v "#" /etc/cinder/cinder.conf |grep -v "^$"
[DEFAULT]
transport_url = rabbit://openstack:openstack123@openstack.123.net
auth_strategy = keystone
[backend]
[backend_defaults]
[barbican]
[brcd_fabric_example]
[cisco_fabric_example]
[coordination]
[cors]
[database]
connection = mysql+pymysql://cinder:cinder123@openstack.123.net/cinder
[fc-zone-manager]
[healthcheck]
[key_manager]
[keystone_authtoken]
www_authenticate_uri = http://openstack.123.net:5000
auth_url = http://openstack.123.net:5000
memcached_servers = openstack.123.net:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = cinder
[nova]
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_middleware]
[oslo_policy]
[oslo_reports]
[oslo_versionedobjects]
[privsep]
[profiler]
[sample_castellan_source]
[sample_remote_file_source]
[service_user]
[ssl]
[vault]

初始化数据库

[root@controller2 ~]# su -s /bin/sh -c "cinder-manage db sync" cinder
Deprecated: Option "logdir" from group "DEFAULT" is deprecated. Use option "log-dir" from group "DEFAULT".

mysql

到数据库验证一下,看cinder有没有生成表

MariaDB [(none)]> use cinder;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [cinder]> show tables;
+----------------------------+
| Tables_in_cinder           |
+----------------------------+
| attachment_specs           |
| backup_metadata            |
| backups                    |
| cgsnapshots                |
| clusters                   |
| consistencygroups          |
| driver_initiator_data      |
| encryption                 |
| group_snapshots            |
| group_type_projects        |
| group_type_specs           |
| group_types                |
| group_volume_type_mapping  |
| groups                     |
| image_volume_cache_entries |
| messages                   |
| migrate_version            |
| quality_of_service_specs   |
| quota_classes              |
| quota_usages               |
| quotas                     |
| reservations               |
| services                   |
| snapshot_metadata          |
| snapshots                  |
| transfers                  |
| volume_admin_metadata      |
| volume_attachment          |
| volume_glance_metadata     |
| volume_metadata            |
| volume_type_extra_specs    |
| volume_type_projects       |
| volume_types               |
| volumes                    |
| workers                    |
+----------------------------+
35 rows in set (0.000 sec)

controller2

配置计算以使用块存储

[root@controller2 ~]# vim /etc/nova/nova.conf

[cinder]
os_region_name = RegionOne

重启nova【可查看nova日志'tail -f /var/log/nova/*.log '】

[root@controller2 ~]# systemctl restart openstack-nova-api.service

cinder管理端设置开机启动

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

启动cinder管理端【可查看cinder日志'tail -f /var/log/cinder/*.log '】

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

ha1

[root@ha1 ~]# vim /etc/haproxy/haproxy.cfg

#结尾添加以下内容
listen openstack-cinder
  bind 192.168.37.248:8776
  mode tcp
  server 192.168.37.102 192.168.37.102:8776 check inter 3s fall 3 rise 5
  server 192.168.37.101 192.168.37.101:8776 check inter 3s fall 3 rise 5 backup    <--备份服务器(建议添加)

重启haproxy服务

[root@ha1 ~]# systemctl restart haproxy.service

controller2

[root@controller2 ~]# systemctl restart openstack-cinder-api.service openstack-cinder-scheduler.service

openstack卷服务列表

如果此处'Not Found (HTTP 404)',请查看检查ha1的'/etc/haproxy/haproxy.cfg'是否正确

[root@controller2 ~]# openstack volume service list
+------------------+-------------+------+---------+-------+----------------------------+
| Binary           | Host        | Zone | Status  | State | Updated At                 |
+------------------+-------------+------+---------+-------+----------------------------+
| cinder-scheduler | controller2 | nova | enabled | up    | 2022-10-17T08:27:36.000000 |
+------------------+-------------+------+---------+-------+----------------------------+

mysql

已经配置了yum源、

[root@mysql ~]# ll /etc/yum.repos.d/
total 52
-rw-r--r--. 1 root root 1664 Nov 23  2018 CentOS-Base.repo
-rw-r--r--  1 root root  956 Jun 19  2019 CentOS-Ceph-Nautilus.repo
-rw-r--r--. 1 root root 1309 Nov 23  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Nov 23  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Nov 23  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Nov 23  2018 CentOS-Media.repo
-rw-r--r--  1 root root  717 Mar 24  2020 CentOS-NFS-Ganesha-28.repo
-rw-r--r--  1 root root 1290 Apr 29  2019 CentOS-OpenStack-stein.repo
-rw-r--r--  1 root root  612 Feb  1  2019 CentOS-QEMU-EV.repo
-rw-r--r--. 1 root root 1331 Nov 23  2018 CentOS-Sources.repo
-rw-r--r--  1 root root  353 Jul 31  2018 CentOS-Storage-common.repo
-rw-r--r--. 1 root root 5701 Nov 23  2018 CentOS-Vault.repo

安装包

[root@mysql ~]# yum install lvm2 device-mapper-persistent-data -y

启动服务并设置为开机启动

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

添加硬盘-SCSI-创建新虚拟机磁盘

图片.png

#TAB补全可以看到有几个host
[root@mysql ~]# echo "- - -" > /sys/class/scsi_host/host
host0/ host1/ host2/ 

#在每个host里面都扫描一次、然后lsblk就能看看到新增的硬盘
[root@mysql ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@mysql ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@mysql ~]# echo "- - -" > /sys/class/scsi_host/host2/scan

[root@mysql ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0  512M  0 part /boot
└─sda2            8:2    0 99.5G  0 part 
  ├─centos-root 253:0    0 97.5G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0  500G  0 disk     <--新增的硬盘
sr0              11:0    1  918M  0 rom 

创建LVM物理卷

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

创建LVM卷组

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

在设备部分,添加一个过滤器,该过滤器接受/dev/sdb设备并拒绝所有其他设备

[root@mysql ~]# vim /etc/lvm/lvm.conf

devices {
...
filter = [ "a/sdb/", "r/.*/" ]    <--注意磁盘是sdb就写sdb,sdc就写sdc

安装包

[root@mysql ~]# yum install openstack-cinder targetcli python-keystone -y

编辑/etc/cinder/cinder.conf文件

[root@mysql ~]# vim /etc/cinder/cinder.conf

[DEFAULT]
transport_url = rabbit://openstack:openstack123@openstack.123.net
auth_strategy = keystone
enabled_backends = lvm    <--调用的后端存储是那个、再下面[lvm]名字要一致
glance_api_servers = http://openstack.123.net:9292

[database]
connection = mysql+pymysql://cinder:cinder123@openstack.123.net/cinder

[keystone_authtoken]
www_authenticate_uri = http://openstack.123.net:5000
auth_url = http://openstack.123.net:5000
memcached_servers = openstack.123.net:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = cinder

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

[lvm]    <--
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
target_protocol = iscsi
target_helper = lioadm
volume_backend_name=Openstack-lvm     <--加上自定义名称,做多存储区分

启动cinder-volume服务并设置开机启动

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

controller2

控制端验证、此时应该有两个服务

[root@controller2 ~]# openstack volume service list
+------------------+-------------+------+---------+-------+----------------------------+
| Binary           | Host        | Zone | Status  | State | Updated At                 |
+------------------+-------------+------+---------+-------+----------------------------+
| cinder-scheduler | controller2 | nova | enabled | up    | 2022-10-17T17:01:01.000000 |
| cinder-volume    | mysql@lvm   | nova | enabled | up    | 2022-10-17T17:00:54.000000 |
+------------------+-------------+------+---------+-------+----------------------------+

图片.png

新建2个虚拟机 图片.png

图片.png

图片.png

图片.png

图片.png