CN107710160A - 计算机和存储区域管理方法 - Google Patents

计算机和存储区域管理方法 Download PDF

Info

Publication number
CN107710160A
CN107710160A CN201580081422.9A CN201580081422A CN107710160A CN 107710160 A CN107710160 A CN 107710160A CN 201580081422 A CN201580081422 A CN 201580081422A CN 107710160 A CN107710160 A CN 107710160A
Authority
CN
China
Prior art keywords
operating system
shared region
region
computer
application program
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
CN201580081422.9A
Other languages
English (en)
Other versions
CN107710160B (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN107710160A publication Critical patent/CN107710160A/zh
Application granted granted Critical
Publication of CN107710160B publication Critical patent/CN107710160B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种运行多个OS的计算机,计算机与具有多个存储介质的存储装置连接;多个OS包括控制对存储装置的访问的第一OS和生成虚拟计算机的第二OS;对第一OS和第二OS分配逻辑分割后的计算机资源,执行应用程序的第三OS运行在虚拟计算机中;第二OS具有管理为了在应用程序与第一OS之间进行通信而使用的存储区域即共享区域的共享区域管理部,第三OS具有响应来自应用程序的请求对第二OS请求确保共享区域,将确保的共享区域映射至客户机虚拟地址空间的代理。

Description

计算机和存储区域管理方法
技术领域
本发明涉及在运行有多个主机OS的计算机系统中,主机OS和该主机OS或其他主机OS管理的客户机OS共享的存储区域的控制技术。
背景技术
近年来,为了有效应用物理计算机中的硬件资源,在一台物理计算机中起动两个以上OS(操作系统)的技术受到了关注(例如参考专利文献1和专利文献2)。
在专利文献1中,记载了:“多操作系统计算机是一种将按优先度顺序执行设定了优先度的多个任务的第一OS(操作系统)、和与上述第一OS不同的第二OS作为工作OS使其交替工作的多操作系统计算机,具备OS切换部,其在所述第一OS作为工作OS工作时执行了所述多个任务中设定了规定的优先度的规定的任务且作为用于确定工作OS的切换契机的切换契机任务使用的任务的情况下,使工作OS从所述第一OS切换至所述第二OS。”
另外,在专利文献2中,记载了:“一种起动第一OS和第二OS这至少2个OS的多OS起动装置,其包括:(1)一次存储部,其具有存储区域,对于所述存储区域定义存储器空间;(2)二次存储部,其存储第二引导加载器和所述第二OS;(3)OS执行部,在表示对CPU的控制信息的上下文(context)且为所述第一OS用的上下文的第一上下文工作的所述第一OS中,使在所述第一OS下工作的第一引导加载器在按所述第一上下文工作中的所述第一OS下工作,来使所述第一引导加载器从所述二次存储部将所述第二引导加载器和所述第二OS加载至作为所述第一OS所管理的第一存储器空间由所述第一上下文对于所述一次存储装置定义的所述一次存储部的存储区域中;和(4)加载器执行部,其通过在按所述第一上下文工作中的所述第一OS下执行加载至作为所述第一存储器空间定义的存储区域中的所述第二引导加载器,来使所述第二引导加载器生成对于所述一次存储部定义包括作为第二OS管理的第二存储器空间定义的存储区域和加载了所述第二引导加载器和所述第二OS的存储区域的第三存储器空间的所述第二引导加载器用的上下文并且从所述第一上下文切换至生成的所述第二引导加载器用的上下文,通过在所述第二引导加载器用的上下文下执行所述第二引导加载器来使所述第二引导加载器将由所述第一引导加载器加载至所述一次存储部的存储区域中的所述第二OS加载至作为所述第三存储器空间中包括的所述第二存储器空间定义的所述一次存储部的存储区域中并且生成所述第二OS用的上下文,从所述第二引导加载器用的上下文切换至生成的所述第二OS用的上下文,在所述第二OS用的上下文下使所述第二引导加载器执行所述第二OS的起动。”
利用该多OS技术,例如搭载主机OS1作为第一OS(主机OS1),搭载虚拟机管理器作为第二OS(主机OS2),进而搭载服务器控制OS作为虚拟机管理器中的多个逻辑计算机中的OS(客户机OS1~客户机OSn),由此能够期待省空间化、低价格化。
现有技术文献
专利文献
专利文献1:日本特开平11-149385号公报
专利文献2:国际公开第2009/113394号
发明内容
发明要解决的课题
将一台物理计算机与非易失性存储介质连接、在物理计算机中搭载控制对非易失性存储介质的访问的主机OS1和管理多个客户机OS的主机OS2的计算机系统作为一例考虑。
各客户机OS为了提高I/O处理的响应性能,设置了用于缓存数据的存储器。存储器是易失性的,所以为了在发生意外的电源切断的情况下不丢失数据,主机OS1或主机OS2将数据保存在非易失性存储介质中。电源恢复、客户机OS重新起动的情况下,为了将保存的数据还原至存储器中,客户机OS中的应用程序需要与能够访问非易失性存储介质的主机OS1之间进行通信并将主机OS1输出的数据还原至存储器中。
为了实现如上所述的故障恢复,需要确保主机OS1与客户机OS中的应用程序通信用的存储区域(共享区域)。
本发明提供一种在具有独立的计算机资源的多个主机OS运行的计算机中,确保一个主机OS管理的虚拟计算机、与该主机OS或其他主机OS之间的通信控制中使用的存储区域的计算机和存储区域的管理方法。
用于解决课题的技术方案
本申请中公开的发明的代表性的一例如下所述。即,一种运行多个操作系统的计算机,其特征在于:所述计算机包括处理器、与所述处理器连接的存储器和与所述处理器连接的I/O设备作为计算机资源,所述计算机与具有多个存储介质的存储装置连接,所述多个操作系统包括控制对所述存储装置的访问的第一操作系统和生成至少一个虚拟计算机的第二操作系统,分割后的所述计算机资源被分配给所述第一操作系统和所述第二操作系统,执行应用程序的第三操作系统运行在所述至少一个虚拟计算机中,所述第二操作系统具有管理为了在所述应用程序与所述第一操作系统之间进行通信而使用的存储区域即共享区域的共享区域管理部;所述第三操作系统具有响应来自所述应用程序的请求对所述第二操作系统请求确保所述共享区域,并将所述确保的共享区域映射至表示对所述应用程序分配的虚拟存储器的位置的客户机虚拟地址空间的代理。
发明的效果
能够在多个操作系统之间共享存储区域,经由该存储区域收发数据。上述以外的课题、结构和效果将通过以下实施方式的说明而说明。
附图说明
图1是表示实施例1的计算机系统的硬件结构的一例的图。
图2是表示实施例1的计算机系统的逻辑结构的一例的图。
图3是表示实施例1的管理信息的一例的图。
图4是表示实施例1的共享区域的映射关系和结构的图。
图5A是表示实施例1的计算机系统的使用共享区域的处理的流程的序列图。
图5B是表示实施例1的计算机系统的使用共享区域的处理的流程的序列图。
图6是说明实施例1的代理执行的映射处理的一例的流程图。
具体实施方式
以下用附图说明实施例。
实施例1
图1是表示实施例1的计算机系统的硬件结构的一例的图。
计算机系统由物理计算机10和外部存储装置20构成。物理计算机10与外部存储装置20直接或者经由网络连接。作为网络,可以考虑由FC(Fibre Channel:光纤信道)构成的SAN等。
物理计算机10包括处理器110、RAM120、芯片组130、FPGA140、内部存储设备150、电源部160和I/O设备170.
处理器110读取RAM120中保存的程序(命令),执行读取的程序(命令)。处理器110具有多个CPU核心111。通过由处理器110执行程序而实现OS等的功能。以下以程序为主体说明处理的情况下,表示该程序被处理器110执行。
RAM120保存用处理器110执行的程序和该程序执行所需的信息。另外,RAM120包括各程序的工作区域。
芯片组130管理处理器110、RAM120和I/O设备170之间的数据输入输出。FPGA140是进行规定的运算的电路。本实施例中,FPGA140进行数据传输等。另外,FPGA140包括RAM141。
内部存储设备150是非易失性的存储介质,例如可以考虑HDD(Hard Disk Drive:硬盘驱动器)或SSD(Solid State Drive:固态硬盘)等。本实施例中,在电源意外切断时,将RAM141中保存的数据保存在内部存储设备150中。另外,也可以将RAM1120中保存的数据保存在内部存储设备150中。
电源部160控制物理计算机10的电源。I/O设备170是通过与外部装置连接而从外部输入信息、对外部输出信息用的设备。I/O设备170例如可以考虑NIC、FC HBA等。
外部存储装置20保存OS的程序、在OS中工作的各种应用程序的程序代码和应用程序处理的数据等。外部存储装置20具有多个存储介质。本实施例中,外部存储装置20具有四个HDD190作为存储介质。另外,物理计算机10也可以与具有多个存储介质和控制器的存储系统连接。
图2是表示实施例1的计算机系统的逻辑结构的一例的图。
本实施例的计算机系统中,物理计算机10的计算机资源被分割,对主机OS1(200)和主机OS2(210)分别分配分割后的计算机资源。计算机资源中包括RAM120。本实施例中,将RAM120的存储区域(存储区域)分割为两部分,对主机OS1(200)和主机OS2(210)分别分配分割后的存储区域。以下说明中,也将分割后的存储区域记作分割RAM。
对主机OS1(200)分配的计算机资源被主机OS1(200)独占地使用,对主机OS2(210)分配的计算机资源被主机OS2(210)独占地使用。
本实施例的主机OS1(200)对应于存储控制OS。存储控制OS控制对外部存储装置20的读取处理和写入处理。主机OS1(200)执行客户机OS230与内部存储设备150之间的备份处理和还原处理。
本实施例的主机OS2(210)对应于虚拟机管理器等VMM(Virtual MachineMonitor:虚拟机监视器)。VMM使用虚拟机技术,使用对主机OS2(210)分配的计算机资源的一部分生成一个以上的虚拟计算机(LPAR220),在生成的LPAR220上起动客户机OS230。在客户机OS230中,进而有进行规定处理的应用程序232运行。
主机OS2(210)管理对主机OS2(210)分配的分割RAM的主机物理地址空间与对LPAR220分配的逻辑RAM的客户机物理地址空间之间的映射。
分割RAM的主机物理地址空间是表示分割RAM的物理位置的地址空间。逻辑RAM的客户机物理地址空间是表示逻辑RAM的物理位置的地址空间。另外,主机OS1(200)也管理对自身分配的分割RAM的主机物理地址。
客户机OS230管理逻辑RAM的客户机物理地址空间与客户机虚拟地址空间之间的映射。此处,客户机虚拟地址空间是表示客户机OS230对应用程序232分配的虚拟的RAM位置的地址空间。
LPAR220具有逻辑处理器、逻辑RAM(逻辑存储器)和逻辑I/O设备。本实施例的主机OS2(210)对LPAR220分配共享区域221。共享区域221是在应用程序232与主机OS1(200)之间的通信等中使用的存储区域。
本实施例的主机OS2(210)具有共享区域管理部211和处理部212,并且保持管理信息213。
共享区域管理部211对LPAR220分配共享区域221并管理该共享区域221。共享区域管理部211将共享区域221分割为多个块,按块单位管理共享区域221的状态。以下说明中也将块单位的共享区域221简记作块。处理部212控制使用共享区域221的主机OS1(200)与客户机OS230之间的通信。管理信息213是用于管理共享区域221的信息,被共享区域管理部211管理。关于管理信息213的详情用图3说明。
本实施例的客户机OS230包括代理231。代理231将应用程序232发出的关于共享区域221的请求传递至主机OS2(210),并且对主机OS2(210)请求确保共享区域221。另外,代理231对于虚拟地址空间映射确保的共享区域221,将映射了共享区域221的虚拟地址返回至应用程序232。由此,应用程序232能够使用共享区域221。
图3是表示实施例1的管理信息213的一例的图。
管理信息213包括块ID301、客户机物理地址302、主机物理地址303、大小304和分配状态305。
块ID301是块的识别编号。客户机物理地址302是客户机物理地址空间中的块的起始地址。主机物理地址303是主机物理地址空间中的块的起始地址。大小304是块的大小。本实施例中,所有块的大小都相同。另外,各块的大小也可以不同。
分配状态305是表示块是否已对应用程序232分配的信息。本实施例的分配状态305中保存“已”或“未”中的某一方。分配状态305是“已”的情况下,表示块已对应用程序232分配。分配状态305是“未”的情况下,表示块未对应用程序232分配。
本实施例中,对一个LPAR220分配一个共享区域221。因此,主机OS2(210)保持与LPAR220的数量相同数量的管理信息213。
图4是表示实施例1的共享区域的映射关系和结构的图。
物理计算机10的RAM120的存储区域被分割为两部分,对主机OS1和主机OS2分别分配分割后的存储区域。主机OS1(200)和主机OS2(210)分别将分配的存储区域作为独立的主机物理地址空间进行管理。
主机OS2(210)将分配的存储区域的一部分确保为主机OS2(210)的控制用的区域。另外,主机OS2(210)将分配的存储区域的一部分确保为LPAR220的区域,对LPAR220分配该区域。
LPAR220将LPAR220的区域分割为客户机OS230的区域和LPAR220的控制用的区域。另外,在客户机OS230的区域中,包括MMIO用的区域、F/W用的区域、RAM用的区域和客户机OS230的控制用的区域。
主机OS2(210)在起动LPAR220时,对控制用的区域分配共享区域221。即,将控制用的区域的一部分用作共享区域221。共享区域221的数据结构由数据区域和通信用区域构成。数据区域是为了进行使用由主机OS1(200)备份的数据进行的还原,而保存从主机OS1(200)发送来的数据的存储区域。通信用区域是用于在应用程序232与主机OS1(200)之间通信的存储区域。
另外,图4所示的共享区域221的数据结构表示逻辑结构。从而,数据区域和通信用区域也可以不是连续的存储区域。另外,通过在通常起动时也分配共享区域221,例如主机OS2(210)和应用程序232能够共享存储器等。
如图4所示,共享区域221与客户机OS230的区域不同,所以是不能由客户机OS230识别为逻辑RAM的存储区域。另外,共享区域221包括在对主机OS2分配的存储区域中,所以在与应用程序232之间通信以外不会从主机OS1(200)访问。
图5A和图5B是表示实施例1的计算机系统的使用共享区域221的处理的流程的序列图。本实施例中,作为使用共享区域的处理的一例,说明使用共享区域的还原处理。
主机OS1(200)在物理计算机10的电源部160故障等电源切断时将为了缓存而保存在RAM120中的数据备份至外部存储装置20中(步骤S101)。之后,物理计算机10进行重新起动。
主机OS2(210)的共享区域管理部211在LPAR220起动时,对LPAR220分配共享区域221(步骤S102)。
例如,共享区域管理部211在LPAR220起动时,从对LPAR220分配的存储区域中的控制用的存储区域中确保共享区域221用的区域。
另外,共享区域管理部211将主机物理地址空间的地址连续的存储区域确保为共享区域221。此时,共享区域管理部211将确保的存储区域分割为块单位,对各块附加识别编号。
共享区域管理部211在管理信息213中生成相当于块的数量的条目,对块ID301设定附加的识别编号。另外,共享区域管理部211对各条目的主机物理地址303设定各块的起始地址,并且对大小304设定各块的大小。进而,共享区域管理部211对各条目的分配状态305设定“未”。
共享区域管理部211基于LPAR220起动时确保的存储区域的地址取得各块的客户机物理地址和主机物理地址,对各条目的客户机物理地址302和主机物理地址303设定取得的客户机物理地址和主机物理地址。以上是步骤S102的处理的说明。
LPAR220起动、进而在LPAR220中客户机OS230起动之后,开始应用程序232的处理。此时,应用程序232判断是否执行了备份处理。例如,通过经由主机OS2(210)对主机OS1(200)询问,能够进行上述判断。此处设判断为执行了备份处理。
该情况下,应用程序232对代理231发出确保共享区域221的请求(步骤S103)。另外,该确保请求中包括确保的存储区域的大小。
代理231对共享区域管理部211发出从应用程序232接收到的确保共享区域221的请求(步骤S104)。
共享区域管理部211从代理231接收了确保共享区域221的请求的情况下,参考管理信息213,确保对应用程序232的客户机虚拟地址空间分配的共享区域221(块)(步骤S105)。即,选择对应用程序232提供的块。进而,共享区域管理部211对代理231通知映射的客户机物理地址(步骤S106)。
具体而言,共享区域管理部211参考管理信息213的各条目的分配状态305,检索相当于请求的大小的管理信息213为“未”的条目连续的部位。共享区域管理部211选择检索得到的条目组,对选择的条目组的分配状态305设定“已”。共享区域管理部211对代理231通知选择的条目组的起始的块ID301和客户机物理地址302中保存的值。此时,共享区域管理部211对代理传递的地址是映射的地址,所以与距离使应用程序232使用的区域的偏移量一起通知。
代理231从共享区域管理部211接受了客户机物理地址的情况下,将该客户机物理地址映射至客户机虚拟地址空间(步骤S107)。本实施例中,使用OS的功能将客户机物理地址映射至客户机虚拟地址。关于具体的处理用图6进行说明。
代理231对应用程序232通知映射后的客户机虚拟地址(步骤S108)。
具体而言,代理231基于映射结果和偏移量,对应用程序232通知应用程序232使用的起始块的客户机虚拟地址、客户机物理地址、文件描述符、块的识别编号、大小等确保的共享区域的释放所需的信息。
应用程序232从代理231接受了客户机物理地址的情况下,为了开始与主机OS1(200)的通信,而对主机OS2(210)发出使用共享区域221开始处理的请求(步骤S109)。另外,该开始请求中,包括步骤S103中发出的确保共享区域221的请求中包括的大小和从代理231接受的块的识别编号。
代理231对处理部212发出从应用程序232接收到的开始处理的请求(步骤S110)。
处理部212从代理231接受了开始处理的请求的情况下,对共享区域管理部211请求确保的块的主机物理地址(步骤S111)。该主机物理地址的请求中,包括步骤S108中发出的、在步骤S109的开始请求中输入的块的识别编号。
共享区域管理部211接受了主机物理地址的请求的情况下,基于管理信息213,对处理部212通知确保的块的主机物理地址(步骤S112)。
具体而言,共享区域管理部211参考管理信息213,检索块ID301与主机物理地址的请求中包括的块的识别编号一致的条目。共享区域管理部211对处理部212通知检索得到的条目的主机物理地址303中保存的地址。
处理部212从共享区域管理部211接受了主机物理地址的情况下,对主机OS1(200)通知主机物理地址(步骤S113)。此时,处理部212与主机物理地址一起通知步骤S109的开始请求的输入中包括的大小。由此,主机OS1(200)能够访问对应用程序232分配的共享区域221。
主机OS1(200)接收了主机物理地址的通知的情况下,使用共享区域221执行处理(步骤S114)。本实施例中,使用共享区域221执行还原处理。还原处理是公知的,所以省略详细说明。
应用程序232完成还原处理之后,对代理231发出完成通知(步骤S115)。代理231对处理部212发出从应用程序232接受的完成通知(步骤S116)。
处理部212从代理231接收了完成通知的情况下,对主机OS1(200)发出完成通知(步骤S117)。
主机OS1(200)从处理部212接收了完成通知的情况下,为了之后不会再访问共享区域221,而执行完成处理(步骤S118)。完成处理是公知的,所以省略详细说明。
应用程序232对代理231发出释放请求(步骤S119)。该释放请求中,包括在步骤S108中从代理231接收到的各种信息。代理231对共享区域管理部211发出从应用程序232接收到的释放请求(步骤S120)。
共享区域管理部211从代理231接受了释放请求的情况下,释放对应用程序232分配的全部块(步骤S121)。此时,共享区域管理部211参考管理信息213,将与释放的块对应的条目的分配状态305全部更新为“未”。
共享区域管理部211对代理231通知用于计算解除映射用的地址的偏移量(步骤S122)。
代理231从共享区域管理部211接受了偏移量的情况下,使用该偏移量从客户机虚拟地址空间将块解除映射(步骤S123)。
图6是说明实施例1的代理231执行的映射处理的一例的流程图。
代理231打开特定文件(步骤S201)。代理231判断特定文件打开是否成功(步骤S202)。
判断为特定文件打开失败的情况下,代理231判断为错误并结束处理。判断为特定文件打开成功的情况下,代理231为了将块的客户机物理地址映射至客户机虚拟地址而执行mmap(步骤S203)。代理231判断mmap是否成功(步骤S204)。
判断为mmap失败的情况下,代理231判断为错误并结束处理。判断为mmap成功的情况下,代理231对应用程序232返回客户机虚拟地址作为mmap的执行结果(步骤S205)。
另外,对共享区域221解除映射的情况下,代理231执行munmap。
如以上所说明,根据本实施例,在具有分别独立的计算机资源的主机OS1(200)和主机OS2(210)运行的计算机中,能够确保主机OS2管理的LPAR220中的应用程序与主机OS1(200)通信用的共享区域。
从而,能够在使用独立的计算机资源的主机OS1(200)与主机OS2中的应用程序232之间进行通信等处理。
另外,共享区域的使用方法不限定于主机OS1(200)与主机OS2中的应用程序232之间的通信。应用本发明,例如在主机OS2与应用程序232之间的通信、或者主机OS2与代理231之间的通信中也能够使用共享区域。
另外,本发明不限定于上述实施例,包括各种变形例。例如,上述实施例为了易于理解地说明本发明而详细说明了结构,并不限定于必须具备说明的全部结构。另外,对于各实施例的结构的一部分,能够追加、删除、置换其他结构。
另外,对于上述各结构、功能、处理部、处理单元等,例如可以通过在集成电路中设计等而用硬件实现其一部分或全部。另外,本发明也能够通过实现实施例的功能的软件的程序代码实现。该情况下,对计算机提供记录了程序代码的存储介质,该计算机具备的处理器读取存储介质中保存的程序代码。该情况下,从存储介质读取的程序代码自身实现上述实施例的功能,该程序代码自身和存储它的存储介质构成本发明。作为用于供给这样的程序代码的存储介质,例如使用软盘、CD-ROM、DVD-ROM、硬盘、SSD(Solid State Drive:固态硬盘)、光盘、磁光盘、CD-R、磁带、非易失性的存储卡、ROM等。
另外,实现本实施例中记载的功能的程序代码,例如能够用汇编、C/C++、perl、Shell、PHP、Java等广范围的程序或脚本语言实现。
进而,也可以通过经由网络发布实现实施例的功能的软件的程序代码,而将其保存在计算机的硬盘和存储器等存储单元或者CD-RW、CD-R等存储介质中,计算机具备的处理器读取该存储单元或存储介质中保存的程序代码并执行。
上述实施例中,控制线和信息线示出了认为说明上必要的,并不一定示出了产品上全部的控制线和信息线。全部结构也可以相互连接。

Claims (8)

1.一种运行多个操作系统的计算机,其特征在于:
所述计算机具有处理器、与所述处理器连接的存储器和与所述处理器连接的I/O设备作为计算机资源,
所述计算机与具有多个存储介质的存储装置连接,
所述多个操作系统包括控制对所述存储装置的访问的第一操作系统和生成至少一个虚拟计算机的第二操作系统,
分割后的所述计算机资源被分配给所述第一操作系统和所述第二操作系统,
执行应用程序的第三操作系统运行在所述至少一个虚拟计算机中,
所述第二操作系统具有管理共享区域的共享区域管理部,其中所述共享区域是用于在所述应用程序与所述第一操作系统之间进行通信的存储区域,
所述第三操作系统具有代理,其响应来自所述应用程序的请求而向所述第二操作系统请求确保所述共享区域,并将所述确保的共享区域映射至表示要对所述应用程序分配的虚拟存储器的位置的客户机虚拟地址空间。
2.如权利要求1所述的计算机,其特征在于:
所述第二操作系统具有控制使用所述共享区域的所述第一操作系统与所述应用程序之间的通信的处理部,
所述共享区域管理部,
在从所述代理接受了确保所述共享区域的请求的情况下,确保规定大小的所述共享区域,
对所述代理通知表示所述虚拟计算机中包括的逻辑存储器的物理位置的客户机物理地址空间中的、用于访问所述确保的共享区域的第一地址,
所述代理,
使用所述第一地址,将所述确保的共享区域映射至所述客户机虚拟地址空间,
对所述应用程序通知用于访问映射至所述客户机虚拟地址空间后的共享区域的第二地址,
所述应用程序接受了所述第二地址之后,经由所述代理对所述处理部发送使用所述共享区域的处理的开始请求,
所述处理部,
从所述共享区域管理部取得所述第二操作系统所管理的主机物理地址空间中的、用于访问所述确保的共享区域的第三地址,
对所述第一操作系统通知所述第三地址,
所述第一操作系统通过使用所述第三地址与所述应用程序进行通信,来执行使用所述共享区域的处理。
3.如权利要求2所述的计算机,其特征在于:
所述第二操作系统在所述虚拟计算机起动时,将要对该虚拟计算机分配的存储区域的一部分分配为所述共享区域。
4.如权利要求3所述的计算机,其特征在于:
所述共享区域管理部,
将所述共享区域分割为多个块进行管理,
在从所述代理接受了确保所述共享区域的请求的情况下,将至少一个块确保为提供给所述应用程序的共享区域。
5.一种运行多个操作系统的计算机中的存储区域管理方法,其特征在于:
所述计算机具有处理器、与所述处理器连接的存储器和与所述处理器连接的I/O设备作为计算机资源,
所述计算机与具有多个存储介质的存储装置连接,
所述多个操作系统包括控制对所述存储装置的访问的第一操作系统和生成至少一个虚拟计算机的第二操作系统,
分割后的所述计算机资源被分配给所述第一操作系统和所述第二操作系统,
执行应用程序的第三操作系统运行在所述至少一个虚拟计算机中,
所述存储区域管理方法包括:
所述应用程序经由所述第三操作系统发出确保共享区域的请求的第一步骤,其中所述共享区域是用于在所述应用程序与所述第一操作系统之间进行通信的存储区域;
所述第二操作系统基于所述确保共享区域的请求来确保所述共享区域的第二步骤;和
所述第三操作系统将所述确保的共享区域映射至表示要对所述应用程序分配的虚拟存储器的位置的客户机虚拟地址空间的第三步骤。
6.如权利要求5所述的存储区域管理方法,其特征在于:
所述第二步骤包括:
确保规定大小的所述共享区域的步骤;和
对所述应用程序通知表示所述虚拟计算机中包括的逻辑存储器的物理位置的客户机物理地址空间中的、用于访问所述确保的共享区域的第一地址的步骤;
所述第三步骤包括:
使用所述第一地址,将所述确保的共享区域映射至所述客户机虚拟地址空间的步骤;和
对所述应用程序通知用于访问映射至所述客户机虚拟地址空间后的共享区域的第二地址的步骤,
所述存储区域管理方法包括:
所述应用程序接受了所述第二地址之后,经由所述第三操作系统对所述第二操作系统发送使用所述共享区域的处理的开始请求的步骤;
所述第二操作系统接受了所述处理的开始请求的情况下,取得所述第二操作系统所管理的主机物理地址空间中的、用于访问所述确保的共享区域的第三地址的步骤;
所述第二操作系统对所述第一操作系统通知所述第三地址的步骤;和
所述第一操作系统使用所述第三地址与所述应用程序进行通信,来执行使用所述共享区域的处理的步骤。
7.如权利要求6所述的存储区域管理方法,其特征在于:
包括所述第二操作系统在所述虚拟计算机起动时,将要对该虚拟计算机分配的存储区域的一部分分配为所述共享区域的步骤。
8.如权利要求7所述的存储区域管理方法,其特征在于:
包括所述第二操作系统将所述共享区域分割为多个块进行管理的步骤,
在所述第二步骤中,将至少一个块确保为提供给所述应用程序的共享区域。
CN201580081422.9A 2015-07-08 2015-07-08 计算机和存储区域管理方法 Active CN107710160B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/069628 WO2017006458A1 (ja) 2015-07-08 2015-07-08 計算機及びメモリ領域管理方法

Publications (2)

Publication Number Publication Date
CN107710160A true CN107710160A (zh) 2018-02-16
CN107710160B CN107710160B (zh) 2021-06-22

Family

ID=57685160

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580081422.9A Active CN107710160B (zh) 2015-07-08 2015-07-08 计算机和存储区域管理方法

Country Status (4)

Country Link
US (1) US10289564B2 (zh)
JP (1) JP6458146B2 (zh)
CN (1) CN107710160B (zh)
WO (1) WO2017006458A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112596642A (zh) * 2020-12-16 2021-04-02 维沃移动通信有限公司 数据共享方法、装置、设备和可读存储介质
CN113994313A (zh) * 2019-05-28 2022-01-28 美光科技公司 基于存储器即服务的分布式计算

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10387681B2 (en) * 2017-03-20 2019-08-20 Huawei Technologies Co., Ltd. Methods and apparatus for controlling access to secure computing resources
US10528749B2 (en) * 2017-03-20 2020-01-07 Huawei Technologies Co., Ltd. Methods and apparatus for containerized secure computing resources
JP6737471B2 (ja) * 2017-03-30 2020-08-12 日本電気株式会社 制御装置、制御システム、制御方法及びプログラム
JP7083717B2 (ja) * 2018-07-23 2022-06-13 ルネサスエレクトロニクス株式会社 半導体装置
US11487674B2 (en) 2019-04-17 2022-11-01 Rankin Labs, Llc Virtual memory pool within a network which is accessible from multiple platforms
US11429390B2 (en) * 2019-12-06 2022-08-30 Rankin Labs, Llc High-level programming language which utilizes virtual memory
CN115669022A (zh) * 2020-05-21 2023-01-31 三星电子株式会社 电子设备提供基于测距的服务的方法和电子设备
JPWO2023047436A1 (zh) * 2021-09-21 2023-03-30

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001243080A (ja) * 2000-03-02 2001-09-07 Hitachi Ltd 情報処理装置
JP2004258698A (ja) * 2003-02-24 2004-09-16 Hitachi Ltd マルチos計算機システムの制御方法
CN1906569A (zh) * 2003-11-26 2007-01-31 维瑞泰斯操作公司 仿真操作系统元数据以提供对存储卷的跨平台访问的系统和方法
CN101477511A (zh) * 2008-12-31 2009-07-08 杭州华三通信技术有限公司 一种实现多操作系统共享存储介质的方法和装置
CN101847105A (zh) * 2009-03-26 2010-09-29 联想(北京)有限公司 一种计算机及多操作系统共享内存的方法
CN103034616A (zh) * 2012-12-07 2013-04-10 中国科学院声学研究所 一种多个操作系统访问存储介质的方法、计算机
US20150046924A1 (en) * 2007-10-30 2015-02-12 Vmware, Inc. Transparent memory-mapped emulation of i/o calls

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3546678B2 (ja) 1997-09-12 2004-07-28 株式会社日立製作所 マルチos構成方法
KR101288700B1 (ko) 2008-03-14 2013-08-23 미쓰비시덴키 가부시키가이샤 멀티 오퍼레이팅 시스템(os) 기동 장치, 컴퓨터 판독 가능한 기록 매체 및 멀티 os 기동 방법
KR102023668B1 (ko) * 2015-04-10 2019-09-20 구글 엘엘씨 공유된 객체 레벨에 대한 이진 트랜슬레이션
US10146572B1 (en) * 2016-06-15 2018-12-04 Rockwell Collins, Inc. Resource management in hypervised computer systems

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001243080A (ja) * 2000-03-02 2001-09-07 Hitachi Ltd 情報処理装置
JP2004258698A (ja) * 2003-02-24 2004-09-16 Hitachi Ltd マルチos計算機システムの制御方法
CN1906569A (zh) * 2003-11-26 2007-01-31 维瑞泰斯操作公司 仿真操作系统元数据以提供对存储卷的跨平台访问的系统和方法
US20150046924A1 (en) * 2007-10-30 2015-02-12 Vmware, Inc. Transparent memory-mapped emulation of i/o calls
CN101477511A (zh) * 2008-12-31 2009-07-08 杭州华三通信技术有限公司 一种实现多操作系统共享存储介质的方法和装置
CN101847105A (zh) * 2009-03-26 2010-09-29 联想(北京)有限公司 一种计算机及多操作系统共享内存的方法
CN103034616A (zh) * 2012-12-07 2013-04-10 中国科学院声学研究所 一种多个操作系统访问存储介质的方法、计算机

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113994313A (zh) * 2019-05-28 2022-01-28 美光科技公司 基于存储器即服务的分布式计算
CN113994313B (zh) * 2019-05-28 2023-12-01 美光科技公司 基于存储器即服务的分布式计算
CN112596642A (zh) * 2020-12-16 2021-04-02 维沃移动通信有限公司 数据共享方法、装置、设备和可读存储介质
CN112596642B (zh) * 2020-12-16 2022-06-07 维沃移动通信有限公司 数据共享方法、装置、设备和可读存储介质

Also Published As

Publication number Publication date
WO2017006458A1 (ja) 2017-01-12
CN107710160B (zh) 2021-06-22
US20180203805A1 (en) 2018-07-19
US10289564B2 (en) 2019-05-14
JP6458146B2 (ja) 2019-01-23
JPWO2017006458A1 (ja) 2018-05-10

Similar Documents

Publication Publication Date Title
CN107710160A (zh) 计算机和存储区域管理方法
CN103080895B (zh) 包括具有存储虚拟化功能和容量虚拟化功能二者的多个存储装置的存储系统
US8069191B2 (en) Method, an apparatus and a system for managing a snapshot storage pool
CN102449607B (zh) 具有多个闪存封装的存储系统
US10708356B2 (en) Cloud computing system and method for managing storage resources therein
US9361034B2 (en) Transferring storage resources between snapshot storage pools and volume storage pools in a distributed network
JP6019513B2 (ja) 記憶リソースを共有する方法およびシステム
US8819338B2 (en) Storage system and storage apparatus
CN103699496A (zh) 分级存储器管理
CN102841761B (zh) 存储系统
CN107209681A (zh) 一种存储设备访问方法、装置和系统
KR20120068765A (ko) 메모리 관리 장치
CN103699334A (zh) 用于管理虚拟机磁盘的方法和系统
CN103384877A (zh) 包括闪存的存储系统和存储控制方法
TW201405427A (zh) 用以藉由可操作為多重虛擬機器之多重系統以改良共享儲存快取中之靈活性之方法及結構
CN106663051A (zh) 虚拟化计算中的存储器管理
CN107924291A (zh) 存储系统
CN106301859A (zh) 一种管理网卡的方法、装置及系统
WO2021008197A1 (zh) 资源分配方法、存储设备和存储系统
KR20140139113A (ko) 메모리 모듈 가상화
US10599565B2 (en) Hypervisor managing memory addressed above four gigabytes
CN104981788A (zh) 存储系统及存储系统的控制方法
CN103229150B (zh) 数据控制方法及系统
CN108228085A (zh) 用于管理存储系统的方法和设备
US20150220363A1 (en) Efficient Resource Utilization in Data Centers

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