通过文件系统使用存储设备扩展功能的方法与流程
- 国知局
- 2024-12-26 16:07:21
本技术涉及计算机,尤其涉及一种通过文件系统使用存储设备扩展功能的方法。
背景技术:
1、图1展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如sata(serial advanced technology attachment,串行高级技术附件)、scsi(small computersystem interface,小型计算机系统接口)、sas(serial attached scsi,串行连接scsi)、ide(integrated drive electronics,集成驱动器电子)、usb(universal serial bus,通用串行总线)、pcie(peripheral component interconnect express,pcie,高速外围组件互联)、nvme(nvm express,高速非易失存储)、以太网、光纤通道、无线通信网络等多种存储协议连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个nvm芯片105以及dram(dynamic random access memory,动态随机访问存储器)110。
2、nand闪存、相变存储器、feram(ferroelectric ram,铁电存储器)、mram(magneticrandom access memory,磁阻存储器)、rram(resistive random access memory,阻变存储器)、xpoint存储器等是常见的nvm。
3、接口103可适配于通过例如sata、ide、usb、pcie、nvme、sas、以太网、光纤通道等方式与主机交换数据。
4、控制部件104用于控制在接口103、nvm芯片105以及dram 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是fpga(field-programmable gate array,现场可编程门阵列)、asic(application specificintegrated circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理io(input/output)命令。控制部件104还可以耦合到dram 110,并可访问dram 110的数据。在dram可存储ftl表和/或缓存的io命令的数据。
5、控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到nvm芯片105,并以遵循nvm芯片105的接口协议的方式向nvm芯片105发出命令,以操作nvm芯片105,并接收从nvm芯片105输出的命令执行结果。已知的nvm芯片接口协议包括“toggle”、“onfi”等。
6、在存储设备102中,利用ftl(flash translation layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的存储设备的存储空间。物理地址是用于访问存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。ftl表是存储设备中的重要元数据。通常ftl表的数据项记录了存储设备中以数据页为单位的地址映射关系。
7、逻辑地址空间是存储设备提供给主机的存储地址空间,主机使用逻辑地址空间中的元素(逻辑地址)来访问存储设备。一般来说,主机所能够访问的逻辑地址(logicalblock addressing,lba)空间与存储设备所能提供的lba空间大小相同。对于逻辑地址空间,存储设备是通过ftl表来进行管理逻辑地址与物理地址之间的映射。主机向存储设备发送满足nvme协议的读/写命令(下文统称nvme命令),nvme命令指示了要访问的逻辑地址(lba地址),存储设备基于控制部件中管理的ftl表将该lba地址转换为物理地址(pba),然后控制部件根据pba地址来访问nvm芯片。如,参见图2和图3所示。
8、存储设备不仅提供了读写逻辑地址空间的功能,还提供了读写逻辑地址空间之外的其他功能。例如,访问存储设备的指定数据(如cpu工作频率、存储介质磨损情况等)或者操作存储设备执行指定操作(例如为存储空间设置密码、使存储设备协助测试或调试过程等)。为了使得主机使用存储设备所提供的读写逻辑地址空间之外的功能,nvme协议允许存储设备支持自定义命令(vendor specific command)(自定义命令携带的数据内容在nvme协议中未定义,但满足nvme协议对命令的格式要求),主机使用自定义命令来访问存储设备。主机通过自定义命令使用存储设备提供的访问逻辑地址空间之外的功能。另外,除了自定义命令,nvme协议在基础的io命令(例如读/写命令)之外,也定义了提供其他功能的命令,例如,管理命令(admin command)或其他形式的扩展命令。
技术实现思路
1、为了便于用户操作主机向存储设备发出例如自定义命令、管理命令和/或扩展命令来使用存储设备所提供的访问逻辑地址空间之外的其他功能。主机提供了诸如nvme-cli软件工具。用户通过命令行方式操作nvme-cli软件来操作主机向存储设备发出这些命令。而用户为了操作nvme-cli软件控制主机向存储设备发出这些命令,需要学习这些命令的含义、格式与操作方法等。
2、然而,为了尽可能满足用户实际需求,存储设备支持根据用户实际需求来增加新的自定义命令或者支持自定义命令经常变化,并且随着nvme协议的演进与发展,管理命令与扩展命令的种类与形式也在不断增加或改变。由于诸如上述列举的情况使得自定义命令、管理命令和/或扩展命令种类不断的增加/改变。而随着命令的不断增加,用户需要学习所要使用的新增或者变化的命令的含义、格式与操作方法,导致命令使用门槛较高,并且常常因用户的误解与误用导致存储设备工作异常。另一方面,随着命令的不断增加,需要相应地修改nvme-cli软件以及存储设备,来支持新增或改变的命令。由于命令的种类较多,导致修改nvme-cli软件以及修改存储设备的工作复杂度剧增。
3、鉴于现有技术中随着命令的增多所引起的命令使用门槛较高、修改软件和存储设备的工作复杂度剧增的问题,本技术希望在不增加使用门槛以及工作复杂度的基础上,来使用存储设备所提供的访问逻辑地址空间之外的其他功能。
4、第一方面,本技术实施例提供一种访问存储设备的方法,应用于主机,所述存储设备向所述主机提供作为块设备的逻辑地址空间,所述存储设备还包括可被所述主机访问的一种或多种指定数据和/或指定操作;所述逻辑地址空间不包括所述一种或多种指定数据和/或指定操作;所述方法包括:
5、响应于通过所述主机的文件系统访问所述文件系统的第一文件,根据所述第一文件对应的第一路径,生成符合存储协议命令格式的第一自定义命令,将所述第一自定义命令发送至所述存储设备;
6、接收所述存储设备针对所述第一自定义命令反馈的第一响应,根据所述第一响应生成访问所述第一文件的第二响应,并通过所述主机的文件系统输出所述第二响应;
7、其中,所述第一响应对应于同所述第一文件关联的所述一种或多种指定数据和/或指定操作之一。
8、可选地,所述根据所述第一文件对应的第一路径,生成符合存储协议命令格式的第一自定义命令,包括以下步骤其中之一:
9、根据所述第一路径确定第一文件索引,并生成携带所述第一文件索引的所述第一自定义命令;
10、根据所述第一路径,生成携带所述第一路径的所述第一自定义命令。
11、可选地,所述主机包括第一元数据集合,所述第一元数据集合记录文件路径与所述一种或多种指定数据和/或指定操作的映射关系;
12、所述根据所述第一路径确定第一文件索引,包括:
13、从所述第一元数据集合中确定所述第一路径对应的第一文件索引,所述第一文件索引用于索引所述第一文件所对应的所述一种或多种指定数据和/或指定操作之一;或者
14、根据所述第一路径计算生成所述第一文件索引。
15、可选地,所述映射关系包括所述文件路径与文件索引之间的第一子映射关系;
16、所述从所述第一元数据集合中确定所述第一路径对应的第一文件索引,包括:
17、基于所述第一元数据集合记录的所述第一子映射关系,确定所述第一路径对应的第一文件索引。
18、可选地,所述映射关系包括文件索引、文件属性、地址之间的第二子映射关系;所述方法还包括:
19、确定通过所述主机的文件系统访问所述第一文件的操作类型;
20、基于所述第二子映射关系查找所述第一文件索引对应的第一文件属性,检测所述第一文件属性与所述操作类型是否匹配;
21、在所述第一文件属性与所述操作类型匹配的情况下,执行所述生成符合存储协议命令格式的第一自定义命令,将所述第一自定义命令发送至所述存储设备的步骤。
22、可选地,所述方法还包括:
23、若所述第一文件属性与所述操作类型不匹配,通过所述主机的文件系统输出对应的响应,而不执行所述生成符合存储协议命令格式的第一自定义命令,将所述第一自定义命令发送至所述存储设备的步骤。
24、可选地,所述第一响应指示了所述第一文件属性与所述操作类型是否匹配。
25、可选地,根据所述第一文件对应的第一路径,生成符合存储协议命令格式的第一自定义命令之前,所述方法还包括:
26、接收挂载文件系统的请求信息;
27、响应于所述请求信息,生成符合存储协议命令格式的第二自定义命令,将所述第二自定义命令发送至所述存储设备;
28、接收所述存储设备针对所述第二自定义命令而反馈的第一元数据集合,并在所述主机的文件系统上挂载从所述第一元数据集合构建的文件系统;其中,所述第一元数据集合包括所述存储设备基于所述第二自定义命令而获取的第二元数据集合中的至少部分内容。
29、可选地,所述方法还包括:
30、响应于访问所述主机的文件系统中的文件关联内容,根据所述第一元数据集合获取所述文件关联内容,通过所述主机的文件系统输出所述文件关联内容;和/或
31、响应于更改所述主机的文件系统中的文件关联内容,通过所述主机的文件系统输出报错信息。
32、可选地,所述方法还包括:
33、响应于通过所述主机以块设备方式访问所述存储设备的逻辑地址空间的第一访问请求,根据所述第一访问请求确定对应的逻辑地址和访问类型,生成存储协议命令并发送至所述存储设备;
34、接收所述存储设备针对所述存储协议命令反馈的第三响应。
35、可选地,所述方法还包括:
36、响应于通过所述主机的文件系统访问所述文件系统的第二文件,根据所述第二文件对应的第二路径,生成符合存储协议命令格式的第四自定义命令,将所述第四自定义命令发送至所述存储设备,其中,所述第二文件存储于所述存储设备的逻辑地址空间;
37、接收所述存储设备针对所述第四自定义命令反馈的第四响应,根据所述第四响应生成访问所述第二文件的第五响应,并通过所述主机的文件系统输出所述第五响应。
38、可选地,所述方法还包括:
39、响应于通过所述主机的文件系统访问所述文件系统的第三文件,生成符合存储协议命令格式的第一io命令,将所述第一io命令发送至所述存储设备;
40、接收所述存储设备针对所述第一io命令反馈的第六响应;
41、其中,所述第三文件被存储于所述存储设备的逻辑地址空间。
42、可选地,在所述主机向所述存储设备发送携带了对应于所述主机的文件系统的第一路径的第一路径信息的所述第一自定义命令之后,由所述存储设备根据所述第一路径信息得到第一索引,并根据所述第一索引访问所述一种或多种指定数据之一和/或根据所述第一索引执行一种或多种指定操作之一、以得到对应的结果,根据对应的结果生成所述第一响应提供给所述主机。
43、第二方面,本技术实施例还提供一种主机,包括:存储器,用于存储至少一个处理器所执行的指令;处理器,用于执行存储器中存储的指令执行上述第一方面所述的访问存储设备的方法的步骤。
44、第三方面,本技术实施例提供一种存储设备响应方法,应用于存储设备,所述存储设备向主机提供作为块设备的逻辑地址空间,所述存储设备还包括可被所述主机访问的一种或多种指定数据和/或指定操作;所述逻辑地址空间不包括所述一种或多种指定数据和/或指定操作;所述方法包括:
45、接收所述主机发送的第一自定义命令,所述第一自定义命令符合存储协议命令格式,且携带了对应于所述主机的文件系统的第一路径的第一路径信息;
46、响应于所述第一自定义命令,获取所述第一路径信息对应的第一索引;
47、根据所述第一索引访问所述一种或多种指定数据之一和/或根据所述第一索引执行所述一种或多种指定操作之一,并得到对应的结果;
48、根据对应的结果生成第一响应发送给所述主机。
49、可选地,所述存储设备包括第二元数据集合,所述第二元数据集合记录路径信息与所述一种或多种指定数据和/或指定操作的映射关系。
50、可选地,所述路径信息是文件索引或者是文件系统的文件路径;
51、响应于所述第一自定义命令,获取所述第一路径信息对应的第一索引,包括以下步骤其中之一:
52、从所述第一自定义命令中提取所述第一路径信息对应的第一索引;
53、从所述第一自定义命令中提取所述第一路径信息,基于所述第二元数据集合,确定所述第一路径信息对应的第一索引;
54、根据在所述第一自定义命令中提取的所述第一路径信息,计算生成第一索引。
55、可选地,在接收所述第一自定义命令之后,所述方法还包括:
56、在获取所述第一路径信息对应的第一索引之后,基于所述第二元数据集合查找所述第一索引对应的第一属性;
57、检测所述第一属性与所述第一自定义命令所携带的操作类型是否匹配;
58、在所述第一属性与所述操作类型匹配的情况下,基于所述第一索引访问同所述第一索引关联的一种或多种指定数据之一,和/或,执行同所述第一索引关联的一种或多种指定操作之一。
59、可选地,所述方法还包括:
60、在所述第一属性与所述操作类型不匹配的情况下,在所述第一响应中携带报错信息。
61、可选地,所述第一索引是用于访问所述一种或多种指定数据之一和/或执行所述一种或多种指定操作之一的地址或函数指针。
62、可选地,所述根据所述第一索引访问所述一种或多种指定数据之一和/或根据所述第一索引执行一种或多种指定操作之一,包括以下步骤其中之一:
63、根据所述第一索引所对应的地址读取指定数据;
64、向所述第一索引所对应地址写入指定数据。
65、可选地,所述根据所述第一索引访问所述一种或多种指定数据之一和/或根据所述第一索引执行一种或多种指定操作之一,包括:
66、运行所述第一索引所对应的地址处的程序代码,以执行所述一种或多种指定操作之一;或
67、调用所述第一索引所对应的函数指针以执行实现所述一种或多种指定操作之一的函数;或
68、向所述第一索引对应的地址写入数据,基于所述数据控制执行所述一种或多种指定操作之一。
69、可选地,在所述第一自定义命令对应的操作类型为执行操作的情况下,响应于所述第一自定义命令对应执行操作,运行所述第一索引所对应地址所存储的程序代码以执行所述一种或多种指定操作之一;
70、在所述第一自定义命令对应的操作类型为写操作的情况下,响应于所述第一自定义命令对应写操作,向所述第一索引所对应地址写入配置参数,基于所述配置参数执行所述一种或多种指定操作之一。
71、可选地,所述一种或多种指定操作包括密码设置、调试模式切换和测试中注入故障中的至少一项。
72、可选地,在接收所述主机发送的第一自定义命令之前,所述方法还包括:
73、接收所述主机发送的第二自定义命令,所述第二自定义命令符合存储协议命令格式;
74、响应于所述第二自定义命令,将第一元数据集合提供给所述主机;其中,所述第一元数据集合包括所述第二元数据集合中的至少部分数据。
75、可选地,所述方法还包括:
76、接收所述主机发送的第一io命令,所述第一io命令是存储协议命令,并指示了所述逻辑地址空间的逻辑地址;
77、根据所述第一io命令,从所述逻辑地址读取数据或者向所述逻辑地址写入数据,并根据访问结果生成提供给所述主机的第六响应。
78、可选地,所述方法还包括:
79、接收所述主机发送的第四自定义命令,所述第四自定义命令基于第二文件对应的第二路径生成且符合存储协议命令格式,所述第二文件为通过所述主机的文件系统所访问的、存储于所述逻辑地址空间内的文件;
80、响应于所述第四自定义命令,向所述主机反馈所述第四自定义命令对应的第四响应,由所述主机根据所述第四响应生成访问所述第二文件的第五响应、并通过所述主机的文件系统输出所述第五响应。
81、第四方面,本技术实施例还提供一种存储设备,包括:存储器,用于存储至少一个处理器所执行的指令;处理器,用于执行存储器中存储的指令执行上述第三方面所述的存储设备响应方法的步骤。
82、第五方面,本技术实施例还提供一种存储系统,包括:第二方面所述的主机和第四方面所述的存储设备。
83、根据本技术的实施例,将存储设备的逻辑地址空间读写之外的、过去需要分别通过自定义命令操作的各项其他功能,用文件系统方式提供给用户。从而,用户用其熟悉的操作文件的方式来使用存储设备的各项其他功能。即使存储设备增加了新的其他功能,在用户看来,其仅需要操作文件系统的新增文件,从而几乎不需要用户付出额外的学习成本来使用新的其他功能。而为了实现新的其他功能,也不需要为存储设备增加新的自定义命令,也不需要主机构造并向存储设备发送新的自定义命令,而是在单一或指定格式的自定义命令中携带表达新的功能所需的信息,降低了使用门槛。甚至在不修改主机程序与存储设备固件的情况,通过配置数据的更新即可为存储设备增加新的功能,并使得用户可使用新的功能,简化了访问存储设备的工作复杂度。
本文地址:https://www.jishuxx.com/zhuanli/20241216/348230.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表