我需要购买/构建一个服务器来托管我们的 Subversion 存储库(仅供参考:我是开发人员/不是 IT 人员)。显然,这是关键任务,需要具有高网络和磁盘 i/o 性能。我们的存储库目前是 5GB,我们支持 20 个开发人员。服务器将是 Windows 2008,但如果 Linux 是一个引人注目且更简单/更容易的解决方案,它是一个选项。
澄清:5GB 的存储库大约有 2GB 的源,是的,它需要处理 20 名开发人员整天进行多次小型提交、日志、历史记录和签出。(我如何澄清源代码提交?到处都是一些 C# 文件,有几行更改?非常标准的东西。)
更新:预算:我希望能用 2,000 美元或更少的钱过日子,只是因为我认为我们不需要花那么多钱。但是,如果它需要 5,000 美元,那么这就是它所需要的。这就是我们的生活。但是,如果 2500 美元获得 100%,而 5000 美元获得 103%,那么额外的钱就不值得了。
当然,我的首要任务是数据完整性。如果驱动器出现故障,我希望机器停止写入并能够快速插入新驱动器,以使机器尽快备份和运行。(我可以处理几个小时的停机时间,但不能在停机期间处理几个小时的“工作”)。
我认为我不需要(或想要)RAID 5,因为重建成本似乎很高/很复杂。
至少,我可以使用 RAID 1,并有一个备份磁盘(显然不是来自同一批次,甚至不是制造商 ;-)
RAID 1+0 看起来可能更快?值得这么复杂吗?
有人可以向我指出一些管理 RAID 驱动器的建议和最佳实践,特别是,无论提供什么解决方案,我如何管理磁盘故障。如果驱动器死机,是否有软件可以通知我(电子邮件/寻呼机)?那时会阻止写入磁盘的软件?
还有什么我需要考虑的吗?
更新:我的问题是:硬件 RAID 与 Windows Server 2008 软件 RAID 对于 RAID 1+0 wrt 速度、管理(死磁盘)和磁盘故障警报之间有什么优势。
谢谢
RAID 控制器通常不会这样运行。如果驱动器发生故障,控制器会将阵列标记为降级,并继续让阵列运行(但速度较低,因为它需要进行更多错误处理)。
通常 RAID 5 和 6 是完全有效的选择,很少会产生重建成本。更糟糕的是,RAID 5/6 的写入性能可能相当低。
对于 20 个用户来说,如果有不错的磁盘,我想这会很好。
是的,RAID 1+0 更快,并且没有任何明显的额外复杂性——这是最常用的 RAID 级别之一,所有好的控制器都有成熟的实现。在理想情况下,一个 4 磁盘 RAID 1+0 可以具有单个驱动器的 4 倍读取性能和 2 倍写入性能。但有一件事,因为您需要至少 4 个驱动器,成本会上升,并且相对于使用的驱动器数量而言,有效存储大小并不太大。
如果你买了一个像样的控制器,它会附带控制器;您只需安装管理软件并将其设置为电子邮件通知。此外,您可以在控制器上放置一个热备用驱动器,以便它立即重建(请注意,重建期间性能会下降)。
3个提示:
您的存储库是 5GB,但是您的提交/更新频率是多少?它们的粗略大小是多少?
我们在这里工作多少钱?这确实是您应该问自己的最重要的第一个问题。
我认为带有 1 或 2 个热备件的 RAID 1 或 1+0 将是理想的,这样如果驱动器发生故障,raid 卡将自动开始使用热备件驱动器重建 RAID。然后,您只需购买一个新驱动器以匹配您在那里的驱动器,然后用它替换坏的驱动器。
我会推荐硬件 RAID 1+0 设置。这将为您提供良好的性能和冗余/故障容限,但代价是成本更高(与 RAID 5 相比,需要更多驱动器)。
镜像 RAID 卷具有所有数据的 2 个副本,因此如果驱动器发生故障,您仍然有一个可访问的副本。您无需在驱动器故障时阻止磁盘访问。您可以使用“热备用”驱动器配置您的系统,这些驱动器在发生驱动器故障之前一直处于未使用状态,然后恢复活力并自动取代发生故障的驱动器。这应该为您提供一个功能齐全的 RAID 卷,它可以容忍另一个驱动器故障,并为您赢得足够的时间来更换故障驱动器。为了使 RAID 1+0 卷完全失败,您需要在短时间内发生多个驱动器故障(这通常很少见)。
大多数硬件 RAID 控制器都带有管理软件,可以在出现故障时提醒您。
我的大部分服务器经验都是使用惠普产品,所以我主要是从这个角度说的(尽管大多数其他品牌都做类似的事情)。
从您的描述中我看不到可能发生高网络或磁盘 IO 负载的地方。5 GB 是 SCM 的一个非常小的存储库,C# 文件只有几 KB 大小,20 个开发人员完全没有问题。因此,您应该专注于设置的可靠性,因此具有冗余电源和 RAID 1 的服务器应该没问题。您主要关心的应该是灾难恢复,但正如您可能知道的那样,RAID 设置不会为您带来任何好处。