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)
  • lsblk、smartctl 获取的信息也可能不完整
  • 无法区分底层物理盘是 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 系统上,可以用 rotational、lsblk、smartctl 来区分 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

相关推荐
CrazyMo_4 小时前
鸿蒙高级——内存专用之linux-reserve-memory 方案简介
linux·运维·服务器
Sammyyyyy4 小时前
jev-ultrafast 实战:浏览器操作代理加本地 AI 网关,把云控制台配置做成自动化流水线
运维·人工智能·自动化·ai编程·servbay
灯澜忆梦4 小时前
【Linux】#5 | 文件与目录基础操作命令
java·linux·运维
逐梦之程4 小时前
EXCEL与DBC格式互转软件
运维·服务器·网络
yychen_java4 小时前
第十二篇:完整项目实战——构建可验证的能源智能运维 Agent 中枢
运维·人工智能·能源
9624564 小时前
餐饮 SaaS 优惠券系统架构演进(七)营销定价引擎设计:活动、会员价、优惠券、买赠如何在同一 PriceQuote 中可解释地组合
java·运维·算法
Frank_refuel5 小时前
分布式IoT数据采集与存储系统(项目复盘)
运维·服务器
wuminyu5 小时前
stackChunkOop内部结构与GC屏障的配合工作原理剖析
java·linux·c语言·jvm·c++
青衫客365 小时前
从网卡到 Socket:再探 Linux 网络协议栈与 iptables 数据包处理流程
linux·网络·网络协议
承渊政道5 小时前
Linux网络学习【TCP Socket编程实战:connect的断线重连与客户端访问Linux验证】
linux·网络·学习·ubuntu·tcp·socket编程