企业NVMe 硬盘介绍
一 基础知识介绍
SSD硬盘介绍
SSD(Solid State Disk),即固态硬盘,相对于HDD没有机械部分,简单点说就是就是用固态电子存储芯片阵列而制成的硬盘
基本组成:控制芯片、存储芯片、接口、(固件)
SSD硬盘接口
SSD硬盘分类
企业级SSD硬盘全景图
SSD硬盘关键点
固态硬盘用来记录数据的闪存不能覆盖写入,只能先擦除后写入,这意味着固态硬盘时时刻刻必须有一定数量的已擦除好的预留空间用来接纳新的写入请求,即OP。
- SSD的容量:并不是实际物理容量,是指用户可用容量,用户可反复擦除的最大容量
- 冗余空间(OP):Over Provisioning,是指SSD提供超出用户可访问空间的NAND存储空间
- 寿命(DWPD):Drive Writes Per Day,即每日整盘写入次数,指再预期寿命内可每日完整写入固态硬盘所有容量的次数
SSD硬盘相对于普通硬盘优点:
- 启动快,无电机加速旋转过程
- 读写速度快,无需寻道,读写延时小
- 随机读取延迟小,寻址时间与数据存储位置无关,磁盘碎片不影响读取时间
- 防震抗摔性好,无噪音
- 芯片功耗低,发热低
NVMe硬盘产生背景
闪存速度上百倍提升,接口带宽成I/O最大瓶颈
在传统的存储架构里,由于硬盘访问速度的局限,以往通用的SATA和SAS接口完全能够满足硬盘的带宽需求,而随着新型存储器的发展,闪存速度上百倍的提升,接口的带宽就成为了I/O的最大瓶颈。可以说,闪存的优异性能将存储的瓶颈从介质转移到了接口。
PCIe接口逐渐代替SATA接口成为SSD的主选接口
- PATA(ParallelATA):一般为65MB/s
- SATA(Serial ATA)接口:SATA3.0带宽为6Gb/s,针对磁盘设计
- PCI-E(PCI Express)接口:PCIe3.0的带宽为8GT/s
- 点对点串行连接、单双工、带宽大
- 与CPU直接相连,,缩短了处理器到存储介质的物理通路
- 能充分利用FLASH的并发带宽
什么是NVMe?
固态硬盘已经在企业级领域大规模使用,尤其是PCIe 接口的高性能产品备受高端客户的青睐,不过产品形态与规格也是五花八门,缺乏通用性和互用性。为了推出统一的逻辑层通信协议,Intel、Dell等11家主流厂商在2011年共同发布了NVMe(Non-Volatile Memory Express)协议。
NVMe是一个可扩展的主机和控制器之间的接口,用于基于PCI Express的企业级的固态存储设备。NVMe协议定义了一个寄存器级的接口,主机端软件可通过该接口和非易失存储子系统进行通信。
NVMe规范的目标是提供一种标准的、可扩展的接口界面,实现基础架构的统一,释放PCIe 固态硬盘现在和未来的潜力。
NVMe特性
NVMe接口具有下述关键特性:
- 在命令发射和完成路径时,不需要不可缓存的寄存器读操作。
- 在命令发射路径上,最多需要一个寄存器写。
- 可支持多达64K个I/O队列,每一个I/O队列支持最多64K命令。
- 每一个I/O队列相关的优先级使用带优先级的轮转仲裁机制。
- 所有用于完成读写请求的信息都包含在64B的命令内,确保高效的I/O命令占用的空间较小。
- 在固态盘控制器中可实现的高效的、流水线化的命令集。
- 支持MSI/MSI-X和中断聚合。
- 支持多个命名空间。
- 健壮的错误报告和管理功能。
NVMe特点——多队列(管理/IO、提交/完成)
NVMe和AHCI的区别
AHCI:
为每个设备提供一个请求队列,队列最大深度32,对请求合并、排序都在此队列上完成。
缺点:请求队列锁、硬件中断、远程访问延迟高,导致扩展性差
NVMe:
每个核独享一对I/O队列,在访问自己的提交/完成队列时不会与其他核发生冲突,不需要上锁。最大队列深度64000,最大队列数64000
优点:
–减少对队列锁的竞争
–提高Cache的利用率
–提升了IOPS和并行性,充分利用硬件的带宽
–扩展性强
注:支持更大的队列深度和更多的队列数意味着存储设备的性能不会在接口上遇到瓶颈。
NVMe优势
NVMe优点一:延时更低
硬件层方面:PCI-E通道与CPU直连,不必连接南桥控制器,可以免去SATA与SAS接口的外置控制器(PCH)与CPU通信所带来的延时。
软件层方面:NVMe精简了调用方式,执行命令时不需要读取寄存器;而AHCI每条命令则需要读取4次寄存器,一共会消耗8000次CPU循环,从而造成大概2.5微秒的延迟。
NVMe优点二:IOPS更大
NVMe PCIe SSD可提供的IOPs(每秒读写性能)十倍于高端企业级SATA SSD。
理论上,IOPS=队列深度/ IO延迟,故IOPS的性能,与队列深度有较大的关系(但IOPS并不与队列深度成正比,因为实际应用中,随着队列深度的增大,IO延迟也会提高)。
NVMe优点三:能耗更低
PCIe 可直接与CPU 相连,没有了中间转接过程所产生的功耗;
在能耗管理上,NVMe 技术中加入了自动功耗状态切换和动态能耗管理功能,无需软件干预,NVMe 控制器在特定空闲时期后即自动切换为较低功耗状态。
PMC的NVMe控制器还提供了动态能耗管理接口,允许通过固件来有效管理功耗及性能。
NVMe标准技术趋势
NVMe硬盘分类
NVMe硬盘-U.2
U.2接口的原名叫SFF-8639,是Intel的杰作,它的本质是SATA Express,SATA-E的物理接口由SATA 6Gbps接口改造而来。它(SATA-E)接口的结构是这样的,2个SATA 6Gbps接口加上4pin针脚的mini版SATA接口,其中的小接口只能接PCI-E线,这样做的原因是SATA-E硬盘很少,考虑到兼容问题于是采取了这种接口方案。
作为高速固态硬盘之一,同样的U.2固态硬盘支持NVMe协议,走PCI-E 3.0 x4通道,与M.2 M KEY盘一样,它的理论传输速度高达32Gbps,与普通SATA相比它的速度超过了后者接近六倍之多。
注意,U.2/SATA/SAS的外观均差不多,U.2是接口均有金手指,SATA就只有一面,sas有一面加凸出来的一部分。
这里上点图,以便对比
NVMe硬盘-M.2
M.2以前称为下一代外形(NGFF),是内部安装的计算机扩展卡和相关连接器的规范。M.2接口有两种类型:Socket 2和Socket 3,其中Socket2支持SATA、PCI-E X2接口,而如果采用PCI-E ×2接口标准。而其中的Socket 3可支持PCI-E ×4接口
二 硬盘连接方式
常见接口类型与连接方式
接口类型:
硬盘接口:参考前面章节
背板接口(硬盘端): SATA 、SAS、U.2
背板接口(主机端):SATA、 SAS、 MINISAS、Oculink、Slimline
线缆接口:SATA、SAS、MINISAS、Oculink、Slimline
主板接口: SATA、SAS、MINISAS、Oculink、Slimline、PCIE插槽
连接方式:
主板->SAS卡/Raid卡(板载/外插)/Retimer卡->数据线(SATA线/SAS线/MINISAS线/Oculink线/Slimline线或互转线缆)-背板(SATA/SAS/MINI SAS/Oculink/Slimline)->硬盘
注意: 1.不同接口使用相同协议信号时可以互相转换,如SAS转SATA线缆,Oculink转SAS线缆,PCIE转Oculink线缆 2.高级协议项一般兼容低级协议,如SAS兼容SATA
U.2硬盘连接方式举例-NF5280M5
U.2硬盘连接方式举例-NF8480M5
M.2硬盘连接方式举例-SA5212H5
三 常见问题处理
序号 | 问题 |
1 | 各厂家PCIE ssd故障诊断工具,判断方法 |
2 | Smart信息判断硬盘故障的方式和阈值范围 |
3 | U.2 硬盘如何根据日志中的故障信息pcie bus-func-dev 号码推断出物理槽位 |
4 | pcielink_width is x2, but require is x4.一般是硬盘还是链路,具体分析方法 |
5 | U.2接口硬盘系统下的设备名/dev/nvmex背板的slot号对应关系 |
6 | NVMe硬盘是否有漂盘问题 |
7 | 如何查看nvme的firmware和原厂sn |
8 | U.2接口和PCIE接口的NVMe,都有哪几种方法定位报错硬盘的实际物理槽位 |
9 | NVME SSD是否支持安装操作系统 |
10 | SSD硬盘寿命到期的判断方法 |
11 | NVME使用VMD的用途以及配置阵列的原理和方法 |
PCIEssd故障诊断工具收集-intel
Intel使用issdcm工具,需要系统先安装issdcm包
issdcm -drive_list查看硬盘的index
使用如下指令可以查看硬盘的相关信息,其中X是硬盘的index
issdcm -drive_index X -smart SMART and all available logs
AIC\U.2: issdcm -drive_index X -get_log 2 SMART/Health Information
issdcm -drive_index X -get_log202 SMART Attributes
issdcm -drive_index X -get_log197 Temperature Statistics
issdcm -drive_index X -read_nlog nlog.bin nlog
PCIEssd故障诊断工具收集-Samsung
使用Samsung工具DCToolkit
PCIEssd故障诊断工具收集- Micron
使用msecli工具
Command | Parameters | Description |
msecli –L | -d –P –i –a –n <device> | Lists basic information for all micron NVMe drives in the system |
msecli –S | -i -a –n <device> | Lists SMART values for the supported parameters |
msecli –M | -i <value> -w <state value> -n <device name> | Manages Micron NVMe drives |
msecli –D | -n <device name> | Displays the driver and host information for given device name |
msecli –C | -I –a <namespace id> -n <device name> | Displays the identify device controller/namespace details |
msecli –F | -U <firmware file> -n <device name> | Updates controller FW of the specified device |
Msecli –P | <zip file name> -n <device name> | Collects debug data from drive |
Msecli –N | -l [-c –b] <namespace size> -a <lba index> … etc | Manages the namespace on Micron NVMe drives (see user guide for more details) |
Smart信息判断硬盘故障的方式和阈值范围-NVMe
- Critical_warning :
- 此项为0,此项>0说明SSD有比较严重问题的警告,不一定是SSD有问题,比如下面的温度超过70C,也会出现报警,需要具体问题具体分析;
- Temperature :
- 此项小于70C
- Available_spare :
- 此项大于5%(不全是)
- Percentage_used:
- 此项建议95%,此项代表盘的寿命,初始为0,会随着写入量而逐渐升高,如果这项写完,也会在critical_warning中体现出来
- Media_errors:
- 此项建议作为日常监控,此项数值增加也不一定是SSD有问题,也有可能是前端链路问题,建议具体问题具体分析
U.2 硬盘如何根据日志中的故障信息推断出物理槽位
pcielink_width降低一般是硬盘还是链路,具体分析方法
这个问题比较复杂,链路问题或者硬盘问题都有可能,链路问题可能性更大,首先看问题是几率性的还是稳定复现的。先看问题是稳定复现还是几率性的
1)如果是稳定复现,一般考虑是部件原因,背板转接卡线缆等更换一下
2)如果是几率性的看看连接器是否插牢。分析时可以先看系统相关日志看是否有相关记录,再通过交叉验证确定问题出现是否跟着某个部件走,如果纯随机出现就通过模拟问题出现的场景看问题原因。
分析链路问题甚至是NVMe硬盘不识别问题,其实和普通硬盘链路问题类似,首先需要考虑连接方式:
CPU->主板->SAS卡/Raid卡(板载/外插)/Retimer卡->数据线(SATA线/SAS线/MINISAS线/Oculink线/Slimline线或互转线缆)-背板(SATA/SAS/MINI SAS/Oculink/Slimline)->硬盘
NVMe硬盘接触问题也可能会导致带宽变低,可以尝试重新拔插链路
U.2接口硬盘系统下的设备名/dev/nvmex背板的slot号对应关系
- 1. 点亮硬盘灯
- Badblocks 命令:badblocks /dev/nvme0n1
- 或者读数据:dd if=/dev/nvme0n1 of=/dev/zero bs=512k count=10000
- 2. 按照系统下顺序号
- 3. 按照物理槽位找对应关系
NVME SSD是否支持安装操作系统
安装时只要识别到硬盘即可正常安装系统,但要注意一些定制OS可能 不支持安装到nvme硬盘上。
SSD硬盘寿命到期的判断方法
NVME:
判断寿命到期可以查看percentage_used,此SMART项是SSD“已经写入量/(NAND的可擦除次数*SSD容量)”一个比值,此项接近100%代表寿命耗尽,建议监控值在95%(此值可以允许>100%),下图为NVME协议中对其定义;
NVME使用VMD的用途以及配置阵列的原理和方法
VROC = Virtual RAID on CPU
VMD = Volume Management Device
因此VMD是Intel Skylake-SP CPU上的额外逻辑,使处理器能够将16个PCIe lane上的4个PCIe x4 PCIe SSD分组成单个PCIe盘。 每个CPU有三个VMD控制器。
虽然引导RAID盘支持仅限于单个VMD,但可以把PCIe交换芯片添加到下游,创建可能超过4个SSD的可引导RAID。如果不做系统盘,那么,VROC还能继续扩展,在多个VMD之间,甚至跨越CPU!
在 BIOS VMD配置界面中,raid、磁盘基本信息、属性检查
测试目的:检查VMD配置界面中,磁盘的基本信息、属性,以及raid状态、模式等
测试步骤:
记录NVME SSD的序列号
进入bios setup界面,进入processoràIIO configurationàintel@ VMD technology界面,分别将NVME对应的VMD port enable。;
注:每颗cpu有三个nvme switch,即PSstack,每个switch可扩展4个NVME SSD设备,测试前可与研发沟通NVME接口与VMD port的对应关系,针对性的enable相应的port,或者所有port 全部打开,重启。
进入bios setup界面,avvancedàintel(R) VROC with VMD technologyàall intel VMD controllers,观察RAID Volumes、硬盘型号、硬盘容量、硬盘数量、硬盘顺序、硬盘序列号、硬盘状态等是否正确。
通过标准:VMD配置界面下,RAID Volumes、硬盘型号、硬盘容量、硬盘顺序、硬盘序列号、硬盘状态等都符合实际系统配置。
作者:佛西
链接:https://foxi.buduanwang.vip/yj/776.html/
文章版权归作者所有,未经允许请勿转载
如需获得支持,请点击网页右上角
奇衡三