自学内容网 自学内容网

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


原文地址:https://blog.csdn.net/m0_70212665/article/details/143669535

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!