一种登录类Unix虚拟容器的方法、装置和系统的制作方法

文档序号:7983304阅读:159来源:国知局
一种登录类Unix虚拟容器的方法、装置和系统的制作方法
【专利摘要】本发明实施方式提出一种登录类Unix虚拟容器的方法、装置和系统。方法包括:建立类Unix虚拟容器与运行有该类Unix虚拟容器的主机上的端口之间的对应关系;建立类Unix虚拟容器与相对应的主机端口之间的透明管道,并通过透明管道建立该主机端口与类Unix虚拟容器之间的第一连接;主机端口接收脚本命令,并根据第一连接将脚本命令发送到类Unix虚拟容器。通过主机端口与类Unix虚拟容器之间的连接,实现登录到类Unix虚拟容器。还可以保证类Unix虚拟容器的信息安全,并且可以通过异步接入提高接入效率。
【专利说明】一种登录类Unix虚拟容器的方法、装置和系统
【技术领域】
[0001]本发明实施方式涉及云计算【技术领域】,更具体地,涉及一种登录类Unix虚拟容器的方法、装置和系统。
【背景技术】
[0002]云计算主要包括基于互联网相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云计算的诞生意味着计算能力也可作为一种商品通过互联网进行流通。狭义云计算涉及IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算涉及服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务,这种服务可以与IT、软件和互联网相关,也可是其他服务。
[0003]云计算平台基本可以划分为3类:以数据存储为主的存储型云平台、以数据处理为主的计算型云平台以及计算和数据存储处理兼顾的综合云计算平台。
[0004]目前,已经有采用虚拟机方式实现云计算平台的技术方案。这种采用虚拟机实现云计算平台的技术方案具有自定义强和云服务全面的优点,但是价格相对昂贵,因此难以推广。
[0005]除了采用虚拟机方式实现云计算平台之外,目前还有通过云弹性引擎(CloudElastic Engine, CEE)实现云计算系统的技术方案。在云弹性引擎技术中,以Linux资源群控制器(cgroup)为资源划分方式,以Linux虚拟容器(Linux Containers, LXC)为虚拟方式。其中cgroup由Linux内核支持,为进程和其后续的子进程提供了性能控制机制和资源划分、限制方式。Linux虚拟容器是一种由Linux内核支持的、操作系统层面的虚拟化方案。除了 Linux之外,在云弹性引擎技术中,还可以采用FreeBSD、OpenBSD、Solaris、Minix、Linux、QNX等各种类型的类Unix虚拟容器。
[0006]不同于通过虚拟机方式实现云计算平台,通过云弹性引擎实现云计算系统无需引导硬件,开销相对轻量。然而,由于类Unix虚拟容器的网络是与外界隔绝的,外界无法直接登录到类Unix虚拟容器中,脚本命令无法传送到类Unix虚拟容器,也就不能获取类Unix虚拟容器内的信息。比如,无法查看类Unix虚拟容器内部的文件、CPU信息、磁盘I/O、网络I/O等等信息,而这些信息对于在线调试、日志查看以及设备资源实时把控等各种操作具有重大的意义。

【发明内容】

[0007]本发明实施方式提出一种登录类Unix虚拟容器的方法,实现登录到类Unix虚拟容器,从而脚本命令可以传送到类Unix虚拟容器。
[0008]本发明实施方式提出一种登录类Unix虚拟容器的装置,实现登录到类Unix虚拟容器,从而脚本命令可以传送到类Unix虚拟容器。
[0009]本发明实施方式提出一种登录类Unix虚拟容器的系统,实现登录到类Unix虚拟容器,从而脚本命令可以传送到类Unix虚拟容器。
[0010]本发明实施方式的技术方案如下:
[0011]一种登录类Unix虚拟容器的方法,该方法包括:
[0012]建立类Unix虚拟容器与运行有该类Unix虚拟容器的主机上的端口之间的对应关系;
[0013]建立所述类Unix虚拟容器与相对应的主机端口之间的透明管道,并通过所述透明管道建立该主机端口与所述类Unix虚拟容器之间的第一连接;
[0014]所述主机端口接收脚本命令,并根据所述第一连接将所述脚本命令发送到所述类Unix虚拟容器。
[0015]一种登录类Unix虚拟容器的装置,该装置包括透明管道建立单元、连接建立单元和脚本命令发送单元,其中:
[0016]透明管道建立单元,用于建立类Unix虚拟容器与运行有该类Unix虚拟容器的主机上的端口之间的对应关系,并且建立所述类Unix虚拟容器与相对应的主机端口之间的透明管道;
[0017]连接建立单元,用于通过所述透明管道建立该主机端口与所述类Unix虚拟容器之间的第一连接;
[0018]脚本命令发送单元,用于通过主机端口接收脚本命令,并根据所述第一连接将所述脚本命令发送到所述类Unix虚拟容器。
[0019]一种登录类Unix虚拟容器的系统,该系统包括Web浏览器、类Unix虚拟容器登录单元和主机,在所述主机上运行有类Unix虚拟容器;Web浏览器与类Unix虚拟容器登录单元之间具有超文本传送协议连接;
[0020]Web浏览器,用于接收脚本命令,并通过所述超文本传送协议连接将该脚本命令发送到类Unix虚拟容器登录单元;
[0021]类Unix虚拟容器登录单元,用于建立所述类Unix虚拟容器与所述主机上的端口之间的对应关系,建立所述类Unix虚拟容器与相对应的主机端口之间的透明管道,并通过所述透明管道建立该主机端口与所述类Unix虚拟容器之间的第一连接;并根据所述第一连接将从Web浏览器接收到的脚本命令发送到所述类Unix虚拟容器。
[0022]从上述技术方案可以看出,在本发明实施方式中,建立类Unix虚拟容器与运行有该类Unix虚拟容器的主机上的端口之间的对应关系;建立类Unix虚拟容器与相对应的主机端口之间的透明管道,并通过透明管道建立该主机端口与类Unix虚拟容器之间的第一连接;主机端口接收脚本命令,并根据第一连接将所述脚本命令发送到类Unix虚拟容器。由此可见,应用本发明实施方式之后,通过主机端口与类Unix虚拟容器之间的连接,实现了登录到类Unix虚拟容器,脚本命令可以基于该登录传送到类Unix虚拟容器,因此可以根据脚本命令方便查看类Unix虚拟容器内部的文件、CPU信息、磁盘I/O、网络I/O等信息,对于在线调试、日志查看以及设备资源实时把控等各种操作具有重大的帮助。
【专利附图】

【附图说明】
[0023]图1为根据本发明实施方式的登录类Unix虚拟容器的方法流程图;
[0024]图2为根据本发明实施方式的登录类Unix虚拟容器的装置结构图;[0025]图3为根据本发明实施方式的登录类Unix虚拟容器的系统结构图;
[0026]图4为根据本发明实施方式的利用平板电脑登录类Unix虚拟容器的界面示意图;
[0027]图5为根据本发明实施方式的利用个人电脑(PC)登录类Unix虚拟容器的界面示意图。
【具体实施方式】
[0028]为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
[0029]鉴于类Unix虚拟容器的网络与外界是隔离的,在本发明实施方式中,登录到运行有Unix虚拟容器的主机(host)上,通过建立类Unix虚拟容器与该主机上的端口之间的对应关系,实现在类Unix虚拟容器与相对应的主机端口之间建立连接,从而可以将主机端口收到的、来自于主机外部的脚本命令发送到运行于主机上的类Unix虚拟容器,以实现登录类Unix虚拟容器。
[0030]图1为根据本发明实施方式的登录类Unix虚拟容器的方法流程图。
[0031 ] 如图1所示,该方法包括:
[0032]步骤101:建立类Unix虚拟容器与运行有该类Unix虚拟容器的主机上的端口之间的对应关系。
[0033]在这里,在主机上运行有类Unix虚拟容器。类Unix虚拟容器优选由Linux内核支持,而且是针对云计算平台的一种在操作系统层面的虚拟化整体程序。跟其他操作系统层次的虚拟化技术相比,类Unix虚拟容器显著的优势在于类Unix虚拟容器被整合进Linux内核,不用单独为内核打补丁。而且,类Unix虚拟容器是所谓的操作系统层次的虚拟化技术,与传统的硬件抽象层(HAL)层次的虚拟化技术相比,具有更小的虚拟化开销,而且可以快速部署。
[0034]利用类Unix虚拟容器来在主机上隔离特定应用,只需要在主机上安装好类Unix虚拟容器,即可使用类Unix虚拟容器相关命令来创建并启动容器以为应用提供虚拟执行环境,而传统的虚拟化技术则需要先创建虚拟机、然后安装系统并部署应用。
[0035]通过建立类Unix虚拟容器与主机上的端口之间的对应关系,可以为类Unix虚拟容器指定相应的主机端口,从而为后续与类Unix虚拟容器的连接打下基础。其中,在主机上可以运行有多个类Unix虚拟容器,此时可以分别为每个类Unix虚拟容器指定相应的主机端口。
[0036]优选地,类Unix虚拟容器具体可以为Linux虚拟容器(Linux Containers, LXC),也可以是FreeBSD、OpenBSD> Solaris、Minix、Linux、QNX等各种类型的类Unix虚拟容器,本发明实施方式对此并无限定。
[0037]步骤102:建立类Unix虚拟容器与相对应的主机端口之间的透明管道,并通过透明管道建立该主机端口与类Unix虚拟容器之间的第一连接。
[0038]在建立类Unix虚拟容器与主机端口之间的对应关系之后,可以建立类Unix虚拟容器与相对应的主机端口之间的透明管道,并通过透明管道建立该主机端口与相对应的类Unix虚拟容器之间的第一连接。[0039]在这里,透明管道主要用于大批量的信息传递,该透明管道可用于主机端口与类Unix虚拟容器之间的同一用户的同祖先的进程间通信。将透明管道作为通信的介质,构成两端进程传递信息的流水线。通常设定一个进程向透明管道中写信息,另一个进程从透明管道中读信息。也就是说,透明管道是一种通过通常的I/O接口存取的字节流。创建透明管道后,通过使用操作系统的任何读或写I/O系统调用来读或者写它。在各种类UNIX环境中(比如Linux环境中),I/O调用是通常采用命令read O和write O。
[0040]优选地,可以应用安全外壳协议(Secure Shell,SSH)协议或者安全外壳协议2(Secure Shell 2, SSH2),通过透明管道建立该主机端口与类Unix虚拟容器之间的第一连接。当采用SSH协议时,建立的第一连接具体为SSH连接。当采用SSH2协议时,建立的第一连接具体为SSH2连接。
[0041]通过建立主机端口与相对应的类Unix虚拟容器之间的第一连接之后,一方面在类Unix虚拟容器上可以实现登录,另一方面通过主机端口可以接收来自外部的脚本命令。
[0042]步骤103:主机端口接收脚本命令,并根据第一连接将脚本命令发送到类Unix虚拟容器。
[0043]在这里,主机端口可以从主机外部接收脚本命令,然后根据第一连接将脚本命令发送到类Unix虚拟容器。其中,主机可以通过与外部浏览器之间的超文本传送协议(HTTP)连接,从外部浏览器获取脚本命令。
[0044]在一个实施方式中,为了保证脚本命令的安全,在主机端口接收脚本命令之后,以及将脚本命令发送到类Unix虚拟容器之前,该方法进一步包括:
[0045]根据预先设置的标记划分脚本命令,并对划分后的脚本命令进行符号扩展,得到符号扩展后的脚本命令;判断符`号扩展后的脚本命令是否在预先设置的脚本命令白名单中,如果是,则根据第一连接将符号扩展后的脚本命令发送到类Unix虚拟容器。
[0046]具体地,可以先对脚本命令以标记分开(例如,标记可以包括分号、管道符号),然后再对脚本命令做各种符号扩展(例如花括号扩展等),得到符号扩展后的脚本命令,再对符号扩展后的脚本命令进行白名单过滤。
[0047]示范性地,可以在白名单中支持的符号为:大小写字母,空格数字1-*' ;/〃 ;
[0048]示范性地,可以在白名单中支持的脚本命令包括:
【权利要求】
1.一种登录类Unix虚拟容器的方法,其特征在于,该方法包括: 建立类Unix虚拟容器与运行有该类Unix虚拟容器的主机上的端口之间的对应关系;建立所述类Unix虚拟容器与相对应的主机端口之间的透明管道,并通过所述透明管道建立该主机端口与所述类Unix虚拟容器之间的第一连接; 所述主机端口接收脚本命令,并根据所述第一连接将所述脚本命令发送到所述类Unix虚拟容器。
2.根据权利要求1所述的登录类Unix虚拟容器的方法,其特征在于,在主机端口接收脚本命令之后,以及将所述脚本命令发送到所述类Unix虚拟容器之前,该方法进一步包括: 根据预先设置的标记划分所述脚本命令,并对划分后的所述脚本命令进行符号扩展,得到符号扩展后的脚本命令; 判断所述符号扩展后的脚本命令是否在预先设置的脚本命令白名单中,如果是,则根据所述第一连接将所述符号扩展后的脚本命令发送到所述类Unix虚拟容器。
3.根据权利要求1所述的登录类Unix虚拟容器的方法,其特征在于,所述主机端口接收脚本命令包括:通过超文本传送协议建立主机端口与浏览器之间的超文本传送协议连接;通过所述超文本传送协议连接接收脚本命令; 该方法进一步包括:预先设置连接时间门限值;` 判断所述主机端口与浏览器之间的超文本传送协议连接是否超过所述连接时间门限值,如果是,则断开所述超文本传送协议连接,如果不是,则保持所述超文本传送协议连接。
4.根据权利要求1所述的登录类Unix虚拟容器的方法,其特征在于,该方法进一步包括: 主机端口接收终止操作脚本命令,在所述终止操作脚本命令中携带有所述第一连接的ID ; 通过所述透明管道建立该主机端口与所述类Unix虚拟容器之间的第二连接; 根据所述第二连接将所述终止操作脚本命令发送到所述类Unix虚拟容器; 所述类Unix虚拟容器从该终止操作脚本命令中解析出所述第一连接的ID,并关闭所述第一连接。
5.根据权利要求1所述的登录类Unix虚拟容器的方法,其特征在于,所述主机端口接收脚本命令包括:通过超文本传送协议建立主机端口与浏览器之间的超文本传送协议连接;通过所述超文本传送协议连接接收脚本命令; 该方法进一步包括: 判断主机端口与所述浏览器之间的超文本传送协议连接是否断开,如果是,则根据所述透明管道向所述类Unix虚拟容器发送终止操作脚本命令,类Unix虚拟容器断开与所述主机端口之间的第一连接。
6.根据权利要求1所述的登录类Unix虚拟容器的方法,其特征在于,该方法进一步包括: 生成命令显示界面; 捕获与所述主机端口接收脚本命令相关的用户键盘操作字符,在所述命令显示界面上显示所述用户键盘操作字符。
7.据权利要求1所述的登录类Unix虚拟容器的方法,其特征在于,该方法进一步包括: 所述类Unix虚拟容器响应于该脚本命令,通过数据分块的方式向所述主机端口返回脚本命令响应; 所述主机端口将所述分块后的数据发送到浏览器界面并进行同步显示。
8.一种登录类Unix虚拟容器的装置,其特征在于,该装置包括透明管道建立单元、连接建立单元和脚本命令发送单元,其中: 透明管道建立单元,用于建立类Unix虚拟容器与运行有该类Unix虚拟容器的主机上的端口之间的对应关系,并且建立所述类Unix虚拟容器与相对应的主机端口之间的透明管道; 连接建立单元,用于通过所述透明管道建立该主机端口与所述类Unix虚拟容器之间的第一连接; 脚本命令发送单元,用于通过主机端口接收脚本命令,并根据所述第一连接将所述脚本命令发送到所述类Unix虚拟容器。
9.根据权利要求8所述的登录类Unix虚拟容器的装置,其特征在于,该装置进一步包括脚本命令预处理单元; 所述脚本命令预处理单元,用于根据预先设置的标记划分所述脚本命令,并对划分后的所述脚本命令进行符号扩展,得到符号扩展后的脚本命令,并判断所述符号扩展后的脚本命令是否在预先设置的脚本命令白名单中,如果是,则使能脚本命令发送单元根据所述第一连接将所述符号扩展后的脚本命令发送到所述类Unix虚拟容器。
10.根据权利要求8所述的登录类Unix虚拟容器的装置,其特征在于, 脚本命令发送单元,用于通过超文本传送协议建立主机端口与浏览器之间的超文本传送协议连接,并通过所述超文本传送协议连接接收脚本命令; 该装置进一步包括预先设置有连接时间门限值的连接时间保持单元; 连接时间保持单元,用于判断所述主机端口与浏览器之间的超文本传送协议连接是否超过所述连接时间门限值,如果是,则断开所述超文本传送协议连接,如果不是,则保持所述超文本传送协议连接。
11.根据权利要求8所述的登录类Unix虚拟容器的装置,其特征在于,该装置进一步包括连接中断单元, 所述连接中断单元,用于通过主机端口接收终止操作脚本命令,在所述终止操作脚本命令中携带有所述第一连接的ID,通过所述透明管道建立该主机端口与所述类Unix虚拟容器之间的第二连接,根据所述第二连接将所述终止操作脚本命令发送到所述类Unix虚拟容器,所述类Unix虚拟容器从该终止操作脚本命令中解析出所述第一连接的ID,并关闭所述第一连接。
12.根据权利要求8所述的登录类Unix虚拟容器的装置,其特征在于, 脚本命令发送单元,用于通过超文本传送协议建立主机端口与浏览器之间的超文本传送协议连接,并通过所述超文本传送协议连接接收脚本命令; 该装置进一步包括超文本传送协议连接判断单元; 所述超文本传送协议连接判断单元,用于判断主机端口与所述浏览器之间的超文本传送协议连接是否断开,如果是,则根据所述透明管道向所述类Unix虚拟容器发送终止操作脚本命令,类Unix虚拟容器断开与所述主机端口之间的第一连接。
13.一种登录类Unix虚拟容器的系统,其特征在于,该系统包括Web浏览器、类Unix虚拟容器登录单元和主机,在所述主机上运行有类Unix虚拟容器;Web浏览器与类Unix虚拟容器登录单元之间具有超文本传送协议连接; Web浏览器,用于接收脚本命令,并通过所述超文本传送协议连接将该脚本命令发送到类Unix虚拟容器登录单元; 类Unix虚拟容器登录单元,用于建立所述类Unix虚拟容器与所述主机上的端口之间的对应关系,建立所述类Unix虚拟容器与相对应的主机端口之间的透明管道,并通过所述透明管道建立该主机端口与所述类Unix虚拟容器之间的第一连接;并根据所述第一连接将从Web浏览器接收到的脚本命令发送到所述类Unix虚拟容器。
14.根据权利要求13所述的登录类Unix虚拟容器的系统,其特征在于, 类Unix虚拟容器登录单元,进一步用于根据预先设置的标记划分所述脚本命令,并对划分后的所述脚本命令进行符号扩展,得到符号扩展后的脚本命令,判断所述符号扩展后的脚本命令是否在预先设置的脚本命令白名单中,如果是,则根据所述第一连接将所述符号扩展后的脚本命令发送到所述类Unix虚拟容器。
15.根据权利要求13所述的登录类Unix虚拟容器的系统,其特征在于, 所述类Unix虚拟容器登录单元,进一步用于生成命令显示界面,捕获与所述主机端口接收脚本命令相关的用户键 盘操作字符,在所述命令显示界面上显示所述用户键盘操作字符。
16.根据权利要求13所述的登录类Unix虚拟容器的系统,其特征在于,类Unix虚拟容器登录单元,用于根据安全外壳协议或者安全外壳协议2,通过所述透明管道建立该主机端口与所述类Unix虚拟容器之间的第一连接。
【文档编号】H04L29/08GK103685399SQ201210345405
【公开日】2014年3月26日 申请日期:2012年9月17日 优先权日:2012年9月17日
【发明者】祝百万, 黄杰, 陆可, 曾砺锋 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1