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

<AIX>《AIX RAID 操作之LV逻辑卷镜像制作,即lvcopy操作》

《AIX RAID 操作之LV逻辑卷镜像制作,即lvcopy操作》

  • 1 RAID技术
  • 2 AIX逻辑卷组做镜像
  • 3 环境
  • 3.1 操做系统版本
  • 3.2 检查rootvg的lv
  • 3.3 检查rootvg的磁盘信息
  • 4 创建测试的test的lv逻辑卷
    • 4.1 测试1:直接创建镜像lv
    • 4.2 测试2:创建未开启镜像的lv
  • 5 比对磁盘空间是否可以复制
    • 5.1 复制操作是否需要停止业务
  • 6 执行复制操作
  • 7 可以使用命令行直接执行
  • 8 操作完成后立即执行镜像复制操作
  • 9 检查复制是否成功
    • 9.1检查STALE PPs

1 RAID技术

RAID(冗余磁盘阵列)技术是一种通过将多个物理磁盘组合起来以提供更高性能、更高可用性和数据冗余的技术。AIX是IBM的一种UNIX操作系统,支持RAID技术。

RAID技术的原理是将多个磁盘驱动器组合在一起,形成一个逻辑驱动器。通过将数据分散存储在多个磁盘上,RAID可以提高数据访问的速度和可靠性。以下是常见的RAID级别及其原理:

RAID级别0:也称为条带化(striping),数据被分割成块并分布在多个磁盘上。这提供了更高的性能,因为数据可以同时从多个磁盘读取或写入。然而,RAID 0没有冗余性,如果一个磁盘出现故障,所有数据都会丢失

RAID级别1:也称为镜像(mirroring),数据同时存储在两个磁盘上,提供了冗余性。如果一个磁盘发生故障,另一个磁盘仍然可以提供数据。RAID 1的缺点是需要两倍的存储空间。

RAID级别5:使用分布式奇偶校验实现数据冗余和性能提升。数据和奇偶校验码被分布存储在多个磁盘上,使得在一个磁盘故障时可以恢复数据。RAID 5需要至少三个磁盘驱动器。

RAID级别6:类似于RAID 5,但使用两个奇偶校验码提供更高的容错能力。RAID 6需要至少四个磁盘驱动器。

RAID级别10:也称为RAID 1+0或镜像条带化,将多个RAID 1阵列组合成一个RAID 0阵列。提供了更高的性能和冗余性,需要至少四个磁盘驱动器。

2 AIX逻辑卷组做镜像

AIX的逻辑卷组(lv)一般作为最基本的操作单元进行数据存储。例如,文件系统裸设备都建立在逻辑卷组(lv)。对逻辑卷组做镜像,将数据存储在多块磁盘,为数据存储提供冗余性,保障数据安全。
规则:
1、lv使用hdisk2盘,则复制的盘不能使用hdisk2,要使用其他盘。
2、lv使用hdisk2盘100PPs,则复制的盘至少剩余100PPs的空闲空间。
3、直接建立镜像复制的lv,则Number of COPIES of each logical值设置为2时,至少在PHYSICAL VOLUME names值设置2块磁盘;则Number of COPIES of each logical值设置为3时,至少在PHYSICAL VOLUME names值设置3块磁盘,且每块磁盘大小都大于Number of LOGICAL PARTITIONS设置的PPs数。
将,

3 环境

操作系统:AIX 6.1
卷组:rootvg
逻辑卷组:logbaklv
挂在文件系统:/db2logbak

3.1 操做系统版本

# oslevel -s
7100-03-04-1441

3.2 检查rootvg的lv

# lsvg -l rootvg
rootvg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
hd5                 boot       1       2       2    closed/syncd  N/A
hd6                 paging     5       10      4    open/syncd    N/A
hd8                 jfs2log    1       2       2    open/syncd    N/A
hd4                 jfs2       140     280     3    open/syncd    /
hd2                 jfs2       20      40      2    open/syncd    /usr
hd9var              jfs2       20      40      2    open/syncd    /var
hd3                 jfs2       100     200     3    open/syncd    /tmp
hd1                 jfs2       220     440     6    open/syncd    /home

3.3 检查rootvg的磁盘信息

# lsvg -p rootvg
rootvg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk0            active            546         0           00..00..00..00..00
hdisk1            active            546         0           00..00..00..00..00
hdisk2            active            546         19          19..00..00..00..00
hdisk3            active            546         0           00..00..00..00..00
hdisk4            active            546         0           00..00..00..00..00
hdisk5            active            546         0           00..00..00..00..00
hdisk6            active            546         0           00..00..00..00..00
hdisk7            active            546         231         100..40..91..00..00

4 创建测试的test的lv逻辑卷

# smit lvList All Logical Volumes by Volume GroupAdd a Logical Volume     						# 选择这个Set Characteristic of a Logical Volume     Show Characteristics of a Logical VolumeRemove a Logical VolumeCopy a Logical Volume
然后选择VG为rootvg,然后设置磁盘信息[Entry Fields]Logical volume NAME                                [test]
* VOLUME GROUP name                                   rootvg
* Number of LOGICAL PARTITIONS                       [5]                   #输入你要创建的lv大小          #PHYSICAL VOLUME names                              [hdisk2]               #这里选择有剩余空间的磁盘          +Logical volume TYPE                                [jfs2]                           +POSITION on physical volume                         middle                          +RANGE of physical volumes                           minimum                         +MAXIMUM NUMBER of PHYSICAL VOLUMES                 [100]                             #to use for allocationNumber of COPIES of each logical                    1                               +partitionMirror Write Consistency?                           active                          +Allocate each logical partition copy                yes                             +on a SEPARATE physical volume?RELOCATE the logical volume during                  yes                             +reorganization?Logical volume LABEL                               []MAXIMUM NUMBER of LOGICAL PARTITIONS               [512]                             #Enable BAD BLOCK relocation?                        yes                             +SCHEDULING POLICY for writing/reading               parallel                        +logical partition copiesEnable WRITE VERIFY?                                no                              +File containing ALLOCATION MAP                     []Stripe Size?                                       [Not Striped]                    +Serialize IO?                                       no                              +Mirror Pool for First Copy                                                          +Mirror Pool for Second Copy                                                         +Mirror Pool for Third Copy                                                          +Infinite Retry Option                               no                              +

4.1 测试1:直接创建镜像lv

将PHYSICAL VOLUME names值设置为hdisk2,hdisk7;
将Number of COPIES of each logical值设置为2,
可以直接建立开启镜像复制的lv。

$ lslv test
LOGICAL VOLUME:     test                   VOLUME GROUP:   rootvg
LV IDENTIFIER:      00ce31e300004c00000001736a1ccdd8.24 PERMISSION:     read/write
VG STATE:           active/complete        LV STATE:       closed/stale
TYPE:               jfs2                   WRITE VERIFY:   off
MAX LPs:            512                    PP SIZE:        256 megabyte(s)
COPIES:             2                      SCHED POLICY:   parallel
LPs:                5                      PPs:            10
STALE PPs:          5                      BB POLICY:      relocatable
INTER-POLICY:       minimum                RELOCATABLE:    yes
INTRA-POLICY:       middle                 UPPER BOUND:    16
MOUNT POINT:        N/A                    LABEL:          None
MIRROR WRITE CONSISTENCY: on/ACTIVE                              
EACH LP COPY ON A SEPARATE PV ?: yes                                    
Serialize IO ?:     NO       
INFINITE RETRY:     no                     PREFERRED READ: 0 # lslv -l test
PV         COPIES          IN BAND         DISTRIBUTION
hdisk7     005:000:000     100%            000:005:000:000:000
hdisk2     005:000:000     0%              000:000:000:000:000

4.2 测试2:创建未开启镜像的lv

将PHYSICAL VOLUME names值设置为hdisk2
将Number of COPIES of each logical值设置为1,

$ lslv test
LOGICAL VOLUME:     test                   VOLUME GROUP:   rootvg
LV IDENTIFIER:      00ce31e300004c00000001736a1ccdd8.24 PERMISSION:     read/write
VG STATE:           active/complete        LV STATE:       closed/stale
TYPE:               jfs2                   WRITE VERIFY:   off
MAX LPs:            512                    PP SIZE:        256 megabyte(s)
COPIES:             1                      SCHED POLICY:   parallel
LPs:                5                      PPs:            5
STALE PPs:          5                      BB POLICY:      relocatable
INTER-POLICY:       minimum                RELOCATABLE:    yes
INTRA-POLICY:       middle                 UPPER BOUND:    16
MOUNT POINT:        N/A                    LABEL:          None
MIRROR WRITE CONSISTENCY: on/ACTIVE                              
EACH LP COPY ON A SEPARATE PV ?: yes                                    
Serialize IO ?:     NO       
INFINITE RETRY:     no                     PREFERRED READ: 0 
# lslv -l test
test:N/A
PV                COPIES        IN BAND       DISTRIBUTION  
hdisk7            005:000:000   100%          000:005:000:000:000
# lsvg -l rootvg
rootvg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
hd5                 boot       1       2       2    closed/syncd  N/A
hd6                 paging     5       10      4    open/syncd    N/A
hd8                 jfs2log    1       2       2    open/syncd    N/A
hd4                 jfs2       140     280     3    open/syncd    /
hd2                 jfs2       20      40      2    open/syncd    /usr
hd9var              jfs2       20      40      2    open/syncd    /var
hd3                 jfs2       100     200     3    open/syncd    /tmp
hd1                 jfs2       220     440     6    open/syncd    /home
test                jfs2       5       5       1    closed/syncd  N/A

5 比对磁盘空间是否可以复制

根据2.2.2章节,知道,test逻辑卷占用5个PPs,使用的是hdisk7盘。如果要复制test逻辑卷,需要在其所在的rootvg找到另外一块大于5PPs的盘。当前可以使用hdisk2。

5.1 复制操作是否需要停止业务

复制不影响业务,不用停止业务,也无需卸载目录

6 执行复制操作

# smit lvList All Logical Volumes by Volume GroupAdd a Logical VolumeSet Characteristic of a Logical Volume           # 选择这个Show Characteristics of a Logical VolumeRemove a Logical VolumeCopy a Logical VolumeChange a Logical VolumeRename a Logical VolumeIncrease the Size of a Logical VolumeAdd a Copy to a Logical Volume   				# 选择这个Remove a Copy from a Logical Volume设置参数[Entry Fields]
* LOGICAL VOLUME name                                 test
* NEW TOTAL number of logical partition               2               #默认值有1,2,3。将参数设置为2,表示复制一份镜像,设置为3表示复制2份镜像。                                                                                                                                           +copiesPHYSICAL VOLUME names                              [hdisk2]         #选择lv不使用的盘,且大小大于LV的大小。                                                                                                                                          +POSITION on physical volume                         middle                                                                                                                                                    +RANGE of physical volumes                           minimum                                                                                                                                                   +MAXIMUM NUMBER of PHYSICAL VOLUMES                 [16]                                                                                                                                                        #to use for allocationAllocate each logical partition copy                yes                                                                                                                                                       +on a SEPARATE physical volume?File containing ALLOCATION MAP                     []SYNCHRONIZE the data in the new                     no                                                                                                                                                        +logical partition copies?Mirror Pool for First Copy                         []                                                                                                                                                         +Mirror Pool for Second Copy                        []                                                                                                                                                         +Mirror Pool for Third Copy                         []      

7 可以使用命令行直接执行

/usr/sbin/mklvcopy test 2 hdisk2

说明:
参数2,表示复制一份镜像;
参数hdisk2,为目标磁盘。

8 操作完成后立即执行镜像复制操作

# syncvg -P 8 -l test

说明:
参数8表示8个线程执行复制
参数test为lv名称
该步骤不执行也会后台进行镜像复制,执行命令使后台变成前台,加快进行。
该步骤执行时长:速度估算,30秒执行5个PPS,1.25Gb的复制。

9 检查复制是否成功

1、复制前

$ lslv test
LOGICAL VOLUME:     test                   VOLUME GROUP:   rootvg
LV IDENTIFIER:      00ce31e300004c00000001736a1ccdd8.24 PERMISSION:     read/write
VG STATE:           active/complete        LV STATE:       closed/stale
TYPE:               jfs2                   WRITE VERIFY:   off
MAX LPs:            512                    PP SIZE:        256 megabyte(s)
COPIES:             2                      SCHED POLICY:   parallel
LPs:                5                      PPs:            10
STALE PPs:          5                      BB POLICY:      relocatable
INTER-POLICY:       minimum                RELOCATABLE:    yes
INTRA-POLICY:       middle                 UPPER BOUND:    16
MOUNT POINT:        N/A                    LABEL:          None
MIRROR WRITE CONSISTENCY: on/ACTIVE                              
EACH LP COPY ON A SEPARATE PV ?: yes                                    
Serialize IO ?:     NO                                 

2、复制后

LOGICAL VOLUME:     test                   VOLUME GROUP:   rootvg
LV IDENTIFIER:      00ce31e300004c00000001736a1ccdd8.24 PERMISSION:     read/write
VG STATE:           active/complete        LV STATE:       closed/syncd
TYPE:               jfs2                   WRITE VERIFY:   off
MAX LPs:            512                    PP SIZE:        256 megabyte(s)
COPIES:             2                      SCHED POLICY:   parallel
LPs:                5                      PPs:            10
STALE PPs:          0                      BB POLICY:      relocatable
INTER-POLICY:       minimum                RELOCATABLE:    yes
INTRA-POLICY:       middle                 UPPER BOUND:    16
MOUNT POINT:        N/A                    LABEL:          None
MIRROR WRITE CONSISTENCY: on/ACTIVE                              
EACH LP COPY ON A SEPARATE PV ?: yes                                    
Serialize IO ?:     NO                                     
INFINITE RETRY:     no                     PREFERRED READ: 0

9.1检查STALE PPs

STALE PPs值应为0;代表复制过程完成。
PPs应为LPs的两倍

相关文章:

<AIX>《AIX RAID 操作之LV逻辑卷镜像制作,即lvcopy操作》

《AIX RAID 操作之LV逻辑卷镜像制作,即lvcopy操作》 1 RAID技术2 AIX逻辑卷组做镜像3 环境3.1 操做系统版本3.2 检查rootvg的lv3.3 检查rootvg的磁盘信息4 创建测试的test的lv逻辑卷4.1 测试1:直接创建镜像lv4.2 测试2:创建未开启镜像的lv 5 …...

JSX底层渲染机制

JSX底层渲染机制 一,.步骤 1.把我们写的jsx语法编译为虚拟DOM【virtualDOM】 虚拟DOM对象:框架自己内部构建的一套对象体系(对象的相关成员都是React内部绑定的),基于这些属性描述出我们所构建视图中的DOM接的相关特征 1基于ba…...

2023_Spark_实验六:Scala面向对象部分演示(二)(IDEA开发)

7、Scala中的apply方法() 遇到如下形式的表达式时,apply方法就会被调用: Object(参数1,参数2,......,参数N) 通常,这样一个apply方法返回的是伴生类的对象;其作用是为了省略new关键字 Object的apply方法…...

ArcGIS美化科研论文地图(利用在线底图)

1.加载在线底图服务 在ArcGIS Desktop中打开Catalog窗口,在GIS Servers中点击Add ArcGIS Server,之后选项全部默认,仅在URL中输入以下网址https://services.arcgisonline.com/arcgis 之后就可以看到底图了 我们在WorldElevation3D中选择Nat…...

vue项目静态文件资源下载

业务场景:页面有一个导入功能,需要一个模板文件供下载,文件放在本地。 对于 Vue 3 Vite 项目,使用 require 方法来导入模块是不被支持的。require 是 CommonJS 规范中用于模块导入的方法,在 Webpack 等构建工具中常用…...

Apache Hudi初探(三)(与flink的结合)--flink写hudi的操作(真正的写数据)

背景 在之前的文章中Apache Hudi初探(二)(与flink的结合)–flink写hudi的操作(JobManager端的提交操作) 有说到写hudi数据会涉及到写hudi真实数据以及写hudi元数据,这篇文章来说一下具体的实现 写hudi真实数据 这里的操作就是在HoodieFlinkWriteClient.upsert方法: public …...

解释 Git 的基本概念和使用方式(InsCode AI 创作助手)

Git 是一种分布式版本控制系统,它允许多个用户协同工作并对项目进行版本控制。下面是 Git 的基本概念和使用方式: 基本概念: 仓库(Repository):存储代码和版本历史记录的地方。 提交(Commit&a…...

【QT】信号和槽(15)

前面的内容说了很多不同的控件如何使用,今天来看下QT的核心,信号与槽(Signals and slots)! 简单理解一下,就是我们的信号与槽连接上了之后,发射一个信号给到槽,槽函数接收到了这个信…...

EFLK日志平台(filebeat-->kafka-->logstash-->es-->kiabana)

ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 安装顺序 1.安装es 7.17.12 2.安装kibana 7.17.12 3.安装x-pack 保证以上调试成功后开始下面…...

C盘扩容遇到的问题(BitLocker解密、)

120G的C盘不知不觉的就满了,忍了好久终于要动手了。 尽管电脑-管理--磁盘管理里可以进行磁盘大小调整,但由于各盘都在用,不能够连续调整,所以选用DiskGenius。 # DiskGenius调整分区大小遇到“您选择的分区不支持无损调整容量” …...

ShardingSphere——柔性事务SEATA原理

摘要 Apache ShardingSphere集成了 SEATA 作为柔性事务的使用方案,本文主要介绍其实现ShardingSphere中柔性事务SEATA原理原理。帮助你更好的理解ShardingSphere原理。同时帮助大家更好的使用柔性事务SEATA原理。 一、Seata柔性事务 Apache ShardingSphere 集成了…...

Introducing GlobalPlatform(一篇了解GP)

安全之安全(security)博客目录导读 TEE之GP(Global Platform)认证汇总 目录 一、GP简介 二、GP新的重点领域是什么? 三、认证程序和培训<...

Ubuntu 18.04上无法播放MP4格式视频解决办法

ubuntu18.04系统无法播放MP4格式视频&#xff0c;提示如下图所示&#xff1a; 解决办法&#xff1a; 1、首先&#xff0c;确保ubuntu系统已完全更新。可使用以下命令更新软件包列表&#xff1a;sudo apt update&#xff0c;然后使用以下命令升级所有已安装的软件包&#xff1a…...

科技驱动产业升级:浅谈制造型企业对MES系统的应用

在科技不断进步的背景下&#xff0c;制造型行业也在持续发展&#xff0c;但随之而来的挑战也不断增加。传统的管理方式已经无法满足企业的需求&#xff0c;因此许多制造型企业开始寻找新的管理模式。制造执行系统&#xff08;MES&#xff09;作为先进的制造信息技术之一&#x…...

智能化新十年,“全栈智能”定义行业“Copilot智能助手”

“智能化转型是未来十年中国企业穿越经济周期的利器”&#xff0c;这是联想集团执行副总裁兼中国区总裁刘军在去年联想创新科技大会上做出的判断&#xff0c;而2023年正值第四次工业革命第二个十年的开端&#xff0c;智能化是第四次工业革命的主题。2023年初&#xff0c;基于谷…...

Docker资源控制cgroups

文章目录 一、docker资源控制1、资源控制工具2、Cgroups四大功能 二、CPU 资源控制1、设置CPU使用率上限2、CPU压力测试3、Cgroups限制cpu使用率4、设置CPU资源占用比&#xff08;设置多个容器时才有效&#xff09;5、设置容器绑定指定的CPU 三、对内存使用的限制四、对磁盘IO配…...

通过python 获取当前局域网内存在的IP和MAC

通过python 获取当前局域网内存在的ip 通过ipconfig /all 命令获取局域网所在的网段 通过arp -d *命令清空当前所有的arp映射表 循环遍历当前网段所有可能的ip与其ping一遍建立arp映射表 for /L %i IN (1,1,254) DO ping -w 1 -n 1 192.168.3.%i 通过arp -a命令读取缓存的映射表…...

解决D盘的类型不是基本,而是动态的问题

一、正确的图片 1.1图片 1.2本人遇到的问题 二、将动态磁盘 转为基本盘 2.1 基本概念&#xff0c;动态无法转化为基本&#xff0c;不是双向的&#xff0c;借助软件 网址&#xff1a;转换动态磁盘到普通磁盘_检测到计算机本地磁盘为动态分区_卫水金波的博客-CSDN博客 2.2分区…...

如何判断自己的qt版本呢?

如何判断自己的qt版本呢? 前情提要很简单,按照如下图所示,即可查看当前打开的qtCreator的版本如何打开5.15.2版本的qtCreator呢?安装教程 前情提要 我的电脑已经安装了qt5.14.1,然后我又安装了qt5.15.2,我想尝试一下同一台电脑能否适应两个版本的qt? 当我安装完成qt5.15.2后…...

【文心一言大模型插件制作初体验】制作面试错题本大模型插件

文心一言插件开发初体验 效果图 注意&#xff1a;目前插件仅支持在本地运行&#xff0c;虽然只能自用&#xff0c;但仍然是一个不错的选择。&#xff08;什么&#xff1f;你说没有用&#xff1f;这不可能&#xff01;文心一言app可以支持语音&#xff0c;网页端结合手机端就可…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...

spring Security对RBAC及其ABAC的支持使用

RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型&#xff0c;它将权限分配给角色&#xff0c;再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;采用DevEco Studio实现&#xff0c;包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...