项目八 OpenStack存储管理

任务一 理解OpenStack块存储服务

1.1 •Cinder的主要功能

提供 持久性块存储资源,供 Nova 计算服务的虚拟机实例使用
管理块存储设备提供一套方法,对卷实现从创建到删除的整个生命周期 管理。
不同的后端存储进行封装,对外提供统一的 API

1.2 •CinderNova的交互

Nova 虚拟机连接或分离 Cinder

虚拟机生命周期中的卷操作

1.3 •Cinder架构

1.4 •Cinder创建卷的基本流程

1)客户端向cinder-api服务发送请求,要求创建一个卷。

2cinder-api服务让cinder-scheduler服务创建一个卷。

3cinder-scheduler服务从若干存储节点中选出一个节点。

4cinder-scheduler服务让该存储节点创建这个卷。

5)对应存储节点的cinder-volume服务通过驱动在卷提供者定义的后端存储设备上创建卷。

1.5 •验证Cinder服务

查看 当前运行的 Cinder 服务。

[root@node-a ~]# systemctl status *cinder*.service

4 Cinder 服务
Ø openstack -cinder- scheduler.service —— 调度服务
Ø openstack -cinder- volume.service —— 卷服务
Ø openstack -cinder- backup.service —— 备份服务
Ø openstack -cinder- api.service ——API 前端 服务
试用 Cinder API
Cinder 提供 API 版本
Ø Cinder API v2
Ø Cinder API v3
查看 当前的 Cinder API 版本信息。

[root@node-a ~]# curl http://192.168.199.31:8776

查看卷列表为 例示范。

1)请求一个demo项目作用域的令牌。

2)导出环境变量OS_TOKEN,并将其值设置为上述操作获取的令牌ID

3Cinder API需要提供项目ID,提供对应项目ID来获取卷列表。

[root@node-a ~]# curl -s -H "X-Auth-Token: $OS_TOKEN"   http://192.168.199.31:8776/v3/2a39abedd0 96 44bb9248 7a78ee442e3f/volumes

任务二 创建和管理卷

2.1 •cinder-api服务

Ø cinder- api 作为 整个 Cinder 服务的门户,所有对 Cinder 的请求都首先由它处理
Ø cinder- api OpenStack 客户端暴露若干 REST API 接口
Ø cinder- api 目前在用的有 v2 v3 两个 版本。
Ø 客户可以将请求发送到端点指定的地址,向 cinder- api 请求卷的操作
Ø cinder- api 提供 REST 标准调用服务,便于与第三方系统集成

2.2 •cinder-scheduler服务

cinder-scheduler 服务通过 调度算法选择最合适的存储 节点。
首先 通过过滤器选择满足条件的存储 节点, 然后通过权重 计算选择 优的 存储节点
可以 Cinder 主配置文件 / etc /cinder/ cinder.conf 中对 cinder-scheduler 进行配置。
过滤器
Ø AvailabilityZoneFilter (可用区域过滤器
Ø CapacityFilter (容量过滤器
Ø CapabilitiesFilter (能力过滤器
权重计算
Ø CapacityWeigher 基于存储节点的空闲容量计算权重 值。

2.3 •cinder-volume服务

cinder-volume 在存储节点上运行 负责 卷的生命周期的 管理。
存储设备 是由卷 驱动管理 的。 cinder-volume 与卷驱动一起实现卷的生命周期管理
驱动 架构

2.4 •cinder-volume服务

存储 后端

enabled_backends=lvmdriver-1,lvmdriver-2,lvmdriver-3

[lvmdriver-1]

volume_group=cinder-volumes-1

volume_driver=cinder.volume.drivers.lvm.LVMVolumeDriver

volume_backend_name=LVM_iSCSI

[lvmdriver-2]

volume_group=cinder-volumes-2

volume_driver=cinder.volume.drivers.lvm.LVMVolumeDriver

volume_backend_name=LVM_iSCSI

[lvmdriver-3]

volume_group=cinder-volumes-3

volume_driver=cinder.volume.drivers.lvm.LVMVolumeDriver

volume_backend_name=LVM_iSCSI_b

2.5•cinder-volume服务

类型( Volume Type
Ø Cinder 的卷类型的作用与 Nova 的实例 类型的 作用类似
Ø 存储 后端的名称需要通过卷类型的扩展规格来定义
Ø 使用卷类型之前必须定义
示例
Ø 定义 一个名为“ lvm 的卷类型。

openstack --os-username admin --os-tenant-name admin volume type create lvm

Ø 创建 一个扩展规格,将卷类型连接到后端名称。

openstack --os-username admin --os-tenant-name admin volume type set lvm --property volume_backend_name=LVM_iSCSI

                       •卷连接到虚拟机实例

                         

cinder-volume 服务定期报告存储节点 状态
Ø cinder-volume 服务定期向 Cinder 服务报告当前存储节点的资源使用情况
Ø cinder-scheduler 服务会用 CapacityFilter 过滤器和 CapacityWeigher 权重计算器基于剩余容量来过滤存储节点。

2.6•cinder-backup服务

cinder-backup 服务为卷提供备份和 恢复功能。
cinder-backup 服务 支持将块存储卷备份到 OpenStack 对象 存储。
cinder-backup 使用备份 驱动架构 来支持不同种类的备份存储系统
/ etc /cinder/ cinder.conf 配置文件的 backup_driver 选项指定 所要使用的备份 驱动。

backup_driver = cinder.backup.drivers.swift

2.7•Cinder服务的部署

cinder- api cinder-scheduler 服务部署在控制节点 上。
cinder-volume 服务部署在存储节点上
相关 RabbitMQ 消息队列和 SQL 数据库通常部署在控制节点上
卷提供 者独立部署。
存储设备驱动与 cinder-volume 服务部署到一起。

2.8 •卷操作的命令行基本用法

1)查看

Ø 列出 卷的信息。

openstack volume list

Ø 查看某卷的详细 信息。

openstack volume show ID

2)创建

openstack volume create

    [--size <大小>]

    [--type <卷类型>]

    [--image <镜像> | --snapshot <快照> | --source <> ]

    [--description <说明信息>]

    [--user <用户>]

    [--project <项目>]

    [--availability-zone <可用区域>]

    [--consistency-group <consistency-group>]

    [--property <=> [...] ]

    [--hint <=> [...] ]

    [--multi-attach]

    [--bootable | --non-bootable]

    [--read-only | --read-write]

    <卷名称>

3)修改卷设置

openstack volume set  [选项列表] <卷名称或ID>

(4)删除

openstack volume delete  [--force | --purge] <> [<> ...]

(5)将卷连接到实例

openstack server add volume  [--device <设备>]  [--tag <标记>]  <实例>  <>

(6)将卷从实例上分离

openstack server remove volume  <实例>  <>

2.9•查看卷服务分布和运行情况

查看 卷服务 的分布和 运行情况。

[root@node-a ~]# source keystonerc_admin

[root@node-a ~(keystone_admin)]# openstack volume service list

+--------------+------------+-----+-------+-----+------------------------+

| Binary            | Host           | Zone | Status   | State  |  Updated At                 |

+--------------+------------+-----+-------+-----+------------------------+

| cinder-scheduler  | node-a        | nova | enabled  | up    | 2020-10-28T08:49:04.000000 |

| cinder-backup    | node-a         | nova | enabled  | up    | 2020-10-28T08:49:02.000000 |

| cinder-volume    | node-a@lvm   | nova  | enabled | up    | 2020-10-28T08:49:06.000000 |

查看存储后端配置
查看存储 后端配置的选项 设置

[DEFAULT]

enabled_backends = lvm

#在配置组[lvm]中设置具体选项

[lvm]

volume_backend_name=lvm                                 #卷后端名称

volume_driver=cinder.volume.drivers.lvm.LVMVolumeDriver   #卷驱动为本地LVM

iscsi_ip_address=192.168.199.31                            #iSCSI目标IP地址

iscsi_helper=lioadm                                          # iSCSI管理工具

volumes_dir=/var/lib/cinder/volumes                           #卷目录

设置可启动卷
既可以用作数据磁盘,也可以用作启动盘
用作 启动盘的就是可启动 卷。
可以 设置该卷是否可启动。
在创建虚拟机实例时,如果源选择卷、卷快照或镜像,并选择创建新卷,则创建实例的同时创建的卷为可启动卷,该卷连接到实例并作为其启动盘 /dev/ vda

任务三  了解Swift对象存储服务

3.1Swift对象存储系统

Swift 可以长期存储海量静态数据,并提供检索和更新这些数据的服务。
与文件系统不同,对象存储系统所存储的逻辑单元是对象,而不是传统的文件
对象 包括内容和元数据两个部分 。每个 对象都是一个 RESTful 资源,拥有唯一的 URL

3.2 •Swift的应用场景

作为 网盘类产品的存储引擎
OpenStack Swift 可以 与镜像服务 Glance 结合,为其存储镜像文件
Swift 非常 适合用于存储日志文件和数据备份仓库。
Swift 可以 使用廉价的硬盘和服务器来代替昂贵的存储设备。

3.3 •对象的层次数据模型

3.4 •对象层级结构与对象存储API的交互

资源路径格式

/v1/{account}/{container}/{object}

示例:账户 1234567890 的容器 images 中的对象 flowers/rose.jpg 对应的资源 路径

/v1/1234567890/images/flowers/rose.jpg

可以 使用 marker limit end_marker 查询参数来控制要返回的条目数,以及列表起始位置。

/v1/{account}/{container}/?marker=a&end_marker=d

如果需要逆序,可使用查询参数 reverse

/v1/{account}/{container}/?marker=d&end_marker=a&reverse=on

3.5•对象存储的组件

Swift 对象存储的主要 组成部分

3.6 •对象存储的组件

3.8 •Swift架构

验证 Swift 服务
查看 当前运行的 Swift 服务。

[root@node-a ~]# systemctl status *swift*.service

1openstack-swift-proxy.service:代理服务器。

2openstack-swift-object-expirer.service:对象过期处理器(定时删除对象)。

3openstack-swift-container-replicator.service:对象复制器。

4openstack-swift-account-replicator.servic:账户复制器。

5openstack-swift-account.service:账户服务器。

6openstack-swift-container-updater.service:容器更新器。

7openstack-swift-object-reconstructor.service:对象重构器。

8openstack-swift-object.service:对象服务器。

9openstack-swift-account-reaper.service:账户收割器(处理账户删除操作)。

10openstack-swift-container.service:容器服务器。

11openstack-swift-object-replicator.service:对象复制器。

12openstack-swift-container-sync.service:容器同步器。

13openstack-swift-container-auditor.service:容器审计器。

14openstack-swift-object-auditor.service:对象审计器。

15openstack-swift-object-updater.service:对象更新器。

16openstack-swift-account-auditor.service:账户审计器。

查看 Swift 环文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/31156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Zynq学习笔记--了解中断配置方式

目录 1. 简介 2. 工程与代码解析 2.1 Vivado 工程 2.2 Vitis 裸机代码 2.3 关键代码解析 3. 总结 1. 简介 Zynq 中的中断可以分为以下几种类型&#xff1a; 软件中断&#xff08;Software Generated Interrupt, SGI&#xff09;&#xff1a;由软件触发&#xff0c;通常…

Day 46 Redis缓存集群

Redis缓存集群 redis缓存服务 缓存数据库 缓存 ​ 读取数据 cpu ​ L1 L2 L3 L4 ​ 一级缓存 二级缓存 ​ cs context switch 上下文交换 free -m ​ buffer cache mysql服务器 ​ 缓存 表缓存 数据缓存 nginx ​ expire 1d ​ 304响应码 ​ 200 ​ 301 ​ 30…

RS485中继器的作用你还不知道?

RS485是一种串行通信协议&#xff0c;支持设备间长距离通信。RS485中继器则像“传声筒”&#xff0c;能放大衰减信号&#xff0c;延长通信距离&#xff0c;隔离噪声&#xff0c;扩展分支。在实际场景中&#xff0c;如工厂内&#xff0c;通过中继器可确保控制室与远距离机器间通…

嵌入式实验---实验三 定时器实验

一、实验目的 1、掌握STM32F103定时器程序设计流程&#xff1b; 2、熟悉STM32固件库的基本使用。 二、实验原理 1、使用SysTick定时方式控制LED闪烁&#xff1b; 2、使用通用定时器产生PWM脉冲&#xff0c;通过调整占空比实现两个目标&#xff1a; &#xff08;1&#xf…

RPM命令和YUM命令

目录 一、RPM软件包 1.1、RPM概述 1.2、查询已安装的rpm软件信息 1.3、查询未安装的 RPM 软件包文件中信息 1.4、安装、升级、卸载 RPM 软件包 二、YUM常规命令 三、手动配置Apache&#xff08;http&#xff09;服务 3.1、前提条件 3.2、开始配置 3.3、开启验证服务 …

GitHub爆赞!终于有大佬把《Python学习手册》学习笔记分享出来了

这份笔记的目标是为了给出一份比较精炼&#xff0c;但是又要浅显易懂的Python教程。《Python学习手册》中文第四版虽然比较简单&#xff0c;但是措辞比较罗嗦&#xff0c;而且一个语法点往往散落在多个章节&#xff0c;不方便读者总结。 我在做笔记时&#xff0c;将一个知识点…

PFC 离散元数值模拟仿真技术与应用

近几年&#xff0c;随着计算能力的提高和算法的优化&#xff0c;离散元仿真技术得到了快速发展&#xff0c;并在学术界产生了大量研究成果。在 PFC 离散元计算中无需给定材料的宏观本构关系和对应的参数&#xff0c;这些传统的参数和力学特性在程序中可以自动得到。据调查&…

深入了解常用负载均衡软件

在构建高性能、高可用的分布式系统时&#xff0c;负载均衡技术扮演着至关重要的角色。它通过合理分发网络请求到后端服务器集群&#xff0c;从而有效提升系统吞吐量、减少响应延迟、并保障系统的稳定运行。本文将介绍几种常用的负载均衡软件&#xff0c;包括它们的优缺点、应用…

Gartner发布2024年人工智能技术成熟度曲线:29项决定人工智能领域发展方向的前沿和趋势性技术

人工智能投资已达到新高&#xff0c;重点是生成式人工智能&#xff0c;但在大多数情况下&#xff0c;该技术尚未实现预期的商业价值。这项研究通过分析各种人工智能创新&#xff08;其中许多创新正在快速发展&#xff09;&#xff0c;帮助人工智能领导者确定其他值得投资的技术…

VScode开发ARM环境搭建

1. vscode安装 直接访问官网: Visual Studio Code - Code Editing. Redefined 2. 安装插件 2.1. 安装Embedded IDE 2.2. 安装Cortex-debug 3. 工程初始化 3.1. 导入现有工程&#xff08;推荐&#xff09; 3.2. 或可创建新的工程 3.2.1. 选择Cortex-M项目 指定项目名称&…

Qemu虚拟机在线迁移到VMware

libvirt版本&#xff1a;libvirt-10.0.0qemu版本&#xff1a;qemu-8.2.0 在生产环境中&#xff0c;大多数的场景是 vmware 虚拟机迁移到 qemu 环境&#xff0c;一般是通过关机然后导出、导入磁盘镜像来实现。 如果要将 qemu 环境虚拟机迁移到 vmware 怎么办呢&#xff1f;要求…

使用 Python 进行测试(5)测试的类型

总结 和我一起唱&#xff01; 冒烟测试&#xff0c;让你快速失败&#xff1b; 回归测试&#xff0c;不打破过去&#xff1b; 健全性检查&#xff0c;保留所拥有&#xff1b; 集成测试&#xff0c;处理副作用&#xff1b; 端到端&#xff0c;永无尽头&#xff01; 回测&#xf…

Django使用django-apscheduler实现定时任务

定时任务可以在后台定时执行指定的代码&#xff0c;避免了很多人为操作。下面是在Django项目中如何使用定时任务的具体操作流程。 我在这里使用的 django-apscheduler库来实现定时任务。 一、安装 django-apscheduler pip install django-apscheduler二、在项目的setting.py…

仿真模拟--telnet服务两种认证模式(自作)

自己做的笔记,有问题或看不懂请见解一下~ 目录 两个路由器间实现telnet服务(password认证模式) server client 两个路由器间实现telnet服务(aaa认证模式) server client 改名 tab键补齐 不会就扣问号 ? save 两个路由器间实现telnet服务…

有哪些去手写免费的软件?软件介绍

有哪些去手写免费的软件&#xff1f;在数字化时代&#xff0c;高效处理文字信息已成为学习和工作中不可或缺的一环。对于需要频繁处理手写试卷、笔记的用户来说&#xff0c;一款好的去手写软件无疑能大大提升效率。今天&#xff0c;我们就来推荐三款免费的去手写软件&#xff0…

CentOS 8.5 - 配置ssh的免密登录

文章目录 生成ssh密钥公钥内容放入服务器 生成ssh密钥 在本地主机安装 ssh工具&#xff0c;并生成公钥、私钥。 # 命令行输入 ssh-keygen -r rsa# 会在当前用户的家目录下生成一个.ssh目录公钥内容放入服务器 将上一步生成的id_rsa.pub公钥的内容复制到远程服务器 # 编辑文…

虚拟机安装JDK11操作教程

1、新建/usr/java目录 mkdir /usr/java 2、将jdk-11文件上传/usr/java目录 3、解压jdk-11文件 tar -zxvf jdk-11_linux-x64_bin.tar.gz 4、编辑配置文件&#xff0c;配置环境变量 vi /etc/profile 在打开的文件末尾添加 export JAVA_HOME/usr/java/jdk-11 export JRE_HOM…

对30年国债利率破2.5%的复盘反思

短期看&#xff0c;以月为维度&#xff0c;长端和超长端利率依然具有较强的向下突破的惯性&#xff1b;中期看&#xff0c;以季为维度&#xff0c;长端依然面临向下赔率不足的约束&#xff0c;但调整需要多重利空共振的契机。 短期看多&#xff0c;逢高配置”的四点逻辑 逻辑一…

linux——ansible实验

要求 0.进入servera进行准备工作&#xff0c;做一些清理 1&#xff09;停止httpd服务&#xff0c;清除httpd软件包、配置文件、主页文件 2&#xff09;清理/etc/hosts文件中的内容&#xff0c;只保留最上面默认的两行 &#xff08;127.0.0.1和::1这两行&#xff09; 1.根据之前…

短信内容关键字被拦截-阿里云通知类短信

通知类短信。地产、留学、招聘、交友、游戏等行业仅支持发送验证码。 注意不要有字眼&#xff0c;替换为相似的词语。否则拦截率很高