Linux 物理机如何区分 SSD 与 HDD ——以 DELL PERC H730 Mini 为例

文章目录

  • [Linux 物理机如何区分 SSD 与 HDD ------以 DELL PERC H730 Mini 为例](#Linux 物理机如何区分 SSD 与 HDD ——以 DELL PERC H730 Mini 为例)
  • 常见方法(直通盘场景下有效)
    • [通过 rotational 标志](#通过 rotational 标志)
    • [通过 lsblk](#通过 lsblk)
    • [通过 smartctl](#通过 smartctl)
  • 为什么在企业级服务器上这些方法可能不准?
  • [正确方法:使用 PERC CLI 工具](#正确方法:使用 PERC CLI 工具)
  • 总结
  • [附 perccli包如何从官方下载](#附 perccli包如何从官方下载)
  • [🚀 安装 perccli 方法](#🚀 安装 perccli 方法)
    • [从 Dell 官方下载](#从 Dell 官方下载)
    • [使用 rpm 安装](#使用 rpm 安装)

Linux 物理机如何区分 SSD 与 HDD ------以 DELL PERC H730 Mini 为例

在 Linux 系统中,我们经常需要确认一块硬盘究竟是 固态硬盘 (SSD) 还是 机械硬盘 (HDD) ,以便做合理的存储规划和性能评估。

在直连硬盘的场景下,方法很简单,但在企业级服务器(例如 DELL 服务器配合 PERC RAID 控制器)上就容易遇到"看不准"的情况。本文结合 PERC H730 Mini 控制器,介绍几种常见方法。


常见方法(直通盘场景下有效)

在没有 RAID 控制器干预时,可以直接在 Linux 下查看硬盘类型。

通过 rotational 标志

bash 复制代码
cat /sys/block/sda/queue/rotational
  • 1 → 旋转磁盘(HDD)
  • 0 → 固态硬盘(SSD)

通过 lsblk

bash 复制代码
lsblk -d -o name,rota,model,size

示例输出:

复制代码
NAME ROTA MODEL               SIZE
sda     1 ST2000DM008-2FR1   1.8T  # HDD
sdb     0 Samsung SSD 860    500G  # SSD

通过 smartctl

bash 复制代码
smartctl -i /dev/sda | grep Rotation

输出:

  • Rotation Rate: 7200 rpm → HDD
  • Rotation Rate: Solid State Device → SSD

为什么在企业级服务器上这些方法可能不准?

DELL PERC H730 Mini 为例,它是基于 LSI MegaRAID 芯片的硬件 RAID 控制器。

当服务器通过 RAID 卡创建虚拟磁盘时,操作系统看到的并不是物理硬盘,而是 RAID 卡虚拟出来的逻辑卷。

因此:

  • /sys/block/*/queue/rotational 会统一显示为 1(即 HDD)
  • lsblksmartctl 获取的信息也可能不完整
  • 无法区分底层物理盘是 HDD 还是 SSD

正确方法:使用 PERC CLI 工具

安装 perccli

从 Dell 官方下载并安装 perccli RPM 包:

PERCCLI_7.2616.0_Linux.tar.gz

bash 复制代码
tar xf PERCCLI_7.2616.0_Linux.tar.gz
rpm -ivh perccli-*.rpm

工具路径一般在:

复制代码
/opt/MegaRAID/perccli/perccli64

查看控制器信息

bash 复制代码
/opt/MegaRAID/perccli/perccli64 show

输出会包含 RAID 控制器型号,例如:

复制代码
Model = PERC H730 Mini

查看物理磁盘信息

bash 复制代码
/opt/MegaRAID/perccli/perccli64 /c0 /eall /sall show

示例输出:

复制代码
EID:Slt DID State DG     Size Intf Med SED PI SeSz Model
32:0      0 Onln   0 1.818 TB SAS  HDD N   N  512B MG04SCA20ENY
32:1      1 Onln   0 1.818 TB SAS  HDD N   N  512B MG04SCA20ENY
32:2      2 Onln   1 1.745 TB SATA SSD N   N  512B INTEL SSDSC2KB019TZ
32:3      3 Onln   1 1.745 TB SATA SSD N   N  512B INTEL SSDSC2KB019TZ
32:4      4 Onln   1 1.745 TB SATA SSD N   N  512B INTEL SSDSC2KB019TZ
32:5      5 Onln   1 1.745 TB SATA SSD N   N  512B INTEL SSDSC2KB019TZ

其中 Med 字段即为硬盘介质类型:

  • HDD → 机械硬盘
  • SSD → 固态硬盘

总结

  • 在普通直通硬盘的 Linux 系统上,可以用 rotationallsblksmartctl 来区分 SSD 和 HDD。
  • 在企业级服务器上,若使用 硬件 RAID 控制器(如 DELL PERC H730 Mini),这些方法可能失效。
  • 此时需要使用 Dell 官方工具 perccli 或进入 RAID BIOS (Ctrl+R),才能看到底层物理磁盘的真实类型。

这就是为什么在数据中心环境下,很多运维人员会误判硬盘类型的原因。


附 perccli包如何从官方下载


🚀 安装 perccli 方法

从 Dell 官方下载

通常下载到的是一个 RPM 包,例如:

复制代码
perccli-007.1613.0000.0000-1.noarch.rpm

使用 rpm 安装

假设你已经把 perccli 的 rpm 包放到服务器上:

bash 复制代码
# 安装 rpm 包
rpm -ivh perccli-*.rpm

安装完成后,一般路径在:

复制代码
/opt/MegaRAID/perccli/perccli64

相关推荐
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑1 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒1 天前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号1 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行3 天前
Linux和window共享文件夹
linux
木心月转码ing3 天前
WSL+Cpp开发环境配置
linux
蝎子莱莱爱打怪4 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes