CN101419534A - 信息处理装置以及虚拟盘管理方法 - Google Patents

信息处理装置以及虚拟盘管理方法 Download PDF

Info

Publication number
CN101419534A
CN101419534A CNA2008101695661A CN200810169566A CN101419534A CN 101419534 A CN101419534 A CN 101419534A CN A2008101695661 A CNA2008101695661 A CN A2008101695661A CN 200810169566 A CN200810169566 A CN 200810169566A CN 101419534 A CN101419534 A CN 101419534A
Authority
CN
China
Prior art keywords
information
virtual disk
controll block
unit
dish
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
Application number
CNA2008101695661A
Other languages
English (en)
Other versions
CN101419534B (zh
Inventor
辻俊太郎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Mita Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kyocera Mita Corp filed Critical Kyocera Mita Corp
Publication of CN101419534A publication Critical patent/CN101419534A/zh
Application granted granted Critical
Publication of CN101419534B publication Critical patent/CN101419534B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

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)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种信息处理装置以及虚拟盘管理方法,能够使通过三种或三种以上的盘控制模式构建的存储区域在两个辅助存储装置中共存。4个虚拟盘中的每一个虚拟盘具有控制块,该控制块除了包括实现虚拟盘所需要的通常的信息之外,还包括对RAID控制器15指定虚拟盘的盘控制模式的盘控制模式信息和指定以该指定的盘控制模式而被使用的HDD的使用物理盘信息。RAID驱动器32使MPU11根据存取请求和与作为存取对象的虚拟盘1001至1004相对应的控制块来生成使RAID控制器15以预定的盘控制模式控制第一HDD19和第二HDD20双方或单方的预定区域的描述符300a并将该描述符300a传输给RAID控制器15。

Description

信息处理装置以及虚拟盘管理方法
技术领域
本发明涉及连接有存储装置的信息处理装置以及虚拟盘管理方法,所述存储装置具有被称为RAID(Redundant Arrays of Inexpensive/IndependentDisks,廉价/独立盘冗余阵列)的用于提高辅助存储装置的可靠性和性能的盘阵列结构。
背景技术
近年来,在如服务器计算机或个人计算机这样的信息处理装置中,为了提高盘存取速度并保护存储数据,利用将多个辅助存储装置虚拟地作为一个存储装置来对待的盘阵列技术。
在上述盘阵列技术中考虑了各种方式,作为代表性的方式可以例举出RAID0和RAID1。
RAID0也称为条带存储(striping),是以块为单位将数据分散在多个辅助存储装置中来提高盘存取速度的方式。RAID0最低需要两个辅助存储装置。另一方面,RAID1也称为镜像存储(mirroring),是同时将同一数据写入到多个辅助存储装置中来保护存储数据的方式。与上述相同,RAID1最低也需要两个辅助存储装置。以下,将上述RAID0的功能称为RAID0模式,将上述RAID1的功能称为RIAD1模式。
这里,有时希望根据处理的数据来区分为需要重视存取速度的数据或需要重视数据保护的数据。
为了实现这一目的,在日本专利文献特开2002—259062号公报中公开了具有能够切换RAID0模式和RAID1模式的盘阵列控制装置(RAID控制器)的信息处理装置。该信息处理装置使用与盘阵列控制装置连接的RAID0模式专用的两个辅助存储装置和RIAD1模式专用的两个辅助存储装置的至少4个辅助存储装置来切换RAID0模式和RAID1模式。
但是,信息处理装置具有4个之多的辅助存储装置会在成本方面带来非常大的负担。
因此,公开了被称为矩阵RAID的技术,该矩阵RAID技术能够在两个辅助存储装置中根据处理的数据而切换为RAID0模式或RAID1模式,并且使通过RAID0模式构建的存储区域和通过RAID1模式构建的存储区域共存(混在一起)。
但是,在矩阵RAID中,存在着无法使用两个辅助存储装置来实现通过RAID0模式构建的存储区域和通过RAID1模式构建的存储区域与通过其他RAID模式或单模式构建的存储区域的共存的问题,即存在着无法使通过三种或三种以上的盘控制模式构建的存储区域共存的问题。单模式是指不进行盘阵列控制的通常的盘控制模式。
发明内容
因此,鉴于上述问题,本发明的目的在于提供一种能够使通过三种或三种以上的盘控制模式构建的存储区域在两个辅助存储装置中共存的信息处理装置以及虚拟盘管理方法。
本发明的信息处理装置包括:主存储单元;辅助存储单元,具有两个辅助存储装置,三个或三个以上的虚拟盘分散形成在所述两个辅助存储装置中;盘阵列控制单元,与所述辅助存储单元连接,通过包括RAID0模式、RAID1模式、以及单模式的盘控制模式中的一种被指定的盘控制模式来控制所述三个或三个以上的虚拟盘;控制块存储单元,存储有对应于每个所述虚拟盘的控制块,该控制块包括第一指定信息和第二指定信息,所述第一指定信息指定所述盘控制模式,所述第二指定信息指定以所述指定的盘控制模式而被使用的辅助存储装置;以及设备驱动单元,根据对所述三个或三个以上的虚拟盘中的一个虚拟盘的盘存取请求和与所述被请求的虚拟盘相对应的控制块,在所述主存储单元中生成包括所述第一指定信息和所述第二指定信息的所述盘阵列控制单元的控制信息,将所述控制信息直接或间接地传输给所述盘阵列控制单元。
这里,也可以采用以下方式:所述盘阵列控制单元根据从所述设备驱动单元传输过来的所述控制信息内的所述第一指定信息和所述第二指定信息,通过被指定的盘控制模式来控制所述两个辅助存储装置或其中的一个辅助存储装置内的预定的存储区域。
另外,也可以采用以下方式:所述控制信息包括表示作为盘存取对象的数据的临时存储地的所述主存储单元中的缓冲地址信息,
所述设备驱动单元通过将所述缓冲地址信息和所述盘存取的开始命令传输给所述盘阵列控制单元而使所述盘阵列控制单元取得所述控制信息来间接地传输所述控制信息。
除了上述构成之外,本发明的信息处理装置还可以包括文件系统单元,该文件系统单元使操作系统识别所述第一指定信息各不相同的所述三个或三个以上的虚拟盘,并且根据对所述三个或三个以上的虚拟盘中的一个虚拟盘的第一盘存取请求,生成与所述设备驱动单元相对应并包括用于识别作为所述盘存取对象的虚拟盘的第一盘识别信息的第二盘存取请求,将所述第二盘存取请求传输给所述设备驱动单元。
在该情况下,也可以采用以下方式:所述控制块包括用于从所述三个或三个以上的虚拟盘中识别出一个虚拟盘的第二盘识别信息,所述设备驱动单元从所述控制块取得第二盘识别信息,对从文件系统单元传输过来的所述第二盘存取请求中所包括的所述第一盘识别信息和所述第二盘识别信息进行核对,将所述第二盘识别信息与所述第一盘识别信息一致的控制块指定为与作为存取对象的虚拟盘相对应的控制块。
另外,也可以采用以下方式:所述控制块包括表示所述一个虚拟盘的总扇区数的总扇区数信息和表示所述一个虚拟盘在辅助存储装置中的起始地址的偏址信息,所述控制信息包括与所述盘存取请求相对应的命令名信息、开始进行所述盘存取的所述辅助存储装置中的起始地址信息、以及从所述辅助存储装置读取或写入所述辅助存储装置的数据所占的扇区数信息。
另外,也可以采用以下方式:所述盘阵列控制单元所具有的所述盘控制模式还包括与RAID0模式和RAID1模式不同的RAID模式,在所述控制块存储单元中存储有所述第一指定信息表示所述RAID0模式的第一控制块、所述第一指定信息表示所述RAID1模式的第二控制块、以及所述第一指定信息表示所述不同的RAID模式的第三控制块,所述三个或三个以上的虚拟盘包括与所述第一控制块相对应的第一虚拟盘、与所述第二控制块相对应的第二虚拟盘、以及与所述第三控制块相对应的第三虚拟盘。
另外,也可以采用以下方式:在所述控制块存储单元中存储有所述第一指定信息表示所述RAID0模式的第一控制块、以及所述第一指定信息表示所述RAID1模式的第二控制块,所述第一控制块内的偏址信息和所述第二控制块内的偏址信息被设定为与所述第一控制块相对应的虚拟盘比与所述第二控制块相对应的虚拟盘靠近所述两个辅助存储装置的圆盘状的盘的外周侧。
本发明的虚拟盘的管理方法的特征在于,使三个或三个以上的虚拟盘分散形成在两个辅助存储装置中,所述三个或三个以上的虚拟盘中的任一个通过包括RAID0模式、RAID1模式、以及单模式的盘控制模式中的一种被指定的盘控制模式而被控制,存储对应于每个所述虚拟盘的控制块,该控制块包括第一指定信息和第二指定信息,所述第一指定信息指定所述盘控制模式,所述第二指定信息指定以所述指定的盘控制模式而被使用的辅助存储装置,根据对所述三个或三个以上的虚拟盘中的一个虚拟盘的盘存取请求和与所述被请求的虚拟盘相对应的控制块,在主存储单元中生成包括所述第一指定信息和所述第二指定信息的控制信息,将所述控制信息直接或间接地传输给盘阵列控制单元。
根据本发明的信息处理装置,在包括用于实现虚拟盘所需要的信息的通常的控制块中还包括指定虚拟盘的盘控制模式的第一指定信息和指定以该指定的盘控制模式而被使用的辅助存储装置的第二指定信息,当设备驱动单元接收到盘存取请求时,根据与作为存取对象的虚拟盘相对应的控制块,生成包括所述第一指定信息和所述第二指定信息的盘阵列控制装置的控制信息,并将该控制信息传输给所述盘阵列控制装置,因此所述盘阵列控制装置能够根据接收到的控制信息,通过被指定的盘控制模式对两个辅助存储装置双方或单方的预定区域进行存取,从而能够使与包括RAID在内的三种或三种以上的盘控制模式相对应的存储区域在两个辅助存储装置中共存。
并且,由于信息处理装置具有与网络连接的通信单元,因此设备驱动单元能够经由所述通信单元来接收盘存取请求。由此,能够应对近年来对与网络连接的信息处理装置的高速处理和高耐故障性的要求。
另外,从在一般的辅助存储装置的圆盘状盘中越靠近外周侧存取速度越快的观点出发,按照与所述第一控制块相对应的虚拟盘比与所述第二控制块相对应的虚拟盘靠近所述两个辅助存储装置双方的圆盘状盘的外周侧的方式来设定与RAID0模式相对应的第一控制块内的偏址信息和与RAID1模式相对应的第二控制块内的偏址信息,因此能够提高重视存取速度的RAID0的效果。
此外,为了使与所述第一控制块相对应的虚拟盘比与所述第二控制块相对应的虚拟盘靠近所述两个辅助存储装置双方的圆盘状盘的外周侧,在盘阵列控制装置的地址指定方式为LBA(Logical Block Addressing,逻辑块寻址)寻址方式的情况下,将所述第一控制块内的偏址信息所表示的值设定为比所述第二控制块内的偏址信息所表示的值小,在为CHS(Cylinder/Head/Sector,物理寻址)寻址方式的情况下,将所述第一控制块内的偏址信息所表示的值设定为比所述第二控制块内的偏址信息所表示的值大。
本发明的其他的目的、通过本发明能够取得的具体的优点将通过以下说明的实施方式而进一步得到明确。
附图说明
图1是表示本发明的实施例的图像形成装置的主要部分的构成的功能框图;
图2是表示本发明的实施例的图像形成装置的硬件构成的简要的框图;
图3是表示本发明的实施例的RAID驱动器的源文件的一部分的图;
图4是表示第一HDD和第二HDD的双方和单方的各存储区域与多个虚拟盘的对应关系的图;
图5的(A)是表示存储在上述第一HDD中的数据的一部分的图;
图5的(B)是表示第一虚拟盘控制块内的数据结构的图;
图6是表示保存了各控制块时的DRAM的内存印象图的图;
图7的(A)~(F)是RAID驱动器接收的多种盘存取请求的说明图;
图8的(A)~(F)是RAID驱动器生成的多种描述符的说明图;
图9是表示向RAID0模式用的第一虚拟盘写入8MB的数据的动作流程的图;
图10是表示从RAID0模式用的第一虚拟盘读取8MB的数据的动作流程的图;
图11是表示向RAID1模式用的第二虚拟盘写入4MB的数据的动作流程的图;
图12是表示从RAID1模式用的第二虚拟盘读取4MB的数据的动作流程的图;
图13是向单模式用的第三虚拟盘写入4MB的数据的动作流程的图;
图14是简要地表示第一HDD的区域被分割为各虚拟盘的情况的图;
图15是表示本发明的虚拟盘的注册处理的流程图。
具体实施方式
(1)硬件构成
一般来说,RAID技术应用于需要高速处理或需要提高耐故障性的网络服务器。近年来,图像形成装置(尤其是数码复合机)具有大容量HDD(Hard Disk Drive,硬盘驱动器)并与网络连接,因此在某些情况下需要高速处理或者提高耐故障性。在本实施例中,说明鉴于这一点而将RAID技术应用于图像形成装置的情况。
图2是表示本发明的实施例的图像形成装置的硬件构成的简要的框图。
图像形成装置具有MPU(Micro Processing Unit,微处理器)11、接口12、DRAM(Dynamic Random Access Memory,动态随机存取存储器)13、EEPROM(Erasable Programmable Read Only Memory,电可擦除只读存储器)14、RAID控制器15、NIC(Network Interface Card,网络接口卡)16、印刷部17、其他装置18、第一HDD、第二HDD。图像形成装置10具体地说包括打印机、复印机、扫描仪、传真装置、或MFP(Multifunction Peripheral,多功能外围设备)。
MPU11、DRAM13、EEPROM14、RAID控制器15、NIC16、印刷部17、以及其他装置18经由接口12而相互连接。在图2中,为了简化而将多个接口表示为一个接口。
DRAM13(主存储单元)用作工作区域。EEPROM14例如为闪存。在EEPROM14中存储有包括Linux(注册商标)内核的OS(操作系统)30、在该OS30的基础上运行的多个应用程序31、以及本发明的RAID驱动器32。
MPU11执行由OS30和应用程序31等软件定义的处理,控制图像形成装置10的整体的动作。
另外,MPU11也作为执行由RAID驱动器32(设备驱动器)定义的处理的设备驱动单元而动作。即,RAID驱动器32与MPU协作执行对本实施例的虚拟盘进行操作的处理。此外,在本实施例中,为了避免复杂的说明,将MPU11(设备驱动单元)按照RAID驱动器32的定义而执行的处理记载为由RAID驱动器32执行的处理。
图3是表示RAID驱动器32的源文件的一部分的图。在该源文件内记述了后述的盘存取函数35和初始化函数36等。这些函数例如是以ANSI—C为基准的函数。
存储在EEPROM14中的RAID驱动器32被从上述源文件编译为可安装模块形式,通过后述(10)的方法被编入到内核中,并根据来自上层的盘存取请求来控制RAID控制器15。
此外,为了能够从OS30侧确定驱动器而向该RAID驱动器32分配了主设备号。在本实施例中,该主设备号被分配为“300”。
RAID控制器15与接口12、第一HDD19、以及第二HDD20连接。该RAID控制器15具有盘控制模式,该盘控制模式包括RAID0模式、RAID1模式、单模式。并且,RAID控制器15根据来自RAID驱动器32的盘存取请求,通过上述某种盘控制模式对第一HDD19和/或第二HDD20进行盘控制。即,RAID控制器15作为盘阵列控制单元而动作。
第一HDD19和第二HDD20是数据存储用的辅助存储装置,具体地说是IDE、SCSI、或USB等规格的磁盘驱动器。第一HDD19和第二HDD20通过应用RAID技术而构成为相互协作动作的辅助存储单元。此外,在本实施例中,为了方便而以两者为相同种类和相同容量的情况来进行说明,但是在应用本发明的RAID技术时,这两者也可以是不同的种类或者具有不同的容量。
第一HDD19和第二HDD20被RAID控制器15和RAID驱动器32识别为两个物理盘。但是,不被处于RAID驱动器32上层的OS30和应用程序31识别为物理盘。即,如图4所示,第一HDD和第二HDD内的区域1001、区域1002、区域1003、区域1004分别如同物理盘那样被OS30和应用程序31识别,即被识别为虚拟盘。以下,将这些区域分别称为第一虚拟盘1001、第二虚拟盘1002、第三虚拟盘1003、以及第四虚拟盘1004。此外,图4中的纵轴的数值表示LBA(Logical Block Addressing,逻辑块寻址)方式的扇区地址。
上述RAID控制器15和RAID驱动器32将分配给第一虚拟盘1001的区域作为RAID0模式专用、将分配给第二虚拟盘1002的区域作为RAID1模式专用、将分配给第三虚拟盘1003和第四虚拟盘1004的区域作为单模式专用来进行处理。此外,图4的各盘的空白区域在本实施例中不使用,但是该区域也可以被分配作为单模式专用的虚拟盘。
图5的(A)是表示记录在上述第一HDD19中的数据的一部分的图。在该第一HDD19中,紧接在位于起始扇区中的MBR(Master BootRecord,主引导记录)之后依次记录有4个盘控制块(盘CB),即依次记录有第一虚拟盘CB41、第二虚拟盘CB42、第三虚拟盘CB43、以及第四虚拟盘CB44。即,第一HDD19除了上述辅助存储装置以外还兼用作CB(控制块)存储单元。第一虚拟盘CB41、第二虚拟盘CB42、第三虚拟盘CB43、以及第四虚拟盘CB44分别是用于形成第一虚拟盘1001、第二虚拟盘1002、第三虚拟盘1003、第四虚拟盘1004所需要的信息的数据集合体。
图5的(B)是表示第一虚拟盘控制块41内的数据结构的图。此外,其他控制块42~44也具有相同的数据结构。另外,该图中的纵轴采用相对表示。
在第一虚拟盘控制块41内的数据结构中包括次设备号信息50、盘控制模式信息51、使用物理盘信息52、总扇区数信息53、以及LBA偏址信息54等各数据。上述各信息在RAID驱动器32被编入内核时从第一HDD19如图6所示那样存储到DRAM13的预定区域中。RAID驱动器32能够随时利用上述各信息。此外,该存储的详细情况将在(10)中说明。在本实施例中,在第一虚拟盘控制块41中,除了通常的用于形成虚拟盘的信息之外,即除了次设备号信息50、总扇区数信息53、以及LBA偏址信息54之外,还新包括盘控制模式信息51和使用物理盘信息52。
次设备号信息50是虚拟盘识别信息(第二盘识别信息)。此外,次设备号50的1~4号分别对应于第1~4虚拟盘。
盘控制模式信息51是用于指定RAID控制器15能够进行盘控制的RAID0模式、RAID1模式、或单模式中的一种模式的信息。
使用物理盘信息52是用于对应于虚拟盘来指定作为通过上述盘控制模式而实际使用(存取)的物理盘的辅助存储装置(第一HDD19和/或第二HDD20)的信息。在本实施例中,作为该信息而使用通道号。第一HDD19的通道号为“Ch1”,第二HDD的通道号为“Ch2”。在本实施例中,第一和第二虚拟盘1001~1002使用Ch1和Ch2这两个通道,另外第三虚拟盘使用Ch2,第四虚拟盘使用Ch1。
总扇区数信息53是虚拟盘的总扇区数的信息。
LBA偏址信息54是表示虚拟盘的LBA地址与物理地址的LBA地址的差的信息,其值自身表示虚拟盘的起始地址。
返回到图2,NIC16与网络上的主机连接,从该计算机接收对第一虚拟盘1001、第二虚拟盘1002、第三虚拟盘1003、第四虚拟盘1004的盘存取请求并将其传送给内核。
印刷部17包括打印引擎、纸张的供纸部、运送部、以及排纸部,根据被提供的位图数据而在打印引擎的感光鼓上形成静电潜像,通过调色剂使该静电潜像显影并将其转印在纸张上,在定影后排出。
其他装置18例如包括扫描器、传真机构、以及操作面板。
(2)主要部分的构成
图1是表示本发明的实施例的图像形成装置10的主要部分的构成的功能框图。
为了实现本发明,图像形成装置100主要包括进程99、文件系统单元100、DRAM13、RAID驱动器32、RAID控制器15、第一HDD19、以及第二HDD20。
进程99是应用程序31的处理流程或经由NIC16而从网络上的计算机接收到的请求的处理流程,由MPU11执行。
文件系统单元100根据来自进程99的盘存取请求而向RAID驱动器32发出控制RAID驱动器32的后述的盘存取请求。该文件系统单元100具有将第一设备文件101、第二设备文件102、第三设备文件103、以及第四设备文件104作为数据而包括的构成,其被注册在内核中。
第一设备文件101、第二设备文件102、第三设备文件103、以及第四设备文件104分别对应于第一虚拟盘1001、第二虚拟盘1002、第三虚拟盘1003、以及第四虚拟盘1004。第一~第四设备文件是文件系统单元100为了对第一~第四虚拟盘1001~1004进行盘存取而参照的数据。MPU11在根据进程99而发出盘存取请求时将设备文件101~104中的一个作为参数传递给文件系统单元100,文件系统单元100参照由参数指定的设备文件101至104,由此启动编入内核的RAID驱动器32,实现对HDD19和/或HDD20上的虚拟盘的存取。
这里,在这些设备文件101~104中注册有用于确定下层的RAID驱动器32的上述主设备号和用于确定下层的虚拟盘的上述次设备号50。具体地说,在第一~第四设备文件101~104中注册有RAID驱动器32的主设备号“300”,以便这些文件调用同一RAID驱动器32。另外,第一设备文件101注册次设备号“1”,第二设备文件102注册次设备号“2”,第三设备文件103注册次设备号“3”,第四设备文件104注册次设备号“4”。
在上述说明中,说明了RAID驱动器32根据来自文件系统单元100的盘存取请求来控制RAID控制器15。详细地说,RAID驱动器32根据该盘存取请求、以及与其相对应的第一虚拟盘控制块41至第四虚拟盘控制块44(参照图6)中的一个控制块,在DRAM13中生成描述符300a。并且,RAID驱动器32将DRAM13中的描述符300a的起始地址信息(后述的存储器缓冲地址信息)与盘存取开始命令一起发送给RAID控制器15。以下,依次说明来自文件系统单元100的盘存取请求和由RAID驱动器32生成的描述符300a。
图7的(A)是表示RAID驱动器32接收的盘存取请求的格式的图。盘存取请求200a包括次设备号信息50、开始地址信息201、存储器缓冲地址信息202、数据量信息203、以及命令名信息204。
次设备号信息50根据接收到对哪个虚拟盘的存取请求而不同,被设定与作为盘存取对象的虚拟盘相对应的、注册在设备文件101至104中的次设备号。
开始地址信息201是决定对虚拟盘开始存取时的起始地址的依据,表示第一HDD或第二HDD的扇区地址。该扇区地址通过16进制(0x)的数值来表示。同样,以下的地址和数值也全部通过16进制的数值来表示。
存储器缓冲地址信息202表示临时存储作为盘存取对象的数据的临时存储地的DRAM13中的起始地址。
数据量信息203表示作为盘存取对象的数据的大小(字节数)。
命令名信息204被设定为该盘存取请求是数据读取请求还是数据写入请求这样的与处理对应的命令名。
图8的(A)是表示由RAID驱动器32生成的描述符300a的格式的图。描述符300a包括存储器缓冲地址信息202、命令名信息204、盘控制模式信息51、使用物理盘信息52、LBA地址信息301、以及扇区数信息302。
描述符300a内的存储器缓冲地址信息202和命令名信息204是从盘存取请求200a(参照图7的(A))中提取出来的。另外,盘控制模式信息51和使用物理盘信息52是从与盘存取请求200a相对应的控制块41至44(参照图6)中提取出来的。
根据盘存取请求200a所包括的开始地址信息201、通过盘存取请求200a的次设备号信息50确定的控制块41至44所包括的LBA偏址信息54,如下来决定LBA地址信息301。
LBA地址=开始地址+LBA偏址
LBA地址信息301表示根据命令名信息204来进行数据读取或数据写入的虚拟盘的起始地址。
扇区数信息302是进行盘存取的扇区数的信息,根据盘存取请求200a所包括的数据量信息203、与盘控制模式信息51相对应的每1扇区的数据量,如下来决定该扇区数信息302。
扇区数=【数据量/每1扇区的数据量】
这里,作为对象的盘控制模式51对应于通过盘存取请求200a的次设备号信息50确定的控制块41至44。
在本实施例中,每1扇区的数据量在盘控制模式为RAID0模式的情况下为1024B(0x400),在为RAID1模式的情况下为512B(0x200),在为单模式的情况下为512B(0x200)。
返回到图1,RAID控制器15按照从RAID驱动器32发送过来的盘存取开始命令,根据从RAID驱动器32发送过来的描述符300a的起始地址信息,通过DMA传输功能从DRAM13取得描述符300a。RAID控制器15将描述符300a存储在自身所具有的未图示的寄存器中。然后,RAID控制器15按照取得的该描述符300a对第一HDD19和/或第二HDD20进行盘控制。
以下,说明如上构成的图像形成装置10的主要部分的各动作的详细流程。
(3)对RAID0模式用的第一虚拟盘的主要部分的写入动作
说明对RAID0模式用的第一虚拟盘1001的写入动作的流程。通过该动作来实现基于条带存储的写入。
图9是表示向RAID0模式用的第一虚拟盘1001写入8MB的数据的动作流程的图。以下,括号内的是图9中的步骤识别符号。
(S10)MPU11按照进程99将第一设备文件101作为参数而向文件系统单元100发出数据写入命令。即,MPU11调用文件系统单元100的数据写入函数,发出对第一虚拟盘1001的写入请求。
(S11)文件系统单元100按照该写入请求,使MPU11每当DRAM13中的缓冲区域空闲时就以1024B为单位将作为写入对象的8MB的数据块传输给该缓冲区域。
(S12)文件系统单元100生成图7的(B)所示的写入请求200b,该写入请求200b包括参照作为参数传递的第一设备文件101而得到的次设备号信息50“1”、对虚拟盘的盘存取的开始地址信息201、表示该缓冲区域的写入对象的数据的起始地址的存储器缓冲地址信息202、表示该数据的大小的数据量信息203、以及与数据写入命令相对应的命令名信息204。然后,文件系统单元100参照第一设备文件101取得注册在其中的主设备号“300”,将生成的写入请求200b提供给与该主设备号相对应的RAID驱动器32。
(S13)当RAID驱动器32接收到上述写入请求200b时,按照盘存取函数35,根据写入请求200b、通过写入请求200b所包括的次设备号“1”确定的存储在DRAM13中的第一虚拟盘控制块41,在DRAM13中生成图8的(B)所示的描述符300b。
此时,RAID驱动器32按照盘存取函数35如上地来决定描述符300b内的各信息。特别是通过使开始地址信息201(0 x 1000)与LBA偏址信息54(0 x 2000)相加来决定LBA地址信息301(0 x 3000)。另外,通过使数据量信息203(0 x 800000=8MB)除以每1扇区的数据量(0 x 400=1024B)来决定扇区数信息302(0 x 2000)。
(S14)RAID驱动器32按照盘存取函数35,将写入开始请求和DRAM13中的描述符300b的起始地址信息发送给RAID控制器15。
(S15)RAID控制器15响应于写入开始请求,根据接收到的起始地址信息,通过DMA传输从DRAM13取得描述符300b。
(S16、S17)RAID控制器15根据取得的描述符300b,通过RAID0模式将写入数据同时写入到第一HDD19和第二HDD20中。
具体地说,RAID控制器15根据取得的描述符300b的命令名信息204来决定进行写入控制,根据存储器缓冲地址信息202来决定存储在缓冲区域中的作为写入对象的数据的起始地址(0 x 10000000),根据盘控制模式信息51来决定进行基于RAID0模式的盘控制,根据使用物理盘信息52来决定进行盘控制的物理盘(第一HDD19和第二HDD20),根据LBA地址信息301来决定在使用的物理盘内的存储区域中开始写入的起始扇区地址(0x3000),根据扇区数信息302来决定写入对象的数据量(0x2000)。RAID控制器15根据这些决定事项,每次通过DMA传输取得1024字节的存储在缓冲区域中的作为写入对象的数据,并将其分割为两部分而分别以512字节为单位写入到第一HDD19的LBA地址0x3000~0x5000的区域和第二HDD20的LBA地址0 x 3000~0 x 5000的区域内的空闲区域中。
(4)对RAID0模式用的第一虚拟盘的主要部分的读取动作
说明对RAID0模式用的第一虚拟盘1001的读取动作的流程。通过该动作来读取通过条带存储而存储在第一虚拟盘1001中的数据。
图10是表示从RAID0模式用的第一虚拟盘1001读取8MB的数据的动作流程的图。以下,括号内的是图10中的步骤识别符号。
(S20)MPU11按照进程99将第一设备文件101作为参数而向文件系统单元100发出数据读取命令。即,MPU11调用文件系统单元100的数据读取函数,发出对第一虚拟盘1001的读取请求。
(S21)文件系统单元100按照该读取请求,使MPU11为了存储作为读取对象的数据而在DRAM13中确保缓冲区域。
(S22)文件系统单元100生成图7的(C)所示的读取请求200c,该读取请求200c包括参照作为参数传递的第一设备文件101而得到的次设备号信息50“1”、对虚拟盘的盘存取的开始地址信息201、表示上述确保的缓冲区域的起始地址的存储器缓冲地址信息202、表示作为读取对象的数据的大小的数据量信息203、以及与数据读取命令相对应的命令名信息204。然后,文件系统单元100参照第一设备文件101取得注册在其中的主设备号“300”,将生成的读取请求200c提供给与该主设备号相对应的RAID驱动器32。
(S23)当RAID驱动器32接收到上述读取请求200c时,按照盘存取函数35,根据读取请求200c、通过读取请求200c所包括的次设备号“1”确定的存储在DRAM13中的第一虚拟盘控制块41,在DRAM13中生成图8的(C)所示的描述符300c。
此时,RAID驱动器32按照盘存取函数35如上地来决定描述符300c内的各信息。特别是通过使开始地址信息201(0 x 1000)与LBA偏址信息54(0 x 2000)相加来决定LBA地址信息301(0 x 3000)。另外,通过使数据量信息203(0 x 800000=8MB)除以每1扇区的数据量(0 x 400=1024B)来决定描述符300c内的扇区数信息302(0 x 2000)。
(S24)RAID驱动器32按照盘存取函数35,将读取开始请求和DRAM13中的描述符300c的起始地址信息发送给RAID控制器15。
(S25)RAID控制器15响应于读取开始请求,根据接收到的起始地址信息,通过DMA传输从DRAM13取得描述符300c。
(S26、S27、S28)RAID控制器15根据取得的描述符300c,将存储在第一虚拟盘1001中的作为读取对象的数据存储在DRAM13的缓冲区域中,文件系统单元100读取存储在该缓冲区域中的数据。
具体地说,RAID控制器15根据取得的描述符300c的命令名信息204来决定进行读取控制,根据存储器缓冲地址信息202来决定作为存储地的缓冲区域的起始地址(0 x 10000000),根据盘控制模式信息51来决定进行基于RAID0模式的盘控制,根据使用物理盘信息52来决定进行盘控制的物理盘(第一HDD19和第二HDD20),根据LBA地址信息301来决定在使用的物理盘内的存储区域中开始读取的起始扇区地址(0 x 3000),根据扇区数信息302来决定读取对象的数据量(0 x 2000)。RAID控制器15根据这些决定事项,以512B为单位分别读取存储在第一HDD19的LBA地址0 x 3000~0 x 5000的区域和第二HDD20的LBA地址0 x 3000~0 x 5000的区域中的数据,汇集成1024B而存储在由存储器缓冲地址信息202指定的缓冲区域中。
(5)对RAID1模式用的第二虚拟盘的主要部分的写入动作
说明对RAID1模式用的第二虚拟盘1002的写入动作的流程。通过该动作来实现基于镜像存储的写入。
图11是表示向RAID1模式用的第二虚拟盘1002写入4MB的数据的动作流程的图。以下,括号内的是图11中的步骤识别符号。
(S30)MPU11按照进程99将第二设备文件102作为参数而向文件系统单元100发出数据写入命令。即,MPU11调用文件系统单元100的数据写入函数,发出对第二虚拟盘1002的写入请求。
(S31)文件系统单元100按照该写入请求,使MPU11每当DRAM13中的缓冲区域空闲时就以512B为单位将作为写入对象的4MB的数据块传输给该缓冲区域。
(S32)文件系统单元100生成图7的(D)所示的写入请求200d,该写入请求200d包括参照作为参数传递的第二设备文件102而得到的次设备号信息50“2”、对虚拟盘的盘存取的开始地址信息201、表示该缓冲区域的写入对象的数据的起始地址的存储器缓冲地址信息202、表示该数据的大小的数据量信息203、以及与数据写入命令相对应的命令名信息204。然后,文件系统单元100参照第二设备文件102取得注册在其中的主设备号“300”,将生成的写入请求200d提供给与该主设备号相对应的RAID驱动器32。
(S33)当RAID驱动器32接收到上述写入请求200d时,按照盘存取函数35,根据写入请求200d、通过写入请求200d所包括的次设备号“2”确定的存储在DRAM13中的第二虚拟盘控制块42,在DRAM13中生成图8的(D)所示的描述符300d。
此时,RAID驱动器32按照盘存取函数35如上地来决定描述符300d内的各信息。特别是通过使开始地址信息201(0 x 1000)与LBA偏址信息54(0 x 8000)相加来决定LBA地址信息301(0 x 9000)。另外,通过使数据量信息203(0 x 400000=4MB)除以每1扇区的数据量(0 x 200=512B)来决定描述符300d内的扇区数信息302(0 x 2000)。
(S34)RAID驱动器32按照盘存取函数35,将写入开始请求和DRAM13中的描述符300d的起始地址信息发送给RAID控制器15。
(S35)RAID控制器15响应于写入开始请求,根据接收到的起始地址信息,通过DMA传输从DRAM13取得描述符300d。
(S36、S37)RAID控制器15根据取得的描述符300d,通过RAID1模式将写入数据同时写入到第一HDD19和第二HDD20这两者中。
具体地说,RAID控制器15根据取得的描述符300d的命令名信息204来决定进行写入控制,根据存储器缓冲地址信息202来决定存储在缓冲区域中的作为写入对象的数据的起始地址(0 x 10000000),根据盘控制模式信息51来决定进行基于RAID1模式的盘控制,根据使用物理盘信息52来决定进行盘控制的物理盘(第一HDD19和第二HDD20),根据LBA地址信息301来决定在使用的物理盘内的存储区域中开始写入的起始扇区地址(0 x 9000),根据扇区数信息302来决定写入对象的数据量(0 x 2000)。RAID控制器15根据这些决定事项,每次通过DMA传输取得512字节的存储在缓冲区域中的作为写入对象的数据,并分别以512字节为单位写入到第一HDD19的LBA地址0 x 9000~0 x b000的区域和第二HDD20的LBA地址0 x 9000~0 x b000的区域这两者内的空闲区域中。
(6)对RAID1模式用的第二虚拟盘的主要部分的读取动作
说明对RAID1模式用的第二虚拟盘1002的读取动作的流程。该读取动作与单模式的读取的情况相同。通过该动作来读取通过镜像存储而存储在第一虚拟盘1001中的数据。
图12是表示从RAID1模式用的第二虚拟盘1002读取4MB的数据的动作流程的图。以下,括号内的是图12中的步骤识别符号。
(S40)MPU11按照进程99将第二设备文件102作为参数而向文件系统单元100发出数据读取命令。即,MPU11调用文件系统单元100的数据读取函数,发出对第二虚拟盘1002的读取请求。
(S41)文件系统单元100按照该读取请求,使MPU11为了存储作为读取对象的数据而在DRAM13中确保缓冲区域。
(S42)文件系统单元100生成图7的(E)所示的读取请求200e,该读取请求200e包括参照作为参数传递的第二设备文件102而得到的次设备号信息50“2”、对虚拟盘的盘存取的开始地址信息201、表示上述确保的缓冲区域的起始地址的存储器缓冲地址信息202、表示作为读取对象的数据的大小的数据量信息203、以及与数据读取命令相对应的命令名信息204。然后,文件系统单元100参照第二设备文件102取得注册在其中的主设备号“300”,将生成的读取请求200e提供给与该主设备号相对应的RAID驱动器32。
(S43)当RAID驱动器32接收到上述读取请求200e时,按照盘存取函数35,根据读取请求200e、通过读取请求200e所包括的次设备号“2”确定的存储在DRAM13中的第二虚拟盘控制块42,在DRAM13中生成图8的(E)所示的描述符300e。此外,从第二控制块42取得的使用物理盘信息52表示使用第一HDD19和第二HDD20,但是在为镜像存储的情况下,在第一HDD19和第二HDD20中分别存储同一数据,因此不需要从双方读取。因此,在本实施例中,改变RAID驱动器32生成的描述符300e内的使用物理盘信息52以仅从第一HDD19读取。
此时,RAID驱动器32按照盘存取函数35如上地来决定描述符300e内的各信息。特别是通过使开始地址信息201(0 x 1000)与LBA偏址信息54(0 x 8000)相加来决定LBA地址信息301(0 x 9000)。另外,通过使数据量信息203(0 x 400000=4MB)除以每1扇区的数据量(0 x 200=512B)来决定描述符300e内的扇区数信息302(0 x 2000)。
(S44)RAID驱动器32按照盘存取函数35,将读取开始请求和DRAM13中的描述符300e的起始地址信息发送给RAID控制器15。
(S45)RAID控制器15响应于读取开始请求,根据接收到的起始地址信息,通过DMA传输从DRAM13取得描述符300e。
(S46、S47、S48)RAID控制器15根据取得的描述符300e,将存储在第二虚拟盘1002中的作为读取对象的数据存储在DRAM13的缓冲区域中,文件系统单元100读取存储在该缓冲区域中的数据。
具体地说,RAID控制器15根据取得的描述符300e的命令名信息204来决定进行读取控制,根据存储器缓冲地址信息202来决定作为存储地的缓冲区域的起始地址(0 x 10000000),根据盘控制模式信息51来决定进行基于RAID1模式的盘控制,根据使用物理盘信息52来决定进行盘控制的物理盘(第一HDD19),根据LBA地址信息301来决定在使用的物理盘内的存储区域中开始读取的起始扇区地址(0 x 9000),根据扇区数信息302来决定读取对象的数据量(0 x 2000)。RAID控制器15根据这些决定事项,以512B为单位读取存储在第一HDD19的LBA地址0 x 9000~0 x b000的区域中的数据,并将该数据存储在由存储器缓冲地址信息202指定的缓冲区域中。
(7)对单模式用的第三虚拟盘的主要部分的写入动作
说明对单模式用的第三虚拟盘1003的写入动作的流程。通过该动作来实现不要求高速处理和耐故障性的通常的写入。
图13是向单模式用的第三虚拟盘1003写入4MB的数据的动作流程的图。以下,括号内的是图13中的步骤识别符号。
(S50)MPU11按照进程99将第三设备文件103作为参数而向文件系统单元100发出数据写入命令。即,MPU11调用文件系统单元100的数据写入函数,发出对第三虚拟盘1003的写入请求。
(S51)文件系统单元100按照该读取请求,使MPU11每当DRAM13中的缓冲区域空闲时就以512B为单位将作为写入对象的4MB的数据块传输给该缓冲区域。
(S52)文件系统单元100生成图7的(F)所示的写入请求200f,该写入请求200f包括参照作为参数传递的第三设备文件103而得到的次设备号信息50“3”、对第三虚拟盘1003的盘存取的开始地址信息201、表示该缓冲区域的写入对象的数据的起始地址的存储器缓冲地址信息202、表示该数据的大小的数据量信息203、以及与数据写入命令相对应的命令名信息204。然后,文件系统单元100参照第三设备文件103取得注册在其中的主设备号“300”,将生成的写入请求200f提供给与该主设备号相对应的RAID驱动器32。
(S53)当RAID驱动器32接收到上述写入请求200f时,按照盘存取函数35,根据写入请求200f、通过写入请求200f所包括的次设备号“3”确定的存储在DRAM13中的第三虚拟盘控制块43,在DRAM13中生成图8的(F)所示的描述符300f。
此时,RAID驱动器32按照盘存取函数35如上地来决定描述符300f内的各信息。特别是通过使开始地址信息201(0 x 1000)与LBA偏址信息54(0 x 5000)相加来决定LBA地址信息301(0 x 6000)。另外,通过使数据量信息203(0 x 400000=4MB)除以每1扇区的数据量(0 x 200=512B)来决定描述符300f内的扇区数信息302(0 x 2000)。
(S54)RAID驱动器32按照盘存取函数35,将写入开始请求和DRAM13中的描述符300f的起始地址信息发送给RAID控制器15。
(S55)RAID控制器15响应于写入开始请求,根据接收到的起始地址信息,通过DMA传输从DRAM13取得描述符300f。
(S56、S57)RAID控制器15根据取得的描述符300f,通过单模式将写入数据写入到第二HDD20中。
具体地说,RAID控制器15根据取得的描述符300f的命令名信息204来决定进行写入控制,根据存储器缓冲地址信息202来决定存储在缓冲区域中的作为写入对象的数据的起始地址(0 x 10000000),根据盘控制模式信息51来决定进行基于单模式的盘控制,根据使用物理盘信息52来决定进行盘控制的物理盘(第二HDD20),根据LBA地址信息301来决定在使用的物理盘内的存储区域中开始写入的起始扇区地址(0 x 6000),根据扇区数信息302来决定写入对象的数据量(0 x 2000)。RAID控制器15根据这些决定事项,每次通过DMA传输取得512字节的存储在缓冲区域中的作为写入对象的数据,并分别以512字节为单位写入到第二HDD20的LBA地址0 x 6000~0 x 8000的区域内的空闲区域中。
(8)对单模式用的第三虚拟盘的主要部分的读取动作
对单模式用的第三虚拟盘1003的主要部分的读取动作与对第二虚拟盘1002的读取动作相同,因此省略详细的说明。
另外,对单模式用的第四虚拟盘1004的主要部分的写入动作与对第三虚拟盘1003的写入动作相同。另外,对单模式用的第四虚拟盘1004的主要部分的读取动作也与对第二虚拟盘1002的读取动作相同。因此,省略各自的详细的说明。
(9)虚拟盘与HDD的区域的对应关系
图14是简要地表示第一HDD19的区域被按照每个虚拟盘来分割的情况的图。在图4等中示意性地表示了各HDD在纵向上被按照每个虚拟盘来分割的情况,但是实际上第一HDD19和第二HDD20内部的盘为圆盘状,如图14所示在圆盘的直径方向上来分割区域。
这里,对于包括第一HDD19和第二HDD20的一般的HDD来说,记录密度随着从内周接近外周而变高,因此公知外周比内周的传输速度快。
因此,在本实施例中,将要求传输速度的RAID0模式用的第一虚拟盘1001的区域分配在外周侧,将不要求传输速度的RIAD1模式用的第二虚拟盘1002的区域分配在内周侧。如上所述根据各虚拟盘控制块41~44内的LBA偏址信息54和总扇区数53来进行该分配。此外,LBA地址在从外周侧朝向内周侧的方向上被依次分配,因此LBA地址越小,传输速度越快。即,LBA偏址信息54所表示的数值越低,该虚拟盘的传输速度越快。
这样一来,能够提高RAID0模式用的第一虚拟盘1001的传输速度,从而能够提高RAID0的效果。
(10)本发明的虚拟盘的注册处理
图15是表示本发明的虚拟盘的注册处理的流程的图。以下,按照该流程图来说明虚拟盘的注册处理。该处理通过在内核启动时读入启动脚本(例如/etc/rc.d/rc.local)来执行。
(S1000)MPU11为了在内核中注册本发明的RAID驱动器32而执行模块注册命令(例如insmod命令)。
(S1001)MPU11按照上述模块注册命令调用图3所示的RAID驱动器32内的初始化函数36。然后,MPU11按照初始化函数36在DRAM13中展开多个数据结构体,以将作为用于实现各虚拟盘1001~1004所需要的信息的各虚拟盘控制块41~44存储在DRAM13中。这些结构体的类型由图3所示的初始化函数36内的结构体说明部5000定义。
(S1002)MPU11按照初始化函数36取得预先存储在第一HDD19中的各虚拟盘控制块41~44,将各控制块41~44内的各信息50~54(参照图5(B))存储在各自对应的结构体的要素所确保的存储区域中。此时,与第一HDD19对应的设备驱动器、即RAID驱动器32尚未注册在内核中,因此MPU11通过直接指定第一HDD19的物理地址而取得该控制块41~44。
(S1003)MPU11按照初始化函数36将RAID驱动器32注册在内核中。
(S1004)MPU11结束模块注册命令的处理。
(S1005~1009)MPU11多次执行挂载命令(例如mount命令),由此将与各虚拟盘相对应的预先生成的第一~第四设备文件101~104挂载在文件系统单元100中。
通过上述步骤,第一~第四虚拟盘1001~1004在内核中被识别(注册)。此外,说明了按照初始化函数36来执行上述步骤S1001~1003的处理的情况,但有时也通过从初始化函数36调用的其他函数来执行。
根据以上说明,在本实施例中,4个虚拟盘中的每个虚拟盘具有控制块,该控制块除了包括实现虚拟盘所需要的LBA偏移信息54等通常信息之外,还包括对RAID控制器15指定虚拟盘的盘控制模式的盘控制模式信息51、以及指定以该盘控制模式而被使用的HDD的使用物理盘信息52。并且,RAID驱动器32根据盘存取请求(例如200b)、与作为盘存取对象的虚拟盘1001至1004相对应的控制块(例如第一虚拟盘控制块41)来生成包括该盘控制模式信息51和该使用物理盘信息52的描述符(例如300b),并将其传输给盘阵列控制单元。因此,本实施方式的信息处理装置能够通过HDD19和HDD20这两个HDD而使与包括RAID在内的三种或三种以上的盘控制模式相对应的存储区域共存。
另外,具有以上结构的是具有与网络连接的NIC16的图像形成装置10,由于设备驱动器32经由该NIC16来接收盘存取请求,因此能够应对近年来对与网络连接的图像形成装置的高速处理和高耐故障性的要求。
并且,与RAID0模式相对应的第一虚拟盘控制块41内的LBA偏址信息54所表示的值被设定为小于与RAID1模式相对应的第二虚拟盘控制块42内的偏置信息54所表示的值。因此,第一虚拟盘1001比第二虚拟盘1002靠近第一HDD19和第二HDD20这两者的圆盘状盘的外周侧。从在一般的辅助存储装置的圆盘状盘中越靠近外周侧存取速度越快的观点出发,能够提高重视存取速度的RAID0的效果。
(12)变形例
此外,上述本发明的实施例是用于说明本发明的示例,本发明的范围不仅限于这些实施例。本领域技术人员可以在不脱离本发明的主旨的情况下通过其他的各种方式来实施本发明。以下,举例说明该方式的一部分。
在本实施例中说明了图像形成装置10具有本发明的主要部分的构成的情况,但是也可以包括网络服务器或个人计算机等其他的信息处理装置。
另外,为了说明本发明,在本实施例中将Linux作为前提,但是本发明也可以应用于例如Windows(注册商标)等其他的OS。
并且,说明了使用两个HDD来生成4个与各盘控制模式相对应的虚拟盘的情况,但是只要第一HDD19和第二HDD20的容量、OS30的限制(例如挂载数的限制)、以及RAID控制器15的盘控制模式的功能限制允许,例如也可以生成与如RAID2~6这样的盘控制模式相对应的无数个虚拟盘并通过两个HDD使与多种RAID模式相对应的各存储区域共存。例如,可以通过两个HDD使与RAID0~6和单模式相对应的各存储区域共存。
并且,图像形成装置10启动之前的第一~第四控制块41~44的存储地不限于第一HDD19,例如也可以是存储OS30和应用程序31的EEPROM14或第二HDD20。
另一方面,OS30、应用程序31、以及RAID驱动器32等软件也可以存储在第一HDD19或第二HDD20中。
另外,RAID驱动器32不限于使MPU11使用DMA传输方式将描述符间接地发送给RAID控制器15(MPU11发送上述描述符的起始地址,不发送描述符自身),例如也可以使MPU11直接发送描述符自身。

Claims (10)

1.一种信息处理装置,其特征在于,包括:
主存储单元;
辅助存储单元,具有两个辅助存储装置,三个或三个以上的虚拟盘分散形成在所述两个辅助存储装置中;
盘阵列控制单元,与所述辅助存储单元连接,通过包括RAID0模式、RAID1模式、以及单模式的盘控制模式中的一种被指定的盘控制模式来控制所述三个或三个以上的虚拟盘;
控制块存储单元,存储有对应于每个所述虚拟盘的控制块,该控制块包括第一指定信息和第二指定信息,所述第一指定信息指定所述盘控制模式,所述第二指定信息指定以所述指定的盘控制模式而被使用的辅助存储装置;以及
设备驱动单元,根据对所述三个或三个以上的虚拟盘中的一个虚拟盘的盘存取请求和与所述被请求的虚拟盘相对应的控制块,在所述主存储单元中生成包括所述第一指定信息和所述第二指定信息的所述盘阵列控制单元的控制信息,将所述控制信息直接或间接地传输给所述盘阵列控制单元。
2.如权利要求1所述的信息处理装置,其特征在于,
所述盘阵列控制单元根据从所述设备驱动单元传输过来的所述控制信息内的所述第一指定信息和所述第二指定信息,通过被指定的盘控制模式来控制所述两个辅助存储装置或其中的一个辅助存储装置内的预定的存储区域。
3.如权利要求1所述的信息处理装置,其特征在于,
所述控制信息包括表示作为盘存取对象的数据的临时存储地的所述主存储单元中的缓冲地址信息,
所述设备驱动单元通过将所述缓冲地址信息和所述盘存取的开始命令传输给所述盘阵列控制单元而使所述盘阵列控制单元取得所述控制信息来间接地传输所述控制信息。
4.如权利要求1所述的信息处理装置,其特征在于,
还包括文件系统单元,该文件系统单元使操作系统识别所述第一指定信息各不相同的所述三个或三个以上的虚拟盘,并且根据对所述三个或三个以上的虚拟盘中的一个虚拟盘的第一盘存取请求,生成与所述设备驱动单元相对应并包括用于识别作为所述盘存取对象的虚拟盘的第一盘识别信息的第二盘存取请求,将所述第二盘存取请求传输给所述设备驱动单元,
所述控制块包括用于从所述三个或三个以上的虚拟盘中识别出一个虚拟盘的第二盘识别信息,
所述设备驱动单元从所述控制块取得第二盘识别信息,对从文件系统单元传输过来的所述第二盘存取请求中所包括的所述第一盘识别信息和所述第二盘识别信息进行核对,将所述第二盘识别信息与所述第一盘识别信息一致的控制块指定为与作为存取对象的虚拟盘相对应的控制块。
5.如权利要求1所述的信息处理装置,其特征在于,
所述控制块包括表示所述一个虚拟盘的总扇区数的总扇区数信息和表示所述一个虚拟盘在辅助存储装置中的起始地址的偏址信息,
所述控制信息包括与所述盘存取请求相对应的命令名信息、开始进行所述盘存取的所述辅助存储装置中的起始地址信息、以及从所述辅助存储装置读取或写入所述辅助存储装置的数据所占的扇区数信息。
6.如权利要求1所述的信息处理装置,其特征在于,
所述盘阵列控制单元所具有的所述盘控制模式还包括与RAID0模式和RAID1模式不同的RAID模式,
在所述控制块存储单元中存储有所述第一指定信息表示所述RAID0模式的第一控制块、所述第一指定信息表示所述RAID1模式的第二控制块、以及所述第一指定信息表示所述不同的RAID模式的第三控制块,
所述三个或三个以上的虚拟盘包括与所述第一控制块相对应的第一虚拟盘、与所述第二控制块相对应的第二虚拟盘、以及与所述第三控制块相对应的第三虚拟盘。
7.如权利要求1所述的信息处理装置,
在所述控制块存储单元中存储有所述第一指定信息表示所述RAID0模式的第一控制块、以及所述第一指定信息表示所述RAID1模式的第二控制块,
所述第一控制块内的偏址信息和所述第二控制块内的偏址信息被设定为与所述第一控制块相对应的虚拟盘比与所述第二控制块相对应的虚拟盘靠近所述两个辅助存储装置的圆盘状的盘的外周侧。
8.如权利要求1所述的信息处理装置,其特征在于,
所述控制块存储单元是所述两个辅助存储装置中的一个辅助存储装置,
所述信息处理装置还包括将存储在所述两个辅助存储装置中的一个辅助存储装置内的所述控制块全部存储在所述主存储单元中的控制块取得单元,
所述设备驱动单元从所述主存储单元中取得与所述被请求的虚拟盘相对应的控制块,生成所述控制信息。
9.如权利要求1所述的信息处理装置,其特征在于,
还包括与网络连接的通信单元,
所述设备驱动单元经由所述通信单元取得所述盘存取请求。
10.一种虚拟盘的管理方法,用于在信息处理装置中形成虚拟盘并进行管理,所述虚拟盘的管理方法的特征在于,
使三个或三个以上的虚拟盘分散形成在两个辅助存储装置中,所述三个或三个以上的虚拟盘中的任一个通过包括RAID0模式、RAID1模式、以及单模式的盘控制模式中的一种被指定的盘控制模式而被控制,
存储对应于每个所述虚拟盘的控制块,该控制块包括第一指定信息和第二指定信息,所述第一指定信息指定所述盘控制模式,所述第二指定信息指定以所述指定的盘控制模式而被使用的辅助存储装置,
根据对所述三个或三个以上的虚拟盘中的一个虚拟盘的盘存取请求和与所述被请求的虚拟盘相对应的控制块,在主存储单元中生成包括所述第一指定信息和所述第二指定信息的控制信息,
将所述控制信息直接或间接地传输给盘阵列控制单元。
CN2008101695661A 2007-10-22 2008-10-08 信息处理装置以及虚拟盘管理方法 Expired - Fee Related CN101419534B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007274172 2007-10-22
JP2007-274172 2007-10-22
JP2007274172A JP5080201B2 (ja) 2007-10-22 2007-10-22 情報処理装置及びこれに備えられるデバイスドライバ

Publications (2)

Publication Number Publication Date
CN101419534A true CN101419534A (zh) 2009-04-29
CN101419534B CN101419534B (zh) 2011-01-12

Family

ID=40564644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101695661A Expired - Fee Related CN101419534B (zh) 2007-10-22 2008-10-08 信息处理装置以及虚拟盘管理方法

Country Status (3)

Country Link
US (1) US8015354B2 (zh)
JP (1) JP5080201B2 (zh)
CN (1) CN101419534B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103562886A (zh) * 2011-06-01 2014-02-05 微软公司 在多盘主机中隔离虚拟机i/o

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8656070B2 (en) * 2009-04-29 2014-02-18 Lsi Corporation Striping with SCSI I/O referrals
JP5350077B2 (ja) * 2009-05-28 2013-11-27 京セラドキュメントソリューションズ株式会社 情報処理装置及びこれを備えた画像形成装置
US8402214B2 (en) * 2009-09-16 2013-03-19 Hitachi, Ltd. Dynamic page reallocation storage system management
US8478938B2 (en) * 2010-10-28 2013-07-02 Lsi Corporation Performing data writes in parity protected redundant storage arrays
JP5849400B2 (ja) * 2011-02-08 2016-01-27 コニカミノルタ株式会社 画像形成方法および画像形成装置
US8904105B2 (en) * 2011-03-15 2014-12-02 Dell Products L.P. System and method for performing raid I/O operations in PCIE-based storage resources
US11048410B2 (en) * 2011-08-24 2021-06-29 Rambus Inc. Distributed procedure execution and file systems on a memory interface
CN102291466B (zh) * 2011-09-05 2014-02-26 浪潮电子信息产业股份有限公司 一种优化集群存储网络资源配置的方法
CN103777893B (zh) * 2012-10-17 2018-09-21 研祥智能科技股份有限公司 硬盘控制方法和装置
JP6191209B2 (ja) * 2013-04-12 2017-09-06 富士通株式会社 ストレージ装置、制御プログラムおよび制御方法
US9423965B2 (en) * 2014-07-11 2016-08-23 Dell Products L.P. Method and system for writing to and reading from computer readable media
US10148755B2 (en) * 2015-08-27 2018-12-04 Dell Products L.P. System and method to redirect USB mass storage devices in high latency VDI environments
US9766920B2 (en) * 2015-08-28 2017-09-19 Vmware, Inc. Dynamic content disk
US10146499B2 (en) * 2015-10-09 2018-12-04 Dell Products L.P. System and method to redirect display-port audio playback devices in a remote desktop protocol session
JP2019128891A (ja) * 2018-01-26 2019-08-01 キヤノン株式会社 情報処理装置及び情報処理装置の制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5542065A (en) * 1995-02-10 1996-07-30 Hewlett-Packard Company Methods for using non-contiguously reserved storage space for data migration in a redundant hierarchic data storage system
EP2200032A3 (en) * 1998-09-18 2010-09-22 Kabushiki Kaisha Toshiba Information recording method, information recording device, and information recording medium
US6272591B2 (en) * 1998-10-19 2001-08-07 Intel Corporation Raid striping using multiple virtual channels
US6718404B2 (en) * 2000-06-02 2004-04-06 Hewlett-Packard Development Company, L.P. Data migration using parallel, distributed table driven I/O mapping
JP2002259062A (ja) 2001-02-28 2002-09-13 Hitachi Ltd 記憶装置システム及び記憶装置システムにおけるデータの複写方法
CN101566928B (zh) * 2003-08-14 2012-06-27 克姆佩棱特科技公司 虚拟磁盘驱动系统和方法
CN100396065C (zh) * 2005-01-14 2008-06-18 清华大学 一种iSCSI存储系统的实现方法
US20100030960A1 (en) * 2008-07-31 2010-02-04 Hariharan Kamalavannan Raid across virtual drives

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103562886A (zh) * 2011-06-01 2014-02-05 微软公司 在多盘主机中隔离虚拟机i/o
CN103562886B (zh) * 2011-06-01 2016-04-13 微软技术许可有限责任公司 在多盘主机中隔离虚拟机i/o的方法和系统
US9851991B2 (en) 2011-06-01 2017-12-26 Microsoft Technology Licensing, Llc Isolation of virtual machine I/O in multi-disk hosts
US10877787B2 (en) 2011-06-01 2020-12-29 Microsoft Technology Licensing, Llc Isolation of virtual machine I/O in multi-disk hosts

Also Published As

Publication number Publication date
US8015354B2 (en) 2011-09-06
CN101419534B (zh) 2011-01-12
JP5080201B2 (ja) 2012-11-21
JP2009104321A (ja) 2009-05-14
US20090106493A1 (en) 2009-04-23

Similar Documents

Publication Publication Date Title
CN101419534B (zh) 信息处理装置以及虚拟盘管理方法
US6751155B2 (en) Non-volatile memory control
US7831764B2 (en) Storage system having plural flash memory drives and method for controlling data storage
US7373477B2 (en) Fragmentation executing method and storage device
US8271612B2 (en) On-demand virtual storage capacity
US8055723B2 (en) Virtual array site configuration
US20060179212A1 (en) Flash memory control devices that support multiple memory mapping schemes and methods of operating same
US20060095666A1 (en) Information processing system and management device for managing relocation of data based on a change in the characteristics of the data over time
CN102201049B (zh) 信息处理装置及其数据处理方法
KR20100011698A (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템 및 그제어 방법
JP2009093571A (ja) 記憶制御装置、記憶制御装置のデータアーカイブ方法及びストレージシステム
US10649891B2 (en) Storage device that maintains mapping data therein
JP2003256150A (ja) 記憶制御装置および記憶制御装置の制御方法
JPWO2014049678A1 (ja) ソリッドステートドライブにデータを再配置するストレージ装置、ストレージコントローラ及び方法
US20090248998A1 (en) Storage system, control unit, image forming apparatus, image forming method, and computer readable medium
US9009440B2 (en) Adjustment of data storage capacity provided by a storage system
US11409451B2 (en) Systems, methods, and storage media for using the otherwise-unutilized storage space on a storage device
KR100663827B1 (ko) 스토리지 제어 장치 및 스토리지 제어 방법
JP4340327B1 (ja) マルチファンクションプリンタ
JP4212503B2 (ja) 制御システム、制御装置、記憶装置、及びコンピュータプログラム
JP2005327334A (ja) 画像処理装置
JP3785127B2 (ja) ディスクアレイ制御装置及びディスクアレイ制御装置におけるデータ書き込み方法
KR100541642B1 (ko) 플래시 메모리의 데이터 관리 장치 및 방법
JP6895551B2 (ja) 情報処理システム
JP2010176399A (ja) Nand型フラッシュメモリデバイス及びnand型フラッシュメモリのデータ消去方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110112

Termination date: 20181008

CF01 Termination of patent right due to non-payment of annual fee