Cinder安装

  块存储服务cinder提供了块存储给instance使用,这种存储的提供和消耗的方法是由块存储驱动确定的,支持多种可用驱动:NAS/SAN, NFS, iSCSI, Ceph和更多。

  块存储API和调度程序服务通常在控制器节点上运行。根据所使用的驱动程序,卷服务可以在控制器节点、计算节点或独立存储节点上运行。

  本节描述如何为块存储服务安装和配置存储节点。为简单起见,此配置操作一个带有空的本地块存储设备的存储节点,使用/dev/sdb。在设备上使用LVM驱动提供一个逻辑卷并通过iSCSI提供。

安装和配置存储节点

安装和配置控制节点:

前期准备:

1、创建数据库并授权:

MariaDB [(none)]> CREATE DATABASE cinder;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
   ->  IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%'    IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)

1、执行admin凭证以访问命令行

[root@controller /]# source  admin-openrc

创建cinder用户

openstack user create --domain default --password-prompt cinder

wKiom1nTfuLQw5hHAABPt7BJvN8796.png-wh_50

cinder用户赋予admin角色,没有任何输出

[root@controller /]# openstack role add --project service --user cinder admin

创建cinderv2cinderv3服务项:块存储服务要求2个服务项

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

wKioL1nTfr6isXenAABTz6a3RsI604.png-wh_50

openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3

wKiom1nTfz-ig2MUAABbyJvxYTQ802.png-wh_50

创建块存储服务APIendpoints:

openstack endpoint create --region RegionOne \

  volumev2 public http://controller:8776/v2/%\(project_id\)s

wKiom1nTf13zSX_JAACTeMlQvLs251.png-wh_50

openstack endpoint create --region RegionOne \

volumev2 internal http://controller:8776/v2/%\(project_id\)s

wKiom1nTf5CS6ZXeAACRsK2nhSM601.png-wh_50

openstack endpoint create --region RegionOne \

 volumev2 admin http://controller:8776/v2/%\(project_id\)s

wKioL1nTf1-TVPdoAACT4GIzVks013.png-wh_50

openstack endpoint create --region RegionOne \

volumev3 admin http://controller:8776/v3/%\(project_id\)s

wKiom1nTf_nRI7tvAACUqvZ6HNA700.png-wh_50

配置和安装组件:

1、安装包:

2、编辑/etc/cinder/cinder.conf文件完成以下设置:

[database]部分,配置到数据库的连接

[database]

connection = mysql+pymysql://cinder:123456@controller/cinder

wKioL1nTgBDwqGskAAAjG5pMbKE585.png-wh_50

[DEFAULT]部分,配置到RabbitMQ消息队列的访问:

transport_url = rabbit://openstack:123456@controller

wKiom1nTgI-hS7toAAAbczRlfWc056.png-wh_50

[DEFAULT][keystone_authtoken]部分,配置身份验证服务:

[DEFAULT]

auth_strategy = keystone

[keystone_authtoken]

wKiom1nTgK-AEVp1AAAZ7l9X0Sg538.png-wh_50

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

wKiom1nTgNTTo-xdAAAhP7Axxyg659.png-wh_50

[DEFAULT]部分配置my_ip选项:

[DEFAULT]

my_ip = 10.0.0.11  添加

1、[oslo_concurrency]部分配置锁定路径

[oslo_concurrency].

lock_path = /var/lib/cinder/tmp

wKioL1nTgNKDOHMyAAAKcWyXk5o663.png-wh_50

1、初始生成存储数据库

[root@controller /]# su -s /bin/sh -c "cinder-manage db sync" cinder

wKiom1nTgX2hx79wAAAVzbOvLCM882.png-wh_50

1、配置计算使用块存储:

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

[cinder]

os_region_name = RegionOne

wKioL1nTgXyytX76AAAHbbWTa1A026.png-wh_50

完成安装:

 1、重启nova计算服务

 2、启动块服务并设置开机启动

root@controller /]# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
[root@controller /]# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service

存储节点配置安装

环境准备:在存储节点block1上操作

   1、安装规划配置IP地址

   2、主机名配置和/etc/hosts文件配置,要确定可以解析

   3、配置NTP服务,安装chrony,并配置controller作为NTP服务器

wKioL1nTgefg8mCxAAAb6QWc5o8002.png-wh_50

4、配置基本的openstack包环境:

 um install centos-release-openstack-pike  安装pike

 yum upgrade 更新,如果升级过程包含一个新内核,请重启主机以激活它。

 yum install python-openstackclient 安装openstack客户端

 yum install openstack-selinux  openstack服务自动管理Selinux中的安全策略

准备存储设备:

1、安装支持单元包:

安装LVM

Yum -y install lvm

[root@block1 /]# systemctl enable lvm2-lvmetad.service
[root@block1 /]# systemctl start lvm2-lvmetad.service

1、创建LVM物理卷/dev/sdb

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

1、创建LVM卷组cinder-volumes

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

1、只有实例才能访问块存储卷,然而,底层操作系统管理关于卷的管理设备,默认LVM卷扫描工具会为块存储扫描 /dev目录。如果租户使用LVM,扫描工具会检测这些卷和缓存他们,这会造成各种各样的问题,必须重新配置LVM仅扫描包含cinder-volumes卷组的设备,配置/etc/lvm/lvm.conf文件完成以下设置:

   devices部分,添加过滤器接受/dev/sdb设备,拒绝其它设备:

每个过滤器组中的元素都以a”开头,即为 accept,或以b开头,即为reject,并且包括一个设备名称的正则表达式规则。过滤器组必须以 r/.*/ 结束,过滤所有其它剩余设备。可以通过vgs -vvv命令来测试过滤器。

注意:

如果你的存储节点的操作系统也使用LVM,你必须要添加相关设备到过滤器中,例如,如果/dev/sda包含操作系统:

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

类似,如果你的计算节点的操作系统也使用LVM,你也必须在所有的这些计算节点上配置/etc/lvm/lvm.conf文件设置过滤器,只包含操作系统磁盘。例如,如果/dev/sda包含操作系统: vim  /etc/lvm/lvm.conf

 

filter =  [ "a/sda/", "r/.*/"]

wKioL1nU0teRxLAaAABPwP-nvsQ002.png-wh_50

安装和配置组件:

1、安装数据包:

2、配置/etc/cinder/cinder.conf文件完成以下设置:

[database]部分,配置到数据库的连接

[database]

connection = mysql+pymysql://cinder:123456@controller/cinder

wKiom1nU0zbhKaoDAAAmjWCtMtM222.png-wh_50

[DEFAULT]部分,配置到RabbitMQ消息队列的访问:

[DEFAULT]

transport_url = rabbit://openstack:123456@controller

wKiom1nU00XC32r4AAAhp9pnhIU755.png-wh_50

[DEFAULT][keystone_authtoken]部分,配置身份验证服务:

[DEFAULT]

auth_strategy = keystone

wKioL1nU0w6TjvHDAAAoTE_RHqY434.png-wh_50

[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

wKioL1nU0yDy1EPeAABi8QkYlOQ627.png-wh_50

[DEFAULT]部分配置my_ip选项:

[DEFAULT]

.my_ip = 10.0.0.41

wKioL1nU0zOyAGCmAAAw0qOMhGY943.png-wh_50

[lvm]部分,配置LVM后端LVM驱动,卷组cinder-volumesiSCSI协议和正确的iSCSI服务,如果[lvm]不存在就创建它。

[lvm]

volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver

volume_group = cinder-volumes

iscsi_protocol = iscsi

iscsi_helper = lioadm

wKiom1nU046SWXbPAAA3syYKqtw221.png-wh_50

[DEFAULT]部分,激活LVM后端。

[DEFAULT]

enabled_backends = lvm

wKioL1nU01XQ_KYKAAAgmd_okJY334.png-wh_50

后端名称是任意的。作为一个例子,这个向导使用驱动程序的名称作为后端的名称。

[DEFAULT]部分,配置本地镜像服务的API

[DEFAULT]

glance_api_servers = http://controller:9292

wKiom1nU067CMVZ4AAAjfwglnVo884.png-wh_50

[oslo_concurrency]部分配置锁定路径:

[oslo_concurrency]

lock_path = /var/lib/cinder/tmp

wKioL1nU04DDp-CkAAAf4q4SyyY413.png-wh_50

1、完成安装

启动并设置开机启动:

[root@controller /]# systemctl enable openstack-cinder-volume.service target.service
[root@controller /]# systemctl start openstack-cinder-volume.service target.service

检查存储服务:

在控制节点controller上执行以下命令:

openstack volume service list

wKioL1nU06GBLo87AABeIRneKME115.png-wh_50