CN101533335A - 磁盘存储系统以及磁盘存储控制方法和装置 - Google Patents
磁盘存储系统以及磁盘存储控制方法和装置 Download PDFInfo
- Publication number
- CN101533335A CN101533335A CN200910081957A CN200910081957A CN101533335A CN 101533335 A CN101533335 A CN 101533335A CN 200910081957 A CN200910081957 A CN 200910081957A CN 200910081957 A CN200910081957 A CN 200910081957A CN 101533335 A CN101533335 A CN 101533335A
- Authority
- CN
- China
- Prior art keywords
- disk
- block address
- address
- write
- write order
- 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
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种磁盘存储系统、以及一种磁盘存储控制方法和装置。本发明同时利用I/O速率较高的第一磁盘和I/O速率较低的第二磁盘作为磁盘存储系统的物理磁盘,当处理器接收写命令的频率较高时,将写命令中的写数据写入至I/O速率更高的第一磁盘,以保证磁盘存储系统的读写性能不会受物理磁盘I/O速率的影响而降低;而当处理器接收写命令的频率较低时,第二磁盘的I/O速率即可满足正常的读写,因而此时将写命令中的写数据写入至I/O速率较低的第二磁盘,从而既提高了磁盘存储系统读写性能、又节省了磁盘存储系统的成本。
Description
技术领域
本发明涉及磁盘存储技术,特别涉及可实现分层存储的一种磁盘存储系统、以及一种磁盘存储控制方法和装置。
背景技术
现有磁盘存储系统中通常包括设置于存储控制器中的处理器、以及设置于磁盘柜内的物理磁盘,并由处理器按照其接收自网络主机的写命令中的块地址,将该写命令中的写数据写入至物理磁盘中的对应逻辑块;并由处理器按照其接收到的读命令中的块地址,从物理磁盘中的对应逻辑块中读取数据。其中,物理磁盘通常选用例如串行ATA(Serial Advanced TechnologyAttachment,SATA)磁盘、串行SCSI(SAS)磁盘等任一种磁碟型磁盘,或者是选用固态磁盘(Solid State Disks,SSD)。
相比于磁碟型磁盘,SSD磁盘是由闪存颗粒构成,因而具有更高的I/O速率(I/O Per Second,IOPS),且防震抗摔、工作时静音、发热量小、散热快、以及重量更轻。因此,选用SSD磁盘作为磁盘存储系统中的物理磁盘能够提升磁盘存储系统的读写性能。
然而,I/O速率较高的SSD磁盘同时还存在成本高、磁盘容量小的缺陷,因而选用SSD磁盘作为磁盘存储系统中的物理磁盘会耗费极高的成本。
发明内容
有鉴于此,本发明提供了一种磁盘存储系统、以及一种磁盘存储控制方法和装置,能够提升磁盘存储系统读写性能并节省成本。
本发明提供的一种磁盘存储系统,包括:
处理器,其具有一输入I/O、以及至少两个输出I/O;
与其中一个所述输出I/O相连的第一磁盘;
与另一个所述输出I/O相连、且I/O速率低于所述第一磁盘的第二磁盘;
且,所述处理器实时检测其输入I/O接收写命令的频率;在所述频率大于预设阈值时,将当前写命令中的写数据写入至所述第一磁盘;在所述频率小于等于预设阈值时,将当前写命令中的写数据写入至所述第二磁盘。
所述处理器中包括彼此相连的第一存储介质和处理内核,且处理内核还与所述输入I/O、以及至少两个输出I/O相连,其中,
第一存储介质,用于存储预设的地址映射表,该地址映射表中设置有第一磁盘中各逻辑块的实际块地址、第二磁盘中各逻辑块的实际块地址、以及统一编址得到的与第一磁盘和第二磁盘中各逻辑块的实际块地址一一对应的虚拟块地址;
处理内核,用于实时检测输入I/O接收写命令的频率,并依据当前写命令中的虚拟块地址在所述地址映射表中对应的实际块地址,将当前写命令中的写数据写入至当前频率下应写入磁盘的实际块地址;且,如若当前写命令中的虚拟块地址对应的实际块地址与在当前频率下应写入的实际块地址所属磁盘不符,则将地址映射表中与当前写命令中的虚拟块地址所对应的实际块地址交换为相符的另一实际块地址。
所述处理内核进一步在系统初始化时生成所述地址映射表并存储在所述第一存储介质中。
所述地址映射表中进一步设置有第一磁盘中各逻辑块的使用标志位、第二磁盘中各逻辑块的使用标志位;
在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示未写入数据的值时,所述处理内核进一步将该使用标志位设置为表示已写入数据的值。
所述处理器进一步包括第二存储介质;
在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示已写入数据的值、且所述地址映射表中任意虚拟块地址所对应的实际块地址需要进行交换时,所述处理内核进一步按照该虚拟块地址在交换前后所分别对应的实际块地址,将第一磁盘中对应逻辑块内存储的数据与第二磁盘中对应逻辑块内存储的数据通过所述第二存储介质交换。
所述处理器进一步包括第三存储介质;
所述第三存储介质与所述输入I/O相连,用于缓存输入I/O接收写命令;
所述处理内核进一步计算所述第三存储介质中在单位时间内所缓存的写命令数量,以实时检测所述输入I/O接收写命令的频率。
所述第一、第二、第三存储介质均为内存。
所述第一磁盘为固态硬盘SSD磁盘,所述第二磁盘为磁碟型磁盘。
所述处理器设置于磁盘存储系统中的存储控制器内,所述第一磁盘和第二磁盘设置于磁盘存储系统中的磁盘柜内,且,
所述处理器的输入I/O与所述存储控制器中可连接网络主机的业务接口相连、至少两个输出I/O分别通过所述存储控制器的对应通讯接口与所述磁盘柜中的第一磁盘和第二磁盘分别相连。
所述业务接口为可连接IP网络或光纤通道FC网络的光纤通道FC接口、或者千兆以太网GE接口,所述通讯接口为因特网小型计算机接口iSCSI或者FC接口。
本发明提供的一种磁盘存储控制方法,包括:
实时接收写命令;
实时检测接收写命令的频率;
在所述频率大于预设阈值时,将当前写命令中的写数据向第一磁盘写入;
在所述频率小于等于预设阈值时,将当前写命令中的写数据向I/O速率低于所述第一磁盘的第二磁盘写入。
该方法进一步设置有地址映射表,该地址映射表中设置有第一磁盘中各逻辑块的实际块地址、第二磁盘中各逻辑块的实际块地址、以及统一编址得到的与第一磁盘和第二磁盘中各逻辑块的实际块地址一一对应的虚拟块地址;
该方法进一步依据当前写命令中的虚拟块地址在所述地址映射表中对应的实际块地址,将当前写命令中的写数据写入至当前频率下应写入磁盘的实际块地址;且,如若当前写命令中的虚拟块地址对应的实际块地址与在当前频率下应写入的实际块地址所属磁盘不符,则将地址映射表中与当前写命令中的虚拟块地址所对应的实际块地址交换为相符的另一实际块地址。
所述地址映射表中进一步设置有第一磁盘中各逻辑块的使用标志位、第二磁盘中各逻辑块的使用标志位;
且,该方法在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示未写入数据的值时,进一步将该使用标志位设置为表示已写入数据的值。
该方法在所述地址映射表中任意虚拟块地址所对应的实际块地址需要进行交换时,进一步按照该虚拟块地址在交换前后所分别对应的实际块地址,将第一磁盘中对应逻辑块内存储的数据与第二磁盘中对应逻辑块内存储的数据通过一缓存进行交换。
该方法进一步将接收到的写命令缓存、并计算单位时间内所缓存的写命令数量,以实时检测接收写命令的频率。
本发明提供的一种磁盘存储控制装置,包括:
可接收写命令的输入接口单元;
可与第一磁盘通讯的第一输出接口单元;
可与I/O速率低于所述第一磁盘的第二磁盘通讯的第二输出接口单元;
可实时检测输入接口单元接收写命令频率的接口检测单元;
以及,分层存储单元,用于在所述频率大于预设阈值时,通过第一输出接口单元将当前写命令中的写数据向第一磁盘写入;在所述频率小于等于预设阈值时,通过第二输出接口单元将当前写命令中的写数据向第二磁盘写入。
该磁盘存储控制装置进一步包括映射存储单元和地址交换单元,其中,
所述映射存储单元,用于存储预设的地址映射表,该地址映射表中设置有第一磁盘中各逻辑块的实际块地址、第二磁盘中各逻辑块的实际块地址、以及统一编址得到的与第一磁盘和第二磁盘中各逻辑块的实际块地址一一对应的虚拟块地址;
所述地址交换单元,用于在当前写命令中的虚拟块地址对应的实际块地址与在当前频率下应写入的实际块地址所属磁盘不符,则将地址映射表中与当前写命令中的虚拟块地址所对应的实际块地址交换为相符的另一实际块地址;
且,所述分层存储单元进一步按照当前写命令中的虚拟块地址所对应的虚拟块地址,将当前写命令中的写数据写入至当前频率下应写入磁盘的实际块地址。
所述地址映射表中进一步设置有第一磁盘中各逻辑块的使用标志位、第二磁盘中各逻辑块的使用标志位;
且,该磁盘存储控制装置进一步包括标志设置单元,用于在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示未写入数据的值时,进一步将该使用标志位设置为表示已写入数据的值。
该磁盘存储控制装置进一步包括数据交换单元,用于在所述地址映射表中任意虚拟块地址所对应的实际块地址需要进行交换时,进一步按照该虚拟块地址在交换前后所分别对应的实际块地址,将第一磁盘中对应逻辑块内存储的数据与第二磁盘中对应逻辑块内存储的数据通过其内部的缓存进行交换。
该磁盘存储控制装置进一步包括:可缓存输入接口单元接收到的写命令的命令缓存单元;
所述接口检测单元进一步计算命令缓存单元在单位时间内所缓存的写命令数量、以实时检测接收写命令的频率。
由上述技术方案可见,本发明同时利用I/O速率较高的第一磁盘和I/O速率较低的第二磁盘作为磁盘存储系统的物理磁盘,当处理器接收写命令的频率较高时,将写命令中的写数据写入至I/O速率更高的第一磁盘,以保证磁盘存储系统的读写性能不会受物理磁盘I/O速率的影响而降低;而当处理器接收写命令的频率较低时,第二磁盘的I/O速率即可满足正常的读写,因而此时将写命令中的写数据写入至I/O速率较低的第二磁盘,从而既提高了磁盘存储系统读写性能、又节省了磁盘存储系统的成本。
进一步地,本发明还可以设置一地址映射表,该地址映射表中设置有第一磁盘中各逻辑块的实际块地址、第二磁盘中各逻辑块的实际块地址、以及统一编址得到的与第一磁盘和第二磁盘中各逻辑块的实际块地址一一对应的虚拟块地址,并基于统一编址得到的虚拟块地址执行写操作,从而能够保证磁盘存储系统的稳定运行、以及对第一磁盘和第二磁盘的准确快速寻址。
附图说明
图1为本发明实施例中磁盘存储系统的结构示意图;
图2为本发明实施例中磁盘存储控制方法的示例性流程示意图;
图3a和图3b为本发明实施例中一磁盘存储控制方法实例的流程示意图;
图4为本发明实施例中磁盘存储控制装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
在本发明实施例中,同时选用SSD磁盘以及磁碟型磁盘作为磁盘存储系统的物理磁盘,并基于SSD磁盘和磁碟型磁盘按照如下方式实现分层存储:
当处理器接收写命令的频率较高时,将写命令中的写数据写入至I/O速率更高的SSD磁盘,以保证磁盘存储系统此时的读写性能不会受物理磁盘I/O速率的影响而降低;
而当处理器接收写命令的频率较低时,磁碟型磁盘的I/O速率即可满足正常的读写、无需成本很高的SSD磁盘,因而此时将写命令中的写数据写入至I/O速率较低、磁盘容量较大的磁碟型磁盘即可。
这样,就能够利用SSD磁盘I/O速率高的特性提高磁盘存储系统读写性能、并利用磁碟型磁盘的存储量大且成本低的特性节省磁盘存储系统的成本。
当然,SSD磁盘和磁碟型磁盘也可用其它具有等同特性的磁盘替代,且只要满足用于在处理器接收写命令的频率较高时写入数据的磁盘,相比于用于在处理器接收写命令的频率较低时写入数据的磁盘具有更高的I/O速率即可。例如,用于在处理器接收写命令的频率较高时写入数据的磁盘、以及用于在处理器接收写命令的频率较低时写入数据的磁盘均可选用SSD磁盘,只是前者选用的SSD磁盘为高速SSD磁盘、后者选用的SSD磁盘为低速SSD磁盘;或者,用于在处理器接收写命令的频率较高时写入数据的磁盘、以及用于在处理器接收写命令的频率较低时写入数据的磁盘均可选用磁碟型磁盘,只是前者选用的磁碟型磁盘相比于后者选用的磁碟型磁盘具有更高I/O速率;再或者,用于在处理器接收写命令的频率较高时写入数据的磁盘可选用I/O速率高于SSD磁盘的任意存储介质,而用于在处理器接收写命令的频率较低时写入数据的磁盘选用SSD磁盘。关于其他的多种选用磁盘的方式在此不再一一列举。
图1为本发明实施例中磁盘存储系统的结构示意图。如图1所示,以用于在处理器接收写命令的频率较高时写入数据的磁盘为SSD磁盘、用于在处理器接收写命令的频率较低时写入数据的磁盘为磁碟型磁盘为例,本实施例中的磁盘存储系统包括:
处理器100,其具有一输入I/O 101、以及至少两个输出I/O 102和103;
输入I/O 101与客户端相连,用于接收来自客户端的写命令;
与其中一个输出I/O 102相连的SSD磁盘110;
与另一个输出I/O 103相连的磁碟型磁盘120;
且,处理器100实时检测其输入I/O 101接收写命令的频率;在检测到的频率大于预设阈值时,将当前写命令中的写数据写入至SSD磁盘110;在频率小于等于预设阈值时,将当前写命令中的写数据写入至磁碟型磁盘120。
具体来说,在如图1所示的系统中,处理器100内包括一处理内核104以及与处理内核104相连的内存105,且处理内核104还与输入I/O 101、以及至少两个输出I/O 102和103相连。
为了实现对输入I/O 101接收写命令的频率的实时检测,本实施例中一种可选的方式为处理内核104将输入I/O 101接收到的写命令均缓存至内存105中的缓冲区153内,并通过计算单位时间内缓存至缓冲区153的写命令数量实现对输入I/O 101接收写命令的频率的实时检测。例如,若每毫秒有n个写命令缓存至缓冲区153,则认为此时的写命令频繁,n为大于1的正整数,较佳地n取100。
这种情况下,由于写命令一般携带最大的写数据块数为512块、且一般而言每块写数据的大小为512字节,即一个写命令携带的最大写数据为512×512=262144字节=256K字节,因此,为了保证缓冲区153有足够的存储空间,设置该缓冲区的存储空间大小至少为n×256K字节。这样,当1毫秒内有n个写命令缓存至缓冲区153,即认为此时接收写命令的频率较高、并将缓存的各写命令中的写数据向SSD磁盘110写入。
此外,写命令中不仅携带了写数据,同时还会指定该写数据所要写入的物理磁盘中的逻辑块地址(logical block address)。而对于本实施例如图1所示的系统来说,可写入的物理磁盘包括SSD磁盘110和磁碟型磁盘120,因而本实施例可将SSD磁盘110和磁碟型磁盘120虚拟为同一个虚拟存储资源,并该虚拟资源中的各逻辑块统一编址。
这样,处理内核104只依据虚拟块地址执行写操作,从而能够保证磁盘存储系统的稳定运行、以及对第一磁盘和第二磁盘的准确快速寻址。而且,处理内核104可将统一编址得到的虚拟块地址呈现给客户端,无需客户端针对不同的物理磁盘分别设置写命令中的逻辑块地址,从而还能够提高磁盘存储系统的通用性。
具体来说,仍参见图1,处理器100中的内存105内还设置有一存储区151和一缓存区152。
存储区151用于存储如表1所示的预设的地址映射表。处理内核104可进一步在系统初始化时生成如表1所示的地址映射表并存储在存储区151中。
虚拟块地址(v_add) | V1 | V2 | ...... | Vp-1 | Vp | Vp+1 | ....... | Vq |
实际块地址(logical_add) | SSD1 | SSD2 | ...... | SSDi | 磁碟1 | 磁碟2 | ....... | 磁碟j |
使用标志位(use) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
表1
参见表1,该地址映射表中设置有:
SSD磁盘110中各逻辑块的实际块地址SSD1~SSDi,i为大于1的正整数;
磁碟型磁盘120中各逻辑块的实际块地址磁碟1~磁碟j,j为大于1的正整数;
以及,统一编址得到的与SSD磁盘110和磁碟型磁盘120中各逻辑块的实际块地址一一对应的虚拟块地址V1~Vq,p和q为大于1的正整数。
其中,本文所述的实际块地址是指真实的逻辑块地址,称之为实际块地址是为了区别于虚拟块地址。
此外,可选地,如表1所示的地址映射表中还设置有SSD磁盘110中各逻辑块的使用标志位、磁碟型磁盘120中各逻辑块的使用标志位,初始状态下,各使用标志位均为表示未写入数据的值0。
这种情况下,处理内核104除了实时检测输入I/O接收写命令的频率之外,还可进一步依据当前写命令中的虚拟块地址在如表1所示的地址映射表中对应的实际块地址,执行对当前写命令中写数据的写操作,以将当前写命令中的写数据写入至当前频率下应写入的实际块地址,但如若当前写命令中的虚拟块地址对应的实际块地址与在当前频率下应写入的实际块地址所属磁盘不符,则需进一步将地址映射表中与当前写命令中的虚拟块地址所对应的实际块地址交换为相符的另一实际块地址。
具体包括如下四种情况:
1)在实时检测到的频率大于预设阈值、且当前写命令中的虚拟块地址对应SSD磁盘110中任意逻辑块的实际块地址时,则处理内核104直接依据当前写命令中的虚拟块地址所对应的实际块地址执行对当前写命令中写数据的写操作。
且,在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示未写入数据的值0时,处理内核104进一步将该使用标志位设置为表示已写入数据的值1;在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示已写入数据的值1时,则可认为当前写命令中的写数据本意就在于将该逻辑块内存储的数据替换,因而处理内核104无需对该标志位进行任何处理。
假设,当前写命令中的虚拟块地址为V1、其在如表1所示的地址映射表中对应的实际块地址为SSD1,则处理内核104直接依据的虚拟块地址为V1所对应的实际块地址SSD1,执行对当前写命令中写数据的写操作,将当前写命令中的写数据写入至SSD磁盘110中实际块地址SSD1对应的逻辑块内,并将SSD磁盘110中实际块地址SSD1对应的逻辑块的使用标志位设置为表示已写入数据的值1。
执行上述处理后的地址映射表可如表2a所示。
虚拟块地址(v_add) | V1 | V2 | ...... | Vp-1 | Vp | Vp+1 | ....... | Vq |
实际块地址(logical_add) | SSD1 | SSD2 | ...... | SSDi | 磁碟1 | 磁碟2 | ....... | 磁碟j |
使用标志位(use) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
表2a
2)在实时检测到的频率大于预设阈值、且当前写命令中的虚拟块地址对应磁碟型磁盘120中任意逻辑块的实际块地址时,先将地址映射表中的该实际块地址与SSD磁盘110中任意逻辑块的实际块地址交换之后,再按照当前写命令中的虚拟块地址在交换后所对应的实际块地址执行对当前写命令中写数据的写操作;当然,使用标志位也随之交换。这样,如后续客户端希望读取当前写命令中的写数据,则可在发送的读命令中携带与该写命令中相同的虚拟块地址,并由处理内核104按照该虚拟块地址在地址映射表中对应的实际块地址进行读操作即可。
且,在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示未写入数据的值0时,处理内核104进一步将该使用标志位设置为表示已写入数据的值1;在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示已写入数据的值1时,由于虚拟块地址所对应的实际块地址发生了交换,因而替换后所对应的实际块地址内已存储的数据应当保留,并由处理内核104先按照该虚拟块地址在交换后所对应的实际块地址,将SSD磁盘110中对应逻辑块内存储的数据读取至内存105中的缓存区152内,然后在执行写操作的同时或之后,按照该虚拟块地址在交换前所对应的实际块地址将缓存区152内的数据写入至磁碟型磁盘120中的对应逻辑块,从而实现将SSD磁盘110中对应逻辑块内存储的数据与磁碟型磁盘120中对应逻辑块内存储的数据通过缓存区152的交换。当然,即便写入当前写命令中写数据的逻辑块所对应的使用标志位为表示未写入数据的值0,也可执行上述数据交换。
假设,当前写命令中的虚拟块地址为Vq、其在如表1所示的地址映射表中对应的实际块地址为磁碟j,则处理内核104先将地址映射表中的该实际块地址磁碟j与SSD磁盘110中任意逻辑块的实际块地址SSDi交换之后,再按照当前写命令中的虚拟块地址Vq在交换后所对应的实际块地址SSDi,将当前写命令中的写数据写入至SSD磁盘110中实际块地址SSDi对应的逻辑块内,并将SSD磁盘110中实际块地址SSDi对应的逻辑块的使用标志位设置为表示已写入数据的值1。
且,在当前写命令中的写数据写入至SSD磁盘110中实际块地址SSDi对应的逻辑块内之前,处理内核104先将SSD磁盘110中实际块地址SSDi对应的逻辑块内的数据读取至缓存区152,然后再将当前写命令中的写数据写入至SSD磁盘110中实际块地址SSDi对应的逻辑块内、并在任意时刻将缓存区152内的数据交换至磁碟型磁盘120中实际块地址磁碟j对应的逻辑块内。
优选地,为了尽可能避免上述的数据交换,在进行实际块地址的交换时,优先选择SSD磁盘110中对应的使用标志位为未存储数据的值0的实际块地址作为交换对象。
执行上述处理后的地址映射表可如表2b所示。
虚拟块地址(v_add) | V1 | V2 | ...... | Vp-1 | Vp | Vp+1 | ....... | Vq |
实际块地址(logical_add) | SSD1 | SSD2 | ...... | 磁碟j | 磁碟1 | 磁碟2 | ....... | SSDi |
使用标志位(use) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
表2b
3)在所述频率小于等于预设阈值、且当前写命令中的虚拟块地址对应SSD磁盘110中任意逻辑块的实际块地址时,处理内核104先将地址映射表中的该实际块地址与磁碟型磁盘120中任意逻辑块的实际块地址交换之后,再按照当前写命令中的虚拟块地址在交换后所对应的实际块地址执行对当前写命令中写数据的写操作;当然,使用标志位也随之交换。这样,如后续客户端希望读取当前写命令中的写数据,则可在发送的读命令中携带与该写命令中相同的虚拟块地址,并由处理内核104按照该虚拟块地址在地址映射表中对应的实际块地址进行读操作即可。
且,在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示未写入数据的值0时,处理内核104进一步将该使用标志位设置为表示已写入数据的值1;在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示已写入数据的值1时,由于虚拟块地址所对应的实际块地址发生了交换,因而替换后所对应的实际块地址内已存储的数据应当保留,并由处理内核104先按照该虚拟块地址在交换后所对应的实际块地址,将磁碟型磁盘120中对应逻辑块内存储的数据读取至内存105中的缓存区152内,然后在执行写操作的同时或之后,按照该虚拟块地址在交换前所对应的实际块地址将缓存区152内的数据写入至SSD磁盘110中的对应逻辑块,从而实现将SSD磁盘110中对应逻辑块内存储的数据与磁碟型磁盘120中对应逻辑块内存储的数据通过缓存区152的交换。当然,即便写入当前写命令中写数据的逻辑块所对应的使用标志位为表示未写入数据的值0,也可执行上述数据交换。
假设,当前写命令中的虚拟块地址为V2、其在如表1所示的地址映射表中对应的实际块地址为SSD2,则处理内核104先将地址映射表中的该实际块地址SSD2与磁碟型磁盘120中任意逻辑块的实际块地址磁碟1交换之后,再按照当前写命令中的虚拟块地址V2在交换后所对应的实际块地址磁碟1,将当前写命令中的写数据写入至磁碟型磁盘120中实际块地址磁碟1对应的逻辑块内,并将磁碟型磁盘120中实际块地址磁碟1对应的逻辑块的使用标志位设置为表示已写入数据的值1。
且,在将当前写命令中的写数据写入至磁碟型磁盘120中实际块地址磁碟1对应的逻辑块内之前,处理内核104先将磁碟型磁盘120中实际块地址磁碟1对应的逻辑块内的数据读取至缓存区152,然后再将当前写命令中的写数据写入至磁碟型磁盘120中实际块地址磁碟1对应的逻辑块内、并在任意时刻将缓存区152内的数据交换至SSD磁盘110中实际块地址为SSD2对应的逻辑块内。
优选地,为了尽可能避免上述的数据交换,在进行实际块地址的交换时,优先选择磁碟型磁盘120中对应的使用标志位为未存储数据的值0的实际块地址作为交换对象。
执行上述处理后的地址映射表可如表2c所示。
虚拟块地址(v_add) | V1 | V2 | ...... | Vp-1 | Vp | Vp+1 | ....... | Vq |
实际块地址(logical_add) | SSD1 | 磁碟1 | ...... | SSDi | SSD2 | 磁碟2 | ....... | 磁碟j |
使用标志位(use) | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
表2c
4)在实时检测到的频率小于等于预设阈值、且当前写命令中的虚拟块地址对应磁碟型磁盘120中任意逻辑块的实际块地址时,则处理内核104直接依据当前写命令中的虚拟块地址所对应的实际块地址执行对当前写命令中写数据的写操作。
且,在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示未写入数据的值0时,处理内核104进一步将该使用标志位设置为表示已写入数据的值1;在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示已写入数据的值1时,则可认为当前写命令中的写数据本意就在于将该逻辑块内存储的数据替换,因而处理内核104无需对该标志位进行任何处理。
假设,当前写命令中的虚拟块地址为VP、其在如表1所示的地址映射表中对应的实际块地址为磁碟1,则处理内核104直接依据的虚拟块地址为Vp所对应的实际块地址磁碟1,执行对当前写命令中写数据的写操作,将当前写命令中的写数据写入至磁碟型磁盘120中实际块地址磁碟1对应的逻辑块内,并将磁碟型磁盘120中实际块地址磁碟1对应的逻辑块的使用标志位设置为表示已写入数据的值1。
执行上述处理后的地址映射表可如表2d所示。
虚拟块地址(v_add) | V1 | V2 | ...... | Vp-1 | Vp | Vp+1 | ....... | Vq |
实际块地址(logical_add) | SSD1 | SSD2 | ...... | SSDi | 磁碟1 | 磁碟2 | ....... | 磁碟j |
使用标志位(use) | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
表2d
按照如上所述的方式,即可简单快捷地实现对SSD磁盘110和磁碟型磁盘120中各逻辑块的准确寻址。
进一步举例说明的是,SSD磁盘110中各逻辑块的实际块地址可以与磁碟型磁盘120中各逻辑块的实际块地址采用不同的格式、或携带不同的类型标示,以供处理内核104依此区分当前写命令中的虚拟块地址所对应的实际块地址是属于SSD磁盘110还是磁碟型磁盘120。
或者,SSD磁盘110中各逻辑块的实际块地址与磁碟型磁盘120中各逻辑块的实际块地址可选取不同的连续数值区间,并可采用相同的格式、且无需携带任何类型标识。这种情况下,处理内核104可依据当前写命令中的虚拟块地址对应的实际块地址的数值所在的连续数值区间,来区分该实际块地址是属于SSD磁盘110中逻辑块的实际块地址、还是属于磁碟型磁盘120中逻辑块的实际块地址。
虚拟块地址(v_add) | 1 | 2 | ...... | 150 | 151 | 152 | ...... | 200 |
实际块地址(1ogical_add) | 1 | 2 | ...... | 150 | 151 | 152 | ...... | 200 |
使用标志位(use) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
表3
参见表3,SSD磁盘110中各逻辑块的实际块地址SSD1~SSDi选取的数值区间为1~150;磁碟型磁盘120中各逻辑块的实际块地址磁碟1~磁碟j选取的数值区间为151~200;且,统一编址得到的与SSD磁盘110和磁碟型磁盘120中各逻辑块的实际块地址一一对应的虚拟块地址V1~Vq选取的数值区间为1~200。
这样,对于SSD磁盘110中各逻辑块的实际块地址SSD1~SSDi来说,其最大数值只可能为150,因此,在当前写命令中的虚拟块地址对应的实际块地址大于等于1且小于等于150时,即可判定该实际块地址为SSD磁盘110中逻辑块的实际块地址;在当前写命令中的虚拟块地址对应的实际块地址大于等于151且小于等于200时,即可判定该实际块地址为磁碟型磁盘120中逻辑块的实际块地址。
以上是对本实施例如图1所示的磁盘存储系统的详细说明。除了如图1所示的结构之外,本领域技术人员当然能够想到其他的硬件替换方式,例如可由独立于处理器104之外的三个不同的可擦写存储介质来分别实现存储区151、缓存区152、缓冲区域153等,在此不再一一赘述。
另外需要说明的是,上述如图1所示的磁盘存储系统中,处理器100可设置于该磁盘存储系统中的存储控制器内(图1中未示出),而SSD磁盘110和磁碟型磁盘120则可设置于该磁盘存储系统中的磁盘柜内。
而对于该磁盘存储系统中的存储控制器,其可以与作为客户端的网络主机通过互联网协议(Internet Protocol,IP)网络或者光纤通道(Fibre Channel,FC)网络相连,相应地,处理器100的输入I/O 101即可与存储控制器中通过IP网络或FC网络连接网络主机的业务接口相连,该业务接口可以为千兆以太网(GE)接口、或光纤通道(Fibre Channel,FC)接口。
此种情况下,存储控制器还基于因特网小型计算机接口(Internet SCSI,iSCSI)协议或FC协议与磁盘柜交互,相应地,处理器100的输出I/O 102和103通过存储控制器中的对应iSCSI或者FC接口与所述磁盘柜中的SSD磁盘110和磁碟型磁盘120分别相连。
下面,仍以用于在处理器接收写命令的频率较高时写入数据的磁盘为SSD磁盘、用于在处理器接收写命令的频率较低时写入数据的磁盘为磁碟型磁盘为例,对本实施例中的磁盘存储控制方法进行详细说明。
图2为本发明实施例中磁盘存储控制方法的示例性流程示意图。如图2所示,本实施例中的磁盘存储控制方法包括:
步骤200,实时接收来自客户端的写命令。
步骤201,实时检测接收写命令的频率。
步骤202,判断实时检测到的频率是否大于预设阈值,如果是,则执行步骤203,否则执行步骤204。
步骤203,在实时检测到的频率大于预设阈值时,将当前写命令中的写数据向SSD磁盘写入,并返回步骤202或结束流程。
步骤204,在实时检测到的频率小于等于预设阈值时,将当前写命令中的写数据向磁碟型磁盘写入,并返回步骤202或结束流程。
至此,上述流程结束。
对于本实施例中的磁盘存储控制方法来说,也可使用前述如表1所示的地址映射表。这样,在上述如图2所示流程的步骤203和步骤204之前,可进一步设置前述如图1所示的地址映射表,该地址映射表中设置有SSD磁盘中各逻辑块的实际块地址、磁碟型磁盘中各逻辑块的实际块地址、以及统一编址得到的与SSD磁盘和磁碟型磁盘中各逻辑块的实际块地址一一对应的虚拟块地址,该地址映射表中还可进一步设置有SSD磁盘中各逻辑块的使用标志位、磁碟型磁盘中各逻辑块的使用标志位。
相应地,上述如图2所示流程的步骤203和步骤204进一步依据当前写命令中的虚拟块地址在所述地址映射表中对应的实际块地址,将当前写命令中的写数据写入至当前频率下应写入磁盘的实际块地址。且,如若当前写命令中的虚拟块地址对应的实际块地址与在当前频率下应写入的实际块地址所属磁盘不符,则在步骤203和步骤204之前,还需将地址映射表中与当前写命令中的虚拟块地址所对应的实际块地址交换为相符的另一实际块地址。
具体来说,上述如图2所示流程的步骤203之前,在所述频率大于预设阈值、且当前写命令中的虚拟块地址对应磁碟型磁盘中任意逻辑块的实际块地址时,将地址映射表中的该实际块地址与SSD磁盘中任意逻辑块的实际块地址交换。此后,即可在步骤203按照当前写命令中的虚拟块地址在交换后所对应的实际块地址执行对当前写命令中写数据的写操作,以将当前写命令中的写数据写入至交换后所对应的实际块地址对应的SSD磁盘的逻辑块内。
且,上述如图2所示流程的步骤204之前,在所述频率小于等于预设阈值、且当前写命令中的虚拟块地址对应SSD磁盘中任意逻辑块的实际块地址时,将地址映射表中的该实际块地址与磁碟型磁盘中任意逻辑块的实际块地址交换。此后,即可在步骤204按照当前写命令中的虚拟块地址在交换后所对应的实际块地址执行对当前写命令中写数据的写操作,以将当前写命令中的写数据写入至交换后所对应的实际块地址对应的磁碟型磁盘的逻辑块内。
而在实时检测到的频率大于预设阈值、且当前写命令中的虚拟块地址对应SSD磁盘中任意逻辑块的实际块地址时、以及在实时检测到的频率小于等于预设阈值、且当前写命令中的虚拟块地址对应磁碟型磁盘中任意逻辑块的实际块地址时,则不对地址映射表中的实际块地址进行任何调整,步骤203和步骤24即可直接按照当前写命令中的虚拟块地址在地址映射表中所对应的虚拟块地址执行对当前写命令中写数据的写操作。
此外,上述如图2所示流程的步骤203和步骤204之前,在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示未写入数据的值时,可进一步将该使用标志位设置为表示已写入数据的值。
进一步可选地,上述如图2所示流程的步骤203和步骤204的执行过程中,如果所述地址映射表中任意虚拟块地址所对应的实际块地址需要进行交换,则可进一步按照该虚拟块地址在交换前后所分别对应的实际块地址,分别将SSD磁盘中对应逻辑块内存储的数据与磁碟型磁盘中对应逻辑块内存储的数据通过一缓存(图4中未示出)进行交换。
将所有上述可选的均结合之如图2所示的流程中,即可构成磁盘存储控制方法的一较佳实例。图3a和图3b为本发明实施例中一磁盘存储控制方法实例的流程示意图。如图3a和图3b所示,该磁盘存储控制方法实例包括如下步骤:
步骤300,实时接收来自客户端的写命令。
步骤301,实时检测接收写命令的频率。
本步骤中可将接收到的写命令缓存、并计算单位时间内所缓存的写命令数量,以实时检测接收写命令的频率。
步骤302,判断实时检测到的频率是否大于预设阈值,如果是,则执行步骤303,否则执行步骤312。
步骤303,在地址映射表中查找当前写命令中的虚拟块地址所对应的实际块地址,并执行步骤304。
步骤304,判断查找到的实际块地址属于哪一个磁盘中的逻辑块,如果属于SSD磁盘中的逻辑块则执行步骤305,如果属于磁碟型磁盘中的逻辑块执行步骤308。
可选地,SSD磁盘中各逻辑块的实际块地址可以与磁碟型磁盘中各逻辑块的实际块地址采用不同的格式、或携带不同的类型标示。这种情况下,本步骤可以依据不同的格式、或不同的类型标示来实现上述判断。
或者,SSD磁盘中各逻辑块的实际块地址与磁碟型磁盘中各逻辑块的实际块地址可选取不同的连续数值区间,并可采用相同的格式、且无需携带任何类型标识。这种情况下,本步骤可依据当前写命令中的虚拟块地址对应的实际块地址的数值所在的连续数值区间,来区分该实际块地址是属于SSD磁盘中逻辑块的实际块地址、还是属于磁碟型磁盘中逻辑块的实际块地址。
步骤305,判断查找到的实际块地址所对应的SSD磁盘中的逻辑块的使用标志位是否为表示未使用的值,如果是,则执行步骤306,否则执行步骤307。
步骤306,将查找到的实际块地址所对应的SSD磁盘中的逻辑块的使用标志位设置为表示已写入数据的值,并执行步骤307。
步骤307,直接依据当前写命令中的虚拟块地址所对应的实际块地址执行对当前写命令中写数据的写操作,从而将当前写命令中的写数据写入至SSD磁盘中的对应逻辑块内,然后返回步骤302或结束本流程。
步骤308,在地址映射表内选定SSD磁盘中任意逻辑块的实际块地址,并执行步骤309。
步骤309,判断选定的实际块地址所对应的SSD磁盘中的逻辑块的使用标志位是否为表示未使用的值,如果是,则执行步骤310,否则执行步骤311。
步骤310,将选定的实际块地址所对应的SSD磁盘中的逻辑块的使用标志位设置为表示已写入数据的值,并执行步骤311。
步骤311,在地址映射表中将对应当前写命令中虚拟块地址的实际块地址与选定的实际块地址交换,并将两个实际块地址分别对应的逻辑块内存储的数据进行交换,并执行步骤312。
本步骤中,数据交换的具体处理过程可以包括:将对应当前写命令中虚拟块地址交换后所对应的实际块地址在SSD磁盘中的对应逻辑块内存储的数据读取至一缓存中,然后按照当前写命令中虚拟块地址在交换后所对应的实际块地址,将当前写数据写入至SSD磁盘中对应的逻辑块内,并将缓存中的数据写入至当前写命令中虚拟块地址交换前所对应的实际块地址在磁碟型磁盘中对应的逻辑块内。
步骤312,依据当前写命令中的虚拟块地址在交换后所对应的实际块地址执行对当前写命令中写数据的写操作,从而将当前写命令中的写数据写入至SSD磁盘中的对应逻辑块内,然后返回步骤302或结束本流程。
步骤313,在地址映射表中查找当前写命令中的虚拟块地址所对应的实际块地址,并执行步骤314。
步骤314,判断查找到的实际块地址属于哪一个磁盘中的逻辑块,如果属于SSD磁盘中的逻辑块则执行步骤315,如果属于磁碟型磁盘中的逻辑块执行步骤320。
可选地,SSD磁盘中各逻辑块的实际块地址可以与磁碟型磁盘中各逻辑块的实际块地址采用不同的格式、或携带不同的类型标示。这种情况下,本步骤可以依据不同的格式、或不同的类型标示来实现上述判断。
或者,SSD磁盘中各逻辑块的实际块地址与磁碟型磁盘中各逻辑块的实际块地址可选取不同的连续数值区间,并可采用相同的格式、且无需携带任何类型标识。这种情况下,本步骤可依据当前写命令中的虚拟块地址对应的实际块地址的数值所在的连续数值区间,来区分该实际块地址是属于SSD磁盘中逻辑块的实际块地址、还是属于磁碟型磁盘中逻辑块的实际块地址。
步骤315,在地址映射表内选定磁碟型磁盘中任意逻辑块的实际块地址,并执行步骤316。
步骤316,判断选定的实际块地址所对应的磁碟型磁盘中的逻辑块的使用标志位是否为表示未使用的值,如果是,则执行步骤317,否则执行步骤318。
步骤317,将选定的实际块地址所对应的磁碟型磁盘中的逻辑块的使用标志位设置为表示已写入数据的值,并执行步骤318。
步骤318,在地址映射表中将对应当前写命令中虚拟块地址的实际块地址与选定的实际块地址交换,并将两个实际块地址分别对应的逻辑块内存储的数据进行交换,并执行步骤319。
本步骤中,数据交换的具体处理过程可以包括:将对应当前写命令中虚拟块地址交换后所对应的实际块地址在磁碟型磁盘中的对应逻辑块内存储的数据读取至一缓存中,然后按照当前写命令中虚拟块地址在交换后所对应的实际块地址,将当前写数据写入至磁碟型磁盘中对应的逻辑块内,并将缓存中的数据写入至当前写命令中虚拟块地址交换前所对应的实际块地址在SSD磁盘中对应的逻辑块内。
步骤319,依据当前写命令中的虚拟块地址在交换后所对应的实际块地址执行对当前写命令中写数据的写操作,从而将当前写命令中的写数据写入至磁碟型磁盘中的对应逻辑块内,然后返回步骤302或结束本流程。
步骤320,判断查找到的实际块地址所对应的磁碟型磁盘中的逻辑块的使用标志位是否为表示未使用的值,如果是,则执行步骤321,否则执行步骤320。
步骤321,将查找到的实际块地址所对应的磁碟型磁盘中的逻辑块的使用标志位设置为表示已写入数据的值,并执行步骤322。
步骤322,直接依据当前写命令中的虚拟块地址所对应的实际块地址执行对当前写命令中写数据的写操作,从而将当前写命令中的写数据写入至磁碟型磁盘中的对应逻辑块内,然后返回步骤302或结束本流程。
至此,上述流程结束。
上述如图2和图3所示的磁盘存储控制方法,可由计算机流程来实现。那么相应地,本实施例还提供了与上述磁盘存储控制方法相对应的一种磁盘存储控制装置。
图4为本发明实施例中磁盘存储控制装置的结构示意图。如图4所示,用于在处理器接收写命令的频率较高时写入数据的磁盘为SSD磁盘、用于在处理器接收写命令的频率较低时写入数据的磁盘为磁碟型磁盘本实施例中的磁盘存储控制装置包括:
可接收写命令的输入接口单元401,该写命令可以是由网络主机通过IP网络或FC网络发送的;
可与SSD磁盘通讯的第一输出接口单元402,可选地,第一输出接口单元402可基于iSCSI或者FC实现与SSD磁盘的通讯;
可与磁碟型磁盘通讯的第二输出接口单元403,可选地,第二输出接口单元403可基于iSCSI或者FC实现与磁碟型磁盘的通讯;
可实时检测输入接口单元401接收写命令频率的接口检测单元404;
以及,分层存储单元405,用于在所述频率大于预设阈值时,通过第一输出接口单元402将当前写命令中的写数据向SSD磁盘写入;在所述频率小于等于预设阈值时,通过第二输出接口单元403将当前写命令中的写数据向磁碟型磁盘写入。
仍参见图4,本实施例中的磁盘存储控制装置可进一步包括映射存储单元406、地址交换单元407、标志设置单元408、以及数据交换单元409。
映射存储单元406,用于存储前述如图1所示的地址映射表,该地址映射表中设置有SSD磁盘中各逻辑块的实际块地址、磁碟型磁盘中各逻辑块的实际块地址、以及统一编址得到的与SSD磁盘和磁碟型磁盘中各逻辑块的实际块地址一一对应的虚拟块地址,该地址映射表中还可进一步设置有SSD磁盘中各逻辑块的使用标志位、磁碟型磁盘中各逻辑块的使用标志位。
地址交换单元407,用于在所述频率大于预设阈值、且当前写命令中的虚拟块地址对应磁碟型磁盘中任意逻辑块的实际块地址时,将地址映射表中的该实际块地址与SSD磁盘中任意逻辑块的实际块地址交换。此后,分层存储单元405即可按照当前写命令中的虚拟块地址在交换后所对应的实际块地址执行对当前写命令中写数据的写操作,以将当前写命令中的写数据写入至交换后所对应的实际块地址对应的SSD磁盘的逻辑块内。
地址交换单元407还用于在所述频率小于等于预设阈值、且当前写命令中的虚拟块地址对应SSD磁盘中任意逻辑块的实际块地址时,将地址映射表中的该实际块地址与磁碟型磁盘中任意逻辑块的实际块地址交换。此后,分层存储单元405即可按照当前写命令中的虚拟块地址在交换后所对应的实际块地址执行对当前写命令中写数据的写操作,以将当前写命令中的写数据写入至交换后所对应的实际块地址对应的磁碟型磁盘的逻辑块内。
而在实时检测到的频率大于预设阈值、且当前写命令中的虚拟块地址对应SSD磁盘中任意逻辑块的实际块地址时、以及在实时检测到的频率小于等于预设阈值、且当前写命令中的虚拟块地址对应磁碟型磁盘中任意逻辑块的实际块地址时,地址交换单元407不对地址映射表中的实际块地址进行任何调整,分层存储单元405可直接按照当前写命令中的虚拟块地址在地址映射表中所对应的虚拟块地址执行对当前写命令中写数据的写操作。
标志设置单元408,用于在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示未写入数据的值时,进一步将该使用标志位设置为表示已写入数据的值。
数据交换单元409,用于在所述地址映射表中任意虚拟块地址所对应的实际块地址需要进行交换时,进一步按照该虚拟块地址在交换前后所分别对应的实际块地址,分别通过第一输出接口单元402和第二输出接口单元,将SSD磁盘中对应逻辑块内存储的数据与磁碟型磁盘中对应逻辑块内存储的数据通过其内部的缓存(图4中未示出)进行交换。
此外,在图4中还可进一步包括可缓存输入接口单元401接收到的写命令的命令缓存单元410。这种情况下,接口检测单元404进一步计算命令缓存单元410在单位时间内所缓存的写命令数量、以实时检测接收写命令的频率。
本实施例如图4所示的磁盘存储控制装置可由各类可编程逻辑器件来实现,并可替换在图1中示出的处理器及该处理器所在的存储控制器,即是不同于图1的另一种实现方式。且,本实施例如图4所示的磁盘存储控制装置还可具有一数据读取单元(未在图4中示出),用于通过输入接口单元401接收来自客户端的读命令,并按照读命令中的虚拟块地址在地址映射表中对应的实际块地址进行读操作。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
Claims (20)
1、一种磁盘存储系统,其特征在于,该系统包括:
处理器,其具有一输入I/O、以及至少两个输出I/O;
与其中一个所述输出I/O相连的第一磁盘;
与另一个所述输出I/O相连、且I/O速率低于所述第一磁盘的第二磁盘;
且,所述处理器实时检测其输入I/O接收写命令的频率;在所述频率大于预设阈值时,将当前写命令中的写数据写入至所述第一磁盘;在所述频率小于等预设阈值时,将当前写命令中的写数据写入至所述第二磁盘。
2、如权利要求1所述的磁盘存储系统,其特征在于,所述处理器中包括彼此相连的第一存储介质和处理内核,且处理内核还与所述输入I/O、以及至少两个输出I/O相连,其中,
第一存储介质,用于存储预设的地址映射表,该地址映射表中设置有第一磁盘中各逻辑块的实际块地址、第二磁盘中各逻辑块的实际块地址、以及统一编址得到的与第一磁盘和第二磁盘中各逻辑块的实际块地址一一对应的虚拟块地址;
处理内核,用于实时检测输入I/O接收写命令的频率,并依据当前写命令中的虚拟块地址在所述地址映射表中对应的实际块地址,将当前写命令中的写数据写入至当前频率下应写入磁盘的实际块地址;且,如若当前写命令中的虚拟块地址对应的实际块地址与在当前频率下应写入的实际块地址所属磁盘不符,则将地址映射表中与当前写命令中的虚拟块地址所对应的实际块地址交换为相符的另一实际块地址。
3、如权利要求2所述的磁盘存储系统,其特征在于,所述处理内核进一步在系统初始化时生成所述地址映射表并存储在所述第一存储介质中。
4、如权利要求2所述的磁盘存储系统,其特征在于,所述地址映射表中进一步设置有第一磁盘中各逻辑块的使用标志位、第二磁盘中各逻辑块的使用标志位;
在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示未写入数据的值时,所述处理内核进一步将该使用标志位设置为表示已写入数据的值。
5、如权利要求4所述的磁盘存储系统,其特征在于,所述处理器进一步包括第二存储介质;
在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示已写入数据的值、且所述地址映射表中任意虚拟块地址所对应的实际块地址需要进行交换时,所述处理内核进一步按照该虚拟块地址在交换前后所分别对应的实际块地址,将第一磁盘中对应逻辑块内存储的数据与第二磁盘中对应逻辑块内存储的数据通过所述第二存储介质交换。
6、如权利要求5所述的磁盘存储系统,其特征在于,所述处理器进一步包括第三存储介质;
所述第三存储介质与所述输入I/O相连,用于缓存输入I/O接收写命令;
所述处理内核进一步计算所述第三存储介质中在单位时间内所缓存的写命令数量,以实时检测所述输入I/O接收写命令的频率。
7、如权利要求6所述的磁盘存储系统,其特征在于,所述第一、第二、第三存储介质均为内存。
8、如权利要求1至7中任一项所述的磁盘存储系统,其特征在于,所述第一磁盘为固态硬盘SSD磁盘,所述第二磁盘为磁碟型磁盘。
9、如权利要求1至7中任一项所述的磁盘存储系统,其特征在于,所述处理器设置于磁盘存储系统中的存储控制器内,所述第一磁盘和第二磁盘设置于磁盘存储系统中的磁盘柜内,且,
所述处理器的输入I/O与所述存储控制器中可连接网络主机的业务接口相连、至少两个输出I/O分别通过所述存储控制器中的对应通讯接口与所述磁盘柜中的第一磁盘和第二磁盘分别相连。
10、如权利要求9所述的磁盘存储系统,其特征在于,所述业务接口为可连接IP网络或光纤通道FC网络的光纤通道FC接口、或者千兆以太网GE接口,所述通讯接口为因特网小型计算机接口iSCSI或者FC接口。
11、一种磁盘存储控制方法,其特征在于,该方法包括:
实时接收写命令;
实时检测接收写命令的频率;
在所述频率大于预设阈值时,将当前写命令中的写数据向第一磁盘写入;
在所述频率小于等于预设阈值时,将当前写命令中的写数据向I/O速率低于所述第一磁盘的第二磁盘写入。
12、如权利要求11所述的磁盘存储控制方法,其特征在于,该方法进一步设置有地址映射表,该地址映射表中设置有第一磁盘中各逻辑块的实际块地址、第二磁盘中各逻辑块的实际块地址、以及统一编址得到的与第一磁盘和第二磁盘中各逻辑块的实际块地址一一对应的虚拟块地址;
该方法进一步依据当前写命令中的虚拟块地址在所述地址映射表中对应的实际块地址,将当前写命令中的写数据写入至当前频率下应写入磁盘的实际块地址;且,如若当前写命令中的虚拟块地址对应的实际块地址与在当前频率下应写入的实际块地址所属磁盘不符,则将地址映射表中与当前写命令中的虚拟块地址所对应的实际块地址交换为相符的另一实际块地址。
13、如权利要求12所述的磁盘存储控制方法,其特征在于,所述地址映射表中进一步设置有第一磁盘中各逻辑块的使用标志位、第二磁盘中各逻辑块的使用标志位;
且,该方法在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示未写入数据的值时,进一步将该使用标志位设置为表示已写入数据的值。
14、如权利要求13所述的磁盘存储控制方法,其特征在于,该方法在所述地址映射表中任意虚拟块地址所对应的实际块地址需要进行交换时,进一步按照该虚拟块地址在交换前后所分别对应的实际块地址,将第一磁盘中对应逻辑块内存储的数据与第二磁盘中对应逻辑块内存储的数据通过一缓存进行交换。
15、如权利要求11至14中任一项所述的磁盘存储控制方法,其特征在于,该方法进一步将接收到的写命令缓存、并计算单位时间内所缓存的写命令数量,以实时检测接收写命令的频率。
16、一种磁盘存储控制装置,其特征在于,包括:
可接收写命令的输入接口单元;
可与第一磁盘通讯的第一输出接口单元;
可与I/O速率低于所述第一磁盘的第二磁盘通讯的第二输出接口单元;
可实时检测输入接口单元接收写命令频率的接口检测单元;
以及,分层存储单元,用于在所述频率大于预设阈值时,通过第一输出接口单元将当前写命令中的写数据向第一磁盘写入;在所述频率小于等于预设阈值时,通过第二输出接口单元将当前写命令中的写数据向第二磁盘写入。
17、如权利要求16所述的磁盘存储控制装置,其特征在于,该磁盘存储控制装置进一步包括映射存储单元和地址交换单元,其中,
所述映射存储单元,用于存储预设的地址映射表,该地址映射表中设置有第一磁盘中各逻辑块的实际块地址、第二磁盘中各逻辑块的实际块地址、以及统一编址得到的与第一磁盘和第二磁盘中各逻辑块的实际块地址一一对应的虚拟块地址;
所述地址交换单元,用于在当前写命令中的虚拟块地址对应的实际块地址与在当前频率下应写入的实际块地址所属磁盘不符,则将地址映射表中与当前写命令中的虚拟块地址所对应的实际块地址交换为相符的另一实际块地址;
且,所述分层存储单元进一步按照当前写命令中的虚拟块地址所对应的虚拟块地址,将当前写命令中的写数据写入至当前频率下应写入磁盘的实际块地址。
18、如权利要求17所述的磁盘存储控制装置,其特征在于,所述地址映射表中进一步设置有第一磁盘中各逻辑块的使用标志位、第二磁盘中各逻辑块的使用标志位;
且,该磁盘存储控制装置进一步包括标志设置单元,用于在写入当前写命令中写数据的逻辑块所对应的使用标志位为表示未写入数据的值时,进一步将该使用标志位设置为表示已写入数据的值。
19、如权利要求18所述的磁盘存储控制装置,其特征在于,该磁盘存储控制装置进一步包括数据交换单元,用于在所述地址映射表中任意虚拟块地址所对应的实际块地址需要进行交换时,进一步按照该虚拟块地址在交换前后所分别对应的实际块地址,将第一磁盘中对应逻辑块内存储的数据与第二磁盘中对应逻辑块内存储的数据通过其内部的缓存进行交换。
20、如权利要求16至19中任一项所述的磁盘存储控制装置,其特征在于,该磁盘存储控制装置进一步包括:可缓存输入接口单元接收到的写命令的命令缓存单元;
所述接口检测单元进一步计算命令缓存单元在单位时间内所缓存的写命令数量、以实时检测接收写命令的频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100819572A CN101533335B (zh) | 2009-04-09 | 2009-04-09 | 磁盘存储系统以及磁盘存储控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100819572A CN101533335B (zh) | 2009-04-09 | 2009-04-09 | 磁盘存储系统以及磁盘存储控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101533335A true CN101533335A (zh) | 2009-09-16 |
CN101533335B CN101533335B (zh) | 2010-12-08 |
Family
ID=41103960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100819572A Expired - Fee Related CN101533335B (zh) | 2009-04-09 | 2009-04-09 | 磁盘存储系统以及磁盘存储控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101533335B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541760A (zh) * | 2012-01-04 | 2012-07-04 | 记忆科技(深圳)有限公司 | 基于固态硬盘的计算机系统 |
CN103076993A (zh) * | 2012-12-28 | 2013-05-01 | 北京思特奇信息技术股份有限公司 | 一种密集型系统中的存储系统及方法 |
WO2013097621A1 (zh) * | 2011-12-31 | 2013-07-04 | 华为技术有限公司 | 数据分层存储处理方法、装置和存储设备 |
CN103268203A (zh) * | 2013-05-20 | 2013-08-28 | 深圳市京华科讯科技有限公司 | 存储虚拟化处理方法 |
CN103617003A (zh) * | 2013-11-20 | 2014-03-05 | 浪潮电子信息产业股份有限公司 | 一种云存储环境存储资源组织实现方法和架构 |
CN103795756A (zh) * | 2012-10-31 | 2014-05-14 | 中国电信股份有限公司 | 分层存储方法和系统、对象访问控制器 |
CN104182359A (zh) * | 2013-05-23 | 2014-12-03 | 杭州宏杉科技有限公司 | 一种缓存分配方法及装置 |
CN104281539A (zh) * | 2013-07-10 | 2015-01-14 | 北京旋极信息技术股份有限公司 | 一种缓存管理方法及装置 |
CN104508636A (zh) * | 2012-07-31 | 2015-04-08 | 英派尔科技开发有限公司 | 分割数据以改进系统性能 |
CN105988720A (zh) * | 2015-02-09 | 2016-10-05 | 中国移动通信集团浙江有限公司 | 数据存储装置和方法 |
CN106648458A (zh) * | 2016-09-30 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种具有多个磁盘和多个ssd的存储系统 |
CN106873903A (zh) * | 2016-12-30 | 2017-06-20 | 北京联想核芯科技有限公司 | 数据存储方法及装置 |
CN108469946A (zh) * | 2018-03-31 | 2018-08-31 | 北京联想核芯科技有限公司 | 一种用于提高ssd写入效率的组块方法和装置 |
CN109407995A (zh) * | 2018-11-05 | 2019-03-01 | 北京三快在线科技有限公司 | 冷热数据管理方法、装置、电子设备及计算机可读介质 |
CN110213432A (zh) * | 2019-05-13 | 2019-09-06 | 惠州Tcl移动通信有限公司 | 一种芯片工作频率的设置方法、移动终端及存储介质 |
-
2009
- 2009-04-09 CN CN2009100819572A patent/CN101533335B/zh not_active Expired - Fee Related
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9665291B2 (en) | 2011-12-31 | 2017-05-30 | Huawei Technologies Co., Ltd. | Migration of hot and cold data between high-performance storage and low-performance storage at block and sub-block granularities |
US9665293B2 (en) | 2011-12-31 | 2017-05-30 | Huawei Technologies Co., Ltd. | Method for a storage device processing data and storage device |
WO2013097621A1 (zh) * | 2011-12-31 | 2013-07-04 | 华为技术有限公司 | 数据分层存储处理方法、装置和存储设备 |
CN106469029A (zh) * | 2011-12-31 | 2017-03-01 | 华为数字技术(成都)有限公司 | 数据分层存储处理方法、装置和存储设备 |
CN106469029B (zh) * | 2011-12-31 | 2019-07-23 | 华为数字技术(成都)有限公司 | 数据分层存储处理方法、装置和存储设备 |
CN102541760B (zh) * | 2012-01-04 | 2015-05-20 | 记忆科技(深圳)有限公司 | 基于固态硬盘的计算机系统 |
CN102541760A (zh) * | 2012-01-04 | 2012-07-04 | 记忆科技(深圳)有限公司 | 基于固态硬盘的计算机系统 |
CN104508636B (zh) * | 2012-07-31 | 2017-10-31 | 英派尔科技开发有限公司 | 数据管理设备、系统和方法 |
CN104508636A (zh) * | 2012-07-31 | 2015-04-08 | 英派尔科技开发有限公司 | 分割数据以改进系统性能 |
US9792313B2 (en) | 2012-07-31 | 2017-10-17 | Empire Technology Development Llc | Parting data to improve system performance |
CN103795756A (zh) * | 2012-10-31 | 2014-05-14 | 中国电信股份有限公司 | 分层存储方法和系统、对象访问控制器 |
CN103076993A (zh) * | 2012-12-28 | 2013-05-01 | 北京思特奇信息技术股份有限公司 | 一种密集型系统中的存储系统及方法 |
CN103268203A (zh) * | 2013-05-20 | 2013-08-28 | 深圳市京华科讯科技有限公司 | 存储虚拟化处理方法 |
CN104182359A (zh) * | 2013-05-23 | 2014-12-03 | 杭州宏杉科技有限公司 | 一种缓存分配方法及装置 |
CN104281539A (zh) * | 2013-07-10 | 2015-01-14 | 北京旋极信息技术股份有限公司 | 一种缓存管理方法及装置 |
CN103617003B (zh) * | 2013-11-20 | 2017-05-10 | 浪潮电子信息产业股份有限公司 | 一种云存储环境存储资源组织实现方法和架构 |
CN103617003A (zh) * | 2013-11-20 | 2014-03-05 | 浪潮电子信息产业股份有限公司 | 一种云存储环境存储资源组织实现方法和架构 |
CN105988720A (zh) * | 2015-02-09 | 2016-10-05 | 中国移动通信集团浙江有限公司 | 数据存储装置和方法 |
CN106648458A (zh) * | 2016-09-30 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种具有多个磁盘和多个ssd的存储系统 |
CN106873903A (zh) * | 2016-12-30 | 2017-06-20 | 北京联想核芯科技有限公司 | 数据存储方法及装置 |
CN106873903B (zh) * | 2016-12-30 | 2020-02-18 | 深圳忆联信息系统有限公司 | 数据存储方法及装置 |
CN108469946A (zh) * | 2018-03-31 | 2018-08-31 | 北京联想核芯科技有限公司 | 一种用于提高ssd写入效率的组块方法和装置 |
CN108469946B (zh) * | 2018-03-31 | 2021-04-20 | 深圳忆联信息系统有限公司 | 一种用于提高ssd写入效率的组块方法和装置 |
CN109407995A (zh) * | 2018-11-05 | 2019-03-01 | 北京三快在线科技有限公司 | 冷热数据管理方法、装置、电子设备及计算机可读介质 |
CN109407995B (zh) * | 2018-11-05 | 2020-03-27 | 北京三快在线科技有限公司 | 冷热数据管理方法、装置、电子设备及计算机可读介质 |
CN110213432A (zh) * | 2019-05-13 | 2019-09-06 | 惠州Tcl移动通信有限公司 | 一种芯片工作频率的设置方法、移动终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101533335B (zh) | 2010-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101533335B (zh) | 磁盘存储系统以及磁盘存储控制方法和装置 | |
US11748037B2 (en) | Physical disk and virtual disk mapping in storage systems | |
US11436157B2 (en) | Method and apparatus for accessing storage system | |
CN109791522B (zh) | 数据迁移的方法、系统及智能网卡 | |
CN110008136A (zh) | 管理闪存模块的方法及相关的闪存控制器及电子装置 | |
CN106708751A (zh) | 包括用于多模操作的多分区的存储装置及其操作方法 | |
US10303374B2 (en) | Data check method and storage system | |
US8719490B2 (en) | Storage array, storage system, and data access method | |
US11314454B2 (en) | Method and apparatus for managing storage device in storage system | |
EP3142014B1 (en) | Method, device and user equipment for reading/writing data in nand flash | |
WO2018024214A1 (zh) | Io流调节方法与装置 | |
JP2020154525A (ja) | メモリシステムおよび情報処理システム | |
US20230017824A1 (en) | Systems and methods for load balancing in a heterogeneous memory system | |
US10133517B2 (en) | Storage control device | |
CN107229580A (zh) | 顺序流检测方法与装置 | |
CN111007988A (zh) | 一种raid内部磨损均衡方法、系统、终端及存储介质 | |
US11599271B2 (en) | Controlling I/O Q-connections in NVMe devices | |
WO2022252063A1 (zh) | 数据存取方法、存储控制器和存储设备 | |
CN105827681B (zh) | 一种san网络下备份数据传输方法 | |
JP5953245B2 (ja) | 情報処理システム | |
US10642494B2 (en) | Method, electronic device and computer program product for data processing | |
CN102981782B (zh) | 数据处理方法及装置 | |
US12032849B2 (en) | Distributed storage system and computer program product | |
US20210311654A1 (en) | Distributed Storage System and Computer Program Product | |
WO2022021280A1 (zh) | 存储控制器、存储控制方法、固态硬盘及存储系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101208 Termination date: 20200409 |