Linux磁盘及读写数据原理/Raid技术/硬软raid及企业案例/磁盘分区环境搭建/格式化磁盘系列-12213字

高薪思维:
怎么才能一直去坚持下去?
1.做这件事情的好处,对自己一直去放大。
2.不做的坏处,并放大
3.学习痛苦?还是去上班(餐饮、外卖痛苦?)
用比学习更痛苦的事情,去对抗学习
不但要学会,要做的最好(思维转换)
当你遇到困难,难以坚持的时候,此时也是其他人很难坚持的时候,撑住你会超越他,8小时内工作最多只能让你不落后,8小时外的努力才可能让你超越他人
我们要能够讲清楚,表达清楚,你认为你懂了和达到面试官要求差太多了,懂对于我们学习远远不够,一定要给别人能够讲清楚,表达清楚,这样才是对一个知识学会的标准!!
态度大于能力:
1.有能力,能找到工作,没有态度做不长久
2.有态度,领导给机会,给你进步时间,可以获得(能力+原本)的态度,领导更会给你机会,超越有能力的人

磁盘内部核心知识及读写数据原理

磁盘及盘品结构:
盘面是有编号的,和磁头编号是一样的

磁头是做径向运动(朝着半径方向运动,直线)
在这里插入图片描述
盘片固定在一个旋转轴上,这个轴即为盘片主轴,所有盘片是平行的,每一个盘片上存储面上有一个磁头,磁头被控制在磁头控制器上,所有磁头都是重叠的(目前有独立的技术),磁头可以沿着半径方向做斜切运动。
由于硬盘是高精密设备,硬盘必须为完全密封状态!
磁头靠近主轴解除表面,它不存放任何数据(启停区)离主轴最远的的地方是0磁道,也是硬盘数据开始的地方。磁头如何找到0磁道位置(0磁道检测器件)
硬盘的读写与扇区,扇面,柱面相关联(这里小编不再写了,属于Linux了解知识即可)

Raid技术

1.什么是Raid?

中文全称:廉价冗余磁盘阵列
英文全称:REdudant Array of INexpensive Disk
简称raid

raid是一种把一块或多块物理磁盘按照不同的技术方式组合起来形成一个磁盘组,在逻辑上看起来就是一块大的磁盘,可以提供比单个物理磁盘更大的存储容量或更高的存储性能,同时又提供不同级别的数据冗余备份的一种技术

2.为什么服务器需要Raid?

服务器运行痛点:
1.单块盘容量不够大
2.磁盘损坏数据丢失
3.磁盘速度不够快

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

什么是raid级别?

把多个物理磁盘通过(不同的技术方式)组成的磁盘阵列,这个不同的技术方式就被称为raid级别

Raid级别:
raid 0 ,1,2,3,4,5,6,7,8,9,0+1(称为raid10),53等

生产环境常用raid级别:0,1,5,10(核心面试点)

在这里插入图片描述

raid实现方式?

RAID的实现方式:
1.独立扩展卡
速度快,支持read级别更多0,1,5,10

2.内置主板集成RAID控制器
速度还可以,缺点支持0,1

3.通过os系统软件实现

在这里插入图片描述

软raid(了解)

更加灵活,兼容性强但软件实现性能差,操作系统损坏数据容易丢失。

Windows、MacOS操作系统下新建的RAID阵列都是软RAID。RAID依赖于CPU和系统资源,其性能可能受到限制,尤其是在高负载和I/O密集型任务下。虽然软raid可以提高写的性能但是,实现性能特别差,一旦操作系统损坏,将会带来大灾难!

硬软raid区别(了解)

实现方式:软RAID(软件),硬RAID(硬件)实现。

成本:软RAID(较低),硬RAID成本(较高)。

性能:硬RAID性能通常优于软RAID,特别是在高负载和I/O密集型任务下。

灵活性:软RAID具有较高的灵活性和兼容性,而硬RAID可能受限于特定的硬件设备和平台。

可靠性:硬RAID通常提供更高的可靠性和稳定性,因为它卸载了RAID功能的处理负担。

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

raid0

在这里插入图片描述
特点:
1.读写性能提高3倍
2.容量是单盘的3倍,没有损失
3.没有冗余
4.web服务,应用服务(集群)
维护稍微麻烦

raid5

在这里插入图片描述
特点:
1.RAID 5 具有和RAID 0 相近的数据读取速度,只是多了奇偶校验信息,写入数据速度比单个磁盘写入操作稍慢。
2.损失一块盘的数据容量
3.可损失一块盘,RAID数据安全保障程度比RAID 1 低而磁盘空间利用率要比raid 1 高

raid10,配数据库服务器主库用raid10,从库raid5
在这里插入图片描述
1.极高的读写效率和较高的数据保护、恢复能力

2.RAID10提供100%的数据冗余

3.RAID 10适用于数据库存储服务器等需要高性能、高容错但对容量要求不大的场合

4.RAID 1和RAID 0标准结合的产物

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

企业案例:

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

Raid选择raid10,磁盘选择:企业级的SSD
配置8块企业的ssd硬盘,每块容量最低为1t,容量为8tb;将这八块硬盘分为4组,每组为2块硬盘;每组内进行raid1镜像,实现数据冗余备份和高可靠性;将这四组镜像数据进行raid0条带化进行提高读写能力;系统将这四组raid 1+0结果整合到一个raid10的存储阵列

磁盘分区知识

磁盘为什么要分区?

磁盘是分成不同的空间,干不同的事情,所以需要分区。
磁盘也可以不分区。
MBR:每一块硬盘上存放磁盘引导程序,引导程序在磁盘开头部分,用于引导系统启动,我们一般不用太关注(安装的时候自动进行安装)

位置磁盘分区表磁盘开始部分:0磁头,0磁道,1扇区(512字节)

512字节:
引导程序446字节(MBR)
磁盘分区表(64字节)4个分区表
结束标记(55AA)
在这里插入图片描述
在这里插入图片描述

  • 分区表64字节,每一个分区进行占用16个字节,最多为4个分区:
  • 这四个分区叫做主分区,如果只划分了1分区使用所有的空间,将无法继划分空间
  • 如果划分了四个分区,但是磁盘空间还有剩余,剩余的空间无法继续使用
  • 扩展分区是用于解决主分区的4个问题,扩展分区无法直接使用,需要在扩展分区下面创建逻辑分区,存放数据

磁盘设备及分区命名知识

在这里插入图片描述
磁盘文件或分区文件放在/dev下面

硬盘命名:

sda
vda
磁盘接口:
sas/sata/scsi接口,硬盘名字以sd开头
虚拟机(kvm)公有云: 硬盘名字以vd开头

第几块磁盘:通过字母a开始类推在这里插入图片描述
第一块磁盘sas接口
/dev/sda

分区命名

分区命名根据分区类型进行命名
如果是主分区或扩展分区分区号是从1-4范围
如果是逻辑分区,逻辑分区的分区号是从5开始

磁盘知识体系比喻说明

第一步 磁盘 房子
第二步 raid技术 多套房子打通
第三步 分区技术(越少越好,互联网公司大并发需求,降低其性能) 打隔断,几居室/卧室/卫生间/厨房
第四步 文件系统 装修风格
第五步 格式化过程 装修过程
第六步 挂载 开门开窗住人使用
第七步 磁盘日常管理 生活中收拾屋子,打扫卫生

58同城二线互联网服务器配置(Raid配置)
I/O型(DB)
cpu :8Corex2 Mem:128G Disks:SAS 600Gx2 RAID1 + intel s3700 800Gx6 RAID5
(sas做系统盘+Intel raid5做数据盘)

环境搭建

添加磁盘
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:last扇区这里不能按回车,否则从前面其实扇区到现在最后扇区全部分配成一个

如果最后没有写入w
在这里插入图片描述
在这里插入图片描述
Command (m for help): p

Device Boot Start End Blocks Id System
/dev/sdb1 2048 43007 20480 83 Linux

**未来这种创建企业中用的不多,用到基本是在开始装系统的时候进行用到
**

fdisk操作的时候,删除键会发现午饭删除现象,使用ctrl+u或ctrl+删除键

多次进行创建
Command (m for help): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): e
Partition number (3,4, default 3): 
First sector (452608-2097151, default 452608): 
Using default value 452608
Last sector, +sectors or +size{K,M,G} (452608-2097151, default 2097151): 
Using default value 2097151
Partition 3 of type Extended and of size 803 MiB is set

Command (m for help): p

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
Disk label type: dos
Disk identifier: 0x8cfb5223

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048       43007       20480   83  Linux
/dev/sdb2           43008      452607      204800   83  Linux
/dev/sdb3          452608     2097151      822272    5  Extended

Command (m for help): n
Partition type:
   p   primary (2 primary, 1 extended, 1 free)
   l   logical (numbered from 5)
Select (default p): e
Invalid partition type `e'

Command (m for help): n
Partition type:
   p   primary (2 primary, 1 extended, 1 free)
   l   logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (454656-2097151, default 454656): 
Using default value 454656
Last sector, +sectors or +size{K,M,G} (454656-2097151, default 2097151): +200M
Partition 5 of type Linux and of size 200 MiB is set

Command (m for help): p

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
Disk label type: dos
Disk identifier: 0x8cfb5223

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048       43007       20480   83  Linux
/dev/sdb2           43008      452607      204800   83  Linux
/dev/sdb3          452608     2097151      822272    5  Extended
/dev/sdb5          454656      864255      204800   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@calms ~]# fdisk -l |grep ‘/dev/sd’
Disk /dev/sdc: 1073 MB, 1073741824 bytes, 2097152 sectors
Disk /dev/sda: 26.8 GB, 26843545600 bytes, 52428800 sectors
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 4196351 1048576 82 Linux swap / Solaris
/dev/sda3 4196352 52428799 24116224 83 Linux
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors

案例 sdb硬盘创建20mb的分区

在这里插入图片描述

p输出磁盘分区信息
n创建分区
d删除分区
w 保存并退出
q 退出不保存
在这里插入图片描述

[root@wulin ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2
在这里插入图片描述

查看UUID
[root@calms ~]# blkid
/dev/sr0: UUID=“2020-11-04-11-36-43-00” LABEL=“CentOS 7 x86_64” TYPE=“iso9660” PTTYPE=“dos”
/dev/sda1: UUID=“8e261f31-203b-47e1-a6d2-444c71c4a1d7” TYPE=“xfs”
/dev/sda2: UUID=“6862d0c8-722f-4780-97c8-757e43459f0b” TYPE=“swap”
/dev/sda3: UUID=“9e46ffd2-c46d-4691-aa7f-e7f349d1c8f4” TYPE=“xfs”

可以使用UUID代表/dev/sda1这样的分区
[root@calms ~]# egrep -v “^ #|^$” /etc/fstab # /etc/fstab
Accessible filesystems, by reference, are maintained under ‘/dev/disk’
See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

UUID=9e46ffd2-c46d-4691-aa7f-e7f349d1c8f4 / xfs defaults 0 0
UUID=8e261f31-203b-47e1-a6d2-444c71c4a1d7 /boot xfs defaults 0 0
UUID=6862d0c8-722f-4780-97c8-757e43459f0b swap swap defaults 0 0

磁盘分区类型和各自特点

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

DOS分区表分区类型:
1)主分区(Primary)

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

想分超过4个分区,怎么办?

还需要扩展分区和逻辑分区

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

磁盘分区要点总结

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

如果要将一块大磁盘暂时分成四个分区,同时还希望有其它的空间可以让未来需要的时候再进行分区,那么该如何分区?

3P+1E(1L)
1P+1E(3L)
2P+1E(2L)

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

3P+1E(3L):
sda1,sda2,sda3,sda5,sda6,sda7
P+1E(5L):
sda1,sda5,sda6,sda7,sda8,sda9
2P+1E(4L):
sda1,sda2,sda5,sda6,sda7,sda8
(实践)

磁盘分区原理

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

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

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

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

fdisk –1|grep sdb
echo “- - -”> /sys/class/scsi_host/host
echo “- - -”> /sys/class/scsi_host/host1/scan
fdisk –1|grep sdb
echo “- - -”> /sys/class/scsi_host/host2/scan
fdisk –1|grep sdb
磁盘 /dev/sdb:1073 MB,1073741824字节,2097152个扇区

2)
fdisk 分区命令
-l 查看分区信息
在这里插入图片描述

[root@wulin ~]# fdisk /dev/sda #开始分区

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 #保存并退出
在这里插入图片描述

假如有一块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@calms ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 25G 0 disk
|-sda1 8:1 0 1G 0 part /boot
|-sda2 8:2 0 1G 0 part [SWAP]
`-sda3 8:3 0 23G 0 part /
sr0 11:0 1 4.4G 0 rom

[root@calms ~]# ls /dev/sd*
dev/sda /dev/sda1 /dev/sda2 /dev/sdb
保存以后:
[root@calms ~]# ls /dev/sd*
/dev/sda /dev/sda2 /dev/sdb1 /dev/sdb5 /dev/sdb7 /dev/sdb9

[root@calms ~]# 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@calms ~]# partprobe /dev/sdb

添加一块小于2tb的磁盘分区,步骤:

1.给虚拟机添加一块新的硬盘
2.使用fdisk进行分区
fdisk /dev/sdb
partprobe /dev/sdb
3.使用mkfs 进行格式化
mkfs.xfs /dev/
4.使用mount进行挂载
mount /dev/sdb1 /mnt

格式化磁盘(给磁盘分区进行装修,给磁盘分区创建规则,一定量的inode、block)

*mkfs格式化磁盘的实质:
1.创建文件系统(centos7是xfs,centos6是ext4)
2.文件系统类似于将房子进行装修风格。组织文件目录的方式

#mkfs选项
(从来不用)
-b 设定数据区块(block),占用空间大小,目前支持1024,2048,4096bytes每个块,默认4k

–t 用来指定什么类型的文件系统,可以是ext4,xfs –i 设定iNode的大小,默认256字节 –N
设定iNode数量,防止iNode数量不够导致磁盘不足
在这里插入图片描述
重复格式化错误提示:(磁盘分区已经格式化)
mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.(强制使用mkfs.xxxx -f)

格式化整个磁盘
mkfs.ext4 /dev/sdb

格式化磁盘分区
mkfs.xfs /dev/sda1

fdisk –l
blkid
ls /dev/sd*
格式化mkfs xfs /dev/sdb1或mkfs –t xfs /dev/sdb1
格式化之后,使用不了,需要进行挂载
格式化后相当于一个房子,没有门,我们不能进行使用,这个时候需要开一个门方便使用(挂载/mount)
mount /dev/sda1 /mnt
cd /mnt
touch wulin.txt
ls

大于2t磁盘分区工具 gdisk(类似于fdisk) parted

cd mnt
which gdisk
在这里插入图片描述

yum provides gdisk(查看这个命令属于那个包)
在这里插入图片描述

安装yum install gdisk –y(#安装gdisk工具)

VMware添加一块磁盘/dev/sdc(不重启生效)
fdisk –1|grep sdb
echo “- - -”> /sys/class/scsi_host/host2/scanfdisk –1|grep sdb磁盘 /dev/sdb:1073 MB,1073741824字节,2097152个扇区
开始分区:
gdisk /dev/sda
在这里插入图片描述

ls /dev/sd*查看是否生效
在第二个窗口输入y

会第一个窗口查看是否生效
显示已经生效

格式化第一个
mkfs –t ext4 /dev/sdc1
mkdir /data
mount /dev/sdc1 /data(临时挂载成功)
查看:cat /proc/mounts
grep sd /proc/mounts

也可以用df –h查看
df –h|grep sd

这篇小编先写到这里了,更多内容请关注专栏!!!

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

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

相关文章

Java后端中如何随意接收参数

目录 一、参数名相同 二、参数名不同&#xff0c;使用RequestParam注解 大概访问流程是&#xff1a;先访问test控制器&#xff0c;test控制器跳转到index页面&#xff08;此时index页面收到了test控制器传来的数据&#xff09;&#xff0c;然后在index页面跳转到t5控制器&…

【YOLOv9】实战二:手把手教你使用TensorRT实现YOLOv9实时目标检测(含源码)

‍‍&#x1f3e1;博客主页&#xff1a; virobotics(仪酷智能)&#xff1a;LabVIEW深度学习、人工智能博主 &#x1f384;所属专栏&#xff1a;『LabVIEW深度学习实战』 &#x1f4d1;上期文章&#xff1a;『【YOLOv9】实战一&#xff1a;在 Windows 上使用LabVIEW OpenVINO工具…

Java代码基础算法练习-分段函数求值-2024.04.21

任务描述&#xff1a; 有一个函数&#xff0c;写一段程序&#xff0c;输入x&#xff0c;输出y。 任务要求&#xff1a; 代码示例&#xff1a; package April_2024;import java.util.Scanner;public class a240421 {public static void main(String[] args) {Scanner sc new S…

Print Conductor 文档批量打印工具 v9.0.2312

网盘下载 Print Conductor 是 Windows 上一款功能强大的文档批量打印工具&#xff0c;通过该软件可以快速的帮用户批量处理打印PDF文件、协议、文档、图纸、演示文稿、文本文件等&#xff0c;完美的支持PDF、DOC、JPG、PNG、SNP、PSD、MSG、WRI、WPS、RTF、TXT、XLS、PPT、PPS、…

spring高级篇(三)

1、Spring选择代理 1.1、Aspect和Advisor 在Spring框架中&#xff0c;"Aspect" 和 "Advisor" 是两个关键的概念&#xff0c;它们都与AOP&#xff08;面向切面编程&#xff09;密切相关&#xff1a; 如果要在Spring中定义一个Aop类&#xff0c;通常会&…

山与路远程控制 一个基于electron和golang实现的远控软件

山与路远程控制 &#x1f3a5;项目演示地址 还在制作… ♻️项目基本介绍 山与路远程控制是基于electron(vue3)和golang实现的远程控制软件(项目界面主要模仿向日葵远程软件,如有侵权请告知),代码可能有点臃肿毕竟只花了一周左右写的无聊项目,如果对其感兴趣的大佬可以fork自…

【Qt 学习笔记】Qt常用控件 | 显示类控件 | Label的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 显示类控件 | Label的使用及说明 文章编号&#xff1a;Q…

根据表格该列数据的长度动态变化该列的宽度;

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、代码前言 在使用elementui的表格将数据展示出来时,我们想根据表格该列数据的长度动态变化该列的宽度; 1.看了一下elementui文档有一个 width 的属性,可用它来修改对应列。 2.那么我们需要拿到该列的所有数据去比较…

Go栈内存管理源码解读

基本介绍 栈内存一般是由Go编译器自动分配和释放&#xff0c;其中存储着函数的入参和局部变量&#xff0c;这些参数和变量随着函数调用而创建&#xff0c;当调用结束后也会随之被回收。通常开发者不需要关注内存是分配在堆上还是栈上&#xff0c;这部分由编译器在编译阶段通过…

使用Nexus搭建npm私服库

优质博文&#xff1a;IT-BLOG-CN 【1】下载nexus http://www.sonatype.com/download-oss-sonatype解压到本地即可&#xff1b; 【2】打开nexus-3.2.0-01-win64\nexus-3.2.0-01\bin&#xff1b;打开cmd&#xff08;必须使用cmd&#xff09; 执行nexus.exe /run&#xff1b;需要使…

数据结构 之 哈希表

&#x1f389;欢迎大家观看AUGENSTERN_dc的文章(o゜▽゜)o☆✨✨ &#x1f389;感谢各位读者在百忙之中抽出时间来垂阅我的文章&#xff0c;我会尽我所能向的大家分享我的知识和经验&#x1f4d6; &#x1f389;希望我们在一篇篇的文章中能够共同进步&#xff01;&#xff01;&…

爆炸之linux-nacos2.0系列集群安装部署

一、环境配置 1、新建磁盘分区 fdisk /dev/vdb 2、创建文件系统 mkfs.xfs /dev/vdb13、创建挂载点&#xff1a; 在 / 目录下创建一个新的目录作为挂载点。/afc 目录 mkdir /afc4、挂载磁盘&#xff1a; 使用 mount 命令将磁盘挂载到新创建的目录。 mount /dev/vdb /afc5、…

2022年新华三杯决赛题目

2022年新华三杯决赛题目 拓扑图 请考生根据以上拓扑,自行在 HCL 中创建设备。 注意: 本拓扑图中的交换机与防火墙,所显示的接口标示比实际设备中的少了一位。如图中的 GE_0/1, 实际是 GE1/0/1。 配置需求 本网络模拟一个大型企业网络,需要使用 BGP/MPLS VPN 技术来隔离不同的 …

2024_GAMES101作业环境配置Mac(intel)_VSCode_Clion

目录 VSCodeClionCMakeList.txt VSCode brew install cmake 更换下载源为阿里云下载 opencv&#xff0c;不然会很慢 cd "$(brew --repo)" git remote -v cd "$(brew --repo)" git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git…

一举颠覆Transformer!最新Mamba结合方案刷新多个SOTA,单张GPU即可处理140k

还记得前段时间爆火的Jamba吗&#xff1f; Jamba是世界上第一个生产级的Mamba大模型&#xff0c;它将基于结构化状态空间模型 (SSM) 的 Mamba 模型与 transformer 架构相结合&#xff0c;取两种架构之长&#xff0c;达到模型质量和效率兼得的效果。 在吞吐量和效率等关键衡量指…

串联滞后校正及matlab实现

syms b_1 Z[]; P[0,-10,-5]; K1500; G_0zpk(Z,P,K); %G_0为校正前系统开环传递函数 [num,den]tfdata(G_0); %求解b&#xff0c;T [Gm,Pm,wg_0,wc_0]margin(G_0); %Pm为校正前的幅值裕度, gamma60; %确定校正后的相角裕度 Phi_c-6; %校正后的截止频率下Gc(s)的相角&#xff0c;一…

可视化看板有那么多应用场景,该如何快速搭建?可视化工具该如何选择?

在当今的信息化时代&#xff0c;数据已经成为了现代决策的核心。无论是企业战略规划、运营管理&#xff0c;还是个人生活决策&#xff0c;数据都扮演着至关重要的角色。随着数据分析技术和工具的不断进步&#xff0c;数据在决策中的作用将变得更加突出&#xff0c;对组织和个人…

IDEA中Docker相关操作的使用教程

一、引言 Docker作为当前最流行的容器化技术&#xff0c;极大地简化了应用的部署和管理。而IntelliJ IDEA作为一款强大的集成开发环境&#xff0c;也提供了对Docker的集成支持。本文将介绍如何在IDEA中配置和使用Docker&#xff0c;包括远程访问配置、服务连接、Dockerfile编写…

mysql基础4——增删改查表中的数据

添加数据 1&#xff09;插入数据记录 insert into demo.test1 (barcode,goodsname,price) values (0001, book, 3); 2&#xff09;插入查询结果 insert into table1 &#xff08;字段名&#xff09; select 字段名或值 from table2 where condition; //将表2中查询到的某条…