在尝试搭建虚拟化主机的过程中,遇到了一些挑战和意外收获。最初,目标是将一台较小的计算机转变为虚拟化主机,以便运行多个虚拟机。考虑了两个选项:使用微软的Hyper V或者尝试VMware的ESXi。
旧计算机是一台Core i7,配备了32GB的Corsair Vengeance内存。它还有一个ATI Radeon HD6800独立显卡,自带2GB的显存。主板是ASUS P8-Z68 V-PRO。除此之外,它还有3TB的存储空间和两个网络端口(其中一个是尝试在家构建自己的路由器时获得的),这无疑是一台强大的机器。2012年购买它时,花费了大约95000印度卢比。
购买的新计算机与旧的“大铁”非常相似。它配备了Core i5处理器和32GB的Corsair Vengeance内存。显卡是集成的,一个相对适中的Intel HD显卡,安装在Gigabyte B85M-DS3H主板上。对于存储,只购买了一个1TB硬盘,并且只有一个板载网络端口。这台计算机的成本大约是旧计算机的一半,花费了38000印度卢比。
ESXi基本上是一个基于Linux的操作系统的定制版本,运行在VFAT分区上(而不是传统的Linux“ext”分区)。想看看这是否比Hyper V提供更好的性能和管理性。
访问了VMware的网站,那里将其称为“vSphere Hypervisor 6.0”,并且可以免费下载。不太理解他们提供免费下载的逻辑,所有功能都已启用,然后提示注册——当注册时,将获得一个产品密钥(也是免费的),但它似乎实际上禁用了一些功能……这还是一个“免费”的产品。无论如何,下载了352MB的ISO文件。
微软有一个非常方便的工具,可以将ISO文件写入USB驱动器。它通常与Windows或微软的ISO文件配合得很好。但对于Linux ISO文件来说并不理想。但还是尝试了一下,系统根本无法从它启动。
这是一个SourceForge项目。这个工具支持大量的Linux发行版,是Linux爱好者和粉丝将Linux ISO写入USB驱动器的热门选择。然而,系统同样无法从它启动。
还发现许多论坛帖子强烈建议使用一个名为UnetBootin的工具来写入ISO。所以使用了UnetBootin工具,系统终于显示了启动屏幕。但还没有按照VMware文档页面的说明操作,因为是从Windows系统进行操作的。在启动过程中(根据底部的进度条),安装程序卡住了,说找不到任何网络卡。很惊讶,主板有一个Realtek网络适配器。所以再次搜索,发现需要将适配器的驱动程序滑入ISO,然后使用它启动。
为此,需要使用一个名为ESXi Customizer的工具。由于涉及的发行版和架构数量众多,Realtek将Linux驱动程序作为源文件分发。由于不打算将其安装到“Linux”中,而是一个经过大量定制的版本,所以并不特别想尝试编译它。所以再次在线搜索,发现了一个博客,所需的“.VIB”文件已经链接并可用。
所以下载了定制器和VIB文件,并按照说明将其滑入早些时候下载的ISO中。再次使用UnetBootin将其写入USB驱动器,系统这次启动得很好。经过一轮安装后的定制,发现不得不从VMware下载另一个大文件,名为“vSphere Client”。这是另一个341MB。这安装了一个管理工具,自豪地宣称所有最新的VM功能仅在“vSphere WEB Client”中可用,这是VMware出售的管理其Hypervisor家族的付费工具的一部分。不感兴趣。
使用客户端拥有的功能,创建了两个虚拟机。一个是Windows Server 2012 R2,另一个是Debian Jessie。运行了它们一段时间,注意到性能问题。尽管如此,虚拟机的配置速度非常快——几乎是瞬间的。大问题在于虚拟机的性能和管理性——尽管客户端应用程序非常强大,很快就在其界面中迷失了方向,发现本应是“简单的事情”很难做到。
所以下一个选择是微软的Hyper V。然而,不想运行一个完整的操作系统来运行几个虚拟机。就在那时,想到了“Hyper V Server”的提供。这是一个完整的操作系统的精简版本,类似于“Server Core”提供,所有的配置都需要通过PowerShell(本地和远程)或通过远程管理工具进行管理。
可以从这里下载一个“无限期评估”副本。这意味着它显然可以永远免费使用,如果是为了测试、评估和学习目的(非生产使用)。设置操作系统本身很简单。然后是“更难”的部分,需要配置各种东西。谢天谢地,Server Core shell弹出了一个内置的基于文本的菜单界面,让可以做很多通常的任务(在GUI版的Server Manager的欢迎屏幕上处理的任务)。
运行初始配置(计算机名称、IP地址等)后,重启后,想将其添加到另一台(Windows Server 2012 R2)测试机的Server Manager中。由于机器不在域中(工作组设置),需要将Hyper V服务器添加到GUI服务器的TrustedHosts列表中。
C:\> winrm set config winrm/config/client @{TrustedHosts="192.168.1.100"}
在GUI框中运行上述winrm命令。在TrustedHosts名称列表中使用了Hyper V框的IP地址。然后,转向Server Manager UI,并使用其IP地址添加了服务器。它抱怨了一些由于Hyper V上的防火墙可能无法访问的东西。所以在Hyper V框上使用PowerShell:
C:\> powershell
PS:\> Import-Module NetSecurity
PS:\> Get-NetFirewallRule | Set-NetFirewallRule -Enabled $True
上述将系统上的每一项防火墙规则设置为“启用”。由于默认情况下防火墙设置为阻止,这将在系统中打开很多漏洞。但这没关系,因为机器在一个非常受限的内部局域网上,没有从互联网的路由。所以这很好。
现在Server Manager GUI加载服务器很好。当尝试打开计算机管理控制台时,收到了一个错误消息,但只发生了一次,以后的尝试运行得很好。