【存储】RAID2.0+、多路径技术、磁盘可靠性技术

news2024/11/26 15:01:14

RAID2.0+

  • RAID 2.0+技术
    • RAID技术发展
    • RAID 2.0+软件逻辑对象
    • RAID 2.0+基本原理
    • 硬盘域
    • Storage Pool & Tier
    • Disk Group(DG)
    • LD(逻辑磁盘)
    • Chunk(CK)
    • Chunk Group(CKG)
    • Extent
    • Grain
    • Volume & LUN
  • 多路径技术
    • 多路径技术原理
    • 多路径软件与OS集成方式
    • UltraPath功能
      • Failover
      • Failback
  • 磁盘可靠性技术
    • 硬盘可靠性
    • 硬盘失效分类
    • 硬盘智能扫描和坏道修复
    • 硬盘智能在线诊断系统
    • 硬盘预拷贝
    • 慢IO快速响应
    • RAID重构技术简介
    • RAID重构技术原理

RAID 2.0+技术

RAID技术发展

在这里插入图片描述
在最初的RAID技术中,是将几块小容量廉价的磁盘组合成一个大的逻辑磁盘给大型机使用。后来硬盘的容量不断增大,组建RAID的初衷不再是构建一个大容量的磁盘,而是利用RAID技术实现数据的可靠性和安全性,以及提升存储性能,由于单个容量硬盘都已经较大了,数据硬盘组建的RAID容量更大,然后再把RAID划分成一个一个的LUN映射给服务器使用。随着硬盘技术的发展,单块硬盘的容量已经达到数T,传统RAID技术在硬盘重构的过程中需要的时间越来越长,也增加了在重构过程中其它硬盘再坏掉对数据丢失造成的风险,为了解决这一问题,块虚拟化技术应运而生。RAID 2.0+ 是华为的块虚拟化技术,该技术将物理空间和数据空间分散分布成分散的块,可以充分发挥系统的读写能力,方便扩展,也方便了空间的按需分配,数据的热度排布,迁移,它是华为所有Smart软件特性的实现基础。同时,由于热备空间也是分散在多个盘上的,因此硬盘数据的重构写几乎可以同时进行,避免了写单个热备盘造成的性能瓶颈,大大减少了重构时间。

RAID 2.0+软件逻辑对象

在这里插入图片描述

  • 华为RAID2.0+采用底层硬盘管理和上层资源管理两层虚拟化管理模式,在系统内部,每个硬盘空间被划分成一个个小粒度的数据块,基于数据块来构建RAID组,使得数据均匀地分布到存储池的所有硬盘上,同时,以数据块为单元来进行资源管理,大大提高了资源管理的效率。
    • OceanStor存储系统支持不同类型(SSD、SAS、NL-SAS)的硬盘(SATA盘理论可用,只是其性能较低,企业级存储中已很少使用),这些硬盘组成一个个的硬盘域(Disk Domain)。在一个硬盘域中,同种类型的硬盘构成一个存储层,每个存储层内部再按一定的规则划分为Disk Group;
    • 各存储层的硬盘被划分为固定大小的Chunk(CK),其中,SSD层和SAS层的CK的大小为64MB,NL-SAS层的CK大小为256M。
    • OceanStor 存储系统通过随机算法,将每一个存储层的Chunk(CK)按照用户设置的“RAID策略”来组成Chunk Group(CKG),用户可以为存储池(StoragePool)中的每一个存储层分别设置“RAID策略”。
    • OceanStor存储系统会将Chunk Group(CKG)切分为更小的Extent。Extent作为数据迁移的最小粒度和构成Thick LUN的基本单位,在创建存储池(Storage Pool)时可以在“高级”选项中进行设置,默认4MB。对于Thin LUN或文件系统,会在Extent上再进行更细粒度的划分(Grain),并以Grain为单位映射到Thin LUN、文件系统。(Thin LUN的概念将在后面的章节中描述)
  • 若干Extent组成了卷(Volume),卷(Volume)对外体现为主机访问的LUN(这里的LUN为Thick LUN)。在处理用户的读写请求以及进行数据迁移时,LUN向存储系统申请空间、释放空间、迁移数据都是以Extent为单位进行的。例如:用户在创建LUN时,可以指定容量从某一个存储层中获得,此时LUN由指定的某一个存储层上的Extent组成。在用户的业务开始运行后,存储系统会根据用户设定的迁移策略,对访问频繁的数据以及较少被访问的数据在存储层之间进行迁移(此功能需要购买SmartTier License)。此时,LUN上的数据就会以Extent为单位分布到存储池的各个存储层上。
  • 在用户创建Thin LUN或文件系统时,OceanStor存储系统还会在Extent的基础上再进行更细粒度的划分(Grain),并以Grain为单位映射到Thin LUN或文件系统,从而实现对存储容量的精细化管理。

RAID 2.0+基本原理

在这里插入图片描述

硬盘域

在这里插入图片描述

  • 在传统RAID中,要将硬盘空间提供给业务主机的第一步操作是 创建RAID组。但是对创建RAID组这一操作有一些限制和要求:RAID组中的硬盘的类型是相同的,硬盘的大小和转速需要保持一致,而且一个RAID组中的硬盘个数不建议超过12个。
  • 华为RAID2.0+技术中采用了另一种实现方法。在该方法中,第一步操作不是 创建RAID组,而是创建硬盘域。一个硬盘域就是一组硬盘。一个硬盘只能属于一个硬盘域。OceanStor存储系统可以创建一个或多个硬盘域。看起来,硬盘域的概念似乎跟RAID组的概念类似,都是一组硬盘,但实际上还是有很大的区别。在创建的RAID组中,这组硬盘已经按照设定某个RAID组级别进行了绑定,且这组硬盘的类型,大小,转速都必须是一样的。但是在一个硬盘域中,硬盘的个数可以大很多,比如上百个,而且可以最多包含3种类型的硬盘,每种类型的硬盘对应分配到一个存储层级,SSD盘对应分配到高性能层,SAS盘分配到性能层,NL-SAS盘分配到容量层。如果硬盘域中没有相应的硬盘类型,则该硬盘域就没有相应的存储层。更为关键的区别是,硬盘域的主要作用是将这一组盘和哪一组盘分开,目的是实现故障、性能和存储资源等的完全隔离。在创建硬盘域时,RAID级别尚未指定,即数据的冗余保护方式还未指定。事实上,RAID2.0+ 对数据冗余保护方式的设置更加灵活,更加精细化。硬盘域中硬盘组成的存储空间,将被划分成更小粒度的存储池,以及为各个存储层级内共享的热备空间。热备空间大小是系统根据管理员为该硬盘域设置的热备策略(高、低、无)以及该硬盘域各存储层的硬盘个数自动设置的,而不再是传统RAID组中那样,由管理员指定某个特定的盘做热备盘。

Storage Pool & Tier

在这里插入图片描述

  • 一个存储池基于指定的一个硬盘域创建,可以从该硬盘域上动态的分配Chunk(CK)资源,并按照每个存储层级(Tier)的“RAID策略”组成Chunk Group(CKG)向应用提供具有RAID保护的存储资源。
  • 存储池根据硬盘类型可划分为多个Tier,OceanStor存储系统支持的存储层级和硬盘类型上图左表所示。
  • 创建存储池可以指定该存储池从硬盘域上划分的存储层级(Tier)类型以及该类型的“RAID策略”和“容量”。
  • OceanStor存储系统支持RAID1、RAID10、RAID3、RAID5、RAID50和RAID6,支持的RAID策略和配置上图右表所示。
  • 容量层由大容量的SATA、NL-SAS盘组成,RAID策略建议使用双重校验方式的RAID6。(SATA盘较少使用,部分产品规格上已经不支持)

Disk Group(DG)

在这里插入图片描述

  • OceanStor存储系统会在每个硬盘域内根据每种类型的硬盘数量自动划分为一个或多个Disk Group(DG)。
  • 一个Disk Group(DG)只包含一种硬盘类型
  • 任意一个CKG的多个CK来自于同一个Disk Group(DG)的不同硬盘
  • Disk Group(DG)属于系统内部对象,主要作用为故障隔离,由OceanStor存储系统自动完成配置,对外不体现。

LD(逻辑磁盘)

在这里插入图片描述

Chunk(CK)

在这里插入图片描述

  • 块大小是系统在切分物理空间的时候固定的大小,不能进行更改。

Chunk Group(CKG)

在这里插入图片描述

  • 一个CKG中的CK均来自于同一个DG中的硬盘,CKG具有RAID属性(RAID属性实际配置在Tier上),CK和CKG均属于系统内部对象,由存储系统自动完成配置,对外不体现。

Extent

在这里插入图片描述

  • 一个Extent归属于一个Volume或一个LUN,Extent大小在创建存储池时可以进行设置,创建之后不可更改,不同存储池的Extent大小可以不同,但同一存储池中的Extent大小是统一的。

Grain

在这里插入图片描述

  • Thin LUN以Grain为单位映射到LUN,对于Thick LUN,没有该对象。

Volume & LUN

在这里插入图片描述

  • 一个Volume对象用于组织同一个LUN的所有Extent、Grain逻辑存储单元,可动态申请释放Extent来增加或者减少Volume实际占用的空间。

多路径技术

在这里插入图片描述

  • 用户数据从主机侧到磁盘阵列,经历的典型路径为:主机 -> SAN网络 -> 存储系统机头-> 存储系统磁盘。
  • 所谓多路径技术,即在一台主机和存储阵列端使用多条路径连接,使主机到阵列的可见路径大于一条,其间可以跨过多个交换机,避免在交换机处形成单点故障。如上右图中,主机到存储阵列的可见路径有2条,即 (1,3)(2,4 ),该路径上有两台独立的交换机。在这种模式下,当路径1断开时,数据流会在主机多路径软件的导引下选择路径(2,4 )到达存储阵列侧,同样在左侧交换机失效时,也会自动导引到右侧交换机到达存储阵列。在路径1恢复的情况下,IO流会自动切回原有路径下发。整个切换和恢复过程对主机应用透明,完全避免了由于主机和阵列间的路径故障导致IO中断。
  • 存储系统冗余保护方案涉及了这个路径上的所有领域,在主机侧和SAN网络领域,通过结合UltraPath多路径软件及其它多路径软件,保证了前端路径没有单点故障;在存储机头侧,使用了全冗余硬件及热插拔技术实现了双控双活的冗余保护;在磁盘侧,利用磁盘双端口技术及磁盘多路径技术,实现了磁盘侧冗余保护。

多路径技术原理

在这里插入图片描述

  • 多路径软件的作用:
    • 避免了同一LUN有多条路径可达导致的操作系统逻辑错误。
    • 增强了链路的可靠性,避免了因为单个链路故障而导致的系统故障。

多路径软件与OS集成方式

在这里插入图片描述

  • 一般来说,多路径软件工作在磁盘驱动之下,以提供虚拟磁盘给上层应用访问,但也可以工作在磁盘驱动之上而在LVM之下(如Linux平台的各主流多路径软件)。
  • 多路径软件在与OS集成方面主要有以下两种差异:
    • 屏蔽原生磁盘,并创建虚拟SCSI磁盘优点:
      • 安全,用户无法使用原生的冗余磁盘,避免了误操作情况下数据破坏。
      • 对上层应用透明,部署多路径软件前后磁盘无任何变化,因此不需要更改上层应用配置。
      • 兼容性更好:某些应用固定只识别标准SCSI磁盘。
    • 屏蔽原生磁盘,并创建虚拟SCSI磁盘缺点:
      • 非OS原生多路径软件需要OS驱动栈支持事件拦截机制才能实现原生磁盘屏蔽;否则就需要使用hook方式替换系统函数,存在与第三方驱动共存风险。
  • 不拦截原生磁盘,额外创建虚拟磁盘优点:
    • 与第三方驱动共存兼容性较好。
  • 不拦截原生磁盘,额外创建虚拟磁盘缺点:
    • 用户可以使用原生的冗余磁盘,误操作情况下可能导致数据破坏
    • 需要上层应用更新配置。
    • 存在兼容性问题。

UltraPath功能

Failover

在这里插入图片描述

  • 当同一存储控制器有多条路径连接到主机,当LUN归属于该控制器时,当主路径故障时,会优先选择同控制器的其他端口的路径。
  • UltraPath在路径故障时可以自动将IO转移到其他可用路径,流程如下图所示:
    1. 应用向UltraPath生成的虚拟磁盘下发IO。
    2. UltraPath将IO转发给一个path 1(即SCSI设备)。
    3. 路径故障导致该path 1上IO失败。
    4. UltraPath将IO重新下发给另一个path 2。
    5. path 2返回IO成功。
    6. UltraPath向上层应用返回IO成功。

Failback

  • U1traPath在检测到路径故障恢复后会自动重新把I0下发到该路径。
  • 路径恢复有两种方式:
    • 对于支持热拔插的系统(如Windows) ,主机与存储之间的链路断开会导致SCSI设备被删除,相应的在链路恢复后会触发重新创建SCSI设备,对于这种场景U1traPath可以立即感知到路径恢复;
    • 对于不支持热拔插的系统(如AIX、低版本的Linux),U1 traPath通过周期例测感知路径恢复。

磁盘可靠性技术

硬盘可靠性

在这里插入图片描述

  • 电气部分和软件的作用是驱动机械部分完成数据的存取。

硬盘失效分类

在这里插入图片描述

  • UNC:Uncorrectable。
  • 硬盘坏道产生原因:
    • 逻辑坏道,如:磁头附着有污渍,硬盘内部有颗粒粉尘,外界干扰导致磁头飞行不稳定,写操作意外中断(例如断电),振动等。
    • 物理坏道,如:盘片本身有暇疵,硬盘内部金属颗粒,外界冲击导致头碟接触(HDI)等。
    • 磁头退化,如:磁头遭受静电击穿或过电流ESD/EOS,磁头来料质量问题,硬盘工作环境恶劣加速老化(温度高,电压不稳等)等

硬盘智能扫描和坏道修复

在这里插入图片描述

  • 硬盘坏道很多是由于写的时候造成,或者是擦伤,这些坏道是无法实时发现的,只能在数据读取时才发现。
  • 因此,硬盘坏道的后台扫描就十分重要了,否则等数据读取时,有可能RAID条带上的两个数据都是坏的,就无法恢复了。
  • 硬盘的容量越来越大,如果简单的逐个扇区扫描,一次扫描的周期会超过1个月甚至几个月,实际上就失去了及时发现坏道的效果。
  • 华为存储,研究坏道产生的原理规律:1、如果一个扇区损坏,其周围的扇区也可能有损坏;2、如果某个时间发现坏块,这段时间内其他扇区发生损坏的概率也高。
  • 根据该规律,设计了跳跃式扫描算法:间隔跳跃式检查硬盘部分扇区,但发现坏道时,检查附近的扇区,并提升检查速度,当坏道发现减少时,降低检查速度。
  • 现在后台扫描的准确度和及时率已经提升了数倍。

硬盘智能在线诊断系统

在这里插入图片描述

  • 优势:解决NPF问题(由于硬盘Firmware异常,短暂外部振动等偶发原因导致的硬盘软失效),减小RAID失效几率,最大程度保证业务连续性和数据可靠性。
  • 据统计,SATA硬盘年故障率约为2.5%,其中70%为可修复坏道。以30天为周期对硬盘进行周期性扫描,就意味着硬盘坏道每30天被全部发现并修复一次。由此,可以计算出实现硬盘介质扫描技术之后,硬盘年故障率可降低到λ=2.5%×0.3+2.5%×0.7×30/365= 0.89%,Raid组失效率可以降低约1个数量级。
    可以通过两种途径来检测硬盘坏道。
  • 读写失败自动分析。硬盘读写失败可能有多种原因,如硬盘磁头损坏、硬盘接口损坏、连接线缆损坏、硬盘被拔出等。当硬盘读写失败发生时,存储系统会根据系统当前状态、硬盘当前状态、IO失败信息等进行综合分析,判断该次读写失败原因是否为硬盘坏道。
  • 硬盘介质主动扫描。存储系统还支持硬盘介质后台扫描技术,利用硬盘空闲周期检查硬盘介质,及时发现硬盘坏道,避免累积错误。存储系统的硬盘介质扫描,摈弃了顺序读取硬盘所有扇区的传统方式,直接使用硬盘的内建介质扫描功能,避免了硬盘扫描对后端带宽的占用,将对系统性能的影响降到最低。当对正在进行介质扫描的硬盘进行读写时,扫描动作自动停止,转而处理读写操作,在读写停止之后,硬盘可以从之前的断点继续扫描。

硬盘预拷贝

在这里插入图片描述

  • 硬盘有自身的故障预测机制,但该机制,用硬盘厂商自身的话说,很不准确。
  • 因为华为存储,在硬盘自身机制基础上,设计了自己的预测机制,把预测准确度提升了数倍。
  • 技术原理:
    • 系统硬盘进行健康监控,当发现硬盘错误统计超过设定阈值后,立即报硬盘即将失效
    • RAID组通过拷贝的方式,将数据从疑似故障盘中迁移到热备空间,同时向管理人员告警,提醒更换疑似故障盘。
  • 技术优势:大大降低RAID组重构事件发生的概率,提高系统的可靠性。

慢IO快速响应

在这里插入图片描述

  • 硬盘是机械部件,偶尔一些IO比较慢是正常的,普通的应用也感觉不到。但对于客户的核心应用来讲,一般都对访问时延很敏感,这时慢的IO可能会影响应用甚至业务中断。
  • 华为存储,充分利用RAID技术,当某些硬盘IO比较慢时,及时放弃该硬盘IO,而改用读取其他硬盘的数据来校验生成该盘数据,从而尽快返回核心应用需要的数据。这样就有效保证了核心应用的业务连续性。
  • 技术原理:
    • 硬盘由于处理物理坏道、磁头问题、振动等异常,内部进行多次retry,IO响应时间过长(秒级),导致业务卡顿或者中断
    • 系统对下发给硬盘的IO进行时间监控,如果超过设定阈值,则通过RAID组降级读快速响应主机
  • 技术优势:快速响应业务,真正支撑对时延敏感的企业核心关键业务

RAID重构技术简介

在这里插入图片描述
OceanStor存储系统针对硬盘采用了多重故障容错设计,具有硬盘在线诊断、DHA(Disk Health Analyzer,硬盘故障诊断与预警)、坏道后台扫描、坏道修复等多种可靠性保障,RAID2.0+技术会根据热备策略自动在硬盘域中预留一定数量的热备空间,用户无需进行设置,当系统自动检测到硬盘上某个区域不可修复的介质错误或整个硬盘发生故障时,系统会自动进行重构,将受影响的数据块数据快速重构到其他硬盘的热备空间中,实现系统的快速自愈合。

RAID重构技术原理

在这里插入图片描述

  • 容量的增长使得传统RAID不得不面临一个严重的问题:10年前重构一块硬盘可能只需要几十分钟,而如今重构一块硬盘需要十几甚至几十个小时。越来越长的重构时间使得企业的存储系统在出现硬盘故障时长时间处于非容错的降级状态,存在极大的数据丢失风险,存储系统在重构过程中由于业务和重构的双重压力导致数据丢失的案例也屡见不鲜。
  • 基于底层块级虚拟化的RAID2.0+技术由于克服了传统RAID重构的目标盘(热备盘)性能瓶颈,使得重构数据流的写带宽不再成为重构速度的瓶颈,从而大大提升了重构速度,降低了双盘失效的概率,提升了存储系统的可靠性。
  • 图中显示了传统RAID和RAID2.0+两种技术重构原理的对比:
    • 左图传统RAID中,HDD0~HDD4五块硬盘创建RAID5,HDD5为热备盘,当HDD1故障后,HDD0、HDD2、HDD3、HDD4通过异或算法将重构的数据写入HDD5中;
    • 在右图的RAID2.0+示意图中,当HDD1故障后,故障盘HDD1中的数据按照CK的粒度进行重构,只重构已分配使用的CK(图中HDD1的CK12 和 CK13),存储池中所有的硬盘都参与重构过程,重构的数据分布在多块硬盘中(图中的HDD4和HDD9)。

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

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

相关文章

米尔Zynq 7000系列单板的FPGA农业生产识别系统

随着农业生产模式和视觉技术的发展,农业采摘机器人的应用已逐渐成为了智慧农业的新趋势,通过机器视觉技术对农作物进行自动检测和识别已成为采摘机器人设计的关键技术之一,这决定了机器人的采摘效果和农场的经济效率。目前市面上最常见的是基…

MATLAB-Scatter3-三维散点图投影至XYZ三个平面

MATLAB-Scatter3函数可以绘制立体的三维散点图,但有时候需要在该立体图中分析X-Y-Z三者的关系,即1副图呈现出4个信息,XYZ综合信息、XY信息、XZ信息、YZ信息。现有的Scatter3无法实现该功能,本文可实现Scatter3三维立体散点图在三个…

纯手动搭建大数据集群架构_记录011_搭建Nifi_安装部署_搭建集群---大数据之Hadoop3.x工作笔记0172

可以看到左侧,把nifi安装包先上传到服务器,然后,去解压,一样放到opt/software目录,然后解压到/opt/module目录 然后去修改这个配置文件nifi.properties,然后 然后nifi.web.http.port=58080 这里只把 nifi.web.http.port=8080 这个端口改成 58080就可以了. 然后我们进入nifi的bi…

《计算机系统基础》——数据的表示

文章目录《计算机系统基础》——数据的表示移码整数无符号整数 (Unsigned integer)带符号整数(Signed integer)测试代码浮点数表示范围IEEE 754标准例子规格化数0∞/-∞非数非规格数《计算机系统基础》——数据的表示 移码 🚀🚀…

2023年中国人工智能产业趋势报告

易观:尽管2022年人工智能市场发展活跃度不及预期,但2022年对人工智能产业来说无疑是令人激动的一年。年中由DALL-E 2以及其后Stable Diffusion和Midjourney等文本-图像生成模型引起公众对人工智能生成内容的大量关注,年末ChatGPT的横空出世刷…

硬件系统工程师宝典(13)-----PCB的布局“有讲究”

各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。上篇我们说到EMC的标准以及提高EMC性能的一些常用方法。今天我们来看看PCB上模块的布局有什么讲究。 模块划分及布局 PCB上模块的划分和布局会影响到…

ATTCK v12版本战术实战研究—持久化(二)

一、前言前几期文章中,我们介绍了ATT&CK中侦察、资源开发、初始访问、执行战术、持久化战术的知识。那么从前文中介绍的相关持久化子技术来开展测试,进行更深一步的分析。本文主要内容是介绍攻击者在运用持久化子技术时,在相关的资产服务…

如何使用固态继电器为恒温器供电

恒温器有两种电源:电池和 24VAC。恒温器需要电池才能不间断地运行。电池消耗的能量尽可能低非常重要,但即使您最大限度地减少消耗,这仍然不是一个用户友好的选择,因为电池会不时需要更换。要降低更换频率,可以使用 24V…

Mysql InnoDB 存储引擎笔记

1 存储引擎 简介 Mysql 存储引擎有多种:包括 MyISAM、InnoDB 和 Memory。 其中MyISAM 和 INNODB 的区别: 事务安全(MyISAM不支持事务,INNODB支持事务);外键 MyISAM 不支持外键, INNODB支持外…

渗透测试之地基服务篇:无线攻防之Kali自搭建钓鱼Wifi

简介 渗透测试-地基篇 该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。 请注意 : 本文仅用于技术讨论与研究,对于所有笔记中复现…

【Python】控制自己的手机拍照,并自动发送到邮箱

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 今天这个案例,就是控制自己的摄像头拍照, 并且把拍下来的照片,通过邮件发到自己的邮箱里。 想完成今天的这个案例,只要记住一个重点:你需要一个摄像头 思路…

DCDC/LDO Auto-Discharge

1、概念 When using a capacitor with large capacity value in VOUT side, the VOUT pin voltage might not immediately fall to the ground level when the EN(CE,CONTROL) pin is switched from the active mode to the standby mode. By adding N-channel transistor to …

【Java|基础篇】计算机中数据的存储规则

文章目录前言:1.计算机中的数据2.二进制的介绍二进制的运算规则常见的进制3.字符的存储4.汉字的存储5.图片的存储6.音频的存储总结:前言: 本篇文章只是为了科普 计算机中数据的存储规则 1.计算机中的数据 计算机的数据大致分为三类:文本数据,图片和音频 注:视频是图片和音频…

代码随想录算法训练营day48 | 动态规划 121 买卖股票的最佳时机 122 买卖股票的最佳时机II

day48121. 买卖股票的最佳时机1.确定dp数组(dp table)以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组122.买卖股票的最佳时机II121. 买卖股票的最佳时机 题目链接 解题思路: 动规五部曲分析如下&#xff1a…

PLC实验—西门子S7 1200读取旋转编码器数据并计算电机转速

PLC实验—西门子S7 1200读取旋转编码器数据并计算电机转速 注意PTO控制步进电机实验博途软件需要V14版本,不然没有PTO功能块 软件的下载请点击下方百度网盘的链接 链接:https://pan.baidu.com/s/11mQFVnaQxrUy4W9nGIk8Jw 提取码:6lva 详细的…

如何解决企业生产计划做不好,生产管理混乱?

现在很多企业都面临着生产计划做不好,生产管理混乱的问题,本文将为大家讲讲如何解决这些问题。要想解决问题,首先要知道其原因。 企业生产管理混乱原因 第一:企业的导向有问题 许多中小企业的老板都是业务出身,都知…

编程基本概念

程序的构成 python程序由模块组成,一个模块对应一个python源文件,后缀为.py模块由语句组成,运行python程序时,按照模块中的语句顺序依次执行语句是python程序的构造单元,用于创建对象,变量赋值&#xff0c…

K8s:Monokle Desktop 一个集Yaml资源编写、项目管理、集群管理的 K8s IDE

写在前面 Monokle Desktop 是 kubeshop 推出的一个开源的 K8s IDE相关项目还有 Monokle CLI 和 Monokle Cloud相比其他的工具,Monokle Desktop 功能较全面,涉及 k8s 管理的整个生命周期博文内容:Monokle Desktop 下载安装,项目管理…

LDR6028市面上最具有性价比的Type-C OTG音频协议方案

目前市面上的大部分手机都取消了3.5mm音频耳机接口,仅保留一个Type-C接口,但是追求音质和零延迟的用户仍然会选择3.5mm有线耳机,因为在玩手机游戏的时候,音画不同步真的很影响游戏体验,所以Type-C转3.5mm接口线应运而生…

软件测试---用例篇

一 : 内容概览 二 : 测试用例的基本要素 测试用例的概念 : 测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素 . 好的测试用例是一个不熟悉业务的人…