块存储服务(Cinder)安装配置,这一篇就够了!

本实验是一个比较综合的实验,需要结合前面所学的OpenStack基础环境安装配置,身份认证服务(Keystone)安装配置等一些基础的实验来做这个块存储服务(Cinder)安装配置实验。为了更好地理解和管理Cinder块存储服务组件,需要对其整个存储架构有一定的了解,在经济、性能和安全性方面做出选择,但是最终归结为两个选择:是单节点部署还是多节点部署(在存储技术已经确定的情况下)。Cinder块存储服务组件允许用户添加外部存储作为块存储使用,如集中存储或其他开源存储技术存储。Amazon的EC2Elastic块存储(EBS)与其类似。
本实验是一个比较综合的安装配置类的实验,但在节点上安装和配置Cinder块存储服务组件之前,Cinder块存储服务组件要求至少有一个存储节点。具体的实验目标就是掌握Cinder块存储服务组件的安装,理解LVM的概念以及如何创建数据库,服务证书(service credential)和API endpoint。

本实验主要使用的知识点是

知识点能力要求
OpenStack基础环境的安装配置了解OpenStack的环境搭建和配置
Cinder块存储的各大组件掌握Cinder组件的作用
LVM的基本概念掌握什么是LVM,LVM的作用是什么
Keystone服务安装配置了解Keystone服务安装配置

针对上面所提到的部分知识点,下面做一个概述,以便后面对本实验有更加深刻的理解:

1)OpenStack基础环境的安装配置

基础环境搭建配置
网络接口
查看服务器网络接口

ifconfig –a

进入网络配置文件

sudo vi /etc/network/interfaces

将第一个接口配置为管理接口

auto enp5s0
iface enp5s0 inet static
address 10.0.0.11
netmask 255.255.255.0
gateway 10.0.0.1

配置名称解析将控制节点的主机名设置为controller

sudo vi /etc/hostname

编辑/etc/hosts文件,加入已下内容

#controller
10.0.0.11 controller
#compute1
10.0.0.31 compute1
#block1
10.0.0.41 block1
#object
10.0.0.51 object1

验证连接从控制节点,测试对外网的访问

ping -c 4 openstack.org

从控制器节点,测试对计算节点上的管理接口的访问权限

ping -c 4 compute1

网络时间协议NTP安装下载并安装openstack软件包启动openstack库

sudo apt install 
sudo software-properties-common
sudo add-apt-repository cloud-archive:pike

升级服务器所有软件包

sudo apt update && apt dist-upgrade

安装openstack客户端

sudo apt install python-openstackclient

以上是一部分的OpenStack是基础环境的配置,接下来会进行SQL数据库的安装等一系列配置,这里就不多介绍。

2)Cinder块存储的各大组件

1.cinder-api
cinder-api的作用主要是为用户提供Restful风格的接口,接收client的请求,在该服务中可以对用户的权限和传入的参数进行提前的检查,无误后方才将请求信息交给消息队列,由后续的其它服务根据消息队列信息进行处理。

2.cinder-scheduler
cinder-scheduler是一个调度器,用于选择合适的存储节点,该服务中包含过滤器算法和权重计算算法,Cinder默认的过滤算法有三个:
(1)AvailabilityZoneFilter过滤算法:判断cinder host的availability zone是否与目标zone一致,否则过滤掉该节点;
(2)CapacityFilter过滤算法:判断host的可用存储空间是否不小于要分配卷的大小,否则过滤掉该节点;
(3)CapabilitiesFilter过滤算法:检查host的属性否和volume type中的extra specs相同,不相同则过滤掉该节点。
3. cinder-volume
cinder-volume是部署在存储节点上的服务,cinder-volume的主要功能是对后端存储进行一层抽象封装,为用户提供统一的接口,cinder-volume通过调用后端存储驱动API来进行存储相关的操作。
4. cinder-backup
cinder-backup的功能是将volume备份到别的存储设备上去,以后可以通过restone操作恢复。

3)LVM的基本概念:

对磁盘进行分区大小规划时,有时往往不能确定这个分区要使用的总空间大小,而用fdisk对磁盘分区后,每个分区的大小已经固定了,如果分区设置的过大,就白白浪费了磁盘空间,而分区设置的过小,就会导致空间不够用的情形,此时最常见的方法是重新划分磁盘分区,或者通过软连接的方式将此分区的目录链接到另一个分区,虽然能临时解诀问题,但是给管理带来了麻烦。如何能解诀这些问题呢,LVM 是一个不错的方法。
LVM,是Logical Volume Manager的缩写,中文意思是逻辑卷管理,它是1inux下对磁盘分区进行管理的一种机制,LVM 是建立在磁盘分区和文件系统之间的一个逻辑层,管理员利用LVM可以在磁盘不用重新分区的情况下动态的调整分区的大小。如果系统新增了一块硬盘,通过LVM就可以将新增的硬盘空间直接扩展到原来的磁盘分区上。

本实验涉及到的专业术语解释
1)LVM(LogicalVolumeManager)
2)物理卷(Physical Volume,PV)
3)卷组(Volume Group,VG)
4)逻辑卷(Logical Volume,LV)
5)API endpoint
6)Cinder服务组件

实验内容

步骤1:控制节点创建数据库,服务证书和API

这个部分描述如何在控制节点上安装和配置块设备存储服务,即 cinder。这个服务需要至少一个额外的存储节点,以向实例提供卷。
1、创建数据库
在操作系统终端连接数据库

mysql -uroot -p

创建Cinder数据库,并设置访问权限

CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'controller' IDENTIFIED BY '123456';

完成以后重启数据库

systemctl restart mariadb
证书服务

加载admin的环境变量

# . admin-openrc

创建Identity服务凭据
创建Cinder用户

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

在这里插入图片描述
这里密码是123456
将admin role赋予Cinder用户和service project

# openstack role add --project service --user cinder admin

创建cinder和cinderv2服务实体
这里需要注意到的是块存储要求有两种服务实体

#openstack service create --name cinder --description "OpenStack Block Storage" volume

在这里插入图片描述

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

在这里插入图片描述

创建API入口点
#openstack endpoint create --region RegionOne volume public http://controller:8776/v1/%\(tenant_id\)s

在这里插入图片描述

#openstack endpoint create --region RegionOne volume internal http://controller:8776/v1/%\(tenant_id\)s

在这里插入图片描述

#openstack endpoint create --region RegionOne volume admin http://controller:8776/v1/%\(tenant_id\)s

在这里插入图片描述

#openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(tenant_id\)s

在这里插入图片描述

#openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(tenant_id\)s

在这里插入图片描述

#openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(tenant_id\)s

在这里插入图片描述

步骤2:控制节点安装配置Cinder存储服务组件

下面开始安装配置Cinder存储服务的相关组件,组件安装过程:
(1) 安装软件包:

#yum install openstack-cinder -y

(2)编辑 /etc/cinder/cinder.conf:
备份一下文件:

# cp cinder.conf cinder.conf.bak

vi /etc/cinder/cinder.conf

[database]
connection = mysql+pymysql://cinder:1qazmlp9@controller/cinder
[DEFAULT]
transport_url = rabbit://openstack:1qazmlp9@controller
auth_strategy = keystone
my_ip = 192.168.28.7
[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 = 1qazmlp9
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp

初始化块设备服务的数据库:

#su -s /bin/sh -c "cinder-manage db sync" cinder

在这里插入图片描述
(3)配置计算节点以使用块设备存储
编辑文件 /etc/nova/nova.conf 并添加如下到其中:

[cinder]
os_region_name = RegionOne

重启nova服务

systemctl restart openstack-nova-compute.service
安装完成

1、回到控制节点,重启计算API 服务:

systemctl restart openstack-nova-api.service

2、启动块设备存储服务,并将其配置为开机自启:

systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl status openstack-cinder-api.service openstack-cinder-scheduler.service

步骤3:安装配置存储节点

这个部分描述怎样为块存储服务安装并配置存储节点。步骤均在存储节点storage上运行

安装配置前准备

在安装和配置Cinder块存储服务组件之前,需要首先确定使用的存储设备。以下操作均在存储节点上进行。
(1)安装支持的工具包
安装lvm2的包

yum install lvm2 -y

启动LVM的metadata服务并且设置该服务随系统启动:

systemctl start lvm2-lvmetad.service 
systemctl enable lvm2-lvmetad.service
systemctl status lvm2-lvmetad.service

(2)创建物理卷/dev/sdb

# pvcreate /dev/sdb

注意:如果Device /dev/sdb not found.表示缺少硬盘,需要添加一块硬盘。
出现Physical volume “/dev/sdb” successfully created表示正确。
注意:添加硬盘以后,重启存储节点
备注:添加磁盘的方法:点击storage节点的虚拟机设置->添加->硬盘->下一步:
在这里插入图片描述
选择下一步
在这里插入图片描述
选择“创建新虚拟硬盘”-下一步
在这里插入图片描述
磁盘大小选择100G-下一步
在这里插入图片描述
(3)创建卷组cinder-volumes

# vgcreate cinder-volumes /dev/sdb

显示 Volume group “cinder-volumes” successfully created

如果块存储卷被虚拟机实例用作LVM,则当卷扫描工具尝试对块存储卷进行扫描时,会产生一系列问题。为了避免这些问题,需要对块存储卷进行重配置。
编辑/etc/lvm/lvm.conf 文件,完成以下操作(编辑前备份一下

devices {.
filter = [ "a/sdb/", "r/.*/"]
安装和配置Cinder块存储服务组件

(1)安装软件包

yum install openstack-cinder targetcli python-keystone -y

(2)编辑/etc/cinder/cinder.conf 文件,完成以下操作(备份一下

[database]
connection = mysql+pymysql://cinder:123456@controller/cinder

[DEFAULT]
auth_strategy = keystone
my_ip = 192.168.28.9 #自己IP地址
enabled_backends = lvm
glance_api_servers = http://controller:9292
transport_url = rabbit://openstack:123456@controller

[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

[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm

[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
完成安装

启动块存储卷服务及其依赖的服务,并将其配置为随系统启动

ystemctl start openstack-cinder-volume.service target.service
systemctl enable openstack-cinder-volume.service target.service
systemctl status openstack-cinder-volume.service target.service

步骤4:控制节点验证操作

1、加载admin-openrc.sh文件

. admin-openrc

2、列出Cinder块存储组件

cinder service-list

在这里插入图片描述
列出服务组件以验证是否每个进程都成功启动

openstack volume service list

在这里插入图片描述
至此我们已经完成块存储的配置,可以通过块存储启动实例了。

实验最终效果与评价

本实验主要检查一下配置完成的Cinder块存储服务组件。所有的操作均在控制节点上进行。

输入与结果

在这里插入图片描述

评价结果说明

从以上的实验结果来看:
但我们列出Cinder块存储组件时,是可以启动成功的,上面的截图表示我们此次实验安装配置Cinder存储服务是成功的。
本次实验的结果是成功的,但在配置过程中会遇到很多问题,本次实验用的是openstack的Newton版本,参考官网文档。在本次实验中会涉及到OpenStack其他的一些组件安装配置,
例如
Nova: 管理VM的生命周期,是OpenStack中最核心的服务
==Neutron:==为OpenStack提供网络连接服务,负责创建和管理L2、L3网络,为VM提供虚拟网络和物理网络连接。
==Glance:==管理VM启动镜像,Nova创建VM时将使用Glance提供的镜像。
==Swift:==提供对象存储服务。VM可以通过RESTful API存放对象数据。作为可选方案,Glance可愿意将镜像存放在Swift中,Cinder 也可以将Volume备份到Swift中。
==Keystone:==为OpenStack的各种服务提供认证和权限管理服务。简单的说,OpenStack上的每一个操作都必须通过Keystone的审核。
总体来说块存储服务(Cinder)安装配置不可能是一个独立的实验,在安装配置此实验之前,需要配置好OpenStack的一些其他的组件。

参考资料

《OpenStack从零开始学》,卢万龙著,电子工业出版社,第2篇安装配置篇,第16章(P187)

OpenStack官方安装向导1
OpenStack官方安装向导2
百度资料查询

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃香菜的斌斌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值