合 Linux下如何确认磁盘是否为SSD
简介
There are different types of disk drives available among which most used are Hard drive (HDD) and Solid State Drive (SSD). Starting from the Kernel version 2.6.29, SSD is automatically detected by Linux systems.
HDD : Hard Disk Drive, 机械硬盘
SSD : Solid State Drive,固态硬盘
首先学习一下 HDD 和 SSD 工作原理的区别:
HDD机械硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。
磁头沿盘片半径方向运动,盘片以每分钟几千转的高速旋转,这样磁头就可以定位在盘片的指定位置上进行数据读写。
信息通过离磁性表面很近的磁头,由电磁流改变极性的方式,被电磁流写到磁盘上,并可以通过相反的方式读取。
而SSD固态硬盘,内部构造则相对简单,固态硬盘内主体其实就是一块PCB板,组成部件分为:主控芯片、闪存芯片、固件算法。
SSD,在主控的指挥下,通过电学信号的传输完成对闪存芯片的读写操作;
所以,SSD的读写过程依靠的是电学信号,不需要旋转磁盘。
电学信号比物理机械运作快多了,因此固态硬盘的运行速度远胜机械硬盘。
而磁盘的旋转情况,可以通过查看 rotational
来获知结果。
因此可以通过查看 rotational
来判断 Linux 磁盘是 HDD 还是 SSD 。
比如对于 sda
这个设备,可以通过 cat /sys/block/sda/queue/rotational
得到结果:
1 :表示磁盘可旋转, 是 HDD ;
0 :表示磁盘不可以旋转 , 是 SSD 。
JBOD
JBOD(just a bunch of disks,简单磁盘捆绑),官方术语称之为“Spanning”,仅仅是表面上将多个驱动器合并成一个大的逻辑磁盘(类似lvm的pv)
原理:数据的存放机制是由第一颗硬盘开始依序往后存放,即操作系统看到的是一个大硬盘(由许多小硬盘组成的)。但如果硬盘损毁,则该颗硬盘上的所有数据将无法救回。若第一颗硬盘损坏,通常无法作救援(因为大部分文件系统将磁盘分割表(partition table)存在磁盘前端,即第一颗),失去磁盘分割表即失去一切数据,若遭遇磁盘阵列数据或硬盘出错的状况,危险程度较RAID 0更剧。它的好处是不会像RAID 0,每次访问都要读写全部硬盘。但在部分的JBOD数据恢复实践中,可以恢复未损毁之硬盘上的数据。同时,因为每次读写操作只作用于单一硬盘,JBOD的传输速率与I/O表现均与单颗硬盘无异。
方法
方法1:通过查看/sys/block/sda/queue/rotational
通过cat /sys/block/sda/queue/rotational
进行查看,返回0即为SSD;返回1 则表示磁盘可旋转,即为HDD。
查看所有磁盘:
1 | grep ^ /sys/block/sd*/queue/rotational |