独家分析:Oracle Linux DTrace路在何方?

性能诊断工具DTrace是Sun微系统公司的主要创新技术之一,而随着甲骨文公司收购Sun,他们也把这一技术移植到了Oracle Linux操作系统之上。在去年的12月份,甲骨文宣布Oracle Linux下的DTrace工具正式GA(参考:Announcement: DTrace for Oracle Linux General Availability),对于系统管理员来说,这绝对是一个值得兴奋的事。然而,当Oracle和Linux这两个关键字放在一起的时候,你也绝对不能“掉以轻心”。

Brendan Gregg是云服务公司Joyent的首席性能工程师,他同时还有另外一个身份,就是知名的DTrace技术专家。Brendan Gregg曾就职于Sun和甲骨文两家公司,在接受TechTarget记者采访的时候他表示,红帽公司有与DTrace相类似的bug跟踪工具,叫 systemtap,也是用来解决相同的性能瓶颈问题(参考:对比systemtap与DTrace工具)。Gregg认为systemtap并不适合投入到生产环境当中,这是它最大的问题,所以企业级用户能够在Linux系统中使用到DTrace是非常好的一件事。然而他提醒,使用Oracle Linux是存在一些弊端的。

“说实话,我认为那些渴望使用云服务的企业没有几个想要成为甲骨文客户的。” Gregg直言不讳。他当初对甲骨文收购Sun一事还“耿耿于怀”,Gregg说:“甲骨文的用户条款和限制使得他们能够介入客户系统并对站点进行监控,也就是说如果我想要客户使用Oracle Linux的话,我就必须与客户的法律部门提前进行交涉。”

DTrace是一个动态跟踪架构,系统管理员通过DTrace可以对系统行为进行监控与调试。不仅仅对于系统内核,DTrace的优势还在于广泛的语言支持,其中包括了主流的Java、Perl以及Python等。DTrace的工作原理可以简单归结为在系统中放置大量的探测器(probe),这些探测器作为内核以及语言的记录点,当一个程序通过这些记录点的时候,探测器将记录“命中”。作为最早为Solaris系统开发的工具,DTrace被广大技术从业者视为Sun这一巨大皇冠上最耀眼的一枚宝石。Gregg是DTrace Solaris的业界权威专家,他曾经开发过的DTrace工具包(DTraceToolkit)包含了超过200个脚本,目前已经归入到甲骨文的帐下。

Paul Fox是一名Linux开发者,他从2005年就开始着手进行将DTrace移植到Linux系统的项目,这是Linux社区一直以来的愿望,而最终甲骨文实现了这一目标。

厂商锁定,Linux DTrace受争议

到目前为止,支持Linux的DTrace仅限于Oracle Unbreakable Enterprise Kernel,并且无法兼容其他发行版Linux。甲骨文很有可能将DTrace保持为闭源产品,这对于许多开源社区来说无疑是一个重大的打击。此外,通过将DTrace添加到Linux平台,甲骨文放出的另外一个信号也许是未来不会花大力气在Solaris平台上。

Gregg对此也表示担忧,他说他完全不知道甲骨文未来能够做出怎样的举动,Linux DTrace是甲骨文与红帽之间在企业级市场竞争的最大资本,因此他认为在未来将其开源的可能性并不大。事实上,总的来说那些已经使用Oracle Linux的用户已经是甲骨文的企业级客户了。

除了担心甲骨文对系统进行监控之外,其他开源社区成员还将矛头指向了Linux DTrace 的部署问题上。在甲骨文宣布移植项目之后,LWN.net上就发起了一个激烈的讨论(参考链接),其中许多用户开始关心DTrace的使用以及甲骨文的相关代码是否违反了GPL。

这一疑惑源自于开源许可问题,事实上Unbreakable Enterprise Kernel 的DTrace是基于CDDL而非GPL的,也就是说你可以使用但不允许围绕Linux DTrace内核以及代码进行修改,或者添加其他跟踪点。基于CDDL这一点并不令人意外,因为OpenSolaris就是基于CDDL而不是GPL的。然而Linux内核是基于GPL的,这不免会让人产生疑惑。