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
为cinder用户赋予admin角色,没有任何输出
[root@controller /]# openstack role add --project service --user cinder admin
创建cinderv2和cinderv3服务项:块存储服务要求2个服务项
openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
创建块存储服务API的endpoints:
openstack endpoint create --region RegionOne \
volumev2 public http://controller:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne \
volumev2 internal http://controller:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne \
volumev2 admin http://controller:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne \
volumev3 admin http://controller:8776/v3/%\(project_id\)s
配置和安装组件:
1、安装包:
2、编辑/etc/cinder/cinder.conf文件完成以下设置:
在[database]部分,配置到数据库的连接
[database]
connection = mysql+pymysql://cinder:123456@controller/cinder
在[DEFAULT]部分,配置到RabbitMQ消息队列的访问:
transport_url = rabbit://openstack:123456@controller
在[DEFAULT]和[keystone_authtoken]部分,配置身份验证服务:
[DEFAULT]
auth_strategy = keystone
[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
在[DEFAULT]部分配置my_ip选项:
[DEFAULT]
my_ip = 10.0.0.11 添加
1、在[oslo_concurrency]部分配置锁定路径
[oslo_concurrency].
lock_path = /var/lib/cinder/tmp
1、初始生成存储数据库
[root@controller /]# su -s /bin/sh -c "cinder-manage db sync" cinder
1、配置计算使用块存储:
编辑/etc/nova/nova.conf文件
[cinder]
os_region_name = RegionOne
完成安装:
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服务器
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/.*/"]
安装和配置组件:
1、安装数据包:
2、配置/etc/cinder/cinder.conf文件完成以下设置:
在[database]部分,配置到数据库的连接
[database]
connection = mysql+pymysql://cinder:123456@controller/cinder
在[DEFAULT]部分,配置到RabbitMQ消息队列的访问:
[DEFAULT]
transport_url = rabbit://openstack:123456@controller
在[DEFAULT]和[keystone_authtoken]部分,配置身份验证服务:
[DEFAULT]
auth_strategy = keystone
[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
在[DEFAULT]部分配置my_ip选项:
[DEFAULT]
.my_ip = 10.0.0.41
在[lvm]部分,配置LVM后端LVM驱动,卷组cinder-volumes,iSCSI协议和正确的iSCSI服务,如果[lvm]不存在就创建它。
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm
在[DEFAULT]部分,激活LVM后端。
[DEFAULT]
enabled_backends = lvm
后端名称是任意的。作为一个例子,这个向导使用驱动程序的名称作为后端的名称。
在[DEFAULT]部分,配置本地镜像服务的API
[DEFAULT]
glance_api_servers = http://controller:9292
在[oslo_concurrency]部分配置锁定路径:
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
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