首页 > 其他分享 >项目八 OpenStack存储管理

项目八 OpenStack存储管理

时间:2024-06-20 23:29:54浏览次数:16  
标签:存储管理 存储 service 项目 -- volume openstack cinder OpenStack

任务一 理解OpenStack块存储服务

1.1 •Cinder的主要功能

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

1.2 •CinderNova的交互

• Nova 虚拟机连接或分离 Cinder 卷

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

1.3 •Cinder架构

1.4 •Cinder创建卷的基本流程

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

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

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

(4)cinder-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。

(3)Cinder 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.1•Swift对象存储系统

• 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

查看 Swift 环文件

标签:存储管理,存储,service,项目,--,volume,openstack,cinder,OpenStack
From: https://blog.csdn.net/m0_64148419/article/details/139840520

相关文章

  • 三、用户中心项目笔记----后端多环境实战+原始部署
    后端多环境主要是修改:    依赖的环境地址        数据库地址        缓存地址        消息队列地址        项目端口号    服务器配置后端怎么去区分不同的环境?我们后端的SpringBoot......
  • m2_day13 [项目周]
    课程内容:GUI图形用户界面监听攻略GUIGUI=>G=图形U=用户I=接口​图形用户接口=用户图形界面...​java.awt.*; Button重量级组件javax.swing.*;JButton轻量级组件​常见的6个步骤:1.选择容器Container和组件Component......
  • m2_day14 [项目周]
    课程内容:分层思想的实现分层思想的实现连接后台的功能前台传给后台的数据后台返回什么1.注册用户名+密码操作是否成功2.登录用户名+密码操作是否成功3.点菜用户名+菜1+菜2...操作是否成功​​申请表Request:......
  • 解决Vue3项目运行控制台警告
    运行Vue3项目,控制台警告:Featureflag VUE_PROD_HYDRATION_MISMATCH_DETAILS isnotexplicitlydefined.Youarerunningtheesm-bundlerbuildofVue,whichexpectsthesecompile-timefeatureflagstobegloballyinjectedviathebundlerconfiginordertogetbet......
  • 基于Springboot的CSGO赛事管理系统(有报告)。Javaee项目,springboot项目。
    演示视频:基于Springboot的CSGO赛事管理系统(有报告)。Javaee项目,springboot项目。项目介绍:采用M(model)V(view)C(controller)三层体系结构,通过Spring+SpringBoot+Mybatis+Vue+Maven+Layui+Elementui来实现。MySQL数据库作为系统数据储存平台,实现了基于B/S结构的Web系统......
  • 基于SSM的宠物医院管理系统的设计与实现(有报告)。Javaee项目。ssm项目。
    演示视频:基于SSM的宠物医院管理系统的设计与实现(有报告)。Javaee项目。ssm项目。项目介绍:采用M(model)V(view)C(controller)三层体系结构,通过Spring+SpringMvc+Mybatis+Vue+Layui+Elementui+Maven来实现。MySQL数据库作为系统数据储存平台,实现了基于B/S结构的Web系统。......
  • 微信小程序毕业设计-教学质量评价系统项目开发实战(附源码+论文)
    大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。......
  • 热门开源项目推荐
    以下是一些近年来非常受欢迎的开源项目,这些项目涵盖了多种编程语言和应用领域,适合不同需求和兴趣的开发者参与和学习。1. TensorFlow描述:一个用于机器学习的开源库,广泛应用于深度学习和人工智能项目。语言:Python,C++地址:TensorFlowGitHub2. React描述:由Facebook开发的......
  • SAdb项目第二章-PySide6&&designer基础配置及应用
    接上文,本章来说说designer如何使用,并且如何转换成py文件打开designer控制台输入pyside6-designer就能打开创建一个Widget窗口打开后会自动弹出新建窗体选择Widget创建即可。也可以通过左上角的文件新建一个:designer简介desinger中的控件区域有各种控件......
  • Java智慧工地源码 5G智慧工地系统源码 使用SAAS部署 三维可视化管理,与一线生产过程相
    Java智慧工地源码5G智慧工地系统源码使用SAAS部署三维可视化管理,与一线生产过程相融合,集成数据后台,统一前端入口,呈现多方项目信息;智慧工地是指运用信息化手段,通过三维设计平台对工程项目进行精确设计和施工模拟,围绕施工过程管理,建立互联协同、智能生产、科学管理的施工项......