开发者

Linux物理机区分SSD与HDD的常见方法

开发者 https://www.devze.com 2025-09-15 09:56 出处:网络 作者: XMYX-0
目录引言常见方法(直通盘场景下有效)通过 rotational 标志通过 lsblk通过 smartctl为什么在企业级服务器上这些方法可能不准?正确方法:使用 PERC CLI 工具安装 perccli查看控制器信息查看物理磁盘信息总结安装 pe
目录
  • 引言
  • 常见方法(直通盘场景下有效)
    • 通过 rotational 标志
    • 通过 lsblk
    • 通过 smartctl
  • 为什么在企业级服务器上这些方法可能不准?
    • 正确方法:使用 PERC CLI 工具
      • 安装 perccli
      • 查看控制器信息
      • 查看物理磁盘信息
    • 总结
      • 安装 perccli 方法
        • 从 Dell 官方下载
        • 使用 rpm 安装

      引言

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

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

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

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

      通过 rotational 标志

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

      通过 lsblk

      lsblk -d -o name,rota,model,size
      

      示例输出:

      NAME http://www.devze.comROTA MODEL               SIZE
      sda     1 ST2000DM008-2FR1   1.8T  # HDD
      sdb     0 Samsung SSD 860    500G  # SSD
      

      通过 smartctl

      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 官方下载并安装js perccli RPM 包:

      tar xf PERCCLI_7.2616.0_Linux.tar.gz
      rpm -编程ivh perccli-*.rpm
      

      工具路径一般在:

      /opt/MegaRAID/perccli/perccli64
      

      查看控制器信息

      /opt/MegaRAID/perccli/perccli64 show
      

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

      Model = PERC H730 Mini
      

      查看物理磁盘信息

      /opt/MegaRAID/perccli/perccli64 /c0 /eall /sall show
      

      示例输出:

      EID:Slt DID State DG   javascript  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 方法

      从 Dell 官方下载

      • Dell 官方支持站点:

        Dell PERC Command Line Interface (perccli)

        搜索 PERC H730 Mini,然后在 驱动与下载 里找到 SAS RAID Storage Manager / perccli 工具。

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

      perccli-007.1613.0000.0000-1.noarch.rpm
      

      使用 rpm 安装

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

      # 安装 rpm 包
      rpm -ivh perccli-*.rpm
      

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

      /opt/MegaRAID/perccli/perccli64
      

      到此这篇关于Linux物理机区分SSD与HDD的常见方法的文章就介绍到这了,更多相关Linux物理机区分SSD与HDD内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

      0

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      关注公众号