openstack(6) 块存储服务

控制节点

首先创建数据库

[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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值