资讯专栏INFORMATION COLUMN

IBM 为 Linux 内核提出新的命名空间机制

idisfkj / 3248人阅读

摘要:这可能会导致意外的运行行为,并对性能产生很大影响。因此,由领导的提案追求以下设计这个原型补丁集引入了一个新的内核命名空间机制。

命名空间(Namespace)是 Linux 内核的一个特性,它对内核资源进行分区,使得一组进程看到一组资源,而另一组进程看到一组不同的资源。该功能的工作原理是为一组资源和进程使用相同的命名空间,但这些命名空间引用不同的资源。资源可能存在于多个空间中。此类资源的示例包括进程 ID、主机名、用户 ID、文件名以及一些与网络访问和进程间通信相关的名称。

IBM 工程师 Pratik Sampat 近日发表了 Linux 内核的 CPU Namespace 接口的早期原型。设计这个命名空间是为了解决当前查看可用 CPU 资源的方法的一致性问题,以及解决因了解系统上的资源访问/位置而可能产生的安全问题。

如今,在容器上运行的应用程序在 cgroups 的帮助下执行它们的 CPU、内存限制与要求。然而,许多应用程序通过 sysfs/procfs 继承或以其他方式获得系统的视图,并根据这些信息分配资源,如线程/进程的数量,内存分配。这可能会导致意外的运行行为,并对性能产生很大影响。

除了一致性问题,目前的处理方式也给多租户系统带来了安全和公平使用的影响,例如:

攻击者可以在知道 CPU 节点拓扑的情况下调度工作负载并选择 CPU,从而使总线被淹没而造成拒绝服务攻击;以及识别 CPU 系统拓扑结构可以帮助识别靠近总线和外围设备(如 GPU)的内核,以便从其他工作负载中获得不适当的延迟优势。

因此,由 IBM 领导的 CPU Namespace 提案追求以下设计:

  • 这个原型补丁集引入了一个新的内核命名空间机制 —— CPU Namespace。
  • CPU Namespace 通过虚拟化逻辑 CPU ID 和创建相同的虚拟 CPU 映射来隔离 CPU 信息。它锁定在 task_struct 上,并且 CPU 转化被设计成扁平的层次结构,这意味着每个虚拟命名空间 CPU 在创建命名空间时都映射到一个物理 CPU,转化速度更快;并且子代不需要向上遍历树来检索转化。
  • 该命名空间允许控制和显示接口都能够感知 CPU 命名空间上下文,这样命名空间内的任务只能通过虚拟 CPU 映射获取视图并因此控制它,以及查看可用的 CPU 资源。

在用 Nginx Web 服务器进行的测试中,内存利用率下降了 92-95%,延迟减少了 64%,每秒的请求和传输等吞吐量没有显著变化。虽然目前的设计仍有存在一些缺陷,但随着 IBM 的持续改进,Linux 的性能有望大幅提升。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/122223.html

相关文章

  • 阿里90后工程师利用ARM硬件特性开启安卓8终端“上帝模式”

    摘要:然而,处理器的某些特殊硬件特性能够打破这种保护,使得普通程序在用户态能够直接访问内核空间,直接打破内核空间与用户空间的隔离,修改内核代码,开启上帝模式。假设某台安卓终端拥有内存。至此,上帝模式已经开启。 文/图 阿里安全潘多拉实验室 团控 编者按:团控,阿里安全潘多拉实验室研究人员,该实验室主要聚焦于移动安全领域,包括对iOS和Android系统安全的攻击和防御技术研究。团控的主攻方向...

    RayKr 评论0 收藏0
  • 并存共生or相爱相杀?容器、虚拟机与Docker概念全解析

    摘要:本文立足于新手,从容器和虚拟机两个大的概念入手,由浅入深,由宏转微,为我们解析了的方方面面。出于各种考量与需求,容器在外观上与虚拟机非常相似。大家可以在数秒钟内完成容器的创建与运行,而虚拟机则由于需要引导完整的虚拟操作系统而耗费更多时间。 当小数看到这篇文章时内心是激动的,因为或许介绍Docker容器的文章有无数,但是如此清晰易懂、对小白如此友好的却不多见。本文立足于新手,从容器和虚拟...

    aboutU 评论0 收藏0
  • 谈谈k8s1.12新特性--Mount propagation(挂载命名空间的传播)

    摘要:一个卷的挂载传播由中的字段控制。此模式等同于内核文档中描述的挂载传播。此卷挂载的行为与挂载相同。挂载传播可能很危险。所谓传播事件,是指由一个挂载对象的状态变化导致的其它挂载对象的挂载与解除挂载动作的事件。 Mount propagation 挂载传播允许将Container挂载的卷共享到同一Pod中的其他Container,甚至可以共享到同一节点上的其他Pod。一个卷的挂载传播由Con...

    DTeam 评论0 收藏0
  • 谈谈k8s1.12新特性--Mount propagation(挂载命名空间的传播)

    摘要:一个卷的挂载传播由中的字段控制。此模式等同于内核文档中描述的挂载传播。此卷挂载的行为与挂载相同。挂载传播可能很危险。所谓传播事件,是指由一个挂载对象的状态变化导致的其它挂载对象的挂载与解除挂载动作的事件。 Mount propagation 挂载传播允许将Container挂载的卷共享到同一Pod中的其他Container,甚至可以共享到同一节点上的其他Pod。一个卷的挂载传播由Con...

    高胜山 评论0 收藏0
  • 谈谈k8s1.12新特性--Mount propagation(挂载命名空间的传播)

    摘要:一个卷的挂载传播由中的字段控制。此模式等同于内核文档中描述的挂载传播。此卷挂载的行为与挂载相同。挂载传播可能很危险。所谓传播事件,是指由一个挂载对象的状态变化导致的其它挂载对象的挂载与解除挂载动作的事件。 Mount propagation 挂载传播允许将Container挂载的卷共享到同一Pod中的其他Container,甚至可以共享到同一节点上的其他Pod。一个卷的挂载传播由Con...

    xuhong 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<