OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++十一、Openstack块存储服务(cinder)

十一、Openstack块存储服务(cinder)


配置:我在计算点添加了一块硬盘(sdb)用来当块存储用,在我这搭建中控制节点也就是块存储节点了


简单介绍:

cinder主要有四个组件:cinder-api、cinder-volume、cinder-scheduler、cinder-backup

cinder-api:接受API请求,并将其路由到cinder-volume执行

cinder-volume:与块存储服务cinder-scheduler的进程进行直接交互

cinder-scheduler:选择最优存储提供节点来创建卷

cinder-backup:提供任何种类备份卷到一个备份存储提供者



后面操作都将在控制节点上


1.进入SQL创建cinder数据库并授予权限
mysql -uroot -p

CREATE DATABASE cinder;

GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY '123456';  
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY '123456';

2.创建cinder用户(需要管理员权限)
. admin-openrc
openstack user create --domain default --password-prompt cinder

[root@controller ~]# . admin-openrc
[root@controller ~]# openstack user create --domain default --password-prompt cinder
User Password:
Repeat User Password:
+-----------+----------------------------------+
| Field     | Value                            |
+-----------+----------------------------------+
| domain_id | b24b3093654b4ba4be706fe675a03b2d |
| enabled   | True                             |
| id        | abf7418a5e90422cab6ae4df523cd850 |
| name      | cinder                           |
+-----------+----------------------------------+


3.添加 admin 角色到 cinder 用户上

openstack role add --project service --user cinder admin

此操作无返回


4.创建 cinder 和 cinderv2 服务实体

openstack service create --name cinder --description "OpenStack Block Storage" volume

[root@controller ~]# openstack service create --name cinder \
>   --description "OpenStack Block Storage" volume
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | 148fef5f0fae4569b7f7d89d855c7066 |
| name        | cinder                           |
| type        | volume                           |
+-------------+----------------------------------+

openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2

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

5. 创建块设备存储服务的 API 入口点 (括号前面有“  \ ”)

openstack endpoint create --region RegionOne volume public http://controller:8776/v1/%\ (tenant_id\ )s

openstack endpoint create --region RegionOne volume internal http://controller:8776/v1/%\ (tenant_id\ )s

openstack endpoint create --region RegionOne  volume admin http://controller:8776/v1/%\ (tenant_id\ )s


volume:

[root@controller ~]# openstack endpoint create --region RegionOne volume public http://controller:8776/v1/%(tenant_id)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | 764744c5a9ce488f98d65f6d9c38b86a        |
| interface    | public                                  |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | 148fef5f0fae4569b7f7d89d855c7066        |
| service_name | cinder                                  |
| service_type | volume                                  |
| url          | http://controller:8776/v1/%(tenant_id)s |
+--------------+-----------------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne volume internal http://controller:8776/v1/%(tenant_id)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | 563d6c54f3cd4ad293cd86aec1a7c20f        |
| interface    | internal                                |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | 148fef5f0fae4569b7f7d89d855c7066        |
| service_name | cinder                                  |
| service_type | volume                                  |
| url          | http://controller:8776/v1/%(tenant_id)s |
+--------------+-----------------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne  volume admin http://controller:8776/v1/%(tenant_id)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | ad5bf2d6772046958d6cbba29af5201d        |
| interface    | admin                                   |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | 148fef5f0fae4569b7f7d89d855c7066        |
| service_name | cinder                                  |
| service_type | volume                                  |
| url          | http://controller:8776/v1/%(tenant_id)s |
+--------------+-----------------------------------------+


volume2:

openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(tenant_id\)s

openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(tenant_id\)s

openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(tenant_id\)s



[root@controller ~]# openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%(tenant_id)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | aa5366acb5634b6dbd4dd3e86d8115be        |
| interface    | public                                  |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | a041d71904364c59a5e65ef49450db70        |
| service_name | cinderv2                                |
| service_type | volumev2                                |
| url          | http://controller:8776/v2/%(tenant_id)s |
+--------------+-----------------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%(tenant_id)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | 0f0ea4d5f5914717b196f8b7cb6d17ae        |
| interface    | internal                                |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | a041d71904364c59a5e65ef49450db70        |
| service_name | cinderv2                                |
| service_type | volumev2                                |
| url          | http://controller:8776/v2/%(tenant_id)s |
+--------------+-----------------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%(tenant_id)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | c616c24c31e34d20b6e860e609109ceb        |
| interface    | admin                                   |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | a041d71904364c59a5e65ef49450db70        |
| service_name | cinderv2                                |
| service_type | volumev2                                |
| url          | http://controller:8776/v2/%(tenant_id)s |
+--------------+-----------------------------------------+



安装配置:


1.安装软件包

yum install openstack-cinder lvm2 targetcli python-keystone

yum install openstack-cinder lvm2 targetcli python-keystone

2.修改配置文件/etc/cinder/cinder.conf


vi /etc/cinder/cinder.conf

[DEFAULT]
rpc_backend = rabbit#启用消息队列
auth_strategy = keystone#启用keystone认证
my_ip = 192.168.100.10#控制节点管理接口ip地址
enabled_backends = lvm#启用 LVM 后端
glance_api_servers = http://controller:9292#配置镜像api位置
配置数据库访问

[database]
connection = mysql+pymysql://cinder:123456@controller/cinder

配置消息队列

[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = 123456

配置认证服务访问

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

[lvm](配置文件中没有直接添加在最后,不放心自己看看)
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver#配置LVM后端以LVM驱动结束
volume_group = cinder-volumes#卷组
iscsi_protocol = iscsi#配置iSCSI服务
iscsi_helper = lioadm#配置iSCSI服务


配置锁路径

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


3.初始化块设备服务的数据库

su -s /bin/sh -c "cinder-manage db sync" cinder


[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".
2017-11-16 10:58:23.327 16679 WARNING py.warnings [-] /usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py:241: NotSupportedWarning: Configuration option(s) ['use_tpool'] not supported
  exception.NotSupportedWarning

2017-11-16 10:58:24.219 16679 INFO migrate.versioning.api [-] 0 -> 1... 
2017-11-16 10:58:25.740 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:25.740 16679 INFO migrate.versioning.api [-] 1 -> 2... 
2017-11-16 10:58:26.533 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:26.534 16679 INFO migrate.versioning.api [-] 2 -> 3... 
2017-11-16 10:58:26.573 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:26.574 16679 INFO migrate.versioning.api [-] 3 -> 4... 
2017-11-16 10:58:27.002 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:27.003 16679 INFO migrate.versioning.api [-] 4 -> 5... 
2017-11-16 10:58:27.315 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:27.315 16679 INFO migrate.versioning.api [-] 5 -> 6... 
...
...
...
2017-11-16 10:58:48.228 16679 INFO migrate.versioning.api [-] 68 -> 69... 
2017-11-16 10:58:48.248 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:48.248 16679 INFO migrate.versioning.api [-] 69 -> 70... 
2017-11-16 10:58:48.262 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:48.263 16679 INFO migrate.versioning.api [-] 70 -> 71... 
2017-11-16 10:58:48.274 16679 INFO migrate.versioning.api [-] done
2017-11-16 10:58:48.277 16679 INFO migrate.versioning.api [-] 71 -> 72... 
2017-11-16 10:58:48.289 16679 INFO migrate.versioning.api [-] done


4.创建LVM 物理卷 /dev/sdb


pvcreate /dev/sdb

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

vgcreate cinder-volumes /dev/sdb

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

5.修改配置文件/etc/lvm/lvm.conf


vi /etc/lvm/lvm.conf

找到添加一个过滤器

devices {
filter = [ "a/sdb/", "r/.*/"]

}



完成安装:


控制节点上启动:

systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service openstack-cinder-volume.service target.service lvm2-lvmetad.service

systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service openstack-cinder-volume.service target.service lvm2-lvmetad.service


[root@controller ~]# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service openstack-cinder-volume.service target.service lvm2-lvmetad.service
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-cinder-api.service to /usr/lib/systemd/system/openstack-cinder-api.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-cinder-scheduler.service to /usr/lib/systemd/system/openstack-cinder-scheduler.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-cinder-volume.service to /usr/lib/systemd/system/openstack-cinder-volume.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.
Created symlink from /etc/systemd/system/sysinit.target.wants/lvm2-lvmetad.service to /usr/lib/systemd/system/lvm2-lvmetad.service.

[root@controller ~]# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service openstack-cinder-volume.service target.service lvm2-lvmetad.service


计算节点修改配置文件/etc/nova/nova.conf


vi /etc/nova/nova.conf

配置计算节点使用块设备存储

[cinder]
os_region_name = RegionOne

重启计算API

systemctl restart openstack-nova-api.service



验证:


1.获取管理员权限

. admin-openrc


2.列出服务组件以验证是否每个进程都成功启动
cinder service-list


[root@controller ~]# . admin-openrc 
[root@controller ~]# cinder service-list
+------------------+----------------+------+---------+-------+----------------------------+-----------------+
|      Binary      |      Host      | Zone |  Status | State |         Updated_at         | Disabled Reason |
+------------------+----------------+------+---------+-------+----------------------------+-----------------+
| cinder-scheduler |   controller   | nova | enabled |   up  | 2017-11-16T16:18:40.000000 |        -        |
|  cinder-volume   | controller@lvm | nova | enabled |   up  | 2017-11-16T16:18:42.000000 |        -        |
+------------------+----------------+------+---------+-------+----------------------------+-----------------+


添加一块云盘:


1.登陆管理员账号——选择计算——卷——创建云硬盘





2.创建云硬盘




创建完成




3.选择编辑云硬盘———管理连接





4.使云硬盘连接到云主机





完成





5.虚拟机控制台查看挂载的盘

你会发现多了一块盘叫vdb





  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值