![将 Linux 文件服务器作为 VM 运行还是在 VM 中运行](https://linux22.com/image/1541683/%E5%B0%86%20Linux%20%E6%96%87%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BD%9C%E4%B8%BA%20VM%20%E8%BF%90%E8%A1%8C%E8%BF%98%E6%98%AF%E5%9C%A8%20VM%20%E4%B8%AD%E8%BF%90%E8%A1%8C%20.png)
这最终是一个关于如何优化物理机->虚拟机移动的问题。我发现了许多与此相关的帖子,但似乎没有一个帖子(目前还没有?)直接解决这个问题。如果我搜索得不够仔细,请随时指出并责备... ;-)
我的物理硬件包括六个 2TB 存储驱动器、一个 8 核/32GB 超微 Xeon 主板和几个速度相当快的 SATA SSD。
目前,我有一台物理机器充当专用文件服务器,在 raid5 模式下通过 MDADM 运行 Ubuntu 和 ext4。这实际上是我设置中唯一“重要”的机器,因为它是我本地家庭备份,同时也充当用于转码视频和其他类似内容的计算服务器。我还有其他几台小型 Linux 机器,用于随机、大多不重要的东西 - 我经常重建它们,如果它们坏了,我并不在意,因为重要数据在文件服务器上。我还有两台较旧的 Windows 机器,我希望部分虚拟化以节省空间/电力,但同时也希望让它们能够访问性能更高的硬件。
我想将文件服务器移至较新的 Linux 发行版,并将大部分存储移至基于 ZFS 的文件系统。我在工作环境中熟悉 ESXi,但我不在那里管理存储,因此这部分对我来说有点不透明。我正在尝试弄清楚如何处理此设置上的存储。我至少可以看到以下选项:
- 在裸机上运行 Linux。将该机器设置为文件服务器,并在物理磁盘上设置 ZFS,就像在任何其他机器上一样。然后在该机器上运行 KVM,并从那里托管虚拟机。
在裸机上运行 Linux,在那里运行 KVM,并将此实例用作虚拟机管理程序。从那里构建一个运行文件服务器的 VM 和所有其他机器的其他 VM。在这种情况下,我需要一些帮助来弄清楚如何将存储公开给 ZFS/文件服务器 VM。我是否只需将所有这些磁盘传递到 ZFS 服务器?这将阻止任何其他 VM 使用此空间,或者如果它们托管在其他地方,它们必须来回反弹几次。
在裸机上运行 ESXi,并启动一个 VM 作为文件服务器,其他 VM 作为其他 VM。在这里,关于如何将存储暴露给文件服务器,我遇到的问题基本相同。ESXi 的性能是否会比 KVM 更好?将来扩展存储怎么样?我肯定还有其他我没有考虑的东西……但那些其他的东西是什么?
答案1
ESXi 可以使用本地存储、NFS 安装或 iSCSI LUN。如果您在裸机上安装 ESXi,它可以访问本地存储,您只需在其中创建一个或多个数据存储(如果您在工作中使用 ESX,您应该熟悉这一点)。ESXi 有一个严重的警告,那就是它对支持的网卡非常挑剔。如果您没有 Intel 或 Broadcom NIC,它可能无法工作(例如,ESXi 甚至不会识别它)。因此,在继续进行此方向的操作之前,请检查硬件兼容性。您还应该检查您的 RAID 适配器是否受支持。如果 NIC 或 RAID 适配器不受支持,那么对于 ESXi 选项来说,这将是一个障碍。
我不熟悉 KVM,所以我无法评论 ESXi 与 KVM 或任何 KVM 配置步骤。
答案2
您基本上已经弄清楚了。所有三个替代方案都是可行的。
选项 2 和 3 本质上是相同的,只是风格不同,因为 ESXi 只是一个带有虚拟化软件的 Linux 发行版(大致相当于另一个带有 KVM 的 Linux 发行版)。它们之间的主要区别在于管理/维护(例如,ESXi 有 vSphere 等工具来管理主机,而 KVM 有不同的工具)和对某些功能的支持(例如,某些 Nvidia 卡经过认证可用作虚拟 GPU,而几乎所有 AMD 卡都可以与 ESXi 一起使用,而 KVM 可能有更广泛的支持,但从网络上的教程来看,运行起来可能更困难)。
1 和 2/3 之间的区别在于,前者不太复杂(就有多少层而言),但集成度更高(这意味着您不能轻易地用其他东西替换存储,但没有必要……)。
我建议你选择具有你需要的所有功能并且你最习惯的版本。就我个人而言,我建议使用 ESXi,因为我重视可预测性和稳定性,并且认为这样的系统应该可以运行很多年而不需要更改基础系统(当然除了安全更新)。如果我必须选择 KVM,那么我会选择一个具有 5 到 7 年长期支持的发行版。