CN112947863A - 一种飞腾服务器平台下存储空间合并成的方法 - Google Patents
一种飞腾服务器平台下存储空间合并成的方法 Download PDFInfo
- Publication number
- CN112947863A CN112947863A CN202110330900.2A CN202110330900A CN112947863A CN 112947863 A CN112947863 A CN 112947863A CN 202110330900 A CN202110330900 A CN 202110330900A CN 112947863 A CN112947863 A CN 112947863A
- Authority
- CN
- China
- Prior art keywords
- block
- linux kernel
- resource
- equipment
- address space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000013507 mapping Methods 0.000 claims abstract description 9
- 239000000523 sample Substances 0.000 claims description 3
- 238000007596 consolidation process Methods 0.000 claims 3
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种飞腾服务器平台下存储空间合并成的方法,其特征在于,包括:依次遍历资源链表上所有的资源,计算得到多个块设备的物理地址空间总和size_all;linux内核启动到初始化外部设备阶段的时候,块设备匹配linux内核驱动,在块设备所对应的linux内核驱动中添加判断,判断是否是第一个块设备进行的linux内核驱动匹配,如果是,遍历资源链表上所有资源,根据资源属性,依次遍历,获取到每一个所需的块设备资源;将所有需要合并的块设备都映射到linux内核驱动所申请的虚拟地址空间中后,将块设备的linux内核驱动注册进linux内核中完成块设备的linux内核驱动工作,根据注册的块设备驱动,建立对应的namespace节点。
Description
技术领域
本发明涉及计算机存储空间管理技术,特别涉及一种飞腾服务器平台下存储空间合并成的方法。
背景技术
块设备是操作系统中的一类以内存块为最小读写单位的设备。类如U盘、NANDFLASH、SD卡、硬盘等等,均属于块设备。块设备的物理存储空间就是操作系统中的物理地址,且块设备的物理存储空间是连续的物理地址。块设备在使用前需要将块设备注册进操作系统中,即操作系统分配一块大小与块设备的物理存储空间大小相同的虚拟地址连续的虚拟地址空间,且操作系统使分配给块设备的虚拟地址空间与块设备的物理存储空间的物理地址一一对应。块设备的访问是通过namespace机制,即块设备的物理存储空间注册进操作系统后,会建立一个namespace节点与块设备的物理存储空间相对应。因为块设备的物理存储空间是物理地址连续的,所以块设备对应的namespace节点对应的物理存储空间也是物理地址连续的。FT2000+国产处理器的服务器平台使用的块设备访问机制就是上述所表述的。
由于一个namespace节点对应一个物理地址连续的块设备。所以如果两个相同功能的块设备,且两个块设备的物理存储空间对应的物理地址不连续,操作系统就会建立两个namespace节点与两个块设备相对应。那么在用户使用的时候就需要分别对两个块设备分别使用。但是有的时候用户需要将两个块设备当成一个设备使用,比如两块FLASH协同存储一份数据,而数据的大小比两块FLASH所能提供的存储空间都大。而现有的技术只能将这份大数据在用户层进行分割后再存储。这样会从访问机制上降低了数据的访问速率,同时也增加了用户层程序的复杂度。
发明内容
本发明涉及一种飞腾服务器平台下存储空间合并成的方法,用于解决上述现有技术的问题。
本发明一种飞腾服务器平台下存储空间合并成的方法,其中,包括:步骤1:在飞腾服务器平台上电启动,进入linux内核启动阶段的时候,linux内核启动代码遍历Linux内核资源链表,通过资源属性参数,分辨出资源链表上需要合并成一个namespace节点访问的块设备资源,从分辨出的块设备资源中得到块设备资源的大小size,将size存储到一个全局链表global_res_list中;步骤2:依次遍历资源链表上所有的资源,将分辨出的块设备资源,依次都保存到步骤1中的全局链表global_res_list中,计算得到多个块设备的物理地址空间总和size_all;步骤3:linux内核启动到初始化外部设备阶段的时候,块设备匹配linux内核驱动,在块设备所对应的linux内核驱动中添加判断,判断是否是第一个块设备进行的linux内核驱动匹配,如果是,linux内核运行步骤4,如果不是,linux内核则终止本次块设备匹配linux内核驱动的工作,linux内核运行步骤7;步骤4:Linux内核驱动对块设备进行初始化;步骤5:遍历资源链表上所有资源,根据资源属性,依次遍历,获取到每一个所需的块设备资源,就将此块设备资源的物理地址空间的起始地址和大小映射到步骤4申请的虚拟地址空间中;步骤6:将所有需要合并的块设备都映射到linux内核驱动所申请的虚拟地址空间中后,将块设备的linux内核驱动注册进linux内核中,进入步骤8;步骤7:忽略此块设备的linux内核驱动匹配,进入步骤8;步骤8:完成块设备的linux内核驱动工作,建立与块设备对应的namespace节点。
根据本发明所述的飞腾服务器平台下存储空间合并成的方法的一实施例,其中,计算得到多个块设备的物理地址空间总和size_all包括:在遍历完资源链表后的linux内核启动阶段,添加遍历步骤1的全局链表global_res_list并且将链表global_res_list上保存的各个size依次进行加和的函数,得到多个块设备的物理地址空间总和size_all。
根据本发明所述的飞腾服务器平台下存储空间合并成的方法的一实施例,其中,步骤4:Linux内核驱动对块设备进行初始化包括:在块设备的linux内核驱动中的probe函数中,从操作系统中申请一块大小size_all的虚拟地址空间。
根据本发明所述的飞腾服务器平台下存储空间合并成的方法的一实施例,其中,步骤5中,从资源链表上每找到一个新的块设备资源,将此块设备资源的物理地址空间的起始地址映射到上一个找到的块设备资源的物理地址空间的结束地址的下一个地址上,新找到的块设备资源映射到虚拟地址空间的大小为新找到的块设备资源的大小。
根据本发明所述的飞腾服务器平台下存储空间合并成的方法的一实施例,其中,步骤8:完成块设备的linux内核驱动工作包括:,根据注册的块设备驱动,使用linux内核中建立namespace的功能模块,实现建立与块设备对应的namespace节点。
本发明主要将多个物理地址不连续的块设备的物理存储空间大小依次加和。并且向操作系统申请一块与加和后大小相同的虚拟地址空间。使各个块设备的物理地址空间依次映射到申请的虚拟地址空间中。从而提升数据访问的速率和降低用户层程序的复杂度。
附图说明
图1飞腾服务器平台上多个块设备与申请的虚拟地址空间映射示意图
图2飞腾服务器平台上多个块设备物理存储空间合并成一个namespace工作流程图
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明的多个块设备的物理地址空间映射到第一个块设备匹配的驱动从操作系统中申请的一块虚拟地址空间。多个块设备的物理地址空间是不连续的,根据物理地址的从小到大排序,依次将多个块设备的物理地址空间映射到虚拟地址空间中。参考图1所示。
飞腾服务器平台上多个块设备物理存储空间合并成一个namespace工作流程参考图2所示。包括以下步骤:
步骤1:在飞腾服务器平台上电启动,进入linux内核启动阶段的时候,linux内核启动代码遍历Linux内核资源链表。通过资源属性参数,分辨出哪些资源链表上的资源是需要合并成一个namespace节点访问的块设备资源。从分辨出的块设备资源中得到块设备资源的大小size。将size存储到一个全局链表global_res_list中。
步骤2:依次遍历资源链表上所有的资源,将分辨出的块设备资源,依次都保存到步骤1中的全局链表global_res_list中。然后在遍历完资源链表后的linux内核启动阶段,添加遍历步骤1的全局链表global_res_list并且将链表global_res_list上保存的各个size依次进行加和的函数。得到多个块设备的物理地址空间总和size_all。
步骤3:linux内核启动到初始化外部设备阶段的时候,块设备匹配linux内核驱动,在块设备所对应的linux内核驱动中添加判断,判断是否是第一个块设备进行的linux内核驱动匹配。如果是,那么linux内核往下运行步骤4。如果不是,linux内核则终止本次块设备匹配linux内核驱动的工作,linux内核运行步骤7。
步骤4:Linux内核驱动对块设备进行初始化。在块设备的linux内核驱动中的probe函数中,从操作系统中申请一块大小为步骤2中size_all的虚拟地址空间。
步骤5:遍历资源链表上所有资源,根据资源属性,依次遍历。获取到每一个所需的块设备资源,就将此块设备资源的物理地址空间的起始地址和大小映射到步骤4申请的虚拟地址空间中。从资源链表上每找到一个新的块设备资源,就将此块设备资源的物理地址空间的起始地址映射到上一个找到的块设备资源的物理地址空间的结束地址的下一个地址上。新找到的块设备资源映射到虚拟地址空间的大小为新找到的块设备资源的大小。
步骤6:将所有需要合并的块设备都映射到linux内核驱动所申请的虚拟地址空间中后,linux内核将块设备的linux内核驱动注册进linux内核中。进入步骤8。
步骤7:忽略此块设备的linux内核驱动匹配,进入步骤8。
步骤8:完成块设备的linux内核驱动工作。根据注册的块设备驱动,建立对应的namespace节点。结束。
本发明将需要合并的块设备驱动的物理地址空间,依次合并进第一个块设备驱动申请的虚拟地址空间中。其余的块设备均不注册块设备驱动。将所有的块设备作为一个namespace节点访问。因为多个块设备作为同一个namespace节点访问,减少了多个namespace节点间切换的开销,所以不仅提升了数据访问速率,也降低了用户层程序的复杂度。
本发明FT2000+新一代国产多核处理器上运行的操作系统,虚拟地址位宽达到48位。且操作系统中可以用于分配给块设备的虚拟地址空间达512TB。本发明与现有技术相比,提出的技术方法将多个块设备的物理地址空间合并成一个namespace节点。在分布式数据存储时,因为减少了多个块设备的namespace节点间的切换的开销,能够显著提升数据访问的速率。而且可以兼容现有的应用程序在其上的运行。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (5)
1.一种飞腾服务器平台下存储空间合并成的方法,其特征在于,包括:
步骤1:在飞腾服务器平台上电启动,进入linux内核启动阶段的时候,linux内核启动代码遍历Linux内核资源链表,通过资源属性参数,分辨出资源链表上需要合并成一个namespace节点访问的块设备资源,从分辨出的块设备资源中得到块设备资源的大小size,将size存储到一个全局链表global_res_list中;
步骤2:依次遍历资源链表上所有的资源,将分辨出的块设备资源,依次都保存到步骤1中的全局链表global_res_list中,计算得到多个块设备的物理地址空间总和size_all;
步骤3:linux内核启动到初始化外部设备阶段的时候,块设备匹配linux内核驱动,在块设备所对应的linux内核驱动中添加判断,判断是否是第一个块设备进行的linux内核驱动匹配,如果是,linux内核运行步骤4,如果不是,linux内核则终止本次块设备匹配linux内核驱动的工作,linux内核运行步骤7;
步骤4:Linux内核驱动对块设备进行初始化;
步骤5:遍历资源链表上所有资源,根据资源属性,依次遍历,获取到每一个所需的块设备资源,就将此块设备资源的物理地址空间的起始地址和大小映射到步骤4申请的虚拟地址空间中;
步骤6:将所有需要合并的块设备都映射到linux内核驱动所申请的虚拟地址空间中后,将块设备的linux内核驱动注册进linux内核中,进入步骤8;
步骤7:忽略此块设备的linux内核驱动匹配,进入步骤8;
步骤8:完成块设备的linux内核驱动工作,建立与块设备对应的namespace节点。
2.如权利要求1所述的飞腾服务器平台下存储空间合并成的方法,其特征在于,计算得到多个块设备的物理地址空间总和size_all包括:在遍历完资源链表后的linux内核启动阶段,添加遍历步骤1的全局链表global_res_list并且将链表global_res_list上保存的各个size依次进行加和的函数,得到多个块设备的物理地址空间总和size_all。
3.如权利要求1所述的飞腾服务器平台下存储空间合并成的方法,其特征在于,步骤4:Linux内核驱动对块设备进行初始化包括:在块设备的linux内核驱动中的probe函数中,从操作系统中申请一块大小size_all的虚拟地址空间。
4.如权利要求1所述的飞腾服务器平台下存储空间合并成的方法,其特征在于,步骤5中,从资源链表上每找到一个新的块设备资源,将此块设备资源的物理地址空间的起始地址映射到上一个找到的块设备资源的物理地址空间的结束地址的下一个地址上,新找到的块设备资源映射到虚拟地址空间的大小为新找到的块设备资源的大小。
5.如权利要求1所述的飞腾服务器平台下存储空间合并成的方法,其特征在于,步骤8:完成块设备的linux内核驱动工作包括:,根据注册的块设备驱动,使用linux内核中建立namespace的功能模块,实现建立与块设备对应的namespace节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110330900.2A CN112947863B (zh) | 2021-03-25 | 2021-03-25 | 一种飞腾服务器平台下存储空间合并成的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110330900.2A CN112947863B (zh) | 2021-03-25 | 2021-03-25 | 一种飞腾服务器平台下存储空间合并成的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112947863A true CN112947863A (zh) | 2021-06-11 |
CN112947863B CN112947863B (zh) | 2024-01-30 |
Family
ID=76227027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110330900.2A Active CN112947863B (zh) | 2021-03-25 | 2021-03-25 | 一种飞腾服务器平台下存储空间合并成的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112947863B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546500A (zh) * | 2022-01-28 | 2022-05-27 | 郑州信大捷安信息技术股份有限公司 | 一种支持多设备的密码卡驱动实现方法和系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980049352A (ko) * | 1996-12-19 | 1998-09-15 | 양승택 | Misix 커널 가상 주소의 동적인 관리방법 |
CN1955912A (zh) * | 2006-10-13 | 2007-05-02 | 清华大学 | 海量存储系统中的资源分配方法 |
CN105260336A (zh) * | 2015-11-17 | 2016-01-20 | 上海交通大学 | 可字节寻址的非易失性存储器热插拔方法及装置 |
US20180107561A1 (en) * | 2016-10-19 | 2018-04-19 | International Business Machines Corporation | Block level backup of virtual machines for file name level based file search and restoration |
CN107977341A (zh) * | 2016-10-21 | 2018-05-01 | 北京航天爱威电子技术有限公司 | 大数据文本快速处理方法 |
CN108334413A (zh) * | 2017-12-22 | 2018-07-27 | 天津麒麟信息技术有限公司 | 一种基于飞腾平台的固件与操作系统之间信息传递方法 |
CN110998552A (zh) * | 2017-08-21 | 2020-04-10 | 阿里巴巴集团控股有限公司 | 用于内核空间和用户空间的存储器管理系统和方法 |
CN111444119A (zh) * | 2020-03-25 | 2020-07-24 | 北京计算机技术及应用研究所 | 一种基于内核参数的飞腾平台非易失内存注册方法 |
CN111614795A (zh) * | 2020-04-29 | 2020-09-01 | 西安震有信通科技有限公司 | 服务器地址域名化处理方法、装置、计算机设备及介质 |
CN112148229A (zh) * | 2020-10-12 | 2020-12-29 | 北京计算机技术及应用研究所 | 一种飞腾服务器平台下的加速非易失性内存读写效率的方法 |
-
2021
- 2021-03-25 CN CN202110330900.2A patent/CN112947863B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980049352A (ko) * | 1996-12-19 | 1998-09-15 | 양승택 | Misix 커널 가상 주소의 동적인 관리방법 |
CN1955912A (zh) * | 2006-10-13 | 2007-05-02 | 清华大学 | 海量存储系统中的资源分配方法 |
CN105260336A (zh) * | 2015-11-17 | 2016-01-20 | 上海交通大学 | 可字节寻址的非易失性存储器热插拔方法及装置 |
US20180107561A1 (en) * | 2016-10-19 | 2018-04-19 | International Business Machines Corporation | Block level backup of virtual machines for file name level based file search and restoration |
CN107977341A (zh) * | 2016-10-21 | 2018-05-01 | 北京航天爱威电子技术有限公司 | 大数据文本快速处理方法 |
CN110998552A (zh) * | 2017-08-21 | 2020-04-10 | 阿里巴巴集团控股有限公司 | 用于内核空间和用户空间的存储器管理系统和方法 |
CN108334413A (zh) * | 2017-12-22 | 2018-07-27 | 天津麒麟信息技术有限公司 | 一种基于飞腾平台的固件与操作系统之间信息传递方法 |
CN111444119A (zh) * | 2020-03-25 | 2020-07-24 | 北京计算机技术及应用研究所 | 一种基于内核参数的飞腾平台非易失内存注册方法 |
CN111614795A (zh) * | 2020-04-29 | 2020-09-01 | 西安震有信通科技有限公司 | 服务器地址域名化处理方法、装置、计算机设备及介质 |
CN112148229A (zh) * | 2020-10-12 | 2020-12-29 | 北京计算机技术及应用研究所 | 一种飞腾服务器平台下的加速非易失性内存读写效率的方法 |
Non-Patent Citations (3)
Title |
---|
张欢庆;高丽;: "嵌入式Linux中NOR Flash设备驱动研究", 商丘职业技术学院学报, no. 02, pages 43 - 44 * |
翟佳;许建卫;谢辉;刘新春;邵宗有;历军;: "面向IO服务器的高性能存储器的实现与优化", 计算机工程与科学, no. 11, pages 17 - 20 * |
蒋波;李方军;邓豫蜀;赵阳梅;: "LINUX进程的地址空间研究", 四川理工学院学报(自然科学版), no. 06, pages 40 - 41 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546500A (zh) * | 2022-01-28 | 2022-05-27 | 郑州信大捷安信息技术股份有限公司 | 一种支持多设备的密码卡驱动实现方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112947863B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5425286B2 (ja) | データ処理システムのメモリ使用状況を追跡する方法 | |
EP3171277B1 (en) | Method for managing files, distributed storage system and management node | |
US8850156B2 (en) | Method and system for managing virtual machine storage space and physical host | |
US9489409B2 (en) | Rollover strategies in a N-bit dictionary compressed column store | |
US8806169B1 (en) | Memory management method, memory management apparatus and NUMA system | |
WO2017107414A1 (zh) | 文件操作方法和装置 | |
US7809918B1 (en) | Method, apparatus, and computer-readable medium for providing physical memory management functions | |
US11567940B1 (en) | Cache-aware system and method for identifying matching portions of two sets of data in a multiprocessor system | |
CN108733309B (zh) | 存储管理方法、设备和计算机可读介质 | |
CN109144406B (zh) | 分布式存储系统中元数据存储方法、系统及存储介质 | |
EP3312714A1 (en) | Distributed data parallel method for reclaiming space | |
WO2024099448A1 (zh) | 内存释放、内存恢复方法、装置、计算机设备及存储介质 | |
WO2022120522A1 (zh) | 内存空间的分配方法、装置及存储介质 | |
CN114327917A (zh) | 内存管理方法、计算设备及可读存储介质 | |
US9734620B2 (en) | Apparatus and method for graphics state management | |
US7991976B2 (en) | Permanent pool memory management method and system | |
CN112947863A (zh) | 一种飞腾服务器平台下存储空间合并成的方法 | |
CN105677481A (zh) | 一种数据处理方法、系统及电子设备 | |
CN106970830B (zh) | 一种分布式虚拟机的存储控制方法及虚拟机 | |
CN116340198B (zh) | 固态硬盘的数据写入方法、其装置及固态硬盘 | |
WO2017054636A1 (zh) | 虚拟快照处理方法及装置 | |
CN116633900A (zh) | 逻辑地址分配方法、装置、电子设备及存储介质 | |
CN111104347A (zh) | 堆内存块查找方法、装置、设备及存储介质 | |
WO2021249030A1 (zh) | 随机数序列生成方法和随机数引擎 | |
CN108959517B (zh) | 文件管理方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |