我计划搭建一个 Ubuntu 服务器,主要需要是一个文件服务器,但由于预算限制,可能会用于运行几个不同的开发/服务器项目的虚拟映像(可能很少同时运行;主要是测试)。
我研究过各种虚拟化解决方案(Xen,KVM,VirtualBox),目前正在考虑采用 KVM,尽管我在服务器环境中还很陌生(我曾在 Windows 上广泛使用过 Virtual PC)。
我的问题是: 我是否应该“全面”实施并将所有内容虚拟化,还是应该仅虚拟化附加操作系统并将文件服务器保留在主机级别?
我本能地会选择虚拟化一切,但如果我使用虚拟服务器作为文件服务器,我推测这会导致主机上出现一个包含我所有文件服务器文件的大型单个文件。我只是担心这可能会导致潜在的问题(我知道相当大的文件是可以的,但我不确定多大才算可以,如果说 500Gb 可能会开始成为一个问题!)
另一件事是,由于我对 KVM 和服务器虚拟化还比较陌生,也许我在这里错过了一个技巧。(冒着听起来非常无知的风险......)文件服务器的文件是否有必要驻留在该映像中,或者它们是否可以驻留在主机操作系统级别,而仍然让文件服务器负责将它们提供给我的网络?
更多细节以帮助:
目标主机操作系统:Ubuntu 9.10 服务器
客户操作系统: 大多数可能是 Ubuntu 9.10 Server,但理想情况下,我希望使用 Windows 7 对特定项目进行测试。
客户操作系统的用途预计包括:(潜在的)文件服务器;mediawiki 安装(加上测试版本);用于一些不能与 mediawiki 机器位于同一台机器上的简单内部使用网页的 Web 服务器(Apache);Win7 测试机器;
对于所有访问,我计划使用 SSH 进行远程连接(尽管我大部分时间都与服务器处于同一位置)
任何 (建设性的) 非常感谢您的建议!
谢谢,尼尔
答案1
KVM 以及其他解决方案允许您向客户操作系统呈现整个块设备。例如,您可以在主机系统上为文件服务器文件设置专用的 LVM 分区(甚至完整的磁盘驱动器),并将其作为挂载在 /srv 上的硬盘驱动器呈现给文件服务器虚拟机。
这样,您的服务器就不需要一个大文件了 - 只需要主机磁盘上的一个分区。这将处理驻留在主机上但由虚拟文件服务器向您的网络提供服务的文件。
我有一个非常相似的设置,也是在带有 KVM 的 Ubuntu 9.10 上,其中我有一个 LDAP 目录和 6 个虚拟服务器,它们运行在 2 个物理服务器上。我和你的情况一样,也为之苦恼 - 我应该设置 2 个虚拟机来托管 LDAP,还是在物理机上运行它?我的答案是,因为物理机也需要访问 LDAP,所以我会将其托管在物理机上。如果我反过来做,并且虚拟 LDAP 服务器发生故障,物理服务器将无法使用它。但如果物理服务器发生故障,虚拟机也会发生故障,所以 LDAP 不工作也没关系!
在我的设置中,整个虚拟机位于主机级别的 LVM 分区上,因为它们使用 DRBD 在 2 台物理机之间进行复制,因此如果一台物理机死机,它们可以在另一个物理机上快速恢复。完整的 LVM 分区作为 SCSI 硬盘呈现给 VM,然后 VM 也使用 LVM 对该“硬盘”进行分区。
答案2
请注意,如果你完全虚拟化文件服务器而不室性心动过速类技术和适当的硬件,这将无法访问 HDD SMART 信息,所以请考虑您需要什么样的可靠性。