项目八 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 环文件

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

利用竞争智慧与大型语言模型:假新闻检测的新突破

Explainable Fake News Detection With Large Language Model via Defense Among Competing Wisdom 论文地址: Explainable Fake News Detection with Large Language Model via Defense Among Competing Wisdom | Proceedings of the ACM on Web Conference 2024https://dl.…

uni-CMS:全端开源内容管理系统的技术探索

摘要 本文介绍了uni-CMS&#xff0c;一个基于uniCloud开发的开源内容管理系统&#xff08;CMS&#xff09;。该系统旨在帮助开发者快速搭建并管理内容丰富的网站、小程序和移动应用。通过其全端渲染、内容安全检测、广告解锁付费内容以及AI生成文章等特性&#xff0c;uni-CMS不…

【算法】优先级队列-基础与应用

优先级队列&#xff08;Priority Queue&#xff09;是一种特殊的队列类型&#xff0c;它允许在其元素中分配优先级。与传统的先进先出&#xff08;FIFO&#xff09;队列不同&#xff0c;优先级队列中元素的出队顺序取决于它们的优先级。优先级较高的元素会被优先处理&#xff0…

数组移除元素算法(以JS为例)

题目&#xff1a;LeeCode第27题 答案&#xff1a; 算法思想&#xff1a;双指针 这段代码实际上使用了一种简化版的双指针技术来实现元素的移除。这里的双指针技术并不是传统意义上的两个指针&#xff0c;而是一个索引k作为辅助指针&#xff0c;用来记录新数组&#xff08;或原…

面试:关于word2vec的相关知识点Hierarchical Softmax和NegativeSampling

1、为什么需要Hierarchical Softmax和Negative Sampling 从输入层到隐含层需要一个维度为NK的权重矩阵&#xff0c;从隐含层到输出层又需要一个维度为KN的权重矩阵&#xff0c;学习权重可以用反向传播算法实现&#xff0c;每次迭代时将权重沿梯度更优的方向进行一小步更新。但…

机器学习基础:与Python关系和未来发展

目录 初识Python Python的由来 自由软件运动 编译方式的演进 Python语言的特点 语法简单&#xff0c;易于理解 语法结构清晰&#xff0c;快速上手 丰富的第三方库 机器学习 监督学习 无监督学习 半监督学习 欢迎回到我们的神经网络与深度学习Tensorflow实战学习&am…

Python 虚拟环境 requirements.txt 文件生成 ;pipenv导出pip安装文件

搜索关键词: Python 虚拟环境Pipenv requirements.txt 文件生成;Pipenv 导出 pip requirements.txt安装文件 本文基于python版本 >3.9 文章内容有效日期2023年01月开始(因为此方法从这个时间开始是完全ok的) 上述为pipenv的演示版本 使用以下命令可精准生成requirement…

thrift接口调用工具

写了一个thrift接口调用工具 导入thrift文件就可以直接调用相应接口 工具会根据thrift文件中接口的参数名&#xff0c;参数类型&#xff0c;返回值等等&#xff0c;自动生成接口参数&#xff0c;和结果json化显示。 https://github.com/HuaGouFdog/Fdog-Kit

Java启动jar设置内存分配详解

在微服务架构越来越盛行的情况下&#xff0c;我们通常一个系统都会拆成很多个小的服务&#xff0c;但是最终部署的时候又因为没有那么多服务器只能把多个服务部署在同一台服务器上&#xff0c;这个时候问题就来了&#xff0c;服务器内存不够&#xff0c;这个时候我们就需要对每…

1.3 Sqoop 数据同步工具详细教程

Apache Sqoop 是一个开源工具&#xff0c;用于在 Apache Hadoop 和关系型数据库&#xff08;如 MySQL、Oracle、PostgreSQL 等&#xff09;之间高效传输数据。Sqoop 可以将结构化数据从关系型数据库导入到 Hadoop 的 HDFS、Hive 和 HBase 中&#xff0c;也可以将数据从 Hadoop …

DIVE INTO DEEP LEARNING 50-55

文章目录 50. semantic segmentation50.1 Basic concepts50.2 Major application 51. Transposed convolution51.1 Basic concepts51.2 Major role51.3 Implementation steps and application areas51.4 Transposed convolution51.5 Transposed convolution is a type of convo…

物联网系统运维——移动电商应用发布,Tomcat应用服务器,实验CentOS 7安装JDK与Tomcat,配置Tomcat Web管理界面

一.Tomcat应用服务器 1.Tomcat介绍 Tomcat是- -个免费的开源的Ser Ivet容器&#xff0c;它是Apache基金会的Jakarta 项目中的一个核心项目&#xff0c;由Apache&#xff0c; Sun和其他一 些公司及个人共同开发而成。Tomcat是一一个小型的轻量级应用服务器&#xff0c;在中小型…

从零入手人工智能(5)—— 决策树

1.前言 在上一篇文章《从零入手人工智能&#xff08;4&#xff09;—— 逻辑回归》中讲述了逻辑回归这个分类算法&#xff0c;今天我们的主角是决策树。决策树和逻辑回归这两种算法都属于分类算法&#xff0c;以下是决策树和逻辑回归的相同点&#xff1a; 分类任务&#xff1…

[SAP ABAP] 排序内表数据

语法格式 整表排序 SORT <itab> [ASCENDING|DESCENDING]. 按指定字段排序 SORT <itab> BY f1 [ASCENDING|DESCENDING] f2 [ASCENDING|DESCENDING] ... fn [ASCENDING|DESCENDING].<itab>&#xff1a;代表内表 不指定排序方式则默认升序排序 示例1 结果显…

Nikto一键扫描Web服务器(KALI工具系列三十)

目录 1、KALI LINUX 简介 2、Nikto工具简介 3、信息收集 3.1 目标IP&#xff08;服务器) 3.2kali的IP 4、操作实例 4.1 基本扫描 4.2 扫描特定端口 4.3 保存扫描结果 4.4 指定保存格式 4.5 连接尝试 4.6 仅扫描文件上传 5、总结 1、KALI LINUX 简介 Kali Linux 是一…

抛弃Mybatis,拥抱新的ORM 框架!【送源码】

背景 转java后的几年时间里面一直在寻找一个类似.net的orm&#xff0c;不需要很特别的功能&#xff0c;仅希望90%的场景都可以通过强类型语法来编写符合直觉的sql&#xff0c;来操作数据库编写业务。 但是一直没有找到&#xff0c;Mybatis-Plus的单表让我在最初的时间段内看到…

告别繁琐邀请码,Xinstall助你轻松搭建高效App推广体系!

随着互联网流量的不断变迁&#xff0c;App推广和运营面临着前所未有的挑战。如何快速搭建起满足用户需求的运营体系&#xff0c;成为众多企业亟待解决的问题。在这个背景下&#xff0c;Xinstall凭借其强大的功能和灵活的解决方案&#xff0c;成为了App推广的得力助手。 一、传…

全面理解-Flutter(万字长文,深度解析)

1、Web 性能差&#xff0c;跟原生 App 存在肉眼可见的差距&#xff1b; 2、React Native 跟 Web 相比&#xff0c;支持的能力非常有限&#xff0c;特定长场景问题&#xff0c;需要三端团队一个一个处理&#xff1b; 3、Web 浏览器的安卓碎片化严重&#xff08;感谢 X5&#x…