目 录CONTENT

文章目录

pve部署磁盘阵列

过客
2025-10-09 / 0 评论 / 1 点赞 / 2 阅读 / 0 字

如果没有硬件磁盘阵列卡的话,在pve中常用的磁盘阵列有二种,一是自带的zfs文件系统,另一种是在命令行中安装mdadm来管理磁盘阵列。

特性对比 ZFS mdadm (配合 ext4/xfs)
设计架构 集成式存储解决方案(文件系统+卷管理+RAID) 分层式方案(RAID由mdadm管理,之上再建文件系统)
数据安全与一致性 极高。写时复制(COW)、自动数据校验与修复、避免RAID 5写孔问题 依赖硬件和文件系统。无内置数据校验,存在RAID 5写孔风险
性能表现 读写性能均衡,支持透明压缩(如lz4),ARC缓存机制高效 通常原始读写性能更高,尤其适合传统大文件顺序读写
资源消耗 较高。对内存容量有要求(建议8GB以上),会占用部分CPU进行高级功能管理 较低。更轻量,对硬件资源要求更宽松,适合老旧或低配硬件
功能特性与易用性 功能丰富。内置快照、克隆、异步复制,配置管理高度集成于PVE Web界面 核心功能专注稳定。快照等高级功能依赖LVM等上层组件,命令行配置为主
适用场景 对数据完整性要求高、需要快照/复制等高级功能、资源充足的虚拟化/备份环境 追求简单稳定、最大化性能(如媒体存储)、硬件资源有限或使用老旧硬件的场景

个人还是比较喜欢使用mdadm,灵活、性能要求低。这里简单介绍一下ZFS,终点讲述mdadm。

一、ZFS 磁盘阵列

1. 创建zfs

进入pve网页后台,选择节点中的ZFS,直接创建

2. 选择磁盘阵列

先勾选需要未使用的磁盘,然后在RAID级别选择自己需要的创建就可以了。

  • 单磁盘:字面意思,就是单个磁盘。
  • Mirror:必须选择两个物理磁盘,类似于两块硬盘的RIAD1。
  • RAID10:是RAID0和RAID1的结合,就是正常的RAID10。
  • RAIDZ:是ZFS虚拟的RAID磁盘阵列,类似RAID0。
  • RAIDZ2:是ZFS虚拟的RAID磁盘阵列,类似RAID5。
  • RAIDZ3:是ZFS虚拟的RAID磁盘阵列,类似RAID6。
  • dRAID1:是新式RAID支持动态拓展,类似于传统RAID5.
  • dRAID2:类似于传统RAID 6,双奇偶校验磁盘。
  • dRAID3:提供了三重奇偶校验磁盘,可以容忍三个磁盘故障。

二、mdadm 磁盘阵列

1. 安装mdadm

apt update
apt install mdadm

2. 显示硬盘和分区信息

sda为系统盘,sdb、sdc、sdd、sde为四个制作raid的硬盘。

lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
sdc               8:32   0   20G  0 disk 
sdd               8:48   0   20G  0 disk 
sde               8:64   0   20G  0 disk

3. 格式化硬盘

  • 2TB以内硬盘

    fdisk /dev/sdb
    n 
    回车
    回车 
    回车(或输入分区大小,建议预留100M空间)
    t
    l
    fd(这里选择Linux raid,我这里是fd)
    w
    
    • n:创建分区,回车选择默认分区和大小使用全部硬盘
    • t:修改分区类型,回车选择默认分区
    • l:列出所有分区类型
    • fd:指raid分区,不同版本前的数字不一样,从l显示的列表中找到Linux raid auto类型就行了。

    完整操作实例

    [root@localhost ~]# fdisk /dev/sdb
    欢迎使用 fdisk (util-linux 2.23.2)。
    
    更改将停留在内存中,直到您决定将更改写入磁盘。
    使用写入命令前请三思。
    
    Device does not contain a recognized partition table
    使用磁盘标识符 0xef090fa6 创建新的 DOS 磁盘标签。
    
    命令(输入 m 获取帮助):n
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): 
    Using default response p
    分区号 (1-4,默认 1):
    起始 扇区 (2048-41943039,默认为 2048):
    将使用默认值 2048
    Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
    将使用默认值 41943039
    分区 1 已设置为 Linux 类型,大小设为 20 GiB
    
    命令(输入 m 获取帮助):l
     0  空              24  NEC DOS         81  Minix / 旧 Linu bf  Solaris        
     1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-
     2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
     3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-
     4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
     5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 
     6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
     7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
     8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
     9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
     a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
     b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
     c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
     e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
     f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
    10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
    11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
    12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
    14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要       
    16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
    17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
    18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
    1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
    1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT            
    1e  隐藏的 W95 FAT1 80  旧 Minix       
    
    命令(输入 m 获取帮助):t
    已选择分区 1
    Hex 代码(输入 L 列出所有代码):fd
    已将分区“Linux”的类型更改为“Linux raid autodetect”
    
    命令(输入 m 获取帮助):p
    
    磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0xef090fa6
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048    41943039    20970496   fd  Linux raid autodetect
    
    命令(输入 m 获取帮助):w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    正在同步磁盘。
    
  • 2TB以上硬盘

parted /dev/sdb
mklabel
gpt
mkpart
回车
ext4
0GB(开始位置)
4000GB(结束大小)
p
q
  • mklabel:创建一个新的磁盘标签
  • gpt: gpt分区
  • mkpart: 创建分区
  • ext4: 硬盘数据格式
  • 0GB: 开始位置
  • 4000GB: 结束位置
  • p: 显示信息
  • q: 保存退出
[root@zngw ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel                                                          
New disk label type? gpt                                                  
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? y                                                                 
(parted) mkpart                                                           
Partition name?  []?                                                      
File system type?  [ext2]? ext4                                           
Start? 0GB                                                                
End? 4000GB                                                               
(parted) p                                                                
Model: External USB3.0 DISK04 (scsi)
Disk /dev/sdb: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  4000GB  4000GB

(parted) q                                                                
Information: You may need to update /etc/fstab.

4. 创建raid

mdadm --create /dev/md5 --auto yes --level 5 -n4 /dev/sd{b,c,d,e}
  • -C/--create:新建阵列
  • -a/--auto:允许mdadm创建设备文件,一般常用参数-a yes一次性创建
  • -l/--levle:RAID模式,支持RAID0/1/4/5/6/10等
  • -n/--raid-devices=:创建阵列中活动磁盘的数量
  • /dev/md5:阵列的设备名称
  • /dev/sd{b,c,d,e}1:创建阵列中的物理磁盘分区信息

5. 查看阵列状态

cat /proc/mdstat 
Personalities : [raid1] [raid10] [raid6] [raid5] [raid4] 
md5 : active raid5 sde[4] sdd[2] sdc[1] sdb[0]
      62862336 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UUU_]
      [=====>...............]  recovery = 25.7% (5400192/20954112) finish=1.2min speed=200007K/sec
      
unused devices: <none>

查看磁盘信息

mdadm -D /dev/md5
/dev/md5:
           Version : 1.2
     Creation Time : Thu Jan  2 16:53:10 2025
        Raid Level : raid5
        Array Size : 15624466432 (14.55 TiB 16.00 TB)
     Used Dev Size : 3906116608 (3.64 TiB 4.00 TB)
      Raid Devices : 5
     Total Devices : 5
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Tue Aug  5 11:08:33 2025
             State : clean 
    Active Devices : 5
   Working Devices : 5
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : bitmap

              Name : zngw:5  (local to host zngw)
              UUID : 1f1bf316:1363a67a:b717b49b:a2df4d26
            Events : 143292

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       49        1      active sync   /dev/sdd1
       2       8       65        2      active sync   /dev/sde1
       3       8       81        3      active sync   /dev/sdf1
       5       8       97        4      active sync   /dev/sdg1

6. 创建md5配置文件

[root@localhost ~]# echo DEVICE /dev/sd{b,c,d,e} >> /etc/mdadm.conf
[root@localhost ~]# mdadm -Evs >> /etc/mdadm.conf 
[root@localhost ~]# cat /etc/mdadm.conf
DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1
ARRAY /dev/md/0  level=raid1 metadata=1.2 num-devices=4 UUID=afe6977f:2d213295:513422e5:70099cb9 name=localhost.localdomain:0
   devices=/dev/sdb1,/dev/sdc1,/dev/sdd1
DEVICE /dev/sdb /dev/sdc /dev/sdd /dev/sde
ARRAY /dev/md/5  level=raid5 metadata=1.2 num-devices=4 UUID=ba5caeb6:401904f5:674ddc67:c4f95242 name=localhost.localdomain:5
   devices=/dev/sdb,/dev/sdc,/dev/sdd,/dev/sde

7. 格式化RAID分区

mkfs -t ext4 /dev/md5

8. 挂载

vim /etc/fstab

# 在最后添加,挂载到 /data 目录中
/dev/md5 /data ext4 defaults 0 0

# 保存退出后,再使用挂载命令
mount -a
1
Pve
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区