首先我的工程实践题目是“风扇调度”。主要内容是IO板卡温度监控与风扇调度,我曾经在网上搜索过相关论文和代码,但是很不幸,这只是一个很冷门的问题,并没有人关心。业内虽然有着一些解决方案,但是并没有成型的软件出现,都是内置于操作系统的。因此我只能选择几个相关的软件进行介绍,linux操作系统,DPTF(Dynamic Platform and Thermal Framework)和Kubernetes。
一、linux操作系统
类似于windows,linux也是一个操作系统,负责分配和调度系统资源,将计算机底层封装,给与程序开发者更良好的操作系统环境。Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位。Linux主要应用于服务器领域,因为他对于普通的用户并不友好,各种发行版本没有统一的操作逻辑,并且门槛较高,需要一定的编程基础才能熟练使用。但是它对程序开发者更加的友好,由命令行进行操作要方便过于图形界面,它可以操控计算机的每一个细节,并且具有高度的稳定性,适合服务器开发使用。同时Linux具有完整的服务器生态,很多服务器软件都是基于Linux进行开发的,因此使用Linux也可以提高开发效率。、
二、DPTF(Dynamic Platform and Thermal Framework)
DPTF是英特尔公司开发的动态平台和散热框架主要解决功耗的散热问题的开源框架。
在DPTF出现以前,BMC、EC或者ME这些带外设备,通过PECI读取CPU内核DTS的温度,来控制CPU风扇;也通过其他方式读取其他的温度传感器(如磁盘的SMART信息,DIMM的温度传感器信息等等),来控制它们那里的风扇。策略就是温度低转慢点,温度高转快点,简单而高效。由于它们是带外设备,不受CPU死机的影响,可以高效而不被干扰的完成任务,是散热的可靠保证。但是Intel认为这并不是最优解,靠温度来散热毕竟被动,总是晚了一步,能不能根据工作量(work load)来散热呢?由此引入了DPTF。
操作系统有现在运行程序的详细信息。如果能够让操作系统来控制风扇,就可以有的放矢,在工作量大的时候加速风扇,而不是等工作一会有温度上升再来降温。这是一种主动散热的方案,也是一种带内策略。操作系统要控制风扇,就要知道有哪些风扇,它们都各自给谁散热,而这些信息又只有BIOS才能够知道。因此Intel提出DPTF(Dynamic Platform and Thermal Framework)来规范这些信息。至此,DPTF可以通过一些策略来控制风扇达到更好的目的 。
三、Kubernetes
在Docker 作为高级容器引擎快速发展的同时,Google也开始将自身在容器技术及集群方面的积累贡献出来。在Google内部,容器技术已经应用了很多年,Borg系统运行管理着成千上万的容器应用,在它的支持下,无论是谷歌搜索、Gmail还是谷歌地图,可以轻而易举地从庞大的数据中心中获取技术资源来支撑服务运行。
Borg是集群的管理器,在它的系统中,运行着众多集群,而每个集群可由成千上万的服务器联接组成,Borg每时每刻都在处理来自众多应用程序所提交的成百上千的Job, 对这些Job进行接收、调度、启动、停止、重启和监控。正如Borg论文中所说,Borg提供了3大好处:
1)隐藏资源管理和错误处理,用户仅需要关注应用的开发。
2) 服务高可用、高可靠。
3) 可将负载运行在由成千上万的机器联合而成的集群中。
作为Google的竞争技术优势,Borg理所当然的被视为商业秘密隐藏起来,但当Tiwtter的工程师精心打造出属于自己的Borg系统(Mesos)时, Google也审时度势地推出了来源于自身技术理论的新的开源工具。
Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着(比如用户想让apache一直运行,用户不需要关心怎么去做,Kubernetes会自动去监控,然后去重启,新建,总之,让apache一直提供服务),管理员可以加载一个微型服务,让规划器来找到合适的位置,同时,Kubernetes也系统提升工具以及人性化方面,让用户能够方便的部署自己的应用(就像canary deployments)。现在Kubernetes着重于不间断的服务状态(比如web服务器或者缓存服务器)和原生云平台应用(Nosql),在不久的将来会支持各种生产云平台中的各种服务,例如,分批,工作流,以及传统数据库。
原文地址:https://www.cnblogs.com/logan233/p/11663510.html