Day21-磁盘管理之raid及分区

Day21-磁盘管理之raid及分区

  • 1 Raid技术
    • 1.1 什么是Raid?
    • 1.2 为什么服务器需要Raid?
    • 1.3 什么是Raid级别?
    • 1.4 Raid有哪些实现方式?
    • 1.5 什么是RAID0?(图)
    • 1.6 什么是RAID1?(图)
    • 1.7 什么是RAID5?(图)
    • 1.8 什么是RAID01或Raid10?(图)
    • 1.9 Raid10综合总结(企业面试题)
    • 1.11 Raid和Lvm区别?
    • 1.12 作业案例:
  • 2. 磁盘分区知识
    • 2.1 磁盘为什么要分区?
    • 2.2 磁盘设备及分区命名知识
    • 2.3 磁盘分区类型和各自特点
      • 2.3.1 主分区(Primary)
      • 2.3.2 扩展分区(Extend)
      • 2.3.3 逻辑分区(logical)
      • 2.3.4 磁盘分区要点总结
      • 2.3.5 几个思考题?
      • 2.3.6 磁盘分区原理
      • 2.3.7 磁盘存储逻辑结构原理图解
      • 2.3.8 fdisk分区命令精讲与实践

1 Raid技术

1.1 什么是Raid?

中文全称:廉价冗余磁盘阵列
英文全称:Redundant Array of Inexpensive Disk
简称:Raid
Raid是一种把【一块及多块独立的物理磁盘】按不同的技术方式组合起来形成一个磁盘组,在逻辑上看起来就是一块大的磁盘,可以提供比单个物理磁盘更大的存储容量或更高的存储性能,同时又能提供不同级别数据冗余备份的一种技术。

1.2 为什么服务器需要Raid?

服务器运行痛点:
1)单块盘容量不够大。
2)磁盘损坏数据丢失。
3)磁盘速度不够快。
磁盘阵列可以把多个磁盘驱动器通过不同的连接方式连接在一起协同工作,大大提高了读取速度,同时把磁盘系统的可靠性提高到接近无错的境界,使其可靠性极高。

用RAID最直接的好处是:
1)提升数据安全性。
2)提升数据读写性能。
3)提供更大的单一逻辑磁盘数据容量存储。

1.3 什么是Raid级别?

把多个物理磁盘通过【不同技术方式】组成的磁盘阵列,这个不同的技术方式就被称为RAID级别。
Raid级别一般有:
Raid 0、1、2、3、4、5、6、7、0+1(也称Raid 10)、53等。
生产环境常用Raid级别:0、1、5、10。(核心面试点)

1.4 Raid有哪些实现方式?

RAID的实现方式:
1.独立扩展卡。
速度快、支持read级别更多0、1、5、10。
2.内置主板集成RIAD控制器。
速度还行,只支持0,1。
3.通过os系统软件实现。
软raid,软件实现,性能差,操作系统损坏数据容易丢失。
在这里插入图片描述

1.5 什么是RAID0?(图)

0)上图讲解Raid0原理
1)Raid0动画展示
2)Raid0关键特点总结

raid0可以单盘做
1.读写性能 提高了三倍
2.容量是单盘的三倍,没有损失
3.没有【冗余】
4.web服务、应用服务(集群)

缺点:维护稍微麻烦

生产应用场景:
1)负载均衡集群下面的多个相同RS节点服务器。
2)分布式文件存储下面的主节点或CHUNK SERVER。
3)MySQL主从复制的多个Slave服务器。
4)对性能要求很高,对冗余要求很低的相关业务。

RAID0综合情况图表说明
以4块盘做 RAIDO 为例说明

关注点描述
容量是4块盘加在一起的容量,在raid 级别中具备最高的存储性能,原理是把连续的数据分散到多个磁盘上存取。
性能理论上磁盘读写速度比单盘提升4倍,磁盘越多倍数会越小。
冗余无任何冗余,坏1块盘,整个RAID 就都不能用了。
场合适合于大规模并发读写,但对数据安全性要求不高的情况。如:集群中的RS,做虚拟机的实体机、负载均衡集群下面的多个相同RS 节点服务器,如分布式文件存储下面的 CHUNK SERVER,以及 MySQL 主从复制的多个Slave服务器。
特点速度快,无冗余,容量无损失。

iops
input output
在这里插入图片描述

1.6 什么是RAID1?(图)

0)上图讲解Raid1原理
1)Raid1动画展示
2)Raid1关键特点总结

1.只能两块盘,镜像盘(mirror)
2.两块盘,以容量小的为基准
3.冗余100%
4.容量减半
5.读性能,提高的
​ 写性能,单盘性能
6.数据安全要求极高,性能要求不高,成本预算较多
7.操作系统盘 数据库服务器(传统)

RAIDI综合情况图表说明
以两块盘为例说明

关注点描述
容量损失 50%的数据容量。例如:2块1T的盘,做RAID1后,容量为1T.
性能Mirror 不能提高存储性能。理论上写性能和单盘相差不大。有人说读取效率是2倍,到底如何呢?请有测试环境的同学帮忙测试?暂且按照只读单盘说明。
冗余在所有 RAID 级别中,RAID1提供最高的数据安全保障。冗余度 100%.
场合适用于存放重要数据,如服务器系统分区和对性能要求很高的数据库存储等领域。
特点100%冗余,容量损失一半,只能两块盘,两盘大小可以不一致。

在这里插入图片描述

1.7 什么是RAID5?(图)

0)上图讲解Raid5原理
1)Raid5动画展示
2)Raid5关键特点总结

1.至少3块盘
2.2块盘写数据,第三块写奇偶校验数据
3.容量n-1
4.冗余只能坏一块
5.读性能n-1倍
写性能 不太高
6.场合 中庸方案
大多数公司选择raid5

RAID5综合情况图表说明

关注点描述
容量只损失一块盘的数据容量
性能RAID5 具有和 RAID0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度较慢
冗余可损失一块盘。RAID5数据安全保障程度比 RAID1低,而磁盘空间利用率要比RAID1 高
场合RAID5可以理解为是RAIDO和RAID1的折衷方案。适合对性能和冗余都有一定要求,又都不是十分高的情况。MySQL的主从库都可以,存储也可以。普通的服务器为了减少维护成本,又保持一定冗余和读性能都可以做RAID5
特点容量损失一块盘,写数据通过奇偶校验,RAID0和RAID1的折衷方案追求速度和安全的不要选RAID5

最低硬盘数量3

优点缺点
很高读取效率硬盘的故障会对吞吐最造成中等的影响。
中等写入效率控制器的设计较为复杂。
很低的ECC 硬盘数量占用率,ECC效率高相对于RAID-1来说,因硬盘故障而重新构建RAID体系比较麻烦
良好的集合数据传输率个别数据块的传输率与单个硬盘相当

适用领域:
文件与应用服务器
数据库服务器
Web、E-Mail 以及新闻服务器
RAID-5 是适用领域最多的 RAID 等级

在这里插入图片描述

在这里插入图片描述

1.8 什么是RAID01或Raid10?(图)

0)上图讲解原理
1)动画展示
2)关键特点总结

01
1.容量减半
2.冗余:损失2块盘(单边坏)
3.读性能快
写 可以
4.没有场合

10
1.容量减半 成本特别高
2.冗余:损失2块盘
3.读写 性能都不错
4.主数据库 主存储服务器

RAID10

关注点描述
容量损失一半盘的数据容量。
性能大于 RAID1 和 RAID5,小于 RAID0。
冗余可损失 2块,冗余大于RAID5 和 RAID0,小于 RAID1
场合高并发存储和数据库系统

10.RAID选择成本/性能/可靠性对比图
在这里插入图片描述

在这里插入图片描述

DELL R710使用6块盘实践RAID制作结论
Raid0支持1块盘到多块盘,容量是所有盘之和。
Raid1只支持2块盘,容量损失一块盘。
Raid5最少三块盘,不管硬盘数量多少,只损失一块盘容量。
Raid6最少4块盘,5块盘也可以,损失2块盘,不管硬盘多少,只损失两块盘容量。
Raid10最少4块盘,必须偶数硬盘,不管硬盘多少,都损失一半容量,不支持虚拟磁盘。
到底能不能同时坏两块盘?可以

1.9 Raid10综合总结(企业面试题)

例如:请说出 Raid0、Raid1、Raid5、Raid10 的特点和区别?
在这里插入图片描述

在这里插入图片描述

1.11 Raid和Lvm区别?

什么是LVM(逻辑卷管理)
动态扩容的工具。
1)分区动态扩容(1.事先规划好。2.尽量少分区)。
2)性能差(10%)。
应用场景:测试服务器

1.12 作业案例:

案例:
背景:公司内部最近要上新的ERP系统,公司内部旧的服务器已经无法满足需求。公司新上马的ERP系统,因为要满足各个分公司,各办事处,销售人员和后勤人员,服务人员甚至客户的协同的大量的24小时不间断的远程高负荷的数据操作,在数据储存方面需要采用更高级别的RAID磁盘阵列容错系统。
服务器R730 DELL型号已经确认,但是在raid存储方面还没定夺。你给领导RAID方案。

2. 磁盘分区知识

2.1 磁盘为什么要分区?

和买房一样,厨房,厕所,客厅,卧室。
磁盘也是分成不同的空间,干不同的事情,所以需要分区。
磁盘可以不分区。

2.2 磁盘设备及分区命名知识

/dev

IDE:
/dev/hda,第一块盘
/dev/hdb,第二块盘

SCSI(SAS,SATA):
/dev/sda,第一块盘
/dev/sdb,第一块盘

分区命名:
/dev/sda1
/dev/sda2

/dev/hda1
/dev/hda2

[root@oldboy ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2

查看UUID

[root@oldboy ~]# blkid 
/dev/sda1: UUID="99f122a2-ed9f-4841-ab89-391fd95f47a0" TYPE="xfs" 
/dev/sda2: UUID="Y07uSZ-ymkt-yOqg-0JwZ-d5Uc-EowH-E0ZvBb" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="b5edd8bb-5ea5-4657-b543-52a128433bca" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="edf78ada-a45d-47c6-ba1d-e1bd3b4d9101" TYPE="swap" 

可以使用UUID代表/dev/sda1这样的分区

[root@oldboy ~]# egrep -v "^#|^$" /etc/fstab 
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=99f122a2-ed9f-4841-ab89-391fd95f47a0 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap     defaults        0 0

2.3 磁盘分区类型和各自特点

DOS分区表:只能用于小于2T的硬盘(常用)。
GPT分区表:万能分区表(小于2T,大于2T都可以)。

DOS分区表分区类型:

2.3.1 主分区(Primary)

a.必须存在的分区。
b.装系统(第一个主分区)
c.主分区数量不能超过4个。
d.分区编号,只能是1-4

想分超过4个分区,怎么办? 答:还需要扩展分区和逻辑分区

2.3.2 扩展分区(Extend)

a.独立小磁盘,有独立分区表,不能直接放数据。
b.占用主分区分区编号(2-4)。
c.最多只能有1个。
d.必须在其下划分逻辑分区。
e.主分区+扩展分区最多4个。

2.3.3 逻辑分区(logical)

 a.不能独立存在,必须在扩展分区之上。
 b.编号最小是5,及以上。
 c.存放数据。

2.3.4 磁盘分区要点总结

一块磁盘的分区方式只能为如下组合之一:
(1)任意多个主分区,但要求1≤主分区数量≤4。
(2)扩展分区可以和主分区组合,但要求2≤(主分区+扩展分区)数量≤4)。
(3)如果要分成四个磁盘分区的话,那么最多就是可以:P + P + P + P或P + P + P + E,其中的 P为Primary,E为Extend。
(4)扩展分区不是一个真正的可用分区,建立完扩展分区后,还需要在扩展分区上面建立逻辑分区才可以使用。
(5)对于主分区和逻辑分区在一般的数据存储使用上是没有区别的(对于大多数的数据存储),在安装操作系统时第一个分区要选主分区。
(6)分区数字编号1~4留给主分区或扩展分区使用,逻辑分区编号只能从5开始,即使1-4分区号即使有剩余,也不会分配给逻辑分区。
(7)对磁盘分区,实际上就是在修改磁盘的分区表 ( Partition table ),并没有涉及磁盘数据。

2.3.5 几个思考题?

例1:如果要将一块大磁盘暂时分成四个分区,同时还希望有其它的空间可
以让未来需要的时候再进行分区,那么该如何分区?
3P+1E(1L)
1P+1E(3L)
2P+1E(2L)

例2:假如有一块SAS磁盘,想要把磁盘分成6个可以使用的磁盘分区,
有几种方式,每个磁盘分区在Linux系统下的数字编号分别是多少?
3P+1E(3L):
sda1,sda2,sda3,sda5,sda6,sda7
1P+1E(5L):
sda1,sda5,sda6,sda7,sda8,sda9
2P+1E(4L):
sda1,sda2,sda5,sda6,sda7,sda8
(实践)

2.3.6 磁盘分区原理

a.修改的就是分区表,没有动磁盘数据。
b.分区表的位置,0磁道0柱面1扇区的512字节的前446字节接下的64字节。
c.fdisk分区本质就是修改这64字节分区表。

磁盘存储逻辑结构原理图
在这里插入图片描述

磁盘分区表
在这里插入图片描述

字节分区表的内容

字节数说明
1 BytesState:分区状态,0=未激活,0x80=激活。
1 BytesStartHead:分区起始磁头号。
2 BytesStartSC:分区起始扇区和柱面号。低字节的低6位为扇区号,高2位为柱面号的第9,10位;高字节为柱面号的低8位。
1 BytesType:分区类型,如0x0B=FAT32,0x83=Linux等,00 表示此项未用
1 BytesEndHead:分区结束磁头号。
2 BytesEndSC:分区结束扇区和柱面号,定义同前。
4 BytesRelative:线性寻址方式下分区相对扇区地址(对于基本分区即为绝对地址)
4 BytesSectors:分区大小(总扇区数)

说明:这就是一个磁盘分区的分区表,例如:/dev/sda1,使用fdisk分区工具分区的实质就是改变上述64字节的分区表信息。

1)给磁盘分区的实质就是针对上述0磁头0磁道1扇区的前446字节后面接下来的64bytes的分区表进行设置,即主要是划分起始以及结束磁头号、扇区号及柱面号。
2)给磁盘分区的工具有fdisk(适合给小于2T的磁盘分区,适合mbr分区表、DOS分区表),
3)gpt格式分区表分区,有parted,gdisk。
小于2T用常规fdisk分区工具,大于2Tparted,gdisk来分区。

2.3.7 磁盘存储逻辑结构原理图解

0)0磁道1扇区讲解

(前446字节 是引导程序所在地,称为MBR)

接下来的64字节是分区表

最后2个字节是分区结束标志

读者可以用dd命令或者相关工具获得上述1扇区内容:

dd if=/dev/sda of=mbr.bin bs=512 count=1     #<==读取0磁头0磁道1扇区内容。
od -xa mbr.bin                               #<==以16进制解析1扇区内容。
od - dump files in octal and other formats

2.3.8 fdisk分区命令精讲与实践

1)准备环境添加一块盘,并重启(早期kudzu不重启)

Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

2)
fdisk 分区命令

-l 查看分区信息

[root@oldboy ~]# fdisk /dev/sdb #开始分区
Command action
   d   delete a partition           #删除分区
   m   print this menu              #打印帮助
   n   add a new partition          #添加新分区
   p   print the partition table    #打印分区表
   q   quit without saving changes  #退出不保存
   w   write table to disk and exit #保存并退出

例2:假如有一块SAS磁盘,想要把磁盘分成6个可以使用的磁盘分区,
有几种方式,每个磁盘分区在Linux系统下的数字编号分别是多少?

1P+1E(5L):
sda1,sda5,sda6,sda7,sda8,sda9

3P+1E(3L):
sda1,sda2,sda3,sda5,sda6,sda7

2P+1E(4L):
sda1,sda2,sda5,sda6,sda7,sda8

还没保存:查不到磁盘上对应的分区:

[root@oldboy ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
|-sda1            8:1    0    1G  0 part /boot
`-sda2            8:2    0   19G  0 part 
  |-centos-root 253:0    0   17G  0 lvm  /
  `-centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    1G  0 disk 
sr0              11:0    1 1024M  0 rom 

[root@oldboy ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb

[root@oldboy ~]# blkid
/dev/sda1: UUID="50250354-e0e5-414a-8a88-90f3aa6f1d2b" TYPE="xfs"
/dev/sda2: UUID="wBHG88-pAqb-lgmI-Kl1i-GEM1-ObxV-yLojkd" TYPE="LVM2_member"
/dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/centos-root: UUID="ce92b21a-a733-45b7-b9e4-c3ddd074ad1a" TYPE="xfs"
/dev/mapper/centos-swap: UUID="232e9efb-2a4e-4de2-8d20-7c9d60f97f2f" TYPE="swap"

保存以后:

[root@oldboy ~]# ls /dev/sd*
/dev/sda   /dev/sda2  /dev/sdb1  /dev/sdb5  /dev/sdb7  /dev/sdb9
/dev/sda1  /dev/sdb   /dev/sdb2  /dev/sdb6  /dev/sdb8
[root@oldboy ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
|-sda1            8:1    0    1G  0 part /boot
`-sda2            8:2    0   19G  0 part 
  |-centos-root 253:0    0   17G  0 lvm  /
  `-centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    1G  0 disk 
|-sdb1            8:17   0  100M  0 part 
|-sdb2            8:18   0    1K  0 part 
|-sdb5            8:21   0  100M  0 part 
|-sdb6            8:22   0  100M  0 part 
|-sdb7            8:23   0  100M  0 part 
|-sdb8            8:24   0  100M  0 part 
`-sdb9            8:25   0  100M  0 part 
sr0              11:0    1 1024M  0 rom  

通知内核分区表已经修改。

[root@oldboy ~]# partprobe /dev/sdb

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

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

相关文章

Python之Flask框架~四大内置对象

1.g global全局对象 g对象是专门用来保存用户的数据的 g对象在一次请求中的所有的代码的地方, 都是可以使用的 突破变量存储位置限制,为数据传递添加了新的方式,比如我们在before_request产生一个数据在后面需要使 用, 可以保存在g对象中, 在其他视图西数中就可以使用这个数据…

LaTeX-设置图像大小

文章目录 LaTeX-设置图像大小1.导入图片2.更改图像大小并旋转图像2.1按比例缩放2.2将图像缩放到特定的宽度和高度2.3将图片设置为与文字宽度相同2.4旋转图片 LaTeX-设置图像大小 在本文中&#xff0c;将解释如何以最常见的格式包含图像&#xff0c;如何缩小、放大和旋转它们。…

Day11:信息打点-Web应用企业产权指纹识别域名资产网络空间威胁情报

目录 Web信息收集工具 业务资产-应用类型分类 Web单域名获取-接口查询 Web子域名获取-解析枚举 Web架构资产-平台指纹识别 思维导图 章节知识点&#xff1a; Web&#xff1a;语言/CMS/中间件/数据库/系统/WAF等 系统&#xff1a;操作系统/端口服务/网络环境/防火墙等 应用…

考研机试C++题目精选

更多内容会在godownio.github.io更新 算法练习&#xff08;C代码&#xff09; 考研上机或C语言代码笔试准备&#xff0c;暨大机试原题letcode牛客中南大等高校机试 快速幂算法 题目&#xff1a;输入一个整数 n &#xff0c;求 n^n 的个位数是多少。 快速幂算法&#xff1a;…

集合篇之ArrayList

一、源码如何分析&#xff1f; 1.成员变量 2.构造方法 3.关键方法 一些添加的方法。 二、debug看源码 我们给出下面代码&#xff1a; public void test01() {ArrayList<Integer> list new ArrayList<>();list.add(1);for (int i 2; i < 10; i) {list.add(i…

Java虚拟机(JVM)从入门到实战【上】

Java虚拟机&#xff08;JVM&#xff09;从入门到实战【上】&#xff0c;涵盖类加载&#xff0c;双亲委派机制&#xff0c;垃圾回收器及算法等知识点&#xff0c;全系列6万字。 一、基础篇 P1 Java虚拟机导学课程 P2 初识JVM 什么是JVM Java Virtual Machine 是Java虚拟机。…

Flutter中Future和Stream关系

Future和Stream类是Dart异步编程的核心。 Future 表示一个不会立即完成的计算过程。与普通函数直接返回结果不同的是异步函数返回一个将会包含结果的 Future。该 Future 会在结果准备好时通知调用者。 Stream 是一系列异步事件的序列。其类似于一个异步的 Iterable&#xff0c;…

(三)softmax分类--九五小庞

softmax分类 对数几率回归解决的是二分类的问题&#xff0c;对于多个选项的问题&#xff0c;我们可以使用softmax函数&#xff0c;它是对数几率回归在N个可能不同的值上的推广 softmax各样本分量之和为1&#xff0c;当只有两个类别时&#xff0c;与对数几率回归完全相同 损失…

多个版本的Python如何不冲突?

转载文章&#xff0c;防止忘记或删除 转载于&#xff1a;电脑中存在多个版本的Python如何不冲突&#xff1f; - 知乎 (zhihu.com) 如何安装多版本的Python并与之共存&#xff1f; 如果你的工作涉及到Python多版本之间开发或测试&#xff0c;那么请收藏本文&#xff0c; 如果你…

Jvm之内存泄漏

1 内存溢出 1.1 概念 java.lang.OutOfMemoryError&#xff0c;是指程序在申请内存时&#xff0c;没有足够的内存空间供其使用&#xff0c;出现OutOfMemoryError。产生该错误的原因主要包括&#xff1a;JVM内存过小。程序不严密&#xff0c;产生了过多的垃圾。 程序体现: 内…

CSS 【详解】响应式布局(含 rem 详解)

响应式布局&#xff1a; 同一页面在不同的屏幕上有不同的布局&#xff0c;即一套代码自适应不同的屏幕。 为什么 rem 能用于实现响应式布局&#xff1f; px 绝对长度单位&#xff0c;不同客户端表现都相同&#xff0c;不具有响应式em 相对长度单位&#xff0c;相对于父元素的 f…

【MATLAB源码-第147期】基于matlab的QPSK调制解调在AWGN信道,瑞利信道,莱斯信道理论与实际误码率对比仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 四相位移键控&#xff08;QPSK&#xff0c;Quadrature Phase Shift Keying&#xff09;是一种重要的数字调制技术&#xff0c;它通过改变信号的相位来传输数据。与其他调制技术相比&#xff0c;QPSK在相同的带宽条件下能够传…

【HTML】HTML基础4.2(锚点链接)

目录 解释锚点链接 “公式” 例子 点击回首页 解释锚点链接 在我们浏览网页的时候&#xff0c;总有目录一样的功能&#xff0c;比如 这个时候&#xff0c;只要点击相应目录&#xff0c;就可以直接跳转到相应界面&#xff0c;比如&#xff0c;点击“演职员表” 今天就让我们一…

Leetcode438. 找到字符串中所有字母异位词 -hot100

题目&#xff1a; 代码(首刷看解析 2024年3月2日&#xff09;&#xff1a; 感觉自己这个ac率根本不可能找得到实习 class Solution { public:vector<int> findAnagrams(string s, string p) {int plen p.size(), slen s.size();if (slen < plen) return {};vector…

蓝桥杯备战刷题four(自用)

1.砝码称重 #include <iostream> #include <vector> using namespace std; const int N110; const int M100010; int w[N]; int n; int f[N][M]; int m; int ans; //f[i][j]表示到第i个砝码进行放置时的称得的重量为j的方案数 int main() {cin>>n;for(int i1…

【解决(几乎)任何机器学习问题】:交叉验证

在上⼀章中&#xff0c;我们没有建⽴任何模型。原因很简单&#xff0c;在创建任何⼀种机器学习模型之前&#xff0c;我们必须知道什么是交叉检验&#xff0c;以及如何根据数据集选择最佳交叉检验数据集。 那么&#xff0c;什么是 交叉检验 &#xff0c;我们为什么要关注它&…

HelixToolKit的模型旋转操作

前面加载了模型以后&#xff0c;鼠标拖动和缩放比较好操作&#xff1b;但是旋转似乎没有&#xff0c; 操作了一阵&#xff0c;也不是没有&#xff0c;应该是还不熟悉&#xff1b; 旋转的指示器在右下角&#xff0c;现在U面看到正面&#xff0c; 想看一下模型的背面&#xff0…

2024年最免费的DAW混音编曲FL Studio21.2.3.4004中文破解版下载

FLStudio21.2.3.4044中文破解版完整下载是最好的音乐开发和制作软件也称为水果循环。它是最受欢迎的工作室&#xff0c;因为它包含了一个主要的听觉工作场所。最新fl studio破解版有不同的功能&#xff0c;如它包含图形和音乐音序器&#xff0c;帮助您使完美的配乐在一个美妙的…

powershell常用命令分类

powershell常用命令分为三类&#xff1a;get类、set类、write类。 一 Get类 1.Get-Command &#xff1a; 得到所有PowerShell命令&#xff0c;获取有关 cmdlet 以及有关 Windows PowerShell 命令的其他元素的基本信息。包括Cmdlet、Alias、Function。 2.Get-Process &#xf…

【Java实战项目】SpringBoot + Vue3打造你的在线电子书平台!

今天给大家分享一个基础的Java实战项目&#xff0c;用SpringBoot和Vue3开发一个电子书平台&#xff0c;大家可以尝试做一下这个项目&#xff0c;以此来检验这段时间的学习成果&#xff01;废话不多说&#xff0c;下面正式进入项目&#xff1a; 一、项目介绍 1. 项目简介 在线…