Linux:服务器硬件及RAID配置

news2024/11/16 18:02:15

Linux:服务器硬件及RAID配置

服务器

服务器是什么

服务器的英文名称为“ Server”,是指在网络上提供各种服务的高性能计算机。作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。

服务器和普通计算机的功能是类似的。只是相对于普通计算机,服务器在稳定性、安全性、性能等方面都要求更高,因此CPU、芯片组、内存、磁盘系统、网络等硬件和普通计算机有所不同。

服务器与普通计算机的主要区别包括:

  1. 通信方式为一对多

  2. 资源通过网络共享

  3. 硬件性能更加强大

服务器的结构

以华为FusionServer 1288H V5为例

  1. 物理结构

在这里插入图片描述

服务器物理结构
序号硬件设备序号硬件设备
1电源模块2机箱
3风扇支架4风扇模块
5前置硬盘背板6硬盘
7光驱8灯板模块
9VGA板10散热器
11处理器12内存
13TPM/TCM扣卡14RAID控制扣卡
15主板16灵活IO卡
17PCIe Riser模组118PCIe Riser模组2
  1. 逻辑结构

在这里插入图片描述

服务器逻辑结构
  • 支持1个或2个英特尔®至强®可扩展处理器。

  • 支持24条内存。

  • 处理器与处理器之间通过2个UPI(UltraPath Interconnect)总线互连,传输速率最高可达10.4GT/s。

  • 处理器通过PCIe总线与2个PCIe Riser卡相连,通过不同的PCIe Riser卡支持不同规格的PCIe槽位。

  • RAID控制卡通过PCIe总线与CPU1相连,通过SAS信号线缆与硬盘背板相连,通过不同的硬盘背板支持多种本地存储规格。

  • 使用LBG-2 PCH(Platform Controller Hub),通过PCH:

    • 支持2个板载10GE光口或者2个板载10GE电口。
    • 支持2个板载GE电口。
  • 使用Hi1710管理芯片,支持外出VGA(Video Graphic Array)、管理网口、调试串口等管理接口。

RAID

硬RAID与软RAID对比

硬RAID软RAID
实现方式使用专门的raid控制器来实现操作系统和软件来实现
性能由于使用专用硬件,通常能提供更好的性能性能受到操作系统负载和主机CPU性能的影响
数据安全性更佳(硬raid控制器可以提供更多的数据保护和冗余功能)较弱(软RAID的故障恢复可能更复杂,需要更多的手动干预)
灵活性与成本需要特定的硬件和控制器,配置后难以更改。可以在几乎任何计算机上运行,可以随时添加或删除磁盘
可靠性和容错性RAID卡通常具有纠错能力,可以检测和纠正磁盘故障,因此可以保证数据的完整性和可靠性需要CPU处理所有RAID任务,包括读写磁盘和计算校验和等操作,这可能会降低系统性能

RAID级别介绍

RAID 0

RAID 0又称为条带化(Stripe),代表了所有RAID级别中最高的存储性能。

通过建立RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。但由于其没有数据冗余,无法保护数据的安全性,只能适用于I/O速率要求高,但数据安全性要求低的场合。

在这里插入图片描述

RAID 0数据存储原理
RAID 1

RAID 1又称镜像(Mirror或Mirroring),即每个工作盘都有一个镜像盘,每次写数据时必须同时写入镜像盘,读数据时同时从工作盘和镜像盘读出。

当更换故障盘后,数据可以重构,恢复工作盘正确数据。RAID 1可靠性高,但其有效容量减小到总容量一半,因此常用于对容错要求较高的应用场合。

在这里插入图片描述

RAID 1数据存储原理
RAID 5

RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。为保障存储数据的可靠性,采用循环冗余校验方式,并将校验数据分散存储在RAID的各成员盘上。当RAID的某个成员盘出现故障时,通过其他成员盘上的数据可以重新构建故障硬盘上的数据。

RAID 5既适用于大数据量的操作,也适用于各种小数据的事务处理,是一种快速、大容量和容错分布合理的磁盘阵列。

RAID 5具有较RAID 0略低的数据读写速度,但写性能比写入单个硬盘时要高。

在这里插入图片描述

RAID 5数据存储原理
RAID 6

RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块硬盘同时失效也不会影响数据的使用。

数据块和校验块一起分散存储到RAID 6的各个成员盘上。当任意一个或两个成员硬盘出现故障时,控制卡可以从其他处于正常状态的硬盘上重新恢复或生成丢失的数据而不影响数据的可用性。

数据块和校验块一起分散存储到RAID 6的各个成员盘上。当任意一个或两个成员硬盘出现故障时,控制卡可以从其他处于正常状态的硬盘上重新恢复或生成丢失的数据而不影响数据的可用性。

在这里插入图片描述

RAID 6数据存储原理
RAID 10

RAID 10是将镜像和条带进行两级组合的RAID级别,即RAID 1+RAID 0的组合形式,第一级是RAID 1,第二级是RAID 0。RAID 10是存储性能和数据安全兼顾的方案。它在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。

原先顺序的数据请求按照RAID 0的方式,被分散到两个子组中并行执行,同时通过RAID 1的方式,系统在向硬盘Drive 0写入数据的同时把数据自动复制到硬盘Drive 1上,向硬盘Drive 2写入数据的同时把数据自动复制到硬盘Drive 3上。

在这里插入图片描述

RAID 10数据存储原理

RAID级别对比

RAID 级别硬盘数量要求利用率是否有冗余能力读写性能
RAID 0NN单个硬盘的N倍
RAID 1N (偶数)N/2有,允许一个设备故障读性能提升,写没有提升
RAID 5N>=3(N-1/N)有,允许一个设备故障读性能提升,写没有提升
RAID 6N>=4(N-2)/N有,允许两个设备故障需要多写两份纠删码,所以写性能相对raid5更低一些
RAID 10N>=4N/2有,允许不同组中各坏一个读性能可提升N倍,写性能提升N/2倍

配置RAID

硬RAID

状态说明
Available(AVL)硬盘可能未就绪,并且不适合在逻辑盘或热备池中使用。
Online(ONL)为某个虚拟磁盘的成员盘,可正常使用,处于在线状态。
Fault硬盘故障。
Hot Spare(HSP)被设置为热备盘。
Unconfigured Good(ugood/ucfggood)硬盘状态正常,但不是虚拟磁盘的成员盘或热备盘。
物理硬盘状态
  1. 进入硬RAID管理界面

在这里插入图片描述

  1. 创建RAID磁盘

光标移动至第二行,按f2选择“Create Virtual Drive”

在这里插入图片描述

  1. 按照需求选择创建RAID级别、需要加入的物理磁盘、虚拟磁盘的空间大小及名称

选择加入的物理磁盘选择为“空格键”;完成后按"ok"

在这里插入图片描述

是否跳过初始化选择“OK”

在这里插入图片描述

创建完成

在这里插入图片描述

  1. 初始化虚拟磁盘

光标移动至新建的虚拟磁盘上按“f2”选择“Initialization”初始化,选择“Fast Init”快速初始化

在这里插入图片描述

提示信息选择“YES”

在这里插入图片描述

初始化完成提示信息

在这里插入图片描述

  1. 查看物理磁盘状态

"Ctrl+N"到“PD Mgmt”界面,检查创建虚拟磁盘时选中的物理磁盘状态是否为“OnLine”

在这里插入图片描述

  1. 设置全局热备盘

在“PD Mgmt”界面选择空闲物理磁盘,按“f2”选择“Make Global HS”成为全局热备盘

在这里插入图片描述

创建完成后检查物理磁盘是否为“HotSpare”

在这里插入图片描述

软RAID

使用Linux系统为例

  1. 添加容量相同的硬盘

在这里插入图片描述

在这里插入图片描述

  1. 检查“mdadm”软件包

在这里插入图片描述

  1. 将添加的三块硬盘新建分区

在这里插入图片描述

nvme0n3、nvme0n4均需要进行相同操作

在这里插入图片描述

  1. 创建RAID
#创建RAID5
mdadm -C -v /dev/md0 [-a yes] -l5 -n3 /dev/sd[bcd]1 -x1 /dev/sde1

-C:表示新建;
-v:显示创建过程中的详细信息。
/dev/md0:创建 RAID5 的名称。
-a yes:--auto,表示如果有什么设备文件没有存在的话就自动创建,可省略。
-l:指定 RAID 的级别,l5 表示创建 RAID5。
-n:指定使用几块硬盘创建 RAID,n3 表示使用 3 块硬盘创建 RAID。
/dev/sd[bcd]1:指定使用这3块磁盘分区去创建 RAID。
-x:指定使用几块硬盘做RAID的热备用盘,x1表示保留1块空闲的硬盘作备用
/dev/sde1:指定用作于备用的磁盘


#查看RAID磁盘详细信息
cat /proc/mdstat        #还能查看创建RAID的进度
或者
mdadm -D /dev/md0

#用watch命令来每隔一段时间刷新 /proc/mdstat 的输出
watch -n 10 'cat /proc/mdstat'

#检查磁盘是否已做RAID
mdadm -E /dev/sd[b-e]1

在这里插入图片描述

在这里插入图片描述

  1. 格式化磁盘

在这里插入图片描述

在这里插入图片描述

[root@rhel9-1 ~]# lsblk 
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0            11:0    1  9.8G  0 rom  /mnt
nvme0n1       259:0    0   80G  0 disk 
├─nvme0n1p1   259:1    0  600M  0 part /boot/efi
├─nvme0n1p2   259:2    0    1G  0 part /boot
└─nvme0n1p3   259:3    0 78.4G  0 part 
  ├─rhel-root 253:0    0 47.4G  0 lvm  /
  ├─rhel-swap 253:1    0  7.8G  0 lvm  [SWAP]
  └─rhel-home 253:2    0 23.2G  0 lvm  /home
nvme0n2       259:4    0   50G  0 disk 
nvme0n3       259:5    0   50G  0 disk 
nvme0n4       259:6    0   50G  0 disk
[root@rhel9-1 ~]# yum install -y mdadm
正在更新 Subscription Management 软件仓库。
ali_baseos                                                               9.5 kB/s | 3.9 kB     00:00    
ali_baseos                                                               5.4 MB/s | 8.0 MB     00:01    
ali_appstream                                                             11 kB/s | 4.4 kB     00:00    
ali_appstream                                                            6.7 MB/s |  19 MB     00:02    
redhat9-BaseOS                                                           2.7 MB/s | 2.7 kB     00:00    
redhat9-AppStream                                                        3.1 MB/s | 3.2 kB     00:00    
软件包 mdadm-4.2-9.el9.x86_64 已安装。
依赖关系解决。
=========================================================================================================
 软件包                架构                   版本                      仓库                        大小
=========================================================================================================
升级:
 mdadm                 x86_64                 4.3-1.el9                 ali_baseos                 433 k

事务概要
=========================================================================================================
升级  1 软件包

总下载:433 k
下载软件包:
mdadm-4.3-1.el9.x86_64.rpm                                               716 kB/s | 433 kB     00:00    
---------------------------------------------------------------------------------------------------------
总计                                                                     714 kB/s | 433 kB     00:00     
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                          1/1 
  升级    : mdadm-4.3-1.el9.x86_64                                                                   1/2 
  运行脚本: mdadm-4.3-1.el9.x86_64                                                                   1/2 
  运行脚本: mdadm-4.2-9.el9.x86_64                                                                   2/2 
  清理    : mdadm-4.2-9.el9.x86_64                                                                   2/2 
  运行脚本: mdadm-4.2-9.el9.x86_64                                                                   2/2 
  验证    : mdadm-4.3-1.el9.x86_64                                                                   1/2 
  验证    : mdadm-4.2-9.el9.x86_64                                                                   2/2 
已更新安装的产品。

已升级:
  mdadm-4.3-1.el9.x86_64                                                                                 

完毕!
[root@rhel9-1 ~]# fdisk /dev/nvme0n2

欢迎使用 fdisk (util-linux 2.37.4)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x804d6263 的新 DOS 磁盘标签。

命令(输入 m 获取帮助):n
分区类型
   p   主分区 (0 primary, 0 extended, 4 free)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):

将使用默认回应 p。
分区号 (1-4, 默认  1): 
第一个扇区 (2048-104857599, 默认 2048): 
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-104857599, 默认 104857599): 

创建了一个新分区 1,类型为“Linux”,大小为 50 GiB。

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码或别名(输入 L 列出所有代码):L

00 空               24 NEC DOS          81 Minix / 旧 Linu  bf Solaris        
01 FAT12            27 隐藏的 NTFS Win  82 Linux swap / So  c1 DRDOS/sec (FAT-
02 XENIX root       39 Plan 9           83 Linux            c4 DRDOS/sec (FAT-
03 XENIX usr        3c PartitionMagic   84 OS/2 隐藏 或 In  c6 DRDOS/sec (FAT-
04 FAT16 <32M       40 Venix 80286      85 Linux 扩展       c7 Syrinx         
05 扩展             41 PPC PReP Boot    86 NTFS 卷集        da 非文件系统数据 
06 FAT16            42 SFS              87 NTFS 卷集        db CP/M / CTOS / .
07 HPFS/NTFS/exFAT  4d QNX4.x           88 Linux 纯文本     de Dell 工具      
08 AIX              4e QNX4.x 第2部分   8e Linux LVM        df BootIt         
09 AIX 可启动       4f QNX4.x 第3部分   93 Amoeba           e1 DOS 访问       
0a OS/2 启动管理器  50 OnTrack DM       94 Amoeba BBT       e3 DOS R/O        
0b W95 FAT32        51 OnTrack DM6 Aux  9f BSD/OS           e4 SpeedStor      
0c W95 FAT32 (LBA)  52 CP/M             a0 IBM Thinkpad 休  ea Linux 扩展启动 
0e W95 FAT16 (LBA)  53 OnTrack DM6 Aux  a5 FreeBSD          eb BeOS fs        
0f W95 扩展 (LBA)   54 OnTrackDM6       a6 OpenBSD          ee GPT            
10 OPUS             55 EZ-Drive         a7 NeXTSTEP         ef EFI (FAT-12/16/
11 隐藏的 FAT12     56 Golden Bow       a8 Darwin UFS       f0 Linux/PA-RISC  
12 Compaq 诊断      5c Priam Edisk      a9 NetBSD           f1 SpeedStor      
14 隐藏的 FAT16 <3  61 SpeedStor        ab Darwin 启动      f4 SpeedStor      
16 隐藏的 FAT16     63 GNU HURD 或 Sys  af HFS / HFS+       f2 DOS 次要       
17 隐藏的 HPFS/NTF  64 Novell Netware   b7 BSDI fs          fb VMware VMFS    
18 AST 智能睡眠     65 Novell Netware   b8 BSDI swap        fc VMware VMKCORE 
1b 隐藏的 W95 FAT3  70 DiskSecure 多启  bb Boot Wizard 隐   fd Linux raid 自动
1c 隐藏的 W95 FAT3  75 PC/IX            bc Acronis FAT32 L  fe LANstep        
1e 隐藏的 W95 FAT1  80 旧 Minix         be Solaris 启动     ff BBT            

别名:
   linux          - 83
   swap           - 82
   extended       - 05
   uefi           - EF
   raid           - FD
   lvm            - 8E
   linuxex        - 85
Hex 代码或别名(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”。

命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。

[root@rhel9-1 ~]# fdisk /dev/nvme0n3

欢迎使用 fdisk (util-linux 2.37.4)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x281f507d 的新 DOS 磁盘标签。

命令(输入 m 获取帮助):n
分区类型
   p   主分区 (0 primary, 0 extended, 4 free)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):

将使用默认回应 p。
分区号 (1-4, 默认  1): 
第一个扇区 (2048-104857599, 默认 2048): 
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-104857599, 默认 104857599): 

创建了一个新分区 1,类型为“Linux”,大小为 50 GiB。

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码或别名(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”。

命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。

[root@rhel9-1 ~]# fdisk /dev/nvme0n4

欢迎使用 fdisk (util-linux 2.37.4)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0xdc53e37c 的新 DOS 磁盘标签。

命令(输入 m 获取帮助):n\
分区类型
   p   主分区 (0 primary, 0 extended, 4 free)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):

将使用默认回应 p。
分区号 (1-4, 默认  1): 
第一个扇区 (2048-104857599, 默认 2048): 
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-104857599, 默认 104857599): 

创建了一个新分区 1,类型为“Linux”,大小为 50 GiB。

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码或别名(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”。

命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。

[root@rhel9-1 ~]# lsblk 
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0            11:0    1  9.8G  0 rom  /mnt
nvme0n1       259:0    0   80G  0 disk 
├─nvme0n1p1   259:1    0  600M  0 part /boot/efi
├─nvme0n1p2   259:2    0    1G  0 part /boot
└─nvme0n1p3   259:3    0 78.4G  0 part 
  ├─rhel-root 253:0    0 47.4G  0 lvm  /
  ├─rhel-swap 253:1    0  7.8G  0 lvm  [SWAP]
  └─rhel-home 253:2    0 23.2G  0 lvm  /home
nvme0n2       259:4    0   50G  0 disk 
└─nvme0n2p1   259:8    0   50G  0 part 
nvme0n3       259:5    0   50G  0 disk 
└─nvme0n3p1   259:9    0   50G  0 part 
nvme0n4       259:6    0   50G  0 disk 
└─nvme0n4p1   259:10   0   50G  0 part 
[root@rhel9-1 ~]# mdadm -C -v /dev/md0 -a yes -l5 -n3 /dev/nvme0n2p1 /dev/nvme0n3p1 /dev/nvme0n4p1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 52393984K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started. 
[root@rhel9-1 ~]# mdadm -D /dev/md0 
/dev/md0:
           Version : 1.2
     Creation Time : Mon Apr 22 20:36:53 2024
        Raid Level : raid5
        Array Size : 104787968 (99.93 GiB 107.30 GB)
     Used Dev Size : 52393984 (49.97 GiB 53.65 GB)
      Raid Devices : 3
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Mon Apr 22 20:37:58 2024
             State : clean, degraded, recovering 
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

    Rebuild Status : 25% complete

              Name : xy10:0  (local to host xy10)
              UUID : d6e6ba0b:53220703:72633004:6e0877d2
            Events : 5

    Number   Major   Minor   RaidDevice State
       0     259        8        0      active sync   /dev/nvme0n2p1
       1     259        9        1      active sync   /dev/nvme0n3p1
       3     259       10        2      spare rebuilding   /dev/nvme0n4p1
[root@rhel9-1 ~]# mdadm -D /dev/md0 
/dev/md0:
           Version : 1.2
     Creation Time : Mon Apr 22 20:36:53 2024
        Raid Level : raid5
        Array Size : 104787968 (99.93 GiB 107.30 GB)
     Used Dev Size : 52393984 (49.97 GiB 53.65 GB)
      Raid Devices : 3
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Mon Apr 22 20:41:34 2024
             State : clean 
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : xy10:0  (local to host xy10)
              UUID : d6e6ba0b:53220703:72633004:6e0877d2
            Events : 18

    Number   Major   Minor   RaidDevice State
       0     259        8        0      active sync   /dev/nvme0n2p1
       1     259        9        1      active sync   /dev/nvme0n3p1
       3     259       10        2      active sync   /dev/nvme0n4p1
[root@rhel9-1 ~]# mkfs.xfs /dev/md0 
log stripe unit (524288 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/md0               isize=512    agcount=16, agsize=1637248 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=26195968, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@rhel9-1 ~]# mkdir /opt/data
[root@rhel9-1 ~]# blkid /dev/md0
/dev/md0: UUID="730d538d-751f-482e-893f-8cd2d8a38e10" TYPE="xfs"
[root@rhel9-1 ~]# vim /etc/fstab 
[root@rhel9-1 ~]# mount -a
[root@rhel9-1 ~]# df -h
文件系统               容量  已用  可用 已用% 挂载点
devtmpfs               4.0M     0  4.0M    0% /dev
tmpfs                  1.8G     0  1.8G    0% /dev/shm
tmpfs                  724M  9.7M  714M    2% /run
/dev/mapper/rhel-root   48G  4.5G   43G   10% /
/dev/sr0               9.9G  9.9G     0  100% /mnt
/dev/mapper/rhel-home   24G  198M   23G    1% /home
/dev/nvme0n1p2         960M  292M  669M   31% /boot
/dev/nvme0n1p1         599M  7.0M  592M    2% /boot/efi
tmpfs                  362M   52K  362M    1% /run/user/42
tmpfs                  362M   36K  362M    1% /run/user/0
/dev/md0               100G  747M  100G    1% /opt/data
[root@rhel9-1 ~]# 
[root@rhel9-1 ~]# vim /etc/fstab 


#
# /etc/fstab
# Created by anaconda on Mon Apr 15 06:43:50 2024
#
# 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.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rhel-root   /                       xfs     defaults        0 0
UUID=fd674837-4996-4f18-91b3-d25bd7506779 /boot                   xfs     defaults        0 0
UUID=C9F0-9BE3          /boot/efi               vfat    umask=0077,shortname=winnt 0 2
/dev/mapper/rhel-home   /home                   xfs     defaults        0 0
/dev/mapper/rhel-swap   none                    swap    defaults        0 0
/dev/sr0                /mnt                    iso9660 defaults        0 0 

UUID=730d538d-751f-482e-893f-8cd2d8a38e10 /opt/data xfs defaults 0 0

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据挖掘实验(Apriori,fpgrowth)

Apriori&#xff1a;这里做了个小优化&#xff0c;比如abcde和adcef自连接出的新项集abcdef&#xff0c;可以用abcde的位置和f的位置取交集&#xff0c;这样第n项集的计算可以用n-1项集的信息和数字本身的位置信息计算出来&#xff0c;只需要保存第n-1项集的位置信息就可以提速…

怎么通过Javascript脚本实现远程控制一路开关

怎么通过Javascript脚本实现远程控制一路开关呢&#xff1f; 本文描述了使用Javascript脚本调用HTTP接口&#xff0c;实现控制一路开关。一路开关可控制一路照明、排风扇等电器。 可选用产品&#xff1a;可根据实际场景需求&#xff0c;选择对应的规格 序号设备名称1智能WiFi…

信息系统项目管理师0062:需求分析(5信息系统工程—5.1软件工程—5.1.2需求分析)

点击查看专栏目录 文章目录 5.1.2需求分析1.需求的层次2.需求过程3.UML4.面向对象分析记忆要点总结5.1.2需求分析 软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。根据IEEE的软件工程标准词汇表,软件需求是指用户解决问题或达到目标所需的条件或能力,是…

入坑 Node.js 1

原文&#xff1a;https://blog.iyatt.com/?p14717 前言 前面刚刚对 Spring Boot 有了个概念&#xff0c;再来学学 Node.js&#xff0c;顺便当学 JavaScript&#xff0c;为后面入前端做准备。 环境 Node.js 20.12.2 官方 API 文档&#xff1a;https://nodejs.org/docs/lat…

iOS OC项目中引入SwiftUI文件

iOS OC项目中引入SwiftUI文件 1、创建SwiftUI文件 2、第一次创建时&#xff0c;Xcode会提示桥接&#xff0c;选择 Creat Bridging Header即可。 3、创建swift管理类 /**在UIKit中使用SwiftUI&#xff0c;需要使用UIHostingController对SwiftUI进行包装&#xff0c;返回的是U…

小游戏:贪吃蛇

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;贪吃蛇 &#x1f337;追光的人&#xff0c;终会万丈光芒 目录 &#x1f3dd;1.头文件&#xff1a; &#x1f3dd;2.实现文件&#xff1a; &#x1f3dd;3.测试文件 &#xff1a; 前言&#…

STM32自动光控窗帘程序+Proteus仿真图 H桥L298驱动电机

目录 1、前言 2、仿真图 3、源程序 资料下载地址&#xff1a;STM32自动光控窗帘程序Proteus仿真图 H桥L298驱动电机 1、前言 基于STM32F103设计的智能光控窗帘&#xff0c;包含STM32芯片、光敏电阻、LCD1602显示屏、电机驱动控制模块等。 备注&#xff1a;通过ARM内部的…

网络安全数字孪生:一种新颖的汽车软件解决方案

摘要 随着汽车行业转变为数据驱动的业务&#xff0c;软件在车辆的开发和维护中发挥了核心作用。随着软件数量的增加&#xff0c;相应的网络安全风险、责任和监管也随之增加&#xff0c;传统方法变得不再适用于这类任务。相应的结果是整车厂和供应商都在努力应对汽车软件日益增加…

CAS和synchronized原理

synchronized与CAS Synchronized 原理加锁工作过程一些优化 CAS实现原子类 小结 Synchronized 原理 synchronized 既可以是乐观锁, 也可以是悲观锁.synchronized 既可以是轻量级锁, 也可以是重量级锁.synchronized 重量级锁是由系统的互斥锁实现的; 轻量级锁是基于自旋锁实现的…

Windows 安全中心:页面不可用 你的 IT 管理员已限制对此应用的某些区域的访问,并且你尝试访问的项目不可用。有关详细信息,请与 IT 支持人员联系。

问题 1&#xff1a;Windows 安全中心提示&#xff1a;【页面不可用 你的 IT 管理员已限制对此应用的某些区域的访问&#xff0c;并且你尝试访问的项目不可用。有关详细信息&#xff0c;请与 IT 支持人员联系。】 修复 Microsoft.SecHealthUI 方法 1&#xff1a;命令自动重装安…

linq select 和selectMany的区别

Select 和 SelectMany 都是 LINQ 查询方法&#xff0c;但它们之间有一些区别。 Select 方法用于从集合中选择特定的属性或对集合中的元素进行转换&#xff0c;并返回一个新的集合。例如&#xff1a; var numbers new List<int> { 1, 2, 3, 4, 5 }; var squaredNumbers…

sc2024项目consul

1. 什么是consul HashiCorp Consul是一款服务网络解决方案&#xff0c;可让团队管理服务之间以及内部部署和多云环境及运行时的安全网络连接。consul提供服务发现、服务治理、流量管理和对网络基础设施设备的自动更新。(添加链接描述)Consul使用Go语言开发 2. 功能 多数据中…

【PCL】教程global_hypothesis_verification 通过验证模型假设来实现 3D 对象识别与位姿估计...

测试程序1 milk.pcd milk_cartoon_all_small_clorox.pcd 终端输出1&#xff1a; Model total points: 12575; Selected Keypoints: 193 Scene total points: 307200; Selected Keypoints: 7739 [pcl::SHOTEstimation::computeFeature] The local reference frame is not valid!…

windows驱动开发-内存概述

“90%的程序问题都是由内存引起的&#xff0c;剩下的10%是使用内存引起的&#xff01;”这是一句非常经典的论证&#xff0c;实际上&#xff0c;在程序开发中&#xff0c;内存问题就是最大的问题&#xff0c;没有之一。 现代的计算机体系中&#xff0c;内存承载了太多的功能&a…

解决“该扩展程序未列在 Chrome 网上应用店中,并可能是在您不知情的情况下添加的”的方法

一、问题 安装插件出现时“该扩展程序未列在 Chrome 网上应用店中&#xff0c;并可能是在您不知情的情况下添加的” 二、解决方法 1、把需要安装的第三方插件&#xff0c;后缀.crx 改成 .rar&#xff0c;然后解压&#xff0c;得到一个文件夹 2、再打开chrome://extensions/谷歌…

Visual Studio Code使用

目录 1.python的调试 2.c的运行 方法1&#xff1a; 方法2&#xff1a; 3.c的调试 3.1调试方法一&#xff1a;先生成执行文件&#xff0c;再调试 3.2调试方法二&#xff1a;同时生成执行文件&#xff0c;调试 4.tasks.json 与launch.json文件的参考 4.1C生成执行文件tas…

linux之进程通信

目录 一、进程通信介绍 1.目的 2.发展 3.进程通信是什么&#xff0c;怎么通信&#xff1f; 二、管道 1.介绍 2.匿名管道 1.单向通信管道原理 2.代码实现 3.管道特征 4.管道的四种情况 5.管道的应用场景 使用管道实现一个简易版本的进程池 3.命名管道 1.思考 2.…

燃冬之yum、vim和你

了解了很多指令和权限&#xff0c;搞点真枪实弹来瞅瞅 学Linux不是天天就在那掰扯指令玩&#xff0c;也不是就研究那个权限 准备好迎接Linux相关工具的使用了么码农桑~ yum 软件包 什么是软件包呢&#xff1f; 首先来举个生活中常见点的例子&#xff1a;比如我的手机是华为…

PLC无线通讯技术在汽车喷涂车间机械手臂上的应用

一、项目背景 在汽车生产装配工艺中&#xff0c;机械臂目前已经广泛地应用于装配、搬运等工业生产中&#xff0c;在机械臂系列产品中&#xff0c;汽车喷漆自动控制喷涂机械装置以其独特的优势&#xff0c;能够根据油漆喷涂量的大小&#xff0c;严格控制喷嘴与喷漆面之间距离等…

【函数式接口使用✈️✈️】配合策略模式实现文件处理的案例

目录 &#x1f378;前言 &#x1f37b;一、功能描述 &#x1f37a;二、面向对象设计模式 &#x1f379;三、策略模式 &#x1f366;四、策略 VS 面向对象 &#x1f368;章末 &#x1f378;前言 小伙伴们大家好&#xff0c;上周初步了解了下函数式接口&#xff0c;Consume…