一、cinder介绍
一般 cinder-api 和 cinder-scheduler 安装在控制节点上, cinder-volume 安装在存储节点上。
二、数据库配置
# 在任意控制节点创建数据库
mysql -uroot -p12345678
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'cinder_dbpass';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'cinder_dbpass';
flush privileges;
exit;
三、 创建cinder-api
认证信息的创建:
# 在任意控制节点操作 # 调用cinder服务需要认证信息,加载环境变量脚本即可 source admin-openrc.sh 创建cinder用户: openstack user create --domain default --password=cinder_pass cinder #此处密码我设置了cinder_pass 将cinder加入到admin组和service项目 openstack role add --project service --user cinder admin
创建cinder服务实体
# cinder服务实体类型”volume”; # 创建cinder/cinder2两个服务实体 openstack service create --name cinder --description "OpenStack Block Storage" volume openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
查看创建情况:
# 注意--region与初始化admin用户时生成的region一致; 可以通过以下方式查。
# api地址统一采用vip,如果public/internal/admin分别使用不同的vip,请注意区分; # cinder-api 服务类型为volume; # cinder-api后缀为用户project-id,可通过”openstack project list”查看
# v1 public api [root@controller01 ~]# openstack endpoint create --region RegionOne volume public http://10.1.80.60:8776/v1/%(tenant_id)s # v1 internal api [root@controller01 ~]# openstack endpoint create --region RegionOne volume internal http://10.1.80.60:8776/v1/%(tenant_id)s # v1 admin api [root@controller01 ~]# openstack endpoint create --region RegionOne volume admin http://10.1.80.60:8776/v1/%(tenant_id)s # v2 public api [root@controller01 ~]# openstack endpoint create --region RegionOne volumev2 public http://10.1.80.60:8776/v2/%(tenant_id)s # v2 internal api [root@controller01 ~]# openstack endpoint create --region RegionOne volumev2 internal http://10.1.80.60:8776/v2/%(tenant_id)s # v2 admin api [root@controller01 ~]# openstack endpoint create --region RegionOne volumev2 admin http://10.1.80.60:8776/v2/%(tenant_id)s
查看创建情况:
四、安装并配置cinder
# 在全部控制节点安装cinder服务,以controller01节点为例 [root@controller01 ~]# yum install openstack-cinder -y
配置cinder.conf
在全部控制节点操作,以controller01节点为例;
注意”my_ip”参数,根据节点修改;
注意cinder.conf文件的权限:root:cinder
[database] connection = mysql+pymysql://cinder:cinder_dbpass@localhost/cinder #配置数据库 [DEFAULT] rpc_backend = rabbit #消息队列配置 [oslo_messaging_rabbit] rabbit_host = 10.1.80.60 rabbit_userid = openstack rabbit_password = openstack2018 [DEFAULT] auth_strategy = keystone #keystone配置 log_dir = /var/log/cinder [keystone_authtoken] auth_uri = http://10.1.80.60:5000 auth_url = http://10.1.80.60:35357 memcached_servers = 10.1.80.60:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = cinder password = cinder_pass [oslo_concurrency] #配置锁路径 lock_path = /var/lib/cinder/tmp glance_host = 10.1.80.60 #glance地址 iscsi_ip_address = 10.1.80.110 #iscsi地址
配置nova.conf
# 在全部控制节点操作 # 配置只涉及nova.conf的”[cinder]”字段; # 加入对应regiong [root@controller01 ~]# vim /etc/nova/nova.conf [cinder] os_region_name=RegionTest
五、同步cinder数据库
# 任意控制节点操作; # 忽略部分”deprecation”信息 [root@controller01 ~]# su -s /bin/sh -c "cinder-manage db sync" cinder
六、启动服务并验证
# 全部控制节点操作; # 变更nova配置文件,首先需要重启nova服务 [root@controller01 ~]# systemctl restart openstack-nova-api.service # 开机启动 [root@controller01 ~]# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service # 启动并查看服务状态 systemctl restart openstack-cinder-api.service systemctl restart openstack-cinder-scheduler.service systemctl status openstack-cinder-api.service systemctl status openstack-cinder-scheduler.service
验证
# 查看agent服务; # 或:cinder service-list [root@controller01 ~]# openstack volume service list
七、cinder 存储节点配置
1、安装并启动lvm2软件包
yum install lvm2 -y #启动LVM的metadata服务并且设置该服务随系统启动 systemctl enable lvm2-lvmetad.service systemctl start lvm2-lvmetad.service systemctl status lvm2-lvmetad.service
2、添加一块硬盘
创建LVM 物理卷 /dev/sdb
pvcreate
/dev/sdb
创建 LVM 卷组 cinder-volumes
vgcreate cinder-volumes
/dev/sdb
编辑``/etc/lvm/lvm.conf``文件并完成下面的操作:
在devices部分,添加一个过滤器,只接受/dev/sdb设备,拒绝其他所有设备
[root@linux-node2 ~]# vim /etc/lvm/lvm.conf filter = [ "a/sdb/", "r/.*/"] 其中:a 表示同意, r 是不同意 --------------------------------------------------------------------------------------------------------- 上面的home分区没有做lvm,设备名是/dev/sda5,则/etc/lvm/lvm.conf可以如上设置。 如果home分区做了lvm,“df -h”命令查看home分区的设备名比如是/dev/mapper/centos-home 那么/etc/lvm/lvm.conf这里就要这样配置了: filter = [ "a|^/dev/mapper/centos-home$|", "r|.*/|" ]
3、安装cinder组件软件包
yum install centos-release-openstack-queens -y yum install openstack-cinder targetcli python-keystone -y
修改配置文件
[database] connection = mysql+pymysql://cinder:cinder_dbpass@10.1.80.60/cinder #配置数据库 [DEFAULT] rpc_backend = rabbit #消息队列配置 [oslo_messaging_rabbit] rabbit_host = 10.1.80.60 rabbit_userid = openstack rabbit_password = openstack2018 [DEFAULT] auth_strategy = keystone #keystone配置 log_dir = /var/log/cinder [keystone_authtoken] auth_uri = http://10.1.80.60:5000 auth_url = http://10.1.80.60:35357 memcached_servers = 10.1.80.60:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = cinder password = cinder_pass [oslo_concurrency] #配置锁路径 lock_path = /var/lib/cinder/tmp glance_host = 10.1.80.60 #glance地址 iscsi_ip_address = 10.1.80.110 #iscsi地址 [lvm] volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver # 驱动 volume_group = cinder-volumes # vg组名称 iscsi_protocol = iscsi # iSCSI协议 iscsi_helper = lioadm # iSCSI管理工具 volume_backend_name=iSCSI-Storage # 名称在 [DEFAULT] 区域,配置镜像服务 API 的位置 [DEFAULT] enabled_backends = lvm [DEFAULT] glance_api_servers = http://10.1.80.60:9292
启动块存储卷服务及其依赖的服务,并将其配置为随系统启动
systemctl enable openstack-cinder-volume.service target.service systemctl restart openstack-cinder-volume.service target.service
八、创建云盘
1、创建一个云盘