控制节点
首先创建数据库
[root@controller ~]# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE cinder;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
-> IDENTIFIED BY 'cinder';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'cinder';
使用admin用户进行用户添加
[root@controller ~]# . admin-openrc
[root@controller ~]# openstack user create --domain default --password cinder cinder
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 82a2a37909df4fd287c92414cbaab480 |
| name | cinder |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
[root@controller ~]# openstack role add --project service --user cinder admin ##将cinder用户添加到admin中
创建两个服务实体
[root@controller ~]# openstack service create --name cinderv2 \
> --description "OpenStack Block Storage" volumev2
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage |
| enabled | True |
| id | 7729d2d79e894108b7b59d4fbbfb135a |
| 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 | 569c29cda03c423ebeafe28e593d4b11 |
| name | cinderv3 |
| type | volumev3 |
+-------------+----------------------------------+
对于创建的两个版本服务实体分别创建api端点
##V2版本
[root@controller ~]# openstack endpoint create --region RegionOne \
> volumev2 public http://controller:8776/v2/%\(project_id\)s
+--------------+------------------------------------------+
| Field | Value |
+--------------+------------------------------------------+
| enabled | True |
| id | 3fcca98b89644901b86dcb881df9fe02 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 7729d2d79e894108b7b59d4fbbfb135a |
| 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 | 008e3894d43a44749f3436552296a38b |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 7729d2d79e894108b7b59d4fbbfb135a |
| 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 | d39a05815bcd462697bb68c6e9450c8b |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 7729d2d79e894108b7b59d4fbbfb135a |
| service_name | cinderv2 |
| service_type | volumev2 |
| url | http://controller:8776/v2/%(project_id)s |
+--------------+------------------------------------------+
##V3版本
[root@controller ~]# openstack endpoint create --region RegionOne \
> volumev3 public http://controller:8776/v3/%\(project_id\)s
+--------------+------------------------------------------+
| Field | Value |
+--------------+------------------------------------------+
| enabled | True |
| id | 38ce110e33e54b17a2ec6f39b4e35f40 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 569c29cda03c423ebeafe28e593d4b11 |
| 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 | 0f5c2937fc44469aa1ef5d088b145592 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 569c29cda03c423ebeafe28e593d4b11 |
| 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 | 1234c7ce80384f288107d918ac067619 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 569c29cda03c423ebeafe28e593d4b11 |
| service_name | cinderv3 |
| service_type | volumev3 |
| url | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+
安装相应软件
[root@controller ~]# yum install openstack-cinder -y
配置文件
[root@controller ~]# vim /etc/cinder/cinder.conf
[database]
connection = mysql+pymysql://cinder:cinder@controller/cinder
[DEFAULT]
transport_url = rabbit://openstack:openstack@controller
auth_strategy = keystone
my_ip = 192.168.223.11
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_id = default
user_domain_id = default
project_name = service
username = cinder
password = cinder
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
同步数据库
[root@controller ~]# su -s /bin/sh -c "cinder-manage db sync" cinder
Option "logdir" from group "DEFAULT" is deprecated. Use option "log-dir" from group "DEFAULT".
##这个不要管
配置Compute以使用块存储
[root@controller ~]# vim /etc/nova/nova.conf
[cinder]
os_region_name = RegionOne
[root@controller ~]# systemctl restart openstack-nova-api.service
[root@controller ~]# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
[root@controller ~]# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
再创建一个虚拟机,内存cpu无所谓,在该虚拟机上面再加一块20G的硬盘
下来要在新的虚拟机上面同步时间。
块存储节点
安装软件并启动
[root@block1 ~]# yum install lvm2 device-mapper-persistent-data
[root@block1 ~]# systemctl enable lvm2-lvmetad.service
[root@block1 ~]# systemctl start lvm2-lvmetad.service
创建LVM
[root@block1 ~]# pvcreate /dev/sdb
[root@block1 ~]# vgcreate cinder-volumes /dev/sdb
[root@block1 ~]# vim /etc/lvm/lvm.conf ##设置过滤
filter = [ "a/sda/", "a/sdb/", "r/.*/"]
安全并配置组件
[root@block1 ~]# yum install openstack-cinder targetcli python-keystone
配置文件
[root@block1 ~]# vim /etc/cinder/cinder.conf
[database]
connection = mysql+pymysql://cinder:cinder@controller/cinder
[DEFAULT]
transport_url = rabbit://openstack:openstack@controller
auth_strategy = keystone
my_ip = 192.168.223.13
enabled_backends = lvm
glance_api_servers = http://controller:9292
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_id = default
user_domain_id = default
project_name = service
username = cinder
password = cinder
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
完成安装
[root@block1 ~]# systemctl enable openstack-cinder-volume.service target.service
[root@block1 ~]# systemctl start openstack-cinder-volume.service target.service
安装完成进行验证
[root@controller ~]# openstack volume service list
+------------------+------------+------+---------+-------+----------------------------+
| Binary | Host | Zone | Status | State | Updated At |
+------------------+------------+------+---------+-------+----------------------------+
| cinder-scheduler | controller | nova | enabled | up | 2020-04-12T09:11:00.000000 |
| cinder-volume | block1@lvm | nova | enabled | up | 2020-04-12T09:10:55.000000 |
+------------------+------------+------+---------+-------+----------------------------+
这时上面的存储从有两个就已经完成
接下来进入web界面就可以看到侧边栏出现了卷的选项
同时我们可以在web界面创建一个卷
将卷创建完毕,在卷的选项中直接选择动作中的管理连接,将实例添加上去。下来我们可以远程连接进行使用。
随便找一个节点
[root@controller ~]# ssh root@192.168.223.23
Warning: Permanently added '192.168.223.23' (ECDSA) to the list of known hosts.
Please login as the user "centos" rather than the user "root". ##远程登陆不能使用root用户
[root@controller ~]# ssh centos@192.168.223.23
[centos@vm3 ~]$ sudo fdisk -l ##vdb就是我们挂载上的卷
磁盘 /dev/vda:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00019fc6
设备 Boot Start End Blocks Id System
/dev/vda1 * 2048 10485759 5241856 83 Linux
磁盘 /dev/vdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
格式化
[centos@vm3 ~]$ sudo mkfs.ext4 /dev/vdb
格式和完成就可以进行挂载
[centos@vm3 ~]$ sudo mount /dev/vdb /data/:
[centos@vm3 ~]$ sudo blkid
/dev/vda1: UUID="10a2f34a-0adc-4a0e-9a5b-697fca149d04" TYPE="ext4"
/dev/vdb: UUID="6d6d64a5-f6d0-44e6-bbd6-61120184e14a" TYPE="ext4"
[centos@vm3 ~]$ sudo vi /etc/fstab
UUID="6d6d64a5-f6d0-44e6-bbd6-61120184e14a" /data ext4 defaults 0 0
下来可以复制一些东西放在硬盘中,下一步就要对硬盘进行拉伸。
[centos@vm3 data]$ sudo cp /etc/* .
复制完成首先将卷取消挂载
[centos@vm3 ~]$ sudo umount /data
下来到web界面中的卷,点击管理以连接中选择分离卷。
分离完成选择扩展卷。点击扩展。扩展完成再将卷连接到云主机中,之后将卷挂载再查看。
[centos@vm3 ~]$ sudo fdisk -l ##卷已经从5G变成了10G
磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x7df9101f
将卷再进行挂载
[centos@vm3 ~]$ df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 234M 0 234M 0% /dev
tmpfs 244M 0 244M 0% /dev/shm
tmpfs 244M 8.5M 236M 4% /run
tmpfs 244M 0 244M 0% /sys/fs/cgroup
/dev/vda1 4.8G 1.3G 3.3G 28% /
tmpfs 49M 0 49M 0% /run/user/0
tmpfs 49M 0 49M 0% /run/user/1000
/dev/vdb 9.8G 24M 9.3G 1% /data