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

相关推荐
轻松Ai享生活5 小时前
5 天学习 Linux Kernel 主要原理 | Day 3:内存管理与Swap机制
linux
轻松Ai享生活5 小时前
QAT 与 GPU 在SHA-1 运算中的优劣
linux
行思理5 小时前
linux 安全与防护,全方向讲解
linux·安全·github
tan180°6 小时前
Boost搜索引擎 查找并去重(3)
linux·c++·后端·搜索引擎
yongui478346 小时前
CentOS系统如何查看当前内存容量
linux·运维·centos
xzq_java7 小时前
CentOS操作系统虚拟机安装以及连接工具下载和远程连接工具远程连接
linux·运维·centos
ZLRRLZ8 小时前
【Docker】Docker安装
运维·docker·容器
逐梦吧!旅行者8 小时前
Linux之环境变量(内容由浅入深,层层递进)
linux·运维
IOT-Power8 小时前
树莓派 Ubuntu 24.04 开机换源总结
linux·数据库·ubuntu