端到端数据保护浅析

作为最重要的数据保护方式之一,NVMe端到端数据保护被众多企业用户所看重,它可以有效降低静默错误的发生,保护范围涵盖数据自Host端生成直至写入SSD NAND当中,以及从SSD NAND读取直至返回Host的全部流程。它使得数据不论是在SSD内部,还是SSD外部,都能得到一致性保证。

根据OCP对企业级可靠性给出的建议,数据流经的每一个环节,如PCIe接口、控制器内部、RAM、Flash端口等,都应带有重叠的保护机制,以降低数据出错的风险。如主机PCIe接口到SSD控制器有LCRC和ECRC保护,数据在控制器会添加PI保护信息,RAM带有ECC保护,Flash接口有Scrambler随机化,对数据有CRC校验,LDPC软判决纠错等。

NVMe端到端数据保护的关键在于PI(Protection Information)的使用。完整的端到端数据保护支持由Host端生成PI,提供从Host直至SSD内部的完整端到端数据路径保护。在数据生成时,通过对数据添加PI,并将其作为元数据始终伴随用户数据一同传输和校验,借此降低静默错误的发生;同时,借助ECC(如BCH、LDPC)、Die间RAID5等手段,对检测到的错误数据加以修正,提升整个端到端数据传输过程中的可靠性。PI也可以通过SSD Controller生成,提供SSD盘内的数据保护,通常,我们将后者称为“数据路径保护”技术。

在最新发布的PBlaze6 6530系列企业级SSD中,我们再次对NVMe端到端数据保护能力进行了加强与完善,使其可以满足上述全部要求,达到企业用户更为复杂且严格的数据可靠性要求。

VSS技术为端到端数据保护提供基础

VSS(Viable Sector Size,可变Sector Size)是PBlaze6 6530系列企业级SSD提供的重要功能之一,它允许SSD在保存用户数据的同时,保存该数据的元数据,也就是对PI的存储。它是全闪存阵列实现NVMe端到端数据保护,降低静默错误发生的必要前提。

对PI而言,不论是通过DIF,还是通过DIX的方式实现和传输,其内容构成、大小都是相同的,均为16bit Guard Tag(用户数据的CRC校验信息),16bit Application Tag(应用指定tag)和32bit Reference Tag(防止数据被误用或乱序逻辑块传输),大小8字节;并且,不论是DIF还是DIX,其在SSD内部都是通过DIF的方式存储在NAND当中,即,PI与用户数据连续存放。这就要求SSD在提供标准的用户数据存储空间(如512字节或4096字节)之外,额外提供PI作为元数据的存储区域。PBlaze6 6530系列企业级SSD支持512、512+8、4096、4096+8以及4096+64字节,共5种不同的Sector Size大小,并同时支持DIF和DIX两种传输方式,可通过format命令在建立Namespace时加以指定,以开启NVMe端到端数据保护功能。

值得一提的是,PBlaze6 6530系列企业级SSD还最多支持32个Namespace命名空间,且每一个Namespace都可以设置为需要的格式,如Sector Size大小、指定DIF或DIX,以便为不同应用、业务需求有针对性的提供支持。

支持Type 1、2、3,数据保护更充分

存储问题解决了,接下来就是如何使用PI。根据不同的Reference Tag设置和PI检查方式,PI具体分为Type 0、Type 1、Type 2和Type 3。Type不同,PI所能起到的作用就存在差异。

可以看到,Type 1的要求更加严格。与部分企业级SSD不支持PI,或只支持Type 2或者Type 3相比,PBlaze6 6530系列企业级SSD可以提供对Type 1、2、3的全面支持。它在提供数据一致性和准确性方面的表现也会更加出色,并让企业在部署端到端数据保护功能时可以做到更加灵活。

开启VSS后端到端数据保护功能的验证

PBlaze6 6530系列企业级SSD的VSS功能和端到端数据保护是否被正确开启,可通过简单的读写测试加以验证,以便在SSD正式投入到业务当中后可放心使用。

  • 通过format指令,可对LBA format、DIF或DIX、PI Type进行设置;
  • 通过对write和read指令中的prinfo参数调整,设置PI的处理和校验方式,它包括PRACT和PRCHK两部分设定:PRACT,指定PI由Host生成,还是由Controller生成,并决定数据在读取时是否将PI返回至Host;PRCHK,指定PI的检查方式,检查guard、application或reference tag中的一个或多个。

在PRACT=0,写入操作中(由Host生成PI),用户也可写入错误的PI信息,模拟静默错误的发生(如修改guard、application或reference字段)。SSD在接收到用户数据和错误的PI之后,会根据PRCHK字段设定的验证方式,基于用户数据生成相应结果并进行比对,判断静默错误是否发生。如,Reference Tag出现错误,会提示如下:

NVMe status:

REFTAG_CHECK: The command was aborted due to an end-to-end reference tag check failure(0x6284)

日志记录为端到端数据保护功能维护提供保障

为进一步提高端到端数据保护功能的可靠性,PBlaze6 6530系列企业级SSD提供了多种功能来记录或提醒用户端到端数据保护功能在运行中所发生的错误。

在其新加入的PEL(Persistent Event Log,持久化日志)功能中,通过对事件05h NVM Subsystem Hardware Error中的Media and Data Integrity Status进行记录,可以对NVMe端到端数据保护出错,如Guard Tag/Application Tag/Reference Tag检错失败等情况进行记录。它可以直观的提醒用户目前端到端数据保护功能遇到的问题。

而在Error Log(标准的NVMe logpage, Logid为1)中,还会更加详细的记录端到端数据保护出错信息,如Reference Tag错误详情等,进一步为PBlaze6 6530系列的端到端数据保护功能提供维护保障。

端到端数据保护开启后不对寿命造成影响

在传统VSS实现的方法中,定义的元数据会侵占一定的ECC区域,使得NAND的纠错能力降低,UBER增加,进而影响NAND的寿命。PBlaze6 6530在设计之初就考虑到了这一点,通过硬件手段与软件层面的双重优化,使得无论用户定义元数据与否,都不会对ECC区域造成侵占,进而避免对寿命造成影响,保证无论哪种模式,都能发挥出SSD应有的性能。

数据的一致性对于企业用户至关重要,是企业级SSD的首要指标。在十余年的研发过程中,Memblaze始终秉持着严谨的态度,持续打磨数据保护技术,防患于未然,为用户数据的安全可靠提供更具信赖的技术保障。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/173697.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

米哈游大数据云原生实践

云布道师 近年来,容器、微服务、Kubernetes 等各项云原生技术的日渐成熟,越来越多的公司开始选择拥抱云原生,并将企业应用部署运行在云原生之上。随着米哈游业务的高速发展,大数据离线数据存储量和计算任务量增长迅速&#xff0c…

Python之staticmethod:让你的代码更简洁高效

概要 在Python中,staticmethod是一种非常有用的装饰器,它可以将一个方法转换为静态方法,使得该方法可以通过类名或实例名直接调用,而不需要传入self参数。staticmethod的使用可以让代码更加简洁、高效,同时也可以提高…

如何分辨独享代理IP池?代理IP有独享的代理IP吗?

对于HTTP代理使用者而言,如果排除成本考虑,大家都更愿意是用独享IP,那在一众的HTTP代理厂商的产品中,我们要如何分辨什么样的才是独享IP呢?今天青果网络HTTP代理,就带大家一起来了解一下这其中的奥秘。 如何…

如何在AIX操作系统上修改Java环境变量

AIX操作系统是IBM的Unix操作系统,通常用于企业级应用和服务器环境。在AIX上配置Java环境变量是执行Java应用程序和开发Java代码的重要步骤。本文将详细介绍如何在AIX上修改Java环境变量,并提供具体示例来帮助你完成这个任务。 步骤1:确定Java…

SSM框架(二):AOP和事物

文章目录 一、AOP的介绍1.1 基本概念1.2 AOP入门1.3 AOP工作流程1.4 切入点表达式1.5 AOP的通知类型1.6 ProceedingJoinPoint1.7 AOP通知获取参数数据 二、事物2.1 基本介绍2.2 事物角色2.3 事物属性2.4 事物的传播行为 一、AOP的介绍 1.1 基本概念 1.2 AOP入门 导入坐标 <…

微信小程序开发学习——顺序、选择、循环、数学函数

1.条件语句 只需在js中写JavaScript的条件语句就行 math对象&#xff1a; 代码如下&#xff1a; <!--pages/tiaojian/tiaojian.wxml--> <view class"box"><view class"title">输入x&#xff0c;条件输出y</view><view><…

【FLink】水位线(Watermark)

目录 1、关于时间语义 1.1事件时间 1.2处理时间​编辑 2、什么是水位线 2.1 顺序流和乱序流 2.2乱序数据的处理 2.3 水位线的特性 3 、水位线的生成 3.1 生成水位线的总体原则 3.2 水位线生成策略 3.3 Flink内置水位线 3.3.1 有序流中内置水位线设置 3.4.2 断点式…

CANopen权威指南【CAN总线协议】

1这个总线定义是老外发明的。 想要使用&#xff0c;就必须按照协议去配置数据帧。 CIA301和cia402协议&#xff0c;实际就是寄存器地址上某一段的定义。 下载地址&#xff1a; CAN in Automation (CiA): Technical documents 注册下载也是非常快的。【没什么难度】 就是资…

数据结构之二叉树

前言&#xff1a;我们前面已经学习了数据结构的栈和队列&#xff0c;今天我们就来学习一下数据结构中的二叉树&#xff0c;那么作为二叉树我们就得先了解树的一些概念&#xff0c;还有二叉树一些特点。 树的概念&#xff1a; 树是一种非线性的数据结构&#xff0c;它是由n&…

Linux网络驱动

Linux 网络设备驱动结构 网络协议接口层向网络层协议提供统一的数据包收发接口&#xff0c;这一层使得上层协议独立于具体的设备网络设备接口层向协议接口层提供统一的用于描述具体网络设备属性和操作的结构体net_device&#xff0c;该结构体是设备驱动功能层中各函数的容器设备…

【Operating Systems:Three Easy Pieces 操作系统导论 】第28章 插叙:线程 API

【Operating Systems:Three Easy Pieces 操作系统导论 】 第28章 插叙&#xff1a;线程 API pthread 库介绍 线程创建 #include <pthread.h> // 头文件 int pthread_create(pthread_t * thread,const pthread_attr_t * attr,void * (*start_routine)(void*),void *…

wsl安装ubuntu的问题点、处理及连接

WSL安装Ubuntu的参考链接 (41条消息) wsl报错&#xff1a;WslRegisterDistribution failed with error: 0x800701bc_yzpyzp的博客-CSDN博客_0x800701bc wsl (41条消息) 使用Ubuntu安装软件出现Unable to locate package错误解决办法_大灰狼学编程的博客-CSDN博客 手把手教你…

linux:查看文件前100行和后100行

查看文件中的前100行 head -n 100 文件名查看文件中的后100行 tail -n 100 文件名

【Java 进阶篇】JavaScript JSON 语法入门:轻松理解数据的序列化和反序列化

嗨&#xff0c;亲爱的小白们&#xff01;欢迎来到这篇关于 JavaScript 中 JSON&#xff08;JavaScript Object Notation&#xff09;语法的入门指南。JSON 是一种轻量级的数据交换格式&#xff0c;广泛应用于前端开发中。通过这篇博客&#xff0c;我将带你深入了解 JSON 的语法…

【深度学习实验】注意力机制(四):点积注意力与缩放点积注意力之比较

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 理论介绍a. 认知神经学中的注意力b. 注意力机制 1. 注意力权重矩阵可视化&#xff08;矩阵热图&#xff09;2. 掩码Softmax 操作3. 打分函数——加性注意力模型3. 打分函数——点积注意力与缩放…

【GUI】-- 12 贪吃蛇小游戏之让小蛇动起来

GUI编程 04 贪吃蛇小游戏 4.3 第三步&#xff1a;让小蛇动起来(键盘控制) 首先&#xff0c;在构造器中要获取焦点事件、键盘监听事件并加入定时器(定时器定义需要实现ActionListener接口并重写actionPerformed方法)&#xff1a; //构造器public GamePanel() {init();this.s…

郎酒“掉队”,经销商们能等来春天吗?

文 | 螳螂观察&#xff08;TanglangFin&#xff09; 作者 | 渡过 有“六朵金花”之称的川酒品牌中&#xff0c;五粮液、泸州老窖、舍得、水井坊都已成功上市&#xff0c;只剩下郎酒和剑南春未上市。 与IPO的“掉队”相对应的&#xff0c;是郎酒在冲刺高端、内部管理、渠道管…

【LeetCode刷题-链表】--23.合并K个升序链表

23.合并K个升序链表 方法&#xff1a;顺序合并 在前面已经知道合并两个升序链表的前提下&#xff0c;用一个变量ans来维护以及合并的链表&#xff0c;第i次循环把第i个链表和ans合并&#xff0c;答案保存到ans中 /*** Definition for singly-linked list.* public class List…

SQL基础理论篇(八):视图

文章目录 简介创建视图修改视图删除视图总结参考文献 简介 视图&#xff0c;即VIEW&#xff0c;是SQL中的一个重要概念&#xff0c;它其实是一种虚拟表(非实体数据表&#xff0c;本身不存储数据)。 视图类似于编程中的函数&#xff0c;也可以理解成是一个访问数据的接口。 从…

VPX 插座(VITA46)介绍及应用 (简单介绍)

1. VPX 插座的介绍 VPX是VITA(VME International Trade Association, VME国际贸易协会)组织于2007年在其VME总线基础上提出的新一代高速串行总线标准。VPX总线的基本规范、机械结构和总线信号等具体内容均在ANSI/VITA46系列技术规范中定义。VPX就是基于高速串行总线的新一代总线…