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

相关推荐
孫治AllenSun几秒前
【Doris】运维命令
运维·服务器·网络
我科绝伦(Huanhuan Zhou)12 分钟前
Oracle控制文件、SCN与检查点机制深度解析及数据库初始化原理
运维·数据库·oracle
杨云龙UP35 分钟前
从0到可落地:Oracle RMAN异地NFS备份标准脚本(多实例通用)
linux·运维·数据库·oracle
黑客思维者41 分钟前
嵌入式系统DevSecOps深度设计:构建固件级漏洞免疫体系的自动化管道
运维·自动化·devsecops·嵌入式系统
古城小栈41 分钟前
吃透Cron表达式
linux·服务器·数据库
猫猫的小茶馆1 小时前
【ARM】BootLoader(Uboot)介绍
linux·汇编·arm开发·单片机·嵌入式硬件·mcu·架构
Yeliang Wu1 小时前
LLaMA-Factory 模型评估理论与实战:基于 Ubuntu 22.04 的系统化指南
linux·ubuntu·llama·评估·llamafactory
生信大表哥1 小时前
单细胞测序分析(十一)轨迹分析
linux·rstudio·数信院生信服务器·生信云服务器
躺着听Jay1 小时前
【1267 - Illegal mix of collations 】mysql报错解决记录
java·linux·前端
不秃头的帅哥2 小时前
程序地址空间(基于c++和linxu的一些个人笔记
linux·开发语言·c++·操作系统·内存空间