这个话题本来是一篇博客文章,但是,当尘埃落定后,它变成了一篇文章(正如你可以看到的长度)。你看,应该是一个简单的讨论变得不那么简单了。在我们行业的某些角落,有一种倾向,就是不站出来解决问题,而是在博客和匿名帖子中悄悄说出来,提出的问题比得到的答案更多。
我接下来的愿望最初是要澄清事实。我必须承认,在我的研究结束后,我并没有感觉自己完全掌握了所有的事实——而且相互矛盾的说法仍然存在。因此,我邀请相关公司和任何有经验或对此事感兴趣的人通过评论来权衡。
我想我在这里提一下这整个混乱的原因会有所帮助:这是在微小的地方产生了更多的噪音设计管理(DM) EDA世界的一角。老实说,这个世界上的看法往往是IC Manage做的或说的些挑衅,一场争吵随之而来。在这一点上,我的目标不是评判好人和坏人,而是从废墟中找出问题所在。
让我们从一些背景知识开始,这可能是你们很多人的复习。DM工具的存在是为了管理复杂的文件集和“视图”,这些文件和“视图”主要用于模拟设计。它们也可以用于RTL设计,但是由于RTL设计的行为很像软件设计,许多逻辑设计人员只使用软件配置管理(SCM)工具,而不是更专业的工具。
这里有四个主要的玩家,正如上面DM文章所述:最大的(也是最安静的)是达索,使用他们的Enovia/Synchronicity工具。可以说,他们和Cliosoft都是从头开始构建自己的系统。通过这一点,我将它们与IC Manage和methods进行对比,后者倾向于包装现有的配置管理工具,如Perforce和Subversion。特别是IC Manage,运行了Perforce。
这里的问题是管理文件的机制。任何设计都有大量的相关文件——包括源文件和伴随它们的附属视图。我们说的是成千上万的文件。这个问题涉及到如何用设计人员工作所需的信息填充工作空间。那么多的文件在网络中传输可能会导致延迟,每个人都在寻找解决这个问题的方法。
有三种基本方法,其中两种是最常见的。
- 镜子似乎是一种更古老的方法。镜像包含一个公共工作区,多个用户可以在其中工作。因为它只能容纳一个设计的单一版本,一个设计人员的更新可能会导致某些文件的新版本被“推”给其他设计人员,当他们不想要它的时候。尽管如此,达索似乎是四家公司中唯一一家使用反射镜的公司,许多大型半导体供应商都使用这种方法(这只是达索提供的一种选择;达索用户没有被强制使用镜像)。
- 缓存为用户提供了一种更直接的方式来控制他们自己的工作空间。它们可以同时处理多个版本,因此不再存在推送更新的问题。最“直接”的缓存方法通过使用软链接或符号链接(“符号链接”),甚至硬链接(达索提供了一种更快的性能选择),避免了缓存设计中每个文件的成本。这意味着工作区中填充了指向原始文件的链接,并且只有在实际需要时才会读取文件本身。
- 虚拟文件系统(VFS)用新文件系统包装现有文件系统,新文件系统具有针对DM问题定制的行为和属性。最古老的(直到最近也是唯一的)例子是Clearcase。您可能听到的与此方法相关的其他术语有“版本化对象基础”或“VOB”或“基于FUSE的方法”,其中FUSE代表“用户空间中的文件系统”。后者指的是这样一个事实,即文件系统通常是任何操作系统的一个亲密的低级方面,而在类unix系统中,它是在内核中处理的。FUSE方法在用户空间中实现另一个文件系统。
整个问题的起源是IC Manage引用了一些传统符号链接方法的问题,并宣布他们的Views产品是一种解决方案。视图是一种VFS方法:它们创建了自己的文件系统,包装了Perforce的功能(位于本机文件系统之上)。其他所有使用(或至少提供)基于符号链接的方法的人正在反击。那么是什么原因呢?
IC Manage用他们从调查中收集到的数据加强了他们的产品。其中一个关键问题及其相关答案如下:
“使用符号链接进行磁盘空间管理的最大问题是什么?”
- 共有524名受访者
- 75%的人有使用符号链接的经验
- 28%的人没有问题
- 72%的人有问题;的人:
- 49%的人认为镜像缺乏控制,包括强制更新
- 32%的人认为从缓存中移除版本以节省空间会不稳定
- 28%的人提到了与文件权限相关的安全问题
(这些增加到> 100%,因为你可以引用> 1问题)
现在,不可否认,这个问题是有偏见的(“你多久没有停止打你的妻子了?”)然而,他们说同样的调查是每年进行一次的,所以这不仅仅是一次为发布而制作的活动。他们说,这些年来的结果一直是一致的。他们也不只是调查自己的客户:他们租用了一份名单,据估计其中约3%是IC Manage的客户。人们选择的可能答案包括类似于“我不打我妻子”的答案,所以如果没有问题,受访者也不会被迫暗示存在问题。
所以,从表面上看,这似乎是合理的数据。IC Manage Views产品旨在解决受访者所表达的担忧(Broadcom在记录中明确表示支持)。
不用说,市场上的其他参与者并不同意这些结论。以下是一些一般性的讨论要点:
- IC Manage认为符号链接是脆弱的;为了节省空间而删除的版本可能会破坏一些东西。
方法还表明,拥有数万个符号链接会造成瓶颈。现在,methods和Dassault都使用符号链接,但不像Cliosoft那样指向单个文件。方法论为每个库使用一个符号链接;达索每个“模块”使用一个。
另一方面,Cliosoft认为,使用符号链接不会造成网络瓶颈,而是减少了流量,因为只有实际需要读取的单个文件(在任何给定时间,项目中文件的一小部分)需要传输;符号链接本身很小,可以减少流量。
最初,我认为inode(“索引节点”)的数量曾经是一个问题,但现在不再是这样了。无论您使用的是文件还是链接,两者都使用inode,因此从这个角度来看,两者并不比另一个更好。
至于被删除的版本破坏的东西,符号链接都似乎是在缓存中使用的,所以没有破坏什么,一个丢失的文件只需要重新读取(诚然需要时间,但不属于损坏)。
- IC管理包括一个本地磁盘缓存,使数据更接近和更容易读取。(写是从头到尾写的。)
每个人似乎都同意,拥有本地缓存可以让事情变得更快。IC Manage似乎并不是唯一一家提供这种服务的公司。至于本地读/透写的好处,显然NFS已经做到了——文件系统中有一些缓存,所以这不是视图独有的。
另一个注意事项是,大多数工作不是在本地机器上完成的:本地机器只是提供到实际设计所在的网络服务器的连接。通过保留在网络服务器中,设计可以定期备份,如果它们在本地机器上,则不会这样做。
Cliosoft利用的网络存储的另一个好处是快照:它们对签出的文件进行定期快照,这样如果有任何问题或文件损坏,可以从快照中重建它们。
此外,许多需要大量文件的处理(如模拟)由LFS发送到农场中的某些机器。因为您不知道这将是哪台机器,所以预缓存没有多大影响。
一种普遍的观点是,使用符号链接进行缓存所做的事情与Views所做的事情相同,只是显式和透明。视图也可以做同样的事情,但是系统是专有的和不透明的。methods利用了Perforce的“搁置”功能,他们认为这比专有系统更简单、更安全。
- 有一种说法是,“Clearcase几年前就这么做了——(到目前为止)还没有人采取过同样的方法。”
这不是一个完全令人信服的论点,但它确实反映了一些事实。其中一个反映了我在90年代末开始了解Clearcase时的印象。我的感觉是,当您购买Clearcase时,您还需要购买一个专门的IT人员来管理它。另一个评论,“vob已经关闭了,”据报道,这是一个很常见的事情。
这个问题的本质是,这样的系统构建起来非常复杂,而且,因为它们不透明,当东西坏了,你就会陷入困境。建议It人员对实现全新的专有文件系统非常谨慎,因为文件系统是任何计算基础设施的基础。我还没有听到哪个IT人员直接这么说过,所以这可能只是猜测(如果你们中有人是IT人员,请在评论中发表意见)。
- 镜子坏。
好吧,我把它简化了。但差距并不大。似乎没有人争论镜像在推送版本更新方面存在问题。它们似乎是一种仍然有追随者的老技术,但缓存要普遍得多。
- IC Manage必须这样做,因为Perforce不能像其他系统那样优化磁盘空间。
如果是这样的话,那么其余的论点听起来就像是转移注意力的东西。我不是一个Perforce用户(并且想在某个时候结束这个讨论),我将把它留给其他人来评论。(“我是医生,不是多边形专家!”)
- 博通表示,可以在不到15秒的时间内填充10000个文件。
Cliosoft说要在更短的时间内完成10万个文件。(我不相信他在这之后加了一个“Neener”。)
- 视图成为设计环境中一个可见的方面(请原谅这个双关语)。
这与担心有关,如果视图崩溃,您就不走运了。从另一个角度来看,这个论证说Views与其他系统相比是一个“障碍”。例如,达索公司表示,在你设置好他们的系统后,它就不会碍事了;它在背景中不显眼地工作。
- 使用符号链接的系统存在安全问题,因为您无法在必要的粒度级别上管理权限。
其他人似乎都不认为这是个问题;权限通常是由系统自己处理的(比如缓存服务器),所以个人设计师不会在那里捣乱。事实上,在大多数情况下,他们不能:他们没有正确的权限。
- 符号链接坏。
这或多或少概括了IC Manage最高级别的争论。除了我已经给出的关于符号链接的评论之外,达索认为它们并不是真正的问题。是的,每个人都希望一切都更快,但这并不是符号链接的阻碍。一般来说,一个共同的主题是,在一天结束时,如果您必须读取一个文件,那么您需要打开该文件。无论这是通过硬链接、符号链接还是其他系统完成的,这些比特都将在网络上传输——这是无法避免的。如果这是瓶颈,那么这些系统就不起作用了。
事实上,Cliosoft提到了一个RTL设计公司,在所有的东西中,专门挑选了它们因为他们使用符号链接。Oi !
如果确实只有Views能够选择性地打开并缓存所需的文件,那么情况就不同了。但它似乎只是符号链接中已经完成的事情的另一种方式;据我所知,在网络带宽上并没有节省太多。我可能错了……
我确信我在这里漏掉了一些问题,也许我的解释与我交谈过的任何一个或更多的人都不同。或者你们正在读这篇文章的人。如果是这样,请畅所欲言,告诉我们你对现实的看法。
郑重声明,我采访过的官方发言人(包括现场和重复的电子邮件)是:
- IC Manage的Shiv Sikand和Dean Drako
- 来自Cliosoft的Srinath Anantharam
- 方法论公司的西蒙·巴特勒
- 达索公司的里克·斯坦顿
我感谢他们(以及他们的公关人员)在我用电子邮件纠缠他们时所表现出的耐心。
你对符号链接有什么看法?这是无事生非吗?还是有一些棘手的问题需要解决?