金沙娱乐 威尼斯人 太阳城

用于多租户分布式环境中的数据管理的方法和设备pdf金沙娱乐- 威尼斯人- 太阳城 -澳门在线娱乐城

发布时间:2025-10-02 21:18:08  浏览:

  金沙娱乐,金沙娱乐城官网,金沙娱乐城app,金沙娱乐城,金沙赌场网站,金沙博彩,金沙集团官网,金沙赌场网站,金沙官网,金沙app,澳门金沙娱乐城官网,威尼斯人,威尼斯人官网,威尼斯人博彩,威尼斯人app,威尼斯人平台,澳门威尼斯人官网,威尼斯人网址,威尼斯人赌场,太阳城,太阳城娱乐,太阳城app,太阳城app下载,太阳城集团,太阳城赌场,太阳城网络赌博平台,太阳城集团官网,太阳城网站注册,太阳城注册网址,澳门赌场app,澳门赌场官网,澳门赌场在线《用于多租户分布式环境中的数据管理的方法和设备.pdf》由会员分享,可在线阅读,更多相关《用于多租户分布式环境中的数据管理的方法和设备.pdf(16页完整版)》请在专利查询网上搜索。

  1、10申请公布号CN104050201A43申请公布日20140917CN104050201A21申请号申请日20130315G06F17/3020060171申请人伊姆西公司地址美国马萨诸塞州72发明人颜开郭峰向东彭麟杨子夜74专利代理机构北京市金杜律师事务所11256代理人王茂华54发明名称用于多租户分布式环境中的数据管理的方法和设备57摘要本发明涉及用于多租户分布式环境中的数据管理的方法和设备。根据本发明的实施例,可以创建特定于租户的虚拟元数据服务器,并且将其注册至作业处理系统中的任务管理器。虚拟元数据服务器提供特定于租户的逻辑文件系统命名空间。对租户数据的任。

  2、何访问都通过虚拟元数据服务器来完成。换言之,此类虚拟元数据服务器充当租户终端与实体文件系统之间的接口。以此方式,可以有效地实现租户数据的隔离,提高数据的安全性。而且,通过利用虚拟的元数据服务器而不是在物理上隔离用户的数据,本发明的实施例可以在改善数据安全性的同时确保数据共享的效率。51INTCL权利要求书3页说明书9页附图3页19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书9页附图3页10申请公布号CN104050201ACN104050201A1/3页21一种用于在多租户分布式环境中管理租户数据的方法,所述方法包括接收来自租户的针对用于处理作业的资源的请求;响应于所述请求。

  3、,提供特定于所述租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及向用于管理作业处理的作业管理器注册所述虚拟元数据服务器,使得所述作业管理器经由所述虚拟元数据服务器来访问与所述租户有关的数据。2根据权利要求1所述的方法,还包括创建与所述租户相关联的地址映射,所述地址映射用于将所述逻辑文件系统命名空间中的逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。3根据权利要求2所述的方法,还包括接收来自所述虚拟元数据服务器的数据的逻辑地址;借助于所述地址映射将所述逻辑地址转换为所述实际地址;以及经由所述虚拟元数据服务器将所述实际地址。

  4、提供给所述作业管理器。4根据权利要求1所述的方法,还包括从另一租户处接收与所述租户共享数据的请求;响应于所述请求而配置特定于所述租户的所述虚拟元数据服务器,以添加待共享数据在所述逻辑文件系统命名空间中的逻辑地址。5根据权利要求4所述的方法,还包括在与所述租户相关联的地址映射中添加与所述待共享数据相关的映射条目,以用于将所述待共享数据的所述逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。6根据权利要求1所述的方法,其中来自所述租户的所述请求包含服务级别协议SLA的指示,所述方法还包括根据所述SLA指派用于存储与所述租户相关的数据的存储节点。7根据权利要求6所述的。

  5、方法,其中根据所述SLA指派所述存储节点包括响应于所述SLA高于预定阈值,将与所述租户相关的数据存储在专用的存储节点上或者高安全级别的存储节点上。8根据权利要求1所述的方法,其中与多个不同租户相关的数据被存储在单个分布式文件系统中。9根据权利要求1所述的方法,其中提供特定于所述租户的所述虚拟元数据服务器包括配置所述虚拟元数据服务器以执行用于存储租户数据的分布式文件系统的元数据服务器的至少部分功能。10一种用于管理分布式作业处理的方法,所述方法包括注册特定于租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及在处理所述租户的作业期间,经由所述虚拟元数据服务器。

  6、来访问与所述租户有关的数据。权利要求书CN104050201A2/3页311根据权利要求10所述的方法,其中经由所述虚拟元数据服务器来访问与所述租户有关的数据包括接收来自所述租户的处理作业的请求;响应于所述请求,向所述虚拟元数据服务器请求与所述作业有关的数据的存储位置;以及从所述虚拟元数据服务器接收与所述作业有关的所述数据在用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址,所述实际地址表示所述存储位置。12根据权利要求11所述的方法,还包括根据所述实际地址来指派用于执行所述租户的所述作业的执行节点。13一种用于在多租户分布式环境中管理租户数据的设备,所述设备包括接收单元,被配。

  7、置为接收来自租户的针对用于处理作业的资源的请求;提供单元,被配置为响应于所述请求,提供特定于所述租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及注册控制单元,被配置为向管理作业处理的作业管理器注册所述虚拟元数据服务器,使得所述作业管理器经由所述虚拟元数据服务器来访问与所述租户有关的数据。14根据权利要求13所述的设备,还包括地址映射单元,被配置为创建与所述租户相关联的地址映射,所述地址映射用于将所述逻辑文件系统命名空间中的逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。15根据权利要求14所述的设备,还包括地址接收单元。

  8、,被配置为接收来自所述虚拟元数据服务器的数据的逻辑地址;地址转换单元,被配置为借助于所述地址映射将所述逻辑地址转换为所述实际地址;以及地址提供单元,被配置为经由所述虚拟元数据服务器将所述实际地址提供给所述作业管理器。16根据权利要求13所述的设备,还包括共享请求接收单元,被配置为从另一租户处接收与所述租户共享数据的请求;共享管理单元,被配置为响应于所述请求而配置特定于所述租户的所述虚拟元数据服务器,以添加待共享数据在所述逻辑文件系统命名空间中的逻辑地址。17根据权利要求16所述的设备,还包括地址映射管理单元,被配置为在与所述租户相关联的地址映射中添加与所述待共享数据相关的映射条目,以用于将所述。

  9、待共享数据的所述逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。18根据权利要求13所述的设备,其中来自所述租户的所述请求包含服务级别协议SLA的指示,所述设备还包括存储节点指派单元,被配置为根据所述SLA指派用于存储与所述租户相关的数据的存储节点。19根据权利要求18所述的设备,其中所述存储节点指派单元包括配置用于响应于所述SLA高于预定阈值而将与所述租户相关的数据存储在专用的存权利要求书CN104050201A3/3页4储节点上或者高安全级别的存储节点上的单元。20根据权利要求13所述的设备,其中与多个不同租户相关的数据被存储在单个分布式文件系统中。21根。

  10、据权利要求13所述的设备,其中所述提供单元包括被配置为配置所述虚拟元数据服务器以执行用于存储租户数据的分布式文件系统的元数据服务器的至少部分功能的单元。22一种用于管理分布式作业处理的设备,所述设备包括注册单元,被配置为注册特定于租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及数据访问单元,被配置为在处理所述租户的作业期间,经由所述虚拟元数据服务器来访问与所述租户有关的数据。23根据权利要求22所述的设备,其中所述数据访问单元包括作业处理请求接收单元,被配置为接收来自所述租户的处理作业的请求;数据位置请求单元,被配置为响应于所述请求而向所述虚拟元数据服。

  11、务器请求与所述作业有关的数据的存储位置;以及数据位置接收单元,被配置为从所述虚拟元数据服务器接收与所述作业有关的所述数据在用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址,所述实际地址表示所述存储位置。24根据权利要求23所述的设备,还包括作业指派单元,被配置为根据所述实际地址来指派用于执行所述租户的所述作业的执行节点。权利要求书CN104050201A1/9页5用于多租户分布式环境中的数据管理的方法和设备技术领域0001本发明的实施例总体上涉及分布式计算,并且更具体地,涉及用于多租户分布式环境中的数据管理的方法和设备。背景技术0002多租户MULTITENANT分布式计算正。

  12、在得到日益广泛的应用。例如,诸如MAPREDUCE映射化简系统之类的系统已经被用于很多大规模数据分析。很多这样的分布式计算系统依赖于分布式文件系统DISTRIBUTEDFILESYSTEM,DFS提供可扩展的数据存储。在操作中,一个或多个用户提交的数据分析作业JOB被作业服务器划分为多个映射和化简任务TASK。这些任务被分发到不同的任务服务器上执行。在作业的执行过程中,通常要涉及对DFS中存储的数据的读/写操作。0003在现有技术的多用户的分布式计算中,租户数据的安全性面临挑战。例如,在常见的多租户分布式系统中,不同的租户通常共享同一个DFS。由此,不同用户的数据或文件都被存储在该DFS上。而。

  13、且,所有租户都使用DFS的同一个元数据服务器作为接口来访问数据。为了确保用户数据的安全性和隔离性,DFS可以通过为不同的用户设置不同的访问权限来管理用户数据。然而,恶意用户可能盗取其他租户甚至是管理员的口令或者利用其他手段,非法地获得对DFS上存储的其他数据甚至是所有数据的访问权。可以理解,这损害了其他租户的数据的安全性。此外,由多个租户共享单个DFS还可能导致某些其他的限制。例如,租户无法使其数据或文件具有相同的访问路径和名称,因为在多租户场景中,一个租户的文件名可能与同一文件系统命名空间中的其他租户的文件名发生冲突。0004为了解决上述问题,现有技术中已经提出将用户划分到独立的集群中。然而。

  14、,当所处理的作业例如,数据分析涉及跨集群的数据访问时,这种做法将严重影响系统的性能。这是因为在这种情况下,不得不跨集群移动数据。特别地,这种数据移动将给多租户协作、数据在不同租户之间的共享等操作造成不利影响。正如本领域技术人员所知道的,在分布式计算环境中的一个基本原则是应当尽量减少这种数据移动以确保性能。0005综上所述,在现有技术的分布式计算架构中,在用户数据的隔离保护以及不同用户的协作方面均存在着有待改进的问题和缺陷。发明内容0006鉴于上述以及其他潜在问题,本领域中需要一种在多用户分布式环境中更为有效地管理数据的方案。0007在本发明的一个方面,提供一种用于在多租户分布式环境中管理租户数。

  15、据的方法。所述方法包括接收来自租户的针对用于处理作业的资源的请求;响应于所述请求,提供特定于所述租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及向用于管理作业处理的作业管理器注册所述虚拟元数据服务器,使得所述作业管理器经由所述虚拟元数据服务器来访问与所述租户有关的数据。说明书CN104050201A2/9页60008根据本发明的另一方面,提供一种用于管理分布式作业处理的方法。所述方法包括注册特定于租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及在处理所述租户的作业期间,经由所述虚拟元数据服务器来访问与所述租户有。

  16、关的数据。0009根据本发明的又一方面,提供一种用于在多租户分布式环境中管理租户数据的设备。所述设备包括接收单元,被配置为接收来自租户的针对用于处理作业的资源的请求;提供单元,被配置为响应于所述请求,提供特定于所述租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及注册控制单元,被配置为向管理作业处理的作业管理器注册所述虚拟元数据服务器,使得所述作业管理器经由所述虚拟元数据服务器来访问与所述租户有关的数据。0010根据本发明的再一方面,提供一种用于管理分布式作业处理的设备。所述设备包括注册单元,被配置为注册特定于租户的虚拟元数据服务器,所述虚拟元数据服务器。

  17、为所述租户提供独立的逻辑文件系统命名空间;以及数据访问单元,被配置为在处理所述租户的作业期间,经由所述虚拟元数据服务器来访问与所述租户有关的数据。0011通过下文描述将会理解,根据本发明的实施例,可以创建特定于租户的虚拟元数据服务器,并且将其注册至作业处理系统中的任务管理器。虚拟元数据服务器提供特定于租户的逻辑文件系统命名空间。对租户数据的任何访问都通过虚拟元数据服务器来完成。换言之,此类虚拟元数据服务器充当租户终端与实体文件系统之间的接口。以此方式,可以有效地实现租户数据的隔离,提高数据的安全性。而且,通过利用虚拟的元数据服务器而不是在物理上隔离用户的数据,本发明的实施例可以在改善数据安全性。

  18、的同时确保数据共享的效率。附图说明0012通过参考附图阅读下文的详细描述,本发明实施例的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施例,其中0013图1示出了根据本发明一个示例性实施例的多租户分布式计算环境的框图;0014图2示出了根据本发明一个示例性实施例的用于在多租户分布式环境中管理租户数据的方法的流程图;0015图3示出了根据本发明一个示例性实施例的用于管理分布式作业处理的方法的流程图;0016图4示出了根据本发明一个示例性实施例的用于在多租户分布式环境中管理租户数据的设备的框图;0017图5示出了根据本发明一个示例性实施例的用于管。

  19、理分布式作业处理的设备的框图;以及0018图6示出了可与本发明的示例性实施例结合使用的计算机系统的框图。0019在各个附图中,相同或对应的标号表示相同或对应的部分。具体实施方式说明书CN104050201A3/9页70020下面将参考附图中示出的若干示例性实施例来描述本发明的原理和精神。给出这些实施例仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。0021首先参考图1,其示出了根据本发明一个实施例的多租户分布式环境100的框图。如图所示,在环境100中包括租户终端1011、1012、101N统称为“租户客户端101”,作业处理系统102,分布式文件系统。

  20、DFS103,以及租户数据管理控制器简称“控制器”104。注意,环境100中所示的各个组成部分的数目仅仅是示意性的,并非意在限制本发明的范围。例如,可以存在任意数目的作业处理系统102和/或DFS103。0022根据本发明的实施例,租户终端101可以是与租户相关联的任何适当的计算设备,包括但不限于个人计算机PC、膝上型计算机、平板式计算机、个人数字助理器PDA、移动终端,等等。租户终端101上可以安装和执行用于处理作业的作业客户端程序105为清晰起见,图中尽在租户终端1011中示出。例如,作业客户端程序可能是用于处理MAPREDUCE作业的MAPREDUCE客户端,当然这仅仅是一个示例。在操作。

  21、中,为了对作业进行处理,租户终端101可以向控制器104发送请求,以获得处理作业所需的资源包括存储资源和计算资源。0023根据本发明的实施例,控制器104负责控制和管理多租户分布式环境100中的运行。响应于来自租户终端101的请求,控制器104可以为发出该请求的租户终端分配资源。此时,在多租户分布式计算环境100中,获得资源分配的租户终端101形成了一个逻辑上的“租户分析区域”。控制器104可以在DFS103中为租户指派存储节点1101、110N统称为“存储节点110”中的一个或多个以用于存储和管理该租户的数据。根据本发明的实施例,存储节点110例如可以是数据存储服务器。0024根据本发明的实。

  22、施例,由租户终端101发送给控制器104的资源请求中可以包含服务协议级别SERVICELEVELAGREEMENT,SLA的指示。在这种情况下,控制器104可以根据SLA来指派用于存储租户数据的存储节点110。例如,SLA级别较高的租户的数据可被存储在更加安全、可靠的存储节点110上。特别地,根据本发明的某些实施例,响应于一个租户的SLA高于预定阈值,可以对该租户的数据进行单独的隔离存储。换言之,可以为这样的租户提供专用的存储节点110以供该租户排他地使用,而不会存储其他任何租户的数据,也不允许其他任何租户访问。备选地或附加地,对于SLA高于预定阈值的租户,可以将其数据存储在高安全级别的存储节。

  23、点上。高安全级别的存储节点例如具有较高的可靠性、性能、安全认证要求和/或较为完善的网络隔离措施,等等。为租户终端分配资源的其他细节是本领域中已知的,在此不再赘述以避免混淆本发明的实质。0025在分配资源之后,在现有技术中,作业处理系统102更具体地,作业处理系统102中包括的执行节点1061、106N,统称为“执行节点106”直接与DFS103通信,以访问存储在存储节点110上的租户数据。然而,正如上文所分析,这样做可能无法确保租户数据的安全性。与此不同,根据本发明的实施例,响应于来自租户的资源请求,控制器104在租户终端101上提供一个虚拟元数据服务器107。该虚拟元数据服务器107例如可以。

  24、是运行在租户终端101上的一个进程或应用。根据本发明的实施例,虚拟元数据服务器107是特定于租户的。在此使用的术语“特定”是指所提供的虚拟元数据服务器107仅仅与租户终端101的租户相关联,而不能由其他任何租户来使用。说明书CN104050201A4/9页80026根据本发明的实施例,由控制器104为租户提供的虚拟元数据服务器107为租户提供独立的或者说隔离的逻辑文件系统命名空间。该逻辑文件系统命名空间仅由与虚拟元数据服务器107相关联的租户使用。在该逻辑文件系统命名空间中,租户可以使用逻辑地址来访问与之相关的数据。为此,虚拟元数据服务器107例如可以维护与关联的租户及其作业有关的数据例如,一。

  25、个或多个文件在逻辑文件系统命名空间中的逻辑地址的列表。0027可以理解,由虚拟元数据服务器107所提供的逻辑文件系统命名空间中的逻辑地址与数据在DFS103中的实际存储地址未必总是一致的。因此,控制器104可以创建与租户相关联的地址映射,用于将特定于该租户的虚拟元数据服务器107所提供的逻辑文件系统命名空间中的逻辑地址转换为DFS103的全局文件系统命名空间中的实际地址。可以理解,因为控制器104了解虚拟元数据服务器107的逻辑地址和DFS103的实际地址二者的命名规则。因此,控制器104可以实现这种地址映射。0028注意,这种地址映射并不是必须的。例如,如上所述,对于SLA高于预定阈值的租户。

  26、而言,其数据可以被单独存储在独立的存储节点110上。在这种情况下,虚拟元数据服务器107提供的逻辑地址与DFS103中的全局实际地址可以是一致的。此时无需地址映射。0029继续参考图1,根据本发明的实施例,与租户及其作业有关的所有数据的访问都要经由特定于该租户的虚拟元数据服务器来执行。为此,控制器104还需要向作业处理系统102中的作业管理器108注册虚拟元数据服务器107。响应于控制器104的指示,作业管理器108例如可以通过创建和维护租户和/或租户终端101与虚拟元数据服务器107之间的映射关系,来完成对特定于租户的虚拟元数据服务器107的注册。特别地,由于虚拟元数据服务器107仅与一个特。

  27、定的租户/租户终端101相关联,因此这种映射关系是一一映射。换言之,对于每个租户,作业管理器可以根据租户的身份标识信息、通过查找映射来确定与该租户相关联的唯一的虚拟元数据服务器107。0030除此之外,作业管理器108还可以负责对租户和/租户终端101进行必要的认证和检查,将来自租户的作业分发至适当的一个或多个执行节点106以便执行,根据用户SLA来控制作业的执行,和/或跟踪作业执行的执行情况,等等。作业管理器108的一个示例例如HADOOP系统中的JOBTRACKER作业,等等。这些是本领域技术人员所知道的,在此不再赘述。0031在操作中,当租户期望处理作业时,他/她可以使用租户终端1。

  28、01向作业处理系统102中的作业管理器108作业处理请求,从而将待处理的作业提交给作业处理系统102。作业管理器108可以连接虚拟元数据服务器107以确定所要执行的租户作业所涉及的数据的存储位置。在某些实施例中,为了确保作业管理器108的向前兼容性,虚拟元数据服务器107可以提供DFS接口。此时,作业管理器108可以通过这些DFS接口与虚拟元数据服务器107交互,就像与DFS103的实体元数据服务器109交互一样。0032作为响应,虚拟元数据服务器107确定作业所涉及数据在逻辑文件系统命名空间中的逻辑地址,并且将逻辑地址提供给DFS103的实体元数据服务109。DFS103的元数据服务器109。

  29、负责管理数据在存储节点110上的存储和访问,它转而与控制器104通信,以便将来自虚拟元数据服务器107的数据逻辑地址转发给控制器104。然后,控制器104确定该数据在DFS103全局文件系统命名空间中的实际地址。例如,在上文描述的可选实施例中,可以借助于地址映射将数据的逻辑地址转换为DFS103中的全局实际地址。备选地,如果控制说明书CN104050201A5/9页9器104确定当前租户的SLA高于预定阈值并且因此而具有专用的数据存储节点110,则可以直接以虚拟地址作为实际地址。0033在确定了表示作业数据存储位置的实际地址之后,控制器104可以经由虚拟元数据服务器107将该实际地址返回给作业。

  30、处理系统103中的作业管理器108。作业管理器108由此可以确定数据的实际存储位置,并且实现对数据的访问。特别地,根据某些可选实施例,作业管理器108可以根据数据的存储位置来确定将该作业分发给哪些执行节点106。例如,作业管理器108可以选择与存储作业数据的存储节点103位于同一物理机器上的执行节点106来执行该任务。以此方式,可以避免额外的数据通信和移动。0034在整个作业的执行期间,当作业管理器108需要访问租户数据时,它总是经由特定于该租户的虚拟元数据服务器107来实现数据访问。换言之,虚拟元数据服务器107不仅为租户提供隔离的、独立的逻辑文件系统命名空间,而且充当DFS103与租户客户。

  31、端101和作业管理器108之间的接口或桥梁。以此方式,可以确保租户数据的隔离访问,并且由此提高数据安全性。0035根据本发明的某些实施例,为了进一步提高操作效率,除了上文描述的DFS接口之外,控制器104还可以在提供虚拟元数据服务器107时将其配置为实现DFS103的实体元数据服务器109的至少部分功能。例如,根据某些实施例,类似于元数据服务器的“LIST”列出操作之类的功能可在虚拟元数据服务器107上实现,从而进一步减少租户终端101和作业管理器108与DFS103之间的通信。0036另外,本发明的实施例可以支持不同租户之间的容易的数据共享。例如,假设一个租户记为“租户A”希望将与之关联的数。

  32、据例如,形式为一个或多个文件与另一租户记为“租户B”共享。此时,租户A可以使用其租户终端101将共享数据的请求发送给控制器104,该请求中包含有待共享数据的在特定于租户A的虚拟元数据服务器107所提供的逻辑文件系统命名空间中的逻辑地址。作为响应,控制器104可以配置特定于租户B的虚拟元数据服务器107,以便在它所提供的逻辑文件命名空间中添加待共享数据的逻辑地址。0037例如,控制器104可以首先根据租户A提供的待共享数据的逻辑地址来确定该数据的实际地址可能借助于地址映射。继而,控制器104可以根据特定于租户B的元数据服务器107所提供的逻辑文件系统命名空间中的命名规则,确定该实际地址在租户B的。

  33、逻辑文件系统命名空间中的逻辑地址。由此,控制器104可以配置特定于租户B的虚拟元数据服务器107,以便添加该逻辑地址。以此方式,作业管理器108和/或租户B的租户终端101可以借助于特定于租户B的虚拟元数据服务器107来访问租户A的已共享数据。0038另外,如上所述,在某些可选实施例中,控制器104可能需要实现逻辑地址与实际地址之间的映射。在这些实施例中,控制器104还可以在与租户B相关联的地址映射中添加与待共享数据相关联的映射条目,以便能够将该数据在用于租户B的逻辑文件系统命名空间中的逻辑地址转换为DFS103中的全局实际地址。0039将会理解,根据本发明的实施例,租户数据的隔离和保护是借助。

  34、于特定于每个租户的虚拟的元数据服务器来实现的。在物理实现上,租户数据仍然可由单个DFS来存储。借助于这种虚拟的或者说逻辑上的隔离而不是物理的隔离,可以在提高数据安全性的同时确保数据的跨用户共享,进而提高数据分析等作业的执行效率。0040可选地,为了便于数据在不同租户之间的共享,根据本发明的某些实施例,可以由说明书CN104050201A6/9页10单个DFS103来管理和存储所有用户租户的数据。这样,可以减少数据共享中可能出现的数据迁移,从而进一步提高整个系统的性能。0041下面参考图2,其示出了根据本发明实施例的用于在多租户分布式环境中管理租户数据的方法200的流程图。方法200可以由驻留在。

  35、上文参考图1描述的租户数据管理控制器104之上或以其他方式与之关联的设备来执行。0042方法200开始之后,在步骤S201,接收来自租户的针对用于处理作业的资源的请求。接下来,在步骤S202,响应于所述请求,提供特定于所述租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间。最后,方法200进行到步骤S203,在此向管理作业处理的作业管理器注册所述虚拟元数据服务器,使得所述作业管理器经由所述虚拟元数据服务器来访问与所述租户有关的数据。0043如上文所述,在某些可选的实施例中,方法200还可以包括创建与所述租户相关联的地址映射,所述地址映射用于将所述逻辑文件系统命。

  36、名空间中的逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。0044在某些可选的实施例中,方法200还可以包括接收来自所述虚拟元数据服务器的数据的逻辑地址;借助于所述地址映射将所述逻辑地址转换为所述实际地址;以及经由所述虚拟元数据服务器将所述实际地址提供给所述作业管理器。0045在某些可选的实施例中,方法200还可以包括从另一租户处接收与所述租户共享数据的请求;响应于所述请求而配置特定于所述租户的所述虚拟元数据服务器,以添加待共享数据在所述逻辑文件系统命名空间中的逻辑地址。这这些实施例中,方法200还可以包括在与所述租户相关联的地址映射中添加与所述待共享数据相关。

  37、的映射条目,以用于将所述待共享数据的所述逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。0046在某些可选的实施例中,在步骤S201中接收的来自所述租户的所述请求可以包含服务级别协议SLA的指示。在这些实施例中,方法200还可以包括根据所述SLA指派用于存储与所述租户相关的数据的存储节点。特别地,根据所述SLA指派所述存储节点例如可以包括响应于所述SLA高于预定阈值,将与所述租户相关的数据存储在专用的存储节点上或者高安全级别的存储节点上。0047根据本发明的某些实施例,与多个不同租户相关的数据可被存储在单个分布式文件系统中。备选地或附加地,在步骤S202中,提。

  38、供特定于所述租户的所述虚拟元数据服务器包括配置所述虚拟元数据服务器以执行用于存储租户数据的分布式文件系统的元数据服务器的至少部分功能。0048方法200在步骤S203之后结束。0049下面参考图3,其示出了根据本发明实施例的用于管理分布式作业处理的方法300的流程图。方法300可以由驻留在上文参考图1描述的作业管理器108之上或以其他方式与之关联的设备来执行。0050方法300开始之后,在步骤S301,注册特定于租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间。接下来,在步骤S302,在处理所述租户的作业期间,经由所述虚拟元数据服务器来访问与所述租户有关的数。

  39、据。0051根据某些可选实施例,在步骤S302处的操作可以包括接收来自所述租户的处理说明书CN104050201A107/9页11作业的请求;响应于所述请求,向所述虚拟元数据服务器请求与所述作业有关的数据的存储位置;以及从所述虚拟元数据服务器接收与所述作业有关的所述数据在用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址,所述实际地址表示所述存储位置。在这些实施例中,方法300还可以包括根据所述实际地址来指派用于执行所述租户的所述作业的执行节点。0052方法300在步骤S302之后结束。0053注意,为了描述的清晰和方便起见,在图2和图3所示的流程图中没有示出方法的可选步骤。应。

  40、当理解,上文结合图1描述的各个操作及其特征适用于方法200和300。0054现在参考图4,其示出了根据本发明实施例的用于在多租户分布式环境中管理租户数据的设备400的框图。根据本发明的实施例,设备400可以驻留在上文参考图1描述的租户数据管理控制器104之上或以其他方式与之关联。0055如图所示,设备400包括接收单元401,被配置为接收来自租户的针对用于处理作业的资源的请求;提供单元402,被配置为响应于所述请求,提供特定于所述租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及注册控制单元403,被配置为向管理作业处理的作业管理器注册所述虚拟元数据服务。

  41、器,使得所述作业管理器经由所述虚拟元数据服务器来访问与所述租户有关的数据。0056在某些可选实施例中,设备400还可以包括地址映射单元,被配置为创建与所述租户相关联的地址映射,所述地址映射用于将所述逻辑文件系统命名空间中的逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。在这些实施例中,设备400还可以包括地址接收单元,被配置为接收来自所述虚拟元数据服务器的数据的逻辑地址;地址转换单元,被配置为借助于所述地址映射将所述逻辑地址转换为所述实际地址;以及地址提供单元,被配置为经由所述虚拟元数据服务器将所述实际地址提供给所述作业管理器。0057在某些可选实施例中,设备。

  42、400还可以包括共享请求接收单元,被配置为从另一租户处接收与所述租户共享数据的请求;共享管理单元,被配置为响应于所述请求而配置特定于所述租户的所述虚拟元数据服务器,以添加待共享数据在所述逻辑文件系统命名空间中的逻辑地址。在这些实施例中,设备400还可以包括地址映射管理单元,被配置为在与所述租户相关联的地址映射中添加与所述待共享数据相关的映射条目,以用于将所述待共享数据的所述逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。0058在某些可选实施例中,来自所述租户的所述请求包含服务级别协议SLA的指示。在这些实施例中,设备400还可以包括存储节点指派单元,被配置为。

  43、根据所述SLA指派用于存储与所述租户相关的数据的存储节点。在这些实施例中,存储节点指派单元例如可以包括配置用于响应于所述SLA高于预定阈值而将与所述租户相关的数据存储在专用的存储节点上或者高安全级别的存储节点上的单元。0059在某些可选实施例中,与多个不同租户相关的数据可被存储在单个分布式文件系统中。备选地或附加地,提供单元402可以包括被配置为配置所述虚拟元数据服务器以执行用于存储租户数据的分布式文件系统的元数据服务器的至少部分功能的单元。0060下面参考图5,其示出了根据本发明实施例的用于管理分布式作业处理的设备说明书CN104050201A118/9页12500的框图。根据本发明的实施例。

  44、,设备500可以驻留在上文参考图1描述的作业管理器108之上或以其他方式与之关联。0061如图所示,设备500包括注册单元501,被配置为注册特定于租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及数据访问单元502,被配置为在处理所述租户的作业期间,经由所述虚拟元数据服务器来访问与所述租户有关的数据。0062在某些可选实施例中,数据访问单元502可以包括作业处理请求接收单元,被配置为接收来自所述租户的处理作业的请求;数据位置请求单元,被配置为响应于所述请求而向所述虚拟元数据服务器请求与所述作业有关的数据的存储位置;以及数据位置接收单元,被配置为从所述虚。

  45、拟元数据服务器接收与所述作业有关的所述数据在用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址,所述实际地址表示所述存储位置。在这些实施例中,设备500还可以包括作业指派单元,被配置为根据所述实际地址来指派用于执行所述租户的所述作业的执行节点。0063为清晰起见,在图4和图5中没有示出设备400和500包含的可选单元以及各个单元所包含的子单元。然而,应当理解,上文参考图1描述的各个特征同样适用于设备400和500,在此不再赘述。0064应当理解,设备400和500可以利用各种方式实现。例如,在某些实施例中,设备400和500可以利用软件和/或固件来实现。例如,设备400和500。

  46、可以被实现为包含在计算机可读介质上的计算机程序产品,其中的每个单元是通过计算机指令来实现其功能的程序模块。备选地或附加地,设备400和500可以部分地或者完全地基于硬件来实现。例如,设备400和500可被实现为集成电路IC芯片、专用集成电路ASIC或者片上系统SOC。现在已知或者将来开发的其他方式也是可行的,本发明的范围在此方面不受限制。0065下面参考图6,其示出了适于用来实践本发明实施方式的计算机系统的示意性框图。如图6所示,计算机系统可以包括CPU中央处理单元601、RAM随机存取存储器602、ROM只读存储器603、系统总线、并行接口控制器608、显示控制器609、硬盘610、键盘611、串行外部设备612、并行外部设备613和显示器614。在这些设备中,与系统总线、键盘控制器606、串行控制器607、并行控制器608和显示控制器609。硬盘610与硬盘控制器605耦合,键盘611与键盘控制器606耦合,串行外部设备612与串行接口控制器607耦合,并行外部设备613与并行接口控制器608耦合,以及显示器614与显示控制器609耦合。应当理解,图6所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体。

  48、情况而增加或者减少某些设备。0066如上所述,设备400和500可以通过硬件实现,例如芯片、ASIC、SOC等。这些硬件可以集成在计算机系统600中。此外,本发明的实施例也可以通过计算机程序产品的形式实现。例如,本发明的方法均可通过计算机程序产品来实现。该计算机程序产品可以存储在例如图6所示的RAM604、ROM604、硬盘610和/或任何适当的存储介质中,或者通过网络从适当的位置下载到计算机系统600上。计算机程序产品可以包括计算机代码部分,其包括可由适当的处理设备例如,图6中示出的CPU601执行的程序指令。所述程序指令至说明书CN104050201A129/9页13少可以包括用于实现本发。

  49、明方法的步骤的指令。0067本发明的实施例可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的系统和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVDROM的载体介质、诸如只读存储器固件的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明系统可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。0068应当注意,尽管在上文详细描述中提及了设备的若干单元或子单元,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施例,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来实现。0069此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤。

  本发明涉及用于多租户分布式环境中的数据管理的方法和设备。根据本发明的实施例,可以创建特定于租户的虚拟元数据服务器,并且将其注册至作业处理系统中的任务管理器。虚拟元数据服务器提供特定于租户的逻辑文件系统命名空间。对租户数据的任何访问都通过虚拟元数据服务器来完成。换言之,此类虚拟元数据服务器充当租户终端与实体文件系统之间的接口。以此方式,可以有效地实现租户数据的隔离,提高数据的安全性。而且,通过利用虚拟的元数据服务器而不是在物理上隔离用户的数据,本发明的实施例可以在改善数据安全性的同时确保数据共享的效率。

  一种用于在多租户分布式环境中管理租户数据的方法,所述方法包括:接收来自租户的针对用于处理作业的资源的请求;响应于所述请求,提供特定于所述租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及

  向用于管理作业处理的作业管理器注册所述虚拟元数据服务器,使得所述作业管理器经由所述虚拟元数据服务器来访问与所述租户有关的数据。

  创建与所述租户相关联的地址映射,所述地址映射用于将所述逻辑文件系统命名空间中的逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。

  接收来自所述虚拟元数据服务器的数据的逻辑地址;借助于所述地址映射将所述逻辑地址转换为所述实际地址;以及

  从另一租户处接收与所述租户共享数据的请求;响应于所述请求而配置特定于所述租户的所述虚拟元数据服务器,以添加待共享数据在所述逻辑文件系统命名空间中的逻辑地址。

  在与所述租户相关联的地址映射中添加与所述待共享数据相关的映射条目,以用于将所述待共享数据的所述逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。

  6.根据权利要求1所述的方法,其中来自所述租户的所述请求包含服务级别协议SLA的指示,所述方法还包括:

  响应于所述SLA高于预定阈值,将与所述租户相关的数据存储在专用的存储节点上或者高安全级别的存储节点上。

  8.根据权利要求1所述的方法,其中与多个不同租户相关的数据被存储在单个分布式文件系统中。

  9.根据权利要求1所述的方法,其中提供特定于所述租户的所述虚拟元数据服务器包括:

  配置所述虚拟元数据服务器以执行用于存储租户数据的分布式文件系统的元数据服务器的至少部分功能。

  注册特定于租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及在处理所述租户的作业期间,经由所述虚拟元数据服务器来访问与所述租户有关的数据。

  11.根据权利要求10所述的方法,其中经由所述虚拟元数据服务器来访问与所述租户有关的数据包括:

  接收来自所述租户的处理作业的请求;响应于所述请求,向所述虚拟元数据服务器请求与所述作业有关的数据的存储位置;以及

  从所述虚拟元数据服务器接收与所述作业有关的所述数据在用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址,所述实际地址表示所述存储位置。

  接收单元,被配置为接收来自租户的针对用于处理作业的资源的请求;提供单元,被配置为响应于所述请求,提供特定于所述租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及

  注册控制单元,被配置为向管理作业处理的作业管理器注册所述虚拟元数据服务器,使得所述作业管理器经由所述虚拟元数据服务器来访问与所述租户有关的数据。

  地址映射单元,被配置为创建与所述租户相关联的地址映射,所述地址映射用于将所述逻辑文件系统命名空间中的逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。

  地址接收单元,被配置为接收来自所述虚拟元数据服务器的数据的逻辑地址;地址转换单元,被配置为借助于所述地址映射将所述逻辑地址转换为所述实际地址;以及

  地址提供单元,被配置为经由所述虚拟元数据服务器将所述实际地址提供给所述作业管理器。

  共享请求接收单元,被配置为从另一租户处接收与所述租户共享数据的请求;共享管理单元,被配置为响应于所述请求而配置特定于所述租户的所述虚拟元数据服务器,以添加待共享数据在所述逻辑文件系统命名空间中的逻辑地址。

  地址映射管理单元,被配置为在与所述租户相关联的地址映射中添加与所述待共享数据相关的映射条目,以用于将所述待共享数据的所述逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。

  18.根据权利要求13所述的设备,其中来自所述租户的所述请求包含服务级别协议SLA的指示,所述设备还包括:

  存储节点指派单元,被配置为根据所述SLA指派用于存储与所述租户相关的数据的存储节点。

  配置用于响应于所述SLA高于预定阈值而将与所述租户相关的数据存储在专用的存储节点上或者高安全级别的存储节点上的单元。

  20.根据权利要求13所述的设备,其中与多个不同租户相关的数据被存储在单个分布式文件系统中。

  被配置为配置所述虚拟元数据服务器以执行用于存储租户数据的分布式文件系统的元数据服务器的至少部分功能的单元。

  注册单元,被配置为注册特定于租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及数据访问单元,被配置为在处理所述租户的作业期间,经由所述虚拟元数据服务器来访问与所述租户有关的数据。

  作业处理请求接收单元,被配置为接收来自所述租户的处理作业的请求;数据位置请求单元,被配置为响应于所述请求而向所述虚拟元数据服务器请求与所述作业有关的数据的存储位置;以及

  数据位置接收单元,被配置为从所述虚拟元数据服务器接收与所 述作业有关的所述数据在用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址,所述实际地址表示所述存储位置。

  作业指派单元,被配置为根据所述实际地址来指派用于执行所述租户的所述作业的执行节点。

  本发明的实施例总体上涉及分布式计算,并且更具体地,涉及用于多租户分布式环境中的数据管理的方法和设备。

  多租户(multi-tenant)分布式计算正在得到日益广泛的应用。例如,诸如MapReduce(映射化简)系统之类的系统已经被用于很多大规模数据分析。很多这样的分布式计算系统依赖于分布式文件系统(DistributedFileSystem,DFS)提供可扩展的数据存储。在操作中,一个或多个用户提交的数据分析作业(job)被作业服务器划分为多个映射和化简任务(task)。这些任务被分发到不同的任务服务器上执行。在作业的执行过程中,通常要涉及对DFS中存储的数据的读/写操作。在现有技术的多用户的分布式计算中,租户数据的安全性面临挑战。例如,在常见的多租户分布式系统中,不同的租户通常共享同一个DFS。由此,不同用户的数据或文件都被存储在该DFS上。而且,所有租户都使用DFS的同一个元数据服务器作为接口来访问数据。为了确保用户数据的安全性和隔离性,DFS可以通过为不同的用户设置不同的访问权限来管理用户数据。然而,恶意用户可能盗取其他租户甚至是管理员的口令或者利用其他手段,非法地获得对DFS上存储的其他数据甚至是所有数据的访问权。可以理解,这损害了其他租户的数据的安全性。此外,由多个租户共享单个DFS还可能导致某些其他的限制。例如,租户无法使其数据或文件具有相同的访问路径和名称,因为在多租户场景中,一个租户的文件名可能与同一文件系统命名空间中的其他租户的文件名发生冲突。

  为了解决上述问题,现有技术中已经提出:将用户划分到独立的集群中。然而,当所处理的作业(例如,数据分析)涉及跨集群的数据访问时,这种做法将严重影响系统的性能。这是因为在这种情况下,不得不跨集群移动数据。特别地,这种数据移动将给多租户协作、数据在不同租户之间的共享等操作造成不利影响。正如本领域技术人员所知道的,在分布式计算环境中的一个基本原则是:应当尽量减少这种数据移动以确保性能。

  综上所述,在现有技术的分布式计算架构中,在用户数据的隔离保护以及不同用户的协作方面均存在着有待改进的问题和缺陷。

  鉴于上述以及其他潜在问题,本领域中需要一种在多用户分布式环境中更为有效地管理数据的方案。在本发明的一个方面,提供一种用于在多租户分布式环境中管理租户数据的方法。所述方法包括:接收来自租户的针对用于处理作业的资源的请求;响应于所述请求,提供特定于所述租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及向用于管理作业处理的作业管理器注册所述虚拟元数据服务器,使得所述作业管理器经由所述虚拟元数据服务器来访问与所述租户有关的数据。

  根据本发明的另一方面,提供一种用于管理分布式作业处理的方法。所述方法包括:注册特定于租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及在处理所述租户的作业期间,经由所述虚拟元数据服务器来访问与所述租户有关的数据。

  根据本发明的又一方面,提供一种用于在多租户分布式环境中管理租户数据的设备。所述设备包括:接收单元,被配置为接收来自租户的针对用于处理作业的资源的请求;提供单元,被配置为响应于所述请求,提供特定于所述租户的虚拟元数据服务器,所述虚拟元数据 服务器为所述租户提供独立的逻辑文件系统命名空间;以及注册控制单元,被配置为向管理作业处理的作业管理器注册所述虚拟元数据服务器,使得所述作业管理器经由所述虚拟元数据服务器来访问与所述租户有关的数据。

  根据本发明的再一方面,提供一种用于管理分布式作业处理的设备。所述设备包括:注册单元,被配置为注册特定于租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及数据访问单元,被配置为在处理所述租户的作业期间,经由所述虚拟元数据服务器来访问与所述租户有关的数据。

  通过下文描述将会理解,根据本发明的实施例,可以创建特定于租户的虚拟元数据服务器,并且将其注册至作业处理系统中的任务管理器。虚拟元数据服务器提供特定于租户的逻辑文件系统命名空间。对租户数据的任何访问都通过虚拟元数据服务器来完成。换言之,此类虚拟元数据服务器充当租户终端与实体文件系统之间的接口。以此方式,可以有效地实现租户数据的隔离,提高数据的安全性。而且,通过利用虚拟的元数据服务器而不是在物理上隔离用户的数据,本发明的实施例可以在改善数据安全性的同时确保数据共享的效率。

  通过参考附图阅读下文的详细描述,本发明实施例的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施例,其中:图1示出了根据本发明一个示例性实施例的多租户分布式计算环境的框图;

  图2示出了根据本发明一个示例性实施例的用于在多租户分布式环境中管理租户数据的方法的流程图;

  图3示出了根据本发明一个示例性实施例的用于管理分布式作业处理的方法的流程图;

  图4示出了根据本发明一个示例性实施例的用于在多租户分布式 环境中管理租户数据的设备的框图;

  图5示出了根据本发明一个示例性实施例的用于管理分布式作业处理的设备的框图;以及

  下面将参考附图中示出的若干示例性实施例来描述本发明的原理和精神。给出这些实施例仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。首先参考图1,其示出了根据本发明一个实施例的多租户分布式环境100的框图。如图所示,在环境100中包括租户终端101-1、101-2、...、101-n(统称为“租户客户端101”),作业处理系统102,分布式文件系统(DFS)103,以及租户数据管理控制器(简称“控制器”)104。注意,环境100中所示的各个组成部分的数目仅仅是示意性的,并非意在限制本发明的范围。例如,可以存在任意数目的作业处理系统102和/或DFS103。

  根据本发明的实施例,租户终端101可以是与租户相关联的任何适当的计算设备,包括但不限于个人计算机(PC)、膝上型计算机、平板式计算机、个人数字助理器(PDA)、移动终端,等等。租户终端101上可以安装和执行用于处理作业的作业客户端程序105(为清晰起见,图中尽在租户终端101-1中示出)。例如,作业客户端程序可能是用于处理MapReduce作业的MapReduce客户端,当然这仅仅是一个示例。在操作中,为了对作业进行处理,租户终端101可以向控制器104发送请求,以获得处理作业所需的资源(包括存储资源和计算资源)。

  根据本发明的实施例,控制器104负责控制和管理多租户分布式环境100中的运行。响应于来自租户终端101的请求,控制器104可 以为发出该请求的租户终端分配资源。此时,在多租户分布式计算环境100中,获得资源分配的租户终端101形成了一个逻辑上的“租户分析区域”。控制器104可以在DFS103中为租户指派存储节点110-1、...、110-n(统称为“存储节点110”)中的一个或多个以用于存储和管理该租户的数据。根据本发明的实施例,存储节点110例如可以是数据存储服务器。

  根据本发明的实施例,由租户终端101发送给控制器104的资源请求中可以包含服务协议级别(ServiceLevelAgreement,SLA)的指示。在这种情况下,控制器104可以根据SLA来指派用于存储租户数据的存储节点110。例如,SLA级别较高的租户的数据可被存储在更加安全、可靠的存储节点110上。特别地,根据本发明的某些实施例,响应于一个租户的SLA高于预定阈值,可以对该租户的数据进行单独的隔离存储。换言之,可以为这样的租户提供专用的存储节点110以供该租户排他地使用,而不会存储其他任何租户的数据,也不允许其他任何租户访问。备选地或附加地,对于SLA高于预定阈值的租户,可以将其数据存储在高安全级别的存储节点上。高安全级别的存储节点例如具有较高的可靠性、性能、安全认证要求和/或较为完善的网络隔离措施,等等。为租户终端分配资源的其他细节是本领域中已知的,在此不再赘述以避免混淆本发明的实质。

  在分配资源之后,在现有技术中,作业处理系统102(更具体地,作业处理系统102中包括的执行节点106-1、...、106-n,统称为“执行节点106”)直接与DFS103通信,以访问存储在存储节点110上的租户数据。然而,正如上文所分析,这样做可能无法确保租户数据的安全性。与此不同,根据本发明的实施例,响应于来自租户的资源请求,控制器104在租户终端101上提供一个虚拟元数据服务器107。该虚拟元数据服务器107例如可以是运行在租户终端101上的一个进程或应用。根据本发明的实施例,虚拟元数据服务器107是特定于租户的。在此使用的术语“特定”是指所提供的虚拟元数据服务器107仅仅与租户终端101的租户相关联,而不能由其他任何租户来使用。

  根据本发明的实施例,由控制器104为租户提供的虚拟元数据服务器107为租户提供独立的或者说隔离的逻辑文件系统命名空间。该逻辑文件系统命名空间仅由与虚拟元数据服务器107相关联的租户使用。在该逻辑文件系统命名空间中,租户可以使用逻辑地址来访问与之相关的数据。为此,虚拟元数据服务器107例如可以维护与关联的租户及其作业有关的数据(例如,一个或多个文件)在逻辑文件系统命名空间中的逻辑地址的列表。

  可以理解,由虚拟元数据服务器107所提供的逻辑文件系统命名空间中的逻辑地址与数据在DFS103中的实际存储地址未必总是一致的。因此,控制器104可以创建与租户相关联的地址映射,用于将特定于该租户的虚拟元数据服务器107所提供的逻辑文件系统命名空间中的逻辑地址转换为DFS103的全局文件系统命名空间中的实际地址。可以理解,因为控制器104了解虚拟元数据服务器107的逻辑地址和DFS103的实际地址二者的命名规则。因此,控制器104可以实现这种地址映射。

  注意,这种地址映射并不是必须的。例如,如上所述,对于SLA高于预定阈值的租户而言,其数据可以被单独存储在独立的存储节点110上。在这种情况下,虚拟元数据服务器107提供的逻辑地址与DFS103中的全局实际地址可以是一致的。此时无需地址映射。

  继续参考图1,根据本发明的实施例,与租户及其作业有关的所有数据的访问都要经由特定于该租户的虚拟元数据服务器来执行。为此,控制器104还需要向作业处理系统102中的作业管理器108注册虚拟元数据服务器107。响应于控制器104的指示,作业管理器108例如可以通过创建和维护租户和/或租户终端101与虚拟元数据服务器107之间的映射关系,来完成对特定于租户的虚拟元数据服务器107的注册。特别地,由于虚拟元数据服务器107仅与一个特定的租户/租户终端101相关联,因此这种映射关系是一一映射。换言之,对于每个租户,作业管理器可以根据租户的身份标识信息、通过查找映射来确定与该租户相关联的唯一的虚拟元数据服务器107。

  除此之外,作业管理器108还可以负责对租户和/租户终端101进行必要的认证和检查,将来自租户的作业分发至适当的一个或多个执行节点106以便执行,根据用户SLA来控制作业的执行,和/或跟踪作业执行的执行情况,等等。作业管理器108的一个示例例如Hadoop系统中的JobTracker(作业),等等。这些是本领域技术人员所知道的,在此不再赘述。

  在操作中,当租户期望处理作业时,他/她可以使用租户终端101向作业处理系统102中的作业管理器108作业处理请求,从而将待处理的作业提交给作业处理系统102。作业管理器108可以连接虚拟元数据服务器107以确定所要执行的租户作业所涉及的数据的存储位置。在某些实施例中,为了确保作业管理器108的向前兼容性,虚拟元数据服务器107可以提供DFS接口。此时,作业管理器108可以通过这些DFS接口与虚拟元数据服务器107交互,就像与DFS103的实体元数据服务器109交互一样。

  作为响应,虚拟元数据服务器107确定作业所涉及数据在逻辑文件系统命名空间中的逻辑地址,并且将逻辑地址提供给DFS103的实体元数据服务109。DFS103的元数据服务器109负责管理数据在存储节点110上的存储和访问,它转而与控制器104通信,以便将来自虚拟元数据服务器107的数据逻辑地址转发给控制器104。然后,控制器104确定该数据在DFS103全局文件系统命名空间中的实际地址。例如,在上文描述的可选实施例中,可以借助于地址映射将数据的逻辑地址转换为DFS103中的全局实际地址。备选地,如果控制器104确定当前租户的SLA高于预定阈值并且因此而具有专用的数据存储节点110,则可以直接以虚拟地址作为实际地址。

  在确定了表示作业数据存储位置的实际地址之后,控制器104可以经由虚拟元数据服务器107将该实际地址返回给作业处理系统103中的作业管理器108。作业管理器108由此可以确定数据的实际存储位置,并且实现对数据的访问。特别地,根据某些可选实施例,作业管理器108可以根据数据的存储位置来确定将该作业分发给哪些执行 节点106。例如,作业管理器108可以选择与存储作业数据的存储节点103位于同一物理机器上的执行节点106来执行该任务。以此方式,可以避免额外的数据通信和移动。

  在整个作业的执行期间,当作业管理器108需要访问租户数据时,它总是经由特定于该租户的虚拟元数据服务器107来实现数据访问。换言之,虚拟元数据服务器107不仅为租户提供隔离的、独立的逻辑文件系统命名空间,而且充当DFS103与租户客户端101和作业管理器108之间的接口或桥梁。以此方式,可以确保租户数据的隔离访问,并且由此提高数据安全性。

  根据本发明的某些实施例,为了进一步提高操作效率,除了上文描述的DFS接口之外,控制器104还可以在提供虚拟元数据服务器107时将其配置为实现DFS103的实体元数据服务器109的至少部分功能。例如,根据某些实施例,类似于元数据服务器的“list”(列出)操作之类的功能可在虚拟元数据服务器107上实现,从而进一步减少租户终端101和作业管理器108与DFS103之间的通信。

  另外,本发明的实施例可以支持不同租户之间的容易的数据共享。例如,假设一个租户(记为“租户A”)希望将与之关联的数据(例如,形式为一个或多个文件)与另一租户(记为“租户B”)共享。此时,租户A可以使用其租户终端101将共享数据的请求发送给控制器104,该请求中包含有待共享数据的在特定于租户A的虚拟元数据服务器107所提供的逻辑文件系统命名空间中的逻辑地址。作为响应,控制器104可以配置特定于租户B的虚拟元数据服务器107,以便在它所提供的逻辑文件命名空间中添加待共享数据的逻辑地址。

  例如,控制器104可以首先根据租户A提供的待共享数据的逻辑地址来确定该数据的实际地址(可能借助于地址映射)。继而,控制器104可以根据特定于租户B的元数据服务器107所提供的逻辑文件系统命名空间中的命名规则,确定该实际地址在租户B的逻辑文件系统命名空间中的逻辑地址。由此,控制器104可以配置特定于租户B的虚拟元数据服务器107,以便添加该逻辑地址。以此方式,作业管 理器108和/或租户B的租户终端101可以借助于特定于租户B的虚拟元数据服务器107来访问租户A的已共享数据。

  另外,如上所述,在某些可选实施例中,控制器104可能需要实现逻辑地址与实际地址之间的映射。在这些实施例中,控制器104还可以在与租户B相关联的地址映射中添加与待共享数据相关联的映射条目,以便能够将该数据在用于租户B的逻辑文件系统命名空间中的逻辑地址转换为DFS103中的全局实际地址。

  将会理解,根据本发明的实施例,租户数据的隔离和保护是借助于特定于每个租户的虚拟的元数据服务器来实现的。在物理实现上,租户数据仍然可由单个DFS来存储。借助于这种虚拟的或者说逻辑上的隔离而不是物理的隔离,可以在提高数据安全性的同时确保数据的跨用户共享,进而提高数据分析等作业的执行效率。

  可选地,为了便于数据在不同租户之间的共享,根据本发明的某些实施例,可以由单个DFS103来管理和存储所有用户租户的数据。这样,可以减少数据共享中可能出现的数据迁移,从而进一步提高整个系统的性能。

  下面参考图2,其示出了根据本发明实施例的用于在多租户分布式环境中管理租户数据的方法200的流程图。方法200可以由驻留在上文参考图1描述的租户数据管理控制器104之上或以其他方式与之关联的设备来执行。

  方法200开始之后,在步骤S201,接收来自租户的针对用于处理作业的资源的请求。接下来,在步骤S202,响应于所述请求,提供特定于所述租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间。最后,方法200进行到步骤S203,在此向管理作业处理的作业管理器注册所述虚拟元数据服务器,使得所述作业管理器经由所述虚拟元数据服务器来访问与所述租户有关的数据。

  如上文所述,在某些可选的实施例中,方法200还可以包括:创建与所述租户相关联的地址映射,所述地址映射用于将所述逻辑文件 系统命名空间中的逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。

  在某些可选的实施例中,方法200还可以包括:接收来自所述虚拟元数据服务器的数据的逻辑地址;借助于所述地址映射将所述逻辑地址转换为所述实际地址;以及经由所述虚拟元数据服务器将所述实际地址提供给所述作业管理器。

  在某些可选的实施例中,方法200还可以包括:从另一租户处接收与所述租户共享数据的请求;响应于所述请求而配置特定于所述租户的所述虚拟元数据服务器,以添加待共享数据在所述逻辑文件系统命名空间中的逻辑地址。这这些实施例中,方法200还可以包括:在与所述租户相关联的地址映射中添加与所述待共享数据相关的映射条目,以用于将所述待共享数据的所述逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。

  在某些可选的实施例中,在步骤S201中接收的来自所述租户的所述请求可以包含服务级别协议SLA的指示。在这些实施例中,方法200还可以包括:根据所述SLA指派用于存储与所述租户相关的数据的存储节点。特别地,根据所述SLA指派所述存储节点例如可以包括:响应于所述SLA高于预定阈值,将与所述租户相关的数据存储在专用的存储节点上或者高安全级别的存储节点上。

  根据本发明的某些实施例,与多个不同租户相关的数据可被存储在单个分布式文件系统中。备选地或附加地,在步骤S202中,提供特定于所述租户的所述虚拟元数据服务器包括:配置所述虚拟元数据服务器以执行用于存储租户数据的分布式文件系统的元数据服务器的至少部分功能。

  下面参考图3,其示出了根据本发明实施例的用于管理分布式作业处理的方法300的流程图。方法300可以由驻留在上文参考图1描述的作业管理器108之上或以其他方式与之关联的设备来执行。

  方法300开始之后,在步骤S301,注册特定于租户的虚拟元数据 服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间。接下来,在步骤S302,在处理所述租户的作业期间,经由所述虚拟元数据服务器来访问与所述租户有关的数据。

  根据某些可选实施例,在步骤S302处的操作可以包括:接收来自所述租户的处理作业的请求;响应于所述请求,向所述虚拟元数据服务器请求与所述作业有关的数据的存储位置;以及从所述虚拟元数据服务器接收与所述作业有关的所述数据在用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址,所述实际地址表示所述存储位置。在这些实施例中,方法300还可以包括:根据所述实际地址来指派用于执行所述租户的所述作业的执行节点。

  注意,为了描述的清晰和方便起见,在图2和图3所示的流程图中没有示出方法的可选步骤。应当理解,上文结合图1描述的各个操作及其特征适用于方法200和300。

  现在参考图4,其示出了根据本发明实施例的用于在多租户分布式环境中管理租户数据的设备400的框图。根据本发明的实施例,设备400可以驻留在上文参考图1描述的租户数据管理控制器104之上或以其他方式与之关联。

  如图所示,设备400包括接收单元401,被配置为接收来自租户的针对用于处理作业的资源的请求;提供单元402,被配置为响应于所述请求,提供特定于所述租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独立的逻辑文件系统命名空间;以及注册控制单元403,被配置为向管理作业处理的作业管理器注册所述虚拟元数据服务器,使得所述作业管理器经由所述虚拟元数据服务器来访问与所述租户有关的数据。

  在某些可选实施例中,设备400还可以包括地址映射单元,被配置为创建与所述租户相关联的地址映射,所述地址映射用于将所述逻辑文件系统命名空间中的逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。在这些实施例 中,设备400还可以包括:地址接收单元,被配置为接收来自所述虚拟元数据服务器的数据的逻辑地址;地址转换单元,被配置为借助于所述地址映射将所述逻辑地址转换为所述实际地址;以及地址提供单元,被配置为经由所述虚拟元数据服务器将所述实际地址提供给所述作业管理器。

  在某些可选实施例中,设备400还可以包括:共享请求接收单元,被配置为从另一租户处接收与所述租户共享数据的请求;共享管理单元,被配置为响应于所述请求而配置特定于所述租户的所述虚拟元数据服务器,以添加待共享数据在所述逻辑文件系统命名空间中的逻辑地址。在这些实施例中,设备400还可以包括:地址映射管理单元,被配置为在与所述租户相关联的地址映射中添加与所述待共享数据相关的映射条目,以用于将所述待共享数据的所述逻辑地址转换为用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址。

  在某些可选实施例中,来自所述租户的所述请求包含服务级别协议SLA的指示。在这些实施例中,设备400还可以包括:存储节点指派单元,被配置为根据所述SLA指派用于存储与所述租户相关的数据的存储节点。在这些实施例中,存储节点指派单元例如可以包括:配置用于响应于所述SLA高于预定阈值而将与所述租户相关的数据存储在专用的存储节点上或者高安全级别的存储节点上的单元。

  在某些可选实施例中,与多个不同租户相关的数据可被存储在单个分布式文件系统中。备选地或附加地,提供单元402可以包括:被配置为配置所述虚拟元数据服务器以执行用于存储租户数据的分布式文件系统的元数据服务器的至少部分功能的单元。

  下面参考图5,其示出了根据本发明实施例的用于管理分布式作业处理的设备500的框图。根据本发明的实施例,设备500可以驻留在上文参考图1描述的作业管理器108之上或以其他方式与之关联。

  如图所示,设备500包括:注册单元501,被配置为注册特定于租户的虚拟元数据服务器,所述虚拟元数据服务器为所述租户提供独 立的逻辑文件系统命名空间;以及数据访问单元502,被配置为在处理所述租户的作业期间,经由所述虚拟元数据服务器来访问与所述租户有关的数据。

  在某些可选实施例中,数据访问单元502可以包括:作业处理请求接收单元,被配置为接收来自所述租户的处理作业的请求;数据位置请求单元,被配置为响应于所述请求而向所述虚拟元数据服务器请求与所述作业有关的数据的存储位置;以及数据位置接收单元,被配置为从所述虚拟元数据服务器接收与所述作业有关的所述数据在用于存储租户数据的分布式文件系统的全局文件系统命名空间中的实际地址,所述实际地址表示所述存储位置。在这些实施例中,设备500还可以包括作业指派单元,被配置为根据所述实际地址来指派用于执行所述租户的所述作业的执行节点。

  为清晰起见,在图4和图5中没有示出设备400和500包含的可选单元以及各个单元所包含的子单元。然而,应当理解,上文参考图1描述的各个特征同样适用于设备400和500,在此不再赘述。

  应当理解,设备400和500可以利用各种方式实现。例如,在某些实施例中,设备400和500可以利用软件和/或固件来实现。例如,设备400和500可以被实现为包含在计算机可读介质上的计算机程序产品,其中的每个单元是通过计算机指令来实现其功能的程序模块。备选地或附加地,设备400和500可以部分地或者完全地基于硬件来实现。例如,设备400和500可被实现为集成电路(IC)芯片、专用集成电路(ASIC)或者片上系统(SOC)。现在已知或者将来开发的其他方式也是可行的,本发明的范围在此方面不受限制。

  下面参考图6,其示出了适于用来实践本发明实施方式的计算机系统的示意性框图。如图6所示,计算机系统可以包括:CPU(中央处理单元)601、RAM(随机存取存储器)602、ROM(只读存储器)603、系统总线、显示控制器609、硬盘610、键盘611、串行外部设备612、并行外部设备613和显示器614。在这些设备中, 与系统总线、键盘控制器606、串行控制器607、并行控制器608和显示控制器609。硬盘610与硬盘控制器605耦合,键盘611与键盘控制器606耦合,串行外部设备612与串行接口控制器607耦合,并行外部设备613与并行接口控制器608耦合,以及显示器614与显示控制器609耦合。应当理解,图6所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。

  如上所述,设备400和500可以通过硬件实现,例如芯片、ASIC、SOC等。这些硬件可以集成在计算机系统600中。此外,本发明的实施例也可以通过计算机程序产品的形式实现。例如,本发明的方法均可通过计算机程序产品来实现。该计算机程序产品可以存储在例如图6所示的RAM604、ROM604、硬盘610和/或任何适当的存储介质中,或者通过网络从适当的位置下载到计算机系统600上。计算机程序产品可以包括计算机代码部分,其包括可由适当的处理设备(例如,图6中示出的CPU601)执行的程序指令。所述程序指令至少可以包括用于实现本发明方法的步骤的指令。

  本发明的实施例可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的系统和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明系统可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。

  应当注意,尽管在上文详细描述中提及了设备的若干单元或子单元,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施。