使用虚拟化时,主机和客户操作系统是否需要日志文件系统?

使用虚拟化时,主机和客户操作系统是否需要日志文件系统?

使用 VirtualBox,我在 Ubuntu 主机上运行了几个针对不同发行版的 Linux 客户机。

哪种文件系统布局可以提供最佳性能?

在主机上为客户机设置一个不同的分区而不记录日志是否值得?

或者,相反,我应该禁用客人的日记功能吗?

答案1

文件系统的日志记录通常仅保护文件系统的元数据部分。在虚拟化的情况下,客户机的整个文件系统被视为主机操作系统的数据。因此,在您需要日志记录的情况下,当主机文件系统本身或客户端文件系统损坏时,它无济于事。

此外,与虚拟化带来的 IO 损失相比,日志记录的开销可以忽略不计,而虚拟化带来的 IO 损失要大得多(如果您将原始 IO 容量的 50% 用于客户机,您很幸运,使用普通的 VirtualBox,您可能只能获得约 30%)。您不必担心这里的日志。因此我的建议是:始终使用日志文件系统。

另一点需要提及的是崩溃时的恢复时间。日志执行的最重要的任务之一是在非正常关机的情况下简化恢复。如果您使用日志文件系统,则强制使用的时间将比非fsck日志文件系统小几个数量级。如果您需要中等程度的恢复时间,仅此一项事实就可能成为交易破坏者。

当你真正需要 IO 时,至少使用 Type-1 Hypervisior(如 Xen 或 KVM),这使得获得 50%(甚至更多)的剩余 IO 容量变得更容易,或者使用应用程序级虚拟化,如 OpenVZ,它本身只使用最少的资源。

答案2

重申其他人已经说过的话:

哪种文件系统布局能提供最佳性能?Ext4 目前的表现接近顶级。没有哪种文件系统在所有情况下都能表现最佳。有些文件系统在极端情况下表现更好。

在主机上为客户机设置一个不同的分区,不设置日志记录,这样做值得吗?与其他可以调整的事物(如磁盘子系统)相比,日志记录开销通常微不足道。

或者,相反,我应该禁用来宾中的日记功能吗?不。

使用虚拟化时,主机和客户操作系统是否都需要日志文件系统?是的,因为您想测试真实世界的案例。

提高磁盘 I/O 速度。当成本过高时,可以考虑非标准文件系统。

  • 您在主机上使用 raid 吗?
  • 您的磁盘阵列中至少有 4 个驱动器吗?(7200rpm sata 1gb = 60 美元 - 总计 240 美元)
  • 你有多核CPU芯片吗?
  • 您是否有足够的内存供所有正在运行的虚拟机使用,再加上 1GB 供主机使用?我发现分配给虚拟机的内存越少,留给单个主机磁盘缓存的内存就越多,而不是留给两个大型缓存。一个在虚拟机中,另一个在主机中。在我的设置中,这样速度更快。减少分配给每个虚拟机的内存。确保有足够的内存,这样就永远不会交换。
  • 您有 Nvidia Fermi(60 美元)或同等性能级别的显卡吗?
  • 您有 SSD 驱动器吗?
  • 目录深度应该保持较低。
  • 任何目录中的文件数量都应保持合理的低水平。
  • 不要使用交换,购买更多内存。
  • 关闭主机和虚拟机中不需要的服务。
  • 仅使用每个虚拟机所需的硬件来配置虚拟机。
  • 根据使用情况,使用上网本或备用电脑上网、听音乐和看视频。带有 Flash 的网络浏览器占用大量 CPU。

答案3

取决于需要。用稳定性换取速度。I/O开销和硬件。通常日志记录是值得的,可以在许多情况下加快访问时间。

答案4

如果主机操作系统非正常关闭,客户操作系统中的日志记录可能会给人一种虚假的安全感。要使日志记录正常工作,操作系统必须控制将数据写入磁盘的顺序。客户操作系统可能认为它在控制,但不能保证主机操作系统实际上会以相同的顺序将数据写入磁盘。结果可能是,在重新启动时,客户操作系统会重放旧的日志数据并覆盖较新的文件数据,结果可能会导致未被注意到的大规模文件系统损坏。

相关内容