裸机还是虚拟化?

裸机还是虚拟化?

我正在寻求升级服务器并试图制定一个好的计划。

我们目前有 4 台服务器:

  1. OpenBSD 防火墙/VPN 服务器
  2. 接收 ZFS 快照的 FreeNAS 备份服务器(本地)
  3. 接收 ZFS 快照的 FreeNAS 备份服务器(远程)
  4. 下面是主力 FreeBSD 服务器。

FreeBSD 服务器

~2010 FreeBSD 8.4、32GB RAM、双 Xeon E5520 ZFS(8 个磁盘、镜像对磁盘 zraid、8TB)

服务:

  • 桑巴
  • Netatalk(Apple 文件共享)
  • Apache(主要是内部站点,一些面向外部的站点)
  • MySQL
  • VirtualBox(Windows 2k3 实例)
  • ZFS 快照

我的计划(基本)

我正在计划进行服务器升级,这将使我们从一台主服务器切换到两台服务器,每台服务器将承担上面列表中的一些服务器职责(并相互复制),这样如果一台服务器出现故障,我可以快速激活第二台服务器的所有功能。例如:

服务器 1:

  • 桑巴
  • Netatalk(Apple 文件共享)
  • VirtualBox(Windows 2k3 实例)
  • ZFS 快照

服务器2:

  • Apache(主要是内部站点,一些面向外部的站点)
  • MySQL
  • ZFS 快照

我只运行过裸机,除了在 VirtualBox 上运行 Windows 2k3 之外,我没有使用虚拟机的经验。我应该考虑将服务器实例作为虚拟机运行吗?我认为这可能会使从崩溃中恢复变得更容易。总的来说,这看起来是个好计划吗?

我一直在研究 ixSystems 服务器和戴尔机架硬件,看看这是否有区别。(我也从未使用过任何机架安装设备。)

答案1

毫无疑问,虚拟化。虚拟化带来的好处和灵活性远的超过微不足道的性能损失。

但你的计划并不是最理想的,主要是因为 Virtualbox 是一个桌面级虚拟化解决方案,不适用于服务器使用。

我的建议是:在两台服务器上安装(免费)VMware ESXi,然后根据需要在其上创建虚拟机。如果您不喜欢 ESXi,请考虑 Hyper-V 或 KVM。让主机操作系统/虚拟机管理程序尽可能“干净”,仅负责运行虚拟机,并根据需要创建虚拟机。不要在主机操作系统上运行任何应用程序进程。

如果您有足够的预算,可以选择 VMware Essentials Plus 套装,其中包含 vCenter,可让您执行主机之间的实时虚拟机迁移、集中管理、使用 Veeam 等工具进行备份等。

一旦转移到虚拟化环境,就再也不会回头了。

答案2

虚拟化将极大地满足您的需求。

我们有一家小公司,虚拟化使我们能够整合硬件,增加服务分离以提高安全性,并有助于延长正常运行时间,因为我们可以非常轻松地在主机(虚拟机管理程序)之间迁移虚拟机;而这对于裸机来说是非常困难的。

我们使用过时的企业硬件,并在现场保留备用部件(风扇、驱动器等),但同时拥有主主机和辅助主机;我们的主机运行服务于 DRBD、Apache、MYSQL、Samba、NFS、Reslio Sync、Dropbox 等的虚拟机。我们让主机使用 MDADM 管理 RAID 阵列。利用 DRBD,虚拟机在备份服务器上保持同步,因此即使主主机发生灾难性硬件故障,停机也几乎不成问题。

但作为一家小型企业,它简化了硬件管理,使我们能够运行更少的硬件,这对预算和 IT 资源具有深远的影响,并整合了我们服务的管理,因为从工作站上的单个控制台管理所有虚拟机是很自然的;对于我们来说,通过 Xen Center 来管理,因为我们使用 XenServer。

此外,它还允许我们隔离事物,因此云服务等事物可以与内部服务虚拟隔离,从而提供高度安全性。例如,我们在两个单独的虚拟机中提供两个单独的云文件服务;一个供现场人员通过移动设备访问,另一个供办公室人员通过内部网络访问。

需要注意的是,我们的备份服务器(而非辅助主机)并未特意虚拟化,因此,如果主机出现软件或配置故障,我们仍可以裸机访问文件。也就是说,如果我们的主机以某种方式损坏了我们的虚拟机或数据存储,我们仍可以裸机访问文件和虚拟机。

最后,我们可以为公司提供企业级文件、备份、网络、云和其他服务,所有服务均由公司内部提供,成本最低,正常运行时间最长。它还允许我们进行扩展,因为我们可以集成其他服务;近期计划为远程簿记员提供 VPN 服务,为需要 Windows 软件中介与 MySql 交互的现场人员提供 Android 表单服务。如果不进行虚拟化,我们将需要购买、运行和管理更多硬件;虚拟化在添加此类服务时完全消除了硬件问题,我们可以专注于软件/​​服务的集成,这已经足够令人生畏了。

答案3

如果大多数机器大部分时间都处于闲置状态,那么虚拟化它们可以节省大量成本和时间,正如其他人已经指出的那样。您应该知道,虚拟化对性能产生重大影响,根据我在那篇文章中的测量。Virtualbox 尤其糟糕,因此您最好确保将所有内容迁移到合适的虚拟机管理程序。我使用 KVM,如今即使对于像虚拟化游戏

编辑:虚拟化性能开销文章第 2 部分,在原始文章以下三代硬件上,仍然显示出类似的性能损失。

编辑2:虚拟化对 Zen 2 Epyc 的性能影响仍然高达 17% - 25%

为了减少虚拟化对性能的影响,您可以将列出的许多工作负载保留在虚拟机之外,例如,您可以在主机上运行 samba/netatalk 服务器。如果可能的话,请在主机的 ZFS 上运行 MySQL,并采用适当的MySQL 和 ZFS 的调优。您可以找到我关于ZFS 上的 MySQL

虚拟化的另一个好处是,您可以通过 zvols 支持您的虚拟机,这使得不支持 ZFS 的客户机的备份和恢复变得容易得多(zfs rollback当机器在更新中断后出现故障时,能够恢复机器确实令人耳目一新)。

相关内容