监测NVMe SSD的运行状况

NVMe技术中内置了许多功能,包括增强错误报告、日志记录、管理、调试和遥测。下面介绍如何管理NVMe SSD的状态和运行状况(比如在SSD发生故障时通知用户)。

下载演示:监测NVMe SSD的运行状况

00:03发言者1:嘿,伙计们,这是Jonmichael手,我是我们的数据中心NVME SSD的英特尔产品经理和战略规划师。我还联合了NVM Express营销工作组和SNIA SSD特殊兴趣小组。今天,我将谈谈监控NVME SSD的健康状况。这是一个关于一个主题的主题,我们在威尔博客帖子中对NVM发表的最近关于NVM表达的主题,我在审阅者上写出了来自审核人员的大量问题,如何如何失败,如何NVME SSD不同以及NVME的工具必须实时监控有关驱动器的健康和智能信息,以帮助诊断和监视NVMe SSD

所以,不用再多说了,我将带你们看一些有趣的事情,我认为,我看到,监测NVMe SSD的健康状况,仅仅是从经验中。我曾经在英特尔运行过一个验证团队,因此,很明显,我知道SSD的很多故障机制。

01:04 S1:二,我帮助了一下的工作和精炼,并根据许多客户反馈,根据所有合作伙伴的所有合作伙伴都在为整体规范贡献的所有合作伙伴提供了许多客户的反馈完成这些目标。

第一件事是ssd是如何失效的。其中一件事,你们知道这对监控ssd的健康状况非常重要因为很明显,越来越普遍的情况是,在哪里寻找可能出现故障的候选人。如果你想想大多数人认为SSD故障是由于耐久性或硬件故障,但实际上,如果你看看这个,这是一个非常非常小的百分比实际故障。一个是耐力,你可以用智能来监控它——好吧,我在展示智能日志的时候会讲一点——但是你有一个叫做在NVMe中使用的百分比,这基本上是一个汽油表,显示你使用的耐力百分比,你也有可用的备件和备用的备件,这是标准NVMe智能日志的一部分,你可以监控耐力。

02:04 S1:你也可以实时预测续航时间,只要你能够预测和建模一辆车的续航时间在五年的驾驶寿命中会是什么样子,基于工作量的样子,这很容易建模。我把模型写在intel.com/endurance基于一些Python脚本,这些脚本基本上是这样做的,基本上监控正确的含义并投射持久性。但基本上,在很多企业驱动的使用中即使每天有三分之一的驱动写代码,级别驱动是当今的主流驱动,持久失败并不常见,因为一,它们被理解得很好,二,大多数客户只是没有使用那么多的耐力——我们会在看一些案例研究时谈到这点。

另一件事是硬件故障。因此,在漫长的生命周期中,企业和数据中心NVMe SSD需要很长的时间才能上市,所以通常需要一年以上的生命周期,其中包括质量和可靠性测试、验证、硬件筛选、SSD控制器通电——我的意思是所有这些事情都会发生。

03:12 S1:和很多的硬件问题得到淘汰。而且我不会说他们不能存在,但事情像电容失效或电阻故障或ASIC的失败并没有那么普遍。现在,介质故障,现在实际的,因为你看看日益流行,现在,大多数企业级驱动器的设计实际承受介质故障用,所以大多数驱动器,现在企业级硬盘有类似板载XOR或RAID引擎 -或者你知道有些厂商称之为失败的地方 - 但基本上企业固态硬盘能够承受失败,所以不只是特定块或页面故障,而且整个芯片故障。因此,通常情况下,这不是一个很常见的故障模式,虽然有时候有很多的NAND或某事或坏的固件引起更多的媒体的失败比是正常的,所以它并不是说这是不可能发生的,但它是比什么是固态硬盘故障的1号的原因较为少见,它的固件问题。

04时12分S1:首先,这是因为NVMe和所有SSD固件都非常复杂,四处移动数据、进行垃圾收集、监控逻辑和数据传输ssd盘的物理映射和固件。只是SSD固件已经变得非常非常复杂,几乎所有我们看到的超过50%的故障实际上只是某种固件问题。在这种情况下,它的有趣,因为大部分的时间,没有什么实际问题驱动和优雅的重置,我们谈谈一些教师NVMe来帮助这个——你可以把车开回生命。但我们会讲解如何监控ssd的运行状况来确定,如果驱动器出现故障或疑似故障,如何确定故障所在?我们会讲一些东西,比如超温,不兼容性和性能,如果驱动器没有枚举或没有出现在PCIe总线上,你会怎么做?你是怎么算出来的?

05:13 S1:所以,有一对夫妇的案例研究,我在网上直播谈了许多。如果你去从头开始,想了解固态硬盘的可靠性- 这是我提到的是非常重要的,如果你想了解如何监视的健康 - 这是我建议阅读的论文。那么,这些,第一个是这样的,“基于NAND闪存的固态硬盘的可靠性。”这是写的一帮同事在英特尔,很多人实际上开创了可靠的方法,耐力方法,JEDEC测试依据您的实际监测和展示SSD的耐用性和质量的可靠性。然后其他纸是这个从FAS从去年NetApp和大约多伦多大学,“SSD的可靠性的大型企业部署的研究。”但是,这实际使用,我不记得了,它就像数以百万计的驱动器在外地是NetApp的从他们的客户有,他们有从他们在智能数据领域的初步数据回来。

06:10 S1:这项研究不是用NVMe ssd做的因为它基本上使用的是过去6年的驱动器研究中的大多数驱动器都是SaaS,但研究中有一些非常有趣的东西关于驱动器大小和故障率的相关性。再一次,这涉及到固件的问题固件变得更加复杂,它涉及到TLC和MLC之间的区别以及不同类型的三分之一的定向如果在这种失败之间有任何关联。但我在这项研究中看到的最有趣的事情是……

06:42 S1:一是ssd不太喜欢它。在这项研究中,他们的平均失败率远低于实际的200万小时MTBF,对应的0.44%推断。另一个是寿命,使用百分比。大多数客户只使用很小的一部分,比如SSD总续航时间的1%-5%,这就是为什么我提到续航时间,尽管初创公司是SSD的主要问题。这并不常见。

然后另外一个,我的老同事在英特尔,布伦南瓦,谁现在是在微软的SSD的建筑师和Azure存储组中的一个,他提出的FMS去年这个话题,基本上在SSD上是如何失败,什么都可以我们开始做做预测分析和机器学习到基本能够预防和实时监控这些事情。

07时30分S1:因此,我将在几张幻灯片中介绍一下微软为帮助实现这一功能所做的工作,但是NVMe有很多功能可以帮助实现基本的健康监控。因此,最重要的是智能日志页面。我们将讨论这一点,但这是驱动器的主要健康仪表盘。基本上,如果有人怀疑驱动器出现故障,在Linux或Windows或其他任何系统中,可能会出现各种信息,比如可能在应用程序、文件系统或堆栈中的任何位置发生的各种不好的事情。基本上,如果你想弄清楚事情是否有驱动器问题,智能日志是个不错的选择。

08:08 S1:它最重要的东西是一个叫做临界警告位. 现在这一点,如果你去的话查看NVMe SSD规范,你可以进去。如果你深入了解NVMe规范,就像刚才提到的最新规范一样,有一个get日志页命令。在get log page命令中,如果您往下看这里,就会看到智能健康信息。你可以点击它,它会把你带到桌子。这就是如何学习聪明。但基本上,这是你需要了解智能信息告诉你什么。现在,如果你进入Linux,我会给你看一个例子,命令会告诉你所有这些东西的意思,它会传递信息。但智能中最重要的东西实际上是这个关键的警告位,基本上如果这个位被设为任何非零的值,驱动器就有问题了,这是最容易检查的。

08:54 S1:如果您执行智能日志,而这个严重警告不是零,那么驱动器有问题。基本上,子位可以告诉你故障的位置和类型,是温度还是介质错误或其他什么。其余的智能日志,我可能会讲,但还有一些东西,比如复合温度,也就是温度大多数应用程序实际上把它转换成C而不是开尔文。你使用的百分比,就是我提到的耐力。可用的备用和可用的阈值,这些都是监视耐久性以及数据单位的读写。基本上,你可以看到有多少数据通过硬盘运行。通过所有这些智能属性,你可以真正地知道驱动器发生了什么等等。

09:34 S1:是的,我今天只有30分钟。所以,你只要去看看NVMe规范,它是开源的。基本上,它是免费的nvmexpress.org不必报名。这是现在最重要的事情。在那些其他日志页面中,有一些称为错误日志页面的东西,再次有意义,是用于监视错误。因此,当发生错误时,它将使用队列和其他信息登录到错误日志页面,这些信息有关错误发生的位置,这可以帮助人们调试NVME SSD上发生的情况。另一件事被称为持久事件日志。这是NVMe 1.4中的新功能,但它基本上是人类可读的时间戳事件日志。我向人们描述它的方式是它就像一个黑盒子,我会在几张幻灯片中更详细地讲解这些特性,所以不用担心。

10:20 S1:基本上,持久事件日志可以帮助记录发生的事情。所以,当你在操作一个系统或用户想回去说,“嘿,驱动器失败了。在那之前发生了什么?”他们可以自己去解决。“哦,我更新固件了吗?”我先格式化硬盘了吗?我停电了吗?驱动器怎么了?”我提到的最重要的事情是固件问题是SSD故障的首要原因。一种叫做遥测允许设备制造商在出现错误时基本上转储日志,然后现场人员可以转储该遥测日志,然后他们可以使用该日志。有一些遥测数据可用于健康监测,但遥测日志的主要目的基本上是收集故障的内部日志,将其返回给SSD供应商,然后SSD供应商可以修复这些问题、问题的根本原因、更新固件并修复错误。

11:13 S1:等等,我再次在网络广播中说明了这一点,如果要监控NVME SSD的健康,并且你想防止失败,你可以做的第1件东西是更新你的固件,因为固件是第1号原因失败,大多数供应商都花费了大量的时间和精力,验证和质量和开发来修复固件并使其更好。这部分整个NVM Express操作系统,它支持它的方式是这种异步事件支持。因此,基本上,当事情发生时,驱动器可以通知主机事件,这可以在不同的操作系统中使用,基本上触发Linux或事件日志中的De-Message中的内容。

54所以S1:但是异步事件可以让操作员知道什么时候出错。设备自检也是我们将要讨论的内容之一,它基本上是一种离线诊断测试。许多用例就像在工厂集成或测试中一样。当有人将驱动器从锁中取出并放入新系统时,或者如果他们在另一个系统中重新调整驱动器的用途,他们希望运行一个简短的测试以确保驱动器正常工作。因此,设备自检可以做到这一点。它可以进行离线诊断测试。它运行智能检查、介质检查、DRAM检查、电容器检查等等。当然,还有端到端数据保护。这与监控无关,更重要的是保护数据。这有点超出了今天讨论的范围,但是NVMe有很多东西可以防止错误,而不仅仅是监视。

12:47 S1:我提到了日志页面。孩子,我希望我今天有时间把这些都讲一遍作为今天演讲的一部分,但是我没有。你可以去下载NVMe规范来浏览所有这些。我要花很多时间在错误日志,智能日志和…对,就是这两个。我将稍微讨论一下持久事件日志。还有很多其他有用的东西正在进行,比如重建助攻的LBA状态信息和其他东西,但是……和消毒后的日志,但那些不是…对于一般的监视运行状况,智能日志基本上是第一个开始的地方。

这是我在桌面运行NVMe-CLI时的输出。这个命令很简单,它只是伪nvme smart-log/dev/nvme等等。如果您希望将其作为每个名称空间运行,您也可以将名称空间属性放在那里,但正如您所看到的,您已经转储了智能日志,并且您可以拥有所有的信息,这些信息完全是一对一匹配的……这里的智能定义和NVMe规范中的获取日志页智能运行状况信息。

13:53 S1:它将其转储,然后是NVMe CLI或Linux或其他应用程序中的smartctl等其他东西可以实际解析此信息。因此,通过这个关键警告位,您可以在这里看到,零是好的——这意味着驱动器运行正常,您知道,可用的99%备用空间,这是触发百分比使用的小备用阈值。我刚从英特尔公司的一个随机失效驱动器中取出的这个驱动器,它已经被打了很多次了,对吧?所以,你可以看到15%的使用率,它可能已经通过了十几个固件版本,所以你可以看到它记录了大量的媒体错误和不安全的关闭。

14:27 S1:所以,即使这个驱动器运行正常,每一个…所有媒体错误都记录在这里,如果它发生了,你就能找到它。如果它们不清楚,它们是持久的,那么您可以在错误日志页面中找到它。现在,如果你做一个伪NVMe errorlog/dev/nvme0或任何你的NVMe设备,它会转储整个错误日志条目。你会看到,如果有错误,你会有一个严重的警告,或者在这里的一些东西,表明你在驱动器上有错误。但如果你确实有错误,这是查找错误发生的地方。

15:04 S1:OK,然后其他事情的真正有趣的聪明,我要走过的一些温度的东西,但你有警告温度的时间可以告诉你如果开车已超过其热限制和它开始热油门,你知道,临界复合温度时间,热管理过渡时间。所以,你有所有这些不同的热属性来判断是否有驱动器过热的问题。很多人不知道这一点,但如果你的NVMe SSD过热,它不会立即冷却,它需要……有时需要很长时间才能冷却下来,尤其是在空气流量不足的情况下。所以,很多客户,一旦……如果有一些工作负载使驱动器上升到一个临界温度,你会立即在这里找到智能。这就涉及到温度监控NVMe SSD上需要做的一件事就是监控温度,新版本中有一些挂钩,新的Kernel Linux使得在其他应用程序上进行不同的监控变得更加容易,因为很多时候人们只是想监控驱动器的温度。

16:02 S1:这是开车,我知道实际上过热,所以我抓住它,聪明的日志后,基本上开车时过热,在临界温度时,聪明的日志关键警告改为Ox2,在这里你可以回顾关键警告,你知道,你基本上。如果温度大于或等于超温阈值或者小于中心等于低温阈值它就会被设为1。

下午S1:所以,驱动器运行正常,它超过了临界温度然后临界警告信号发出,告诉我们它是。然后它记录了时间,以分钟为单位在警告温度时间里,记录了它超过温度的时间。所以,再一次,智能有很多东西,但基本上,你知道,如果你在做…特别是像持续数小时的大块顺序写,这将加热驱动器,如果…如果你遇到了奇怪的失败,你会知道的。在这种情况下,当这个驱动器…在这个验证测试中,当驱动器过热时,驱动器取消数字。它做了它应该做的,热关闭。大多数汽车在达到临界温度时就会熄火。在英特尔的例子中,这个驱动器的温度是70摄氏度,这是一个复合温度。 And at 70C, it basically shut down and it was doing what it was supposed to do, is prevent from overheating the components and damaging them. So, again, if you see something like that, the temperature and smart is where they go.

十七36 S1:另一件事是,你知道,NVMe有管理的整个规范,它就是所谓的NVMe管理接口规范。所以NVMe MI基本上是针对一个允许带内和带外管理的规范。所以,带外管理意味着您独立于主机操作系统,对操作系统不可知。如今,这种带外管理可以通过PCIe供应商查找消息,也可以通过最常见的SMBus或IST向下到驱动器。很明显,这样做的好处是能够在带外提供更多的数据,所以如果在带内发生了事情。基本上,系统控制台或管理控制台可以查看驱动器并报告数据,即来自驱动器的智能数据,而无需通过操作系统。现在,我之前向您展示的方法,带内是非常好的,因为您可以从驱动器中获得您想要的所有信息。

18:28 S1:现在,带外的好处是非常明显的。所以,我亲爱的朋友,来自戴尔的奥斯汀·伯伦,他花了很多钱…他是NVMe Management Interface的工作人员之一,他给了我一些Dell iDRAC的截图。iDRAC9企业,这是戴尔服务器,我知道HPE有类似的,我认为他们称之为国际劳工组织,但基本上,所有这些不同的oem厂商有自己的工作带外管理控制台,并使用ssd NVMe-MI基本上监测带外的功能。所以,你可以通过独立于任何操作系统的web控制台运行它,这没关系。你知道,驱动器可以独立于任何流数据操作系统向这个web控制台报告信息,你可以在这里阅读关于iDRAC的所有信息。我给你们看一些关于ssd的信息,这是一个例子,如果一个驱动器坏了,这是它的样子。你可以监控这个带外,基本上从一个管理控制台甚至无需去操作系统,你可以点击驱动器,它会说,“哦,是失败”或者你可以找出如果作为PCIe谈判的的东西,如果不连接所需的速度,这是一个。

19:39 S1:PCIe 500,这是我们Intel的新一代驱动器,您可以看到它在第4x4代连接,这很好,但是的,这也是NVMe MI的用途。同样,这里只是一个示例,说明如果使用管理控制台,它会是什么样子。但这就是NVMe MI存在的基本原因。因此,像我猜想的客户、公司、原始设备制造商(如Dell)和其他原始设备制造商希望能够支持这种驱动器调试,而不必依赖于操作系统命令。因为,再次强调,操作系统很棒,它超级强大,但每个版本都有一点不同。不同的功能和窗口,他们希望能够通过联合管理实现这一点。因此,如果您想在操作系统之外对NVMe SSD进行运行状况监视,请通过OEM的管理控制台,或者如果您正在更新软件,NVMe MI是一个不错的选择。好的,是的,我们没有时间,20分钟。

20:44 S1:好的,遥测日志页面。所以,我提到的遥测日志页基本上是当SSD失败时,你可以读遥测日志页,有东西,你可以去在这个规格它不是…如果你实现这个,你可能想知道有主机发起和控制器启动和其他的事情在这个规范。基本上,我提到遥测遥测装置时,最重要的原因失败,有人可以运行这个遥测命令,将日志,这取决于他们想要的日志,有不同的数据区域日志可以多大,但基本上如果硬盘坏了,他们想把这回到SSD供应商或SSD开发人员或OEM谁,开始能够根源和调试中的问题和遥测墙是加密的。

有一些东西是人类可读的,但你可以,这取决于供应商,遥测命令和NVMe基本上说,“你开始转储数据,一旦你得到有效载荷。然后由谁转储它,将其发送到SCT以便更好地调试。

21:45 S1:这对NVMe来说非常重要。我们简要讨论,另一个是通过自测,我提到过如果你再利用一个司机,新的驱动到一个新的系统,你想确保一切正确的操作您可以运行设备自测,简短的测试应该是两分钟或更少的扩展。基本上,你可以…在设备的自检日志里写着大概需要多长时间。这取决于驱动供应商,但基本上这个测试基本上只是运行通过…厂商可以实现他们想要的特定设备自检,或者他们可以遵循NVMe规范中的例子,检查RAM,检查内存的智能检查阀,检查元数据,NVM完整性,数据完整性,媒体检查,驱动寿命,耐久性等等。

22:33 S1:所以 。。。是啊,如果你想知道一个简单的操作,这是一个NVMe 1.3功能,因此一些新的第四代驱动器和一些新的NVMe 1.3驱动器,也出将支持这一命令的。如果你有一个旧的NVMe驱动,可能不支持这一点,但它的NVMe的这些新功能之一。这只是一种生活的一个很好的质量为能够做一个简短,简单的测试。它提供了一个很好的记录,如果它完成,并能够识别,如果驱动程序是否工作正常。

另一件事是持久事件日志,所以,基本上,持久事件日志,就像我提到的,它有点像黑匣子的所有事情,发生在驱动器里有…不要太困惑,NVMe 1.4中有,还有一些其他的变化和未来的工作正在进行,以保护所有的建议,以增强那里的工作。

23:23 S1:我不打算一一介绍,但基本上我记得这只是记录驱动器上的事情,当它们发生时,有人可以转储这个持久性事件日志,它提供了一个可读的日志,其中包含驱动器上发生的所有事情的时间戳。

所以,我有很多问题。是的,我帮助我摆脱无效背景,帮助我摆脱做一般开发的人。我收到很多关于…的评论。好吧,今天大部分时间NVMe SSD都是在PCI Express上运行所以当你有错误的时候,孩子,这很棘手,对吧?我再次提到,它可能是一个文件系统,它可能是,它可能是你的应用程序,它可能是,在某些情况下,它可能是PCI Express,能够了解一些常见的调试功能工具有助于识别何时发生的事情。

有时在Linux中,消息肯定是你想去的地方,基本上有关于内核错误或驱动程序信息的所有信息,如果你有PCI总线失败或重试或高级层报告失败,他们会显示d-message如果你有…如果敌人的驱动不能在NVMe控制器上创建提示,或者因为某些原因读取失败或其他原因,这些就会出现在d-message中。

24:35 S1:您想要做的另一件事是lspci将为您提供PCI拓扑的详细信息。同样的,有时候你只需要知道如果一个设备没有达到预期的性能,会发生什么。也许它没有查找PCI Gen 3或Gen 4或驱动器支持的任何东西。也许它没有在四车道或八车道连接,不管驱动支持是什么,lspci会告诉你关于这个的信息。

然后是lsblk,这里有数以百万计的命令和Linux,我将和大家分享一些事情,比如驱动器是否已满或者内存是否已使用,比如df,du——这种用法你们可以发现是否有奇怪的事情发生——但,是的,无论如何,还有很多事情我今天无法谈论。

但这里有一些d-message的例子。基本上,如果你在PCIe nvme0中得到这样的消息,PCI函数可以指向那个PCIe树和lspci来找出它来自哪个设备。如果你看到暂停,这是…顺便说一下,我从一个老同事那里借了这张幻灯片…Busch现在在WD工作,他是NMVe的Linux开发人员之一,他是NMVe C线的区域开发人员之一。他喜欢NVMe驱动。他写了99999超过1000倍的控制器…是它搞砸了,不是操作系统。如果你看到一些奇怪的超时问题…好的,我认为这是工作,然后构建初始化。 You can see obviously somebody wrote initialization that was from the UK or whatever.

26:09 S1:但是,基本上,控制器没有确认启用序列。所以,如果你有一些奇怪的字段初始化,你看到了PCIe设备,但你没有看到NVMe设备和NVMe列表,那么它可能是一些奇怪的事情,初始化序列没有完成关闭,如果你…这在大驱动器上非常重要,因为大驱动器需要很长时间才能关闭。基本上,如果驱动器必须转储它们的元数据或有大的功率损失电容,你可能会看到类似这样的东西,设备关闭是不完整的,然后你会回到智能,智能属性监视器,这叫做不安全关闭。所以,如果发生这种情况,你会看到类似不安全关机的情况。

在这里,实际上,在制作这个演示时,我有一个奇怪的适配器,我使用这些m.2-to-u2的一个适配器一个,用于插入U.2桌面,驱动器是片状的,我弄清楚“哦,这很有趣。有一些PCI总线错误正在纠正,“这很有趣。是的,所以基本上,我最近在我看到它的几天前很近,我可以看到这只是D-Message的东西,你可以在那里找出事情是否出了问题。。。

27时20分我最喜欢的工具,抱歉,这基本上是我桌面的一些截图。我喜欢用这个奇怪的黑色屏幕,绿色文本与我的小黑客文本终端和Mac,但是你可以看到这基本上是两个命令,iostat和dstat,这些是我最喜欢的监控性能,有一百万个不同的应用程序可以使用监视性能。不过,iostat会告诉你如果你给它一个特定的设备,比如NVMe q,命名空间1,它会监控那个。它写好了,你可以看到M,如果你在最后加上H,它会给你一个人可读的,所以它会给你一个兆字节,基本上是IOPS的TPS,这些给你整个系统的读和写总和。我们在这里看到像i08这样的东西,那么你可能I / O瓶颈在驱动器上,你看到的I08开始往上走,或者如果你看到页面的超时,你可以看到一些DRAM的问题。

所以,无论如何,我明白这些对理解是超级关键。如果您正在诊断性能问题,这是很多问题,这些都只是一些信息,我会和你一起离开。在幻灯片中,我没有时间经历,但如果你想给出一个非常深刻的NVME。

28:36 S1:它们确实有可用的内核跟踪,所以您可以在命令上启用内核跟踪。这是关于如何为NVMe启用内核跟踪的命令说明。如果你想看看它是什么样子的,这是一个执行DV的命令,它在一个块中写入1兆字节,这就是那个命令的NVMe跟踪的基本样子。因此,您可以看到QID、名称空间ID、命令ID、元数据、LBA长度和大小,以及所有这些东西。

所以,如果你想真的深入调试,你可以选择这一点 - 大多数不是开发人员的人都不需要。我真正希望英特尔的另一个工具贡献为称为IO示踪剂,这里是在打开演员的Github上的链接,它被称为独立Linux IO示踪剂。

29:24 S1:基本上,你可以运行这个跟踪程序,然后你可以启用这个驱动程序。然后如果你运行你的…无论您希望运行何种工作负载,您都可以使用这个跟踪程序来收集系统跟踪,然后它们会有一个将数据解析为CSV或JSON的报告摘要。然后你可以做一些类似于LBA分发的事情,所以如果你想看到缓存的局域性,你可以这样做。您可以查看所有命令和不同块设备的延迟直方图,基本上可以看到实际工作负载上的平均队列深度。这是非常有用的,再次,如果……我们用它来调试学校数据库中的一些东西。我们没有看到性能——我们看到的是磁盘利用率非常高。我们运行这个,然后所有的写都进入了磁盘,但所有的读都来自DRAM,所以你可以看到,在跟踪中,没有读来自驱动器。所以,这是一个非常有用的工具,只是… One it's open source; you can just download it and file it and install it if you want to run a very specific workload and learn more about it.

30:32 S1:我要说的最后一件事是,我想我的30分钟时间快用完了,OCP Cloud NVMe SSD Spec,Microsoft和Facebook做了一件很棒的事情,他们聚在一起,将他们的SSD规范开源到这个叫做OCP Cloud SSD Spec的东西中,它有很多东西,比如PCI Express功能,NVMe功能,智能日志需求,这是我今天要讨论的一个,是它们有一些定制的智能日志,称为C0日志页面,称为智能云属性日志页面。这是令人惊讶的,因为现在,NVMe被设计成,记住,是NVM不可知论者,被设计成能够支持三个NAND或获取或存储类内存。你有什么。所以,很多NVMe规范都是以不可知论的方式编写的。但是,归根结底,大多数NVMe SSD都使用NAND,您希望了解NAND,特别是当您尝试调试问题时。

这个智能属性日志页做的是在供应商OCP日志页有一个开源的方式你可以运行这个命令和dub页,它会给你所有这些详细的信息关于恢复,坏用户和系统块,写的物理媒体单元。所以,如果你想计算右手你可以有主机和NAND写,ECC错误如果你看到物理设备的东西和更正计数,或者如果你说一个层,所有非常棒的东西都在这里。

32:00 S1:并再次,只是本身是不是真的有用,但如果你有工具,就能够从根本上分析这个数据,基本上使用这些数据来,硬盘这种规模,像云供应商将如何使用的集合它,他们可以做的健康监测预测分析。同样,如果你看到一些的PCIe可纠正错误这可能意味着,哎,有什么东西要与系统拓扑,其中靛蓝修复,但在应用程序中,我们不妨当看到更高的延迟或什么的,你不知道,但具有这种额外的细节信息将是这个预测分析健康监测的超有用的。

我无法强调我在Facebook上的亲爱的朋友,微软都在开放的是,因为我们一直在做一些多年来为自定义固件做一些东西,而且我迫不及待地想到其他东西顾客。他们所做的另一件事是OCP云和NVME规范空气恢复日志页面。而且,您可以刚刚在开源和空中恢复博客页面下载它,我提到了大多数SSD故障实际上只是固件。好吧,男孩,它肯定能够从固件问题或驱动器失败时实际恢复,以便能够识别并告诉主持人对我有什么问题。这正是这个空中恢复日志页面所做的。。。您是否具有此恐慌重置等待时间,恐慌重置操作,设备恢复操作和恐慌ID。

33:16 S1:这样一来,驱动器,例如,如果驾驶员只是有一个固件问题,但它失败了,但它无法验证而不是驱动器后,派遣技术人员来取代它的数据完整性,您可以只运行此命令的地方格式化驱动器,然后重新开始。是的,你失去的数据,但在云应用程序,你必须备份的数据,或者它存储在另一个服务器上,另一架或其他可用性区域,它并不重要 - 你宁愿只重建从驱动器中启动划伤,而不是派遣技术人员那里来取代它如此。。。好家伙,这是一个惊人的特点,我不能等到这是全线实现在SSD上,因为我认为这是一个非常强大的工具。

就这样。实际上,我的时间已经过去了,30分钟,但是,伙计,我本可以研究很多东西,以及所有这些不同的Linux和性能方法,我甚至不能触及表面。但是,我们希望,其他一些受过良好教育、非常杰出的演讲者能够帮助您完成这一任务,因此,再次感谢您所做的一切。有一个良好的闪存峰会。

深入挖掘闪存

搜索灾难恢复
搜索数据备份
搜索汇聚基础设施
Baidu