CN102970355B - 通过挂起承租人来管理数据中心的容量的方法和设备 - Google Patents

通过挂起承租人来管理数据中心的容量的方法和设备 Download PDF

Info

Publication number
CN102970355B
CN102970355B CN201210445077.0A CN201210445077A CN102970355B CN 102970355 B CN102970355 B CN 102970355B CN 201210445077 A CN201210445077 A CN 201210445077A CN 102970355 B CN102970355 B CN 102970355B
Authority
CN
China
Prior art keywords
tenant
user
computing system
cloud computing
state
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.)
Active
Application number
CN201210445077.0A
Other languages
English (en)
Other versions
CN102970355A (zh
Inventor
M·S·比杰克
R·托布克斯
B·D·库克
A·R·米勒
J·W·菲利普斯
A·M·塔卡奇
D·R·沙特
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN102970355A publication Critical patent/CN102970355A/zh
Application granted granted Critical
Publication of CN102970355B publication Critical patent/CN102970355B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/5072Grid computing
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • 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
    • 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
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user

Abstract

本发明公开了通过挂起承租人来管理数据中心的容量。包括一个或多个用户的承租人从云计算系统(“CCS”)接收服务。该CCS确定承租人何时没有使用任何服务,并且如果是这样,则该CCS启动承租人挂起进程。该承租人挂起进程涉及挂起该承租人的各个异步计算进程,否则这些异步计算进程即使在该承租人的用户当前都没有访问该CCS的情况下也执行。在一段时间未使用该CCS之后,该承租人被挂起。在该承租人的用户登录以接收服务时,该承租人被自动返回到活动状态。

Description

通过挂起承租人来管理数据中心的容量的方法和设备
技术领域
本发明涉及通过挂起承租人来管理数据中心的容量。
背景技术
基于云的计算数据中心提供通过利用规模经济来提供低成本的计算服务的优点。数千用户可由数据中心提供服务,且管理容量对于确保计算资源被有效地使用是重要的。这需要标识资源何时没有被有效地使用,并且以响应且及时的方式来管理对这些资源的使用。此处所做出的公开正是关于这些和其他考虑事项而提出的。
发明内容
此处描述了用于当云计算系统(“CCS”)中的承租人没有使用服务时节省CCS中的资源的概念和技术。在此处公开的一个实施例中,一种用于节省CCS中的计算资源的方法包括:在CCS中启动承租人的至少一个管理计算进程,确定该承租人的用户在一时间段内都没有使用过CCS,以及等待在CCS中该承租人的至少一个管理计算进程完成。该方法还包括将该承租人指示成在CCS中被挂起,并且从该承租人的用户接收登录请求。该方法还包括确定该承租人被挂起,并且允许该承租人的至少一个管理计算进程被恢复。
在此处公开的另一实施例中,一种计算机可读存储介质在其上存储有计算机可读指令,当该指令被计算机执行时使得该计算机:在CCS中启动承租人的异步计算进程,确定该承租人的用户在一时间段内都没有使用过CCS,以及等待在CCS中该承租人的异步计算进程完成执行。该指令进一步使得该计算机在承租人状态表中将该承租人指示成在CCS中处于挂起状态,并且从该承租人的用户接收登录请求。该指令进一步使得该计算机确定在该承租人状态表中该承租人被指示成处于挂起状态,且允许该承租人的至少一个异步计算进程执行。
在此处公开的另一实施例中,一种用于节省计算资源的系统包括处理器,该处理器被配置成在CCS中启动承租人的至少一个管理计算进程,以及确定该承租人的用户在一时间段内都没有使用CCS。该处理器还被配置成等待在CCS中该承租人的至少一个管理计算进程完成,在CCS中所存储的承租人状态表中将该承租人指示成被挂起,从该承租人的用户接收登录请求,以及通过检索CCS中所存储的承租人状态表来确定该承租人被挂起。该处理器还被配置成允许该承租人的至少一个异步计算进程响应于来自该用户的登录请求而被恢复,以及在该承租人状态表中将该承租人指示成活动的。
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本发明内容用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中所提及的任何或所有缺点的实现。
附图说明
图1是根据此处提供的一个实施例、示出其中组织的用户可利用CCS来接收服务的一个环境的示意图;
图2是示出与承租人相关联的CCS资源何时在特定条件下被挂起的状态图的描绘;
图3A和3B描绘用于挂起与承租人对CCS的使用相关联的计算资源的流程图;
图4是示出与CCS服务提供者挂起承租人相关联的操作的流程图;以及
图5示出CCS中被配置成执行用于挂起承租人的操作的计算设备的计算机体系结构。
具体实施方式
在以下详细描述中,参考形成详细描述的一部分并为例示具体实施例或示例而示出的附图。现在参考附图,其中全部若干附图中相同的标号表示相同的元素,公开了用于通过挂起承租人来管理数据中心的容量的各方面。
以下具体实施方式涉及在云计算系统(“CCS”)中挂起承租人的计算资源。CCS包括各种计算系统,这些计算系统可共同用于向承租人提供服务。具体地,如果承租人的用户都没有使用过云CCS所提供的服务中的任一个,则通过在CCS中挂起该承租人的已排定管理进程来节省特定计算资源。
图1中示出其中用户可从CCS接收服务的一个环境。图1示出包括各个组织160和160n-160z的环境。这些组织可表示虚拟公司、物理业务、分布式业务、有共同兴趣或目的的用户集合、或关联用户的任何其他组。这些组织包括至少一个单个用户,且每一用户可采用计算设备,诸如智能电话101、膝上型计算机102、或平板计算机105。这些计算设备进而使用各种有线103或无线连接115、117来访问因特网104。因特网104进而可用于提供对CCS106的访问。
计算设备的无线连接性可基于各种容易获得的技术,包括与蜂窝服务提供者所提供的蜂窝基础结构170相关联的各种基于蜂窝的技术(CDMA、GSM、4G、EDGE等)。也可使用其他无线技术(例如,WiMax、WiFi等)。有线技术可基于ISDN、电缆调制解调器、DSL以及其它公知的技术。这些通信技术中的任一个可提供从计算设备到因特网104的连接性。
有线和无线通信通过因特网所提供的连接性向计算设备101、102或105提供对CCS106中的服务器108的访问。虽然在此示出的概念可涉及单个服务器108,但是可存在特定组织的用户所访问的各种服务器。例如,设备所访问的一个服务器108进而可将该设备定向到另一服务器113,或同一组织的不同用户可访问不同服务器。
服务器108可执行各种应用程序120。这些应用可以用共享的、不相交的、或分布式方式在CCS106中跨一个或多个服务器来执行。应用程序120可包括用于创建文档的文档创作应用125,诸如文字处理程序。其他类型的文档创作应用125可包括电子表格程序、幻灯片演示程序、照片或图形编辑程序等等。
应用程序125还可包括用于组相关的消息收发和通信的社交媒体应用130。用户可访问的另一应用程序是电子邮件应用135,电子邮件应用提供各种消息收发能力,包括即时消息收发。通信应用140可允许各用户之间的视频聊天或语音通信。日历应用145可允许组织会议和事件。联系人应用150可允许组织个人的联系人信息。流媒体应用155可提供流化数字数据内容,诸如音频或视频文件。此外,这些应用中的每一个都可存储数据,这些数据可由服务器108维护在数据存储109中。数据存储109可包括各种存储系统和技术。
应用程序125可由组织160中的用户单独地或共同地使用。例如,组织106中采用智能电话101的用户可访问CCS106中的电子邮件应用135。同一组织中采用膝上型计算机102的另一用户也可访问同一电子邮件应用135。这样的应用通常被组织用来增加其成员的生产力。尽管组织160可雇用成百或成千的个人,但其他组织160n-160z可涉及单个人或仅涉及几个人。可能存在数千个使用CCS的这样的组织。
组织160、160n-160z中的每一个被基于CCS的计算服务提供者(“CSP”)认为是承租人,且此后组织被称为“承租人”。每一承租人通常为接收指定服务级别而缔约,指定服务级别可包括主存储器或辅助存储器中的最大存储容量。其他服务级别方面可出于有保证的运行时间来提供,这可能需要CSP周期性地执行数据库备份,并且在组件失败或维护组件的情况下维护备用处理单元。因此,即使承租人的用户没有访问任何服务,承租人所消费的计算资源也可能是非零。总体系统计算资源可受到承租人的数量的限制,而不管每一承租人的计算负载。
例如,管理进程可周期性地被执行以便确定承租人的存储器使用。为承租人执行这一管理进程需要计算资源,这些计算资源随后不能被用于向用户提供服务。即使承租人的用户都没有登录到CCS,管理进程也执行。
在某些实例中,承租人的用户可能在延长的时间段没有访问CCS。若承租人包括少量用户,通常是这种情况。用户可能在度假,或可能仅在偶尔的基础上使用应用(例如,一个月一次)。无论出于什么原因,可能存在组织的用户不使用CCS的服务的时期。
在这些实例中,CCS可通过在承租人的用户都没有使用CCS时挂起承租人以及为承租人执行的任何相关联的管理进程以增加系统容量。图2示出在一个实施例中与承租人相关联的各个状态。如将看到的,其他实施例可定义更少或更多的状态。
转向图2,状态图200示出承租人可被归类的各个状态210、220、230和240。虚线202将状态210、202与状态230、240分开,其中在状态210、202各个承租人专用的管理计算资源正在执行,而在状态230、240承租人专用的管理计算资源被挂起。图2描绘如何可基于用户动作(或在缺少用户动作的情况下)来转换各个状态的一个实施例。
以活动状态210开始,该状态表示承租人正使用CCS中的各应用的正常状态。在该状态中,承租人的至少一个用户当前正使用一应用。如果承租人的另一用户登录到CCS(如动作204表示的),则承租人保持被分类成处于活动状态210。
一旦承租人的最后一个用户从CCS登出212,则承租人被分类成处于待机状态220。承租人在这一刻尚未被挂起,但是如果与承租人相关联的用户在计时器周期内都没有登录,则承租人将被挂起。在一个实施例中,当进入待机状态220时,计时器可被开启或系统可周期性地检查用户历史日志来查明承租人的最后一个用户何时使用过系统。如果在该状态中用户登录222,则承租人被分类成回到处于活动状态210。
假设承租人处于待机状态220,如果计时器期满224(或对用户历史日志的检查指示承租人在特定时间量没有使用过服务),则承租人被分类成处于挂起状态230。在该状态中,CCS106可挂起与承租人相关联的各个管理进程。挂起被触发之前的持续时间可按若干方式来定义。首先,无论承租人和负载条件是什么都应用的系统范围参数可通过CCS管理员来定义。在另一实施例中,持续时间值可基于CCS的使用来调整。如果CCS资源处于相对重的负载,则持续时间可被缩短。这会导致更渐进地挂起偶尔使用CCS的承租人。相反,如果CCS资源处于相对轻的负载,则持续时间可被延长。该持续时间调整可由CCS管理员手动执行,或者持续时间可以是动态的——例如,持续时间可由CCS基于其系统负载的确定来自动执行。在其他实施例中,可以为不同的承租人和/或负载条件定义不同的持续时间。
承租人将保持在挂起状态220,直到两个动作之一发生。首先,CCS管理员可停用234承租人,并且将承租人置于停用状态240。在该状态中,用户不能登录回该系统。如果用户尝试登录,则服务拒绝消息将响应于其尝试而被呈现。可通过管理员激活236使承租人返回到挂起状态230,这可以以手动方式发生。
第二,承租人可在用户尝试登录232时移离挂起状态230。这将承租人置回活动状态210。当用户尝试从挂起状态230登录232时,CCS在允许用户完成登录之前恢复承租人的各个管理进程。恢复各个后台和管理进程发生得非常迅速,使得用户察觉不到任何延迟。一旦被恢复,管理进程就可以像正常的且像被安排的那样执行。
在其他实施例中,待机状态220可被消除。具体地,承租人将处于活动状态210、挂起状态230、或停用状态240。在这些实施例中,即使当承租人的最后一个用户登出时,承租人也保持在活动状态210,并且仅一旦自最后一个用户登出以来的时间段超出阈值水平,承租人才移动到挂起状态230。换言之,从活动状态210到挂起状态230的转移将在承租人的用户在特定时间段都没有访问过系统时发生。
应当注意,图2的状态转移图用于对系统的操作进行建模,而状态转移模型的实现并不是实践此处公开的概念所必须的。此外,以上所描述的状态转移的其他变体也是可能的。
例如,在其他实施例中,承租人通过绕过待机状态220和挂起状态230直接从活动状态210移动到停用状态240是可能的。在特定条件下,云计算系统管理员可直接停用承租人。一般而言,CCS管理员可迫使承租人从任何状态转移到任何状态。因此,承租人可能被迫使从活动状态210转移到挂起状态230或停用状态。例如,承租人可能已经向云计算系统取消了其服务,服务协议可能已经期满,或者服务协议可能由于承租人违反服务协议的条款而已经被停用。诸如从停用状态240到活动状态210之类的其他转移是可能的。因此,存在众多可被实现以反映商业服务供应的替代状态转移。图2中的状态转移可聚焦于用于挂起资源的过程。
从以上定义的状态的转移也可被描述成图3A和3B中示出的流程图。应当理解,参考图3A和3B以及其它附图所描述的逻辑操作被实现为(1)计算机实现的动作的序列或运行于计算系统上的程序模块,和/或(2)计算系统内的互连机器逻辑电路或电路模块。该实现是取决于计算系统的性能及其他要求的选择问题。因此,此处描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑、及其任何组合来实现。还应该明白,可以执行比附图中示出并在此处描述的操作更多或更少的操作。这些操作还可以按与此处所描述的那些操作不同的次序来执行。
图3A和3B中示出的流程图分别公开了与用户登录到CCS以及用户从CCS登出相关联的流程图。转向图3A,用户登录流程图300以在操作304中系统接收用户标识符而开始。这允许在操作306中确定承租人标识符。承租人标识可使用承租人标识符表来实现,承租人标识符表是便于在表条目中将用户标识符与承租人标识符相关联的数据结构。
在操作308,使用承租人状态表来确定承租人当前处于活动状态210还是待机状态220。响应于上文针对图2所描述的动作,可按需维护并更新每一承租人的状态表。活动状态210在与承租人相关联的另一用户已经登录到服务且正在访问服务时发生。待机状态220指示另一用户最近使用了CCS服务但已经登出。如果承租人处于活动状态210或者待机状态220,则在操作314,系统照常处理用户登录。不存在要恢复的管理进程,因为没有管理进程被挂起。
在操作308,如果确定承租人即不处于活动状态210也不处于待机状态220,则在操作309发生关于承租人是否处于停用状态240的确定。如果承租人处于停用状态240,则在操作311拒绝对用户的服务。可以向用户提供指示承租人组织不活动的消息,以便联系系统管理员寻求进一步帮助,或某一其他类型的消息。一旦承租人处于停用状态240,可能需要管理员手动恢复承租人。如果在操作309确定承租人不处于停用状态240,则承租人处于挂起状态230。在承租人可被认为处于活动状态210之前必须重新启动各个管理进程。一旦在操作310这些进程被重新启动,则在操作312承租人被列为处于活动状态。该进程在操作316结束,且用户登录处理被照常对待。
用于处理用户登出的进程在图3B中示出。转向图3B,登出进程350以在操作354中用户登出而开始。在操作356,使用相关联的承租人标识符来确定与该用户相关联的承租人。在操作358,确定用户是否是承租人的要登出的最后一个用户。如果回答为否,则该进程在操作366处完成。
如果用户是承租人的登出系统的最后一个用户,则在操作360承租人挂起计时器被启动。在操作362,检查承租人挂起计时器以查看它是否已经期满。如果计时器没有期满,则该进程循环返回,并且继续检查计时器直到计时器期满。一旦计时器期满,则操作364被执行。挂起承租人的进程完成,且该进程在操作366结束。
在操作362需要每一实施例使用计时器来查明承租人不使用CCS服务达特定时间。另一实施例可改为周期性地检查承租人历史日志,以寻找与承租人相关联的用户访问CCS服务的最后时间。日志会存储每一用户登录的时间,并且该历史日志可周期性地被分析。如果承租人的用户都没有访问过CCS,则承租人可被挂起。
在图4中示出CCS挂起承租人的流程图400。该进程在操作404中以在承租人状态表中将承租人标记成被挂起而开始。这可使用基于表的数据结构,该数据结构将承租人与状态指示符相关联,该状态指示符指示承租人的当前状态,例如,承租人处于活动状态还是处于挂起状态。
在操作406,CCS等待任何待决管理进程完成。这些管理进程可以是与承租人相关联的异步任务的形式。异步任务的一个示例是存储器管理进程,该存储器管理进程确定承租人所使用的、或可供承租人使用的数据存储级别。该管理进程可对每一承租人周期性地执行。在一个实施例中,该进程可被安排成对每一承租人每五分钟执行一次。该管理进程确定承租人所使用的当前存储器,并将所使用的存储器与分配给承租人的最大值相比较。可使得该信息对承租人可用,以便帮助确定服务级别。
在操作408,任何这样安排的异步任务被禁用或以其他方式防止其重复出现,直到承租人处于活动状态。禁用这些承租人专用进程允许节省计算资源的益处被实现。在一个实施例中,异步任务包括不受用户或承租人直接控制的管理任务,诸如上述存储器管理或备份进程。其他异步任务可包括应用级任务。这些任务可能受用户或承租人的直接控制,或可能不受用户或承租人的直接控制。这些任务被定向成围绕特定业务应用。这些任务可包括例如,电子邮件提醒、数据库管理、生成排定的报告等。承租人可能觉得在承租人处于挂起状态时挂起这些类型的任务是可接受的。承租人可协商将这些任务作为其与云计算服务提供者的服务级别协议的一部分来挂起。不同的服务级别协议可定义在承租人处于挂起状态时挂起哪些异步任务、何时挂起异步任务、以及如何挂起异步任务。
在操作410,CCS在备份数据库中执行对承租人的数据的备份。这确保当前副本被维护且在承租人恢复到活动状态时可用。在操作412,类似地禁用承租人的任何将来镜像处理。
一旦上述操作完成,则承租人挂起完成。上述操作可按不同次序来执行,并且可包括附加操作。在某些实施例中,可以执行并非全部的上述操作。然而,为实现节省计算资源的益处,至少某些可以其他方式执行的管理进程对承租人禁用。
用于将承租人还原到承租人的活动状态的进程基本上是图4中所示操作的反进程。还原承租人的时间段发生得足够快,使得用户登录到系统将不会招致明显的延迟。
上述过程流程及其它相关功能在一个实施例中可通过图5所示的计算机设备500的计算体系结构来实现。图5示出能够执行所描述的过程的计算处理设备的说明性计算体系结构。虽然图5描述了诸如服务器108之类的计算设备,但是图5中显示的体系结构可示出台式计算机、智能电话101、膝上型计算机102、或平板计算机105、或其它类型的用于执行在此呈现的各过程的任何方面的计算机。可使用其他架构或计算机来执行本文所提出的软件组件。
图5所示的计算机体系结构包括处理器502(又称中央处理单元或“CPU”)、包括随机存取存储器514(“RAM”)和只读存储器(“ROM”)516的系统存储器508、以及将存储器耦合至CPU502的系统总线504。基本输入/输出系统被存储在ROM516中,该系统包含帮助诸如在启动期间在服务器500中的元件之间传递信息的基本例程。如本文所述,计算机500还包括用于存储操作系统518、应用程序和其他程序模块的大容量存储设备510。
大容量存储设备510通过大容量存储控制器(未示出)连接到CPU502,大容量存储控制器又连接到总线504。大容量存储设备510及其相关联的计算机可读介质为处理设备500提供非易失性存储。虽然对这里包含的计算机可读介质的描述指的是诸如硬盘或CD-ROM驱动器之类的大容量存储设备,但是本领域的技术人员应该明白,计算机可读介质可以是可由计算机500访问的任何可用计算机可读存储介质。
计算机可读介质可以是可由计算机500访问的任何可用介质,包括计算机可读存储介质和通信介质。通信介质包括瞬时信号。计算机可读存储介质包括,但并不限于,RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术,CD-ROM、数字多功能盘(“DVD”)、HD-DVD、蓝光或其他光学存储,磁带盒、磁带、磁盘存储器或其他磁存储设备,或可以用来存储所需信息并可由处理设备500访问的任何其他介质。计算机可读存储介质不包括瞬时信号。
根据各实施例,处理设备500可以在联网环境中操作,该联网环境使用通过网络520到远程计算机或服务器的逻辑连接。处理设备500可使用天线(未示出)无线地连接到网络520或使用有线连接来连接到网络520。在其它实施例中,可使用输入/输出控制器512实现到其它类型网络的连接。输入/输出控制器512可被用于接收和处理来自多个其他设备508的输入,这些设备包括键盘、鼠标或者电子指示笔(未在图5中示出)。类似地,输入/输出控制器512可以提供至显示屏506、打印机或其他类型的输出设备(也未在图5中示出)的输出。在一实施例中,计算设备可结合包括触摸屏显示器的显示屏506。触摸屏显示器不仅用于显示信息,也用于从用户接收输入,包括输入文本、命令和控制。
如前简述地,多个应用或程序模块和数据文件可被存储在处理设备500的大容量存储设备510和RAM514中,包括适于控制服务器或其他类型的计算机的操作的操作系统518。大容量存储设备510和RAM514还可以存储一个或多个程序模块或数据文件。更具体地,大容量存储设备510和RAM514可以存储承租人挂起/恢复应用526。承租人挂起/恢复应用526包含指令,当指令被执行时使得处理器执行以上公开的各进程。此外,大容量存储设备510和RAM514还可存储向承租人的用户提供服务的承租人应用519。
应当理解,在此所描述的软件组件,在被加载到处理器502中并被执行时,可以将处理器502和总体处理设备500从通用计算系统变换成为方便在此所提出的功能而定制的专用计算系统。处理器502可从任何数目的晶体管或其它分立电路元件中构造,这些元件可以独立地或集体地呈现任何数目的状态。更具体地,处理器502可以响应于包含在本文所公开的软件模块中的可执行指令来作为有限状态机操作。这些计算机可执行指令可以通过指定处理器502如何在各状态之间转换来变换处理器502,由此变换了构成处理器502的晶体管或其它分立硬件元件。
对本文所提出的软件模块的编码也可变换本文所提出的计算机可读介质的物理结构。在本说明书的不同实现中,物理结构的具体变换可取决于各种因素。这样的因素的示例可以包括,但不仅限于:用于实现计算机可读介质的技术、计算机可读介质被表征为主存储器还是辅存储器等等。例如,如果计算机可读介质被实现为基于半导体的存储器,则本文所公开的软件可以通过变换半导体存储器的物理状态而编码在计算机可读介质上。例如,软件可以变换构成半导体存储器的晶体管、电容器或其它分立电路元件的状态。软件还可变换这些组件的物理状态以在其上存储数据。
作为另一示例,本文所公开的计算机可读介质可以使用磁性或光学技术来实现。在这些实现中,本文所提出的软件可以在将该软件编码于磁性或光学介质中时变换该磁性或光学介质的物理状态。这些变换可以包括改变给定磁性介质内的特定位置的磁性。这些变换还可以包括改变给定光学介质内的特定位置的物理特征或特性,以改变这些位置的光学特性。在没有偏离本说明书的范围和精神的情况下,物理介质的其他转换也是可以的,前面提供的示例只是为了便于此讨论。
鉴于以上内容,应当理解,在处理设备500中发生许多类型的物理变换来存储并执行本文所提出的软件组件。还应当理解,处理设备500可以包括其它类型的计算设备,包括:手持式计算机、嵌入式计算机系统、个人数字助理、以及本领域技术人员已知的其它类型的计算设备。还可构想处理设备500可以不包括图5所示的全部组件,可以包括未在图5中明确示出的其它组件,或者可利用完全不同于图5所示的体系结构。
应当理解,上述主题仅作为说明提供,并且不应被解释为限制。可对此处所述的主题作出各种修改和改变,而不必遵循所示和所述的示例实施例和应用,且不背离所附权利要求书中所述的本发明的真正精神和范围。

Claims (11)

1.一种用于节省云计算系统中的计算资源的方法,包括:
在所述云计算系统中启动承租人的至少一个管理计算进程,所述承租人与一个或多个用户相关联;
确定所述承租人的用户在一时间段内都没有使用过所述云计算系统;
等待在所述云计算系统中所述承租人的至少一个管理计算进程完成;
响应于确定所述承租人的用户在所述时间段内都没有使用过所述云计算系统,挂起所述承租人并且将所述承租人指示成在所述云计算系统中被挂起;
从所述承租人的用户接收登录请求;
确定所述承租人被挂起;以及
允许所述承租人的至少一个管理计算进程被恢复。
2.如权利要求1所述的方法,其特征在于,还包括:
将承租人状态表从指示与所述承租人相关联的活动状态更新为指示与所述承租人相关联的挂起状态。
3.如权利要求2所述的方法,其特征在于,还包括:
使用所述用户提供的用户标识符从存储器中访问承租人标识符表来查明承租人标识符,并且其中确定所述承租人被挂起包括:使用所述承租人标识符来访问所述承租人标识符表以查明承租人状态指示符。
4.如权利要求1所述的方法,其特征在于,确定所述承租人的用户在一时间段内都没有使用过所述系统包括:
周期性地访问用户历史日志;以及
确定自所述承租人的最后一个用户从所述云计算系统登出以来的时间超过一定义的限度。
5.如权利要求1所述的方法,其特征在于,确定所述承租人的用户在一时间段内都没有使用过所述系统包括:
访问与所述承租人相关联的计时器,所述计时器指示自所述承租人的最后一个用户登出以来的持续时间;以及
确定所述计时器大于预定值。
6.如权利要求1所述的方法,其特征在于,所述至少一个管理计算进程包括确定由与所述承租人相关联的存储数据利用的存储器存储的级别的进程。
7.如权利要求6所述的方法,还包括在将所述承租人指示成在所述云计算系统中被挂起之前,执行对所述存储数据的存储器备份。
8.如权利要求2所述的方法,还包括将与所述承租人状态表相关联的承租人状态指示修改为指示所述承租人处于活动状态。
9.一种用于节省云计算系统中的计算资源的方法,包括:
在所述云计算系统中启动承租人的异步计算进程,所述承租人与一个或多个用户相关联;
确定所述承租人的用户在一时间段内都没有使用过所述云计算系统;
等待在所述云计算系统中所述承租人的异步计算进程完成执行;
在所述承租人的用户在所述时间段内都没有使用过所述云计算系统的情况下,挂起所述承租人并且在承租人状态表中将所述承租人指示成在所述云计算系统中处于挂起状态;
从所述承租人的用户接收登录请求;
确定在所述承租人状态表中所述承租人被指示成处于所述挂起状态;以及
允许所述承租人的至少一个异步计算进程执行。
10.如权利要求9所述的方法,其特征在于,还包括:
访问与所述承租人相关联的计时器,所述计时器指示自所述承租人的最后一个用户已从所述云计算系统登出以来的持续时间;
确定所述计时器大于预定值;以及
响应于确定所述计时器大于预定值,更新来自存储器的承租人状态表,以便将所述承租人指示成处于挂起状态。
11.一种用于节省云计算系统中的计算资源的设备,包括:
用于在所述云计算系统中启动承租人的至少一个管理计算进程的装置,所述承租人与一个或多个用户相关联;
用于确定所述承租人的用户在一时间段内都没有使用过所述云计算系统的装置;
用于等待在所述云计算系统中所述承租人的至少一个管理计算进程完成的装置;
用于响应于确定所述承租人的用户在所述时间段内都没有使用过所述云计算系统,挂起所述承租人并且将所述承租人指示成在所述云计算系统中被挂起的装置;
用于从所述承租人的用户接收登录请求的装置;
用于确定所述承租人被挂起的装置;以及
用于允许所述承租人的至少一个管理计算进程被恢复的装置。
CN201210445077.0A 2011-11-09 2012-11-08 通过挂起承租人来管理数据中心的容量的方法和设备 Active CN102970355B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/293,097 US8843609B2 (en) 2011-11-09 2011-11-09 Managing capacity in a data center by suspending tenants
US13/293,097 2011-11-09

Publications (2)

Publication Number Publication Date
CN102970355A CN102970355A (zh) 2013-03-13
CN102970355B true CN102970355B (zh) 2016-05-25

Family

ID=47800234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210445077.0A Active CN102970355B (zh) 2011-11-09 2012-11-08 通过挂起承租人来管理数据中心的容量的方法和设备

Country Status (5)

Country Link
US (2) US8843609B2 (zh)
EP (1) EP2776941B1 (zh)
CN (1) CN102970355B (zh)
HK (1) HK1181204A1 (zh)
WO (1) WO2013070814A2 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140019981A1 (en) * 2012-07-12 2014-01-16 Microsoft Corporation Scheduling user jobs across tenants
CN103593236B (zh) * 2013-11-14 2017-02-22 华为技术有限公司 一种业务流程调度的计算机设备、方法和装置
US20160043909A1 (en) * 2014-08-08 2016-02-11 Microsoft Corporation Hierarchical Subscription Management
GB2529475A (en) 2014-08-22 2016-02-24 Ibm Tenant allocation in multi-tenant software applications technical field
CN115600188B (zh) * 2022-11-29 2023-03-14 北京天维信通科技有限公司 一种多级租户资源管理方法、系统、终端及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1777872A (zh) * 2003-04-25 2006-05-24 国际商业机器公司 确定未归还备用资源使用的系统

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7100195B1 (en) 1999-07-30 2006-08-29 Accenture Llp Managing user information on an e-commerce system
US7130807B1 (en) 1999-11-22 2006-10-31 Accenture Llp Technology sharing during demand and supply planning in a network-based supply chain environment
US20020049841A1 (en) 2000-03-03 2002-04-25 Johnson Scott C Systems and methods for providing differentiated service in information management environments
US20020049608A1 (en) 2000-03-03 2002-04-25 Hartsell Neal D. Systems and methods for providing differentiated business services in information management environments
WO2001086380A2 (en) 2000-05-05 2001-11-15 Aprisma Management Technologies, Inc. Systems and methods for isolating faults in computer networks
US20050049937A1 (en) 2000-08-16 2005-03-03 Aaron Sanders Business method and processing system
US6993657B1 (en) 2000-09-08 2006-01-31 Oracle International Corporation Techniques for managing database systems with a community server
US20020133392A1 (en) 2001-02-22 2002-09-19 Angel Mark A. Distributed customer relationship management systems and methods
US6606627B1 (en) 2001-05-08 2003-08-12 Oracle Corporation Techniques for managing resources for multiple exclusive groups
US6880002B2 (en) * 2001-09-05 2005-04-12 Surgient, Inc. Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources
US20030088616A1 (en) 2001-11-02 2003-05-08 Qualte, Inc. System and method for customer service application customization, integration, and distribution
AU2003304166A1 (en) 2002-01-25 2005-01-21 Seurat Company Data integration system and method for presenting 3600 customer views
US6990666B2 (en) 2002-03-18 2006-01-24 Surgient Inc. Near on-line server
US7882346B2 (en) 2002-10-15 2011-02-01 Qualcomm Incorporated Method and apparatus for providing authentication, authorization and accounting to roaming nodes
US20040117220A1 (en) 2002-12-12 2004-06-17 International Business Machines Corporation Secure system and method for self-management of customer relationship management database
US20050182745A1 (en) 2003-08-01 2005-08-18 Dhillon Jasjit S. Method and apparatus for sharing information over a network
US20060069717A1 (en) 2003-08-27 2006-03-30 Ascential Software Corporation Security service for a services oriented architecture in a data integration platform
US7503031B2 (en) 2004-02-19 2009-03-10 International Business Machines Corporation Method of transforming an application into an on-demand service
US8533229B2 (en) 2004-06-16 2013-09-10 Salesforce.Com, Inc. Soap-based web services in a multi-tenant database system
US20060059035A1 (en) 2004-09-10 2006-03-16 Andreas Kraft Mobile sales online manager for handheld devices
US20060247944A1 (en) 2005-01-14 2006-11-02 Calusinski Edward P Jr Enabling value enhancement of reference data by employing scalable cleansing and evolutionarily tracked source data tags
US7853961B2 (en) 2005-02-28 2010-12-14 Microsoft Corporation Platform for data services across disparate application frameworks
US20070067354A1 (en) 2005-09-16 2007-03-22 Microsoft Corporation Productivity suite to line of business synchronization mechanism
US9135304B2 (en) 2005-12-02 2015-09-15 Salesforce.Com, Inc. Methods and systems for optimizing text searches over structured data in a multi-tenant environment
US20070156902A1 (en) 2005-12-30 2007-07-05 Becker Wolfgang A Systems and methods for implementing a tenant space in a provider-tenant environment
US20070162537A1 (en) 2006-01-11 2007-07-12 Gearworks, Inc. Common application services framework
US7987167B1 (en) 2006-08-04 2011-07-26 Netapp, Inc. Enabling a clustered namespace with redirection
US20080040335A1 (en) 2006-08-10 2008-02-14 John Gatti Multi-tenant CIM namespace association discovery and proxy association creation
US8271641B2 (en) 2006-10-04 2012-09-18 Salesforce.Com, Inc. Method and system for governing resource consumption in a multi-tenant system
US8122055B2 (en) 2007-04-26 2012-02-21 Microsoft Corporation Hosted multi-tenant application with per-tenant unshared private databases
US9053162B2 (en) 2007-04-26 2015-06-09 Microsoft Technology Licensing, Llc Multi-tenant hosted application system
US8972978B2 (en) 2008-05-02 2015-03-03 Skytap Multitenant hosted virtual machine infrastructure
US8935692B2 (en) * 2008-05-22 2015-01-13 Red Hat, Inc. Self-management of virtual machines in cloud-based networks
JP5448032B2 (ja) 2008-12-25 2014-03-19 インターナショナル・ビジネス・マシーンズ・コーポレーション リソース管理装置、リソース管理プログラム、およびリソース管理方法
US7996525B2 (en) 2008-12-31 2011-08-09 Sap Ag Systems and methods for dynamically provisioning cloud computing resources
US9501329B2 (en) * 2009-05-08 2016-11-22 Rackspace Us, Inc. Methods and systems for cloud computing management
US8341441B2 (en) 2009-12-24 2012-12-25 International Business Machines Corporation Reducing energy consumption in a cloud computing environment
US20110185208A1 (en) 2010-01-28 2011-07-28 Apple Inc. Memory power reduction in a sleep state
US8271814B2 (en) 2010-03-22 2012-09-18 Microsoft Corporation Migrating a client computer to a virtual machine server when the client computer is deemed to be idle

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1777872A (zh) * 2003-04-25 2006-05-24 国际商业机器公司 确定未归还备用资源使用的系统

Also Published As

Publication number Publication date
US8843609B2 (en) 2014-09-23
US9497138B2 (en) 2016-11-15
EP2776941A4 (en) 2018-01-10
EP2776941A2 (en) 2014-09-17
US20130117453A1 (en) 2013-05-09
EP2776941B1 (en) 2020-08-05
WO2013070814A3 (en) 2013-07-11
CN102970355A (zh) 2013-03-13
US20150006738A1 (en) 2015-01-01
HK1181204A1 (zh) 2013-11-01
WO2013070814A2 (en) 2013-05-16

Similar Documents

Publication Publication Date Title
US10735509B2 (en) Systems and methods for synchronizing microservice data stores
US10585698B2 (en) Template-driven multi-tenant workflow processing
CN105677431B (zh) 将后台工作和前台工作解耦合
CN102902583B (zh) 在挂起状态和执行状态下管理进程
CN105190555B (zh) 集中式任务调度
US9077728B1 (en) Systems and methods for managing access-control groups
CN102970355B (zh) 通过挂起承租人来管理数据中心的容量的方法和设备
US10579967B2 (en) System and method for creating, executing and managing processes using nano server architecture
US9940598B2 (en) Apparatus and method for controlling execution workflows
US20160019123A1 (en) Fault tolerance for complex distributed computing operations
EP3223217A1 (en) Accessing and configuring meeting attributes
US10009213B2 (en) System and method for isolation of multi-tenant platform customization using child processes
CN105144102B (zh) 自适应数据同步
CN104737133A (zh) 使用服务组的分布式应用优化
TW200915186A (en) Management of grid computing resources based on service level requirements
CN103049339A (zh) 恢复应用和/或使应用免于中止
US20210146537A1 (en) Scheduling robots for robotic process automation
CN102999384B (zh) 在挂起状态和执行状态下管理进程
CN109194711B (zh) 一种组织架构的同步方法、客户端、服务端及介质
CN103765342A (zh) 用于连接待机的进程的挂起和/或节制
US11070560B1 (en) Systems and methods for managing user entitlements of objects from heterogeneous content sources
CN112650576A (zh) 资源调度方法、装置、设备、存储介质及计算机程序产品
US9405578B2 (en) Intelligent application back stack management
CN114598665A (zh) 资源调度方法、装置和计算机可读存储介质及电子设备
CN113424152A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1181204

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150728

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150728

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1181204

Country of ref document: HK