RedHat9 | RAID配置与管理

一、实验环境

1、RAID简介

RAID(Redundant Array of Independent Disks),即独立磁盘冗余阵列,是一种数据存储技术。它通过将多个独立的磁盘驱动器组合起来,形成一个逻辑上的整体,从而提高数据存储的性能、容量和数据冗余性。

RAID的基本原理

  1. 数据分割:RAID将待存储的数据分割成较小的块,然后按照某种规则(如磁盘驱动器的序号)逐个块地存储在多个磁盘上。
  2. 数据分发:根据所采用的RAID级别,RAID会将不同块的数据分散存储在不同的磁盘上。例如,在RAID 0中,数据被均匀地分布在所有磁盘驱动器上;而在RAID 5中,数据被分布在多个磁盘驱动器上,并添加了奇偶校验信息。
  3. 冗余备份:某些RAID级别(如RAID 1)提供了冗余备份功能,以增加系统的可靠性。通过同时将相同的数据保存在两个或多个磁盘驱动器上,当其中一个磁盘发生故障时,数据仍然可从另一个磁盘访问。
  4. 并行数据存取:由于数据被分散存储在多个磁盘上,因此RAID可以同时读取或写入多个磁盘的数据,从而提高了系统的整体性能。

RAID的级别

RAID主要分为基本RAID级别(如RAID 0、RAID 1、RAID 5和RAID 6)和跨区RAID级别(如RAID 10、RAID 50和RAID 60)。不同的RAID级别具有不同的性能和冗余特性,用户可以根据其需求选择适合的RAID级别。

RAID的优势

  1. 提高性能:通过数据分割和并行数据存取,RAID可以显著提高数据的读写速度。
  2. 增加容量:通过组合多个磁盘,RAID可以提供更大的存储容量。
  3. 提高数据冗余性:某些RAID级别(如RAID 1、RAID 5和RAID 6)通过冗余备份或奇偶校验信息来提高数据的可靠性

2、RAID0(带区卷)

RAID0,又称为Stripe或Striping,是一种在RAID(冗余阵列的独立磁盘)技术中的级别,它代表了所有RAID级别中最高的存储性能。

工作原理

RAID0的工作原理是将连续的数据分散到多个磁盘上进行存取。当系统有数据请求时,多个磁盘可以并行执行,每个磁盘处理它负责的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,从而显著提高磁盘整体存取性能。

性能特点

  1. 高性能:由于数据是在多个磁盘上同时读写,因此RAID0提供了非常高的数据传输速率。理论上,一个由n块磁盘组成的RAID0,它的读写性能是单个磁盘性能的n倍,但实际性能提升可能因总线带宽等多种因素而略低于理论值。
  2. 无数据冗余:RAID0并不提供数据冗余或校验功能。这意味着它没有任何容错能力,一旦阵列中的任何一块硬盘发生故障,将会导致整个阵列的数据丢失。
  3. 100%存储空间利用率:由于没有冗余数据,RAID0可以充分利用所有磁盘的存储空间。

适用场景

RAID0特别适用于对性能要求较高,但对数据安全不太在乎的领域,如图形工作站、视频编辑等。对于个人用户来说,如果追求硬盘存储性能的提升,RAID0也是一个选择。然而,由于它不提供数据冗余,因此在企业环境中,RAID0通常不会单独使用,除非对数据安全性要求不高或采取了其他备份措施。

RAID0以其高性能和存储空间的有效利用而著称,但缺乏数据冗余和容错能力使其在高可靠性要求的环境中不适用。在选择使用RAID0时,应充分考虑数据的重要性和可恢复性。

3、RAID1(镜像卷)

RAID1(Redundant Array of Independent Disks Level 1)是RAID技术中的一个级别,也被称为镜像RAID或RAID Mirroring。RAID1通过数据的完全冗余备份来提供数据的安全性,基本思想是将同一份数据同时写入两块或多块硬盘中,以确保在某一硬盘出现故障时,系统能够无缝地从另一块硬盘中读取数据,保证数据的完整性和业务的连续性。

工作原理

在RAID1中,数据被同时写入到两个或更多的硬盘中。每一个硬盘都包含完全相同的数据集,因此,即使其中一个硬盘发生故障,数据也不会丢失,因为可以从另一个硬盘中恢复数据。这种技术提供了数据的冗余性,增加了数据的可靠性和可用性。

性能特点

  1. 数据冗余:RAID1通过数据的完全镜像实现冗余,确保了数据的安全性。
  2. 读取性能:由于数据在多个硬盘上都有备份,因此在进行数据读取时,可以从多个硬盘中并行读取,从而提高了读取性能。
  3. 写入性能:数据写入时需要同时写入到多个硬盘中,这可能会导致写入性能相对于单个硬盘有所下降。
  4. 高可用性:即使其中一个硬盘发生故障,系统仍然可以从另一个硬盘中读取数据,从而保证了业务的连续性。
  5. 空间利用率:RAID1的空间利用率是50%(在只有两个硬盘的情况下),因为每块硬盘都存储了相同的数据。

适用场景

RAID1通常用于对数据安全性要求极高的环境,如金融、医疗等关键业务领域。在这些领域,数据的丢失或损坏可能导致严重的后果,因此,通过RAID1技术来确保数据的完整性和可靠性是非常重要的。

RAID1以其高可靠性和数据冗余性而著称,但相应地,它牺牲了部分存储空间利用率和可能的写入性能。在选择使用RAID1时,应根据具体的应用需求和成本效益进行权衡

4、RAID0+1

RAID0+1,也被称为RAID10,是RAID 0和RAID 1的组合形式。这种RAID级别旨在结合RAID 0的高性能和RAID 1的数据安全性。RAID0+1还有一种叫法RAID10。

工作原理

RAID0+1首先将数据分割成条带(Striping),类似于RAID 0的操作,以提高存取性能。然后,这些条带化的数据会被镜像复制到另一组磁盘上,这是RAID 1的特性,用以确保数据的安全性。

性能特点

  1. 高性能:由于数据被分割成条带并分散在多个磁盘上,因此可以并行读写,显著提高了磁盘的整体性能。
  2. 数据安全性:通过镜像复制,即使某个磁盘或某组磁盘出现故障,数据也可以从镜像磁盘中恢复,确保了数据的安全性。
  3. 磁盘利用率:由于RAID0+1采用了数据镜像,因此其磁盘空间利用率相对较低,与RAID 1相似,只有50%左右。

适用场景

RAID0+1特别适用于对数据安全性和存取性能都有高要求的场景,如服务器、数据库存储以及需要处理大量数据且不能容忍数据丢失的商业应用。

RAID0+1是一种兼顾存储性能和数据安全的解决方案,但相应的存储成本较高。在选择使用RAID0+1时,应根据实际应用需求、预算以及对性能和安全性的权衡来做出决定。

5、RAID5

RAID5是一种存储解决方案,它兼顾了存储性能、数据安全和存储成本。

工作原理

  • 数据条带化:在RAID5中,数据被分割成多个块,并按照固定大小的条带分布在不同的硬盘上。每个条带包含数据块和奇偶校验块。
  • 奇偶校验:奇偶校验块包含对应数据块的校验信息。这些信息是通过对其他硬盘上相同位置的数据块进行异或(XOR)运算得到的。当某个硬盘发生故障时,可以使用剩余的数据块和奇偶校验块重新计算出丢失的数据块。

性能特点

  1. 读取性能:RAID5可以提高数据的读取性能,因为数据读取操作可以并行进行,每个硬盘只需读取自己所负责的数据块,然后组合起来提供完整的数据。
  2. 写入性能:数据写入操作也可以并行进行,但需要额外的计算开销来更新奇偶校验信息,因此写入速度相对于单个磁盘会稍慢。
  3. 数据安全:RAID5通过奇偶校验信息提供了数据安全保障。即使一个硬盘发生故障,也能通过校验信息恢复数据。
  4. 磁盘利用率:由于多个数据对应一个奇偶校验信息,RAID5的磁盘空间利用率高于RAID1,但低于RAID0。

适用场景

RAID5适用于需要兼顾存储性能和数据安全性的场景,同时其成本相对较低,因为可以更有效地利用硬盘容量,减少硬盘数量和成本。它适用于企业级服务器、云存储等需要高可靠性和高性能的应用场景。

故障恢复与热备

在RAID5阵列中,当一个硬盘发生故障时,系统可以利用剩下的数据和奇偶校验信息恢复被损坏的数据。此外,RAID5还支持热备份技术,即当一个硬盘出现问题时,系统可以自动切换至备用硬盘,确保数据的正常访问。

6、mdadm命令语法

常用参数

参数作用
-C创建阵列模式
-v显示执行过程
-l指定RAID设备级别
-n指定RAID活动设备的数量
-r将指定成员移除RAID
-x设置初始RAID设备的备用成员数量(热备盘)
-D显示RAID设备的详细信息
-f将指定的RAID成员设备设置为故障模式
-S停止RAID设备
–zero-superblock清除RAID信息

二、RAID0的配置与管理

1、实验拓扑

编号磁盘类型磁盘容量服务器盘位用途
01NVMe10GLinux服务器/WindowsServer服务器nvme0n2RAID0
02NVMe10GLinux服务器/WindowsServer服务器nvme0n3RAID0
03NVMe10GLinux服务器/WindowsServer服务器nvme0n4RAID0
04NVMe10GLinux服务器/WindowsServer服务器nvme0n5RAID0

在这里插入图片描述

添加硬盘

在这里插入图片描述
在这里插入图片描述

2、Linux服务器配置步骤

2.1 创建RAID0 磁盘

创建RAID0磁盘

mdadm --create /dev/md0 --level=0 --raid-devices=4 /dev/nvme0n{2..5}
  • –create /dev/md0:创建RAID磁盘,磁盘名为md0
  • –level=0:RAID的级别,这里创建RAID0
  • –raid-device=4:使用4块磁盘来创建RAID
  • /dev/nvme0n{2…5}:创建RAID所使用的磁盘

在这里插入图片描述

查看RAID0磁盘的状态

mdadm -D /dev/md0
mdadm --detail /dev/md0

在这里插入图片描述

格式化磁盘使用

mkfs.xfs /dev/md0

在这里插入图片描述

创建挂载点,挂载到/dev/md0,并测试写入

mkdir /raid0
mount /dev/md0 /raid0
echo clean > /md0/clean.txt
2.2 模拟磁盘故障

将nvme0n5磁盘移除,模拟故障情况

先关闭虚拟机,然后移除磁盘5

在这里插入图片描述

重启开启虚拟机,可以看到RAID0的状态为inactive

在这里插入图片描述

可以看到先前的文件可能丢失也可能存在,就看数据的存储位置,目前是已经丢失

在这里插入图片描述

重新测试写入数据,可以看到数据还可以写入

echo inactive > /raid0/inactive.txt

在这里插入图片描述

重新连接刚刚的移除的硬盘

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

选择现有磁盘

在这里插入图片描述

选择磁盘的原先存储位置

在这里插入图片描述

在这里插入图片描述

重新查看硬盘的状态,可以发现状态恢复为clean

在这里插入图片描述

2.3 删除RAID0

首先查看是否存在挂载,如果有挂载,需要先卸载

df -hT				# 如果没有写入/etc/fstab文件中,重启后挂载会失效

在这里插入图片描述

停止RAID0

mdadm -S /dev/md0

使用零覆盖RAID设备中的超级块,也就是清除RAID信息

mdadm --zero-superblock /dev/nvme0n{2..5}

在这里插入图片描述

查看磁盘信息,可以看到RAID0已经被清除掉

lsblk

在这里插入图片描述

3、Windows服务器配置步骤

2.1 创建RAID0 磁盘

打开磁盘管理器

在这里插入图片描述

初始化磁盘

在这里插入图片描述

新建带区卷

在这里插入图片描述

选择所有硬盘

在这里插入图片描述

驱动器号保持默认即可

在这里插入图片描述

选择执行快速格式化

在这里插入图片描述

单击【是】,将选中的基本磁盘转换为动态磁盘

在这里插入图片描述
在这里插入图片描述

2.2 删除RAID0

打开磁盘管理器,选择RAID0的成员磁盘,右键单击【删除卷】

在这里插入图片描述

在这里插入图片描述

此时会还原为普通的基本磁盘

在这里插入图片描述

三、RAID1的配置与管理

1、实验拓扑

编号磁盘类型磁盘容量服务器盘位用途
01NVMe10GLinux服务器/WindowsServer服务器nvme0n2RAID0
02NVMe10GLinux服务器/WindowsServer服务器nvme0n3RAID0
03NVMe10GLinux服务器/WindowsServer服务器nvme0n4RAID0
04NVMe10GLinux服务器/WindowsServer服务器nvme0n5RAID0

在这里插入图片描述

2、Linux服务器配置步骤

2.1 创建RAID1 磁盘

创建RAID0磁盘

mdadm --create /dev/md0 --level=1 --raid-devices=4 /dev/nvme0n{2..5}
  • –create /dev/md0:创建RAID磁盘,磁盘名为md0
  • –level=1:RAID的级别,这里创建RAID1
  • –raid-device=4:使用4块磁盘来创建RAID
  • /dev/nvme0n{2…5}:创建RAID所使用的磁盘

在这里插入图片描述

查看RAID1磁盘状态

mdadm -D /dev/md1

在这里插入图片描述

格式化磁盘

mkfs.xfs -f /dev/md1

在这里插入图片描述

创建挂载点,挂载到/dev/md1,并测试写入

mkdir /raid1
mount /dev/md1 /raid1
echo clean > /raid1/clean.txt

在这里插入图片描述

2.2 模拟磁盘故障

将nvme0n5磁盘移除,模拟故障情况

先关闭虚拟机,然后移除磁盘5

在这里插入图片描述

重新开启虚拟机,可以看到RAID1的状态多了一个【degraded】,同时提示少了一块硬盘

在这里插入图片描述

重新挂载,可以看到之前的内容还存在

mount /dev/md1 /raid1

在这里插入图片描述

尝试写入数据

echo clean,degraded > /raid1/degraded.txt

在这里插入图片描述

关闭虚拟机,再添加一块硬盘

在这里插入图片描述

将新添加的磁盘记载到RAID1中

mdadm /dev/md1 -a /dev/nvme0n5

在这里插入图片描述

查看RAID1的状态

mdadm -D /dev/md1

在这里插入图片描述

2.3 删除RAID1

首先查看是否存在挂载,如挂载提前卸载

df -hT 

停止RAID1

mdadm -S /dev/md1

在这里插入图片描述

清除RAID信息

mdadm --zero-superblock /dev/nvme0n{2..5}

在这里插入图片描述

3、Windows服务器配置步骤

2.1 创建RAID1 磁盘

打开磁盘管理器

在这里插入图片描述

选择任意一个目标磁盘,右键单击,在弹出的选项框中选择【新建镜像卷】

在这里插入图片描述

选择磁盘中,镜像卷只能选择两个同大小的磁盘,其中一个存储数据,一个作为备份盘

在这里插入图片描述

其余选项保持默认即可,勾选【执行快速格式化】

在这里插入图片描述

单击【是】,将选中的基本磁盘转换为动态磁盘

在这里插入图片描述

查看镜像卷

在这里插入图片描述

2.2 删除RAID1磁盘

选中RAID1磁盘的成员磁盘,右键单击,在弹出的选项框中选择【删除卷】

  • 删除镜像:会删除掉两个磁盘之间的镜像关系,也就是复制关系
  • 中断镜像:暂停镜像关系

在这里插入图片描述

单击【是】,即可删除RAID1

在这里插入图片描述

删除掉镜像后,磁盘会转化为基本磁盘

在这里插入图片描述

四、RAID5的配置与管理

1、实验拓扑

编号磁盘类型磁盘容量服务器盘位用途
01NVMe10GLinux服务器/WindowsServer服务器nvme0n2RAID0
02NVMe10GLinux服务器/WindowsServer服务器nvme0n3RAID0
03NVMe10GLinux服务器/WindowsServer服务器nvme0n4RAID0
04NVMe10GLinux服务器/WindowsServer服务器nvme0n5RAID0

在这里插入图片描述

1、Linux服务器配置步骤

2.1 创建RAID5 磁盘

创建RAID0磁盘

mdadm --create /dev/md5 --level=1 --raid-devices=3 -x 1 /dev/nvme0n{2..5}
  • –create /dev/md0:创建RAID磁盘,磁盘名为md0
  • –level=1:RAID的级别,这里创建RAID1
  • –raid-device=4:使用4块磁盘来创建RAID
  • -x 1:创建一块备用盘
  • /dev/nvme0n{2…5}:创建RAID所使用的磁盘

在这里插入图片描述

查看RAID1磁盘状态

mdadm -D /dev/md5

在这里插入图片描述

格式化磁盘

mkfs.xfs -f /dev/md5

在这里插入图片描述

将RAID5配置信息写入到配置文件中,配置文件默认不存在

echo 'DEVICE /dev/nvme0n{2..5}' >> /etc/mdadm.conf
mdadm -Ds >> /etc/mdadm.conf

在这里插入图片描述

创建挂载点,挂载到/dev/md1,并测试写入

mkdir /raid5
mount /dev/md5 /raid5
echo clean > /raid5/clean.txt

在这里插入图片描述

2.2 模拟磁盘故障

将指定RAID设备成员设置为故障模式,模拟磁盘发生故障

mdadm /dev/md5 -f /dev/nvme0n2

在这里插入图片描述

再次查看RAID5的状态,发现热备的磁盘自动替换掉了故障磁盘

mdadm -D /dev/md5

在这里插入图片描述

可以正常写入数据

echo clean,degraded,recovering > /raid1/degraded.txt

在这里插入图片描述

将坏盘移除

mdadm /dev/md5 -r /dev/nvme0n2

在这里插入图片描述

添加一块新硬盘作为热备盘

mdadm /dev/md5 -a /dev/nvme0n6

在这里插入图片描述

查看RAID5的状态,可以看到新添加的硬盘自动作为了热备盘

mdadm -D /dev/md5

在这里插入图片描述
g&pos_id=img-b2Rj7bOn-1718700829774)

2.3 删除RAID1

首先查看是否存在挂载,如挂载提前卸载

df -hT 

停止RAID1

mdadm -S /dev/md5

在这里插入图片描述

清除RAID信息

mdadm --zero-superblock /dev/nvme0n{2..6}

在这里插入图片描述

3、Windows服务器配置步骤

2.1 创建RAID5 磁盘

打开磁盘管理器

在这里插入图片描述

选择任意一个磁盘,右键单击,在弹出的提示框中选择【新建RAID-5卷】
在这里插入图片描述

将所有的磁盘选中

在这里插入图片描述

其余选项默认下一步即可,勾选【执行快速格式化】

在这里插入图片描述

单击【是】,将选中的基本磁盘转换为动态磁盘

在这里插入图片描述

查看转换后的RAID5卷,等待同步完成即可

在这里插入图片描述

同步完成
在这里插入图片描述

2.3 删除RAID5

单击任意一块成员磁盘,在弹出的对话框中选择【删除卷】

在这里插入图片描述

单击【是】即可删除RAID5
在这里插入图片描述

删除后,磁盘会转化为基本磁盘
在这里插入图片描述

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

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

相关文章

Linux文件IO深入剖析

目录 一、文件IO引发的项目血案 1、分析 一、Linux文件系统基本概念 1、文件系统接口 2、文件系统缓存 二、文件IO 访问方式概述 1、标准文件访问方式 2、直接IO 3、实现方式 4、缓存同步 5、Linux 文件IO流程图 6、血案解决 一、文件IO引发的项目血案 事件经过&am…

lodash.js 工具库

lodash 是什么? Lodash是一个流行的JavaScript实用工具库,提供了许多高效、高兼容性的工具函数,能够方便地处理集合、字符串、数值、函数等多种数据类型,大大提高工作效率。 lodash官网 文档参见:Lodash Documentation lodash 在Vue中怎么使用? 1、首先安装 lodash np…

Nuxt3 实战 (十二):SEO 搜索引擎优化指南

添加 favicon 图标和 TDK(标题、描述、关键词) nuxt.config.ts 添加配置: export default defineNuxtConfig({app: {title:Dream Site,meta: [{ name: keywords, content: Nuxt.js,导航,网站 },{ name: description, content: 致力于打造程…

倩女幽魂攻略:押镖任务详解!

《倩女幽魂》作为一款受欢迎的角色扮演游戏,押镖任务是其众多任务中具有挑战性和趣味性的一个环节。在押镖过程中,玩家需要通过一系列任务和地图,完成从接镖到运送货物的整个流程。本文将为您详细解析押镖任务的各个方面,包括任务…

维吉尼亚密文解密小程序

维吉尼亚密文解密小程序 这几天在看CTF相关的课程,涉及到古典密码学和近代密码学还有现代密码学。自己编了一个解密小程序。 Vigenere 维吉尼亚密码 维吉尼亚是多表替换密码中比较典型的代表,维吉尼亚密码是在凯撒密码基础上产生的一种加密方法&#…

idea或vscode支持vue语法,ts可解析*.vue

一、ide不能解析vue文件 刚开始导入时,在vscode中的vue文件中内容都是灰色的 ide不能解析vue解决方法: 1.idea或webstorm安装vue.js插件 2.在vscode中 vue2.0的项目安装vetur插件vue3.0及以上的项目安装Vue-official插件(之前是Volar&…

批量打造怀旧风情:视频批量剪辑将现代视频打造成怀旧经典老视频效果

在繁忙的现代生活中,我们时常怀念那些旧时光,那些充满岁月痕迹的老电影片段。它们不仅记录了一个时代的风貌,更承载了无数人的情感与记忆。你是否想过,将现代的视频素材打造成这种怀旧经典的老视频效果,让每一帧都充满…

PHP入门

一、环境搭建 无脑: 小皮面板(phpstudy) - 让天下没有难配的服务器环境!phpStudy官网2019正式推出phpStudy V8.0版本PHP集成环境,支持Windows与Linux系统,支持WEB面板操作管理,一键网站开发环境搭建配置,…

mac 常用工具快捷键集合

一、vim 快捷键 1、移动光标 h j k l 左 下 上 右 箭头上 上移一行 箭头下 下移一行 0 跳至行首,不管有无缩进,就是跳到第0个字符 ^ 跳至行首的第一个字符 $ 跳至行尾 gg 跳至文首 G 调至文尾 5gg/5G 调至第5行w 跳到下一个字首,按标点或…

高效运维:标准化与智能化的运维流程管理实践

高效运维:标准化与智能化的运维流程管理实践 在信息化建设日益深化的今天,运维流程管理已成为企业确保其信息系统稳定、高效运行的关键手段。通过系统化、标准化的运维流程管理,企业能够有效预防系统故障,提升服务质量&#xff0…

TCP:TCP连接的建立与终止

TCP连接的建立与终止 建立连接第一次握手第二次握手第三次握手 终止连接第一次挥手第二次挥手第三次挥手第四次挥手 T C P是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。本文将详细讨论一个T C P连接是如何建立的以及通信…

JJ-20H型水泥胶砂搅拌机

一、 用途和适用范围 水泥胶砂搅拌机是根据中国建材院水泥所的统一图纸制造,符合我国执行国际强度试验方法(ISO679)的标准设备。也可代替 JC/T722 用作GB/T17671 水泥胶砂试验方法的搅拌机。并可用作美国标准、欧洲标准、日本标准水泥试验的净…

TMGM外汇平台: 纽元未来走势,新西兰即将降息

2024年6月26日,全球金融市场对新西兰联储即将采取的货币政策持续关注。分析师普遍预估新西兰将实施降息政策,这一政策调整预计将对新西兰元(纽元)的国际交易价值产生重大影响。本文将TMGM深入探讨新西兰经济的当前状况&#xff0c…

最新!计算机类SCI期刊全名单!你想发的顶刊都在这里

【SciencePub学术】近日,2023JCR正式发布,最受瞩目就是各类期刊的最新影响因子排名,本期,小编对计算机类的期刊做了一个整理,供计算机方向的研究学者们参考! 来源:WOS数据库官网 完整名单 ※ 本…

简述RocketMQ从了解到使用

概念篇 背景: 随着队列和虚拟主题使用的增加,ActiveMQ IO模块达到了一个瓶颈。我们尽力通过节流、断路器或降级来解决这个问题,但效果并不理想。于是我们尝试了流行的消息传递解决方案Kafka。不幸的是,Kafka不能满足我们的要求,其尤其表现在低延迟和高可靠性方面,详见下…

c++ 智能指针实战分析

一.智能指针的设计思路 智能指针是类模板,再栈上创建智能指针对象。把普通指针交给智能指针对象。智能指针对象过期时,调用析构函数释放普通指针的内存。 智能指针的类型 auto_ptr是C98的标准,c17已经弃用。unique_ptr、shared_ptr和weak_…

从环型到树型:多种网络拓扑结构的优缺点及应用

网络拓扑作为网络设计的基础,对于网络的性能、可靠性和扩展性起着重要作用。作为网络通信工程师,我们不仅需要了解网络拓扑的基本概念,还需深入掌握其在实际网络设计中的应用。本文将详细介绍网络拓扑,包括物理拓扑、逻辑拓扑&…

怎么压缩pdf文件大小,如何压缩pdf文件大小

pdf文件怎么压缩?在当下这个信息爆炸的时代,无论是在工作场所还是校园中,我们经常会面临需要处理大文件的情况,而PDF格式作为一种保留文档结构和布局完整性的理想选择,有时候pdf文件太大,因此,对…

echarts 5.5.0版本下的层叠柱形图,每个值都从0开始,会有覆盖情况

需求: 1、每个公司,需要两个柱子去展示(stack: 1是第一个柱子,stack:2,是第二个柱子); 2、必须每个数据都是从0开始,不在上一个值上累加; 3、鼠标滑上去的时候,最大值…

arco.design 利用 a-input-search 和 a-trigger 自己实现一个关键字查询select

先看效果 <div class"search-content" id"map-search-wrapper"><a-triggerpopup-visibleposition"bl"autoFitPopupWidth:popup-offset"4":unmount-on-close"true"trigger"click"popup-container"#m…