【存储】RAID2.0+、多路径技术、磁盘可靠性技术
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方式替换系统函数,存在与第三方驱动共存风险。
- 屏蔽原生磁盘,并创建虚拟SCSI磁盘优点:
- 不拦截原生磁盘,额外创建虚拟磁盘优点:
- 与第三方驱动共存兼容性较好。
- 不拦截原生磁盘,额外创建虚拟磁盘缺点:
- 用户可以使用原生的冗余磁盘,误操作情况下可能导致数据破坏
- 需要上层应用更新配置。
- 存在兼容性问题。
UltraPath功能
Failover
- 当同一存储控制器有多条路径连接到主机,当LUN归属于该控制器时,当主路径故障时,会优先选择同控制器的其他端口的路径。
- UltraPath在路径故障时可以自动将IO转移到其他可用路径,流程如下图所示:
- 应用向UltraPath生成的虚拟磁盘下发IO。
- UltraPath将IO转发给一个path 1(即SCSI设备)。
- 路径故障导致该path 1上IO失败。
- UltraPath将IO重新下发给另一个path 2。
- path 2返回IO成功。
- 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)。
相关文章:
【存储】RAID2.0+、多路径技术、磁盘可靠性技术
RAID2.0RAID 2.0技术RAID技术发展RAID 2.0软件逻辑对象RAID 2.0基本原理硬盘域Storage Pool & TierDisk Group(DG)LD(逻辑磁盘)Chunk(CK)Chunk Group(CKG)ExtentGrainVolume &am…...
Vue 2
文章目录1. 简介2. 第一个Vue程序3. 指令3.1 判断循环3.2 操作属性3.3 绑定事件3.4 表单中数据双向绑定3.5 其他内置指令3.6 自定义指令4. 组件4.1 全局注册4.2 局部注册4.3 组件通讯4.4 单文件组件5. 组件插槽5.1 单个插槽5.2 具名插槽5.3 作用域插槽6. 内置组件6.1 component…...
Ubuntu 安装 Docker Engine
【参考】Install Docker Engine on Ubuntu | Docker Documentation: https://docs.docker.com/engine/install/ubuntu/ 【参考】Docker CE 镜像源站-阿里云开发者社区 https://developer.aliyun.com/article/110806 【规范】模仿 Docker 文档,Ubuntu, Docker 首字母…...
SpringBoot入门 - 添加内存数据库H2
上文我们展示了通过学习经典的MVC分包结构展示了一个用户的增删查改项目,但是我们没有接入数据库;本文将在上文的基础上,增加一个H2内存数据库,并且通过Spring 提供的数据访问包JPA进行数据查询。准备知识点在介绍通过Spring JPA接…...
高质量数字化转型创新发展大会暨中国信通院“铸基计划”年度会议成功召开
2023年3月3日,由中国信通院主办的高质量数字化转型创新发展大会暨中国信通院“铸基计划”年度会议在北京成功召开。本次大会深度展示了中国信通院在数字化领域的工作成果,并全面展望了2023年行业的数字化发展趋势。同时,大会发布了中国信通院…...
2023年如何通过软考初级程序员?
初级的考试难度不大,稍微有点编程基础,认真备考应该没什么大问题。 先清楚大纲: 高效备考!理清考点,针对性复习 科目一:综合知识 75道单项选择题,1题1分,时长150分钟;…...
视频自动播放的实现与问题解决
一、前言 页面加载一个视频并且自动播放,这个需求看起来非常简单,实现起来感觉也非常简单;但是,实际做起来还是有几处容易产生问题的地方卡住进度。本文讨论基于Vue3的项目在实现页面加载视频后的自动播放遇到的几个问题。 二、页面实现 页面实现非常简单。在页面上放置一个…...
ThreadLocal 理解及面试
一、ThreadLocal 引用关系 图解关系说明: 每个线程拥有自己的 ThreadLocalMap 属性;ThreadLocalMap 的存储结构为 Entry[] 数组;Entry的Key是ThreadLocal类型且弱引用指向ThreadLocal对象,Value是我们自己定义的泛型值对象&#…...
巾帼绽芬芳 一起向未来(中篇)
编者按:为了隆重纪念纪念“三八”国际妇女节113周年,快来与你全方位、多层次分享交流“三八”国际妇女节的前世今生。分上篇(节日简介、节日发展和节日意义)、中篇(节日活动宗旨和世界各国庆祝方式)和下篇&…...
Qt学习2-Qt Creator新建项目小tips(哔站视频学习记录)
放送两个小tips: 1、MinGW和MSVC的区别 QT学习笔记(二):QT MinGW 和 MSVC 编译方式_Leon_Chan0的博客-CSDN博客 2、如何安装QT对应版本的MSVC (1)问题描述:Qt5.12.8支持MSVC2015和MSVC2017,但是系统安装的是Visual…...
React-高阶组件
认识高级组件 高阶函数的维基百科定义:至少满足以下条件之一 1、接受一个或多个函数作为输入; 2、输出一个函数; JavaScript中比较常见的 filter、map、reduce 都是高阶函数 那么说明是高阶组件呢? 高阶组件的英文是 Higher-Order Components,简称为 HOC;官方的…...
python学习——【第一弹】
前言 Python是一种跨平台的计算机程序设计语言,是ABC语言的替代品,属于面向对象的动态类型语言,最初被设计用于编写自动化脚本,随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。 从这篇…...
数据结构——链表讲解(1)
作者:几冬雪来 时间:2023年3月3日 内容:数据结构链表讲解 目录 前言: 链表的概念: 1.为什么要有链表: 2.链表的运行原理: 3.链表的形态多少: 4.单链表的代码书写࿱…...
docker部署MySQL主从服务
一.主从同步流程关于MySQL主从复制主要同步的是binlog日志,涉及到三个线程,一个运行在主节点(log dump thread),其余两个(I/O thread, SQL thread)运行在从节点,如下图所示:当主库数据发生变更时࿰…...
儿童护目台灯哪种好用?几款真的保护视力的台灯品牌推荐
儿童眼睛还未发育完全,眼睛比较脆弱,但是现在的小孩子学习任务也比较繁重,经常晚上看书写字,所以选择合适的护眼台灯来保护眼睛很重要。 选择儿童护目台灯需要注意以下几个方面: (一)色温和亮…...
游戏逆向基础之OD找CALL实践
在逆向中除了分析数据之外,另外一个重要的工作就是找算法,找CALL 例如各种功能函数:攻击CALL,走路CALL,喊话CALL等等 以及加密解密等算法需要我们先锁定其位置,然后进行逆向分析。 最常见方法一 API函数下断,例如send …...
File 文件操作
File 文件操作: 一、常用方法: 方法类型描述public File(String pathname)构造给定一个要操作文件的完整路径public File(File parent, String child)构造给定要操作文件的父路径和子文件名称public boolean createNewFile() throws IOExce…...
QT基础(18)- QAbstractSocket
QT基础(18)- QAbstractSocket1 创建简单的客户端2 QAbstractSocket2.1 简介2.2 枚举2.2.1 BingFlag2.2.2 NetworkLayerProtocol2.2.3 PauseMode2.2.4 SocketError2.2.5 SocketOption2.2.6 SocketType2.2.7 SocketState2.3 公有函数2.3.1 构造函数2.3.2 a…...
机器学习与目标检测作业:安装pytorch
机器学习与目标检测作业:安装pytorch一、 进入官网复制下载命令二、 下载的过程2.1 conda命令运行三、 测试pytorch是否安装成功安装pytorch教程 一、 进入官网复制下载命令 进入官网复制下载命令如下图所示 二、 下载的过程 下载的过程如下图所示 2.1 conda命令运…...
Android 源码中的 JNI,到底是如何使用的?
Linux下 JNI的使用学习 Android 其中涉及对 JNI 的使用;JNI的使用对于 Android 来说又是十分的重要和关键。那么到底 Java 到底是如何调用 C/C 的,下面是非常简单的计算器源码,只是用来熟悉JNI的基本语法,其中我自己碰到过的一个问…...
重磅新品 / 酷炫展品 / 强大生态,广和通玩转 MWC Barcelona 2023
2月27日,2023世界移动通信大会(MWC Barcelona 2023)在西班牙巴塞罗那正式开幕。全球知名移动运营商、设备制造商、技术提供商、物联网企业齐聚一堂,以领先的技术、创新的场景、前瞻的洞察向全行业输送最新鲜的行业观点。作为全球领…...
Hbuilder+uniapp 从零开始创建一个小程序
当你看到这篇博客的时候,那~说明~我的这篇博客写完了……哈哈哈哈哈哈哈哈。好的,清耐心往下看哈。如果有需要的,可以关注一下小作,后面还有小程序的云开发嗷~一、申请一个小程序账号(已经有账号的小可爱可以跳过&…...
亚商投资顾问早餐FM/0303支持新能源汽车消费
01/亚商投资顾问早间导读高层调研集成电路企业并主持召开座谈会商务部:今年将积极出台新政策措施支持新能源汽车消费商务部:推动农村消费进一步恢复和扩大更好助力乡村振兴干细胞应用接连获重大突破机构密集调研相关上市公司02/亚商投资顾问新闻早餐// 热…...
Spring Boot 整合分布式缓存 Memcached
Memcached是一个开源、高性能,将数据分布于内存中并使用key-value存储结构的缓存系统。它通过在内存中缓存数据来减少向数据库的频繁访问连接的次数,可以提高动态、数据库驱动之类网站的运行速度。 Memcached在使用是比较简单的,在操作上基本…...
嵌入式学习笔记——STM32单片机开发前的准备
STM32单片机开发前的准备1.集成开发环境的选取STM32 CubeIDEKEIL_MDK2.KEIL_MDK环境搭建安装包获取及安装芯片包下载及安装工程建立(STM32F407VET6为例)1.新建工程文件夹2.新建工程3.安装ST-LINK以及CH340的驱动4.设置KEIL,并烧录本文重点1.集成开发环境的选取 前面…...
客户案例|FPGA研发管理解决方案:UniPro瀑布+敏捷 打造高效能组织
2023开年以来,新享科技项目管理软件UniPro收获一波客户侧的点赞好评。在过去一年中,UniPro不断与客户保持高频沟通,满足客户需求为出发点,以产品功能实现为落脚点,不断打磨产品。 以UniPro客户京微齐力为例࿰…...
【信息学奥赛】1400:统计单词数
统计单词数也需要分割单词,如果使用字符数组来做的话,其实和1144:单词翻转类似,但是我一直只能通过四个样例,估计边界处理条件还是有点问题。 不过经过打印字符串长度之后发现了之前遇到的一个问题,即fget…...
# 技术详解: 利用CI同步文章以及多端发布
技术详解: 利用CI同步文章以及多端发布 技术详解: 利用CI同步文章以及多端发布 前言文章的同步实现的细节 思路文章元数据的定义和提取修改文章的优化本地图片资源上传CDN并替换本地link 终于到了 CI 的部分了最后来一些碎碎念 前言 前几天我更新了一篇简单技术总结之后&am…...
分形维数的计算方法汇总
以下是常用的时间序列分形维数计算方法及相应的参考文献:Hurst指数法Hurst指数法是最早用于计算分形维数的方法之一,其基本思想是通过计算时间序列的长程相关性来反映其分形特性。具体步骤是:(1) 对原始时间序列进行标准化处理。(2) 将序列分…...
微积分小课堂:积分(从微观趋势了解宏观变化)
文章目录 引言I. 预备知识: 积分效应1.1 闯黄灯1.2 公司利润(飞轮效应)1.3 飞轮效应II 积分2.1 积分的计算2.2 积分思想的本质引言 微分解决的问题是从宏观变化了解微观趋势;积分和微分刚好相反,是从微观去看宏观变化。 通过积分效应,提升我们的认识水平,同时能用一些工…...
北京企业网站建设价格/阿里云搜索
通过上面pt-table-checksums找到了这些不一致的数据表(https://blog.51cto.com/li02yu/2340403),如何同步数据呢?即如何修复MySQL主从不一致的数据,让他们保持一致性呢?利用另外一个工具 pt-table-sync。使…...
网站建设行业资讯/腾讯推广一次广告多少钱
转自:http://blog.csdn.net/tanyujing/article/details/8717575 钢笔测试 能在不同的纸上写吗?能在墙上写吗?笔尖朝上,倒着拿还能写出字吗? 能在不同的环境下写吗?水里?沙漠?低温&a…...
做网站设计需要学会哪些/网页设计html代码大全
Jquery中的选择器分为几大类:基本过滤选择器,层次选择器,内容过滤选择器,可见性过滤选择器,属性过滤选择器,子元素过滤选择器,表单对象选择器和表单对象属相过滤选择器。 1.非基本过滤选择器&am…...
百度网站怎么做视频播放器/首页图片点击率如何提高
1、Viasfora (关键字跟括号其他的高亮清晰分类) 2.ClaudiaIDE (VS代码背景替换也可以换自己想要的图片) 3.VSCommands for Visual Studio 2013 代码显示增强:它可以在尾部显示方法或过程名字 4.Indent Guides &#x…...
在什么网站上可以做免费广告/强化防疫指导
什么是Viewport 手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的…...
易名中国网站/seo基础入门免费教程
酷睿i5-9400F基于14nm制程工艺,原生6核6线程,默认主频2.9Ghz,最大睿频4.1Ghz,设计功耗65W,无内置核心显卡 组装电脑 选i7 8700还是i5 9400f这些点很重要!看完你就知道了https://diannao.jd.com/diannao.html? i7-670…...