常用存储高级技术【精简配置、存储分层、缓存分区、快照、文件系统配额管理

Kafka实战笔记

关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图

image.png

  • Kafka入门
  • 为什么选择Kafka
  • Karka的安装、管理和配置

image.png

  • Kafka的集群
  • 第一个Kafka程序
  • image.png

afka的生产者

image.png

  • Kafka的消费者
  • 深入理解Kafka
  • 可靠的数据传递

image.png

image.png

  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

image.png

  • Kafka实战之削峰填谷

image.png

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

在这里插入图片描述

Capacity-on-write:当Thin LUN接收到主机写数据请求,首先会通过direct-on-time技术判断该写数据请求的逻辑存储区域是否已经分配了实际存储区域,如果尚未分配就会触发空间分配,分配的最小粒度称为Grain, Grain大小为64k,然后将数据写入到新分配的实际存储区域中。

读写重定向


在这里插入图片描述

  • 由于采用了Capacity-on-write技术,数据的实际存储区域和逻辑存储区域的关系不再是按照确定的公式可以固定不变计算出来的,而是按照写时分配的原则随机映射确定的。

  • 所以在对Thin LUN进行读写时需要重定向实际存储区域和逻辑存储区域的关系,重定向依赖于映射表。

  • 映射表的主要作用是用来记录实际存储区域和逻辑存储区域的映射关系。在写过程中动态更新映射表,在读过程中查询映射表。因此,Direct-on-time重定向操作也就分为读重定向和写重定向。

  • 读重定向:Thin LUN接收到主机读数据请求后,先查询映射表,如果该读数据的逻辑存储区域已分配对应的实际存储区域,则将该读数据的逻辑存储区域重定向到实际存储区域,然后从实际存储区域中读取到数据后,将该数据返回给主机;如果该读数据的逻辑存储区域尚未分配空间,则将该逻辑存储区域的数据置为全0返回给主机。

  • 写重定向:Thin LUN接收到主机写数据请求后,先查询映射表,如果该写数据的逻辑存储区域已分配对应的实际存储区域,则将该写数据的逻辑存储区域重定向到实际存储区域,然后将数据写入到实际存储区域中,并返回写成功给主机;如果该写数据的逻辑存储区域尚未分配空间,则通过Capacity-on-write技术操作。

应用场景及配置流程


在这里插入图片描述

在这里插入图片描述

存储分层(SmartTier)技术

================================================================================

概述


在这里插入图片描述

  • SmartTier(智能数据分级)是华为公司在RAID2.0+技术之上自主研发的分级存储软件,它自动将不同活跃度的数据和不同特点的存储介质动态匹配,从而提高存储系统性能并降低用户成本。

  • 分级存储技术通过数据迁移完成数据的分级存储。目前,分级存储技术主要分手工迁移和自动迁移两类。

  • 手工迁移是系统维护人员根据当前存储系统运行的状态、各个业务系统的压力情况,手动将数据从一个LUN中迁移到另外一个LUN中。

  • 自动迁移是根据系统当前对某些文件或者块的访问频率,识别出热点与非热点数据,根据热点与非热点数据分配不同的存储介质,将频繁访问的热点数据自动迁移到高性能的存储介质中,而将低周期访问的非热点数据自动迁移到大容量,低成本的存储介质中。

存储分层


在这里插入图片描述

  • SmartTier将不同存储介质按性能高低划分为三个存储层,由高至低分别是SSD盘组成的层(简称高性能层)、SAS盘组成的层(简称性能层)、NL-SAS盘组成的层(简称容量层)。

  • 每个存储层分别使用相同的硬盘类型和RAID策略。

工作原理


在这里插入图片描述

  • 存储池是一个或多个存储层的逻辑组合,最多可支持三个级别的存储层。存储池包含的硬盘类型决定其可以创建的存储层。由单一硬盘类型组成的存储池无法创建不同存储层,因此不能应用SmartTier进行智能化数据存储管理。

  • LUN创建在存储池中,在应用SmartTier特性之前其数据分布在同一个存储池的不同存储层。

  • SmartTier将LUN数据按照一定粒度划分,该粒度被称为“数据迁移粒度”或“数据块”。数据迁移粒度在创建存储池时设置,且设置后不可更改。

  • 当存储池中存在两种或以上的硬盘类型时,用户可以应用SmartTier特性充分利用存储池中的每个存储层。数据迁移过程中,存储池以数据块为单位识别数据活跃度并将整个数据块迁移至其他存储层。

  • 存储系统经历I/O监控、数据排布分析、数据迁移三个阶段实现SmartTier。

  • 新数据写入LUN时,存储系统根据初始容量分配策略,将新写入的数据分配在相应存储层。

  • 随着数据生命周期的推移,数据的活跃度会发生变化。SmartTier将不同活跃度的数据迁移至不同性能的存储层,为存储系统提供更高的性能,并且数据迁移过程不会影响其他新数据的写入。

关键技术


在这里插入图片描述

容量初始分配


在这里插入图片描述

初始容量分配策略包括四类:自动分配、优先从高性能层分配、优先从性能层分配、优先从容量层分配。

迁移策略


在这里插入图片描述

  • 自动迁移:LUN配置了自动迁移策略,该LUN的数据块按照访问频度做迁移,访问频度最高的迁往高性能层,访问频度适中的迁往性能层,访问频度最低的迁往容量层。无特殊要求,推荐配置自动迁移,总体性能提升最佳。

  • 向高性能层迁移:LUN配置了向高性能层迁移,无论数据块访问频度是高还是低,该LUN的所有数据块都会迁往高性能层级,会占用较多高性能存储资源。只有对该LUN的性能有特殊要求时,才配置向高性能层迁移。

  • 向低性能层迁移:LUN配置了向低性能层迁移,无论数据块访问频度是高还是低,该LUN的所有数据块都会迁往容量层。当某个LUN用于归档业务,或者用于对性能要求低的业务,可配置向低性能层迁移。

  • 不迁移:LUN配置了不迁移,该LUN的所有数据块都不会做迁移,这是LUN创建时的默认策略,只有购买了SmartTier的License,才能修改为其他迁移策略。

I/O监控系统分析


在这里插入图片描述

  • 热数据和冷数据并没有用一个绝对值做区分。存储池高性能层容量可以存放A个数据块,性能层容量可以存放B个数据块, 在迁移时把该存储池的所有自动迁移策略的LUN的所有数据块按访问频度拉通排序,在迁移时把访问频度最高的A个数据块存放到高性能层,把访问频度较高的B个数据块存放到性能层,访问频度排在后面的其他数据块放到容量层。

  • 原则是尽量让访问频度高的数据块使用性能好的存储介质。

数据迁移


在这里插入图片描述

  • 迁移速度可以设置为高速、中速和低速,分别对应的具体迁移速度位单控制器100M/S、20M/S和10M/S,默认的迁移速度为低。

  • 为了减少SmartTier数据迁移对主机业务性能的影响,设置的迁移速度是数据迁移速度允许的上限值。数据迁移让主机业务优先,利用存储设备的空闲资源做迁移,依据主机业务压力实时调整迁移的速度。主机业务压力小时,迁移速度调大;主机业务压力小时,迁移速度调小;无论如何调整,迁移速度都不会大于设置的迁移速度。

  • 低速:适合在选择的数据迁移时段有较大的业务压力时使用。

  • 中速:适合在选择的数据迁移时段有较适中的业务压力时使用。

  • 高速:适合在选择的数据迁移时段几乎没有业务,或主机业务对性能要求不敏感

的情况下使用。

  • 数据迁移粒度

  • 512KB~64MB(根据业务配置,例如视频监控业务,适合大的迁移粒度)

  • 数据迁移计划

-手动方式:可在任意时刻设置时间段进行数据迁移

  • 定时方式:只能在预先设置的时间计划内进行数据迁移

  • 数据迁移速率

  • 可提供三种不同级别的迁移速率:高、中、低

  • 根据当前业务负载,动态调整速率,确保不会对当前业务造成明显影响

降低TCO说明


在这里插入图片描述

由于空闲数据存储在NL-SAS硬盘,高性能的SSD硬盘存储空间得以释放,该企业的更多繁忙数据将存储在SSD硬盘。SSD硬盘能为繁忙数据提供更短的响应时间、更高的IOPS,从而提高存储系统性能

配置流程


在这里插入图片描述

服务质量控制技术

=======================================================================

概述


在这里插入图片描述

  • SmartQoS特性是华为OceanStor V3 融合存储系统上提供的一项存储QoS功能。

  • 如图所示,它能够对存储系统中的资源进行智能分配和调节,在整个存储路径上进行端到端的细粒度控制,从而满足多种不同重要性业务在同一台存储设备上的不同QoS要求。

工作原理


在这里插入图片描述

  • 技术特点:

  • 全IO路径的优先级调度:

  • SmartQoS通过控制计算资源的调度和分配,在整个IO路径进行优先级控制。相比友商的优先级控制策略,控制粒度更细。

  • 针对不同应用场景提供不同的QoS策略:

  • SmartQoS细分用户场景,针对不同的应用场景提供不同的QoS策略。在用户有明确的性能指标需求时可以通过流量限制或者最小性能保障策略来满足用户需求;当用户无法精确指定性能指标时,可以基于应用的重要性采用优先级机制来保证高优先级业务的性能。

  • IO性能保障技术:

  • OceanStor V3 融合存储系统SmartQoS特性的IO性能保障技术通过按照权重调度的方式来保证某些关键业务的最低性能要求。

  • 用户可以为高优先级的业务设置最低性能指标,当此业务的最低性能指标无法达成之后,系统会通过对保障业务与非保障业务按照权重调度的方式来保障设置了最低性能目标的高优先级业务的性能。

IO优先级调度技术


在这里插入图片描述

  • SmartQoS特性的优先级调度技术基于LUN和文件系统的优先级实现。

  • 因此每个LUN和文件系统对象都有一个优先级属性,这个属性由用户配置并保存在数据库中,当一个IO从主机发送到阵列,这个IO将会根据其归属的LUN或文件系统来获得这个优先级属性,并且在整个IO路径上携带这个优先级信息。

  • 用户在创建LUN或文件系统的时候需要指定所创建的LUN或文件系统的优先级。如果用户不进行指定,则所创建的LUN或文件系统的优先级属性默认为低优先级。

  • LUN或文件系统创建后,其优先级属性可以根据用户的需要手动修改。

IO流量控制技术


在这里插入图片描述

  • SmartQoS特性的IO流量控制技术的性能目标是基于令牌的分发和控制实现的。当用户为某个流控组设置了性能上限,那么这个性能上限会被转化成对应的令牌。在存储系统中,如果用户要限制的流量类型是IOPS,那么一个IO即对应一个令牌;如果设定的性能目标是带宽,那么一个扇区对应一个令牌。

  • 每个流控队列都有一个令牌桶,SmartQoS会定期向每个流控队列的令牌桶中放入一定数量的令牌,令牌的数量取决于用户设定的这个流控组的性能上限。即如果用户设定性能上限为IOPS =10000,则令牌分发算法就会在每秒将此流控组的令牌桶中的令牌数设置为10000。

  • 当流控队列进行出队处理的时候,会查看此队列的令牌桶中是否有足够的令牌,如果有,则取出一个IO进行处理,并消耗这个IO对应的令牌;如果没有令牌,则必须等待令牌桶中有足够的令牌可以用为止。

应用场景


在这里插入图片描述

  • 为了满足高级别用户,可通过设置LUN的I/O优先级来满足其业务的运行。

  • 设置用户A的I/O优先级为高,从而保证用户A业务的正常运行。

  • 设置用户B的I/O优先级为低,从而保证用户B业务不会影响用户A业务的正常运行。

配置流程


在这里插入图片描述

缓存分区技术

=====================================================================

概述


在这里插入图片描述

SmartPartition还可以与OceanStor V3 融合存储系统的其他QoS技术(如智能服务质量控制SmartQoS)相配合,从而达到更好的服务质量保证效果。

在这里插入图片描述

  • 典型的IT系统架构由计算、网络、存储三大部分组成,在传统的“烟囱式”架构中,不同的应用系统相对独立,单个存储需要面对的应用数量不多(一般在5个以下)。

  • 图中每种颜色代表了一种不同的业务。可以看到,这些业务的I/O模式是不同的,对缓存及访盘并发的需求也是不同的。

  • 多种业务混合争抢并发资源和缓存资源,导致服务质量不可保证。比如,业务N抢占的访盘并发同其主机并发并不匹配,其结果就是缓存中业务N的数据会越来越多,对其他业务性能造成影响;而业务3如果是关键业务,就意味着其业务性能不能得到保证。

工作原理


在这里插入图片描述

  • Cache分区技术通过隔离不同的业务所需要的资源,保证某些关键业务的服务质量。

  • 在存储系统中,某个业务能够使用的缓存容量是影响其服务质量的一个主要因素。

  • 该业务在该存储系统上可以占有的缓存大小是影响存储系统性能的最主要因素:

  • 对写业务来说,更多的缓存意味着更高的写合并率、写命中率(同一块数据在缓存中被再次写中的比率)和更好的访盘顺序度;对读业务来说,更多的缓存通常

意味着更高的读命中率。

  • 同时,不同类型的业务对缓存的需求也有很大不同:对顺序类业务来说,缓存不需要很大,只需要满足I/O合并要求即可;而对随机类业务来说,更大的缓存通常意味着更好的访盘顺序度,从而带来性能的提升。

  • SmartPartition可以针对不同的业务(实际控制对象为LUN和文件系统)分配不同大小的缓存分区资源,从而保证关键业务的服务质量。

对多业务的调控


在这里插入图片描述

  • 用户可以以LUN或文件系统为单位设置SmartPartition分区,每个SmartPartition分区的资源只能被独立访问,互不干扰。

  • 用户手动配置某个分区的缓存容量后,SmartPartition特性通过周期性的统计每个分区中的I/O个数,提供最优化的配置,保证关键业务的服务质量。

应用场景


在这里插入图片描述

  • 随着存储系统的性能和容量不断增强增大,将多个应用同时部署在一台存储系统上,不仅简化用户的存储系统架构,还能减少用户配置和管理成本。部署在同一台存储系统上的多个应用,会争抢存储资源,将导致各业务的性能受到严重影响。

  • 通过SmartPartition特性可以为不同的业务指定不同的缓存分区,满足关键业务的运行要求。同时,根据业务读写压力,可以分别设置相应读分区和写分区大小。如读业务量较大,可为其分配更多的读分区容量;若全是写业务,则可以配置较小的读分区容量。

配置流程


在这里插入图片描述

快照技术

===================================================================

概述


在这里插入图片描述

  • 快照不但能够快速生成源卷在某个时间点的一致性副本,还提供了恢复源卷数据的机制。

  • 当源卷的数据遭到人为意外删除、破坏或病毒入侵时,通过快照回滚可以快速将源LUN的数据恢复到快照激活时间点的数据,减少源卷数据的丢失量。

在这里插入图片描述

  • COW(Copy over Write):写前拷贝,即在主机写快照源LUN之前,先将源LUN的被保护数据拷贝到其他地方,拷贝完成后,主机IO才继续写源LUN。

  • COW数据空间:源LUN在做写前拷贝时,用于存放源LUN被保护的数据的空间。该空间无用用户配置,源LUN做写前拷贝时才向存储池申请该空间,不占用源LUN数据空间。激活快照后,若没有向源LUN下发IO,源LUN不会有写前拷贝动作,该Cow数据空间实际使用大小为0。

  • 共享映射表:激活快照后,快照源LUN上发生的变更统一存放在共享映射表上。一个源LUN上的所有快照共同使用该映射表。

  • 独享映射表:激活快照后,快照卷上写入的数据都记录在独享映射表上。每个快照都有自己的一张独享映射表。

映射表


在这里插入图片描述

  • 映射表用来表示快照的实际数据所在。

  • 映射表分为两类:独享映射表和共享映射表。其原理是相同的,不同的地方在于独享映射表记录写快照发生的数据变更,共享映射表记录的是写源LUN发生的变更。

COW技术


在这里插入图片描述

  • 当快照被激活时(此时刻称为快照时间点),主机读写的具体操作如下:
  1. 激活快照后,源LUN有数据写入。

  2. 首先将查询快照映射表,如果映射表中对应该地址的映射项不存在时,需要进行copy-on-write(写前拷贝),写前拷贝完成后在映射表中记录备份的源LUN数据信息。如果映射项存在,则直接覆盖写入源LUN的对应位置。

  3. 写前拷贝,即读取源LUN对应位置的数据写入COW卷的空间。

  4. COW卷空间与源LUN空间分布在同一个POOL中,写入COW卷即写入POOL的空间区域。

结语

小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。

我们选择的这个行业就一直要持续的学习,又很吃青春饭。

虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。

送给每一位想学习Java小伙伴,用来提升自己。

在这里插入图片描述

本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  1. COW卷空间与源LUN空间分布在同一个POOL中,写入COW卷即写入POOL的空间区域。

结语

小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。

我们选择的这个行业就一直要持续的学习,又很吃青春饭。

虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。

送给每一位想学习Java小伙伴,用来提升自己。

[外链图片转存中…(img-xtdjPvQa-1715538123153)]

本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值