テンセントオープンソースの開幕戦は、ネイティブオペレーティングシステムTencentOSカーネルの公式訪問のGithubを曇らせます

まず、著者がブログでチケットを引っ張るために許可してください、あなたは良いエッセイ、読者を感じる場合は、以下の2次元コードを掃引次をサポートしてください!

(Githubのアドレス:1月9日、テンセントは正式にクラウドネイティブのオペレーティングシステムカーネルTencentOSカーネル開くhttps://github.com/Tencent/TencentOS-kerne私はGitHubのプロジェクトで見た数時間をリリースし、Lの後に)私たちは、約100スターを受けています。

業界では一般的に呼ばれる単語広がっ十数年前、「世界を巻き込むされたコードを、」彼は、最近まで「オープンソースのインターネットの世界から、すべては」人々は本当にオリジナルネイティブクラウドを覚ます、後で言ったすべての背後にある大きなBOSSです私たちは時代に追いつくために俊敏性を行うことができない、雲が置き去りにされます使用していません。

 

TencentOSカーネルのLinuxコミュニティ長期サポートにカスタマイズオープンソースクラウド+ネイティブモデルとして記述することができる4.14.105リソーススケジューリングの柔軟性、容器支持、システムの性能と安全性のレベルは、対応する最適化行ったバージョン。オープンソースと、このシステムのアプリケーションは、顧客が大幅に、クラウドリソースの利用効率を向上させ、より安全で信頼性の高いビジネスの動作環境を実現しながら、運用コストを削減することができます。

テンセントオープンソースは常に驚き

導入された後で、著者前のテキスト「テンセント」狂気「オープンソース」。テンセント手帖に昨年の開発者会議では、正式にオープンソースの組み合わせを促進する「ボトムアップ」と「トップダウン」の共同作業に発表しました。ガイダンスやヘルプのオープンソースプロジェクトのための外国収益管理事務所の設立、コミュニティは、開発者がコアテクノロジーのエコシステムとしてオープンソースを構築するためのネットワーキングの機会を提供しています。

私はGithubの統計上のビットを行う、現在テンセントはGitHubの上に掲載案件数の合計が95に到達し、スターの数はほぼ27万、18年間で、その多くのオープンソースプロジェクトが重いと評価されているテンセントなど、その高いパフォーマンスRPC開発フレームワークTARS、軽量ネームサービスプログラムTSeerは、Linux財団に寄付し、マイクロチャネルのWebサービス・フレームワークWeUIが、絶賛にリリースされました。

腾讯在操作系统方面也是动作不断,比如TencentOS Kernel的兄弟- Tencent OS Tiny,这个才刚刚问世的Iot操作系统,凭借其低功耗、低资源占用、模块化、安全可靠等特点,目前在Github上获得3.7k颗star。有关这个项目笔者之前也曾经撰文《腾讯Tiny OS组合NB-loT,值得程序员一试吗》做过详尽介绍。

云原生TencentOS Kernel初体验

在目前超大规模计算的时代,提升效率、降低成本是最基本的时代诉求。而云原生的最大的特点就是可持续交付和微服务化,将容器打造成微服务的运行载体。

但是现在的通用LINUX系统内核并不是为容器+微服务的云原生架构所设计,在很多方面甚至可以说不太合适云原生,但是TencentOS Kernel做了很多直面痛点的优化工作:

ARM64架构的内核热补丁方案: 内核热补丁技术是一种无需重启服务器,即可实现修改内核运行时代码的技术。基于该技术,可以在不影响业务正常运行的情况下,修复内核bug或者安全漏洞,以提高运营效率、底层平台的稳定性和可用性,并使得业务运营体验有效提升。

目前面向互联网的云服务,每天都会面对数量众多的攻击事件,及时针对内核的漏洞进行热补丁升级是云服务安全运营的最低要求,但是目前其它LINUX内核针对在云计算中被广泛应用的ARM架构设备还缺乏热补丁支持。不过TencentOS Kernel填补了这个空白。

TencentOS Kernel基于Kpatch框架开发了arm64热补丁特性。Kpatch在内核中是基于ftrace实现内核函数的替换,类似于ftrace的动态探测点,不过不是统计某些运行数据,而是修改函数的运行序列:在函数运行某些额外的代码之后,略过旧函数代码,并跳转至新函数。大面积在用户态中,则通过kernel 源码编译内核,打上补丁后再次编译内核,通过分析两次目标文件的变动情况,生成diff.o,并通过解析diff.o生成最终的patch.ko,有关这个方面的实现令人拍案叫绝,笔者后续计划专文详述此部分原理。

升级资源隔离特性:由于容器是特殊的进程,不同容器之间间并不能像同一操作系统下的进程间那样进行共享,安全隔离始终是容器平台的核心问题。而其它版本的LINUX内核提供的隔离特性远远不能满足容器隔离的实际需求内核中,/proc文件系统中大部分信息没有实现namespace功能,隔离性根本无从谈起。

TencentOS Kernel从容器角度出发对于cpuinfo、stat、loadavg、meminfo、vmstat、diskstats、uptime等进行了隔离增强,保证容器中的应用能获得正确的系统状态信息。还提供进程GDB禁止功能,阻止跨进程获取内存,加载动态库等,保障业务进程的数据安全。

并且针对容器内外进程PID对应关系的痛点,做出了优化,在内核参数kernel.watch_host_pid = 1时,容器内可以通过读取/proc/self/hostinfo文件来获取容器内进程在容器外的真实pid。

更重要的是,TencentOS Kernel待push的版本中还特别提到了,将提供包括NVME IO隔离等特性,这将彻底解决IO控制组在多队列设备场景资源利用率低,不支持按比例隔离等问题,保证了不同场景下的IO隔离效果。

CPU弹性调度算法TencentOS Kernel针对容器的特性实现了专门的调试算法,在离在线业务混布场景下收益十分显著。在不影响在线业务质量的前提下,整机的CPU利用率最高提升了3倍,部分业务场景下可将整机CPU利用率提升至90%。

性能方面,TencentOS Kernel针对计算、存储和网络子系统均经过独有的优化,例如PAGE CACHE LIMIT功能,限制page cache的使用率,尽量使系统剩余的内存能够满足业务的需求;TencentOS Kernel还新增多个sysctl/proc控制接口,内核启动参数等来优化用户体验。

 

后记

IT业与传统行业最大的不同,就是其背后还隐藏着侠义江湖的影子,笔者相信腾讯此次怀着巨大诚意开源的TencentOS Kernel也必将能从开源社区中得到中肯的意见与支持。开源则是武林高手下场比武,而在这种不断交流切磋的过程中,必将提高各门派的武功水准。所以在此笔者也由衷希望腾讯今后能够开源更多优质的项目,推动行业良性发展。

发布了144 篇原创文章 · 获赞 4183 · 访问量 65万+

おすすめ

転載: blog.csdn.net/BEYONDMA/article/details/103935673