You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何识别Linux服务器是否启用RAID并查看原始硬盘总容量?

老哥,你这个情况太常见了——df -h显示的是挂载的文件系统容量,而RAID是把多块物理盘整合成了逻辑卷,所以肯定看不到单盘的原始总容量。下面给你一步步讲怎么排查RAID,以及算出真实的原始总容量:

一、先确认服务器是否启用了RAID

RAID分软件RAID和硬件RAID两种,排查方法不一样:

  • 软件RAID(基于mdadm)
    直接用这两个命令快速验证:
    • cat /proc/mdstat:这个系统文件会列出所有软件RAID设备(比如md0),同时显示RAID级别(raid0/raid1/raid5等)、组成RAID的物理盘(比如sda1sdb1)。如果输出里没有md开头的设备,基本可以确定没开软件RAID。
    • mdadm --detail --scan:这个命令会输出更详细的RAID配置,包括成员盘、总容量、运行状态等。
  • 硬件RAID(基于RAID控制器卡)
    硬件RAID由服务器自带的RAID卡管理,不同厂商有专用工具:
    • 戴尔服务器:用perccliomreport,比如perccli /c0 show all可以查看控制器0下的所有物理盘和逻辑盘。
    • 惠普服务器:用hpssacli,比如hpssacli ctrl all show config detail能输出完整的RAID配置。
    • 通用排查方法:
      • dmidecode -t storage:查看系统存储设备信息,里面如果有RAID控制器的条目,说明存在硬件RAID。
      • lsscsi:列出所有SCSI设备,硬件RAID下会区分出逻辑盘(比如[0:0:0:0] disk DELL PERC H730P Mini ...)和物理盘(通常是编号靠后的条目)。
二、查看硬盘的原始总容量

要算出原始总容量,核心是找到所有物理盘,再把它们的容量累加:

  • 最直观的命令:lsblk
    执行lsblk后,输出里TYPE="disk"的就是物理盘(比如sdasdbsdc),而TYPE="raid"TYPE="lvm"的是RAID逻辑卷/LVM卷,不用算这些。把所有disk类型的SIZE值加起来就是原始总容量。
    举个例子:
    NAME    MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
    sda       8:0    0  2.7T  0 disk
    sdb       8:16   0  2.7T  0 disk
    sdc       8:32   0  2.7T  0 disk
    md0       9:0    0  5.4T  0 raid5 /data
    
    这里原始总容量是2.7T×3=8.1T,而df -h显示的/data是5.4T(RAID5会损失一块盘的容量做校验,这就是你觉得容量不对的原因)。
  • 其他辅助命令
    • fdisk -l:列出所有磁盘的分区和容量,重点看Disk /dev/sda: 2.7 TiB这类行,累加这些数值即可。
    • smartctl -i /dev/sda:查看单盘的精确硬件信息,包括准确的容量,适合需要精准数值的场景。

内容的提问来源于stack exchange,提问作者it dev

火山引擎 最新活动