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 |
+------------------+---------------+------+---------+-------+----------------------------+
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
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
12.12 登录实例,并使用以下fdisk命令验证该卷是否作为/dev/vdb块存储设备
sudo fdisk -l
分区并格式化新添加的/dev/vdb
fdisk /dev/vdb
mk2fs.ext4 /dev/vdb1
上一篇: 将数字变成0的操作次数