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函数 阻塞等待与…

Redis技术总结

1.基本数据结构,底层原理,以及应用 String 底层使用了SDS简单动态字符,string一共三种编码方式,int,embstr,raw int主要存储long型整数 string有两个数据结构redisObject和SDS embstr和raw底层sds,主要区别是embstr的redisobject和sds连续存储在一起,而redisobject和s…

环形链表——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;需要将该类的数组作为参数调用泛型接口…

LeetCode刷题之删除重复元素

文章目录 1.删除数组中的重复元素1.1 描述1.2 分析1.3 解答 2. 删除有序数组中的重复元素2.1 描述2.2 分析2.3 解答 1.删除数组中的重复元素 题26、删除数组中的重复元素 1.1 描述 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0…

顺序查找和折半查找

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

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

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

Swift中TableView的下拉刷新和上拉加载

在Swift中&#xff0c;可以使用UIRefreshControl来实现TableView的下拉刷新。首先&#xff0c;需要在ViewDidLoad方法中创建一个UIRefreshControl的实例&#xff0c;并添加到TableView的subview中。然后&#xff0c;设置refreshControl的action为TableView的下拉刷新函数&#…

windows SDK编程 --- 消息之键盘消息(4)

前置知识 一、 键盘消息 在Windows操作系统中&#xff0c;键盘消息是用来通知应用程序有关键盘输入事件的一种机制。当用户在键盘上进行操作&#xff0c;比如按键或释放键时&#xff0c;Windows会生成相应的消息并发送给处理这些输入的应用程序。这些消息对于开发图形用户界面…

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 () …

Grafana- bug- User sync failed - User already exists

Grafana security release: New versions of Grafana with a critical security fix for CVE-2023-3128 Vardan Torosyan • 22 Jun, 2023 • 4 min Today we are releasing Grafana 10.0.1, 9.5.5, 9.4.13, 9.3.16, 9.2.20, and 8.5.27. Alongside other bug fixes, these pa…

百度智能云千帆 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…

基于单片机的煤气泄漏报警系统设计

摘要:本文设计了一种基于单片机控制的煤气泄漏检测报警系统,该系统以AT89S52单片机为核心,通过气敏电阻传感器MQ-7将采样到的 一氧化碳气体转换为电信号经处理后送给单片机,单片机对获取的信号进行分析,控制声光报警系统进行声光报警。该系统可以对室内空 气中的CO含量是否…

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

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