nvme ssd 对NVMe SSD热插拔时,我需要注意什么

nvme ssd 对NVMe SSD热插拔时,我需要注意什么,第1张

省去了控制器的NVMe比SAS/SATA的热插拔要复杂的多。在进行热插拔测试之前,第一步就是要确认当前的系统是否支持热插拔。
1,确认SSD的支持
对于SSD,热插拔需要保证在插盘的过程中不会产生电流波峰而损坏器件;拔盘的时候,不会因为突然掉电而丢失数据。这个可以向SSD供应商确定或者查看产品规格书。
2,确认PCIe卡槽的支持
上面提到,NVMe是直接连接到PCIe Bus上的,U2接口也是直接跟PCIe相连(当判断插入的设备为NVMe SSD时)。某些U2接口内部连接的PCIe卡槽并不支持热插拔。PCIe Spec规定了热插拔寄存器。下图(通过lspci -vvv获取)显示了一个PCIe卡槽的Capabilities寄存器信息。其中LnkSta,SltCap,SltCtl和SltSta 4个部分在热插拔过程中比较有用(具体意义请参考PCIe Spec)。HotPlug和Surprise是最基础的判断热插拔的标志位。SltSta中有一个PresDet位指示当前是否有PCIe设备插入卡槽。
3,确认 *** 作系统的支持
PCIe热插拔并不是完全由 *** 作系统处理的,也有可能由BIOS处理,这完全取决于服务器BIOS的设计。当 *** 作系统启动时,会根据ACPI提供的信息来了解到底由谁处理PCIe热插拔。如果由 *** 作系统处理,则会根据PCIe卡槽发送的中断获知热插拔事件。对于Linux系统来说,一般使用pciehp驱动来干这件事情。所以,最简单的判断方法就是看系统中是否注册了热插拔中断服务程序。
对于Linux的NVMe热插拔支持将会单独用一篇文章讲解,此处不再多说。
4,确认NVMe驱动的支持
与其说驱动的支持,不如说驱动中是否有Bug。Linux内核提供了NVMe驱动,但是在实际的测试中,驱动的处理不当容易导致系统Crash和Hang住。产生这些问题的原因基本上可以归纳为NVMe驱动release设备和pciehp release设备产生竞争,出现空指针;NVMe驱动release设备时,上层调用sync函数导致进程block住。这个最好跟SSD 厂商沟通好自己的测试环境,以便提前了解可能出现的问题。
如果这些环节都通过,基本上可以确认当前的系统可以进行热插拔了。但是目前,Linux系统和PCIe热插拔驱动存在不少问题,我们在 *** 作中还需要避免出现下面的情况:
避免在一个服务器上短时间内频繁地(或者同时对多个设备)进行热插拔 *** 作
原因:这是pciehp驱动中热插拔处理的bug,centos7都没有解决。
潜在的问题:可能导致pciehp进程block住,之后插入的盘无法识别。
解决办法:当对多个盘 *** 作时,顺序进行热插拔,并打开pciehp的debug功能,通过dmesg获得pciehp热插拔处理进度。
避免对带有I/O的设备进行热插拔(尤其是启用了Cache的I/O)
原因:这是由于Linux Block层与PCIe热插拔的配合问题导致的。
潜在的问题:可能导致系统某些进程block住,或者系统crash。
解决办法:通过设置卡槽的power值,在拔盘之前通知 *** 作系统先移除设备。
避免对已经mount文件系统的设备进行热插拔
原因:mount无法感知热插拔事件。
潜在的问题:文件系统无法使用,数据丢失。
解决办法:提前umount文件系统。
按照上面的方法,能够避免绝大多数问题。但是还是可能出现错误,尤其在一些新的服务器厂商的产品中,由于兼容性问题导致NVMe设备无法识别。那么我们可以通过卡槽的Capabilities寄存器信息判断。如果设备没有被PCIe系统正确识别,那么就需要咨询厂商了。
总结
这篇文章主要介绍了在进行NVMe SSD热插拔时需要注意的事项。首先,我们检查系统是否支持NVMe热插拔,然后避免出现上面提到的3种情况。PCIe目前还无法做到如SATA/SAS一样的支持力度,这个需要服务器厂商和SSD厂商共同推进,相信在未来会越来越好。用户在这个阶段,只有尽量和厂商多沟通,才能避免 *** 作中造成系统崩溃,数据丢失等风险。

SATA供电接口从规划上就考虑到了对热插拔的支持,不一样针脚的长短不一,是为了在插拔时接通顺序上有一个延迟。

SATA供电线共有15个针脚,从左至右编为1-15:

不一样针脚的定义如下图所示,为了分担供电压力,5V与12V分别有两路并联提供,另有接地针脚和一路预充电针脚比其他针脚更长一些,用于提前接通给硬盘中的电容预通电降低峰值电流。可以说SATA的硬件标准规划之初已经对热插拔特点提供了充足的支撑。

在一些设置项比较完善的主板BIOS设置当中,我们能够看到各个SATA端口的Hot Plug选项,默认情况下Hot Plus热插拔选项都是设定为Disable(禁用)的,我们将ToshibaA100 120G所处的SATA端口Hot Plug设置更改为Enable(启用),然后F10保存退出,重新启动进入系统。

开启Hot Plug之后,对应端口的固态硬盘就会变成可移除设备,在Win通知栏区域出现相似于U盘的d出设备选项:

在d出ToshibaA100固态硬盘之后,相应分区从电脑中消失,设备管理器中可看到A100由于已“安全删除”而无法运用,拔出后重新连接即可重新被识别。

在主板BIOS设置中开启Hot Plug热插拔属性之后还会带来一个副作用,那就是固态硬盘的LPM节能将会随热插拔的开启而关闭,从而避免热插拔时数据遗失或重新连接时失去响应。

   

1、将长时间不用得应用程序或内存交换到硬盘中,而释放出一部分内存空间供其他应用程序使用,提高计算机的性能。
2、 *** 作系统会定进行内存碎片整理,将应用程序中零散的内存收集起来重新分配,减少内存碎片。
3、 *** 作系统已经为该内存重新分配了物理地址,而原内存分配给了其他应用程序。

PCIE固态硬盘是采用了PCIE接口的高速固态硬盘,硬盘通过PCIE数据接口直接从总线与CPU直连,省去内存调用硬盘的过程,传输效率与速度都成倍提升。相比传统的SATA或者M2固态硬盘,PCIE固态硬盘拥有无法匹敌的传输速度。以下是对PCIE固态硬盘以及它和传统固态硬盘的区别介绍:1、传统的SATA接口或者M2接口的固态硬盘都需要先将数据会从硬盘读取到内存,再将数据提取到CPU处理,然后再依次返回到内存和固态硬盘中存储。而PCIE固态硬盘则直接通过总线与CPU直连,省去了内存调用硬盘的过程,传输效率与速度都成倍提升。
2、PCIE固态硬盘在接口传输速度上有着其他类型接口的固态硬盘无法匹敌的优势。PCIE接口的最大传输速度为16Gbps,实际传输速度为1560MBps。SATA接口的最大传输速度为8Gbps,实际传输速度为560MBps。

将PCIe插槽转换为M2 SSD插槽是一种将高速存储器件连接到服务器的方法,这种方法比传统的SATA接口和SAS接口更快和更有效率。下面是将PCIe插槽转换为M2 SSD插槽的步骤:
确认服务器的PCIe插槽类型。M2 SSD通常使用PCIe NVMe协议进行连接,因此,服务器的PCIe插槽应支持NVMe协议。
购买PCIe转M2 SSD适配器。适配器应该与服务器的PCIe插槽兼容,并支持所需的M2 SSD类型和长度。
关闭服务器并断开电源。打开服务器机箱,找到PCIe插槽,将适配器插入到PCIe插槽中。确保适配器牢固地插入,并正确对齐。
将M2 SSD插入适配器上的M2插槽。M2 SSD应该与适配器兼容,并正确安装在插槽中。
重新启动服务器并启动 *** 作系统。在 *** 作系统中,识别M2 SSD并确保其正常工作。
需要注意的是,将PCIe插槽转换为M2 SSD插槽可能需要适当的技术知识和 *** 作经验。在进行此类 *** 作之前,建议先了解相关知识,或请专业人员提供帮助。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zz/12910189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存