Linux:服务器硬件及RAID配置

文章目录

  • Linux:服务器硬件及RAID配置
    • 服务器
      • 服务器是什么
      • 服务器的结构
    • RAID
      • 硬RAID与软RAID对比
      • RAID级别介绍
        • RAID 0
        • RAID 1
        • RAID 5
        • RAID 6
        • RAID 10
      • RAID级别对比
    • 配置RAID
      • 硬RAID
      • 软RAID

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 列出所有代码):L00 空               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          - 83swap           - 82extended       - 05uefi           - EFraid           - FDlvm            - 8Elinuxex        - 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.2Creation Time : Mon Apr 22 20:36:53 2024Raid Level : raid5Array Size : 104787968 (99.93 GiB 107.30 GB)Used Dev Size : 52393984 (49.97 GiB 53.65 GB)Raid Devices : 3Total Devices : 3Persistence : Superblock is persistentUpdate Time : Mon Apr 22 20:37:58 2024State : clean, degraded, recovering Active Devices : 2Working Devices : 3Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncRebuild Status : 25% completeName : xy10:0  (local to host xy10)UUID : d6e6ba0b:53220703:72633004:6e0877d2Events : 5Number   Major   Minor   RaidDevice State0     259        8        0      active sync   /dev/nvme0n2p11     259        9        1      active sync   /dev/nvme0n3p13     259       10        2      spare rebuilding   /dev/nvme0n4p1
[root@rhel9-1 ~]# mdadm -D /dev/md0 
/dev/md0:Version : 1.2Creation Time : Mon Apr 22 20:36:53 2024Raid Level : raid5Array Size : 104787968 (99.93 GiB 107.30 GB)Used Dev Size : 52393984 (49.97 GiB 53.65 GB)Raid Devices : 3Total Devices : 3Persistence : Superblock is persistentUpdate Time : Mon Apr 22 20:41:34 2024State : clean Active Devices : 3Working Devices : 3Failed Devices : 0Spare Devices : 0Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : xy10:0  (local to host xy10)UUID : d6e6ba0b:53220703:72633004:6e0877d2Events : 18Number   Major   Minor   RaidDevice State0     259        8        0      active sync   /dev/nvme0n2p11     259        9        1      active sync   /dev/nvme0n3p13     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.mzph.cn/news/829506.shtml

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

相关文章

Linux进程概念(六):进程控制

目录 进程创建 fork函数 进程终止 终止时干了什么 进程终止的三种情况 main函数的返回值 打印默认退出码 自定义退出码 总结 进程终止 exit函数 _exit函数 exit和_exit的区别 进程等待 什么是进程等待 为什么要有进程等待 wait函数 waitpid函数 阻塞等待与…

环形链表——java

给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;…

Axure实现tab页面切换功能

1. 实现效果 2. 实现原理 创建两个标签&#xff0c;并实现点击时选中状态点击时&#xff0c;设置面板状态 3. 实现步骤 3.1 实现可切换的标签 在页面上拖拽两个矩形作为两个tab标签&#xff0c;并命名 tab1 和 tab2 设置每个矩形的边框显示&#xff0c;只显示下边框即可 …

C#反射应用

1.根据类名名称生成类实例 CreateInstance后面的参数部分一定要和所构造的类参数数量对应&#xff0c;即使设置参数默认值&#xff0c;也不可省略。 2.只知道类名&#xff0c;需要将该类作为参数调用泛型接口。 3.只知道类名&#xff0c;需要将该类的数组作为参数调用泛型接口…

顺序查找和折半查找

顺序查找&#xff1a; 对于无序的情况&#xff1a; 什么是顺序查找&#xff1a;顺序查找的实现方式&#xff08;存储&#xff09;&#xff0c;是含有两种的方式进行存储的&#xff0c;一种是顺序表的形式进行存储&#xff0c;还有一种是使用链表的形式进行存储的。采用顺序查…

架构师系列- 消息中间件(15)-kafka业务实战

7.1 顺序性场景 7.1.1 场景概述 假设我们要传输一批订单到另一个系统&#xff0c;那么订单对应状态的演变是有顺序性要求的。 已下单 → 已支付 → 已确认 不允许错乱&#xff01; 7.1.2 顺序级别 1&#xff09;全局有序&#xff1a; 串行化。每条经过kafka的消息必须严格…

ElasticSearch教程入门到精通——第二部分(基于ELK技术栈elasticsearch 7.x+8.x新特性)

ElasticSearch教程入门到精通——第二部分&#xff08;基于ELK技术栈elasticsearch 7.x8.x新特性&#xff09; 1. JavaAPI-环境准备1.1 新建Maven工程——添加依赖1.2 HelloElasticsearch 2. 索引2.1 索引——创建2.2 索引——查询2.3 索引——删除 3. 文档3.1 文档——重构3.2…

react,Chart

一、基础图&#xff1a;https://ant-design-charts.antgroup.com/ Ant Design Charts 1. 首先要下载ant-design/charts&#xff0c;然后在页面中添加如下柱状图代码: import React from react; import { Column } from ant-design/chartsconst DemoColumn: React.FC () …

百度智能云千帆 ModelBuilder 技术实践系列:通过 SDK 快速构建并发布垂域模型

​百度智能云千帆大模型平台&#xff08;百度智能云千帆大模型平台 ModelBuilder&#xff09;作为面向企业开发者的一站式大模型开发平台&#xff0c;自上线以来受到了广大开发者、企业的关注。至今已经上线收纳了超过 70 种预置模型服务&#xff0c;用户可以快速的调用&#x…

深入理解冯诺依曼体系结构

文章目录 冯诺依曼体系结构概念冯诺依曼体系结构的优势冯诺依曼体系结构的现实体现 冯诺依曼体系结构概念 冯诺依曼体系结构也称普林斯顿结构&#xff0c;是现代计算机发展的基础。它的主要特点是“程序存储&#xff0c;共享数据&#xff0c;顺序执行”&#xff0c;即程序指令和…

代码随想录算法训练营Day10 | 232.用栈实现队列、225. 用队列实现栈

232.用栈实现队列 题目&#xff1a;请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a; void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除…

【leetcode面试经典150题】75. 二叉树展开为链表(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

修改Docker容器内文件的三种方式

说明&#xff1a;本文介绍修改Docker容器内文件的三种方式 方式一&#xff1a;直接修改 敲下面的命令&#xff0c;进入Docker容器&#xff0c;如mysql docker exec -it mysql /bin/bash修改mysql的配置文件&#xff0c;/etc/my.cnf vim /etc/my.cnf如下&#xff0c;如果vim…

【Hadoop】-Apache Hive使用语法与概念原理[15]

一、数据库操作 创建数据库 create database if not exists myhive; 使用数据库 use myhive; 查看数据库详细信息 desc database myhive; 数据库本质上就是在HDFS之上的文件夹。 默认数据库的存放路径是HDFS的&#xff1a;/user/hive/warehouse内 创建数据库并指定hdfs…

attempt to compare nil with number -- 黑马点评出现问题

问题情况 : 主要问题 : 调用lua执行redis时&#xff0c;有一个值会接受nil&#xff08;因为redis中没有该数据&#xff09;或者数值&#xff0c;当该值为nil时执行报错&#xff0c;因为会用到将该值与其他数字比较&#xff0c;故报错attempt to compare nil with number 当然…

生成完美口型同步的 AI 代言人视频(及其实现原理详解)

目录 什么是Heygen? Heygen注册 Video Translation&#xff08;视频翻译 完美口型同步&#xff09; 实现原理详解 视频翻译部分 完美口型同步部分 什么是Heygen? Heygen是一款在线工具&#xff0c;可帮助您生成具有完美口型同步的 AI 代言人视频。 Heygen注册 https:…

关于springboot内置tomcat最大请求数配置的一些问题

前言 springboot内置了tomcat。那么一个springboot web应用&#xff0c;最大的请求链接数是多少呢&#xff1f;很早以前就知道这个是有个配置&#xff0c;需要的时候&#xff0c;百度一下即可。但&#xff0c;事实并非如此&#xff0c;有几个问题我想大多数人还真不知道。比如…

前端学习<四>JavaScript——54-原型链

常见概念 构造函数 构造函数-扩展 原型规则和示例 原型链 instanceof 构造函数 任何一个函数都可以被 new&#xff0c;new 了之后&#xff0c;就成了构造方法。 如下&#xff1a; function Foo(name, age) {this.name name;this.age age;//retrun this; //默认有这…

大型语言模型高效推理综述

论文地址&#xff1a;2404.14294.pdf (arxiv.org) 大型语言模型&#xff08;LLMs&#xff09;由于在各种任务中的卓越表现而受到广泛关注。然而&#xff0c;LLM推理的大量计算和内存需求给资源受限的部署场景带来了挑战。该领域的努力已经朝着开发旨在提高LLM推理效率的技术方…

C语言递归刷题(一)

目录 走台阶题目思路代码 西格玛题目思路代码 用函数实现数的阶乘题目思路代码 digit题目思路代码 Hermite多项式题目思路代码 排列数题目思路代码 逆序输出题目思路代码 结语 走台阶 题目 描述 小乐乐上课需要走n阶台阶&#xff0c;因为他腿比较长&#xff0c;所以每次可以选…