当前位置: 首页 > news >正文

Linux-服务器硬件及RAID配置实验

系列文章目录

` 提示:仅用于个人学习,进行查漏补缺使用。
1.Linux介绍、目录结构、文件基本属性、Shell
2.Linux常用命令
3.Linux文件管理
4.Linux 命令安装(rpm、install)
5.Linux账号管理
6.Linux文件/目录权限管理
7.Linux磁盘管理/文件系统
8.Linux逻辑卷管理LVM
9.Linux磁盘配额


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 系列文章目录
  • 前言
    • 一.RAID磁盘阵列介绍
    • 二.RAID主要优点
    • 三.RAID级别
      • RAID 0 (称为带区卷,性能最佳)
      • RAID 1
      • RAID 5
      • RAID 6
      • RAID 10
      • RAID 01
      • RAID总结如下:
      • 配置示例1:
        • 步骤1. 检查是否已安装mdadm软件包【mdadm是用于管理软件磁盘阵列的工具】
        • 步骤2. 虚拟机设置”里添加四个50G硬盘,确认添加后输入命令lsblk查看分区列表
        • 步骤3. 给这四个硬盘分区,之后lsblk查看 _PS:这里可以打个快照,留做案例2_
        • 步骤4. 为了后面实验方便,给dev/sde1 sdf1 sdg1 sdh1转换成raid格式
        • 步骤5. 使用步骤一工具命令,查看分区的盘有无被使用
        • 步骤6. 使用mdadm -C命令用e、f、g、h 盘创建RAID5磁盘阵列
        • 步骤7. 系统创建中需要一会儿时间,可用相关命令查看进度
        • 步骤8. 检查磁盘是否已做RAID
        • 步骤9. 创建并挂载文件系统
        • 步骤10. 实现模拟故障查看故障恢复
        • _PS:这里制作的RAID5(n>=3)有四块物理硬盘,所以这里可以允许有两块物理硬盘出现问题。_
    • 示例2:
    • 将示例1的RAID5磁盘阵列(/dev/md0),恢复最初状态,并用efgh四个盘做RAID10.【也可到快照开始做,直接从步骤7开始】
      • 步骤1.移除RAID5的设备
      • 步骤2.解除RAID5的挂载
      • 步骤3.停止RAID5的运行
      • 步骤4.删除RAID5目录并vim/etc/fstab进入系统自动挂载文件里删除记录
      • 步骤5.解挂载,停止raid设备,删除raid里所有硬盘后,擦除RAID超级块:
      • 步骤6.删除配置文件
      • 步骤7.用lsblk命令查看磁盘使用情况
      • 步骤8.删除各个主分区,接着每个物理盘分四个区,sde1,sdf1,sdg,sdh1都给10G,最后用lsblK命令查看
      • 步骤7.创建 RAID 10设备(先做镜像,再做条带)
      • 步骤8.检查磁盘是否已做RAID
      • 步骤9.创建并挂载文件系统
      • 步骤10.实现故障恢复
      • 步骤11.创建 /etc/mdadm.conf 配置文件,方便管理软RAID的配置,比如启动、停止
      • 内容补充:


前言

本章大概内容有:
       RAID磁盘阵列介绍、RAID主要优点、RAID级别、RAID配置实例实验等

提示:以下是本篇文章正文内容,下面案例可供参考

一.RAID磁盘阵列介绍

  • RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列)是一种利用多个硬盘驱动器(HDD或SSD)组合起来提供更大存储容量、更高的数据传输速率和/或数据的冗余性的技术。
  • 通过将多个物理硬盘虚拟化为一个或多个逻辑硬盘,RAID允许操作系统将它们视为一个单一的存储资源。

二.RAID主要优点

  1. 性能提升:通过并行处理I/O请求,RAID可以提高数据读写速度。例如,RAID 0通过条带化技术将数据分散存储在多个硬盘中,从而提供更高的吞吐量。
  2. 数据冗余:某些RAID级别(如RAID 1、RAID 5、RAID 6等)提供了数据的冗余存储,即使一个或多个硬盘损坏,也不会丢失数据。
  3. 容错能力:RAID可以检测和纠正某些类型的错误,确保数据的完整性和系统的连续运行。
  4. 灵活性:可以根据需要添加或移除硬盘,扩展存储容量或更换故障硬盘。

三.RAID级别

根据不同的应用场景和需求,RAID有多种不同的级别,每个级别都有其特定的优点和限制。以下是一些常见的RAID级别:

  • RAID 0:提供最大的性能,但没有数据冗余。
  • RAID 1:提供数据镜像,具有很好的冗余性,但存储效率低。
  • RAID 5:提供数据分条存储和分布式奇偶校验,具有较好的性能和冗余性。
  • RAID 6:类似于RAID 5,但提供独立的奇偶校验块,允许两个硬盘同时损坏而不丢失数据。
  • RAID 10:结合了RAID 0的性能优化和RAID 1的数据冗余,提供高速度和高可靠性。

RAID 0 (称为带区卷,性能最佳)

image.png

  - **性能**:RAID 0通过将数据分散存储在多个硬盘上,实现了数据的并行读写,从而提供了最高的存储性能。它非常适合需要高吞吐量的应用,如视频编辑、游戏服务器和一些数据库应用。- **缺点**:RAID 0没有冗余能力,如果其中一个硬盘失败,所有数据都会丢失。因此,它不适合需要数据保护的环境。

RAID 1

image.png

  - **性能**:RAID 1提供了良好的读性能,但写性能可能会受到影响,因为数据需要写入两个硬盘。- **冗余性**:RAID 1通过将数据完全复制到两个硬盘上来实现冗余,如果一个硬盘失败,另一个硬盘仍然可以继续工作,不会丢失数据。- **存储效率**:由于数据被复制,RAID 1的存储效率只有50%,因为它需要两倍的存储空间来保持数据的冗余。

RAID 5

image.png

  - **性能**:RAID 5在读取操作上表现良好,尤其是在大容量配置。写入性能也比RAID 1好,因为它不需要像RAID 1那样写入两次。- **冗余性**:RAID 5通过分布式奇偶校验来实现冗余,每个硬盘上都存储有用于恢复数据的奇偶校验信息。- **存储效率**:RAID 5的存储效率为(n-1)/n,其中n是硬盘。

RAID 6

image.png

  - **性能**:RAID 6在写入性能上与RAID 5相似,但读取性能可能略好,因为它有两个独立的奇偶校验块。- **冗余性**:RAID 6可以承受两个硬盘同时失败而不丢失数据,这提供了比RAID 5更高的数据保护水平。- **存储效率**:RAID 6的存储效率为(n-2)/n。

RAID 10

image.png

  - **性能**:RAID 10结合了RAID 0的条带化和RAID 1的镜像技术,提供了出色的读写性能和数据保护。- **冗余性**:RAID 10具有很高的冗余性,因为它可以承受多个硬盘的失败,具体取决于配置。- **存储效率**:RAID 10的存储效率为(n/2)/n,因为它需要至少两个硬盘来创建一个镜像。- **优点:**1. 高性能: 具有RAID 0的高性能,因为数据可以并行读写。2. 高可靠性**:** 具有RAID 1的高可靠性,因为数据被镜像到多个磁盘上。- **缺点:**1. 成本高: RAID 10需要大量磁盘,因此成本较高。2. 存储效率低**:** 与RAID 1一样,存储效率较低。

RAID 01

image.png
RAID 01是RAID 0和RAID 1的组合,它将多个RAID 0阵列进行镜像。
优点:
高性能: 具有RAID 0的高性能,通过并行读写多个RAID 0阵列。
数据冗余: 具有RAID 1的数据冗余,通过在RAID 0阵列之间进行镜像。
缺点:
故障容忍性低: 无法容忍多块磁盘的故障,一旦一个RAID 0阵列中的任何一块磁盘出现问题,整个系统都会受到影响。
存储效率低: 需要更多的磁盘来实现相同的存储容量,存储效率较低。

RAID总结如下:

image.png

配置示例1:

步骤1. 检查是否已安装mdadm软件包【mdadm是用于管理软件磁盘阵列的工具】
rpm -q mdadm
yum install -y mdadm
步骤2. 虚拟机设置”里添加四个50G硬盘,确认添加后输入命令lsblk查看分区列表
lsblk

image.png
查看到sde,sdf,sdg,sdh四个已添加

步骤3. 给这四个硬盘分区,之后lsblk查看 PS:这里可以打个快照,留做案例2
fdisk /etc/sde   sdf  sdg   sdh        ### n 1 ....
lsblk

image.png

步骤4. 为了后面实验方便,给dev/sde1 sdf1 sdg1 sdh1转换成raid格式
fdisk /dev/sde1 sdf1  sdg1  sdh1     ###t   fd    w

image.png

步骤5. 使用步骤一工具命令,查看分区的盘有无被使用
mdadm -E /dev/sd[e-h]1

image.png

步骤6. 使用mdadm -C命令用e、f、g、h 盘创建RAID5磁盘阵列
mdadm -C -v /dev/md0 [-a yes] -l5 -n3 /dev/sd[efg]1 -x1 /dev/sde1-C:表示新建,类似tar里面的 -C
-v:显示创建过程中的详细信息。
/dev/md0:创建 RAID5 的名称。【/dev目录cat下名称为md0】
-a yes:--auto,表示如果有什么设备文件没有存在的话就自动创建,可省略。
-l:指定 RAID 的级别,l5 表示创建 RAID5。
-n:指定使用几块硬盘创建 RAID,n3 表示使用 3 块硬盘创建 RAID。
/dev/sd[efg]1:指定使用这3块磁盘分区去创建 RAID。
-x:指定使用几块硬盘做RAID的热备用盘,x1表示保留1块空闲的硬盘作备用
/dev/sde1:指定用作于备用的磁盘记忆:使用mdadm命令创建磁盘阵列并显示详细信息,在/dev/目录下的名字为md0,级别为RAID5,
sd[efg]3个设备做主要的,1个使用/dev/sde1做热备

image.png

步骤7. 系统创建中需要一会儿时间,可用相关命令查看进度
cat /proc/mdstat		#查看创建RAID的进度

image.png

mdadm -D /dev/md0			#查看磁盘阵列的详细信息

image.png
PS:可用watch命令来每隔一段时间刷新 /proc/mdstat 的输出
watch -n 1 ‘cat /proc/mdstat’

watch -n 1 'cat /proc/mdstat'		#每隔1秒刷新时间刷新 /proc/mdstat 的输出

成功页面如下:
image.png

步骤8. 检查磁盘是否已做RAID
mdadm -E /dev/sd[efgh]1

image.png

步骤9. 创建并挂载文件系统
mkfs -t xfs /dev/md0					###将刚创建的RAID5磁盘阵列,即/dev/目录下的md0制作文件系统
mkdir /myraid									###创建目录myraid,以便待会用来挂载
mount /dev/md0 /myraid/				###将1里的md0设备挂载到 2里的myraid
df -Th												###查看磁盘使用情况,是否挂载到myraid
cp /etc/fstab /etc/fstab.bak	###将/et/fstab复制到 /etc/fstab.bak,已做备份【没有bak可以往下走】
vim /etc/fstab								###fstab是系统启动时自动挂载文件系统的信息,编辑
/dev/md0      /myraid        xfs   	 defaults   0  0			###添加记录
mount -a 										  ###系统启动自动挂载刷新

image.png
image.png
image.png
image.png
image.png

步骤10. 实现模拟故障查看故障恢复
mdadm /dev/md0 -f /dev/sde1		#模拟/dev/sde1 故障		,即移除dev/sde1设备
mdadm -D /dev/md0					#查看发现sdh1已顶替sdbe1

1.故障前:
image.png
2.模拟故障后:
image.png

PS:这里制作的RAID5(n>=3)有四块物理硬盘,所以这里可以允许有两块物理硬盘出现问题。

例如:

mdadm /dev/md0 -f /dev/sdf1				###移除sdf1
mdadm -D /dev/md0									### 再次查看

image.png
继续移除sdg1

mdadm /dev/md0 -f /dev/sdg1				###移除sdg1
mdadm -D /dev/md0									### 再次查看

image.png

示例2:

将示例1的RAID5磁盘阵列(/dev/md0),恢复最初状态,并用efgh四个盘做RAID10.【也可到快照开始做,直接从步骤7开始】

步骤1.移除RAID5的设备

mdadm /dev/md0 -f /dev/sdf1
mdadm /dev/md0 -f /dev/sde1
mdadm /dev/md0 -f /dev/sdh1

image.png
image.png

步骤2.解除RAID5的挂载

umount /dev/md0

image.png
补充:mdadm命令其它常用选项

  • -r:移除设备
  • -a:添加设备
  • -S:停止RAID
  • **-A: 启动RAID **
mdadm /dev/md0 -f /dev/sdb1		###从RAID阵列 `/dev/md0` 中移除故障的硬盘 `/dev/sdb1`。这通常在检测到硬盘故障时执行。
mdadm /dev/md0 -r /dev/sdb1###从RAID阵列 `/dev/md0` 中恢复被移除的硬盘 `/dev/sdb1`。这通常在修复了故障的硬盘后执行。
mdadm /dev/md0 -a /dev/sde1###将新硬盘 `/dev/sde1` 添加到已存在的RAID阵列 `/dev/md0` 中,这通常在需要扩展阵列或替换故障硬盘时执行。

步骤3.停止RAID5的运行

mdadm -S /dev/md0

image.png

步骤4.删除RAID5目录并vim/etc/fstab进入系统自动挂载文件里删除记录

image.png
image.png

步骤5.解挂载,停止raid设备,删除raid里所有硬盘后,擦除RAID超级块:

mdadm --misc --zero-superblock /dev/sde		
mdadm --misc --zero-superblock /dev/sdf
mdadm --misc --zero-superblock /dev/sdg
mdadm --misc --zero-superblock /dev/sdg或者整合成下面这一条指令
mdadm --misc --zero-superblock /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1
##- `--misc` 是一个选项,它允许 `mdadm` 用于一些特殊的操作,
##- `--zero-superblock` 选项用于擦除设备上的 RAID 超级块

image.png

步骤6.删除配置文件

rm -rf /etc/mdadm.conf

image.png
至此,RAID5已经处理干净

步骤7.用lsblk命令查看磁盘使用情况

lsblk

image.png

步骤8.删除各个主分区,接着每个物理盘分四个区,sde1,sdf1,sdg,sdh1都给10G,最后用lsblK命令查看

image.png

步骤7.创建 RAID 10设备(先做镜像,再做条带)

mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[ef]1
mdadm -Cv /dev/md1 -l1 -n2 /dev/sd[gh]1
mdadm -Cv /dev/md10 -l0 -n2 /dev/md0 /dev/md1或
mdadm -Cv /dev/md0 -l10 -n4 -x1 /dev/sd{e,f,g,h}1     

image.png

 cat /proc/mdstat			###查看创建RAID10的进度

image.png

步骤8.检查磁盘是否已做RAID

mdadm -E /dev/sd[efgh]1					###检查和显示Linux 中多个设备的详细信息的命令。

image.png

步骤9.创建并挂载文件系统

mkfs -t xfs /dev/md10			###给/dev/目录下的md10设备制作文件系统
mkdir /myraid							###创建目录挂载点myraid
mount /dev/md10 /myraid/		###将文件系统md10挂载到挂载点myraid
df -Th											###显示 Linux 系统中文件系统的磁盘空间使用情况	
vim /etc/fstab							###进入系统启动挂载盘目录文件fstab
/dev/md10      /myraid        xfs   	 defaults   0  0			###加入系统启动挂载

image.png
image.png
image.png

步骤10.实现故障恢复

1.故障前使用mdadm -D /dev/md10,正常工作
image.png
2.模拟故障

mdadm /dev/md0 -f /dev/sde1     ###模拟sde1设备移除

image.png
3.故障后查看

mdadm -detail /dev/md0				###查看md0设备状态,有一个盘有问题,正常运行
mdadm -D /dev/md10						###查看md10设备状态,也能正常运行

image.png
image.png

步骤11.创建 /etc/mdadm.conf 配置文件,方便管理软RAID的配置,比如启动、停止

echo 'DEVICE /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1'>/etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf
###    配置 `/etc/mdadm.conf` 文件,并扫描现有的 RAID 阵列

image.png

内容补充:

###  删除raid10过程:
1.先umount组建好的raid    umount /dev/md102.停止raid设备:mdadm -S /dev/md103.此时如果忘了raid中的硬盘名称,要么重启系统,要么运行:mdadm -A -s /dev/md10
然后再用mdadm -D /dev/md10查看raid
中包含哪几个硬盘。再次运行第二步停止命令:mdadm -S /dev/md104.删除raid里的所有硬盘:mdadm --misc --zero-superblock /dev/sde,mdadm --misc --zero-superblock /dev/sdfmdadm --misc --zero-superblock /dev/sdgmdadm --misc --zero-superblock /dev/sdh
有几块硬盘,就按格式删几次,注意最后面的硬盘名称,也可以写在一条命令:
[root@localhost ~]# mdadm --misc --zero-superblock /dev/sdb10 /dev/sdf1 /dev/sdg1 /dev/sdh15.删除配置文件:rm -rf /etc/mdadm.conf

相关文章:

Linux-服务器硬件及RAID配置实验

系列文章目录 提示:仅用于个人学习,进行查漏补缺使用。 1.Linux介绍、目录结构、文件基本属性、Shell 2.Linux常用命令 3.Linux文件管理 4.Linux 命令安装(rpm、install) 5.Linux账号管理 6.Linux文件/目录权限管理 7.Linux磁盘管理/文件系统 8.Linu…...

白屏检测系统的设计与实现

目录 一、 什么是白屏问题?二、 问题分析与拆解2.1 人工判定一个白屏问题的逻辑2.2 自动化判定一个白屏问题的算法思想 三、 白屏检测算法3.1 图像灰度化3.2 图像二值化3.3 计算(判定为白屏)置信度 四、 白屏检测系统的设计与实现4.1 UI自动化…...

Real-Time Open-Vocabulary Object Detection:使用Ultralytics框架进行YOLO-World目标检测

Real-Time Open-Vocabulary Object Detection:使用Ultralytics框架进行YOLO-World目标检测 前言相关介绍前提条件实验环境安装环境项目地址LinuxWindows 使用Ultralytics框架进行YOLO-World目标检测进行训练进行预测进行验证 扩展目标跟踪设置提示 参考文献 前言 由…...

区块链用什么编程语言实现?

. 主流区块链的开发语言主要有:C、Go、Java、Rust、C#。 C使用率最高,其次是Go,很少有人用python开发区块链。...

【网络编程】UDP通信基础模型实现

udpSer.c #include<myhead.h> #define SER_IP "192.168.119.143" #define SER_PORT 7777 int main(int argc, const char *argv[]) {//1.创建int sfd socket(AF_INET,SOCK_DGRAM,0);if(sfd -1){perror("socket error");return -1;}//2.连接struct…...

Docker Compose 常用命令详解

Docker Compose 常用命令详解 Docker Compose 是 Docker 官方编排工具之一&#xff0c;用于定义和运行多容器 Docker 应用程序。通过 docker-compose.yml 文件&#xff0c;开发者可以轻松管理服务、网络、卷以及各服务之间的依赖关系。以下将介绍一些常用的 Docker Compose 命…...

超级外链工具,可发9600条优质外链

超级外链工具&#xff0c;是一款在线全自动化发外链的推广工具。使用本工具可免费为网站在线批量增加外链&#xff0c;大大提高外链发布工作效率&#xff0c;是广大草根站长们必备的站长工具。 外链工具只是网站推广的辅助工具&#xff0c;一般适用于短时间内无法建设大量外链…...

VisionPro二次开发学习笔记13-使用CogToolBlock进行图像交互

该程序演示了如何使用CogToolBlock进行图像交互. 从vpp文件中加载一个ToolBlock。 用户可以通过应用程序窗体上的数字增减控件修改ToolBlock输入端子的值。 用户还可以从coins.idb或采集FIFO中选择图像。 “运行一次”按钮执行以下操作&#xff1a; 获取下一个图像或读取下一…...

比特币价格分析:市场重置完成,下一个目标:70,000 美元

比特币再次处于关键支撑位&#xff0c;面临可能影响其短期前景的关键考验。分析师们正密切关注比特币是否重复熟悉的模式&#xff0c;暗示可能出现重大走势。 OKNews分析师Josh表示&#xff0c;比特币一直处于看跌趋势&#xff0c;正如 4 日图上的超级趋势指标所示。这种趋势的…...

大模型笔记5 Extractive QA任务评估

目录 Extractive QA任务评估 Extractive QA评测指标 precision, recall, f1 ROUGE 划分训练与评估数据集 token位置评估 单个token位置评估 输入label的token位置 预测token位置 评估 Wandb 共享机器同时登录 样本类别平衡 标记token label时对窗口进行筛选 训练…...

RCE绕过方式

目录 小于8个字符突破限制 无字母数字执行 php7的做法 php5的思考 PHP5shell 深入理解glob通配符 构造POC&#xff0c;执行任意命令 无参数读文件和RCE总结 代码解读 构造. 另一种构造方法 小于8个字符突破限制 但也只能执行一些非常短的命令&#xff0c;没有什么意义…...

Flutter 电视投屏模块

前言 村里的老人说:“珍爱生命,远离低头族。“ 之前开发的一个 DIM 项目 Tarsier,里面有一个分享视频的功能,同时包含在线视频播放、电视直播等。 考虑到用户在手机上看视频的体验问题,需要增加一个投屏功能,以便用户可以电影、电视直播等投到电视上用大屏幕观看。 用…...

【机器学习】卷积神经网络简介

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 卷积神经网络简介1. 引言2. CNN的基本概念2.1 什么是卷积神经网络2.2 CNN与传统…...

时间函数链接函数等

1. 2.top相当于windows任务管理器 3.命令模式下不加冒号20G直接跳转行数 4. 相当于strcat 5.:13,15y 13行到15行复制 6. Ctrl 右 】是追踪命令 7. vi off_t -t看类型 8. qa关闭所有 9.gg 移动最前面 GG移动到最后面 10.终端中的全选命令1. 使用快捷键&…...

Android控件(示例)

在Android应用程序中&#xff0c;界面由布局和组件组成。布局相当于框架&#xff0c;而控件则是框架里面的内容。了解过Android布局后&#xff0c;如果要设计ui界面&#xff0c;还需要了解和掌握各个控件的应用。 一个界面的设计&#xff0c;先从创建容器开始&#xff0c;再向…...

图论------贝尔曼-福德(Bellman-Ford)算法

算法概述&#xff1a; Bellman-Ford算法核心代码如下 for(int i 1;i<n-1;i) for(int j 1;j<m;j) if(dic[v[j]]> dic[u[j]] w[j]] dic[v[j]] dic[u[j]] w[j]; 首先我们要了解一个点就是我们这次不再使用邻接矩阵来存储图的信息&#xff0c;而是定义三个一维数组来…...

带你彻底搞懂useLayoutEffect的使用场景

开篇第一句: useLayoutEffect 可能会影响性能。尽可能使用 useEffect。 useLayoutEffect 是 useEffect 的一个版本&#xff0c;在浏览器重新绘制屏幕之前触发。 使用方法 useLayoutEffect(setup, dependencies?)调用 useLayoutEffect 在浏览器重新绘制屏幕之前进行布局测量&…...

大厂进阶之二:React高级用法HOC、Hooks对比、异步组件

本文分文三部分&#xff1a; HOC高阶组件 higher order componentHooks 16.8版本后新增的钩子API异步组件使用lazy和suspense两个api实现组件代码打包分割和异步加载 一、HOC高阶组件 1、定义 高阶组件不是组件而是函数&#xff0c;是react中用于复用组件逻辑的高级技巧&am…...

【扒代码】ope.py

文件目录&#xff1a; 引用方式 if not self.zero_shot: # 非零样本情况下&#xff0c;计算边界框的宽度和高度 box_hw torch.zeros(bboxes.size(0), bboxes.size(1), 2).to(bboxes.device) box_hw[:, :, 0] bboxes[:, :, 2] - bboxes[:, :, 0] # 宽度 box_hw[:, :, 1] bbox…...

【Rust光年纪】探索Rust终端编程:从跨平台操作到用户界面设计

构建跨平台终端应用的完美选择&#xff1a;Rust 库综述 前言 随着终端应用程序的发展&#xff0c;越来越多的开发者开始寻找跨平台的、易于使用的库来构建终端用户界面和执行终端操作。本文将介绍几个流行的 Rust 库&#xff0c;它们提供了丰富的功能和灵活的 API 来满足不同…...

67、ceph

一、ceph 1.1、ceph概念 ceph是一个开源的&#xff0c;用c语言写的分布式的存储系统。存储文件数据。 /dev/sdb fdisk /dev/sdb gdisk /dev/sdb lvm 逻辑卷 可以扩容 raid 磁盘阵列 高可用 基于物理意义上的单机的存储系统。 分布式有多台物理磁盘组成一个集群&…...

最大正方形[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 在一个由0和1组成的二维矩阵内&#xff0c;找到只包含1的最大正方形&#xff0c;并返回其面积。 示例 1&#xff1a; 输入&#xff1a;matrix [["1","0","1","0","0"],[&quo…...

JavaScript 浅谈观察者模式 前端设计模式

2、观察者模式 2.1、观察者模式 2.1.1、前言 定义一种一对多的依赖关系&#xff0c;当一个对象发生变化时&#xff0c;所有依赖于它的对象都会自动收到通知并更新。 两个角色&#xff1a; Subject&#xff08;主题/被观察者&#xff09; Observer&#xff08;观察者&…...

【自动驾驶】自定义消息格式的话题通信(C++版本)

目录 新建消息文件更改包xml文件中的依赖关系更改cmakelist文件中的配置执行时依赖改变cmakelist编译顺序发布者程序调用者程序新建launch文件程序测试 新建消息文件 在功能包目录下&#xff0c;新建msg文件夹&#xff0c;下面新建mymsg.msg文件&#xff0c;其内容为 string …...

提升前端性能的JavaScript技巧

1. 前端JavaScript性能问题 前端JavaScript的性能问题可以显著影响Web应用的用户体验和整体性能。以下是一些常见的前端JavaScript性能问题: 1.1. 频繁的DOM操作 问题描述:JavaScript经常需要与DOM(文档对象模型)交互来更新页面内容。然而,每次DOM操作都可能触发浏览器的…...

“服务之巅:Spring Cloud中SLA监控与管理的艺术“

标题&#xff1a;“服务之巅&#xff1a;Spring Cloud中SLA监控与管理的艺术” 在微服务架构中&#xff0c;服务调用的可靠性和性能是至关重要的。服务级别协议&#xff08;Service Level Agreement&#xff0c;简称SLA&#xff09;是衡量服务性能的关键指标&#xff0c;它定义…...

ChatGPT角色定位提问提示词和指令完整版

角色定位提问 在与ChatGPT的对话中&#xff0c;角色定位提问是一种有效的策略&#xff0c;通过为ChatGPT和自己设定特定的角色或身份&#xff0c;可以引导对话朝着更加具体、有针对性的方向发展。这种提问方式不仅有助于ChatGPT更好地理解问题的背景和需求&#xff0c;还能使回…...

docker之我不会的命令

docker命令之我不会的 保存镜像&#xff08;打包&#xff09; docker save 镜像名或镜像id -o 保存路径和镜像名字例子&#xff1a; docker save tomcat -o /home/my_tomcat.tar加载保存的镜像 docker load -i 镜像保存的位置例子 在/home/路径下 docker load -i my_tomca…...

Together规则引擎 金融解决方案

目录 1.金融法规和期望正在发生变化,快速跟踪您的金融数字化变革&#xff01;2.抵押贷款功能集&#xff08;MFS&#xff09;3.MFS 示例模型4.MFS 知识特点5.MFS特定功能 1.金融法规和期望正在发生变化,快速跟踪您的金融数字化变革&#xff01; ogether规则引擎使金融机构能够简…...

【PyQt5】PyQt5 主要类

1.经常使用的模块 Sr.No.模块描述1QtCore其他模块使用的核心非GUI类2QtGui图形用户界面组件3QtMultimedia低级多媒体编程的类4QtNetwork网络编程的类5QtOpenGLOpenGL支持类6QtScript用于评估Qt脚本的类7QtSql使用SQL进行数据库集成的类8QtSvg用于显示SVG文件内容的类9QtWebKit…...