CN103049546B - 一种管理、访问系统日志的方法和装置 - Google Patents
一种管理、访问系统日志的方法和装置 Download PDFInfo
- Publication number
- CN103049546B CN103049546B CN201210578990.8A CN201210578990A CN103049546B CN 103049546 B CN103049546 B CN 103049546B CN 201210578990 A CN201210578990 A CN 201210578990A CN 103049546 B CN103049546 B CN 103049546B
- Authority
- CN
- China
- Prior art keywords
- container
- control group
- exclusive
- system journal
- structure body
- 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.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种管理、访问系统日志的方法和装置,以实现系统日志在容器之间的隔离性。所述管理系统日志的方法包括:分别为每个容器对应创建专属的控制组;在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统。在容器环境下,属于一个系统日志子系统的日志缓冲区只是管理与当前控制组绑定的容器中进程的日志行为,不同容器属于不同的控制组,因此,本发明提供的方法使得每一个控制组之间相互独立,没有依赖关系,从而实现系统日志的隔离。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种管理、访问系统日志的方法和装置。
背景技术
容器虚拟化是一种操作系统级、非常快速和高效的虚拟化技术,其原理是基于操作系统内核对不同的运行进程提供了不同的系统视图。容器虚拟化可以用于在保证安全和效率的情况下授权访问硬件资源,例如CPU和I/O(Input/Output,输入输出)带宽;一个容器内的进程对其他容器内的行为不可见。基于容器虚拟化,使用单个内核运行操作系统的多个实例,所有的容器都运行在同一个内核之上,因此,容器虚拟化能提供更高的效率和性能。
容器的系统日志(SystemLog,Syslog)是操作系统运行过程中内核或驱动运行所产生的日志信息。现有的容器虚拟化技术中,多个容器使用内核现有的全局日志缓冲区管理日志。一种查看容器的系统日志的方法是:在容器中通过syslog的用户态接口来查看和管理属于当前容器的系统日志。具体地,系统提供一个全局日志缓冲区供所有容器共享,即所有容器的系统日志都存储于一个全局日志缓冲区中。每个容器都有其用户态接口,通过该用户态接口对全局日志缓冲区进行访问,能够查看到该全局日志缓冲区中的所有系统日志,包括不属于该容器的系统日志。
发明人经过研究发现,上述现有查看容器的系统日志的方法虽然可以实现在容器环境中查看系统日志,但由于全局日志缓冲区供所有容器共享,因此每个容器通过其用户态接口查看到的是属于同一个日志缓冲区的全部容器的系统日志信息,并没有实现系统日志在容器之间的隔离性。
发明内容
本发明实施例提供一种管理、访问系统日志的方法和装置,以实现系统日志在容器之间的隔离性。
本发明实施例提供一种管理系统日志的方法,所述方法包括:
分别为每个容器对应创建专属的控制组;
在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统。
本发明实施例提供一种访问系统日志的方法,其特征在于,所述方法包括:
通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统,所述与所述容器专属的控制组对应的系统日志子系统具有独立的日志缓冲区;
对查找到的系统日志子系统对应的日志缓冲区进行读写操作。
本发明实施例提供一种管理系统日志的装置,所述装置包括:
创建模块,用于分别为每个容器对应创建专属的控制组;
挂载模块,用于在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统。
本发明实施例提供一种访问系统日志的装置,所述装置包括:
系统日志子系统查找模块,用于通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统,所述与所述容器专属的控制组对应的系统日志子系统具有独立的日志缓冲区;
系统日志访问模块,用于对查找到的系统日志子系统对应的日志缓冲区进行读写操作。
从上述本发明实施例提供的管理系统日志的方法可知,由于每个容器专属的控制组上分别挂载与每个容器专属的控制组对应的系统日志子系统,即一个容器或一个容器的控制组唯一绑定一个系统日志子系统,因此,在容器环境下,属于一个系统日志子系统的日志缓冲区只是管理与当前控制组绑定的容器中进程的日志行为,不同容器属于不同的控制组,每一个控制组之间相互独立,没有依赖关系,从而实现系统日志的隔离;
从上述本发明实施例提供的访问系统日志的方法可知,由于每个容器专属的控制组上分别挂载与每个容器专属的控制组对应的系统日志子系统,即一个容器或一个容器的控制组唯一绑定一个系统日志子系统,与每个控制组对应的系统日志子系统具有独立的日志缓冲区,因此,在容器环境下,属于一个系统日志子系统的日志缓冲区只是管理与当前控制组绑定的容器中进程的日志行为,不同容器属于不同的控制组,每一个控制组之间相互独立,没有依赖关系,隶属一个容器中的进程只能对其查找到的系统日志子系统的日志缓冲区进行读写操作而不能对其他日志缓冲区进行读写操作,从而实现系统日志访问的隔离。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对现有技术或实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,还可以如这些附图获得其他的附图。
图1是本发明实施例提供的管理系统日志的方法流程示意图;
图2是本发明实施例提供的访问系统日志的方法流程示意图;
图3是本发明实施例提供的进程对相互独立的日志缓冲区进行读写的示意图;
图4是本发明实施例提供的管理系统日志的装置结构示意图;
图5是本发明另一实施例提供的管理系统日志的装置结构示意图;
图6是本发明实施例提供的访问系统日志的装置结构示意图;
图7是本发明另一实施例提供的访问系统日志的装置结构示意图;
图8是本发明另一实施例提供的访问系统日志的装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员所获得的所有其他实施例,都属于本发明保护的范围。
请参阅附图1,是本发明实施例提供的管理系统日志的方法流程示意图,主要包括步骤S101和步骤S102,详细说明如下:
S101,分别为每个容器对应创建专属的控制组。
控制组(Controlgroups,Cgroups)是Linux内核提供的一种可以限制、记录和隔离进程组(processgroups)所使用物理资源(例如,CPU、内存和输入/输出等等)的机制。主机(Host)上可以配置多个容器,每一个Cgroups在主机上对应一个目录,该目录中保存了当前Cgroups的一些配置和控制信息。Cgroups将一组进程隔离开,通过分层(hierarchy)即进程控制树的结构来组织这一组进程。一个进程可以添加到一个进程组中,也可以迁移到另一个进程组中。Cgroups通过子系统来管理系统资源;一个子系统(subsysterm),例如,CPU子系统、内存(Memory)子系统和系统日志子系统等就是一个资源控制器。子系统必须附加到一个hierarchy上才能起作用,一个子系统附加到某个hierarchy上之后,该hierarchy上所有进程都受这个子系统控制。
在本发明实施例中,每次创建一个容器时,则对应地创建一个该容器专属的控制组Cgroups,所谓专属,是指一个控制组只由一个容器独有,例如,创建容器V1和容器V2时,为容器V1创建的控制组Cgroups-1与为容器V2创建的控制组Cgroups-2是两个不同的控制组。如此,一个容器唯一绑定一个控制组,一个容器内的所有进程同属该容器绑定的控制组。
S102,在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统。
在分别为每个容器对应创建其专属的控制组之后,还可以分别为每个容器专属的控制组构造与每个控制组对应的控制结构体,分别为每个容器专属的控制组对应的系统日志子系统构造与每个系统日志子系统对应的控制结构体。在本发明实施例中,与每个控制组对应的控制结构体保存该Cgroups的信息,包括当前挂载在该Cgroups上所有子系统,例如系统日志子系统的状态信息。作为本发明一个实施例,在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组对应的系统日志子系统可以是:使用指针将与每个容器专属的控制组对应的控制结构体指向与每个系统日志子系统对应的控制结构体。为了以下实施例描述的方便,控制组对应的控制结构体用css_set表示,系统日志子系统对应的控制结构体用syslog_cgroup或syslog_struct表示。
由于每个容器专属的控制组对应有其控制结构体,每个系统日志子系统对应有其控制结构体,因此,当找到每个容器专属的控制组后,按照控制组对应的控制结构体与每个系统日志子系统对应的控制结构体的指向关系,可以查找到与每个容器专属的控制组对应的系统日志子系统。
从上述本发明实施例提供的管理系统日志的方法可知,由于每个容器专属的控制组上分别挂载与每个容器专属的控制组对应的系统日志子系统,即一个容器或一个容器的控制组唯一绑定一个系统日志子系统,因此,在容器环境下,属于一个系统日志子系统的日志缓冲区只是管理与当前控制组绑定的容器中进程的日志行为,不同容器属于不同的控制组,每一个控制组之间相互独立,没有依赖关系,从而实现系统日志的隔离。
请参阅附图2,是本发明实施例提供的访问系统日志的方法流程示意图,主要包括步骤S201和步骤S202,详细说明如下:
S201,通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统,所述与所述容器专属的控制组对应的系统日志子系统具有独立的日志缓冲区。
在本实施例中,所述访问系统日志的方法还可以包括如前述实施例相同的管理系统日志的方法,在本实施例中,每次创建一个容器时,则对应地创建一个该容器专属的控制组Cgroups,所谓专属,是指一个控制组只由一个容器独有,例如,创建容器V1和容器V2时,为容器V1创建的控制组Cgroups-1与为容器V2创建的控制组Cgroups-2是两个不同的控制组。如此,一个容器唯一绑定一个控制组,一个容器内的所有进程同属该容器绑定的控制组。
在本发明一个实施例中,在分别为每个容器对应创建其专属的控制组之后,或者步骤S201之前,还可以分别为每个容器专属的控制组构造与每个控制组对应的控制结构体,分别为每个容器专属的控制组对应的系统日志子系统构造与每个系统日志子系统对应的控制结构体,并且使用指针将与控制组对应的控制结构体指向与每个系统日志子系统对应的控制结构体,即,在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组对应的系统日志子系统。作为本发明一个实施例,通过每个容器专属的控制组,查找所述每个容器专属的控制组上挂载的与所述每个容器专属的控制组对应的系统日志子系统可以是:通过与容器专属的控制组对应的控制结构体,查找到容器专属的控制组;根据容器专属的控制组对应的控制结构体与所述系统日志子系统对应的控制结构体的指向关系,查找到与容器专属的控制组对应的系统日志子系统。
具体地,一个容器内的单个进程通过其进程描述符中的cgroups指针找到该容器专属的控制组Cgroups。容器专属的的控制组Cgroups的控制结构体css_set中保存了其所挂载的子系统的信息包括系统日志子系统的信息,由于容器专属的的控制组对应的控制结构体指向与每个系统日志子系统对应的控制结构体syslog_cgroup。如此,一个进程就能找到该进程所在的控制组Cgroups所挂载的系统日志子系统,并得到该系统日志子系统的控制符syslog_cgroup。在系统日志子系统中,实现对系统该系统日志子系统的日志缓冲区(log_buf)的隔离,包括该日志缓冲区的长度、索引、计数器以及系统日志的系统调用、打印终端等场景下所用到的索引、计数器信息和日志缓冲区(log_buf)等等都隔离在系统日志子系统的一个实例中,如此,实现了每一个控制组Cgroups都具有一个属于自身的日志缓冲区(log_buf)以及控制数据,这些数据通过每个系统日志子系统对应的控制结构体syslog_cgroup来统一管理。
现有查看容器的系统日志的方法中,系统通过printk写日志信息或者通过do_syslog、/dev接口读信息都是对一个全局的日志缓冲区ringbuffer_log_buf;进行操作的,而通过本发明实施例提供的方法实现系统日志子系统日志缓冲区(log_buf)的隔离之后,printk、do_syslog和/dev等日志读写接口所操作的对象是属于控制组Cgroups的被隔离的单个日志缓冲区,并且这样的日志缓冲区(buf)与cgroup绑定,如附图3所示,是进程对相互独立的日志缓冲区进行读写的示意图。
在本发明另一实施例中,在分别为每个容器对应创建专属的控制组之后,或者步骤S201之前,还可以分别为每个容器专属的控制组构造与每个容器专属的控制组对应的控制结构体,分别为每个容器专属的控制组对应的系统日志子系统构造与每个系统日志子系统对应的控制结构体,分别为每个容器赋予唯一的标识符,以及建立每个容器唯一标识符与每个系统日志子系统对应的控制结构体的映射关系或对应关系。作为本发明另一实施例,通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统可以是:通过与容器专属的控制组对应的控制结构体,查找到容器专属的控制组;根据容器唯一标识符与系统日志子系统对应的控制结构体的映射关系,查找到与容器专属的控制组对应的系统日志子系统。
具体地,为每个容器专属的控制组构造与每个容器专属的控制组对应的控制结构体syslog_struct,该控制结构体syslog_struct管理一个容器的系统日志相关信息,包括日志缓冲区以及缓冲区的控制信息等。每个容器对应一个这样的控制结构体syslog_struct。创建容器时,对应也创建一个控制结构体syslog_struct,并且生成一个该容器的唯一的标识符idr数。系统使用一个全局的数组syslog_array来保存控制结构体syslog_struct和容器的唯一标识符idr数的对应关系。新建一个容器时,数组syslog_array中添加该容器的控制结构体syslog_struct和标识符idr数的信息,销毁这个容器时,对应的控制结构体syslog_struct和标识符idr数从数组syslog_array中删除。
S202,对所述查找到的系统日志子系统的日志缓冲区进行读写操作。
当容器内的进程需要读写日志时,首先可以找到属于该进程所在控制组Cgroups的系统日志子系统的控制结构体syslog_cgroup,通过控制结构体syslog_struct中的索引、计数等控制符来操作属于当前控制结构体syslog_cgroup的日志缓冲区,例如,对系统日志子系统的日志缓冲区进行读写操作。属于同一个hierarchy的控制组Cgroups中的全部进程共同使用所属系统日志子系统的日志缓冲区。
容器内进程的控制组信息中也保存这个标识符idr数。当容器内的进程要打印系统日志信息时,通过这个标识符idr数来匹配对应的控制结构体syslog_struct,从而找到对应的日志缓冲区,来打印系统日志信息。
如前所述,主机上可以配置多个容器,在本发明另一实施例中,主机(Host)中通过每个容器专属的控制组Cgroups的日志管理接口管理当前主机上所有容器的系统日志信息。每一个容器内的容器日志处理子系统实现上述实施例提供的管理、访问系统日志的方法。容器内通过属于该容器的日志管理接口管理本容器的日志信息。主机上每个容器的日志处理相互隔离,容器相互间不能查看系统日志信息。
从上述本发明实施例提供的访问系统日志的方法可知,由于每个容器专属的控制组上分别挂载与每个容器专属的控制组对应的系统日志子系统,即一个容器或一个容器的控制组唯一绑定一个系统日志子系统,与每个控制组对应的系统日志子系统具有独立的日志缓冲区,因此,在容器环境下,属于一个系统日志子系统的日志缓冲区只是管理与当前控制组绑定的容器中进程的日志行为,不同容器属于不同的控制组,每一个控制组之间相互独立,没有依赖关系,一个进程只能对其查找到的系统日志子系统的日志缓冲区进行读写操作而不能对其他日志缓冲区进行读写操作,从而实现系统日志访问的隔离。
请参阅附图4,是本发明实施例提供的管理系统日志的装置结构示意图。为了便于说明,仅仅示出了与本发明实施例相关的部分。附图4示例的管理系统日志的装置包括创建模块401和挂载模块402,其中:
创建模块401,用于分别为每个容器对应创建专属的控制组;
挂载模块402,用于在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统。
需要说明的是,以上管理系统日志的装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将所述管理系统日志的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,例如,前述的创建模块,可以是分别为每个容器对应创建专属的控制组的硬件,例如创建器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备;再如前述的挂载模块,可以是具有执行前述在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统功能的硬件,例如挂载器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备(本说明书提供的各个实施例都可应用上述描述原则)。
附图4示例的管理系统日志的装置还可以包括第一构造模块501和第二构造模块502,挂载模块402可以包括指向单元503,如附图5所示本发明另一实施例提供的管理系统日志的装置,其中:
第一构造模块501,用于分别为每个容器专属的控制组构造与所述控制组对应的控制结构体;
第二构造模块502,用于分别为每个容器专属的控制组对应的系统日志子系统构造与所述每个系统日志子系统对应的控制结构体;
指向单元503,用于使用指针将与每个容器专属的控制组对应的控制结构体指向与所述每个系统日志子系统对应的控制结构体。
请参阅附图6,是本发明实施例提供的访问系统日志的装置结构示意图。为了便于说明,仅仅示出了与本发明实施例相关的部分。附图6示例的访问系统日志的装置包括系统日志子系统查找模块601和系统日志访问模块602,其中:
系统日志子系统查找模块601,用于通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统,所述与所述容器专属的控制组对应的系统日志子系统具有独立的日志缓冲区;
系统日志访问模块602,用于对查找到的系统日志子系统对应的日志缓冲区进行读写操作。
需要说明的是,以上访问系统日志的装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将所述访问系统日志的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,例如,前述的系统日志子系统查找模块,可以是通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统的硬件,例如系统日志子系统查找器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备;再如前述的系统日志访问模块,可以是具有执行前述对查找到的系统日志子系统对应的日志缓冲区进行读写操作功能的硬件,例如系统日志访问器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备(本说明书提供的各个实施例都可应用上述描述原则)。
附图6示例的访问系统日志的装置还可以包括第三构造模块701、第四构造模块702和指向模块703,系统日志子系统查找模块601可以包括第一查找单元704和第二查找单元705,如附图7所示本发明另一实施例提供的访问系统日志的装置,其中:
第三构造模块701,用于分别为每个容器专属的控制组构造与所述控制组对应的控制结构体;
第四构造模块702,用于分别为每个容器专属的控制组对应的系统日志子系统构造与所述每个系统日志子系统对应的控制结构体;以及
指向模块703,用于使用指针将与所述每个容器专属的控制组对应的控制结构体指向与所述每个系统日志子系统对应的控制结构体;
第一查找单元704,用于通过与所述容器专属的控制组对应的控制结构体,查找到容器专属的控制组;
第二查找单元705,用于根据所述容器专属的控制组对应的控制结构体与所述系统日志子系统对应的控制结构体的指向关系,查找到所述与容器专属的控制组对应的系统日志子系统。
附图6示例的访问系统日志的装置还可以包括第三构造模块701、第四构造模块702、赋标识模块801和映射建立模块802,系统日志子系统查找模块601可以包括第一查找单元704和第三查找单元803,如附图8所示本发明另一实施例提供的访问系统日志的装置,其中:
第三构造模块701,用于分别为每个容器专属的控制组构造与所述控制组对应的控制结构体;
第四构造模块702,用于分别为每个容器专属的控制组对应的系统日志子系统构造与所述每个系统日志子系统对应的控制结构体;
赋标识模块801,用于分别为每个容器赋予唯一的标识符;以及
映射建立模块802,用于建立所述每个容器唯一标识符与所述每个系统日志子系统对应的控制结构体的映射关系;
第一查找单元704,用于通过与所述容器专属的控制组对应的控制结构体,查找到容器专属的控制组;
第三查找单元803,用于根据所述容器唯一标识符与所述系统日志子系统对应的控制结构体的映射关系,查找到所述与容器专属的控制组对应的系统日志子系统。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,比如以下各种方法的一种或多种或全部:
方法一:分别为每个容器对应创建专属的控制组;在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统。
方法二:通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统,所述与所述容器专属的控制组对应的系统日志子系统具有独立的日志缓冲区;对查找到的系统日志子系统对应的日志缓冲区进行读写操作。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,ReadOnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁盘或光盘等。
以上对本发明实施例提供的一种管理、访问系统日志的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (4)
1.一种管理系统日志的方法,其特征在于,所述方法包括:
分别为每个容器对应创建专属的控制组;
分别为每个容器专属的控制组构造与所述控制组对应的控制结构体;
分别为每个容器专属的控制组对应的系统日志子系统构造与每个系统日志子系统对应的控制结构体;
在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统;
其中,所述在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统包括:使用指针将与每个容器专属的控制组对应的控制结构体指向与所述每个系统日志子系统对应的控制结构体。
2.一种访问系统日志的方法,其特征在于,所述方法包括:
通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统,所述与所述容器专属的控制组对应的系统日志子系统具有独立的日志缓冲区;
对查找到的系统日志子系统对应的日志缓冲区进行读写操作;
其中,所述查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统之前还包括:
分别为每个容器专属的控制组构造与所述控制组对应的控制结构体;
分别为每个容器专属的控制组对应的系统日志子系统构造与所述每个系统日志子系统对应的控制结构体;以及
使用指针将与所述每个容器专属的控制组对应的控制结构体指向与所述每个系统日志子系统对应的控制结构体;
所述通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统包括:
通过与所述容器专属的控制组对应的控制结构体,查找到容器专属的控制组;
根据所述容器专属的控制组对应的控制结构体与所述系统日志子系统对应的控制结构体的指向关系,查找到所述与所述容器专属的控制组对应的系统日志子系统;
或,所述查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统之前还包括:
分别为每个容器专属的控制组构造与所述控制组对应的控制结构体;
分别为每个容器专属的控制组对应的系统日志子系统构造与所述每个系统日志子系统对应的控制结构体;
分别为每个容器赋予唯一的标识符;以及
建立所述每个容器唯一标识符与所述每个系统日志子系统对应的控制结构体的映射关系;
所述通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统包括:
通过与所述容器专属的控制组对应的控制结构体,查找到容器专属的控制组;
根据所述容器唯一标识符与所述系统日志子系统对应的控制结构体的映射关系,查找到所述与所述容器专属的控制组对应的系统日志子系统。
3.一种管理系统日志的装置,其特征在于,所述装置包括:
创建模块,用于分别为每个容器对应创建专属的控制组;
第一构造模块,用于分别为每个容器专属的控制组构造与所述控制组对应的控制结构体;以及
第二构造模块,用于分别为每个容器专属的控制组对应的系统日志子系统构造与每个系统日志子系统对应的控制结构体;
挂载模块,用于在每个容器专属的控制组上分别挂载与所述每个容器专属的控制组所对应的系统日志子系统;
其中所述挂载模块包括:
指向单元,用于使用指针将与每个容器专属的控制组对应的控制结构体指向与所述每个系统日志子系统对应的控制结构体。
4.一种访问系统日志的装置,其特征在于,所述装置包括:
系统日志子系统查找模块,用于通过容器专属的控制组,查找所述容器专属的控制组上挂载的与所述容器专属的控制组对应的系统日志子系统,所述与所述容器专属的控制组对应的系统日志子系统具有独立的日志缓冲区;
系统日志访问模块,用于对查找到的系统日志子系统对应的日志缓冲区进行读写操作;
其中,所述装置还包括:
第三构造模块,用于分别为每个容器专属的控制组构造与所述控制组对应的控制结构体;
第四构造模块,用于分别为每个容器专属的控制组对应的系统日志子系统构造与所述每个系统日志子系统对应的控制结构体;以及
指向模块,用于使用指针将与所述每个容器专属的控制组对应的控制结构体指向与所述每个系统日志子系统对应的控制结构体;
所述系统日志子系统查找模块包括:
第一查找单元,用于通过与所述容器专属的控制组对应的控制结构体,查找到容器专属的控制组;
第二查找单元,用于根据所述容器专属的控制组对应的控制结构体与所述系统日志子系统对应的控制结构体的指向关系,查找到所述与所述每个容器专属的控制组对应的系统日志子系统;
或,所述装置还包括:
第三构造模块,用于分别为每个容器专属的控制组构造与所述控制组对应的控制结构体;
第四构造模块,用于分别为每个容器专属的控制组对应的系统日志子系统构造与所述每个系统日志子系统对应的控制结构体;
赋标识模块,用于分别为每个容器赋予唯一的标识符;以及
映射建立模块,用于建立所述每个容器唯一标识符与所述每个系统日志子系统对应的控制结构体的映射关系;
所述系统日志子系统查找模块包括:
第一查找单元,用于通过与所述容器专属的控制组对应的控制结构体,查找到容器专属的控制组;
第三查找单元,用于根据所述容器唯一标识符与所述系统日志子系统对应的控制结构体的映射关系,查找到所述与所述容器专属的控制组对应的系统日志子系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210578990.8A CN103049546B (zh) | 2012-12-27 | 2012-12-27 | 一种管理、访问系统日志的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210578990.8A CN103049546B (zh) | 2012-12-27 | 2012-12-27 | 一种管理、访问系统日志的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103049546A CN103049546A (zh) | 2013-04-17 |
CN103049546B true CN103049546B (zh) | 2016-01-13 |
Family
ID=48062187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210578990.8A Expired - Fee Related CN103049546B (zh) | 2012-12-27 | 2012-12-27 | 一种管理、访问系统日志的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103049546B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103971064B (zh) * | 2014-05-14 | 2016-09-21 | 中标软件有限公司 | Linux 系统的用户权限控制方法 |
CN105955972A (zh) * | 2016-02-01 | 2016-09-21 | 上海华测导航技术股份有限公司 | 一种接收机日志管理系统及方法 |
CN106383852B (zh) * | 2016-08-30 | 2019-11-05 | 中国民生银行股份有限公司 | 基于Docker容器的日志获取方法和装置 |
CN109977093A (zh) * | 2019-04-04 | 2019-07-05 | 中科创达(重庆)汽车科技有限公司 | 基于lxc的多虚拟系统查看容器日志的方法及装置 |
CN110287154A (zh) * | 2019-06-06 | 2019-09-27 | 郑州阿帕斯科技有限公司 | 容器日志的查询方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794247A (zh) * | 2010-03-26 | 2010-08-04 | 天津理工大学 | 嵌套事务模型下实时数据库故障恢复方法 |
CN102609484A (zh) * | 2012-01-19 | 2012-07-25 | 北京神州数码思特奇信息技术股份有限公司 | 一种通用系统日志管理方法 |
CN102707990A (zh) * | 2012-05-14 | 2012-10-03 | 华为技术有限公司 | 基于容器的处理方法、装置和系统 |
CN102799514A (zh) * | 2011-05-24 | 2012-11-28 | 中兴通讯股份有限公司 | 一种日志记录管理方法和系统 |
-
2012
- 2012-12-27 CN CN201210578990.8A patent/CN103049546B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794247A (zh) * | 2010-03-26 | 2010-08-04 | 天津理工大学 | 嵌套事务模型下实时数据库故障恢复方法 |
CN102799514A (zh) * | 2011-05-24 | 2012-11-28 | 中兴通讯股份有限公司 | 一种日志记录管理方法和系统 |
CN102609484A (zh) * | 2012-01-19 | 2012-07-25 | 北京神州数码思特奇信息技术股份有限公司 | 一种通用系统日志管理方法 |
CN102707990A (zh) * | 2012-05-14 | 2012-10-03 | 华为技术有限公司 | 基于容器的处理方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103049546A (zh) | 2013-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10895993B2 (en) | Shared network-available storage that permits concurrent data access | |
CN102467408B (zh) | 一种虚拟机数据的访问方法和设备 | |
KR101930117B1 (ko) | 비휘발성 스토리지 장치 세트의 휘발성 메모리 표현 기법 | |
CN102255962B (zh) | 一种分布式存储方法、装置和系统 | |
US9128765B2 (en) | Assigning restored virtual machine based on past application usage of requesting user | |
US9460009B1 (en) | Logical unit creation in data storage system | |
CN103049546B (zh) | 一种管理、访问系统日志的方法和装置 | |
US8881144B1 (en) | Systems and methods for reclaiming storage space from virtual machine disk images | |
US9792075B1 (en) | Systems and methods for synthesizing virtual hard drives | |
US11093143B2 (en) | Methods and systems for managing key-value solid state drives (KV SSDS) | |
US8615488B2 (en) | Physical replication of database subset to improve availability and reduce resource cost in a cloud environment | |
KR102646619B1 (ko) | 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법 | |
CN104461685A (zh) | 虚拟机处理方法和虚拟计算机系统 | |
CN104407935A (zh) | 快照回滚方法和存储设备 | |
US20180239649A1 (en) | Multi Root I/O Virtualization System | |
CN106777394B (zh) | 一种集群文件系统 | |
US10803109B2 (en) | Method and device for reading and writing video data in NAS device | |
US8990815B1 (en) | Synchronizing allocated blocks of virtual disk files across primary and secondary volumes by excluding unused blocks | |
US10852954B1 (en) | Running an enterprise storage subsystem as a virtual machine | |
CN104216834A (zh) | 一种内存访问的方法、缓冲调度器和内存模块 | |
US10909044B2 (en) | Access control device, access control method, and recording medium containing access control program | |
JP2021513137A (ja) | 階層型ストレージ管理システムにおけるデータ・マイグレーション | |
CN108139980B (zh) | 用于合并存储器页的方法和存储器合并功能 | |
CN106250562B (zh) | 数据信息处理系统 | |
Park et al. | KV-CSD: A Hardware-Accelerated Key-Value Store for Data-Intensive Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160113 Termination date: 20181227 |