使用 Ubuntu KVM 虚拟机规划我的第一台服务器

使用 Ubuntu KVM 虚拟机规划我的第一台服务器

我正在组装一台双至强四核(即总共 8 个核)12GB RAM Linux 服务器来替换几台旧的小型服务器。我想使用虚拟化,一方面是为了了解它,另一方面是因为使用旧服务器的个人需要分开。

我将在 RAID 镜像中安装两个 120GB SSD 驱动器,并在 RAID 镜像中安装两个 2TB SATA II 驱动器。

我认为我将使用 Ubuntu 10.04 LTS 和 KVM 作为主机系统,并使用 Ubuntu 10.04 作为主要的资源密集型客户虚拟机。另外三个客户虚拟机可能是 Debian Lenny,使用率低且优先级低。

以下资源分配计划是否合理,或者更有经验的用户是否看到了陷阱?

  1. 主机系统:使用 SSD 中的 24 GB,即 12GB 用于文件 + 12GB 作为交换
  2. 主客户虚拟机:使用 96 GB SSD + 1,900GB SATA(分配 4CPU + 8GB RAM)
  3. VM DNS 服务器:使用 8 GB SATA(分配 1CPU +1GB RAM)
  4. VM WebServer:使用 8 GB SATA(分配 1CPU +1GB RAM)
  5. VM 邮件服务器:使用 8 GB SATA(分配 1CPU +1GB RAM)
  6. 保留以供将来使用:76GB SATA

具体来说,12GB 的空间是否足以容纳主机系统的文件?

12GB 交换空间够用吗?使用 SSD 作为交换空间是不是一个坏主意?

主要客户虚拟机是最常用的服务器,它需要快速磁盘 I/O,经常重建大约 30GB 的 MySQL 数据库,需要大量文件存储空间,运行 Apache 和邮件服务器。如果这台服务器性能不佳,那么整个硬件购买就浪费了。

我应该如何对磁盘进行分区,以便最轻松地告诉主机系统将各个来宾 VM 放在哪里?也就是说,我希望主 VM 利用更快的 SSD 驱动器来存储其核心/OS 文件,并使用 SATA 驱动器进行存储,并希望不太重要的 VM 仅使用部分 SATA 驱动器,而不使用 SSD。

我是否可以为客户虚拟机分配更多 RAM 或 CPU(过量使用)而不会导致问题,或者这不值得?

谢谢您的任何建议。

答案1

我的设置有点类似,而且运行良好。Virt-manager 让设置变得非常简单(即使通过 ssh X 转发,它也运行良好)。一些随机想法:

在这种情况下,我会使用 LVM + virtio(可能除了非常大的卷;virtio 似乎存在“1TB 问题”)。您可以将 IO 密集型 vm 的卷放在 sata raid 中最快的部分。

交换:除非您确切知道为什么,否则您可能根本不需要 12GB。

对于小型系统,我建议将数据卷与系统卷分开。您可能会将 8GB 中的约 4GB 用于系统文件,只留下 4GB 用于那些“糟糕”的时刻。当根卷未满时,系统的表现会好得多。

你使用的是哪种类型的 raid?DM-softraid 还是某些有电池支持的硬件控制器?

将系统文件放在 SSD 上可以让你获得良好的启动时间,但之后就没什么用了。将数据文件(尤其是寻道密集型文件)放在 SSD 上可以让你长时间享受极致的快感。

据我所知,如果您没有完全填满 SSD,仍然可以获得一些收益,使用 LVM 可以轻松留下 20% 未使用(从未写入),只需为其创建一个卷即可。

与任何硬件重建一样,我建议使用 ECC 内存。

答案2

“看起来你计划将多台独立的、正在运行的服务器集中到一台大型单点故障服务器中。”我认为你错了。KVM 是故障转移解决方案的绝佳选择。只需将 XML 定义文件带到另一台服务器,并为集群中的所有服务器使用共享存储和/或相同的网卡配置。经过测试,有效。记住 LACP 和链路聚合 - 也有效 :)

答案3

12 GB 应该足够满足您的系统要求。

12GB 应该足以满足交换要求。我不会太担心交换访问速度,因为交换通常不怎么使用。使用可用内存,您不应该看到任何显著的交换。如果您想要较大的临时空间,您可能需要使用更大的交换大小,并使用 tmpfs 来存储 /tmp。

您可以手动放置虚拟系统文件系统,无论是文件还是分区。它们将位于您放置它们的任何位置。

您的 RAM 和 CPU 远远超出所需。观察服务器上的内存使用情况并根据需要增加内存。

我会在服务器上安装一个 munin 服务器进程,并在服务器和所有虚拟服务器上安装 munin 客户端。这将允许您快速确定是否存在需要处理的瓶颈。

我不会过度使用 RAM,但根据负载,您应该能够过度使用 CPU。考虑到您的能力增强,这应该没有必要。K​​VM 允许您为这两者指定最大值,这些值高于启动时使用的值。我还没有尝试动态更改这些值。

答案4

作为负责维持系统运行的系统管理员,这个计划让我感到不安。看起来你计划将多台独立的、正在运行的服务器集中到一台大型单点故障服务器中。这台超级服务器的任何停机都将意味着你所有服务(而不仅仅是其中的一部分)的停机。

我建议使用您的预算来配置两到三台较小的服务器。您仍然可以使用虚拟化将服务划分为单独的容器,这既是为了安全,也是为了方便备份和迁移。

相关内容