当前位置: 首页 > 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 年谷歌出的文章,对指令微调的影响因素进行分析,提出了一些提升指令微调效果的方案。与该文章一起出品…...

XML Group端口详解

在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage)&#xff1a…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

Java 加密常用的各种算法及其选择

在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

2023赣州旅游投资集团

单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...