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

复习之linux高级存储管理

一、lvm----逻辑卷管理

1.lvm定义

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。

逻辑卷管理器(LogicalVolumeManager)本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,如图所示。它可以将几块磁盘(物理卷,PhysicalVolume)组合起来形成一个存储池或者卷组(VolumeGroup)。LVM可以每次从卷组中划分出不同大小的逻辑卷(LogicalVolume)创建新的逻辑设备。底层的原始的磁盘不再由内核直接控制,而由LVM层来控制。对于上层应用来说卷组替代了磁盘块成为数据存储的基本单元。LVM管理着所有物理卷的物理盘区,维持着逻辑盘区和物理盘区之间的映射。LVM逻辑设备向上层应用提供了和物理磁盘相同的功能,如文件系统的创建和数据的访问等。但LVM逻辑设备不受物理约束的限制,逻辑卷不必是连续的空间,它可以跨越许多物理卷,并且可以在任何时候任意的调整大小。相比物理磁盘来说,更易于磁盘空间的管理。

  • pv  :物理卷,被处理过的物理分区
  • pe:物理扩展,设定存储最小单元
  • vg:物理卷组,捆绑pv到一个组中
  • lv:逻辑卷 分配最终的使用设备

2.实验素材

  • 建立lvm分区
  • 新建目录
  • 建立监控

建立lvm分区:

首先建立分区,然后设置标签--8e 即lvm分区

建立成功后记得wq保存! 以及同步分区表!

实验建立监控查看:watch  -n   1 "pvs;echo ====;vgs;echo =====;lvs;echo =====;df -h /westosdir"

新建目录: /westosdir/

 3. lvm设备建立

(1)创建pv---物理卷

# pvcreate    /dev/vdb3

(2)创建vg---物理卷组

-s设定pe大小位2M

# vgcreate   -s   2M   westos_vg    /dev/vdb3

(3)创建lv---逻辑卷

-L指定大小   -n指定名称

# lvcreate   -L   100M   -n   westos_lv   westos_vg

(4)格式化--创建文件系统

# mkfs.xfs    /dev/westos_vg/westos_lv

(5)挂载设备至目录

# mount /dev/westos_vg/westos_lv     /westosdir/

 监控界面如下:

 4. lvm拉伸

(1)vg容量充足

vg容量为1G.容量充足直接拉伸!

# lvextend   -L   200M   /dev/westos_vg/westos_lv:拉伸到200M

# xfs_growfs   /dev/westos_vg/westos_lv:拉伸文件系统,否则无法使用

 (2)vg容量不足

  •  pvcreate   /dev/vdb5:创建新pv
  • vgextend   westos_vg   /dev/vdb5:扩展vg容量
  • lvextend   -L   1500M   /dev/westos_vg/westos_lv :拉伸lvm
  • xfs_growfs    /dev/westos_vg/westos_lv:格式化文件系统

想要拉伸lvm为1.5G,发现容量不够

 此时进入磁盘,寻找lvm分区来创建新pv

 扩展原来的vg容量,然后进行lvm拉伸,格式化文件系统

 最后查看监控,该设备容量拉伸成功!

 5.lvm缩减

  • 卸载设备:umount   /westosdir
  • 扫描文件大小,看看缩减大小是否合适:e2fsck -f /dev/westos_vg/westos_lv
  • 缩减文件系统: resize2fs /dev/westos_vg/westos_lv 500M
  • 缩减lvm:lvreduce   -L   500M    /dev/westos_vg/westos_lv
  • 重新挂载设备:mount     /dev/westos_vg/westos_lv /westosdir/

(1)前提

缩减lvm设备的前提是:文件系统是ext或者ext4,xfs文件系统不能缩减!

由于之前实验我们使用的是xfs文件系统,因此本节首先给lvm设备更换文件系统!

# mkfs.ext4     /dev/westos_vg/westos_lv:设定文件系统为ext4

 (2)卸载设备+扫描

扫描设备的文件大小,防止lvm缩减太小不可用!

 (3)缩减文件系统+lvm,重新挂载设备

 挂载成功后查看,lvm设备已经成功缩减到500M

 6. vg缩减

  • vgreduce   westos_vg   /dev/vdb3 :把分区3从该vg中缩减
  • pvmove  /dev/vdb3 :删除该pv

假如想缩减3,首先将3的东西转移到5

 pvmove   /dev/vdb3   /dev/vdb5

然后直接将pv3从vg中减去

最后彻底删除pv3

7.lvm快照

LVM 机制还提供了对 LV 做快照的功能,也就是说可以给⽂件系统做⼀个备份,这也是设计 LVM 快照的主要⽬的。快照可以用于记录系统当前状态,以便后续进行回滚操作回到此状态,或将这些状态用于系统备份。这⽐传统的备份技术的效率要⾼很多。创建快照时不⽤停⽌服务,就可以对数据进⾏备份。

  • 创建快照:快照名:westos_lvbackup  原始:/dev/westos_vg/westos_lv
  • 重新挂载即可生效
  • [root@westosa ~]# lvcreate -L 50M -n westos_lvbackup -s /dev/westos_vg/westos_lv Logical volume "westos_lvbackup" created.
    [root@westosa ~]# mount /dev/westos_vg/westos_lvbackup /westosdir/
    

    =================================实验==================================

接上节,建立的lvm设备挂载在/westosdir目录上!

此时在目录中建立10个重要的文件!由于设备挂载在该目录上,因此该设备也有该数据!

 创建该设备的快照,可记录下此时的系统状态!便于备份!

将快照挂载在该目录。

[root@westosa ~]# umount /westosdir 
[root@westosa ~]# lvcreate -L 50M -n westos_lvbackup -s /dev/westos_vg/westos_lv Logical volume "westos_lvbackup" created.
[root@westosa ~]# mount /dev/westos_vg/westos_lvbackup /westosdir/
[root@westosa ~]# df
Filesystem                            1K-blocks    Used Available Use% Mounted on
devtmpfs                                 391196       0    391196   0% /dev
tmpfs                                    419040       0    419040   0% /dev/shm
tmpfs                                    419040    6872    412168   2% /run
tmpfs                                    419040       0    419040   0% /sys/fs/cgroup
/dev/vda3                               9450496 4344352   5106144  46% /
/dev/vda1                                506528  218856    287672  44% /boot
tmpfs                                     83808    1180     82628   2% /run/user/42
tmpfs                                     83808      28     83780   1% /run/user/0
/dev/mapper/westos_vg-westos_lvbackup     96928    6068     90860   7% /westosdir
[root@westosa ~]# ls /westosdir/
westosfile1   westosfile2  westosfile4  westosfile6  westosfile8
westosfile10  westosfile3  westosfile5  westosfile7  westosfile9

如果不小心删除了10个重要的文件,怎么办?

因为有快照的存在,可以恢复!

首先卸载设备,删除快照,重新建立快照,再次挂载至该目录!

发现文件仍然存在!

[root@westosa ~]# umount /westosdir 
[root@westosa ~]# lvremove /dev/westos_vg/westos_lvbackup 
Do you really want to remove active logical volume westos_vg/westos_lvbackup? [y/n]: yLogical volume "westos_lvbackup" successfully removed
[root@westosa ~]# lvcreate -L 50M -n westos_lvbackup -s /dev/westos_vg/westos_lvLogical volume "westos_lvbackup" created.
[root@westosa ~]# mount /dev/westos_vg/westos_lvbackup /westosdir/
[root@westosa ~]# ls /westosdir/
westosfile1   westosfile2  westosfile4  westosfile6  westosfile8
westosfile10  westosfile3  westosfile5  westosfile7  westosfile9

8. lvm设备删除

  • 卸载设备
  • 删除快照
  • 删除lv设备
  • 删除vg
  • 删除pv
[root@westosa ~]# umount /westosdir 
[root@westosa ~]# lvremove /dev/westos_vg/westos_lvbackup 
Do you really want to remove active logical volume westos_vg/westos_lvbackup? [y/n]: yLogical volume "westos_lvbackup" successfully removed
[root@westosa ~]# lvremove /dev/westos_vg/westos_lv
Do you really want to remove active logical volume westos_vg/westos_lv? [y/n]: yLogical volume "westos_lv" successfully removed
[root@westosa ~]# vgremove westos_vg Volume group "westos_vg" successfully removed
[root@westosa ~]# pvremove /dev/vdb3 Labels on physical volume "/dev/vdb3" successfully wiped.

删除成功!查看监控!

 二、vdo(Virtual Data Optimize)----虚拟数据优化器

VDO是一个内核模块,目的是通过压缩和优化重复数据来节省磁盘空间,从而降低数据中心的成本。原理主要是压缩和优化重复数据,优化重复数据就是硬盘里拷贝来相同的数据,以前要占多份空间,现在只需要1份空间就可以了。

1. vdo的创建及使用

  • 前提:vdo必须要用没使用过的硬盘

ps:在创建新硬盘时空间不足,在虚拟机管理界面把其他硬盘删除也不行!!

解决方法:进入主机的硬盘存放地址,删除不用的硬盘!!

983  cd /var/lib/libvirt/images/984  ls985  rm -fr aa.qcow2 qq.qcow2 westosa-2.qcow2 westosa-4.qcow2 bb.qcow2 westosa-1.qcow2 westosa-3.qcow2 westosa-5.qcow2 westos.qcow2

删除后添加新硬盘,发现空间足够了!

  • vdo的安装
  • vdo的创建: vdo create --name=westosvdo --device=/dev/vdb
[root@westosa ~]# dnf install vdo -y
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
AppStream                                       169 MB/s | 5.8 MB     00:00    
BaseOS                                          144 MB/s | 2.3 MB     00:00    
Package vdo-6.2.2.117-13.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@westosa ~]# vdo create --name=westosvdo --device=/dev/vdb
Creating VDO westosvdo
vdo: ERROR - Not enough available memory in system for index requirement of 256M

vdo的创建出现问题,提示内存不足!!!

只需要增加虚拟机的物理内存即可!

 增加后再次创建vdo!成功!

[root@westosa ~]# dnf install vdo -y
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:05:08 ago on Sun 30 Jul 2023 02:56:24 PM CST.
Package vdo-6.2.2.117-13.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@westosa ~]# vdo create --name=westosvdo --device=/dev/vdb
Creating VDO westosvdoLogical blocks defaulted to 1569686 blocks.The VDO volume can address 6 GB in 3 data slabs, each 2 GB.It can grow to address at most 16 TB of physical storage in 8192 slabs.If a larger maximum size might be needed, use bigger slabs.
Starting VDO westosvdo
Starting compression on VDO westosvdo
VDO instance 0 volume is ready at /dev/mapper/westosvdo
  • 查看vdo的功能

数据压缩和重复检测功能均开启!

[root@westosa ~]# vdo status --name=westosvdo 
VDO status:Date: '2023-07-30 15:06:08+08:00'Node: westosa.org
Kernel module:Loaded: trueName: kvdoVersion information:kvdo version: 6.2.2.117
Configuration:File: /etc/vdoconf.ymlLast modified: '2023-07-30 15:01:44'
VDOs:westosvdo:Acknowledgement threads: 1Activate: enabledBio rotation interval: 64Bio submission threads: 4Block map cache size: 128MBlock map period: 16380Block size: 4096CPU-work threads: 2Compression: enabledConfigured write policy: autoDeduplication: enabledDevice mapper status: 0 12557488 vdo /dev/vdb normal - online online 1049638 2621440Emulate 512 byte: disabledHash zone threads: 1

  •  vdo格式化:文件系统的建立
  • 挂载vdo设备,可以使用拉!
[root@westosa ~]# mkfs.xfs /dev/mapper/westosvdo 
meta-data=/dev/mapper/westosvdo  isize=512    agcount=4, agsize=392422 blks=                       sectsz=4096  attr=2, projid32bit=1=                       crc=1        finobt=1, sparse=1, rmapbt=0=                       reflink=1
data     =                       bsize=4096   blocks=1569686, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@westosa ~]# mkdir /westosdir
[root@westosa ~]# mount /dev/mapper/westosvdo /westosdir/
[root@westosa ~]# df
Filesystem            1K-blocks    Used Available Use% Mounted on
devtmpfs                 906060       0    906060   0% /dev
tmpfs                    935132       0    935132   0% /dev/shm
tmpfs                    935132    9784    925348   2% /run
tmpfs                    935132       0    935132   0% /sys/fs/cgroup
/dev/mapper/rhel-root   8374272 4331900   4042372  52% /
/dev/vda1               1038336  234160    804176  23% /boot
tmpfs                    187024    1180    185844   1% /run/user/42
tmpfs                    187024      24    187000   1% /run/user/0
/dev/mapper/westosvdo   6268504   76808   6191696   2% /westosdir

2.vdo的优化重复数据功能测试

  • 建立监控:查看测试结果
[root@westosa ~]# vdostats --human-readable 
Device                    Size      Used Available Use% Space saving%
/dev/mapper/westosvdo     10.0G      4.0G      6.0G  40%           98%
[root@westosa ~]# watch -n 1 vdostats --human-readable 

监控界面如下:

  • 实验素材:将主机大小为797M的截图发给虚拟机的/iso目录

  •  重复数据检测:将/iso的数据复制2次到/westsodir目录,发现之占用了一份空间!

因为此时vdo设备挂载在该目录上!

[root@westosa westosdir]# df
Filesystem            1K-blocks    Used Available Use% Mounted on
devtmpfs                 906060       0    906060   0% /dev
tmpfs                    935132       0    935132   0% /dev/shm
tmpfs                    935132    9784    925348   2% /run
tmpfs                    935132       0    935132   0% /sys/fs/cgroup
/dev/mapper/rhel-root   8374272 5149108   3225164  62% /
/dev/vda1               1038336  234160    804176  23% /boot
tmpfs                    187024    1180    185844   1% /run/user/42
tmpfs                    187024      24    187000   1% /run/user/0
/dev/mapper/westosvdo   6268504   76808   6191696   2% /westosdir
[root@westosa westosdir]# cp -r /iso/ /westosdir/
[root@westosa westosdir]# ls
iso
[root@westosa westosdir]# cp -r /iso/ /westosdir/iso-1
[root@westosa westosdir]# ls
iso  iso-1
[root@westosa westosdir]# du -h *
797M	iso
797M	iso-1

查看监控,两份内容一样的数据只占用了一份空间!!这就是vdo的重复数据优化功能!!

 3. vdo设备开机自动挂载

  • 编辑/etc/fstab文件,注意,需要添加x-systemd.requires=vdo.service

 利用man  vdo命令查看模板

 重启虚拟机后,该设备自动挂载!!

 5. 删除vdo设备

  • 卸载设备
  • 停止设备,ps:停止后还可以打开
  • 删除设备
[root@westosa ~]# umount /westosdir 
[root@westosa ~]# df
Filesystem            1K-blocks    Used Available Use% Mounted on
devtmpfs                 906232       0    906232   0% /dev
tmpfs                    935300       0    935300   0% /dev/shm
tmpfs                    935300    9428    925872   2% /run
tmpfs                    935300       0    935300   0% /sys/fs/cgroup
/dev/mapper/rhel-root   8374272 5149588   3224684  62% /
/dev/vda1               1038336  234460    803876  23% /boot
tmpfs                    187060    1180    185880   1% /run/user/42
tmpfs                    187060       4    187056   1% /run/user/0
[root@westosa ~]# vdo stop --name westosvdo 
Stopping VDO westosvdo
[root@westosa ~]# vdo remove --name westosvdo 
Removing VDO westosvdo
Stopping VDO westosvdo

删除设备后,该vdo设备删除成功!

  • 打开设备
[root@westosa ~]# vdo stop --name westosvdo 
Stopping VDO westosvdo
[root@westosa ~]# vdo start --name westosvdo 
Starting VDO westosvdo
Starting compression on VDO westosvdo
VDO instance 1 volume is ready at /dev/mapper/westosvdo
[root@westosa ~]# df
Filesystem            1K-blocks    Used Available Use% Mounted on
devtmpfs                 906232       0    906232   0% /dev
tmpfs                    935300       0    935300   0% /dev/shm
tmpfs                    935300    9432    925868   2% /run
tmpfs                    935300       0    935300   0% /sys/fs/cgroup
/dev/mapper/rhel-root   8374272 5149608   3224664  62% /
/dev/vda1               1038336  234460    803876  23% /boot
tmpfs                    187060    1180    185880   1% /run/user/42
tmpfs                    187060       4    187056   1% /run/user/0
/dev/mapper/westosvdo   6268504 1711180   4557324  28% /westosdir

注意:打开设备后,该设备自动挂载!记得删除/etc/fstab里的自动挂载语句!

相关文章:

复习之linux高级存储管理

一、lvm----逻辑卷管理 1.lvm定义 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。 逻辑卷管理器(LogicalVolumeManager)本质上是一个虚拟设备驱动,是在内核中块设备和物理设备…...

HuggingGPT Solving AI Tasks with ChatGPT and its Friends in Hugging Face

总述 HuggingGPT 让LLM发挥向路由器一样的作用,让LLM来选择调用那个专业的模型来执行任务。HuggingGPT搭建LLM和专业AI模型的桥梁。Language is a generic interface for LLMs to connect AI models 四个阶段 Task Planning: 将复杂的任务分解。但是这里…...

java工程重写jar包中class类覆盖问题

结论:直接在程序中复写jar中的类即可 原因:一般我java工程是运行在tomcat容器中,tomcat容易在加载我们工程类和jar包是的优先级为: 我们工程的class 先于 我们工程lib下的jar 重复的类只加载一次,加载我们复写后的类后…...

Mybatis基于注解与XML开发

文章目录 1 关于SpringBoot2 关于MyBatis2.1 MyBatis概述2.2 MyBatis核心思想2.3 MyBatis使用流程3 MyBatis配置SQL方式3.1 基于注解方式3.1.1 说明3.1.2 使用流程3.1.3 常用注解 3.2 基于XML方式3.2.1 相比注解优势3.2.2 使用流程3.2.3 常用标签 1 关于SpringBoot SpringBoot…...

数字化转型导师坚鹏:数字化时代扩大内需的8大具体建议

在日新月异的数字化时代、复杂多变的国际化环境下,扩大内需成为推动经济发展的国家战略,如何真正地扩大内需?结合本人15年的管理咨询经验及目前实际情况的深入研究,提出以下8大具体建议: 1、制定国民收入倍增计划。结…...

M1/M2 通过VM Fusion安装Win11 ARM,解决联网和文件传输

前言 最近新入了Macmini M2,但是以前的老电脑的虚拟机运行不起来了。😅,实际上用过K8S的时候,会发现部分镜像也跑不起来,X86的架构和ARM实际上还是有很多隐形兼容问题。所以只能重新安装ARM Win11,幸好微软…...

Linux中显示系统正在运行的进程的命令

2023年7月29日,周六上午 在Linux中,ps命令用于显示当前系统中正在运行的进程, ps应该是processes snapshot(进程快照)的缩写。 以下是ps命令的常见用法和示例: 显示当前用户的所有进程:ps 显示…...

vite中安装less

使用vite创建的项目,默认是没有安装less的 如果直接在style中书写less 会报下图错误: 解决方案: npm install --save less 在package.json中查看是否安装成功 安装完成刷新页面,问题解决...

Aduino中eps环境搭建

这里只记录Arduino2.0以后版本:如果有外网环境,那么可以轻松搜到ESP32开发板环境并安装,如果没有,那就见下面操作: 进入首选项,将esp8266的国内镜像地址填入,然后保存,在开发板中查…...

python——案例二 求两个数的和

#案例二 求两个数的和 num1input(请输入第一个数字:) num2input(请输入第二个数字:) sumfloat(num1)float(num2) #计算公式 print(sum) #显示结果 输入num11、num22得到结果sum3...

一文了解 Android 车机如何处理中控的旋钮输入?

前言 上篇文章《从实体按键看 Android 车载的自定义事件机制》带大家了解了 Android 车机支持自定义输入的机制 CustomInputService。事实上,除了支持自定义事件,对于中控上常见的音量控制、焦点控制的旋钮事件,Android 车机也是支持的。 那…...

小红书推广 方法总结

大家好,我是网媒智星,今天跟大家分享一下小红书的推广方法和经验。 一、平台简介 1、什么是小红书? 小红书是一个消费决策/生活方式平台,用户可以通过图片、文案、视频等方式分享美好生活。 2、用户画像 - 2亿月活跃…...

通讯录的实现(超详细)——C语言(进阶)

目录 一、创建联系人信息(结构体) 二、创建通讯录(结构体) 三、define定义常量 四、打印通讯录菜单 五、枚举菜单选项 六、初始化通讯录 七、实现通讯的的功能 7.1 增加加联系人 7.2 显示所有联系人的信息 ​7.3 单独查…...

3D 渲染技巧-如何创建高质量写实渲染?

掌握创建高质量建筑渲染和任何 3D 渲染的艺术是一项复杂且需要技巧的工作,通常需要多年的经验和实践。实现逼真的结果需要仔细考虑众多因素,并避免可能导致缺乏真实性的假渲染效果的常见错误。 避免常见错误 - 提升渲染游戏的技巧 在追求创建真正逼真的…...

fastadmin采坑之获取当前登录admin用户的信息

在controller层里想要获取当前登录admin用户的信息 print_r($this->auth->getUserInfo());但是有个问题 我在fa_admin表中添加了新的字段,这个方法获取不到新字段的数值,具体也没有去研究估计跟方法有关 然后我直接用模型去获取数据,简…...

【Spring AOP + 自定义注解 + 动态数据源 实现主从库切换读写分离】—— 案例实战

💧 S p r i n g A O P 主从数据源切换 读写分离 自定义注解案例实战! \color{#FF1493}{Spring AOP 主从数据源切换 读写分离 自定义注解 案例实战!} SpringAOP主从数据源切换读写分离自定义注解案例实战!💧 …...

【LeetCode每日一题合集】2023.7.24-2023.7.30

文章目录 771. 宝石与石头代码1——暴力代码2——位运算集合⭐(英文字母的long集合表示) 2208. 将数组和减半的最少操作次数(贪心 优先队列)2569. 更新数组后处理求和查询⭐⭐⭐⭐⭐(线段树)TODO2500. 删除…...

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(14)-Fiddler断点(breakpoints)实战,篡改或伪造数据

1.简介 上一篇主要就讲解和分享Fiddler断点的理论和操作,今天宏哥就用具体例子,将上一篇中的理论知识实践一下。而且在实际测试过程中,有时候需要修改请求或响应数据,或者直接模拟服务器响应,此时可以使用fiddler进行…...

ELK + Fliebeat + Kafka日志系统

参考: ELKFilebeatKafka分布式日志管理平台搭建_51CTO博客_elk 搭建 ELK 日志分析系统概述及部署(上)-阿里云开发者社区 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。…...

Scaling Instruction-Finetuned Language Models

Paper name Scaling Instruction-Finetuned Language Models Paper Reading Note Paper URL: https://arxiv.org/pdf/2210.11416.pdf TL;DR 2022 年谷歌出的文章,对指令微调的影响因素进行分析,提出了一些提升指令微调效果的方案。与该文章一起出品…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

无法与IP建立连接,未能下载VSCode服务器

如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色&#xf…...

【单片机期末】单片机系统设计

主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息&#xff0…...