我计划构建一台服务器,用作文件和备份服务器。将来我可能需要在其上运行虚拟机,但我还不确定,因此我将组合两种可能的硬件配置,一种需要运行虚拟机,一种不需要运行虚拟机。然而,在解决这个问题的过程中,我偶然发现了多个有关硬件组件的问题。
一些背景信息:
- 在这两种情况下,我都会尽力保持低功耗。
- 我将在备份服务器上使用 ZFS 或 BTRFS,以便我可以创建备份的快照。
- 虚拟机将不会运行 GUI。
- 虚拟机将在独立于文件和备份驱动器的 SSD 上运行。
- 虚拟机硬件配置的 CPU 将具有 Intel VT-d 和 Intel VT-x 或 AMD-V 和 AMD-Vi。
- QEMU/KVM 将用作虚拟机管理程序。
是否只需要更多的 CPU 核心和 RAM 即可舒适地运行虚拟机?
尽管服务器不是业务关键,但我认为备份至关重要。我不是唯一的用户,我可以看到备份服务器是某些文件的唯一位置。这是使用 ECC 内存的理由吗?或者还有其他令人信服的理由吗?这个问题相当重要,因为它对允许的硬件配置有很大影响。
使用 SAS 2.0 还是常规 SATA 600 HHD 更好? 如果推荐使用 SAS 2.0,那么我选择哪种硬件控制器重要吗,或者大多数都可以?
如果我假设需要 ECC 内存,据我所知,只有两个 CPU 选项需要考虑,那就是购买二手 Intel Xeon 处理器或 AMD Ryzen 处理器。还有其他 ECC 多核处理器替代品吗?
考虑这两个选项,并牢记低功耗的目标,我现在倾向于选择 Ryzen 7 1700(TDP 为 65)。
我能找到的唯一 ECC DDR4 内存套件是 2133Mhz 或 2666Mhz。鉴于官方支持的内存速度:
- 双列,带 4 个 DIMM:最高 1866 MHz
- 双列,带 2 个 DIMM:最高 2400 MHz
- 单列,带 4 个 DIMM:最高 2133 MHz
- 单列,带 2 个 DIMM:最高 2667 MHz
我将从 2 个 DIMM 开始,但在需要时可能会升级到 4 个 DIMM。如果您不打算对处理器超频,那么购买双列 2666Mhz 内存有什么意义吗? 如果不是,为什么 DDR4-3200 似乎最常推荐用于 Ryzen CPU?
答案1
我最近做了一个与你计划的非常相似的构建,它运行得很顺畅。(我甚至使用 KVM)。根据我最近的研究/经验/解决方案 -
如果您使用 ECC 内存,那么稍微提高一点来运行虚拟机几乎是没有成本的。配备低 TDP 设计的 CPU 的服务器的成本与配备高 TDP 的更好的服务器的成本差不多 - 但使用的功率差不多。ZFS 系统的经验法则是最低 8 GB 的 RAM,足以让我为虚拟机分配 2 GB。
虽然您可以不用 ECC 内存,但使用 ZFS 时这绝对是最佳做法。像我一样,您似乎对数据完整性有点偏执,这意味着 ECC 可能是构建中最理想的部分。 ZFS 的特点是它比其他文件系统占用更多的内存,并且如果内存中的数据损坏(可能由于 RAM 的轻微故障或宇宙辐射而发生),ECC 将允许系统透明地修复 1 位错误,或者向操作系统报告更大的错误。)另一方面,ZFS 通过使用校验和更有效地防止位腐烂,并避免了“写入漏洞”。
我正在为 Owncloud、DNLA 和 SAMBA 运行一个小型 (2 GB) VM - 它是一个将其与我的业务内容 + 底层 ZFS 服务器(它还执行其他相当轻量级的部分,如 DRBD、SSH 备份)隔离的 VM,并且主机中的 8 GB 内存已经足够了。(我没有启用交换,我的免费命令显示:
total used free shared buff/cache available
Mem: 8120320 2612412 447236 17556 5060672 467468
Swap: 0 0 0
我的系统正常运行时间接近于 0(不过目前它并没有进行繁重的 IO 操作)。
我以绝对便宜的价格买到了一台带有热插拔托架和 E3-1240v3 处理器的“演示模型”直立式服务器 - 我在这个网站上的研究表明在同一生产线上使用更强大的 CPU 时,空闲时应该使用类似的电量。这个 CPU 似乎相当节能(但毫无疑问新的 CPU 略好一些),并且除了 ZFS 之外,还可以为一些虚拟机供电。
虽然系统的 TDP 是衡量每瓦性能的一个很好的指标,但它可能会产生误导,因为更快的处理器将具有更高的 TDP,但在空闲时使用的电量与低 TDP 的系统大致相同 - 只是在需要时有电力。我想这个想法应该是更多地关注处理器的生产线和年龄。
关于SAS 硬盘,我认为它们基本上是浪费钱。 它们并不比优质硬盘更可靠(这意味着无论如何你都需要 RAID),速度稍快,但价格更昂贵,而且难以更换。省钱并使用 SSD 缓存。
就控制器而言,如果你正在使用 ZFS,那么你需要一些简单、可靠但不支持 RAID 的东西(或禁用假 RAID)- ZFS 执行其自己的 RAID 等效操作,而花哨的 RAID 磁盘控制器会妨碍它拾取错误并执行其操作。我实际上从我的构建中取出了“假 RAID”控制器并使用了板载英特尔控制器。
对于其他使用 ECC 内存的系统,极少数 i3 处理器支持 ECC 内存(但不是 i5 或 i7 - 这是反常的)。但实际上,低端服务器主板的溢价并不那么显著。我注意到一些 Atom 处理器也支持 ECC-,但我不会将它们用于 VM)
假设您不打算榨干虚拟机的最后一点性能(这在这种配置下没有意义),更快的 RAM 不会对性能产生显著影响,因为你的系统受到 IO 限制. 宁愿购买更便宜的内存。
顺便说一句 - 虽然我不喜欢英特尔而喜欢 AMD - 但从历史上看,英特尔处理器更可靠 - Ryzen 处理器系列相当新并且针对游戏玩家(即可靠性不高) - 如果可靠性是关键,我更喜欢英特尔而不是 Ryzen - 特别是如果你可以使用稍旧的服务器 - 在这种情况下,AMD 服务器的功耗更大。
关于您对 VM 的问题 - 是的,您只需要更多的 CPU 和 RAM 来运行 VM - 但即使是相当入门级的新服务器也应该允许您运行相当多的 VM。