本实验是一个比较综合的实验,需要结合前面所学的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
百度资料查询

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

  1. OpenStack之部署块存储服务cinder

    块存储服务 简介 部署环境 在控制节点上安装和配置块设备存储服务(cinder) 安装并配置一个存储节点 图形化界面访问 简介 OpenStack块存储服务(cinder)为虚拟机添加持久的存储,块存 ...

  2. openstack云计算平台 4(镜像封装、块存储服务)

    目录 一.镜像封装 二.块存储服务 1.简介 2.环境部署 3.安装并配置控制节点 4.安装并配置一个存储节点 5.验证操作 一.镜像封装 目前我们只有一个测试镜像,接下来我们去构建一个镜像 点击虚拟 ...

  3. 7 安装Cinder块存储服务

    7.1 通过脚本安装Cinder服务 7.2-7.12块存储服务的操作命令已经编写成shell脚本,通过脚本进行一键安装.如下: #Controller 执行脚本iaas-install-cinder ...

  4. Cinder块存储服务

    ​ 项目介绍​Cinder 是 OpenStack Block Storage 的项目名称:它为来宾虚拟机 (VM) 提供了持久块存储.Cinder块存储是虚拟基础架构中必不可少的组件,是存储虚拟机镜 ...

  5. 文件服务和对象存储服务器,对象存储与块存储服务

    介绍 灵活和可扩展的数据存储是使用现代技术和工具开发的大多数应用程序和服务的基准要求. 无论存储大量或少量的图像,视频或文本块,应用程序开发人员都需要一个用于存储和检索用户生成的内容,日志,备份等的解 ...

  6. openstack块存储服务基础:Linux LVM硬盘管理及LVM扩容

    在Openstack中,有3个与存储相关组件:Swift--提供对象存储(object storage),Glance--提供虚机镜像(image)存储和管理,Cinder--提供块存储(block ...

  7. 达沃时代发布分布式块存储服务系统 启动存储生态圈

    10月27日,达沃时代在北京召开主题为"打造数据沃土,营造千亿生态"的新闻发布会,发布存储新品逸存B系列(YeeStor B serials)分布式块存储服务系统,同时宣告了&qu ...

  8. svn教程----svn服务端安装配置

    svn服务端安装配置 1.两种服务端安装包 1.1.官方安装包 官方网站:http://subversion.apache.org/ 下载:http://subversion.apache.org/d ...

  9. NFS介绍,NFS服务端安装配置,NFS配置选项

    2019独角兽企业重金招聘Python工程师标准>>> NFS介绍: NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网 ...

最新文章

  1. 添加和删除行的能力table(能够编辑的表的内容)
  2. python软件怎么使用-Python快速入门—如何选择使用包管理工具?
  3. 成功解决ImportError: cannot import name ‘ft2font‘ from ‘matplotlib‘
  4. quercus mysql_14.5 Quercus 原理及展望
  5. json类的解析,调试实例
  6. 2+22+222+2222(直到n个2的精确计算)
  7. python实践心得体会_“Python自然语言实践”——总结(一),实战
  8. [vue-element] ElementUI怎么修改组件的默认样式?
  9. Chapter7-6_Text Style Transfer
  10. java类里的包路径报错_[ERROR] 致命错误: 在类路径或引导类路径中找不到程序包 java.lang...
  11. MVC +EF+linq 多表联查
  12. 如何在Pr中应用混合模式合成影片中的剪辑?
  13. 数据结构实践课程设计【通讯录管理系统】
  14. javaWeb详细教程
  15. xshell中文问号乱码
  16. BES系列蓝牙开发总结
  17. deepinv2 添加打印机_Deepin系统上安装使用HP惠普打印机的方法
  18. 管道无损检测python_初用python-docx
  19. php随机产生六位数密码
  20. KeilC51基本关键字

热门文章

  1. 步进电机应用c语言程序设计实例,51单片机调节步进电机应用C语言程序设计
  2. kobject(转载)
  3. 2022年模式识别高峰论坛学习与个人感悟
  4. pg数据库和mysql8_MySQL8与PG10:新版本下的较量谁更胜一筹?
  5. win11 删除自带的微软输入法
  6. 模拟登录12306(selenium+超级鹰)
  7. 使用matlab和GMT联合绘制带有省界的中国地图
  8. Excel图表:随心所欲模拟坐标轴
  9. 文献检索报告软件测试,文献检索报告及文献综述.doc
  10. [转] 安卓巴士总结了近百个Android优秀开源项目,覆盖Android开发的每个领域