虚拟机里做RAID,核心思路是先把物理磁盘完整交给虚拟化层,再在虚拟机内部或宿主机层面完成阵列逻辑;具体操作分RAID卡直通、软件RAID、虚拟机内软阵列三条路,不同路线的配置步骤和风险点差别很大。
虚拟机RAID设置步骤详解
先澄清一个容易混淆的概念:虚拟机里的RAID,不是给虚拟磁盘文件做阵列,而是让虚拟机内的操作系统或宿主机直接管理物理磁盘,很多人一开始会把虚拟磁盘当成物理硬盘去配RAID,结果发现性能反而更差,原因就在这儿。
先分清两种RAID归属层面
- 宿主机层面:RAID由物理机的阵列卡或BIOS接管,虚拟化层(比如VMware ESXi、KVM)看到的是一个已经组好的大磁盘,虚拟机无需关心底层结构。
- 虚拟机内部层面:物理磁盘通过直通或RDM映射给某一台虚拟机,由虚拟机内的操作系统自己做软RAID,或者是先在宿主机上建好RAID卷,再以虚拟磁盘形式挂给虚拟机。
大多数生产环境的做法是前者,后者用于测试或节约硬件成本,具体用什么,参考后面的对比模块。
方案A:RAID卡直通(硬件RAID)
RAID卡直通的适用场景是:这台虚拟机需要独占磁盘性能,或者跑的是对IO延迟极敏感的业务(比如数据库)。
操作步骤如下:
- 物理机上安装好RAID卡和硬盘,先进阵列卡BIOS(一般是开机按Ctrl+R或Ctrl+H)。
- 在阵列卡BIOS中把需要直通的磁盘创建为单盘RAID0卷,每个物理盘对应一个虚拟盘。
- 保存退出,进入虚拟化平台管理界面,比如VMware vSphere Web Client。
- 在主机管理中找到“PCI设备”或“直通设备”列表,找到阵列卡对应的PCI地址,开启直通。
- 将该直通设备添加到目标虚拟机的硬件配置中。
- 虚拟机开机后,操作系统里应当能看到完整的磁盘控制器,然后继续安装驱动、建盘符或分区。
这也解释了为什么很多人搜“虚拟机raid性能 为什么这么低”因为多数人没做直通,用的是虚拟磁盘,底层IO已经经过了一层调度。

方案B:宿主机软件RAID(以ESXi为例)
ESXi本身不内置软件RAID模块,但可以通过Linux虚拟机加直通的方式实现,更常见的变体是:物理机上有多个磁盘,先由ESXi的存储层聚合,再用VMFS格式化,然后每台虚拟机拿到的都是同一块大存储盘上的文件,这种不算真正意义上的RAID。
真正要在ESXi层面搞软件RAID,多数人会装一台带磁盘直通的虚拟机,在虚拟机里的Linux上用mdadm完成,具体命令如下:
lsblk # 确认磁盘设备名 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd mdadm --detail /dev/md0 # 查看阵列状态
注意,上述步骤的前提是磁盘已经成功直通给虚拟机,并且虚拟机内能看到除系统盘以外的多个裸设备。
方案C:虚拟机内部用Windows镜像卷或Linux LVM
不触碰物理直通,直接在虚拟机上挂多块虚拟磁盘,然后用操作系统自带的软RAID功能组阵列,适合测试环境,或者对硬件成本敏感的小型项目。
Windows Server里的操作路径简单明了:
- 打开“服务器管理器”“文件和存储服务”“磁盘”。
- 右键需要加入阵列的磁盘,选择“新建镜像卷”或“新建奇偶校验卷”。
- 按向导添加成员磁盘,设置容量,完成初始化。
- 如果用的是Windows 11或Windows Server 2026,也可以直接用“存储空间”功能,选“奇偶校验”模式。
Linux下则用LVM的镜像或mdadm搞定,不重复啰嗦。
虚拟机做RAID要注意什么
这里说的是多数人踩过的坑,逐条对照自己的环境检查,能省去不少返工时间。
引导盘永远不要参与软件RAID
虚拟机的系统盘如果参与mdadm或Windows动态磁盘阵列,一旦阵列降级或需要重启,引导过程会变得极其脆弱因为引导加载程序可能无法识别软RAID卷,行业共识认为,引导盘保持独立,数据盘做阵列,是最稳妥的组合方式。
直通模式下不要动排程和缓存

RAID卡直通后,虚拟化平台不再管理这块磁盘的缓存策略。如果阵列卡没有电池或电容保护,务必把写缓存设为Write-Through,否则意外断电可能丢数据,很多人在VMware里开了Write-Back,觉得性能很爽,结果断电后整个阵列直接损坏,教训相当惨痛。
虚拟磁盘模式选厚置备,别用精简
如果虚拟机使用的是虚拟磁盘VMDK文件做软RAID,创建虚拟磁盘时记得选“厚置备延迟置零”或“厚置备置零”,精简置备在遇到快照或扩容时会大幅增加IO延迟,对阵列的稳定性有潜在影响。
关注SCSI控制器类型
虚拟机里做软RAID时,磁盘控制器尽量统一使用LSI Logic SAS或VMware Paravirtual(PVSCSI),不要混用,混用不同类型控制器的磁盘在Windows磁盘管理里很可能无法加入同一阵列组。
把握磁盘数量的性能边界
软件RAID的校验计算全部靠CPU。RAID5写性能受单核性能制约,如果虚拟机只有2个vCPU,跑大文件写入时你会发现CPU直接飙满,磁盘速度却上不去,这也是为什么生产环境仍然推荐硬件RAID卡,而不是在虚拟机里硬扛软阵列。
虚拟机软RAID和硬件RAID怎么选
这是一个比较高频的现实问题,没有绝对答案,取决于预算、场景和运维能力。
| 维度 | 硬件RAID(直通阵列卡) | 软件RAID(虚拟机内或宿主机) |
|---|---|---|
| 性能 | 高,尤其有缓存时 | 中,受CPU和中断开销影响 |
| 成本 | 高,需要额外购置阵列卡 | 低,直接用物理盘或虚拟盘 |
| 断电保护 | 阵列卡电池/电容 | 依赖宿主机UPS |
| 迁移性 | 换主机需同型号卡 | 仅依赖操作系统,可迁移性更好 |
| 适用场景 | 数据库、生产虚拟化集群 | 开发测试、中小项目、备份服务器 |

如果预算允许,核心业务虚拟机请选择硬件RAID卡直通,如果只是做文件服务器或温数据存储,那么虚拟机里的软件RAID完全够用。
另一个常被问到的问题是:虚拟机层面用的是ESXi还是KVM,会影响选择吗?会,但不大,ESXi对直通的支持比较规范,KVM的PCI Passthrough需要额外设置IOMMU,但在软件RAID方面两者都能跑得很稳。
关于虚拟机RAID设置的常见问题解答
虚拟机重启后RAID阵列不见了怎么办
优先检查直通设备是否仍然挂载在虚拟机上,再到虚拟机的磁盘管理或mdstat中确认阵列状态,硬件RAID卡直通的情况下,阵列信息存在卡上,不会因为虚拟机关机丢失,软件RAID则需要确认配置文件是否已持久化:Linux里写入/etc/mdadm/mdadm.conf,Windows里确认动态磁盘没有变成“外部”状态。
虚拟机RAID应该选RAID5还是RAID10
RAID5的空间利用率更高,但写性能一般,且在重建期间存在风险窗口,RAID10的读写性能稳定,恢复速度快,代价是一半容量,如果业务是数据库或有大量随机写入,选RAID10;如果只是文件存储,RAID5即可。多数情况下,虚拟机环境更推荐RAID10,因为虚拟机的IO模式比物理机更分散,校验计算开销不容忽视。
已建好的虚拟机可以做硬件RAID吗
可以,但前提是这台虚拟机不能直接改成物理磁盘启动,操作上需要新建一台虚拟机,把直通磁盘和新硬盘一起接入,在系统内做磁盘迁移或Data Replication,不能简单地在原虚拟机上直接增加直通磁盘后把系统盘放进去,据VMware官方文档说明,直通下的磁盘迁移需通过Storage vMotion或第三方工具完成。
虚拟机里配RAID并没有那么复杂,记住一条主线:先确定物理盘归谁管理,再配置阵列逻辑,最后检查缓存策略和引导方式,硬件直通适合追求性能的生产环境,软件RAID适合成本和灵活优先的场景,操作前做好数据备份,操作后及时监控阵列状态,基本就能把风险控制在可接受范围内。