CN103365603A - 存储系统的存储器管理的方法和装置 - Google Patents
存储系统的存储器管理的方法和装置 Download PDFInfo
- Publication number
- CN103365603A CN103365603A CN2012104882492A CN201210488249A CN103365603A CN 103365603 A CN103365603 A CN 103365603A CN 2012104882492 A CN2012104882492 A CN 2012104882492A CN 201210488249 A CN201210488249 A CN 201210488249A CN 103365603 A CN103365603 A CN 103365603A
- Authority
- CN
- China
- Prior art keywords
- memory space
- virtual memory
- storage
- storage system
- logical block
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及存储系统的存储器管理的方法和装置。示例实施例在用于外部计算机的存储系统中提供诸如高速DRAM的高速存储器设备资源。根据本发明的一个方面,一种计算机系统包括:计算机,包括内部存储器和外部存储器,外部存储器由耦合到计算机的存储系统提供;以及控制器,可操作以管理由内部存储器和外部存储器提供的虚拟存储器空间。控制器可操作以基于虚拟存储器空间的使用程度向包括在虚拟存储器空间中的外部存储器添加由存储系统提供的逻辑单元。控制器可操作以基于虚拟存储器空间的使用程度而从包括在虚拟存储器空间中的外部存储器释放由存储系统提供的逻辑单元。
Description
技术领域
本发明总体上涉及存储系统,并且更具体地,涉及存储系统的存储器管理。
背景技术
企业IT平台包括服务器计算机和存储系统。服务器计算机运行生成大量数据的业务应用。存储区域网络(SAN)是用于互连服务器计算机和存储系统以使得服务器生成的数据可被存储于外部存储系统上的网络。运行于服务器计算机上的操作系统将数据加载到其存储器空间上以便运行计算过程。存储器空间通常包括安装于服务器计算机上的存储器设备。存储器设备(例如DRAM)通常限于小的大小,这使得它必须被仔细和高效地使用。然而,存在存储器设备相对于加载的数据大小而言不足的情形。为了解决该问题,操作系统具有虚拟存储器空间管理能力,其通过存储器设备与诸如硬盘驱动(HDD)的其他存储设备的组合来创建存储器空间。HDD容量仅在DRAM存储器不足时被使用。虚拟存储器空间如同它是单个存储器设备一样工作,使得应用程序无需关注其使用和行为。
目前,不仅单个应用程序而且大量应用能够在单个服务器计算机上运行。一个示例是虚拟机平台。近来的管理程序(hypervisor)技术允许多个虚拟机部署于单个服务器上。每个虚拟机具有它自己的虚拟存储器空间。通常,总的虚拟存储器大小可被设置为大于其物理存储器大小。该配置是所谓的“过供给”或者“过预订”。尽管存储器的使用率低,但是没有出现问题;然而当存储器使用率增加到存在存储器短缺的程度时,虚拟机的性能将变得极差,因为它消耗位于虚拟存储器空间上的物理HDD。
传统存储系统将SSD或者HDD用作存储资源。存储系统无法帮助解决发生于服务器计算机上的存储器短缺问题。
发明内容
本发明的示例实施例在用于外部计算机的存储系统中提供诸如高速DRAM的高速存储器设备资源。服务器计算机可以向它的虚拟存储器空间上追加存储系统供应的存储器,使得服务器计算机能够扩展其存储器大小。为了保持高存储器使用效率,存储系统将向存储器设备应用精简配置(thin provisioning)功能,使得仅在生成实际数据时消耗物理存储器资源。另一方面,必须高效使用安装于存储系统上的DRAM资源,因为它们可能不是存储器使用的主要目的。在存储上配备DRAM的目的最初是用于加速I/O(输入/输出)性能。这意味着存储设备存储器的使用必须限于服务器存储器使用率过高的情形。本发明还公开一种在存储器使用率变得充分低之后从服务器使用释放存储设备存储器。
根据本发明的一个方面,一种计算机系统包括:计算机,包括内部存储器和外部存储器,外部存储器由耦合到计算机的存储系统提供;以及控制器,可操作以管理由内部存储器和外部存储器提供的虚拟存储器空间。控制器可操作以基于虚拟存储器空间的使用程度向包括在虚拟存储器空间中的外部存储器添加由存储系统提供的逻辑单元。控制器可操作以基于虚拟存储器空间的使用程度而从包括在虚拟存储器空间中的外部存储器释放由存储系统提供的逻辑单元。
在一些实施例中,逻辑单元具有存储系统应用的精简配置。计算机是服务器,其包括可操作以基于虚拟存储器空间的使用程度添加/释放由存储系统提供的逻辑单元的控制器。计算机还包括:耦合到存储系统的服务器计算机;以及耦合到服务器计算机和存储系统的管理计算机,管理计算机包括可操作以基于虚拟存储器空间的使用程度添加/释放由存储系统提供的逻辑单元的控制器。
在具体实施例中,控制器可操作以在虚拟存储器空间的使用程度高于第一预设阈值时向虚拟存储器空间添加由存储系统提供的逻辑单元。控制器可操作以在虚拟存储器空间的使用程度低于第二预设阈值时从虚拟存储器空间释放由存储系统提供的逻辑单元,第二阈值低于第一阈值。控制器可操作以在虚拟存储器空间的使用程度低于第三预设阈值持续达预设时间段时通过从外部存储器去除一个或者多个存储设备来从虚拟存储器空间缩减由存储系统提供的外部存储器,第三阈值低于第一阈值。控制器可操作以监视虚拟存储器空间的使用程度,并且对监视的使用程度与一个或者多个预设阈值进行比较以确定是否添加/释放由存储系统提供的逻辑单元。控制器可操作以基于虚拟存储器空间的使用程度而请求存储系统向高速缓存存储器加载逻辑单元,以向包括在存储器空间中的外部存储器提供逻辑单元。
本发明的另一方面涉及一种管理由计算机中的内部存储器和外部存储器提供的虚拟存储器空间的方法,存储器由耦合到计算机的存储系统提供。该方法包括:控制器基于虚拟存储器空间的使用程度向包括在虚拟存储器空间中的外部存储器添加由存储系统提供的逻辑单元;以及控制器基于虚拟存储器空间的使用程度从包括在虚拟存储器空间中的外部存储器释放由存储系统提供的逻辑单元。
在一些实施例中,添加包括在虚拟存储器空间的使用程度高于第一预设阈值时向虚拟存储器空间添加由存储系统提供的逻辑单元。释放包括在虚拟存储器空间的使用程度低于第二预设阈值时从虚拟存储器空间释放由存储系统提供的逻辑单元,第二阈值低于第一阈值。
本发明的另一方面涉及一种存储多个指令的计算机可读存储介质,多个指令用于控制数据处理器以管理由计算机中的内部存储器和外部存储器提供的虚拟存储器空间,存储器由耦合到计算机的存储系统提供。多个指令包括:使数据处理器基于虚拟存储器空间的使用程度向包括在虚拟存储器空间中的外部存储器添加由存储系统提供的逻辑单元的指令;以及使数据处理器基于虚拟存储器空间的使用程度从包括在虚拟存储器空间中的外部存储器释放由存储系统提供的逻辑单元的指令。
本发明的这些和其他特征以及优点鉴于具体实施例的下文具体描述将变得为本领域普通技术人员所清楚。
附图说明
图1示出了本发明的方法和装置可以应用于其中的存储系统的硬件配置的示例。
图2是分配给服务器计算机的存储资源的抽象。
图3示出了服务器计算机的常规硬件配置。
图4示出了网络交换机的常规硬件配置。
图5示出了数据存储的常规硬件配置。
图6示出了管理计算机的常规硬件配置。
图7示出了存储在服务器计算机的存储器上的软件架构。
图8示出了存储在数据存储的存储器上的软件架构。
图9示出了存储在管理计算机的存储器上的软件架构。
图10示出了服务器计算机管理装置的软件部件组。
图11示出了存储管理装置的软件部件组。
图12是存储在服务器计算机上的设备管理信息的常规示例。
图13是存储在服务器计算机上的存储器使用信息的常规示例。
图14是服务器计算机上的卷配置信息的常规示例。
图15是服务器计算机的虚拟机配置信息的常规示例。
图16是数据存储上的LU配置信息的常规数据结构。
图17是数据存储上的精简配置状态信息的常规数据结构。
图18是根据一个实施例的在服务器计算机上创建的虚拟存储器设备的局部结构。
图19是服务器计算机的存储器消耗行为示例。
图20是精简配置存储利用过程的流程图。
图21、图22和图23示出了用于向服务器计算机的虚拟存储器上附加和移除数据存储上配备的存储器资源的过程的流程图。
图24、图25和图26示出了根据另一实施例的用于向服务器计算机的虚拟存储器附加和去除数据存储上配备的存储器资源的过程的流程图,在该实施例中管理计算机可以控制虚拟存储器管理。
图27、图28和图29示出了根据另一实施例的用于向服务器计算机的虚拟存储器上附加和去除数据存储上配备的存储器资源的过程的流程图,在该实施例中管理控制器可以控制虚拟存储器管理,并且数据存储无需配备有精简配置功能。
图30是根据另一实施例的在服务器计算机上创建的虚拟存储器设备的逻辑结构。
具体实施方式
在本发明的下文具体描述中参照附图,这些附图形成公开内容的部分,并且在这些附图中通过示例而非限制地示出可以用来实现本发明的示例实施例。在附图中,相似标号描述贯穿若干视图的基本上相似部件。另外应当注意,尽管具体描述提供如下文描述并且如在附图中图示的各种示例实施例,但是如本领域技术人员将已知或者将变得为本领域技术人员所知的那样,本发明不限于这里描述并且图示的实施例、但是可以扩展至其他实施例。在说明书中引用“一个实施例”、“该实施例”或者“这些实施例”意味着在本发明的至少一个实施例中包括结合该实施例描述的特定特征、结构或者特性,并且这些短语在说明书中出现于各处未必都指代相同的实施例。此外,在下文具体描述中,阐述诸多具体细节以便提供对本发明的透彻理解。然而本领域普通技术人员将清楚,可以未全部需要这些具体细节以实现本发明。在其他境况中,尚未具体描述和/或可以用框图形式示出公知结构、材料、电路、过程和接口以免不必要地模糊本发明。
另外,在计算机内的操作的算法和符号表示方面呈现下文具体描述的一些部分。这些算法描述和符号表示是数据处理领域技术人员用来向本领域其他技术人员最有效地传达他们的创新实质的手段。算法是促成所需最终状态或者结果的系列限定步骤。在本发明中,执行的步骤需要物理操纵用于实现有形结果的有形数量。通常但并非必然,这些数量采用能够存储、传送、组合、比较并且以别的方式操纵的电或者磁信号或者指令的形式。将这些信号称为位、值、元素、符号、字符、项、数、指令等主要由于普遍使用而已经证实有时是方便的。然而应当了解,所有这些和相似术语将与适当物理数量关联并且仅为应用于这些数量的方便标记。除非另有具体明示,如根据下文讨论而清楚的那样,理解贯穿说明书,利用诸如“处理”、“计算”、“运算”、“确定”、“显示”等术语的讨论可以包括计算机系统或者其他信息处理设备的动作和过程,该计算机系统或者其他信息处理设备将在计算机系统的寄存器和存储器内表示为物理(电子)数量的数据操控并且变换成相似地在计算机系统的存储器或者寄存器或者其他信息存储、传输或者显示设备中表示为物理数量的其他数据。
本发明还涉及一种用于执行这里的操作的装置。该装置可以被专门地构造用于所需目的,或者它可以包括一个或者多个计算机程序有选择地激活或者重新配置的一个或者多个通用计算机。这样的计算机程序可以存储于计算机可读存储介质中,该计算机可读存储介质比如是但不限于光盘、磁盘、只读存储器、随机存取存储器、固态设备和驱动或者适合于存储电子信息的任何其他类型的介质。这里呈现的算法和显示未固有地与任何特定计算机或者其他装置有关。各种通用系统可以与根据这里的教导的程序和模块一起使用,或者构造更专门化的装置以执行所需方法步骤可以证实是方便的。此外,未参照任何特定编程语言描述本发明。将理解多种编程语言可以用来实施如这里描述的本发明的教导。程序语言的指令可以由一个或者多个处理设备、例如中央处理单元(CPU)、处理器或者控制器执行。
将在下文详述的本发明的示例实施例提供了用于存储系统的存储器管理的装置、方法和计算机程序。
图1图示了本发明的方法和装置可以应用于其中的存储系统的硬件配置的示例。服务器计算机300、数据存储或者存储子系统100和管理计算机400由交换机200连接。一般而言,以太网、光纤信道或者无限频带以及某些其他类型的交换机被用于SAN(存储区域网络)。管理计算机400用于管理整个存储系统。
图2是分配给服务器计算机300的存储资源的抽象。数据存储100上配备的存储设备生成逻辑单元(LU)520。逻辑单元是诸如SSD和HDD的物理存储设备的部分或者组合。LU被分配有一个或者多个网络接口110,因此它们可以由外部计算机引用。服务器计算机300可以绑定LU520作为本地存储设备510。
图3示出了服务器计算机300的常规硬件配置。CPU330、存储器设备340、输入设备360(例如键盘和鼠标)和输出设备370(例如,连接到外部显示监视器的视频图形卡)通过存储器控制器350被互连。由I/O控制器320处理的所有I/O被传送给内部存储设备380、通过网络接口310被传送给外部存储设备或者被传送给存储器控制350。该配置可以由普通的、常用的多用途PC(个人计算机)实现。
图4示出了网络交换机200的常规硬件配置。CPU230和存储器设备240连接到存储器控制器250,存储器控制器250连接到I/O控制器220,I/O控制器220连接到多个网络接口210。
图5示出了数据存储100的常规硬件配置。CPU130和存储器设备140连接到存储器控制器150,存储器控制器150连接到I/O控制器120,I/O控制器120连接到多个网络接口110和存储设备180。
图6示出了管理服务器400的常规硬件配置。CPU430、存储器设备440、输入设备460和输出设备470连接到存储器控制器450,存储器控制器450连接到I/O控制器420,I/O控制器420连接到网络接口410和存储设备480。
图7示出了存储在服务器计算机300的存储器340上存储的软件架构。存储器340包括虚拟机管理系统3401和操作系统3402。虚拟机管理系统3401具有用于运行虚拟机的一组软件。它包括虚拟机平台程序3408和虚拟机配置信息3409。虚拟机平台的常规示例是VMware、Microsoft Hyper-V、KVM等。操作系统3402运行诸如Linux、Windows、HP-UX等操作系统。它包括存储器管理程序3403、存储器使用信息3404、设备管理平台3405、设备管理信息3406和卷配置信息3407。存储器管理程序3403控制存储器的使用并且还控制虚拟存储器空间的使用。存储器使用信息3404是存储器消耗状态的记录。设备管理程序3405管理诸如外部存储器和存储的设备的检测、附加和移除。设备管理信息3406是设备配置定义。卷配置信息3407是存储卷配置定义。
图8示出了存储在数据存储100的存储器140上的软件架构。I/O传送控制程序1401组织从服务器计算机100接收的每个I/O请求。配置管理程序1402管理配置改变。LU配置信息1403是存储LU配置的定义。精简配置控制程序1404在存储设备上运行动态资源映射/解映射。该精简配置状态信息1405是资源映射状态的记录。高速缓存加载程序1406是用于在高速缓存存储器上保持存储在特定卷上的数据的程序。LU迁移程序1407提供将LU从原始物理空间移至目的设备的能力。
图9示出了管理存储在计算机400的存储器440上的软件架构。管理计算机400具有由服务器计算机管理装置4401和存储管理装置4402提供的两个主要功能。
图10示出了服务器计算机管理装置4401的软件部件组。服务器系统状态监视程序44011接收并且保持服务器状态信息(诸如存储器使用信息44012)被更新。存储器使用信息44012是从服务器计算机300接收的存储器使用信息3404的拷贝。存储器设备配置信息44013是服务器计算机300处可用的存储器设备的配置。虚拟机配置程序44014发出改变请求消息以控制虚拟机配置配置。虚拟机配置信息44012是虚拟机配置信息3409的拷贝。
图11示出了存储管理装置4402的软件部件组。逻辑单元配置程序44021发出配置改变请求消息以创建和删除数据存储100上的逻辑单元。LU配置信息44022是LU配置信息1403的拷贝。逻辑单元配置程序44021保持LU配置信息1403被更新。
图12是存储在服务器计算机300上的设备管理信息3406的常规示例。它包括设备ID34061、目标端口34062和目标编号34063的列。设备ID34061是诸如存储设备510的设备的标识符。在一种常规方式中,设备ID34061可以表示在服务器计算机300上运行的系统的“安装点”(mount point)。例如,设备可以在其文件系统上被处理为“/dev/sdcl”、“/dev/sdc2”。目标端口34062是用于标识设备接口的端口。目标编号34063是用于标识被配置于目标端口34062上的设备的编号。该配置允许将内部设备和外部设备表示为目标端口34062与目标编号34063的组合。例如,可以在服务器计算机300上识别并且安装定义在数据存储100的端口“50:00:32:22:12:00:00:02”上的逻辑单元“2”为“/dev/sdc1”。端口“50:00:32:22:12:00:00:02”对应于数据存储100的网络接口110,并且可以它可以被表示为光纤信道全球范围名称、IP地址、以太网MAC地址等。
图13是存储于服务器计算机300上的存储器使用信息3404的常规示例。它具有日期34041、时间34042和以%为单位的利用率34043这些列。服务器计算机300在存储器使用信息3404上记录存储器消耗率。
图14是服务器计算机300上的卷配置信息3407的常规示例。它具有安装点34071和设备ID34072的列。由设备ID34072表示的存储设备510被安装在定义于安装点34071上的位置。在服务器计算机300上运行的软件能够通过对本地安装的存储设备510的访问而从外部存储设备读取和向外部存储设备写入。该数据结构与传统UNIX操作系统的/etc/fstab文件相同。
图15是服务器计算机300的虚拟机配置信息3409的常规示例。它具有VMID(虚拟机ID)34091、以MB为单位的已分配存储器大小34092和以MB(兆字节)为单位的虚拟存储器34093的列。虚拟机服务器的典型管理程序为虚拟机提供存储器资源的“过供给”。换言之,单个物理存储器340可以由运行于服务器计算机300上的多个虚拟机共享。例如,由VMID“0”定义的虚拟机被分配“1024MB”存储器。通过“过供给”能力,已分配存储器34092之和可超过虚拟存储器34093。这在总存储器消耗达到物理存储器大小时引起严重性能退化,因为服务器计算机开始通过补充存储器短缺来使用HDD资源。
图16是数据存储100上的LU配置信息1403的常规数据结构。它具有网络接口14031、LUN14032、资源分配14033、开始地址14034、结束地址14035和精简配置14036的列。逻辑单元可被标识为网络接口14031与逻辑单元编号(LUN)14032的组合。逻辑单元编号14032是配置与网络接口14031所表示的网络接口110上的逻辑单元的标识符。逻辑单元的物理存储资源被定义为资源分配14033、开始地址14034和结束地址14035的组合。资源分配14033是存储的物理资源。例如,可以向逻辑单元分配HDD集合和DRAM设备集合。被指定为开始地址14034和结束地址14035的这些资源的部分被分配给逻辑单元。而且,如果精简配置状态信息14036被设置成“是”或者“打开”,则该逻辑单元被配置给精简配置卷。
图17是数据存储100上的精简配置状态信息1405的常规数据结构。它具有虚拟地址14051、分配资源的来源14052和物理地址14053的列。在逻辑单元被定义为精简配置的情况下,物理存储资源在初始阶段未被消耗。物理存储资源在请求数据写入时被动态分配。例如,由虚拟地址14051表示的存储块从“供分配的资源”14052与物理地址14053的组合表示的物理资源被分配。
图18是根据一个实施例的在服务器计算机300上创建的虚拟存储器设备的本地结构。虚拟存储器530可以由存储器设备340与外部存储设备510的组合创建。该外部存储设备510对应于数据存储100的逻辑单元520。该逻辑单元520对应于存储器设备140或者存储设备150。这样,虚拟存储器可以由本地存储器设备340和数据存储100提供的外部存储器设备140配置。
图19是服务器计算机300的存储器消耗行为的示例。服务器计算机300开始消耗本地存储器340,并且如果该资源耗尽,则它开始消耗外部存储器资源510。
图20是精简配置存储利用过程的流程图。在服务器计算机300上运行的软件生成数据并且开始向本地存储设备510中的写入过程(S101)。如结合图2描述的那样,数据被发送给数据存储100。数据存储100接收并且在高速缓存存储器中存储数据(S102)。在写入高速缓存之后,数据存储100能够向服务器计算机300返回确认消息以便报告数据写入被接受的状态,使得服务器计算机300无需再等待。然后,数据存储100将缓存的数据写入物理存储设备180。如果与写入数据的目标地址相对应的物理存储资源已被分配,数据存储100简单地将该数据写入物理存储目标(S105)。否则,数据存储100必须在实际的数据写入过程之前分配物理存储块(S104)。
图21、图22和图23示出了用于向服务器计算机300的虚拟存储器上附加和移除数据存储100上配备的存储器资源的过程的流程图。首先,服务器计算机300发出用于创建LU的请求消息(S201)。数据存储100创建新逻辑单元(S202)。该LU利用精简配置而被创建在存储器设备140上,使得在该过程的这一阶段或者级不消耗物理存储器资源。
存储器管理程序3403监视存储器使用并且将其记录于存储器使用信息3404(S203)。如果存储器管理程序3403判断存储器消耗过高(S204),则它开始向虚拟存储器空间530添加外部存储器资源。设备管理程序3405检测在S202创建的新LU并且更新设备管理信息3406和卷配置信息3407(S205)。存储器管理程序3403向虚拟存储器空间530添加LU(S206)。过程在S206之后返回S203。如果存储器消耗未过高(S204),则过程继续到S207。
应当有效地消耗数据存储100上配备的存储器资源,因为它的主要用途是高速缓存存储器。因此,存储器管理程序3403尝试在适当时释放已分配的存储块。存储器管理程序3403判断存储器消耗率以确定存储器使用率是否充分低(S207)。如果存储器使用率足够低,则它向数据存储100发出解映射命令(S208)。数据存储100从LU释放未使用存储块(S209)。过程在步骤S209之后继续S210。如果存储器使用率并非足够低,则过程返回S203。
存储器管理程序3403能够卸载未消耗的LU。存储器管理程序3403参考存储器使用信息3404并且判断虚拟存储器空间的大小是否过大以致消耗不了(S210)。例如,它可以基于虚拟存储器消耗是否连续保持为低持续多于一天、一周或者一个月来判断。如果在S210中确定可以缩减虚拟存储器,则设备管理程序3405从虚拟存储器空间540去除存储设备510(S211)。过程在S211之后或者在确定不能缩减虚拟存储器的情况下返回S203。
图24、图25和图26示出了根据另一实施例的用于向服务器计算机300的虚拟存储器上附加和移除数据存储100上配备的存储器资源的过程的流程图,在该实施例中管理计算机400可以控制虚拟存储器管理。首先,管理计算机400发出用于创建LU的请求消息(S301)。数据存储100创建新逻辑单元(S302)。该LU利用精简配置而被创建在存储器设备140上,使得在过程的这一阶段或者级没有消耗物理存储器资源。
存储器管理程序3403从服务器计算机获得监视存储器使用的结果,并且将其记录于存储器使用信息3404(S303)。如果存储器管理程序3403判断存储器消耗过高(S304),则服务器计算机300开始向虚拟存储器空间530添加外部存储器资源。设备管理程序3405检测在S302创建的新LU并且更新设备管理信息3406和卷配置信息3407(S305)。存储器管理程序3403向虚拟存储器空间530添加LU(S306)。过程继续到S307。
应当有效地消耗数据存储100上配备的存储器资源,因为它的主要用途是高速缓存存储器。因此,存储器管理程序3403尝试在适当时释放已分配的存储块。存储器管理程序3403从服务器计算机获得判断存储器消耗率的结果以确定存储器使用率是否充分低(S307)。如果存储器使用率足够低,则它向数据存储100发出解映射命令(S308)。数据存储100从LU释放未使用存储块(S309)。过程在S309之后继续S310。如果存储器使用率并非足够低,则过程返回S303。
存储器管理程序3403能够卸载未消耗的LU。存储器管理程序3403参考存储器使用信息3404并且判断虚拟存储器空间的大小是否过大以致消耗不了(S310)。例如,可以基于虚拟存储器消耗是否连续保持为低持续多于一天、一周或者一个月来判断。如果在S310中确定可以缩减虚拟存储器,则管理计算机400向服务器计算机300发送用于去除存储设备510的请求(S311),并且服务器计算机300中的设备管理程序3405从虚拟存储器空间540去除存储设备510(S312)。过程在S312之后或者在确定无法缩减虚拟存储器的情况下返回S303。
图27、图28和图29示出了根据另一实施例的用于向服务器计算机300的虚拟存储器上附加和移除数据存储100上配备的存储器资源的过程的流程图,在该实施例中管理控制器400可以控制虚拟存储器管理,并且数据存储100不是必须配备有精简配置功能。
S401与S301相同。在S402中,数据存储100创建新LU,但是不是按照精简配置。在S403中,管理计算机400请求服务器计算机300扩展虚拟存储器空间。S404和S405与S305和S306相同,但是在这种情况下,数据存储100在初始阶段通过HDD资源提供新LU(S404)。在S406中,管理计算机400监视服务器计算机300的存储器使用。如果虚拟存储器使用率高,则管理计算机400请求向高速缓存存储器上加载LU(S408)。数据存储100中的高速缓存加载程序1406向高速缓存存储器上加载包括虚拟存储器部分的LU。虚拟存储器上的所有I/O访问在本地和外部存储器设备上被处理,使得它解决性能下降的问题。实施它的一个示例是US2010/0100680,在此通过引用并入其全部内容。如果虚拟存储器使用率不高(S407),则管理计算机确定使用率是否低(S410)。如果是,则管理计算机请求从高速缓存存储器卸载LU(S411)。数据存储100中的高速缓存加载程序1406从高速缓存卸载存储于LU中的数据(S412)。过程返回S406。
在另一实施例中,图27-图29的高速缓存加载可被替换为在HDD与存储器设备之间的卷迁移。该实施例的一个示例是美国专利号5,956,750,在此通过引用并入其全部内容。图30是根据另一实施例的在服务器计算机300上创建的虚拟存储器设备的逻辑结构。如与图18比较,外部存储设备510对应于逻辑单元520a或者逻辑单元520b,逻辑单元520a对应于存储设备150,逻辑单元520b是存储器设备140的部分(表示在HDD与存储器设备之间的迁移)。
在另一实施例中,存储器使用判断可被替换为图15的过供给状态。例如,如果虚拟存储器大小(图15中的以MB为单位的分配存储器大小34092)之和超过物理存储器大小(图15中的以MB为单位的虚拟存储器34093)的大小,则存储器管理程序3403扩展虚拟存储器空间540以保持提供的存储器大小低于物理存储器大小34093。
为了提高存储效率,使用诸如SSD、SAS和SATA等多种类型的介质是有益的。然而,包含多个子文件于其中的数据文件必须被存储到存储卷中,使得不可能利用多个存储层级。本发明的实施例将数据文件分解成多个子文件,并且将它们存储于最佳类型的存储中。
当然,图1中所示系统配置仅举例说明本发明可以实施于其中的信息系统,并且本发明不限于特定硬件配置。实施本发明的计算机和存储系统也可以具有已知I/O设备(例如CD和DVD驱动、软盘驱动、硬驱动等),这些I/O设备可以存储并且读取用来实施上文描述的本发明的模块、程序和数据结构。这些模块、程序和数据结构可以编码于这样的计算机可读介质上。例如本发明的数据结构可以与本发明中使用的程序驻留于其上的一个或者多个计算机可读介质独立地存储于计算机可读介质上。系统的部件可以由任何数字数据通信形式或者介质、例如通信网络互连。通信网络的示例包括局域网、广域网、例如因特网、无线网络、存储区域网络等。
在说明书中,出于说明的目的而阐述诸多细节以便提供对本发明的透彻理解。然而本领域技术人员将清楚,无需这些具体细节中的所有细节以便实现本发明。也注意本发明可以描述为过程,该过程通常描绘为流程图、作业图、结构图或者框图。虽然流程图可以描述操作为依序过程,但是可以并行或者并发执行操作中的许多操作。此外,可以重新安排操作的顺序。
如本领域中所知,上文描述的操作可以由硬件、软件或者硬件与软件的某一组合执行。可以使用电路和逻辑器件(硬件)来实施本发明实施例的各种方面,而可以使用存储于机器可读介质上的指令(软件)来实施其他方面,这些指令(软件)如果由处理器执行将使处理器执行用于实现本发明实施例的方法。另外,可以仅用硬件实现本发明的一些实施例,而可以仅用软件实现其他实施例。另外,可以在单个单元中执行或者可以用任何多种方式跨越多个部件展开描述的各种功能。当由软件执行时,方法可以基于存储于计算机可读介质上的指令由处理器、比如通用计算机执行。如果希望,则指令可以用压缩和/或加密格式存储于介质上。
根据前文将清楚,本发明提供用于存储器系统的存储器管理的方法、装置和存储于计算机可读介质上的程序。此外,尽管已经在本说明书中举例说明并且描述具体实施例,但是本领域普通技术人员理解,为了实现相同目的而设计的任何布置可以替换公开的具体实施例。本公开内容旨在于覆盖本发明的任何和所有适配或者变化,并且将理解在所附权利要求中使用的措词不应解释为使本发明限于在说明书中公开的具体实施例。实际上,本发明的范围将完全取决于将根据建立的权利要求解释原则来解释的所附权利要求以及向这样的权利要求赋予的完全等效范围。
Claims (20)
1.一种计算机系统,包括:
计算机,包括内部存储器和外部存储器,所述外部存储器由耦合到所述计算机的存储系统提供;以及
控制器,可操作以管理由所述内部存储器和所述外部存储器提供的虚拟存储器空间;
其中所述控制器可操作以基于所述虚拟存储器空间的使用程度向包括在所述虚拟存储器空间中的外部存储器添加由所述存储系统提供的逻辑单元;以及
其中所述控制器可操作以基于所述虚拟存储器空间的所述使用程度从包括在所述虚拟存储器空间中的所述外部存储器释放由所述存储系统提供的逻辑单元。
2.根据权利要求1所述的计算机系统,
其中所述逻辑单元具有由所述存储系统应用的精简配置。
3.根据权利要求1所述的计算机系统,
其中所述计算机是服务器计算机,包括可操作以基于所述虚拟存储器空间的所述使用程度添加/释放由所述存储系统提供的所述逻辑单元的所述控制器。
4.根据权利要求1所述的计算机系统,还包括:
耦合到所述存储系统的系统计算机;以及
耦合到所述服务器计算机和所述存储系统的管理计算机;
其中所述管理计算机包括可操作以基于所述虚拟存储器空间的所述使用程度添加/释放由所述存储系统提供的所述逻辑单元的所述控制器。
5.根据权利要求1所述的计算机系统,
其中所述控制器可操作以在所述虚拟存储器空间的所述使用程度高于第一预设阈值时向所述虚拟存储器空间添加由所述存储系统提供的逻辑单元。
6.根据权利要求5所述的计算机系统,
其中所述控制器可操作以在所述虚拟存储器空间的所述使用程度低于第二预设阈值时从所述虚拟存储器空间释放由所述存储系统提供的逻辑单元,所述第二预设阈值低于所述第一阈值。
7.根据权利要求5所述的计算机系统,
其中所述控制器可操作以在所述虚拟存储器空间的所述使用程度低于第三预设阈值达预设时间段时,通过从所述外部存储器移除一个或者多个存储设备从所述虚拟存储器空间缩减由所述存储系统提供的所述外部存储器,所述第三预设阈值低于所述第一阈值。
8.根据权利要求1所述的计算机系统,
其中所述控制器可操作以监视所述虚拟存储器空间的所述使用程度,并且将监视到的所述使用程度与一个或者多个预设阈值进行比较以确定是否添加/释放由所述存储系统提供的所述逻辑单元。
9.根据权利要求1所述的计算机系统,
其中所述控制器可操作以基于所述虚拟存储器空间的所述使用程度请求所述存储系统将逻辑单元加载到高速缓存存储器以便将所述逻辑单元提供给包括在所述虚拟存储器空间中的所述外部存储器。
10.一种管理由计算机中的内部存储器和外部存储器提供的虚拟存储器空间的方法,所述外部存储器由耦合到所述计算机的存储系统提供,所述方法包括:
由控制器基于所述虚拟存储器空间的使用程度向包括在所述虚拟存储器空间中的所述外部存储器添加由所述存储系统提供的逻辑单元;以及
由所述控制器基于所述虚拟存储器空间的所述使用程度从包括在所述虚拟存储器空间中的所述外部存储器释放由所述存储系统提供的逻辑单元。
11.根据权利要求10所述的方法,
其中所述添加包括在所述虚拟存储器空间的所述使用程度高于第一预设阈值时向所述虚拟存储器空间添加由所述存储系统提供的逻辑单元。
12.根据权利要求11所述的方法,
其中所述释放包括在所述虚拟存储器空间的所述使用程度低于第二预设阈值时从所述虚拟存储器空间释放由所述存储系统提供的逻辑单元,所述第二预设阈值低于所述第一阈值。
13.根据权利要求11所述的方法,还包括:
在所述虚拟存储器空间的所述使用程度低于第三预设阈值达预设时间段时,通过从所述外部存储器移除一个或者多个存储设备从所述虚拟存储器空间缩减由所述存储系统提供的所述外部存储器,所述第三预设阈值低于所述第一阈值。
14.根据权利要求11所述的方法,还包括:
监视所述虚拟存储器空间的所述使用程度,并且对监视到的所述使用程度与一个或者多个预设阈值进行比较以确定是否添加/释放由所述存储系统提供的所述逻辑单元。
15.一种计算机可读存储介质,存储有用于控制数据处理器以管理由计算机中的内部存储器和外部存储器提供的虚拟存储器空间的多条指令,所述外部存储器由耦合到所述计算机的存储系统提供,所述多条指令包括:
使所述数据处理器基于所述虚拟存储器空间的使用程度向包括在所述虚拟存储器空间中的所述外部存储器添加由所述存储系统提供的逻辑单元的指令;以及
使所述数据处理器基于所述虚拟存储器空间的所述使用程度从包括在所述虚拟存储器空间中的所述外部存储器释放由所述存储系统提供的逻辑单元的指令。
16.根据权利要求15所述的计算机可读存储介质,
其中使所述数据处理器添加所述逻辑单元的所述指令包括使所述数据处理器在所述虚拟存储器空间的所述使用程度高于第一预设阈值时向所述虚拟存储器空间添加由所述存储系统提供的逻辑单元的指令。
17.根据权利要求16所述的计算机可读存储介质,
其中使所述数据处理器释放所述逻辑单元的所述指令包括使所述数据处理器在所述虚拟存储器空间的所述使用程度低于第二预设阈值时从所述虚拟存储器空间释放由所述存储系统提供的逻辑单元的指令,所述第二预设阈值低于所述第一阈值。
18.根据权利要求16所述的计算机可读存储介质,其中所述多条指令还包括:
使所述数据处理器在所述虚拟存储器空间的所述使用程度低于第三预设阈值达预设时间段时通过从所述外部存储器移除一个或者多个存储设备而从所述虚拟存储器空间缩减由所述存储系统提供的所述外部存储器的指令,所述第三预设阈值低于所述第一阈值。
19.根据权利要求15所述的计算机可读存储介质,其中所述多条指令还包括:
使所述数据处理器监视所述虚拟存储器空间的所述使用程度并且将监视到的所述使用程度与一个或者多个预设阈值进行比较以确定是否添加/释放由所述存储系统提供的所述逻辑单元的指令。
20.根据权利要求15所述的计算机可读存储介质,其中所述多条指令还包括:
使所述数据处理器基于所述虚拟存储器空间的所述使用程度请求所述存储系统将逻辑单元加载到高速缓存存储器以便将所述逻辑单元提供给包括在所述虚拟存储器空间中的所述外部存储器的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/430,861 US20130262811A1 (en) | 2012-03-27 | 2012-03-27 | Method and apparatus of memory management by storage system |
US13/430,861 | 2012-03-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103365603A true CN103365603A (zh) | 2013-10-23 |
Family
ID=47221191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012104882492A Pending CN103365603A (zh) | 2012-03-27 | 2012-11-22 | 存储系统的存储器管理的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130262811A1 (zh) |
EP (1) | EP2645246A1 (zh) |
JP (1) | JP5840594B2 (zh) |
CN (1) | CN103365603A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951243A (zh) * | 2014-03-28 | 2015-09-30 | 伊姆西公司 | 虚拟化存储系统中的存储扩展方法和装置 |
WO2016058560A1 (zh) * | 2014-10-13 | 2016-04-21 | 张维加 | 一种基于服务端与外部缓存系统的外接式计算设备加速方法与实现该方法的设备 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140019706A1 (en) * | 2012-07-16 | 2014-01-16 | Infinidat Ltd. | System and method of logical object management |
US9128745B2 (en) | 2012-12-27 | 2015-09-08 | International Business Machines Corporation | Automatically managing the storage of a virtual machine |
US9274840B2 (en) * | 2013-03-15 | 2016-03-01 | International Business Machines Corporation | Dynamic memory management with thread local storage usage |
US9542328B2 (en) | 2015-01-26 | 2017-01-10 | International Business Machines Corporation | Dynamically controlling a file system write cache |
WO2017023271A1 (en) * | 2015-07-31 | 2017-02-09 | Hewlett Packard Enterprise Development Lp | Disk array having controller to allocate ports |
US10873626B2 (en) | 2016-04-29 | 2020-12-22 | Hewlett Packard Enterprise Development Lp | Target driven peer-zoning synchronization |
US11159612B1 (en) | 2020-04-28 | 2021-10-26 | Hewlett Packard Enterprise Development Lp | Determining non-TDP zones in a storage area network |
CN112732449B (zh) * | 2021-01-20 | 2024-04-09 | 湖南大学 | 基于gpu虚拟化技术的显存资源分配方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1694081A (zh) * | 2005-05-31 | 2005-11-09 | 清华大学 | San系统中虚拟化智能控制器的实现方法 |
CN1723434A (zh) * | 2002-12-06 | 2006-01-18 | 思科技术公司 | 用于可扩展网络附接存储系统的装置和方法 |
US20060242378A1 (en) * | 2005-04-21 | 2006-10-26 | Yoshiki Kano | System and method for managing disk space in a thin-provisioned storage subsystem |
WO2011027626A1 (ja) * | 2009-09-01 | 2011-03-10 | 株式会社日立製作所 | メモリ管理方法、計算機システム及びコンピュータ可読媒体 |
US8082400B1 (en) * | 2008-02-26 | 2011-12-20 | Hewlett-Packard Development Company, L.P. | Partitioning a memory pool among plural computing nodes |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0659982A (ja) * | 1992-08-10 | 1994-03-04 | Hitachi Ltd | 仮想記憶制御方法および装置 |
JP3181446B2 (ja) * | 1993-09-24 | 2001-07-03 | 株式会社東芝 | 情報記憶装置 |
JP3641872B2 (ja) * | 1996-04-08 | 2005-04-27 | 株式会社日立製作所 | 記憶装置システム |
US7065610B1 (en) * | 2000-06-27 | 2006-06-20 | Emc Corporation | Method and apparatus for maintaining inventory of logical volumes stored on storage elements |
JP4418286B2 (ja) * | 2003-07-14 | 2010-02-17 | 富士通株式会社 | 分散型ストレージシステム |
US7065630B1 (en) * | 2003-08-27 | 2006-06-20 | Nvidia Corporation | Dynamically creating or removing a physical-to-virtual address mapping in a memory of a peripheral device |
JP4751153B2 (ja) * | 2005-06-08 | 2011-08-17 | 株式会社日立製作所 | 記憶システム |
US8140813B2 (en) * | 2005-09-15 | 2012-03-20 | Eye-Fi, Inc. | Endless memory |
US8015383B2 (en) * | 2007-06-27 | 2011-09-06 | International Business Machines Corporation | System, method and program to manage virtual memory allocated by a virtual machine control program |
JP2010072753A (ja) * | 2008-09-16 | 2010-04-02 | Hitachi Ltd | 自動拡張ボリューム及び省電力機能を備えたストレージシステム |
JP5028381B2 (ja) | 2008-10-22 | 2012-09-19 | 株式会社日立製作所 | ストレージ装置およびキャッシュ制御方法 |
US8578384B2 (en) * | 2009-10-28 | 2013-11-05 | Freescale Semiconductor, Inc. | Method and apparatus for activating system components |
US8850156B2 (en) * | 2010-11-03 | 2014-09-30 | Huawei Technologies Co., Ltd. | Method and system for managing virtual machine storage space and physical host |
JP5395962B2 (ja) * | 2010-12-13 | 2014-01-22 | 株式会社日立製作所 | 計算機システム、及びその管理方法、並びに、プログラム |
US8832687B2 (en) * | 2011-04-20 | 2014-09-09 | Red Hat Israel, Ltd. | Managing quotas in a distributed virtualization environment |
US8751724B2 (en) * | 2011-09-20 | 2014-06-10 | International Business Machines Corporation | Dynamic memory reconfiguration to delay performance overhead |
-
2012
- 2012-03-27 US US13/430,861 patent/US20130262811A1/en not_active Abandoned
- 2012-11-05 JP JP2012243225A patent/JP5840594B2/ja not_active Expired - Fee Related
- 2012-11-20 EP EP12193312.1A patent/EP2645246A1/en not_active Withdrawn
- 2012-11-22 CN CN2012104882492A patent/CN103365603A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1723434A (zh) * | 2002-12-06 | 2006-01-18 | 思科技术公司 | 用于可扩展网络附接存储系统的装置和方法 |
US20060242378A1 (en) * | 2005-04-21 | 2006-10-26 | Yoshiki Kano | System and method for managing disk space in a thin-provisioned storage subsystem |
CN1694081A (zh) * | 2005-05-31 | 2005-11-09 | 清华大学 | San系统中虚拟化智能控制器的实现方法 |
US8082400B1 (en) * | 2008-02-26 | 2011-12-20 | Hewlett-Packard Development Company, L.P. | Partitioning a memory pool among plural computing nodes |
WO2011027626A1 (ja) * | 2009-09-01 | 2011-03-10 | 株式会社日立製作所 | メモリ管理方法、計算機システム及びコンピュータ可読媒体 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951243A (zh) * | 2014-03-28 | 2015-09-30 | 伊姆西公司 | 虚拟化存储系统中的存储扩展方法和装置 |
CN104951243B (zh) * | 2014-03-28 | 2018-04-27 | 伊姆西公司 | 虚拟化存储系统中的存储扩展方法和装置 |
WO2016058560A1 (zh) * | 2014-10-13 | 2016-04-21 | 张维加 | 一种基于服务端与外部缓存系统的外接式计算设备加速方法与实现该方法的设备 |
Also Published As
Publication number | Publication date |
---|---|
JP5840594B2 (ja) | 2016-01-06 |
US20130262811A1 (en) | 2013-10-03 |
EP2645246A1 (en) | 2013-10-02 |
JP2013206457A (ja) | 2013-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103365603A (zh) | 存储系统的存储器管理的方法和装置 | |
KR102173284B1 (ko) | 이종의 저장 매체들을 이용하는 분산 파일 시스템을 구동하는 전자 시스템, 및 그것의 데이터 저장 방법 및 관리 방법 | |
KR102478395B1 (ko) | 통지와 함께 백그라운드 활동을 효율적으로 관리하는 ssd를 위한 메카니즘 | |
US10255118B2 (en) | Processing system including a plurality of cores and method of operating the same | |
US9361034B2 (en) | Transferring storage resources between snapshot storage pools and volume storage pools in a distributed network | |
US7613878B2 (en) | Management of number of disk groups that can be activated in storage device | |
JP6190969B2 (ja) | マルチテナントリソース調停方法 | |
US20100070731A1 (en) | Storage system having allocation-on-use volume and power saving function | |
JP2004127301A (ja) | 仮想記憶システム、仮想記憶方法、および仮想raid記憶システムを過大割り当てする方法 | |
KR20140034246A (ko) | 새로운 애플리케이션을 위한 메모리 관리 모델 및 인터페이스 | |
WO2008006674A1 (en) | Reserve pool management in virtualized storage systems | |
KR20140033448A (ko) | 수정되지 않은 애플리케이션을 위한 메모리 관리 모델 및 인터페이스 | |
CN105468291A (zh) | 动态及静态磨损均衡控制方法及装置 | |
CN116382581A (zh) | 一种加速执行NVMe协议的方法、系统、设备和存储介质 | |
EP2703993A2 (en) | Information processing apparatus, computer program, and copy control method | |
JP2022034455A (ja) | 計算機システムおよび管理方法 | |
CN104426965A (zh) | 自管理存储方法和系统 | |
CN102520879A (zh) | 基于优先级的文件信息存储方法、装置及系统 | |
CN111078407B (zh) | 内存管理的方法、装置、存储介质及电子设备 | |
JP2005092308A (ja) | ディスク管理方法およびコンピュータシステム | |
JP7107981B2 (ja) | 計算機システム | |
US11023139B2 (en) | System for speculative block IO aggregation to reduce uneven wearing of SCMs in virtualized compute node by offloading intensive block IOs | |
CN114327246A (zh) | 存储介质内数据存储方法、存储介质及计算机设备 | |
JPH04288638A (ja) | コンピュータシステム | |
CN114281269B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131023 |
|
WD01 | Invention patent application deemed withdrawn after publication |