Openstack15--块存储服务(Cinder)安装
控制节点
安装Cinder软件包
yum -y install openstack-cinder
安装的“openstack-cinder”软件包里包括“cinder-api”和“cinder-scheduler”模块。安装“openstack-cinder”软件包时,和安装其他OpenStack核心组件时一样,会自动创建名为“cinder”的Linux系统用户和同名的用户组
创建Cinder的数据库并授权
进入MariaDB数据库
新建“cinder”数据库
给用户授权使用新建数据库
mysql -uroot -p000000
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY '000000';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY '000000';
quit退出
修改Cinder配置文件
配置文件去掉注释和空行
cp /etc/cinder/cinder.conf /etc/cinder/cinder.bak
grep -Ev '^$|#' /etc/cinder/cinder.bak > /etc/cinder/cinder.conf
vi /etc/cinder/cinder.conf
修改“[database]”部分,实现与数据库“cinder”连接。
[database]
connection = mysql+pymysql://cinder:000000@controller/cinder
修改“[DEFAULT]”与“[keystone_authtoken]”部分,实现与Keystone交互。
[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = project
username = cinder
password = 000000
修改“[oslo_concurrency]”部分,配置锁路径。
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
修改“[DEFAULT]”部分,实现与消息队列的连接。
[DEFAULT]
transport_url = rabbit://rabbitmq:000000@controller:5672
文件附上
[DEFAULT]
auth_strategy = keystone
transport_url = rabbit://rabbitmq:000000@controller:5672
[backend]
[backend_defaults]
[barbican]
[brcd_fabric_example]
[cisco_fabric_example]
[coordination]
[cors]
[database]
connection = mysql+pymysql://cinder:000000@controller/cinder
[fc-zone-manager]
[healthcheck]
[key_manager]
[keystone_authtoken]
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = project
username = cinder
password = 000000
[nova]
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_middleware]
[oslo_policy]
[oslo_reports]
[oslo_versionedobjects]
[privsep]
[profiler]
[sample_castellan_source]
[sample_remote_file_source]
[service_user]
[ssl]
[vault]
修改Nova配置文件
vi /etc/nova/nova.conf
修改“[cinder]”部分,增加如下的集群名。
[cinder]
os_region_name = RegionOne
初始化Cinder的数据库
su cinder -s /bin/sh -c "cinder-manage db sync"
创建Cinder用户并分配角色
导入环境变量模拟登录
在OpenStack云计算平台中创建用户“cinder”
给用户“cinder”分配“admin”角色
. admin-login
openstack user create --domain default --password 000000 cinder
openstack role add --project project --user cinder admin
创建Cinder服务及端点
创建服务,OpenStack(Train版)Cinder支持的卷是第3版本
创建公众用户访问的服务端点
创建内部组件访问的服务端
创建Admin用户访问端点
openstack service create --name cinderv3 volumev3
openstack endpoint create --region RegionOne volumev3 public http://controller:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 internal http://controller:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 admin http://controller:8776/v3/%\(project_id\)s
OpenStack组件的服务端点有3种,分别对应Admin用户(admin)、内部组件(internal)、公众用户(public)服务的地址
启动Cinder服务
重启Nova服务
netstat -nutpl|grep 8776 openstack volume service list
立即启动Cinder服务设置“cinder-api”和“cinder-scheduler”模块开机启动
systemctl restart openstack-nova-api
systemctl start openstack-cinder-api openstack-cinder-scheduler
systemctl enable openstack-cinder-api openstack-cinder-scheduler
检测控制节点的Cinder服务
查看端口占用情况 Cinder服务会占用8776端口,通过查看这个端口是否启用,可以判断Cinder服务是否已经运行
查看存储服务列表
netstat -nutpl|grep 8776
openstack volume service list
如获得“cinder-scheduler”在控制节点的模块处于开启(up)状态,则表示服务正常
计算节点
为计算节点增加硬盘
先关闭计算节点后添加硬盘
随后可以一直无脑下一步
启动计算节点
创建卷组
逻辑卷管理(Logical Volume Manager,LVM)是Linux环境下对磁盘分区进行管理的一种机制,它可以将几块磁盘(也称物理卷)组合起来形成一个存储池或者卷组(Volume Group)。LVM可以每次从卷组中划分出不同大小的逻辑卷(Logical Volume)创建新的逻辑设备。Cinder可以使用LVM来实现块设备(卷)的管理
通过“lsblk”命令查看系统中所有硬盘(块设备)的挂载信息
可以看到系统中多了一块20G名为sdb 的硬盘
1 通过“pvcreate”命令将物理硬盘初始化为物理卷,以便LVM使用
2 将物理卷归并为卷组
pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb
配置LVM卷组扫描的设备
vi /etc/lvm/lvm.conf
修改配置文件的“devices”部分,添加一个接受“/dev/sdb”磁盘并拒绝其他设备的过滤器。 devices
filter = [ "a/sdb/","r/.*/"]
代码中“a”表示接受,“r”表示拒绝
可以通过 /devices 进行搜索 n 下一个目标,也可参考图中行号
启动LVM元数据服务
systemctl start lvm2-lvmetad
systemctl enable lvm2-lvmetad
LVM在做磁盘扫描时将查找所有相关物理卷,并读取卷组元数据,这个过程非常耗时。如果将卷组元数据一次性读入缓存,则不用每次都做这个耗时的扫描。lvmetad就是LVM中用于处理元数据缓存的服务
安装和配置存储节点
安装Cinder相关软件包
yum -y install openstack-cinder targetcli python-keystone
共安装了3个软件包“openstack-cinder”“targetcli”“python-keystone”。其中“openstack-cinder”是Cinder的软件包;“targetcli”是一个命令行工具,用于管理Linux的存储资源;“python-keystone”是与Keystone的连接插件
配置文件去掉注释和空行
cp /etc/cinder/cinder.conf /etc/cinder/cinder.bak
grep -Ev '^$|#' /etc/cinder/cinder.bak > /etc/cinder/cinder.conf
vi /etc/cinder/cinder.conf
修改“[database]”部分,实现与数据库“cinder”连接。
[database]
connection = mysql+pymysql://cinder:000000@controller/cinder
[DEFAULT][keystone_authtoken]部分,实现与Keystone交互。
[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = project
username = cinder
password = 000000
修改“[oslo_concurrency]”部分,配置锁路径。
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
修改“[DEFAULT]”部分,实现与消息队列和Glance的连接。
[DEFAULT]
transport_url = rabbit://rabbitmq:000000@controller:5672
glance_api_servers = http://controller:9292
修改“[DEFAULT]”部分,并增加“[lvm]”部分以设置LVM。
[DEFAULT]
enabled_backends = lvm [lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
target_protocol = iscsi
target_helper = lioadm
[DEFAULT]
auth_strategy = keystone
transport_url = rabbit://rabbitmq:000000@controller:5672
glance_api_servers = http://controller:9292
enabled_backends = lvm
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
target_protocol = iscsi
target_helper = lioadm
[backend]
[backend_defaults]
[barbican]
[brcd_fabric_example]
[cisco_fabric_example]
[coordination]
[cors]
[database]
connection = mysql+pymysql://cinder:000000@controller/cinder
[fc-zone-manager]
[healthcheck]
[key_manager]
[keystone_authtoken]
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = project
username = cinder
password = 000000
[nova]
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_middleware]
[oslo_policy]
[oslo_reports]
[oslo_versionedobjects]
[privsep]
[profiler]
[sample_castellan_source]
[sample_remote_file_source]
[service_user]
[ssl]
[vault]
启动Cinder服务
systemctl start openstack-cinder-volume target
systemctl enable openstack-cinder-volume target
检验Cinder服务(控制节点)
回到控制节点
openstack volume service list
问题出现
控制节点能够发现“cinder-volume”“cinder-scheduler”两个模块的状态(State)是启动(up)才是正常的
OpenStack平台的cinder-volume卷服务状态down解决办法
先检查两机器的时间是否同步
date
发现控制节点时间不对
在控制节点安装ntp服务
yum -y install ntp
同步时间
ntpdate time.nist.gov
到计算节点重启服务
systemctl restart lvm2-lvmetad
systemctl restart openstack-cinder-volume target
再来到控制节点
openstack volume service list
服务正常,问题解决。
问题产生的原因
原因:其实是因为我一直都是将虚拟机挂起而不是关机,计算节点重启后自动同步了时间,而控制节点还是挂起前的时间没有进行同步。
解决问题思路来源OpenStack平台的cinder-volume卷服务状态down的解决方法_cinder-volume down了是啥原因-CSDN博客文章浏览阅读7.9k次,点赞7次,收藏26次。本文介绍了解决OpenStack中Cinder-Volume服务状态显示为Down的方法。主要原因是由于控制器节点与计算节点时间不同步导致。通过关闭ntpd服务,手动同步时间,并修改ntp.conf文件,重新启动ntpd服务,最终重启Cinder-Volume服务,使服务状态恢复正常。https://blog.csdn.net/DT_FlagshipStore/article/details/106798940?fromshare=blogdetail&sharetype=blogdetail&sharerId=106798940&sharerefer=PC&sharesource=m0_70212665&sharefrom=from_link