9

我很好奇将源代码可靠、安全地保存好几年。根据我的研究/经验:

  1. 刻录 DVD-R 等光学介质会随着时间的推移丢失一些数据。几年后,我并没有把我放在他们身上的所有文件都拿下来。读取错误等

  2. 硬盘驱动器是机械的,容易发生故障/过时,数据恢复费用高昂,这很难让您的数据保密(您将其发送给某些公司)。

  3. 磁带存储:见#2。

  4. 在线存储受某些数据存储中心的心血来潮,那里的安全性或缺乏安全性,以及公司倒闭的可能性等因素的影响。而且它很昂贵,你不能保证他们没有偷看。

随着时间的推移,我发现由于这些问题,我已经丢失了旧项目的源代码。还有其他解决方案吗?

答案总结:
1. 使用多种方法进行冗余。
2. 将您的源代码打印为文本或条形码。
3. RAID 阵列更适合本地存储。
4. 开源您的项目将使其永远持续下去。
5. 加密是安全的答案。
6、磁带存储经久耐用。
7. 分布式/保证在线存储便宜且可靠。
8. 使用源代码管理来维护历史,并备份repo。

4

17 回答 17

7

最好的答案是“在多个地方”。如果我担心尽可能长时间地保留我的源代码,我会这样做:

1) 定期备份到一些光学媒体,比如每月刻录一次到 DVD 并在异地存档。

2)将其备份到我本地机器上的多个硬盘驱动器

3) 将其备份到亚马逊的 S3 服务。他们有保证,它是一个分布式系统,因此没有单点故障,您可以轻松加密您的数据,因此他们无法“偷看”它。

通过这三个步骤,您丢失数据的机会实际上为零。对于非常重要的数据,没有太多的备份。

于 2008-09-16T15:46:10.807 回答
6

根据您的偏执程度,我建议您使用打印机和保险箱。

更严重的是,RAID 阵列不再那么昂贵,只要您继续使用和监控它,一个正确设置的阵列几乎可以保证永远不会丢失数据。

于 2008-09-16T15:45:28.813 回答
3

您要保留的任何数据都应以多种格式存储在多个位置。虽然任何一个失败的几率可能很大,但所有失败的几率都很小。

于 2008-09-16T15:44:21.093 回答
3

如果您想长时间存档某些内容,我会使用磁带驱动器。它们可能不会容纳很多东西,但它们是可靠的,并且几乎是数据归档的首选存储介质。然而,我从未亲身经历过磁带驱动器上的数据丢失。

于 2008-09-16T15:45:23.523 回答
3

备份您的项目的最佳方式是让它们开源并出名。这样,总会有人拥有它的副本并能够将其发送给您。

之后,只需关心磁性/光学介质,继续更新它并在多个介质(包括,为什么不,RAID 集)上的多个副本(在线以及,记住你可以加密它)

于 2008-09-16T15:47:27.403 回答
3

我想你会惊讶于这些天在线存储的价格是多么合理。Amazon S3(简单存储解决方案)每月每 GB 0.10 美元,上传费用为每 GB 0.10 美元,下载费用最高为每 GB 0.17 美元。

因此,如果您存储 20GB 一个月,上传 20GB 并下载 20GB,您将花费 8.40 美元(在欧洲数据中心稍贵 9 美元)。

这足以将您的数据存储在美国和欧盟数据中心以及 DVD 上——至少可以说,丢失这三个数据的可能性很小。

还有可用的前端,例如 JungleDisk。

http://aws.amazon.com
http://www.jungledisk.com/
http://www.google.co.uk/search?q=amazon%20s3%20clients

于 2008-09-16T15:53:32.710 回答
2

不要忘记使用 Subversion ( http://subversion.tigris.org/ )。我颠覆了我的整个生活(太棒了)。

于 2008-09-16T17:25:30.133 回答
1

我见过的最好的家用解决方案是使用 2D 条形码打印备份 - 数据密度相当高,可以很容易地重新扫描(假设是送纸扫描仪),它解决了问题数字域回到物理域——这很容易被保险箱之类的东西或像 Iron Mountain 这样的公司所满足。

另一个答案是“以上所有”。冗余总是有帮助的。

于 2008-09-16T15:49:16.667 回答
1

对于我的项目,我使用 1、2 和 4 的组合。如果它是非常重要的数据,则需要在多个地方有多个副本。我的重要数据每晚都会复制到 3-4 个位置。

如果您想要一个更简单的解决方案,我建议您从具有保险可靠性保证的知名提供商处获取在线存储帐户。如果您担心安全性,请仅在TrueCrypt加密档案中上传数据。就成本而言,它可能会很昂贵......但如果它真的那么重要,那么成本就不算什么了。

于 2008-09-16T15:49:40.380 回答
1

对于监管要求的电子数据归档,我们将数据保存在 RAID 和备份磁带上的两个不同位置(其中一个是 Iron Mountain)。我们还每隔几年更换一次磁带和 RAID。

于 2008-09-16T16:02:01.253 回答
1

如果您需要“永远”保存它,最安全的方法可能是打印出代码并将其粘贴在塑料信封中,以使其免受元素的影响。我无法告诉你我丢失了多少代码到无法访问的备份装置......我没有纸质读卡器来读取我的旧 cobol 卡座,我的 5 1/4 没有驱动器“软盘,或者我的 3 1/2”软盘。但我的第一个大项目的打印输出仍然可读……即使在我曾经 3 岁的孩子决定它会成为一本很好的图画书之后。

于 2008-09-16T17:08:43.200 回答
1

当您说“备份源代码”时,我希望您的意思也包括备份您的版本控制系统。

支持您当前的源代码(到多个地方)绝对是至关重要的,但在我看来,备份您的 VCS 保存的更改历史是最重要的。这似乎微不足道,尤其是当我们总是“活在当下,展望未来”时。然而,有太多次我们想要回顾过去调查一个问题,查看更改链,看看谁做了什么,我们是否可以回滚到以前的构建/版本。如果你练习大量的分支和合并,那就更重要了。归档单个主干是不行的

您的版本控制系统可能附带有关备份策略的文档和建议。

于 2008-09-16T17:22:05.460 回答
0

一种方法是定期回收您的存储介质,即从腐烂的介质中读取数据并将其写入新的介质。存在可以帮助您解决此问题的程序,例如dvdisaster。最终,没有什么是永恒的。只需选择最不烦人的解决方案。

至于#2:您可以以加密形式存储数据,以防止数据恢复专家理解它。

于 2008-09-16T15:47:27.950 回答
0

如果你有写备份机制,我认为选项 2 效果很好。它们也不必是涉及第三方的昂贵的(灾难恢复除外)。配置 RAID 5 的服务器可以解决问题。如果硬盘驱动器出现故障,请更换它。所有硬盘驱动器同时发生故障的可能性极小。在某些情况下,即使是镜像的 RAID 1 驱动器也足够了。

如果选项 2 看起来仍然是一个糟糕的解决方案,那么我唯一能想到的另一件事就是打印出源代码的硬拷贝,这比上述任何解决方案都存在更多问题。

于 2008-09-16T15:47:30.040 回答
0

在线存储受一些数据存储中心的心血来潮,那里的安全性或缺乏安全性,公司倒闭的可能性等。再加上它很贵,

不一定很昂贵(例如参见rsync.net),也不一定不安全。你当然也可以加密你的东西。

而且你不能保证他们没有偷看。

没错,但可能有比你的源代码更有趣的东西可以窥探。;-)

更严重的是,RAID 阵列不再那么昂贵

RAID不是备份。

于 2008-09-16T15:48:02.113 回答
0

我刚刚和一个精通缩微电影的人交谈。虽然它是一项古老的技术,但对于长期存储而言,如果维护得当,它是最持久的数据存储形式之一。它不需要复杂的设备(放大镜和灯)来读取,但存储它可能需要一些工作。

再说一次,如前所述,如果您只是在几年而不是几十年的时间里谈论,将其打印到纸上并将其存储在受控环境中可能是最好的方法。如果您想获得真正的创意,您可以层压每张纸!

于 2008-09-16T17:19:42.940 回答
0

用于本地备份的 Drobo

用于短期本地存档的 DVD

用于异地长期归档的 Amazon S3

于 2008-09-16T21:20:09.693 回答