CN107885672A - 内存管理***及方法 - Google Patents

内存管理***及方法 Download PDF

Info

Publication number
CN107885672A
CN107885672A CN201711086105.3A CN201711086105A CN107885672A CN 107885672 A CN107885672 A CN 107885672A CN 201711086105 A CN201711086105 A CN 201711086105A CN 107885672 A CN107885672 A CN 107885672A
Authority
CN
China
Prior art keywords
memory
write
space
disk
memory 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
Application number
CN201711086105.3A
Other languages
English (en)
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.)
HANGZHOU ICAFE TECHNOLOGY Co Ltd
Original Assignee
HANGZHOU ICAFE TECHNOLOGY Co 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 HANGZHOU ICAFE TECHNOLOGY Co Ltd filed Critical HANGZHOU ICAFE TECHNOLOGY Co Ltd
Priority to CN201711086105.3A priority Critical patent/CN107885672A/zh
Publication of CN107885672A publication Critical patent/CN107885672A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种无盘客户端、无盘服务端、内存管理***、方法及计算机可读存储介质,其中,应用于藉由至少一无盘客户端及至少一无盘服务端组成网络***中,其中,所述至少一无盘客户端配置有内存模块,所述至少一无盘服务端配置有存储模块,所述方法包括以下步骤:监测所述至少一无盘客户端的内存模块中配置的内存区及回写数据存储区的空间信息;依据所述空间信息分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间。

Description

内存管理***及方法
技术领域
本申请涉及网络技术领域,特别是涉及应用于藉由无盘客户端及无盘服务端组成网络***中的内存管理***及方法。
背景技术
无盘计算机***除了能明显节省例如硬盘等存储设备的硬件成本等优势外,更是便于对无盘***中的无盘客户端进行集中管理,一定程度上也降低了管理***的维护成本,因而无盘计算机***目前广泛应用于诸如网吧、学校乃至企业等局域网环境中。
在无盘客户机的用户在操作时难免会向无盘计算机***中的无盘服务器中写入数据,这些写请求的数据被称之为回写数据,通常情况下,一个无盘服务器可能同时管理很多台无盘客户机,该些无盘客户机在运行中会不停地通过网络向无盘服务器发出读或写的操作请求,因而无盘服务器是集中稀缺资源,如果无盘客户机能够减少回写数据,将节省无盘服务器资源,比如硬盘空间、网络流量、CPU消耗等资源。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供一种无盘客户端、无盘服务端、内存管理***、方法及计算机可读存储介质,用于减轻在无盘计算机***中无盘服务器及网络的负担问题。
为实现上述目的及其他相关目的,本申请的第一方面,提供一种无盘客户端,应用于与至少一无盘服务端连接的网络***中,包括:内存模块,其内存空间被配置为内存区及回写数据存储区;执行模块,被配置为用于通过网络向所述至少一无盘服务端读取数据或回写数据;以及被配置为在接收到回写请求时将写入的数据存储到所述回写数据存储区;分配模块,用于依据所述回写数据存储区或内存区被占用的空间以分配所述内存模块中内存区及回写数据存储区的空间。
本申请的第二方面,提供一种无盘服务端,用于管理配置于网络***中的至少一个无盘客户端,包括:存储模块,存储有用于被所述至少一无盘客户端读取的执行程序及所述至少一无盘客户端通过网络传输写入的回写数据;分配模块,用于将所述至少一无盘客户端的内存空间配置为内存区及回写数据存储区,所述内存空间中内存区及回写数据存储区是依据所述回写数据存储区或内存区被占用的空间进行分配的。
本申请的第三方面,提供一种内存管理***,应用于藉由至少一无盘客户端及至少一无盘服务端组成网络***中,其中,所述至少一无盘客户端配置有内存模块,所述至少一无盘服务端配置有存储模块,包括:监测模块,用于监测所述至少一无盘客户端的内存模块中配置的内存区及回写数据存储区的空间信息;分配模块,依据所述监测模块监测的空间信息分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间。
本申请的第四方面,提供一种内存管理方法,应用于藉由至少一无盘客户端及至少一无盘服务端组成网络***中,其中,所述至少一无盘客户端配置有内存模块,所述至少一无盘服务端配置有存储模块,包括以下步骤:监测所述至少一无盘客户端的内存模块中配置的内存区及回写数据存储区的空间信息;依据所述空间信息分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间。
本申请的第五方面,提供一种计算机可读存储介质,其上存储有内存管理计算机程序,其特征在于,所述内存管理计算机程序被处理器执行时上述第四方面所述的内存管理方法的步骤。
如上所述,本申请的无盘客户端、无盘服务端、内存管理***、方法及计算机可读存储介质,具有以下有益效果:由于本申请提供实施方案在无盘客户端在运行的过程中,从内存模块的空间中分配的回写数据存储区一定程度上充当了所述无盘客户端的例如为硬盘的存储设备,如此以来,使得无需将回写数据通过网络写入所述无盘服务器的存储设备中,进而一定程度上减轻了网络和无盘服务器的压力;另外,由于基于用户对无盘客户端进行写操作写入的数据是存储在所述回写数据存储区中的,这就使得写入至所述回写数据存储区的这部分数据被所述无盘客户端再次执行读操作而读取时可以直接访问内存模块的回写数据存储区对该些数据进行读操作而无需再通过网络访问无盘服务端的存储设备,这也一定程度上避免了因网络带宽限制带来读取或者写入速度慢等问题,进而也一定程度上减轻了无盘计算机***中无盘服务器及网络的负担。
附图说明
图1显示为包含有无盘服务端管理及无盘客户端的网络***架构示意图。
图2显示为本申请无盘客户端的应用架构示意图。
图3显示为本申请无盘服务端的应用架构示意图。
图4显示为本申请内存管理***的架构示意图。
图5显示为本申请的内存管理方法在一实施例中的流程示意图。
图6显示为本申请的内存管理方法在另一实施例中的流程示意图。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效。
在下述描述中,参考附图,附图描述了本申请的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本公开的精神和范围的情况下进行模块组成以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本申请的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本申请。虽然在一些实例中术语第一、第二等在本文中用来描述各种元件,但是这些元件不应当被这些术语限制。这些术语仅用来将一个元件与另一个元件进行区分。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。
本申请提供一种无盘客户端,应用于与至少一无盘服务端连接的网络***中,所述网络***的通信网络可以是因特网、一个或多个内部网、局域网(LAN)、广域网(WLAN)、存储局域网(SAN)等,或其适当组合。请参阅图1,显示为包含有无盘服务端管理及无盘客户端21的网络***架构示意图,如图所示的一个无盘服务端11藉由上述的通信网络同时管理多个无盘客户端21,所述的无盘客户端21也被称之为无盘工作站,所述无盘客户端21通过网络与无盘服务端11相连,无盘客户端21从无盘服务端11下载引导程序、配置文件、内核及镜像文件等,以实现无盘客户端21的启动操作***。比如所述操作***为Linux操作***时,其中,所述引导程序为Linux操作***中的boot loader,所述内核为Linux操作***中的kernel,所述镜像文件为Linux操作***中包含init文件的initrd压缩文件,所述配置文件包括kernel的名称,kernel的具***置,镜像文件的名称,镜像文件的具***置,以及启动kernel的参数(例如,IP设置参数、启动模式参数、热插拔设备参数)。
所述无盘客户端21为无盘(即不包括硬盘)个人计算机、笔记本电脑以及其它任意能够实现无盘启动的设备或***。所述无盘服务端11可以是个人计算机、网络服务器(包括存储服务器和应用服务器等),还可以是任意其它适用的计算机。在某些实施例中,所述无盘服务端11可以为动态主机分配协议(Dynamic Host Configuration Protocol,简称DHCP)服务器,无盘服务端11在预启动执行环境(Preboot Execution Environment,简称PXE)下与无盘客户端21进行通信连接。
请参阅图2,显示为本申请无盘客户端的应用架构示意图,如图所示,所述无盘客户端21包括:内存模块210,执行模块211,以及分配模块212。
所述内存模块210的内存空间被配置为内存区及回写数据存储区;于实际的实施方式中,所述内存模块210为所述无盘客户端21的内存(Memory),也被称为内存储器,用于暂时存放中央处理器(Central Processing Unit,简称CPU)中的运算数据,以及来自所述无盘服务器例如为硬盘的存储设备等外部存储器交换的数据,比如从无盘服务端11下载引导程序、配置文件、内核及镜像文件等以实现无盘客户端21的启动操作***的数据等。所述内存区用于存储从无盘服务端11下载操作***的引导程序、内核、镜像文件及配置文件等,也用于存储在无盘客户端21运行某些软件所需的相应程序和文件等。所述回写数据存储区用于存储基于用户对无盘客户端21进行写操作写入的数据,换言之,在无盘客户端21运行的过程中,所述回写数据存储区一定程度上充当了所述无盘客户端21的例如为硬盘的存储设备。
例如,所述内存模块210的内存空间为8G,基于某些配置策略,所述为8G的内存空间被配置为例如为4G的内存区和4G的回写数据存储区。当然,在不同的情况下,所述内存模块210的内存空间可依据实际的情况灵活地配置,比如所述为8G的内存空间被配置为例如为2G的内存区和6G的回写数据存储区;或者所述为8G的内存空间被配置为例如为6G的内存区和2G的回写数据存储区等等,诸如此例在此不予穷举。
需要特别说明的是,基于无盘客户端21的硬件配置不同,其内存模块210的内存空间可能为2G、4G、16G或32G乃至更多,在以下的描述中,为了简明扼要地阐述本申请的思想及原理,暂以无盘客户端21的内存模块210的内存空间为8G为例进行说明。另外,下文中所述的数据或者空间的大小和容量通常用1G或者2G等方式描述,本领域技术人员可以知晓的,所述的1G是指1024M,所述的2G是指2048M,诸如此类不予赘述。
所述执行模块211被配置为用于通过网络向所述至少一无盘服务端11读取数据或回写数据;以及被配置为在接收到回写请求时将写入的数据存储到所述回写数据存储区;于实际的实施方式中,所述执行模块211例如为无盘服务端11的中央处理器或者藉由所述中央处理器所执行的一个或多个程序或者硬件与软件的结合等。所述无盘客户端21在启动阶段需要进行读操作,即通过网络从所述至少一无盘服务端11下载引导程序、配置文件、内核及镜像文件等,以实现无盘客户端21的启动操作***,所述无盘客户端21在基于用户的操作或者设置进行写操作时,即通过网络向所述至少一无盘服务端11的存储设备回写数据,本申请中的所述执行模块211还被配置为,在无盘客户端21在接收到回写请求时,先将写入的数据写入到所述内存模块210中配置的回写数据存储区,当再次接收到用户的操作或者基于预设的策略将所述回写数据存储区中存储的数据通过网络回写至所述至少一无盘服务端11的存储设备中。
所述分配模块212用于依据所述回写数据存储区或内存区被占用的空间以分配所述内存模块210中内存区及回写数据存储区的空间。于实际的实施方式中,所述分配模块212例如为无盘客户端21的中央处理器或者藉由所述中央处理器所执行的一个或多个程序或者硬件与软件的结合等。
所述分配模块212分配所述内存模块210中内存区及回写数据存储区的空间包括两种情况,一种是首次对内存模块210中的空间进行分配,另一种是,基于已经分配的内存模块210中的内存区及回写数据存储区的空间进行再分配,即重新分配。
在第一种情况下的一个实施例中,所述分配模块212用于依据所述内存区被占用的空间以分配所述内存模块210中内存区及回写数据存储区的空间。例如当所述无盘客户端21的内存模块210的内存空间为8G,其中,基于对正在运行的所述无盘客户端21的监测,其内存区运行的程序已经占用了2.5G的空间,为保障可能增加运行的内存程序,则在为所述内存区分配空间时则需要考虑内存区足够的空间,比如分配5G的空间给所述内存区,其余3G的空间作为回写数据存储区。
在第二种情况下的一实施方式中,所述分配模块212基于已经分配的内存模块210中的内存区及回写数据存储区的空间进行空间调整,即重新分配。例如当所述无盘客户端21的内存模块210的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,发现写其整个内存区中运行的程序只占用了1.5G的空间,且预估其在一定时间段内运行的程序不会有太大的变化,则可以对所述回写数据存储区的空间进行空间调整,比如再从所述内存区中配置出1G分配给所述回写数据存储区,即重新分配的内存模块210中的空间配置为3G的内存区和5G的回写数据存储区;或者基于对正在运行的所述无盘客户端21的监测,监测到所述内存模块210中内存区剩余空间不足1G时,为保障后续可能运行的程序对内存空间的进一步需求,需要扩展所述内存区的空间,则需要重新分配所述回写数据存储区在所述内存模块210中的占用空间,比如再从所述回写数据存储区中配置出2G分配给所述内存区,即重新分配的内存模块210中的空间配置为6G的内存区和2G的回写数据存储区。
在上述两种情况的实施过程中,可以基于对回写数据存储区空间信息和内存区空间信息的阈值(最少空间值)设置来实现动态和非动态的分配,比如,例如当所述无盘客户端21的内存模块210的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,当将内存的总空间的分配设置为不得少于3G时,即便基于对正在运行的所述无盘客户端21的监测发现写其整个内存区中运行的程序只占用了1.5G的空间,且预估其在一定时间段内运行的程序不会有太大的变化,但也不会对所述回写数据存储区的空间进行较大的空间调整,比如不会从所述内存区中划分出2G分配给所述回写数据存储区,进而确保重新分配的内存模块210中的空间划分的内存区不会少于3G的空间。
由于本申请的无盘客户端21在运行的过程中,从内存模块210的空间中分配的回写数据存储区一定程度上充当了所述无盘客户端21的例如为硬盘的存储设备,如此以来,使得无需将回写数据通过网络写入所述无盘服务器的存储设备中,进而一定程度上减轻了网络和无盘服务器的压力;另外,由于基于用户对无盘客户端21进行写操作写入的数据是存储在所述回写数据存储区中的,这就使得写入至所述回写数据存储区的这部分数据被所述无盘客户端21再次执行读操作而读取时可以直接访问内存模块210的回写数据存储区对该些数据进行读操作而无需再通过网络访问无盘服务端11的存储设备,这也一定程度上避免了因网络带宽限制带来读取或者写入速度慢等问题。
在本申请某些实施方式中,所述分配模块212还用于监测到所述内存模块210中回写数据存储区剩余空间小于一定阈值时将已存入的回写数据通过网络存储至所述无盘服务端11以释放所述回写数据存储区的占用空间。例如当所述无盘客户端21的内存模块210的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,所述预设的阈值例如为1024M或者512M,当所述分配模块212还监测到所述回写数据存储区的剩余空间不足1024M或者512M时,为确保后续写入的数据能够有足够的空间被写入该回写数据存储区,则需要将已经写入到该回写数据存储区的数据通过网络转存至无盘服务器中,进而释放所述回写数据存储区的占用空间,使其重新为4G,进而满足了后续写入数据对存储空间的需求。这一实现方式不必要重新分配内存空间,即在回写数据存储区的剩余空间不足时并不需要抢占内存区的空间资源,只是对回写数据存储区按照预设的规则进行数据转存并清空所述回写数据存储区。
在本申请某些实施方式中,所述分配模块212可以动态地调整内存模块210中的存储空间,即所述分配模块212用于实时监测所述内存区或者所述回写数据存储区被实际占用的空间以动态分配所述内存模块210中的内存区及回写数据存储区的空间。
在本申请某些实施方式中,所述分配模块212还用于监测到所述内存模块210中回写数据存储区剩余空间小于一定阈值时重新分配所述回写数据存储区在所述内存模块210中的占用空间。例如当所述无盘客户端21的内存模块210的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,发现其回写数据存储区中剩余空间小于了一定阈值,比如所述预设的阈值例如为1024M或者512M,当所述分配模块212还监测到所述回写数据存储区的剩余空间不足1024M或者512M时,基于对正在运行的所述无盘客户端21的监测,发现其整个内存区中运行的程序只占用了1.5G的空间,且预估其在一定时间段内运行的程序不会有太大的变化,则可以对所述回写数据存储区的空间进行空间调整,比如再从所述内存区中配置出1G分配给所述回写数据存储区,即重新分配的内存模块210中的空间配置为3G的内存区和5G的回写数据存储区。
在本申请某些实施方式中,所述分配模块212还用于监测所述执行模块211回写请求频率以重新分配所述回写数据存储区在所述内存模块210中的占用空间。例如当所述无盘客户端21的内存模块210的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,监测到所述执行模块211频繁地向所述回写数据存储区写入数据,所述频繁是指比如一分钟或者半分钟内回写数据的频次多于3次或2次,则***认为由于频繁的写操作可能会导致所述内存模块210中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块210中的占用空间,比如再从所述内存区中配置出1G分配给所述回写数据存储区,即重新分配的内存模块210中的空间配置为3G的内存区和5G的回写数据存储区。针对写操作频次的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置频次的阈值,在此不予赘述。
在本申请某些实施方式中,所述分配模块212还用于监测所述执行模块211的当前回写数据量以重新分配所述回写数据存储区在所述内存模块210中的占用空间。
所述当前回写数据量比如为当前时刻单次回写数据量,例如单次写入的数据量为256M时,则***认为由于单次写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存模块210中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块210中的占用空间。
所述当前回写数据量比如为当前时刻内的回写数量或者近期的回写数据量,即当前一个时间段内的回写数据量,例如为当前的一分钟内回写数据量为256M时,则***认为由于持续写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存模块210中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块210中的占用空间。
所述当前回写数据量比如为连续几次的回写数据量,例如为连续两次的回写数据量为256M时,则***认为由于连续写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存模块210中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块210中的占用空间。
例如当所述无盘客户端21的内存模块210的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,监测到所述执行模块211的当前回写数据量大于某一阈值时,这一阈值例如为256M,则***认为由于写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存模块210中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块210中的占用空间,比如再从所述内存区中配置出1G分配给所述回写数据存储区,即重新分配的内存模块210中的空间配置为3G的内存区和5G的回写数据存储区。针对写操作写入的数据量大小的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置写入量的阈值,比如128M、64M等,在此不予赘述。
在本申请某些实施方式中,所述分配模块212还用于监测到所述内存模块210中内存区剩余空间小于一定阈值时重新分配所述内存区在所述内存模块210中的占用空间。例如当所述无盘客户端21的内存模块210的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,监测到所述内存模块210中内存区剩余空间不足1G时,为保障后续可能运行的程序对内存空间的进一步需求,需要扩展所述内存区的空间,则需要重新分配所述回写数据存储区在所述内存模块210中的占用空间,比如再从所述回写数据存储区中配置出2G分配给所述内存区,即重新分配的内存模块210中的空间配置为6G的内存区和2G的回写数据存储区。针对内存区剩余空间不足情况的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置剩余空间的阈值,在此不予赘述。
在本申请某些实施方式中,所述分配模块212还用于监测到所述内存模块210中内存区剩余空间小于一定阈值时将已存入的回写数据通过网络存储至所述无盘服务端11,并重新分配所述内存区在所述内存模块210中的占用空间。例如当所述无盘客户端21的内存模块210的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,监测到所述内存模块210中内存区剩余空间不足1G时,为保障后续可能运行的程序对内存空间的进一步需求,需要扩展所述内存区的空间,则需要重新分配所述回写数据存储区在所述内存模块210中的占用空间,若此时所述回写数据存储区中因写入数据导致其没有冗余的空间可以分配给所述内存区,则需要将所述回写数据存储区中存储的数据通过网络存储至所述无盘服务端11,换言之,对回写数据存储区中的数据进行转存并清空所述回写数据存储区,以便可以为其从新分配空间,比如再从所述回写数据存储区中配置出2G分配给所述内存区,即重新分配的内存模块210中的空间配置为6G的内存区和2G的回写数据存储区。针对内存区剩余空间不足情况的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置剩余空间的阈值,在此不予赘述。
本申请的无盘客户端可以动态地调整内存模块中内存区和回写数据存储区的空间,使得无盘客户端在运行中依据内存的实际占用情况,实时地动态调整回写数据存储区的空间,进而确保无盘客户端不会因其内存模块被回写数据占用而带来内存不足,同时也满足了在无盘客户端本地存储和读取回写数据的需求,当然,也使得无需将回写数据通过网络写入所述无盘服务器的存储设备中,一定程度上减轻了网络和无盘服务器的压力。
本申请还提供一种无盘服务端,用于管理配置于网络***中的至少一个无盘客户端,所述网络***的通信网络可以是因特网、一个或多个内部网、局域网(LAN)、广域网(WLAN)、存储局域网(SAN)等,或其适当组合。复请参阅图1,显示为包含有无盘服务端11管理及无盘客户端21的网络***架构示意图,如图所示的一个无盘服务端11藉由上述的通信网络同时管理多个无盘客户端21,所述的无盘客户端21也被称之为无盘工作站,所述无盘客户端21通过网络与无盘服务端11相连,无盘客户端21从无盘服务端11下载引导程序、配置文件、内核及镜像文件等,以实现无盘客户端21的启动操作***。比如所述操作***为Linux操作***时,其中,所述引导程序为Linux操作***中的boot loader,所述内核为Linux操作***中的kernel,所述镜像文件为Linux操作***中包含init文件的initrd压缩文件,所述配置文件包括kernel的名称,kernel的具***置,镜像文件的名称,镜像文件的具***置,以及启动kernel的参数(例如,IP设置参数、启动模式参数、热插拔设备参数)。
所述无盘客户端21为无盘(即不包括硬盘)个人计算机、笔记本电脑以及其它任意能够实现无盘启动的设备或***。所述无盘服务端11可以是个人计算机、网络服务器(包括存储服务器和应用服务器等),还可以是任意其它适用的计算机。在某些实施例中,所述无盘服务端11可以为动态主机分配协议(Dynamic Host Configuration Protocol,简称DHCP)服务器,无盘服务端11在预启动执行环境(Preboot Execution Environment,简称PXE)下与无盘客户端21进行通信连接。
请参阅图3,显示为本申请无盘服务端的应用架构示意图,如图所示,所述无盘服务端11包括存储模块111及分配模块112。
所述存储模块111存储有用于被所述至少一无盘客户端21读取的执行程序及所述至少一无盘客户端21通过网络传输写入的回写数据;例如所述存储模块111存储有用于被所述至少一无盘客户端21读取的执行程序包括引导程序、配置文件、内核及镜像文件等以实现无盘客户端21的启动操作***的程序和文件,也包括例如用户在无盘客户端21运行某些软件所需的相应程序和文件。所述存储模块111例如为高速随机存取存储器,并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储器还可以包括远离一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络访问的网络附加存储器。
所述分配模块112用于将所述至少一无盘客户端21的内存空间配置为内存区及回写数据存储区,所述内存空间中内存区及回写数据存储区是依据所述回写数据存储区或内存区被占用的空间进行分配的。于实际的实施方式中,所述分配模块112例如为无盘服务端11的中央处理器或者藉由所述中央处理器所执行的一个或多个程序或者硬件与软件的结合等。
在某些实施例中,所述无盘客户端21的内存空间被配置为内存区及回写数据存储区;于实际的实施方式中,所述内存空间为所述无盘客户端21的内存(Memory),也被称为内存储器,用于暂时存放中央处理器(Central Processing Unit,简称CPU)中的运算数据,以及来自所述无盘服务器例如为硬盘的存储设备等外部存储器交换的数据,比如从无盘服务端11下载引导程序、配置文件、内核及镜像文件等以实现无盘客户端21的启动操作***的数据等。所述内存区用于存储从无盘服务端11下载操作***的引导程序、内核、镜像文件及配置文件等,也用于存储在无盘客户端21运行某些软件所需的相应程序和文件等。所述回写数据存储区用于存储基于用户对无盘客户端21进行写操作写入的数据,换言之,在无盘客户端21运行的过程中,所述回写数据存储区一定程度上充当了所述无盘客户端21的例如为硬盘的存储设备。
例如,所述内存空间的内存空间为8G,基于某些配置策略,所述为8G的内存空间被配置为例如为4G的内存区和4G的回写数据存储区。当然,在不同的情况下,所述内存空间的内存空间可依据实际的情况灵活地配置,比如所述为8G的内存空间被配置为例如为2G的内存区和6G的回写数据存储区;或者所述为8G的内存空间被配置为例如为6G的内存区和2G的回写数据存储区等等,诸如此例在此不予穷举。
所述分配模块112分配所述内存空间中内存区及回写数据存储区的空间包括两种情况,一种是首次对内存空间中的空间进行分配,另一种是,基于已经分配的内存空间中的内存区及回写数据存储区的空间进行再分配,即重新分配。
在第一种情况下的一个实施例中,所述分配模块112用于依据所述内存区被占用的空间以分配所述内存空间中内存区及回写数据存储区的空间。例如当所述无盘客户端21的内存空间的内存空间为8G,其中,基于对正在运行的所述无盘客户端21的监测,其内存区运行的程序已经占用了2.5G的空间,为保障可能增加运行的内存程序,则在为所述内存区分配空间时则需要考虑内存区足够的空间,比如分配5G的空间给所述内存区,其余3G的空间作为回写数据存储区。
在第二种情况下的一实施方式中,所述分配模块112基于已经分配的内存空间中的内存区及回写数据存储区的空间进行空间调整,即重新分配。例如当所述无盘客户端21的内存空间的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,发现写其整个内存区中运行的程序只占用了1.5G的空间,且预估其在一定时间段内运行的程序不会有太大的变化,则可以对所述回写数据存储区的空间进行空间调整,比如再从所述内存区中配置出1G分配给所述回写数据存储区,即重新分配的内存空间中的空间配置为3G的内存区和5G的回写数据存储区;或者基于对正在运行的所述无盘客户端21的监测,监测到所述内存空间中内存区剩余空间不足1G时,为保障后续可能运行的程序对内存空间的进一步需求,需要扩展所述内存区的空间,则需要重新分配所述回写数据存储区在所述内存空间中的占用空间,比如再从所述回写数据存储区中配置出2G分配给所述内存区,即重新分配的内存空间中的空间配置为6G的内存区和2G的回写数据存储区。
在上述两种情况的实施过程中,可以基于对回写数据存储区空间信息和内存区空间信息的阈值(最少空间值)设置来实现动态和非动态的分配,比如,例如当所述无盘客户端21的内存模块210的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,当将内存的总空间的分配设置为不得少于3G时,即便基于对正在运行的所述无盘客户端21的监测发现写其整个内存区中运行的程序只占用了1.5G的空间,且预估其在一定时间段内运行的程序不会有太大的变化,但也不会对所述回写数据存储区的空间进行较大的空间调整,比如不会从所述内存区中划分出2G分配给所述回写数据存储区,进而确保重新分配的内存模块210中的空间划分的内存区不会少于3G的空间。
在某些实施例中,所述无盘服务端11可以管理配置于网络***中多个无盘客户端21,用于监控所述的多个无盘客户端21中内存空间的情况,并可统一对该些无盘客户端21的内存进行统一配置,所述的配置是指批量操作的方式将所述多个无盘客户端21中各自的内存空间配置为内存区及回写数据存储区。
在某些实施例中,所述无盘服务端11可以管理配置于网络***中多个无盘客户端21,用于监控所述的多个无盘客户端21中内存空间的情况,并可针对性地对其中有一个无盘客户端21的内存进行配置,所述的配置是指将所述一个无盘客户端21中内存空间配置为内存区及回写数据存储区。
由于本申请的无盘服务端11在监管至少一个无盘客户端21的运行的过程中,从实所述的至少一个无盘客户端21内存空间的空间中分配的回写数据存储区一定程度上充当了所述无盘客户端21的例如为硬盘的存储设备,如此以来,使得无需将回写数据通过网络写入所述无盘服务器的存储设备中,进而一定程度上减轻了网络和无盘服务器的压力;另外,由于基于用户对无盘客户端21进行写操作写入的数据是存储在所述回写数据存储区中的,这就使得写入至所述回写数据存储区的这部分数据被所述无盘客户端21再次执行读操作而读取时可以直接访问内存空间的回写数据存储区对该些数据进行读操作而无需再通过网络访问无盘服务端11的存储设备,这也一定程度上避免了因网络带宽限制带来读取或者写入速度慢等问题。
在本申请某些实施方式中,所述分配模块112还用于监测到所述至少一个无盘客户端21的内存空间中回写数据存储区剩余空间小于一定阈值时将已存入的回写数据通过网络存储至所述存储模块111以释放所述回写数据存储区的占用空间。例如当所述无盘客户端21的内存空间的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,所述预设的阈值例如为1024M或者512M,当所述分配模块112还监测到所述回写数据存储区的剩余空间不足1024M或者512M时,为确保后续写入的数据能够有足够的空间被写入该回写数据存储区,则需要将已经写入到该回写数据存储区的数据通过网络转存至无盘服务器中,进而释放所述回写数据存储区的占用空间,使其重新为4G,进而满足了后续写入数据对存储空间的需求。这一实现方式不必要重新分配内存空间,即在回写数据存储区的剩余空间不足时并不需要抢占内存区的空间资源,只是对回写数据存储区按照预设的规则进行数据转存并清空所述回写数据存储区。
在本申请某些实施方式中,所述分配模块112可以动态地调整内存模块中的存储空间,即所述分配模块112用于实时监测所述内存区或者所述回写数据存储区被实际占用的空间以动态分配所述内存空间中的内存区及回写数据存储区的空间。
在本申请某些实施方式中,所述分配模块112还用于监测到所述至少一个无盘客户端21的内存空间中回写数据存储区剩余空间小于一定阈值时重新分配所述回写数据存储区在在所述内存空间中的占用空间。例如当所述无盘客户端21的内存空间的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,发现其回写数据存储区中剩余空间小于了一定阈值,比如所述预设的阈值例如为1024M或者512M,当所述分配模块112还监测到所述回写数据存储区的剩余空间不足1024M或者512M时,基于对正在运行的所述无盘客户端21的监测,发现其整个内存区中运行的程序只占用了1.5G的空间,且预估其在一定时间段内运行的程序不会有太大的变化,则可以对所述回写数据存储区的空间进行空间调整,比如再从所述内存区中配置出1G分配给所述回写数据存储区,即重新分配的内存空间中的空间配置为3G的内存区和5G的回写数据存储区。
在本申请某些实施方式中,所述分配模块112还用于监测所述至少一无盘客户端21的回写请求频率以重新分配其内存空间中的回写数据存储区的占用空间。例如当所述无盘客户端21的内存空间的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,监测到所述无盘客户端21频繁地向所述回写数据存储区写入数据,所述频繁是指比如一分钟或者半分钟内回写数据的频次多于3次或2次,则***认为由于频繁的写操作可能会导致所述内存空间中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存空间中的占用空间,比如再从所述内存区中配置出1G分配给所述回写数据存储区,即重新分配的内存空间中的空间配置为3G的内存区和5G的回写数据存储区。针对写操作频次的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置频次的阈值,在此不予赘述。
在本申请某些实施方式中,所述分配模块112还用于监测所述至少一无盘客户端21的当前回写数据量以重新分配其内存空间中的回写数据存储区的占用空间。
所述当前回写数据量比如为当前时刻单次回写数据量,例如单次写入的数据量为256M时,则***认为由于单次写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存模块210中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块210中的占用空间。
所述当前回写数据量比如为当前时刻内的回写数量或者近期的回写数据量,即当前一个时间段内的回写数据量,例如为当前的一分钟内回写数据量为256M时,则***认为由于持续写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存模块210中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块210中的占用空间。
所述当前回写数据量比如为连续几次的回写数据量,例如为连续两次的回写数据量为256M时,则***认为由于连续写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存模块210中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块210中的占用空间。
例如当所述无盘客户端21的内存空间的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,监测到所述无盘客户端21的当前回写数据量大于某一阈值时,这一阈值例如为256M,则***认为由于写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存空间中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存空间中的占用空间,比如再从所述内存区中配置出1G分配给所述回写数据存储区,即重新分配的内存空间中的空间配置为3G的内存区和5G的回写数据存储区。针对写操作写入的数据量大小的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置写入量的阈值,比如128M、64M等,在此不予赘述。
在本申请某些实施方式中,所述分配模块112还用于监测到所述至少一无盘客户端21的内存空间中内存区剩余空间小于一定阈值时重新分配所述内存区在所述内存空间中的占用空间。例如当所述无盘客户端21的内存空间的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,监测到所述内存空间中内存区剩余空间不足1G时,为保障后续可能运行的程序对内存空间的进一步需求,需要扩展所述内存区的空间,则需要重新分配所述回写数据存储区在所述内存空间中的占用空间,比如再从所述回写数据存储区中配置出2G分配给所述内存区,即重新分配的内存空间中的空间配置为6G的内存区和2G的回写数据存储区。针对内存区剩余空间不足情况的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置剩余空间的阈值,在此不予赘述。
在本申请某些实施方式中,所述分配模块112还用于监测到到所述至少一无盘客户端21的内存空间中内存区剩余空间小于一定阈值时将已存入的回写数据通过网络存储至所述存储模块111,并重新分配所述内存区在所述内存空间中的占用空间。例如当所述无盘客户端21的内存空间的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,监测到所述内存空间中内存区剩余空间不足1G时,为保障后续可能运行的程序对内存空间的进一步需求,需要扩展所述内存区的空间,则需要重新分配所述回写数据存储区在所述内存空间中的占用空间,若此时所述回写数据存储区中因写入数据导致其没有冗余的空间可以分配给所述内存区,则需要将所述回写数据存储区中存储的数据通过网络存储至所述无盘服务端11,换言之,对回写数据存储区中的数据进行转存并清空所述回写数据存储区,以便可以为其从新分配空间,比如再从所述回写数据存储区中配置出2G分配给所述内存区,即重新分配的内存空间中的空间配置为6G的内存区和2G的回写数据存储区。针对内存区剩余空间不足情况的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置剩余空间的阈值,在此不予赘述。
本申请的无盘服务端11可以动态地调整内存模块中内存区和回写数据存储区的空间,使得无盘客户端21在运行中依据内存的实际占用情况,实时地动态调整回写数据存储区的空间,进而确保无盘客户端21不会因其内存模块被回写数据占用而带来内存不足,同时也满足了在无盘客户端21本地存储和读取回写数据的需求,当然,也使得无需将回写数据通过网络写入所述无盘服务器的存储设备中,一定程度上减轻了网络和无盘服务器的压力。
本申请还提供一种内存管理***,应用于藉由至少一无盘客户端及至少一无盘服务端组成网络***中,其中,所述至少一无盘客户端配置有内存模块,所述至少一无盘服务端配置有存储模块。所述网络***的通信网络可以是因特网、一个或多个内部网、局域网(LAN)、广域网(WLAN)、存储局域网(SAN)等,或其适当组合。复请参阅图1,显示为包含有无盘服务端11管理及无盘客户端21的网络***架构示意图,如图所示的一个无盘服务端11藉由上述的通信网络同时管理多个无盘客户端21,所述的无盘客户端21也被称之为无盘工作站,所述无盘客户端21通过网络与无盘服务端11相连,无盘客户端21从无盘服务端11下载引导程序、配置文件、内核及镜像文件等,以实现无盘客户端21的启动操作***。比如所述操作***为Linux操作***时,其中,所述引导程序为Linux操作***中的boot loader,所述内核为Linux操作***中的kernel,所述镜像文件为Linux操作***中包含init文件的initrd压缩文件,所述配置文件包括kernel的名称,kernel的具***置,镜像文件的名称,镜像文件的具***置,以及启动kernel的参数(例如,IP设置参数、启动模式参数、热插拔设备参数)。
所述无盘客户端21为无盘(即不包括硬盘)个人计算机、笔记本电脑以及其它任意能够实现无盘启动的设备或***。所述无盘服务端11可以是个人计算机、网络服务器(包括存储服务器和应用服务器等),还可以是任意其它适用的计算机。于实际的实施方式中,所述内存模块为所述无盘客户端21的内存(Memory),也被称为内存储器,用于暂时存放中央处理器(Central Processing Unit,简称CPU)中的运算数据,以及来自所述无盘服务器例如为硬盘的存储设备等外部存储器交换的数据,比如从无盘服务端11下载引导程序、配置文件、内核及镜像文件等以实现无盘客户端21的启动操作***的数据等。
所述无盘服务端11可以为动态主机分配协议(Dynamic Host ConfigurationProtocol,简称DHCP)服务器,无盘服务端11在预启动执行环境(Preboot ExecutionEnvironment,简称PXE)下与无盘客户端21进行通信连接。于实际的实施方式中,所述存储模块存储有用于被所述至少一无盘客户端21读取的执行程序及所述至少一无盘客户端21通过网络传输写入的回写数据;例如所述存储模块存储有用于被所述至少一无盘客户端21读取的执行程序包括引导程序、配置文件、内核及镜像文件等以实现无盘客户端21的启动操作***的程序和文件,也包括例如用户在无盘客户端21运行某些软件所需的相应程序和文件。所述存储模块例如为高速随机存取存储器,并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储器还可以包括远离一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络访问的网络附加存储器。
请参阅图4,显示为本申请内存管理***的架构示意图,如图所示,所述内存管理***3包括监测模块30、分配模块31,为便于说明,所绘制的图示中还包括配置于无盘客户端的内存模块32和配置于无盘服务端的存储模块33。
所述监测模块30用于监测所述至少一无盘客户端21的内存模块32中配置的内存区及回写数据存储区的空间信息;在某些实施例中,所述监测模块30例如为例如为无盘服务端11的中央处理器或者藉由所述中央处理器所执行的一个或多个程序或者硬件与软件的结合等。
所述内存模块32的内存空间被配置为内存区及回写数据存储区;所述内存区用于存储从无盘服务端11下载操作***的引导程序、内核、镜像文件及配置文件等,也用于存储在无盘客户端21运行某些软件所需的相应程序和文件等。所述回写数据存储区用于存储基于用户对无盘客户端21进行写操作写入的数据,换言之,在无盘客户端21运行的过程中,所述回写数据存储区一定程度上充当了所述无盘客户端21的例如为硬盘的存储设备。
例如,所述内存模块32的内存空间为8G,基于某些配置策略,所述为8G的内存空间被配置为例如为4G的内存区和4G的回写数据存储区。当然,在不同的情况下,所述内存模块32的内存空间可依据实际的情况灵活地配置,比如所述为8G的内存空间被配置为例如为2G的内存区和6G的回写数据存储区;或者所述为8G的内存空间被配置为例如为6G的内存区和2G的回写数据存储区等等,诸如此例在此不予穷举。
需要特别说明的是,基于无盘客户端21的硬件配置不同,其内存模块32的内存空间可能为2G、4G、16G或32G乃至更多,在以下的描述中,为了简明扼要地阐述本申请的思想及原理,暂以无盘客户端21的内存模块32的内存空间为8G为例进行说明。另外,下文中所述的数据或者空间的大小和容量通常用1G或者2G等方式描述,本领域技术人员可以知晓的,所述的1G是指1024M,所述的2G是指2048M,诸如此类不予赘述。
所述空间信息包括回写数据存储区空间信息,内存区空间信息,回写数据存储区剩余空间信息,内存区剩余空间信息,回写请求频率,或者当前回写数据量。于实施例中,所述的回写数据存储区空间信息和内存区空间信息例如为8G的内存空间被配置为例如为4G的内存区和4G的回写数据存储区。所述写数据存储区或内存区的剩余空间信息例如为剩余空间不足1024M或者512M等信息;所述回写请求频率例如为一分钟或者半分钟内回写数据的频次多于3次或2次,比如当前写入的数据量为256M时。但针对描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置空间、频次、数据量的阈值,在此不予赘述。
所述分配模块31依据所述监测模块30监测的空间信息分配所述至少一无盘客户端21的内存模块32中内存区及回写数据存储区的占用空间。于实际的实施方式中,所述分配模块31例如为无盘服务端11的中央处理器或者藉由所述中央处理器所执行的一个或多个程序或者硬件与软件的结合等。
所述分配模块31分配所述内存模块32中内存区及回写数据存储区的空间包括两种情况,一种是首次对内存模块32中的空间进行分配,另一种是,基于已经分配的内存模块32中的内存区及回写数据存储区的空间进行再分配,即重新分配。
在第一种情况下的一个实施例中,所述分配模块31用于依据所述内存区被占用的空间以分配所述内存模块32中内存区及回写数据存储区的空间。例如当所述无盘客户端21的内存模块32的内存空间为8G,其中,基于对正在运行的所述无盘客户端21的监测,其内存区运行的程序已经占用了2.5G的空间,为保障可能增加运行的内存程序,则在为所述内存区分配空间时则需要考虑内存区足够的空间,比如分配5G的空间给所述内存区,其余3G的空间作为回写数据存储区。
在第二种情况下的一实施方式中,所述分配模块31基于已经分配的内存模块32中的内存区及回写数据存储区的空间进行空间调整,即重新分配。例如当所述无盘客户端21的内存模块32的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,发现写其整个内存区中运行的程序只占用了1.5G的空间,且预估其在一定时间段内运行的程序不会有太大的变化,则可以对所述回写数据存储区的空间进行空间调整,比如再从所述内存区中划分出1G分配给所述回写数据存储区,即重新分配的内存模块32中的空间划分为3G的内存区和5G的回写数据存储区。
在上述两种情况的实施过程中,可以基于对回写数据存储区空间信息和内存区空间信息的阈值设置来实现动态和非动态的分配,比如,例如当所述无盘客户端21的内存模块32的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,当将内存的总空间的分配设置为不得少于3G时,即便基于对正在运行的所述无盘客户端21的监测发现写其整个内存区中运行的程序只占用了1.5G的空间,且预估其在一定时间段内运行的程序不会有太大的变化,但也不会对所述回写数据存储区的空间进行较大的空间调整,比如不会从所述内存区中划分出2G分配给所述回写数据存储区,进而确保重新分配的内存模块32中的空间划分的内存区不会少于3G的空间。
由于本申请的无盘客户端21在运行的过程中,从内存模块32的空间中分配的回写数据存储区一定程度上充当了所述无盘客户端21的例如为硬盘的存储设备,如此以来,使得无需将回写数据通过网络写入所述无盘服务器的存储设备中,进而一定程度上减轻了网络和无盘服务器的压力;另外,由于基于用户对无盘客户端21进行写操作写入的数据是存储在所述回写数据存储区中的,这就使得写入至所述回写数据存储区的这部分数据被所述无盘客户端21再次执行读操作而读取时可以直接访问内存模块32的回写数据存储区对该些数据进行读操作而无需再通过网络访问无盘服务端11的存储设备,这也一定程度上避免了因网络带宽限制带来读取或者写入速度慢等问题。
在本申请某些实施方式中,所述分配模块31还用当所述监测模块30监测到所述至少一的内存模块32中回写数据存储区剩余空间小于一定阈值时,将已存入的回写数据通过网络存储至所述至少一无盘服务端11的存储模块33以释放所述回写数据存储区的占用空间。例如当所述无盘客户端21的内存模块32的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,所述预设的阈值例如为1024M或者512M,当所述分配模块31还监测到所述回写数据存储区的剩余空间不足1024M或者512M时,为确保后续写入的数据能够有足够的空间被写入该回写数据存储区,则需要将已经写入到该回写数据存储区的数据通过网络转存至无盘服务器中,进而释放所述回写数据存储区的占用空间,使其重新为4G,进而满足了后续写入数据对存储空间的需求。这一实现方式不必要重新分配内存空间,即在回写数据存储区的剩余空间不足时并不需要抢占内存区的空间资源,只是对回写数据存储区按照预设的规则进行数据转存并清空所述回写数据存储区。
在本申请某些实施方式中,所述分配模块31可以动态地调整内存模块32中的存储空间,即所述分配模块31用于依据所述监测模块30实时监测所述至少一无盘客户端21的内存模块32中内存区或者所述回写数据存储区被实际占用的空间以动态分配所述内存模块32中的内存区及回写数据存储区的空间。
在本申请某些实施方式中,所述分配模块31还用于当所述监测模块30监测到所述至少一无盘客户端21的内存模块32中回写数据存储区剩余空间小于一定阈值时重新分配所述回写数据存储区在在所述内存模块32中的占用空间。例如当所述无盘客户端21的内存模块32的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,发现其回写数据存储区中剩余空间小于了一定阈值,比如所述预设的阈值例如为1024M或者512M,当所述分配模块31还监测到所述回写数据存储区的剩余空间不足1024M或者512M时,基于对正在运行的所述无盘客户端21的监测,发现其整个内存区中运行的程序只占用了1.5G的空间,且预估其在一定时间段内运行的程序不会有太大的变化,则可以对所述回写数据存储区的空间进行空间调整,比如再从所述内存区中划分出1G分配给所述回写数据存储区,即重新分配的内存模块32中的空间划分为3G的内存区和5G的回写数据存储区。
在本申请某些实施方式中,所述分配模块31还用于当所述监测模块30监测所述至少一无盘客户端21的回写请求频率以重新分配其内存模块32中的回写数据存储区的占用空间。例如当所述无盘客户端21的内存模块32的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,监测到所述无盘客户端21频繁地向所述回写数据存储区写入数据,所述频繁是指比如一分钟或者半分钟内回写数据的频次多于3次或2次,则***认为由于频繁的写操作可能会导致所述内存模块32中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块32中的占用空间,比如再从所述内存区中划分出1G分配给所述回写数据存储区,即重新分配的内存模块32中的空间划分为3G的内存区和5G的回写数据存储区。针对写操作频次的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置频次的阈值,在此不予赘述。
在本申请某些实施方式中,所述分配模块31还用于当所述监测模块30监测所述至少一无盘客户端21的当前回写数据量以重新分配其内存模块32中的回写数据存储区的占用空间。
所述当前回写数据量比如为当前时刻单次回写数据量,例如单次写入的数据量为256M时,则***认为由于单次写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存模块32中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块32中的占用空间。
所述当前回写数据量比如为当前时刻内的回写数量或者近期的回写数据量,即当前一个时间段内的回写数据量,例如为当前的一分钟内回写数据量为256M时,则***认为由于持续写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存模块32中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块32中的占用空间。
所述当前回写数据量比如为连续几次的回写数据量,例如为连续两次的回写数据量为256M时,则***认为由于连续写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存模块32中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块32中的占用空间。
例如当所述无盘客户端21的内存模块32的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,监测到所述无盘客户端21的当前回写数据量大于某一阈值时,这一阈值例如为256M,则***认为由于写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存模块32中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块32中的占用空间,比如再从所述内存区中划分出1G分配给所述回写数据存储区,即重新分配的内存模块32中的空间划分为3G的内存区和5G的回写数据存储区。针对写操作写入的数据量大小的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置写入量的阈值,比如128M、64M等,在此不予赘述。
在本申请某些实施方式中,所述分配模块31还用于当所述监测模块30监测到所述至少一无盘客户端21的内存模块32中内存区剩余空间小于一定阈值时重新分配所述内存区在所述内存模块32中的占用空间。例如当所述无盘客户端21的内存模块32的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,监测到所述内存模块32中内存区剩余空间不足1G时,为保障后续可能运行的程序对内存空间的进一步需求,需要扩展所述内存区的空间,则需要重新分配所述回写数据存储区在所述内存模块32中的占用空间,比如再从所述回写数据存储区中划分出2G分配给所述内存区,即重新分配的内存模块32中的空间划分为6G的内存区和2G的回写数据存储区。针对内存区剩余空间不足情况的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置剩余空间的阈值,在此不予赘述。
在本申请某些实施方式中,所述分配模块31还用于当所述监测模块30监测到到所述至少一无盘客户端21的内存模块32中内存区剩余空间小于一定阈值时将已存入的回写数据通过网络存储至所述至少一无盘服务端11的存储模块33中,并重新分配所述内存区在所述内存模块32中的占用空间。例如当所述无盘客户端21的内存模块32的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端21的监测,监测到所述内存模块32中内存区剩余空间不足1G时,为保障后续可能运行的程序对内存空间的进一步需求,需要扩展所述内存区的空间,则需要重新分配所述回写数据存储区在所述内存模块32中的占用空间,若此时所述回写数据存储区中因写入数据导致其没有冗余的空间可以分配给所述内存区,则需要将所述回写数据存储区中存储的数据通过网络存储至所述无盘服务端11,换言之,对回写数据存储区中的数据进行转存并清空所述回写数据存储区,以便可以为其从新分配空间,比如再从所述回写数据存储区中划分出2G分配给所述内存区,即重新分配的内存模块32中的空间划分为6G的内存区和2G的回写数据存储区。针对内存区剩余空间不足情况的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置剩余空间的阈值,在此不予赘述。
本申请的内存管理***可以动态地调整内存模块32中内存区和回写数据存储区的空间,使得无盘客户端21在运行中依据内存的实际占用情况,实时地动态调整回写数据存储区的空间,进而确保无盘客户端21不会因其内存模块32被回写数据占用而带来内存不足,同时也满足了在无盘客户端21本地存储和读取回写数据的需求,当然,也使得无需将回写数据通过网络写入所述无盘服务器的存储设备中,一定程度上减轻了网络和无盘服务器的压力。
本申请还提供一种内存管理方法,应用于藉由至少一无盘客户端及至少一无盘服务端组成网络***中,其中,所述至少一无盘客户端配置有内存模块,所述至少一无盘服务端配置有存储模块。所述网络***的通信网络可以是因特网、一个或多个内部网、局域网(LAN)、广域网(WLAN)、存储局域网(SAN)等,或其适当组合。复请参阅图1,显示为包含有无盘服务端11管理及无盘客户端21的网络***架构示意图,如图所示的一个无盘服务端11藉由上述的通信网络同时管理多个无盘客户端21,所述的无盘客户端21也被称之为无盘工作站,所述无盘客户端21通过网络与无盘服务端11相连,无盘客户端21从无盘服务端11下载引导程序、配置文件、内核及镜像文件等,以实现无盘客户端21的启动操作***。比如所述操作***为Linux操作***时,其中,所述引导程序为Linux操作***中的boot loader,所述内核为Linux操作***中的kernel,所述镜像文件为Linux操作***中包含init文件的initrd压缩文件,所述配置文件包括kernel的名称,kernel的具***置,镜像文件的名称,镜像文件的具***置,以及启动kernel的参数(例如,IP设置参数、启动模式参数、热插拔设备参数)。
所述无盘客户端21为无盘(即不包括硬盘)个人计算机、笔记本电脑以及其它任意能够实现无盘启动的设备或***。所述无盘服务端11可以是个人计算机、网络服务器(包括存储服务器和应用服务器等),还可以是任意其它适用的计算机。于实际的实施方式中,所述内存模块为所述无盘客户端21的内存(Memory),也被称为内存储器,用于暂时存放中央处理器(Central Processing Unit,简称CPU)中的运算数据,以及来自所述无盘服务器例如为硬盘的存储设备等外部存储器交换的数据,比如从无盘服务端11下载引导程序、配置文件、内核及镜像文件等以实现无盘客户端21的启动操作***的数据等。
所述无盘服务端11可以为动态主机分配协议(Dynamic Host ConfigurationProtocol,简称DHCP)服务器,无盘服务端11在预启动执行环境(Preboot ExecutionEnvironment,简称PXE)下与无盘客户端21进行通信连接。于实际的实施方式中,所述存储模块存储有用于被所述至少一无盘客户端21读取的执行程序及所述至少一无盘客户端21通过网络传输写入的回写数据;例如所述存储模块存储有用于被所述至少一无盘客户端21读取的执行程序包括引导程序、配置文件、内核及镜像文件等以实现无盘客户端21的启动操作***的程序和文件,也包括例如用户在无盘客户端21运行某些软件所需的相应程序和文件。所述存储模块例如为高速随机存取存储器,并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储器还可以包括远离一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络访问的网络附加存储器。
请参阅图5,图5显示为本申请的内存管理方法在一实施例中的流程示意,如图所示,所述内存管理方法包括以下步骤:
在步骤S100中,监测所述至少一无盘客户端的内存模块中配置的内存区及回写数据存储区的空间信息;于实施例中,所述内存模块的内存空间被配置为内存区及回写数据存储区;所述内存区用于存储从无盘服务端下载操作***的引导程序、内核、镜像文件及配置文件等,也用于存储在无盘客户端运行某些软件所需的相应程序和文件等。所述回写数据存储区用于存储基于用户对无盘客户端进行写操作写入的数据,换言之,在无盘客户端运行的过程中,所述回写数据存储区一定程度上充当了所述无盘客户端的例如为硬盘的存储设备。
例如,所述内存模块的内存空间为8G,基于某些配置策略,所述为8G的内存空间被配置为例如为4G的内存区和4G的回写数据存储区。当然,在不同的情况下,所述内存模块的内存空间可依据实际的情况灵活地配置,比如所述为8G的内存空间被配置为例如为2G的内存区和6G的回写数据存储区;或者所述为8G的内存空间被配置为例如为6G的内存区和2G的回写数据存储区等等,诸如此例在此不予穷举。需要特别说明的是,基于无盘客户端的硬件配置不同,其内存模块的内存空间可能为2G、4G、16G或32G乃至更多,在以下的描述中,为了简明扼要地阐述本申请的思想及原理,暂以无盘客户端的内存模块的内存空间为8G为例进行说明。另外,下文中所述的数据或者空间的大小和容量通常用1G或者2G等方式描述,本领域技术人员可以知晓的,所述的1G是指1024M,所述的2G是指2048M,诸如此类不予赘述。
在某些实施例中,所述空间信息包括回写数据存储区空间信息,内存区空间信息,回写数据存储区剩余空间信息,内存区剩余空间信息,回写请求频率,或者当前回写数据量。于实施例中,所述的回写数据存储区空间信息和内存区空间信息例如为8G的内存空间被配置为例如为4G的内存区和4G的回写数据存储区。于实施例中,所述写数据存储区或内存区的剩余空间信息例如为剩余空间不足1024M或者512M等信息;所述回写请求频率例如为一分钟或者半分钟内回写数据的频次多于3次或2次,比如当前写入的数据量为256M时。但针对描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置空间、频次、数据量的阈值,在此不予赘述。
在步骤S101中,依据所述空间信息分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间。
在一些不同的实施方式中,分配所述内存模块中内存区及回写数据存储区的空间包括两种情况,一种是首次对内存模块中的空间进行分配,另一种是,基于已经分配的内存模块中的内存区及回写数据存储区的空间进行再分配,即重新分配。
在第一种情况下的一个实施例中,依据所述内存区被占用的空间以分配所述内存模块中内存区及回写数据存储区的空间。例如当所述无盘客户端的内存模块的内存空间为8G,其中,基于对正在运行的所述无盘客户端的监测,其内存区运行的程序已经占用了2.5G的空间,为保障可能增加运行的内存程序,则在为所述内存区分配空间时则需要考虑内存区足够的空间,比如分配5G的空间给所述内存区,其余3G的空间作为回写数据存储区。
在第二种情况下的一实施方式中,基于已经分配的内存模块中的内存区及回写数据存储区的空间进行空间调整,即重新分配。例如当所述无盘客户端的内存模块的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端的监测,发现写其整个内存区中运行的程序只占用了1.5G的空间,且预估其在一定时间段内运行的程序不会有太大的变化,则可以对所述回写数据存储区的空间进行空间调整,比如再从所述内存区中划分出1G分配给所述回写数据存储区,即重新分配的内存模块中的空间划分为3G的内存区和5G的回写数据存储区。
在上述两种情况的实施过程中,可以基于对回写数据存储区空间信息和内存区空间信息的阈值设置来实现动态和非动态的分配,比如,例如当所述无盘客户端的内存模块的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,当将内存的总空间的分配设置为不得少于3G时,即便基于对正在运行的所述无盘客户端21的监测发现写其整个内存区中运行的程序只占用了1.5G的空间,且预估其在一定时间段内运行的程序不会有太大的变化,但也不会对所述回写数据存储区的空间进行较大的空间调整,比如不会从所述内存区中划分出2G分配给所述回写数据存储区,进而确保重新分配的内存模块中的空间划分的内存区不会少于3G的空间。
由于本申请的无盘客户端在运行的过程中,从内存模块的空间中分配的回写数据存储区一定程度上充当了所述无盘客户端的例如为硬盘的存储设备,如此以来,使得无需将回写数据通过网络写入所述无盘服务器的存储设备中,进而一定程度上减轻了网络和无盘服务器的压力;另外,由于基于用户对无盘客户端进行写操作写入的数据是存储在所述回写数据存储区中的,这就使得写入至所述回写数据存储区的这部分数据被所述无盘客户端再次执行读操作而读取时可以直接访问内存模块的回写数据存储区对该些数据进行读操作而无需再通过网络访问无盘服务端的存储设备,这也一定程度上避免了因网络带宽限制带来读取或者写入速度慢等问题。
在某些实施例中,当监测到所述至少一无盘客户端的内存模块中回写数据存储区剩余空间小于一定阈值时,将已存入的回写数据通过网络存储至所述至少一无盘服务端的存储模块以释放所述回写数据存储区的占用空间。例如当所述无盘客户端的内存模块的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,所述预设的阈值例如为1024M或者512M,当监测到所述回写数据存储区的剩余空间不足1024M或者512M时,为确保后续写入的数据能够有足够的空间被写入该回写数据存储区,则需要将已经写入到该回写数据存储区的数据通过网络转存至无盘服务器中,进而释放所述回写数据存储区的占用空间,使其重新为4G,进而满足了后续写入数据对存储空间的需求。这一实现方式不必要重新分配内存空间,即在回写数据存储区的剩余空间不足时并不需要抢占内存区的空间资源,只是对回写数据存储区按照预设的规则进行数据转存并清空所述回写数据存储区。
在本申请某些实施方式中,本申请的方法还可以动态地调整内存模块中的存储空间,即依据实时监测所述至少一无盘客户端的内存模块中内存区或者所述回写数据存储区被实际占用的空间以动态分配所述内存模块中的内存区及回写数据存储区的空间。请参阅图6,显示为本申请的内存管理方法在另一实施例中的流程示意图,如图所示,所述内存管理方法包括以下步骤:
在步骤S300中,实时监测所述至少一无盘客户端的内存模块中内存区或者所述回写数据存储区被实际占用的空间。于一实施例中,可藉由无盘客户端内部配置的分配模块实时监测其内存模块中内存区或者所述回写数据存储区被实际占用的空间;于另一实施例中,可藉由无盘服务端通过其配置的监测模块实时监测一个无盘客户端的内存模块中内存区或者所述回写数据存储区被实际占用的空间,或者同时监测多个无盘客户端各自内存模块中内存区或者所述回写数据存储区被实际占用的空间。
在步骤S301中,依据实时监测的所述空间信息动态分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间。于一实施例中,可藉由无盘客户端内部配置的分配模块依据实时监测的所述空间信息动态分配其内存模块中内存区及回写数据存储区的占用空间;于另一实施例中,可藉由无盘服务端通过其配置的分配模块依据实时监测的所述空间信息动态分配一个无盘客户端的内存模块中内存区及回写数据存储区的占用空间,或者同时对多个无盘客户端各自的内存模块中内存区及回写数据存储区的空间进行动态分配。
在本申请某些实施方式中,所述依据实时监测的所述空间信息动态分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间的步骤为:监测到所述至少一无盘客户端的内存模块中回写数据存储区剩余空间小于一定阈值时重新分配所述回写数据存储区在在所述内存模块中的占用空间。例如当所述无盘客户端的内存空间的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端的监测,发现其回写数据存储区中剩余空间小于了一定阈值,比如所述预设的阈值例如为1024M或者512M,当所述分配模块还监测到所述回写数据存储区的剩余空间不足1024M或者512M时,基于对正在运行的所述无盘客户端的监测,发现其整个内存区中运行的程序只占用了1.5G的空间,且预估其在一定时间段内运行的程序不会有太大的变化,则可以对所述回写数据存储区的空间进行空间调整,比如再从所述内存区中配置出1G分配给所述回写数据存储区,即重新分配的内存空间中的空间配置为3G的内存区和5G的回写数据存储区。
所述依据实时监测的所述空间信息动态分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间的步骤为:监测所述至少一无盘客户端的回写请求频率以重新分配其内存模块中的回写数据存储区的占用空间。例如当所述无盘客户端的内存空间的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端的监测,监测到所述无盘客户端频繁地向所述回写数据存储区写入数据,所述频繁是指比如一分钟或者半分钟内回写数据的频次多于3次或2次,则***认为由于频繁的写操作可能会导致所述内存空间中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存空间中的占用空间,比如再从所述内存区中配置出1G分配给所述回写数据存储区,即重新分配的内存空间中的空间配置为3G的内存区和5G的回写数据存储区。针对写操作频次的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置频次的阈值,在此不予赘述。
在本申请某些实施方式中,所述依据实时监测的所述空间信息动态分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间的步骤为:监测所述至少一无盘客户端的当前回写数据量以重新分配其内存模块中的回写数据存储区的占用空间。
所述当前回写数据量比如为当前时刻单次回写数据量,例如单次写入的数据量为256M时,则***认为由于单次写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存模块中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块中的占用空间。
所述当前回写数据量比如为当前时刻内的回写数量或者近期的回写数据量,即当前一个时间段内的回写数据量,例如为当前的一分钟内回写数据量为256M时,则***认为由于持续写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存模块中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块中的占用空间。
所述当前回写数据量比如为连续几次的回写数据量,例如为连续两次的回写数据量为256M时,则***认为由于连续写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存模块中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存模块中的占用空间。例如当所述无盘客户端的内存空间的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端的监测,监测到所述无盘客户端的当前回写数据量大于某一阈值时,这一阈值例如为256M,则***认为由于写入数据量较大,可能后续仍然会有较大的数据量被写入进而会导致所述内存空间中回写数据存储区的空间容量不足,进而需要重新分配所述回写数据存储区在所述内存空间中的占用空间,比如再从所述内存区中配置出1G分配给所述回写数据存储区,即重新分配的内存空间中的空间配置为3G的内存区和5G的回写数据存储区。针对写操作写入的数据量大小的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置写入量的阈值,比如128M、64M等,在此不予赘述。
在本申请某些实施方式中,所述依据实时监测的所述空间信息动态分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间的步骤为监测到所述至少一无盘客户端的内存模块中内存区剩余空间小于一定阈值时重新分配所述内存区在所述内存模块中的占用空间。例如当所述无盘客户端的内存空间的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端的监测,监测到所述内存空间中内存区剩余空间不足1G时,为保障后续可能运行的程序对内存空间的进一步需求,需要扩展所述内存区的空间,则需要重新分配所述回写数据存储区在所述内存空间中的占用空间,比如再从所述回写数据存储区中配置出2G分配给所述内存区,即重新分配的内存空间中的空间配置为6G的内存区和2G的回写数据存储区。针对内存区剩余空间不足情况的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置剩余空间的阈值,在此不予赘述。
在本申请某些实施方式中,所述依据实时监测的所述空间信息动态分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间的步骤为监测到到所述至少一无盘客户端的内存模块中内存区剩余空间小于一定阈值时将已存入的回写数据通过网络存储至所述至少一无盘服务端的存储模块中,并重新分配所述内存区在所述内存模块中的占用空间。例如当所述无盘客户端的内存空间的内存空间为8G,其为8G的内存空间分配了4G空间作为内存区,另外的4G空间作为回写数据存储区,基于对正在运行的所述无盘客户端的监测,监测到所述内存空间中内存区剩余空间不足1G时,为保障后续可能运行的程序对内存空间的进一步需求,需要扩展所述内存区的空间,则需要重新分配所述回写数据存储区在所述内存空间中的占用空间,若此时所述回写数据存储区中因写入数据导致其没有冗余的空间可以分配给所述内存区,则需要将所述回写数据存储区中存储的数据通过网络存储至所述无盘服务端,换言之,对回写数据存储区中的数据进行转存并清空所述回写数据存储区,以便可以为其从新分配空间,比如再从所述回写数据存储区中配置出2G分配给所述内存区,即重新分配的内存空间中的空间配置为6G的内存区和2G的回写数据存储区。针对内存区剩余空间不足情况的描述并不局限于此,在不同的应用场景和实例中可以依据实际的情况设置剩余空间的阈值,在此不予赘述。
本申请的内存管理方法可以动态地调整内存模块中内存区和回写数据存储区的空间,使得无盘客户端在运行中依据内存的实际占用情况,实时地动态调整回写数据存储区的空间,进而确保无盘客户端不会因其内存模块被回写数据占用而带来内存不足,同时也满足了在无盘客户端本地存储和读取回写数据的需求,当然,也使得无需将回写数据通过网络写入所述无盘服务器的存储设备中,一定程度上减轻了网络和无盘服务器的压力。
本申请还提供一种计算机可读存储介质,其上存储有内存管理计算机程序,所述内存管理计算机程序被处理器执行时上述内存管理方法的步骤。
于本申请提供的实施例中,所述计算机可读写存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。另外,任何连接都可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无线技术,从网站、服务器或其它远程源发送的,则所述同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线电和微波之类的无线技术包括在所述介质的定义中。然而,应当理解的是,计算机可读写存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性介质,而是旨在针对于非暂时性、有形的存储介质。如申请中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。
在一个或多个示例性方面,本申请所述内存管理计算机程序所描述的功能可以用硬件、软件、固件或者其任意组合的方式来实现。当用软件实现时,可以将这些功能作为一个或多个指令或代码存储或传送到计算机可读介质上。本申请所公开的方法或算法的步骤可以用处理器可执行软件模块来体现,其中处理器可执行软件模块可以位于有形、非临时性计算机可读写存储介质上。有形、非临时性计算机可读写存储介质可以是计算机能够存取的任何可用介质。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
综上所述,由于本申请提供实施方案在无盘客户端在运行的过程中,从内存模块的空间中分配的回写数据存储区一定程度上充当了所述无盘客户端的例如为硬盘的存储设备,如此以来,使得无需将回写数据通过网络写入所述无盘服务器的存储设备中,进而一定程度上减轻了网络和无盘服务器的压力;另外,由于基于用户对无盘客户端进行写操作写入的数据是存储在所述回写数据存储区中的,这就使得写入至所述回写数据存储区的这部分数据被所述无盘客户端再次执行读操作而读取时可以直接访问内存模块的回写数据存储区对该些数据进行读操作而无需再通过网络访问无盘服务端的存储设备,这也一定程度上避免了因网络带宽限制带来读取或者写入速度慢等问题。
而且,由于本申请提供实施方案可以动态地调整内存模块中内存区和回写数据存储区的空间,使得无盘客户端在运行中依据内存的实际占用情况,实时地动态调整回写数据存储区的空间,进而确保无盘客户端不会因其内存模块被回写数据占用而带来内存不足,同时也满足了在无盘客户端本地存储和读取回写数据的需求,当然,也使得无需将回写数据通过网络写入所述无盘服务器的存储设备中,一定程度上减轻了网络和无盘服务器的压力。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。

Claims (31)

1.一种无盘客户端,应用于与至少一无盘服务端连接的网络***中,其特征在于,包括:
内存模块,其内存空间被配置为内存区及回写数据存储区;
执行模块,被配置为用于通过网络向所述至少一无盘服务端读取数据或回写数据;以及被配置为在接收到回写请求时将写入的数据存储到所述回写数据存储区;
分配模块,用于依据所述回写数据存储区或内存区被占用的空间以分配所述内存模块中内存区及回写数据存储区的空间。
2.根据权利要求1所述的无盘客户端,其特征在于,所述分配模块还用于监测到所述内存模块中回写数据存储区剩余空间小于一定阈值时将已存入的回写数据通过网络存储至所述无盘服务端以释放所述回写数据存储区的占用空间。
3.根据权利要求1所述的无盘客户端,其特征在于,所述分配模块用于实时监测所述内存区或者所述回写数据存储区被实际占用的空间以动态分配所述内存模块中的内存区及回写数据存储区的空间。
4.根据权利要求3所述的无盘客户端,其特征在于,所述分配模块还用于监测到所述内存模块中回写数据存储区剩余空间小于一定阈值时重新分配所述回写数据存储区在所述内存模块中的占用空间。
5.根据权利要求3所述的无盘客户端,其特征在于,所述分配模块还用于监测所述执行模块回写请求频率或者当前回写数据量以重新分配所述回写数据存储区在所述内存模块中的占用空间。
6.根据权利要求3所述的无盘客户端,其特征在于,所述分配模块还用于监测到所述内存模块中内存区剩余空间小于一定阈值时重新分配所述内存区在所述内存模块中的占用空间。
7.根据权利要求3所述的无盘客户端,其特征在于,所述分配模块还用于监测到所述内存模块中内存区剩余空间小于一定阈值时将已存入的回写数据通过网络存储至所述无盘服务端,并重新分配所述内存区在所述内存模块中的占用空间。
8.一种无盘服务端,用于管理配置于网络***中的至少一个无盘客户端,其特征在于,包括:
存储模块,存储有用于被所述至少一无盘客户端读取的执行程序及所述至少一无盘客户端通过网络传输写入的回写数据;
分配模块,用于将所述至少一无盘客户端的内存空间配置为内存区及回写数据存储区,所述内存空间中内存区及回写数据存储区是依据所述回写数据存储区或内存区被占用的空间进行分配的。
9.根据权利要求8所述的无盘服务端,其特征在于,所述分配模块还用于监测到所述至少一个无盘客户端的内存空间中回写数据存储区剩余空间小于一定阈值时将已存入的回写数据通过网络存储至所述存储模块以释放所述回写数据存储区的占用空间。
10.根据权利要求8所述的无盘服务端,其特征在于,所述分配模块用于实时监测所述内存区或者所述回写数据存储区被实际占用的空间以动态分配所述内存空间中的内存区及回写数据存储区的空间。
11.根据权利要求10所述的无盘服务端,其特征在于,所述分配模块还用于监测到所述至少一个无盘客户端的内存空间中回写数据存储区剩余空间小于一定阈值时重新分配所述回写数据存储区在在所述内存空间中的占用空间。
12.根据权利要求10所述的无盘服务端,其特征在于,所述分配模块还用于监测所述至少一无盘客户端的回写请求频率或者当前回写数据量以重新分配其内存空间中的回写数据存储区的占用空间。
13.根据权利要求10所述的无盘服务端,其特征在于,所述分配模块还用于监测到所述至少一无盘客户端的内存空间中内存区剩余空间小于一定阈值时重新分配所述内存区在所述内存空间中的占用空间。
14.根据权利要求10所述的无盘服务端,其特征在于,所述分配模块还用于监测到到所述至少一无盘客户端的内存空间中内存区剩余空间小于一定阈值时将已存入的回写数据通过网络存储至所述存储模块,并重新分配所述内存区在所述内存空间中的占用空间。
15.一种内存管理***,应用于藉由至少一无盘客户端及至少一无盘服务端组成网络***中,其中,所述至少一无盘客户端配置有内存模块,所述至少一无盘服务端配置有存储模块,其特征在于,包括:
监测模块,用于监测所述至少一无盘客户端的内存模块中配置的内存区及回写数据存储区的空间信息;
分配模块,依据所述监测模块监测的空间信息分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间。
16.根据权利要求15所述的内存管理***,其特征在于,所述空间信息包括回写数据存储区空间信息,内存区空间信息,回写数据存储区剩余空间信息,内存区剩余空间信息,回写请求频率,或者当前回写数据量。
17.根据权利要求15所述的内存管理***,其特征在于,所述分配模块还用当所述监测模块监测到所述至少一无盘客户端的内存模块中回写数据存储区剩余空间小于一定阈值时,将已存入的回写数据通过网络存储至所述至少一无盘服务端的存储模块以释放所述回写数据存储区的占用空间。
18.根据权利要求15所述的内存管理***,其特征在于,所述分配模块用于依据所述监测模块实时监测所述至少一无盘客户端的内存模块中内存区或者所述回写数据存储区被实际占用的空间以动态分配所述内存模块中的内存区及回写数据存储区的空间。
19.根据权利要求18所述的内存管理***,其特征在于,所述分配模块还用于当所述监测模块监测到所述至少一无盘客户端的内存模块中回写数据存储区剩余空间小于一定阈值时重新分配所述回写数据存储区在在所述内存模块中的占用空间。
20.根据权利要求18所述的内存管理***,其特征在于,所述分配模块还用于当所述监测模块监测所述至少一无盘客户端的回写请求频率或者当前回写数据量以重新分配其内存模块中的回写数据存储区的占用空间。
21.根据权利要求18所述的内存管理***,其特征在于,所述分配模块还用于当所述监测模块监测到所述至少一无盘客户端的内存模块中内存区剩余空间小于一定阈值时重新分配所述内存区在所述内存模块中的占用空间。
22.根据权利要求18所述的内存管理***,其特征在于,所述分配模块还用于当所述监测模块监测到到所述至少一无盘客户端的内存模块中内存区剩余空间小于一定阈值时将已存入的回写数据通过网络存储至所述至少一无盘服务端的存储模块中,并重新分配所述内存区在所述内存模块中的占用空间。
23.一种内存管理方法,应用于藉由至少一无盘客户端及至少一无盘服务端组成网络***中,其中,所述至少一无盘客户端配置有内存模块,所述至少一无盘服务端配置有存储模块,其特征在于,包括以下步骤:
监测所述至少一无盘客户端的内存模块中配置的内存区及回写数据存储区的空间信息;
依据所述空间信息分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间。
24.根据权利要求23所述的内存管理方法,其特征在于,所述空间信息包括回写数据存储区空间信息,内存区空间信息,回写数据存储区剩余空间信息,内存区剩余空间信息,回写请求频率,或者当前回写数据量。
25.根据权利要求23所述的内存管理方法,其特征在于,所述依据所述空间信息分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间的步骤为:当监测到所述至少一无盘客户端的内存模块中回写数据存储区剩余空间小于一定阈值时,将已存入的回写数据通过网络存储至所述至少一无盘服务端的存储模块以释放所述回写数据存储区的占用空间。
26.根据权利要求23所述的内存管理方法,其特征在于:
实时监测所述至少一无盘客户端的内存模块中内存区或者所述回写数据存储区被实际占用的空间;
依据实时监测的所述空间信息动态分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间。
27.根据权利要求26所述的内存管理方法,其特征在于,所述依据实时监测的所述空间信息动态分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间的步骤为:监测到所述至少一无盘客户端的内存模块中回写数据存储区剩余空间小于一定阈值时重新分配所述回写数据存储区在在所述内存模块中的占用空间。
28.根据权利要求26所述的内存管理方法,其特征在于,所述依据实时监测的所述空间信息动态分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间的步骤为:监测所述至少一无盘客户端的回写请求频率或者当前回写数据量以重新分配其内存模块中的回写数据存储区的占用空间。
29.根据权利要求26所述的内存管理方法,其特征在于,所述依据实时监测的所述空间信息动态分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间的步骤为:监测到所述至少一无盘客户端的内存模块中内存区剩余空间小于一定阈值时重新分配所述内存区在所述内存模块中的占用空间。
30.根据权利要求26所述的内存管理方法,其特征在于,所述依据实时监测的所述空间信息动态分配所述至少一无盘客户端的内存模块中内存区及回写数据存储区的占用空间的步骤为:监测到到所述至少一无盘客户端的内存模块中内存区剩余空间小于一定阈值时将已存入的回写数据通过网络存储至所述至少一无盘服务端的存储模块中,并重新分配所述内存区在所述内存模块中的占用空间。
31.一种计算机可读存储介质,其上存储有内存管理计算机程序,其特征在于,所述内存管理计算机程序被处理器执行时实现权利要求23-30任一项所述内存管理方法的步骤。
CN201711086105.3A 2017-11-07 2017-11-07 内存管理***及方法 Pending CN107885672A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711086105.3A CN107885672A (zh) 2017-11-07 2017-11-07 内存管理***及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711086105.3A CN107885672A (zh) 2017-11-07 2017-11-07 内存管理***及方法

Publications (1)

Publication Number Publication Date
CN107885672A true CN107885672A (zh) 2018-04-06

Family

ID=61779153

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711086105.3A Pending CN107885672A (zh) 2017-11-07 2017-11-07 内存管理***及方法

Country Status (1)

Country Link
CN (1) CN107885672A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352861A (zh) * 2020-02-19 2020-06-30 Oppo广东移动通信有限公司 内存压缩方法、装置及电子设备
CN116116011A (zh) * 2023-02-28 2023-05-16 嘉兴乐玩网络科技有限公司 一种棋牌类游戏数据智能存储***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101997918A (zh) * 2010-11-11 2011-03-30 清华大学 异构san环境中的海量存储资源按需分配的实现方法
CN103414738A (zh) * 2013-06-14 2013-11-27 长沙市沃申信息技术有限公司 支持ssd云缓存的ems网络存储管理方法
US20140019677A1 (en) * 2012-07-16 2014-01-16 Jichuan Chang Storing data in presistent hybrid memory
CN103744626A (zh) * 2014-01-14 2014-04-23 浪潮电子信息产业股份有限公司 一种基于内存替换进行数据写入的方法
CN105162833A (zh) * 2015-07-29 2015-12-16 杭州顺网科技股份有限公司 应用于无盘工作站的客户机管理***及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101997918A (zh) * 2010-11-11 2011-03-30 清华大学 异构san环境中的海量存储资源按需分配的实现方法
US20140019677A1 (en) * 2012-07-16 2014-01-16 Jichuan Chang Storing data in presistent hybrid memory
CN103414738A (zh) * 2013-06-14 2013-11-27 长沙市沃申信息技术有限公司 支持ssd云缓存的ems网络存储管理方法
CN103744626A (zh) * 2014-01-14 2014-04-23 浪潮电子信息产业股份有限公司 一种基于内存替换进行数据写入的方法
CN105162833A (zh) * 2015-07-29 2015-12-16 杭州顺网科技股份有限公司 应用于无盘工作站的客户机管理***及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
奥拉克.马尔: "《Oracle 8.1.6开发指南》", 31 October 2000 *
宋明华等译: "《Microsoft Windows 3.0(SDK) 程序设计指南》", 31 January 1991 *
郑军红等: "《C语言程序设计》", 31 January 2006 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352861A (zh) * 2020-02-19 2020-06-30 Oppo广东移动通信有限公司 内存压缩方法、装置及电子设备
CN111352861B (zh) * 2020-02-19 2023-09-29 Oppo广东移动通信有限公司 内存压缩方法、装置及电子设备
CN116116011A (zh) * 2023-02-28 2023-05-16 嘉兴乐玩网络科技有限公司 一种棋牌类游戏数据智能存储***

Similar Documents

Publication Publication Date Title
CN104238712B (zh) 分布式功率输送
US10296385B2 (en) Dynamically modifying program execution capacity
US10360083B2 (en) Attributing causality to program execution capacity modifications
CN111966500B (zh) 资源调度方法、装置、电子设备及存储介质
US9494991B2 (en) Energy allocation to groups of virtual machines
US20150178137A1 (en) Dynamic system availability management
CN113641457A (zh) 容器创建方法、装置、设备、介质及程序产品
US8539192B2 (en) Execution of dataflow jobs
CN101124551A (zh) 自主调整计算机操作***的虚拟存储器子***
US11861410B2 (en) Cloud computing burst instance management through transfer of cloud computing task portions between resources satisfying burst criteria
US10908940B1 (en) Dynamically managed virtual server system
CN107885672A (zh) 内存管理***及方法
EP3370179A1 (en) Method and system for distributing floating licenses for real-time services
US10114438B2 (en) Dynamic power budgeting in a chassis
CN116401024A (zh) 基于云计算的集群扩缩容方法、装置、设备及介质
CN114443284A (zh) 一种集群资源负载均衡方法、装置、电子设备和介质
US20070174836A1 (en) System for controlling computer and method therefor
US11334436B2 (en) GPU-based advanced memory diagnostics over dynamic memory regions for faster and efficient diagnostics
US9361160B2 (en) Virtualization across physical partitions of a multi-core processor (MCP)
CN114924888A (zh) 资源配置方法、数据处理方法、装置、设备和存储介质
CN108429780A (zh) 关联***间的数据调用***及方法
CN112632074A (zh) 用于数据库的库存分配方法、装置、电子设备和介质
CN115150402B (zh) 一种云资源分配方法及***
US20210311802A1 (en) Resource allocation for virtual machines
US20230401100A1 (en) Lcs workload in-band resource device management system

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180406