寻找“构建存储文件系统” 可以合并重复和相似的文件以增加存储空间
我们的商店经常出现磁盘空间不足的情况,因为开发人员和管理层要求我们保留所有夜间构建,因为它极大地有助于调试。
每个版本通常只有很少的变化。 但是,几乎每个文件在一个版本与下一个版本之间都不同,因为编译器和链接器在对象和可执行文件中插入日期/时间戳(和版本)。
所以问题是:有谁知道有一种文件系统不仅可以“合并重复文件”,还可以“合并相似文件”,因为这些文件有几KB到MB,但每个文件只有几个字节发生了变化? (即使更改了代码,对可执行文件的影响通常也会很小,除非更改了主要头文件或库等)
Our shop is constantly running out of disk space, because we have a mandate from the developers and management to keep all of the nightly builds, as it greatly aids debugging.
Each build generally has few changes. However, almost every file is different from one build to the next, because the compiler and linker insert date/time stamps (and versions) in the objects and executables.
So the question is: does anyone know of a file system that not only can "merge duplicate files", but can also "merge similar files", since these files are several KB to MB, but only a few bytes per file have changed? (Even with code changes, the impact on the executables will generally be small, unless a major header or library is changed, etc.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
为什么不使用传统的版本控制系统呢?
您开始第一个构建,然后在此基础上连续提交其他构建。 如果文件重复,则不会创建增量。 如果有修改,它将仅存储更改。
这不是你要求的吗?
Why not a traditional version control system?
You begin you the first build ever and then commit each other build in succession on top of that. If a file is a duplicate, no delta will be created. If it has modification, it will store only the change.
Ain't that what you asked for?
这是一个穷人的解决方案,但如果构建存储是一项重大的财务决策,那么我认为这个答案是有道理的。 :)
首先,您不太可能找到一个全新的存储/源代码控制系统,它可以以低于您购买新存储的费用来执行这种类型的复杂文件引用。
如何将过去 2 个月的构建保留在昂贵的存储(即 RAID)上,然后去给自己找一些便宜的存储用于存档(即其他人提到的 1TB USB 驱动器)。
编写一个简单的小控制台应用程序,每天晚上作为计划任务运行并移动所有文件 < 2个月前到存档驱动器。
This is a poor man's solution, but if build storage is a major financial decision, then I think this answer is warranted. :)
First, it is highly unlikely that you will find a brand new storage/source control system that does this type of complex file referencing for less than you could just pay for new storage.
How about keeping the last 2 months worth of builds on expensive storage (i.e. RAID) and then go get yourself some cheap storage for archiving (i.e. a 1TB USB drive that someone else mentioned).
Write a simple little console app that runs as a scheduled task every night and moves all files < 2 months ago to the archive drive.
一般来说,我对此类主题的看法是“不要尝试通过编码来摆脱糟糕的管理决策”。
如果他们想保留那么多旧的构建文件,请“男子汉”并购买空间(磁盘空间很便宜)。
如果他们不想购买磁盘,请“振作起来”并选择合理数量的构建以使其适合可用空间。
这其实并不是那么难的问题。
我最愿意走这条路的是在驱动器上启用“磁盘压缩”(如果可用),因为这是由操作系统处理的,不需要额外的应用程序和随之而来的支持。 当然,这对性能影响很小 - 但很简单。
把“发展”的精力留给重要的事情。 :-)
Generally my opinion on these type of topics is "don't try to code your way out of a poor management decision".
If they want to keep that many old build files, "man up" and buy the space (disk space is cheap).
If they don't want to buy the disks, "man up" and pick a reasonable number of builds to keep that fits within the available space.
It isn't really that hard of a problem.
The farthest I would go down this path would be to enable "disk compression" on the drive if it's available, since that is handled by the OS and doesn't need an additional app and the support that goes with it. Sure, it's a small performance hit - but it's simple.
Save the "development" juice for the important things. :-)
Opensolaris 和 ZFS。
http://blogs.oracle.com/bonwick/entry/zfs_dedup
Opensolaris and ZFS.
http://blogs.oracle.com/bonwick/entry/zfs_dedup
我认为cramfs可以做到这一点,但是创建cramfs图像(只读)可能会让人头疼。
嗯..为什么你需要存档构建? 从以前的源代码控制版本重新创建构建不是很简单吗?
I think cramfs does this, but creating cramfs images (which are read-only) may be a headache.
Hmm.. Why would you need to archive builds? Shouldn't it be trivial to recreate a build from a previous source-controlled version?
您很可能需要具有透明压缩功能的文件系统或卷管理器。 性能自然会受到损害,但如果您使用轻度压缩,那么应该不会有太大问题。
You most likely need a filesystem or volume manager with transparent compression. Performance would naturally be hurt, but if you use light compression it shouldn't be too much of a problem.
为了节省安装和维护新文件管理方案的一小部分精力,我会购买更多硬盘。 昨晚我在 Frys,他们以 100 美元的价格出售 1 TB 外置硬盘; 它是一个 USB 驱动器,您只需将其插入即可。如果已满,只需再购买一个即可。 作为一名开发人员,如果您的商店真的想无限期地保留这些构建,我会感到惊讶 - 我怀疑每晚构建的价值在几个月后会很低。
这不是一个优雅的解决方案,但可能更具成本效益。
For a fraction of the effort of installing and maintaining a new file management scheme, I would buy more hard drives. I was at Frys last night and they were selling a 1 TB external drive for $100; it's a USB drive, all you need to do is plug it in. If it gets filled up, just buy another one. Speaking as a developer, I'd be surprised if your shop really wants to hold on to the builds indefinitely -- I suspect the value of the nightly builds would be low after some number of months.
This is not an elegant solution but it may be more cost effective.
我认为您应该使用一个应用程序来删除重复文件对于您来说,这将是一个更好的解决方案,我使用一个名为重复查找器 2009 的软件来删除重复文件。
I think you should use an application to delete duplicate files that will be a better solution for you, i use a software to delete duplicate files called duplicate finder 2009.