本发明专利技术实施例提供一种管理、访问系统日志的方法和装置,以实现系统日志在容器之间的隔离性。所述管理系统日志的方法包括:分别为每个容器对应创建专属的控制组;在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统。在容器环境下,属于一个系统日志子系统的日志缓冲区只是管理与当前控制组绑定的容器中进程的日志行为,不同容器属于不同的控制组,因此,本发明专利技术提供的方法使得每一个控制组之间相互独立,没有依赖关系,从而实现系统日志的隔离。
【技术实现步骤摘要】
本专利技术涉及计算机领域,尤其涉及一种管理、访问系统日志的方法和装置。
技术介绍
容器虚拟化是一种操作系统级、非常快速和高效的虚拟化技术,其原理是基于操作系统内核对不同的运行进程提供了不同的系统视图。容器虚拟化可以用于在保证安全和效率的情况下授权访问硬件资源,例如CPU和I/O (Input/Output,输入输出)带宽;一个容器内的进程对其他容器内的行为不可见。基于容器虚拟化,使用单个内核运行操作系统的多个实例,所有的容器都运行在同一个内核之上,因此,容器虚拟化能提供更高的效率和性倉泛。容器的系统日志(System Log,Syslog)是操作系统运行过程中内核或驱动运行所产生的日志信息。现有的容器虚拟化技术中,多个容器使用内核现有的全局日志缓冲区管理日志。一种查看容器的系统日志的方法是在容器中通过syslog的用户态接口来查看和管理属于当前容器的系统日志。具体地,系统提供一个全局日志缓冲区供所有容器共享,即所有容器的系统日志都存储于一个全局日志缓冲区中。每个容器都有其用户态接口,通过该用户态接口对全局日志缓冲区进行访问,能够查看到该全局日志缓冲区中的所有系统日志,包括不属于该容器的系统日志。专利技术人经过研究发现,上述现有查看容器的系统日志的方法虽然可以实现在容器环境中查看系统日志,但由于全局日志缓冲区供所有容器共享,因此每个容器通过其用户态接口查看到的是属于同一个日志缓冲区的全部容器的系统日志信息,并没有实现系统日志在容器之间的隔离性。
技术实现思路
本专利技术实施例提供一 种管理、访问系统日志的方法和装置,以实现系统日志在容器之间的隔离性。本专利技术实施例提供一种管理系统日志的方法,所述方法包括分别为每个容器对应创建专属的控制组;在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统。本专利技术实施例提供一种访问系统日志的方法,其特征在于,所述方法包括通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统,所述与所述容器专属的控制组对应的系统日志子系统具有独立的日志缓冲区; 对查找到的系统日志子系统对应的日志缓冲区进行读写操作。本专利技术实施例提供一种管理系统日志的装置,所述装置包括创建模块,用于分别为每个容器对应创建专属的控制组;挂载模块,用于在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统。本专利技术实施例提供一种访问系统日志的装置,所述装置包括系统日志子系统查找模块,用于通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统,所述与所述容器专属的控制组对应的系统日志子系统具有独立的日志缓冲区;系统日志访问模块,用于对查找到的系统日志子系统对应的日志缓冲区进行读写操作。从上述本专利技术实施例提供的管理系统日志的方法可知,由于每个容器专属的控制组上分别挂载与每个容器专属的控制组对应的系统日志子系统,即一个容器或一个容器的控制组唯一绑定一个系统日志子系统,因此,在容器环境下,属于一个系统日志子系统的日志缓冲区只是管理与当前控制组绑定的容器中进程的日志行为,不同容器属于不同的控制组,每一个控制组之间相互独立,没有依赖关系,从而实现系统日志的隔离;从上述本专利技术实施例提供的访问系统日志的方法可知,由于每个容器专属的控制组上分别挂载与每个容器专属的控制组对应的系统日志子系统,即一个容器或一个容器的控制组唯一绑定一个系统日志子系统,与每个控制组对应的系统日志子系统具有独立的日志缓冲区,因此,在容器环境下,属于一个系统日志子系统的日志缓冲区只是管理与当前控制组绑定的容器中进程的日志行为,不同容器属于不同的控制组,每一个控制组之间相互独立,没有依赖关系,隶属一个容器中的进程只能对其查找到的系统日志子系统的日志缓冲区进行读写操作而不能对其他日志缓冲区进行读写操作,从而实现系统日志访问的隔离。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对现有技术或实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域技术人员来讲,还可以如这些附图获得其他的附图。图1是本专利技术实施例提供的管理系统日志的方法流程示意图;图2是本专利技术实施例提供的访问系统日志的方法流程示意图;图3是本专利技术实施例提供的进程对相互独立的日志缓冲区进行读写的示意图;图4是本专利技术实施例提供的管理系统日志的装置结构示意图;图5是本专利技术另一实施例提供的管理系统日志的装置结构示意图;图6是本专利技术实施例提供的访问系统日志的装置结构示意图;图7是本专利技术另一实施例提供的访问系统日志的装置结构示意图;图8是本专利技术另一实施例提供的访问系统日志的装置结构示意图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅附图1,是本专利技术实施例提供的管理系统日志的方法流程示意图,主要包括步骤SlOl和步骤S102,详细说明如下S101,分别为每个容器对应创建专属的控制组。控制组(Control groups,Cgroups)是Linux内核提供的一种可以限制、记录和隔离进程组(process groups)所使用物理资源(例如,CPU、内存和输入/输出等等)的机制。主机(Host)上可以配置多个容器,每一个Cgroups在主机上对应一个目录,该目录中保存了当前Cgroups的一些配置和控制信息。Cgroups将一组进程隔离开,通过分层(hierarchy)即进程控制树的结构来组织这一组进程。一个进程可以添加到一个进程组中,也可以迁移到另一个进程组中。Cgroups通过子系统来管理系统资源;一个子系统(subsysterm),例如,CPU子系统、内存(Memory)子系统和系统日志子系统等就是一个资源控制器。子系统必须附加到一个hierarchy上才能起作用,一个子系统附加到某个hierarchy上之后,该hierarchy上所有进程都受这个子系统控制。在本专利技术实施例中,每次创建一个容器时,则对应地创建一个该容器专属的控制组Cgroups,所谓专属,是指一个控制组只由一个容器独有,例如,创建容器Vl和容器V2时,为容器Vl创建的控制组Cgroups-1与为容器V2创建的控制组Cgroups_2是两个不同的控制组。如此,一个容器唯一绑定一个控制组,一个容器内的所有进程同属该容器绑定的控制组。S102,在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统。在分别为每个容器对应创建其专属的控制组之后,还可以分别为每个容器专属的控制组构造与每个控制组对应的控制结构体,分别为每个容器专属的控制组对应的系统日志子系统构造与每个系统日志子系统对应的控制结构体。在本专利技术实施例中,与每个控制组对应的控制结构体保存该Cgroups的信息,包括当前挂载在该Cgroups上所有子系统,例如系统日志子系统的状态信息。作为本专利技术一个实施例,在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组对应的系统日志子系本文档来自技高网...
【技术保护点】
一种管理系统日志的方法,其特征在于,所述方法包括:分别为每个容器对应创建专属的控制组;在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统。
【技术特征摘要】
1.一种管理系统日志的方法,其特征在于,所述方法包括分别为每个容器对应创建专属的控制组;在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统。2.如权利要求1所述的方法,其特征在于,所述在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统之前还包括分别为每个容器专属的控制组构造与所述控制组对应的控制结构体;以及分别为每个容器专属的控制组对应的系统日志子系统构造与所述每个系统日志子系统对应的控制结构体;所述在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统包括使用指针将与每个容器专属的控制组对应的控制结构体指向与所述每个系统日志子系统对应的控制结构体。3.一种访问系统日志的方法,其特征在于,所述方法包括通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统,所述与所述容器专属的控制组对应的系统日志子系统具有独立的日志缓冲区;对查找到的系统日志子系统对应的日志缓冲区进行读写操作。4.如权利要求3所述的方法,其特征在于,所述查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统之前还包括分别为每个容器专属的控制组构造与所述控制组对应的控制结构体;分别为每个容器专属的控制组对应的系统日志子系统构造与所述每个系统日志子系统对应的控制结构体;以及使用指针将与所述每个容器专属的控制组对应的控制结构体指向与所述每个系统日志子系统对应的控制结构体;所述通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统包括通过与所述容器专属的控制组对应的控制结构体,查找到容器专属的控制组;根据所述容器专属的控制组对应的控制结构体与所述系统日志子系统对应的控制结构体的指向关系,查找到所述与容器专属的控制组对应的系统日志子系统。5.如权利要求3所述的方法,其特征在于,所述查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统之前还包括分别为每个容器专属的控制组构造与所述控制组对应的控制结构体;分别为每个容器专属的控制组对应的系统日志子系统构造与所述每个系统日志子系统对应的控制结构体;分别为每个容器赋予唯一的标识符;以及建立所述每个容器唯一标识符与所述每个系统日志子系统对应的控制结构体的映射关系;所述通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统包括通过与所述容器专属的控制组对应的控制结构体,查找到容器专属的控制组;根据所述容器唯一标识符与所述系统日志子系统对应的控制结构体的...
【专利技术属性】
技术研发人员:项锐,顾政,陈立波,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。